Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ inet(7) — Dell System V Release 4 Issue 2.2

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ioctl(2)

send(2)

bind(3N)

connect(3N)

getsockopt(3N)

if(3N)

byteorder(3N)

gethostent(3N)

getnetent(3N)

getprotoent(3N)

getservent(3N)

socket(3N)

arp(7)

icmp(7)

ip(7)

tcp(7)

udp(7)



inet(7)                UNIX System V(Internet Utilities)                inet(7)


NAME
      inet - Internet protocol family

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

DESCRIPTION
      The Internet protocol family implements a collection of protocols which
      are centered around the Internet Protocol (IP) and which share a common
      address format.  The Internet family protocols can be accessed via the
      socket interface, where they support the SOCKSTREAM, SOCKDGRAM, and
      SOCKRAW socket types, or the Transport Level Interface (TLI), where they
      support the connectionless (TCLTS) and connection oriented (TCOTSORD)
      service types.

PROTOCOLS
      The Internet protocol family comprises the Internet Protocol (IP), the
      Address Resolution Protocol (ARP), the Internet Control Message Protocol
      (ICMP), the Transmission Control Protocol (TCP), and the User Datagram
      Protocol (UDP).

      TCP supports the socket interface's SOCKSTREAM abstraction and TLI's
      TCOTSORD service type.  UDP supports the SOCKDGRAM socket abstraction
      and the TLI TCLTS service type.  See tcp(7) and udp(7).  A direct
      interface to IP is available via both TLI and the socket interface; See
      ip(7).  ICMP is used by the kernel to handle and report errors in
      protocol processing.  It is also accessible to user programs; see
      icmp(7).  ARP is used to translate 32-bit IP addresses into 48-bit
      Ethernet addresses; see arp(7).

      The 32-bit IP address is divided into network number and host number
      parts.  It is frequency-encoded; The most-significant bit is zero in
      Class A addresses, in which the high-order 8 bits represent the network
      number.  Class B addresses have their high order two bits set to 10 and
      use the high-order 16 bits as the network number field.  Class C
      addresses have a 24-bit network number part of which the high order three
      bits are 110.  Sites with a cluster of IP networks may chose to use a
      single network number for the cluster; This is done by using subnet
      addressing.  The host number portion of the address is further subdivided
      into subnet number and host number parts.  Within a subnet, each subnet
      appears to be an individual network; Externally, the entire cluster
      appears to be a single, uniform network requiring only a single routing
      entry.  Subnet addressing is enabled and examined by the following
      ioctl(2) commands; They have the same form as the SIOCSIFADDR command
      [see if(3N)].

      SIOCSIFNETMASK      Set interface network mask.  The network mask defines
                          the network part of the address; If it contains more
                          of the address than the address type would indicate,
                          then subnets are in use.



10/89                                                                    Page 1







inet(7)                UNIX System V(Internet Utilities)                inet(7)


      SIOCGIFNETMASK      Get interface network mask.

ADDRESSING
      IP addresses are four byte quantities, stored in network byte order.  IP
      addresses should be manipulated using the byte order conversion routines
      [see byteorder(3N)].

      Addresses in the Internet protocol family use the following structure:

            struct sockaddrin {
                  short    sinfamily;
                  ushort  sinport;
                  struct   inaddr sinaddr;
                  char     sinzero[8];
            };

      Library routines are provided to manipulate structures of this form; See
      inet(3N).

      The sinaddr field of the sockaddrin structure specifies a local or
      remote IP address.  Each network interface has its own unique IP address.
      The special value INADDRANY may be used in this field to effect wildcard
      matching.  Given in a bind(2) call, this value leaves the local IP
      address of the socket unspecified, so that the socket will receive
      connections or messages directed at any of the valid IP addresses of the
      system.  This can prove useful when a process neither knows nor cares
      what the local IP address is or when a process wishes to receive requests
      using all of its network interfaces.  The sockaddrin structure given in
      the bind( 2) call must specify an inaddr value of either IPADDRANY or
      one of the system's valid IP addresses.  Requests to bind any other
      address will elicit the error EADDRNOTAVAI.  When a connect(2) call is
      made for a socket that has a wildcard local address, the system sets the
      sinaddr field of the socket to the IP address of the network interface
      that the packets for that connection are routed via.

      The sinport field of the sockaddrin structure specifies a port number
      used by TCP or UDP. The local port address specified in a bind(2) call is
      restricted to be greater than IPPORTRESERVED (defined in <netinet/in.h>)
      unless the creating process is running as the super-user, providing a
      space of protected port numbers.  In addition, the local port address
      must not be in use by any socket of same address family and type.
      Requests to bind sockets to port numbers being used by other sockets
      return the error EADDRINUSE.  If the local port address is specified as
      0, then the system picks a unique port address greater than
      IPPORTRESERVED.  A unique local port address is also picked when a
      socket which is not bound is used in a connect(2) or sendto [see send(2)]
      call.  This allows programs which do not care which local port number is
      used to set up TCP connections by simply calling socket(2) and then
      connect(2), and to send UDP datagrams with a socket(2) call followed by a
      sendto(2) call.




Page 2                                                                    10/89







inet(7)                UNIX System V(Internet Utilities)                inet(7)


      Although this implementation restricts sockets to unique local port
      numbers, TCP allows multiple simultaneous connections involving the same
      local port number so long as the remote IP addresses or port numbers are
      different for each connection.  Programs may explicitly override the
      socket restriction by setting the SOREUSEADDR socket option with
      setsockopt [see getsockopt(3N)].

      TLI applies somewhat different semantics to the binding of local port
      numbers. These semantics apply when Internet family protocols are used
      via the TLI.

SEE ALSO
      ioctl(2), send(2), bind(3N), connect(3N), getsockopt(3N), if(3N),
      byteorder(3N), gethostent(3N), getnetent(3N), getprotoent(3N),
      getservent(3N), socket(3N), arp(7), icmp(7), ip(7), tcp(7), udp(7)

      Network Information Center, DDN Protocol Handbook (3 vols.), Network
      Information Center, SRI International, Menlo Park, Calif., 1985

NOTES
      The Internet protocol support is subject to change as the Internet
      protocols develop.  Users should not depend on details of the current
      implementation, but rather the services exported.































10/89                                                                    Page 3





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