TCP重传机制、滑动窗口、流量控制、拥塞控制

一、重传机制

  • 超时重传
  • 快速重传
  • SACK(选择性确认)
  • Duplicate SACK

二、滑动窗口

在这里插入图片描述
在这里插入图片描述

三、流量控制

发送方不能无脑的发送数据,应该考虑接收方的处理能力。
TCP 提供一种机制可以让「发送方」根据「接收方」的实际接收能力控制发送的数据量,这就是所谓的流量控制。

操作系统缓冲区和滑动窗口的区别
先收缩窗口,在减少缓冲区,防止数据丢失。

窗口关闭
当接收窗口大小为0时,会停止接收数据,当接收窗口重新有空间时,会给发送方发一个窗口非0 的ACK报文,但是此报文可能会丢失。为了防止此现象发送方会定时进行窗口探测

糊涂窗口综合征
当接收窗口很小的时候,为了避免为发生大车拉小物的情况,所以设定一个窗口最小阈值。当「窗口大小」小于 min( MSS,缓存空间/2 ) ,也就是小于 MSS 与 1/2 缓存大小中的最小值时,就会向发送方通告窗口为 0,也就阻止了发送方再发数据过来。
另外也可以设定发送方当有小数量数据时先停止发送,等后面攒多了在一块发送(伺机使用)。
可以在 Socket 设置 TCP_NODELAY 选项来关闭这个算法(关闭 Nagle 算法没有全局参数,需要根据每个应用自己的特点来关闭)

setsockopt(sock_fd, IPPROTO_TCP, TCP_NODELAY, (char *)&value, sizeof(int));

四、拥塞控制

  • 慢启动
  • 拥塞避免
  • 拥塞发生(超时重传、快速重传)
  • 快速恢复
    -在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值