Windows的TCP协议参数

   注册表编辑器:regedit

  表项:HKEY_LOCAL_MACHINESYSTEMCurentControlSetServicesTcpipParameters

  窗口扩大因子 & 时间戳选项

  Tcp1323Opts REG_DWORD 0x00000001 (1)

  Tcp1323Opts的取值如下:

  0 - disable RFC 1323 options.禁用窗口扩大因子和时间戳选项,是默认值。

  1 - window scaling enabled only.只启用窗口扩大因子选项。

  2 - timestamp enabled only.只启用时间戳选项。

  3 - both options enabled.同时启用窗口扩大因子和时间戳选项。

  SACK选项

  SackOpts REG_DWORD 0x00000001 (1)

  SackOpts取值范围为0 | 1,默认值为1.

  描述:

  Enables and disables the Selective Acknowledgement (SACK) feature of Windows Server 2003 TCP/IP.

  SACK is specified in RFC 2018.

  TcpMaxDupAcks

  TcpMaxDupAcks REG_DWORD 0x00000002 (2)

  TcpMaxDupAcks的取值范围为1-3,默认为2.而Linux的默认值为3.

  描述:

  Specifies how many duplicate ACks (ACKs for the same sequence numbers) constitute a signal to

  retransmit a segment.

  When data arrives with a sequence number that is greater than expected, the receiver assumes that data

  with the expected number was dropped, and it immediately sends an ACK with the ACK number set to the

  expected sequence number. The receiver sends ACKs set to the same missing number each time it receives

  a TCP segment that has a sequence number greater than expected.

  The sender recognizes the duplicate ACKs and sends the missing segment.

  拥塞控制算法

  微软最新的TCP拥塞控制算法为Compound TCP (CTCP),windows 7默认不启用。

  (1)windows Vista/2008/7

  CTCP is enabled by default in computers running beta versions of Windows Server 2008 and disabled

  by default in computers running Windows Vista and 7.

  CTCP can be enabled with the command:

  > netsh interface tcp set global congestionprovider=ctcp

  or disabled with the command:

  > netsh interface tcp set global congestionprovider=none

  To display the current setting for CTCP use:

  > netsh interface tcp show global

  Parameter "Add-On Congestion Control Provider" will either have a value of "none" if CTCP is disabled

  or "ctcp" if it is enabled.

  (2)Windows 8

  CTCP is now enabled using PowerShell as netsh is deprecated:

  > set-nettcpsetting -Settingname Custom -CongestionProvider CTCP

  (3)Windows 2003 & XP x64

  A hotfix is available that adds CTCP support to 64 bit Windows XP and Windows Server 2003.

  The following registry key can be set to 1 to enable, or 0 to disable:

  > HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersTCPCongestionControl

  最大接收窗口

  TcpWindowSize REG_DWORD number of bytes

  取值范围:0-0x3FFFFFFF.

  描述:

  In practice the TCP/IP stack will round the number set to the nearest multiple of maximum segment size

  (MSS)。 Values greater than 64KB can be achieved only when connecting to other systems that support

  RFC 1323 Window Scaling.

  初始值

  the smaller of the following values:

  0xFFFF (65536)

  GlobalMaxTcpWindowSize

  The larger of four times the MSS (5840)

  16384 rounded up to an even multiple of the MSS

  The stack also tunes itself based on the media speed:

  Below 1 Mbps: 8KB

  1 Mbps - 100 Mbps: 17KB

  Greater than 10 Mbps: 64KB

  This parameter determines the maximum TCP receive window size offered.

  全局最大接收缓存

  GlobalMaxTcpWindowSize REG_DWORD number of bytes

  取值范围:0-0x3FFFFFFF.

  Default: This parameter does not exist by default.

  描述:

  Determines the largest TCP receive window that the system offers.

  The TcpWindowSize parameter can be used to set the receive window on a per-interface basis.

  This parameter can be used to set a global limit for the TCP window size on a system-wide basis.

时间: 2025-01-31 03:15:06

Windows的TCP协议参数的相关文章

《深入解析IPv6(第3版)》——2.2 Windows的IPv6协议特性

2.2 Windows的IPv6协议特性 Windows中的IPv6协议包含以下特性. 默认已安装.启用,且已选用. 基本IPv6栈支持. IPv6协议栈增强. 通过GUI(图形用户界面)和命令行进行配置. 集成了对IPSec的支持. Windows防火墙支持. 临时地址. 随机接口ID. 域名系统(DNS)支持. 源地址和目的地址选择. ipv6-literal.net域名支持. 链接本地组播域名解析(Link-Local Multicast Name Resolution, LLMNR).

