Webエンジニアのブログ

「マスタリングTCP/IP 入門編」要約 第3章「データリンク」


マスタリングTCP/IP 入門編 第5版」の第3章の要約です。

データリンクの役割

データリンクという言葉は、OSI参照モデルのデータリンク層を指す用語として使われる場合と、具体的な通信手段(イーサネットや無線LANなど)を指す一般的な用語として使われる場合があります。 データリンク層のプロトコルは、通信媒体で直接接続された機器間で通信するための仕様を定めています。 通信媒体には同軸ケーブルや光ファイバーや電波などがあります。

コンピュータの情報はすべて2進数の0と1で表されますが、実際の通信媒体でやり取りされるのは電圧の変化や光の点滅、電波の強弱です。 これらと2進数の0と1とを変換するのは物理層の働きです。 データリンク層では単なる0と1ではなくフレームというデータリンク層におけるパケットとして相手の機器に伝えます。

データリンクの技術

MACアドレス

MACアドレスは、データリンクに接続しているノードを識別するために利用されます。 IEEE802.3(IEEEとは米国電気電子技術者協会)で規格化されたMACアドレスを利用することが一般的です。 MACアドレスはメーカーごとに割り当てられたベンダ識別子と、ベンダ内での識別子で構成されています。

MACアドレスは48ビットの長さを持ち、世界中でユニークな番号であることになっています。 しかし仮想マシン技術では物理的なインターフェースがないため、ソフトウェアによってMACアドレスを作ります。そのためユニークになっている保障はありません。 とはいえ同じデータリンク内で同じMACアドレスの機器が存在しないというルールは守る必要はあります。

媒体共有型のネットワーク

ネットワークは媒体共有型と媒体非共有型に分けることができます。 媒体共有型のネットワークとは、通信媒体を複数のノードで共有するネットワークです。 基本的には、半二重通信というデータの送信と受信を同時に行えない状態になります。 また通信の優先権を制御する仕組みが必要になるため、コンテンション方式やトークンパッシング方式というもので解決します。

コンテンション方式

コンテンション方式とは、データの送信権を競争で奪い取る方式です。CSMA(Carrier Sense Multiple Access)方式とも呼ばれます。 各ノードはデータを送信したくなったら早い者勝ちで通信路を使用してデータを送信します。 複数のノードからデータが同時に送信された場合にはデータが衝突し壊れるため、ネットワークが混雑すると急激に性能が低下します。

イーサネットの一部ではこういった問題を解決したCSMA/CD(CSMA/Collision Detection)という方式が採用されています。

  • データが流れていなければデータを送信する
  • 衝突が発生した場合には送信を取りやめる
  • 送信を取りやめた場合には、欄数時間待ってから送信をやり直す(衝突した双方がすぐに再送するとまた衝突するため)

トークンパッシング方式

トークンパッシング方式では、トークンと呼ばれるパケットを巡回させ、このトークンで送信権を制御します。 トークンを持っているノードだけがデータを送信できるため、ネットワークが混雑しても性能があまり低下しません。

その一方でトークンが回ってくるまでデータを送信できないため、非混雑時にデータリンクの性能を100%出しにくくなります。 そこでアーリートークンリリース(宛先の受信確認フレームを待たずにトークンを回す)方式やアペンドトークン方式(アーリートークンリリースの強化版)、複数のトークンを同時に巡回させるなどの技法で性能向上の工夫がされています。

媒体非共有型のネットワーク

通信媒体を共有せずに専有する方式です。ノードはスイッチと呼ばれる装置に直接接続され、そのスイッチがフレームを転送します。 送受信の通信媒体が共有されないため、多くの場合、全二重通信というデータの送受信を同時に行える状態になります。 この方式は最近のイーサネットでも主流になっていますが、スイッチが単一障害点になるという欠点もあります。

MACアドレスによる転送

