运输层当有两个或两个以上的运输层服务有哪两大类呢

分别指出数据链路层、网际层和運输层使用的地址名称;并指出这3种地址各占多少位,以及这3种地址在网络传输中的各自作用.
数据链路层 MAC ----介质访问控制地址 以太网的MAC为48位 建竝相邻节点间的数据链路.
网际层 IP ----网际协议 IP地址为32位 为不同网络的互联通信提供逻辑地址和寻址机制.
运输层 端口(port) port位16位 使用端口号区分同┅台计算机不同进程建立的连接

?问题 5-1:TCP 协议是面向连接的但 TCP 使用的 IP 协议却是无连接的。这两种协议都 有哪些主要的区别 答:这个问题很重要,一定要弄清楚 TCP 是面向连接的,但 TCP 所使用的网络则可鉯是面向连接的(如 X.25 网络) 但也 可以是无连接的(如现在大量使用的 IP 网络) 。选择无连接网络就使得整个的系统非常灵 活当然也带来叻一些问题。 下面是 TCP 和 IP 向上提供的功能和服务的比较 TCP 提供的 IP 提供的 面向连接服务 无连接服务 字节流接口 IP数据报接口 有流量控制 无流量控淛 有拥塞控制 无拥塞控制 保证可靠性: 不保证可靠性无丢失 可能丢失无重复 可能重复按序交付 可能失序 显然,TCP 提供的功能和服务要比 IP 所能提供的多得多这是因为 TCP 使用了诸如 确认、窗口通知、计时器等机制,因而可以检测出有差错的报文、重复的报文和失序的报 文 ?问题 5-2:从通信的起点和终点来比较,TCP 和 IP 的不同点是什么 答:用下面的图就可说明。 进程 A 和进程 B 的通信是使用面向连接的 TCP 提供的可靠的传输 主机 X 和主机 Y 的通信是使用无连接的 IP 提供的不可靠的传输。 请注意:对 TCP 来说通信的起点和终点是运输层上面的两个 套接字(socket),而应 用层的应鼡进程正是通过应用层和运输层之间的套接字来使用 TCP 提供的服务TCP 协议 根据报文段首部中的端口号找到目的端口,将报文段交付给目的进程请注意:套接字是 由 IP 地址和端口号决定的,套接字也可称为“插口” 对 IP 来说,通信的起点和终点是连接在网络上的两个主机IP 协议根据数据报首部 中的目的 IP 地址找到目的主机,将数据报交付给目的主机 ? ? 丢弃 X Y 进程A 进程B 无连接的 IP 协议 面向连接的 TCP 协议 套接字 套接字 不鈳靠 的传 输 可靠 的传 输 请注意可靠传输的范围和不可靠传输的范围是不同的。 我们还应当注意的是:虽然在两个套接字之间的通信是面向連接的但 IP 数据报在下 面的网络中传输时是独立地选择路由,而不是沿着某一条固定的路径传输然而在上面的端口看来,TCP 报文段好像都昰从一个虚拟的、可靠的通信管道中传输到对方的端口 ?问题 5-3:端口(port)和套接字(socket)的区别是什么? 答:从本书经常使用的套接字定义来看套接字包含了端口,因为套接字 = (IP 地址端 口号)。套接字是 TCP 连接的端点套接字又称为“插口” 。 但我们已经讲过套接字(socket)有多种意思。当使用 API 时套接字往往被看成是操 作系统的一种抽象,这时套接字和一个文件描述符是很相似的,并且是应用编程接口 API 的一部分套接字甴应用程序产生,并指明它将由客户还是服务器来使用当应用进 程创建一个套接字时,要指明该套接字使用的端口号 端口则是应用层垺务的的一种代号,它用来标志应用层的进程端口是一个 16 bit 的 整数。各种服务器使用的端口号都是保留端口号以便使客户能够找到服务器。例如万维 网服务器使用的端口号是 80 在发送数据时,应用层的数据通过端口向下交付到运输层在接收数据时,运输层的 数据通过适當的端口向上交付到应用层的某个应用程序 ?问题 5-4:一个套接字能否同时与远地的两个套接字相连? 答:不行一个套接字只能和另一個远地套接字相连。 如果许多个客户同时访问同一个服务器那么对于这种情况,请参考教材的第 6章的 图 6-30 及相应的文字解释 ?问题 5-5:数據链路层的 HDLC 协议和运输层的 TCP 协议都使用滑动窗口技术。从这方 面来进行比较数据链路层协议和运输层协议的主要区别是什么? 答:运输層的 TCP 协议是端到端(进程到进程)的协议而数据链路层的 HDLC 协议则 是仅在一段链路上的结点到结点的协议。此外TCP 的窗口机制和 HDLC 的也有许哆区别。 如 TCP 是按数据部分的字节数进行确认而 HDLC 则是以帧为确认的单位。需要注意的 是现在使用得最多的 PPP 链路层协议并不使用确认机制囷窗口机制。因此像 PPP 协议这 样的链路层协议就和运输层协议有相当大的区别 ?问题 5-6:TCP 协议能够实现可靠的端到端传输。在数据链路层和網络层的传输还有没 有必要来保证可靠传输呢 答:在旧的 OSI 体系中,在数据链路层使用 HDLC 协议而在网络层使用 X.25 协议这些 协议都有确认机制囷窗口机制,因而能够保证可靠传输但是技术的进步使得链路的传输 已经相当可靠了,因此在数据链路层和网络层重复地保证可靠传输僦显得多余了现在因 特网在链路层使用的 PPP 协议和在网络层使用的 IP 协议都没有确认机制和窗口机制。如 果出现差错就由运输层的 TCP 来处理(若使用 UDP 协议则运输层也不处理出错的问题) ?问题 5-7:在 TCP 报文段的首部中只有端口号而没有 IP 地址。当 TCP 将其报文段交给 IP 层时IP 协议怎样知道目的 IP 地址呢? 答:显然仅从 TCP 报文段的首部是无法得知目的 IP 地址。因此TCP 必须告诉 IP 层此 报文段要发送给哪一个目的主机(给出其 IP 地址) 。此目的 IP 地址填写在 IP 数据报的首 部中 ?问题 5-8:在 TCP 传送数据时,有没有规定一个最大重传次数 答:我们知道以太网规定重传 16次就认为传输夨败,然后报告上层但 TCP 没有规定最 大重传次数,而是通过设置一些计时器来解决有关传输失败的问题 ?问题 5-9:TCP 都使用哪些计时器? 答:TCP 共使用以下四种计时器即重传计时器、持续计时器、保活计时器和时间等待计 时器。这几个计时器的主要特点如下: ?重传计时器 当 TCP 發送报文段时就创建该特定报文段的重传计时器。可能发生两种情况:1. 若在计时器截止时间到之前收到了对此特定报文段的确认则撤銷此计时器。 2. 若在收到了对此特定报文段的确认之前计时器截止期到则重传此报文段,并将计时 器复位 ?持续计时器 为了对付零窗口夶小通知,TCP 需要另一个计时器假定接收 TCP 宣布了窗口大小为 零。发送 TCP 就停止传送报文段直到接收 TCP 发送确认并宣布一个非零的窗口大小。 泹这个确认可能会丢失我们知道在 TCP 中,对确认是不需要发送确认的若确认丢失了, 接收 TCP 并不知道而是会认为它已经完成任务了,并等待着发送 TCP 接着会发送更多 的报文段但发送 TCP 由于没有收到确认,就等待对方发送确认来通知窗口的大小双方 的 TCP 都在永远地等待着对方。 要打开这种死锁TCP 为每一个连接使用一个持续计时器。当发送 TCP 收到一个窗口 大小为零的确认时就启动持续计时器。当持续计时器期限箌时发送 TCP 就发送一个特 殊的报文段,叫做探测报文段这个报文段只有一个字节的数据。它有一个序号但它的 序号永远不需要确认;甚至在计算对其他部分的数据的确认时该序号也被忽略。探测报文 段提醒接收

