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".  | |
Classes | |
| class | ns3::PendingData | 
| class for managing I/O between applications and TCP  More... | |
| 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::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::TcpSocketState::TcpCongStatesTracedValueCallback) (const TcpCongState_t oldValue, const TcpCongState_t newValue) | 
| TracedValue Callback signature for TcpCongState_t.  More... | |
| typedef void(* | ns3::TcpCongStatesTracedValueCallback) (const TcpSocketState::TcpCongState_t oldValue, const TcpSocketState::TcpCongState_t newValue) | 
| TracedValue Callback signature for TcpCongState_t.  More... | |
| typedef void(* | ns3::TcpStatesTracedValueCallback) (const TcpSocket::TcpStates_t oldValue, const TcpSocket::TcpStates_t newValue) | 
| TracedValue Callback signature for TcpStates_t.  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::TcpSocketState::TcpCongStatesTracedValueCallback) (const TcpCongState_t oldValue, const 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 163 of file tcp-socket-base.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 1257 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.
TCP flag field values.
| Enumerator | |
|---|---|
| NONE | 
 No flags.  | 
| FIN | 
 FIN.  | 
| SYN | 
 SYN.  | 
| RST | 
 Reset.  | 
| PSH | 
 Push.  | 
| ACK | 
 Ack.  | 
| URG | 
 Urgent.  | 
| ECE | 
 ECE.  | 
| CWR | 
 CWR.  | 
Definition at line 279 of file tcp-header.h.
| enum ns3::TcpOption::Kind | 
The option Kind, as defined in the respective RFCs.
| Enumerator | |
|---|---|
| END | 
 END.  | 
| NOP | 
 NOP.  | 
| MSS | 
 MSS.  | 
| WINSCALE | 
 WINSCALE.  | 
| SACKPERMITTED | 
 SACKPERMITTED.  | 
| SACK | 
 SACK.  | 
| TS | 
 TS.  | 
| UNKNOWN | 
 not a standardized value; for unknown recv'd options  | 
Definition at line 53 of file tcp-option.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.