TCP流量控制,拥塞控制

TCP流量控制:TCP采用滑动窗口协议来进行流量控制,可允许在接收端缓冲区不溢出的情况下连续发送多个分组,加速数据的传输的同时防止了接收端缓冲区溢出问题。
窗口的几种改变:
1. 窗口左边沿向右移动,但右边沿不动(合拢):数据被发送且确认但发送窗口变小,可能是接收端进程没来的及处理。
2. 窗口右边沿向右移动,但左边沿不动(张开):接收端进程读取了数据,接收缓存被释放。
3. 窗口左边沿不会向左移动,窗口右边沿向左移动(收缩)的情况也很少(参考TCP卷1糊涂窗口)
4. 窗口大小不变,但窗口沿着序列号滑动:数据被发送和确认,且发送窗口大小不变。
PUSH:通知接收方将所收到的数据全部提交给接收进程,这里的数据包括与PUSH一起发送的数据以及接收方TCP已经为接收进程收到的其他数据。源于BSD的实现一般从不将接收到的数据推迟交付给应用程序,因此它们忽略所接收到的PUSH标志。(编程不可控制的)

TCP拥塞控制:发送方对整个网络的拥塞控制策略。对应的是拥塞窗口(cwnd),最终的发送窗口取拥塞窗口和接收方通告窗口的偏小值。
1.慢启动: 超时引起拥塞后,以1个单位的窗口大小为拥塞窗口开始发送数据,但窗口大小按指数增长。
2.拥塞避免:当慢启动增长到一定的门限后(慢启动门限),窗口大小按线性增长。
3.快重传与快恢复: 收到三个连续的ACK,那么认为很有可能是报文段丢失了,但这又不像超时,此时收发两端是仍然是有流动数据的,而我们不想执行慢启动来突然减少数据流。此时慢启动门限减半,但当前窗口不变,用类似拥塞避免的策略继续重传丢失分组,当新数据确认到达时窗口变为慢启动门限继续执行拥塞避免算法。

总结:不管是重复确认还是超时发生,慢启动门限都会减半,但前者是执行快重传快恢复,后者执行慢启动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值