再来看 TCP D-SACK
和 Example 5 类似,只是用 SACK 覆盖而不是用 ACK 覆盖,第一个 SACK 块确认第一个重复段,第二个 SACK 块确认它所属的较大块,似乎解决了 Example 5 的问题,但也是碰巧受到了每个 SACK 块必须连续的约束,即便如此,还是丢掉了多个重复段被确认的信息,如果只算一个重复段,可能少了,如果把第二个 SACK 块全部计入,可能就多了。但要明确,1970 年代的当时,TCP 只能是那个样子,不预留空间不是设计没有前瞻性,后续的事更像是生态演化,而非根据详细设计的迭代。
via Netfilter,iptables/OpenVPN/TCP guard:-( (author: dog250)
December 5, 2024 258