1、SACK

Selective Acknowledgement,选择性确认。

2、功能

TCP收到乱序数据后,会将其放入乱序队列中,然后发送重复ACK给对端。对端如果收到多个重复的ACK,认为发生丢包,TCP会重传最后确认的包开始的后续包。这样原先已经正确传输的包可能会重复发送,降低了TCP性能。为改善这种情况,发展出SACK技术,使用SACK选项可以告知发包方收到了哪些数据,发包方收到这些信息后就会知道哪些数据丢失,然后立即重传丢失的部分。

需要注意的是只有收到失序的分组时才会可能会发送SACK,TCP的ACK还是建立在累积确认的基础上的。也就是说如果收到的报文段与期望收到的报文段的序号相同就会发送累积的ACK,SACK只是针对失序到达的报文段的。

3、格式

SACK包括了两个TCP选项,一个选项用于标识是否支持SACK(SACK_permitted),是在TCP连接建立时时发送;另一种选项则包含了具体的SACK信息。

1)SACK_permitted选项

该选项只允许在TCP连接建立时,有SYN标志的包中设置,也即TCP握手的前两个包中,分别表示通信的两方各自是否支持SACK。

2)SACK信息选项

SACK信息选项用于通告对端接收数据的信息。

该选项参数告诉对方已经接收到并缓存的不连续的数据块,注意都是已经接收的,发送方可
根据此信息检查究竟是哪个块丢失,从而发送相应的数据块。

*    Left Edge of Block
        不连续块的第一个数据的序列号
   *    Right Edge of Block
        不连续块的最后一个数据的序列号之后的序列号

————————————————
版权声明:本文为CSDN博主「海阔天空sky1992」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Mary19920410/article/details/72820477

浅析TCP之SACK(选择性确认)相关推荐

  1. 从TCP三次握手说起——浅析TCP协议中的疑难杂症

    PeterWang_bupt 贡献值:2 等級:L1 0 发布 0 评论 1 顶 发布链接发布图文   全部主题 我关注的主题 GEEKNEWS Rust Swift 全栈工程师 /home Pres ...

  2. 从TCP三次握手说起–浅析TCP协议中的疑难杂症(2)

    在"从TCP三次握手说起–浅析TCP协议中的疑难杂症(1)"文章中,我们提到第6个疑问:TCP的头号疼症TIME_WAIT状态,下面我们继续这个问题的解答: 6. 疑症(6) TC ...

  3. 内核tcp协议栈SACK的处理

    上一篇处理ack的blog中我们知道当我们接收到ack的时候,我们会判断sack段,如果包含sack段的话,我们就要进行处理.这篇blog就主要来介绍内核如何处理sack段. SACK是包含在tcp的 ...

  4. 从TCP三次握手说起——浅析TCP协议中的疑难杂症(转载)

    [转载] 原博文来自:https://blog.csdn.net/qiansg123/article/details/80126677 作者:黄日成,手Q游戏中心后台开发,腾讯高级工程师. 因为写得太 ...

  5. TCP/IP,TCPsocket,tcp协议的特点,tcp报文段最长字节数,tcp头内容,确认号和超时时限的设定细节,tcp协议是GBN和SR的混合体,

    TCP/IP,TCPsocket,tcp协议的特点,tcp报文段最长字节数,tcp头内容,确认号和超时时限的设定细节,tcp协议是GBN和SR的混合体, 一.TCPsocket 1.TCP是面向连接的 ...

  6. TCP头部分析与确认号的理解

    TCP头部分析与确认号的理解 https://www.cnblogs.com/xcywt/p/8075623.html TCP协议(1)--TCP首部 https://blog.csdn.net/la ...

  7. 浅析TCP协议中URG和PSH的区别与联系

    浅析TCP协议中URG和PSH的区别与联系.URG:(紧急标志位)表示本报文段中发送的数据是否包含紧急数据.URG=1时,表示有紧急数据.后面的16位紧急指针字段只有在URG=1时才有效. URG:( ...

  8. 计算机网络之(2):TCP 相关知识——累积确认,三次握手,四次挥手,滑动窗口,超时重传、快速重传

    文章目录 TCP 概述 socket 的作用和存在意义 如何保证传输的可靠性 累积确认机制 TCP 三次握手建立连接 总结三次握手 四次挥手 总结四次挥手 TCP 连接突然终止 滑动窗口机制 总结滑动 ...

  9. 传输层学习之五(TCP的SACK,F-RTO)

    转自http://blog.csdn.net/goodluckwhh/article/details/10220999 一.SACK选项 默认情况下TCP采取的是累积确认机制,这时如果发生了报文乱序到 ...

最新文章

  1. html连接服务器文件夹,云服务器html链接到文件夹
  2. JAVA实现链表面试题
  3. J2EE搭建Dynamic web SpringMVC工程404错误分析(二)
  4. c++语言截取字符串,C/C++知识点之C语言截取字符串
  5. RHEL5安装无线网卡驱动
  6. 语音信号处理基础(八)——同态处理、倒谱、复倒谱
  7. 构建基于Hibernate的servlet(1)
  8. Spark内存空间分配机制
  9. Linux IPC(Inter-Process Communication,进程间通信)之管道学习
  10. 基础 网络架构 网络硬件名词 网络通信协议
  11. Python电子书下载
  12. 在windows server 2008 r2上安装nokia pc 套件
  13. linux镜像文件太大不好下载_Rufus下载_Rufus官方下载[U盘工具]
  14. JAVA中InputStream转base64
  15. 杀毒软件需要开源吗?
  16. Windows10 邮箱批量导入联系人
  17. 拼多多商家发货要注意什么?
  18. 接口测试用例设计实践总结
  19. Wireshark使用技巧之GeoIP显示IP地理位置及经纬度信息
  20. 史上最全的HTML、CSS知识点总结,浅显易懂。适合入门新手

热门文章

  1. hive 调优(一)coding调优
  2. 怎样调整XenServer下面Linux虚拟机的磁盘大小
  3. iOS开发-多线程开发之线程安全篇
  4. List.Contains的用法
  5. char *a 与char a[] 的区别
  6. “SQL Server does not allow remote connections”错误的解决
  7. 最远的你是我最近的爱
  8. 【控制】《多智能体系统一致性协同演化控制理论与技术》纪良浩老师-第2章-周期间歇脉冲控制下多智能体系统一致性
  9. 1.6 语言模型和序列生成-深度学习第五课《序列模型》-Stanford吴恩达教授
  10. 云服务器 文件 传输,云服务器文件 传输