LoginSignup
0
2

More than 1 year has passed since last update.

【Cisco Packet Tracer】ブラウザがページ表示するまでのパケット通信をアニメーションで理解する

Last updated at Posted at 2022-12-17

【概要】

Cisco Packet Tracerでブラウザがページ表示するまでのパケット通信をアニメーションで見ることにより、パケット通信の理解を深めます。
現在はHTTPSが主流ですが、理解しやすいようにHTTPSではなくHTTPを使用します。
また、やり取りしているパケットについて一つずつ説明していきます。

【環境】

Cisco Packet Tracer Version: 8.2.0.0162

【インポート用ファイル】

下記リンク先のhttp.pktがインポート用ファイルになります。
通信に必要なIPアドレス等の情報は設定済みです。
PC、ルーターのARPテーブルには、他の機器の情報がない状態です。

【ネットワーク構成図】

ネットワーク構成図.png

【ブラウザページ表示手順】

1. Packet Tracerを起動し、インポート用ファイルを開く

メニューの File -> Open ... からインポート用ファイルを指定して開きます。

ファイルインポート後は、スイッチ側のポートはオレンジ色となっており通信不可状態です。
これは、STP(スパニングツリープロトコル)が有効となっているためであり、30秒後に緑色の通信可能状態に変わります。
30秒というのは、STPのリスニングとラーニングの保持時間がそれぞれ15秒でありその合計時間です。

通信不可状態のまま後続手順を実行すると、スイッチを経由する通信が届かなくなるので、通信可能状態になってから実行しています。
デフォルトではRealtimeモードになっていると思います。このモードで通信可能状態になるまで30秒待ちます。

2. Simulationモードに変更する

Realtimeモードだとパケットの動きを見れないため、画面右下にあるSimulationボタンをクリックして、Simulationモードに変更します。
「Constant Delay」にチェックが入っていると一定時間ごとのパケット送信となり実際にかかる時間が確認できなくなるため、チェックを外します。
パケットトレーサー1.png

3. HTTP通信を開始する

PCのアイコンをクリックして、Desktopタブを開き、Web Browserを選択します。
パケットトレーサー2.png

ブラウザが開くので下記URLを入力し、Goボタンをクリックします。

http://example.com

パケットトレーサー3.png

4. アニメーションを開始する

再生ボタンをクリックして、アニメーションを開始します。
パケットトレーサー4.png

5. ページ表示完了

アニメーションがすべて終わると、ブラウザにページが表示されています。
ページ表示.png

【アニメーション】

再生ボタンをクリックした後のアニメーションです。
実際のアニメーションは下記gif画像よりも、もっとパケットの動きが遅くなめらかになります。
このgif画像は、画像編集ツールで速度を早めたものになります。
(実際のアニメーションは、インポート用ファイルと同じリポジトリに格納してあります)
パケット通信アニメーション3(Qiita投稿用フレーム重複削除バージョン).gif

【パケット一覧】

Simulation PanelのEvent Listの画像です。
この画像は私が実施したものなので、皆さんが実行する場合はTime列の値は異なります。

パケット一覧.png

【シーケンス図】

パケット一覧のシーケンス図です。
シーケンス図内の番号は、この後で記載しているパケット説明での番号と紐づいています。

HTTPシーケンス図.png

【パケット説明】

パケット一覧のそれぞれのパケットの説明です。
簡潔に説明するため、PC→サーバに向けてのパケットはリクエスト、サーバ→PCに向けてのパケットはレスポンスと表記しています。
そのため、リクエストに対するレスポンスが必ずしもあるわけではないことを、ご認識ください。

