TCP/IP Transport Entries

The various TCP/IP keys do not appear in the Registry unless TCP/IP is installed using the Network icon in Control Panel.

You must restart your machine for a change in any of these parameters to take effect.

TCP/IP Parameters Subkey Entries

The entries for TCP/IP parameters appear under the following Registry path:


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

ArpCacheLife REG_DWORD Number of Seconds

Determines the default lifetime for entries in the ARP cache table. Once an entry is placed in the ARP cache, it is allowed to remain there until its lifetime expires or until its table entry is reused because it is the oldest entry.

Default: 600 (10 minutes)

ArpCacheSize REG_DWORD Number

Determines the maximum number of entries that the ARP cache table can hold. The ARP cache is allowed to grow dynamically until this size is reached. After the table reaches this size, new entries can only be added by replacing the oldest entries that exist.

Default: 62

DefaultTTL REG_DWORD 1 to 255 seconds

Specifies the default Time To Live (TTL) value set in the header of outgoing IP packets. The TTL determines the maximum amount of time an IP packet may live in the network without reaching its destination. It is effectively a bound on the number of routers an IP packet may pass through before being discarded.

Default: 32

EnableDeadGWDetect REG_DWORD 0 or 1

Setting this parameter to 1 causes TCP to perform Dead Gateway Detection. With this feature enabled, TCP will ask IP to change to a backup gateway if it retransmits a segment several times without receiving a response. Backup gateways may be defined in the Advanced section of the TCP/IP configuration dialog in the Network Control Panel option.

Default: 1 (true)

EnablePMTUBHDetect REG_DWORD 0 or 1

Setting this parameter to 1 (True) causes TCP to try to detect "Black Hole" routers while doing Path MTU Discovery. A "Black Hole" router does not return ICMP Destination Unreachable messages when it needs to fragment a TCP packet with the Don't Fragment bit set. TCP depends on receiving these messages to perform Path MTU Discovery. With this feature enabled, TCP will try to send segments without the Don't Fragment bit set if several retransmissions of a segment go unacknowledged. If the segment is acknowledged as a result, the MSS will be decreased and the Don't Fragment bit will be set in future packets on the connection. Enabling black hole detection increases the maximum number of retransmissions performed for a given segment.

Default: 0 (false)

EnablePMTUDiscovery REG_DWORD 0 or 1

Setting this parameter to 1 (True) causes TCP to attempt to discover the Maximum Transmission Unit (MTU or largest packet size) over the path to a remote machine. By discovering the Path MTU and limiting TCP segments to this size, TCP can eliminate fragmentation at routers along the path which connect networks with different MTUs. Fragmentation adversely affects TCP throughput and network congestion.

Default: 1 (true)

ForwardBufferMemory REG_DWORD Number of bytes

This parameter determines how much memory IP allocates to store packet data in the router packet queue. When this buffer space is filled, the router begins discarding packets at random from its queue. Packet queue data buffers are 256 bytes in length, so the value of this parameter should be a multiple of 256. Multiple buffers are chained together for larger packets. The IP header for a packet is stored separately. This parameter is ignored and no buffers are allocated if the IP router is not enabled.

Default: 74240 (enough for fifty 1480-byte packets, rounded to a multiple of 256).

IGMPLevel REG_DWORD 0, 1, or 2

This parameter determines to what extent the system supports IP multicasting and participates in the Internet Group Management Protocol. At level 0, the system provides no multicast support. At level 1, the system may only send IP multicast packets. At level 2, the system may send IP multicast packets and fully participate in IGMP to receive multicast packets.

Default: 2

IpReassemblyTimeout REG_DWORD Number of seconds

Determines how long IP accepts fragments when attempting to reassemble a previously fragmented packet. That is, if a packet is fragmented, all of the fragments must make it to the destination within this time limit; otherwise, the fragments will be discarded and the packet will be lost.

Default: 60 seconds

KeepAliveInterval REG_DWORD 1 to 0xffffffff milliseconds

This parameter determines the interval separating keep alive retransmissions until a response is received. Once a response is receive, the delay until the next keep alive transmission is again controlled by the value of KeepAliveTime. The connection will be end after the number of retransmissions specified by TcpMaxDataRetransmissions have gone unanswered.

