您的位置:首页 > 理论基础 > 计算机网络

TCP协议: 拥塞控制算法

2012-05-09 21:35 218 查看
一、根据RFC2581协议规范,TCP拥塞控制采用了以下4种算法:

 

1. 起始缓冲算法 (slow start)

2. 解除拥塞算法 (congestion avoidance)

3. 快速重发算法 (fast retransmit)

4. 快速恢复算法 (fast recovery)

 

Nagle算法就是以这4种算法为基础来实现的。

 

根据算法原理,对于TCP数据包发送过程,简单理解如下:

TCP package-> 缓冲进window缓存区 ->

                           slow start网络探测 -> 连接被唤醒 -> 包大小超过拥塞阀值 ->

                                 yes -> 开始拥塞 ->  congestion avoidance解除拥塞 ->  是否解除 ->

                                         yes -> 准备从缓存区发包到目标设备 -> 是否满足Nagle算法 ->

                                            yes -> (a) 发送包... -> 是否超时或收到重复ack ->

                                                yes -> fast retransmit快速重发ack -> 是否三次重发ack失败 ->

                                                    yes -> 丢包,fast recovery快速恢复 -> (a)

Post:  

这里面实现需要多个定时器,对于算法细节,RFC2581规范中已说明,而源码实现可以阅读linux或开源的tcp/ip源码,

这是一个对问题不断理解与实践的过程,最终我们将完全吃透它们哟~


                                              

二、Nagle核心源码分析:

 



 



 

Good luck !!

 

mars

2012.05.09







If you have more info to
communicate with me for this article, please feel free to

Q-me:270982354 or E-me: mars.fu@foxmail.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法 tcp linux 网络