全4231文字
PR

ネット君 ネットワークでは様々な情報や技術を使ってデータを相手に届けますよね。IPアドレスやルーティング、ARPなどなどありますよね。

インター博士 あるな。

ネット君 それぞれの技術を学ぶ重要性はよく分かるんですが、それだけだと全体像がよく分からないというか把握しにくいというか…。

インター博士 ふむ、一理あるな。では今回は、相手にデータが届くまでを見ていこう。

各層のプロトコルが連携

 アプリケーションがTCP/IPでデータをやりとりする場合、各層のプロトコルが連携して通信する(図1)。以下、各層でどのような処理が行われてデータが運ばれるのか、順を追って解説する。

図1●各層が連携してデータを運ぶ
図1●各層が連携してデータを運ぶ
TCP/IP通信では、分割したデータにそれぞれ必要な情報を付与し、下位の層のプロトコルに渡して送信する。受信側では各層で必要な情報を取り出して上位の層に伝達する。
[画像のクリックで拡大表示]

 今回は、パソコンのWebブラウザーからWebサーバーへのアクセスを想定する。ネットワーク構成は次の通り。パソコンはイーサネットの有線LANに接続しており、DHCPによってIPアドレスやデフォルトゲートウエイなどが割り当てられている。また、サーバーまでは2台のルーターを経由する(図2)。

図2●今回想定するネットワーク構成
図2●今回想定するネットワーク構成
今回の記事では、このようなネットワーク構成を想定。クライアント(パソコン)からサーバー(Webサーバー)まで送信されるデータの流れを見ていく。
[画像のクリックで拡大表示]

 ルーターはそれぞれ2つのインターフェースを備え、2つのネットワークにつながっている。

 ユーザーがクライアント上のWebブラウザーにアクセスしたいURLを入力する。

 するとクライアントはDNSサーバーにアクセスして、そのURLのホスト名に対応するIPアドレスを調べる。同時に、Webサーバーに送信するHTTPメッセージを作成する。

 このHTTPメッセージを送るには、まずはTCPヘッダーを付与してTCPセグメントをつくる必要がある。TCPヘッダーに不可欠な情報の1つが送信元および宛先のポート番号である(図3)。

図3●TCPヘッダーを付与してTCPセグメントに
図3●TCPヘッダーを付与してTCPセグメントに
HTTPメッセージを送る際には、TCPヘッダーを付与してTCPセグメントにする必要がある。TCPでの通信にはTCPコネクションを確立する必要があるので、最初にSYNのTCPセグメントを送る。
[画像のクリックで拡大表示]