TCP/IP详解:TCP——拥塞控制

本文详细介绍了TCP的拥塞控制机制,包括拥塞检测、慢启动、拥塞避免、快速重传与快速恢复,以及NewReno算法。通过对拥塞窗口的管理和调整,TCP实现对网络拥塞的有效控制,保证数据传输的稳定性。
摘要由CSDN通过智能技术生成

1、拥塞检测

没有一个精确的方法或者说一个明确的信号告知发送方拥塞状况是否已发生。通常看是否有丢包情况来推断是否出现拥塞。在TCP中,丢包也被用作判断拥塞发生与否的指标,用来衡量是否实施相应的响应措施。
注意:在当今的有线网络中造成丢包的主要原因是拥塞,而在无限网络中却是传输和接收错误。

2、一些名词

1.拥塞窗口cwnd(congestion window):反映网络传输能力的变量。
2.接收端通知窗口awnd
3.发送端实际可用窗口W,W通常以包或字节为单位。可知:
W = m i n ( a w n d , c w n d ) W = min(awnd, cwnd) W=min(awnd,cwnd)4.在外数据值(flight size):已经发出但还未经确认的数据量大小。
通常在外数据值总是小于等于W
5.带宽延迟积(Bandwidth-Delay Product)BDP,也称最佳窗口大小。
在网络中如何确定一个连接的BDP是一个难点,需要考虑诸多因素,如路由、时延、统计复用(即共用传输资源)水平随时间的变坏性等。

3、自同步

TCP发送方的拥塞控制操作是由ACK的接收来驱动或控制的。发送方在接收到一个ACK后表明一个数据包已传输完毕,表明网络中“多”出了一个数据包的位置,可以继续发送一个数据包了。这种由一个ACK到达(称作ACK时钟)触发一个新数据包传输的关系称为自同步(self-clocking)。

4、慢启动

一开始发送方并不知道cwnd的值,不清楚应该发送多少数据包(但肯定是小于awnd),所以将cwnd先设为1,即1SMSS(发送端的最大段大小)。在收到好的ACK(指新接收的ACK号大于之前收到的ACK)后,以指数方式增长。例如,初始cwnd=1,收到一个ACK后,cwnd=2,接着cwnd=4,8,16以此类推,如此增长直到出现超时重传(RTO),此时认为cwnd过大导致网络拥塞,将cwnd大幅度减小,减至原值一半,作为慢启动阈值(slow start threshold ssthresh),由此切换为拥塞避免算法。
在这里插入图片描述
在这里插入图片描述
慢启动在TCP连接建立时或检测到由重传超时导致的丢包是执行。

5、拥塞避免

慢启动直到RTO出现确定ssthresh,然后再慢启动到达到ssthresh,转换为拥塞避免算法。每接收到一个新的ACK,cwnd会做出以下更新: c w n d t

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值