当前位置:文档之家› 第5章习题解答

第5章习题解答

第5章:运输层1、试说明运输层在协议栈中的作用?运输层的通信和网络层的通信有什么重要的区别?为什么运输层是必不可少的?答:(1)首先,从通信和信息处理的角度来看,运输层向它上面的应用层提供通信服务,并为高层用户屏蔽了下层通信通信子网的细节。

其次,运输层的另一个重要功能就是复用和分用功能。

第三,运输层对传输的报文提供了差错检测机制。

第四,根据应用的不同,运输层还采用不同的运输层协议提供不同的服务。

(2)网络层为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信,如下图所示:(3)虽然无连接的运输服务和无连接的网络服务十分相似,但是运输层依然有它存在的必要性,因为:事实上,网络层是通信子网的一个组成部分,假设网络服务质量不可靠,频繁地丢失分组,网络层系统崩溃或不停的发出网络重置,这将发生什么情况呢?因为用户不能对通信子网加以控制,所以无法采用更好的通信处理机来解决网络层服务质量低劣的问题,更不可能通过改进数据链路层纠错能力来改善低层的条件。

因此,解决这一问题的唯一可行的办法就是在网络层的上面增加一层,即运输层。

运输层的存在使得运输服务比网络服务更可靠,分组的丢失、残缺,甚至网络重置都可以被运输层检测到,并采用相应的补救措施,而且由于运输服务独立于网络服务,故可以采用一个标准的原语集提供运输服务。

2、网络层提供数据报或虚电路服务对上面的运输层有何影响?答:如果下层的网络十分可靠,例如提供虚电路服务,那么用于完成数据传输的运输层协议就不需要做太多的工作。

当网络层仅使用提供不可靠的数据报服务时,运输层就需要使用一些复杂的协议,以便能够提供更优质的服务。

3、当应用程序使用面向连接的TCP和无连接的IP时,这种传输是面向连接的还是面向连接的?答:在网络层IP提供的是无连接的服务,但是在运输层TCP提供的服务是面向连接的。

但是最终,该应用程序使用的还是面向连接的传输服务。

4、试用画图解释运输层的复用。

画图说明许多个运输用户复用到一条运输连接上,而这一条运输连接又复用到IP 数据报上。

答:答案见辅导材料P155页。

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

答:6、接收端收到有差错的UDP用户数据报时应如何处理?答:简单的进行丢弃,其他的什么也不做。

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

因为UDP是无连接的,只提供尽最大可能的交付。

并且UDP没有拥塞控制,当很多主机同时向网络发送高速率的数据时,网络就会产生拥塞,结果会致使大家都收不到正确的数据。

8、为什么说UDP是面向报文的,而TCP是面向字节流的?答:在发送方,UDP对应用层送交下来的报文既不合并,也不拆分,按照原样发送,即UDP一次发送一个报文;在接收方,UDP对IP层交上来的UDP数据报,在除去首部后就原封不动的交付给上层的应用进程,即,UDP一次交付一个报文。

TCP是面向字节流的:TCP仅把应用程序交下来的数据看成一连串的无结构的字节流,并不知道所传输的字节流的含义,也不保证接收方应用程序收到的数据块和发送方发送的数据块的大小是否具有对应关系。

即:TCP可能把应用层交下来的数据块分成几个部分发送出去,也可能把几个数据块合并成一个发送出去。

在接收端也同样。

9、端口的作用是什么?为什么端口号要划分为三种?答:端口的作用:发送端:让应用层的各种应用进程都能将其数据通过端口向下交付给运输层,以便组成TPDU;接收端:运输层收到IP层交上来的数据后,要根据目的端口号决定应当通过哪个端口将数据交付给应用层中的相应的进程。

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

把端口号分成三种不同的类型是为了方便不同的应用程序使用:熟知端口号(系统端口号):其数值标号为0~1023,把它们指派给TCP/IP最重要的一些应用程序使用,让所有的用户都知道。

当一种新型的应用程序出现后,IANA必须要为它指派一个熟知端口号,否者因特网上的其它应用程序就无法和它进行通信。

登记端口号:是为了给没有熟知端口号的应用程序使用的。

客户端使用的端口号:这类端口号仅在客户进程运行时才动态选择的,是留给客户进程选择暂时使用的。

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

答:伪首部既不向上也不向下传送,仅仅是为了计算检验和。

11、某个应用进程使用运输层的用户数据UDP,然后继续向下交给IP层后组成IP数据报。

既然都是数据报,是否可以跳过UDP直接交给IP层?哪些功能UDP提供了但是IP没有提供?答:虽然都是数据报,但是应用进程不能跳过UDP直接交给IP层,因为IP数据报只能找到目的主机而无法找到目的进程。

UDP提供了IP 所不能提供的复用和分用功能;UDP可以对数据报做包括数据段在内的差错检测,而IP只对其数据报的头部做差错检测。

