Replies: 1 comment
-
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Introduction
Recently, gRPC is gaining more and more popularity in the V2Fly community, but its throughput performance and resiliency to connection interruption are not even on par with other transport methods provided currently by v2ray-core.
This proposal is meant to discover possibilities of using multiple bidirectional streaming RPC channels to improve the overall performance of gRPC.
Specification
An extra option must be provided in
grpcObject
to enable the multichannel feature.multiChannel
: anint
option.0
: disable multichannel.1~7
:{multiChannel}
extra channels will be created withserviceName: $"{originalServiceName}-{sequence}"
When the multichannel feature is enabled, v2ray-core's gRPC dialer will load-balance extra channels together with the original channel and send data overall connections in the pool.
Possible benefits
Currently, with only one gRPC channel, if it is forcibly closed or reset due to network fluctuations or interventions, the connection must be re-established and until then the lost packet may be resent. Due to the above reason, gRPC has a poor performance when the network environment is unstable or the intervention of the CDSG is strong. With this feature, even if one of the channels is interrupted, there is still a channel left for the lost data to be resent immediately.
referring to gRPC Performance guide
Beta Was this translation helpful? Give feedback.
All reactions