From: リスキルテクノロジー 松田航
新宿本校にて、、、
ネットワークにおいて
コンピューター同士が通信する際、
取り決められた規格によって通信する必要があります。
その規約を「プロトコル」と言い
コンピューター通信において鍵となる規約です。
今回はプロトコルと通信の基本をご紹介しましょう。
目次
そもそもプロトコルとは?
人と人が会話する際、
実際にはさまざまな規約の上で
会話が成り立っています。
まず会話する側は...
(1)会話内容や話題を決める
(2)言葉のイントネーションで感情を加える
(3)文法的な表現内容を決める
(4)使用する言語を選ぶ
(5)実際に発声して言語を伝える
...という手順で相手に話します。
そして話しかけられた側は...
(1)耳から言語を聞きとれたか
(2)言語を正しく理解できたか
(3)表現方法を理解できたか
(4)イントネーションから感情が伝わったか
(5)会話内容、話題を正確に理解できたか
...という手順で話を受け取ります。
人と人の会話であれば、
多少言葉が聞き取りにくくても
ニュアンスが伝われば会話が成立しますが、
コンピューターではそうはゆきません。
コンピューター同士の会話(通信)では
プロトコルによって取り決められた方法で
通信を行う必要があります。
通信プロトコルは
ISO(国際標準化機構)やITU-T(国際電気通信連合)など
いくつかの標準化期間において定められています。
これらで定められていない
プロトコルを独自に作成することも可能ですが、
基本的に受け側がそのプロトコルを理解できなければ
通信は成り立ちません。
ほとんどのネットワークでは
このような標準化機関が定めたプロトコルを用いて
通信が成り立っているのです。
OSI参照モデルとは?
ネットワークシステムの基本的概念
OSI参照モデルとは
ISOによって定められた通信機能を分類化した、
ネットワークシステムの基本的な概念。
プロトコルはOSI参照モデルに則って作成されるため、
異なる機器やメーカーのコンピューター同士でも通信できるのです。
OSI参照モデルは一見すると複雑です。
ですが、
先ほどの会話の例と同じ様に考えれば
理解することは可能です。
できるだけ解りやすく説明しましょう。
OSI参照モデルは
7つの層(レイヤー)に分かれており、
7~5層を上位層、4~1層を下位層と言い、
各層で取り扱うプロトコルはおおよそ定められています。
それぞれの層の役割は以下の通りです。
・第7層:アプリケーション層
最も上位に位置するこの層では、
ユーザーが使用するアプリケーションの動作を下位の層に渡したり、
相手から受け取ったデータを
アプリケーションに表示したりする役割を持ちます。
例えば...
・送信側がファイルを送信し、
受信側がそのファイルを正しく受け取って
アプリケーションで開ける。
・送信側が「こんにちは」と入力し、
受信側が自分のコンピューターで受信し
「こんにちは」と表示させる。
...などです。
送信側が送信する内容によって
受信側でどのようなアプリケーションで
動作をさせるのかといった情報を渡す役割があります。
・第6層:プレゼンテーション層
プレゼンテーション層では
コンピューターで通信しやすいように
通信したいデータの表現形式を変換します。
文字コードやファイル形式などを識別し、
「0110001110」といったビット化したデータに変換して
下位の層にデータを渡します。
受信側はビット化されたデータを受け取り、
文字コードやファイル形式などといった情報を
上位層であるアプリケーション層に渡します。
・第5層:セッション層
セッション層では
プレゼンテーション層でビット化されたデータを送信します。
受信側では逆に
ビット化されたデータをプレゼンテーション層に渡します。
それ以外にも、
相手側コンピューターとの接続(コネクション)の確立や、
送受信における通信開始と終了のタイミングを管理する役割があります。
・第4層:トランスポート層
トランスポート層では
実際に通信を行っている際に
伝送エラーが発生しているかどうかを管理します。
データはパケットと呼ばれる単位で
分割された状態で送信されるのですが...
このパケットを送信する際、
通信エラーが発生してパケットが欠けてしまうと
受信側に正しい内容が伝わりません。
このためトランスポート層では、
パケット送信エラーがあるかどうかを監視しており...
送信エラーが発生している場合は
送信側にデータ再送の要求を行う事によって、
正しくデータを同期できる役割を持っているのです。
・第3層:ネットワーク層
ネットワーク層では
異なるネットワークでも通信できるように
IPアドレスによってデータの送信先を識別します。
トランスポート層で送信する
パケットにヘッダー(宛先情報のようなもの)を付与し、
パケットヘッダーに送信先IPアドレスを設定。
ネットワークでは
ルーターによってデータを送信する経路を特定し、
IPアドレスで指定されたコンピューターにデータを届けますが、
ルーターはこのネットワーク層で送信経路を識別するのです。
なお、受信側では、
受け取ったパケットからヘッダー情報を削除して
上位階層にパケットを渡します。
・第2層:データリンク層
実際のネットワークでは
複数のルーターや通信機器により構成されていますが...
データリンク層ではデータを送信する際、
次に通信する必要がある通信機器を管理する機能を持ちます。
パケットヘッダーに加えて、
フレームヘッダーと呼ばれるヘッダーが付与され
次にパケットを送信する通信機器などの情報が管理されるのです。
・第1層:物理層
物理層では文字通り
通信に必要となる物理的な面を管理します。
データリンク層から受けとった
ビットデータを電気信号に変換したり、
受信した電気信号をビットデータに変換したり機能があります。
他にも、ケーブルの形状や
コネクタに関する情報も管理しています。
OSI参照モデルに則った
ファイル送受信のイメージは以下の様になります。
イメージできましたでしょうか?
TCP/IPモデルとは?
インターネットの普及により広がった概念
OSI参照モデル以外にも、
TCP/IPモデルというネットワークシステム概念もあります。
OSI参照モデルがISOにより定められたのに対し、
TCP/IPモデルはアメリカ国防総省が作成したモデルであり...
仮に戦争が起きたとしても存続できるネットワーク設計を!
...という思想の元に作成されました。
OSI参照モデルが7層あるのに対し、
TCP/IPモデルは以下の4層で構成されています。
・第4層:アプリケーション層
・第3層:トランスポート層
・第2層:インターネット層
・第1層:ネットワーク・インターフェース層
インターネットの普及により広がり、
実装面で優れていることから現在はこちらのモデルが主流。
しかし、TCP/IPモデルは
OSI参照モデルの概念をベースとしており、
各層の役割はOSI参照モデルとほぼ同等です。
ここではOSI参照モデルとTCP/IPモデルの対比図のみ掲載します。
プロトコルや通信の仕組みを知ることは
セキュリティの必須条件
プロトコルやOSI参照モデル、
そしてTCP/IPモデルを紹介しましたが、いかがでしたか?
ややこしく思えますが、
基本的にはコンピューターの通信は
冒頭で説明した人間同士の会話とそれほど変わりありません。
今回、プロトコルや
このOSI参照モデルなどを説明した目的は...
「ネットワークセキュリティにおいて必要な知識」
...であるからなのです。
コンピューターでは
さまざまなサービスが、
さまざまなプロトコルを用いて通信を行いますが...
通信を行う上で、
通信を常に許可しているプロトコルがあると
ネットワークセキュリティ的に問題が発生する場合も。
例えばファイル転送する必要がない場合、
サーバーやネットワーク設定でFTPが有効になっていると、
悪意あるユーザーからウィルスが送信される場合もあります。
また実際にコンピューターを
遠隔操作できるTELNETサービスなどが動いていると
サーバーを不正に操作される可能性もあるのです。
ルーターでは
パケットフィルタリングという機能を使用して
特定のプロトコルの通信許可/通信拒否という設定を行う事ができます。
Linuxでも
iptablesというコマンドを使用することにより、
パケットフィルタリングの設定を行うことができます。
このパケットフィルタリングを行うには、プロトコルの知識は必須。
サーバーやネットワークで
使用するサービスやプロトコルを制限することにより
セキュリティ性の高い、堅牢なシステムを築くことができるのです。
プロトコルやネットワークの仕組みを知ることは
ユーザーの資産や悪意あるユーザーからシステムを守ることに繋がります。
サーバーエンジニアや
ネットワークエンジニアを目指す方は、
これらセキュリティの基本事項をしっかり覚えておいてください。
リスキルテクノロジー
松田
PS
当校のLinux/CCNA系のコースでは
セキュリティに関する実践的な講義を取り入れております。
セキュリティ対策は
全てのシステムにおいて必要な分野であり、
ノウハウを知るエンジニアはどの企業も欲しがる人材。
そんな人材を目指すのであれば、ぜひ資料請求を。