《计算机网络》第五版课后习题解答 下载本文

答:端口的作用是对TCP/IP 体系的应用进程进行统一的标志,使运行不同操作系统 的计算机的应用进程能够互相通信。

熟知端口,数值一般为0~1023.标记常规的服务进程;

登记端口号,数值为1024~49151,标记没有熟知端口号的非常规的服务进程; 5—10 试说明运输层中伪首部的作用。 答:用于计算运输层数据报校验和。

5—11 某个应用进程使用运输层的用户数据报UDP,然而继续向下交给IP层后,又封装 成IP数据报。既然都是数据报,可否跳过UDP而直接交给IP层?哪些功能UDP 《计算机网络》第五版课后习题解答 整理编辑:我不是地豆子40 提供了但IP没提提供?

答:不可跳过UDP 而直接交给IP 层

IP 数据报IP 报承担主机寻址,提供报头检错;只能找到目的主机而无法找到目的 进程。

UDP 提供对应用进程的复用和分用功能,以及提供对数据差分的差错检验。

5—12 一个应用程序用UDP,到IP层把数据报在划分为4个数据报片发送出去,结果前 两个数据报片丢失,后两个到达目的站。过了一段时间应用程序重传UDP,而IP 层仍然划分为4 个数据报片来传送。结果这次前两个到达目的站而后两个丢失。试 问:在目的站能否将这两次传输的4 个数据报片组装成完整的数据报?假定目的站 第一次收到的后两个数据报片仍然保存在目的站的缓存中。 答:不行

重传时,IP 数据报的标识字段会有另一个标识符。

仅当标识符相同的IP 数据报片才能组装成一个IP 数据报。

前两个IP 数据报片的标识符与后两个IP 数据报片的标识符不同,因此不能组装成 一个IP 数据报。

5—13 一个UDP用户数据的数据字段为8192季节。在数据链路层要使用以太网来传送。 试问应当划分为几个IP数据报片?说明每一个IP数据报字段长度和片偏移字段的 值。 答:6 个

数据字段的长度:前5 个是1480 字节,最后一个是800 字节。 片偏移字段的值分别是:0,1480,2960,4440,5920 和7400.

5—14 一UDP用户数据报的首部十六进制表示是:06 32 00 45 00 1C E2 17.试求源端口、 目的端口、用户数据报的总长度、数据部分长度。这个用户数据报是从客户发送给 服务器发送给客户?使用UDP的这个服务器程序是什么?

解:源端口1586,目的端口69,UDP 用户数据报总长度28 字节,数据部分长度20 字节。

此UDP 用户数据报是从客户发给服务器(因为目的端口号<1023, 是熟知端口)、 服务器程序是TFFTP。

5—15 使用TCP对实时话音数据的传输有没有什么问题?使用UDP在传送数据文件时会 有什么问题?

答:如果语音数据不是实时播放(边接受边播放)就可以使用TCP,因为TCP 传输 可靠。接收端用TCP 讲话音数据接受完毕后,可以在以后的任何时间进行播放。但 假定是实时传输,则必须使用UDP。

UDP 不保证可靠交付,但UCP 比TCP 的开销要小很多。因此只要应用程序接受这

样的服务质量就可以使用UDP。

5—16 在停止等待协议中如果不使用编号是否可行?为什么?

答:分组和确认分组都必须进行编号,才能明确哪个分则得到了确认。

5—17 在停止等待协议中,如果收到重复的报文段时不予理睬(即悄悄地丢弃它而其他什 么也没做)是否可行?试举出具体的例子说明理由。 《计算机网络》第五版课后习题解答 整理编辑:我不是地豆子41 答:

收到重复帧不确认相当于确认丢失

5—18 假定在运输层使用停止等待协议。发送发在发送报文段M0后再设定的时间内未收 到确认,于是重传M0,但M0又迟迟不能到达接收方。不久,发送方收到了迟到 的对M0的确认,于是发送下一个报文段M1,不久就收到了对M1的确认。接着 发送方发送新的报文段M0,但这个新的M0在传送过程中丢失了。正巧,一开始 就滞留在网络中的M0现在到达接收方。接收方无法分辨M0是旧的。于是收下M0, 并发送确认。显然,接收方后来收到的M0是重复的,协议失败了。 试画出类似于图5-9所示的双方交换报文段的过程。 答:

