32、TCP定时器详解

TCP定时器工作机制解析

TCP定时器详解

1. ACK调度机制

当从对端接收到数据时,就会调度ACK。通过调用 tcp_schedule_ack() 函数设置 TCP_ACK_SCHED 标志。在 tcp_rcv_established() 调用的 tcp_event_data_recv() tcp_data_queue() 中,只要接收到数据就会调度ACK。此外,当在 tcp_data_queue() 中检测到接收到乱序段、重传段、零窗口探测、窗口外数据或部分段时,会直接调度ACK。

2. ACK段的发送方式和时机

在很多情况下,需要决定是立即发送段还是延迟发送。可以通过调用 tcp_schedule_ack() 来调度ACK,但不能仅根据标志强制发送ACK。以下以 tcp_rcv_established() 为例进行说明:
- 当在 tcp_rcv_established() 中接收到按序数据时,会将数据直接复制到用户空间进程或放入接收缓冲区。
- 如果应用程序已经读取了所有到达的数据,会进入代码块3360 - 3364。此时,通过调用 tcp_in_quickack_mode() 检查是否处于快速ACK模式。
- 若处于快速ACK模式,会在第3361行调用 tcp_send_data() 立即生成ACK。
- 若不处于快速AC

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值