CSMA/CD完全ガイド – イーサネットの衝突を防ぐ仕組み

プログラミング・IT

会議で、2人が同時に話し始めてしまった経験はありませんか?

「あ、どうぞどうぞ」「いえいえ、お先にどうぞ」

こんなやり取り、日常でよくありますよね。

実は、コンピュータのネットワークでも同じような問題が起きるんです。複数のパソコンが同時にデータを送ろうとすると、データがぶつかって通信できなくなってしまいます。

この問題を解決するために開発されたのがCSMA/CD(シーエスエムエー・シーディー)という仕組みです。

この記事では、かつてのイーサネットで使われていた通信制御方式「CSMA/CD」について、初心者の方にもわかりやすく解説していきます。ネットワークの歴史と仕組みを理解する知識をお届けしますよ。


スポンサーリンク

CSMA/CDとは?通信の「交通整理」

CSMA/CDは「Carrier Sense Multiple Access with Collision Detection」の略です。

日本語にすると「搬送波感知多重アクセス/衝突検出方式」となります。

難しそうな名前ですが、一つずつ分解すれば理解できますよ。

名前の意味を分解すると

Carrier Sense(搬送波感知)
他のコンピュータが通信しているかどうかを確認すること。

Multiple Access(多重アクセス)
複数のコンピュータが同じ通信路を共有すること。

Collision Detection(衝突検出)
データが衝突したことを検出する機能。

つまり、「複数のコンピュータが通信路を共有するとき、他が使っていないか確認して、もし衝突したら検出する」という仕組みなんです。


なぜCSMA/CDが必要だったのか

まず、どんな問題を解決するために生まれたのかを見ていきましょう。

共有バス型ネットワーク

かつてのイーサネットは、バス型トポロジーという構造でした。

1本の通信ケーブル(バス)に、複数のコンピュータが繋がっている形です。

道路に例えると、1本の道を複数の車が共有しているイメージですね。

衝突問題

1本のケーブルを複数のコンピュータで共有すると、問題が起きます。

AさんとBさんが同時にデータを送信すると、ケーブル上でデータがぶつかって壊れてしまうんです。

これを衝突(コリジョン)と呼びます。

衝突が起きると、データは正しく届かず、送信し直す必要があります。

通信制御の必要性

効率的に通信するには、誰がいつデータを送るかを調整する仕組みが必要でした。

そこで開発されたのがCSMA/CDなんです。


CSMA/CDの動作原理

CSMA/CDがどのように動作するのか、ステップごとに見ていきましょう。

ステップ1:搬送波を感知する(Carrier Sense)

データを送りたいコンピュータは、まず通信ケーブルを「聞き耳」を立てます。

他のコンピュータが通信している場合、ケーブル上に電気信号(搬送波)が流れているので、それを検出できるんです。

誰かが通信していれば、待機します。

誰も使っていなければ、次のステップに進みますよ。

ステップ2:データを送信する

ケーブルが空いていることを確認したら、データの送信を開始します。

ただし、ここで問題が起きる可能性があります。

ステップ3:衝突を検出する(Collision Detection)

送信中も、常にケーブルを監視し続けます。

もし、ほぼ同時に別のコンピュータも送信を始めた場合、ケーブル上でデータが衝突してしまいます。

CSMA/CDは、この衝突を検出する機能を持っているんです。

衝突を検出すると、すぐに送信を中止します。

ステップ4:ジャム信号を送る

衝突を検出したら、ジャム信号という特殊な信号を送ります。

これは「衝突が起きたよ!」と他のコンピュータに知らせるための信号です。

全てのコンピュータに衝突を認識させることで、データの破損を最小限に抑えられます。

ステップ5:ランダムな時間待つ

衝突が起きた後、すぐに再送信しても、また衝突する可能性が高いですよね。

そこで、バックオフアルゴリズムという仕組みを使います。

ランダムな時間だけ待ってから、再度送信を試みるんです。

このランダム性がポイントで、複数のコンピュータが同時に再送信する確率を下げられます。

ステップ6:再送信

待機時間が経過したら、再びステップ1から始めます。

衝突が何度も起きる場合は、待機時間を徐々に長くしていきます。


バックオフアルゴリズムの詳細

衝突後の待機時間を決めるバックオフアルゴリズムについて、もう少し詳しく見てみましょう。

指数バックオフ

CSMA/CDでは、指数バックオフという方法を使います。

1回目の衝突:0~1のスロット時間からランダムに選ぶ
2回目の衝突:0~3のスロット時間からランダムに選ぶ
3回目の衝突:0~7のスロット時間からランダムに選ぶ

このように、衝突回数が増えるごとに、選択肢の範囲を2倍に増やしていくんです。

最大試行回数

通常、16回衝突が起きると、そのデータの送信は諦められます。

ネットワークが混雑しすぎている状態として、エラーが報告されるんです。


CSMA/CDのメリット

この方式には、いくつかの利点がありました。

シンプルな構造

特別な制御装置が不要で、各コンピュータが自律的に動作します。

ネットワーク全体を管理する中央装置がいらないので、コストを抑えられたんです。

公平性

全てのコンピュータが平等に通信のチャンスを持ちます。

特定のコンピュータが通信を独占することはありません。

柔軟性

コンピュータの追加や削除が簡単にできます。

