计算机网络题库--第五单元传输层

 主要选取谢希仁第八版(板块一),学校复习资料

(一)

1. 试说明运输层在协议栈中的地位和作用,运输层的通信和网络层的通信有什么重要区别?为什么运输层是必不可少的?

答:8f2d491d027e4ee1bd6c80195139e5bd.png

 

2.网络层提供数据报或虚电路服务对上面的运输层有何影响?

答:a68fb0ef5f474366b4cc2ed90e1a2a19.png

3.当应用程序使用面向连接的TCP和无连接的IP时,这种连接是面向连接的还是面向无连接的? 

答:在网络层IP提供的是无连接的服务,但是在运输层TCP提供的服务是面向连接的。但是最终该应用程序使用的还是面向连接的传输服务。 

4. 试用画图解释运输层的复用。画图说明许多个运输用户复用到一条运输连接上,而这条运输连接又复用到IP数据报上。

13759f7055474c26a67dfff85708a784.png

5. 试举例说明有些应用程序愿意采用不可靠的UDP,而不用采用可靠TCP。

11aa981deba34aa7861b5522d08adfa1.png

6. 接收方收到有差错的UDP用户数据报时应如何处理?

答:丢弃。

7.如果应用程序愿意使用UDP来完成可靠的传输,这可能吗?请说明理由。

答:这是可能的,但这要由应用层自己完成可靠传输。

8.为什么说UDP是面向报文的,而TCP是面向字节流的?

答:
 

UDP是面向报文的:发送方的UDP对应用程序交下来的报文,在添加了首部之后就向下交付,UDP对应用层交付下来的报文即不合并也不拆分,而是保留这些报文的边界,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文,接收方UDP对下方交上来的UDP用户数据报,在去除首部之后就原封不动的交付给上层的应用程序,一次交付一个完整报文,所以是UDP是面向报文的

TCP是面向字节的:发送方TCP对应用程序交下来的报文数据块,视为无结构的字节流(无边界约束,可拆分/合并),但维持各字节流顺序(相对顺序没有变),TCP发送方有一个发送缓冲区,当应用程序传输的数据块太长,TCP就可以把它划分端一些再传输,如果应用程序一次只传输一个字节,那么TCP可以等待积累足够多的字节后再构成报文端发送出去,所以TCP是面向字节的。

9.端口的作用是什么?为什么端口号要划分为三种类型?

答:

端口的作用:

发送端:让应用层的各种应用进程都能将其数据通过端口向下交付给运输层,以便组成TPDU;

接收端:运输层收到IP层交上来的数据后,要根据目的端口号决定应当通过哪个端口将数据交付给应用层中的相应的进程。

从这个意义上讲,端口是用来标志应用层的进程。

把端口号分成三种不同的类型是为了方便不同的应用程序使用

10.试说明运输层中伪首部的作用。

答:

所谓“伪首部”是因为这种伪首部并不是UDP用户数据报真正的首部。只是在计算检验和时,临时添加在UDP用户数据报前面,得到一个临时的UDP用户数据报。检验和就是按照这个临时的UDP用户数据报来计算的伪首部既不向下传送也不向上递交,而仅仅是为了计算检验和。 

11. 某个应用进程使用运输层的用户数据报UDP,然而继续向下交给IP层后,又封装成IP数据报。既然都是数据报,可否跳过UDP而直接交给IP层?哪些功能UDP提供了但IP没提提供?

答:不可跳过UDP而直接交给IP层,UDP数据报中仅指明了通信进程双方的端口号,应用层的数据报直接交付给IP层后,虽然IP层能将数据报运送至目的主机,但不能确定通信进程双方的端口号,无法将数据交付给目的进程,不能完成通信。 IP数据报承担主机寻址,提供报头检错;只能找到目的主机而无法找到目的进程,UDP提供对应用进程的复用和分用功能,以及提供对数据差分的差错检验。

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

答:不行,重传时,IP数据报的标识字段会有另一个标识符,仅当标识符相同的IP数据报片才能组装成一个IP数据报。前两个IP数据报片的标识符与后两个IP数据报片的标识符不同,因此不能组装成一个IP数据报。

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

答:以太网帧的数据字段的最大长度是1500字节。UDP数据报的首部是8个字节,所以整个UDP数据报的长度是8200字节。假定IP数据报的首部没有选项,即首部长度是20字节。而IP数据报的片偏移量指出了一个片在原IP数据分组中的相对位置,单位是8字节。

