forked from quic-go/quic-go
increase initial packet size to 1280 bytes (for both IPv4 and IPv6) (#4500)
This commit is contained in:
@@ -44,7 +44,7 @@ var _ = Describe("SentPacketHandler", func() {
|
||||
JustBeforeEach(func() {
|
||||
lostPackets = nil
|
||||
rttStats := utils.NewRTTStats()
|
||||
handler = newSentPacketHandler(42, protocol.InitialPacketSizeIPv4, rttStats, false, false, perspective, nil, utils.DefaultLogger)
|
||||
handler = newSentPacketHandler(42, protocol.InitialPacketSize, rttStats, false, false, perspective, nil, utils.DefaultLogger)
|
||||
streamFrame = wire.StreamFrame{
|
||||
StreamID: 5,
|
||||
Data: []byte{0x13, 0x37},
|
||||
@@ -984,7 +984,7 @@ var _ = Describe("SentPacketHandler", func() {
|
||||
Context("amplification limit, for the server, with validated address", func() {
|
||||
JustBeforeEach(func() {
|
||||
rttStats := utils.NewRTTStats()
|
||||
handler = newSentPacketHandler(42, protocol.InitialPacketSizeIPv4, rttStats, true, false, perspective, nil, utils.DefaultLogger)
|
||||
handler = newSentPacketHandler(42, protocol.InitialPacketSize, rttStats, true, false, perspective, nil, utils.DefaultLogger)
|
||||
})
|
||||
|
||||
It("do not limits the window", func() {
|
||||
@@ -1443,7 +1443,7 @@ var _ = Describe("SentPacketHandler", func() {
|
||||
lostPackets = nil
|
||||
rttStats := utils.NewRTTStats()
|
||||
rttStats.UpdateRTT(time.Hour, 0, time.Now())
|
||||
handler = newSentPacketHandler(42, protocol.InitialPacketSizeIPv4, rttStats, false, false, perspective, nil, utils.DefaultLogger)
|
||||
handler = newSentPacketHandler(42, protocol.InitialPacketSize, rttStats, false, false, perspective, nil, utils.DefaultLogger)
|
||||
handler.ecnTracker = ecnHandler
|
||||
handler.congestion = cong
|
||||
})
|
||||
|
||||
@@ -17,11 +17,11 @@ import (
|
||||
// 1024*1024^3 (first 1024 is from 0.100^3)
|
||||
// where 0.100 is 100 ms which is the scaling round trip time.
|
||||
const (
|
||||
cubeScale = 40
|
||||
cubeCongestionWindowScale = 410
|
||||
cubeFactor protocol.ByteCount = 1 << cubeScale / cubeCongestionWindowScale / maxDatagramSize
|
||||
cubeScale = 40
|
||||
cubeCongestionWindowScale = 410
|
||||
cubeFactor = 1 << cubeScale / cubeCongestionWindowScale / maxDatagramSize
|
||||
// TODO: when re-enabling cubic, make sure to use the actual packet size here
|
||||
maxDatagramSize = protocol.ByteCount(protocol.InitialPacketSizeIPv4)
|
||||
maxDatagramSize = protocol.ByteCount(protocol.InitialPacketSize)
|
||||
)
|
||||
|
||||
const defaultNumConnections = 1
|
||||
|
||||
@@ -12,7 +12,7 @@ import (
|
||||
const (
|
||||
// maxDatagramSize is the default maximum packet size used in the Linux TCP implementation.
|
||||
// Used in QUIC for congestion window computations in bytes.
|
||||
initialMaxDatagramSize = protocol.ByteCount(protocol.InitialPacketSizeIPv4)
|
||||
initialMaxDatagramSize = protocol.ByteCount(protocol.InitialPacketSize)
|
||||
maxBurstPackets = 3
|
||||
renoBeta = 0.7 // Reno backoff factor.
|
||||
minCongestionWindowPackets = 2
|
||||
|
||||
@@ -25,7 +25,7 @@ func (c *mockClock) Advance(d time.Duration) {
|
||||
*c = mockClock(time.Time(*c).Add(d))
|
||||
}
|
||||
|
||||
const MaxCongestionWindow protocol.ByteCount = 200 * maxDatagramSize
|
||||
const MaxCongestionWindow = 200 * maxDatagramSize
|
||||
|
||||
var _ = Describe("Cubic Sender", func() {
|
||||
var (
|
||||
@@ -47,7 +47,7 @@ var _ = Describe("Cubic Sender", func() {
|
||||
&clock,
|
||||
rttStats,
|
||||
true, /*reno*/
|
||||
protocol.InitialPacketSizeIPv4,
|
||||
protocol.InitialPacketSize,
|
||||
initialCongestionWindowPackets*maxDatagramSize,
|
||||
MaxCongestionWindow,
|
||||
nil,
|
||||
@@ -319,7 +319,7 @@ var _ = Describe("Cubic Sender", func() {
|
||||
It("tcp cubic reset epoch on quiescence", func() {
|
||||
const maxCongestionWindow = 50
|
||||
const maxCongestionWindowBytes = maxCongestionWindow * maxDatagramSize
|
||||
sender = newCubicSender(&clock, rttStats, false, protocol.InitialPacketSizeIPv4, initialCongestionWindowPackets*maxDatagramSize, maxCongestionWindowBytes, nil)
|
||||
sender = newCubicSender(&clock, rttStats, false, protocol.InitialPacketSize, initialCongestionWindowPackets*maxDatagramSize, maxCongestionWindowBytes, nil)
|
||||
|
||||
numSent := SendAvailableSendWindow()
|
||||
|
||||
@@ -460,7 +460,7 @@ var _ = Describe("Cubic Sender", func() {
|
||||
|
||||
It("slow starts up to the maximum congestion window", func() {
|
||||
const initialMaxCongestionWindow = protocol.MaxCongestionWindowPackets * initialMaxDatagramSize
|
||||
sender = newCubicSender(&clock, rttStats, true, protocol.InitialPacketSizeIPv4, initialCongestionWindowPackets*maxDatagramSize, initialMaxCongestionWindow, nil)
|
||||
sender = newCubicSender(&clock, rttStats, true, protocol.InitialPacketSize, initialCongestionWindowPackets*maxDatagramSize, initialMaxCongestionWindow, nil)
|
||||
|
||||
for i := 1; i < protocol.MaxCongestionWindowPackets; i++ {
|
||||
sender.MaybeExitSlowStart()
|
||||
@@ -475,7 +475,7 @@ var _ = Describe("Cubic Sender", func() {
|
||||
|
||||
It("slow starts up to maximum congestion window, if larger packets are sent", func() {
|
||||
const initialMaxCongestionWindow = protocol.MaxCongestionWindowPackets * initialMaxDatagramSize
|
||||
sender = newCubicSender(&clock, rttStats, true, protocol.InitialPacketSizeIPv4, initialCongestionWindowPackets*maxDatagramSize, initialMaxCongestionWindow, nil)
|
||||
sender = newCubicSender(&clock, rttStats, true, protocol.InitialPacketSize, initialCongestionWindowPackets*maxDatagramSize, initialMaxCongestionWindow, nil)
|
||||
const packetSize = initialMaxDatagramSize + 100
|
||||
sender.SetMaxDatagramSize(packetSize)
|
||||
for i := 1; i < protocol.MaxCongestionWindowPackets; i++ {
|
||||
@@ -490,7 +490,7 @@ var _ = Describe("Cubic Sender", func() {
|
||||
|
||||
It("limit cwnd increase in congestion avoidance", func() {
|
||||
// Enable Cubic.
|
||||
sender = newCubicSender(&clock, rttStats, false, protocol.InitialPacketSizeIPv4, initialCongestionWindowPackets*maxDatagramSize, MaxCongestionWindow, nil)
|
||||
sender = newCubicSender(&clock, rttStats, false, protocol.InitialPacketSize, initialCongestionWindowPackets*maxDatagramSize, MaxCongestionWindow, nil)
|
||||
numSent := SendAvailableSendWindow()
|
||||
|
||||
// Make sure we fall out of slow start.
|
||||
|
||||
@@ -8,11 +8,8 @@ const DesiredReceiveBufferSize = (1 << 20) * 7 // 7 MB
|
||||
// DesiredSendBufferSize is the kernel UDP send buffer size that we'd like to use.
|
||||
const DesiredSendBufferSize = (1 << 20) * 7 // 7 MB
|
||||
|
||||
// InitialPacketSizeIPv4 is the maximum packet size that we use for sending IPv4 packets.
|
||||
const InitialPacketSizeIPv4 = 1252
|
||||
|
||||
// InitialPacketSizeIPv6 is the maximum packet size that we use for sending IPv6 packets.
|
||||
const InitialPacketSizeIPv6 = 1232
|
||||
// InitialPacketSize is the initial (before Path MTU discovery) maximum packet size used.
|
||||
const InitialPacketSize = 1280
|
||||
|
||||
// MaxCongestionWindowPackets is the maximum congestion window in packet.
|
||||
const MaxCongestionWindowPackets = 10000
|
||||
|
||||
@@ -25,7 +25,7 @@ var _ = Describe("Header", func() {
|
||||
DestConnectionID: protocol.ParseConnectionID([]byte{0xde, 0xad, 0xbe, 0xef, 0xca, 0xfe}),
|
||||
SrcConnectionID: protocol.ParseConnectionID([]byte{0xde, 0xca, 0xfb, 0xad, 0x0, 0x0, 0x13, 0x37}),
|
||||
Version: 0x1020304,
|
||||
Length: protocol.InitialPacketSizeIPv4,
|
||||
Length: 1234,
|
||||
},
|
||||
PacketNumber: 0xdecaf,
|
||||
PacketNumberLen: protocol.PacketNumberLen3,
|
||||
@@ -39,8 +39,8 @@ var _ = Describe("Header", func() {
|
||||
0x8, // src connection ID length
|
||||
0xde, 0xca, 0xfb, 0xad, 0x0, 0x0, 0x13, 0x37, // source connection ID
|
||||
}
|
||||
expected = append(expected, encodeVarInt(protocol.InitialPacketSizeIPv4)...) // length
|
||||
expected = append(expected, []byte{0xd, 0xec, 0xaf}...) // packet number
|
||||
expected = append(expected, encodeVarInt(1234)...) // length
|
||||
expected = append(expected, []byte{0xd, 0xec, 0xaf}...) // packet number
|
||||
Expect(b).To(Equal(expected))
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user