Default: 1000 (1 second)

KeepAliveTime REG_DWORD 1 to 0xffffffff milliseconds

The parameter controls how often TCP attempts to verify that an idle connection is still intact by sending a keep alive packet. If the remote system is still reachable and functioning, it will acknowledge the keep alive transmission. Keep alive packets are not sent by default. This feature may be enabled on a connection by an application.

Default: 7,200,000 (two hours)

NumForwardPackets REG_DWORD Less than 0xffffffff

This parameter determines the number of IP packet headers which are allocated for the router packet queue. When all headers are in use, the router will begin to discard packets at random from the queue. This value should be at least as large as the ForwardBufferMemory value divided by the maximum IP data size of the networks connected to the router. It should be no larger than the ForwardBufferMemory value divided by 256, since at least 256 bytes of forward buffer memory are used for each packet. The optimal number of forward packets for a given ForwardBufferMemory size depends on the type of traffic carried on the network and will be somewhere in between these two values. This parameter is ignored and no headers are allocated if the router is not enabled.

Default: 50

TcpDisableReceiveChecksum REG_DWORD 0 or 1

Specifies whether Checksums is disabled on receive.

Default: 0 (false, that is, checksums will be checked on receives)

TcpDisableSendChecksum REG_DWORD 0 or 1

Specifies whether Checksums is disabled on send.

Default: 0 (false, that is, checksums will be generated on sends)

TcpKeepCnt REG_DWORD Number in seconds

Specifies how often TCP/IP will generate keep-alive traffic. When TCP/IP determines that no activity has occurred on the connection within the specified time, it generates keep-alive traffic to probe the connection. After trying TcpKeepTries number of times to deliver the keep-alive traffic without success, it marks the connection as down.

Default: 120

TcpKeepTries REG_DWORD Number

Specifies the maximum number of times that TCP/IP will attempt to deliver keep-alive traffic before marking a connection as down.

Default: 20

TcpLogLevel REG_DWORD Number

Specifies how verbose TCP/IP should be about logging events in the event log. The highest level of verbosity is 16, and 1 is the lowest level. The following shows general information about these levels.

Level

Events to be included

1

Only the most critical errors

4

Serious protocol violations

8

Nonserious protocol violations

12

Information about unusual events

16

Information about unusual events that some networks normally allow


Default: 16 (log everything)

TcpMaxConnectAttempts REG_DWORD Number

Specifies the maximum number of times TCP/IP attempts to establish a connection before reporting failure. The initial delay between connection attempts is 3 seconds. This delay is doubled after each attempt.

Default: 3

TcpMaxConnectRetransmission REG_DWORD 0 to 0xffffffff

This parameter determines the number of times TCP will retransmit a connect request (SYN) before stoping the attempt. The retransmission timeout is doubled with each successive retransmission in a given connect attempt. The initial timeout value is three seconds.

Default: 3

TcpMaxDataRetransmissions REG_DWORD 0 to 0xffffffff

This parameter controls the number of times TCP will retransmit an individual data segment (non connect segment) before ending the connection. The retransmission timeout is doubled with each successive retransmission on a connection. It is reset when responses resume. The base timeout value is dynamically determined by the measured round-trip time on the connection.

Default: 5

TcpMaxRetransmissionAttempts REG_DWORD Number

Specifies the maximum number of times that TCP/IP attempts to retransmit a piece of data on an established connection before ending the connection. The initial delay before retransmitting is based on the current estimate TCP/IP makes of the round-trip time on the connection. This delay is doubled after each retransmission. Acknowledgment of the data results in a recalculation of the estimate for the round-trip time.

Default: 7

TcpNumConnections REG_DWORD 0 to 0xffffFE

This parameter limits the maximum number of connections that TCP may have open simultaneously.

Default: 0xffffFE

TcpRecvSegmentSize REG_DWORD Bytes

Specifies the maximum receive segment size.

Default: 1460

TcpSendDownMax REG_DWORD Number

Specifies the maximum number of bytes queued by TCP/IP.

Default: 16384

TcpSendSegmentSize REG_DWORD Bytes

