TCP(4P)                                                                TCP(4P)


NAME
       tcp - Internet Transmission Control Protocol

SYNOPSIS
       #include <sys/socket.h>
       #include <netinet/in.h>

       s = socket(AF_INET, SOCK_STREAM, 0);

DESCRIPTION
       The  TCP protocol provides reliable, flow-controlled, two-way transmis‐
       sion of data.  It  is  a  byte-stream  protocol  used  to  support  the
       SOCK_STREAM abstraction.  TCP uses the standard Internet address format
       and, in addition, provides a per-host collection of  “port  addresses”.
       Thus,  each  address  is composed of an Internet address specifying the
       host and network, with a specific TCP port on the host identifying  the
       peer entity.

       Sockets  utilizing  the  tcp protocol are either “active” or “passive”.
       Active sockets initiate connections to passive sockets.  By default TCP
       sockets  are  created  active; to create a passive socket the listen(2)
       system call must be used after binding the socket with the bind(2) sys‐
       tem  call.   Only  passive sockets may use the accept(2) call to accept
       incoming connections.  Only active sockets may use the connect(2)  call
       to initiate connections.

       Passive  sockets  may  “underspecify”  their location to match incoming
       connection requests from multiple  networks.   This  technique,  termed
       “wildcard  addressing”,  allows  a  single server to provide service to
       clients on multiple networks.  To create a socket which listens on  all
       networks,  the Internet address INADDR_ANY must be bound.  The TCP port
       may still be specified at this time; if the port is not  specified  the
       system  will  assign  one.   Once a connection has been established the
       socket’s address is fixed by the peer entity’s location.   The  address
       assigned  the  socket is the address associated with the network inter‐
       face through which packets are being transmitted  and  received.   Nor‐
       mally this address corresponds to the peer entity’s network.

       TCP  supports  one  socket  option  which is set with setsockopt(2) and
       tested with getsockopt(2).  Under most circumstances,  TCP  sends  data
       when  it  is presented; when outstanding data has not yet been acknowl‐
       edged, it gathers small amounts of output to be sent in a single packet
       once  an  acknowledgement  is received.  For a small number of clients,
       such as window systems that send a stream of mouse events which receive
       no  replies,  this  packetization may cause significant delays.  There‐
       fore, TCP provides a boolean option, TCP_NODELAY (from <netinet/tcp.h>,
       to  defeat this algorithm.  The option level for the setsockopt call is
       the protocol number for TCP, available from getprotobyname(3N).

       Options at the IP transport level may be used  with  TCP;  see  ip(4P).
       Incoming  connection requests that are source-routed are noted, and the
       reverse source route is used in responding.

DIAGNOSTICS
       A socket operation may fail with one of the following errors returned:

       [EISCONN]           when trying to establish a connection on  a  socket
                           which already has one;

       [ENOBUFS]           when  the system runs out of memory for an internal
                           data structure;

       [ETIMEDOUT]         when a connection  was  dropped  due  to  excessive
                           retransmissions;

       [ECONNRESET]        when  the  remote  peer forces the connection to be
                           closed;

       [ECONNREFUSED]      when the remote peer  actively  refuses  connection
                           establishment  (usually  because no process is lis‐
                           tening to the port);

       [EADDRINUSE]        when an attempt is made to create a socket  with  a
                           port which has already been allocated;

       [EADDRNOTAVAIL]     when  an  attempt is made to create a socket with a
                           network address  for  which  no  network  interface
                           exists.

SEE ALSO
       getsockopt(2), socket(2), intro(4N), inet(4F), ip(4P)


4.2 Berkeley Distribution        May 16, 1986                          TCP(4P)
 
Generated: 2016-12-26
Generated by man2html V0.25
page hit count: 648
Valid CSS Valid XHTML 1.0 Strict