E.1 BSD386 Version 1.0

E.1 BSD/386 Version 1.0

This system is an example of the "classical" BSD configuration that has been used since 4.2BSD. Since the source code is distributed with the system, configuration options are specified by the administrator, and the kernel is recompiled. There are two types of options: constants that are defined in the kernel configuration file (see the config (8) manual page), and variable initializations in various C source files. Brave and knowledgeable administrators can also change the values of these C variables in either the running kernel or the kernel's disk image, using a debugger, to avoid rebuilding the kernel.

Here are the constants that can be changed in the kernel's configuration file.

IPFORWARDING

The value of this constant initializes the kernel variable ipforwarding. If 0 (default), IP datagrams are not forwarded. If 1, forwarding is always enabled.

GATEWAY

If defined, causes IPFORWARDING to be set to 1. Additionally, defining this constant causes certain system tables (the ARP cache and the routing table) to be larger.

SUBNETSARELOCAL

The value of this constant initializes the kernel variable subnetsarelocal. If 1 (default), a destination IP address with the same network ID as the sending host but a different subnet ID is considered local. If 0, only destination IP addresses on an attached subnet are considered local. This is summarized in Figure E.1.

Figure E.1. Interpretation of subnetsarelocal kernel variable.
graphics/efig01.gif

This affects the MSS selected by TCP. When sending to local destinations, TCP chooses the MSS based on the MTU of the outgoing interface. When sending to nonlocal destinations, TCP uses the variable tcp_mssdflt as the MSS.

IPSENDREDIRECTS

The value of this constant initializes the kernel variable ipsendredirects. If 1 (default), the host will send ICMP redirects when forwarding IP datagrams. If 0, ICMP redirects are not sent.

DIRECTED_BROADCAST

If 1 (default), received datagrams whose destination address is the directed broadcast address of an attached interface are forwarded as a link-layer broadcast. If 0, these datagrams are silently discarded.

The following variables can also be modified. These variables are spread throughout different files in the /usr/src/sys/netinet directory.

tcprexmtthresh The number of consecutive ACKs that triggers the fast retransmit and fast recovery algorithm. The default value is 3.
tcp_tt1 The default value for the TTL field for TCP segments. Default value is 60.
tcp_mssdflt The default TCP MSS for nonlocal destinations. Default value is 512.
tcp_keepidle Number of 500-ms clock ticks before sending a keepalive probe. Default value is 14400 (2 hours).
tcp_keepintvl Number of 500-ms clock ticks between successive keepalive probes, when no response is received. Default value is 150 (75 seconds).
tcp_sendspace The default size of the TCP send buffer. Default value is 4096.
tcp_recvspace The default size of the TCP receive buffer. This affects the window size that is offered . Default value is 4096.
udpcksum If nonzero, UDP checksums are calculated for outgoing UDP datagrams, and incoming UDP datagrams containing nonzero checksums have their checksum verified . If 0, outgoing UDP datagrams do not contain a checksum, and no checksum verification is performed on incoming UDP datagrams, even if the sender calculated a checksum. Default is 1.
udp_ttl The default value for the TTL field in UDP datagrams. Default value is 30.
udp_sendspace The default size of the UDP send buffer. Defines the maximum UDP datagram that can be sent. Default is 9216.
udp_recvspace The default size of the UDP receive buffer. The default is 41600, allowing for 40 1024-byte datagrams.


TCP.IP Illustrated, Volume 1. The Protocols
TCP/IP Illustrated, Vol. 1: The Protocols (Addison-Wesley Professional Computing Series)
ISBN: 0201633469
EAN: 2147483647
Year: 1993
Pages: 378

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net