通过以上分析,可将UDP数据报分为6个数据报片,前5个的长度 是1480字节(IP数据报是1500字节),最后一个的长度是800字节(IP 数据报是820字节),片偏移量分别是:0, 185, 370, 555, 740, 925。第一个IP数据报字段长度:1480,第一片偏移字段:1480 * 0 / 8 = 0;
第二个IP数据报字段长度:1480,第二片偏移字段:1480 * 1 / 8 = 185,以此类推。

 172cff0d2e75402ca3139f73c299ad8c.png

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

答:因为UDP用户数据报的首部组成:源端口(2字节)、目的端口(2字节)长度(2字节)、检验和(2字节)。

故源端口为06 32,即1586;目的端口为00 45,即69;用户数据报的总长度为00 1C,即28;数据部分长度=用户数据报的总长度-用户数据报的首部长度=28-8=20(字节)。目的端口小于1023,是服务器端口,服务器程序是TFFTP。

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

答:使用TCP对实时话音业务的传输可能会造成网络负荷过重,因为TCP协议要求数据报的确认,大大增加了网络中的传输量;使用UDP在传送文件可能会传送失败。因为UDP不保证可靠传输,有可能丢失数据。但是文件一旦丢失了一个数据可能会造成较严重的后果,比如一个.exe文件即使只缺少一个字节,也是不能运行的。 

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

答:adfa845e76434a9497d2c9e1f4c45300.png

17. 在停止等待协议中,如果收到重复的报文段时不予理睬(即悄悄地丢弃它而其他什么也没做)是否可行?试举出具体的例子说明理由。

答:不可行。若对收到的重复报文不予理睬,如下图,对收到重复帧,若不重传确认,发送端将不断重传M1。e8358617489247be9f7ea8d613665979.png

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

答:

daa18a370cb148cebdd343b466664da4.png

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

789d3c163cf9482495268963722915de.png 4f8428003bc7450e89f0c7f604343c2c.png

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

答:24bc7d62444043e7a2c01bedf1107a4d.png

21.使用连续 ARQ 协议中,发送窗口大小是 3,而序列范围 [0, 15],而传输媒体保证在接收方能够按序收到分组。在某时刻,接收方,下一个期望收到序号是 5。试问:

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

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

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

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

(2)假定使用上面计算出文件长度,而运输层、网络层和数据链路层所使用的首部开销共 66 字节,链路的数据率为 10 Mb/s,试求这个文件所需的最短发送时间。

23.主机A向主机B连续发送了两个TCP报文段,其序号分别是70和100,试问:

(1)第一个报文段携带了多少个字节的数据?

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

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

(4)如果A发送的第一个报文段丢失了,但是第二个报文段到达了B。B在第二个报文段到达后给A 发送确认,试问这个确认中的确认号应该是多少?

答:读题:

(1)TCP报文中的序号是该报文所发数据流中的第一个字节的编号,因此:一个报文携带的数据流的编号是[70,99],共30个字节。

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

(3)第二个报文段携带的数据流的范围是[100,179],共80个字节。

(4)这个确认号应当是:70。

24.一个TCP连接下面使用256Kbit/s的链路,其往返时延为128ms。经测试,发现吞吐量只有120kb/s,则发送窗口大约是 。 

答:题中给出往返时延为128ms,则在一个传输周期里,从发送第一个报文段到收到所有确认时间为:W/R+T,其中W为发送窗口的大小,R为链路速率,T为往返时延。因此吞吐量                                                                 TP=W/(W/R+T) ,将题目中的具体数据代入,即可求得W=3614字节。

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

答:因为在ICMP的差错报文中要包含紧随IP数据报首部后面的8个字节的内容,而紧随IP数据报首部后面的就是IP数据报的数据字段,即TCP报文,而TCP报文的前面的局部又是TCP报文的首部,所以让TCP首部中最开场的4个字节是TCP的端口号,就可以在ICMP差错报文的上述8个字节中有TCP的源端口号和目的端口号。当TCP收到ICMP差错报文时要用这两个端口号来确定是哪条连接出了差错。

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

答:TCP首部除了固定长度外,还有选项,因此TCP是可变的,而UDP是固定长度的,就不需要这个字段。

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

答:因为TCP报文段的数据部分加上TCP首部的20字节,再加上IP首部的20字节,正好是IP数据报的最大长度65535.所以TCP报文段的数据部分最多有65535—40=65495个字节。

