本章では、LANやインターネットの基本的な体系の規約であるOSI基本参照モデルとTCP/IPの概要を理解します。
、OSI基本参照モデル、TCP/IP、物理層、データリンク層、MACアドレス、イーサネット、ネットワーク層、IP、IPアドレス、経路制御、トランスポート層、TCP、アプリケーション層、ヘッダ
プロトコル(protocol)とは取決めや規約のことです。
LANやインターネットのように、多様な機器やサービスがある環境では、標準化が重要になります。その代表的なプロトコルにOSI基本参照モデルとTCP/IPがあります。
OSI基本参照モデルは、国際標準化機構であるISO(International Organization for Standardization)が、異機種間接続を円滑にするために策定した国際規格です。論理的には美しい体系になっていますが、特に上位層では実装するのに適切な規約にするのに難航していました。その間に、インターネットの普及に合わせて、TCP/IPが業界標準になり普及しました。
TCP/IPは、IP(Internet Protocol)およびTCP(Transmission Control Protocol)の二つのプロトコルのことです。
IPはOSI基本参照モデルのネットワーク層、TCPはトランスポート層とセッション層の一部に対応しますが、必ずしも一致していません。強いて言えばOSI基本参照モデルは体系化を重視した論理的「モデル」を示すことを重視するのにたいして、TCP/IPは、各種機能を実装することを重視しており、IPやTCPに関連したプロトコルも含むようです。
さらに広義には、物理層やデータリンク層をまとめたリンク層、そこで広く使われているイーサネットや、電子メールやWeb閲覧など多様なアプリケーションの個別プロトコルまでも含んでTCP/IPということもあります。
IEEE(Institute of Electrical and Electronics Engineers:米国電気電子学会)は電気通信関連の標準化団体です。
OSI基本参照モデルやTCP/IPと相互に連携がとられており、LANケーブルの仕様やLANのトポロジや各種機能を実装するときは、この規格に準拠しています。
LAN関連の代表的な規格を列挙します。
OSI基本参照モデルは、7つの層(レイヤ)に区分しています。ある層について規定するとき、下位の層はすべて規定されており、この層で下位層について再規定することはありません。また、上位の層について制限することはありません。
パソコンやルータなどネットワークに接続する機器とそれをつなぐケーブルなどの接続コネクタの形状や最大転送速度、最大転送距離など物理的な仕様の規約です。
この標準化によりメーカーや機種の違い、機器のOSの違いを超えて接続が可能になります。
データの波形は長いケーブルを通る間に減衰やノイズがおこります。その増幅や復元を行う機器を<リピータといいます。ハブは、複数のパソコンなどをつなぐケーブルの集線装置です。
参照:LANケーブル
物理層で直接接続された(セグメントといいます)ノード(パソコンやルータなど)の間、ブリッジで接続した隣接するセグメントとの間を接続するためのプロトコルです。
小規模LANは、この層までで構築できます。大規模LANも論理的にはこの層までで構築できるのですが、第3層のネットワーク層で構築するのが通常です。
LANにはいくつかの形式(トポロジ―)がありますが、現在主流になっているのは、TCP/IP系のイーサネットです。
データリンク層はさらに二つの層に分けられます。ここでは主にMACを対象にします。
MACアドレス(Media Access Control Address)とは、データリンク層において、電話番号のように相手を特定し接続するための番号です。
パソコン、サーバ、スマートフォン、ルータ、ハブなどネットワークに接続する機器には、NIC(Network Interface Card:LANカード)が内蔵あるいは外付けされています。NICには世界中で一意となるMACアドレスが付与されています。
有線LANと無線LANの両方に接続する機器には、それぞれのNICがあります。増設用LANアダプタでNICを増やすこともできます。このように、一つの機器が複数のMACアドレスを持つことがあります。
MACアドレスは48ビット(6バイト)からなり,前半の24ビットがIEEEからLANカードベンダに与えられるOUI(Organizationally Unique Identifier:ベンダ識別子)で、後半の24ビットはベンダがつける製品番号です。これにより、世界中で同一のMACアドレスをもつ機器は存在しないことになります。
(注)OUIの先頭2ビットは
I/Gビット;0=個別アドレス、1=グループアドレス
U/Lビット;0=グローバルアドレス、1=ローカル
で、通常目的のものはは個別アドレス、グローバルアドレスになっています。
MACアドレスで世界中の機器が特定できるので、これにより世界中の相手と交信することは論理的には可能です。しかし、NICはハードウェア部品ですから、近い番号が世界中に散在していることもあるし、他人に譲渡できます。国番号や市外局番がない電話番号で現在の加入者があいまいな状況で電話をかけるようなもので現実には使えません。
そのため、MACアドレスの利用は、機器が少なく管理できる小規模なLAN内に限定されます。大規模LANやインターネットではIPアドレスを用います。
複数のネットワークをまたがるレベルでの接続プロトコルです。ネットワーク層の主要機能は、IPアドレスと経路制御だといえます。
インターネットでは、パソコン側のLAN、公衆回線のネットワーク、Webサーバ側のLANのように、通信方式の異なる複数のネットワークを経由して通信します。
参照:ネットワーク層とIP
ネットワーク層では、MACアドレスではなく、IPアドレスで相手先を特定し接続します。
IPアドレスは、ネットワーク層におけるMACアドレスのようなものです。
これも世界中で一意の番号ですが、地域レベル、国レベルで割り振り、さらに、ISP(プロバイダ)に割り振ります。そして、ISPが企業や個人加入者に割り当てます。
この配分は連続番号でまとめた単位で行われますので、配分の流れを逆に追うことにより、IPアドレスが存在するネットワークにたどりつけます。
これまでのIPアドレスはIPv4という4バイト2進数の体系でしたが、インターネットの爆発的普及により、新しいIPアドレスを付与できなくなりました。枯渇解消のため、6バイトのIPv6体系になりましたが、現在では二つの体系が混在しています。
参照:IPアドレス
インターネットでは、多くのルータをバケツリレーのように経由して相手先に接続します。その経路は固定ではなく、状況に応じて動的に異なる経路が設定されます。その方式を経路制御(routing)といいます
ルータは、自分が接続しているネットワークのIPアドレスのリスト。ルータAが宛先のIPアドレスを知らないときは、ネットワークに接続している他のルータBに聞きます。ルータBも知らなければ、さらにルータBに接続しているルータCに聞きます。このようにバケツリレーをしているうちに、いつかはそのIPアドレスを知っているルータにたどりつきます。
参照:経路制御(ルーティング)
2つの機能があります。ネットワーク層までで接続したノード間で、正しくデータの受発信ができるようにする機能と、受け取ったデータを目的のアプリケーション(電子メール、Webページ閲覧など)に渡す機能です。アプリケーションはポート番号で与えられます。
参照:トランスポート層
第4層までの管理をして、どのように通信するかを決めます。通信ではWebページ閲覧や電子メール送受信など多様なアプリケーションがりますが、それらのアプリケーションの仕様に基づいて、通信の方法(セッション)を確立します。アプリケーション独自のエラー対策もここで行います。
電文で用いている文字コードはASCIIコードやシフトJISコードなど多様です。また、転送効率を上げるために圧縮していることもありますし、秘密保護のために暗号化していることもあります。これらの変換・解凍・復号化などを行います。
Webページ閲覧(HTTP)、電子メール(SMTP、POP)、ファイル転送(FTP)など、アプリケーションサービスを提供します。
統合した規約ではなく、個々のアプリケーションのプロトコルの集合だと捉えるほうが妥当です。TCP/IPでは、5層以降をアプリケーション層とし、そのプロトコルは個々のアプリケーションに任せています。
参照:アプリケーション層
データ通信はパケット交換方式でデータを送ります。パケットにはヘッダがついており宛先などが入っています。このヘッダは、各層を通るたびに、新しいヘッダ部分が追加されます。
パケットのヘッダの仕組みを、電子メールを例に説明します。送信側Aから受信側Bに電文を送るとき、利用者はメールソフトを操作するだけですが、内部では、おおよそ次のような順序で処理されています(ここではイメージを理解するために簡略したものであり、個々のプロトコルの記述も厳格なものではありません)。
図のように、送信側ではOSI参照モデル(TCP/IPでも)の上位から下位のレイヤーの順で処理が行われ、TCPではTCPヘッダ、IPではIPヘッダ、データリンク層ではイーサーネットヘッダが付けられます(FCSはパケットの最後を示す符号)。
受信側は、下位から上位のプロトコルへ、そのヘッダを解析することにより、ヘッダを外しながらデータを渡します。
TCPヘッダにはポート番号が入っています。ポート番号は、メール送信(SMTPというプロトコル)なら25、メール受信(POP3)なら110、Webページ閲覧(HTTP)なら80のようになっており、受信側のサーバやパソコンは、ポート番号によるアプリケーションを起動します。
イーサネットヘッダに関して、やや詳細に説明します(IPヘッダとTCPヘッダに関しては、別章で扱います)。
イーサーネットでは,パケットのことをフレームといいます。そのフレームの先頭にイーサーネットヘッダ,最後にイーサーネットトレイラをつけて送信します。
そのフレームの大きさは最大1500オクテットです。
オクテットとは8ビットのことで,1バイトに相当します。通信ではバイトでよりもオクテットを多く用います。なお,1Kバイトは1024バイト,1MBは10242バイトですが,1Kオクテットは1000オクテット,1Mオクテットは10002オクテットになります。
タイプは、ネットワーク層で使うプロトコルで、IPv4、IPv6、APR、IPXなどを与えます。
イーサーネットトレイラは,フレームが正しく到着したことを確認するためのビット列で,CRC方式という誤り検出方式を用いています。