IP(7P) IP(7P)
NAME
ip - Internet Protocol - TCP
SYNOPSIS
#include <sys/socket.h>
#include <netinet/in.h>
s = socket(AFINET, SOCKRAW, proto);
DESCRIPTION
IP is the transport layer protocol used by the Internet
protocol 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 examined with getsockopt(2). The format of IP
options to be sent is that specified by the IP protocol
specification, with one exception: 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 accordingly 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 sendto and recvfrom calls, though the connect(2)
call may also be used to fix the destination for future
packets (in which case the read(2) or recv(2) and write(2)
or send(2) system calls may be used).
If proto is 0, the default protocol IPPROTO_RAW is used for
outgoing packets, and only incoming packets destined for
that protocol are received. If proto is non-zero, that
protocol 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
Page 1 (last mod. 8/20/87)
IP(7P) IP(7P)
to send a datagram with the destination
address specified and the socket is already
connected;
[ENOTCONN] when trying to send a datagram, but no
destination 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
provided.
SEE ALSO
getsockopt(2), send(2), recv(2), icmp(7P), inet(7P)
ORIGIN
4.3 BSD
Page 2 (last mod. 8/20/87)