第五层 运输层课后习题答案

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

地位:传输层处于面姠通信部分的最高层,同时也用户功能中的最底层

作用:向它上面的应用层提供服务向下兼容网络层,起到承上启下的中间作用

重要区別:传输层为应用层的应用程序提供端到端的逻辑通信该逻辑链路是虚拟的

,而网络层是为主机之间提供逻辑通信的(面向主机承担蕗由功能)

必不可少的原因:各种应用进程之间通信需要“可靠交付”和“尽最大努力交付”的

类服务,必须要又传输层以复用和分用的形式加载到网络层才能实现这两种类型的通信

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

答:不管是网络层提供数据报还昰虚电路服务,队上面运输层的运行机制都不会有任何影响但是会给运输层提供不同质量的服务

3. 当应用程序使用面向连接的TCP和无连接的IP時,这种传输的面向连接的还是面向无连接的(无连接的IP:IP协议,面向无连接跟UPD一样)

答:都有,这要在不同层次来看在运输层是媔向连接的,在网络层则是面向无连接的

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

答:许多个运输用户复用到一条运输连接上:通过不同的端口号(不同应用程序不同端口号)

这条运输连接又复用到不哃的IP数据报上:不同的协议号UDP-17,TCP-6UPD在IP报文的协议号是17

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

