原文链接:http://msdn.microsoft.com/zh-cn/library/aa560610(v=bts.10).aspx
本文内容:1.查看端口使用状况的方法;2、端口耗尽所带来的问题;3、解决办法
当客户端启动到服务器的 TCP/IP 套接字连接时,客户端通常连接到服务器上的特定端口,并请求服务器通过临时(或暂时)TCP 或 UDP 端口进行响应。在 Windows Server 2003 和 Windows XP 中,客户端应用程序所使用的临时端口的默认范围为 1025 到 5000。在某些情况下,有可能耗尽默认范围的可用端口。
TCP/IP 端口耗尽的症状随客户端应用程序的不同而不同,但通常都表现为显示网络连接失败错误。若要确定网络连接失败是否是由 TCP/IP 端口耗尽造成的,请在客户端计算机上执行以下步骤:
- 在运行 Windows XP 或 Windows Server 2003 的计算机上单击“开始”,再单击“运行”,然后键入
cmd,单击“确定”打开命令提示。
- 执行以下操作之一:
- 在 Windows XP 或 Windows Server 2003 计算机上的命令提示中输入以下命令,显示此计算机上 TCP/IP 协议所使用的活动连接:
netstat -n
这将列出绑定到客户端计算机的 TCP/IP 地址以及 TCP/IP 地址与远程服务器通信所使用的端口。如果列出的端口使用了所有可用的端口,则出现了 TCP/IP 端口耗尽现象。
- 在基于 Windows Server 2003 的客户端计算机的命令提示中输入以下命令,以显示 TCP/IP 协议所使用的活动连接:
当客户端应用程序尝试使用 TCP/IP 套接字连接到 Server,可能会出现类似于下面的情况:
System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send.
- 或者 -
Unable to connect to the remote server
System.Net.Sockets.SocketException: Only one usage of each socket address (protocol/network address/port) is normally permitted.
原因
如果客户端计算机中存在数目超常的 TCIP/IP 套接字连接,则客户端计算机上可能出现 TCP/IP 端口耗尽的情况。如果多个客户端应用程序都在建立连接,则可能出现这种情况。
如果所有可用的临时端口都分配给了客户端应用程序,则客户端将出现 TCP/IP 端口耗尽的情况。当 TCP/IP 端口耗尽时,将无法预留客户端端口,并且尝试通过 TCP/IP 套接字连接到服务器的客户端应用程序也将出错。
在高负载情况下,比处于正常负载时更容易出现 TCP/IP 端口耗尽的情况。
解决方法
执行以下步骤以避免 TCP/IP 端口耗尽及其相关问题:
- 验证客户端应用程序没有生成过多的 TCP/IP 套接字连接。这一点可以用上面提到的方法来检查,即在 Windows Server 2003 和 Windows XP 上运行
netstat -n,或者在 Windows Server 2003 和 2008 上运行 netstat -b。
如果某个客户端应用程序使用了数量超常的 TCP/IP 套接字连接,则应考虑重新设计客户端应用程序,以便更有效地使用 TCP/IP 套接字连接。
如果大量客户端应用程序要启动已知数量的 TCP/IP 套接字连接,但没有足够数量的可用临时端口来满足连接请求,则需要进行以下注册表修改。
- 增加动态分配到客户端 TCP/IP 套接字连接的临时端口的上限。
- 启动注册表编辑器,在注册表中,浏览到并单击以下注册表项。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
- 在“编辑”菜单中单击“新建”、“DWORD 值”,然后添加以下注册表值,以增加可以动态分配到客户端的临时端口的数量:
值名称
|
MaxUserPort
|
值数据
|
<在此输入一个 5000 到 65534 之间的十进制值>
|
- 关闭注册表编辑器。
注意
必须重新启动计算机,此更改才会生效。 |
降低客户端 TCP/IP 套接字连接的超时值(默认值为 240 秒)
- 启动注册表编辑器。
- 在注册表中,浏览到并单击以下注册表项。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
- 在“编辑”菜单中单击“新建”、“DWORD 值”,然后添加以下注册表值,以缩短关闭连接时,该连接处于 TIME_WAIT 状态的时间。当连接处于 TIME_WAIT 状态时,套接字对无法重新使用:
值名称
|
TcpTimedWaitDelay
|
值数据
|
<在此输入一个 30 到 240 之间的十进制值。>
|
- 关闭注册表编辑器。
注意
必须重新启动计算机,此更改才会生效。 |
分享到:
相关推荐
5. **端口号**:TCP/IP使用端口号来区分同一台主机上的多个应用进程。每个应用都有一个或多个端口,如HTTP的80端口,HTTPS的443端口。 6. **MAC地址**:在数据链路层,设备使用MAC地址进行物理层通信。它是硬件级别...
### TCP/IP协议原理知识点解析 #### 一、TCP/IP协议简介 TCP/IP(Transmission Control Protocol/Internet Protocol)是一组用于实现互联网通信的标准协议集。它不仅定义了数据在网络中的传输方式,还规定了如何...
这份PPT课件可能涵盖以上所有层面,包括TCP/IP的结构、工作原理、协议栈、网络层次模型、IP地址和子网掩码的计算、端口号的分配、TCP连接的建立与关闭、拥塞控制算法等内容。对于深入理解网络通信和故障排查非常有...
在处理"TCP大作业"时,你需要仔细分析每个数据包的头信息,包括源和目标IP、端口,以及TCP和IP头部的其他字段。同时,通过查看应用层的数据,如HTTP请求或XMPP消息,可以深入理解微信如何发送和接收信息,包括文本...
1. **端口扫描**:扫描指定IP地址或范围内的主机,找出开放的TCP端口。这对于网络管理员识别潜在的安全漏洞或了解网络状态非常有用。 2. **数据包捕获与分析**:类似Wireshark,可以捕获网络流量,分析TCP/IP头部...
TCP/IP协议栈是STM32实现网络通信的核心,它允许设备通过互联网进行数据传输。在这个项目中,我们将讨论如何在STM32上建立一个TCP/IP服务器端,并使用KEIL MDK(uVision)作为开发环境。 首先,KEIL MDK是ARM公司...
TCP/IP协议详解卷1可能涵盖了这些基础知识,以及更深入的细节,如子网掩码、端口号分配、路由协议(如RIP、OSPF)、NAT(网络地址转换)等。理解TCP/IP协议族是任何IT专业人员必备的技能,因为它构成了互联网通信的...
TCP/IP协议是互联网的核心协议,它定义了网络设备如何交换数据以及数据如何被分组和传输。本资料集“TCP/IP协议2”深入探讨了这一关键通信协议的各个方面,包括其源代码分析,这对于理解协议的工作原理和技术细节至...
在IT行业中,TCP/IP协议族是网络通信的基础,它定义了一组规则,使得不同设备能够通过互联网进行数据交换。在局域网通信中,开发者经常使用C语言来编写服务器端程序,因为C语言的底层控制能力强,性能高效,非常适合...
除了上述攻击,还有许多其他TCP/IP协议层面的威胁,如IP欺骗、端口扫描、XMAS扫描、NULL扫描等。了解这些攻击手段,有助于我们构建更强大的防御体系。例如,防火墙和入侵检测系统(IDS)可以识别并阻止异常流量;...
TCP/IP详解还会涉及子网掩码、默认网关、DNS解析、端口号分配、IP路由选择、TCP三次握手和四次挥手过程、TCP滑动窗口机制、IP分片与重组等具体概念和技术。学习TCP/IP不仅可以帮助理解网络通信的底层原理,也是网络...
在TCP/IP协议中,端口号是区分不同应用的重要标志,每个TCP或UDP连接都有源端口号和目标端口号。DNS(域名系统)则是将人类可读的域名转换为IP地址的关键服务。此外,ICMP(Internet控制消息协议)用于网络诊断,如...
- TCP端口耗尽的原因在于操作系统版本为Windows Server 2008 SP1,该系统存在一个已知bug,即在运行497天后未关闭TIME_WAIT状态的所有TCP/IP端口。 2. **临时解决办法**: - 通过增加TCP端口个数来暂时缓解批处理...
【标题】"chat_server_C语言_TCP/IP_" 描述了一个使用C语言实现的基于TCP协议的简单聊天服务器。这个项目的核心在于其设计和实现了一个能够处理客户端连接和通信的基础架构,使得多个用户可以通过网络进行实时文本...
从标签“修改网络协议连接数工具”我们可以推断,这个工具的核心功能就是对TCP/IP协议栈进行配置优化,特别是调整与并发连接相关的参数,比如最大用户端口范围、最大半开连接数、TCP连接超时时间等。 压缩包内的...
在Windows平台上进行TCP/IP网络编程时,我们常常会遇到各种网络模型的选择,其中“完成端口”(IO Completion Ports, I/OCP)是高级网络服务的一种,尤其适用于高并发的服务器应用。本篇将深入探讨完成端口的概念、...
TCPsvr是一个基于TCP/IP协议的服务器程序,它在Visual Studio 2005环境下开发和运行。TCP/IP(Transmission Control Protocol/Internet Protocol)是互联网上应用最广泛的一组网络协议,为网络通信提供了标准的数据...
IP协议有两种版本:IPv4和IPv6,其中IPv6为解决IPv4地址耗尽问题而设计,提供更大的地址空间。 3. **TCP与IP的关系**:TCP/IP协议族是由TCP和IP以及其他辅助协议共同组成的,它们协同工作以实现网络通信。IP负责...