From 85353848f55c4b016cc3ef5ca1cfc6b71e6393fc Mon Sep 17 00:00:00 2001 From: JimhHan <50871214+JimhHan@users.noreply.github.com> Date: Sun, 4 Apr 2021 19:49:31 +0800 Subject: [PATCH] Update: transport/tfo Co-Authored-By: risetechlab <79727391+risetechlab@users.noreply.github.com> --- docs/config/transport.md | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/docs/config/transport.md b/docs/config/transport.md index 02893d8ae..a651d8a80 100644 --- a/docs/config/transport.md +++ b/docs/config/transport.md @@ -359,16 +359,27 @@ ocspStapling 检查更新时间间隔。 单位:秒 - 仅适用于 Linux 系统。 - 需要 CAP_NET_ADMIN 权限。 -> `tcpFastOpen`: true | false +> `tcpFastOpen`: true | false | number 是否启用 [TCP Fast Open](https://zh.wikipedia.org/wiki/TCP%E5%BF%AB%E9%80%9F%E6%89%93%E5%BC%80)。 -当其值为 `true` 时,强制开启 TFO;当其值为 `false` 时,强制关闭 TFO;当此项不存在时,使用系统默认设置。 可用于 inbound/ountbound。 +当其值为 `true` 或`正整数`时,启用 TFO;当其值为 `false` 或`负数`时,强制关闭 TFO;当此项不存在或为 `0` 时,使用系统默认设置。 +可用于 inbound/outbound。 - 仅在以下版本(或更新版本)的操作系统中可用: - - Windows 10 (1604) + + - Windows 10 (1607) - Mac OS 10.11 / iOS 9 - - Linux 3.16:系统已默认开启,无需配置。 + - Linux 3.16:需要通过内核参数 `net.ipv4.tcp_fastopen` 进行设定,此参数是一个 bitmap,`0x1` 代表客户端允许启用,`0x2` 代表服务器允许启用;默认值为 `0x1`,如果服务器要启用 TFO,请把此内核参数值设为 `0x3`。 + - FreeBSD 10.3 (Server) / 12.0 (Client):需要把内核参数 `net.inet.tcp.fastopen.server_enabled` 以及 `net.inet.tcp.fastopen.client_enabled` 设为 `1`。 + +- 对于 Inbound,此处所设定的`正整数`代表 [待处理的 TFO 连接请求数上限](https://tools.ietf.org/html/rfc7413#section-5.1) ,**注意并非所有操作系统都支持在此设定**: + + - Linux / FreeBSD:此处的设定的`正整数`值代表上限,可接受的最大值为 2147483647,为 `true` 时将取 `256`;注意在 Linux,`net.core.somaxconn` 会限制此值的上限,如果超过了 `somaxconn`,请同时提高 `somaxconn`。 + - Mac OS:此处为 `true` 或`正整数`时,仅代表启用 TFO,上限需要通过内核参数 `net.inet.tcp.fastopen_backlog` 单独设定。 + - Windows:此处为 `true` 或`正整数`时,仅代表启用 TFO。 + +- 对于 Outbound,设定为 `true` 或`正整数`在任何操作系统都仅表示启用 TFO。 > `tproxy`: "redirect" | "tproxy" | "off"