TCP概念拾遗

少于 1 分钟读完

###MSL

MSL(Maximum Segment Lifetime, 报文最大生存时间)他是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃。 RFC 793中规定MSL为2分钟,实际应用中常用的是30秒,1分钟和2分钟等。 TCP的TIME_WAIT状态也称为2MSL等待状态,当TCP的一端发起主动关闭,在发出最后一个ACK包后, 即第3次握手完成后发送了第四次握手的ACK包后就进入了TIME_WAIT状态,必须在此状态上停留2MSL时间, 等待2MSL时间主要目的是怕最后一个ACK包对方没收到, 那么对方在超时后将重发第三次握手的FIN包,主动关闭端接到重发的FIN包后可以再发一个ACK应答包。 在TIME_WAIT状态时两端的端口不能使用,要等到2MSL时间结束才可继续使用。

###RTT

RTT是客户到服务器往返所花时间(Round Trip Time,简称RTT),TCP含有动态估算RTT的算法。

###Nagle算法

该算法要求一个 TCP连接上最多只能有一个未被确认的未完成的小分组,在该分组的确认到达之前不能发送其他的小分组。相反, TCP收集这些少量的分组,并在确认到来时以一个分组的方式发出去。该算法的优越之处在于它是自适应的:确认到达得越快,数据也就发送得越快。而在希望减少微小分组数目的低速广域网上,则会发送更少的分组。

###慢启动 slow start

慢启动为发送方的TCP增加了另一个窗口:拥塞窗口 (congestion window),记为cwnd。 与另一个网络的主机建立TCP连接时,拥塞窗口被初始化为 1个报文段(即另一端通告的报文段大小)。 每收到一个 ACK,拥塞窗口就增加一个报文段(cwnd以字节为单位,但是慢启动以报文段大小为单位进行增加。 发送方取拥塞窗口与通告窗口中的最小值作为发送上限。
Slow start adds another window to the sender’s TCP: the congestion window, called “cwnd”. When a new connection is established with a host on another network, the congestion window is initialized to one segment (i.e., the segment size announced by the other end, or the default, typically 536 or 512). Each time an ACK is received, the congestion window is increased by one segment. The sender can transmit up to the minimum of the congestion window and the advertised window.

这里提到每收到一个ACK,cwnd就增加一个报文段,但是cwnd可是按指数级增长的,why?

cwnd=1,发送1个报文,收到1个ACK,cwnd+=1
cwnd=2,发送2个报文,收到2个ACK,cwnd+=2
cwnd=4,发送4个报文,收到4个ACK,cwnd+=4

直到超过慢启动门限: cwnd>=ssthresh

###拥塞避免 Congestion Avoidance

拥塞避免算法要求每次收到一个确认时将 cwnd增加1 /cwnd。与慢启动的指数增加比起来,这是一种加性增长 (additive increase)。 我们希望在一个往返时间内最多为 cwnd增加1个报文段 (不管在这个 RTT中收到了多少个 ACK),然而慢启动将根据这个往返时间中所收到的确认的个数增加cwnd。

发生拥塞时

1.ssthresh=max(cwnd/2, 2)
2.cwnd=1
3.进入慢启动算法

###快速重传 Fast Retransmit

当收到3个相同的ACK。TCP在收到乱序到达包时就会立即发送ACK,TCP利用3个相同的ACK来判定数据包的丢失,此时进行快速重传,快速重传做的事情有:
1.ssthresh=cwnd/2
2.cwnd=ssthresh
3.进入快速恢复算法

###快速恢复 Fast Recovery

cwnd = sshthresh + 3 * MSS (3的意思是确认有3个数据包被收到了)
重传Duplicated ACKs指定的数据包
如果再收到 duplicated Acks,那么cwnd = cwnd +1
如果收到了新的Ack,那么,cwnd = sshthresh ,然后就进入了拥塞避免的算法了。

ref http://coolshell.cn/articles/11609.html

标签:

分类:

更新时间:

留下评论