記事を書いた目的
復習も兼ねて、インターネットが繋がる仕組みについてアウトプットしてみました。
誤りがありましたら、ご指摘いただけると嬉しいです。
目次
前提
インターネットとは
インターネットとは、別々のネットワークに属する機器同士が通信できるような環境のこと。
プロトコル
機器間でデータを通信させるため、「通信の決まりごと」が存在し、その決まりごとに従う必要がある。
仮に、通信の機器間で決まりごとを守れな場合、適切にデータの送受信ができなくなる。
この「通信の決まりごと」をプロトコルと呼ぶ。そして、実際の通信を行う際は、複数のプロトコルを組み合わせ、それらを、通信を行う機器間で一致させる(お互いに同じプロトコルを利用する)ことで、データの送受信(メールの送受信や、WebブラウザでAmazonのショッピングサイトを閲覧するなど)ができるようになる。
OSI参照モデル
通信が実現する際、用いられているプロトコルは一つではなく、複数の組み合わせで成り立っている。
この、「通信行う際の、複数のプロトコルの組み合わせ」の考え方(設計思想)の一つが、OSI参照モデルである。OSI参照モデルでは、プロトコルを7つの階層(第1層〜第7層)で分けて管理している。
OSI参照モデル
TCP/IPモデル
OSI参照モデルのように、7階層もあるような細分化されたモデルだと、通信の仕組みを新たに実装しづらいという背景もあるため、TCP/IPモデルという考え方(設計思想)がある。TCP/IPモデルは4階層で構成されていて、よりシンプルな形で体系づけされている。TCP/IPモデルは、第1層がネットワークインターフェース層、第2層がネットワーク層、第3層がトランスポート層、第4層がアプリケーション層という呼び方で構成されており、それぞれ異なる役割を持ち合わせることで通信が実現する。
TCP/IPモデル
カプセル化
送信したいデータに対して、TCP/IPモデルの階層を上(第4層)から下(第1層)にたどって、
各プロトコルのヘッダを付与する仕組みをカプセル化と呼ぶ。
※ヘッダとは、各階層のプロトコルを正しく機能させる制御情報のことである。
逆カプセル化
データを受信する際、カプセル化されたデータを認識するための仕組みを逆カプセル化と呼ぶ。
具体的な仕組みは、TCP/IPモデルの階層を下(第1層)から上(第4層)にたどって、各プロトコルのヘッダを解除していき、送信元から届いたデータを認識する。
インターネットが繋がる仕組み
とある端末Aによって、ブラウザからAmazonのショッピングサイトを閲覧する場合を想定する。
1.端末Aが、ブラウザで「Amazon.co.jp」を検索
このとき、端末Aは「Amazonのショッピングサイトを見たい!」という内容のデータを、Amazonのショッピングサイトを管理するサーバー(以下Webサーバー)に送信しようとする。
2.端末Aが、送信データをカプセル化
- この場合の通信プロコトルは、HTTPプロコトルを用いる。(TCP/IPモデル第4層)
- HTTPプロトコルは通信元と通信先での通信を保証するため、TCPを用いる。(TCP/IPモデル第3層)
- 宛先ポート番号は、今回の場合HTTPプロトコルを利用しているため、80番を使用する。(TCP/IPモデル第3層)
- ポート番号とは、プログラムを識別するための番号のこと。今回のようにサイトを表示させたいときは、サイト表示先の80番ポートに対して接続しに行く。
- たとえば、メールを送信したい場合は、メール送信先の25番ポートに対して接続しに行く。
- Web接続(HTTPプロトコル)やメール送信(SMTPプロトコル)のようなメジャーなプログラムに対してはあらかじめポート番号は決まっている。
- 宛先IPアドレスの情報を取得する。(TCP/IPモデル第2層)
- 宛先IPアドレスは「Amazon.co.jp」をもとに取得する。
- 「Amazon.co.jp」のように、人間が組織名を識別するための名前をドメインと呼ぶ。
- ドメインはIPアドレスと紐づけられている。
- コンピュータはデータの宛先情報として("Amazon.co.jp"という文字列ではなく)IPアドレスを認識する。ドメインからIPアドレスを割り出す仕組みをDNS(Domain Name System)と呼ぶ。
- 送信データの転送先MACアドレス情報を取得する。(TCP/IPモデル第1層)
- 宛先へデータを届けるため、データの転送先を決める必要がある。(端末AからWebサーバーへ直接データが届けられるわけではない。)
- 転送先を決めるための情報はMACアドレスである。MACアドレスはIPアドレスと紐づいており、宛先IPアドレスをもとに、次の転送先、次の転送先・・・と、それぞれのMACアドレスを割り出しながら、転送先を都度確定させ、最終的にWebサーバーまで送信データが到達する。
3. 送信データは、ルーターを経由して、Webサーバーが存在するネットワークへ
- 今回の場合、端末AとWebサーバーは異なるネットワークに存在しているため、ルーターと呼ばれるNW機器を経由してデータが転送される。
- ルーターはカプセル化された送信データうち、TCP/IPモデル第2層のネットワーク層のヘッダ情報(IPアドレス情報)をもとに、転送先を決めている。
4. Webサーバーが、受信データを逆カプセル化
- Webサーバーが、カプセル化されたデータを受信し、それぞれの第1層から順に各階層のヘッダ情報を認識・取り外しながら、最後にデータを認識する。(逆カプセル化)
- Webサーバーが、端末Aに対し、第1項で要求されたWebページ(今回の場合Amazonのショッピングサイト)のデータを、第2項と同様の手順で送信する。
5. 端末Aのブラウザ上にAmazonのショッピングサイトが表示
Webサーバーから送信された4−2のデータを、端末Aが逆カプセル化し、ブラウザ上にAmazonのショッピングサイトが表示される。