diff --git a/CHANGES.html b/CHANGES.html index 681478fb0..e576bc771 100644 --- a/CHANGES.html +++ b/CHANGES.html @@ -212,6 +212,8 @@ is now exported by WifiNetDevice.
  • The default value of the EnableBeaconJitter attribute in ApWifiMac was changed from false to true.
  • +
  • The NormalClose() callback of a TcpSocket object used to fire upon leaving TIME_WAIT state (2*MSL after FINs have been exchanged). It now fires upon entering TIME_WAIT state. Timing of the callback for the other path to state CLOSED (through LAST_ACK) has not been changed. +

  • diff --git a/RELEASE_NOTES b/RELEASE_NOTES index 2b29ce9ee..7d7b76b30 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -75,6 +75,7 @@ Bugs fixed - Bug 2561 - TCP can not use Connect after a BindToNetDevice - Bug 2563 - Modify pybindgen version check to >= minimum version required - Bug 2564 - Simulation crashes when CtsTimeout is triggered for A-MPDU transmissions +- Bug 2565 - TCP; do not wait for 2*MSL to notify socket close - Bug 2566 - BlockAckManager::GetNRetryNeededPackets missing some packets in the queue - Bug 2573 - Added TCP Ledbat - Bug 2577 - simulation crashes when A-MPDU and multiple TOS are used with RTS-CTS enabled diff --git a/src/internet/doc/tcp.rst b/src/internet/doc/tcp.rst index 967a4ba50..876652cfe 100644 --- a/src/internet/doc/tcp.rst +++ b/src/internet/doc/tcp.rst @@ -271,9 +271,9 @@ Figure :ref:`fig-tcp-state-machine`. in the tx buffer has been transmitted). This does not prevent the socket in receiving data, and employing retransmit mechanism if losses are detected. If the application calls *Close()* with unread data in its rx buffer, the socket - will send a reset. If the socket is in the state SYN_SENT, CLOSING, LISTEN or - LAST_ACK, after that call the application will be notified with - *NotifyNormalClose()*. In all the other cases, the notification is delayed + will send a reset. If the socket is in the state SYN_SENT, CLOSING, LISTEN, + FIN_WAIT_2, or LAST_ACK, after that call the application will be notified with + *NotifyNormalClose()*. In other cases, the notification is delayed (see *NotifyNormalClose()*). ----------------------------------------- @@ -303,7 +303,7 @@ callback as well. - Received an ACK for the FIN sent, with or without the FIN bit set (we are in LAST_ACK) - The socket reaches the maximum amount of retries in retransmitting the SYN (*) - We receive a timeout in the LAST_ACK state - - After 2*Maximum Segment Lifetime seconds passed since the socket entered the TIME_WAIT state. + - Upon entering the TIME_WAIT state, before waiting the 2*Maximum Segment Lifetime seconds to finally deallocate the socket. *NotifyErrorClose*: *SetCloseCallbacks*, 2nd argument Invoked when we send an RST segment (for whatever reason) or we reached the