回答:
ポート番号は、符号なしの16ビット整数なので、65535です。
最大のポート番号は、符号なしの短い2 ^ 16-1です:65535
登録されたポートは、特定の用途に割り当てられた名前と番号(ICANN)のためにInternet Corporationによって割り当てられたポートです。登録されている各ポートは、1024〜49151の範囲です。
2001年3月21日以降、登録機関はICANNです。それ以前はIANAでした。
登録されているポートの番号よりも小さい番号のポートは、既知のポートと呼ばれます。登録されているポートの番号より大きい番号のポートは、動的ポートまたはプライベートポート、あるいはその両方と呼ばれます。
私が理解しているように、49152から65535まではエフェメラルポート用に予約されているため、使用できるのは49151までです。
$ cat /proc/sys/net/ipv4/ip_local_port_range
結果を出力します 32768 61000
。システムの一時的なポート範囲内のポートを使用する必要があるかどうかについては、現代のネットワークオペレーティングシステムのすべてが、既に使用されているポートをスキップするとは限りません。
RFC 793によれば、ポートは16ビットの符号なし整数です。
つまり、範囲は0〜65535です。
ただし、その範囲内では、ポート0〜1023は通常、特定の目的のために予約されています。一般的に言っているのは、ポート0を除いて、通常は0-1023予約の強制がないためです。TCP / UDP 実装は通常、0以外の予約を強制しません。必要に応じて、標準の443の代わりに、ポート80、25、または65535でWebサーバーのTLSポートを実行できます。同様に、 SMTPサーバーがポート25でリッスンする標準の場合、80、443などで実行できます。
ほとんどの実装では、特定の目的のために0を予約しています-ランダムなポート割り当て。したがって、ほとんどの実装では、「ポート0をリッスンする」と言っても、実際には「どのポートを使用するかは気にせず、ランダムに割り当てられていないポートをリッスンするだけです」という意味です。
したがって、0、一時的な予約範囲など、0〜65535の範囲のポートの使用に関する制限は実装(つまり、OS /ドライバー)固有ですが、0を含むすべてがRFC 793で有効なポートです。
話している範囲によって異なりますが、ダイナミックレンジは最大65535または2 ^ 16-1(16ビット)になります。
http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
ポートの有効な番号は次のとおりです。0〜2 ^ 16-1 = 0〜65535
これは、ポート番号が16ビット長であるためです。
ただし、ポートは次のように分類さ
れます。Well -knownポート:0〜1023(HTTP、FTP、SSH、DHCPなどのシステムサービスに使用)
登録済み/ユーザーポート:1024〜49151(サーバーに使用できますが、いくつかの有名なアプリケーションを注意してください:Microsoft SQL Serverデータベース管理システム(MSSQL)サーバーやApache Derby Network Serverのように、すでにこの範囲から取っています。MSSQLのポートをサーバーに割り当てることはお勧めしません。おそらくポートの競合のために実行されません)
ダイナミック/プライベートポート:49152から65535(NATサービスなどのクライアントではなくサーバーでは使用されません)
プログラミングでは、サーバーに0〜65535の任意の数値を使用できますが、上記の範囲を守る必要があります。そうしないと、ポートの競合のために一部のシステムサービスまたは一部のアプリケーションが実行されません。
ほとんどのポートのリストをここで確認してください:https : //en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers