首先说结论:

  • .是否有关系

    • .有关系

      • 对于客户端

        -.对于客户端来说,只有65535,因为根据TCP四元组的sport来说,sport只有16位,所以(2^16)-1是65535。也就是最多有65535个可用端口,这里只说长链接,不包括SOCK_REUSEOPT

        • 但是,并不能说,一个客户端可以保持到同一个服务器65535个连接,因为
        1. 1024以下,由系统占用
        2. local_port_range参数控制了可用端口范围

          sctl -a |grep port_rangenet.ipv4.ip_local_port_range = 50000    65000      -----意味着50000~65000端口可用

          可以通过修改ip_local_port_range来扩大范围,但是也只能到65535
      • .对于服务端来说

        • 65535的限制,是针对单个客户端IP的链接的
        • 调整MAX OPEN FILE即可保持更多连接
        • 调整 ip_local_port_range 支持更大的端口范围(不过应该没有什么客户端需要建立这么多的端口吧?)

遇到的错误码:

  • Cannot assign requested address.

    • 其实就是端口范围不足
  • too many open files(打开的文件过多)
    • 修改最大打开数就行

测试环境:

  • 5台ubuntu 2G 2U,其中一台作为SERVER

测试结果:

  • 因为我当时设置的MAX OPEN FILE是102400, 最大测试到102100左右的长链接(ESTABLISHED状态),并没有全等于102400个,因该有一些被系统占用了

测试代码

下边是测试代码地址,修改上边两个参数,使用两台机器测试一下

https://gist.github.com/lisqorz/165204c1703b3cad325231ecbade3876

扩展阅读

有兴趣了解四元组的可以下边的文章

https://www.cnblogs.com/ouzi/archive/2012/10/29/2745430.html

有兴趣看描述符的操作的,可以看这个

https://blog.csdn.net/u011436427/article/details/103215882

最新文章

  1. Docker-创建支持ssh服务的镜像
  2. thinkphp数据库添加表单提交的数据
  3. WCF入门(十)---WCF事务
  4. linux命令后面常见的>/dev/null 和 2>&1 的含义
  5. Oracle删除重复数据的几种常用方法
  6. [转]学DSP、FPGA、ARM,哪个更有前途?
  7. "table" is not mapped 解决方法
  8. css 背景图片自适应
  9. sqlserver与mysql中vachar(n)中遇到的坑
  10. 《前端之路》之 JavaScript 高级技巧、高阶函数(一)
  11. 【Java】几道让你拿offer的知识点
  12. [LeetCode] 19. 删除链表的倒数第N个节点
  13. 关于db2处理特殊字段出现异常java.io.charConversionException
  14. laravel发布订阅
  15. 创建Web API并使用
  16. 聊一聊docker存储驱动
  17. 自定义reg52.h头文件(单片机学习重难点核心知识点)
  18. event对象中 target和currentTarget 属性的区别。
  19. 浏览器和服务器 对http请求(post get) url长度限制
  20. 【Scrum】-NO.40.EBook.1.Scrum.1.001-【敏捷软件开发:原则、模式与实践】- Scrum

热门文章

  1. CentOS7 如何安装JDK(以及卸载)
  2. 洛谷 P3870 [TJOI2009]开关 题解
  3. ysoserial分析【二】7u21和URLDNS
  4. 曹工说Spring Boot源码(27)-- Spring的component-scan,光是include-filter属性的各种配置方式,就够玩半天了.md
  5. [LeetCode] 935. Knight Dialer 骑士拨号器
  6. 【WPF学习】第六十章 创建控件模板
  7. MATLAB 大数相乘溢出显示
  8. IDEA 新版本激活之后老是有弹窗 解决方法
  9. vs整合MySQL和QT
  10. RMI 使用笔记