Specifies the maximum send segment size.

Default: 1460

TcpWindowSize REG_DWORD Number

This parameter determines the maximum TCP receive window size offered by the system. The receive window specifies the number of bytes a sender may transmit without receiving an acknowledgment. In general, larger receive windows will improve performance over high delay or high bandwidth networks. For maximum efficiency, the receive window should be an even multiple of the MTU of the underlying network less the size of the standard TCP and IP headers (40 bytes).

Default: The smaller of: 0xffff OR the larger of: four times the maximum TCP data size on the network OR 8192 rounded up to an even multiple of the network TCP data size

UdpDisableReceiveChecksum REG_DWORD 0 or 1

Specifies whether Checksums is disabled on receive.

Default: 0 (false, that is, checksums will be checked on receives)

UdpDisableSendChecksum REG_DWORD 0 or 1

Specifies whether Checksums is disabled on send.

Default: 0 (false, that is, checksums will be generated on sends)

Adapter Card Parameters for TCP/IP

These parameters for TCP/IP are specific to individual network adapter cards. These appear under the following Registry path, where adapter name# refers to the Services subkey for the specific adapter card:


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
\adapter name#\Parameters\Tcpip

ForwardBroadcasts REG_DWORD 0 or 1

Specifies whether broadcasts should be forwarded between adapters. If enabled, broadcasts seen by this interface are forwarded to other IP interfaces.

Default: 0 (false)

KeepAlive REG_DWORD 0 or 1

Determines whether TCP connections that request keep-alive packets result in keep-alive packets being sent. This feature is used to determine when inactive connections can be disconnected. When a connection becomes inactive, keep-alive packets are periodically exchanged. When 20 consecutive keep-alive packets go unanswered, the connection is broken. This disconnect is initiated by the endpoint that is sending keep-alive packets.

Default: 1 (true)

MTU REG_DWORD Number in octets

Specifies the maximum transmission unit size of an interface. Each interface used by TCP/IP may have a different MTU value specified. The MTU is usually determined through negotiation with the lower driver, using that lower driver's value. However, that value may be overridden.

Ideally, the MTU should be large enough to hold any datagram in one frame. The limiting factor is usually the technology making the transfer. Some technologies limit the maximum size to as little as 128; Ethernet limits transfers to 1500; and proNet-10 allows as many as 2044 octets per frame.

Datagrams larger than the MTU value are automatically divided into smaller pieces called fragments; size is a multiple of eight octets. Fragmentation usually occurs somewhere through which the traffic must pass whose MTU is smaller than the encapsulated datagram. If fragmentation occurs, the fragments travel separately to the destination computer, where they are automatically reassembled before the datagram is processed.

Default: 0 (That is, use the value supplied by the adapter.)

RouterMTU REG_DWORD Number in octets

Specifies the maximum transmission unit size that should be used when the destination IP address is on a different subnet. Each interface used by TCP/IP may have a different RouterMTU value specified. In many implementations, the value of RouterMTU is set to 576 octets. This is the minimum size that must be supported by any IP node. Because modern routers can usually handle MTUs larger than 576 octets, the default value for this parameter is the same value as that used by MTU.

Default: 0 (That is, use the value supplied by the lower interface.)

DHCP Server Service Entries for TCP/IP

You must restart the Microsoft DHCP Server service whenever you change any of these parameters.

The Registry parameters for DHCP servers are specified under the following key:


..SYSTEM\current\currentcontrolset\services\DHCPServer\Parameters

BackupInterval REG_DWORD Interval

Specifies the interval (unlimited) for backing up the database.

Default = 15 minutes

DatabaseCleanupInterval REG_DWORD Interval in minutes

Specifies the interval (unlimited) for cleaning up expired client records from the DHCP database, freeing up those IP addresses for reuse.

Default = 1440 minutes (1 day)

DatabaseLoggingFlag REG_DWORD 0 or 1

Specifies whether to record the database changes in the JET.LOG file. This log file is used after a system crash to recover changes that have not been made to the database file defined by DatabaseName. Database logging affects system performance, so DatabaseLogging can be turned off if you believe the system is highly stable and if logging is adversely affecting system performance.

