TCP/IPアレルギー撲滅ドリル【総まとめ編】

パケット君の冒険旅行

福永勇二
インタラクティブリサーチ
2005/3/29


 読み出し結果の受信

・Webサーバからの回答はどうなりますか?

  Webブラウザからのリクエストを受け取ったWebサーバは、求められた対象の読み出し結果コードと、読み出せた場合はその内容を送り返します。

 図6はその様子を示したものです。Webサーバは、結果コードと内容を含んだ情報、また送り返す相手のIPアドレス、ポート番号をTCPに引き渡します。少し前に書きましたが、TCPは最初に通信を開始するためのやり取りをします。そのときに相手先のIPアドレスやポート番号を記録しておき使用します。

図6 Webサーバがhtmlを返送する(図クリックで拡大表示)

 TCPヘッダをくっつけたTCPパケットはIP処理プログラムに引き渡します。TCPが複雑な処理をするのはこの場合も同じです。IP処理プログラムでは、受け取ったデータにIPヘッダをくっつけてIPパケットを作ってから、さらにarpでMACアドレスを求めます。このIPパケットとMACアドレスをEthernetに引き渡します。EthernetはイーサヘッダとフレームチェックシーケンスをくっつけてEthernetフレームを作り出し、それをLANに送り出します。この辺りの手順はこれまでの例と同様です。

 Ethernetから受信したデータは、イーサヘッダとフレームチェックシーケンスが取り除かれてから、IP処理プログラムに引き渡されます。引き渡し先の判断はイーサヘッダの情報から判断します。これまでと同じようにIP処理プログラム→TCP処理プログラムとたどり、最後にWebサーバが送り出した結果コードとhtmlがWebブラウザに引き渡されます。

 この一連の動作でリクエストした情報を得ることができます。

・送受信は1回きりでよいのですか?

 ここまでの説明はWebサーバとのやりとりの基本単位です。この1回のリクエストで受け取れるのは1つのファイルですので、もしほかのファイルが必要な場合には、これと同じことを何回か繰り返します。

 例えば、画像を表示するページのようにhtmlの中で画像ファイルを参照している場合、htmlを取得した後に、さらに画像ファイルも取得しなければなりません。

 Webブラウザはこうして取得した1つ以上のファイルを取りまとめて、1つの画面として表示します。

・htmlのリクエストの流れは「Webの画面を見てみると、画像もたくさんあって、複雑な処理をしてるように見えますが」を参照してください

・アプリケーションはEthernetが見えない?

 これまでの図を見ると、アプリケーションはTCPに対して通信を依頼します。その時には、TCPで必要なポート番号と一緒に、IPで必要なIPアドレスも引き渡しますので、実質的にはTCPとIPの両方、つまりTCP/IPに通信を依頼しているとみなすことができます。

 ここで興味深いのが、TCP/IPはアプリケーションに直接関係がある一方、Ethernetなどネットワークとは直接の関係がないという点です。これは言い換えると、ネットワークの部分をEthernet以外に取り換えても、アプリケーションには影響がないと見なすことができます。

 実際、PCでインターネットにアクセスするときの例で見ると、EthernetによるLANを使うときもあれば、電話回線を使ってダイヤルアップ接続することもあります。これはネットワーク装置を取り換えているような状況ですが、どちらの場合でもWebブラウザは全く同じように使えます。

 アプリケーションと通信装置が独立しているからこそ、こういった便利な使い分けができるわけです。

Webページをリクエストする

TCP/IPアレルギー撲滅ドリル【総まとめ編】(1)目次
1  冒険の舞台はいずこ?
2  「名前」を「解決」するとは?
3  Webページをリクエストする
4  読み出し結果を受信する
5  ルータを経由するケース

関連リンク
  連載:TCP/IPアレルギー撲滅ドリル【超実践編】(上位レイヤ編)
連載:TCP/IPアレルギー撲滅ドリル【超実践編】(下位レイヤ編)
連載:インターネット・プロトコル詳説

連載:ルータの仕組みを学ぼう
ホストのネット接続は正しく行われているか? 〜netstatによるネットワーク設定の確認〜


「Master of IP Network総合インデックス」


Master of IP Network フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Master of IP Network 記事ランキング

本日 月間