TCP/IPってなんやねん?
●プロトコルとは?
プロトコルとは、「ネットワーク上での取り決めごと」であり、通信の際にコンピュ ーター同士がスムーズに情報のやり取りを行なえるようにするためのものです。
実際のネットワークでは、多数のプロトコルが定義されており、それらが階層となっ た構造で通信をおこなっている。
プロトコル階層では、プロトコル同士の間に上下関係があり、互いに次のような関係 になっています。
- より下位のプロトコルはより上位のプロトコルにより単純な機能を提供する。
- より上位のプロトコルは下位のプロトコルによって提供される機能を利用してより 複雑な機能を実現する。
- さらに上位のプロトコルについても同様で、最終的には利用者が欲するネットワー ク機能を実現する。
●OSI参照モデル
コンピューター間で通信を行なう場合、とても多くのプロトコルを取り決めしておく必要があります。もし、メーカーやコンピューターによってこれらのプロトコルが異なる場合、せっかくネットワーク環境が完成しても、同じ機種でなければ通信できないということになり、汎用性に欠けてしまいます。
このため、ITU(国際電気通信連合:International Telecommunication Union)やISO(国際標準化機構:International Organization for Standardization)といった機関が中心となり、異なるコンピューター間でも接続や通信を可能とするネットワーク構築に必要な全体構造や各々のプロトコルなどの標準化が進められ、それによってできたのがOSI(Open Systems Interconnection)参照モデルです。
OSI参照モデルを基準として通信プロトコルを作成することで、異なるメーカーや異なるタイプのコンピューターであっても問題なく通信が行なえるようになります。
また、OSI参照モデルでは、多くのプロトコルを、それぞれ機能別に「層」として分類しており、より人の操作に近い部分を上位層、通信における電気的な部分にちかいほど下位層に位置するように構成されています。
それらの層は以下のような7層から構成されています。
上位層
・第7層:アプリケーション層
・第6層:プレゼンテーション層
・第5層:セッション層
下位層
・第4層:トランスポート層
・第3層:ネットワーク層
・第2層:データリンク層
・第1層:物理層
●TCP/IP
OSI参照モデルは、幅広い汎用性を実現するために、あらゆることを想定して考えられています。ところがそのことがかえってその構造を複雑なものにしてしまってます。よってこのOSI参照モデルのすべてを忠実に守った通信プロトコルを構築してしまうと処理が複雑になり、効率も低下してしまうのです。このため、OSI参照モデルをベースに、より効率の良いプロトコルの仕様が生まれることになりました。
これが、TCP/IPです。TCP/IPは、インターネットにおける通信プロトコルの総称で、「TCP」(Transmission Control Protocol)と「IP」(Internet Protocol)という代表的な2つのプロトコルを中心として構成された基本プロトコルの名称です。TCP/IPによる通信はインターネットプロトコルとして急速に発展し、現在では世界標準の通信プロトコルとなっており、インターネットへのアクセスが可能なコンピューターやパソコンは、すべてTCP/IPを利用しています。
●TCP/IPの仕組みと働き
OSI参照モデルは全体を7層構造としていました。これに対して、TCP/IPプロトコルでは、OSI参照モデルの第5層から第7層までの上位層をアプリケーション層としています。
- 物理層
データリンク層以下のハードウェア側のすべてのプロトコルが物理層に分類されます。例えば、ネットワーク媒体、コネクタ、トランシーバ等に流れる電気信号等の規定が物理層にあたります。
- データリンク層
データリンク層では、物理層とネットワーク層の間でのデータの受渡しが行なわれます。物理層のネットワーク媒体として、Ethernetの他にシリアル接続、パラレル接続等を使うことができます。データリンク層には、各ネットワークごとにEthernet、PPP、SLIP、PLIP等のプロトコルがあります。いずれのプロトコルを使う場合も、ネットワーク媒体の違いはデータリンク層よって吸収されるので、通信速度を除けば、これより上位のプロトコルであるネットワーク層〜アプリケーション層ではネットワーク媒体による違いを意識する必要はほとんどありません。
- ネットワーク層
ネットワーク層では、複数のネットワーク間の接続を実現するために、アドレスの管理と経路制御が行なわれます。ここにはIPというプロトコルがあり、相互接続された複数のネットワーク上の各計算機にアドレスを割り当て、2計算機間でデータを交換するための経路を管理します。この層のアドレスはIPアドレスです。ルータはこの層で動作するネットワーク中継装置です。
- トランスポート層
トランスポート層では、ネットワーク層とアプリケーション層の間でのデータの受渡しが行なわれます。この層には、TCPとUDPという2つのプロトコルがあります。TCPはコネクション(接続路)指向のプロトコルであり、UDPはパケット(データのかたまり)指向のプロトコルです。TCPでは、最初に接続して最後に切断するまでの間、データの信頼性(データが正しい順番で、さらに確実に到着すること等)が保証されますが、UDPにはデータが宛先に届けられたことを確認する仕組みが組み込まれていません。
- アプリケーション層のプロトコルは、目的に応じてTCPとUDPを使い分けます。信頼性が重視されるアプリケーションでは一般的にTCPが使われますが、通信速度が重視されるアプリケーションではUDPが使われます。
- アプリケーション層
アプリケーション層は、遠隔ログイン、電子メール等のTCP/IPネットワークの各アプリケーション固有の規定を行ないます。例えば、電子メールのためのプロトコルSMTP、遠隔ログインのためのプロトコルTELNET、RLOGIN等のように各アプリケーションに対応するプロトコルが存在します。
- ネットワーク層からトランスポート層のプロトコルを特定するためにはプロトコル番号が使われ、トランスポート層からアプリケーション層を特定するためにはポート番号が使われます。
・データはパケットという単位でやり取りされており、各層の間でパケットを受け渡す際に、各層はパケットが上から下に移動するときには自層で使うヘッダ(制御情報)を付加し、逆に下から上に移動するときには自層のヘッダを解釈して取り除きます。
●TCP/IPの全体の流れ
TCP/IPプロトコルの全体的な流れを、宅配便の荷物の流れに置き換えて理解を深めることにします。荷物が届くまでの様々な工程をTCP/IPプロトコルに当てはめてみると、それぞれのプロトコルの役割が非常にわかりやすくなります。
A氏がB氏に一つの荷物を送る過程を考えてみます。
・送り側(A氏〜E配送所)
- アプリケーション層
・まず、A氏が宅配便業者に小包を渡す。
…アプリケーションから転送すべき情報を渡される。
・小包を渡された業者は小包を梱包する。
…渡された情報は実際に伝送可能なデジタル情報(パケット)にここで変換される。
- トランスポート層
・小包にB氏宛のラベルを貼る。
…パケットにTCPヘッダというヘッダを付加する。これには相手方のどのアプリケーションに渡すべきなのかという情報が含まれる。
- ネットワーク層
・B氏に渡すべき小包を最寄りのD配送所へ届けるため、D配送所行きのラベルを貼る。
…パケットにIPヘッダを付加する。IPヘッダには相手方と自己のコンピューターのIPアドレスが含まれている。
- データリンク層
・D配送所行きの場合は、C中継所を中継することがわかるのでC中継所行きのラベルを付加。
…イーサネットヘッダを付加する。相手方のコンピューターへ送信するために経由するつぎの中継点と自己のMACアドレスなどが含まれる。
- 物理層
・実際に小包を送り出す。
…デジタルデータ(パケット)を電気信号にかえて送信。
途中です。ごめんなさい。