旧的M0 被当成新的M0。

5—19 试证明:当用n比特进行分组的编号时,若接收到窗口等于1(即只能按序接收分 组),当仅在发送窗口不超过2n-1时,连接ARQ协议才能正确运行。窗口单位是 分组。

解:见课后答案。

5—20 在连续ARQ协议中,若发送窗口等于7,则发送端在开始时可连续发送7个分组。 因此,在每一分组发送后,都要置一个超时计时器。现在计算机里只有一个硬时钟。 设这7个分组发出的时间分别为t0,t1?t6,且tout都一样大。试问如何实现这7个 超时计时器(这叫软件时钟法)? 解:见课后答案。

5—21 假定使用连续ARQ协议中,发送窗口大小事3,而序列范围[0,15],而传输媒体保证 在接收方能够按序收到分组。在某时刻,接收方,下一个期望收到序号是5. 《计算机网络》第五版课后习题解答 整理编辑:我不是地豆子42 试问:

(1) 在发送方的发送窗口中可能有出现的序号组合有哪几种?

(2) 接收方已经发送出去的、但在网络中(即还未到达发送方)的确认分组可 能有哪些?说明这些确认分组是用来确认哪些序号的分组。

5—22 主机A向主机B发送一个很长的文件,其长度为L字节。假定TCP使用的MSS 有1460字节。

(1) 在TCP的序号不重复使用的条件下,L的最大值是多少?

(2) 假定使用上面计算出文件长度,而运输层、网络层和数据链路层所使用的 首部开销共66字节,链路的数据率为10Mb/s,试求这个文件所需的最短发 送时间。 解:( 1)L_max 的最大值是2^32=4GB,G=2^30.

(2) 满载分片数Q={L_max/MSS}取整=2941758 发送的总报文数

N=Q*(MSS+66)+{(L_max-Q*MSS)+66}=4489122708+682=4489123390

总字节数是N=4489123390 字节, 发送4489123390 字节需时间为: N*8/(10*10^6)=3591.3 秒,即59.85 分,约1 小时。

5—23 主机A向主机B连续发送了两个TCP报文段,其序号分别为70和100。试问: (1) 第一个报文段携带了多少个字节的数据?

(2) 主机B 收到第一个报文段后发回的确认中的确认号应当是多少?

(3) 如果主机B收到第二个报文段后发回的确认中的确认号是180,试问A发 送的第二个报文段中的数据有多少字节?

(4) 如果A 发送的第一个报文段丢失了,但第二个报文段到达了B。B 在第二 个报文段到达后向A 发送确认。试问这个确认号应为多少? 解:( 1)第一个报文段的数据序号是70 到99,共30 字节的数据。 (2)确认号应为100. (3)80 字节。 (4)70

5—24 一个TCP连接下面使用256kb/s的链路,其端到端时延为128ms。经测试,发现吞 吐量只有120kb/s。试问发送窗口W是多少?(提示:可以有两种答案,取决于接 收等发出确认的时机)。 解:

来回路程的时延等于256ms(=128ms×2).设窗口值为X(注意:以字节为单位),假 定一次最大发送量等于窗口值,且发射时间等于256ms,那么,每发送一次都得停下来 期待

再次得到下一窗口的确认,以得到新的发送许可.这样,发射时间等于停止等待应答的 时间,

结果,测到的平均吞吐率就等于发送速率的一半,即 8X÷(256×1000)=256×0.001 X=8192

所以,窗口值为8192.

5—25 为什么在TCP首部中要把TCP端口号放入最开始的4个字节?

答:在ICMP 的差错报文中要包含IP 首部后面的8 个字节的内容,而这里面有TCP 首部中的源端口和目的端口。当TCP 收到ICMP 差错报文时需要用这两个端口来确 《计算机网络》第五版课后习题解答 整理编辑:我不是地豆子43 定是哪条连接出了差错。