Default = 1 (true—that is, database logging is enabled)

FTP Server Service Entries for TCP/IP

The following Registry path contains parameters that affect the behavior of the FTP server service component:


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Ftpsvc\Parameters

The Ftpsvc subkey does not appear until you install the FTP service using the Network icon in Control Panel. Also, you must restart the FTP server service (Ftpsvc) using the Services icon in Control Panel for any changes to these values to take effect.

There can also be an AccessCheck subkey under Ftpsvc, which allows access to FTP for new users. If the AccessCheck subkey exists, but cannot be opened, the user is refused FTP services. If the subkey exists but can only be opened for read access, the user is granted read-only FTP access. If the subkey does not exist, it is not used to influence FTP access. By default, this subkey does not exist and therefore has no impact on FTP operations. An administrator can create this Registry subkey and attach specific access controls. which will serve to control user access to the FTP service.

AnnotateDirectories REG_DWORD 0 or 1

When this value is 1, every time a user changes directories (that is, sends the server a CWD command), an attempt is made to open a file named ~FTPSVC~.CKM in the new directory. If this file is found, its contents are sent to the user as part of the successful reply to the CWD command. This may be used to attach annotations to specific directories.

This value is used as a default for new users. Users can toggle their own personal annotate directories flag with the site-specific CKM command (SITE CKM).

Default: 0 (false —do not send directory annotations)

ConnectionTimeout REG_DWORD Seconds

Specifies the time to allow clients to remain idle before forcibly disconnecting them. This prevents idle clients from consuming server resources indefinitely.

This value may be set to 0 if time-outs are not to be enforced. If set to 0, idle clients may remain connected indefinitely.

Default: 600 (10 minutes)

LogAnonymous REG_DWORD 0 or 1

When this value is 1, all successful anonymous logins are logged to the system event log.

Default: 0 (false —do not log successful anonymous logins)

LogFileAccess REG_DWORD 0, 1, or 2

Specifies log file access method. Syntax is as follows:

Value

Description

0

Do not log file accesses.

1

Log file accesses to FTPSVC.LOG

2

Log file accesses to FTyymmdd.LOG, where yy is the current year, mm is the current month, and dd is the current day. New log files are opened daily as necessary.


Default: 0

LogNonAnonymous REG_DWORD 0 or 1

When this value is 1, all successful non-anonymous logins are logged to the system event log.

Default: 0 (false, that is, do not log successful non-anonymous logins)

MaxConnections REG_DWORD 0 or 1

Specifies the maximum number of simultaneous clients the server will service. This value may be set to 0 if there is to be no limit on simultaneous clients.

Default: 20

NetBt Parameters for TCP/IP

NetBt is the NetBIOS over TCP/IP service. Parameters for TCP/IP are also configured under NetBt in the following Registry path:


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBt\Parameters

BcastNameQueryCount REG_DWORD 1 to 0xffff repetitions

This value determines the number of times NBT broadcasts a query for a given name without receiving a response.

Default: 3

BcastQueryTimeout REG_DWORD 100 to 0xffffffff milliseconds

This value determines the time interval between successive broadcast name queries for the same name.

Default: 750 msec

CacheTimeout REG_DWORD 60000 to 0xffffffff milliseconds

This value determines the time interval that names are cached in the remote name table.

Default: 0x927C0 (10 minutes)

EnableProxyCheck REG_DWORD 0 or 1

When this is enabled, the proxy will check name registrations from Bnodes against the WINS database by doing a name query to WINS. If it finds the name in WINS with a different IP address, the proxy will send a name registration failure message to the Bnode. Set this value to 1 to verify that Bnodes do not claim names that Pnodes have.

Default: 0 (disabled)

InitialRefreshTimeout REG_DWORD 960,000 to 0xfffffff milliseconds

This parameter specifies the initial refresh timeout used by NBT during name registration. NBT tries to contact the WINS servers at 1/8th of this time interval when it is first registering names. When it receives a successful registration response, that response will contain the new refresh interval to use.

Default: 960,000 (16 minutes)

LmhostsTimeout REG_DWORD 1000 to 0xffffffff milliseconds

