5—27一个TCP报文段的数据部分最多为多少个字节?为什么?如果用户要传送的数据的字节长度超过TCP报文字段中的序号字段可能编出的最大序号,问还能否用TCP来传送?
答:65495字节,此数据部分加上TCP首部的20字节,再加上IP首部的20字节,正好是IP数据报的最大长度65535.(当然,若IP首部包含了选择,则IP首部长度超过20字节,这时TCP报文段的数据部分的长度将小于65495字节。)
数据的字节长度超过TCP报文段中的序号字段可能编出的最大序号,通过循环使用序号,仍能用TCP来传送。
5—28主机A向主机B发送TCP报文段,首部中的源端口是m而目的端口是n。当B向A发送回信时,其TCP报文段的首部中源端口和目的端口分别是什么?
答:分别是n和m。
5—29在使用TCP传送数据时,如果有一个确认报文段丢失了,也不一定会引起与该确认报文段对应的数据的重传。试说明理由。
答:还未重传就收到了对更高序号的确认。
5—30设TCP使用的最大窗口为65535字节,而传输信道不产生差错,带宽也不受限制。若报文段的平均往返时延为20ms,问所能得到的最大吞吐量是多少?
答:在发送时延可忽略的情况下,最大数据率=最大窗口*8/平均往返时间=26.2Mb/s。
5—31通信信道带宽为1Gb/s,端到端时延为10ms。TCP的发送窗口为65535字节。试问:可能达到的最大吞吐量是多少?信道的利用率是多少?
答:
L=65536×8+40×8=524600
C=109b/s
L/C=0.0005246s
Td=10×10-3s
0.02104864
Throughput=L/(L/C+2×Td)=524600/0.0205246=25.5Mb/s
Efficiency=(L/C)//(L/C+2×D)=0.0255
最大吞吐量为25.5Mb/s。信道利用率为25.5/1000=2.55%
5—32什么是Karn算法?在TCP的重传机制中,若不采用Karn算法,而是在收到确认时都认为是对重传报文段的确认,那么由此得出的往返时延样本和重传时间都会偏小。试问:重传时间最后会减小到什么程度?
答:Karn算法:在计算平均往返时延RTT时,只要报文段重传了,就不采用其往返时延样本。
设新往返时延样本Ti
RTT(1)=a*RTT(i-1)+(1-a)*T(i);
RTT^(i)=a* RTT(i-1)+(1-a)*T(i)/2;
RTT(1)=a*0+(1-a)*T(1)= (1-a)*T(1);
RTT^(1)=a*0+(1-a)*T(1)/2= RTT(1)/2
RTT(2)=a*RTT(1)+(1-a)*T(2);
RTT^(2)=a*RTT(1)+(1-a)*T(2)/2;
=a*RTT(1)/2+(1-a)*T(2)/2= RTT(2)/2
RTO=beta*RTT,在统计意义上,重传时间最后会减小到使用karn算法的1/2.
5—33假定TCP在开始建立连接时,发送方设定超时重传时间是RTO=6s。
(1)当发送方接到对方的连接确认报文段时,测量出RTT样本值为1.5s。试计算现在的RTO值。
(2)当发送方发送数据报文段并接收到确认时,测量出RTT样本值为2.5s。试计算现在的RTO值。
答:
(1)据RFC2988建议,RTO=RTTs+4*RTTd。其中RTTd是RTTs的偏差加权均值。
初次测量时,RTTd(1)=RTT(1)/2;
后续测量中,RTTd(i)=(1-Beta)*RTTd(i-1)+Beta*{ RTTs- RTT(i)};
Beta=1/4
依题意,RTT(1)样本值为1.5秒,则
RTTs(1)=RTT(1)=1.5sRTTd(1)=RTT(1)/2=0.75s
RTO(1)=RTTs(1)+4RTTd(1)=1.5+4*0.75=4.5(s)
(2)RTT(2)=2.5RTTs(1)=1.5sRTTd(1)=0.75s
RTTd(2)=(1-Beta)*RTTd(1)+Beta*{ RTTs(1)- RT
(2)}=0.75*3/4+{1.5-2.5}/4=13/16
RTO(2)=RTTs(1)+4RTTd(2)=1.5+4*13/16=4.75s
5—34已知第一次测得TCP的往返时延的当前值是30ms。现在收到了三个接连的确认报文段,它们比相应的数据报文段的发送时间分别滞后的时间是:26ms,32ms和24ms。设α=0.9。试计算每一次的新的加权平均往返时间值RTTs。讨论所得出的结果。
答:a=0.1,RTTO=30
RTT1=RTTO*(1-a) +26*a=29.6
RTT2=RTT1*a+32(1-a)=29.84
RTT3=RTT2*a+24(1-a)=29.256
三次算出加权平均往返时间分别为29.6,29.84和29.256ms。
可以看出,RTT的样本值变化多达20%时,加权平均往返
5—35试计算一个包括5段链路的运输连接的单程端到端时延。5段链路程中有2段是卫星链路,有3段是广域网链路。每条卫星链路又由上行链路和下行链路两部分组成。可以取这两部分的传播时延之和为250ms。每一个广域网的范围为1500km,其传播时延可按150000km/s来计算。各数据链路速率为48kb/s,帧长为960位。
答:5段链路的传播时延=250*2+(1500/150000)*3*1000=530ms
5段链路的发送时延=960/(48*1000)*5*1000=100ms
所以5段链路单程端到端时延=530+100=630ms
5—36重复5-35题,但假定其中的一个陆地上的广域网的传输时延为150ms。
答:760ms