可以使用TCP协议来传送,因为序号字段编号到最大值,又重新开始从0开始编号。(可切割)

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

答:704d7a970a7a46d4983e2127b6bfee08.png

 29.在使用TCP传送数据时,如果有一个确认报文段丢失了,也不一定会引起发送方数据的重传。试说明其中的理由。

答:由于TCP确认机制采用了累计确认方法,即一个TCP确认报文段中的确认号标识了接收方将要接收的下一个字节,这表示接收方已经收到该确认号之前的所有字节。 现在假设发送方一次发送了多个报文段,而接收方成功接收到这些报文段并发出相应的确认。如果某个报文段的确认丢失,而在它之后的其他报文段的确认到达,这时,只要该报文段的重传计时器没有超时,发送方就该知道该报文段被正确接收而不需要重传。(就是说在重传未超时之前,只要收到它之后的报文段的确认,就表明此报文段在内至收到报文段)

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

答:在发送时延可忽略的情况下,每20ms可发送65535*8=254280 bit

        最大数据率=524280/20=26.2Mb/s

31.通信信道带宽为1Gbit/s ,端到端传播时延为10ms ,TCP的发送窗口为65535B 则可能达到的最大吞吐量是多少?信道利用率是多少?

答: 

  发送时延=数据长度/信道带宽=65535*8bit/1Gb/s=0.52428*10-3s=0.52428ms;

   传播往返时延=2*10=20ms (发送数据和接收确认);

  所以每发送一个窗口大小的流量需要:总时延=发送时延+传播往返=0.52428+20=20.52428ms。 

  故每秒钟可以产生1000/20.52428个窗口因此最大数据吞吐量=65536*8*(1000/20.52428)=25544769bit/s=25.5Mb/s信道的利用率=25.5Mb/s/1G/b/s=2.55%

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

答:15d2a147bb784de2b8156a6cf4520056.png

33.假定TCP在开始建立连接时,发送方设定超时重传时间是RTO=6秒。

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

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

答:

RTO值计算如下:

(1)当第一次测量到RTT样本时,RTTs取值为该RTT样本值,RTTD取值为该RTT样本值的一半,因此,RTTs=1.5s,RTTD=1.5s/2=0.75s

      RTO=RTTs+4×RTTD=1.5+4×0.75=4.5s

(2)新的RTT样本值为2.5s,则

新的RTTs=(1-α)×(旧的RTTs)+α×(新的RTT样本)=(1-0.125)×1.5+0.125×2.5=1.625s

新的RTTD=(1-β)×(旧的RTTD)+β×|RTTs-新的RTT样本|=(1-0.25)×0.75+0.25× |1.625- 2.5| =0.78125s

     同理 RTO=RTTs+4×RTTD=1.625+4×0.78125=4.7

34.  已知第一次测得 TCP 的往返时间 RTT 30 ms。接着收到了三个确认报文段,用他们测量出的往返时间样本 RTT 分别是: 26 ms,32 ms24 ms。设 α = 0.1。试计算每一次的新的加权平均往返时间值为 RTTs 。讨论所得出的结果。

答:ce6b2561fb6740099386ebf5c74cf0cd.png

35.用TCP通过速率为1Gbit/s的链路传送一个10MB的文件。假定链路的往返时延RTT=50ms。TCP选用了窗口扩大选项,使窗口达到可选用的最大值。在接收端,TCP的接收窗口为1MB,而发送端采用拥塞控制算法,从慢开始传送。假定拥塞窗口以分组为单位计算,在一开始发送1个分组,而每个分组长度都是1KB.假定网络不会发生拥塞和分组丢失,并且发送端发送数据的速率足够快,因此发送时延可以忽略不计,而接收端每一次收完一批分组后就立即发送确认ACK分组。

(1)经过多少个RTT后,发送窗口大小达到1MB?

(2)发送端把整个10MB文件传送成功共需要多少个RTT?传送成功是指发送完整个文件,并收到所有的确认。TCP扩大的窗口够用么?

(3)根据整个文件发送成功所花费的时间(包括收到所有的确认),计算此传输链路的有效吞吐率。链路带宽的利用率是多少?

答:

