1afe61c15SRodney W. Grimes.\" Copyright (c) 1983, 1991, 1993 2afe61c15SRodney W. Grimes.\" The Regents of the University of California. All rights reserved. 3afe61c15SRodney W. Grimes.\" 4afe61c15SRodney W. Grimes.\" Redistribution and use in source and binary forms, with or without 5afe61c15SRodney W. Grimes.\" modification, are permitted provided that the following conditions 6afe61c15SRodney W. Grimes.\" are met: 7afe61c15SRodney W. Grimes.\" 1. Redistributions of source code must retain the above copyright 8afe61c15SRodney W. Grimes.\" notice, this list of conditions and the following disclaimer. 9afe61c15SRodney W. Grimes.\" 2. Redistributions in binary form must reproduce the above copyright 10afe61c15SRodney W. Grimes.\" notice, this list of conditions and the following disclaimer in the 11afe61c15SRodney W. Grimes.\" documentation and/or other materials provided with the distribution. 12dda5b397SEitan Adler.\" 3. Neither the name of the University nor the names of its contributors 13afe61c15SRodney W. Grimes.\" may be used to endorse or promote products derived from this software 14afe61c15SRodney W. Grimes.\" without specific prior written permission. 15afe61c15SRodney W. Grimes.\" 16afe61c15SRodney W. Grimes.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 17afe61c15SRodney W. Grimes.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18afe61c15SRodney W. Grimes.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19afe61c15SRodney W. Grimes.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 20afe61c15SRodney W. Grimes.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21afe61c15SRodney W. Grimes.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22afe61c15SRodney W. Grimes.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23afe61c15SRodney W. Grimes.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24afe61c15SRodney W. Grimes.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25afe61c15SRodney W. Grimes.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26afe61c15SRodney W. Grimes.\" SUCH DAMAGE. 27afe61c15SRodney W. Grimes.\" 28*48ef7ed7SEd Maste.Dd December 31, 2024 29afe61c15SRodney W. Grimes.Dt INET 4 303d45e180SRuslan Ermilov.Os 31afe61c15SRodney W. Grimes.Sh NAME 32afe61c15SRodney W. Grimes.Nm inet 33afe61c15SRodney W. Grimes.Nd Internet protocol family 34afe61c15SRodney W. Grimes.Sh SYNOPSIS 3532eef9aeSRuslan Ermilov.In sys/types.h 3632eef9aeSRuslan Ermilov.In netinet/in.h 37afe61c15SRodney W. Grimes.Sh DESCRIPTION 38afe61c15SRodney W. GrimesThe Internet protocol family is a collection of protocols 39afe61c15SRodney W. Grimeslayered atop the 40afe61c15SRodney W. Grimes.Em Internet Protocol 41afe61c15SRodney W. Grimes.Pq Tn IP 42afe61c15SRodney W. Grimestransport layer, and utilizing the Internet address format. 43afe61c15SRodney W. GrimesThe Internet family provides protocol support for the 44afe61c15SRodney W. Grimes.Dv SOCK_STREAM , SOCK_DGRAM , 45afe61c15SRodney W. Grimesand 46afe61c15SRodney W. Grimes.Dv SOCK_RAW 47afe61c15SRodney W. Grimessocket types; the 48afe61c15SRodney W. Grimes.Dv SOCK_RAW 49afe61c15SRodney W. Grimesinterface provides access to the 50afe61c15SRodney W. Grimes.Tn IP 51afe61c15SRodney W. Grimesprotocol. 52afe61c15SRodney W. Grimes.Sh ADDRESSING 53afe61c15SRodney W. GrimesInternet addresses are four byte quantities, stored in 544d721ca3SWarner Loshnetwork standard format (on little endian machines, such as the 554d721ca3SWarner Losh.Tn alpha , 56e7d939bdSMarcel Moolenaar.Tn amd64 574d721ca3SWarner Loshand 58e7d939bdSMarcel Moolenaar.Tn i386 594d721ca3SWarner Loshthese are word and byte reversed). 60b5e7e999SRuslan ErmilovThe include file 61fe08efe6SRuslan Ermilov.In netinet/in.h 62afe61c15SRodney W. Grimesdefines this address 63afe61c15SRodney W. Grimesas a discriminated union. 64afe61c15SRodney W. Grimes.Pp 65afe61c15SRodney W. GrimesSockets bound to the Internet protocol family utilize 66afe61c15SRodney W. Grimesthe following addressing structure, 67afe61c15SRodney W. Grimes.Bd -literal -offset indent 68afe61c15SRodney W. Grimesstruct sockaddr_in { 6975eb8a43SRuslan Ermilov uint8_t sin_len; 7075eb8a43SRuslan Ermilov sa_family_t sin_family; 7175eb8a43SRuslan Ermilov in_port_t sin_port; 72afe61c15SRodney W. Grimes struct in_addr sin_addr; 73afe61c15SRodney W. Grimes char sin_zero[8]; 74afe61c15SRodney W. Grimes}; 75afe61c15SRodney W. Grimes.Ed 76afe61c15SRodney W. Grimes.Pp 77afe61c15SRodney W. GrimesSockets may be created with the local address 78afe61c15SRodney W. Grimes.Dv INADDR_ANY 79db3357b8SSheldon Hearnto affect 80afe61c15SRodney W. Grimes.Dq wildcard 81afe61c15SRodney W. Grimesmatching on incoming messages. 82afe61c15SRodney W. GrimesThe address in a 83afe61c15SRodney W. Grimes.Xr connect 2 84afe61c15SRodney W. Grimesor 85afe61c15SRodney W. Grimes.Xr sendto 2 86afe61c15SRodney W. Grimescall may be given as 87afe61c15SRodney W. Grimes.Dv INADDR_ANY 88afe61c15SRodney W. Grimesto mean 89afe61c15SRodney W. Grimes.Dq this host . 90afe61c15SRodney W. GrimesThe distinguished address 91afe61c15SRodney W. Grimes.Dv INADDR_BROADCAST 92afe61c15SRodney W. Grimesis allowed as a shorthand for the broadcast address on the primary 93afe61c15SRodney W. Grimesnetwork if the first network configured supports broadcast. 94afe61c15SRodney W. Grimes.Sh PROTOCOLS 95afe61c15SRodney W. GrimesThe Internet protocol family is comprised of 96afe61c15SRodney W. Grimesthe 97afe61c15SRodney W. Grimes.Tn IP 98a2cc1fa2SGarrett Wollmannetwork protocol, Internet Control 99afe61c15SRodney W. GrimesMessage Protocol 100afe61c15SRodney W. Grimes.Pq Tn ICMP , 101a2cc1fa2SGarrett WollmanInternet Group Management Protocol 102a2cc1fa2SGarrett Wollman.Pq Tn IGMP , 103afe61c15SRodney W. GrimesTransmission Control 104afe61c15SRodney W. GrimesProtocol 105afe61c15SRodney W. Grimes.Pq Tn TCP , 106afe61c15SRodney W. Grimesand User Datagram Protocol 107afe61c15SRodney W. Grimes.Pq Tn UDP . 108afe61c15SRodney W. Grimes.Tn TCP 109afe61c15SRodney W. Grimesis used to support the 110afe61c15SRodney W. Grimes.Dv SOCK_STREAM 111afe61c15SRodney W. Grimesabstraction while 112afe61c15SRodney W. Grimes.Tn UDP 113afe61c15SRodney W. Grimesis used to support the 114afe61c15SRodney W. Grimes.Dv SOCK_DGRAM 115b5e7e999SRuslan Ermilovabstraction. 116b5e7e999SRuslan ErmilovA raw interface to 117afe61c15SRodney W. Grimes.Tn IP 118afe61c15SRodney W. Grimesis available 119afe61c15SRodney W. Grimesby creating an Internet socket of type 120afe61c15SRodney W. Grimes.Dv SOCK_RAW . 121afe61c15SRodney W. GrimesThe 122afe61c15SRodney W. Grimes.Tn ICMP 123afe61c15SRodney W. Grimesmessage protocol is accessible from a raw socket. 124afe61c15SRodney W. Grimes.Pp 125c1f9914bSGleb SmirnoffThe 126c1f9914bSGleb Smirnoff.Nm 127c1f9914bSGleb Smirnoffaddress on an interface consist of the address itself, the 128c1f9914bSGleb Smirnoffnetmask, either broadcast address in case of a broadcast 129c1f9914bSGleb Smirnoffinterface or peers address in case of point-to-point interface. 130c1f9914bSGleb SmirnoffThe following 131afe61c15SRodney W. Grimes.Xr ioctl 2 132c1f9914bSGleb Smirnoffcommands are provided for a datagram socket in the Internet domain: 133c1f9914bSGleb Smirnoff.Pp 134c1f9914bSGleb Smirnoff.Bl -tag -width ".Dv SIOCGIFBRDADDR" -offset indent -compact 135c1f9914bSGleb Smirnoff.It Dv SIOCAIFADDR 136c1f9914bSGleb SmirnoffAdd address to an interface. 137c1f9914bSGleb SmirnoffThe command requires 138c1f9914bSGleb Smirnoff.Ft struct in_aliasreq 139c1f9914bSGleb Smirnoffas argument. 140c1f9914bSGleb Smirnoff.It Dv SIOCDIFADDR 141c1f9914bSGleb SmirnoffDelete address from an interface. 142c1f9914bSGleb SmirnoffThe command requires 143c1f9914bSGleb Smirnoff.Ft struct ifreq 144c1f9914bSGleb Smirnoffas argument. 145c1f9914bSGleb Smirnoff.It Dv SIOCGIFADDR 146c1f9914bSGleb Smirnoff.It Dv SIOCGIFBRDADDR 147c1f9914bSGleb Smirnoff.It Dv SIOCGIFDSTADDR 148afe61c15SRodney W. Grimes.It Dv SIOCGIFNETMASK 14925972509SEdward Tomasz NapieralaReturn address information from interface. 15025972509SEdward Tomasz NapieralaThe returned value is in 151c1f9914bSGleb Smirnoff.Ft struct ifreq . 152c1f9914bSGleb SmirnoffThis way of address information retrieval is obsoleted, a 153c1f9914bSGleb Smirnoffpreferred way is to use 154c1f9914bSGleb Smirnoff.Xr getifaddrs 3 155c1f9914bSGleb SmirnoffAPI. 156afe61c15SRodney W. Grimes.El 157cf2ca148SMike Karels.Ss MIB (sysctl) Variables 158b691e485SMike KarelsIn addition to the variables supported by the transport protocols in 159b691e485SMike Karels.Va net.inet 160b691e485SMike Karels(for which the respective manual pages may be consulted), 161b691e485SMike Karelsthere are a number of general variables implemented in the 162b691e485SMike Karels.Va net.inet.ip 163b691e485SMike Karelsbranch of the 164a2cc1fa2SGarrett Wollman.Xr sysctl 3 165cf2ca148SMike KarelsMIB, which can be also read or modified with 166cf2ca148SMike Karels.Xr sysctl 8 . 16760052a11SMike KarelsThe following general variables are defined: 168b691e485SMike Karels.Bl -tag -width ".Va accept_sourceroute" 169ace68b1fSMike Karels.It Va accept_sourceroute 170ace68b1fSMike KarelsBoolean: enable/disable accepting of source-routed IP packets (default false). 171ace68b1fSMike Karels.It Va allow_net0 172*48ef7ed7SEd MasteBoolean: allow forwarding of, and ICMP responses to, packets with addresses in 173*48ef7ed7SEd Maste0.0.0.0/8. 174ace68b1fSMike Karels.It Va allow_net240 175*48ef7ed7SEd MasteBoolean: allow forwarding of, and ICMP responses to, packets with addresses in 176*48ef7ed7SEd Maste240.0.0.0/4. 177cf2ca148SMike Karels.It Va curfrags 178cf2ca148SMike KarelsInteger: Current number of IPv4 fragments across all reassembly queues 179cf2ca148SMike Karelsin all VNETs (read-only). 180b691e485SMike Karels.It Va forwarding 1810f5d195dSDag-Erling SmørgravBoolean: enable/disable forwarding of IP packets. 1820f5d195dSDag-Erling SmørgravDefaults to off. 183cf2ca148SMike Karels.It Va fragpackets 184cf2ca148SMike KarelsInteger: Current number of IPv4 fragment reassembly queue entries 185cf2ca148SMike Karelsfor the VNET (read-only). 186a30cb315SGleb Smirnoff.It Va fragttl 187a30cb315SGleb SmirnoffInteger: time to live for IPv4 packet fragments in the per-VNET reassemby queue. 188ace68b1fSMike Karels.It Va loopback_prefixlen 189ace68b1fSMike KarelsInteger: prefix length of the address space reserved for loopback purposes. 190ace68b1fSMike KarelsThe default is 8, meaning that 127.0.0.0/8 is reserved for loopback, 191ace68b1fSMike Karelsand cannot be sent, received, or forwarded on a non-loopback interface. 192ace68b1fSMike KarelsUse of other values is experimental. 193ace68b1fSMike Karels.It Va maxfragbucketsize 194ace68b1fSMike KarelsInteger: maximum number of reassembly queues per bucket. 195ace68b1fSMike KarelsFragmented packets are hashed to buckets. 196ace68b1fSMike KarelsEach bucket has a list of reassembly queues. 197ace68b1fSMike KarelsThe system must compare the incoming packets to the existing reassembly queues 198ace68b1fSMike Karelsin the bucket to find a matching reassembly queue. 199ace68b1fSMike KarelsTo preserve system resources, the system limits the number of reassembly 200ace68b1fSMike Karelsqueues allowed in each bucket. 201ace68b1fSMike KarelsThis limit is recalculated when the number of mbuf clusters is changed or 202ace68b1fSMike Karelswhen the value of 203ace68b1fSMike Karels.Va maxfragpackets 204ace68b1fSMike Karelschanges. 205ace68b1fSMike KarelsThis is a per-VNET limit. 206ace68b1fSMike Karels.It Va maxfragpackets 207ace68b1fSMike KarelsInteger: maximum number of fragmented packets the host will accept and 208ace68b1fSMike Karelssimultaneously hold in the reassembly queue for a particular VNET. 209ace68b1fSMike Karels0 means that the host will not accept any fragmented packets for that VNET. 210ace68b1fSMike Karels\-1 means that the host will not apply this limit for that VNET. 211ace68b1fSMike KarelsThis limit is recalculated when the number of mbuf clusters is changed. 212ace68b1fSMike KarelsThis is a per-VNET limit. 213ace68b1fSMike Karels.It Va maxfrags 214ace68b1fSMike KarelsInteger: maximum number of fragments the host will accept and simultaneously 215ace68b1fSMike Karelshold across all reassembly queues in all VNETs. 216ace68b1fSMike KarelsIf set to 0, reassembly is disabled. 217ace68b1fSMike KarelsIf set to -1, this limit is not applied. 218ace68b1fSMike KarelsThis limit is recalculated when the number of mbuf clusters is changed. 219ace68b1fSMike KarelsThis is a global limit. 220ace68b1fSMike Karels.It Va maxfragsperpacket 221ace68b1fSMike KarelsInteger: maximum number of fragments the host will accept and hold 222ace68b1fSMike Karelsin the reassembly queue for a packet. 223ace68b1fSMike Karels0 means that the host will not accept any fragmented packets for the VNET. 224ace68b1fSMike KarelsThis is a per-VNET limit. 225cf2ca148SMike Karels.It Va mcast 226cf2ca148SMike KarelsVariables under the 227cf2ca148SMike Karels.Va net.inet.ip.mcast 228cf2ca148SMike Karelsnode are documented in 229cf2ca148SMike Karels.Xr ip 4 . 230cf2ca148SMike Karels.It Va no_same_prefix 231cf2ca148SMike KarelsBoolean: Refuse to create same prefixes on different interfaces. 232cf2ca148SMike KarelsThis is a per-VNET value. 233cf2ca148SMike Karels.It Va portrange 234cf2ca148SMike KarelsVariables under the 235cf2ca148SMike Karels.Va net.inet.ip.portrange 236cf2ca148SMike Karelsnode control port ranges used by transport protocols; see 237cf2ca148SMike Karels.Xr ip 4 238cf2ca148SMike Karelsfor details. 239b691e485SMike Karels.It Va process_options 240a65cfc98SMaxim KonovalovInteger: control IP options processing. 241a65cfc98SMaxim KonovalovBy setting this variable to 0, all IP options in the incoming packets 242a65cfc98SMaxim Konovalovwill be ignored, and the packets will be passed unmodified. 243a65cfc98SMaxim KonovalovBy setting to 1, IP options in the incoming packets will be processed 244a65cfc98SMaxim Konovalovaccordingly. 245a65cfc98SMaxim KonovalovBy setting to 2, an 246a65cfc98SMaxim Konovalov.Tn ICMP 247a65cfc98SMaxim Konovalov.Dq "prohibited by filter" 2480af22117SMike Pritchardmessage will be sent back in response to incoming packets with IP options. 249a65cfc98SMaxim KonovalovDefault is 1. 250a65cfc98SMaxim KonovalovThis 251a65cfc98SMaxim Konovalov.Xr sysctl 8 252a65cfc98SMaxim Konovalovvariable affects packets destined for a local host as well as packets 253a65cfc98SMaxim Konovalovforwarded to some other host. 254b691e485SMike Karels.It Va random_id 255ace68b1fSMike KarelsBoolean: control IP IDs generation behavior. 2564892c9a4SMaxim KonovalovSetting this 2574892c9a4SMaxim Konovalov.Xr sysctl 8 2586d947416SGleb Smirnoffto 1 causes the ID field in 2596d947416SGleb Smirnoff.Em non-atomic 2606d947416SGleb SmirnoffIP datagrams (or all IP datagrams, if 261b691e485SMike Karels.Va rfc6864 2626d947416SGleb Smirnoffis disabled) to be randomized instead of incremented by 1 with each packet 2636d947416SGleb Smirnoffgenerated. 26410e69389SHans Petter SelaskyThis closes a minor information leak which allows remote observers to 26510e69389SHans Petter Selaskydetermine the rate of packet generation on the machine by watching the 26610e69389SHans Petter Selaskycounter. 2677ab169a3SHans Petter SelaskyAt the same time, on high-speed links, it can decrease the ID reuse 268b2df3ab1SMaxim Konovalovcycle greatly. 2694892c9a4SMaxim KonovalovDefault is 0 (sequential IP IDs). 2704892c9a4SMaxim KonovalovIPv6 flow IDs and fragment IDs are always random. 271cf2ca148SMike Karels.It Va random_id_collisions 272cf2ca148SMike KarelsInteger: count of IP ID collisions (read-only, per-VNET). 273cf2ca148SMike Karels.It Va random_id_period 274cf2ca148SMike KarelsInteger: size of the IP ID array, which is the number of previous packets 275cf2ca148SMike Karelsfor which the IDs are recorded. 276cf2ca148SMike KarelsThe number must be between 512 and 32768 inclusive. 277cf2ca148SMike KarelsThis is a per-VNET value. 278cf2ca148SMike Karels.It Va random_id_total 279cf2ca148SMike KarelsInteger: count of IP IDs created (read-only, per-VNET). 2801494f477SGleb Smirnoff.It Va reass_hashsize 2811494f477SGleb SmirnoffNumber of hash slots in the IPv4 reassembly queue (loader tunable). 282ace68b1fSMike Karels.It Va redirect 283ace68b1fSMike KarelsBoolean: enable/disable sending of ICMP redirects in response to 284ace68b1fSMike Karels.Tn IP 285ace68b1fSMike Karelspackets for which a better, and for the sender directly reachable, route 286ace68b1fSMike Karelsand next hop is known. 287ace68b1fSMike KarelsDefaults to on. 288ace68b1fSMike Karels.It Va rfc1122_strong_es 289ace68b1fSMike KarelsBoolean: in non-forwarding mode 290ace68b1fSMike Karels.Pq forwarding is disabled 291ace68b1fSMike Karelspartially implement the Strong End System model per RFC1122. 292ace68b1fSMike KarelsIf a packet with destination address that is local arrives on a different 293ace68b1fSMike Karelsinterface than the interface the address belongs to, the packet would be 294ace68b1fSMike Karelssilently dropped. 295ace68b1fSMike KarelsEnabling this option may break certain setups, e.g. having an alias address(es) 296ace68b1fSMike Karelson loopback that are expected to be reachable by outside traffic. 297ace68b1fSMike KarelsEnabling some other network features, e.g. 298ace68b1fSMike Karels.Xr carp 4 299ace68b1fSMike Karelsor destination address rewriting 300ace68b1fSMike Karels.Xr pfil 4 301ace68b1fSMike Karelsfilters may override and bypass this check. 302ace68b1fSMike KarelsDisabled by default. 303ace68b1fSMike Karels.It Va rfc6864 304ace68b1fSMike KarelsBoolean: control IP IDs generation behaviour. 305ace68b1fSMike KarelsTrue value enables RFC6864 support, which specifies that IP ID field of 306ace68b1fSMike Karels.Em atomic 307ace68b1fSMike Karelsdatagrams can be set to any value. 308ace68b1fSMike KarelsThe 309ace68b1fSMike Karels.Fx implementation sets it to zero. 310ace68b1fSMike KarelsEnabled by default. 311ace68b1fSMike Karels.It Va source_address_validation 312ace68b1fSMike KarelsBoolean: perform source address validation for packets destined for the local 313ace68b1fSMike Karelshost. 314ace68b1fSMike KarelsConsider this as following Section 3.2 of RFC3704/BCP84, where we treat local 315ace68b1fSMike Karelshost as our own infrastructure. 316ace68b1fSMike KarelsForwarded packets are unaffected by this 317ace68b1fSMike Karelsand it should not be considered an anti-spoof feature for a router. 318ace68b1fSMike KarelsEnabled by default. 319ace68b1fSMike Karels.It Va sourceroute 320ace68b1fSMike KarelsBoolean: enable/disable forwarding of source-routed IP packets (default false). 321ace68b1fSMike Karels.It Va ttl 322ace68b1fSMike KarelsInteger: default time-to-live 323ace68b1fSMike Karels.Pq Dq TTL 324ace68b1fSMike Karelsto use for outgoing 325ace68b1fSMike Karels.Tn IP 326ace68b1fSMike Karelspackets. 327a2cc1fa2SGarrett Wollman.El 328afe61c15SRodney W. Grimes.Sh SEE ALSO 329afe61c15SRodney W. Grimes.Xr ioctl 2 , 330afe61c15SRodney W. Grimes.Xr socket 2 , 331c1f9914bSGleb Smirnoff.Xr getifaddrs 3 , 332a2cc1fa2SGarrett Wollman.Xr sysctl 3 , 3330b992c1dSWolfram Schneider.Xr icmp 4 , 334afe61c15SRodney W. Grimes.Xr intro 4 , 3350b992c1dSWolfram Schneider.Xr ip 4 , 3360f5d195dSDag-Erling Smørgrav.Xr ipfirewall 4 , 337bf59255fSAndre Oppermann.Xr route 4 , 338afe61c15SRodney W. Grimes.Xr tcp 4 , 339bf59255fSAndre Oppermann.Xr udp 4 , 340cf2ca148SMike Karels.Xr sysctl 8 , 341bf59255fSAndre Oppermann.Xr pfil 9 342afe61c15SRodney W. Grimes.Rs 343afe61c15SRodney W. Grimes.%T "An Introductory 4.3 BSD Interprocess Communication Tutorial" 344afe61c15SRodney W. Grimes.%B PS1 345afe61c15SRodney W. Grimes.%N 7 346afe61c15SRodney W. Grimes.Re 347afe61c15SRodney W. Grimes.Rs 348afe61c15SRodney W. Grimes.%T "An Advanced 4.3 BSD Interprocess Communication Tutorial" 349afe61c15SRodney W. Grimes.%B PS1 350afe61c15SRodney W. Grimes.%N 8 351afe61c15SRodney W. Grimes.Re 352afe61c15SRodney W. Grimes.Sh HISTORY 353afe61c15SRodney W. GrimesThe 354afe61c15SRodney W. Grimes.Nm 355afe61c15SRodney W. Grimesprotocol interface appeared in 356afe61c15SRodney W. Grimes.Bx 4.2 . 357a2cc1fa2SGarrett WollmanThe 358a2cc1fa2SGarrett Wollman.Dq protocol cloning 359a2cc1fa2SGarrett Wollmancode appeared in 36046f84fcbSMike Pritchard.Fx 2.1 . 3610afc94c1SUlrich Spörlein.Sh CAVEATS 3620afc94c1SUlrich SpörleinThe Internet protocol support is subject to change as 3630afc94c1SUlrich Spörleinthe Internet protocols develop. 3640afc94c1SUlrich SpörleinUsers should not depend 3650afc94c1SUlrich Spörleinon details of the current implementation, but rather 3660afc94c1SUlrich Spörleinthe services exported. 367