No Time(sec) Last Device At Device Type 説明
1 0.000 -- PC DNS DNSパケット作成するが、デフォルトゲートウェイ(ルーター)に対する宛先MACアドレスが不明
2 0.000 -- PC ARP 宛先MACアドレスが不明のため、ARPパケット作成、送信
3 0.003 PC ルーター ARP ARPリクエスト到着、ARPレスポンス送信
4 0.004 ルーター PC ARP ARPレスポンス到着
5 0.004 -- PC DNS DNSパケット作成、送信
6 0.005 PC ルーター DNS DNSリクエスト送信しようとするが、宛先IPアドレス(DNSサーバ)に対する宛先MACアドレスが不明
7 0.005 -- ルーター ARP 宛先MACアドレスが不明のため、ARPパケット作成、送信
8 0.006 ルーター スイッチ ARP ブロードキャストでARPリクエスト
9 0.008 スイッチ HTTPサーバ ARP ARPリクエスト到着(宛先IPアドレスが自身ではないため、パケット破棄)
10 0.008 スイッチ DNSサーバ ARP ARPリクエスト到着、ARPレスポンス送信
11 0.011 DNSサーバ スイッチ ARP ARPレスポンス
12 0.013 スイッチ ルーター ARP ARPレスポンス到着
13 15.002 -- PC DNS DNSレスポンスが到着しないため、DNSリクエスト再送信(時間を見るとわかるが約15秒待っている)
14 15.005 PC ルーター DNS DNSリクエスト(ARPにより宛先MACアドレスが判明しているため、ARPリクエストの必要なし)
15 15.007 ルーター スイッチ DNS DNSリクエスト
16 15.009 スイッチ DNSサーバ DNS DNSリクエスト到着、DNSレスポンス送信
17 15.010 DNSサーバ スイッチ DNS DNSレスポンス
18 15.012 スイッチ ルーター DNS DNSレスポンス
19 15.014 ルーター PC DNS DNSレスポンス到着
20 15.014 -- PC TCP TCPパケット作成、送信
21 15.016 PC ルーター TCP TCPリクエスト送信しようとするが、宛先IPアドレス(HTTPサーバ)に対する宛先MACアドレスが不明
22 15.016 -- ルーター ARP 宛先MACアドレスが不明のため、ARPパケット作成、送信
23 15.019 ルーター スイッチ ARP ブロードキャストでARPリクエスト
24 15.021 スイッチ HTTPサーバ ARP ARPリクエスト到着、ARPレスポンス送信
25 15.021 スイッチ DNSサーバ ARP ARPリクエスト到着(宛先IPアドレスが自身ではないため、パケット破棄)
26 15.024 HTTPサーバ スイッチ ARP ARPレスポンス
27 15.026 スイッチ ルーター ARP ARPレスポンス到着
28 15.316 -- PC TCP TCPレスポンスが到着しないため、TCPリクエスト再送信
29 15.319 PC ルーター TCP TCPリクエスト(SYN)
30 15.322 ルーター スイッチ TCP TCPリクエスト(SYN)
31 15.324 スイッチ HTTPサーバ TCP TCPリクエスト(SYN)到着、TCP(SYN/ACK)レスポンス送信
32 15.327 HTTPサーバ スイッチ TCP TCP(SYN/ACK)レスポンス
33 15.329 スイッチ ルーター TCP TCP(SYN/ACK)レスポンス
34 15.332 ルーター PC TCP TCP(SYN/ACK)レスポンス到着、TCP(ACK)リクエスト送信
35 15.332 -- PC HTTP HTTPパケット作成
36 15.335 PC ルーター TCP TCP(ACK)リクエスト送信
37 15.335 -- PC HTTP HTTPパケット送信(No35で作成したパケットを使用。No36でTCPリクエストされた後にリクエストするため)
38 15.338 PC ルーター HTTP HTTPリクエスト
39 15.338 ルーター スイッチ TCP TCP(ACK)リクエスト
40 15.340 ルーター スイッチ HTTP HTTPリクエスト
41 15.340 スイッチ HTTPサーバ TCP TCP(ACK)リクエスト到着
42 15.342 スイッチ HTTPサーバ HTTP HTTPリクエスト到着、HTTPレスポンス送信
43 15.344 HTTPサーバ スイッチ HTTP HTTPレスポンス
44 15.346 スイッチ ルーター HTTP HTTPレスポンス
45 15.349 ルーター PC HTTP HTTPレスポンス到着
46 15.349 -- PC TCP TCPパケット作成、送信
47 15.352 PC ルーター TCP TCP(FIN/ACK)リクエスト
48 15.354 ルーター スイッチ TCP TCP(FIN/ACK)リクエスト
49 15.356 スイッチ HTTPサーバ TCP TCP(FIN/ACK)リクエスト到着、TCP(FIN/ACK)レスポンス送信
50 15.358 HTTPサーバ スイッチ TCP TCP(FIN/ACK)レスポンス
51 15.360 スイッチ ルーター TCP TCP(FIN/ACK)レスポンス
52 15.362 ルーター PC TCP TCP(FIN/ACK)レスポンス到着、TCP(ACK)リクエスト送信
53 15.365 PC ルーター TCP TCP(ACK)リクエスト
54 15.366 ルーター スイッチ TCP TCP(ACK)リクエスト
55 15.368 スイッチ HTTPサーバ TCP TCP(ACK)リクエスト到着

【補足】

本記事で説明したのは初回通信です。
初回通信ではPC、ルーターでARP通信が発生していましたが、2回目以降の通信ではARPテーブルのキャッシュデータを参照するため、ARP通信が発生しなくなります。
また、スイッチも同様に2回目以降の通信ではMACアドレステーブルのキャッシュデータを参照するため、ブロードキャストフレームは発生しなくなります。
(もちろんキャッシュデータが存在する場合のみです)
ただよく分かっていませんが、Packet TracerのSimulationモードでは時間の進み方が現実と異なるようで、想定外にキャッシュが削除されることがあります。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2