SplitHTTP: Document xmux (#578)

pull/580/head
mmmray 2 months ago committed by GitHub
parent 45353cd860
commit 756543eb9b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -30,7 +30,13 @@ The `SplitHttpObject` corresponds to the `splithttpSettings` section under trans
"scMaxConcurrentPosts": 100, "scMaxConcurrentPosts": 100,
"scMinPostsIntervalMs": 30, "scMinPostsIntervalMs": 30,
"noSSEHeader": false, "noSSEHeader": false,
"xPaddingBytes": "100-1000" "xPaddingBytes": "100-1000",
"xmux": {
"maxConnections": 0,
"maxConcurrency": 0,
"cMaxReuseTimes": 0,
"cMaxLifetimeMs": 0
}
} }
``` ```
@ -103,6 +109,37 @@ A value of `-1` disables padding entirely.
You can lower this to save bandwidth or increase it to improve censorship You can lower this to save bandwidth or increase it to improve censorship
resistance. Too much padding may cause the CDN to reject traffic. resistance. Too much padding may cause the CDN to reject traffic.
> `xmux`
*Added in 24.9.16*
Control the way that SplitHTTP distributes *sub-connections* (H2 stream or QUIC
stream) on "physical" TCP/QUIC *connections*. The default behavior is to put
all sub-connections of an outbound onto a single physical connection, which is
basically equal to using `mux.cool` with `concurrency=999999999`.
It is recommended to tweak this transport-specific `xmux` instead of the global
`mux` key (mux.cool) for better performance, especially on QUIC/H3 connections.
That said, either one may be useful to work around certain connectivity issues
(and bugs in xray or other software).
* `maxConnections`: Default 0 = infinite. The number of physical connections to
open. Every sub-connection will open a new connection until this value is
reached, only then connections will be reused. Mutually exclusive with
`maxConcurrency`.
* `maxConcurrency`: Default 0 = infinite. The maximum number of sub-connections
to put onto a physical connection. New physical connections will be opened to
stay under this limit overall. Mutually exclusive with `maxConnections`.
Equivalent to mux.cool's `concurrency`.
* `cMaxReuseTimes`: Default 0 = infinite. Stop re-using a physical connection
after it has been used for this many sub-connections.
* `cMaxLifetimeMs`: Default 0 = infinite. Stop re-using a physical connection
after it has been open for this many milliseconds.
## HTTP versions ## HTTP versions
*Added in 1.8.21: HTTP/3 support* *Added in 1.8.21: HTTP/3 support*

Loading…
Cancel
Save