我曾经读到,在 Unix 中配置 TCP keepalive 参数时存在一个常见错误。毫秒和秒之间存在一些混淆。
问题:
- 有人有关于这个问题的更多信息吗?
- 有人知道这个参数的推荐值是多少吗?
- 是否还有其他 Unix 参数会遭受这种混淆?
我曾经读到,在 Unix 中配置 TCP keepalive 参数时存在一个常见错误。毫秒和秒之间存在一些混淆。
问题:
RFC 2525(文本或HTML)通常识别 TCP 的一些问题,并包括关于“保持活动”的项目。 Wikipedia也有关于它的讨论,区分 TCP 和 HTTP keep alive。 TLDP也有关于这个主题的“如何做”。当我使用 Google 搜索并从“tcp keepalive”开始时,有许多针对各种平台和单词(例如“interval”或“timeout”)提供的补全。我没有发现任何毫秒与秒的混淆——但我不确定是否有人会认为除了新手的错误之外的任何东西。您需要阅读您感兴趣的系统的手册。
这取决于你的背景——没有一个单一的价值观适合所有人。
POSIX 系统有大量的亚秒时间结构,有些使用秒和微秒,有些使用秒和纳秒。这些不是参数——至少不是配置参数。它们只是最终合并到 POSIX 标准中的各种系统的遗留接口。如果不破坏现有代码,就无法更改它们。
其他配置参数往往以特定系统的特定(或什至特有)方式指定。参数的一般概念通常存在于大多数系统中,但细节可能非常不同。
请记住,大多数网络常量以秒而不是亚秒间隔指定是最明智的。
有人有关于这个问题的更多信息吗?
您系统的手册页包含有关此问题的所有信息。
有人知道这个参数的推荐值是多少吗?
默认情况下,它是关闭的,默认情况下,当它打开时,它的默认值为两小时。这应该让您对它的使用方式有所了解。微秒的问题当然不会出现。
是否还有其他 Unix 参数会遭受这种混淆?
太宽泛。