2011-10-20 5 views
1

インタビュアーが他のフォーラムで述べたように、以下の質問をしました。
私は正確な答えはわかりませんが、私はHTTPリクエストを言うでしょうか?任意の提案と説明質問を送信したときに最初に到着するパケット

ユーザーがイーサネット接続されたPCに座っているとします。彼はブラウザを開いている。彼はアドレスバーに「www.google.com」と入力してヒットします。

ここで、イーサネットに表示される最初のパケットが何であるかを教えてください。

おかげ

+0

私は 'ping'(ICMP)パケットを推測します。私は誠実に考えていません。 – Blender

+0

私は、まず名前をIPアドレス – samprat

+0

の正確な複製[最初のパケットを参照するときに送信する]を変換すると思います(http://stackoverflow.com/questions/666864/first-packet-to-be-sent-when -starting-to-browse) – Alnitak

答えて

5

一切保証常に正しい答えはありませんしかし、いくつかの可能性があります。

クライアントがDNS over UDPに設定されている場合、最初のパケットはDNS queryを含むUDPデータグラムになり、www.google.comがIPアドレスに解決されます。

クライアントがDNS over TCPに設定されていて、ブラウザにDNSサーバとのTCP接続が確立されていない場合、最初のパケットはDNSへの接続ハンドシェイクの一部になるため、SYNパケットは最初にゲートから出ています。

ブラウザがDNSサーバーとの長期間のTCP接続を維持するようにコーディングされており、DNSサーバーが接続を有効にしていると仮定すると、最初のパケットはDNSクエリになり、既存の接続を介して送信されます。そのDNSサーバー。

最後に、最近ブラウザが最近www.google.comにアクセスし、DNSクエリ結果のスマートなローカルキャッシュを行うように構築されている場合、最初のパケットはGoogleのWebサーバーへの新しい接続を確立するためのSYNになります。

グリビングは絶対に正確にしたい場合は、答えのレイヤーをドロップして、と言ってください。「最初のパケットは、必要な上位レベルのプロトコルをサポートするペイロードを含むイーサネットフレームです。 www.google.comを提供するブラウザ "となります。公平に、質問はイーサネットレイヤーに関するものです...

+0

ブラウザは、DNSサーバーへの長時間のTCP接続を維持しません。そして、レイヤー2に行くことはglibではない、それは_答えです。 L2→L3マッピングが確立されるまで、L3パケットは交換できません。 – Alnitak

+0

私は面接官がイーサネット層について尋ねていないお金を賭けるだろう。私は彼らが代わりにTCPやUDPの知識をテストしていたと確信しています。 –

+0

どうすれば2番目のことを推測できますか? FWIW、潜在的なネットワーク管理者またはネットワークアプリプログラマーのこの質問をしていたら、私は彼らがL2に落ちると思っていました。 – Alnitak

0

興味深い:)私はちょうどそれをwiresharked:

Client sends a SYN 
Server replies with a SYN,ACK 
Client sends an ACK 
Client sends an HTTP GET 

(あなたのコメントで言及のように最初は明らかにDNSルックアップである)

+0

SYN/SYN-ACK/ACKは、これだけ見ただけであれば、HTTP接続のTCP接続ハンドシェイクです。 DNS-IPマッピングと適切なゲートウェイのMACアドレスがキャッシュされている可能性があります。 –

2

厳密に言えば、最初のパケットは、クライアントPCからのデフォルトゲートウェイ(または、クライアントと同じサブネット上にある場合はDNSサーバ)のMACアドレスを検出します。

+0

+1。 ARPキャッシュにMACアドレスがないと仮定します。 – Jack

+0

@Jackしたがって "完全に空白のスレート" – Alnitak

関連する問題