This is an implementation of various Transmission Control Protocol flavors. More...
Collaboration diagram for TCP:Modules | |
| Congestion Control Algorithms. | |
| The various congestion control algorithms, also known as "TCP flavors". | |
| Recovery Algorithms. | |
| The various recovery algorithms used in recovery phase of TCP. | |
Classes | |
| class | ns3::RttEstimator |
| Base class for all RTT Estimators. More... | |
| class | ns3::RttHistory |
| Helper class to store RTT measurements. More... | |
| class | ns3::RttMeanDeviation |
| The "Mean--Deviation" RTT estimator, as discussed by Van Jacobson. More... | |
| class | ns3::TcpDctcp |
| An implementation of DCTCP. More... | |
| class | ns3::TcpHeader |
| Header for the Transmission Control Protocol. More... | |
| class | ns3::TcpL4Protocol |
| TCP socket creation and multiplexing/demultiplexing. More... | |
| class | ns3::TcpOption |
| Base class for all kinds of TCP options. More... | |
| class | ns3::TcpOptionEnd |
| Defines the TCP option of kind 0 (end of option list) as in RFC 793 More... | |
| class | ns3::TcpOptionTS |
| Defines the TCP option of kind 8 (timestamp option) as in RFC 1323 More... | |
| class | ns3::TcpOptionUnknown |
| An unknown TCP option. More... | |
| class | ns3::TcpOptionWinScale |
| Defines the TCP option of kind 3 (window scale option) as in RFC 1323 More... | |
| class | ns3::TcpRxBuffer |
| Rx reordering buffer for TCP. More... | |
| class | ns3::TcpSocket |
| (abstract) base class of all TcpSockets More... | |
| class | ns3::TcpSocketBase |
| A base class for implementation of a stream socket using TCP. More... | |
| class | ns3::TcpSocketFactory |
| API to create TCP socket instances. More... | |
| class | ns3::TcpSocketFactoryImpl |
| socket factory implementation for native ns-3 TCP More... | |
| class | ns3::TcpTxBuffer |
| Tcp sender buffer. More... | |
| class | ns3::TcpTxItem |
| Item that encloses the application packet and some flags for it. More... | |
Typedefs | |
| typedef void(* | ns3::TracedValueCallback::EcnState) (const TcpSocketState::EcnState_t oldValue, const TcpSocketState::EcnState_t newValue) |
| TracedValue Callback signature for EcnState_t. | |
| typedef void(* | ns3::EcnStatesTracedValueCallback) (const TcpSocketState::EcnState_t oldValue, const TcpSocketState::EcnState_t newValue) |
| TracedValue Callback signature for ECN state trace. | |
| typedef void(* | ns3::TracedValueCallback::TcpCongState) (const TcpSocketState::TcpCongState_t oldValue, const TcpSocketState::TcpCongState_t newValue) |
| TracedValue Callback signature for TcpCongState_t. | |
| typedef void(* | ns3::TcpCongStatesTracedValueCallback) (const TcpSocketState::TcpCongState_t oldValue, const TcpSocketState::TcpCongState_t newValue) |
| TracedValue Callback signature for TcpCongState_t. | |
| typedef void(* | ns3::TcpStatesTracedValueCallback) (const TcpSocket::TcpStates_t oldValue, const TcpSocket::TcpStates_t newValue) |
| TracedValue Callback signature for TcpStates_t. | |
Enumerations | |
| enum | ns3::TcpSocket::TcpStates_t { ns3::TcpSocket::CLOSED = 0 , ns3::TcpSocket::LISTEN , ns3::TcpSocket::SYN_SENT , ns3::TcpSocket::SYN_RCVD , ns3::TcpSocket::ESTABLISHED , ns3::TcpSocket::CLOSE_WAIT , ns3::TcpSocket::LAST_ACK , ns3::TcpSocket::FIN_WAIT_1 , ns3::TcpSocket::FIN_WAIT_2 , ns3::TcpSocket::CLOSING , ns3::TcpSocket::TIME_WAIT , ns3::TcpSocket::LAST_STATE } |
| Names of the 11 TCP states. More... | |
This is an implementation of various Transmission Control Protocol flavors.
Each TCP flavors is studied to match a specific environment, and they differ mainly in the congestion control algorithms used.
See RFC 793 and others.
| typedef void(* ns3::TracedValueCallback::EcnState) (const TcpSocketState::EcnState_t oldValue, const TcpSocketState::EcnState_t newValue) |
TracedValue Callback signature for EcnState_t.
| [in] | oldValue | original value of the traced variable |
| [in] | newValue | new value of the traced variable |
Definition at line 269 of file tcp-socket-state.h.
| typedef void(* ns3::EcnStatesTracedValueCallback) (const TcpSocketState::EcnState_t oldValue, const TcpSocketState::EcnState_t newValue) |
TracedValue Callback signature for ECN state trace.
| [in] | oldValue | original value of the traced variable |
| [in] | newValue | new value of the traced variable |
Definition at line 1413 of file tcp-socket-base.h.
| typedef void(* ns3::TracedValueCallback::TcpCongState) (const TcpSocketState::TcpCongState_t oldValue, const TcpSocketState::TcpCongState_t newValue) |
TracedValue Callback signature for TcpCongState_t.
| [in] | oldValue | original value of the traced variable |
| [in] | newValue | new value of the traced variable |
Definition at line 259 of file tcp-socket-state.h.
| typedef void(* ns3::TcpCongStatesTracedValueCallback) (const TcpSocketState::TcpCongState_t oldValue, const TcpSocketState::TcpCongState_t newValue) |
TracedValue Callback signature for TcpCongState_t.
| [in] | oldValue | original value of the traced variable |
| [in] | newValue | new value of the traced variable |
Definition at line 1403 of file tcp-socket-base.h.
| typedef void(* ns3::TcpStatesTracedValueCallback) (const TcpSocket::TcpStates_t oldValue, const TcpSocket::TcpStates_t newValue) |
TracedValue Callback signature for TcpStates_t.
| [in] | oldValue | original value of the traced variable |
| [in] | newValue | new value of the traced variable |
Definition at line 262 of file tcp-socket.h.
Names of the 11 TCP states.
| Enumerator | |
|---|---|
| CLOSED | Socket is finished |
| LISTEN | Listening for a connection |
| SYN_SENT | Sent a connection request, waiting for ack |
| SYN_RCVD | Received a connection request, sent ack, waiting for final ack in three-way handshake.
|
| ESTABLISHED | Connection established |
| CLOSE_WAIT | Remote side has shutdown and is waiting for us to finish writing our data and to shutdown (we have to close() to move on to LAST_ACK) |
| LAST_ACK | Our side has shutdown after remote has shutdown. There may still be data in our buffer that we have to finish sending |
| FIN_WAIT_1 | Our side has shutdown, waiting to complete transmission of remaining buffered data |
| FIN_WAIT_2 | All buffered data sent, waiting for remote to shutdown. |
| CLOSING | Both sides have shutdown but we still have data we have to finish sending |
| TIME_WAIT | Timeout to catch resent junk before entering closed, can only be entered from FIN_WAIT2 or CLOSING. Required because the other end may not have gotten our last ACK causing it to retransmit the data packet (which we ignore) |
| LAST_STATE | Last state, used only in debug messages |
Definition at line 65 of file tcp-socket.h.