当TCP连接被关闭时,{ Protocol, Local IP, Local Port, Remote IP, Remote Port}五元组就进入TIME_WAIT状态,默认时间是4分钟。可以通过一组命令看看tcp的连接状态:

netstat -ano>>c:port.txt

本地ip,远程ip,远程端口都是固定的,只有本地端口是变化的,本地端口只能使用1024-5000,因此如果在4分钟内发起了大约4000个连接,这时就会发生异常,下面是使用WCF,客户端的异常:

System.Net.Sockets.SocketException: Only one usage of each socket address (protocol/network address/port) is normally permitted 192.168.101.5:8888
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
at System.ServiceModel.Channels.SocketConnectionInitiator.Connect(Uri uri, TimeSpan timeout)

TCP有个选项 TcpTimedWaitDelay:
确定 TCP/IP 可释放已关闭连接并重用其资源前,必须经过的时间。关闭和释放之间的此时间间隔通称 TIME_WAIT 状态或两倍最大段生命周期(2MSL)状态。此时间期间,重新打开到客户机和服务器的连接的成本少于建立新连接。减少此条目的值允许 TCP/IP 更快地释放已关闭的连接,为新连接提供更多资源。如果运行的应用程序需要快速释放和创建新连接,而且由于 TIME_WAIT 中存在很多连接,导致低吞吐量,则调整此参数。

Exchange Server 2007 服务器的缺省值是60,http://technet.microsoft.com/zh-cn/library/bb397379.aspx

打开注册表编辑器,如 Regedit.exe 或 Regedt32.exe。

导航到:HKLMSystemCurrentControlSetServicesTcpipParameters

双击 TcpTimedWaitDelay,然后将“数值数据” 字段设置为 60(十进制)。

关闭注册表编辑器,然后重新启动计算机。

MaxUserPort
描述:
确定在应用程序从系统请求可用用户端口时,TCP/IP 可指定的最高端口号。

如何查看或设置:
使用 regedit 命令访问 HKEY_LOCAL_MACHINESYSTEMCurrentControlSet ServicesTCPIPParameters 注册表子键并创建名为 MaxUserPort 的新 REG_DWORD 值。停止并重新启动系统。

注:当在 Windows NT 或 Windows 2000 操作系统上调整 erver 时,同时使用这两个参数。

本文来自云栖社区合作伙伴“doNET跨平台”,了解相关信息可以关注“opendotnet”微信公众号

