クライアントが68ポートでリッスンしないとすると、DHCPサーバが要求を受信すると、要求を受信したアドレス(送信時にクライアントによって選択された一時的なポート)に送信できます。ポート68でリスニングするのですか?DHCPクライアントがポート68でリッスンする理由
答えて
主な理由は、DHCPサーバが、要求を受信したMACアドレスにユニキャストで送信するのではなく、MACレベルで「DHCPオファー」をブロードキャストする可能性があることです。 ポートが一定でない場合、この同じランダムポートに対して偶然聞いているホストの中には、アプリケーションレイヤであるレイヤ5へのパケットを受け入れるものがあります。 つまり、アプリケーションは、健全な状況ではなく、全く異なるアプリケーションからメッセージを取得します。
私はちょうど同じ質問を自分自身に直面しなければならなかった、といくつかの研究の後、私はセクション1.6設計目標の下で、DHCPプロトコルを記述RFC 2131、上で次を見つけた:
- DHCPがにサービスを提供しなければなりません
UDPヘッダ:既存のBOOTPクライアントBOOTPプロトコルを記述RFC 951にも
は、我々は次のことを見つけることができます送信元および宛先ポート番号が含まれています。 BOOTPプロトコルは、2つの予約ポート番号、 'BOOTP client'(68) と 'BOOTP server'(67)を使用します。クライアントは、「BOOTP server」を宛先ポートとして使用して要求を送信します。これは通常放送です。 サーバは、宛先ポートとして「BOOTPクライアント」を使用して応答を送信します。 サーバ内のカーネルやドライバの機能によっては、 であっても、ブロードキャストでなくてもかまいません(詳しくは、 の「Chicken/Egg issues」というタイトルのセクションで説明しています)。 TWOO予約ポートが である理由は、ブートリプライをクライアントにブロードキャストする必要があるときに、「起床」を避けてBOOTPサーバ デーモンをスケジュールすることです。 サーバと他のホストは 'BOOTPクライアント'ポートでリッスンしませんので、 そのような着信ブロードキャストはカーネル レベルで除外されます。 UDPソースポートフィールドには、クライアントに「ランダム」ポート の番号を指定させるだけでは不十分です。サーバの応答が ブロードキャストである可能性があるため、ランダムに選択されたポート番号は、そのポートでリッスンしていた他のホスト を混乱させる可能性があります。
ですから、質問に対する答えは上記のものです。 DHCPクライアントはBOOTPプロトコルと互換性があり、BOOTPプロトコルはクライアントに特定のポートを要求するためにはUDPポート68を使用する必要があります。これはBOOTPREPLIESをブロードキャストすることができ、同じポートでリッスンしている他のホストが混乱する可能性があります。
- 1. DHCP用のTCPポート67および68
- 2. COMポート経由でTelnetクライアントに接続
- 3. MATLAB TCP/IPポートでのリッスン
- 4. マイクIOポートでアクティビティをリッスンするサウンドインターフェイス?
- 5. どのポートでブロードキャストパケットをリッスンするか?
- 6. IntelliJ - 「ポートXXXXXでリッスンしているSnapShooter」?
- 7. WindowsアプリケーションがEADDRINUSEで使用するポートをリッスンする
- 8. 私のウェブサイトはポート8080をリッスンしますが、ポート80はリッスンしません(これはURLのデフォルトです)
- 9. Eclipseはポート42540でリッスンします(?)
- 10. TCPポートへの連続リッスン
- 11. TCPポートCのデータをリッスンするC#
- 12. node.jsアプリケーションはポートでリッスンする必要がありますか?
- 13. ポートが間違ったネットワークインターフェイスでリッスンする
- 14. スピネーカーデッキはポート9000でリッスンしません
- 15. クライアントで使用されているポート(NMAP)を理解する
- 16. なぜmysqlはipv6のポート3306ではなく、ipv4のポートでリッスンする3306
- 17. window.location.hrefを呼び出すとポートが追加される理由
- 18. GoLangはポート範囲をリッスンします
- 19. コンテナがポート80でリッスンできるようにする副作用
- 20. DHCPタイムアウトをプログラム経由で設定する方法は?
- 21. WebDeployがポート8172でリッスンしていません
- 22. Parse Serverがポート1337でリッスンしていません
- 23. Artifactory Docker Repoが指定されたポートでリッスンしない
- 24. Node.jsが指定されたポートでリッスンしていない
- 25. ユニコーンがポートでリッスンしていない8080
- 26. NetworkStreamを廃棄するとクライアントが切断される理由
- 27. 私のLANのホストを特定のポートでリッスンする
- 28. PIDが4のシステムプロセスでポート443が使用されている理由
- 29. netcatがポートでリッスンしている間にテキストを表示する方法は?
- 30. JVMがポートでリッスンしていることを確認するには
「なぜプロトコルはクライアントがポート68でリッスンするように指定していますか」という質問は、「なぜRFCがそれを言っているのですか? –
DHCPは、ポート67(サーバー)とポート68(クライアント)を使用する以前のBOOTPプロトコルに基づいています。BOOTPがこれらのポートを使用したのは、その時点で他のプロトコル(SMTPは25、FTPは21など)では使用されていなかったからでしょう。ホストは通常、単一のIPアドレスを持っていますが、何千ものポートを持つことができます。特定のプロトコルに特定のポート番号を割り当てることにより、複数の当事者が標準のサービスおよびクライアントを開発することが可能になりました。あなたが正しいポートで聞いていれば、あなた自身のDHCPクライアントまたはサーバを書くことができます。 – TLiebe
Okは技術的な理由がないことを意味しますか? – avd