TCP拥塞避免

首先,TCP能提供流量控制。TCP使用的流量控制协议是可变大小的滑动窗口协议。TCP双方在发送数据时,都会告诉对方自己所能接收的数据窗口大小。这将防止较快主机致使较慢主机的缓冲区溢出。(TCP可以进行流量控制,防止较快主机致使较慢主机的缓冲区溢出)
TCP连接的每一方都有固定大小的缓冲空间。有发送缓存和接收缓存。
发送缓存存放:
1.发送应用程序传送给发送方TCP**准备发送的数据**;
2.TCP已经发送出去但还未收到确认的数据。
接收缓存存放:
1.按序到达,但还未被接收应用程序读取的数据;
2.未按序到达的数据。对于未按序到达的数据,等到字节流中所缺少的字节收到后,再按序交付给上层的应用进程。
发送窗口和接收窗口都是通过缓存大小来动态调节的。最大值为缓存空间大小。

拥塞窗口cwnd:大小动态变化,发送方让自己的发送窗口等于拥塞窗口(拥塞窗口是以字节为单位,慢启动下,以报文段大小为单位)。
拥塞避免方法:

1.慢启动:刚建立TCP时,初始化为1个报文段,发送方每收到1个ACK,拥塞窗口就在原来的基础上*2,并设置一个慢启动门限ssthresh;
(1)当cwnd < ssthresh:使用慢启动方法;
(2)当cwnd > ssthresh:停止使用慢启动,改用拥塞避免算法;
(3)当cwnd = ssthresh:既可以使用慢启动,也可用拥塞避免算法;
2.拥塞避免:让拥塞窗口cwnd缓慢增加,每次增加1,而不是*2,使cwnd按线性规律缓慢增长;
3.快重传:发送方收到连续3个重复的ACK,就立即重传丢失的报文段。
4.快恢复:与快重传配合使用。
(1)当发送方收到3个重复的ACK时,就把慢启动门限设置为当前的一半,即ssthresh = ssthresh/2;
(2)由于发送方认为网络很可能没有发生拥塞(因为若发生拥塞,则不会连续3个发送重复的报文段到达接收方,因为发送方收到了3个ACK,所以证明是通的),此时执行拥塞避免算法(注意:不是慢启动)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值