This is an implementation of various Transmission Control Protocol flavors. More...
 Collaboration diagram for TCP:
 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::TcpHtcp | 
| An implementation of the H-TCP variant of TCP.  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 | 
| class for the reordering buffer that keeps the data from lower layer, i.e.  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 | 
| class for keeping the data sent by the application to the TCP socket, i.e.  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... | |
| Enumerations | |
| enum | ns3::TcpHeader::Flags_t { ns3::TcpHeader::NONE = 0, ns3::TcpHeader::FIN = 1, ns3::TcpHeader::SYN = 2, ns3::TcpHeader::RST = 4, ns3::TcpHeader::PSH = 8, ns3::TcpHeader::ACK = 16, ns3::TcpHeader::URG = 32, ns3::TcpHeader::ECE = 64, ns3::TcpHeader::CWR = 128 } | 
| TCP flag field values.  More... | |
| enum | ns3::TcpOption::Kind { ns3::TcpOption::END = 0, ns3::TcpOption::NOP = 1, ns3::TcpOption::MSS = 2, ns3::TcpOption::WINSCALE = 3, ns3::TcpOption::TS = 8, ns3::TcpOption::UNKNOWN = 255 } | 
| The option Kind, as defined in the respective RFCs.  More... | |
| 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::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 145 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 1072 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 271 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. | 
| 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.