This commit is contained in:
picklefan 2023-03-27 16:55:18 -07:00
parent 9bea362c73
commit 5d95ca1e72
7 changed files with 13 additions and 14 deletions

View file

@ -40,4 +40,4 @@ Whether it is an abstract domain socket, with a default value of `false`.
> `padding`: true | false
Whether the abstract domain socket has padding, with a default value of `false`.
Whether the abstract domain socket has padding, with a default value of `false`.

View file

@ -1,6 +1,6 @@
# gRPC
An modified transport protocol based on gRPC.
An modified transport protocol based on gRPC.
gRPC is based on the HTTP/2 protocol and can theoretically be relayed by other servers that support HTTP/2, such as Nginx.
@ -81,7 +81,7 @@ Enabling health checks may help solve some "connection drop" issues.
> `health_check_timeout`: number
The timeout for the health check, measured in seconds. If the health check is not completed within this time period, it is considered to have failed.
The timeout for the health check, measured in seconds. If the health check is not completed within this time period, it is considered to have failed.
The default value is `20`
::: tip

View file

@ -7,7 +7,7 @@ Based on the recommendations of HTTP/2, both the client and server must enable T
HTTP/2 has built-in multiplexing, so it is not recommended to enable mux.cool when using HTTP/2.
::: tip
The current version of the transmission mode based on HTTP/2 does not require TLS configuration for inbound (server-side).
The current version of the transmission mode based on HTTP/2 does not require TLS configuration for inbound (server-side).
This makes it possible to use a plaintext HTTP/2 protocol called h2c for communication between the gateway and Xray, with external gateway components handling the TLS layer conversation in special-purpose load-balancing deployment environments.
:::
@ -17,7 +17,7 @@ This makes it possible to use a plaintext HTTP/2 protocol called h2c for communi
- Please make sure that `h2` is included in `(x)tlsSettings.alpn`, otherwise HTTP/2 cannot complete TLS handshake.
- HTTP/2 cannot perform path-based routing, so it is recommended to use SNI-based routing.
:::
:::
## HttpObject
@ -64,7 +64,7 @@ Enabling health checks may help solve some "connection drop" issues.
> `health_check_timeout`: number
The timeout for the health check, measured in seconds. If the health check is not completed within this time period, it is considered to have failed.
The timeout for the health check, measured in seconds. If the health check is not completed within this time period, it is considered to have failed.
The default value is `15`
::: tip

View file

@ -45,7 +45,7 @@ The default value is `50`
Uplink capacity refers to the maximum bandwidth used by the host to send data, measured in MB/s (note: Byte, not bit). It can be set to 0, indicating a very small bandwidth.
The default value is `5`
> `downlinkCapacity`: number
Downlink capacity refers to the maximum bandwidth used by the host to receive data, measured in MB/s (note: Byte, not bit). It can be set to 0, indicating a very small bandwidth.
@ -60,7 +60,7 @@ It is recommended to set `downlinkCapacity` to a larger value, such as `100`, an
> `congestion`: true | false
Whether or not to enable congestion control.
Whether or not to enable congestion control.
When congestion control is enabled, Xray will detect network quality. It will send less packets when packet loss is severe, or more packets when network is not fully filled.
The default value is `false`
@ -128,7 +128,7 @@ Type of obfuscation. Corresponding inbound and outbound must have the same value
The original KCP protocol uses a fixed header of 24 bytes, while mKCP modifies it to 18 bytes for data packets and 16 bytes for acknowledgement (ACK) packets. A smaller header helps evade feature detection and speeds up transmission.
In addition, the original KCP can only confirm that one packet has been received with a single ACK packet. This means that when KCP needs to confirm that 100 packets have been received, it will send out 2400 bytes of data (24 * 100), including a large amount of repeated header information that wastes bandwidth. mKCP compresses multiple ACK packets, so 100 ACK packets only require 418 bytes (16 + 2 + 100 * 4), which is equivalent to one-sixth of the original KCP.
In addition, the original KCP can only confirm that one packet has been received with a single ACK packet. This means that when KCP needs to confirm that 100 packets have been received, it will send out 2400 bytes of data (24 _ 100), including a large amount of repeated header information that wastes bandwidth. mKCP compresses multiple ACK packets, so 100 ACK packets only require 418 bytes (16 + 2 + 100 _ 4), which is equivalent to one-sixth of the original KCP.
### ACK packet retransmission

View file

@ -16,9 +16,8 @@ QUIC is currently in the experimental phase and uses IETF implementation that is
`QuicObject` corresponds to the `quicSettings` item in the [Transport Protocol](../transport.md).
::: danger
The configurations of both endpoints must be identical, otherwise the connection will fail.
The configurations of both endpoints must be identical, otherwise the connection will fail.
QUIC requires TLS to be enabled and if it is not enabled in the [Transport Protocol](../transport.md), Xray will issue a self-signed certificate for TLS communication.
:::
@ -71,6 +70,6 @@ Type of obfuscation. Corresponding inbound and outbound proxy must have the same
- `"wireguard"`: Obfuscated as WireGuard packets. (NOT true WireGuard protocol)
::: tip
When neither encryption nor obfuscation is enabled, QUIC transport is compatible with other QUIC tools.
When neither encryption nor obfuscation is enabled, QUIC transport is compatible with other QUIC tools.
However it is recommended to enable either or both for better undetectable communication.
:::

View file

@ -8,7 +8,6 @@ It can be combined with various protocols in multiple ways.
`TcpObject` corresponds to the `tcpSettings` item in the Transport Protocol.
```json
{
"acceptProxyProtocol": false,

View file

@ -39,9 +39,10 @@ The HTTP protocol path used by WebSocket. Default is `"/"`
If the path contains the `ed` parameter, `Early Data` will be enabled to reduce latency, and its value is the first packet length threshold. If the length of the first packet exceeds this value, `Early Data` will not be enabled. The recommended value is 2048.
An example usage of `ed` parameter:
```
"path": "/aabbcc" //original path
"path": "/aabbcc?ed=2048" //added ed parameter
```