Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ IP(7) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

connect(3N)

getsockopt(3N)

ICMP(7)

if(7)

inet(7)

read(2)

recv(3N)

routing(4)

send(3N)

TCP(7)

UDP(7)

write(2)






       IP(7)                                                          IP(7)


       NAME
             IP - Internet Protocol

       SYNOPSIS
             ip

       DESCRIPTION
             IP is the internetwork datagram delivery protocol that is
             central to the Internet protocol family.  Programs may use IP
             through higher-level protocols such as the Transmission
             Control Protocol (TCP) or the User Datagram Protocol (UDP), or
             may interface directly to IP.  See TCP(7) and UDP(7).  Direct
             access may be via the socket interface (using a raw socket) or
             the Transport Level Interface (TLI).  The protocol options
             defined in the IP specification may be set in outgoing
             datagrams.

             The STREAMS driver /dev/rawip is the TLI transport provider
             that provides raw access to IP. The device /dev/ip is the
             multiplexing STREAMS driver that implements the protocol
             processing of IP. The latter connects below to datalink
             providers [interface drivers, see if(7)], and above to
             transport providers such as TCP and UDP.

             Raw IP sockets are connectionless and are normally used with
             the sendto and recvfrom calls, [see send(3N) and recv(3N)]
             although the connect(3N) call may also be used to fix the
             destination for future datagrams (in which case the read(2) or
             recv(3N) and write(2) or send(3N) calls may be used).  If
             proto is zero, the default protocol, IPPROTO_RAW, is used.  If
             proto is non-zero, that protocol number will be set in
             outgoing datagrams and will be used to filter incoming
             datagrams.  An IP header will be generated and prepended to
             each outgoing datagram; received datagrams are returned with
             the IP header and options intact.

             A single socket option, IP_OPTIONS, is supported at the IP
             level.  This socket option may be used to set IP options to be
             included in each outgoing datagram.  IP options to be sent are
             set with setsockopt [see getsockopt(3N)].  The getsockopt(3N)
             call returns the IP options set in the last setsockopt call.
             IP options on received datagrams are visible to user programs
             only using raw IP sockets.  The format of IP options given in
             setsockopt matches those defined in the IP specification with
             one exception: the list of addresses for the source routing
             options must include the first-hop gateway at the beginning of


                           Copyright 1994 Novell, Inc.               Page 1













      IP(7)                                                          IP(7)


            the list of gateways.  The first-hop gateway address will be
            extracted from the option list and the size adjusted
            accordingly before use.  IP options may be used with any
            socket type in the Internet family.

            At the socket level, the socket option SO_DONTROUTE may be
            applied.  This option forces datagrams being sent to bypass
            the routing step in output.  Normally, IP selects a network
            interface to send the datagram, and possibly an intermediate
            gateway, based on an entry in the routing table.  See
            routing(4).  When SO_DONTROUTE is set, the datagram will be
            sent using the interface whose network number or full IP
            address matches the destination address.  If no interface
            matches, the error ENETUNRCH will be returned.

            Raw IP datagrams can also be sent and received using the TLI
            connectionless primitives.

            Datagrams flow through the IP layer in two directions: from
            the network up to user processes, and from user processes down
            to the network.  Using this orientation, IP is layered above
            the network interface drivers and below the transport
            protocols
            such as UDP and TCP. The Internet Control Message Protocol
            (ICMP) is logically a part of IP. See ICMP(7).

            IP provides for a checksum of the header part, but not the
            data part of the datagram.  The checksum value is computed and
            set in the process of sending datagrams and checked when
            receiving datagrams.  IP header checksumming may be disabled
            for debugging purposes by patching the kernel variable ipcksum
            to have the value zero.

            IP options in received datagrams are processed in the IP layer
            according to the protocol specification.  Currently recognized
            IP options include: security, loose source and record route
            (LSRR), strict source and record route (SSRR), record route,
            stream identifier, and Internet timestamp.

            The IP layer will normally forward received datagrams that are
            not addressed to it.  Forwarding is under the control of the
            kernel variable ipforwarding.  If ipforwarding is zero, IP
            datagrams will not be forwarded; if ipforwarding is one, IP
            datagrams will be forwarded.  ipforwarding is usually set to
            one only in machines with more than one network interface
            (internetwork routers).  This kernel variable can be tuned to


                          Copyright 1994 Novell, Inc.               Page 2













       IP(7)                                                          IP(7)


             enable or disable forwarding using the idtune(1M) command.

             The IP layer will send an ICMP message back to the source host
             in many cases when it receives a datagram that can not be
             handled.  A time exceeded ICMP message will be sent if the
             time to live field in the IP header drops to zero in the
             process of forwarding a datagram.  A destination unreachable
             message will be sent if a datagram can not be forwarded
             because there is no route to the final destination, or if it
             can not be fragmented.  If the datagram is addressed to the
             local host but is destined for a protocol that is not
             supported or a port that is not in use, a destination
             unreachable message will also be sent.  The IP layer may send
             an ICMP source quench message if it is receiving datagrams too
             quickly.  ICMP messages are only sent for the first fragment
             of a fragmented datagram and are never returned in response to
             errors in other ICMP messages.

             The IP layer supports fragmentation and reassembly.  Datagrams
             are fragmented on output if the datagram is larger than the
             maximum transmission unit (MTU) of the network interface.
             Fragments of received datagrams are dropped from the
             reassembly queues if the complete datagram is not
             reconstructed within a short time period.

             Errors in sending discovered at the network interface driver
             layer are passed by IP back up to the user process.

       REFERENCES
             connect(3N), getsockopt(3N), ICMP(7), if(7), inet(7), read(2),
             recv(3N), routing(4), send(3N), TCP(7), UDP(7), write(2)
             RFC 791

       NOTICES
             Raw sockets should receive ICMP error packets relating to the
             protocol; currently such packets are simply discarded.

             Users of higher-level protocols such as TCP and UDP should be
             able to see received IP options.









                           Copyright 1994 Novell, Inc.               Page 3








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