5—26 为什么在TCP首部中有一个首部长度字段,而UDP的首部中就没有这个这个字 段?

答:TCP 首部除固定长度部分外,还有选项,因此TCP 首部长度是可变的。UDP 首部长度是固定的。

5—27 一个TCP报文段的数据部分最多为多少个字节?为什么?如果用户要传送的数据 的字节长度超过TCP报文字段中的序号字段可能编出的最大序号,问还能否用 TCP来传送?

答:65495 字节,此数据部分加上TCP 首部的20 字节,再加上IP 首部的20 字节, 正好是IP 数据报的最大长度65535.(当然,若IP 首部包含了选择,则IP 首部长度 超过20 字节,这时TCP 报文段的数据部分的长度将小于65495 字节。)

数据的字节长度超过TCP 报文段中的序号字段可能编出的最大序号,通过循环使用 序号,仍能用TCP 来传送。

5—28 主机A向主机B发送TCP报文段,首部中的源端口是m而目的端口是n。当B向 A发送回信时,其TCP报文段的首部中源端口和目的端口分别是什么? 答:分别是n 和m。

5—29 在使用TCP传送数据时,如果有一个确认报文段丢失了,也不一定会引起与该确 认报文段对应的数据的重传。试说明理由。 答:还未重传就收到了对更高序号的确认。

5—30 设TCP使用的最大窗口为65535字节,而传输信道不产生差错,带宽也不受限制。 若报文段的平均往返时延为20ms,问所能得到的最大吞吐量是多少?

答:在发送时延可忽略的情况下,最大数据率=最大窗口*8/平均往返时间=26.2Mb/s。 5—31 通信信道带宽为1Gb/s,端到端时延为10ms。TCP的发送窗口为65535字节。试 问:可能达到的最大吞吐量是多少?信道的利用率是多少? 答:

L=65536×8+40×8=524600 C=109b/s

L/C=0.0005246s Td=10×10-3s

《计算机网络》第五版课后习题解答 整理编辑:我不是地豆子44 0.02104864

Throughput=L/(L/C+2×Td)=524600/0.0205246=25.5Mb/s Efficiency=(L/C)//(L/C+2×D)=0.0255

最大吞吐量为25.5Mb/s。信道利用率为25.5/1000=2.55%

5—32 什么是Karn算法?在TCP的重传机制中,若不采用Karn算法,而是在收到确认 时都认为是对重传报文段的确认,那么由此得出的往返时延样本和重传时间都会偏 小。试问:重传时间最后会减小到什么程度?

答:Karn 算法:在计算平均往返时延RTT 时,只要报文段重传了,就不采用其往 返时延样本。

设新往返时延样本Ti

RTT(1)=a*RTT(i-1)+(1-a)*T(i); RTT^(i)=a* RTT(i-1)+(1-a)*T(i)/2; RTT(1)=a*0+(1-a)*T(1)= (1-a)*T(1); RTT^(1)=a*0+(1-a)*T(1)/2= RTT(1)/2 RTT(2)= a*RTT(1)+(1-a)*T(2); RTT^(2)= a*RTT(1)+(1-a)*T(2)/2; = a*RTT(1)/2+(1-a)*T(2)/2= RTT(2)/2

RTO=beta*RTT,在统计意义上,重传时间最后会减小到使用karn 算法的1/2. 5—33 假定TCP在开始建立连接时,发送方设定超时重传时间是RTO=6s。

(1)当发送方接到对方的连接确认报文段时,测量出RTT样本值为1.5s。试计算现 在的RTO值。

(2)当发送方发送数据报文段并接收到确认时,测量出RTT样本值为2.5s。试计算 现在的RTO值。 答:

(1)据RFC2988 建议,RTO=RTTs+4*RTTd。其中RTTd 是RTTs 的偏差加权均值。 初次测量时,RTTd(1)= RTT(1)/2;