36.假定TCP采用一种仅使用线性增大和乘法减小的简单拥塞控制算法,而不使用慢开始。发送窗口不采用字节为计算单位,而是使用分组pkt为计算单位。在一开始发送窗口为1pkt。假定分组的发送时延非常小,可以忽略不计。所有产生的时延就是传播时延。假定发送窗口总是小于接收窗口。接收端每收到一分组后,就立即发回确认ACK。假定分组的编号为i,在一开始发送的是i=1的分组。以后当i=9,25,30,38,50时,发生了分组的丢失。再假定分组的超时重传时间正好是下一个RTT开始的时间。试画出拥塞窗口(也就是发送窗口)与RTT的关系曲线,画到发送第51个分组为止。

 答:

37.在 TCP 的拥塞控制中,什么是慢开始、拥塞避免、快重传和快恢复算法?这里每一种算法各起什么作用? “乘法减小”和“加法增大”各用在什么情况下?

答:

慢开始:

在主机刚刚开始发送报文段时可先将拥塞窗口cwnd设置为一个最大报文段MSS的数值。在每收到一个对新的报文段的确认后,将拥塞窗口增加至多一个MSS的数值。用这样的方法逐步增大发送端的拥塞窗口cwnd,可以分组注入到网络的速率更加合理。

拥塞避免:

拥塞窗口值大于慢开始门限时,停止使用慢开始算法而改用拥塞避免算法。拥塞避免算法使发送的拥塞窗口每经过一个往返时延RTT就增加一个MSS的大小

快重传算法规定:

发送端只要一连收到三个重复的ACK即可断定有分组丢失了,就应该立即重传丢手的报文段而不必继续等待为该报文段设置的重传计时器的超时。

快恢复算法:

当发送端收到连续三个重复的ACK时,就执行快恢复算法

发送方将慢开始门限 ssthresh和拥塞窗口重新设置为当前窗口的一半;开始执行拥塞避免算法。也有的快恢复实现是把快恢复开始时的拥塞窗口cwnd值再增大一些,即等于新的ssthresh+2 

乘法减小

是指不论在慢开始阶段还是拥塞避免阶段,只要出现一次超时(即出现一次网络拥塞),就把慢开始门限值 ssthresh 设置为当前的拥塞窗口值乘以 0.5。当网络频繁出现拥塞时,ssthresh 值就下降得很快,以大大减少注入到网络中的分组数。

 加法增大

是指执行拥塞避免算法后,在收到对所有报文段的确认后(即经过一个往返时间),就把拥塞窗口 cwnd 增加一个 MSS 大小,使拥塞窗口缓慢增大,以防止网络过早出现拥塞。

4a5aeb65f1f2441da3b6e801e3c9dff9.jpeg

0e8f8614d8fd449b959a4417077226f1.jpeg

530f203dafdb41e0a97841420f710823.jpeg

38.设 TCP 的 ssthresh 的初始值为 8 (单位为报文段)。当拥塞窗口上升到 12 时网络发生了超时,TCP 使用慢开始和拥塞避免。试分别求出第 1 次到第 15 次传输的各拥塞窗口大小。你能说明拥塞控制窗口每一次变化的原因吗?

轮次拥塞窗口拥塞窗口变化的原因
11网络出现超时,TCP开始使用慢开始
22拥塞窗口加倍
34拥塞窗口加倍
48拥塞窗口加倍,达到ssthresh的初始值
59TCP使用拥塞避免算法,拥塞窗口加1
610TCP使用拥塞避免算法,拥塞窗口加1
711TCP使用拥塞避免算法,拥塞窗口加1
812TCP使用拥塞避免算法,拥塞窗口加1
91网络出现超时,TCP开始使用慢开始
102拥塞窗口加倍
114拥塞窗口加倍
126拥塞窗口加倍,达到12的一半时,改用拥塞避免算法
137TCP使用拥塞避免算法,拥塞窗口加1
148TCP使用拥塞避免算法,拥塞窗口加1
159TCP使用拥塞避免算法,拥塞窗口加1

39.fc9b85f94a7840c0a72b45bba04e0881.png 

答:9a8782e5e95f4b3a9750f5ef1218e680.png

40.TCP 在进行流量控制时是以分组的丢失作为产生拥塞的标志。有没有不是因拥塞而引起的分组丢失的情况?如有,请举出三种情况。

答:有,

① 当 IP 数据报在传输过程中需要分片,但其中一个数据报片未能及时到达终点,而终点组装 IP 数据报已超时,因而只能丢弃该数据报。

② IP 数据报已经到达终点,但终点的缓存没有足够的空间存放此数据报。

