65535とTCP接続数の関係についてのテストの結論

まず、結論:

  • ホストで最大65535のTCP接続のみを維持できますか?

    • クライアントはこのようなものですが、サーバーはそうではありません
  • それは重要ですか

    • 。関連
      • クライアントのために

        • TCP quadruple sportによると、このスポーツは16ビットしかないため、クライアントの場合は65535しかありません。したがって、(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を調整します(ただし、それほど多くのポートを確立する必要のあるクライアントはないはずですか?)

発生したエラーコード:

  • 要求されたアドレスを割り当てることができません。
    • 実際、ポート範囲は不十分です
  • 開いているファイルが多すぎる(開いているファイルが多すぎる)
    • 開口部の最大数を変更してください

テスト環境:

  • 5 ubuntu 2G 2U、そのうちの1つはSERVER

テスト結果:

  • そのときに設定したMAX OPEN FILEは102400であり、最大テストは約102100のロングリンク(ESTABLISHED状態)であり、それらはすべて102400に等しくなかったため、一部はシステムによって占有されているはずです

テストコード
以下は、テストコードのアドレスです。上記の2つのパラメーターを変更し、2つのマシンを使用してテストし
ますhttps://gist.github.com/lisqorz/165204c1703b3cad325231ecbade3876

さらに読む

4つ組の理解に興味がある人は、記事https://www.cnblogs.com/ouzi/archive/2012/10/29/2745430.htmlをフォローできます

記述子の操作に興味がある場合は、これを見ることができます

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

おすすめ

転載: www.cnblogs.com/lisq/p/12747657.html