摘要:8-04试用具体例子说明为什么在运输连接建立时要使用三次握手。说明如不这样做可能会出现什么情况。答:我们知道,3次握手完成两个重要功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送与确认。现在把三次握手改成仅需要两次握手,死锁是可能发生的。
8-04 试用具体例子说明为什么在运输连接建立时要使用三次握手。说明如不这样做可能会出现什么情况。
答:我们知道,3次握手完成两个重要功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送与确认。
现在把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子,考虑计算机A和B之间的通信。假定B给A发送一个连接请求分组,A收到了这个分组,并发送了确认应答分组。按照两次握手的协定,A认为连接已经成功地建立了,可以开始发送数据分组。可是,B在A的应答分组在传输中被丢失的情况下,将不知道A是否已准备好,不知道A建议什么样的序列号用于A到B的交通,也不知道A是否同意B所建议的用于B到A交通的初始序列号,B甚至怀疑A是否收到自己的连接请求分组。在这种情况下,B认为连接还未建立成功,将忽略A发来的任何数据分组,只等待接收连接确认应答分组。而A在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。
8-05 一个TCP报文段中的数据部分最多为多少个字节?为什么?如果用户要传送的数据的字节长度,超过TCP报文段中的序号宇段可能编出的最大序号,问还能否用TCP来传送?
答:整个TCP报文段必须适配IP分组65535字节的载荷段。因为TCP头最少20个字节,所以仅剩下65515字节用于TCP数据。
8-06 主机A和B使用TCP通信。在B发送过的报文段中,有这样连续的两个:ACK=120和ACK=100。这可能吗(前一个报文段确认的序号还大于后一个的)?试说明理由。
8-07 在使用TCP传送数据时,如果有一个确认报文段丢失了,也不一定会引起对方数据的重传。试说明理由(可结合上一题讨论)。
8-08 在8.4.1小节曾讲过,若收到的报文段无差错,只是未按序号,则TCP对此未作明确规定,而是让TCP的实现者自行确定。试讨论两种可能的方法的优劣:
(1)将不按序的报文段丢弃;
(2)先将不按序的报文段暂存于接收缓存内,待所缺序号的报文段收齐后再一起上交应用层。
答:尽管到达的每个数据报都是完整的,但可能到达的数据报顺序是错误的,因此,TCP必须准备适当地重组报文的各个部分。
8-09 设TCP使用的最大窗口为64KB,即64×1024字节,而传输信道的带宽可认为是不受限制的。若报文段的平均往返时延为20mS,问所能得到的最大吞吐量是多少?
答:10毫秒×2=20毫秒每20毫秒可以发送一个窗口大小的交通量,每秒50个窗口(1000毫秒÷20毫秒=50)65535×8×50=26.214Mbps26.214Mbps÷1000Mbbps≈2.6%所以,最大吞吐率是26.214Mbps,线路效率约为2.6%。
8-10 试计算一个包括5段链路的运输连接的单程端到端时延。5段链路程中有2段是卫星链路。每条卫星链路又由上行链路和下行链路两部分组成。可以取这两部分的传播时延之和为250mS。每一个广域网的范围为1500kM,其传播时延可按150000kM/s来计算。各数据链路速率为48kb/s,帧长为960bit。
软考备考资料免费领取
去领取