③ 数据报在转发过程中经过一个局域网的网桥,但网桥在转发该数据报的帧时没有足够的储存空间而只好丢弃。

41.用 TCP 传送 512 字节的数据。设窗口为 100 字节,而 TCP 报文段每次也是传送 100 字节的数据。再设发送端和接收端的起始序号分别选为 100 和 200,试画出类似于教材中图 5-31 的工作示意图。从连接建立阶段到连接释放都要画上。

答:

42.在图 5-29 中所示的连接释放过程中,主机 B 能否先不发送 ACK = x + 1 的确认?(因为后面要发送的连接释放报文段中仍有 ACK = x + 1 这一信息。)

答:如果 B 不再发送数据了,是可以把两个报文段合并成为一个,即只发送 FIN+ACK 报文段。但如果 B 还有数据报要发送,而且要发送一段时间,那就不行,因为 A 迟迟收不到确认,就会以为刚才发送的 FIN 报文段丢失了,就超时重传这个 FIN 报文段,浪费网络资源。8a088cc7d14c42ec942f75e30d7eae76.png

43.在图 5-30 中,在什么情况下会发生从状态 SYN-SENT 到状态 SYN-RCVD 的变迁?

5c22c48c5641421e94ef209027885434.png

 当 A和 B都作为客户,即同时打开TCP连接。这时每一方的状态变迁都是:CLOSED -->

SYN-SENT  --> SYN-RCVD   --> ESTABLISHED

44.试以具体例子说明为什么一个运输连接可以有多种方式释放。可以设两个互相通信的用户分别连接在网络的两结点上。

答:a34b814d5e8647a59acf74c5d79be094.png

45.解释为什么突然释放运输连接就可能会丢失用户数据,而使用 TCP 的连接释放方法就可保证不丢失数据。

答:突然释放连接可能会丢失数据,这是因为应用程序已经交给运输实体的数据可能有一部分没有发送完,仍然在缓冲区中等待;已经被运输实体发送出去的数据可能有一部分还在网络中传输,没有到达接收方;已经到达接收方运输实体的数据可能还在其缓冲区中,尚未交给应用层;显然,在这些情况下,突然释放一条运输连接,释放所有的资源,就可能会丢失数据。而TCP的正常连接释放是一个从容的过程,释放在通信的两个方向上分别进行,让双方把需要发送的数据都发送完毕再启动释放过程;而且任何一个方向上,发出释放请求的一方必须在得到对方的确认后才能完成在该方向上的释放。因此,使用TCP的正常连接释放方法就不会丢失数据。

46.试用具体例子说明为什么在运输连接建立时要使用三次握手。说明如不这样做可能会出现什么情况。

答:三次握手完成两个重要功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送与确认。

      如果不这样做,改为二次握手,即不需要第三个报文,可能发生死锁。作为例子,考虑计算机A和B之间的通信。假定B给A发送一个连接请求分组,A收到了这个分组,并发送了确认应答分组。按照两次握手的协定,A认为连接已经成功地建立了,可以开始发送数据分组。可是,B在A的应答分组在传输中被丢失的情况下,将不知道A是否已准备好,不知道A建议什么样的序列号用于A到B的交通,也不知道A是否同意B所建议的用于B到A交通的初始序列号,B甚至怀疑A是否收到自己的连接请求分组。在这种情况下,B认为连接还未建立成功,将忽略A发来的任何数据分组,只等待接收连接确认应答分组 。而A在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。

47.b8aa1ffe737d493384430abb73f0b5e6.png

答:fe14dc14e08a481198123bf8bd484ff2.png

48.网络允许的最大报文段长度为 128 字节,序号用 8 比特表示,报文段在网络中的寿命为 30 s。求发送报文段的一方所能达到的最高数据率。

答:c331d906949f4a449048293744d54f32.png

 49.e739d6277b28457b94688cc02431fb88.png

答:

(1)源端口号是最前面的四位十六进制(CB84),代表着源端口号为52100。

(2)目的端口号是第二个四位十六进制(000D),代表着目的端口号为13。

(3)第三个四位十六进制(001C)定义了整个UDP分组的长度为28字节。

(4)数据的长度是整个分组的长度减去首部的长度,也就是28-8=20字节。

(5)目的端口号是13(熟知端口),所以是从客户到服务器的

(6)DayTime应用进程

2dee0bca4e02430da0bfdbdc8fa3b631.png