同軸ケーブル上で利用されるイーサネットなどの通信媒体を共有する方式では、同時に1つのホストしかデータを送信出来ません。 そのためホスト数が多くなると通信性能が下がることになります。

ハブやコンセントレータと呼ばれる機器によってスター型に接続されるようになると、媒体非共有型で利用されていたスイッチ技術をイーサネットなどでも利用できるようにする機器が登場しました。それがスイッチングハブやイーサネットスイッチと呼ばれるものです。

イーサネットスイッチは、複数のポート(外部インターフェース)を持ったブリッジといえます。 これらデータリンク層におけるフレームの通過点では、そのフレームの宛先MACアドレスを見てどのインターフェースから送り出すかを決めます。 この時に参照するテーブルを転送表(フォワーディングテーブル)といいます。 転送表は自動的に生成されており、パケットを受け取った時に、そのパケットの送信元MACアドレスとインターフェースを転送表に書き込みます。

ループを検出するための技術

ブリッジでネットワークを接続するときにループを作った場合、フレームが次々にコピーされて永久に回り続け、ネットワークをメルトダウンという通信不能な状態になってしまいます。 (原因となっている機器の電源をOFFにしないと状態は回復しない)

こういったループを解決する方法は、スパニングツリー方式とソースルーティング方式の2つがあります。 こういった機能を持ったブリッジを使えばループを作ることができ、トラフィック分散やフレームを迂回させたりして耐障害性を高めることができます。

スパニングツリー

スパニングツリーは、各ブリッジで1~10秒の間隔でBPDU(Bridge Protocol Data Unit)と呼ばれるパケットを交換します。 そして通信に使用するポートと使用しないポートを決定し、ループを消すように制御します。 障害が発生した場合には、通信路が自動的に切り替わり、仕様されていないポートを使って通信が行われるようになります。

ソースルーティング

ソースルーティングは、送信コンピュータがどのブリッジを経由してフレームを流すかを決定し、フレームのRIF(Routeing Information Field)に書き込みます。 ブリッジはそのRIF情報をもとに配送処理を行います。

VLAN(Virtual LAN)

VLAN技術を利用できるブリッジ(スイッチ)を使えば、ネットワークの配線を変えずにネットのワークの構造を変えることができます。 スイッチのポートごとにセグメントを分けることで、ブロードキャストドメインを区切ることが出来、ネットワーク負荷の軽減やセキュリティを向上させることができます。

イーサネット(Ethernet)

データリンクでは、イーサネットという有線の規格が現在もっとも普及しています。 イーサネットの普及当初は1本の同軸ケーブルを共有する媒体共有型の接続が一般的でしたが、現在では端末とスイッチの間を占有のケーブルで接続してイーサネットプロトコルで通信する形態が一般的です。

イーサネットにはいろいろな種類がある

イーサネットには通信ケーブルや通信速度が違う数多くの仕様があります。 10BASEの10や10GBASEの10Gは、それぞれ伝送速度を意味しています。

通信速度が同じで通信ケーブルが違う場合には、それぞれの媒体を変換できるリピーターやハブなどで接続することができます。 通信速度が違う場合には、速度変換機能を持つブリッジやスイッチングハブまたはルーターで接続しなければなりません。

イーサネットの歴史

イーサネットは、同軸ケーブルを使うバス型接続の10BASE5が最初に規格化されました。 その後も1000BASE-Tなど数多くの規格が追加されました。

当初のイーサネットではアクセス制御方式としてCSMA/CDが採用されており、半二重通信が前提とされていたのでイーサネットの高速化は難しいとされてきました。 100MbpsのFDDIが登場してもイーサネットは10Mbpsのままで、ネットワークを高速化するにはイーサネット以外によるしかないと考えられていました。

しかしATM(Asynchronous Transfer Mode)という通信プロトコルで培われたスイッチ技術の進歩と、カテゴリ5(伝送速度によってケーブルがカテゴリ化されている) のUTPの普及によってイーサネットは大きく高速化しました。

イーサネットのフレームフォーマット

