パケット解析 2: 10分でわかる基礎(カプセル化)

IT

前回OSI参照モデルの各階層について紹介した。

そこで今回は、異なる層のプロトコルが通信するには、どのような作業がされているのか確認していこう。

データのカプセル化

OSI参照モデルの異なる層のプロトコルが通信するには、必要な制御情報を付加していき、それをカプセル化と言う。

流れとしては、上位層から下位層へとデータが送信されるときに、制御情報を付加していく。

もうすこし専門的にいうと、カプセル化処理とは、PDU(Protocol Data Unit)を生成することだ。

PDUは、通信プロトコルで定義された制御情報(ヘッダ)とデータの中身(ペイロード)で構成されている。

階層によって名前が変化するので、注意が必要だ。

階層名前PDU
4トランスポーテーション層セグメント/データグラム
3ネットワーク層パケット
2データリンク層フレーム
1物理層ビット

Webページをみる場合

今ではhttpsにリダイレクトされるが、昔のhttp://www.google.comを例にみてみよう。

TCP/IPのセッションはすでに開始さているとして、下の図で示したカプセル化をたどってみよう。

はじめに、クライアントのアプリケーション層からはじまる。ウェブサイトをみるので、アプリケーション層のプロトコルとしてHTTPが使われ、index.htmlファイルをgoogle.comからダウンロードするよう指示がでる。

アプリケーション層のプロトコルが実行したい指示を発行したら、次にパケットを目的地に到着させようとする。

パケットのデータは、トランスポート層へ渡される。

HTTPはTCPの上にあるアプリケーション層のプロトコルなので、パケットが確実に送信されるように、TCPヘッダを生成する。

これには、シーケンス番号などが含まれる。

TCPは仕事を終え、パケットの論理アドレスを処理するネットワーク層のプロトコルであるIPにパケットを渡す。そこで、論理アドレス情報を含むヘッダを生成し、パケットをデータリンク層のイーサネットに渡す。

物理アドレスであるイーサネットアドレスはイーサネットのヘッダにはいる。

ここで完成したパケットが物理層に渡され、0と1の形式でネットワーク上を転送される。

パケットはケーブルに転送され、最終的にGoogleのウェブサーバへと到着する。

サーバはパケットを下位層から順に読んでいく。

はじめにパケットがどのサーバに対するものかを判断するためイーサネットアドレスが含まれるデータリンク層が読み取られる。

この層の情報が処理されると、第2層の情報が取り除かれ、第3層の情報が処理される。

IPアドレス情報も同様に読み取られ、アドレスが正しく、パケットに問題ないか確認される。

その後、この情報は取り除かれ、次の層が処理できるようになる。

第4層のTCP情報が読み取られ、パケットが順番に到着していることが確認される。

第4層のヘッダ情報を取り除くと、アプリケーション層のデータのみが残るので、ウェブサイトを提供しているウェブサーバのアプリケーションへ渡せるようになる。

クライアントから送信されたこのパケットに応答する際に、サーバはまずTCPのACKパケットを送り、リクエストが受信され、引き続きindex.htmlファイルが送信されることをクライアントに知らせる。

まとめ

WEBページをみるという単純なことの裏側では、じつにさまざまな処理がされている。

カプセル化によって制御情報が付加され、目的のサーバから目的の情報を取得できるのだ。

コメント

タイトルとURLをコピーしました