ド素人のためのネットワーク講座!
栄えある第3回は「ネットワークモデル」についてです。
横文字や英字が多くなってきたり、歴史的経緯が関係してきたりとややこしくなってくる部分ですが、ネットワークを理解するためには押さえておきたいポイントです。
プログラミングやシステムエンジニアとして活躍をしようと考えている人であれば、知っていて損はない知識です。
ただ、絶対に知って置かなければならない、丸暗記しなければならないというわけでもないので、ふんわりと理解を深めていきましょう。
ネットワークモデルとは
それでは一つずつ、ざっくりと理解をしていきましょう。
まずは、今回のテーマでもあるネットワークモデルについてです。
ネットワークを構成して、パソコンから他のパソコンへ、またはインターネットを通して情報を得ようとする際に、回線の中をデータが通ってきます。
しかし、データを送る側と受け取る側のルールが違ってしまっていると、受け取ったは良いものの内容が理解出来ないという状況に陥ります。
そういったズレが起こらないようにするため、プロトコル(Protocol)というインターネット上でのルールのようなものが存在します。
プロトコルとは
例えば、送信側はフランス語でデータを送っているのに、受信側が英語だと思って受け取ってしまうと、全く通じないですよね。
更に、送信側は紙を封筒に入れて便箋送っているのに、受信側は「はがき」を想定していると、届いたとしてもそれを認識できません。
人間であれば、言語を翻訳したり、手紙の代わりに封筒に入れられて便箋が届いたと置き換えることができますが、インターネットの世界ではそうはいきません。
なぜなら、勝手に独断で解釈をしてしまった結果、間違っていた場合は大変なことになってしまうからです。
なので、通信のルールである通信プロトコルを決めてやり取りをすることに決めました。
送信側が、Aというルールに従ってデータを送信して、受信側もAというルールに従ってデータを受信すれば、伝えたい内容がそのまま伝えることができますね。
しかし、送信側がAなのに受信側がBだと伝わりません。そういったときは、どちらかが合わせてやる必要があります。
そして、そのプロトコルを集めてセットのようなものにしたのがプロトコルスイートです。それを、どういった設計図に則って使用するのかを大きく定義付けたものがネットワークモデルだと考えておくと良いでしょう。
※あくまでイメージとしてつかみやすさを重視したざっくりとした説明です
ではどういったプロトコルスイートがあるのか、以下の2つをみていきましょう。
OSI参照モデルとは
国際標準化機構(ISO)というチームが、みんなで一緒のルールを使おうと考えてくれたのが、ネットワークの通信を7段階にわけて行うOSI参照モデルです。
このモデルを元にしてOSIプロトコルスイートという通信規格を作りました。
それでは、通信の7段階それぞれにどういった役割があるのかをみてみましょう。
※それぞれ層のことはレイヤーと呼びます
レイヤー1 物理層
電気・機械的な部分の伝送をする
レイヤー2 データリンク層
隣接機器へのデータの伝送を制御する
レイヤー3 ネットワーク層
中継や宛先の決定をする
レイヤー4 トランスポート層
信頼性の高い(エラーの少ない)伝送をする
レイヤー5 セッション層
データのやりとりの順序などを管理する
レイヤー6 プレゼンテーション層
データの形式を決定する
レイヤー7 アプリケーション層
ユーザーにネットワークサービスを提供する
細かな役割については、次回以降で説明していきましょう。今回は通信の流れだけをしておけばOKです。
それぞれに役割やルールが定められていて、送信側は下から順(7→1)に、受信側は上から順(1→7)に通過していきます。
送信の流れ
それでは、送信側の流れを見てみましょう。
データを送るにしてもそのままの状態で送るわけにはいけません。
宅急便で荷物を預ける際に梱包や宛名を付けたりするのと同じです。
なので、それぞれのレイヤーでその梱包作業や宛名の作業に代わる作業をしてくれます。これをカプセル化と良い、7段階の過程で初めて発送できる状態の荷物が出来上がるのです。
それぞれの層を通るごとに、データが付加されている(線が増えていく)のがわかりますね。
イメージとしてはこのような状態です。
物理層まで行き着けばカプセル化が完了した状態となり、受信側へデータを投げてやります。
受信側の流れ
それでは、受信側の流れをみてみましょう。
送信と逆の手順で、送信時にそれぞれの層でついたデータを読み取り、外していく作業が行われます。
そうすることで、最終的に元データが受信側へ届くということになります。
以上が、OSI参照モデルによって設計されたネットワーク通信の流れです。ネットワークモデルはこの他にも次に説明するTCP/IPモデルがあり、別物ではありますが共通している項目が多く、置き換えて説明されることがほとんどです。
基本と位置づけられているこのOSI参照モデルを理解しておくと、TCP/IPモデルについても理解がしやすくなるので、是非覚えておくと良いでしょう。
TCP/IPモデルとは
世界的に普及しているインターネットモデルは、TCP/IPモデルで設計されているTCP/IPプロトコルスイートです。
みなさんの使用しているインターネットもこちらだと考えておいて良いでしょう。
TCP/IPモデルでは通信は4段階にわかれています。それぞれの役割を、OSI参照モデルで置き換えながら見てみましょう。
レイヤー1 アクセス層
OSI参照モデルではデータリンク層、物理層に該当します。
イーサネット、無線LAN、PPPなどが使われます。
レイヤー2 インターネット層
OSI参照モデルではネットワーク層に該当します。
IPが使われます。
レイヤー3 トランスポート層
OSI参照モデルではトランスポート層に該当します。
TCPまたはUDPのどちらかが使われます。
レイヤー4 アプリケーション層
OSI参照モデルではアプリケーション層、プレゼンテーション層、セッション層に該当します。
HTTP、FTP、DNS、SMTP、POP、IMAPなどが使われます。
※それぞれ置き換えた説明がなされていますが、完全に同じでは有りません。あくまで考え方は共通していて似ているだけであって、OSI参照モデルとTCP/IPモデルは完全に別物です。
流れについてはOSI参照モデルと同じく、送信側は下から順番(4→1)に、受信側は上から順番(1→4)に行われます。
なので、OSIの7階層が4階層にまとめられたようなものだと考えておいても、ネットワークの流れを理解していく上では問題ありません。
おまけ:なぜOSI参照モデルは普及しなかったのか
なぜ、標準と言われるOSI参照モデルではなく、こちらのTCP/IPモデルが普及しているのかは、歴史的経緯が存在します。
4つも5つもルールが存在すると、せっかくの情報ネットワークも価値が半減していってしまいます。
そうならないために、ISOは標準のモデルとしてOSI参照モデルを定めました。しかし時既に遅し、世界中ではローカルだと思われたTCP/IPモデルが普及してしまっており、せっかく標準だと定めたOSI参照モデルは普及しなかったのです。
まとめ
ネットワークの基礎としては押さえておきたい、プロトコルについてとレイヤーの流れについてを説明しました。
どういった流れやルールで、データのやり取りがされているのかがわかったでしょうか。
プロトコルやモデル、プロトコルスイートといった部分が「何を表しているのか」が多くの人の混乱を招いてしまう部分です。しかし、まずはざっくりとした理解でも、ネットワークについて学ぶ上では良いでしょう。
ある程度慣れてくれば、それぞれが何を指しているのかが徐々に見えてきます。
単語の意味や細かな役割以上に、まずは全体の流れを理解することを意識していきましょう。
次回は「アクセス層の物理的な役割について」です。