TCP本身属面向链接的通讯协议。通讯双方的每一个收发动作,需要以通讯链路正常为前提。因此TCP协议内部提供了默认的ACK验证机制。
而ACK验证方式存又与操作系统有关,在TCP中,对数据的确认往往是延迟的,在时延定时器没有溢出的情况下,一般情况是两个TCP数据对应一个确认,如果时延定时器溢出了,那么自然也会发送确认报文。但在某些系统中,会出现必须每次回复ACK包才继续发送TCP数据,这时就会出现以下问题:假定Server A、和Client B之间建立了一个TCP连接,某一时刻A第一次向B发送数据,发送完成后等待B回复的ACK包,而B认为收到第二个TCP数据包才回复ACK标记,则约200ms之后,B中的时延定时器溢出,B此时才向A回发一个长度为1的ACK确认包,因此B第二次收到数据时,会莫名其妙的产生一个约200ms的延时——这个延时不是别的,正是ACK确认包默认的发送时延。
当我们测试自行研发的服务端通讯框架时,一旦其发生广播,则此时处于接收方的客户端很有可能会因为通讯双方的收发不均而引发上述现象——这并非是由于你的服务端通讯框架性能不达标,而是由于TCP的内部机制导致的。
那么,我们应该如何避免这种情况呢?这里介绍一种最简单也最容易实现的方法——修改注册表,提高客户端ACK包默认的发送频率,也就是缩短ACK包的发送时延:
首先,点击你电脑屏幕左下角的“开始”菜单,打开“运行”,键入“regedit”打开你的注册表;
选择HKEY_LOCAL_MACHINE 项目开始一层层的往下点,一直到
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/Tcpip/Parameters/Interfaces
这里是关于你网卡的数据,有很多项,且它们都有类似{5F26EBBD-9CA6-4219-9DBD-54852364EA17}这样的名字,但是正确的那个会在右边窗口显示包括你的IP地址和你的服务器IP地址等等网络设定)。 你找到IPAddress项符合你的本机IP地址的那个,那么它就是你连接网络的那个网卡的设定项,我们的任务目标就是改动它来提高客户端ACK包的发送频率。
其次,右键点击窗口右边的空白处,“新建”-“DWORD值”;
给它改名成“TcpAckFrequency”,然后右键点击它 ,选择"修改”,然后再那个"数值数据"的空白处填"1"(不用管是16进制,还是10进制)
最后,关闭注册表,重启电脑,修改完成。
有关TcpAckFrequency的补充说明:
TcpAckFrequency 值这个值确定了windows用TCP/IP 发送应答消息的频率,也就是决定了在发送“命令正确应答”之前将等候几个数据包;
默认值为 2,这时TCP/IP 将在接收到 2 个分段后发送应答,或是在接收了 1 个分段但在 200 毫秒内没有接收到其他分段的情况下发送应答
如果值为 3,则 TCP/IP 将在接收到 3 个分段后发送应答,或是在接收了 1 个或 2 个分段但在 200 毫秒内没有接收到其他分段的情况下发送应答,以此类推。
如果需要通过消除 TCP/IP 应答延迟来缩短响应时间,则将该值设为 1。在这种情况下,Windows将每收到一个TCP数据包就回送一个“命令正确应答”。
该值的有效范围是 0 到 255,其中 0 表示使用缺省值(2)。
采用Delayed ACK机制后,通常是服务端发送2个数据包后,客户端再进行确认,这样将极大的减少不必要的ACK数据包,同时也能提高访问速度,减少带宽浪费。
修改方法:
在注册表中添加键值进行修改;
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersInterfacesAdapter GUID
值名称:TcpDelAckTicks(不同的操作系统该值的名称不尽相同)
数据类型:REG_DWORD
值数据:将该值设置为 0 到 6 之间的值
默认情况下,延迟 ACK 计时器值为 200 毫秒。如果将 TcpDelAckTicks 值设置为 0,则禁用延迟确认。
相关推荐
在Windows操作系统中,注册表扮演着极其重要的角色,它不仅存储了系统配置信息,还包含了应用程序的设置等关键数据。对于初学者而言,掌握一定的注册表操作技巧是进一步了解计算机工作原理的基础之一。本文将详细...
然而,对于那些使用宽频方式上网或者所在局域网网络质量不佳的用户来说,时常会遇到网络卡顿、速度慢等问题。幸运的是,通过简单的注册表调整,可以有效改善这一状况。 #### TcpWindowSize是什么? TcpWindowSize...
1. 修改上位机Nagle算法的延时确认时间:可以通过调整Windows操作系统注册表中的TCPDelAckTicks值来减少发送端的确认等待时间,从而加快数据发送。但需要注意的是,过短的延时可能增加网络负载,需要根据实际系统...
总结来说,OA系统访问慢的原因可能涉及网络延时、TCP/IP协议相关配置、操作系统网络设置、浏览器版本差异以及带宽限制等多种因素。对于这类问题,通常需要系统管理员或者IT支持人员逐个排查和测试这些可能的原因,...
标题中的“Win2003修改TcpAckFrequency值无效热修复补丁”指的是在Windows Server 2003操作系统中,用户尝试通过调整TcpAckFrequency这个注册表键值来优化TCP/IP协议栈的性能,但发现修改后并未生效,即ACK(确认)...
可以通过修改Windows操作系统注册表的TCPDelAckTicks值进行调整。 2. 优化下位机的TCP协议程序。这种方法虽然更复杂,但能避免因公共服务端口限制带来的不便。可以考虑修改TCP分包策略,比如在TCP层进行分包处理以...
这些远程的计算机可以放置在因特网或您的局域网络内的任何一个地方,有了Radmin您不必需要一个快速的网络联机来在远程的计算机上工作,即使您只能利用modem来联机,您也可以每秒能够到达屏幕更新5-10次的合理速度。...
### Windows系统命令大全知识点解析 #### 1. compmgmt.msc - 计算机管理 - **功能**: 提供了计算机管理的各种工具,包括磁盘管理、服务和应用程序管理等。 - **应用场景**: 用于查看和管理本地或远程计算机上的资源...
- **功能**:Cacls(在较新版本的Windows中被icacls取代)用于管理文件和目录的安全属性。 - **使用方法**: - `cacls 文件名`:查看文件的访问控制列表。 - `icacls 文件名 /grant 用户名:(权限)`:授予用户对...
14. **限制启动菜单延时**:在注册表编辑器中,找到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer,创建DWORD值命名为MenuShowDelay,设置为0,加快启动菜单显示。 15. **优化TCP/IP设置*...
这些知识点涵盖了H3C安全认证中级课程中关于设备保护、应用发布、安全策略、数据库安全、访问控制、DDoS防护等方面的内容,对于网络安全专业人员来说,理解和掌握这些知识对于提升网络防御能力和解决实际问题至关...
### Windows XP系统总命令集合详解 #### 1. `winver` **功能**: 显示当前安装的Windows版本信息。 **用途**: 常用于检查系统版本是否为最新或指定版本。 #### 2. `wmimgmt.msc` **功能**: 打开Windows Management ...
这些远程的计算机可以放置在因特网或您的局域网络内的任何一个地方,有了Radmin您不必需要一个快速的网络联机来在远程的计算机上工作,即使您只能利用modem来联机,您也可以每秒能够到达屏幕更新5-10次的合理速度。...
3、更改系统墙纸、分辨率、颜色、主机名、创建网络共享等系统配置功能; 4、获取计算机名、注册公司、当前用户、系统路径、操作系统版本、当前显示分辨率、物理及逻辑磁盘信息等多项系统数据; 5、对按键...
**使用场景:** 虽然现在很少使用,但在早期版本的Windows中用于局域网内的即时通讯。 #### mem.exe **功能:** 显示内存使用情况。 **使用场景:** 监控系统内存使用状况时使用。 #### Msconfig.exe **功能:** ...
3、更改系统墙纸、分辨率、颜色、主机名、创建网络共享等系统配置功能; 4、获取计算机名、注册公司、当前用户、系统路径、操作系统版本、当前显示分辨率、物理及逻辑磁盘信息等多项系统数据; 5、对按键监视、剪切...
- **应用场景:** 高级用户修改注册表设置。 **15. rsop.msc** - **功能概述:** 打开“结果集测试器”控制台,用于查看组策略的结果集。 - **应用场景:** 系统管理员查看组策略的应用效果。 **16. regedit.exe**...
在Windows 7操作系统中,命令行工具是进行高级系统管理和故障排除的重要手段。本文将详细介绍由给定文件信息中提及的多个系统运行命令,这些命令覆盖了系统维护、硬件管理、网络配置、服务控制等多个方面,是IT专业...
如果没有安装IDE设备,我们可以选择NONE参数,这样可以加快系统的启动速度,在一些特殊操作中,我们也可以通过这样来屏蔽系统对某些硬盘的自动检查。 图中2部分是DRIVE A和DRIVE B软驱设置,如果没有A或B驱动器,...
它旨在提供出色的用户体验,尤其在低带宽环境中,通过智能优化传输协议来适应不同的网络条件。Blast Extreme支持TCP和UDP两种传输协议,同时采用多种编码格式,包括HEVC/H.265、JPG/PNG以及Blast Codec,以满足不同...