This parameter specifies the timeout value for Lmhosts and DNS name queries. The timer has a granularity of the timeout value, so the actual timeout could be as much as twice the value.

Default: 6000 (6 seconds)

MaxDgramBuffering REG_DWORD 0 to 0xffffffff bytes

This parameter specifies the maximum amount of memory that NBT will dynamically allocate for all outstanding datagram sends. Once this limit is reached, further sends will fail due to insufficient resources.

Default: 0x20,000 (128K)

MaxPreload REG_DWORD Number

Specifies the maximum NetBt number of entries for LMHOSTS that are preloaded into the NetBt NetBIOS name cache. LMHOSTS is a file located in the directory specified by DatabasePath.

Default: 100

NameSrvQueryCount REG_DWORD 0 to 0xffff milliseconds

This value determines the number of times NBT sends a query to a WINS server for a given name without receiving a response.

Default: 3

NameSrvQueryTimeout REG_DWORD 0 to 0xffffffff milliseconds

This value determines the time interval between successive name queries to WINS for a given name.

Default: 750 msec

NbtKeepAlive REG_DWORD Number in seconds

Specifies how often NetBT will generate keep-alive traffic. When NetBt determines that no activity has occurred on a connection for the specified time interval, it will generate keep-alive traffic to probe the connection. If TCP/IP is unable to deliver this traffic, it marks the connection as down and notifies NetBT.

Default: 1 (Generate NetBt keep-alive traffic.)

NodeType REG_DWORD 1, 2, 4, or 8

1 = Bnode, 2 = Pnode, 4 = Mnode, 8 = Hnode. A Bnode system uses broadcasts. A Pnode system uses only point-to-point name queries to a name server (WINS). An Mnode system broadcasts first, then queries the name server. An Hnode system queries the name server first, then broadcasts. Resolution via Lmhosts and/or DNS, if enabled, will follow the these methods. If this key is present it will override the DhcpNodeType key. If neither key is present, the system defaults to Bnode if there are no WINS servers configured for the network. The system defaults to Hnode if there is at least one WINS server configured.

Default: 1 or 8 based on the WINS server configuration.

RandomAdapter REG_DWORD 0 or 1

This parameter applies to a multihomed machine only. If it is set to 1 (True), then NBT will randomly choose the IP address to put in a name query response from all of its bound interfaces. Normally, the response contains the address of the interface on which the query arrived. This feature would be used by a server with two interfaces on the same network for load balancing. The SingleResponse parameter must be set to a value of 1 (True) for this parameter to take effect.

Default: 0 (false)

SessionKeepAlive REG_DWORD 60,000 to 0xffffffff

This value determines the time interval between keep alive transmissions on a session. Setting the value to 0xffffffff disables keep alives.

Default: 60,000 (1 hour)

Size/Small/Medium/Large REG_DWORD 1, 2, or 3

This value determines the size of the name tables used to store local and remote names. In general, Small (1) is adequate. If the system is acting as a proxy nameserver, then the value is automatically set to Large to increase the size of the name cache hash table. Large (3) sets the number of hash buckets to 256, Medium (2) to 128, Small to 16.

Default: 1 (Small)

WinsDownTimeout REG_DWORD 1000 to 0xffffffff milliseconds

This parameter determines the amount of time NBT will wait before again trying to use WINS after it fails to contact any WINS server. This feature primarily allows machines which are temporarily disconnected from the network, such as laptops, to proceed through boot processing without waiting to timeout out each WINS name registration or query individually.

Default: 15,000 (15 seconds)

Streams Parameters for TCP/IP

The TCP/IP parameter for Streams are found under the following Registry path:


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Streams\Parameters

MaxMemoryUsage REG_DWORD Number of bytes

Specifies the maximum amount of memory that can be allocated to the Streams environment. Once this limit is reached, Streams will fail allocation requests made by Streams-based drivers.

Default: No limit

Windows Sockets Entries for TCP/IP

All Windows Sockets parameters can be set by choosing the Network icon in Control Panel. These parameters are found in two locations, as shown here.


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet \Services \Winsock\Parameters

AFD is the driver that handles Winsock. These values are in the following Registry path:


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet \Services\Afd\Parameters

