2

イーサネットに接続された PC の前に座っているユーザーを想像してみてください。彼はブラウザを開いています。彼はアドレス バーに「www.google.com」と入力し、Enter キーを押します。

次に、イーサネット上に現れる最初のパケットを教えてください。

ここでこの質問を見つけました:ソケットプログラミングとマルチスレッドに関するインタビューの質問

私はネットワーキングの専門家ではないので、答えを聞きたいです (「場合による」と思います;))。

Wireshark のようなツールを使用すると、自分のコンピューターの動作を明らかに確認できます。私が見ているパケット (ARP、DNS、VRRP など) が各イーサネット構成で同じであるかどうか (OS に依存していますか? ドライバーに依存していますか? ブラウザーにさえ :)?) そしてどの条件がそれらが表示されます。データリンク層にいるということは、物理ネットワーク (ハブ/スイッチ/ルーターに接続されている) に依存しているのでしょうか?

4

6 に答える 6

8

ARP を使用して DNS サーバーを見つけることについての回答は、一般的に間違っています。

特に、オフネット IP アドレスの IP アドレス解決はARP を使用して行われることはなく、そのような ARP クエリに応答するのはルーターの責任ではありません。

オフネット ルーティングは、クライアントマシンが接続先のローカル サブネット上にある IP アドレスを認識して実行されます。要求された IP アドレスがローカルでない場合、クライアント マシンはルーティング テーブルを参照して、パケットを送信するゲートウェイを見つけます。

したがって、ほとんどの場合、送信される最初のパケットは、デフォルト ゲートウェイの MAC アドレスを見つけるための ARP 要求になります (まだ ARP キャッシュにない場合)。

そうして初めて、ゲートウェイ経由で DNS クエリを送信できます。この場合、パケットは、IP 宛先フィールドに DNS サーバーの IP アドレスを指定して送信されますが、イーサネット パケットにはゲートウェイの MAC アドレスが指定されています。

于 2009-03-24T16:18:07.020 に答える
6

いつでもwiresharkをダウンロードして見ることができます.


楽しみを台無しにしますが。

ホストの IP アドレスがキャッシュされておらず、DNS サーバーの MAC アドレスもキャッシュされていないと仮定すると、最初に送信されるのは、DNS サーバーの MAC アドレスを見つけようとするブロードキャストARPメッセージです (ルーターは独自のアドレスで応答します)。

次に、ホスト名は DNS を使用して解決されます。次に、返された IP アドレスが ARP を使用して解決され (再びルーターが独自のアドレスで応答します)、最後に HTTP メッセージが実際に送信されます。

于 2009-03-20T16:18:42.090 に答える
2

実際には、未指定のままにしたさまざまな初期条件によって異なります。

  1. PC がローカル DNS キャッシング リゾルバーを含むオペレーティング システムを実行していると仮定すると (私の場合)、パケットが送信される前に最初に行われることは、キャッシュで IP アドレスが検索されることです。「www.google.com」は完全修飾ドメイン名ではないため、これは複雑です。つまり、末尾のドットがないため、DNS リゾルバーは、検索ドメイン リストに一致するキャッシュ内の既存のレコードを最初に受け入れます。たとえば、検索ドメイン リストが「example.com」の場合。続いて「yoyodyne.com」。次に、「www.google.com.example.com」という名前に一致するリソースをキャッシュしました。「www.google.com.yoyodyne.com.」最後に「www.google.com」です。利用可能な場合に使用されます。また、注意してください: Web ブラウザがより一般的なものの 1 つである場合は、PC は適度に最新のオペレーティング システムを実行しており、ホストには、グローバル スコープの IPv6 アドレスが割り当てられたネットワーク インターフェースが少なくとも 1 つある (そしてホストは、www.google.com が DNS ホライズンに AAAA レコードを持つネットワーク上にある)。その場合、サーバーのリモート アドレスは IPv4 ではなく IPv6 である可能性があります。これは後で重要になります。

  2. Google Web サーバーのリモート アドレスが DNS にローカルにキャッシュされ、ARP/ND6 キャッシュにデフォルト ルーターの (それぞれ) IPv4/IPv6 アドレスのエントリが含まれている場合、最初に送信されるパケットは TCP SYN パケットをソースとするルーターに接続され、キャッシュされたリモート IPv4/IPv6 アドレス宛てのインターフェイス アドレスから。あるいは、デフォルト ルーターは、ある種のレイヤー 2 またはレイヤー 3 トンネルを介して到達可能である可能性があります。この場合、SYN パケットは適切にカプセル化されます。

  3. Google Web サーバーのリモート アドレスローカルにキャッシュされている場合、ホストは最初に DNS ドメイン検索リスト内の A および/または AAAA レコードを順番にクエリする必要があります。リゾルバー構成の最初の DNS リゾルビング サーバー アドレスがローカル IPv4 サブネット範囲の 1 つにあるか、またはルーター アドバタイズメントで L=1 ビットが設定されたローカルに接続された IPv6 プレフィックスにあり、ARP/ND6 キャッシュに既にエントリが含まれている場合問題のアドレスの場合、ホストが送信する最初のパケットは、ドメイン検索リストの最初の完全修飾ドメイン名に一致する A レコードまたは AAAA レコードの直接 DNS クエリです。または、最初の DNS サーバーがリンク上でアドレス指定できず、デフォルト ルーターに ARP/ND6 キャッシュ エントリが既にある場合、DNS クエリ パケットはデフォルト ルーターに送信され、DNS サーバーに転送されます。

  4. ローカルのオンリンク DNS サーバーまたはデフォルト ルーター (それぞれ上記の場合のように) が ARP/ND6 キャッシュにエントリを持たない場合、ホストが送信する最初のパケットは ARP 要求または ICMP6 のいずれかです。対応するアドレスの近隣要請。

ああ、でも待ってください...もっとひどいです。ホストが送信する最初のパケットが LLMNR クエリ、IKE 開始、または... または... または... これらすべてについてどれだけ気にかけているのか、バカルー?

于 2009-05-28T07:35:47.077 に答える
1

場合によります

わかりました。たとえば、ローカル DNS キャッシュにはアドレスが含まれていますか? そうでない場合は、DNS ルックアップが最初になる可能性があります。

于 2009-03-20T16:21:36.670 に答える
1

何をしようとしても、最初にイーサネット プロトコル関連のデータが発生します。特に、イーサネット アダプタは、イーサネット バスが使用可能かどうかを判断する必要があります (したがって、ここで衝突検出が行われます)。

使用しているイーサネット ネットワークの種類に大きく依存するため、質問に答えるのは難しいです。イーサネット伝送の詳細については、ここここを参照してください。

于 2009-03-20T16:22:08.777 に答える
1

ホスト名が DNS キャッシュにも hosts ファイルにもない場合、最初のパケットは DNS に送られます。

それ以外の場合、最初のパケットは HTTP GET になります。

于 2009-03-20T16:32:00.763 に答える