現代のインターネット社会において、私たちが意識することなくスムーズにデータを送受信できるのは、通信ネットワーク内で巧妙な制御が行われているからです。
しかし、ネットワークの基礎を学ぶ上で避けて通れない重要な概念の一つに「コリジョン(衝突)」という現象があります。
コリジョンは、複数のデバイスが同時にデータを送信しようとした際に、信号が混ざり合って正しく読み取れなくなる状態を指します。
かつての有線LAN環境では日常的に発生していたこの現象は、現代の高度なネットワーク機器によって最小限に抑えられていますが、その仕組みを理解することは通信の品質管理において非常に重要です。
本記事では、コリジョンが発生する根本的な原因から、それを回避するためのアルゴリズム、さらには現代のネットワークにおける状況までを詳しく解説します。
コリジョン(衝突)の基礎知識と発生のメカニズム
通信ネットワークにおけるコリジョンとは、一つの通信路(メディア)に対して複数の端末が同時に電気信号を送り出した結果、信号同士が重なり合ってデータが破壊される現象を指します。
これを道路に例えるなら、一台しか通れない細い一本道に両側から車が進入し、正面衝突して動けなくなってしまう状態に似ています。
ネットワーク上では、データは電気信号や光信号として流れますが、これらが衝突すると波形が乱れ、受信側で元のデータを復元することが不可能になります。
コリジョンが発生する物理的な背景
コリジョンが主に問題となるのは、複数の端末が物理的に同じ信号線を共有している「共有メディア型」のネットワーク構成です。
初期のイーサネット規格である10BASE5や10BASE2では、一本の同軸ケーブルを複数のコンピュータで共有していたため、誰かが送信している間は他の誰も送信できないという制約がありました。
このような環境では、送信タイミングが偶然重なることで、容易にコリジョンが発生してしまいます。
また、信号の伝搬速度には限界があるため、ある端末が送信を開始してから別の離れた端末にその信号が届くまでに、わずかなタイムラグが生じることも原因の一つです。
コリジョンドメインという概念
ネットワーク設計において重要な用語に「コリジョンドメイン(衝突ドメイン)」というものがあります。
これは、ある端末が送信した信号がコリジョンを起こす可能性のある範囲を指します。
例えば、リピータハブによって接続されたネットワーク全体は、一つの大きなコリジョンドメインを形成します。
ドメイン内の端末数が増えれば増えるほど、同時に送信を試みる確率が高まり、コリジョンの発生頻度も急上昇することになります。
コリジョンが発生する主な原因
コリジョンが発生する要因は、ネットワークの構造や使用している機器の特性に深く関わっています。
ここでは、代表的な3つの原因について詳しく見ていきましょう。
1. 半二重通信(Half-Duplex)の使用
半二重通信とは、送信と受信を同時に行うことができず、切り替えて行う通信方式のことです。
トランシーバーでの会話のように、一方が話している間はもう一方は聞くことしかできません。
この方式では、送信と受信のタイミングが重なった瞬間に必ずコリジョンが発生してしまいます。
2. リピータハブによる接続
ネットワーク機器として「ハブ(リピータハブ)」を使用している場合、コリジョンのリスクが非常に高くなります。
ハブは受け取った信号を、宛先に関係なくすべてのポートにそのまま増幅して流し出す(フラッディング)特性を持っています。
そのため、接続されているすべての端末が同じ信号空間を共有することになり、物理的な共有ケーブルを使っているのと同等の状態になります。
3. ネットワークの過密化と距離
一つのコリジョンドメインに接続される端末数が過剰になると、通信の「空き」を見つけるのが困難になります。
また、ネットワークの物理的な総延長が長すぎる場合、信号の伝搬遅延が大きくなります。
ある端末が「今は誰も送信していない」と判断して送信を開始しても、遠くの端末からの信号がまだ届いていないだけというケースが生じ、結果として衝突を招きます。
コリジョンを回避・制御するメカニズム:CSMA/CD
イーサネットにおいて、コリジョンによるデータの損失を防ぎ、効率的に通信を行うために開発されたのがCSMA/CD(Carrier Sense Multiple Access with Collision Detection)というプロトコルです。
この仕組みにより、衝突を前提とした制御が可能になりました。
CSMA/CDの動作手順
CSMA/CDは、以下の4つのステップで動作します。
- キャリア検知(Carrier Sense):送信前にネットワーク上に他の信号が流れていないかを確認します。
- 多重アクセス(Multiple Access):誰も送信していなければ、誰でも送信を開始できます。
- 衝突検知(Collision Detection):送信中、常に信号の乱れを監視し、コリジョンが発生していないかをチェックします。
- 再送制御:衝突を検知したら、ジャム信号を送信して全端末に通知し、ランダムな時間待機した後に再送を試みます。
バックオフアルゴリズムの役割
衝突が発生した際、すべての端末がすぐに再送を開始すると、再び同じタイミングで衝突してしまいます。
これを防ぐために、各端末は「バイナリエキスポネンシャルバックオフ」と呼ばれるアルゴリズムを使用します。
これは、衝突の回数に応じて待機時間の範囲を指数関数的に増やしていく仕組みです。
これにより、再送タイミングを分散させ、ネットワークの混雑を段階的に解消することができます。
無線LANにおけるコリジョン回避:CSMA/CA
Wi-Fiなどの無線LAN環境では、有線とは異なる物理的な制約があるため、CSMA/CDをそのまま使うことができません。
無線では、自分の送信電波が強すぎて、送信中に他者の微弱な電波を検知(衝突検知)することが困難だからです。
そこで代わりに採用されているのがCSMA/CA(Collision Avoidance)、つまり「衝突回避」の仕組みです。
回避のための「慎重な」待機
CSMA/CAでは、送信前にキャリア検知を行うところまでは同じですが、回線が空いていると判断した後、さらに「IFS(Inter Frame Space)」と呼ばれる短い時間と、ランダムな「バックオフ時間」を待機してから送信を開始します。
あらかじめ「待ち」を入れることで、複数の端末が「空いた瞬間に一斉に送信する」事態を未然に防ぎます。
ACK(確認応答)による成否確認
無線の場合は衝突を直接検知できないため、受信側からの「ACK(Acknowledgement)」信号を待つことで、正しく届いたかを確認します。
一定時間内にACKが返ってこない場合、送信側は「衝突が起きた」とみなして再送処理を行います。
隠れ端末問題とその対策
無線LAN特有の問題として、端末Aと端末Bがお互いの電波の届かない位置にあり、両者の中間にアクセスポイントがある場合に発生する「隠れ端末問題」があります。
この場合、AとBはお互いの存在をキャリア検知できないため、同時に送信してしまいアクセスポイントで衝突が起きます。
これを解決するために、送信前に「RTS(送信リクエスト)」と「CTS(送信許可)」という短いパケットを交換し、周囲に送信の予約を宣言する仕組み(RTS/CTSハンドシェイク)が用意されています。
現代のネットワークとコリジョンの消失
現在、オフィスや家庭での有線LAN環境において、コリジョンに悩まされることはほとんどなくなりました。
これはネットワーク機器が「ハブ」から「スイッチ(レイヤ2スイッチ)」へと進化したことが最大の要因です。
スイッチングハブと全二重通信
スイッチは、ハブと異なりMACアドレスを学習して、特定のポートにのみデータを転送する機能を持ちます。
さらに、送信と受信の経路を物理的あるいは論理的に分ける「全二重通信(Full-Duplex)」をサポートしています。
全二重通信では、自分専用の送信路と受信路が独立しているため、理論上コリジョンは発生しません。
現在主流のギガビットイーサネット(1000BASE-T)以降の規格では、この全二重通信が前提となっています。
マイクロセグメンテーションの効果
スイッチを使用することで、一つのポートに接続されたデバイスのみがコリジョンドメインとなります。
これを「マイクロセグメンテーション」と呼びます。
PCとスイッチが1対1で接続され、かつ全二重で動作している場合、コリジョンドメイン内には衝突の相手が存在しないことになります。
この技術革新により、ネットワークの実行速度は飛躍的に向上しました。
コリジョンがネットワークパフォーマンスに与える影響
現代では珍しくなったとはいえ、設定ミスや古い機器の混在により、依然としてコリジョンがパフォーマンス低下を招くケースがあります。
以下に、コリジョンが多発した際に発生する具体的な問題点をまとめました。
| 影響項目 | 具体的な現象 |
|---|---|
| スループットの低下 | 再送が増えることで、本来のデータ通信に使える帯域が減少する。 |
| 遅延(レイテンシ)の増大 | バックオフによる待機時間が発生し、データの到着が遅れる。 |
| CPU負荷の上昇 | ネットワークカードやOSが再送処理を繰り返すことでリソースを消費する。 |
| 通信の不安定化 | コリジョンが限界(通常16回連続)を超えると、パケットが破棄されコネクションが切断される。 |
特に、ネットワーク内の「デュプレックスミスマッチ」には注意が必要です。
これは、一方が全二重、もう一方が半二重で設定されている場合に発生する問題で、大量のコリジョンやエラーパケットを誘発し、通信速度が極端に遅くなる原因となります。
まとめ
コリジョンは、通信ネットワークという共有リソースをいかに効率よく、そして公平に利用するかという課題から生まれた現象です。
古くからあるイーサネットのCSMA/CD方式は、この衝突を許容し、発生した後に賢く対処するという優れた設計思想を持っていました。
一方、無線LANのCSMA/CA方式は、目に見えない空間での衝突を未然に防ぐための工夫を凝らしています。
今日ではスイッチング技術の普及により、有線LANでコリジョンを意識する機会は減りましたが、トラブルシューティングや無線環境の最適化において、この知識は欠かせません。
通信の裏側にある「衝突とその回避」のメカニズムを理解することで、より安定したネットワーク構築が可能になるでしょう。
