云容器实例 CCI-修复Linux内核SACK漏洞公告:附:TCP SACK介绍

时间:2024-09-19 08:15:58

附:TCP SACK介绍

TCP是面向连接的协议。当双方希望通过TCP连接进行通信时,他们通过TCP握手交换某些信息建立连接,例如发起一个TCP请求,通过SYN发送初始序列ID、确认ID、连接使用的最大数据包段大小(MSS)、认证信息和处理选择性确认(SACK)等。整体TCP连接通过我们熟知的三次握手最终建立。

TCP通过一个数据段单元发送和接收用户数据包。 TCP数据段由TCP头、选项和用户数据组成。每个TCP段都有序列号(SEQ)和确认号(ACK)。

接收方通过SEQ号和ACK号来跟踪成功接收了哪些段。ACK号下一个预期接受的段。

示例:

上图中用户A通过13个100字节的段发送1k字节的数据,每个段具有20字节的TCP头,总计是13个段。在接收端,用户B接收了段1,2,4,6,8-13,而段3,5和7丢失,B没有接收到。

通过使用ACK号,用户B告诉A,他需要段3,用户A读取到B接收到2后没有收到3,A将重新发送全部段,尽管B已经收到了4,6和8-13段。这就导致了网络的低效使用。

support.huaweicloud.com/usermanual-cci/cci_01_0076.html