使用できる最大のポート番号は何ですか?
8 に答える
ポート番号は符号なしの 16 ビット整数、つまり 65535 です。
最大のポート番号は unsigned short 2^16-1: 65535 です
登録済みポートは、Internet Corporation for Assigned Names and Numbers (ICANN) によって特定の用途に割り当てられたポートです。登録された各ポートは、1024 ~ 49151 の範囲にあります。
2001 年 3 月 21 日以降、登録機関は ICANN です。それ以前は IANA でした。
登録されているポート番号よりも小さい番号のポートは、well-known ポートと呼ばれます。登録されたポートよりも大きな番号を持つポートは、ダイナミック ポートおよび/またはプライベート ポートと呼ばれます。
私が理解しているように、49152 から 65535 まではエフェメラル ポート用に予約されているため、49151 までしか使用しないでください。
smasheryの回答のフォローアップです。エフェメラル ポートの範囲 (少なくとも Linux では、他の Unice もそうだと思います) は固定されていません。これは、に書き込むことで制御できます
/proc/sys/net/ipv4/ip_local_port_range
唯一の制限 (IANA に関する限り) は、1024 未満のポートがウェルノウン ポートとして指定されることです。上記のポートは無料で使用できます。多くの場合、1024 未満のポートはスーパーユーザー アクセスに制限されていることがわかります。これがまさにその理由だと思います。
ポートの有効な番号は次のとおりです。0 ~ 2^16-1 = 0 ~ 65535
ポート番号は 16 ビット長であるためです。
ただし、ポートは次のように分類されます。 ウェルノウン
ポート: 0 ~ 1023 (HTTP、FTP、SSH、DHCP などのシステム サービスに使用)
登録済み/ユーザー ポート: 1024 ~ 49151 (サーバーに使用できますが、いくつかの有名なアプリケーションに注意してください: Microsoft SQL Server データベース管理システム (MSSQL) サーバーや Apache Derby Network Server などは、既にこの範囲から取得しています。つまり、MSSQL のポートをサーバーに割り当てることはお勧めしません。MSSQL が実行されている場合は、サーバーが最もおそらくポート競合のため実行されません)
動的/プライベートポート: 49152 から 65535. (NAT サービスなどでクライアントではなくサーバーには使用されません)
プログラミングでは、サーバーに 0 ~ 65535 の任意の数値を使用できますが、上記の範囲に固執する必要があります。そうしないと、一部のシステム サービスまたは一部のアプリケーションがポートの競合のために実行されません。
ここでほとんどのポートのリストを確認してください: https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
話している範囲によって異なりますが、ダイナミック レンジは 65535 または 2^16-1 (16 ビット) まで上がります。
http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
65535 である必要があります。