TCP/IP 选项TcpTimedWaitDelay设置相关推荐

  1. Linux下高性能网络编程中的几个TCP/IP选项

    Linux下高性能网络编程中的几个TCP/IP选项 转自:http://blog.chinaunix.net/u/12592/showart.php?id=2064847 最近在新的平台上测试程序,以 ...

  2. Linux下高性能网络编程中的几个TCP/IP选项_SO_REUSEADDR、SO_RECVBUF、SO_SNDBUF、SO_KEEPALIVE、SO_LINGER、TCP_CORK、TCP_NODE

    最近在新的平台上测试程序,以前一些没有注意到的问题都成为了性能瓶颈,通过设置一些TCP/IP选项能够解决一部分问题,当然根本的解决方法是重构代码,重新设计服务器框架.先列出几个TCP/IP选项: 选项 ...

  3. 使用 AIX TCP/IP 过滤功能设置防火墙

    简介 一个 POWER 服务器具有承载上百个 LPAR 或分区(一个分区就是操作系统安装的一个独立实例)的处理能力,这意味着,虚拟化功能让您能在一个物理机器中拥有上百个服务器.如果这上百个服务器在处理 ...

  4. 设置计算机名与TCP/IP协议、设置Windows防火墙。

    一.设置计算机名与TCP/IP协议 1更改计算机名与工作组名. 进入"服务器管理界面",打开"服务器管理仪表盘".2单击窗口左侧"本地服务器" ...

  5. 网络命令以及如何使用Ipconfig.exe工具查看TCP/IP配置

    网络命令: 一.Ping命令 ping是个使用频率极高的实用程序,主要用于确定网络的连通性. 这对确定网络是否正确连接,以及网络连接的状况十分有用.简单的说,ping就是一个测试程序,如果ping运行 ...

  6. xp系统的计算机设置在哪里,xp系统电脑ip地址怎么设置

    我们都知道,每一台能够联网的电脑都有一个单独的ip地址.不过,很多朋友都不知道在哪里查看自己电脑的ip地址,更不懂得该如何设置自己电脑的ip地址.接下来,系统城小编就要带大家看看xp系统电脑ip地址的 ...

  7. 计算机通识之TCP/IP协议簇(二)

    TCP/IP协议簇 目录 1.子网划分 1.1子网划分概念 1.2 子网划分步骤 1.3 子网划分案例 2.IPv4 3.IPv6 4.OSI七层模型 4.1 OSI七层模型 4.2 TCP/IP五层 ...

  8. MATLAB实现TCP/IP通信

    1.使用R2021a版本的函数 参考链接:MATLAB TCP t = tcpclient(address,port) t = tcpclient(address,port,Name,Value) 使 ...

  9. linux tcp窗口大小设置,高性能Linux:TCP/IP内核参数调优之TCP窗口扩大因子(TCP Window Scaling)选项(理论篇)...

    TCP报文窗口字段介绍 在TCP报文头部,有一个16比特的窗口字段,用来表示接受方的缓冲区大小,发送方可以根据这个值的大小来调节发送的数据量,从而起到流控的目的. TCP的流量控制由连接的每一端通过声 ...

  10. Windows NT和2000的TCP/IP设置

    http://www.xhit.cn/html/net/xieyi/jichu/20070702/55169.html TCP/IP是一个广泛使用的广域网协议,在NT和2000系统中,它的一些参数会由 ...

最新文章

  1. [网络应用]Flash中鼠标手势及Ctrl+T问题{Firefox}
  2. 分库、分表、分区的区别,傻傻分不清?
  3. [摘]一张图 , oracle merge用法:
  4. 转 无障碍阅读 role aria-*
  5. 群星巨型计算机事件,群星 三种特殊事件介绍 特殊事件有几种
  6. 使用ViewPager实现左右循环滑动图片
  7. Jirasearch 2.0狗粮:使用Lucene查找我们的Jira问题
  8. java底层编程_万字长文!从底层开始带你了解并发编程,彻底帮你搞懂Java锁!
  9. C++_类和对象_C++多态_案例3-电脑组装---C++语言工作笔记075
  10. 现美团架构师分享过去三年的面试感悟—Java程序员应该具备的技能
  11. HTML中想要看见盒子的边框,盒子边框装饰
  12. GD32实战1__编程规范
  13. 组装机怎么重装系统?组装机U盘装系统方法
  14. mat1 and mat2 shapes cannot be multiplied ( )的解决
  15. C/C++程序员是什么让你有如此优势?音视频开发该怎么学?
  16. 简单的Dos命令/一行代码实现恶意程序
  17. 【Python黑科技】几行代码绘制gif动图(保姆级图文+实现代码)
  18. CUDA学习(二)-NVCC的编译过程及命令
  19. 使用Elasticsearch计算布林带宽度指标
  20. 八款知名MartingaleEA 策略的评价

热门文章

  1. [LeetCode]Count and Say
  2. ASP.NET Session使用详解
  3. 学习python: 常见面试题总结
  4. uigetfile命令的应用
  5. Arturia Pigments for Mac - 虚拟振荡合成器
  6. Android事件分发机制(一)
  7. 常用排序算法(三)直接插入排序
  8. iOS开发: info访问权限配置
  9. 渠道效果五步优化,让采购的流量物超所值
  10. Telnet 服务器软件的安装