クライアントが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. MATLAB TCP/IPポートでのリッスン
- 2. マイクIOポートでアクティビティをリッスンするサウンドインターフェイス?
- 3. どのポートでブロードキャストパケットをリッスンするか?
- 4. WindowsアプリケーションがEADDRINUSEで使用するポートをリッスンする
- 5. 私のウェブサイトはポート8080をリッスンしますが、ポート80はリッスンしません(これはURLのデフォルトです)
- 6. Eclipseはポート42540でリッスンします(?)
- 7. TCPポートCのデータをリッスンするC#
- 8. ポートが間違ったネットワークインターフェイスでリッスンする
- 9. Parse Serverがポート1337でリッスンしていません
- 10. 私のLANのホストを特定のポートでリッスンする
- 11. エラー:サーバーがクライアント登録を受け付けませんでした68
- 12. Nginx複数のサーバーブロックが同じポートをリッスンしています
- 13. クライアントは、ポート39000
- 14. lwipルータのアクティブIPテーブルにDHCPクライアントが表示されない
- 15. Github SSHによる機関代理店経由のポート22とポート443のブロック
- 16. SQL Azureに代替ポートでリッスンさせる
- 17. JavaのDHCPクライアント、IPから送信できません0.0.0.0
- 18. HTTPハンドラを使用してポート80をリッスンする
- 19. ブーストソケット/アクセプタは同じポートでリッスン/接続できません。
- 20. SqlClient.SqlException .Number = 3617 .State = 68
- 21. Node.js + Express:アプリケーションはポート80でリッスンを開始しません
- 22. SSHが私の専用サーバーのポート22でリッスンするのを止める場合があります
- 23. ポート上で特定の文字列を自動的にリッスンするJavaクラス?
- 24. 1つのポートは2つの異なるプロトコルをリッスンできますか?
- 25. Windowsがクラッシュする理由
- 26. ラベルインテントがフィルタリングする理由
- 27. すべてのポートをリッスンするときにTCPストリームを停止する
- 28. microsoft dhcp server management apiでdhcp予約を照会するときにNullReferenceExceptionが発生する
- 29. TomcatがHTTPポートをリッスンするのをプログラムで一時停止する方法はありますか
- 30. OS Xが同じTCPポートで2回リッスンできるのはなぜですか?
「なぜプロトコルはクライアントがポート68でリッスンするように指定していますか」という質問は、「なぜRFCがそれを言っているのですか? –
DHCPは、ポート67(サーバー)とポート68(クライアント)を使用する以前のBOOTPプロトコルに基づいています。BOOTPがこれらのポートを使用したのは、その時点で他のプロトコル(SMTPは25、FTPは21など)では使用されていなかったからでしょう。ホストは通常、単一のIPアドレスを持っていますが、何千ものポートを持つことができます。特定のプロトコルに特定のポート番号を割り当てることにより、複数の当事者が標準のサービスおよびクライアントを開発することが可能になりました。あなたが正しいポートで聞いていれば、あなた自身のDHCPクライアントまたはサーバを書くことができます。 – TLiebe
Okは技術的な理由がないことを意味しますか? – avd