50.把教材上的图 5-7 计算 UDP 检验和的例子自己具体演算一下,看是否能够得出书上的计算结果。

0e587848869c456496a6742ec4976be6.png

51.af523fe83ea3429f89b7003462b6a648.png 

 答:(1)全置为0  (2)全0   (3) 全1

52.UDP 和 IP 的不可靠程度是否相同? 请加以解释。

答:

①相同: UDP 和 IP 都是无连接的协议和不可靠传输的协议。UDP 用户数据报和 IP 数据报的首部都有检验和字段。当检验出现差错时,就把收到的 UDP 用户数据报或 IP 数据报丢弃。 

② 但 UDP 和 IP 的可靠性是有些区别的。UDP 用户数据报的检验和是既检验 UDP 用户数据报的首部又检验整个的 UDP 用户数据报的数据部分,而 IP 数据报的检验和仅仅检验 IP 数据报的首部。UDP 用户数据报的检验和还增加了伪首部,即还检验了下面的 IP 数据报的源 IP 地址和目的 IP 地址。

53.UDP 用户数据报的最小长度是多少?用最小长度的 UDP 用户数据报构成的最短 IP 数据报的长度是多少? 

答: UDP 用户数据报的最小长度是18。用最小长度的 UDP 用户数据报构成的最短 IP 数据报的长度是28。

54.某客户使用 UDP 将数据发送给一服务器,数据共 16 字节。试计算在运输层的传输效率(有用字节与总字节之比)。

答:读题:  传输层UDP-》:UDP的数据报总长度=16+8=24字节

  所求的在运输层的传输效率为 16/24×100%=66.7%

55.重做 54,但在 IP 层计算传输效率。假定 IP 首部无选项。

答:读题:IP 层计算传输效率,假定 IP 首部无选项:IP数据报总长度=16+8+20=44字节

所求的IP层 传输效率=(16/44)×100%=32.4%

56.重做 54,但在数据链路层计算传输效率。假定 IP 首部无选项,在数据链路层使用以太网。

答:读题:数据链路层计算传输效率,在数据链路层使用以太网:以太网有 14 字节的首部,4 字节的尾部(FCS 字段),发送以太网的帧之前还有 8 字节的前同步码。但其数据字段的最小长度是 46 字节,而我们的 IP 数据报仅有 44 字节,因此还必须加上 2 字节的填充。以太网的总长度 = 14 + 4 + 8 + 2 + 44 = 72 字节。 

所求的数据链路层计算传输效率=(16/72)×100%=22.2%

57.某客户有 67000 字节的分组。试说明怎样使用 UDP 用户数据将这个分组进行传送。

答:  一个 UDP 用户数据报的最大长度为 65535 字节。现在的长度超过了这个限度,因此不能使用一个 UDP 用户数据报来传送。必须进行切割(例如,分割为两个 UDP 用户数据报),使其长度不超过以上的限度。 两个字:切割

58.TCP 在 4:30:20 发送了一个报文段。它没有收到确认。在 4:30:25 它重传了前面这个报文段。它在 4:30:27 收到确认。若以前的 RTT 值为 4 秒,根据 Karn 算法,新的 RTT 值为多少? 

答:Karn算法:运输层用来控制流量算法。在计算平均往返时延 RTT 时,只要报文段重传了,就不采用其往返时延样本。这样得出的平均往返时延 RTT 和重传时间就较准确。

91e6f770efd840f3b52bb419072f568c.png

59.TCP 连接使用 1000 字节的窗口值,而上一次的确认号是 22001。它收到了一个报文段,确认号是 22401.。试用图来说明在这之前与之后的窗口情况。

答:

6d5c786b4b7142f88d4988756e5c7492.png

60.同上题,但在接收方收到的字节为 22401 的报文段时,其窗口字段变为 1200 字节。试用图来说明在这之前与之后的窗口情况。

61.

bd3fe7c4413f4f87955a05d5791f2b90.png

62.1cac4f428f0743a59a2d7ba60b04c48e.png

63.671f9b02698041589df9e7a001993592.png

答:

64.a6127a29b3ba4af6b534f665320889b0.png

答:

65.假定主机 A 向 B 发送一个 TCP 报文段。在这个报文段中,序号是 50,而数据一共有 6 字节长。试问,在这个报文段中的确认字段是否应当写入 56?

答:626b5a90cd3b4cfc905ad81a09eb6099.png 