イーサネットフレームの戦闘には、1と0を交互に並べたプリアンブルと呼ばれるフィールドが付けられます。 プリアンブル末尾が11のSFD(Start Frame Delimiter)と呼ばれるフィールドで終わり、それ以降がイーサネットフレームの本体になります。 プリアンブルとSFDは合わせて8オクテットあります。(1オクテットは8ビットでバイトと同じ意味、特に8ビットであることを強調したい時にオクテットを使う)

イーサネットのヘッダは合計14オクテットあり、宛先MACアドレスで6オクテット、送信元MACアドレスで6オクテット、上位層のプロトコルの種類を表すフィールドが2オクテットです。 フレームの末尾にはFCS(Frame Check Sequence)という4オクテットのフィールドがあります。 FCSはフレーム全体を特定のビット列で割り、その余りを格納します。受信側でも同じ計算を行い、フレームが正しく届いたかどうかを判断します。

無線通信

無線通信では、電波や赤外線、レーザー光線などを利用します。 無線通信の中で、オフィス内のようなLANの範囲を比較的高速で接続するものを無線LANと呼びます。

  • 無線PAN(Personal Area Network)、通信距離10m前後、Bluetoothなど
  • 無線LAN(Local Area Network)、通信距離100m前後、Wi-Fiなど
  • 無線MAN(Metropolitan Area Network)、通信距離数km~100km、WiMAXなど
  • 無線RAN(Regional Area Network)通信距離200km~700km
  • 無線WAN(Wide Area Network)、LTEや3Gや4Gなど

IEEE802.11

IEEE802.11は無線LANプロトコルの物理層とデータリンク層の一部(MAC層)を定義した規格です。 IEEE802.11という用語は多くの機器の総称として用いられる場合と、無線LANの通信方式として用いられる場合があります。 IEEE802.11bやIEEE802.11gなどの後継の規格もあります。

Wi-Fiは無線LANの業界団体であるWECA(Wireless Ethernet Compatibility Alliance)によってIEEE802.11規格群の普及を目的として付けられたブランド名です。 IEEE802.11規格を使用したデバイス間の相互接続が認められたことを示す名称として使われています。

無線LANを使用する場合の留意点

無線LANでは電波の通信可能範囲内であれば誰でも電波を受信できるため、盗聴の危険性があります。 無線LANのHTTPSでの保護や、認証された機器のみ無線LANを利用できるようにするアクセス制御が必要です。

PPP(Point-to-Point Protocol)

PPPとは

PPPは、その名の通り1:1でコンピュータを接続するためのプロトコルです。 PPPはOSI参照モデルの第2層に相当するデータリンクプロトコルといえます。

PPPは電話回線やISDN、ATM回線などで利用されています。 また最近ではADSLやケーブルテレビなどを使ったインターネット接続でPPPoE(PPP over Ethernet)として利用されるようになりました。

PPPoE(PPP over Ethernet)

インターネット接続サービスによってはイーサネットを利用してPPPの機能を提供するPPPoEが利用されている場合があります。

その他のデータリンク

ATM

ATMはデータをヘッダ5オクテット+データ48オクテットのセルと呼ばれる単位で処理するデータリンクです。 回線の占有生地感を短くすることにより大容量のデータを効率よく転送できるようにしています。

POS

POSはデジタル信号を光ファイバーでやり取りするための物理層の規格であるSDH上でパケット通信を行うためのプロトコルです。

FDDI

FDDIは、光ファイバーやツイストペアケーブルを用いて100Mbpsの伝送速度を実現するために利用されてきましたが、現在は使われなくなってきています。

公衆アクセス網

ここではLANのような機内の接続ではなく、外部と接続する場合に使用する公衆通信サービスについて解説します。 公衆通信とは、ソフトバンクなどの通信事業者に料金を払って通信回線を借りる形態です。

第3章 終わり

以上がデータリンクについてです。


{ "name": "hareku", "job": "Software Engineer" }