网络—TCP重传机制(超时,快速,SACK)

超时重传

在 TCP 连接中,如果发送方发送了数据包并在一定时间内未收到确认应答,就会触发超时重传机制,即重新发送该数据包。这样可以确保数据的可靠传输。

超时重传时间是RTO(Retransmission Timeout)

首先说一下往返时延RTT(Round-Trip Time),数据发送时刻到接收到确认的时刻的差值,也就是包的往返时间。

对于RTO的设置一般采用略大于RTT,如果RTO过大,当数据包丢失时需要等待很长时间,才会触发重传,这样会导致效率很低。如果RTO太小,比RTT还小很多,当数据包还没有到达时,可能RTO就已经到时间了,这样就会导致明明数据包没有丢失,但是又重发了一遍。

快速重传

发送方接收到连续的3个重复确认(duplicate ACK),就会认为接收方没有收到某个数据包,此时会立即重传该数据包,而不必等待超时。

至于为什么是3次,可能有的人会疑惑。实际上3次是比较稳妥的次数,此时其实也不一定是100%出现了丢包,但概率比较大。

主要原因是数据包发送的顺序不一定是到达的顺序,可能会出现乱序的问题,也就是后发的包可能先到一步。

举个例子:

当发送方发送的报文的编号是1,2,3,4时,

如果接收方顺序也是1,2,3,4,那么发送方只会接受一个ACK(2),后面就是ACK(3)了。

如果接收方顺序是1,2,4,3,那么发送方也只会接受一个ACK(2)。

如果接收方顺序是1,3,2,4,那么发送方会接受2个ACK(2),因为第二个接收的包是3,所以还会再发送ACK(2)。

如果接收方顺序是1,3,4,2,那么发送方会接受3个ACK(2),接收方接收1,3,4的时候都是回复ACK(2)。

如果接收方顺序是1,4,2,3,那么发送方会接受2个ACK(2)。

如果接收方顺序是1,4,3,2,那么发送方会接受3个ACK(2)。

根据排列组合,只有2这个包是最后一个接受的,才会导致发送端连续接受3个ACK(2),也就是此时丢包概率为1/4,但是如果是2真丢了,那么发送端就肯定收到3个连续ACK(2),所以说当连续收到3个重复ACK时,很大概率会发生丢包(一般先发的包也不会排到太后面而导致过复ACK)。

因此,连续收到3个重传,还是比较合理的。

SACK

SACK(Selective Acknowledgment)是 TCP 协议中的一种选择性确认机制,用于改善 TCP 在丢包情况下的性能和效率。这种方式需要在 TCP 头部「选项」字段里加一个 SACK

传统的 TCP 中,接收方只会确认已经按序接收到的数据包,如果有数据包丢失,则会触发重传机制,需要重新发送之前的所有数据包。这样的话,那些已经发送到的包还需要继续发一遍。

使用 SACK 机制,接收方可以选择性地确认已经接收到的数据包范围,从而告知发送方哪些数据包已经成功接收,哪些数据包需要进行重传。这样,发送方只需要重传那些确实丢失的数据包,极大地减少了重传的数据量,提高了传输效率。

SACK 机制的具体实现如下:

  1. 接收方收到乱序的数据包后,会向发送方发送一条 SACK 选项的确认包(ACK),其中包含了已经成功接收的数据包的信息。
  2. 发送方根据接收方的 SACK 选项,识别出哪些数据包需要进行重传,只重传那些确实丢失的数据包。
  3. 发送方根据接收方的 SACK 选项,可以更好地调整发送窗口大小,避免发送过多的数据包,提高网络性能。
相关推荐
GLAB-Mary2 小时前
90%的网络工程师,根本没必要考HCIE!
网络·华为·华为认证·hcie·hcia·hcip
wuyk5553 小时前
【Socket 进阶之路】第 3 章 TCP 三次握手 & 四次挥手深度剖析|连接建立、断开、状态机、TIME_WAIT 核心工程问题
服务器·开发语言·网络·物联网·网络协议·tcp/ip
QYRdata9 小时前
权威数据披露:2026至2032年边缘云服务CAGR达15.6%,赛道发展驶入快车道
网络·人工智能·云计算·服务发现·边缘计算
Yang961112 小时前
鼎讯信通DXB-2000S OTDR光时域反射仪模块技术拆解:0.8m盲区
网络
中科三方12 小时前
两家域名注册商资质被ICANN终止:企业域名资产安全再受关注
前端·网络·安全·域名
超智算科技12 小时前
2026服贸会现场直击|Net Zero Hub净零算力枢纽全球首发! 超智算受邀深度参与服贸会全球OPC共创节
网络·人工智能·科技·物联网·gpu算力
逐米时代12 小时前
工控网络安全:安全与连续性双目标下的精准防护
网络
Yang961112 小时前
通信广电与无线电管理:鼎讯信通ZN-080A手持式信号综合分析仪能做什么
网络
2601_9494999413 小时前
DT‑1414PTZ如何百分百兼容(安华高)HFBR‑1414PTZ
运维·网络·人工智能·科技·光模块
sibylyue14 小时前
WebSocket双向长连接传输通道
网络·websocket·网络协议