《计算机网络技术》课程
作业参考答案
第五章运输层
5.1 试说明运输层在协议栈中的地位和作用。运输层的通信和网络层的通信有什么重要的区别?为什么运输层是必不可少的?
答案:
(1)运输层是OSI七层模型中最重要最关键的一层,是唯一负责总体数据传输和控制的一层。运输层要达到两个主要目的:第一提供可靠的端到端的通信;第二,向会话层提供独立于网络的运输服务。在讨论为实现这两个目标所应具有的功能之前,先考察一下运输层所处的地位。首先,运输层之上的会话层、表示层及应用层均不包含任何数据传输的功能,而网络层又不一定需要保证发送站的数据可靠地送至目的站;其次,会话层不必考虑实际网络的结构、属性、连接方式等实现的细节。根据运输层在七层模型中的目的和地位,它的主要功能是对一个进行的对话或连接提供可靠的传输服务;在通向网络的单一物理连接上实现该连接的利用复用;在单一连接上进行端到端的序号及流量控制;进行端到端的差错控制及恢复;提供运输层的其它服务等。运输层反映并扩展了网络层子系统的服务功能,并通过运输层地址提供给高层用户传输数据的通信端口,使系统间高层资源的共享不必考虑数据通信方面的问题。
提供端到端的进程间通信服务的是(2)运输层提供应用进程间的逻辑通信,也就是说,运输层之间的通信并不是真正在两个运输层之间直接传送数据。运输层向应用层屏蔽了下面网络的细节(如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道。
网络层为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信。(3)运输层的最终目标是为用户提供有效、可靠和价格合理的服务。在一个系统中,运输实体通过网络服务与其它运输实体通信,向运输层用户(可以是应用进程,也可以是会话层协议)提供运输服务。运输层的服务包括的内容有:服务的类型、服务的等级、数据运输、用户接口、连接管理、快速数据运输、状态报告、安全保密等。因此,运输层是必不可少的。
5.9 端口的作用是什么?为什么端口号要划分为三种?
答案:
1.硬件端口是不同硬件设备进行交互的接口,软件端口是应用层的各种协议进程与运输实体进行层间交互的一种地址。两台计算机中的进程要相互通信,不仅要知道对方的IP地址,还要知道对方的端口号。此外,发送方还必须写明自己的IP地址和端口号。
2.因特网上的计算机通信采用客户—服务器方式。客户在发起通信请求时,必须先知道对方服务器的IP
地址和端口号,因此将运输层的端口号划分为三种:(1)系统端口号(又称为熟知端口号),数值为0~1023。IANA把这些端口号指派给了TCP/IP最重要的一些应用程序,让所有的用户都知道,使得因特网上的其他应用进程可以和它通信。(2)登记端口号,数值为1024~49151。这类端口号是为没有熟知端口号的应用程序使用的。(3)客户端使用的端口号,数值为49152~65535.这类端口号是留给客户进程选择暂时使用的。
5.10 某个应用进程使用运输层的用户数据报UDP,然后继续向下交给IP层后,又封装成IP数据报。既然都是数据报,是否可以跳过UDP而直接交给IP层?哪些功能UDP提供了但IP没有提供?
解析:本体主要考查运输层UDP协议与网络层IP协议的不同之处。虽然二者最终都封装成数据报,但IP层无法实现端口功能和差错检验功能,使得接收端无法把正确无误的数据报提交给对应的应用进程。
答案:不能。IP数据报只能到目的主机而无法到目的进程,UDP提供对应用进程的复用和分用功能,以及提供对数据部分的差错检验。
5.12使用TCP对实时语音数据的传输会有什么问题?使用UDP在传送数据文件时会有什么问题?
解析:本题考察对TCP和UDP工作原理、适应范围等内容的理解。TCP提供面向连接的可靠数据传输,UDP提供无连接的数据传输。而对于多媒体应用来说,是可以容忍少量分组的丢失,因此可靠的数据传
输对于这些应用来说并不是至关重要的。此外,TCP的拥塞控制会导致语音数据实时性能变得很差。基于上述原因,语音数据的传输一般采用UDP。答案:使用TCP对实时语音数据的传输有问题。在使用UDP进行数据文件传送时,UDP 虽不保证可靠交付,但UDP比TCP的开销要小很多。因此只要应用程序接受这样的服务质量就可以使用UDP。如果语音数据不是实时播放(边接受边播放),就可以使用TCP,因此TCP是可靠传输。接收端用TCP将语音数据接收完毕后,可以在以后的任何时间进行播放。但假定是实时传播,则必须使用UDP。
5.17主机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.22设TCP使用的最大窗口为65535字节。而传输信道不产生差错,带宽也不受限制。若报文段的平均往返时间为20ms,问所能得到的最大的吞吐量是多少?
解析:本题主要考查的是对发送窗口和平均往返时延的理解使用。众所周知,发送窗口的大小受接收端接收能力的限制,本题中发送端最大窗口大小为64KB,说明发送端在收到确认之前最多能发送这么多报文段。依据题意,最大窗口大小/平均往返时延便得到结果。答:可见在报文段平均往返时延20ms内,发送方最多能发送64×1024×8bit,所以最大的吞吐量为64×1024×8bit÷(20×10-3s)=b/s=26.214Mb/s
最大吞吐量=窗口值大小×单位时间内发送的窗口数量,所以最大的吞吐量=65535×8÷(20×10-3)=bit/s=26.214Mbit/s
5.23试计算一个包括5段链路的运输连接的单程端到端时延。5段链路程中有2段是卫星链路,有3段是广域网链路。每条卫星链路又由上行链路和下行链路两部分组成。可以取这两部分的传播时延之和为250ms,每一个广域网的范围为1500km,其传播时延可按150000km/s来计算。各数据链路数率为48kbi
t/s,帧长为960bit。
解析:本题考查的是对链路单程端到端时延的理解,在本题中5端链路主要包括的时延有卫星链路的传播时延、广域网链路传播时延以及数据发送时延三部分;每段卫星链路的单程端到端时延是250ms,那2段卫星链路的单程端到端时延为2×250=250ms,每段广域网链路的单程端到端时延为1500/150000=0.01s=10ms,3段单程端到端时延为30ms;数据的平均发送时延为960/48000=0.02s=20ms,共有5段链路,因此数据发送总时延20×5=100ms。
答:5段链路的传播时延=250×2+(1500/150000)×3×1000=530ms
5段链路的发送时延=960÷(48×1000)×5×1000=100ms
所以5段链路单程端到端时延=530+100=630ms
5.24试用具体例子说明为什么在运输连接建立时要使用三次握手。说明如不这样做可能会出现什么情况。
答案:我们知道,3次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。
现在把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子,考虑计算机A 和B之间的通信,假定B给A发送一个连接请求分组,A收到了这个分组,并发送了确认应答分组。按照两次握手的协定,A认为连接已经成功地建立了,可以开始发送数据分组。可是,在A的应答分组在传输中被丢失的情况下,B将不知道A是否已准备好,不知道A建议什么样的序列号,B甚至怀疑A是否收到自己的连接请求分组。在这种情况下,B认为连接还未建立成功,将忽略A发来的任何数据分组,只等待连接确认应答分组。而A在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论