diff options
Diffstat (limited to 'share/man/man4/inet.4')
-rw-r--r-- | share/man/man4/inet.4 | 305 |
1 files changed, 305 insertions, 0 deletions
diff --git a/share/man/man4/inet.4 b/share/man/man4/inet.4 new file mode 100644 index 0000000..238cdbd --- /dev/null +++ b/share/man/man4/inet.4 @@ -0,0 +1,305 @@ +.\" Copyright (c) 1983, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" From: @(#)inet.4 8.1 (Berkeley) 6/5/93 +.\" $FreeBSD$ +.\" +.Dd January 26, 2012 +.Dt INET 4 +.Os +.Sh NAME +.Nm inet +.Nd Internet protocol family +.Sh SYNOPSIS +.In sys/types.h +.In netinet/in.h +.Sh DESCRIPTION +The Internet protocol family is a collection of protocols +layered atop the +.Em Internet Protocol +.Pq Tn IP +transport layer, and utilizing the Internet address format. +The Internet family provides protocol support for the +.Dv SOCK_STREAM , SOCK_DGRAM , +and +.Dv SOCK_RAW +socket types; the +.Dv SOCK_RAW +interface provides access to the +.Tn IP +protocol. +.Sh ADDRESSING +Internet addresses are four byte quantities, stored in +network standard format (on little endian machines, such as the +.Tn alpha , +.Tn amd64 , +.Tn i386 +and +.Tn ia64 +these are word and byte reversed). +The include file +.In netinet/in.h +defines this address +as a discriminated union. +.Pp +Sockets bound to the Internet protocol family utilize +the following addressing structure, +.Bd -literal -offset indent +struct sockaddr_in { + uint8_t sin_len; + sa_family_t sin_family; + in_port_t sin_port; + struct in_addr sin_addr; + char sin_zero[8]; +}; +.Ed +.Pp +Sockets may be created with the local address +.Dv INADDR_ANY +to affect +.Dq wildcard +matching on incoming messages. +The address in a +.Xr connect 2 +or +.Xr sendto 2 +call may be given as +.Dv INADDR_ANY +to mean +.Dq this host . +The distinguished address +.Dv INADDR_BROADCAST +is allowed as a shorthand for the broadcast address on the primary +network if the first network configured supports broadcast. +.Sh PROTOCOLS +The Internet protocol family is comprised of +the +.Tn IP +network protocol, Internet Control +Message Protocol +.Pq Tn ICMP , +Internet Group Management Protocol +.Pq Tn IGMP , +Transmission Control +Protocol +.Pq Tn TCP , +and User Datagram Protocol +.Pq Tn UDP . +.Tn TCP +is used to support the +.Dv SOCK_STREAM +abstraction while +.Tn UDP +is used to support the +.Dv SOCK_DGRAM +abstraction. +A raw interface to +.Tn IP +is available +by creating an Internet socket of type +.Dv SOCK_RAW . +The +.Tn ICMP +message protocol is accessible from a raw socket. +.Pp +The +.Nm +address on an interface consist of the address itself, the +netmask, either broadcast address in case of a broadcast +interface or peers address in case of point-to-point interface. +The following +.Xr ioctl 2 +commands are provided for a datagram socket in the Internet domain: +.Pp +.Bl -tag -width ".Dv SIOCGIFBRDADDR" -offset indent -compact +.It Dv SIOCAIFADDR +Add address to an interface. +The command requires +.Ft struct in_aliasreq +as argument. +.It Dv SIOCDIFADDR +Delete address from an interface. +The command requires +.Ft struct ifreq +as argument. +.It Dv SIOCGIFADDR +.It Dv SIOCGIFBRDADDR +.It Dv SIOCGIFDSTADDR +.It Dv SIOCGIFNETMASK +Return address information from interface. The returned value +is in +.Ft struct ifreq . +This way of address information retrieval is obsoleted, a +preferred way is to use +.Xr getifaddrs 3 +API. +.El +.Ss MIB Variables +A number of variables are implemented in the net.inet branch of the +.Xr sysctl 3 +MIB. +In addition to the variables supported by the transport protocols +(for which the respective manual pages may be consulted), +the following general variables are defined: +.Bl -tag -width IPCTL_FASTFORWARDING +.It Dv IPCTL_FORWARDING +.Pq ip.forwarding +Boolean: enable/disable forwarding of IP packets. +Defaults to off. +.It Dv IPCTL_FASTFORWARDING +.Pq ip.fastforwarding +Boolean: enable/disable the use of +.Tn fast IP forwarding +code. +Defaults to off. +When +.Tn fast IP forwarding +is enabled, IP packets are forwarded directly to the appropriate network +interface with direct processing to completion, which greatly improves +the throughput. +All packets for local IP addresses, non-unicast, or with IP options are +handled by the normal IP input processing path. +All features of the normal (slow) IP forwarding path are supported +including firewall (through +.Xr pfil 9 +hooks) checking, except +.Xr ipsec 4 +tunnel brokering. +The +.Tn IP fastforwarding +path does not generate ICMP redirect or source quench messages. +.It Dv IPCTL_SENDREDIRECTS +.Pq ip.redirect +Boolean: enable/disable sending of ICMP redirects in response to +.Tn IP +packets for which a better, and for the sender directly reachable, route +and next hop is known. +Defaults to on. +.It Dv IPCTL_DEFTTL +.Pq ip.ttl +Integer: default time-to-live +.Pq Dq TTL +to use for outgoing +.Tn IP +packets. +.It Dv IPCTL_ACCEPTSOURCEROUTE +.Pq ip.accept_sourceroute +Boolean: enable/disable accepting of source-routed IP packets (default false). +.It Dv IPCTL_SOURCEROUTE +.Pq ip.sourceroute +Boolean: enable/disable forwarding of source-routed IP packets (default false). +.It Dv IPCTL_RTEXPIRE +.Pq ip.rtexpire +Integer: lifetime in seconds of protocol-cloned +.Tn IP +routes after the last reference drops (default one hour). +This value varies dynamically as described above. +.It Dv IPCTL_RTMINEXPIRE +.Pq ip.rtminexpire +Integer: minimum value of ip.rtexpire (default ten seconds). +This value has no effect on user modifications, but restricts the dynamic +adaptation described above. +.It Dv IPCTL_RTMAXCACHE +.Pq ip.rtmaxcache +Integer: trigger level of cached, unreferenced, protocol-cloned routes +which initiates dynamic adaptation (default 128). +.It Va ip.process_options +Integer: control IP options processing. +By setting this variable to 0, all IP options in the incoming packets +will be ignored, and the packets will be passed unmodified. +By setting to 1, IP options in the incoming packets will be processed +accordingly. +By setting to 2, an +.Tn ICMP +.Dq "prohibited by filter" +message will be sent back in response to incoming packets with IP options. +Default is 1. +This +.Xr sysctl 8 +variable affects packets destined for a local host as well as packets +forwarded to some other host. +.It Va ip.random_id +Boolean: control IP IDs generation behaviour. +Setting this +.Xr sysctl 8 +to non-zero causes the ID field in IP packets to be randomized instead of +incremented by 1 with each packet generated. +This closes a minor information leak which allows remote observers to +determine the rate of packet generation on the machine by watching the +counter. +In the same time, on high-speed links, it can decrease the ID reuse +cycle greatly. +Default is 0 (sequential IP IDs). +IPv6 flow IDs and fragment IDs are always random. +.It Va ip.maxfragpackets +Integer: maximum number of fragmented packets the host will accept and hold +in the reassembling queue simultaneously. +0 means that the host will not accept any fragmented packets. +\-1 means that the host will accept as many fragmented packets as it receives. +.It Va ip.maxfragsperpacket +Integer: maximum number of fragments the host will accept and hold +in the reassembling queue for a packet. +0 means that the host will not accept any fragmented packets. +.El +.Sh SEE ALSO +.Xr ioctl 2 , +.Xr socket 2 , +.Xr getifaddrs 3 , +.Xr sysctl 3 , +.Xr icmp 4 , +.Xr intro 4 , +.Xr ip 4 , +.Xr ipfirewall 4 , +.Xr route 4 , +.Xr tcp 4 , +.Xr udp 4 , +.Xr pfil 9 +.Rs +.%T "An Introductory 4.3 BSD Interprocess Communication Tutorial" +.%B PS1 +.%N 7 +.Re +.Rs +.%T "An Advanced 4.3 BSD Interprocess Communication Tutorial" +.%B PS1 +.%N 8 +.Re +.Sh HISTORY +The +.Nm +protocol interface appeared in +.Bx 4.2 . +The +.Dq protocol cloning +code appeared in +.Fx 2.1 . +.Sh CAVEATS +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. |