TCP协议: 拥塞控制算法

一、根据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. 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值