From aa46fa06a0f8aaae9cef60b102d83be8c2d7923a Mon Sep 17 00:00:00 2001 From: Lucas Clemente Date: Fri, 6 May 2016 11:49:32 +0200 Subject: [PATCH] add very basic congestion window implementation fixes #22 --- session.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/session.go b/session.go index 93def6a5d..99e0c7ec5 100644 --- a/session.go +++ b/session.go @@ -323,6 +323,10 @@ func (s *Session) closeStreamsWithError(err error) { } func (s *Session) sendPacket() error { + if !s.congestionAllowsSending() { + return nil + } + var controlFrames []frames.Frame // check for retransmissions first @@ -446,3 +450,7 @@ func (s *Session) scheduleSending() { default: } } + +func (s *Session) congestionAllowsSending() bool { + return protocol.ByteCount(s.sentPacketHandler.BytesInFlight()) < 100*protocol.DefaultTCPMSS +}