TCP SACK简述 vs QUIC ack

TCP的SACK选项允许接收端记录乱序数据,减少不必要的重传,但面临接收端违约的问题。QUIC的ACK机制基于选择性确认,避免接收端违约,但存在接收端缓冲区大小和ACK包增长的问题。QUIC通过流量控制解决缓冲区大小问题,但ACK管理和确认仍具挑战。
摘要由CSDN通过智能技术生成

背景

TCP只会确认收到的收到的顺序的最大seq number,这带来一些不必要的的重传。sack用于记录哪些数据属于乱序数据,已经被接收端收到,这样发送端可以跳过这些数据,重发相对更加紧急的数据

简述

sack options

必须在 非确认最大接收seq 的ack中携带(既 乱序seq触发的ack), 每个dack中必须携带sack
rule:
    1、第一块必须包含触发该sack的seq,这样保证第一块永远记录最新的变化
    2、sack必须包含尽可能多的block
    3、sack需要尽可能的 重复历史sack的block,这样每个block会被重复发送至少3次。
注意:第一片必须是最新的block,因为记录receiver 的当前状态很重要。

sender 逻辑


    1、从Retransmittion queue中跳过所有被标记的sacked(注意:并不是删除)
    2、所有比higest sacked seq小的都可以被重传(这里是可以重传,并不一定重传,考虑重排弹性)
    3、RTO 触发所有seg 重传,视为违约,无论是否被标记为sacked

可以看到,即使sacked 的seg也未必绝对安全,基于滑动窗口模型,接收端可以丢弃偏大的seg从而形成违约,而接收端的违约无法告知给发送端,所以我们只能使用激进的处理方法。而事实上发送单可能发送ack丢失,数据却并没有丢失。

receiver 违约


    1、由于自身的内存限制,receiver可能抛弃掉被sacked 的seg
    2、sende

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值