12、一个应用程序用了UDP,到了IP层之后把数据报再分为4个数据报片发送出去,结果是前两个数据报片丢失,后两个到达了目的站,过了一段时间,应用程序重传UDP,而IP层仍然划分为4个数据报片来传送,结果这次的前两个到达了目的站而后两个丢失了。

试问:在目的站能否将这四个数据报片组装成一个完整的数据报?假设在目的站第一次收到的后两个数据报片仍然保存在目的站的缓存中》答:不行。

重传时,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.14、一个UDP用户数据报的首部的十六进制表示是:06 32 00 45 00 1C E2 17 。

试求源端口,目的端口,用户数据报的总长度、数据部分长度。

这个用户数据报是从客户发送给服务器的,还是服务器发送给客户的?使用UDP的这个服务器程序是什么?答:把UDP数据报的首部各字段如下(每个字段都是2字节):因此:源端口是1586,目的端口是69,UDP用户数据报总长度是28字节,数据部分是20字节。

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

服务程序是TFTP。

(查熟知端口表就会知道)。

15、使用TCP对实时话音数据的传输有没有什么问题?使用UDP在传输数据文件时会有什么问题?答:UDP不保证可靠交付,但是UDP比TCP的开销要小。

因此,只要应用程序接受这样的服务质量就可以使用UDP。

如果话音不是实时数据(边接收边播放)就可以使用TCP,因为TCP传输可靠。

接收端用TCP将话音数据接收完毕后,可以在以后的任何时间进行播放。

但假定是实时传输,则必须使用UDP.16、在停止等待协议中,在什么情况下确认帧可以不使用序号?在停止等待协议中,如果不使用编号是否可行?为什么?答:(1)在停止等待协议中,仅当数据帧和确认帧在传输的过程中既不会丢失也不会有差错的情况下,确认帧才可以不使用序号(其实,如果在传输的过程中既不丢失也无差错时,根本就不用确认了)。

(2)然而在现实的数据传输中,很难保证数据的传输既不丢失也不出现差错,所以在停止等待协议中应当使用序号。

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

答:不行。

如下图所示:若对收到的重复的报文不进行重传确认,就会让发送方一直认为它所发送的数据没有正确到达接收端,而继续重传下去;当重传达到一定的次数时,就会认为网络出现了故障。

18、假定在运输层使用停止等待协议。

发送方在发送报文段M0后在设定的时间内未收到确认,于是重传M0,但是M0又迟迟不能到达接收方。

不久,发送方收到了迟到的对M0的确认,于是发送下一个报文段M1,不久就收到了对M1的确认。

接着发送方发送新的报文段M0,但是这个新的M0在传送的过程中丢失了。

正巧,一开始就滞留在网络中的M0现在到达了接收方。

接收方无法分辨M0是旧的。

于是收下了M0,并发送确认。

显然,接收方后来收到的M0是重复的,协议失败了。

试画出类似于图5-9所示的双方交换报文段的过程。

答:见教材P38319、试证明:当用n比特进行分组的编号时,若接收窗口等于1(即只能按序接收分组),则仅在发送窗口不超过2n-1时,连续ARQ协议才能正确运行。

窗口的单位是分组。

答:如下图所示:设发送窗口记为W T ,接收窗口记为W R .假定用3个比特进行编号,设接收窗口正好在7号分组处(有阴影的分组)。

发送窗口W T的位置不可能比②更靠前,也不可能比③更靠后,也可能不是这种极端位置,如①。

对于①和②的情况,在W T的范围内无重复序号,即W T≦2n。

对于③的情况,在W T+W R的范围内无重复序号,即W T+W R≦2n。

现在W R =1,故发送窗口的最大值W T≦2n-1。

图见教材P38320、在连续ARQ协议中,若发送窗口等于7,则发送端在开始发送时可以连续发送7个分组,因此,每一个分组发送出去后,都要设置一个超时计时器。

现在计算机中只有一个硬时钟。

设这7个分组发出的时间分别是:t0 ,t1 ,t2 ,t3 ,t4 ,t5 ,t6 ,且t out都一样大,试问如何实现这7个超时计时器(这叫软时钟法)?答:用相对发送时间实现一个链表,见P383图A-5。

21、假定使用连续ARQ协议,发送窗口大小是3,而序号的范围是【0,15】,而传输媒体保证在接收方能够按序收到分组,在某个时刻,在接收方,下一个期望收到的序号是5.试问:(1)在发送方的发送窗口中可能出现的序号组合有哪几种?(2)接收方已经发送出去的、但是在网络中(即还没有到达发送方)的确认分组可能有哪些?说明这些确认分组是用来确认哪些序号的分组?答:(1)接收方期望收到的分组序号是5,说明前5个分组都已经收到了。

若这些确认都已经到达了发送方,则发送窗口的范围是【5,7】。

接收方期望收到序号为5的分组,说明序号为0,1,2,3,4的分组都已经收到,并且发出了确认。

并且对序号为0,1的分组的确认肯定被发送方收到了,否则不可能发送4号分组。

相关主题