diff --git a/docs/config/transports/mkcp.md b/docs/config/transports/mkcp.md index 2dd725ba..318b2246 100644 --- a/docs/config/transports/mkcp.md +++ b/docs/config/transports/mkcp.md @@ -26,9 +26,8 @@ mKCP 牺牲带宽来降低延迟。传输同样的内容,mKCP 一般比 TCP "tti": 20, "uplinkCapacity": 5, "downlinkCapacity": 20, - "congestion": false, - "readBufferSize": 1, - "writeBufferSize": 1 + "cwndMultiplier": 1, + "maxSendingWindow": 2097152 } } } @@ -39,7 +38,7 @@ mKCP 牺牲带宽来降低延迟。传输同样的内容,mKCP 一般比 TCP ::: tip `header` 和 `seed` 字段已被移除,请使用 [FinalMask](../transports/finalmask.md#finalmaskobject) 进行配置。 -并且曾经默认的 mKCP 混淆也被移除,要连接旧版服务端,需要在 FinalMask 中配置 `mkcp-original`。 +并且曾经默认的 mKCP 混淆也被移除,要连接旧版服务端,需要在 FinalMask 中配置 `mkcp-legacy`(`settings.header` 与 `settings.value` 均留空即为旧版默认的 XOR 混淆)。 ::: > `mtu`: number @@ -77,32 +76,17 @@ mKCP 牺牲带宽来降低延迟。传输同样的内容,mKCP 一般比 TCP 推荐把 `downlinkCapacity` 设置为一个较大的值,比如 100,而 `uplinkCapacity` 设为实际的网络速度。当速度不够时,可以逐渐增加 `uplinkCapacity` 的值,直到带宽的两倍左右。 ::: -> `congestion`: true | false +> `cwndMultiplier`: number -是否启用拥塞控制。 +拥塞窗口倍数,用于乘在由 `uplinkCapacity`、`mtu`、`tti` 推导出的发送在途包数上。最小值为 `1`。 -开启拥塞控制之后,Xray 会自动监测网络质量,当丢包严重时,会自动降低吞吐量;当网络畅通时,也会适当增加吞吐量。 +默认值为 `1`。 -默认值为 `false` +> `maxSendingWindow`: number -> `readBufferSize`: number +最大发送窗口,单位是字节。实际按 `maxSendingWindow / mtu` 折算为在途包数,因此不得小于 `mtu`。 -单个连接的读取缓冲区大小,单位是 MB。 - -默认值为 `2`。 - -> `writeBufferSize`: number - -单个连接的写入缓冲区大小,单位是 MB。 - -默认值为 `2`。 - -::: tip -`readBufferSize` 和 `writeBufferSize` 指定了单个连接所使用的内存大小。 -在需要高速传输时,指定较大的 `readBufferSize` 和 `writeBufferSize` 会在一定程度上提高速度,但也会使用更多的内存。 - -在网速不超过 20MB/s 时,默认值 1MB 可以满足需求;超过之后,可以适当增加 `readBufferSize` 和 `writeBufferSize` 的值,然后手动平衡速度和内存的关系。 -::: +默认值为 `2097152`。 ## 鸣谢 diff --git a/docs/en/config/transports/mkcp.md b/docs/en/config/transports/mkcp.md index b2c900b4..1b54c2a9 100644 --- a/docs/en/config/transports/mkcp.md +++ b/docs/en/config/transports/mkcp.md @@ -26,9 +26,8 @@ Please ensure that the firewall configuration on the host is correct. "tti": 20, "uplinkCapacity": 5, "downlinkCapacity": 20, - "congestion": false, - "readBufferSize": 1, - "writeBufferSize": 1 + "cwndMultiplier": 1, + "maxSendingWindow": 2097152 } } } @@ -39,7 +38,7 @@ Please ensure that the firewall configuration on the host is correct. ::: tip The `header` and `seed` fields have been removed. Please use [FinalMask](./finalmask.md#finalmaskobject) for configuration. -Additionally, the previously default mKCP obfuscation has also been removed. To connect to a legacy server, you need to configure `mkcp-original` in FinalMask. +Additionally, the previously default mKCP obfuscation has also been removed. To connect to a legacy server, you need to configure `mkcp-legacy` in FinalMask (leaving both `settings.header` and `settings.value` empty selects the legacy default XOR obfuscation). ::: > `mtu`: number @@ -77,32 +76,17 @@ Taking a client sending data as an example, the client's `uplinkCapacity` specif It is recommended to set `downlinkCapacity` to a larger value, such as 100, and set `uplinkCapacity` to the actual network speed. When the speed is insufficient, you can gradually increase the value of `uplinkCapacity` until it is about twice the bandwidth. ::: -> `congestion`: true | false +> `cwndMultiplier`: number -Whether to enable congestion control. +The congestion window multiplier, multiplied by the number of sending in-flight packets derived from `uplinkCapacity`, `mtu` and `tti`. The minimum value is `1`. -When congestion control is enabled, Xray automatically monitors network quality. When packet loss is severe, it automatically reduces throughput; when the network is smooth, it appropriately increases throughput. +The default value is `1`. -The default value is `false`. +> `maxSendingWindow`: number -> `readBufferSize`: number +The maximum sending window, in bytes. It is converted into a number of in-flight packets as `maxSendingWindow / mtu`, and therefore must not be smaller than `mtu`. -The read buffer size for a single connection, in MB. - -The default value is `2`. - -> `writeBufferSize`: number - -The write buffer size for a single connection, in MB. - -The default value is `2`. - -::: tip -`readBufferSize` and `writeBufferSize` specify the memory size used by a single connection. -When high-speed transmission is required, specifying larger `readBufferSize` and `writeBufferSize` will improve speed to a certain extent, but it will also use more memory. - -When the network speed does not exceed 20MB/s, the default value of 1MB can meet the demand; beyond that, you can appropriately increase the values of `readBufferSize` and `writeBufferSize`, and then manually balance the relationship between speed and memory. -::: +The default value is `2097152`. ## Credits diff --git a/docs/ru/config/transports/mkcp.md b/docs/ru/config/transports/mkcp.md index 75f6540e..b44ab3a6 100644 --- a/docs/ru/config/transports/mkcp.md +++ b/docs/ru/config/transports/mkcp.md @@ -26,9 +26,8 @@ mKCP жертвует пропускной способностью ради у "tti": 20, "uplinkCapacity": 5, "downlinkCapacity": 20, - "congestion": false, - "readBufferSize": 1, - "writeBufferSize": 1 + "cwndMultiplier": 1, + "maxSendingWindow": 2097152 } } } @@ -39,7 +38,7 @@ mKCP жертвует пропускной способностью ради у ::: tip Поля `header` и `seed` были удалены, пожалуйста, используйте [FinalMask](./finalmask.md#finalmaskobject) для настройки. -Также была удалена стандартная обфускация mKCP; для подключения к старым версиям серверов необходимо настроить `mkcp-original` в FinalMask. +Также была удалена стандартная обфускация mKCP; для подключения к старым версиям серверов необходимо настроить `mkcp-legacy` в FinalMask (если оставить `settings.header` и `settings.value` пустыми, будет использоваться стандартная обфускация XOR из старых версий). ::: > `mtu`: number @@ -82,33 +81,17 @@ mKCP жертвует пропускной способностью ради у Рекомендуется установить `downlinkCapacity` в большое значение, например, 100, а `uplinkCapacity` - в фактическое значение скорости сети. Когда скорость недостаточна, можно постепенно увеличивать значение `uplinkCapacity` до примерно двух раз больше, чем фактическая скорость сети. ::: -> `congestion`: true | false +> `cwndMultiplier`: number -Включить или отключить контроль перегрузки. +Множитель окна перегрузки, применяемый к количеству отправляемых пакетов «в полёте», которое вычисляется из `uplinkCapacity`, `mtu` и `tti`. Минимальное значение — `1`. -При включении контроля перегрузки Xray будет автоматически отслеживать качество сети. При серьезных потерях пакетов он автоматически снизит пропускную способность; при хорошем качестве сети он также будет соответствующим образом увеличивать пропускную способность. +По умолчанию `1`. -По умолчанию `false`. +> `maxSendingWindow`: number -> `readBufferSize`: number +Максимальное окно отправки в байтах. Фактически пересчитывается в количество пакетов «в полёте» как `maxSendingWindow / mtu`, поэтому не должно быть меньше `mtu`. -Размер буфера чтения для отдельного соединения, в МБ. - -По умолчанию `2`. - -> `writeBufferSize`: number - -Размер буфера записи для отдельного соединения, в МБ. - -По умолчанию `2`. - -::: tip -`readBufferSize` и `writeBufferSize` определяют размер памяти, используемой для каждого соединения. - -При необходимости высокой скорости передачи, установка больших значений `readBufferSize` и `writeBufferSize` может в некоторой степени повысить скорость, но также будет использовать больше памяти. - -При скорости сети не превышающей 20 МБ/с, значение по умолчанию 1 МБ может удовлетворить требованиям; при превышении этой скорости можно соответствующим образом увеличить значения `readBufferSize` и `writeBufferSize`, а затем вручную сбалансировать скорость и использование памяти. -::: +По умолчанию `2097152`. ## Благодарности