计算机网络(谢希仁)第六版第五章

第五章 传输层

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

答:运输层处于面向通信部分的最高层同时也是用户功能中的最低层,向它上面的应用层提供服务 运输层为应用进程之间提供端到端的逻辑通信,但网络层是为主机之间提供逻辑通信(面向主机,承担路由功能,即主机寻址及有效的分组交换)。各 种应用进程之间通信需要“可靠或尽力面为”的两类服务质量,必须由运输层以复用和分用的形式加载到网络层。

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

答:网络层提供数据报或虚电路服务不影响上面的运输层的运行机制。 但提供不同的服务质量。

5- -03当应用程序使用面向连接的 TCP和无连接的IP时,这种传输是面向连接的还是面向无连接的?答:都是。这要在不同层次来看,在运输层是面向连接的,在网络层则是无连接的。

5- -06 接收方收到有差错的UDP用户数据报时应如何处理?答:丢弃

5–07 如果应用程序愿意使用UDP来完成可靠的传输,这可能吗?请说明理由答:可能,但应用程序中必须额外提供与TCP相同的功能。

5- -08为什么说 UDP是面向报文的,而TCP是面向字节流的?
答:发送方UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交F来的报文,既不合并,也不拆分,而是保留这些报文的边界。接收方UDP 对IP层交上来的UDP用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付.一个完整的报文。

发送方TCP对应用程序交下来的报文数据块,视为无结构的字节流(无边界约束,课分拆1合并),但维持各字节

5–09 端口的作用是什么?为什么端口要划分为三种?

答:端口的作用是对TCPIP体系的应用进程进行统一的标志使运行不同操作系统的计算机的应用进程能够互相通信。熟知端口,数值一般为0-1023.标记常规的服务进程:登记端口号,数值为1024-49151, 标记没有熟知端口号的非常规的服务进程:

5- 10试说 明运输层中伪首部的作用。答: 用于计算运输层数据报校验和。

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

答:不可跳过UDP而直接交给IP层IP数据报IP报承担主机寻址,提供报头检错:只能找到目的主机面无法找到目的进程。UDP 提供对应用进程的复用和分用功能,以及提供对数据差分的差错检验

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

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

5–15 使用TCP对实时话音数据的传输有没有什么问题?使用UDP在传送数据文件时会有什么问题?答:如果语音数据不是实时播放(边接受边播放)就可以使用TCP,因为TCP传输可靠。接收端用TCP讲话音数据接受完毕后,可以在以后的任何时间进行播放。但假定是实时传输,则必须使用UDP UDP不保证可靠交付,但UCP比TCP的开销要小很多。因此只要应用程序接受这样的服务质量就可以使用UDP。

S- 16 在停止等待协议中如果不使用编号是否可行?为什么?答:分组和确认分组都必须进行编号,才能明确哪个分则得到了确认。

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

5–18 假定在运输层使用停止等待协议。发送发在发送报文段MO后再设定的时间内未收到确认,于是重传M0,但MO又迟迟不能到达接收方。不久,发送方收到了迟到的对M0的确认,于是发送下一个报文段MI,不久就收到了对MI的确认。接着发送方发送新的报文段MO,但这个新的MO在传送过程中丢失了。正巧,-开始就滞留在网络中的MO现在到

达接收方。接收方无法分辨M0是旧的。于是收下M0,并发送确认。显然接收方后来收到的MO是重复的,协议失败了。试画出类似于图5-9所示的双方交换报文段的过程。答:旧的 MO被当成新的MO.
5- -19试证明+ 当用n比特进行分组的编号时,若接收到窗口等于1 (即只能按序接收分组),当仅在发送窗口不超过2n-1时,连接ARQ协议才能正确运行。窗口单位是分组。解:见课后答案。

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

5- -21 假定使用连续ARQ协议中,发送窗口大小事3,而序列范用[0,15].而传输媒体呆证在接收方能够按序收到分组。在某时刻,接收方,下一个期望收到序号是5.试问:(I) 在发送方的发送窗口中可能有出现的序号组合有哪几种?

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

5- 25为什么在TCP首部中要把TCP端口号放入最开始的4个字节?答: 在ICMP的差错报文中要包含IP首部后面的8个字节的内容,而这里面有TCP首部中的源端口和目的端口。当TCP收到ICMP差错报文时需要用这两个端口来确定是哪条连接出了差错。

