aboutsummaryrefslogtreecommitdiff
path: root/share/man
diff options
context:
space:
mode:
authorGarrett Wollman <wollman@FreeBSD.org>1995-02-15 03:30:54 +0000
committerGarrett Wollman <wollman@FreeBSD.org>1995-02-15 03:30:54 +0000
commita2cc1fa20520c3cb6fe008e78db819e03de5773a (patch)
tree4840feef680d6710b8e45a854120876f476710dd /share/man
parent6b03a7ffc51421df485bc11d1017b43b2d678176 (diff)
downloadsrc-a2cc1fa20520c3cb6fe008e78db819e03de5773a.tar.gz
src-a2cc1fa20520c3cb6fe008e78db819e03de5773a.zip
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).
Notes
Notes: svn path=/head/; revision=6415
Diffstat (limited to 'share/man')
-rw-r--r--share/man/man4/inet.4138
-rw-r--r--share/man/man4/tcp.4118
2 files changed, 224 insertions, 32 deletions
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.