答:视频播放程序可鉯忍受不可靠的UDP丢失掉一两帧的图,不会影响视频服务的质量但是不能忍受可靠的TCP的,因为TCP虽然可靠但是传输速率慢

原理:有差错的数據报UDP直接丢弃而TCP则要求重传,TCP会带来较大的时延

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

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

答:可能,但应用程序中必须额外提供于TCP相同的功能

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

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

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

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

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

熟知端口号:数值一般为0~1023标记常规的服务进程如FTP是21,DNS是53,HTTP是80等

登记端口号:数值为标记没有熟知端口号的非常規的服务进程

短暂端口号:数值为,客户进程运行时动态选择

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

答:仅用于计算运输层数据报的校验和

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

答:不可以跳过UDP而直接交给IP层IP数据报的IP报头承担主机寻址,报头检错直接交付给IP层只能找到目的主机而无法找到目嘚进程

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

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

答:不行数据报片丢失重传时,IP数据报的标识字段会又另一个标识符仅当标识符相同的IP数据报片才能组成一个IP数据报,前两个IP数据报片的标识符和后两个IP数据报片的IP标识符不同使用不能组成一个IP数据报

补充:因为IP协议是无连接的服务,所以数据报不存茬按序接收到达的问题当数据报由于长度超过网络的最大传输单元MTU而必须分片时,该数据报的标识字段就被复制到该数据报的所有数据報分片中相同的标识字段的值可以使得分片后的数据报片能正确的重装成原理的数据报

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

答:6个,8192字节加上UDP首部8字节共8200芓节

数据字段的长度:前面5个是1480字节最后一个是800字节

UDP数据报首部长度为8个字节

UDP数据报数据部分+UDP数据报首部=IP数据报的数据部分

所以IP数据报嘚数据部分长度=8192字节+8字节=8200字节

IP数据报的数据部分+IP数据报的首部=一个完整的IP数据报

IP数据报的首部是20个字节

一个完整的IP数据报的最大长度是1500字節

所以IP数据报的数据部分最大长度是0字节

所以至少需要6个IP数据报片

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

答:源端口:1586目的端口:69,UDP用户数据报总长度:28字节数据部分长度:20字节,此UDP用户数据报是从客户发送给服务器(因为目的端口<1023,是熟知端口1)服务器程序是TFTP

补充:UDP首部结构(8字节):源端口(2字节)+目的端口(2字节)+UDP数据报总长度(2字节)+校验和(2字节)

所以该用户数據报UDP的数据部分长度是28-8=20字节

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

答:如果话音数据不是实時播放(边接收边播放)就可以使用TCP,因为TCP传输可靠接收端用TCP接收数据完毕之后,可以在任何时间进行播放但阶段是实时播放,则必須使用UDPUDP不保证可靠交付,但UDP比TCP的开销小很多一次只要应用程序接受这样的服务质量就可以选择使用UDP

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

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

补:停止等待协议是TCP可靠传输的保证之一

17. 茬停止等待协议中,如果收到重复的报文段时不予理睬(即悄悄丢弃什么也不做)是否可行举例说明

答:不可以,收到重复报文不确认楿当于丢失会让发送方以为你没有收到而一直发送该重复报文

18.假定在运输层使用停止等待协议,发送方在发送报文段M0后在设定时间未收箌确认于是重传M0,但是M0又迟迟不能到达接收方不久发送方收到了迟到的对M0的确认,于是发送下一个报文M1不仅就收到了对M1的确认,接著发送方发送新的报文段M0(和前面的M0不同)但这个新的M0的传送过程中丢失了正巧,一开始就滞留在网络中的M0现在到达接收方接收方无法分辨M0是旧的,于是收下了M0并发送确认,显然接收方后来收到的M0是重复,协议失败了请画图描述上述过程

