ns-3
|
An implementation of a stream socket using TCP. More...
#include <tcp-reno.h>
Public Member Functions | |
TcpReno (void) | |
TcpReno (const TcpReno &sock) | |
virtual int | Connect (const Address &address) |
virtual int | Listen (void) |
![]() | |
TcpSocketBase (void) | |
TcpSocketBase (const TcpSocketBase &sock) | |
virtual void | SetNode (Ptr< Node > node) |
virtual void | SetTcp (Ptr< TcpL4Protocol > tcp) |
virtual void | SetRtt (Ptr< RttEstimator > rtt) |
virtual enum SocketErrno | GetErrno (void) const |
virtual enum SocketType | GetSocketType (void) const |
virtual Ptr< Node > | GetNode (void) const |
virtual int | Bind (void) |
virtual int | Bind6 (void) |
Allocate a local IPv6 endpoint for this socket. | |
virtual int | Bind (const Address &address) |
virtual int | Close (void) |
virtual int | ShutdownSend (void) |
virtual int | ShutdownRecv (void) |
virtual int | Send (Ptr< Packet > p, uint32_t flags) |
virtual int | SendTo (Ptr< Packet > p, uint32_t flags, const Address &toAddress) |
virtual Ptr< Packet > | Recv (uint32_t maxSize, uint32_t flags) |
virtual Ptr< Packet > | RecvFrom (uint32_t maxSize, uint32_t flags, Address &fromAddress) |
virtual uint32_t | GetTxAvailable (void) const |
virtual uint32_t | GetRxAvailable (void) const |
virtual int | GetSockName (Address &address) const |
virtual void | BindToNetDevice (Ptr< NetDevice > netdevice) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
This method returns the TypeId associated to ns3::TcpReno. |
Protected Member Functions | |
virtual uint32_t | Window (void) |
virtual Ptr< TcpSocketBase > | Fork (void) |
virtual void | NewAck (const SequenceNumber32 &seq) |
virtual void | DupAck (const TcpHeader &t, uint32_t count) |
virtual void | Retransmit (void) |
virtual void | SetSegSize (uint32_t size) |
virtual void | SetSSThresh (uint32_t threshold) |
virtual uint32_t | GetSSThresh (void) const |
virtual void | SetInitialCwnd (uint32_t cwnd) |
virtual uint32_t | GetInitialCwnd (void) const |
![]() | |
virtual void | SetSndBufSize (uint32_t size) |
virtual uint32_t | GetSndBufSize (void) const |
virtual void | SetRcvBufSize (uint32_t size) |
virtual uint32_t | GetRcvBufSize (void) const |
virtual uint32_t | GetSegSize (void) const |
virtual void | SetConnTimeout (Time timeout) |
virtual Time | GetConnTimeout (void) const |
virtual void | SetConnCount (uint32_t count) |
virtual uint32_t | GetConnCount (void) const |
virtual void | SetDelAckTimeout (Time timeout) |
virtual Time | GetDelAckTimeout (void) const |
virtual void | SetDelAckMaxCount (uint32_t count) |
virtual uint32_t | GetDelAckMaxCount (void) const |
virtual void | SetTcpNoDelay (bool noDelay) |
virtual bool | GetTcpNoDelay (void) const |
virtual void | SetPersistTimeout (Time timeout) |
virtual Time | GetPersistTimeout (void) const |
virtual bool | SetAllowBroadcast (bool allowBroadcast) |
Configure whether broadcast datagram transmissions are allowed. | |
virtual bool | GetAllowBroadcast (void) const |
Query whether broadcast datagram transmissions are allowed. | |
int | SetupCallback (void) |
int | DoConnect (void) |
void | ConnectionSucceeded (void) |
int | SetupEndpoint (void) |
int | SetupEndpoint6 (void) |
void | CompleteFork (Ptr< Packet >, const TcpHeader &, const Address &fromAddress, const Address &toAdress) |
void | ForwardUp (Ptr< Packet > packet, Ipv4Header header, uint16_t port, Ptr< Ipv4Interface > incomingInterface) |
void | ForwardUp6 (Ptr< Packet > packet, Ipv6Address saddr, Ipv6Address daddr, uint16_t port) |
virtual void | DoForwardUp (Ptr< Packet > packet, Ipv4Header header, uint16_t port, Ptr< Ipv4Interface > incomingInterface) |
virtual void | DoForwardUp (Ptr< Packet > packet, Ipv6Address saddr, Ipv6Address daddr, uint16_t port) |
bool | SendPendingData (bool withAck=false) |
uint32_t | SendDataPacket (SequenceNumber32 seq, uint32_t maxSize, bool withAck) |
void | SendEmptyPacket (uint8_t flags) |
void | SendRST (void) |
bool | OutOfRange (SequenceNumber32 head, SequenceNumber32 tail) const |
int | DoClose (void) |
void | CloseAndNotify (void) |
void | Destroy (void) |
void | Destroy6 (void) |
void | DeallocateEndPoint (void) |
void | PeerClose (Ptr< Packet >, const TcpHeader &) |
void | DoPeerClose (void) |
void | CancelAllTimers (void) |
void | TimeWait (void) |
void | ProcessEstablished (Ptr< Packet >, const TcpHeader &) |
void | ProcessListen (Ptr< Packet >, const TcpHeader &, const Address &, const Address &) |
void | ProcessSynSent (Ptr< Packet >, const TcpHeader &) |
void | ProcessSynRcvd (Ptr< Packet >, const TcpHeader &, const Address &, const Address &) |
void | ProcessWait (Ptr< Packet >, const TcpHeader &) |
void | ProcessClosing (Ptr< Packet >, const TcpHeader &) |
void | ProcessLastAck (Ptr< Packet >, const TcpHeader &) |
virtual uint32_t | UnAckDataCount (void) |
virtual uint32_t | BytesInFlight (void) |
virtual uint32_t | AvailableWindow (void) |
virtual uint16_t | AdvertisedWindowSize (void) |
virtual void | ReceivedAck (Ptr< Packet >, const TcpHeader &) |
virtual void | ReceivedData (Ptr< Packet >, const TcpHeader &) |
virtual void | EstimateRtt (const TcpHeader &) |
virtual void | ReTxTimeout (void) |
virtual void | DelAckTimeout (void) |
virtual void | LastAckTimeout (void) |
virtual void | PersistTimeout (void) |
virtual void | DoRetransmit (void) |
virtual void | ReadOptions (const TcpHeader &) |
virtual void | AddOptions (TcpHeader &) |
Protected Attributes | |
TracedValue< uint32_t > | m_cWnd |
uint32_t | m_ssThresh |
uint32_t | m_initialCWnd |
uint32_t | m_retxThresh |
bool | m_inFastRec |
![]() | |
EventId | m_retxEvent |
EventId | m_lastAckEvent |
EventId | m_delAckEvent |
EventId | m_persistEvent |
EventId | m_timewaitEvent |
uint32_t | m_dupAckCount |
uint32_t | m_delAckCount |
uint32_t | m_delAckMaxCount |
bool | m_noDelay |
uint32_t | m_cnCount |
uint32_t | m_cnRetries |
TracedValue< Time > | m_rto |
TracedValue< Time > | m_lastRtt |
Time | m_delAckTimeout |
Time | m_persistTimeout |
Time | m_cnTimeout |
Ipv4EndPoint * | m_endPoint |
Ipv6EndPoint * | m_endPoint6 |
Ptr< Node > | m_node |
Ptr< TcpL4Protocol > | m_tcp |
Ptr< RttEstimator > | m_rtt |
TracedValue< SequenceNumber32 > | m_nextTxSequence |
TracedValue< SequenceNumber32 > | m_highTxMark |
TcpRxBuffer | m_rxBuffer |
TcpTxBuffer | m_txBuffer |
TracedValue< TcpStates_t > | m_state |
enum SocketErrno | m_errno |
bool | m_closeNotified |
bool | m_closeOnEmpty |
bool | m_shutdownSend |
bool | m_shutdownRecv |
bool | m_connected |
double | m_msl |
uint32_t | m_segmentSize |
uint16_t | m_maxWinSize |
TracedValue< uint32_t > | m_rWnd |
An implementation of a stream socket using TCP.
This class contains the Reno implementation of TCP, according to RFC2581, except sec.4.1 "re-starting idle connections", which we do not detect for idleness and thus no slow start upon resumption.
ns3::TcpReno::TcpReno | ( | void | ) |
Create an unbound tcp socket.
References NS_LOG_FUNCTION.
|
virtual |
We initialize m_cWnd from this function, after attributes initialized
Reimplemented from ns3::TcpSocketBase.
References NS_LOG_FUNCTION.
|
static |
This method returns the TypeId associated to ns3::TcpReno.
Attributes defined for this type:
Attributes defined in parent class ns3::TcpSocketBase:
Attributes defined in parent class ns3::TcpSocket:
TraceSources defined for this type:
TraceSources defined in parent class ns3::TcpSocketBase:
Reimplemented from ns3::TcpSocketBase.
References ns3::MakeTraceSourceAccessor(), and ns3::TypeId::SetParent().
|
virtual |
We initialize m_cWnd from this function, after attributes initialized
Reimplemented from ns3::TcpSocketBase.
References NS_LOG_FUNCTION.
|
protectedvirtual |
New ACK (up to seqnum seq) received. Increase cwnd and call TcpSocketBase::NewAck()
Reimplemented from ns3::TcpSocketBase.
References NS_LOG_FUNCTION, NS_LOG_INFO, and NS_LOG_LOGIC.
|
protectedvirtual |
Limit the size of in-flight data by cwnd and receiver's rxwin
Reimplemented from ns3::TcpSocketBase.
References NS_LOG_FUNCTION.