Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ tcp(7p) — 4D1 2.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getsockopt(2)

socket(2)

inet(7P)

ip(7P)



     TCP(7P)                                                   TCP(7P)



     NAME
          tcp - Internet Transmission Control Protocol

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

          s = socket(AFINET, SOCKSTREAM, 0);

     DESCRIPTION
          The TCP protocol provides reliable, flow-controlled, two-way
          transmission 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) system 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 interface through which
          packets are being transmitted and received.  Normally this
          address corresponds to the peer entity's network.

          TCP supports one socket option which is tested with
          getsockopt(2).  Under most circumstances, TCP sends data
          when it is presented; when outstanding data has not yet been
          acknowledged, 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.  Therefore, TCP
          provides a boolean option, TCP_NODELAY (from
          <netinet/tcp.h>, to defeat this algorithm.



     Page 1                                        (last mod. 8/20/87)





     TCP(7P)                                                   TCP(7P)



          Options at the IP transport level may be used with TCP; see
          ip(7P).  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 listening 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), inet(7P), ip(7P)

     ORIGIN
          4.3 BSD
















     Page 2                                        (last mod. 8/20/87)



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026