|
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) |
Public Member Functions inherited from ns3::TcpSocketBase | |
| 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 |
Protected Member Functions inherited from ns3::TcpSocketBase | |
| 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 |
Protected Attributes inherited from ns3::TcpSocketBase | |
| 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.