【发布时间】:2019-03-29 13:37:16
【问题描述】:
如果在 Linux 上,我将 TCP_KEEPIDLE 设置为 3600 秒的时间间隔。然后说我等待 3000 秒,然后将值从 3600 重置为 7200...保活计时器会在 4200 秒还是 7200 秒内触发?
【问题讨论】:
如果在 Linux 上,我将 TCP_KEEPIDLE 设置为 3600 秒的时间间隔。然后说我等待 3000 秒,然后将值从 3600 重置为 7200...保活计时器会在 4200 秒还是 7200 秒内触发?
【问题讨论】:
内核采用新的keepalive超时之间的差异。如果小于或等于 0,则立即触发,否则将触发差异。
在给定的示例中,它将在 4200 秒内触发。
https://github.com/torvalds/linux/blob/6bc3fe8e7e172d5584e529a04cf9eec946428768/net/ipv4/tcp.c#L2947
【讨论】: