A base class for implementation of a stream socket using TCP. More...
#include <tcp-socket-base.h>
Public Member Functions | |
TcpSocketBase (void) | |
TcpSocketBase (const TcpSocketBase &sock) | |
virtual | ~TcpSocketBase (void) |
virtual int | Bind (void) |
virtual int | Bind (const Address &address) |
virtual int | Bind6 (void) |
Allocate a local IPv6 endpoint for this socket. More... | |
virtual void | BindToNetDevice (Ptr< NetDevice > netdevice) |
virtual int | Close (void) |
virtual int | Connect (const Address &address) |
virtual enum SocketErrno | GetErrno (void) const |
virtual Ptr< Node > | GetNode (void) const |
virtual uint32_t | GetRxAvailable (void) const |
virtual enum SocketType | GetSocketType (void) const |
virtual int | GetSockName (Address &address) const |
virtual uint32_t | GetTxAvailable (void) const |
virtual int | Listen (void) |
virtual Ptr< Packet > | Recv (uint32_t maxSize, uint32_t flags) |
virtual Ptr< Packet > | RecvFrom (uint32_t maxSize, uint32_t flags, Address &fromAddress) |
virtual int | Send (Ptr< Packet > p, uint32_t flags) |
virtual int | SendTo (Ptr< Packet > p, uint32_t flags, const Address &toAddress) |
virtual void | SetNode (Ptr< Node > node) |
virtual void | SetRtt (Ptr< RttEstimator > rtt) |
virtual void | SetTcp (Ptr< TcpL4Protocol > tcp) |
virtual int | ShutdownRecv (void) |
virtual int | ShutdownSend (void) |
![]() | |
TcpSocket (void) | |
virtual | ~TcpSocket (void) |
![]() | |
Socket (void) | |
virtual | ~Socket (void) |
Ptr< NetDevice > | GetBoundNetDevice () |
Returns socket's bound netdevice, if any. More... | |
uint8_t | GetIpTos (void) const |
virtual uint8_t | GetIpTtl (void) const |
virtual uint8_t | GetIpv6HopLimit (void) const |
uint8_t | GetIpv6Tclass (void) const |
bool | IsIpRecvTos (void) const |
Ask if the socket is currently passing information about IP Type of Service up the stack. More... | |
bool | IsIpRecvTtl (void) const |
Ask if the socket is currently passing information about IP_TTL up the stack. More... | |
bool | IsIpv6RecvHopLimit (void) const |
Ask if the socket is currently passing information about IPv6 Hop Limit up the stack. More... | |
bool | IsIpv6RecvTclass (void) const |
Ask if the socket is currently passing information about IPv6 Traffic Class up the stack. More... | |
bool | IsRecvPktInfo () const |
Get status indicating whether enable/disable packet information to socket. More... | |
Ptr< Packet > | Recv (void) |
Read a single packet from the socket. More... | |
int | Recv (uint8_t *buf, uint32_t size, uint32_t flags) |
Recv data (or dummy data) from the remote host. More... | |
Ptr< Packet > | RecvFrom (Address &fromAddress) |
Read a single packet from the socket and retrieve the sender address. More... | |
int | RecvFrom (uint8_t *buf, uint32_t size, uint32_t flags, Address &fromAddress) |
Read a single packet from the socket and retrieve the sender address. More... | |
int | Send (Ptr< Packet > p) |
Send data (or dummy data) to the remote host. More... | |
int | Send (const uint8_t *buf, uint32_t size, uint32_t flags) |
Send data (or dummy data) to the remote host. More... | |
int | SendTo (const uint8_t *buf, uint32_t size, uint32_t flags, const Address &address) |
Send data to a specified peer. More... | |
void | SetAcceptCallback (Callback< bool, Ptr< Socket >, const Address & > connectionRequest, Callback< void, Ptr< Socket >, const Address & > newConnectionCreated) |
Accept connection requests from remote hosts. More... | |
void | SetCloseCallbacks (Callback< void, Ptr< Socket > > normalClose, Callback< void, Ptr< Socket > > errorClose) |
Detect socket recv() events such as graceful shutdown or error. More... | |
void | SetConnectCallback (Callback< void, Ptr< Socket > > connectionSucceeded, Callback< void, Ptr< Socket > > connectionFailed) |
Specify callbacks to allow the caller to determine if the connection succeeds of fails. More... | |
void | SetDataSentCallback (Callback< void, Ptr< Socket >, uint32_t > dataSent) |
Notify application when a packet has been sent from transport protocol (non-standard socket call) More... | |
void | SetIpRecvTos (bool ipv4RecvTos) |
Tells a socket to pass information about IP Type of Service up the stack. More... | |
void | SetIpRecvTtl (bool ipv4RecvTtl) |
Tells a socket to pass information about IP_TTL up the stack. More... | |
void | SetIpTos (uint8_t ipTos) |
virtual void | SetIpTtl (uint8_t ipTtl) |
virtual void | SetIpv6HopLimit (uint8_t ipHopLimit) |
void | SetIpv6RecvHopLimit (bool ipv6RecvHopLimit) |
Tells a socket to pass information about IPv6 Hop Limit up the stack. More... | |
void | SetIpv6RecvTclass (bool ipv6RecvTclass) |
Tells a socket to pass information about IPv6 Traffic Class up the stack. More... | |
void | SetIpv6Tclass (int ipTclass) |
void | SetRecvCallback (Callback< void, Ptr< Socket > >) |
Notify application when new data is available to be read. More... | |
void | SetRecvPktInfo (bool flag) |
Enable/Disable receive packet information to socket. More... | |
void | SetSendCallback (Callback< void, Ptr< Socket >, uint32_t > sendCb) |
Notify application when space in transmit buffer is added. More... | |
![]() | |
Object () | |
virtual | ~Object () |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
AggregateIterator | GetAggregateIterator (void) const |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Initialize (void) |
![]() | |
SimpleRefCount () | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
![]() | |
virtual | ~ObjectBase () |
void | GetAttribute (std::string name, AttributeValue &value) const |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
![]() | |
static TypeId | GetTypeId (void) |
![]() | |
static Ptr< Socket > | CreateSocket (Ptr< Node > node, TypeId tid) |
static TypeId | GetTypeId (void) |
![]() | |
static TypeId | GetTypeId (void) |
![]() | |
static void | Cleanup (void) |
![]() | |
static TypeId | GetTypeId (void) |
Protected Member Functions | |
virtual void | AddOptions (TcpHeader &) |
virtual uint16_t | AdvertisedWindowSize (void) |
virtual uint32_t | AvailableWindow (void) |
virtual uint32_t | BytesInFlight (void) |
void | CancelAllTimers (void) |
void | CloseAndNotify (void) |
void | CompleteFork (Ptr< Packet >, const TcpHeader &, const Address &fromAddress, const Address &toAdress) |
void | ConnectionSucceeded (void) |
void | DeallocateEndPoint (void) |
virtual void | DelAckTimeout (void) |
void | Destroy (void) |
void | Destroy6 (void) |
int | DoClose (void) |
int | DoConnect (void) |
virtual void | DoForwardUp (Ptr< Packet > packet, Ipv4Header header, uint16_t port, Ptr< Ipv4Interface > incomingInterface) |
virtual void | DoForwardUp (Ptr< Packet > packet, Ipv6Header header, uint16_t port) |
void | DoPeerClose (void) |
virtual void | DoRetransmit (void) |
virtual void | DupAck (const TcpHeader &t, uint32_t count)=0 |
virtual void | EstimateRtt (const TcpHeader &) |
virtual Ptr< TcpSocketBase > | Fork (void)=0 |
void | ForwardIcmp (Ipv4Address icmpSource, uint8_t icmpTtl, uint8_t icmpType, uint8_t icmpCode, uint32_t icmpInfo) |
void | ForwardIcmp6 (Ipv6Address icmpSource, uint8_t icmpTtl, uint8_t icmpType, uint8_t icmpCode, uint32_t icmpInfo) |
void | ForwardUp (Ptr< Packet > packet, Ipv4Header header, uint16_t port, Ptr< Ipv4Interface > incomingInterface) |
void | ForwardUp6 (Ptr< Packet > packet, Ipv6Header header, uint16_t port) |
virtual bool | GetAllowBroadcast (void) const |
Query whether broadcast datagram transmissions are allowed. More... | |
virtual uint32_t | GetConnCount (void) const |
virtual Time | GetConnTimeout (void) const |
virtual uint32_t | GetDelAckMaxCount (void) const |
virtual Time | GetDelAckTimeout (void) const |
virtual uint32_t | GetInitialCwnd (void) const =0 |
virtual Time | GetPersistTimeout (void) const |
virtual uint32_t | GetRcvBufSize (void) const |
virtual uint32_t | GetSegSize (void) const |
virtual uint32_t | GetSndBufSize (void) const |
virtual uint32_t | GetSSThresh (void) const =0 |
virtual bool | GetTcpNoDelay (void) const |
virtual void | LastAckTimeout (void) |
virtual void | NewAck (SequenceNumber32 const &seq) |
bool | OutOfRange (SequenceNumber32 head, SequenceNumber32 tail) const |
void | PeerClose (Ptr< Packet >, const TcpHeader &) |
virtual void | PersistTimeout (void) |
void | ProcessClosing (Ptr< Packet >, const TcpHeader &) |
void | ProcessEstablished (Ptr< Packet >, const TcpHeader &) |
void | ProcessLastAck (Ptr< Packet >, const TcpHeader &) |
void | ProcessListen (Ptr< Packet >, const TcpHeader &, const Address &, const Address &) |
void | ProcessSynRcvd (Ptr< Packet >, const TcpHeader &, const Address &, const Address &) |
void | ProcessSynSent (Ptr< Packet >, const TcpHeader &) |
void | ProcessWait (Ptr< Packet >, const TcpHeader &) |
virtual void | ReadOptions (const TcpHeader &) |
virtual void | ReceivedAck (Ptr< Packet >, const TcpHeader &) |
virtual void | ReceivedData (Ptr< Packet >, const TcpHeader &) |
virtual void | Retransmit (void) |
virtual void | ReTxTimeout (void) |
uint32_t | SendDataPacket (SequenceNumber32 seq, uint32_t maxSize, bool withAck) |
void | SendEmptyPacket (uint8_t flags) |
bool | SendPendingData (bool withAck=false) |
void | SendRST (void) |
virtual bool | SetAllowBroadcast (bool allowBroadcast) |
Configure whether broadcast datagram transmissions are allowed. More... | |
virtual void | SetConnCount (uint32_t count) |
virtual void | SetConnTimeout (Time timeout) |
virtual void | SetDelAckMaxCount (uint32_t count) |
virtual void | SetDelAckTimeout (Time timeout) |
virtual void | SetInitialCwnd (uint32_t cwnd)=0 |
virtual void | SetPersistTimeout (Time timeout) |
virtual void | SetRcvBufSize (uint32_t size) |
virtual void | SetSegSize (uint32_t size) |
virtual void | SetSndBufSize (uint32_t size) |
virtual void | SetSSThresh (uint32_t threshold)=0 |
virtual void | SetTcpNoDelay (bool noDelay) |
int | SetupCallback (void) |
int | SetupEndpoint (void) |
int | SetupEndpoint6 (void) |
void | TimeWait (void) |
virtual uint32_t | UnAckDataCount (void) |
virtual uint32_t | Window (void) |
![]() | |
virtual void | DoDispose (void) |
bool | IsManualIpTos (void) const |
bool | IsManualIpTtl (void) const |
bool | IsManualIpv6HopLimit (void) const |
bool | IsManualIpv6Tclass (void) const |
void | NotifyConnectionFailed (void) |
bool | NotifyConnectionRequest (const Address &from) |
void | NotifyConnectionSucceeded (void) |
void | NotifyDataRecv (void) |
void | NotifyDataSent (uint32_t size) |
void | NotifyErrorClose (void) |
void | NotifyNewConnectionCreated (Ptr< Socket > socket, const Address &from) |
void | NotifyNormalClose (void) |
void | NotifySend (uint32_t spaceAvailable) |
![]() | |
Object (const Object &o) | |
virtual void | DoInitialize (void) |
virtual void | NotifyNewAggregate (void) |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
Additional Inherited Members | |
![]() | |
enum | SocketErrno { ERROR_NOTERROR, ERROR_ISCONN, ERROR_NOTCONN, ERROR_MSGSIZE, ERROR_AGAIN, ERROR_SHUTDOWN, ERROR_OPNOTSUPP, ERROR_AFNOSUPPORT, ERROR_INVAL, ERROR_BADF, ERROR_NOROUTETOHOST, ERROR_NODEV, ERROR_ADDRNOTAVAIL, ERROR_ADDRINUSE, SOCKET_ERRNO_LAST } |
enum | SocketType { NS3_SOCK_STREAM, NS3_SOCK_SEQPACKET, NS3_SOCK_DGRAM, NS3_SOCK_RAW } |
![]() | |
static const char *const | TcpStateName [LAST_STATE] = { "CLOSED", "LISTEN", "SYN_SENT", "SYN_RCVD", "ESTABLISHED", "CLOSE_WAIT", "LAST_ACK", "FIN_WAIT_1", "FIN_WAIT_2", "CLOSING", "TIME_WAIT" } |
A base class for implementation of a stream socket using TCP.
This class contains the essential components of TCP, as well as a sockets interface for upper layers to call. This serves as a base for other TCP functions where the sliding window mechanism is handled here. This class provides connection orientation and sliding window flow control. Part of this class is modified from the original NS-3 TCP socket implementation (TcpSocketImpl) by Raj Bhattacharjea raj.b of Georgia Tech. @gat ech.e du
ns3::TcpSocketBase is accessible through the following paths with Config::Set and Config::Connect:
Definition at line 61 of file tcp-socket-base.h.
ns3::TcpSocketBase::TcpSocketBase | ( | void | ) |
Create an unbound TCP socket
Definition at line 108 of file tcp-socket-base.cc.
References NS_LOG_FUNCTION.
ns3::TcpSocketBase::TcpSocketBase | ( | const TcpSocketBase & | sock | ) |
Clone a TCP socket, for use upon receiving a connection request in LISTEN state
Definition at line 135 of file tcp-socket-base.cc.
References m_rtt, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::Socket::SetConnectCallback(), ns3::Socket::SetDataSentCallback(), ns3::Socket::SetRecvCallback(), and ns3::Socket::SetSendCallback().
|
virtual |
Definition at line 184 of file tcp-socket-base.cc.
References CancelAllTimers(), m_endPoint, m_endPoint6, m_node, m_tcp, NS_ASSERT, and NS_LOG_FUNCTION.
|
protectedvirtual |
Placeholder function for future extension that changes the TCP header
Definition at line 2429 of file tcp-socket-base.cc.
Referenced by DoForwardUp(), PersistTimeout(), SendDataPacket(), and SendEmptyPacket().
|
protectedvirtual |
Definition at line 2012 of file tcp-socket-base.cc.
References m_maxWinSize, m_rxBuffer, ns3::TcpRxBuffer::MaxBufferSize(), and ns3::TcpRxBuffer::Size().
Referenced by DoForwardUp(), PersistTimeout(), SendDataPacket(), and SendEmptyPacket().
|
protectedvirtual |
Definition at line 2002 of file tcp-socket-base.cc.
References NS_LOG_FUNCTION_NOARGS, NS_LOG_LOGIC, UnAckDataCount(), and Window().
Referenced by SendPendingData().
|
virtual |
Inherit from Socket class: Bind socket to an end-point in TcpL4Protocol
Implements ns3::Socket.
Definition at line 258 of file tcp-socket-base.cc.
References ns3::Socket::ERROR_ADDRNOTAVAIL, m_endPoint, m_errno, m_tcp, NS_LOG_FUNCTION, and SetupCallback().
Referenced by BindToNetDevice(), and Connect().
|
virtual |
Inherit from Socket class: Bind socket (with specific address) to an end-point in TcpL4Protocol
Implements ns3::Socket.
Definition at line 287 of file tcp-socket-base.cc.
References ns3::InetSocketAddress::ConvertFrom(), ns3::Inet6SocketAddress::ConvertFrom(), ns3::Socket::ERROR_ADDRINUSE, ns3::Socket::ERROR_ADDRNOTAVAIL, ns3::Socket::ERROR_INVAL, ns3::Ipv4Address::GetAny(), ns3::Ipv6Address::GetAny(), ns3::InetSocketAddress::GetIpv4(), ns3::Inet6SocketAddress::GetIpv6(), ns3::InetSocketAddress::GetPort(), ns3::Inet6SocketAddress::GetPort(), ns3::InetSocketAddress::IsMatchingType(), ns3::Inet6SocketAddress::IsMatchingType(), m_endPoint, m_endPoint6, m_errno, m_tcp, NS_LOG_FUNCTION, NS_LOG_LOGIC, port, and SetupCallback().
|
virtual |
Allocate a local IPv6 endpoint for this socket.
Implements ns3::Socket.
Definition at line 272 of file tcp-socket-base.cc.
References ns3::Socket::ERROR_ADDRNOTAVAIL, m_endPoint6, m_errno, m_tcp, NS_LOG_FUNCTION, and SetupCallback().
Referenced by Connect().
Inherit from Socket class: Bind this socket to the specified NetDevice
Reimplemented from ns3::Socket.
Definition at line 649 of file tcp-socket-base.cc.
References Bind(), ns3::Ipv4EndPoint::BindToNetDevice(), ns3::Socket::BindToNetDevice(), m_endPoint, m_endPoint6, NS_ASSERT, and NS_LOG_FUNCTION.
|
protectedvirtual |
Definition at line 1988 of file tcp-socket-base.cc.
References ns3::TracedValue< T >::Get(), ns3::TcpTxBuffer::HeadSequence(), m_highTxMark, m_txBuffer, and NS_LOG_FUNCTION.
Referenced by ns3::TcpNewReno::DupAck(), ns3::TcpReno::DupAck(), ns3::TcpNewReno::NewAck(), ns3::TcpNewReno::Retransmit(), and ns3::TcpReno::Retransmit().
|
protected |
Definition at line 2275 of file tcp-socket-base.cc.
References ns3::EventId::Cancel(), m_delAckEvent, m_lastAckEvent, m_persistEvent, m_retxEvent, and m_timewaitEvent.
Referenced by CloseAndNotify(), DeallocateEndPoint(), Destroy(), Destroy6(), TimeWait(), and ~TcpSocketBase().
|
virtual |
Inherit from Socket class: Kill this socket and signal the peer (if any)
Implements ns3::Socket.
Definition at line 446 of file tcp-socket-base.cc.
References DoClose(), m_closeOnEmpty, m_nextTxSequence, m_rxBuffer, m_state, m_txBuffer, NS_LOG_FUNCTION, NS_LOG_INFO, SendRST(), ns3::TcpRxBuffer::Size(), ns3::TcpTxBuffer::SizeFromSequence(), and ns3::TcpSocket::TcpStateName.
Referenced by DoPeerClose().
|
protected |
Peacefully close the socket by notifying the upper layer and deallocate end point
Definition at line 764 of file tcp-socket-base.cc.
References CancelAllTimers(), ns3::CLOSED, DeallocateEndPoint(), m_closeNotified, m_state, ns3::Socket::NotifyNormalClose(), NS_LOG_FUNCTION, NS_LOG_INFO, ns3::TcpSocket::TcpStateName, and ns3::TIME_WAIT.
Referenced by DoClose(), DoConnect(), LastAckTimeout(), ProcessClosing(), ProcessEstablished(), ProcessLastAck(), ProcessSynRcvd(), ProcessSynSent(), ProcessWait(), SendEmptyPacket(), and TimeWait().
|
protected |
This function is called only if a SYN received in LISTEN state. After TcpSocketBase cloned, allocate a new end point to handle the incoming connection and send a SYN+ACK to complete the handshake.
Definition at line 1777 of file tcp-socket-base.cc.
References ns3::TcpHeader::ACK, ns3::InetSocketAddress::ConvertFrom(), ns3::Inet6SocketAddress::ConvertFrom(), ns3::TcpHeader::GetSequenceNumber(), ns3::InetSocketAddress::IsMatchingType(), ns3::Inet6SocketAddress::IsMatchingType(), m_cnCount, m_cnRetries, m_endPoint, m_endPoint6, m_rxBuffer, m_state, m_tcp, NS_LOG_INFO, SendEmptyPacket(), ns3::TcpRxBuffer::SetNextRxSequence(), SetupCallback(), ns3::TcpHeader::SYN, and ns3::SYN_RCVD.
Referenced by ProcessListen().
|
virtual |
Inherit from Socket class: Initiate connection to a remote address:port
Implements ns3::Socket.
Reimplemented in ns3::TcpWestwood, ns3::TcpTahoe, ns3::TcpReno, and ns3::TcpNewReno.
Definition at line 357 of file tcp-socket-base.cc.
References Bind(), Bind6(), ns3::InetSocketAddress::ConvertFrom(), ns3::Inet6SocketAddress::ConvertFrom(), DoConnect(), ns3::Socket::ERROR_INVAL, ns3::InetSocketAddress::GetIpv4(), ns3::Ipv6Address::GetIpv4MappedAddress(), ns3::Inet6SocketAddress::GetIpv6(), ns3::InetSocketAddress::GetPort(), ns3::Inet6SocketAddress::GetPort(), ns3::Ipv6Address::IsIpv4MappedAddress(), ns3::InetSocketAddress::IsMatchingType(), ns3::Inet6SocketAddress::IsMatchingType(), m_cnCount, m_cnRetries, m_endPoint, m_endPoint6, m_errno, m_rtt, NS_ASSERT, NS_LOG_FUNCTION, ns3::Ipv4EndPoint::SetPeer(), ns3::Ipv6EndPoint::SetPeer(), SetupEndpoint(), and SetupEndpoint6().
Referenced by ns3::TcpNewReno::Connect(), ns3::TcpReno::Connect(), ns3::TcpTahoe::Connect(), and ns3::TcpWestwood::Connect().
|
protected |
Definition at line 1810 of file tcp-socket-base.cc.
References GetTxAvailable(), ns3::Socket::NotifyConnectionSucceeded(), and ns3::Socket::NotifySend().
Referenced by ProcessSynSent().
|
protected |
Deallocate the end point and cancel all the timers
Definition at line 1682 of file tcp-socket-base.cc.
References CancelAllTimers(), m_endPoint, m_endPoint6, m_tcp, ns3::Ipv4EndPoint::SetDestroyCallback(), and ns3::Ipv6EndPoint::SetDestroyCallback().
Referenced by CloseAndNotify(), and SendRST().
|
protectedvirtual |
Definition at line 2168 of file tcp-socket-base.cc.
References ns3::TcpHeader::ACK, m_delAckCount, and SendEmptyPacket().
Referenced by ReceivedData().
|
protected |
Kill this socket. This is a callback function configured to m_endpoint in SetupCallback(), invoked when the endpoint is destroyed.
Definition at line 1516 of file tcp-socket-base.cc.
References CancelAllTimers(), ns3::Simulator::GetDelayLeft(), m_endPoint, m_retxEvent, m_tcp, ns3::Simulator::Now(), NS_LOG_FUNCTION, and NS_LOG_LOGIC.
Referenced by SetupCallback().
|
protected |
Kill this socket. This is a callback function configured to m_endpoint in SetupCallback(), invoked when the endpoint is destroyed.
Definition at line 1537 of file tcp-socket-base.cc.
References CancelAllTimers(), ns3::Simulator::GetDelayLeft(), m_endPoint6, m_retxEvent, m_tcp, ns3::Simulator::Now(), NS_LOG_FUNCTION, and NS_LOG_LOGIC.
Referenced by SetupCallback().
|
protected |
Do the action to close the socket. Usually send a packet with appropriate flags depended on the current m_state.
Definition at line 722 of file tcp-socket-base.cc.
References ns3::TcpHeader::ACK, ns3::CLOSE_WAIT, CloseAndNotify(), ns3::CLOSED, ns3::CLOSING, ns3::ESTABLISHED, ns3::TcpHeader::FIN, ns3::FIN_WAIT_1, ns3::FIN_WAIT_2, ns3::LAST_ACK, ns3::LISTEN, m_state, NS_LOG_FUNCTION, NS_LOG_INFO, SendEmptyPacket(), SendRST(), ns3::SYN_RCVD, ns3::SYN_SENT, and ns3::TIME_WAIT.
Referenced by Close().
|
protected |
Perform the real connection tasks: Send SYN if allowed, RST if invalid
Definition at line 699 of file tcp-socket-base.cc.
References ns3::CLOSE_WAIT, CloseAndNotify(), ns3::CLOSED, ns3::LAST_ACK, ns3::LISTEN, m_state, NS_LOG_FUNCTION, NS_LOG_INFO, SendEmptyPacket(), SendRST(), ns3::TcpHeader::SYN, ns3::SYN_SENT, ns3::TcpSocket::TcpStateName, and ns3::TIME_WAIT.
Referenced by Connect().
|
protectedvirtual |
The real function to handle the incoming packet from lower layers. This is wrapped by ForwardUp() so that this function can be overloaded by daughter classes.
Definition at line 848 of file tcp-socket-base.cc.
References ns3::TcpHeader::ACK, AddOptions(), AdvertisedWindowSize(), ns3::EventId::Cancel(), ns3::CLOSE_WAIT, ns3::CLOSED, ns3::CLOSING, ns3::ESTABLISHED, EstimateRtt(), ns3::FIN_WAIT_1, ns3::FIN_WAIT_2, ns3::TracedValue< T >::Get(), ns3::Ipv4Header::GetDestination(), ns3::Ipv4EndPoint::GetLocalAddress(), ns3::Ipv4EndPoint::GetLocalPort(), ns3::Ipv4EndPoint::GetPeerAddress(), ns3::Ipv4EndPoint::GetPeerPort(), ns3::Packet::GetSize(), ns3::Ipv4Header::GetSource(), ns3::LAST_ACK, ns3::LISTEN, ns3::Socket::m_boundnetdevice, m_endPoint, m_nextTxSequence, m_persistEvent, m_rWnd, m_rxBuffer, m_state, m_tcp, ns3::TcpRxBuffer::MaxRxSequence(), ns3::TcpRxBuffer::NextRxSequence(), NS_LOG_LOGIC, OutOfRange(), port, ProcessClosing(), ProcessEstablished(), ProcessLastAck(), ProcessListen(), ProcessSynRcvd(), ProcessSynSent(), ProcessWait(), ns3::TcpHeader::PSH, ReadOptions(), ns3::Packet::RemoveHeader(), ns3::TcpHeader::RST, SendEmptyPacket(), ns3::TcpHeader::SetAckNumber(), ns3::TcpHeader::SetDestinationPort(), ns3::TcpHeader::SetFlags(), ns3::TcpHeader::SetSequenceNumber(), ns3::TcpHeader::SetSourcePort(), ns3::TcpHeader::SetWindowSize(), ns3::SYN_RCVD, ns3::SYN_SENT, ns3::TcpSocket::TcpStateName, ns3::TIME_WAIT, and ns3::TcpHeader::URG.
Referenced by ForwardUp(), and ForwardUp6().
|
protectedvirtual |
Definition at line 944 of file tcp-socket-base.cc.
References ns3::TcpHeader::ACK, AddOptions(), AdvertisedWindowSize(), ns3::EventId::Cancel(), ns3::CLOSE_WAIT, ns3::CLOSED, ns3::CLOSING, ns3::ESTABLISHED, EstimateRtt(), ns3::FIN_WAIT_1, ns3::FIN_WAIT_2, ns3::TracedValue< T >::Get(), ns3::Ipv6Header::GetDestinationAddress(), ns3::Ipv6EndPoint::GetLocalAddress(), ns3::Ipv6EndPoint::GetLocalPort(), ns3::Ipv6EndPoint::GetPeerAddress(), ns3::Ipv6EndPoint::GetPeerPort(), ns3::Packet::GetSize(), ns3::Ipv6Header::GetSourceAddress(), ns3::LAST_ACK, ns3::LISTEN, ns3::Socket::m_boundnetdevice, m_endPoint6, m_nextTxSequence, m_persistEvent, m_rWnd, m_rxBuffer, m_state, m_tcp, ns3::TcpRxBuffer::MaxRxSequence(), ns3::TcpRxBuffer::NextRxSequence(), NS_LOG_LOGIC, OutOfRange(), port, ProcessClosing(), ProcessEstablished(), ProcessLastAck(), ProcessListen(), ProcessSynRcvd(), ProcessSynSent(), ProcessWait(), ns3::TcpHeader::PSH, ReadOptions(), ns3::Packet::RemoveHeader(), ns3::TcpHeader::RST, SendEmptyPacket(), ns3::TcpHeader::SetAckNumber(), ns3::TcpHeader::SetDestinationPort(), ns3::TcpHeader::SetFlags(), ns3::TcpHeader::SetSequenceNumber(), ns3::TcpHeader::SetSourcePort(), ns3::TcpHeader::SetWindowSize(), ns3::SYN_RCVD, ns3::SYN_SENT, ns3::TcpSocket::TcpStateName, ns3::TIME_WAIT, and ns3::TcpHeader::URG.
|
protected |
Received a in-sequence FIN. Close down this socket.
Definition at line 1477 of file tcp-socket-base.cc.
References ns3::TcpHeader::ACK, Close(), ns3::CLOSE_WAIT, ns3::ESTABLISHED, ns3::LAST_ACK, LastAckTimeout(), m_closeNotified, m_lastAckEvent, m_rtt, m_shutdownSend, m_state, ns3::Socket::NotifyNormalClose(), NS_ASSERT, NS_LOG_INFO, NS_LOG_LOGIC, ns3::Simulator::Schedule(), SendEmptyPacket(), ns3::SYN_RCVD, and ns3::TcpSocket::TcpStateName.
Referenced by PeerClose(), and ReceivedData().
|
protectedvirtual |
Definition at line 2241 of file tcp-socket-base.cc.
References ns3::CLOSING, ns3::TcpHeader::FIN, ns3::FIN_WAIT_1, ns3::TcpTxBuffer::HeadSequence(), m_cnCount, m_nextTxSequence, m_segmentSize, m_state, m_txBuffer, ns3::Socket::NotifyConnectionFailed(), NS_LOG_FUNCTION, NS_LOG_LOGIC, SendDataPacket(), SendEmptyPacket(), ns3::TcpTxBuffer::Size(), ns3::TcpHeader::SYN, and ns3::SYN_SENT.
Referenced by ns3::TcpNewReno::DupAck(), ns3::TcpReno::DupAck(), ns3::TcpTahoe::DupAck(), ns3::TcpWestwood::DupAck(), ns3::TcpNewReno::NewAck(), ns3::TcpNewReno::Retransmit(), ns3::TcpReno::Retransmit(), ns3::TcpTahoe::Retransmit(), ns3::TcpWestwood::Retransmit(), and Retransmit().
|
protectedpure virtual |
Implemented in ns3::TcpWestwood, ns3::TcpTahoe, ns3::TcpReno, ns3::TcpNewReno, and ns3::TcpRfc793.
Referenced by ReceivedAck().
|
protectedvirtual |
Called by ForwardUp() to estimate RTT
Reimplemented in ns3::TcpWestwood.
Definition at line 2076 of file tcp-socket-base.cc.
References ns3::TcpHeader::GetAckNumber(), m_lastRtt, m_rtt, and NS_LOG_FUNCTION.
Referenced by DoForwardUp(), and ns3::TcpWestwood::EstimateRtt().
|
protectedpure virtual |
Implemented in ns3::TcpWestwood, ns3::TcpTahoe, ns3::TcpReno, ns3::TcpNewReno, and ns3::TcpRfc793.
Referenced by ProcessListen().
|
protected |
Definition at line 819 of file tcp-socket-base.cc.
References m_icmpCallback, and NS_LOG_FUNCTION.
Referenced by SetupCallback().
|
protected |
Definition at line 832 of file tcp-socket-base.cc.
References m_icmpCallback6, and NS_LOG_FUNCTION.
Referenced by SetupCallback().
|
protected |
Function called by the L3 protocol when it received a packet to pass on to the TCP. This function is registered as the "RxCallback" function in SetupCallback(), which invoked by Bind(), and CompleteFork()
Definition at line 806 of file tcp-socket-base.cc.
References DoForwardUp().
Referenced by SetupCallback().
|
protected |
Definition at line 813 of file tcp-socket-base.cc.
References DoForwardUp().
Referenced by SetupCallback().
|
protectedvirtual |
Query whether broadcast datagram transmissions are allowed.
This method corresponds to using getsockopt() SO_BROADCAST of real network or BSD sockets.
Implements ns3::Socket.
Definition at line 2416 of file tcp-socket-base.cc.
|
protectedvirtual |
Implements ns3::TcpSocket.
Definition at line 2355 of file tcp-socket-base.cc.
References m_cnRetries.
|
protectedvirtual |
Implements ns3::TcpSocket.
Definition at line 2343 of file tcp-socket-base.cc.
References m_cnTimeout.
|
protectedvirtual |
Implements ns3::TcpSocket.
Definition at line 2379 of file tcp-socket-base.cc.
References m_delAckMaxCount.
|
protectedvirtual |
Implements ns3::TcpSocket.
Definition at line 2367 of file tcp-socket-base.cc.
References m_delAckTimeout.
|
virtual |
Inherit from Socket class: Returns error code
Implements ns3::Socket.
Definition at line 236 of file tcp-socket-base.cc.
References m_errno.
|
protectedpure virtual |
Implements ns3::TcpSocket.
Implemented in ns3::TcpWestwood, ns3::TcpTahoe, ns3::TcpReno, ns3::TcpNewReno, and ns3::TcpRfc793.
Inherit from Socket class: Returns associated node
Implements ns3::Socket.
Definition at line 250 of file tcp-socket-base.cc.
References m_node, and NS_LOG_FUNCTION_NOARGS.
|
protectedvirtual |
Implements ns3::TcpSocket.
Definition at line 2403 of file tcp-socket-base.cc.
References m_persistTimeout.
|
protectedvirtual |
Implements ns3::TcpSocket.
Definition at line 2318 of file tcp-socket-base.cc.
References m_rxBuffer, and ns3::TcpRxBuffer::MaxBufferSize().
|
virtual |
Inherit from Socket class: Get the max number of bytes an app can read
Implements ns3::Socket.
Definition at line 619 of file tcp-socket-base.cc.
References ns3::TcpRxBuffer::Available(), m_rxBuffer, and NS_LOG_FUNCTION.
|
protectedvirtual |
Implements ns3::TcpSocket.
Definition at line 2331 of file tcp-socket-base.cc.
References m_segmentSize.
|
protectedvirtual |
Implements ns3::TcpSocket.
Definition at line 2306 of file tcp-socket-base.cc.
References m_txBuffer, and ns3::TcpTxBuffer::MaxBufferSize().
|
virtual |
Inherit from Socket class: Returns socket type, NS3_SOCK_STREAM
Implements ns3::Socket.
Definition at line 243 of file tcp-socket-base.cc.
References ns3::Socket::NS3_SOCK_STREAM.
|
virtual |
Inherit from Socket class: Return local address:port
Implements ns3::Socket.
Definition at line 627 of file tcp-socket-base.cc.
References ns3::Ipv4EndPoint::GetLocalAddress(), ns3::Ipv6EndPoint::GetLocalAddress(), ns3::Ipv4EndPoint::GetLocalPort(), ns3::Ipv6EndPoint::GetLocalPort(), ns3::Ipv4Address::GetZero(), m_endPoint, m_endPoint6, and NS_LOG_FUNCTION.
|
protectedpure virtual |
Implements ns3::TcpSocket.
Implemented in ns3::TcpWestwood, ns3::TcpTahoe, ns3::TcpReno, ns3::TcpNewReno, and ns3::TcpRfc793.
|
protectedvirtual |
Implements ns3::TcpSocket.
Definition at line 2391 of file tcp-socket-base.cc.
References m_noDelay.
|
virtual |
Inherit from Socket class: Get the max number of bytes an app can send
Implements ns3::Socket.
Definition at line 611 of file tcp-socket-base.cc.
References ns3::TcpTxBuffer::Available(), m_txBuffer, and NS_LOG_FUNCTION.
Referenced by ConnectionSucceeded(), NewAck(), and ProcessSynRcvd().
|
static |
Definition at line 60 of file tcp-socket-base.cc.
References m_highTxMark, m_icmpCallback, m_icmpCallback6, m_lastRtt, m_maxWinSize, m_msl, m_nextTxSequence, m_rto, m_rWnd, m_state, ns3::MakeTraceSourceAccessor(), and ns3::TypeId::SetParent().
|
protectedvirtual |
Definition at line 2175 of file tcp-socket-base.cc.
References ns3::EventId::Cancel(), CloseAndNotify(), ns3::LAST_ACK, m_closeNotified, m_lastAckEvent, m_state, and NS_LOG_FUNCTION.
Referenced by DoPeerClose().
|
virtual |
Inherit from Socket class: Listen on the endpoint for an incoming connection
Implements ns3::Socket.
Reimplemented in ns3::TcpWestwood, ns3::TcpTahoe, ns3::TcpReno, and ns3::TcpNewReno.
Definition at line 429 of file tcp-socket-base.cc.
References ns3::CLOSED, ns3::Socket::ERROR_INVAL, ns3::LISTEN, m_errno, m_state, NS_LOG_FUNCTION, and NS_LOG_INFO.
Referenced by ns3::TcpNewReno::Listen(), ns3::TcpReno::Listen(), ns3::TcpTahoe::Listen(), and ns3::TcpWestwood::Listen().
|
protectedvirtual |
Reimplemented in ns3::TcpWestwood, ns3::TcpTahoe, ns3::TcpReno, and ns3::TcpNewReno.
Definition at line 2097 of file tcp-socket-base.cc.
References ns3::EventId::Cancel(), ns3::CLOSING, ns3::TcpTxBuffer::DiscardUpTo(), ns3::FIN_WAIT_1, ns3::TracedValue< T >::Get(), ns3::Simulator::GetDelayLeft(), GetTxAvailable(), ns3::TcpTxBuffer::HeadSequence(), ns3::EventId::IsExpired(), m_connected, m_nextTxSequence, m_persistEvent, m_persistTimeout, m_retxEvent, m_rto, m_rtt, m_rWnd, m_state, m_txBuffer, ns3::Socket::NotifySend(), ns3::Simulator::Now(), NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_LOGIC, PersistTimeout(), ReTxTimeout(), ns3::Simulator::Schedule(), SendPendingData(), ns3::TcpTxBuffer::Size(), and ns3::SYN_RCVD.
Referenced by ns3::TcpNewReno::NewAck(), ns3::TcpReno::NewAck(), ns3::TcpTahoe::NewAck(), ns3::TcpWestwood::NewAck(), and ReceivedAck().
|
protected |
Tell if a sequence number range is out side the range that my rx buffer can accpet
Definition at line 786 of file tcp-socket-base.cc.
References ns3::CLOSE_WAIT, ns3::CLOSING, ns3::LAST_ACK, ns3::LISTEN, m_rxBuffer, m_state, ns3::TcpRxBuffer::MaxRxSequence(), ns3::TcpRxBuffer::NextRxSequence(), ns3::SYN_RCVD, and ns3::SYN_SENT.
Referenced by DoForwardUp().
Peer sent me a FIN. Remember its sequence in rx buffer.
Definition at line 1440 of file tcp-socket-base.cc.
References ns3::CLOSING, DoPeerClose(), ns3::FIN_WAIT_1, ns3::TcpRxBuffer::Finished(), ns3::TcpHeader::GetSequenceNumber(), ns3::Packet::GetSize(), m_rxBuffer, m_state, ns3::TcpRxBuffer::MaxRxSequence(), ns3::TcpRxBuffer::NextRxSequence(), NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC, ReceivedData(), and ns3::TcpRxBuffer::SetFinSequence().
Referenced by ProcessEstablished(), and ProcessSynRcvd().
|
protectedvirtual |
Definition at line 2194 of file tcp-socket-base.cc.
References AddOptions(), AdvertisedWindowSize(), ns3::TcpTxBuffer::CopyFromSequence(), ns3::Ipv4EndPoint::GetLocalAddress(), ns3::Ipv6EndPoint::GetLocalAddress(), ns3::Ipv4EndPoint::GetLocalPort(), ns3::Ipv6EndPoint::GetLocalPort(), ns3::Ipv4EndPoint::GetPeerAddress(), ns3::Ipv6EndPoint::GetPeerAddress(), ns3::Ipv4EndPoint::GetPeerPort(), ns3::Ipv6EndPoint::GetPeerPort(), ns3::Socket::m_boundnetdevice, m_endPoint, m_endPoint6, m_nextTxSequence, m_persistEvent, m_persistTimeout, m_rxBuffer, m_tcp, m_txBuffer, ns3::TcpRxBuffer::NextRxSequence(), ns3::Simulator::Now(), NS_LOG_LOGIC, ns3::Simulator::Schedule(), ns3::TcpHeader::SetAckNumber(), ns3::TcpHeader::SetDestinationPort(), ns3::TcpHeader::SetSequenceNumber(), ns3::TcpHeader::SetSourcePort(), and ns3::TcpHeader::SetWindowSize().
Referenced by NewAck().
|
protected |
Received a packet upon CLOSING
Definition at line 1372 of file tcp-socket-base.cc.
References ns3::TcpHeader::ACK, CloseAndNotify(), ns3::TcpHeader::FIN, ns3::TcpHeader::GetFlags(), ns3::TcpHeader::GetSequenceNumber(), m_rxBuffer, ns3::TcpRxBuffer::NextRxSequence(), NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::TcpHeader::PSH, ns3::TcpHeader::RST, SendEmptyPacket(), SendRST(), TimeWait(), and ns3::TcpHeader::URG.
Referenced by DoForwardUp().
|
protected |
Received a packet upon ESTABLISHED state. This function is mimicking the role of tcp_rcv_established() in tcp_input.c in Linux kernel.
Definition at line 1041 of file tcp-socket-base.cc.
References ns3::TcpHeader::ACK, CloseAndNotify(), ns3::TcpHeader::FIN, ns3::TcpRxBuffer::Finished(), ns3::TcpHeader::GetFlags(), m_rxBuffer, NS_LOG_FUNCTION, NS_LOG_LOGIC, PeerClose(), ns3::TcpHeader::PSH, ReceivedAck(), ReceivedData(), ns3::TcpHeader::RST, SendRST(), ns3::TcpHeader::SYN, and ns3::TcpHeader::URG.
Referenced by DoForwardUp().
|
protected |
Received a packet upon LAST_ACK
Definition at line 1404 of file tcp-socket-base.cc.
References ns3::TcpHeader::ACK, CloseAndNotify(), ns3::TcpHeader::FIN, ns3::TcpHeader::GetFlags(), ns3::TcpHeader::GetSequenceNumber(), m_rxBuffer, ns3::TcpRxBuffer::NextRxSequence(), NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::TcpHeader::PSH, ReceivedData(), ns3::TcpHeader::RST, SendEmptyPacket(), SendRST(), and ns3::TcpHeader::URG.
Referenced by DoForwardUp().
|
protected |
Received a packet upon LISTEN state.
Definition at line 1123 of file tcp-socket-base.cc.
References CompleteFork(), Fork(), ns3::TcpHeader::GetFlags(), ns3::Socket::NotifyConnectionRequest(), NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::TcpHeader::PSH, ns3::Simulator::ScheduleNow(), ns3::TcpHeader::SYN, and ns3::TcpHeader::URG.
Referenced by DoForwardUp().
|
protected |
Received a packet upon SYN_RCVD
Definition at line 1211 of file tcp-socket-base.cc.
References ns3::TcpHeader::ACK, ns3::EventId::Cancel(), CloseAndNotify(), ns3::InetSocketAddress::ConvertFrom(), ns3::Inet6SocketAddress::ConvertFrom(), ns3::ESTABLISHED, ns3::TcpHeader::FIN, ns3::TcpHeader::GetAckNumber(), ns3::TcpHeader::GetFlags(), ns3::TcpHeader::GetSequenceNumber(), GetTxAvailable(), m_connected, m_delAckCount, m_delAckMaxCount, m_endPoint, m_endPoint6, m_highTxMark, m_nextTxSequence, m_retxEvent, m_rxBuffer, m_state, m_txBuffer, ns3::TcpRxBuffer::NextRxSequence(), ns3::Socket::NotifyNewConnectionCreated(), ns3::Socket::NotifySend(), NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC, PeerClose(), ns3::TcpHeader::PSH, ReceivedAck(), ns3::TcpHeader::RST, SendEmptyPacket(), SendRST(), ns3::TcpTxBuffer::SetHeadSequence(), ns3::TcpRxBuffer::SetNextRxSequence(), ns3::Ipv4EndPoint::SetPeer(), ns3::Ipv6EndPoint::SetPeer(), ns3::TcpHeader::SYN, and ns3::TcpHeader::URG.
Referenced by DoForwardUp().
|
protected |
Received a packet upon SYN_SENT
Definition at line 1153 of file tcp-socket-base.cc.
References ns3::TcpHeader::ACK, ns3::EventId::Cancel(), CloseAndNotify(), ConnectionSucceeded(), ns3::ESTABLISHED, ns3::TcpHeader::GetAckNumber(), ns3::TcpHeader::GetFlags(), ns3::TcpHeader::GetSequenceNumber(), m_cnCount, m_cnRetries, m_connected, m_delAckCount, m_delAckMaxCount, m_highTxMark, m_nextTxSequence, m_retxEvent, m_rxBuffer, m_state, m_txBuffer, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC, ns3::TcpHeader::PSH, ReceivedData(), ns3::TcpHeader::RST, ns3::Simulator::ScheduleNow(), SendEmptyPacket(), SendPendingData(), SendRST(), ns3::TcpTxBuffer::SetHeadSequence(), ns3::TcpRxBuffer::SetNextRxSequence(), ns3::TcpHeader::SYN, ns3::SYN_RCVD, and ns3::TcpHeader::URG.
Referenced by DoForwardUp().
|
protected |
Received a packet upon CLOSE_WAIT, FIN_WAIT_1, or FIN_WAIT_2 states
Definition at line 1301 of file tcp-socket-base.cc.
References ns3::TcpHeader::ACK, CloseAndNotify(), ns3::CLOSING, ns3::TcpHeader::FIN, ns3::FIN_WAIT_1, ns3::FIN_WAIT_2, ns3::TcpRxBuffer::Finished(), ns3::TcpHeader::GetAckNumber(), ns3::TcpHeader::GetFlags(), ns3::TcpHeader::GetSequenceNumber(), ns3::Packet::GetSize(), m_highTxMark, m_rxBuffer, m_shutdownRecv, m_state, m_txBuffer, ns3::Socket::NotifyDataRecv(), NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC, ns3::TcpHeader::PSH, ReceivedAck(), ReceivedData(), ns3::TcpHeader::RST, SendEmptyPacket(), SendRST(), ns3::TcpRxBuffer::SetFinSequence(), ns3::TcpTxBuffer::Size(), ns3::TcpHeader::SYN, TimeWait(), and ns3::TcpHeader::URG.
Referenced by DoForwardUp().
|
protectedvirtual |
Placeholder function for future extension that reads more from the TCP header
Definition at line 2423 of file tcp-socket-base.cc.
Referenced by DoForwardUp().
|
protectedvirtual |
Process the newly received ACK
Reimplemented in ns3::TcpWestwood.
Definition at line 1086 of file tcp-socket-base.cc.
References ns3::TcpHeader::ACK, DupAck(), ns3::TcpHeader::GetAckNumber(), ns3::TcpHeader::GetFlags(), ns3::Packet::GetSize(), ns3::TcpTxBuffer::HeadSequence(), m_dupAckCount, m_nextTxSequence, m_txBuffer, NewAck(), NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_LOGIC, and ReceivedData().
Referenced by ProcessEstablished(), ProcessSynRcvd(), ProcessWait(), and ns3::TcpWestwood::ReceivedAck().
|
protectedvirtual |
Definition at line 2019 of file tcp-socket-base.cc.
References ns3::TcpHeader::ACK, ns3::TcpRxBuffer::Add(), ns3::TcpRxBuffer::Available(), ns3::EventId::Cancel(), DelAckTimeout(), DoPeerClose(), ns3::TcpHeader::FIN, ns3::TcpRxBuffer::Finished(), ns3::TcpHeader::GetAckNumber(), ns3::Simulator::GetDelayLeft(), ns3::TcpHeader::GetFlags(), ns3::TcpHeader::GetSequenceNumber(), ns3::Packet::GetSize(), ns3::EventId::IsExpired(), m_closeNotified, m_delAckCount, m_delAckEvent, m_delAckMaxCount, m_delAckTimeout, m_rxBuffer, m_shutdownRecv, ns3::TcpRxBuffer::NextRxSequence(), ns3::Socket::NotifyDataRecv(), ns3::Simulator::Now(), NS_LOG_FUNCTION, NS_LOG_LOGIC, NS_LOG_WARN, ns3::Simulator::Schedule(), SendEmptyPacket(), and ns3::TcpRxBuffer::Size().
Referenced by PeerClose(), ProcessEstablished(), ProcessLastAck(), ProcessSynSent(), ProcessWait(), and ReceivedAck().
Inherit from Socket class: Return data to upper-layer application. Parameter flags is not used. Data is returned as a packet of size no larger than maxSize
Implements ns3::Socket.
Definition at line 559 of file tcp-socket-base.cc.
References ns3::Packet::AddPacketTag(), ns3::CLOSE_WAIT, ns3::TcpRxBuffer::Extract(), ns3::Ipv4EndPoint::GetPeerAddress(), ns3::Ipv6EndPoint::GetPeerAddress(), ns3::Ipv4EndPoint::GetPeerPort(), ns3::Ipv6EndPoint::GetPeerPort(), ns3::Packet::GetSize(), m_endPoint, m_endPoint6, m_rxBuffer, m_state, NS_ABORT_MSG_IF, NS_LOG_FUNCTION, ns3::SocketAddressTag::SetAddress(), and ns3::TcpRxBuffer::Size().
|
virtual |
Inherit from Socket class: Recv and return the remote's address
Implements ns3::Socket.
Definition at line 586 of file tcp-socket-base.cc.
References ns3::Ipv4EndPoint::GetPeerAddress(), ns3::Ipv6EndPoint::GetPeerAddress(), ns3::Ipv4EndPoint::GetPeerPort(), ns3::Ipv6EndPoint::GetPeerPort(), ns3::Packet::GetSize(), ns3::Ipv4Address::GetZero(), m_endPoint, m_endPoint6, NS_LOG_FUNCTION, and ns3::Socket::Recv().
|
protectedvirtual |
Reimplemented in ns3::TcpWestwood, ns3::TcpTahoe, ns3::TcpReno, and ns3::TcpNewReno.
Definition at line 2232 of file tcp-socket-base.cc.
References DoRetransmit(), ns3::TcpTxBuffer::HeadSequence(), m_dupAckCount, m_nextTxSequence, m_rtt, and m_txBuffer.
Referenced by ReTxTimeout().
|
protectedvirtual |
Definition at line 2149 of file tcp-socket-base.cc.
References ns3::CLOSED, ns3::ESTABLISHED, ns3::TcpTxBuffer::HeadSequence(), m_highTxMark, m_state, m_txBuffer, ns3::Simulator::Now(), NS_LOG_FUNCTION, NS_LOG_LOGIC, Retransmit(), and ns3::TIME_WAIT.
Referenced by NewAck(), and SendDataPacket().
Inherit from Socket class: Send a packet. Parameter flags is not used. Packet has no TCP header. Invoked by upper-layer application
Implements ns3::Socket.
Definition at line 517 of file tcp-socket-base.cc.
References ns3::TcpTxBuffer::Add(), ns3::CLOSE_WAIT, ns3::Socket::ERROR_MSGSIZE, ns3::Socket::ERROR_NOTCONN, ns3::Socket::ERROR_SHUTDOWN, ns3::ESTABLISHED, ns3::Packet::GetSize(), m_connected, m_errno, m_shutdownSend, m_state, m_txBuffer, NS_ABORT_MSG_IF, NS_LOG_FUNCTION, NS_LOG_LOGIC, SendPendingData(), ns3::TcpTxBuffer::Size(), ns3::SYN_SENT, and ns3::TcpSocket::TcpStateName.
Referenced by SendTo().
|
protected |
Extract at most maxSize bytes from the TxBuffer at sequence seq, add the TCP header, and send to TcpL4Protocol
Definition at line 1826 of file tcp-socket-base.cc.
References ns3::TcpHeader::ACK, AddOptions(), ns3::Packet::AddPacketTag(), AdvertisedWindowSize(), ns3::CLOSE_WAIT, ns3::TcpTxBuffer::CopyFromSequence(), ns3::ESTABLISHED, ns3::TcpHeader::FIN, ns3::FIN_WAIT_1, ns3::TracedValue< T >::Get(), ns3::Socket::GetIpTos(), ns3::Socket::GetIpTtl(), ns3::Socket::GetIpv6HopLimit(), ns3::Socket::GetIpv6Tclass(), ns3::Ipv4EndPoint::GetLocalAddress(), ns3::Ipv6EndPoint::GetLocalAddress(), ns3::Ipv4EndPoint::GetLocalPort(), ns3::Ipv6EndPoint::GetLocalPort(), ns3::Ipv4EndPoint::GetPeerAddress(), ns3::Ipv6EndPoint::GetPeerAddress(), ns3::Ipv4EndPoint::GetPeerPort(), ns3::Ipv6EndPoint::GetPeerPort(), ns3::Packet::GetSize(), ns3::EventId::IsExpired(), ns3::Socket::IsManualIpTos(), ns3::Socket::IsManualIpTtl(), ns3::Socket::IsManualIpv6HopLimit(), ns3::Socket::IsManualIpv6Tclass(), ns3::LAST_ACK, ns3::Socket::m_boundnetdevice, m_closeOnEmpty, m_endPoint, m_endPoint6, m_highTxMark, m_nextTxSequence, m_retxEvent, m_rto, m_rtt, m_rxBuffer, m_state, m_tcp, m_txBuffer, ns3::TcpRxBuffer::NextRxSequence(), ns3::Socket::NotifyDataSent(), ns3::Simulator::Now(), NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC, ReTxTimeout(), ns3::Simulator::Schedule(), ns3::Simulator::ScheduleNow(), ns3::TcpHeader::SetAckNumber(), ns3::TcpHeader::SetDestinationPort(), ns3::TcpHeader::SetFlags(), ns3::SocketIpv6HopLimitTag::SetHopLimit(), ns3::TcpHeader::SetSequenceNumber(), ns3::TcpHeader::SetSourcePort(), ns3::SocketIpv6TclassTag::SetTclass(), ns3::SocketIpTosTag::SetTos(), ns3::SocketIpTtlTag::SetTtl(), ns3::TcpHeader::SetWindowSize(), and ns3::TcpTxBuffer::SizeFromSequence().
Referenced by DoRetransmit(), ns3::TcpNewReno::DupAck(), and SendPendingData().
|
protected |
Send an empty packet with specified TCP flags
Definition at line 1557 of file tcp-socket-base.cc.
References ns3::TcpHeader::ACK, AddOptions(), ns3::Packet::AddPacketTag(), AdvertisedWindowSize(), ns3::EventId::Cancel(), CloseAndNotify(), ns3::CLOSING, ns3::TcpHeader::FIN, ns3::FIN_WAIT_1, ns3::Socket::GetIpTos(), ns3::Socket::GetIpTtl(), ns3::Socket::GetIpv6HopLimit(), ns3::Socket::GetIpv6Tclass(), ns3::Ipv4EndPoint::GetLocalAddress(), ns3::Ipv6EndPoint::GetLocalAddress(), ns3::Ipv4EndPoint::GetLocalPort(), ns3::Ipv6EndPoint::GetLocalPort(), ns3::Ipv4EndPoint::GetPeerAddress(), ns3::Ipv6EndPoint::GetPeerAddress(), ns3::Ipv4EndPoint::GetPeerPort(), ns3::Ipv6EndPoint::GetPeerPort(), ns3::EventId::IsExpired(), ns3::Socket::IsManualIpTos(), ns3::Socket::IsManualIpTtl(), ns3::Socket::IsManualIpv6HopLimit(), ns3::Socket::IsManualIpv6Tclass(), ns3::LAST_ACK, ns3::Socket::m_boundnetdevice, m_cnCount, m_cnRetries, m_cnTimeout, m_delAckCount, m_delAckEvent, m_endPoint, m_endPoint6, m_nextTxSequence, m_retxEvent, m_rto, m_rtt, m_rxBuffer, m_state, m_tcp, ns3::TcpRxBuffer::NextRxSequence(), ns3::Simulator::Now(), NS_LOG_FUNCTION, NS_LOG_LOGIC, NS_LOG_WARN, s, ns3::Simulator::Schedule(), ns3::SocketIpv6HopLimitTag::SetHopLimit(), ns3::SocketIpv6TclassTag::SetTclass(), ns3::SocketIpTosTag::SetTos(), ns3::SocketIpTtlTag::SetTtl(), and ns3::TcpHeader::SYN.
Referenced by CompleteFork(), DelAckTimeout(), DoClose(), DoConnect(), DoForwardUp(), DoPeerClose(), DoRetransmit(), ProcessClosing(), ProcessLastAck(), ProcessSynRcvd(), ProcessSynSent(), ProcessWait(), ReceivedData(), SendRST(), and ShutdownSend().
|
protected |
Send as much pending data as possible according to the Tx window. Note that this function did not implement the PSH flag
Definition at line 1933 of file tcp-socket-base.cc.
References AvailableWindow(), ns3::TcpTxBuffer::HeadSequence(), m_endPoint, m_endPoint6, m_nextTxSequence, m_noDelay, m_rWnd, m_segmentSize, m_shutdownSend, m_txBuffer, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC, s, SendDataPacket(), ns3::TcpTxBuffer::Size(), ns3::TcpTxBuffer::SizeFromSequence(), UnAckDataCount(), and visualizer.higcontainer::w.
Referenced by ns3::TcpNewReno::DupAck(), ns3::TcpReno::DupAck(), ns3::TcpWestwood::DupAck(), NewAck(), ProcessSynSent(), and Send().
|
protected |
This function closes the endpoint completely. Called upon RST_TX action.
Definition at line 1672 of file tcp-socket-base.cc.
References DeallocateEndPoint(), ns3::Socket::NotifyErrorClose(), NS_LOG_FUNCTION, ns3::TcpHeader::RST, and SendEmptyPacket().
Referenced by Close(), DoClose(), DoConnect(), ProcessClosing(), ProcessEstablished(), ProcessLastAck(), ProcessSynRcvd(), ProcessSynSent(), and ProcessWait().
Inherit from Socket class: In TcpSocketBase, it is same as Send() call
Implements ns3::Socket.
Definition at line 551 of file tcp-socket-base.cc.
References Send().
|
protectedvirtual |
Configure whether broadcast datagram transmissions are allowed.
This method corresponds to using setsockopt() SO_BROADCAST of real network or BSD sockets. If set on a socket, this option will enable or disable packets to be transmitted to broadcast destination addresses.
allowBroadcast | Whether broadcast is allowed |
Implements ns3::Socket.
Definition at line 2409 of file tcp-socket-base.cc.
|
protectedvirtual |
Implements ns3::TcpSocket.
Definition at line 2349 of file tcp-socket-base.cc.
References m_cnRetries.
|
protectedvirtual |
Implements ns3::TcpSocket.
Definition at line 2337 of file tcp-socket-base.cc.
References m_cnTimeout, and timeout.
|
protectedvirtual |
Implements ns3::TcpSocket.
Definition at line 2373 of file tcp-socket-base.cc.
References m_delAckMaxCount.
Referenced by ns3::TcpRfc793::TcpRfc793().
|
protectedvirtual |
Implements ns3::TcpSocket.
Definition at line 2361 of file tcp-socket-base.cc.
References m_delAckTimeout, and timeout.
|
protectedpure virtual |
Implements ns3::TcpSocket.
Implemented in ns3::TcpWestwood, ns3::TcpTahoe, ns3::TcpReno, ns3::TcpNewReno, and ns3::TcpRfc793.
Associate a node with this TCP socket
Definition at line 215 of file tcp-socket-base.cc.
References m_node.
Referenced by ns3::TcpL4Protocol::CreateSocket().
|
protectedvirtual |
Implements ns3::TcpSocket.
Definition at line 2397 of file tcp-socket-base.cc.
References m_persistTimeout, and timeout.
|
protectedvirtual |
Implements ns3::TcpSocket.
Definition at line 2312 of file tcp-socket-base.cc.
References m_rxBuffer, and ns3::TcpRxBuffer::SetMaxBufferSize().
|
virtual |
Set an RTT estimator with this socket
Definition at line 229 of file tcp-socket-base.cc.
References m_rtt.
|
protectedvirtual |
Implements ns3::TcpSocket.
Reimplemented in ns3::TcpWestwood, ns3::TcpTahoe, ns3::TcpReno, and ns3::TcpNewReno.
Definition at line 2324 of file tcp-socket-base.cc.
References ns3::CLOSED, m_segmentSize, m_state, and NS_ABORT_MSG_UNLESS.
|
protectedvirtual |
Below are the attribute get/set functions
Implements ns3::TcpSocket.
Definition at line 2300 of file tcp-socket-base.cc.
References m_txBuffer, and ns3::TcpTxBuffer::SetMaxBufferSize().
|
protectedpure virtual |
Implements ns3::TcpSocket.
Implemented in ns3::TcpWestwood, ns3::TcpTahoe, ns3::TcpReno, ns3::TcpNewReno, and ns3::TcpRfc793.
|
virtual |
Associate the L4 protocol (e.g. mux/demux) with this socket
Definition at line 222 of file tcp-socket-base.cc.
References m_tcp.
|
protectedvirtual |
Implements ns3::TcpSocket.
Definition at line 2385 of file tcp-socket-base.cc.
References m_noDelay.
|
protected |
Clean up after Bind. Set up callback functions in the end-point.
Definition at line 673 of file tcp-socket-base.cc.
References Destroy(), Destroy6(), ForwardIcmp(), ForwardIcmp6(), ForwardUp(), ForwardUp6(), m_endPoint, m_endPoint6, ns3::MakeCallback(), NS_LOG_FUNCTION, ns3::Ipv4EndPoint::SetDestroyCallback(), ns3::Ipv6EndPoint::SetDestroyCallback(), ns3::Ipv4EndPoint::SetIcmpCallback(), ns3::Ipv6EndPoint::SetIcmpCallback(), ns3::Ipv4EndPoint::SetRxCallback(), and ns3::Ipv6EndPoint::SetRxCallback().
Referenced by Bind(), Bind6(), and CompleteFork().
|
protected |
Configure the endpoint to a local address. Called by Connect() if Bind() didn't specify one.
Definition at line 1714 of file tcp-socket-base.cc.
References ns3::Object::GetObject(), ns3::Ipv4EndPoint::GetPeerAddress(), ns3::Ipv4Route::GetSource(), ns3::Socket::m_boundnetdevice, m_endPoint, m_errno, m_node, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_ERROR, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::Ipv4Header::SetDestination(), and ns3::Ipv4EndPoint::SetLocalAddress().
Referenced by Connect().
|
protected |
Definition at line 1744 of file tcp-socket-base.cc.
References ns3::Object::GetObject(), ns3::Ipv6EndPoint::GetPeerAddress(), ns3::Socket::m_boundnetdevice, m_endPoint6, m_errno, m_node, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_ERROR, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::Ipv6Header::SetDestinationAddress(), and ns3::Ipv6EndPoint::SetLocalAddress().
Referenced by Connect().
|
virtual |
Inherit from Socket class: Signal a termination of receive
Implements ns3::Socket.
Definition at line 507 of file tcp-socket-base.cc.
References m_shutdownRecv, and NS_LOG_FUNCTION.
|
virtual |
Inherit from Socket class: Signal a termination of send
Implements ns3::Socket.
Definition at line 473 of file tcp-socket-base.cc.
References ns3::CLOSE_WAIT, ns3::ESTABLISHED, ns3::TcpHeader::FIN, ns3::FIN_WAIT_1, ns3::LAST_ACK, m_closeOnEmpty, m_shutdownSend, m_state, m_txBuffer, NS_LOG_FUNCTION, NS_LOG_INFO, SendEmptyPacket(), and ns3::TcpTxBuffer::Size().
|
protected |
Move TCP to Time_Wait state and schedule a transition to Closed state
Definition at line 2286 of file tcp-socket-base.cc.
References CancelAllTimers(), CloseAndNotify(), m_msl, m_state, m_timewaitEvent, NS_LOG_INFO, ns3::Simulator::Schedule(), ns3::TcpSocket::TcpStateName, and ns3::TIME_WAIT.
Referenced by ProcessClosing(), and ProcessWait().
|
protectedvirtual |
Definition at line 1981 of file tcp-socket-base.cc.
References ns3::TracedValue< T >::Get(), ns3::TcpTxBuffer::HeadSequence(), m_nextTxSequence, m_txBuffer, and NS_LOG_FUNCTION.
Referenced by AvailableWindow(), and SendPendingData().
|
protectedvirtual |
Reimplemented in ns3::TcpWestwood, ns3::TcpTahoe, ns3::TcpReno, and ns3::TcpNewReno.
Definition at line 1995 of file tcp-socket-base.cc.
References m_rWnd, and NS_LOG_FUNCTION.
Referenced by AvailableWindow().
|
protected |
Definition at line 232 of file tcp-socket-base.h.
Referenced by CloseAndNotify(), DoPeerClose(), LastAckTimeout(), and ReceivedData().
|
protected |
Definition at line 233 of file tcp-socket-base.h.
Referenced by Close(), SendDataPacket(), and ShutdownSend().
|
protected |
Definition at line 204 of file tcp-socket-base.h.
Referenced by CompleteFork(), Connect(), DoRetransmit(), ProcessSynSent(), and SendEmptyPacket().
|
protected |
Definition at line 205 of file tcp-socket-base.h.
Referenced by CompleteFork(), Connect(), GetConnCount(), ProcessSynSent(), SendEmptyPacket(), and SetConnCount().
|
protected |
Definition at line 210 of file tcp-socket-base.h.
Referenced by GetConnTimeout(), SendEmptyPacket(), and SetConnTimeout().
|
protected |
Definition at line 236 of file tcp-socket-base.h.
Referenced by ns3::TcpNewReno::DupAck(), ns3::TcpReno::DupAck(), ns3::TcpWestwood::DupAck(), NewAck(), ProcessSynRcvd(), ProcessSynSent(), and Send().
|
protected |
Definition at line 201 of file tcp-socket-base.h.
Referenced by DelAckTimeout(), ProcessSynRcvd(), ProcessSynSent(), ReceivedData(), and SendEmptyPacket().
|
protected |
Definition at line 197 of file tcp-socket-base.h.
Referenced by CancelAllTimers(), ReceivedData(), and SendEmptyPacket().
|
protected |
Definition at line 202 of file tcp-socket-base.h.
Referenced by GetDelAckMaxCount(), ProcessSynRcvd(), ProcessSynSent(), ReceivedData(), and SetDelAckMaxCount().
|
protected |
Definition at line 208 of file tcp-socket-base.h.
Referenced by GetDelAckTimeout(), ReceivedData(), and SetDelAckTimeout().
|
protected |
Definition at line 200 of file tcp-socket-base.h.
Referenced by ReceivedAck(), and Retransmit().
|
protected |
Definition at line 213 of file tcp-socket-base.h.
Referenced by Bind(), BindToNetDevice(), CompleteFork(), Connect(), DeallocateEndPoint(), Destroy(), DoForwardUp(), GetSockName(), PersistTimeout(), ProcessSynRcvd(), Recv(), RecvFrom(), SendDataPacket(), SendEmptyPacket(), SendPendingData(), SetupCallback(), SetupEndpoint(), and ~TcpSocketBase().
|
protected |
Definition at line 214 of file tcp-socket-base.h.
Referenced by Bind(), Bind6(), BindToNetDevice(), CompleteFork(), Connect(), DeallocateEndPoint(), Destroy6(), DoForwardUp(), GetSockName(), PersistTimeout(), ProcessSynRcvd(), Recv(), RecvFrom(), SendDataPacket(), SendEmptyPacket(), SendPendingData(), SetupCallback(), SetupEndpoint6(), and ~TcpSocketBase().
|
protected |
Definition at line 231 of file tcp-socket-base.h.
Referenced by Bind(), Bind6(), Connect(), GetErrno(), Listen(), Send(), SetupEndpoint(), and SetupEndpoint6().
|
protected |
Definition at line 225 of file tcp-socket-base.h.
Referenced by BytesInFlight(), ns3::TcpNewReno::DupAck(), GetTypeId(), ProcessSynRcvd(), ProcessSynSent(), ProcessWait(), ns3::TcpNewReno::Retransmit(), ns3::TcpReno::Retransmit(), ns3::TcpTahoe::Retransmit(), ReTxTimeout(), and SendDataPacket().
|
protected |
Definition at line 217 of file tcp-socket-base.h.
Referenced by ForwardIcmp(), and GetTypeId().
|
protected |
Definition at line 218 of file tcp-socket-base.h.
Referenced by ForwardIcmp6(), and GetTypeId().
|
protected |
Definition at line 196 of file tcp-socket-base.h.
Referenced by CancelAllTimers(), DoPeerClose(), and LastAckTimeout().
|
protected |
Definition at line 207 of file tcp-socket-base.h.
Referenced by ns3::TcpWestwood::EstimateRtt(), EstimateRtt(), and GetTypeId().
|
protected |
Definition at line 241 of file tcp-socket-base.h.
Referenced by AdvertisedWindowSize(), and GetTypeId().
|
protected |
Definition at line 237 of file tcp-socket-base.h.
Referenced by GetTypeId(), and TimeWait().
|
protected |
Definition at line 224 of file tcp-socket-base.h.
Referenced by Close(), DoForwardUp(), DoRetransmit(), ns3::TcpNewReno::DupAck(), ns3::TcpTahoe::DupAck(), GetTypeId(), NewAck(), PersistTimeout(), ProcessSynRcvd(), ProcessSynSent(), ReceivedAck(), ns3::TcpNewReno::Retransmit(), ns3::TcpReno::Retransmit(), ns3::TcpTahoe::Retransmit(), ns3::TcpWestwood::Retransmit(), Retransmit(), SendDataPacket(), SendEmptyPacket(), SendPendingData(), and UnAckDataCount().
Definition at line 215 of file tcp-socket-base.h.
Referenced by GetNode(), SetNode(), SetupEndpoint(), SetupEndpoint6(), and ~TcpSocketBase().
|
protected |
Definition at line 203 of file tcp-socket-base.h.
Referenced by GetTcpNoDelay(), SendPendingData(), and SetTcpNoDelay().
|
protected |
Definition at line 198 of file tcp-socket-base.h.
Referenced by CancelAllTimers(), DoForwardUp(), NewAck(), and PersistTimeout().
|
protected |
Definition at line 209 of file tcp-socket-base.h.
Referenced by GetPersistTimeout(), NewAck(), PersistTimeout(), and SetPersistTimeout().
|
protected |
Definition at line 195 of file tcp-socket-base.h.
Referenced by CancelAllTimers(), Destroy(), Destroy6(), NewAck(), ProcessSynRcvd(), ProcessSynSent(), SendDataPacket(), and SendEmptyPacket().
|
protected |
Definition at line 206 of file tcp-socket-base.h.
Referenced by GetTypeId(), NewAck(), SendDataPacket(), and SendEmptyPacket().
|
protected |
Definition at line 221 of file tcp-socket-base.h.
Referenced by Connect(), DoPeerClose(), EstimateRtt(), NewAck(), ns3::TcpNewReno::Retransmit(), ns3::TcpReno::Retransmit(), ns3::TcpTahoe::Retransmit(), ns3::TcpWestwood::Retransmit(), Retransmit(), SendDataPacket(), SendEmptyPacket(), SetRtt(), and TcpSocketBase().
|
protected |
Definition at line 242 of file tcp-socket-base.h.
Referenced by DoForwardUp(), GetTypeId(), NewAck(), SendPendingData(), ns3::TcpNewReno::Window(), ns3::TcpReno::Window(), ns3::TcpTahoe::Window(), ns3::TcpWestwood::Window(), and Window().
|
protected |
Definition at line 226 of file tcp-socket-base.h.
Referenced by AdvertisedWindowSize(), Close(), CompleteFork(), DoForwardUp(), GetRcvBufSize(), GetRxAvailable(), OutOfRange(), PeerClose(), PersistTimeout(), ProcessClosing(), ProcessEstablished(), ProcessLastAck(), ProcessSynRcvd(), ProcessSynSent(), ProcessWait(), ReceivedData(), Recv(), SendDataPacket(), SendEmptyPacket(), and SetRcvBufSize().
|
protected |
Definition at line 240 of file tcp-socket-base.h.
Referenced by ns3::TcpWestwood::CountAck(), DoRetransmit(), ns3::TcpNewReno::DupAck(), ns3::TcpReno::DupAck(), ns3::TcpTahoe::DupAck(), ns3::TcpWestwood::DupAck(), ns3::TcpWestwood::EstimateBW(), GetSegSize(), ns3::TcpNewReno::InitializeCwnd(), ns3::TcpReno::InitializeCwnd(), ns3::TcpTahoe::InitializeCwnd(), ns3::TcpWestwood::InitializeCwnd(), ns3::TcpNewReno::NewAck(), ns3::TcpReno::NewAck(), ns3::TcpTahoe::NewAck(), ns3::TcpWestwood::NewAck(), ns3::TcpNewReno::Retransmit(), ns3::TcpReno::Retransmit(), ns3::TcpTahoe::Retransmit(), ns3::TcpWestwood::Retransmit(), SendPendingData(), ns3::TcpNewReno::SetSegSize(), ns3::TcpReno::SetSegSize(), ns3::TcpTahoe::SetSegSize(), SetSegSize(), and ns3::TcpWestwood::SetSegSize().
|
protected |
Definition at line 235 of file tcp-socket-base.h.
Referenced by ProcessWait(), ReceivedData(), and ShutdownRecv().
|
protected |
Definition at line 234 of file tcp-socket-base.h.
Referenced by DoPeerClose(), Send(), SendPendingData(), and ShutdownSend().
|
protected |
Definition at line 230 of file tcp-socket-base.h.
Referenced by Close(), CloseAndNotify(), CompleteFork(), DoClose(), DoConnect(), DoForwardUp(), DoPeerClose(), DoRetransmit(), ns3::TcpWestwood::EstimateRtt(), GetTypeId(), LastAckTimeout(), Listen(), NewAck(), OutOfRange(), PeerClose(), ProcessSynRcvd(), ProcessSynSent(), ProcessWait(), Recv(), ns3::TcpNewReno::Retransmit(), ns3::TcpReno::Retransmit(), ns3::TcpTahoe::Retransmit(), ns3::TcpWestwood::Retransmit(), ReTxTimeout(), Send(), SendDataPacket(), SendEmptyPacket(), ns3::TcpNewReno::SetInitialCwnd(), ns3::TcpReno::SetInitialCwnd(), ns3::TcpTahoe::SetInitialCwnd(), ns3::TcpWestwood::SetInitialCwnd(), ns3::TcpNewReno::SetSegSize(), ns3::TcpReno::SetSegSize(), ns3::TcpTahoe::SetSegSize(), SetSegSize(), ns3::TcpWestwood::SetSegSize(), ShutdownSend(), and TimeWait().
|
protected |
Definition at line 216 of file tcp-socket-base.h.
Referenced by Bind(), Bind6(), CompleteFork(), DeallocateEndPoint(), Destroy(), Destroy6(), DoForwardUp(), PersistTimeout(), SendDataPacket(), SendEmptyPacket(), SetTcp(), and ~TcpSocketBase().
|
protected |
Definition at line 199 of file tcp-socket-base.h.
Referenced by CancelAllTimers(), and TimeWait().
|
protected |
Definition at line 227 of file tcp-socket-base.h.
Referenced by BytesInFlight(), Close(), DoRetransmit(), ns3::TcpNewReno::DupAck(), ns3::TcpTahoe::DupAck(), GetSndBufSize(), GetTxAvailable(), ns3::TcpNewReno::NewAck(), NewAck(), PersistTimeout(), ProcessSynRcvd(), ProcessSynSent(), ProcessWait(), ReceivedAck(), ns3::TcpNewReno::Retransmit(), ns3::TcpReno::Retransmit(), ns3::TcpTahoe::Retransmit(), ns3::TcpWestwood::Retransmit(), Retransmit(), ReTxTimeout(), Send(), SendDataPacket(), SendPendingData(), SetSndBufSize(), ShutdownSend(), and UnAckDataCount().