2.11BSD/man/cat4/ip.0
IP(4P) UNIX Programmer's Manual IP(4P)
NAME
ip - Internet Protocol
SYNOPSIS
#include <sys/socket.h>
#include <netinet/in.h>
s = socket(AF_INET, SOCK_RAW, proto);
DESCRIPTION
IP is the transport layer protocol used by the Internet pro-
tocol family. Options may be set at the IP level when using
higher-level protocols that are based on IP (such as TCP and
UDP). It may also be accessed through a "raw socket" when
developing new protocols, or special purpose applications.
A single generic option is supported at the IP level,
IP_OPTIONS, that may be used to provide IP options to be
transmitted in the IP header of each outgoing packet.
Options are set with _s_e_t_s_o_c_k_o_p_t(2) and examined with _g_e_t_-
_s_o_c_k_o_p_t(2). The format of IP options to be sent is that
specified by the IP protocol specification, with one excep-
tion: the list of addresses for Source Route options must
include the first-hop gateway at the beginning of the list
of gateways. The first-hop gateway address will be
extracted from the option list and the size adjusted accord-
ingly before use. IP options may be used with any socket
type in the Internet family.
Raw IP sockets are connectionless, and are normally used
with the _s_e_n_d_t_o and _r_e_c_v_f_r_o_m calls, though the _c_o_n_n_e_c_t(2)
call may also be used to fix the destination for future
packets (in which case the _r_e_a_d(2) or _r_e_c_v(2) and _w_r_i_t_e(2)
or _s_e_n_d(2) system calls may be used).
If _p_r_o_t_o is 0, the default protocol IPPROTO_RAW is used for
outgoing packets, and only incoming packets destined for
that protocol are received. If _p_r_o_t_o is non-zero, that pro-
tocol number will be used on outgoing packets and to filter
incoming packets.
Outgoing packets automatically have an IP header prepended
to them (based on the destination address and the protocol
number the socket is created with). Incoming packets are
received with IP header and options intact.
DIAGNOSTICS
A socket operation may fail with one of the following errors
returned:
[EISCONN] when trying to establish a connection on a
socket which already has one, or when trying
Printed 11/26/99 May 16, 1986 1
IP(4P) UNIX Programmer's Manual IP(4P)
to send a datagram with the destination
address specified and the socket is already
connected;
[ENOTCONN] when trying to send a datagram, but no desti-
nation address is specified, and the socket
hasn't been connected;
[ENOBUFS] when the system runs out of memory for an
internal data structure;
[EADDRNOTAVAIL]
when an attempt is made to create a socket
with a network address for which no network
interface exists.
The following errors specific to IP may occur when setting
or getting IP options:
[EINVAL] An unknown socket option name was given.
[EINVAL] The IP option field was improperly formed; an
option field was shorter than the minimum
value or longer than the option buffer pro-
vided.
SEE ALSO
getsockopt(2), send(2), recv(2), intro(4N), icmp(4P),
inet(4F)
Printed 11/26/99 May 16, 1986 2