IPv4 で許容される最大の TCP/IP ネットワーク ポート番号は何ですか?

StackOverflow https://stackoverflow.com/questions/113224

  •  02-07-2019
  •  | 
  •  

質問

使用できる最大のポート番号は何ですか?

役に立ちましたか?

解決

ポート番号は符号なし 16 ビット整数、つまり 65535 です。

他のヒント

最大のポート番号は、符号なしの短い 2^16-1 です。65535

登録済みポートは、Internet Corporation for Assigned Names and Numbers (ICANN) によって特定の用途に割り当てられたポートです。登録されている各ポートの範囲は 1024 ~ 49151 です。

2001 年 3 月 21 日以降、登録機関は ICANN になりました。それまではIANAでした。

登録されているポートよりも番号が小さいポートはウェルノウン ポートと呼ばれます。登録されているポートよりも大きな番号を持つポートは、ダイナミック ポートやプライベート ポートと呼ばれます。

ウィキペディア :登録済みポート

私の理解では、49152 から 65535 までは予約されているため、49151 までのみを使用する必要があります。 一時的なポート

ただのフォローアップ 破壊行為さんの答え。一時的なポート範囲 (少なくとも Linux では、他の Unice でも同様だと思われます) は固定されていません。これは、に書き込むことで制御できます。/proc/sys/net/ipv4/ip_local_port_range

(IANA に関する限り) 唯一の制限は、1024 未満のポートがウェルノウン ポートとして指定されていることです。それ以上のポートは無料で使用できます。1024 未満のポートはスーパーユーザーのアクセスに制限されていることがよくありますが、これがまさに理由だと思います。

RFC 793 によれば、ポートは 16 ビット unsigned int です。

これは、範囲が 0 ~ 65535 であることを意味します。

ただし、その範囲内では、ポート 0 ~ 1023 は通常、特定の目的のために予約されています。一般的にと言ったのは、ポート 0 を除けば、通常、0-1023 の予約は強制されないためです。TCP/UDP 実装 通常、0 以外の予約は強制されません。必要に応じて、Web サーバーの TLS ポートを、標準の 443 ではなくポート 80、25、または 65535 で実行できます。同様に、SMTP サーバーはポート 25 で待機するのが標準ですが、80、443 などで実行することもできます。

ほとんど 実装 特定の目的、つまりランダムなポート割り当てのために 0 を予約します。したがって、ほとんどの場合 実装, 、「ポート 0 でリッスンする」というのは、実際には「使用するポートは気にしない、ランダムな未割り当てのポートをリッスンするように指定してください」という意味です。

したがって、0、一時予約範囲などを含む、0 ~ 65535 の範囲のポートの使用に関する制限は次のとおりです。 実装(すなわち、OS/ドライバー) 固有, ただし、RFC 793 では、0 を含むすべてが有効なポートです。

どの範囲について話しているのかによって異なりますが、ダイナミック レンジは 65535 または 2^16-1 (16 ビット) までになります。

http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers

65535 である必要があります。

ポートの有効な番号は次のとおりです。0 ~ 2^16-1 = 0 ~ 65535
これは、ポート番号が 16 ビット長であるためです。

ただし、ポートは次のように分割されます。
既知のポート:0 ~ 1023 (システム サービスに使用されます。HTTP、FTP、SSH、DHCP ...)
登録済み/ユーザーポート:1024 ~ 49151 (サーバーに使用できますが、有名なアプリケーションには注意してください:Microsoft SQL Server データベース管理システム (MSSQL) サーバーや Apache Derby ネットワーク サーバーなどは、すでにこの範囲から取得しています。MSSQL のポートをサーバーに割り当てることはお勧めできません。そうしないと、MSSQL が実行されている場合、ポートの競合によりサーバーが実行されなくなる可能性があります)。
動的/プライベートポート:49152~65535。(サーバーではなくクライアントに使用されます。NATingサービス内)

プログラミングでは、サーバーに 0 ~ 65535 の任意の数値を使用できますが、上記の範囲に固執する必要があります。そうしないと、ポートの競合により一部のシステム サービスや一部のアプリケーションが実行されなくなります。
ここでほとんどのポートのリストを確認してください。 https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top