zoukankan      html  css  js  c++  java
  • 65535与TCP连接数的关系测试结论

    首先说结论:

    • 一台主机上只能保持最多65535个TCP连接是吗?

      • 客户端是这样的,服务端不是
    • 是否有关系

      • .有关系
        • 对于客户端

          • 对于客户端来说,只有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

  • 相关阅读:
    第一次博客作业
    自我介绍
    第一次个人编程作业
    第一次博客作业
    第一次个人编程作业
    第一次博客作业
    Alpha冲刺
    Alpha冲刺 (2/10)
    Alpha 冲刺 (1/10)
    福大软工 · 第七次作业
  • 原文地址:https://www.cnblogs.com/lisq/p/12747657.html
Copyright © 2011-2022 走看看