A Discrete-Event Network Simulator
API
Modules | Classes | Typedefs | Enumerations

This is an implementation of various Transmission Control Protocol flavors. More...

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::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::TracedValueCallback::EcnState) (const TcpSocketState::EcnState_t oldValue, const TcpSocketState::EcnState_t newValue)
 TracedValue Callback signature for EcnState_t. More...
 
typedef void(* ns3::EcnStatesTracedValueCallback) (const TcpSocketState::EcnState_t oldValue, const TcpSocketState::EcnState_t newValue)
 TracedValue Callback signature for ECN state trace. More...
 
typedef void(* ns3::TracedValueCallback::TcpCongState) (const TcpSocketState::TcpCongState_t oldValue, const TcpSocketState::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::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...
 

Detailed Description

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 Documentation

◆ EcnState

typedef void(* ns3::TracedValueCallback::EcnState) (const TcpSocketState::EcnState_t oldValue, const TcpSocketState::EcnState_t newValue)

TracedValue Callback signature for EcnState_t.

Parameters
[in]oldValueoriginal value of the traced variable
[in]newValuenew value of the traced variable

Definition at line 197 of file tcp-socket-state.h.

◆ EcnStatesTracedValueCallback

typedef void(* ns3::EcnStatesTracedValueCallback) (const TcpSocketState::EcnState_t oldValue, const TcpSocketState::EcnState_t newValue)

TracedValue Callback signature for ECN state trace.

Parameters
[in]oldValueoriginal value of the traced variable
[in]newValuenew value of the traced variable

Definition at line 1294 of file tcp-socket-base.h.

◆ TcpCongState

typedef void(* ns3::TracedValueCallback::TcpCongState) (const TcpSocketState::TcpCongState_t oldValue, const TcpSocketState::TcpCongState_t newValue)

TracedValue Callback signature for TcpCongState_t.

Parameters
[in]oldValueoriginal value of the traced variable
[in]newValuenew value of the traced variable

Definition at line 187 of file tcp-socket-state.h.

◆ TcpCongStatesTracedValueCallback

typedef void(* ns3::TcpCongStatesTracedValueCallback) (const TcpSocketState::TcpCongState_t oldValue, const TcpSocketState::TcpCongState_t newValue)

TracedValue Callback signature for TcpCongState_t.

Parameters
[in]oldValueoriginal value of the traced variable
[in]newValuenew value of the traced variable

Definition at line 1284 of file tcp-socket-base.h.

◆ TcpStatesTracedValueCallback

typedef void(* ns3::TcpStatesTracedValueCallback) (const TcpSocket::TcpStates_t oldValue, const TcpSocket::TcpStates_t newValue)

TracedValue Callback signature for TcpStates_t.

Parameters
[in]oldValueoriginal value of the traced variable
[in]newValuenew value of the traced variable

Definition at line 262 of file tcp-socket.h.

Enumeration Type Documentation

◆ TcpStates_t

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.