Update documentation and release notes for TCP Cubic changes

This commit is contained in:
Tom Henderson
2024-01-08 07:38:15 -08:00
parent 97279afc3e
commit 7c4b3bbbfa
3 changed files with 10 additions and 5 deletions

View File

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

View File

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

View File

@@ -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
^^^^^^^^^^