tcp man page on DigitalUNIX

Man page or keyword search:  
man Server   12896 pages
apropos Keyword Search (all sections)
Output format
DigitalUNIX logo
[printable version]

tcp(7)									tcp(7)

NAME
       tcp - Internet Transmission Control Protocol (TCP)

SYNOPSIS
       #include <sys/socket.h>

       #include <netinet/in.h>

       The   following	 is   the   socket  call  for  AF_INET	sockets:  s  =
       socket(AF_INET, SOCK_STREAM, 0);

       The  following  is  the	socket	call  for  AF_INET6   sockets:	 s   =
       socket(AF_INET6, 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.   The TCP protocol 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 spec‐
       ifying the host and network, with a specific TCP port on the host iden‐
       tifying the peer entity.

       Sockets utilizing the TCP 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() function must
       be used after binding the socket with the bind() function.   Only  pas‐
       sive  sockets  may use the accept() function to accept incoming connec‐
       tions.  Only active sockets may use the connect() function to  initiate
       connections.

       Passive	sockets may underspecify their location to match incoming con‐
       nection requests from multiple networks.	 This technique, termed	 wild‐
       card  addressing,  allows a single server to provide service to clients
       on multiple networks. To create a socket that listens on all  networks,
       the  Internet  address  INADDR_ANY (for AF_INET sockets) or in6addr_any
       (for AF_INET6 sockets) must be bound.  The TCP port may still be speci‐
       fied  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 to 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 the following socket options: When the SO_KEEPALIVE option
       is  enabled, TCP probes a connection that has been idle for some amount
       of time. If the remote system does not respond to  a  keepalive	probe,
       TCP retransmits the probe a certain number of times before a connection
       is considered to be broken.  The default value for this keepalive probe
       retransmit  limit  is  8.  The TCP_KEEPCNT option can be used to affect
       this value for a given socket, and  specifies  the  maximum  number  of
       keepalive  probes  to  be sent.	This option takes an int value, with a
       range of 1 to tcp_keepcnt. For more information on tcp_keepcnt see  the
       information  on the inet subsystem configuration attributes in the Sys‐
       tem Configuration and Tuning guide.  When the  SO_KEEPALIVE  option  is
       enabled,	 TCP probes a connection that has been idle for some amount of
       time. The  default  value  for  this  idle  period  is  2  hours.   The
       TCP_KEEPIDLE  option  can  be  used  to	affect	this value for a given
       socket, and specifies the  number  of  seconds  of  idle	 time  between
       keepalive probes.  This option takes an int value, with a range of 1 to
       N (where N is tcp_keepidle divided by PR_SLOWHZ). For more  information
       on tcp_keepidle see the information on the inet subsystem configuration
       attributes in the System Configuration and Tuning guide.	 PR_SLOWHZ  is
       defined in the <sys/protosw.h> header file.  If a TCP connection cannot
       be established within some amount of time, TCP will time out  the  con‐
       nect  attempt. The default value for this initial connection establish‐
       ment timeout is 75 seconds.  The TCP_KEEPINIT option  can  be  used  to
       affect  this  initial  timeout period for a given socket, and specifies
       the number of seconds to wait before the connect attempt is timed  out.
       For  passive  connections,  the	TCP_KEEPINIT option value is inherited
       from the listening socket.  This option takes  an  int  value,  with  a
       range  of  1  to	 N (where N is tcp_keepinit divided by PR_SLOWHZ). For
       more information on tcp_keepinit see the information on the  inet  sub‐
       system  configuration attributes in the System Configuration and Tuning
       guide.  PR_SLOWHZ is defined in the <sys/protosw.h> header file.	  When
       the  SO_KEEPALIVE  option  is enabled, TCP probes a connection that has
       been idle for some amount of  time.  If	the  remote  system  does  not
       respond	to  a  keepalive  probe,  TCP retransmits the probe after some
       amount of time. The default value for this retransmit  interval	is  75
       seconds.	 The TCP_KEEPINTVL option can be used to affect this value for
       a given socket, and specifies the number	 of  seconds  to  wait	before
       retransmitting  a keepalive probe. This option takes an int value, with
       a range of 1 to N (where N is tcp_keepintvl divided by PR_SLOWHZ).  For
       more  information on tcp_keepintvl see the information on the inet sub‐
       system configuration attributes in the System Configuration and	Tuning
       guide.	PR_SLOWHZ  is defined in the <sys/protosw.h> header file.  The
       maximum size of a TCP segment is based on the network MTU for  destina‐
       tions  on  local networks or on a default MTU of 576 bytes for destina‐
       tions on nonlocal networks.  The default behavior  can  be  altered  by
       setting	the  TCP_MAXSEG	 option	 to an integer value from 1 to 65,535.
       However, TCP will not use a maximum segment size	 smaller  than	32  or
       larger  than the local network MTU.  Setting the TCP_MAXSEG option to a
       value of zero results in default behavior.  The TCP_MAXSEG  option  can
       only be set prior to calling listen or connect on the socket.  For pas‐
       sive connections, the TCP_MAXSEG option value  is  inherited  from  the
       listening socket.  This option takes an int value, with a range of 0 to
       65535.  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 gath‐
       ering  of output can cause significant delays.  Therefore, TCP provides
       a Boolean option, TCP_NODELAY (from the netinet/tcp.h header file),  to
       defeat  this  algorithm.	  This	option	takes an int value.  When this
       option is enabled, the sender places a timestamp in each data  segment.
       The receiver, if configured to accept them, sends these timestamps back
       in ACK segments.	 This provides the sender with a mechanism with	 which
       to measure round-trip time. TCP provides a Boolean option, TCP_TSOPTENA
       (from the netinet/tcp.h header file) to enable or disable this  option.
       This option takes an int value.	When the PAWS (Protect Against Wrapped
       Sequence numbers) option is  enabled,  the  receiver  rejects  any  old
       duplicate  segments that are received.  This option is used on synchro‐
       nized TCP connections only. TCP provides	 a  Boolean  option,  TCP_PAWS
       (from  the netinet/tcp.h header file) to enable or disable this option.
       This option takes an int value.	In order to use this option, you  must
       also enable the TCP_TSOPTENA option.  When the Selective Acknowledgment
       (SACK) option is enabled, the data receiver can inform the sender about
       all  segments  that have arrived successfully.  In this way, the sender
       need retransmit only those segments that have actually been lost.  This
       option  is  useful  in  cases where multiple segments are dropped.  TCP
       provides a Boolean option, TCP_SACKENA (from the	 netinet/tcp.h	header
       file) to enable or disable this option. This option takes an int value.

       These  options  can be retrieved with the getsockopt() function and set
       with the setsockopt() function.

       The option level for the setsockopt() and getsockopt() functions is the
       protocol number for TCP, available from the getprotobyname() function.

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

ERRORS
       If  a  socket operation fails, errno may be set to one of the following
       values: The option_len parameter provided to the setsockopt()  or  get‐
       sockopt() function is less than sizeof(int) or the option_value parame‐
       ter provided to the setsockopt() function is outside  the  valid	 range
       for  the	 option.  The socket to be connected already has a connection.
       The system ran out of memory for an internal data  structure.   Setting
       the  TCP_MAXSEG option is not supported after connect() or listen().  A
       connection was dropped due to excessive	retransmissions.   The	remote
       peer  forced  the  connection  to  be closed.  The remote peer actively
       refuses connection establishment (usually because no process is listen‐
       ing  to	the  port).  An attempt is made to create a socket with a port
       which has already been allocated.  An  attempt  is  made	 to  create  a
       socket with a network address for which no network interface exists.

SEE ALSO
       Functions: getsockopt(2), socket(2)

       Network Information: netintro(7), inet(7), ip(7)

									tcp(7)
[top]

List of man pages available for DigitalUNIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net