5–26 为什么在TCP首部中有一个首部长度字段,而UDP的首部中就没有这个这个字段? 答:TCP首部除固定长度部分外,还有选项,因此TCP首部长度是可变的。UDP首部长度是固定的。5- -27一个 TCP报文段的数据部分最多为多少个字节?为什么?如果用户要传送的数据的字节长度超过TCP报文字段中的序号字段可能编出的最大序号,问还能否用TCP来传送?
答: 65495 字节,此数据部分加t TCP首部的20字节,再加上IP首部的20字节,正好是IP數据报的最大长度655 (当然,若IP首部包含了选择,则IP首部长度超过 20字节,这时TCP报文段的数据部分的长度将小于65495字节。)数据的字 节长度超过TCP报文段中的序号字段可能编出的最大序号,通过循环使用序号,仍能用TCP来传送。

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

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

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

5–37 在TCP的拥塞控制中,什么是慢开始、拥塞避免、快重传和快恢复算法?这里每种算法各起什么作用?“乘法减小”和加法增大”各用在什么情况下?答:慢开始: 在主机刚刚开始发送报文段时可先将拥塞窗口cwnd设置为一个最大报文段MSS的数值。在每收到一个对新的报文段的确认后,将拥塞窗口增加至多一个MSS的数值。用这样的方法逐步增大发送端的拥塞窗口cwnd,可以分组注入到网络的速率更加合理,拥塞避免: 当拥塞窗 口值大于慢开始门限时,停止使用慢开始算法而改用拥塞避免算法。拥塞避免算法使发送的拥塞窗口每经过-。个往返时延RTT就增加一个MSS的大小。快重传算法规定:发送端只要一连收到三个重复的ACK即可断定有分组丢失了,就应该立即重传丢手的报文段而不必继续等待为该报文段设置的重传计时器的超时。快恢复算法:当发送端收到连续三个重复的ACK时,就重新设置慢开始门限sthresh 与慢开始不同之处是拥塞窗口cwnd不是设置为1,而是设置为sthresh若收到的重复的AVK为n个(n>3), 则将cwnd设置为ssthresh 若发送窗口值还客许发送报文段,就按拥塞避免算法维续发送报文段.若收到了确认新的报文段的ACK,就将cwnd缩小到sthresh
乘法减小:是指不论在慢开始阶段还是拥塞避免阶段,只要出现一次超时(印出现-次网络拥塞),就把慢开始门限值sthresh设置为当前的拥塞窗口值乘以0.5. 当网络频繁出现拥塞时,sthresh 值就下降得很快,以大大减少注入到网络中的分组数。加法增大:是指执行拥塞避免算法后,在收到对所有报文段的确认后(即经过一个往返时间),就把拥塞窗口cwnd增加-个MSS大小,使拥塞窗口缓慢增大,以防止网络过早出现拥塞

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

答:设A,B建立了运输连接。协议应考虑- 下实际可能性:

A或B故障,应设计超时机制,使对方退出。不至于死锁:A主动退出,B被动退出B主动退出,A被动退出

5- 45 解释为什么突然释放运输连接就可能会丢失用户数据,而使用TCP的连接释放方法就可保证不丢失数据。答:当主机1和主机2之间连接建立后,主机I发送了一个TCP数据段并正确抵达主机2,接着

主机1发送另一个TCP数据段,这次很不幸,主机2在收到第二个TCP数据段之前发出了释放连接请求,如果就这样突然释放连接,显然主机1发送的第二个TCP报文段会丢失。而使用TCP的连接释放方法,主机2发出了释放连接的请求,那么即使收到主机1的确认后,只会释放主机2到主机1方向的连接,即主机2不再向主机1发送数据,而仍然可接受主机I发来的数据,所以可保证不丢失数据。

5- 46 试用具体例子说明为什么在运输连接建立时要使用三次握手。说明如不这样做可能会出现什么情况。
答: 3 次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。假定B给A发送一个连接请求分组,A收到了这个分组,并发送了确认应答分组。按照两次握手的协定,A认为连接已经成功地建立了,可以开始发送数据分组。可是,B在A的应答分组在传输中被丢失的情况下,将不知道A是否已准备好,不知道A建议什么样的序列号,B甚至怀疑A是否收到自己的连接请求分组,在这种情况下,B认为连接还未建立成功,将忽略A发来的任何数据分组,只等待连接确认应答分组。 而A发出的分组超时后,重复发送同样的分组。这样就形成了死锁。

原文地址:https://www.cnblogs.com/CCCrunner/p/11781646.html