Main Page   Modules   Alphabetical List   Data Structures   File List   Data Fields   Globals   Related Pages   Examples  

TCP
[Protocols]

RFC 793 Transmission Control Protocol. More...

Functions

void NutTcpInput (NETBUF *nb)
 Process incoming TCP segments from IP layer.

int NutTcpStatePassiveOpenEvent (TCPSOCKET *sock)
 Initiated by the application.

int NutTcpStateActiveOpenEvent (TCPSOCKET *sock)
 Initiated by the application.

int NutTcpStateCloseEvent (TCPSOCKET *sock)
 Socket close by application.

int NutTcpStateWindowEvent (TCPSOCKET *sock)
 Initiated by the application.

void NutTcpStateRetranTimeout (TCPSOCKET *sock)
 Retransmit a segment after ACK timeout.

 NutTcpSm (void *arg)
 TCP state machine thread.

void NutTcpStateMachine (NETBUF *nb)
 Process incoming TCP segments.

int NutTcpInitStateMachine (void)
 Start TCP state machine.

int IsInLimits (u_long x, u_long low, u_long high)
 Sequence number comparisons.


Detailed Description

RFC 793 Transmission Control Protocol.

TCP provides reliable, in-sequence delivery of a full-duplex stream of octets. It is used by applications which need a reliable, connection-oriented data transport.


Function Documentation

int IsInLimits u_long    x,
u_long    low,
u_long    high
 

Sequence number comparisons.

Return true if x is between low and high inclusive, false otherwise

int NutTcpInitStateMachine void   
 

Start TCP state machine.

The socket interface will automatically call this routine as soon as the first socket is created.

Returns:
0 on success, -1 otherwise.

void NutTcpInput NETBUF   nb
 

Process incoming TCP segments from IP layer.

Warning:
The caller must take care not to pass broadcast or multicast segments.
Note:
This routine is called by the IP layer on incoming TCP segments. Applications typically do not call this function.

NutTcpSm void *    arg
 

TCP state machine thread.

The TCP state machine serves two purposes: It processes incoming TCP segments and handles TCP timers.

int NutTcpStateActiveOpenEvent TCPSOCKET   sock
 

Initiated by the application.

The caller must make sure, that the socket is in closed state.

Parameters:
sock Socket descriptor. This pointer must have been retrieved by calling NutTcpCreateSocket().
Returns:
0 if granted, -1 otherwise.

int NutTcpStateCloseEvent TCPSOCKET   sock
 

Socket close by application.

If socket is in state SYN_RECEIVED or ESTABLISHED, it is changed to FINWAIT1.

No further data sending is accepted. Receiving is still allowed.

Parameters:
sock Socket descriptor. This pointer must have been retrieved by calling NutTcpCreateSocket().

void NutTcpStateMachine NETBUF   nb
 

Process incoming TCP segments.

All incoming TCP packets are passed to this routine. They will be added to a global queue and processed by the TCP state machine, which is running on a separate thread.

Note:
This routine is called by the IP layer on incoming TCP segments. Applications typically do not call this function.

int NutTcpStatePassiveOpenEvent TCPSOCKET   sock
 

Initiated by the application.

Parameters:
sock Socket descriptor. This pointer must have been retrieved by calling NutTcpCreateSocket().
Returns:
0 if granted, error code otherwise.

void NutTcpStateRetranTimeout TCPSOCKET   sock
 

Retransmit a segment after ACK timeout.

This function is called by the TCP timer.

Parameters:
sock Socket descriptor. This pointer must have been retrieved by calling NutTcpCreateSocket().

int NutTcpStateWindowEvent TCPSOCKET   sock
 

Initiated by the application.

Parameters:
sock Socket descriptor. This pointer must have been retrieved by calling NutTcpCreateSocket().


© 2000-2003 by egnite Software GmbH - visit http://www.ethernut.de/