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


回答:


565

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


216
「ねえ、ジム、いくつのポートをサポートすべきですか?」「良い目安としては、16ビットにするだけです。一度に数百を超える数を開くことは決してありません」
JessieArr 14

3
@barlop私は、彼らが最初にポートを作成したとき、何百もの接続を持つ単一のマシンがおそらく最悪のシナリオと考えられていたことを示唆していました。しかし、今日のWebサーバー、ネットワークデバイスなどは、ポート数の制限に確実にぶつかることがあります。:マイクロソフトは、Windows環境でそれを診断し、回避する方法についての興味深いTechNetの記事を書いたblogs.technet.microsoft.com/askds/2008/10/29/...
JessieArr

3
どちらの場合も@JessieArrは、実際には65536の問題ではありません。A)プログラムが接続を解放しないため、netstatが「WAIT」状態のままにしておくことと、B)1024-5000からのみ移行する以前のいくつかのWindowsバージョンがそして、それでも、それが起こったことさえ知っている人でも、動的ポートを取得できなかったこと、誰もウィンドウを持っていないことを誰にも報告しなかったので、それは、 65536番号。Webブラウザーが接続の最大のユーザーである可能性があります。65Kからは
ほど遠い

3
@JessieArrほとんどのIPスタックは、接続の一意の識別子として、送信元IPアドレス、送信元ポート、宛先IPアドレス、および宛先ポートのタプルを使用します。サーバは多く持つことができることをこれは、多くの利用可能なオープンポートがあるよりも多くのアクティブな接続を、およびポートの量は、単一のソースと単一の宛先との間のオープン接続の量に(非常に大きなものが)制限を課します。誰も一度に65536を超えるポートでサーバーを実行する(または接続をリッスンする)とは思いません。
jduncanator 2017

41
@JessieArr-ジョークを作ってみることを教えてくれます。これはあなたが知っている深刻なビジネスです。ここでそのようなことをする時間はありません:/
Matt

145

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

登録されたポートは、特定の用途に割り当てられた名前と番号(ICANN)のためにInternet Corporationによって割り当てられたポートです。登録されている各ポートは、1024〜49151の範囲です。

2001年3月21日以降、登録機関はICANNです。それ以前はIANAでした。

登録されているポートの番号よりも小さい番号のポートは、既知のポートと呼ばれます。登録されているポートの番号より大きい番号のポートは、動的ポートまたはプライベートポート、あるいはその両方と呼ばれます。

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


71

私が理解しているように、49152から65535まではエフェメラルポート用に予約されているため、使用できるのは49151までです。


11
一時ポート範囲はシステムによって異なります。私は3.19.0-43-genericカーネルでubuntu linuxを実行しています。$ cat /proc/sys/net/ipv4/ip_local_port_range結果を出力します 32768 61000。システムの一時的なポート範囲内のポートを使用する必要があるかどうかについては、現代のネットワークオペレーティングシステムのすべてが、既に使用されているポートをスキップするとは限りません。
キースレイノルズ

37

smasheryの回答の単なるフォローアップです。短命なポート範囲(少なくともLinuxでは、他のUnicesも疑わしい)は修正されていません。これは、 /proc/sys/net/ipv4/ip_local_port_range

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


15

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で有効なポートです。



11

ポートの有効な番号は次のとおりです。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


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.