1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-06-03 06:30:42 +00:00

write buffer size

This commit is contained in:
v2ray 2016-06-23 22:37:48 +02:00
parent 4beeba933c
commit ab710f2714
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169
2 changed files with 17 additions and 13 deletions

View File

@ -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,
}
}

View File

@ -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()