CSMA/CD
CSMA/CDは Carrier Sense Multiple Access/Collision Detection の略称で、通信手順をそのまま名前にしたもの。Ethernetにおける基本的な通信手順(通信プロトコル)として使われてきたもので、制御が簡単な割に効率が良い。ただし、接続クライアント数が増えると急激に効率が悪化するという問題点がある。
CSMA/CAとの最大の違いは、CSMA/CDにおいては送信中に衝突を検出し、もし検出したら即座に通信を中止し待ち時間を挿入するのに対し、CSMA/CAは送信の前に待ち時間を毎回挿入する点である。
歴史
ALOHAnetというUHF帯をもちいた通信ネットワークで使われたのが起源で、これを同軸ケーブル上で使えるようにアレンジしたもの。Xerox社のPalo Alto Research Center(PARC)に所属するロバート・メトカーフ博士によって基礎理論がつくられた。DEC、インテル、Xeroxの3社(あわせてDIXとも呼ぶ)がEthernetの通信手順として採用したため、広く用いられてきた。しかし、最近ではスイッチングハブで通信制御を行うことが一般的で、CSMA/CDが実際に使われる事はほとんどなくなっている。そのため、10GbEthernetなど、Ethernet規格の中でも比較的新しいものではコリジョンドメインをサポートしていない(ブロードキャストドメインは存在する)。
実際の手順
- Carrier Sense:通信を開始する前に、一度受信を試みることで現在通信をしているホストが他にあるかどうか確認する。
- Multiple Access:複数のクライアントは同じ回線を共用し、他者が通信をしていなければ自分の通信を開始する。
- Collision Detection:複数の通信が同時に行われた場合はそれを検知し、ランダムな時間待ってから再び送信手順を行う。
CSMA/CDのアルゴリズムで特に注目すべき点は、コリジョンが発生した際、再試行までにランダムの数ミリ秒の間隔をあけるという点である。他のクライアントと全く同じ時間だけ間隔をあける確率は、極めて低いため、再びコリジョンが起こることを回避できる。しかし、使用率の高いネットワークにおいては、コリジョンが多発し、時間のロスが生じる。