网络术语MSL/TTL/RTT

  • Post author:
  • Post category:其他


MSL(Maximum Segment Lifetime)最大报文生存时间



每个TCP实现


必须选择一个MSL。它

是任何报文段被丢弃前在网络内的最长时间

。这个时间是有限的,因为TCP报文段以IP数据报在网络内传输,而IP数据报则有限制其生存时间的TTL时间。RFC 793指出MSL为

2分钟

,现实中常用

30秒或1分钟

2MSL

当TCP执行主动关闭,并发出最后一个ACK,该链接必须


在TIME_WAIT状态下停留的时间


为2MSL。这样可以(1)让TCP

再次发送最后的ACK以防这个ACK丢失

(被动关闭的一方超时并重发最后的FIN);保证TCP的可靠的全双工连接的终止。(2)

允许老的重复分节在网络中消失

。参考文章

《unix网络编程》(3)TCP连接的建立和终止

在TIME_WAIT状态 时两端的端口不能使用,要等到2MSL时间结束才可继续使用。当连接处于2MSL等待阶段时任何迟到的报文段都将被丢弃。不过在实际应用中可以通过设置 SO_REUSEADDR选项达到不必等待2MSL时间结束再使用此端口。

TTL(time-to-live)生存时间字段




IP首部中的8位字段


。该字段

不是

存的具体时间,而

是设置了数据报可以经过的最多路由器数

。它制定了

数据报的生存时间

。TTL的初始值由源主机设置(通常为

32或64

),一旦经过一个处理它的路由器,它的值就减去1.当该字段值为0时,数据报就被丢弃,并发送ICMP报文通知源主机。

RTT(round-trip-time)往返时间



TCP超时与重传


中最重要的部分就是

对一个给定连接的往返时间RTT的测量

。由于路由器和网络流量均会变化,因此这个时间可能经常会变化,TCP应该跟踪这些变化并相应地改变其超时时间。

MTU(Maximum Transfer Unit)最大传输单元

链路层的帧(frame)中的数据部分的最大字节数

以太网中的一般为1500字节

MSS(Maximum Segment Size) 最大报文段大小

TCP的报文段中的数据部分的最大字节数,MTU减去IPv4的Header和TCP的Header

IPv4的Header和TCP的Header一般都是20字节,则MSS=1500-20-20 = 1460字节

RTO(Retransmission Timeout) 超时重传时间

TCP中触发超时重传机制的时间,应略大于RTT

RFC2988中建议RTO = RTTS + 4 * RTTD

RTTD时RTT的偏差的加权平均值

对于i=1,RTTD[i] = 新RTT样本/2

对于i>1,RTTD[i] = (1 – b) * RTTD[i-1] + b * | 新RTT样本 – RTTD[i] |,建议b=1/4



版权声明:本文为u013074465原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。