第一章
3.什么是客户机程序?什么是服务器程序?服务器程序请求和接收来自客户机程序
的服务吗?
客户机程序:服务请求方。发出请求,并从服务器程序接受服务
服务器程序:服务提供方。接受客户机请求,并提供服务
错,是客户机程序请求和接收来自服务器程序
13.假定在发送主机和接收主机间只有一个分组交换机。发送主机和交换机间以及
交换机和接收主机间的传输速率分别是R1和R2.假设该交换机使用存储转发分组交
换方式,发送一个长度位L的分组的端到端的总时延是什么?(忽略排队时延,传播
时延和处理时延)
分组从发送主机到交换机的时延为L/R1
分组从交换机到接收主机的时延为L/R2
所以总时延为L/R1+L/R2
23.因特网协议栈中的5个层次有哪些?在这些层次中,每层的主要任务是什么?
(1)应用层:应用层协议用于各个端系统中的应用程序交换信息分组,该信息分组
称为报文
(2)运输层:运输层的作用是在应用程序端点之间传输应用层报文段,在因特网中有
TCP和UDP两种运输协议,任一个都能封装并运输应用层报文,运输层分组称为报文段
(3)网络层:网络层负责将运输层的报文段和目的地址封装成数据报,用于下一层传输
(4)链路层:链路层会把网络层的数据报封装成链路层的帧,并把该帧传递给下一个
结点
(5)物理层:物理层的任务是将链路层每帧中的一个个比特移动到下一个节点,具体
会落实到不同的物理媒介(双绞铜线,光纤等)
24.什么是应用报文?什么是运输层报文段?什么是网络层数据报?什么是链路层帧?
(1)应用层报文指的是在端系统的应用程序之间按照某种协议进行信息交换的分组
(2)运输层报文段指的是通过TCP/UDP等运输层协议对应用层报文进行封装后所产生
的分组,报文段对报文的传输参数进行一定的设置,使其具有某种特性,比如面向连接,确
保传递等
(3)网络层数据报是对运输层报文段和目的地址进行封装后产生的分组,数据报确定了分组的
目的地,使得分组可以通过网络层从发送方传送到接收方
(4)链路层帧是对网络层数据报进行封装,它添加了下一个节点的我具体地址,使得分组能
够传递到下一个节点
25.路由器处理因特网协议栈中的那些层次?链路层交换机处理的是那些层次?主机
处理的是那些层次?
各层对应:1-物理层2-链路层3-网络层4-运输层5-应用层
路由器处理第1层到第3层
链路层交换机处理第1层和第2层
主机处理所有的5层
1.“主机”和“端系统”之间有什么不同?列举几种不同类型的端系统,Web
服务器是一种端系统吗?
在自顶向下中主机等于端系统,两者在概念上是统一的,没有区别
生活中与因特网相连的计算机,智能手机,游戏机等都属于端系统
Web服务器也属于端系统
2.标准对于协议为什么重要?
有了标准,协议才能生效,端系统才能基于协议指定的标准进行通信
第二章
1.简述应用程序体系结构三种类型的特点。
应用程序体系结构:规定如何在端系统上组织应用程序,由研发者设计。
三种类型:
客户机/服务器:
对等(P2P):
客户机/服务器与P2P的混合:
2.什么是套接字、用户代理和Web缓存?简述用户进程和套接字的关系。
套接字:同一台主机内应用层与运输层之间的接口
用户代理:是用户与网络应用程序之间的接口
用户进程与套接字的关系:
(1)进程类似房子,套接字是进程的门
(2)进程通过套接字在网络上发送和接受报文
用户代理:
3.简述P2P文件共享内容定位三种方式的原理。
集中式目录(索引)
目录服务器(大型服务器或服务器场):提供目录服务
收集可共享的对象,建立集中式的动态数据库(对象名称到IP地址的映射)
步骤:
(1)通知:对等方启动时,将其IP地址及可共享内容通知目录服务器
(2)查询内容:用户查询需要共享的对象,获得列表
(3)获取内容:
(4)更新:当对等放获得新对象或删除对象时,通知目录服务器更新
查询洪泛:
层次覆盖
1,8,9,14,19
课后答案:
3.对两进程之间的通信会话而言,那个进程是客户,那个进程是服务器?
答:在一对进程之间的通信会话场景中,发起通信(即在该会话开始发起与其他进程的联系)的进程
被标识为客户,再会话开始时等待联系的进程是服务器。
5.运行在一台主机上的一个进程,使用什么信息来标识运行在另一台主机上的进程?
答:通过IP地址表示另一台主机,通过另一台主机上的目的端口号来标识另一台主机上的程序。
10.握手协议的作用是什么?
答:使客户端与服务器建立起连接,能够开始传递信息
16.假定Alice使用一个基于Web的电子邮件账户向Bob发报文,而Bob使用P0P3从他的邮件服务器访问自己的邮件,讨论
该报文是如何从Alice主机到Bob主机的,要列出两台主机间移动该报文是所用的各种应用层协议
答:
.Alice使用Web的电子邮件账户向Bob发送报文时,Alice的浏览器也就是Web的用户代理,通过HTTP连接到Alice
的邮件服务器,并将报文传送到该邮件服务器上
.然后Alice的邮件服务器通过SMTP连接到Bob的邮件服务器(基于TCP),并将邮件报文传送到Bob的邮件服务器中
.Bob使用它的用户代理(主机),通过POP3协议访问自己的邮件服务器,并以下载保存或下载删除的方式获得Alice的
邮件报文
22.什么是覆盖网络?它包括路由器吗?在覆盖网络中边是什么?
答:
网络:覆盖网络是一种面向应用层的网络,包括对等方和对等方之间由虚拟联络构成的抽象逻辑网。
覆盖网络不包含路由器
覆盖网络中的边就是对等方之间的逻辑链路
ppt:覆盖网络是有TCP连接构成的抽象网络,所有活动对等方和边形成覆盖网络
边:表示对等方之间有一个TCP连接,边不是物理链路
//剩余课后答案:
2.网络体系结构与应用程序体系结构之间有什么区别?
(1)网络体系结构指的是因特网中的五层网络协议
(2)应用体系结构通常是由开发者自己定义的
(3)他们的区别在于:从应用程序研发者角度看,网络体系结构是固定的,并为应用程序
提供了特定的服务集合,另一方面,应用程序体系结构由应用程序研发者设计,规定了如何
在各种端系统上组织该应用程序
(4)应用程序体系架构可以通过应用网络体系架构中的内容,从而使应用程序拥有网络传输
功能。
4.对一个P2P文件共享应用,你同意“一个通信会话不存在客户端和服务器端的概念”的说法吗?
为什么?
我不同意,P2P文件共享应用虽然能够相互传输文件,看起来每个用户即可以当客户,也可以当
服务器,但是具体落实到一次通信会话中,当对等放A请求对等方B发送一个特定的文件时,在这个
通信会话中对等方A是客户,而对等方B是服务器
6.假定你想尽快的处理从远程客户到服务器的事务,你将使用UDP还是TCP?为什么?
我会使用UDP,因为TCP是面向连接的,在传输之前需要进行三次握手,而UDP是无连接的,
可以直接选定合适速率向外传送
11.为什么HTTP,SMTP,FTP,POP3都运行在TCP上,而不是UDP上?
(1)首先要知道TCP几个重要的特性:面向连接,保证数据完整性,保证数据有序到达,有
拥塞控制功能,而上述功能UDP都没有
(2)用户通过浏览器以HTTP协议向服务器发起请求,如果这个数据不完整,服务其将无法
给出正确响应,用户也得不到想要的结果
(3)FTP,SMTP,POP3这一个文件传输协议和两个邮件协议也需要数据的完整性,并且保证
按照一定的顺序交付,所以选择TCP
12.考虑一个电子商务网站需要保存每一个客户的购买记录,描述如何使用cookie来完成该
功能?
用户首次访问电商网站时,需要提供一个用户的唯一标识,电商网站根据用户标识查得用户
信息,并将特定的用户信息作为cookie响应给用户。然后用户在电商网站发起的每个操作都
带上该cookie,电商网站便能保留每个客户的购买记录了。
13.描述Web缓存器是如何减少接收被请求对象的延时的,Web缓存器将减少一个用户请求的
所有对象或只是某些对象的时延吗?为什么?
Web缓存器设置在用户和初始服务器之间,当用户要向初始服务器发起请求时,浏览器会先将
请求定位到Web缓存器上,如果缓存器上有请求对象的副本则直接将该副本响应给客户。如果
缓存器中没有,则从Web缓存器向初始服务器发起对该对象的请求,Web缓存器收到来自初始
服务器的响应之后,自己会保留一份该对象的副本,然后在响应给用户
因此,Web缓存器只能减少缓存过的对象的时延
18.从用户的观点看,POP3协议中下载并删除模式和下载并保存模式有什么区别吗?
从用户角度看是没有的,因为无论采取那种模式,用户都得到了邮件报文,但是对于邮件服务器
就不同了,如果是下载删除,POP3会话结束后就会把标记的邮件报文删除,在此连接上邮件服务
器这些邮件报文就不存在了
20.在BitTorrent中,假设Alice向Bob提供一个30秒间隔的文件吞吐量,Bob将必须进行回报,在
相同的间隔中向Alice提供文件快吗?为什么?
不,Bob不一定进行回报,因为Alice会选取一定数量的“邻居”,并从他们那里获得块,而这个
选择不是基于Alice向谁发送了块就向谁索要快,而是在Alice的对等方列表中向对等方发起请求,选取
响应速度快的前4位上载者来获取快,Alice获取块的伴侣也是不停更新的
22.考虑一个新对等方Alice加入BitTorrent而不拥有任何文件块,没有任何文件块,因此她没有
任何东西可上载,他无法成为任何其他对等方的前四位上载者,那么Alice是怎样得到她的第一个
文件块呢?
Alice在空手加入洪流中,追踪器会随机地从参与对等方集合中选择一个对等方子集,并将子集中
对等方地IP地址发送给Alice,Alice持有这张列表并尝试与列表中所有的对等方建立并行的TCP连接,并
选择前4位的上载者,向他们请求快(最稀缺优先原则)
27.2.7节中所描述的UDP服务器仅需要一个套接字,而TCP服务器需要两个套接字,为什么?如果
TCP服务器支持n个并行连接,每条连接来自不同的客户主机,那么TCP服务器需要多少个套接字
因为UDP是面向无连接的,它只需要一个套接字用于接受和发送,并且可以接收来自不同地址主机
的UDP包,而TCP是面向连接的,除了接受访问的套接字,每和一个客户连接就要创建一个专用的
套接字
n+1
28.对于2.7节所描述的运行在TCP之上的客户-服务器应用程序,服务器为什么必须先于客户程序
运行?对于运行在UDP之上的客户-服务器之上的客户-服务器应用程序,客户程序为什么可以先于
服务器程序运行
建立TCP连接需要经过一个3此握手的过程,如果服务器没有启动根本无法握手,从而无法建立连接
UDP是面向无连接的,就算服务器没有启动,客户程序照样可以把UDP发出去,但服务器可能就收不到
第三章
3.考虑从主机A传输到主机B之间有一条TCP连接,假设从主机A传输到主机B的
TCP报文段具有源端口号x和目的端口号y,对于从主机B传送到主机A的报文段,
源端口和目的端口号分别是多少?
答:源端口号设置为y,目的端口号设置为x
4.描述应用程序开发者为什么可能选择运行在UDP上运行而不是在TCP上运行
的原因
答:即问在什么情况下,UDP的优点明显盖过TCP的缺点
UDP协议是一种记为简化的运输层协议,他不提供不必要的服务,大概就是
在ip协议上加上源和目的地的端口等信息,所以他可以随时地,以任何速率
向其他端系统发送数据
TCP协议有许多优良特性,他确保数据完整性,提供拥塞控制,但这些特性会
增加端到端通信的时延
如果一个应用程序需要提供实时服务,而且能够容忍一定地分组丢失,那么UDP
协议是更好的选择
5.在今天的因特网中,为什么语音和图像流量常常是经过TCP而不是经过UDP发送的
(提示:我们寻找的答案与TCP地拥塞控制机制没有关系)
答:为了保证数据的完整性,分组丢失可能会对语音和图像质量产生影响
6.当某应用程序运行在UDP上时,该应用程序可能得到可靠的数据传输吗?如果
能,如何实现?
答:
可以的
需要通过应用层协议实现。比如谷歌地Chrome浏览器中所使用地QUIC协议
在UDP之上的应用层协议中实现了可靠性
第四章
1.前面讲过运输层的分组名字是报文段,数据链路层的分组名字是
帧。网络层的名字是什么?前面经过路由器和链路层交换机都被称
为分组交换机。路由器与链路层交换机间的根本区别是什么?
答:
网络层分组的名字是数据报
路由器和链路层交换机的根本区别是它们服务于不同的网络层协议。
链路层交换机基于链路层帧的字段值做转发决定,服务于第二层链路
层;路由器基于网络层数据报中的首部字段值做出转发决定,服务于
第三层网络层。
3.我们对网络层执行的转发功能和路由选择功能进行区分。路由选择
和转发的主要区别是什么?
答:
转发是指将分组从一个输入链路接口转移到适当的输出链路接口的本地
动作。动作发生的时间很短,通常用硬件实现。
路由选择是指确定分组从源到目的地所采取的端到端路径的网络范围
处理过程。发生时间较长,通常为几秒,因此用软件实现。
4.路由器中转发表的主要作用是什么?
路由表的作用是确定分组下一步应该发送到哪里?路由器会根据分组
首部的一个或几个字段作为索引,并在转发表中根据索引找到相应的
输出链路接口。
5.因特网的网络层的服务模型是什么?就主机到主机数据报的传递而言,
因特网的服务模型能够保证什么?
答:
因特网的网络层提供了单一的服务模型,称为尽力而为服务。就主机到
主机数据报的传递而言,因特网的服务模型什么也保证不了,传递的分组
既不能保证以它们发送的顺序被接收,也不能保证它们最终交付;既不能
保证端到端时延,也不能保证有最小的带宽。
21.路由器有IP地址吗?如果有,多少个?
路由器的IP地址,这里的有IP地址并不是说有一个IP地址标志一台路由器,
而是说路由器的一个输入或输出端口对应着一个IP地址。
所以一个路由器拥有的IP地址数是不确定的,加入一个路由器有一个输入
端和两个输出端,那么对应就有三个IP地址,分别对应三个端口。
22.假设在一个源主机和一个目的主机之间有3台路由器,不考虑分片,一个
从源主机发送到目的主机的IP数据报将通过多少个接口?为了将数据报
从源移动到目的地需要多少个转发表?
答:
通过一个路由器需要通过2个接口,端到端之间一共有3太路由器,所以
数据报一共要通过6个接口
经过3个路由器,需要检索3个转发表。
25.假设某应用20ms生成一个40字节的数据块,每块封装在一个TCP
报文段中,TCP报文段再封装在一个IP数据报中,每个数据报的开销
有多大?应用数据所占的百分比是多少?
TCP报文段首部是20字节
数据报报文首部是20字节
所以每个数据报的开销为80字节,应用数据所占的百分比是50%
4.比较和对照链路状态和距离矢量这两种路由选择算法。
在距离矢量算法中,每个节点仅与它的直接相邻的邻居交谈,但它为
邻居提供了它自己到网络中所有其他结点的最低开销估计,而链路状态
算法需要全局信息。
链路状态路由选择算法距离矢量路由选择算法
报文复杂度相对较高相对较低
收敛速度相对较快相对较慢
健壮性相对较强较弱
5.在距离矢量路由选择中的“无穷计数”是什么意思?
由于链路开销增加的信息传播得很慢,如果某条链路上的开销突然有一个
巨大的增幅,会造成路由选择环路,有时也称为无穷计数。
10.定义和对比下术语:子网,前缀和BGP路由
子网:在一定范围内多个段系统构成的网络,它们的网络地址具有
相同的前缀
前缀:值IP地址中前面的部分
BGP路由:当路由器通过BGP链接通告前缀时,它在前缀中包括一些BGP
属性,前缀及其属性称为路由。