19.试证明:当用n比特进行分組的编号时,若接收窗口等于1(即只能按序接收分组)当仅在发送窗口不超过2的n次方然后减去1时,连续滑动窗口协议才能正确运行窗ロ单位是分组

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

补充:方法2:可以定义一个含有7个数据的数组,数组中的数据表示时间当该组数据发送出去时,在对应序号的数组中填入时间值该时间值昰该组发送出去的时间+超时时间得到,如何不停的对该数组的值进行扫描当接收到接收端的确认分组时,即将对应数组序号的时间值设置为空准备记录下一个数据发发送时间,当系统时间大于数组中某一个时间值时说明该分组以及超时了,需要进行重传

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

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

答:如果发送方没有收到[2,4]的确认,那么发送窗口的范围是:[2,4],[3,5],[4,6],[5,7]中如何一个

如果发送方收箌了[2,4]的确认那么发送窗口的范围是:[5,7]

2) 接收方已经发送出去的,但在网络中(未到达发送方)的确认分组可能有那些说明这些确认分组昰用来确认那些序号的分组

答:[2,4]分组的确认可能还在网络中

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

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

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

补充:MSS:TCP最大报文段长度

最后剩余要发送的字节不足MSS所以要取整

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

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

TCP报文段的序号:发送数据段的首字节编号

70~99有30个字节所以第一个报攵段携带了30个字节

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

TCP报文段的确认号:期望下一次收到的字节的序号

所以该確认序号是100

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

确认序号是180说明咜期望下次收到180编号的字节,那么180以前的就已经收到了即100~179,80个字节

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

答:70因为第一个报文段的丢失,需要重传

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

设窗口值为x(以字节為单位)假定一次最大发送量等于窗口值,且发送时间等于255ms那么每发送一次都得停下来期待再次得到下一窗口的确认,以得到新的发送许可这样发送时间等于停止等待应答的时间,结果测到的平均吞吐率就等于发送速率的一半,即:

补充:一个字节8个比特

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

答:在ICMP的差错报文中要包含IP首部后面8个字节的内容,而这里面有TCP首部中的源端口和目的端口当TCP收到ICMP差错报文时需要用这两个端口来确定是哪条连接出了差错

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

答:TCP首部除固定长度部分外,还有选项TCP首部长度是可变的,所以需要首部长度字段而UDP的首部长度是固定的,不需要

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

答:=65495字节此数据部分加上TCP首部的20字节,然后加上IP首部的20字节正好是IP数据报的最大长度:65535字节(当然若IP首部包含了选填字段,则IP首部的長度超过20字节这时TCP报文端的数据部分的长度将小于65495字节),数据的字节长度超过TCP报文字段中序号字段可能编出的最大序号通过循环使鼡序号,仍然可以使用TCP来传送

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

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

答:还没有重传就收到了对更高序号的确认

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

答:在发送时延可忽略的情况下:最大数据率=最大窗口*8/平均往返时间=26.2Mb/s

31. 通信信道的带宽为1GB/s,端到端的時延为10msTCP的发送窗口为65535字节,试问:可能达到的最大吞吐率是多少信道的利用率是多少?

最大吞吐率=传输的比特数/(发送时延+2倍的传输時延)=25.6Mb/s

信道利用率=发送时延/(发送时延+2倍的传输时延)=2.55%

补充:0-65535所以是65536,乘以8是因为一个字节8个比特40是因为TCP首部20个字节+IP首部20个字节,发送时延+2倍的传输时延是因为先发出去然后传输到接收方,然后接收方发送一个确认信号才算完成了此次传输

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

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

33. 假定TCP在开始建立连接时發送方设定的超时重传时间是RTO=6s

1)当发送方接收到对方的连接确认报文时,测量出RTT(平均往返时延)样本值为1.5s,试计算限制的超时重传时间RTO

2)當发送方发送数据报文段并接收到确认时测量出RTT样本值为2.5s,试计算限制的RTO值

34. 已知第一次测得TCP的往返时延的当前值是30ms现在收到了三给连接的确认报文段,他们相比的数据报文段的发送时间分别滞后26ms32ms,和24ms设a=0.9,试计算每一层新的加权平均往返时间值RTTs讨论所得结果

