您好,欢迎访问三七文档
第5章5-1试说明运输层在协议栈中的地位和作用。运输层的通信和网络层的通信有什么重要区别?解答:从通信和信息处理的角度看,运输层向它上面的应用层提供端到端通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。当位于网络边缘部分的两台主机使用网络核心部分的功能进行端到端的通信时,只有主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能。虽然网络层实现了主机到主机的逻辑通信,但严格地讲,通信的真正端点并不是主机而是主机中的进程。因此,运输层在网络层之上提供应用进程间的逻辑通信。5-2当应用程序使用面向连接的TCP和无连接的IP时,这种传输是面向连接的还是无连接的?解答:从网络层看是无连接的,但从运输层看是面向连接的。5-3接收方收到有差错的UDP用户数据报时应如何处理?解答:丢弃且不通知发送方。5-4在“滑动窗口”概念中,“发送窗口”和“接收窗口”的作用是什么?如果接收方的接收能力不断地发生变化,则采取何种措施可以提高协议的效率。解答:“发送窗口”作用是限制发送方连续发送数据的数量,即控制发送方发送数据的平均速率。“接收窗口”反映了接收方当前接收缓存的大小,即接收方接收能力的大小。当接收方的接收能力不断地发生变化时,可以将接收窗口的大小发送给发送方,调节发送方的发送速率,避免因发送方发送速率太大或太小而导致接收缓存的溢出或带宽的浪费,从而提高协议的效率。5-5简述TCP和UDP的主要区别。解答:TCP提供的是面向连接、可靠字的字节流服务,并且有流量控制和拥塞控制功能。UDP提供的是无连接、不可靠的数据报服务,无流量控制和拥塞控制。5-6如果因特网中的所有链路都提供可靠的传输服务,TCP可靠传输服务将会是完全多余的吗?为什么?解答:TCP可靠传输服务不是多余的。因为在端到端的数据传输过程中并不是所有的差错都来自分组在链路上传输时的比特级差错,例如由于网络拥塞导致路由器的分组丢弃,路由器在转发分组时的故障等都会导致端到端的数据传输的差错,这些都不可能通过链路层的可靠数据传输得以解决,必须由端到端的运输层可靠数据传输服务来解决。5-7解释为什么突然释放运输连接就可能会丢失用户数据,而使用TCP的连接释放方法就可保证不丢失数据。解答:假定A和B之间建立了TCP连接。如果A发送完数据在还没有接收到对方确认时就突然释放连接,则不能保证这些没有被确认的数据在传输中不会丢失。如果A在收到B对所有发送数据的确认后释放连接,A发送的数据不会丢失,可能B还在数据发送,这些数据A都无法正确收到。TCP的连接释放在两个方向都要发送连接释放请求和确认,保证数据不丢失。5-8试用具体例子说明为什么在运输连接建立时要使用三次联络。说明如不这样做可能会出现什么情况。解答:这主要是为了防止已失效的连接请求报文段突然又传送到了TCP服务器,导致建立错误的连接而浪费资源,如图所示。...建立连接通信释放连接延迟到达连接请求重传连接请求连接请求确认并建立连接,分配资源等待通信,浪费资源忽略该确认5-9主机A和B使用TCP通信。在B发送过的报文段中,有这样连续的两个:ack=120和ack=100。这可能吗(前一个报文段确认的序号还大于后一个的)?试说明理由。解答:一般不会,因为TCP的接收方采用的是累积确认,确认号不会倒退。但当出现失序时会有这种情况出现。设想A连续发送两个报文段:(seq=92,DATA共8字节)和(seq=100,DATA共20字节),均正确到达B。B连续发送两个确认:(ack=100)和(ack=120)。但前者在网络中传送时经历了很大的时延,使得A先收到B后发送的确认。图A-1说明了这一情况。见图A-1。ABseq=92,DATA(8B)seq=100,DATA(20B)ack=100ack=120tt图A-1习题5-11的图5-10请简要比较TCP的可靠传输实现与GBN算法的主要异同。解答:TCP接收窗口大小不为1,发送窗口和接收窗口大小动态变化,而GBN接收窗口为1。TCP标准没有规定对不按序到达的数据应如何处理。通常是先临时存放在接收窗口中,等到字节流中所缺少的字节收到后,再按序交付上层的应用进程。TCP和GBN都是采用累积确认方式,但在发生超时,TCP发送方仅对超时的分组重传,而GBN是重传窗口内所有已发送的分组。TCP的编号以字节为单位,而GBN以分组为单位。因此TCP的算法介于GBN和SR之间。5-11用TCP传送512字节的数据。设窗口为100字节,而TCP报文段每次也是传送100字节的数据。再设发送方和接收方的起始序号分别选为100和200,试画出类似于图5-15的工作示意图。从连接建立阶段到连接释放都要画上。解答SYN=1,seq=100SYN=1,ACK=1,seq=200,ack=101ABACK=1,seq=101,ack=201ACK=1,seq=101,ack=201,DATA(100B)ACK=1,seq=201,ack=201,rwnd=100ACK=1,seq=201,ack=202,DATA(100B)ACK=1,seq=201,ack=301,rwnd=100ACK=1,seq=301,ack=202,DATA(100B)ACK=1,seq=201,ack=401,rwnd=100ACK=1,seq=401,ack=202,DATA(100B)ACK=1,seq=201,ack=501,rwnd=100ACK=1,seq=501,ack=202,DATA(100B)ACK=1,seq=201,ack=601,rwnd=100ACK=1,seq=601,ack=202,DATA(12B)ACK=1,seq=201,ack=613,rwnd=100FIN=1,ACK=1,seq=613,ack=202ACK=1,seq=201,ack=614FIN=1,ACK=1,seq=201,ack=614ACK=1,seq=614,ack=202建立连接关闭A到B的连接关闭B到A的连接5-12在上图所示的连接释放过程中,主机A在发送完对B的连接释放请求报文段的确认后,为什么还要等待一段超时时间再彻底关闭连接?因为主机A的确认有可能丢失,这时B会重传FIN报文段。在这段超时时间内,若A又收到B重传的FIN报文段,A需要再次进行确认。收到A的最后确认,B才能最终将整个连接释放。主机A的TCP再向其应用进程报告,整个连接已经全部释放。5-13使用TCP对实时话音数据的传输有没有什么问题?使用UDP在传送数据文件时会有什么问题?解答:TCP的流量控制和拥塞控制和可靠数据传输机制会导致比较大的分组时延抖动,而大的时延抖动会严重影响实时话音数据传输的质量。由于数据文件的传输需要可靠数据传输,因此在使用UDP在传送数据文件时需要应用程序自己实现可靠数据传输功能。5-14TCP在进行拥塞控制时是以分组的丢失作为产生拥塞的标志。有没有不是因拥塞而引起的分组丢失的情况?如有,请举出三种情况。解答:有。一是信道误码导致中间结点将分组丢弃;二是路由错误导致分组在网络中兜圈子最后被路由器丢弃;三是中间路由器在接收了分组还没有转发出去时故障,导致分组丢失。这些情况发生的概率都比较小。5-15简述TCP流量控制和拥塞控制的不同。解答:流量控制解决因发送方发送数据太快而导致接收方来不及接收使接收方缓存溢出的问题。流量控制的基本方法就接收方根据自己的接收能力控制发送方的发送速率。TCP采用接收方控制发送方发送窗口大小的方法来实现在TCP连接上的流量控制。拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。TCP的发送方维持一个叫做拥塞窗口的状态变量。拥塞窗口的大小取决于网络的拥塞程度,当网络拥塞时减小拥塞窗口的大小,控制TCP发送方的发送速率。TCP发送方的发送窗口大小取接收窗口和拥塞窗口的最小值。
本文标题:第5章-运输层
链接地址:https://www.777doc.com/doc-5689846 .html