5.6.3 选择确认SACK

本文介绍了TCP协议中选择确认SACK的工作原理和技术细节。当接收到不连续但仍在接收窗口内的数据块时,接收方如何通过SACK通知发送方,从而避免不必要的重传。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 若收到的报文段无差错,只是未按序号,中间还缺少一些序号的数据;
    通过 选择确认
    可以只传送缺少的数据而不重传已经正确到达接受方的数据。

  • 若需要使用 选择确认SACK ,在 建立TCP连接时 由双方进行协商。
    首部的可变选项 中加上“允许SACK”的选项。
    以后在TCP报文段的首部中都会有这个SACK选项,以便报告收到的 不连续的字节块的边界
    由于首部选项的长度最多只有40字节,而指明 一个边界 需要4字节(因为序号有32位,需要4字节),因此在选项中最多只能指明4个字节块的边界信息(8个边界);还要预留两个字节(一个用来指明SACK选项,一个用来指明这个选项要占用多少字节)

  • 若接收方收到了与前面的字节流 不连续的两个字节块 ,而且这两个字节块都在接收窗口之内:
    那么接收方就先收下这些数据;
    并把 相关边界信息 准确的告诉发送方,通知发送方不要再重复发送这些已收到的数据。

  • 如下图,一个字节块需要两个边界。(L1,R1 ),(L2,R2
    在这里插入图片描述

  • 选择确认SACK功能一般很少用
    大部分还是重传所有未被确认的数据块。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值