关闭

TCP协议知识点总结

标签: tcp
394人阅读 评论(0) 收藏 举报

TCP协议是我们学习工程实践的宝库,其中蕴含了很多重要的模型。有几个比较重要的机制可以研究:连接管理、可靠传输、流量控制和拥塞控制。在实现自己的功能模块的时候,可以借鉴其中的思想。

连接管理:

 

可靠传输采用自适应的超时计算方法。

流量控制使用一种基于滑动窗口协议的流量控制机制。包括接受窗口(rwnd)和发送窗口(也称为拥塞窗口:cwnd):rwnd限制发送方向网络注入报文的速率,cwnd根据对当前网络拥塞程度的估计而确定的窗口值。发送方的发送窗口实际大小是取rwnd和cwnd中最小值。

拥塞控制的四种算法:慢开始、拥塞避免、快重传、和快恢复。

慢开始算法要点:

1.      TCP连接建立好,开始发送TCP报文段时,拥塞窗口cwnd=1;

2.      使用慢开始算法,每经过一个传输轮次,拥塞窗口cwnd就加倍,即cwnd大小就呈指数形式增长;

3.      当拥塞窗口cwnd增大到一个规定的慢开始门限(阈值),然后执行拥塞避免算法;

拥塞避免算法要点:

1.      加法增大:拥塞窗口每经过一个RTT(往返时间)就增大一个MSS,而不再是加倍;

2.      乘法减小:当出现一次超时(网络拥塞)时,将慢开始门限改为当先拥塞窗口cwnd的一半,拥塞窗口重新设置为1,执行慢开始算法;

根据cwnd的大小执行不同的算法,归结如下:

1.      当cwnd<ssthresh时,使用慢开始算法;

2.      当cwnd>ssthresh时,停止使用慢开始算法,而改为拥塞避免算法;

3.      当cwnd=ssthresh时,既可以使用慢开始算法,也可以使用拥塞避免算法;

经典的满开始和拥塞避免算法如下图所示:

快重传算法要点:

1.      冗余ACK检测丢包的发生(丢包意味着网络发生了拥塞);

2.      当发送方连续收到三个重复的ACK报文时,直接重传对方尚未收到的报文段,而不必等待那个报文段设置的重传计时器超时;

3.      理解本算法需要明确可靠传输的机制;

快恢复算法要点:

1.      当发送方连续收到三个重复的ACK报文时,执行乘法减小,把慢开始门限ssthresh减半;

2.      拥塞窗口设置为慢开始门限ssthresh减半后的数值(与慢开始算法不同,慢开始算法将拥塞窗口设置为1);

3.      然后执行加法增大,使拥塞窗口缓慢地线性增大;

4.      由于跳过了拥塞窗口cwnd从1起始的慢开始过程,所以称为快恢复;
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:136449次
    • 积分:3122
    • 等级:
    • 排名:第11417名
    • 原创:182篇
    • 转载:13篇
    • 译文:4篇
    • 评论:14条
    最新评论