Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ inet(7) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ARP(7)

bind(3N)

byteorder(3N)

connect(3N)

ICMP(7)

if(7)

ioctl(2)

IP(7)

gethostent(3N)

getnetent(3N)

getprotoent(3N)

getservent(3N)

getsockopt(3N)

send(3N)

socket(3N)

TCP(7)

UDP(7)






       inet(7)                                                      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 SOCK_STREAM, SOCK_DGRAM, and SOCK_RAW socket
             types, or the Transport Level Interface (TLI), where they
             support the connectionless (T_CLTS) and connection oriented
             (T_COTS_ORD) 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 SOCK_STREAM abstraction
             and TLI's T_COTS_ORD service type.  UDP supports the
             SOCK_DGRAM socket abstraction and the TLI T_CLTS 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.  Rather than using the default class A, B, or C
             address, a subnet mask can be used for the network interface.
             Subnet addressing is enabled and examined by the following
             ioctl(2) commands; They have the same form as the SIOCSIFADDR
             command [see if(7)].



                           Copyright 1994 Novell, Inc.               Page 1













      inet(7)                                                      inet(7)


            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.

            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 sockaddr_in {
                        short    sin_family;
                        ushort_t  sin_port;
                        struct   in_addr sin_addr;
                        char     sin_zero[8];
                  };

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

            The sin_addr field of the sockaddr_in structure specifies a
            local or remote IP address.  Each network interface has its
            own unique IP address.  The special value INADDR_ANY may be
            used in this field to effect wildcard matching.  Given in a
            bind(3N) 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 sockaddr_in structure given in the bind(3N)
            call must specify an in_addr value of either IPADDR_ANY or one
            of the system's valid IP addresses.  Requests to bind any
            other address will elicit the error EADDRNOTAVAI.  When a
            connect(3N) call is made for a socket that has a wildcard
            local address, the system sets the sin_addr field of the
            socket to the IP address of the network interface that the
            packets for that connection are routed via.




                          Copyright 1994 Novell, Inc.               Page 2













       inet(7)                                                      inet(7)


             The sin_port field of the sockaddr_in structure specifies a
             port number used by TCP or UDP.  The local port address
             specified in a bind(3N) call is restricted to be greater than
             IPPORT_RESERVED (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 IPPORT_RESERVED.  A
             unique local port address is also picked when a socket which
             is not bound is used in a connect(3N) or sendto [see send(3N)]
             call.  This allows programs which do not care which local port
             number is used to set up TCP connections by simply calling
             socket(3N) and then connect(3N), and to send UDP datagrams
             with a socket(3N) call followed by a sendto [see send(3N)]
             call.

             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 SO_REUSEADDR 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.

       REFERENCES
             ARP(7), bind(3N), byteorder(3N), connect(3N), ICMP(7), if(7),
             ioctl(2), IP(7), gethostent(3N), getnetent(3N),
             getprotoent(3N), getservent(3N), getsockopt(3N), send(3N),
             socket(3N), TCP(7), UDP(7)
             Network Information Center DDN Protocol Handbook (3 vols.)

       NOTICES
             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.





                           Copyright 1994 Novell, Inc.               Page 3








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