ネットワーク全体の設定を変える必要がないため、拡張性が高いんですね。


CSMA/CDのデメリット

一方で、いくつかの問題点もありました。

トラフィックが増えると効率が下がる

ネットワークが混雑すると、衝突が頻繁に起きます。

衝突が増えれば増えるほど、再送信が必要になり、実効速度が大幅に低下してしまうんです。

半二重通信のみ

CSMA/CDは半二重通信でのみ動作します。

半二重通信とは、送信と受信を同時に行えない通信方式のこと。

交互に通信する必要があるため、効率が悪くなります。

ケーブルの長さに制限

衝突を正しく検出するには、ケーブルの長さに制限がありました。

距離が長すぎると、衝突の検出が遅れてしまうんです。


CSMA/CDの衰退と現代のネットワーク

現在のイーサネットでは、CSMA/CDはほとんど使われていません。

スイッチングハブの登場

1990年代以降、スイッチングハブが普及しました。

スイッチングハブは、各コンピュータに専用の通信路を提供します。

これにより、複数のコンピュータが同時に通信しても衝突が起きなくなったんです。

全二重通信

現代のイーサネットは全二重通信に対応しています。

全二重通信とは、送信と受信を同時に行える通信方式のこと。

専用の送信線と受信線を使うため、そもそも衝突が発生しないんです。

CSMA/CDは歴史的技術に

スイッチングハブと全二重通信の組み合わせにより、CSMA/CDの必要性はなくなりました。

IEEE 802.3の2018年版では、CSMA/CDに関する記述が削除されているほどです。

ただし、ネットワーク技術の基礎として、学習する価値は今でもありますよ。


関連する技術と用語

CSMA/CDと関連する技術を紹介します。

CSMA/CA

CSMA/CAは「Carrier Sense Multiple Access with Collision Avoidance(衝突回避)」の略です。

CSMA/CDが「衝突を検出する」のに対し、CSMA/CAは「衝突を避ける」方式です。

無線LAN(Wi-Fi)で使われている技術で、衝突の検出が難しい無線環境に適しています。

送信前に、送信する意思を通知して、衝突を未然に防ぐんですね。

トークンリング

トークンリングは、CSMA/CDとは全く異なるアクセス制御方式です。

「トークン」という送信権を順番に回していく方式で、衝突が原理的に発生しません。

かつてはIBMが推進していましたが、現在はほとんど使われていません。

イーサネット

イーサネットは、最も普及しているLAN(ローカルエリアネットワーク)の規格です。

初期のイーサネットでCSMA/CDが使われていましたが、現在は不要になっています。

ハブとスイッチ

ハブは、受信したデータを全てのポートに転送する単純な装置です。

これだとCSMA/CDが必要になります。

スイッチは、宛先を判断して適切なポートだけにデータを転送する賢い装置です。

衝突が起きないため、CSMA/CDは不要なんです。


半二重と全二重の違い

通信方式の理解を深めるために、もう少し詳しく見てみましょう。

半二重通信(Half-Duplex)

送信と受信を交互に行う方式です。

トランシーバーのように、「話す」か「聞く」かのどちらか一方しかできません。

CSMA/CDは、この半二重通信環境で必要でした。

全二重通信(Full-Duplex)

送信と受信を同時に行える方式です。

電話のように、お互いに同時に話せるイメージですね。

現代のスイッチド・イーサネットでは、全二重通信が標準です。

実効速度の違い

半二重の100Mbpsネットワークは、実質的に50Mbps程度しか使えません。

全二重の100Mbpsなら、送信100Mbps、受信100Mbps、合計200Mbpsの帯域を利用できます。

効率が全く違うんですね。


実験:CSMA/CDを体験できる環境

実際にCSMA/CDの動作を見るのは、今では難しくなっています。

古いハブを使う

もし、古いリピーターハブ(ダムハブ)が手に入れば、CSMA/CDの動作を観察できます。

ネットワークモニタリングツールで、衝突カウンタを見ることもできますよ。

シミュレータの活用

Cisco Packet TracerやGNS3などのネットワークシミュレータでも、CSMA/CDの動作を学べます。

教育目的で、古い技術をシミュレートする機能が用意されているんです。


まとめ:技術の進化とCSMA/CDの役割

CSMA/CDは、イーサネットの歴史において重要な役割を果たしました。

この記事のポイント:

  • CSMA/CDは搬送波感知多重アクセス/衝突検出方式
  • 複数のコンピュータが1本のケーブルを共有する環境で使われた
  • 通信前に空きを確認し、衝突を検出したら再送信する仕組み
  • バックオフアルゴリズムでランダムに待機時間を決める
  • 半二重通信のみに対応
  • スイッチングハブと全二重通信の登場で不要になった
  • CSMA/CAは無線LANで現在も使われている類似技術
  • ネットワーク技術の基礎として学習価値がある

現代のネットワークでは使われなくなりましたが、CSMA/CDの仕組みを理解することで、ネットワークの基本原理や技術の進化を学べます。

複数の機器が通信路を共有するという問題は、様々な場面で登場するからです。

無線LANのCSMA/CAなど、今も使われている技術にも共通する考え方が詰まっているんですよ。

技術の歴史を知ることで、なぜ今のネットワークがこのような形になったのか、深く理解できるようになりますね。

コメント

タイトルとURLをコピーしました