Windows Sockets 和 DNS 注册表参数
AFD 注册表参数
Afd.sys 是一个内核模型驱动程序,用于支持 Windows Sockets 应用程序。当有
三个默认值时,则根据系统中检测到的内存数计算默认值:
第一个数值用于小型计算机的默认值(小于 19 MB)。
第二个数值是用于中型计算机的默认值(在 Windows 2000 Professional上:
<32 MB,在 Windows 2000 Server上:<64 MB)。
第三个数值是用于大型计算机的默认值(在 Windows 2000 Professional 上:>32
MB,在 Windows 2000 Server:>64 MB)。
例如,如果默认值给定为 0/2/10,则包含 12.5 到 20 MB RAM 的系统的默认值为
2。
在下面目录中可以设置下列数值:
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Services
\Afd
\Parameters:
DefaultReceiveWindow
数值类型:REG_DWORD
默认值:4096/8192/8192
说明:实施流控制前,AFD 在连接上缓冲的接收字节数。对于一些应用程序,在此
设置较大的数值,性能会有所提高,但会增加资源的利用。应用程序可以使用
SO_RCVBUF 套接字选项,修改每个接口上的值。
DefaultSendWindow
数值类型:REG_DWORD
默认值:4096/8192/8192
说明:它类似于 DefaultReceiveWindow,但用于连接的发送端。
DisableAddressSharing
数值类型:REG_DWORD
默认值:0
范围:0、1
说明:该参数用于禁止进程间的地址共享(SO_REUSEADDR),这样,如果一个进程
打开了一个套接字,其它进程则不能从中窃取数据。如果应用程序使用新的套接字
选项 SO_EXCLUSIVEADDRUSE,也可以达到类似的效果。使用该设置,管理员可以保
护不能识别该选项的旧式应用程序的安全。
DisableRawSecurity
数值类型:REG_DWORD
默认值:0
范围:0、1
说明:在试图打开原始套接字时,禁用管理特权检查。该参数不用于 Windows
2000 传输(像 TCP/IP,它管理自己的原始套接字安全性),Windows 2000 传输
有 TDI_SERVICE_FORCE_ACCESS_CHECK 设置。请参见 TCP/IP AllowUserRawAccess
注册表参数。
DynamicBacklogGrowthDelta
数值类型:REG_DWORD
有效范围:0-0xFFFFFFFF
默认值:0
说明:当需要额外的连接时,该参数控制要创建的空闲连接数。要小心使用该数值
;该值太大会分配大量的空闲连接。(虽然该参数还存在,Windows 2000 中的
TCP 栈自身功能已加强加来防范 SYN 攻击;因此没有必要使用 AFD 的这一功能。
)
FastCopyReceiveThreshold
数值类型:REG_DWORD
默认值:1024
说明:当应用程序提供的接收缓冲区小于 Winsock 缓冲区的当前数据包,AFD 要
么再制作该数据包的一个副本,然后直接将数据复制到应用程序缓冲区(因为应用
程序缓冲区在锁定状态下不能直接访问,所以它是一个两步复制过程);要么锁定
并映射应用程序缓冲区,然后再将数据复制一次。该数值代表了数据复制的额外代
码执行与 I/O 子系统与内存管理器的额外代码执行之间的利弊权衡。通过测试可
以找到一个默认值,使总体性能达到最佳。通常不建议更改该数值。
FastSendDatagramThreshold
数值类型:REG_DWORD
默认值:1024
说明:小于该参数值的数据报通过快速 I/O 路径传输,或者在发送时进行缓存。
较大的数据报则保留,直到数据报实际发送时为止。通过测试可以找到一个默认值
,使总体性能达到最佳。快速 I/O 指复制数据并绕过 I/O 子系统,而不是映射内
存并通过 I/O 子系统。这对于少量数据非常有利。通常不建议更改该数值。
IgnorePushBitOnReceives
数值类型: REG_DWORD - 布尔值
有效范围: 0、1(false、true)
默认值: 0 (false)
说明:通常,当发生以下情况时,Windows 2000 完成 Windows Sockets 接收:
设置 push 位的数据到达。
用户 recv 缓冲区已满。
数据到达后已过去 0.5 秒。
将该参数设置为 1,Afd.sys 就会将所有传入数据包当作已设置了 push 位进行处
理。仅当必要时,才进行此操作,用于解决不能正常“推”数据的用户 TCP/IP 实
现。
IrpStackSize
数值类型:REG_DWORD
有效范围:1-255
默认值£o 4
说明:AFD 使用的默认 IRP 栈位置数。不建议更改该数值。
LargeBufferSize
数值类型: REG_DWORD
默认值: PAGE_SIZE(在 i386 上 4096 字节,在 Alpha 上 8192 字节)
说明: AFD 使用的大型缓冲区大小(字节)。使用较小的数值占用的内存较少;
使用较大的数值可以提高性能。
LargeBufferListDepth
数值类型: REG_DWORD
默认值: 0/2/10
说明: 大型后援缓冲区列表长度。
MaxActiveTransmitFileCount
数值类型: REG_DWORD
有效范围: 0-0xffff(服务器)、2(工作站)
默认值: 0(服务器)、2(工作站)
说明:允许配置同时进行的 TransmitFile 请求的最大数量。数值设为 0,则该参
数没有限制,但系统资源除外。在 Windows 2000 Professional 中,该参数不能
配置。
MaxFastTransmit
数值类型: REG_DWORD
有效范围: 0-0xffffffff
默认值: 64 KB
说明:该参数决定了在快速路径上 TransmitFile 请求中传输数据的最大量。快速
I/O 实质上是复制数据并绕过 I/O 子系统,而不是映射内存并通过 I/O 子系统
。这对于少量数据有利。通常不建议更改该参数。
MaxFastCopyTransmit
数值类型: REG_DWORD
有效范围: 0-0xFFFFFFFF
默认值: 128
说明:该参数控制在快速路径上使用副本而不是缓存内存的数据的最大量。快速
I/O 实质上是复制数据并绕过 I/O 子系统,而不是映射内存并通过 I/O 子系统。
这对于少量数据非常有利。通常不建议更改此数值。
MediumBufferSize
数值类型: REG_DWORD
默认值: 1504
说明:AFD 使用的中型缓冲区大小(字节)。
MediumBufferListDepth
数值类型:REG_DWORD
默认值:4/8/24
说明:中型后援缓冲区列表长度。
OverheadChargeGranularity
数值类型:REG_DWORD
默认值:1 页
有效范围:2 的幂数
说明:该参数确定系统开销实际是如何递增的。默认值为一个页面,目的是正确管
理开销,防止黑客应用程序用光系统内存。
PriorityBoost
数值类型:REG_DWORD
默认值:2
有效范围:0-16
说明:当 AFD 完成一个线程的 I/O 时,提供该线程的优先级。如果多线程应用程
序的某些线程资源不足时,可减少该数值以便纠正这一问题。
SmallBufferListDepth
数值类型:REG_DWORD
默认值:8/16/32
说明:小型后援缓冲区列表长度。
SmallBufferSize
数值类型:REG_DWORD
默认值:128
说明:AFD 使用的小型缓冲区大小(字节)。
StandardAddressLength
数值类型:REG_DWORD
默认值:22
说明:计算机通常使用的 TDI 地址长度。使用其它传输协议如 TP4 时,它使用很
长的地址,提高该数值可使性能有所提高。
TransmitIoLength
数值类型:REG_DWORD
默认值:PAGE_SIZE/PAGE_SIZE*2/65536
说明:TransmitFile() 执行的 I/O(读取与发送)默认大小。在 Windows 2000
Professional 中,默认 I/O 大小正好为一个页面。
TransmitWorker
数值类型:REG_DWORD
默认值:0x10
有效范围:0x10、0x20
说明:该参数控制 Afd.sys 使用系统线程的方式。将该参数设置为 0x10,AFD 就
会使用系统线程执行长(大于 2 倍 SendPacketLength 的数据)TransmitFile 请
求的 IO。将该参数设置为 0x20,AFD 就会使用 IO 的内核模型 APC,并在同一线
程上下文中执行所有事项。它是 Windows 2000 中的一个新增功能,它可通过减少
长 TransmitFile 请求中上下文开关数来提高性能。
动态 DNS 注册参数
这些参数控制动态 DNS 注册客户的行为。如果参数不存在,则使用列出的默认值
。
DNSQueryTimeouts
项: Tcpip\Parameters
数值类型: REG_MULTI_SZ - 由零结束的超时列表
有效范围:有效编号列表
默认值: 1 2 2 4 8 0(格式备注:输入每个数字后,按 Enter 键并以 0 结束列
表)
说明: 该参数用于更改 DNS 客户使用的 DNS 查询超时。在受控非 Internet 或
低延迟环境中,可以使用该参数减少查询失败过程的时间。
DefaultRegistrationTTL
项: Tcpip\Parameters
数值类型: REG_DWORD - 秒
默认值: 0x4B0(十进制为 120,或 20 分钟)
有效范围: 0-0xFFFFFFFF
说明:该参数用于控制动态 DNS 注册发送的 TTL 值。
EnableAdapterDomainNameRegistration
项: Tcpip\Parameters\Interfaces\interface
数值类型: REG_DWORD - 布尔值
有效范围: 0、1(false、true)
默认值: 0 (false)
说明:该参数可用于启用指定适配器域名信息的 DNS 动态更新注册。当需要在适
配器域名下注册适配器地址时,该设置是非常有用的。当该项设置为 true 且
DisableDynamicUpdate 为 false 时,给定适配器地址就会在特定适配器域名以及
系统主域名下进行注册。
DisableDynamicUpdate
项: Tcpip\Parameters, Tcpip\Parameters\Interfaces\interface
数值类型: REG_DWORD - 布尔值
有效范围: 0、1(false、true)
默认值: 0(false;动态 DNS 启用)
说明:该参数用于完全禁用 DNS 动态更新注册。取决于注册表项所在的位置,该
参数既可以是每个接口上的参数,也可以是全局参数。如果在
Tcpip\Parameters 级别该值设置为 1,则在整个系统内禁用动态更新。如果在
Tcpip\Parameters 级别该值设置为 0,则禁用每个适配器上的动态更新。
DisableReplaceAddressesInConflicts
项: Tcpip\Parameters
数值类型: REG_DWORD - 布尔值
有效范围: 0、1(false、true)
默认值: 0 (false)
说明:该参数用于关闭最后写入者的地址注册冲突规则。默认情况下,计算机并不
替换 DNS 服务器上不属于它的任何当前记录。
DisableReverseAddressRegistrations
项: Tcpip\Parameters\Interfaces\interface
数值类型: REG_DWORD - 布尔值
有效范围: 0、1(false、true)
默认值: 0(false;启用 PTR 记录注册)
说明:该参数可以用于关闭 DNS 动态更新反向地址 (PTR) 记录注册。如果配置该
计算机的 DHCP 服务器是 Windows 2000 Server,则它可以使用 DNS 动态更新协
议注册 PTR 记录。但是,如果 DHCP 服务器不能执行 DNS 动态更新 PTR 注册,
并且您不想使用 DNS 动态更新协议注册 PTR 记录,则将该参数设置为 1。
UpdateSecurityLevel
项: Tcpip\Parameters
数值类型: REG_DWORD - 标志
默认值: 0
有效范围: 0、0x00000010、0x00000020、0x00000100
说明:该参数可以用于控制 DNS 动态更新的安全性。它默认设置为 0,先使用非
安全的??更新。如果非安全的更新被拒?,?发送 Windows 2000 安全动态更新。下
面列出有效数值:
0x00000000 - 默认值、非安全更新
0x00000010 - 取消安全性
0x00000100 - 只使用安全更新
DNS 缓存解析服务注册表参数
Windows 2000 包含 DNS 缓存解析服务。该服务提供缓存 DNR 应答的功能,这样
DNS 服务器不必重新查询相同的信息。可以使用服务控制管理器 MMC 管理单元终
止该服务。该服务的注册表参数放在
\System\CurrentControlSet\Services\Dnscache\Parameters 项下。
AdapterTimeoutCacheTime
数值类型: REG_DWORD - 秒数
有效范围:0-0xFFFFFFFF
默认值: 300(5 分钟)
说明:当多宿主机器上特定适配器执行对所有 DNS 服务器的 DNS 查询失败(超时
)时,该参数指定适配器的禁用时间。例如,如果您有两个适配器,并且其中一个
网络上的 DNS 服务器不可用,则在此期间将适配器标记为不可用。(必要时,即
插即用事件或缓存超时就会强制解析服务器重试该接口,并将它标记为禁用。)
CacheHashTableSize
数值类型: REG_DWORD - 数字
默认值: 0xD3(十进制为 211)
有效范围: 任何大于 0 的素数
说明:该参数可用于控制 DNS 缓存解析服务使用的散列表的最大行数。没有必要
调整该参数。
CacheHashTableBucketSize
数值类型: REG_DWORD - 数字
默认值: 0xa(十进制为 10 )
范围: 0-0x32(十进制为 50)
说明: 该参数可用于控制 DNS 缓存解析服务使用的散列表的最大列数。没有必要
调整该参数。
DefaultRegistrationRefreshInterval
数值类型: REG_DWORD - 时间(秒)