(abstract) base class of all TcpSockets More...
#include "tcp-socket.h"
Inheritance diagram for ns3::TcpSocket:
Collaboration diagram for ns3::TcpSocket:Public Member Functions | |
| TcpSocket () | |
| ~TcpSocket () override | |
Public Member Functions inherited from ns3::Socket | |
| Socket () | |
| ~Socket () override | |
| virtual int | Bind ()=0 |
| Allocate a local IPv4 endpoint for this socket. More... | |
| virtual int | Bind (const Address &address)=0 |
| Allocate a local endpoint for this socket. More... | |
| virtual int | Bind6 ()=0 |
| Allocate a local IPv6 endpoint for this socket. More... | |
| virtual void | BindToNetDevice (Ptr< NetDevice > netdevice) |
| Bind a socket to specific device. More... | |
| virtual int | Close ()=0 |
| Close a socket. More... | |
| virtual int | Connect (const Address &address)=0 |
| Initiate a connection to a remote host. More... | |
| virtual bool | GetAllowBroadcast () const =0 |
| Query whether broadcast datagram transmissions are allowed. More... | |
| Ptr< NetDevice > | GetBoundNetDevice () |
| Returns socket's bound NetDevice, if any. More... | |
| virtual enum Socket::SocketErrno | GetErrno () const =0 |
| Get last error number. More... | |
| uint8_t | GetIpTos () const |
| Query the value of IP Type of Service of this socket. More... | |
| virtual uint8_t | GetIpTtl () const |
| Query the value of IP Time to Live field of this socket. More... | |
| virtual uint8_t | GetIpv6HopLimit () const |
| Query the value of IP Hop Limit field of this socket. More... | |
| uint8_t | GetIpv6Tclass () const |
| Query the value of IPv6 Traffic Class field of this socket. More... | |
| virtual Ptr< Node > | GetNode () const =0 |
| Return the node this socket is associated with. More... | |
| virtual int | GetPeerName (Address &address) const =0 |
| Get the peer address of a connected socket. More... | |
| uint8_t | GetPriority () const |
| Query the priority value of this socket. More... | |
| virtual uint32_t | GetRxAvailable () const =0 |
| Return number of bytes which can be returned from one or multiple calls to Recv. More... | |
| virtual enum Socket::SocketType | GetSocketType () const =0 |
| virtual int | GetSockName (Address &address) const =0 |
| Get socket address. More... | |
| virtual uint32_t | GetTxAvailable () const =0 |
| Returns the number of bytes which can be sent in a single call to Send. More... | |
| virtual void | Ipv6JoinGroup (Ipv6Address address) |
| Joins a IPv6 multicast group without filters. More... | |
| virtual void | Ipv6JoinGroup (Ipv6Address address, Ipv6MulticastFilterMode filterMode, std::vector< Ipv6Address > sourceAddresses) |
| Joins a IPv6 multicast group. More... | |
| virtual void | Ipv6LeaveGroup () |
| Leaves IPv6 multicast group this socket is joined to. More... | |
| bool | IsIpRecvTos () const |
| Ask if the socket is currently passing information about IP Type of Service up the stack. More... | |
| bool | IsIpRecvTtl () const |
| Ask if the socket is currently passing information about IP_TTL up the stack. More... | |
| bool | IsIpv6RecvHopLimit () const |
| Ask if the socket is currently passing information about IPv6 Hop Limit up the stack. More... | |
| bool | IsIpv6RecvTclass () 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... | |
| virtual int | Listen ()=0 |
| Listen for incoming connections. More... | |
| Ptr< Packet > | Recv () |
| Read a single packet from the socket. More... | |
| virtual Ptr< Packet > | Recv (uint32_t maxSize, uint32_t flags)=0 |
| Read data 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... | |
| virtual Ptr< Packet > | RecvFrom (uint32_t maxSize, uint32_t flags, Address &fromAddress)=0 |
| 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 (const uint8_t *buf, uint32_t size, uint32_t flags) |
| Send data (or dummy data) to the remote host. More... | |
| int | Send (Ptr< Packet > p) |
| Send data (or dummy data) to the remote host. More... | |
| virtual int | Send (Ptr< Packet > p, uint32_t flags)=0 |
| 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... | |
| virtual int | SendTo (Ptr< Packet > p, uint32_t flags, const Address &toAddress)=0 |
| 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... | |
| virtual bool | SetAllowBroadcast (bool allowBroadcast)=0 |
| Configure whether broadcast datagram transmissions are allowed. 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) |
| Manually set IP Type of Service field. More... | |
| virtual void | SetIpTtl (uint8_t ipTtl) |
| Manually set IP Time to Live field. More... | |
| virtual void | SetIpv6HopLimit (uint8_t ipHopLimit) |
| Manually set IPv6 Hop Limit. More... | |
| 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) |
| Manually set IPv6 Traffic Class field. More... | |
| void | SetPriority (uint8_t priority) |
| Manually set the socket priority. More... | |
| void | SetRecvCallback (Callback< void, Ptr< Socket >> receivedData) |
| 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... | |
| virtual int | ShutdownRecv ()=0 |
| virtual int | ShutdownSend ()=0 |
Public Member Functions inherited from ns3::Object | |
| Object () | |
| Constructor. More... | |
| ~Object () override | |
| Destructor. More... | |
| void | AggregateObject (Ptr< Object > other) |
| Aggregate two Objects together. More... | |
| void | Dispose () |
| Dispose of this Object. More... | |
| AggregateIterator | GetAggregateIterator () const |
| Get an iterator to the Objects aggregated to this one. More... | |
| TypeId | GetInstanceTypeId () const override |
| Get the most derived TypeId for this Object. More... | |
| template<typename T > | |
| Ptr< T > | GetObject () const |
| Get a pointer to the requested aggregated Object. More... | |
| template<> | |
| Ptr< Object > | GetObject () const |
| Specialization of () for objects of type ns3::Object. More... | |
| template<typename T > | |
| Ptr< T > | GetObject (TypeId tid) const |
| Get a pointer to the requested aggregated Object by TypeId. More... | |
| template<> | |
| Ptr< Object > | GetObject (TypeId tid) const |
| Specialization of (TypeId tid) for objects of type ns3::Object. More... | |
| void | Initialize () |
| Invoke DoInitialize on all Objects aggregated to this one. More... | |
| bool | IsInitialized () const |
| Check if the object has been initialized. More... | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
| SimpleRefCount () | |
| Default constructor. More... | |
| SimpleRefCount (const SimpleRefCount &o[[maybe_unused]]) | |
| Copy constructor. More... | |
| uint32_t | GetReferenceCount () const |
| Get the reference count of the object. More... | |
| SimpleRefCount & | operator= (const SimpleRefCount &o[[maybe_unused]]) |
| Assignment operator. More... | |
| void | Ref () const |
| Increment the reference count. More... | |
| void | Unref () const |
| Decrement the reference count. More... | |
Public Member Functions inherited from ns3::ObjectBase | |
| virtual | ~ObjectBase () |
| Virtual destructor. More... | |
| void | GetAttribute (std::string name, AttributeValue &value) const |
| Get the value of an attribute, raising fatal errors if unsuccessful. More... | |
| bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
| Get the value of an attribute without raising errors. More... | |
| void | SetAttribute (std::string name, const AttributeValue &value) |
| Set a single attribute, raising fatal errors if unsuccessful. More... | |
| bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
| Set a single attribute without raising errors. More... | |
| bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
| Connect a TraceSource to a Callback with a context. More... | |
| bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
| Connect a TraceSource to a Callback without a context. More... | |
| bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
| Disconnect from a TraceSource a Callback previously connected with a context. More... | |
| bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
| Disconnect from a TraceSource a Callback previously connected without a context. More... | |
Static Public Member Functions | |
| static TypeId | GetTypeId () |
| Get the type ID. More... | |
Static Public Member Functions inherited from ns3::Socket | |
| static Ptr< Socket > | CreateSocket (Ptr< Node > node, TypeId tid) |
| This method wraps the creation of sockets that is performed on a given node by a SocketFactory specified by TypeId. More... | |
| static TypeId | GetTypeId () |
| Get the type ID. More... | |
| static uint8_t | IpTos2Priority (uint8_t ipTos) |
| Return the priority corresponding to a given TOS value. More... | |
Static Public Member Functions inherited from ns3::Object | |
| static TypeId | GetTypeId () |
| Register this type. More... | |
Static Public Member Functions inherited from ns3::ObjectBase | |
| static TypeId | GetTypeId () |
| Get the type ID. More... | |
Static Public Attributes | |
| static const char *const | TcpStateName [TcpSocket::LAST_STATE] |
| Literal names of TCP states for use in log messages. More... | |
Private Member Functions | |
| virtual Time | GetConnTimeout () const =0 |
| Get the connection timeout. More... | |
| virtual uint32_t | GetDataRetries () const =0 |
| Get the number of data transmission retries before giving up. More... | |
| virtual uint32_t | GetDelAckMaxCount () const =0 |
| Get the number of packet to fire an ACK before delay timeout. More... | |
| virtual Time | GetDelAckTimeout () const =0 |
| Get the time to delay an ACK. More... | |
| virtual uint32_t | GetInitialCwnd () const =0 |
| Get the initial Congestion Window. More... | |
| virtual uint32_t | GetInitialSSThresh () const =0 |
| Get the initial Slow Start Threshold. More... | |
| virtual Time | GetPersistTimeout () const =0 |
| Get the timeout for persistent connection. More... | |
| virtual uint32_t | GetRcvBufSize () const =0 |
| Get the receive buffer size. More... | |
| virtual uint32_t | GetSegSize () const =0 |
| Get the segment size. More... | |
| virtual uint32_t | GetSndBufSize () const =0 |
| Get the send buffer size. More... | |
| virtual uint32_t | GetSynRetries () const =0 |
| Get the number of connection retries before giving up. More... | |
| virtual bool | GetTcpNoDelay () const =0 |
| Check if Nagle's algorithm is enabled or not. More... | |
| virtual void | SetConnTimeout (Time timeout)=0 |
| Set the connection timeout. More... | |
| virtual void | SetDataRetries (uint32_t retries)=0 |
| Set the number of data transmission retries before giving up. More... | |
| virtual void | SetDelAckMaxCount (uint32_t count)=0 |
| Set the number of packet to fire an ACK before delay timeout. More... | |
| virtual void | SetDelAckTimeout (Time timeout)=0 |
| Set the time to delay an ACK. More... | |
| virtual void | SetInitialCwnd (uint32_t cwnd)=0 |
| Set the initial Congestion Window. More... | |
| virtual void | SetInitialSSThresh (uint32_t threshold)=0 |
| Set the initial Slow Start Threshold. More... | |
| virtual void | SetPersistTimeout (Time timeout)=0 |
| Set the timeout for persistent connection. More... | |
| virtual void | SetRcvBufSize (uint32_t size)=0 |
| Set the receive buffer size. More... | |
| virtual void | SetSegSize (uint32_t size)=0 |
| Set the segment size. More... | |
| virtual void | SetSndBufSize (uint32_t size)=0 |
| Set the send buffer size. More... | |
| virtual void | SetSynRetries (uint32_t count)=0 |
| Set the number of connection retries before giving up. More... | |
| virtual void | SetTcpNoDelay (bool noDelay)=0 |
| Enable/Disable Nagle's algorithm. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::Socket | |
| void | DoDispose () override |
| Destructor implementation. More... | |
| bool | IsManualIpTtl () const |
| Checks if the socket has a specific IPv4 TTL set. More... | |
| bool | IsManualIpv6HopLimit () const |
| Checks if the socket has a specific IPv6 Hop Limit set. More... | |
| bool | IsManualIpv6Tclass () const |
| Checks if the socket has a specific IPv6 Tclass set. More... | |
| void | NotifyConnectionFailed () |
| Notify through the callback (if set) that the connection has not been established due to an error. More... | |
| bool | NotifyConnectionRequest (const Address &from) |
| Notify through the callback (if set) that an incoming connection is being requested by a remote host. More... | |
| void | NotifyConnectionSucceeded () |
| Notify through the callback (if set) that the connection has been established. More... | |
| void | NotifyDataRecv () |
| Notify through the callback (if set) that some data have been received. More... | |
| void | NotifyDataSent (uint32_t size) |
| Notify through the callback (if set) that some data have been sent. More... | |
| void | NotifyErrorClose () |
| Notify through the callback (if set) that the connection has been closed due to an error. More... | |
| void | NotifyNewConnectionCreated (Ptr< Socket > socket, const Address &from) |
| Notify through the callback (if set) that a new connection has been created. More... | |
| void | NotifyNormalClose () |
| Notify through the callback (if set) that the connection has been closed. More... | |
| void | NotifySend (uint32_t spaceAvailable) |
| Notify through the callback (if set) that some data have been sent. More... | |
Protected Member Functions inherited from ns3::Object | |
| Object (const Object &o) | |
| Copy an Object. More... | |
| virtual void | DoInitialize () |
| Initialize() implementation. More... | |
| virtual void | NotifyNewAggregate () |
| Notify all Objects aggregated to this one of a new Object being aggregated. More... | |
Protected Member Functions inherited from ns3::ObjectBase | |
| void | ConstructSelf (const AttributeConstructionList &attributes) |
| Complete construction of ObjectBase; invoked by derived classes. More... | |
| virtual void | NotifyConstructionCompleted () |
| Notifier called once the ObjectBase is fully constructed. More... | |
Protected Attributes inherited from ns3::Socket | |
| Ptr< NetDevice > | m_boundnetdevice |
| the device this socket is bound to (might be null). More... | |
| Ipv6Address | m_ipv6MulticastGroupAddress |
| IPv6 multicast group address. More... | |
| bool | m_recvPktInfo |
| if the socket should add packet info tags to the packet forwarded to L4. More... | |
Related Functions inherited from ns3::ObjectBase | |
| static TypeId | GetObjectIid () |
| Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
(abstract) base class of all TcpSockets
Introspection did not find any typical Config paths.
This class exists solely for hosting TcpSocket attributes that can be reused across different implementations.
Time +9.22337e+18ns:+9.22337e+18ns Time +9.22337e+18ns:+9.22337e+18ns Time +9.22337e+18ns:+9.22337e+18ns No TraceSources are defined for this type.
Size of this type is 152 bytes (on a 64-bit architecture).
Definition at line 47 of file tcp-socket.h.
| ns3::TcpSocket::TcpSocket | ( | ) |
Definition at line 134 of file tcp-socket.cc.
References NS_LOG_FUNCTION.
|
override |
Definition at line 139 of file tcp-socket.cc.
References NS_LOG_FUNCTION.
|
privatepure virtual |
Get the connection timeout.
Implemented in ns3::TcpSocketBase.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
privatepure virtual |
Get the number of data transmission retries before giving up.
Implemented in ns3::TcpSocketBase.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
privatepure virtual |
Get the number of packet to fire an ACK before delay timeout.
Implemented in ns3::TcpSocketBase.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
privatepure virtual |
Get the time to delay an ACK.
Implemented in ns3::TcpSocketBase.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
privatepure virtual |
Get the initial Congestion Window.
Implemented in ns3::TcpSocketBase.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
privatepure virtual |
Get the initial Slow Start Threshold.
Implemented in ns3::TcpSocketBase.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
privatepure virtual |
Get the timeout for persistent connection.
When the timeout expires, send 1-byte data to probe for the window size at the receiver when the local knowledge tells that the receiver has zero window size
Implemented in ns3::TcpSocketBase.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
privatepure virtual |
Get the receive buffer size.
Implemented in ns3::TcpSocketBase.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
privatepure virtual |
Get the segment size.
Implemented in ns3::TcpSocketBase.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
privatepure virtual |
Get the send buffer size.
Implemented in ns3::TcpSocketBase.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
privatepure virtual |
Get the number of connection retries before giving up.
Implemented in ns3::TcpSocketBase.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
privatepure virtual |
Check if Nagle's algorithm is enabled or not.
Implemented in ns3::TcpSocketBase.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
static |
Get the type ID.
Get the type ID.
Definition at line 54 of file tcp-socket.cc.
References GetConnTimeout(), GetDataRetries(), GetDelAckMaxCount(), GetDelAckTimeout(), GetInitialCwnd(), GetInitialSSThresh(), GetPersistTimeout(), GetRcvBufSize(), GetSegSize(), GetSndBufSize(), GetSynRetries(), GetTcpNoDelay(), ns3::MakeBooleanAccessor(), ns3::MakeBooleanChecker(), ns3::MakeTimeAccessor(), ns3::MakeTimeChecker(), ns3::MakeUintegerAccessor(), ns3::Seconds(), SetConnTimeout(), SetDataRetries(), SetDelAckMaxCount(), SetDelAckTimeout(), SetInitialCwnd(), SetInitialSSThresh(), ns3::TypeId::SetParent(), SetPersistTimeout(), SetRcvBufSize(), SetSegSize(), SetSndBufSize(), SetSynRetries(), SetTcpNoDelay(), and python-unit-tests::UINT32_MAX.
Referenced by ns3::ThreeGppHttpServer::StartApplication().
Here is the call graph for this function:
Here is the caller graph for this function:
|
privatepure virtual |
Set the connection timeout.
| timeout | the connection timeout |
Implemented in ns3::TcpSocketBase.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
privatepure virtual |
Set the number of data transmission retries before giving up.
| retries | the number of data transmission retries |
Implemented in ns3::TcpSocketBase.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
privatepure virtual |
Set the number of packet to fire an ACK before delay timeout.
| count | the umber of packet to fire an ACK before delay timeout |
Implemented in ns3::TcpSocketBase.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
privatepure virtual |
Set the time to delay an ACK.
| timeout | the time to delay an ACK |
Implemented in ns3::TcpSocketBase.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
privatepure virtual |
Set the initial Congestion Window.
| cwnd | the initial congestion window (in segments) |
Implemented in ns3::TcpSocketBase.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
privatepure virtual |
Set the initial Slow Start Threshold.
| threshold | the Slow Start Threshold (in bytes) |
Implemented in ns3::TcpSocketBase.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
privatepure virtual |
Set the timeout for persistent connection.
When the timeout expires, send 1-byte data to probe for the window size at the receiver when the local knowledge tells that the receiver has zero window size
| timeout | the persistent timeout |
Implemented in ns3::TcpSocketBase.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
privatepure virtual |
Set the receive buffer size.
| size | the buffer size (in bytes) |
Implemented in ns3::TcpSocketBase.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
privatepure virtual |
Set the segment size.
| size | the segment size (in bytes) |
Implemented in ns3::TcpSocketBase.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
privatepure virtual |
Set the send buffer size.
| size | the buffer size (in bytes) |
Implemented in ns3::TcpSocketBase.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
privatepure virtual |
Set the number of connection retries before giving up.
| count | the number of connection retries |
Implemented in ns3::TcpSocketBase.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
privatepure virtual |
Enable/Disable Nagle's algorithm.
| noDelay | true to DISABLE Nagle's algorithm |
Implemented in ns3::TcpSocketBase.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
static |
Literal names of TCP states for use in log messages.
Definition at line 95 of file tcp-socket.h.
Referenced by ns3::TcpSocketBase::Close(), ns3::TcpSocketBase::CloseAndNotify(), ns3::TcpSocketBase::DoConnect(), ns3::TcpSocketBase::DoForwardUp(), ns3::TcpSocketBase::DoPeerClose(), ns3::TcpSocketBase::IsValidTcpSegment(), ns3::TcpSocketBase::Send(), and ns3::TcpSocketBase::TimeWait().