|
|
1.1 ! root 1: .\" Copyright (c) 1983 Regents of the University of California. ! 2: .\" All rights reserved. The Berkeley software License Agreement ! 3: .\" specifies the terms and conditions for redistribution. ! 4: .\" ! 5: .\" @(#)ip.4p 6.2 (Berkeley) 5/16/86 ! 6: .\" ! 7: .TH IP 4P "May 16, 1986" ! 8: .UC 5 ! 9: .SH NAME ! 10: ip \- Internet Protocol ! 11: .SH SYNOPSIS ! 12: .B #include <sys/socket.h> ! 13: .br ! 14: .B #include <netinet/in.h> ! 15: .PP ! 16: .B s = socket(AF_INET, SOCK_RAW, proto); ! 17: .SH DESCRIPTION ! 18: IP is the transport layer protocol used ! 19: by the Internet protocol family. ! 20: Options may be set at the IP level ! 21: when using higher-level protocols that are based on IP ! 22: (such as TCP and UDP). ! 23: It may also be accessed ! 24: through a \*(lqraw socket\*(rq when developing new protocols, or ! 25: special purpose applications. ! 26: .PP ! 27: A single generic option is supported at the IP level, IP_OPTIONS, ! 28: that may be used to provide IP options to be transmitted in the IP ! 29: header of each outgoing packet. ! 30: Options are set with ! 31: .IR setsockopt (2) ! 32: and examined with ! 33: .IR getsockopt (2). ! 34: The format of IP options to be sent is that specified by the IP protocol ! 35: specification, with one exception: ! 36: the list of addresses for Source Route options must include the first-hop ! 37: gateway at the beginning of the list of gateways. ! 38: The first-hop gateway address will be extracted from the option list ! 39: and the size adjusted accordingly before use. ! 40: IP options may be used with any socket type in the Internet family. ! 41: .PP ! 42: Raw IP sockets are connectionless, ! 43: and are normally used with the ! 44: .I sendto ! 45: and ! 46: .I recvfrom ! 47: calls, though the ! 48: .IR connect (2) ! 49: call may also be used to fix the destination for future ! 50: packets (in which case the ! 51: .IR read (2) ! 52: or ! 53: .IR recv (2) ! 54: and ! 55: .IR write (2) ! 56: or ! 57: .IR send (2) ! 58: system calls may be used). ! 59: .PP ! 60: If ! 61: .I proto ! 62: is 0, the default protocol IPPROTO_RAW is used for outgoing ! 63: packets, and only incoming packets destined for that protocol ! 64: are received. ! 65: If ! 66: .I proto ! 67: is non-zero, that protocol number will be used on outgoing packets ! 68: and to filter incoming packets. ! 69: .PP ! 70: Outgoing packets automatically have an IP header prepended to ! 71: them (based on the destination address and the protocol ! 72: number the socket is created with). ! 73: Incoming packets are received with IP header and options intact. ! 74: .SH DIAGNOSTICS ! 75: A socket operation may fail with one of the following errors returned: ! 76: .TP 15 ! 77: [EISCONN] ! 78: when trying to establish a connection on a socket which ! 79: already has one, or when trying to send a datagram with the destination ! 80: address specified and the socket is already connected; ! 81: .TP 15 ! 82: [ENOTCONN] ! 83: when trying to send a datagram, but ! 84: no destination address is specified, and the socket hasn't been ! 85: connected; ! 86: .TP 15 ! 87: [ENOBUFS] ! 88: when the system runs out of memory for ! 89: an internal data structure; ! 90: .TP 15 ! 91: [EADDRNOTAVAIL] ! 92: when an attempt is made to create a ! 93: socket with a network address for which no network interface ! 94: exists. ! 95: .PP ! 96: The following errors specific to IP ! 97: may occur when setting or getting IP options: ! 98: .TP 15 ! 99: [EINVAL] ! 100: An unknown socket option name was given. ! 101: .TP 15 ! 102: [EINVAL] ! 103: The IP option field was improperly formed; ! 104: an option field was shorter than the minimum value ! 105: or longer than the option buffer provided. ! 106: .SH SEE ALSO ! 107: getsockopt(2), send(2), recv(2), intro(4N), icmp(4P), inet(4F)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.