Annotation of 43BSDReno/share/man/man4/tcp.4, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1983 The Regents of the University of California.
                      2: .\" All rights reserved.
                      3: .\"
                      4: .\" Redistribution and use in source and binary forms are permitted provided
                      5: .\" that: (1) source distributions retain this entire copyright notice and
                      6: .\" comment, and (2) distributions including binaries display the following
                      7: .\" acknowledgement:  ``This product includes software developed by the
                      8: .\" University of California, Berkeley and its contributors'' in the
                      9: .\" documentation or other materials provided with the distribution and in
                     10: .\" all advertising materials mentioning features or use of this software.
                     11: .\" Neither the name of the University nor the names of its contributors may
                     12: .\" be used to endorse or promote products derived from this software without
                     13: .\" specific prior written permission.
                     14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
                     15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
                     16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     17: .\"
                     18: .\"    @(#)tcp.4       6.4 (Berkeley) 6/23/90
                     19: .\"
                     20: .TH TCP 4 "June 23, 1990"
                     21: .UC 5
                     22: .SH NAME
                     23: tcp \- Internet Transmission Control Protocol
                     24: .SH SYNOPSIS
                     25: .B #include <sys/socket.h>
                     26: .br
                     27: .B #include <netinet/in.h>
                     28: .PP
                     29: .B s = socket(AF_INET, SOCK_STREAM, 0);
                     30: .SH DESCRIPTION
                     31: The TCP protocol provides reliable, flow-controlled, two-way
                     32: transmission of data.  It is a byte-stream protocol used to
                     33: support the SOCK_STREAM abstraction.  TCP uses the standard
                     34: Internet address format and, in addition, provides a per-host
                     35: collection of \*(lqport addresses\*(rq.  Thus, each address is composed
                     36: of an Internet address specifying the host and network, with
                     37: a specific TCP port on the host identifying the peer entity.
                     38: .PP
                     39: Sockets utilizing the tcp protocol are either \*(lqactive\*(rq or
                     40: \*(lqpassive\*(rq.  Active sockets initiate connections to passive
                     41: sockets.  By default TCP sockets are created active; to create a
                     42: passive socket the
                     43: .IR listen (2)
                     44: system call must be used
                     45: after binding the socket with the
                     46: .IR bind (2)
                     47: system call.  Only
                     48: passive sockets may use the 
                     49: .IR accept (2)
                     50: call to accept incoming connections.  Only active sockets may
                     51: use the
                     52: .IR connect (2)
                     53: call to initiate connections.
                     54: .PP
                     55: Passive sockets may \*(lqunderspecify\*(rq their location to match
                     56: incoming connection requests from multiple networks.  This
                     57: technique, termed \*(lqwildcard addressing\*(rq, allows a single
                     58: server to provide service to clients on multiple networks.
                     59: To create a socket which listens on all networks, the Internet
                     60: address INADDR_ANY
                     61: must be bound.  The TCP port may still be specified
                     62: at this time; if the port is not specified the system will assign one.
                     63: Once a connection has been established the socket's address is
                     64: fixed by the peer entity's location.   The address assigned the
                     65: socket is the address associated with the network interface
                     66: through which packets are being transmitted and received.  Normally
                     67: this address corresponds to the peer entity's network.
                     68: .PP
                     69: TCP supports one socket option which is set with
                     70: .IR setsockopt (2)
                     71: and tested with
                     72: .IR getsockopt (2).
                     73: Under most circumstances, TCP sends data when it is presented;
                     74: when outstanding data has not yet been acknowledged, it gathers
                     75: small amounts of output to be sent in a single packet once
                     76: an acknowledgement is received.
                     77: For a small number of clients, such as window systems
                     78: that send a stream of mouse events which receive no replies,
                     79: this packetization may cause significant delays.
                     80: Therefore, TCP provides a boolean option, TCP_NODELAY (from
                     81: .IR <netinet/tcp.h> ,
                     82: to defeat this algorithm.
                     83: The option level for the
                     84: .I setsockopt
                     85: call is the protocol number for TCP,
                     86: available from
                     87: .IR getprotobyname (3).
                     88: .PP
                     89: Options at the IP transport level may be used with TCP; see
                     90: .IR ip (4).
                     91: Incoming connection requests that are source-routed are noted,
                     92: and the reverse source route is used in responding.
                     93: .SH DIAGNOSTICS
                     94: A socket operation may fail with one of the following errors returned:
                     95: .TP 20
                     96: [EISCONN]
                     97: when trying to establish a connection on a socket which
                     98: already has one;
                     99: .TP 20
                    100: [ENOBUFS]
                    101: when the system runs out of memory for
                    102: an internal data structure;
                    103: .TP 20
                    104: [ETIMEDOUT]
                    105: when a connection was dropped
                    106: due to excessive retransmissions;
                    107: .TP 20
                    108: [ECONNRESET]
                    109: when the remote peer
                    110: forces the connection to be closed;
                    111: .TP 20
                    112: [ECONNREFUSED]
                    113: when the remote
                    114: peer actively refuses connection establishment (usually because
                    115: no process is listening to the port);
                    116: .TP 20
                    117: [EADDRINUSE]
                    118: when an attempt
                    119: is made to create a socket with a port which has already been
                    120: allocated;
                    121: .TP 20
                    122: [EADDRNOTAVAIL]
                    123: when an attempt is made to create a 
                    124: socket with a network address for which no network interface
                    125: exists.
                    126: .SH SEE ALSO
                    127: getsockopt(2), socket(2), intro(4), inet(4), ip(4)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.