《计算机网络自顶向下方法习题答案(中文版).pdf》由会员分享,可在线阅读,更多相关《计算机网络自顶向下方法习题答案(中文版).pdf(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、WRI研究生 06011 1 1 1 复习题复习题1.没有不同。主机和端系统可以互换。端系统包括 PC,工作站,WEB 服务器,邮件服务器,网络连接的 PDA,网络电视等等。2.假设爱丽丝是国家 A 的大使,想邀请国家 B 的大使鲍勃吃晚餐。爱丽丝没有简单的打个电话说“现在我没一起吃晚餐吧”。而是她先打电话给鲍勃建议吃饭的日期与时间。鲍勃可能会回复说那天不行,另外一天可以。爱丽丝与鲍勃不停的互发讯息直到他们确定一致的日期与时间。鲍勃会在约定时间(提前或迟到不超过 15 分钟)出现再大使馆。外交协议也允许爱丽丝或者鲍勃以合理的理由礼貌的退出约会。3.联网(通过网络互联)的程序通常包括 2 个,每
2、一个运行在不同的主机上,互相通信。发起通信的程序是客户机程序。一般是客户机请求和接收来自服务器程序的服务。4.互联网向其应用提供面向连接服务(TCP)和无连接服务(UDP)2 种服务。每一个互联网应用采取其中的一种。面相连接服务的原理特征是:1在都没有发送应用数据之前 2 个端系统先进行“握手”。2提供可靠的数据传送。也就是说,连接的一方将所有应用数据有序且无差错的传送到连接的另一方。3提供流控制。也就是,确保连接的任何一方都不会过快的发送过量的分组而淹没另一方。4提供拥塞控制。即管理应用发送进网络的数据总量,帮助防止互联网进入迟滞状态。无连接服务的原理特征:1没有握手2没有可靠数据传送的保证
3、3没有流控制或者拥塞控制5.流控制和拥塞控制的两个面向不同的对象的不同的控制机理。流控制保证连接的任何一方不会因为过快的发送过多分组而淹没另一方。拥塞控制是管理应用发送进网络的数据总量,帮助防止互联网核心(即网络路由器的缓冲区里面)发生拥塞。6.互联网面向连接服务通过使用确认,重传提供可靠的数据传送。当连接的一方没有收到它发送的分组的确认(从连接的另一方)时,它会重发这个分组。7.电路交换可以为呼叫的持续时间保证提供一定量的端到端的带宽。今天的大多数分组交换网(包括互联网)不能保证任何端到端带宽。当发生拥塞等网络问题时,TDM 中的数据丢失可能只会是一部分,而 FDM 中就可能是大部分或全部。
4、8.在一个分组交换网中,在链路上流动的来自不同来源的分组不会跟随任何固定的,预定义的模式。在 TDM 电路交换中,每个主机从循环的 TDM 帧中获得相同的时隙。9.t0 时刻,发送主机开始传输。在 t1=L/R1 时刻,发送主机完成发送并且整个分组被交换机接收(无传输时延)。因为交换机在 t1 时刻接收到了整个分组,它可以在 t1 时刻开始向接收主机发送分组。在 t2=t1+L/R2 时刻,交换机完成传输且接收主机收到了整个分组(同样,无传输时延)。所以,端到端实验是 L/R1+L/R2。10.在一个虚电路网络中,每个网络核心中的分组交换机都对经过它传输的虚电路的连接状态信息进行维护。有的连接
5、状态信息是维护在一个虚电路数字传输表格中。11.面向连接的 VC 电路的特点包括:a.建立和拆除 VC 电路是需要一个信令协议;b.需要在分组交换中维持连接状态。有点方面,一些研究者和工程人员争论到:使用 VC 电路可以更容易提供 QoS 业务,如:保证最小传输率的业务,以及保证端到端的最大分组延时的业务。12.a.电话线拨号上网:住宅接入;b.电话线 DSL 上网:住宅接入或小型办公;c.混合光纤同轴电缆:住宅接入;d.100M交换机以太网接入:公司;e.无线局域网:移动接入;f.蜂窝移动电话(如 WAP):移动。13.一个第一层 ISP 与所有其它的第一层 ISP 相连;而一个第二层 IS
6、P 只与部分第一层 ISP 相连。而且,一个第二层 ISP 是一个或多个第一层 ISP 的客户。14.POP 是 ISP 网络中一个或多个路由器构成的一个组,其它 ISP 中的路由器也可以能连接到这个 POP。NAP 是一个很多 ISP(第一层,第二层,以及其它下层 ISP)可以互联的局部网络。15.HFC 的带宽是用户间共享的。在下行信道,所有的分组从头到尾由同一个源发出,因此在下行信道不会发生冲突。16.以太网的传输速率有:10Mbps,100Mbps,1Gbps 和 10Gbps。对于一个给定的传输速率,如果用户单独在线路上传输数据,则可以一直保持这个速率;但是如果有多个用户同时传输,则
7、每个都不能达到所给定的速率(带WRI研究生 0601宽共享)。17.以太网通常以双绞线或者细的同轴电缆为物理媒体,也可以运行在光纤链路和粗同轴电缆上。18.拨号调制解调器:最高 56Kbps,带宽专用;ISDN:最高 128Kbps,带宽专用;ADSL:下行信道 58Mbps,上行信道最高 1Mbps,带宽专用;HFC:下行信道 1030Mbps,上行信道一般只有几 Mbps,带宽共享。19.时延由处理时延、传输时延、传播时延和排队时延组成。所有这些时延除了排队时延都是固定的。20.5 种任务为:错误控制,流量控制,分段与重组,复用,以及连接建立。是的,这些任务可以由两层(或更多层)来执行,比
8、如:经常在多于一个层次上执行错误控制。21.英特网协议栈的 5 个层次从上倒下分别为:应用层,传输层,网络层,链路层,和物理层。每一层的主要任务见 1.7.1 节。应用层是网络应用程序及其应用层协议存留的地方;运输层提供了一个在应用程序的客户机和服务器之间传输应用层报文的服务;网络层负责将称为数据报的网络层分组从一台主机移动到另一台主机;链路层:通过一系列分组交换机(Internet 中的路由器)在源和目的地之间发送分组;物理层:将该帧中的一个一个比特从一个节点移动到下一个节点。22.应用层报文:应用程序要发出的在传输层上传递的数据;传输层报文段:将应用层报文加上传输层包头,由传输层管理和封装
9、的信息;网络层数据报:将传输层报文段加上网络层包头之后封装;链路层帧:将网络层数据报加上链路层包头之后封装。23.路由器处理第一层到第三层(这是一个善意的谎话?本人理解为“这样说不确切”因为现代路由器常常还要扮演防火墙或者高速缓存器的角色,一次也处理第四层);链路交换机处理第一层和第二层;主机处理所有的 5 层。习题习题1.本题不止一个答案,很多协议都能解决这个问题,下面是一个简单的例子:WRI研究生 06012.a.电路交换网更适合所描述的应用,因为这个应用要求在可预测的平滑带宽上进行长期的会话。由于传输速率是已知,且波动不大,因此可以给各应用会话话路预留带宽而不会有太多的浪费。另外,我们不
10、需要太过担心由长时间典型会话应用积累起来的,建立和拆除电路时耗费的开销时间。b.由于所给的带宽足够大,因此该网络中不需要拥塞控制机制。最坏的情况下(几乎可能拥塞),所有的应用分别从一条或多条特定的网络链路传输。而由于每条链路的带宽足够处理所有的应用数据,因此不会发生拥塞现象(只会有非常小的队列)。3.a.因为这 4 对相邻交换机,每对之间可以建立 n 条连接,;因此最多可以建立 4n 条连接。b.可以通过右上角的交换机建立 n 条连接,并且可以通过左下角交换机建立 n 条连接,因此最多可以建立 2n 条连接。4.由于收费站间隔 100km,车速 100km/h,收费站以每 12m 通过一辆汽车
11、的速度提供服务。a)10 辆车,第一个收费站要花费 120s,即 2 分钟来处理。每一辆车要达到第二个收费站都会有 60 分钟的传输延时,因此每辆车要花费 62 分钟才能达到第二个收费站,从第二个收费站到第三个收费站重复这一过程。因此,(端到端)总延时为124 分钟。b)每两个收费站之间的延时为 712 秒60 分61 分 24 秒,(端到端)总延时362427,248s,即 112 分 48秒。5.a)传输一个分组到一个链路层的时间是(L+h)/R。Q 段链路的总时间为:Q(L+h)/R。所以发送文件所需要总的时间为:ts(L+h)/Q。b)Q(L2h)/Rc)由于链路上没有存储转发延时,因
12、此,总延时为:ts(L+h)/R。6.a)传播时延 dpropm/s 秒b)传输时延 dtrans=L/R 秒c)端到端时延 dendtoend(m/sL/R)秒d)该分组的最后一个 bit 刚刚离开主机 A。e)第一个比特在链路中,还没有到达 B。WRI研究生 0601f)第一个比特已经到达 B。g)m=LS/R=1002.5e8/28e3893km7.考虑分组中的第一个 bit。在这个 bit 被传输以前,先要收集这个分组中的其它 bit,这个需要:488/64e3 6e3s6ms分组的传输延时:488/1e6=384e-6 s=0.384ms传播时延:2ms到该 bit 被解码的时延为:
13、60.38428.384ms(英文答案中的那个“.”表示乘)8.a)由于每个用户需要十分之一的带宽,因此可以支持 10 个用户。b)p=0.1c)d)我们用中心极限定理来求这个概率的近似解。令 Xj表示 J 个用户同时传输的概率,如 P(Xj=1)=p,则:所以所求概率约为:0.0019.10.传输这 N 个分组需要 LN/R 秒。当一批 N 个分组到达时,缓存器内是空的。第一个分组没有排队时延,第二个分组的排队时延为 L/R 秒.第 N 个分组的排队时延为:(N-1)L/R 秒,所以平均排队时延为:11.a)传输时延为 L/R,总时延为b)令 x=L/R,则总时延与 x 的函数为:总时延x/
14、(1ax)。12.a)一共有 Q 个节点(源主机喝 N-1 个路由器)用表示第 q 个节点的处理时延。用 Rq表示第 q 个节点处的传输速率,令。用表示通过第 q 条链路的传播时延。则:WRI研究生 0601b)用表示节点 q 处的平均排队延时,则:13.实验题?不会考吧。14.a)“带宽时延”积(1e7/2.5e8)*1e6=40,000bitb)40000bitc)一条链路的带宽时延积就是这条链路上具有的比特数的最大值。d)1e7/4e4=250m,比一个足球场的长度还长。e)s/R15.2.5e8/1e6=25bps16.a)(1e7/2.5e8)*1e9=40,000,000bitb)
15、400,000bit(包长度)c)1e7/4e525m17.a)传播时延1e7/2.5e8=40ms;传输时延4e5250/2.5e8=400ms因此总延时为:440msb)传播时延24080ms(发送及返回确认);传输时延4e4250/2.5e8=40ms,传送 10 个分组,总时延10(8040)1200ms1.2s18.a)地球同步卫星距离地面 3600km,因此该链路的传播时延3600e3/2.4e8=150msb)150e-310e6=1,500,000c)6010e66e8bit19.我们假设旅客和行李对应到达协议栈顶部的数据单元,当旅客检票的时候,他的行李也被检查了,行李和机票被
16、加上标记。这些信息是在包裹层被添加的(if Figure 1.20 that 不知道怎么翻译.)允许在包裹层使服务生效或者在发送侧将旅客和行李分离,然后在目标测(如果可能的话)重新组合他们。当旅客稍后通过安检,通常会另外添加一个标记,指明该旅客已经通过了安检。这个信息被用于保证旅客的安全运输。(答非所问?)20.a)将报文从源主机发送到第一个分组交换机的时间7.5e6/1.5e6=5s。由于使用存储转发机制,报文从源主机到目标主机的总时间53(跳)15s。b)将第一个分组从源主机发送到第一个分组交换机的时间1.5e3/1.5e6=1ms.第一个分组交换机完成接收第二个分组所需的时间第二个分组交
17、换机完成接收第一个分组所需的时间21ms2ms。c)目标主机收到第一个分组所需的时间1ms3(跳)3ms,此后每 1ms 接收一个分组,因此完成接收 5000个分组所需的时间3499915002ms5.002s。可以看出采用分组传输所用的时间要少的多(几乎少 1/3)。d)缺点:1)分组在目标侧必须按顺序排放;2)报文分组产生了很多分组,由于不论包的大小如何,包头大小都是不变的,报文分组中包头子节的销耗会高于其它方式。21.JAVA 程序试验。略22.目标侧接受到第一个分组所需的时间。之后,每(S+40)/R 秒,目标测接收到一个分组。所以发送所有文件所需的时间:为了计算最小时延对应的 S,对
18、 delay 进行求导,则:WRI研究生 06012 2 2 2 复习题复习题1.The Web:HTTP;file transfer:FTP;remote login:Telnet;Network News:NNTP;email:SMTP.2.P51 网络体系结构是指以分层的方式来描述通信过程的组织体系。(例如五层网络结构)另一方面,应用体系结构是由应用程序的研发者设计,并规定应用程序的主要结构(例如 客户机/服务器或 P2P)从应用程序研发者的角度看,网络体系结构是固定的,并为应用程序提供了特定的服务集合。3.P52 在即时讯息中,发起人连接到中心服务器,查找接收方的 IP 地址是典型的客
19、户机/服务器模式。在这之后,即时信息可以在相互通信的双方进行直接的端到端通信。不需要总是打开的中间服务器。4.P53 发起通信的进程为客户机,等待联系的进程是服务器。5.No.As stated in the text,all communication sessions have a client side and a server side.In a P2P file-sharingapplication,the peer that is receiving a file is typically the client and the peer that is sending the fi
20、le is typically theserver.6.P54 目的主机的 IP 地址和目的套接字的端口号。7.在日常生活中你或许会使用 Web 浏览器和邮件阅读器。你或许还会用到 FTP 用户代理,Telnet 用户代理,音频/视频播放器用户代理(比如 Real Networks player),即时信息代理,P2P 文件共享代理。8.There are no good examples of an application that requires no data loss and timing.If you know of one,send an e-mailto the authors
21、.9.当两个通信实体在相互发送数据前第一次交换控制分组信息时使用握手协议。SMTP 在应用层使用握手协议。然而 HTTP 不是这样。10.P56、57 因为与这些协议相联系的应用都要求应用数据能够被无差错的有序的接收。TCP 提供这种服务,而 UDP不提供。TCP 提供可靠的数据传输服务,而 UDP 提供的是不可靠数据传输。11.P66 当用户第一次访问一个站点。这个站点返回一个 cookie 号码。这个 cookie 码被存储在用户主机上并由浏览器管理。在随后的每次访问(和购买)中,浏览器将这个 cookie 码回送该站点。这样当用户访问该站点时,都会被该站点所知道。12.P62 在非流水线
22、的 HTTP 持久连接中,客户机只能在接收到服务器发来的前一个响应后才能发出新的请求。在流水线的 HTTP 持久连接中,浏览器只要有需要就会发出请求,不需要等待服务器的响应信息。HTTP/1.1 的默认模式使用了流水线方式的持久连接13.P67 Web 缓存能够使用户所希望的内容距离用户更近,或许就在用户主机所连接的局域网内。Web 缓存能够减小用户请求的所有对象的时延,即使是该对象没有被缓存,因为缓存能够减少链路上的流量。因此改善了所有应用的性能。因为一般情况下客户机与Web缓存器的瓶颈带宽要比客户机与起始服务器之间的瓶颈带宽大的多。如果用户所请求的对象在 Web 缓存器上,则该 Web 缓
23、存器可以迅速将该对象交付给用户。14.实验题,应该不考吧。15.P70、71 FTP 使用两个并行的 TCP 连接,一个连接用来传送控制信息(例如一个传送文件的请求),另一个连接用于准确地传输文件。因为控制信息不是在文件传输地连接上传送,所以 FTP 的控制信息是带外传送的。16.P81 信息从 Alice 的主机发送到她的邮件服务器,使用 HTTP 协议。然后邮件从 Alice 的邮件服务器发送到 Bob的邮件服务器,使用 SMTP 协议。最后 Bob 将邮件从他的邮件服务器接收到他的主机,使用 POP3 协议。17.无。18.P80 在下载并删除方式下,在用户从 POP 服务器取回他的邮件
24、后,信息就被删除调。这就为移动的用户带来一个问题。因为该用户有可能想从不同的机器上访问邮件。(办公 PC,家用 PC 等)。在下载并保留方式下,在用户取回邮件后,邮件不会被删除。这同样也会带来一些不便。因为每次当用户在一台新的机器上取回存储的邮件时,所有的没有被删除的信息都将会被传送的新的机器上(包括非常老的邮件)。19.P88 是的,一个机构的邮件服务器和 Web 服务器可以有完全相同的主机名别名。MX 记录被用来映射邮件服务器的主机名到它的 IP 地址。如果 TypeMX,则 Value 是别名为 Name 的邮件服务器的规范主机名。RR:resourcerecord.为了获得邮件服务器的
25、规范主机名,DNS 客户机应当请求一条 MX 记录;而为了获得其他服务器的规范主机名,DNS 客户机应当请求 CNAME 记录。Type=CNAME20.P93 P2P 文件共享系统的覆盖网络包括参与到文件共享系统中的节点和节点间的逻辑连接。如果 A 和 B 之间有一条非永久性的 TCP 连接,那么我们说在 A 和 B 之间有一条逻辑连接(在图论领域被称为一条“边”)。一个覆盖网络不包括路由器。在 Gnutella 网络中,当一个节点想要加入到 Gnutella 网络,它首先发现已经在网络中WRI研究生 0601的一个或多个节点的 IP 地址。然后它向这些节点发送加入请求信息。当这个节点接收到
26、确认信息时,它就成为了 Gnutella 网络的一员。节点通过周期性的更新信息保持它们的逻辑连接。(在 Gnutella 中,对等方形成了一个抽象的逻辑网络,该网络被称为覆盖网络。用图论的术语来说,如果对等方 A 与另一个对等方 B 维护了一条TCP 连接,那么我们说在 A 和 B 之间有一条边。该图由所有活跃的对等方和连接的边(持续的 TCP 连接)组成,该图定义了当前的 Gnutella 覆盖网络。21.Three companies as of this writing(August 2004)are KaZaA,eDonkey,Bit Torrent.Napster 提供集中式目录来跟
27、踪位于对等方中的内容。Gnutella 使用全分布方法定位内容。KaZaA 结合了前二者的思想,通过指派少量更有权力的对等方作为组长,利用了对等方的不均匀性,形成了一个层次覆盖网络的顶层。22.P99、104 对于 UDP 服务器,没有欢迎套接字,所有来自不同客户机的数据通过同一个套接字进入服务器。对于 TCP 服务器,有欢迎套接字,每次一个客户机建立一个到服务器的连接,就会建立一个新的套接字。因此,为了同时支持 n 个连接,服务器需要 n1 个套接字。23.对于 TCP 应用,一旦客户机开始执行,它就试图建立一个到服务器的 TCP 连接。如果 TCP 服务器没有运行,那么客户机就会建立连接失
28、败。对于 UDP 应用,客户机不需要在其执行的时候立即建立连接(或试图与 UDP服务器通信)。习题习题1.a)FP62b)TP62c)FP61d)FP64 Data 首部行表示服务器产生并发送响应报文的日期和时间。2.Access control commands:USER,PASS,ACT,CWD,CDUP,SMNT,REIN,QUIT.Transfer parameter commands:PORT,PASV,TYPE,STRU,MODE.Service commands:RETR,STOR,STOU,APPE,ALLO,REST,RNFR,RNTO,ABOR,DELE,RMD,MRD,P
29、WD,LIST,NLST,SITE,SYST,STAT,HELP,NOOP.3.SFTP:115,NNTP:119.4.Application layer protocols:DNS and HTTP Transport layer protocols:UDP for DNS;TCP for HTTP5.Persistent connections are discussed in section 8 of RFC 2616(the real goal of this question was to get you to retrieveand read an RFC).Sections 8.
30、1.2 and 8.1.2.1 of the RFC indicate that either the client or the server can indicate to theother that it is going to close the persistent connection.It does so by including the connection-token close in theConnection-header field of the http request/reply.客户机和服务器都可以向对方声明它准备关闭持久连接。通过在 HTTP 请求/响应中的 C
31、onnection 首部行中包含Connection:close 来完成此项操作。加密服务?6.The total amount of time to get the IP address is RTT1+RTT2+RTTn.Once the IP address is known,RTT0elapsesto set up the TCP connection and anotherRTT0elapses to request and receive the small object.The total response timeis 2RTT0+RTT1+RTT2+RTTn7.a)RTT1+
32、RTTn+2RTT032RTT08RTT0RTT1+RTTnb)RTT1+RTTn+2RTT02RTT04RTT0RTT1+RTTnc)RTT1+RTTn+2RTT0RTT03RTT0RTT1+RTTn8.HTTP/1.0:GET,POST,HEAD.P63 当浏览器请求一个对象时,使用 GET 方法。HTTP 客户机常常在用户提交表单时使用 POST 方法,例如用户向搜索引擎提供搜索关键词。实体中包含的就是用户在表单字段中的输入值。当服务器收到 HEAD 方法的请求时,会用一个 HTTP 报文进行响应,但是并不返回请求对象。应用程序开发者常用 HEAD 方法进行故障跟踪。HTTP/1.1:G
33、ET,POST,HEAD,OPTIONS,PUT,DELETE,TRACE,CONNECT.See RFCs for explanations.PUT 方法常与 Web 发布工具联合使用,它允许用户把对象上传到指定 Web 服务器的指定路径下。PUT 方法也被那些需要向 Web 服务器上传对象的应用程序使用。DELETE 方法允许用户或者应用程序删除 Web 服务器上的对象。9.a)通过一个传输速率为 R 的链路传输长度为 L 的对象需要的时间是 L/R。平均时间是对象的平均大小除以 R:=(900,000 bits)/(1,500,000 bits/sec)=0.6 sec 链路的流量强度是
34、:(1.5 requests/sec)(0.6 sec/request)=0.9.因此,平均访问时延是:/(1-)=(0.6 sec)/(1-0.9)=6 seconds.因此,总的平均响应时间是:6 sec+2 sec=8 sec.b)因为有 40的请求有机构的网络满足,所以访问链路的流量强度减少了 40。因此平均访问时延是:(0.6sec)/1 (0.6)(0.9)=1.2 seconds 如果请求由缓存器满足的话,其响应时间近似为 0。当缓存器未命中时,平均响应时间是 1.2 sec+2 sec=3.2 sec 因此平均响应时间是:(0.4)(0 sec)+(0.6)(3.2 sec)=
35、1.92 seconds 因此平均响应WRI研究生 0601时间由 8sec 减少到 1.92sec。10.无。11.UIDL 是唯一识别码列表的缩写。当一个 POP3 客户端发出一个 UIDL 命令,服务器返回储存在用户邮箱里的所有邮件的唯一邮件识别码。这个命令对下载并保留方式有用。通过保留上次收取的邮件的列表信息,客户能够使用 UIDL 命令来确定在服务器上的哪些邮件是已经被阅读过的。12.a)C:dele 1C:retr 2S:(blah blah S:.blah)S:.C:dele 2C:quitS:+OK POP3 server signing offb)C:retr 2S:blah
36、 blah S:.blahS:.C:quitS:+OK POP3 server signing offc)C:listS:1 498S:2 912S:.C:retr 1S:blah.S:.blahS:.C:retr 2S:blah blah S:.blahS:.C:quitS:+OK POP3 server signing off13.a)对于一个给定的域名,IP 地址或网络管理员名的输入,whois 数据库能被用来定位相应的登记人,whois 服务器,DNS 服务器等。f)一个入侵者能使用 whois 数据库和 nslookup 工具来检测目标机构的 IP 地址范围,DNS 服务器地址等。g
37、)通过分析攻击包的源地址信息,受害者能够使用 whois 来掌握有关于攻击来源的域的信息,并能够通知来源域的管理员。14.因为是全双工链路,你在每个方向都有 128kbps,上载不会影响下载。然而,对于不对称链路,由于 metered acks上载能够显著的减少下载速率。15.在覆盖网络中有 N 个节点和 N(N-1)/2 条边。16.a)在这种情况下,这五个 Gnutella 客户都立即知道它们少了一个邻居。考虑五个客户中的一个,比如 Bob。假设当 X 离开后,Bob 只有三个邻居。这是 Bob 需要同另一个对等点建立 TCP 连接。Bob 要有一个活跃对等点的最新列表;他不断地连接列表中
38、地对等点知道其中一个接收它的 TCP 连接请求。b)在这种情况下,Bob 不能立即知道 X 已经离开了。只有当他尝试向 X 发送信息(query 或 ping)时,Bob 才会知道 X 已经离开。当 Bob 尝试发送信息时,Bob 的 TCP 将会产生数个不成功的连接信息。这时 Bob 的 TCP 将会通知 Gnutella 客户机 X 已经离开。然后 Bob 将会尝试与一个新的对等点建立 TCP 连接,以此重建第五个连接。17.a)在直接连接 Bob 和 Alice 的 TCP 上传送 QueryHit 信息的优点是 QueryHit 信息在因特网的基本路由上传送,没WRI研究生 0601有
39、经过中间对等点,因此,从 Bob 到 Alice 的传送信息的时延要短。缺点是每个有匹配信息的对等点都要求 Alice打开一个 TCP 连接;因此 Alice 或许不得不为一个查询打开数十或数百个 TCP 连接。并且,当 Alice 在 NAT 后面时情况会更复杂。b)当一个 Query 信息到达一个对等点时,该对等点就将 MessageID 和与信息到达相关的 TCP 套接字记录在列表中。当该对等点接收到带有同样 MessageID 的 QueryHit 信息时,它就检索列表来查询到它应该将信息发往哪个套接字。c)当 Query 信息到达 Bob 时,它将包含信息从 Alice 到达 Bob
40、 所经过的所有对等点的 IP 地址的顺序列表。当Bob 回传一个 QueryHit 信息时,它将把这个顺序列表拷贝到信息中,当一个对等点接收到 QueryHit 信息时,他就能用这个列表来决定它要发送的下一个对等点。18.对于 Ping/Pong 信息的状况答案没有改变,只需把 Query 信息变为 Ping 信息,QueryHit 信息变为 Pong 信息。19.a)每一个超级组长大约负责 2002=40,000 个对等点。因此,我们将需要大约 100 个超级组长来支持 4 百万的对等点。b)每个组长将储存其子对等方共享的所有文件的元数据;一个超级组长将储存其子组长所储存的所有元数据。一个普
41、通对等方首先将发送一个 query 到它的组长。这个组长将以一个匹配回应,并有可能将这个 query 发送给它的超级组长。超级组长将回应一个匹配信息(通过覆盖网络)。超级组长还有可能进一步将这个 query 发送给其他的超级组长。20.Alice 发送她的 query 到至多 N 个邻居。每个邻居又发送这个 query 到至多 M=N-1 个邻居。这些邻居中的每一个又将这个 query 发送到至多 M 个邻居,因此最大的查询报文数为:N+NM+NM2+NM(K-1)=N(1+M+M2+M(K-1)=N(1-MK)/(1-M)=N(N-1)K-1/(N-2).21.a)如果先运行 TCP 客户机
42、,那么客户机将试图与不存在的服务器进程建立 TCP 连接。TCP 连接将无法完成。b)UDP 客户机不和服务器建立 TCP 连接。因此,先运行 UDP 客户机,再运行 UDP 服务器是可以的,不会出错。当客户机和服务器运行起来后,你可以使用该应用程序再客户机上输入一行。d)如果使用了不同的端口号,那么客户机将会试图和一个错误的进程或一个不存在的进程建立 TCP 连接,将会出错。22.See Web-server programming assignment for this chapter for guidance.23.在原来的行中,UDP 客户机在创建一个套接字时没有指定端口号,在这种情况
43、下,编码让下面的操作系统选择一个端口号。在替换行中,当 UPD 客户机执行时,一个 UDP 套接字以端口号 5432 建立。UDP 服务器需要知道客户机端口号以便于它能够将分组回送给正确的客户机套接字。查看 UDP 服务器的编码我们就会看到客户机的端口号不是固定在服务器编码中的;相反,UDP 服务器通过拆开它从客户机接收到的数据报(使用 getPort())来确定客户机的端口号。因此 UDP 服务器能与客户机的任何端口号协同工作,包括 5432。所以 UDP 服务器不需要修改。Before:Client socket=x(chosen by OS)Server socket=9876After
44、:Client socket=5432Server socket=9876WRI研究生 06013 3 3 3 复习题复习题1.P127 源端口号为 y,目的端口号为 x。2.P 131 应用程序开发者可能不想其应用程序使用 TCP 的拥塞控制,因为这会在出现拥塞时降低应用程序的传输速率。通常,IP 电话和 IP 视频会议应用程序的设计者选择让他们的应用程序运行在 UDP 上,因为他们想要避免 TCP 的拥塞控制。还有,一些应用不需要 TCP 提供的可靠数据传输。3.P131 是的,应用程序开发者可以将可靠数据传输放到应用层协议中完成。但是这需要相当大的工作量和进行调试。4.a)false b
45、)false c)true d)false e)true f)false g)false5.a)20 bytes(110-90=20bytes)b)ack number=90P155 第一个包丢失,发送第一个包之前的一个包的 ACK6.P155 3 个报文段,第一个报文段,客户机到服务器,seq43,ack80;第二个报文段,服务器到客户机,seq80,ack44;第三个报文段,客户机到服务器,seq44,ack81。7.R/2P180 R/28.P176 错误,其阈值将被设置为拥塞窗口目前值的一半(乘性减)。习题习题1.A S 源端口号:467 目的端口号:23b)B S 源端口号:513
46、目的端口号:23c)S A 源端口号:23 目的端口号:467d)S B 源端口号:23 目的端口号:513e)Yes.f)No.2.P128 假设主机 A,B,C 的 IP 地址为 a,b,c.(a,b,c 各不相同)到主机 A:源端口80,源 IP 地址b,目的端口26145,目的 IP 地址a;到主机 C:左边进程:源端口80,源 IP 地址b,目的端口7532,目的 IP 地址c;到主机 C:右边进程:源端口80,源 IP 地址b,目的端口26145,目的 IP 地址c;3.P132 UDP 检查和01010101+011100001100010111000101+0100110000
47、0100011 的补码11101110为了检测错误,接收方将四个字相加(三个原始字和一个检测字)。如果结果包含 0,那么接收方就知道分组中存在错误。所有的 1bit 错误都将被检测出来,但是年个个比特的错误有可能被忽略(例如,如果第一个字的最后一个数变为 0,并且第二个字的最后最后一个数变为 1)。4.P138 假设发送方处于“等待来自上层的调用 1”状态,接收方处于“等待来自下层的 1”。发送方发送一个带有序列号 1 的分组,然后转到“等待 ACK 或 NAK1”的状态等待 ACK 或 NAK。假设现在接收方正确接收到带有序列号 1 的分组,发送一个 ACK,然后转入“等待来自下层的 0“状
48、态,等待带有序列号 0 的分组。然而,ACK 出错了。当 rdt2.1 发送方接收到出错的 ACK,它就重发带有序列号 1 的分组。然而,接收方在等待带有序列号 0 的分组并在它没有收到带有序列号 0 的分组时一直发送 NAK。因此发送方会一直发送带有序列号 1 的分组,这时接收方会一直发送这个分组的 NAK 信息。两边都不会从这个状态中跳出,进入了死循环。5.P140 为了回答这个问题,首先考虑为什么我们需要序列号。我们看到发送方需要序列号以便于接收方能够区分出一个分组是不是已经接收到的分组的重复。考虑 ACK 信息,发送方不需要这个信息(也就是一个 ACK 的序列号)来告诉发送方检测到一个
49、重复的 ACK.因为当他接收到原始 ACK 信息后它就转入下一个状态,所以一个重复的 ACK 信息对 rdt3.0 的发送方是很明显的。重复的 ACK 信息不是发送方需要的 ACK 信息,因此被 red3.0WRI研究生 0601发送方忽略了。6.P139 rdt3.0 协议的发送方与 rdt2.2 协议的发送方的不同之处在于引入了超时机制.我们已经看到超时机制地引入增加了从发送方到接收方数据流中出现重复分组地可能性.然而,rdt2.2 协议地接收方已经能够处理重复分组.(在rdt2.2 中当接收方发送地 ACK 丢失时,发送方就会重传旧的数据.这时接收方就会接收到重复的分组.)因此 rdt3
50、.0中的接收方同 rdt2.2 中的接收方相同.7.Suppose the protocol has been in operation for some time.The sender is in state“Wait for call from above”(top lefthand corner)and the receiver is in state“Wait for 0 from below”.The scenarios for corrupted data and corrupted ACKare shown in Figure 1.Figure 1:rdt 3.0 scenari