mirror of
https://github.com/v2fly/v2ray-core.git
synced 2024-12-31 06:26:53 -05:00
write buffer size
This commit is contained in:
parent
4beeba933c
commit
ab710f2714
@ -6,6 +6,7 @@ type Config struct {
|
||||
UplinkCapacity int
|
||||
DownlinkCapacity int
|
||||
Congestion bool
|
||||
WriteBuffer int
|
||||
}
|
||||
|
||||
func (this *Config) Apply() {
|
||||
@ -27,6 +28,7 @@ func DefaultConfig() Config {
|
||||
UplinkCapacity: 5,
|
||||
DownlinkCapacity: 20,
|
||||
Congestion: false,
|
||||
WriteBuffer: 8 * 1024 * 1024,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -53,18 +53,19 @@ func nowMillisec() int64 {
|
||||
// Connection is a KCP connection over UDP.
|
||||
type Connection struct {
|
||||
sync.RWMutex
|
||||
state ConnState
|
||||
kcp *KCP // the core ARQ
|
||||
kcpAccess sync.Mutex
|
||||
block Authenticator
|
||||
needUpdate bool
|
||||
local, remote net.Addr
|
||||
rd time.Time // read deadline
|
||||
wd time.Time // write deadline
|
||||
chReadEvent chan struct{}
|
||||
writer io.WriteCloser
|
||||
since int64
|
||||
terminateOnce signal.Once
|
||||
state ConnState
|
||||
kcp *KCP // the core ARQ
|
||||
kcpAccess sync.Mutex
|
||||
block Authenticator
|
||||
needUpdate bool
|
||||
local, remote net.Addr
|
||||
rd time.Time // read deadline
|
||||
wd time.Time // write deadline
|
||||
chReadEvent chan struct{}
|
||||
writer io.WriteCloser
|
||||
since int64
|
||||
terminateOnce signal.Once
|
||||
writeBufferSize int
|
||||
}
|
||||
|
||||
// NewConnection create a new KCP connection between local and remote.
|
||||
@ -82,6 +83,7 @@ func NewConnection(conv uint32, writerCloser io.WriteCloser, local *net.UDPAddr,
|
||||
conn.kcp.WndSize(effectiveConfig.GetSendingWindowSize(), effectiveConfig.GetReceivingWindowSize())
|
||||
conn.kcp.NoDelay(1, effectiveConfig.Tti, 2, effectiveConfig.Congestion)
|
||||
conn.kcp.current = conn.Elapsed()
|
||||
conn.writeBufferSize = effectiveConfig.WriteBuffer / effectiveConfig.Mtu
|
||||
|
||||
go conn.updateTask()
|
||||
|
||||
@ -144,7 +146,7 @@ func (this *Connection) Write(b []byte) (int, error) {
|
||||
this.RUnlock()
|
||||
|
||||
this.kcpAccess.Lock()
|
||||
if this.kcp.WaitSnd() < int(this.kcp.snd_wnd) {
|
||||
if this.kcp.WaitSnd() < this.writeBufferSize {
|
||||
nBytes := len(b)
|
||||
this.kcp.Send(b)
|
||||
this.kcp.current = this.Elapsed()
|
||||
|
Loading…
Reference in New Issue
Block a user