第111話 経営情報システム⑫ あぷせとねでぶ
インターネットの概要の続きです。今回は“プロトコル”という名前がたくさん登場します。“プロトコル”とは規約とか約束事といった意味です。ルールみたいなもんです。もちろん、著者の理解は、ですよ。
1)TCP/IP
Transmission Control Protocol / Internet Protocol の略です。フツーに、TCP/IPとか言っているけれど、TCP/IPはインターネットで標準的に使われるプロトコルの体系であり、4つの階層で構成されるプロトコルの集まり。4つの階層は、4つのグループっていう言い方が(初学者には)分かりやすいかもしれない。TCP/IPはいろんな約束事の集合体ってこと。
そういえば、少し前に“OSI基本参照モデル”とかいうものを紹介した。これはISOが策定した通信の規約であり、7層に分かれている。各層に標準的な機能を定義していて、これを基本参照モデルとしている。「あ・ぷ・せ・と・ね・で・ぶ」ですね(かなり有名ですけどね)
7層 アプリケーション
6層 プレゼンテーション
5層 セッション
4層 トランスポート
3層 ネットワーク
2層 データリンク
1層 物理層
と7階層をモデルとしている。OSI基本参照モデルはあくまでもモデルであって、実在するのはTCP/IPプロトコルだ。TCP/IPは4階層で構成されるが、これをOSI基本参照モデルに対応させながら横並びでみてみると、こんな感じとなる。
OSI基本参照モデル TCP/IP
7層 アプリケーション
6層 プレゼンテーション 7~5 アプリケーション
5層 セッション
4層 トランスポート 4 トランスポート
3層 ネットワーク 3 インターネット
2層 データリンク
1層 物理層 2~1 ネットワークインタフェース
つまり、TCP/IPはOSI基本参照モデルの7階層を包含していることになる。ISOが策定したOSI基本参照モデルは7階層を定義しているが、モデルに過ぎないからTCP/IPでは4階層にしてみた。その4階層を、(無理やりに)OSIで当てはめてみたらこうなった、というだけのことだ。だから関連性など全くない。
●TCP/IP → OSIモデル7階層を、4階層に集約。密接に対応するわけではない
「モデル的には、7層はアプリケーション、6層はプレゼンテーション、5層はセッションとのことだが、我々、TCP/IPはひっくるめてアプリケーション層ということにしようじゃないかね?」みたいな感じだろうか(笑)
次に、TCP/IPの4階層についてを細かく見てみることにしよう。
①ネットワークインタフェース層
<OSIモデルでの、1層「物理層」 2層「データリンク層」に相当>
この層では、隣接する通信機器間で正しくデータ伝送するための伝送制御プロトコルや、ネットワーク媒体の物理的特性に対応するインタフェース仕様が規定されている。
②インターネット層
<OSIモデルの、3層「ネットワーク層」に相当>
この層では、ルータで区切られた複数のネットワークを経由し、あて先ホスト(IPアドレスが割り当てられたコンピュータ)までIPパケットを届けるために必要なプロトコルが規定されている。
③トランスポート層
<OSIモデルの、4層「トランスポート層」に相当>
インターネット層以下のサービスを利用して、アプリケーション間のデータ転送を制御するプロトコルが規定されている。
④アプリケーション層
<OSIモデルの、5層「セッション層」 6層「プレゼンテーション層」 7層「アプリケーション層」に相当>
Webサービス、電子メールサービス、ファイル転送などに関連するさまざまなアプリケーションプロトコルが規定されている。
TCP/IPの4階層をざっくり説明した。各階層にプロトコルが規定されているということは、各階層の機能を満たすために「何と何はこんなルールね」「何をするからこういうルールにしよう」といった具合に、使用される機能によって具体的な約束事が定められていることになる。
次はその具体的な約束事、すなわちプロトコルをみてみよう。
2)TCP/IP各階層の具体的なプロトコル
①ネットワークインターネット層
●ネットワークインターネット層のプロトコル → イーサネット
そもそもネットワークインターネット層は、接続する機器間でデータを正しく伝送するための約束事を定義した層だからね。イーサネットを使ってLANを構築しましょう。でもってCSMA/CD方式にしましょうといったことです。イーサネットはもともとLANに使うし、LANはCSMA/CD方式だからイーサネットを使うことで正しくデータ伝送できる。だから基本的なプロトコルはイーサネットだ、ということなのでしょう(著者による理解)。
②インターネット層のプロトコル
●IP → コネクションレス型。簡素で速い
●ICMP → 異常を検知したり、通信経路を診断する
●ARP → IPアドレスからMACアドレスを取得するためのプロトコル
IPは、Internet Protocol でネットワークに接続している機器のアドレッシングやIPアドレスに基づいてネットワーク内での最適な通信経路の選定(ルーティング)をするための方法を定義している。
ICMPは、Internet Control Message Protocol でIPのエラーメッセージや制御メッセージを転送するプロトコル。
ARPは、Address Resolution Protocol でIPアドレスからMACアドレスを取得するためのプロトコル。TCP/IPにおけるネットワークインタフェースの通信では、あて先のコンピュータのMACアドレスを指定する必要があるが、あて先のコンピュータのIPアドレスはDNSによって問い合わせすることが出来るがMACアドレスまでは分からない。そこで、ARPにより、IPアドレスからMACアドレスを得ることが出来る。
たとえば、Aさんがはてなにアクセスしようとしたとする。こんなイメージになるだろうか。
DHCPにより、AさんのPCにIPアドレスが割り当てられた
↓
すでに、AさんのPCにはMACアドレスが割り当てられている
↓
Aさんがはてなにアクセスした
↓
DNSより接続したいあて先(はてな)IPアドレスを取得する
↓
あて先(はてな)のIPアドレスを手に入れた!
↓
ARPにより、あて先(はてな)のMACアドレスを照会
↓
あて先(はてな)のMACアドレスを手に入れた!
↓
これでAさんのIPとMACアドレス、はてなのIPとMACアドレスを取得
↓
これでデータ転送可能
③トランスポート層のプロトコル
●TCP → コネクション型。信頼性は高いが速度が遅い
●UDP → コネクションレス型。信頼性は低いが速い
TCPは、Transmission Contorol Protocol であり、トランスポート層でTCPコネクションを確立し、転送を効率的にかつ正しく行うことを保証するコネクション型のプロトコルである。転送を効率的にかつ正しく行うことを保証するため、信頼性が高いが速度が遅いという特徴がある。
UDPとは、User Dategram Protocol であり、アプリケーション間でコネクション(セッション)を確立せずにデータを転送するコネクションレス型のプロトコルである。誤り再送制御などの信頼性を確保するための機能を省略して、効率的なデータ転送を行う。
④アプリケーション層のプロトコル
●HTTP → Webページの閲覧
●FTP → ファイル転送
●Telnet → 遠隔操作
●SSH → セキュリティのプロトコル
●SNMP → ネットワーク危機の管理
●POP3 → メールの受信サーバ
●DNS → ドメインとIPアドレスを紐付ける
●SMTP → メールの送信サーバ
●DHCP → IPアドレスの自動割り当て
HTTPとは、ウェブページとウエブブラウザの間でハイパーテキストを送受信するために定められたプロトコル。FTPとは、TCP/IPネットワークでファイル転送をするときに使われるプロトコル。Telnetとは、遠隔ログインのためのプロトコル。SSHとは、Secure Shell の略で、トランスポート層とアプリケーション層の間で暗号化を行うセキュリティプロトコルである。
●SSH → トランスポート層とアプリケーション層との間で暗号化
SNMPとは、Simple Network Management Protocol の略で、TCP/IPのネットワーク管理プロトコル。POP3とSMTPについては後述。
アプリケーション層のプロトコルはたくさんあるが、まどろっこしいアルファベットのプロトコルはアプリケーション層のプロトコルだというくらいのイメージでいいかも。だって、ネットワークインタフェース層は「イーサネット」だし、インターネット層は「IP」だし、トランスポート層は「TCP」か「UDP」だからね。残ったみみっちいいものがアプリケーション層なんだくらいの理解でよいのではと思った。
ちなみに、TCPなのかUDPなのかは上位のプロトコルによって決まる。信頼性とか正確性を求めるプロトコルはTCPだし、とにかく速さが求められるプロトコルにはUDPみたいな。
次回は電子メールについて。
続く。