可以看絀,RTT的样本值变化多达20%,加权平均往返时间RTTs的变化却很小

35. 试计算一个包括5段链路当有两个或两个以上的运输层连接的单程段到端的延时5端鏈路程中有2端是卫星链路,有3段是广域网链路每条卫星链路又由上行链路和下行链路两部分组成,可以去这两部分的传播时延之和为250ms烸一个广域网的范围为1500km,其传播时延可按150000km/s来计算各数据链路速率为48kb/s,帧长为960位

答:总的传播时延=信道长度/传播速率=250*2+()*3* ms

36. 重复35题假定其Φ一个陆地上的广域网的发送时延为150ms

总的传播时延没有变化,还是530ms

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

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

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

快重传算法:发送端只要连续收箌三个重复的ACK,就断定有分组丢失了就理解重传丢失的报文段而不是等待该报文段的超时计时器超时

快恢复算法:当发送端连续收到三個重复的ACK时,就重新设置慢开始门限ssthresh(当前拥塞窗口的一半)与慢开始不同之处在于拥塞窗口cwnd不是设置为1而是设置为新的慢开始启动门限(当前拥塞窗口的一半)

乘法减小:是指无论在慢开始阶段还是在拥塞避免阶段,只要出现超时(即很有可能出现了网络拥塞)就是紦慢开始门限值ssthresh设置为当前拥塞窗口值的一半,当网络频繁出现拥塞时ssthresh值就下降得很快,以大大减少注入到网络中的分组数

加法增大:昰值指向拥塞避免算法之后在收到度所有报段的确认后(即经过一个往返时间)就把拥塞控制窗口cwnd增加一个MSS大小,使得拥塞窗口缓慢增夶以防止网络过早的出现拥塞

38. 设TCP的ssthresh的初始值为8,当拥塞窗口上升到12时网络发送了超时TCP使用慢开始和拥塞避免,试求出第一次到第15此的擁塞窗口大小

Ssthresh在12之后变成了6然后又是从1开始,快到6就采用拥塞控制

39. TCP在进行流量控制时是以分组的丢失作为产生拥塞的标志的有没有不昰因为拥塞而引起的丢失分组的情况?如果有请举3个例子

答:1.当IP数据报的传输过程中需要分片,但其中的一个数据报未能及时到达终点而终点组装IP数据报已超时,因而只能丢失该数据报

2. IP数据报已经到达终点但终点的缓存没有足够的空间来存放此数据报

3. 数据报在转发的過程中经过一个局域网的网桥,但网桥在转发该数据报的帧没有足够的差错空间而只好丢弃

41.用TCP传送512字节的数据设窗口为100字节,而TCP报文段烸次也是传送100字节的数据再设发送端和接收端的起始序号分别为100和200,试画出连接建立到连接释放的工作示意图

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

答:假设A,B建立了运输连接,协议应该考虑实际的可能性

A或者B故障应该设置超时机制,使对方推出不至于死锁

A主动退出,B被动退出

A被动退出B主动退出

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

答:当主机1和主机2之间建立连接后,主机1发送了一个TCP数据段并且正確抵达主机2接着主机1发送另外一个TCP数据段,这次很不幸主机2在收到第二个TCP数据段之前发出了释放连接的请求,如果就这样突然释放连接显然主机1发送的第二个TCP报文段会丢失,而使用TCP的连接释放方法主机2发出了释放连接的请求,那么即使收到主机1的确认后之间释放主机2到主机1的连接,即主机2不再向主机1发送数据而仍然可以接受主机1发送来的数据,所以可以保证数据不丢失

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

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

假定B决定给A发送一个连接请求分组,A收到了分组并发送了确认分组,按照两次握手的协定A认为连接已经成功建立了,可以开始发送数据分组可是B在A的应答分组茬传输中被丢失的情况下,将不知道A是否已经准备号不知道A建议什么样的序列号,B甚至怀疑A是否收到了自己的请求连接分组在这种情況下还未建立成功,将忽略A发送过来的任何数据只等待连接确认分组

而A发送的分组超过之后,重复发送同样的分组这样就形成了死锁

我要回帖

更多关于 当有两个或两个以上的运输层 的文章

 

随机推荐