Some of these values have three defaults, depending on amount of RAM:

Default

Amount of RAM

First

12.5 MB or less

Second

12.5 to 20 MB

Third

More than 20 MB


BufferMultiplier REG_DWORD Multiplier

DefaultReceiveWindow and DefaultSendWindow get divided by this value to determine how many massages can be sent/received before flow control is imposed.

Default: 512

DefaultReceiveWindow REG_DWORD Bytes

The number of receive bytes AFD will buffer on a connection before imposing flow control. for some applications. A larger value here will give slightly better performance at the expense of increased resource utilization. Note that applications can modify this value on a per-socket basis with the SO_RCVBUF socket option.

Default: 8192

DefaultSendWindow REG_DWORD Bytes

Same as DefaultReceiveWindow, but for the send side of connections.

Default: 8192

InitialLargeBufferCount REG_DWORD Buffer count

The count of large buffers allocated by AFD at system startup. Allocate more buffers to improve performance at the cost of physical memory.

Default: 0, 2, or 10 depending on RAM amount.

InitialMediumBufferCount REG_DWORD Buffer count

Initial count of medium buffers.

Default: 2, 10, or 30 depending on RAM amount.

InitialSmallBufferCount REG_DWORD Buffer count

Initial count of small buffers.

Default: 5, 20, or 50 depending on RAM amount.

LargeBufferSize REG_DWORD Bytes

The size in bytes of large buffers used by AFD. Smaller values use less memory, larger values can improve performance.

Default: 4096

MediumBufferSize REG_DWORD Bytes

The size in bytes of medium buffers used by AFD. Smaller values use less memory, larger values can improve performance.

Default: 1504

PriorityBoost REG_DWORD Priority

The priority boost AFD gives to a thread when it completes I/O for that thread. If a multithreaded application experiences starvation of some threads, reducing this value may remedy the problem.

Default: 2

SmallBufferSize REG_DWORD Bytes

The size in bytes of small buffers used by AFD. Smaller values use less memory, larger values can improve performance.

Default: 64

StandardAddressLength REG_DWORD Length

The length of TDI addresses typically used for the machine. If the customer has a transport protocol like TP4 which uses very long addresses, then increasing this value will result in a slight performance improvement.

Default: 24

WINS Entries for TCP/IP

The Registry parameters for WINS servers are specified under the following subkey:


..\SYSTEM\CurrentControlSet\Services\Wins\Parameters

This subkey lists all the nonreplication-related parameters needed to configure a WINS server. It also contains a \Datafiles subkey, which lists all the files that should be read by WINS to initialize or reinitialize its local database.

InitTimePause REG_DWORD 1-40

Set to 1 to instruct WINS to remain in the paused state until the first replication. If set to 1, it is recommended that WINS\Partners\Pull\InitTimeReplication be either set to 1 or removed. Either method ensures that WINS replicates with its listed partners on starting. Paused state means that WINS will not accept any name registrations/releases until the above replication happens.

Default: 0

NoOfWrkThds REG_DWORD 1-40

Specifies the number of worker threads (to handle name query packets from clients). This can be changed without restarting the WINS computer.

Default: Number of processors on the system

PriorityClassHigh REG_DWORD 0-1

Specifies the priority class of WINS. Set to 1 for high priority class. This can be changed without restarting the WINS computer.

Default: 0

The HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Wins\Partners key has two subkeys, \Pull and \Push, under which are subkeys for the IP addresses of all push and pull partners, respectively, of the WINS server.

A push partner, listed under the \Partners\Pull key, is one from which a WINS server pulls replicas and from which it can expect update notification messages. The following parameter appears under the IP address for a specific push partner. This parameter can be set only by changing the value in Registry Editor:

MemberPrec REG_DWORD 0 or 1

Specifies the relative precedence of addresses in an Internet group (name with 16th byte being 0x1c). Addresses in the 0x1c names pulled from a WINS partner will be given the precedence assigned to the WINS. The value can be 0 (low) or 1 (high). The locally registered addresses always have a high precedence. Set this value to 1 if this WINS partner is serving a geogrphic location that is nearby.

Default: 0