66.主机 A 通过 TCP 连接向 B 发送一个很长的文件,因此这需要分成很多个报文段来发送。假定某一个 TCP 报文段的序号是 x,那么下一个报文段的序号是否就是 x + 1 呢?

答:f77131d499974cb69920e3da3edf3476.png 

67.TCP 的吞吐量应当是每秒发送的数据字节数,还是每秒发送的首部和数据之和的字节数?吞吐量应当是每秒发送的字节数,还是每秒发送的比特数?

答:TCP的吞吐量没有标准的定义,TCP吞吐量可定义为每秒发送的数据字节数。计算机内部的数据传送是以每秒多少字节为单位的,而在通信线路上的数据率常用每秒多少比特作为单位。

68.在 TCP 的连接建立的三报文握手过程中,为什么第三个报文段不需要对方的确认?这会不会出现问题?

答:8c784ec1f2c940da9084f6a4b3fb0989.png

69.现在假定使用类似 TCP 的协议(即使用滑动窗口可靠传送字节流),数据传输速率是 1 Gbit/s ,而网络的往返时间 RTT = 140 ms。假定报文段的最大生存时间是 60 秒。如果要尽可能快的传送数据,在我们的通信协议的首部中,发送窗口和序号字段至少各应当设为多大? 

答:360a241936394a52ba53c31bcaef7a64.png

70. a66eaf613963415cb14fea80068804a1.png

答:38ef0ac15f5f4b4995fe2275ee5e7f2c.png

 71. 5.5 节中指出:例如,若用 2.5 Gbit/s 速率发送报文段,则不到 14 秒钟序号就会重复。请计算验证这句话。

 答:bfc9dd17269a41f5a86738eef82b3c5e.png

72.已知 TCP 的接收窗口大小是 600(单位是字节,为简单起见以后就省略了单位),已经确认了的序号是 300。试问,在不断的接收报文段和发送确认报文段的过程中,接收窗口也可能会发生变化(增大或缩小)。请用具体的例子(指出接收方发送的确认报文段中的重要信息)来说明哪些情况是可能发生的,而哪些情况是不允许发的。

  答:b64c75d13c114a1fb2915036f256b50e.png

73.在上题中,如果接收方突然因某种原因不能够再接收数据了,可以立即向发送方发送把接收窗口置为零的报文段(即 rwnd = 0)。这时会导致接收窗口的前沿后退。试问这种情况是否允许?

答:这种情况时允许的。

74.流量控制和拥塞控制的最主要的区别是什么?发送窗口的大小取决于流量控制还是拥塞控制?

主要区别:流量控制解决的是发送方和接收方速率不匹配的问题;拥塞控制解决的是避免网络资源被耗尽的问题。流量控制是通过滑动窗口来实现的;拥塞控制是通过拥塞窗口来实现的。

2664d2941ff746839192bfecd466fed4.png

(二)学校复习题

1、TCP与UDP比较特点与区别?

2、运输层的端口有哪些分类?常用端口范围有哪些?

分两类,最重要的一类是熟知端口号,数值为0~1023,IANA(互联网地址指派机构)把这些端口号指派给了TCP/IP最重要的一些应用程序,让所有的用户都知道。另一类称为登记端口号,数值为1024~49151。它是供没有熟知端口号的应用程序使用的,使用这类端口号必须在IANA 登记,以防止重复。
 4cea0a47c2bc491b92164ab88a0ac145.png

3、UDP的特点、首部格式是怎样的,如何计算UDP检验和?

  

4、TCP最主要的特点是哪些?

0a9d468c8ac8454ead6f856f52a43b6b.png

面向连接,逻辑连接,端到端,可靠,全双工,面向字节流 

5、套接字(socket)。

06d0283b03564ecaa242b8207235f2ec.png

6、停止等待协议如何实现可靠传输的工作原理。

7、累积确认,Go-back-N(回退N)概念。

8、TCP 报文段的首部格式是怎样的?

9、简述TCP如何面向字节流的通过滑动窗口机制实现可靠传输的?

10、简述超时重传时间的选择算法。

11、接收到的字节流序号不连续采用选择确认SACK的工作原理?

12、TCP 如何利用滑动窗口实现流量控制?

13、简述TCP的如何实现拥塞控制?实现的工作一般原理是怎样的?采用哪些控制算法?拥塞窗口、发送窗口如何计算变化? 

14、TCP的运输连接管理运输连接的三个阶段,各个阶段的参数值和传输数据如何变化? 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尘 关

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值