From 7c4b3bbbfaf3fc388eedcec3a112f6e5e19c806d Mon Sep 17 00:00:00 2001 From: Tom Henderson Date: Mon, 8 Jan 2024 07:38:15 -0800 Subject: [PATCH] Update documentation and release notes for TCP Cubic changes --- CHANGES.md | 1 + RELEASE_NOTES.md | 1 + src/internet/doc/tcp.rst | 13 ++++++++----- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index abbec1dcc..fd7ad4e71 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -65,6 +65,7 @@ Changes from ns-3.40 to ns-3-dev * Added guard rails for scratch targets missing or containing more than one `main` function. ### Changed behavior +* (internet) TCP Cubic (the default congestion control in ns-3) now supports TCP-friendliness by default (see RFC 9438 Section 4.3), making the congestion window growth somewhat more aggressive. This follows the default Linux behavior. * (wifi) Increase the duration of the timer started when waiting for an ADDBA_RESPONSE from 1ms to 5ms to better account for the time required by the recipient to access the medium and complete the frame exchange (which may involve protection with (MU-)RTS/CTS). diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index fd124b0ad..b00986679 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -21,6 +21,7 @@ Release 3-dev ### New user-visible features - (core) !1364 - The `MakeEnumAccessor` was changed to support `enum class` types +- (internet) #1001 - TCP Cubic now supports Reno-friendly operation by default. - (lr-wpan) !1686 - Change CapabilityField to standard bitmap - (lr-wpan) !1698 - Change SuperframeField to standard bitmap - (lr-wpan) !1706 - Create MAC layer abstraction (decoupling, alternative MACs) diff --git a/src/internet/doc/tcp.rst b/src/internet/doc/tcp.rst index 7b9516420..aabd67ff3 100644 --- a/src/internet/doc/tcp.rst +++ b/src/internet/doc/tcp.rst @@ -89,6 +89,10 @@ Recovery algorithm. In the ns-3.34 release, the default congestion control algorithm was set to CUBIC from NewReno. +CUBIC was extended to support Reno-friendliness (see RFC 9438 Section 4.3) in +the ns-3.41 release. This feature is called 'TCP friendliness' in earlier +versions of the CUBIC RFCs, and in the Linux and ns-3 implementations. + Acknowledgments +++++++++++++++ @@ -417,11 +421,10 @@ algorithm uses observations of delay increases in the slow start phase of window growth to try to exit slow start before window growth causes queue overflow. -CUBIC is documented in :rfc:`8312`, and the |ns3| implementation is based -on the RFC more so than the Linux implementation, although the Linux 4.4 -kernel implementation (through the Direct Code Execution environment) has -been used to validate the behavior and is fairly well aligned (see below -section on validation). +CUBIC is documented in :rfc:`9438`, and the |ns3| implementation is patterned +partly on the Linux implementation and partly on the RFC, although the Linux +4.4 kernel implementation (through the Direct Code Execution environment) has +been used to validate the behavior. Linux Reno ^^^^^^^^^^