大型分布式网站架构设计与实践 第一章《面向服务的体系架构(SOA)》1.1基于TCP协议的RPC

1.1基于TCP协议的RPC 1.1.1RPC名词理解 RPC的全称是Remote Process Call,即远程过程调用,它应用广泛,实现方式也很多,拥有RMI,WebService等诸多成熟的方案,在业界得到了广泛的应用.单台服务器的处理能力受硬件成本的限制,不可能无限制的提升,RPC将原来的本地调用转变为调用远端的服务器上的方法,给系统的处理能力和吞吐量带来了近乎无限制的提升,这是系统发展到一定阶段必然性的改革,也是实现分布式计算的基础. 如图1-2所示,RPC的实现包括客户端和服务端,

socket-套接字编程,使用TCP协议编写服务器程序——绑定错误10038

问题描述 套接字编程,使用TCP协议编写服务器程序--绑定错误10038 不明白为什么会发生这个错误,求大神指点!具体代码如下 #pragma comment(lib,"ws2_32.lib")//第二版本32位的把lib文件添加到项目中windows套接字的动态链接库 #include<stdio.h> #include<stdlib.h> #include<WinSock2.h> void main(void) { WSADATA wsaData

TCP协议疑难杂症全景分析

说明: 1).本文以TCP的发展历程解析容易引起混淆,误会的方方面面 2).本文不会贴大量的源码,大多数是以文字形式描述,我相信文字看起来是要比代码更轻松的 3).针对对象:对TCP已经有了全面了解的人.因为本文不会解析TCP头里面的每一个字段或者3次握手的细节,也不会解释慢启动和快速重传的定义 4).除了<TCP/IP详解>(卷一,卷二)以及<Unix网络编程>以及Linux源代码之外,学习网络更好的资源是RFC 5).本文给出一个提纲,如果想了解细节,请直接查阅RFC 6).翻

wcf在iis中部署时不能同时绑定http和net.tcp协议

问题描述 我在iis中建立一个wcf服务,一开始用http是可以的,后来想绑定net.tcp协议.绑定后测试连tcp.net时提示服务器积极拒绝,我测了下808端口是没有打开,查了资料,在windows打开/关闭功能里把.netframework3.51里的两个wcf选项和windowsprocessActivationService都选上,这样就可以用net.tcp连接了,但http协议却不能用了,在浏览器里打开Service.svc文件时,提示:未能从程序集"System.ServiceMo

[转贴]基于UDP、TCP协议的C#网络编程之二

转自新浪"烈·翼·焚·天"的博客,原文地址:http://blog.sina.com.cn/s/blog_4c459776010009c3.html~type=v5_one&label=rela_nextarticle 第二截,讲讲基于TCP协议的网络编程,与UDP不同的是,基于TCP协议的编程的服务器端有一个监听对象:TcpListener,它负责监听来自客户端的消息并处理,并且必须在保持连接的情况下与客户端保持互动,下面举个例子,TCP不怎么复杂,只是综合要求较高,如果想编

WCF:如何将net.tcp协议寄宿到IIS

原文:WCF:如何将net.tcp协议寄宿到IIS 1 部署IIS 1.1 安装WAS IIS原本是不支持非HTTP协议的服务,为了让IIS支持net.tcp,必须先安装WAS(Windows Process Activation Service),即windows进程激活服务. 打开控制面板--程序和功能--打开或关闭windows功能,安装WAS,如图: 安装完毕后在Services窗口中可以到到如下服务:Windows Process Activation Service;Net.Msmq

TCP协议通讯流程

    服务器调用socket().bind().listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状态,客户端调用socket()初始化后,调用connect()发出SYN段并阻塞等待服务器应答,服务器应答一个SYN-ACK段,客户端收到后从connect()返回,同时应答一个ACK段,服务器收到后从accept()返回. 数据传输的过程: 建立连接后,TCP协议提供全双工的通信服务,但是一般的客户端/服务器程序的流程是由客户端主动发起请求,服务器被动处理请求,一问一答

使用TCP协议的NAT穿透技术

实很早我就已经实现了使用TCP协议穿透NAT了,但是苦于一直没有时间,所以没有写出来,现在终于放假有一点空闲,于是写出来共享之.     一直以来,说起NAT穿透,很多人都会被告知使用UDP打孔这个技术,基本上没有人会告诉你如何使用TCP协议去穿透(甚至有的人会直接告诉你TCP协议是无法实现穿透的).但是,众所周知的是,UDP是一个无连接的数据报协议,使用它就必须自己维护收发数据包的完整性,这常常会大大增加程序的复杂度,而且一些程序由于某些原因,必须使用TCP协议,这样就常常令一些开发TCP网络