| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- package kcp
- /*AdvancedConfig define behavior of KCP in detail
- MaximumTransmissionUnit:
- Largest protocol data unit that the layer can pass onwards
- can be discovered by running tracepath
- SendingWindowSize , ReceivingWindowSize:
- the size of Tx/Rx window, by packet
- ForwardErrorCorrectionGroupSize:
- The the size of packet to generate a Forward Error Correction
- packet, this is used to counteract packet loss.
- AcknowledgeNoDelay:
- Do not wait a certain of time before sending the ACK packet,
- increase bandwich cost and might increase performance
- Dscp:
- Differentiated services code point,
- be used to reconized to discriminate packet.
- It is recommanded to keep it 0 to avoid being detected.
- ReadTimeout,WriteTimeout:
- Close the Socket if it have been silent for too long,
- Small value can recycle zombie socket faster but
- can cause v2ray to kill the proxy connection it is relaying,
- Higher value can prevent server from closing zombie socket and
- waste resources.
- */
- /*Config define basic behavior of KCP
- Mode:
- can be one of these values:
- fast3,fast2,fast,normal
- <<<<<<- less delay
- ->>>>>> less bandwich wasted
- */
- type Config struct {
- Mode string
- Mtu int
- Sndwnd int
- Rcvwnd int
- Acknodelay bool
- Dscp int
- ReadTimeout int
- WriteTimeout int
- }
- func (this *Config) Apply() {
- effectiveConfig = *this
- }
- var (
- effectiveConfig = Config{
- Mode: "normal",
- Mtu: 1350,
- Sndwnd: 1024,
- Rcvwnd: 1024,
- Dscp: 0,
- ReadTimeout: 600,
- WriteTimeout: 500,
- Acknodelay: false,
- }
- )
|