From a2cc1fa20520c3cb6fe008e78db819e03de5773a Mon Sep 17 00:00:00 2001 From: Garrett Wollman Date: Wed, 15 Feb 1995 03:30:54 +0000 Subject: Document TCP MIB variables (tcp.4). Document IP MIB variables (inet.4). Document Internet-family protocol-specified route cloning (inet.4). Delete all references to classed addresses (inet.4). --- share/man/man4/inet.4 | 138 +++++++++++++++++++++++++++++++++++++++++++------- share/man/man4/tcp.4 | 118 +++++++++++++++++++++++++++++++++++++----- 2 files changed, 224 insertions(+), 32 deletions(-) (limited to 'share/man') diff --git a/share/man/man4/inet.4 b/share/man/man4/inet.4 index 690bfca5e631..6e97c9454b2b 100644 --- a/share/man/man4/inet.4 +++ b/share/man/man4/inet.4 @@ -29,9 +29,10 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" @(#)inet.4 8.1 (Berkeley) 6/5/93 +.\" From: @(#)inet.4 8.1 (Berkeley) 6/5/93 +.\" $Id$ .\" -.Dd June 5, 1993 +.Dd February 14, 1995 .Dt INET 4 .Os BSD 4.2 .Sh NAME @@ -97,9 +98,11 @@ network if the first network configured supports broadcast. The Internet protocol family is comprised of the .Tn IP -transport protocol, Internet Control +network protocol, Internet Control Message Protocol .Pq Tn ICMP , +Internet Group Management Protocol +.Pq Tn IGMP , Transmission Control Protocol .Pq Tn TCP , @@ -122,22 +125,11 @@ The message protocol is accessible from a raw socket. .Pp The 32-bit Internet address contains both network and host parts. -It is frequency-encoded; the most-significant bit is clear -in Class A addresses, in which the high-order 8 bits are the network -number. -Class B addresses use the high-order 16 bits as the network field, -and Class C addresses have a 24-bit network part. -Sites with a cluster of local networks and a connection to the -Internet may chose to use a single network number for the cluster; -this is done by using subnet addressing. -The local (host) portion of the address is further subdivided -into subnet and host parts. -Within a subnet, each subnet appears to be an individual network; -externally, the entire cluster appears to be a single, uniform -network requiring only a single routing entry. -Subnet addressing is enabled and examined by the following +However, direct examination of addresses is discouraged. For those +programs which absolutely need to break addresses into their component +parts, the following .Xr ioctl 2 -commands on a datagram socket in the Internet domain; +commands are provided for a datagram socket in the Internet domain; they have the same form as the .Dv SIOCIFADDR command (see @@ -152,14 +144,117 @@ then subnets are in use. .It Dv SIOCGIFNETMASK Get interface network mask. .El +.Sh ROUTING +The current implementation of Internet protocols includes some routing-table +adaptations to provide enhanced caching of certain end-to-end +information necessary for Transaction TCP and Path MTU Discovery. The +following changes are the most significant: +.Bl -enum +.It +All IP routes, except those with the +.Dv RTF_CLONING +flag and those to multicast destinations, have the +.Dv RTF_PRCLONING +flag forcibly enabled (they are thus said to be +.Dq "protocol cloning" ). +.It +When the last reference to an IP route is dropped, the route is +examined to determine if it was created by cloning such a route. If +this is the case, the +.Dv RTF_PROTO3 +flag is turned on, and the expiration timer is initialized to go off +in net.inet.ip.rtexpire seconds. If such a route is re-referenced, +the flag and expiration timer are reset. +.It +A kernel timeout runs once every ten minutes, or sooner if there are +soon-to-expire routes in the kernel routing table, and deletes the +expired routes. +.El +.Pp +A dynamic process is in place to modify the value of +net.inet.ip.rtexpire if the number of cached routes grows too large. +If after an expiration run there are still more than +net.inet.ip.rtmaxcache unreferenced routes remaining, the rtexpire +value is multiplied by 3/4, and any routes which have longer +expiration times have those times adjusted. This process is damped +somewhat by specification of a minimum rtexpire value +(net.inet.ip.rtminexpire), and by restricting the reduction to once in +a ten-minute period. +.Pp +If some external process deletes the original route from which a +protocol-cloned route was generated, the ``child route'' is deleted. +(This is actually a generic mechanism in the routing code support for +protocol-requested cloning.) +.Pp +No attempt is made to manage routes which were not created by protocol +cloning; these are assumed to be static, under the management of an +external routing process, or under the management of a link layer +(e.g., +.Tn ARP +for Ethernets). +.Pp +Only certain types of network activity will result in the cloning of a +route using this mechanism. Specifically, those protocols (such as +.Tn TCP +and +.Tn UDP ) +which themselves cache a long-lasting reference to route for a destination +will trigger the mechanism; whereas raw +.Tn IP +packets, whether locally-generated or forwarded, will not. +.Sh 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 see the respective manual pages), the following +general variables are defined: +.Bl -tag -width IPCTL_SENDREDIRECTS +.It Dv IPCTL_FORWARDING +.Pq ip.forwarding +Boolean: enable/disable forwarding of IP packets (default depends on +the +.Dv GATEWAY +kernel configuration option). +.It Dv IPCTL_SENDREDIRECTS +.Pq ip.redirect +Boolean: enable/disable sending of ICMP redirects in response to +unforwardable +.Tn IP +packets (default true). +.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_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). +.El .Sh SEE ALSO .Xr ioctl 2 , .Xr socket 2 , +.Xr sysctl 3 , .Xr intro 4 , .Xr tcp 4 , +.Xr ttcp 4 , .Xr udp 4 , .Xr ip 4 , -.Xr icmp 4 +.Xr icmp 4 , +.Xr igmp 4 .Rs .%T "An Introductory 4.3 BSD Interprocess Communication Tutorial" .%B PS1 @@ -180,3 +275,8 @@ The .Nm protocol interface appeared in .Bx 4.2 . +The +.Dq protocol cloning +code appeared in +.Tn FreeBSD +2.1. diff --git a/share/man/man4/tcp.4 b/share/man/man4/tcp.4 index 7f559558b8b9..ff5604273e30 100644 --- a/share/man/man4/tcp.4 +++ b/share/man/man4/tcp.4 @@ -29,9 +29,10 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" @(#)tcp.4 8.1 (Berkeley) 6/5/93 +.\" From: @(#)tcp.4 8.1 (Berkeley) 6/5/93 +.\" $Id$ .\" -.Dd June 5, 1993 +.Dd February 14, 1995 .Dt TCP 4 .Os BSD 4.2 .Sh NAME @@ -79,6 +80,11 @@ call to accept incoming connections. Only active sockets may use the .Xr connect 2 call to initiate connections. +.Tn TCP +also supports a more datagram-like mode, called Transaction +.Tn TCP , +which is described in +.Xr ttcp 4 . .Pp Passive sockets may .Dq underspecify @@ -102,10 +108,12 @@ through which packets are being transmitted and received. Normally this address corresponds to the peer entity's network. .Pp .Tn TCP -supports one socket option which is set with +supports a number of socket options which can be set with .Xr setsockopt 2 and tested with -.Xr getsockopt 2 . +.Xr getsockopt 2 : +.Bl -tag -width TCP_NODELAYx +.It Dv TCP_NODELAY Under most circumstances, .Tn TCP sends data when it is presented; @@ -115,19 +123,57 @@ an acknowledgement is received. For a small number of clients, such as window systems that send a stream of mouse events which receive no replies, this packetization may cause significant delays. -Therefore, -.Tn TCP -provides a boolean option, +The boolean option .Dv TCP_NODELAY -(from -.Aq Pa netinet/tcp.h , -to defeat this algorithm. +defeats this algorithm. +.It Dv TCP_MAXSEG +By default, a sender\- and receiver-TCP +will negotiate among themselves to determine the maximum segment size +to be used for each connection. The +.Dv TCP_MAXSEG +option allows the user to determine the result of this negotiation, +and to reduce it if desired. +.It Dv TCP_NOOPT +.Tn TCP +usually sends a number of options in each packet, corresponding to +various +.Tn TCP +extensions which are provided in this implementation. The boolean +option +.Dv TCP_NOOPT +is provided to disable +.Tn TCP +option use on a per-connection basis. +.It Dv TCP_NOPUSH +By convention, the sender-TCP +will set the +.Dq push +bit and begin transmission immediately (if permitted) at the end of +every user call to +.Xr write +or +.Xr writev . +The +.Dv TCP_NOPUSH +option is provided to allow servers to easily make use of Transaction +TCP (see +.Xr ttcp 4 ). +When the option is set to a non-zero value, +.Tn TCP +will delay sending any data at all until either the socket is closed, +or the internal send buffer is filled. +.El +.Pp The option level for the .Xr setsockopt call is the protocol number for .Tn TCP , available from -.Xr getprotobyname 3 . +.Xr getprotobyname 3 , +or +.Dv IPPROTO_TCP . +All options are declared in +.Aq Pa netinet/tcp.h . .Pp Options at the .Tn IP @@ -137,6 +183,30 @@ see .Xr ip 4 . Incoming connection requests that are source-routed are noted, and the reverse source route is used in responding. +.Sh MIB VARIABLES +The +.Nm +protocol implements three variables in the +.Li net.inet +branch of the +.Xr sysctl 3 +MIB. +.Bl -tag -width TCPCTL_DO_RFC1644 +.It Dv TCPCTL_DO_RFC1323 +.Pq tcp.rfc1323 +Implement the window scaling and timestamp options of RFC 1323 +(default true). +.It Dv TCPCTL_DO_RFC1644 +.Pq tcp.rfc1644 +Implement Transaction +.Tn TCP , +as described in RFC 1644. +.It Dv TCPCTL_MSSDFLT +.Pq tcp.mssdflt +The default value used for the maximum segment size +.Pq Dq MSS +when no advice to the contrary is received from MSS negotiation. +.El .Sh DIAGNOSTICS A socket operation may fail with one of the following errors returned: .Bl -tag -width [EADDRNOTAVAIL] @@ -171,11 +241,33 @@ address. .Sh SEE ALSO .Xr getsockopt 2 , .Xr socket 2 , +.Xr sysctl 3 , .Xr intro 4 , .Xr inet 4 , -.Xr ip 4 +.Xr ip 4 , +.Xr ttcp 4 +.Rs +.%A V. Jacobson, R. Braden, and D. Borman +.%T "TCP Extensions for High Performance" +.%O RFC 1323 +.Re +.Rs +.%A R. Braden +.%T "T/TCP \- TCP Extensions for Transactions" +.%O RFC 1644 +.Re .Sh HISTORY The .Nm -protocol stack appeared in +protocol appeared in .Bx 4.2 . +The RFC 1323 extensions for window scaling and timestamps were added +in +.Bx 4.4 . +The +.Tn "Transaction TCP" +extensions were added in +.Tn FreeBSD +2.0, based on code written for +.Tn SunOS +by Robert Braden and Liming Wei. -- cgit v1.2.3