43、TCP状态处理详解

TCP状态处理详解

1. TCP状态处理基础

在TCP通信中,当检测到段丢失时,我们会将该段标记为丢失,并增加丢失计数器的值。这是一种主动的方式,用于感知网络拥塞,并至少重传一个段,以避免重传定时器超时,从而防止进入丢失状态。在检测到丢失段后,我们会调用 tcp_sync_left_out() 函数来计算已经离开网络的段。

2. tcp_xmit_retransmit_queue() 函数处理

当接收到每个重复ACK或者重传队列的头部超时,我们会更新丢失段的信息。处理流程如下:
1. 正常重传 :根据标记为丢失的段数量( tp → lost_out )进行正常重传。
2. 决策 :如果拥塞窗口允许,需要在向前重传和发送新段之间做出决策。

tp → lost_out 为正数时,遍历重传队列(第919 - 941行),对每个段执行以下操作:
- 检查拥塞窗口 :在第922行检查拥塞窗口是否大于正在传输的数据包数量。如果是,则可以向网络中发送更多段;否则返回。
- 检查段是否丢失 :在第925行检查段是否标记为丢失。如果是,且该段尚未被SACK或重传,则尝试重传。若 tcp_retransmit_skb() 返回非零错误码,则表示重传失败,直接返回,不再进行第二次尝试。
- 重置重传定时器 </

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值