Documentation
¶
Index ¶
Constants ¶
View Source
const ( InitialPacketSizeIPv4 = protocol.InitialPacketSize InitialPacketSizeIPv6 = protocol.InitialPacketSize MinPacingDelay = protocol.MinPacingDelay MaxPacketBufferSize = protocol.MaxPacketBufferSize MinInitialPacketSize = protocol.MinInitialPacketSize MaxCongestionWindowPackets = protocol.MaxCongestionWindowPackets PacketsPerConnectionID = protocol.PacketsPerConnectionID )
Expose some constants from protocol that congestion control algorithms may need.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AckedPacketInfo ¶
type AckedPacketInfo struct {
PacketNumber PacketNumber
BytesAcked ByteCount
ReceivedTime time.Time
}
type CongestionControl ¶
type CongestionControl interface {
SetRTTStatsProvider(provider RTTStatsProvider)
TimeUntilSend(bytesInFlight ByteCount) time.Time
HasPacingBudget(now time.Time) bool
OnPacketSent(sentTime time.Time, bytesInFlight ByteCount, packetNumber PacketNumber, bytes ByteCount, isRetransmittable bool)
CanSend(bytesInFlight ByteCount) bool
MaybeExitSlowStart()
OnPacketAcked(number PacketNumber, ackedBytes ByteCount, priorInFlight ByteCount, eventTime time.Time)
OnCongestionEvent(number PacketNumber, lostBytes ByteCount, priorInFlight ByteCount)
OnCongestionEventEx(priorInFlight ByteCount, eventTime time.Time, ackedPackets []AckedPacketInfo, lostPackets []LostPacketInfo)
OnRetransmissionTimeout(packetsRetransmitted bool)
SetMaxDatagramSize(size ByteCount)
InSlowStart() bool
InRecovery() bool
GetCongestionWindow() ByteCount
}
type LostPacketInfo ¶
type LostPacketInfo struct {
PacketNumber PacketNumber
BytesLost ByteCount
}
type PacketNumber ¶
type PacketNumber protocol.PacketNumber
type RTTStatsProvider ¶
type RTTStatsProvider interface {
MinRTT() time.Duration
LatestRTT() time.Duration
SmoothedRTT() time.Duration
MeanDeviation() time.Duration
MaxAckDelay() time.Duration
PTO(includeMaxAckDelay bool) time.Duration
UpdateRTT(sendDelta, ackDelay time.Duration)
SetMaxAckDelay(mad time.Duration)
SetInitialRTT(t time.Duration)
}
Click to show internal directories.
Click to hide internal directories.