イーサネットの通信速度は、当初の3Mbps弱から現在ではGbit/sにまで高速化されたが、その基本的な通信モデルである「CSMA/CDアクセス制御方式を用いた、ブロードキャスト型のネットワーク」という仕組み自体はずっとそのまま継承されている。ここでは最も基本的な10BASE5イーサネット(DIXイーサネット)を取り上げて、その基本的な通信形態について説明する。現在ではハブとツイストペア・ケーブルを使ったスター型の配線が一般的であるが、その内部的な動作原理はやはり10BASE5のものと同じである。
イーサネットの規格では、ノードのことを「ステーション」と呼んでいる。ステーションはネットワークに接続されるコンピュータの総称で、コンピュータやプリンタなどネットワークを介して通信するすべてのデバイスを表す。ステーションとネットワーク媒体(ケーブル)を接続するのが「イーサネット・インターフェイス」で、一般的には「ネットワーク・インターフェイス」、または単に「インターフェイス」と呼ばれる。イーサネット・インターフェイスはハードウェアとソフトウェアで構成される。イーサネットのハードウェアは、一般的にPCではNIC(ネットワーク・インターフェイス・カード)を利用して増設するが、マザーボード上にあらかじめ実装されている場合もある。10BASE5では、ネットワーク媒体には直径1/2インチの同軸ケーブルを利用し、1本の同軸ケーブルに複数のステーションを接続するバス型のトポロジーを採用する。1本のケーブルで接続された範囲を「セグメント」と呼ぶ。
このシステムはいたってシンプルな方法でデータを転送する。ステーションがデータを送信するとき、データをイーサネット・インターフェイスを介して電気信号に変換しながら同軸ケーブルに送出する。送出された信号は同軸ケーブルを伝わり、セグメント全体に広がるので、すべてのステーションに届くことになる。信号がケーブルを伝わる速さはケーブルの品質により異なるが、おおよそ光の速さ(約30万km/s)の60〜75%程度である。各イーサネット・インターフェイスはネットワーク媒体を伝わってくる信号を監視していて、必要ならば信号をデータに変換してステーションに渡すだけである。このようにデータがセグメント全体に配送されるシステムを「ブロードキャスト(broadcast)型」の配送システムという。
このシステムでは、ネットワーク上へデータを送信することができるのは、同時に1台までに限定されている。どこか1台のステーションが送信を行っていると、他のステーションはそれが終わるのを待ってからでないと、送信することはできない。
このように、データの送信はケーブルが使用中でない場合にのみ可能であるが、場合によっては送信動作が同時に発生する可能性がある。もし同時に複数のステーションがデータを送信しようとすると、ケーブル上で信号が混信してしまい、信号を正しく伝達することができなくなる。この信号の混信を「衝突(collision、コリジョン)」という。衝突が起こった場合、送信中のデータは(混信して)意味がなくなっているので、それを破棄しなければならない。そして、再度送信操作をやり直す必要がある。これを実現するためにイーサネットでは、衝突が発生すると、(データの送信を中断して、代わりに)すぐにJAM(jamming)信号という特別なパターンの信号(衝突の発生を確実に伝えるための信号。すぐに送信を中断すると、衝突時間が短すぎて、衝突検出機能がうまく働かないかもしれないから)を送信する。JAM信号を受信した各ステーションでは、データの受信動作を中断して、データを破棄する。これにより、各ステーションでは間違ったデータを受け取ることなく、正しいデータだけを受信することができる。JAM信号の送信後、送信側のステーションでは再度データを送信し直す。
以上のような方法を使って、1本のケーブル上で複数のステーションが衝突を起こすことなく、任意のステーション間で正しく通信を行うためには、複数のステーションがネットワーク媒体に同時にアクセスしないように調停する方法や、衝突が発生した場合の対処法などの取り決め(アクセス制御方式)が必要になる。このようなネットワーク媒体へのアクセスを制御する方法を規定しているのがMAC副層で、イーサネットでは「CSMA/CD」という方式を規定している。
「CSMA/CD(Carrier Sense Multiple Access with Collision Detection)」の動作は、人が集まって話をしている状況に例えることができる。人が話を始めるときには、まずは他の誰も話をしていないことを確認する。これを「Carrier Sense(キャリア検知)」という(キャリアとは信号のことで、誰も話していないときは「キャリアがない」ということになる)。そして誰も話をしていなければ話を始めるが、だれかが話をしているときは、それが終わるのを待つ。誰が話し始めるかは、特に順番などは決まっているわけではなく、誰もが平等に話を始める機会を持っている。これを「Multiple Access(多重アクセス)」という。もし複数の人が同時に話を始めてしまった場合は、それに気が付いた時点で(これは口で話をすると同時に、耳で聞くことによって検出することができる。自分以外の声が聞こえていれば、それは衝突したと判断できる)いったん話を止める。これを「Collision Detection(衝突検出)」という。そして、各自が(それぞれランダムな時間だけ)少し待ってから(すぐに話を始めると、また衝突してしまい、いつまでたっても話すことができなくなるから)、再度話を始める(最初のCarrier Sense動作から始める)。これは複数の人が同時に話をしないようにしている様子を表しているが、CSMA/CDも複数のステーションが同時に送信をしないようにする方法を規定したものである。
ところで、誰も話をしていないことを確認してから話を始めているのに、どうして衝突が発生するのかというと、誰も話をしていないことを確認してから話を始めるまでにタイムラグがあるのと、音声(信号)が伝わる速度が有限であるからである。10BASE5イーサネットでは銅線を使って通信しているが、信号の伝わる速度はやはり有限である。例えば、長さが500mある10BASE5の同軸ケーブルの一端でキャリアがないと判断しても、セグメントの反対側の端ではすでに送信を開始してから2.4μs(光速の0.7倍程度で500m進んだとした場合)以上経過しているかもしれない(実際の電気回路では、ケーブル遅延以外にもさまざまな要因があり、もっと遅くなる)。10Mbit/sの速度ならば、これは24bit送信する時間に相当し、送信を開始するとケーブル上のどこかで信号が衝突することになる。衝突が起こると、通常ではありえないような異常な信号パターンになったり(10Mbit/sのイーサネットでは、50nsのタイミングで常に「0→1」か「1→0」と変化することになっているが、これが狂ってしまう)、電圧レベルなどが通常より著しく変動するので(2つの電圧レベルが加算されるから)、これを検出すれば衝突が起こったかどうかが分かる。衝突を検出した場合は、速やかに送信を中止してJAM信号を送出し、再送信動作を行う必要がある。
Copyright© Digital Advantage Corp. All Rights Reserved.