フリーキーズ | 独学プログラミング

CSMA/CDとは

最終更新日

CSMA/CDとは、Carrier Sense Multiple Access with Collision Detectionの略です。イーサネットネットワークのように、共通の通信チャネルを共有する複数のデバイス間のデータ伝送を管理するために使用されるネットワークプロトコルです。CSMA/CDは、デバイスがデータを送信する前に通信チャネルを受け取り、衝突が発生したときに検出することで、データの衝突を防止するのに役立ちます。

CSMA/CDの簡単な例

部屋の中で何人かの人が会話をしようとしているところを想像してください。部屋にいる人たちが会話をしようとすると、全員が同時に話して、誰もお互いを理解できないような騒がしい環境になるのを防ぐために、彼らは一連のルールに従います。

  1. 話す前に聞く: 各自が話し始める前に、他の人が話していないことを確認するために耳を傾けます。
  2. 同時に誰かが話し始めたら、止まって待つ:2人が同時に話し始めたら、2人とも止まってランダムな時間待ってから、再び話そうとします。
  3. 会話が成立するまで、ステップ1と2を繰り返してください。

ネットワークの文脈では、デバイスも同様のルールに従います。

1. キャリアセンス

デバイスがデータを送信する前に、ネットワークに耳を傾け、他のデバイスがすでに送信しているかどうかを判断します。チャネルがビジー状態の場合、デバイスは待機します。

2. マルチプルアクセス

チャネルに空きがあれば、デバイスはデータの送信を開始します。複数の機器がネットワークにアクセスできるため、2つの機器が同時に送信を開始する可能性があります。

3. 衝突検出

2つの機器が同時にデータを送信した場合、衝突が発生します。両機器は衝突を検知して送信を停止し、ランダムな時間だけ待機してから再送信を試みます。

例) オフィスでは、複数のコンピューターがイーサネットネットワークに接続されています。あるコンピューターが他のコンピューターにデータを送信する必要がある場合、まず、ネットワークがビジー状態であるかどうかを確認します。ビジー状態でない場合は、データの送信を開始します。他のコンピュータが同時に送信を開始した場合、両方のコンピュータが衝突を検出し、ランダムな時間だけ一時停止してから再試行します。このプロセスは、すべてのデータが衝突することなく正常に送信されるまで続けられます。

全二重通信の登場

CSMA/CDは、初期のイーサネットネットワークでデータ伝送を管理するための重要なプロトコルでした。しかし、ネットワークスイッチや、デバイスが衝突することなく同時にデータを送受信できる全二重通信の出現により、現代のネットワークではCSMA/CDの重要性は低下しています。

まとめ

つまり、CSMA/CDは、イーサネットネットワークのような共有通信路でのデータ伝送を管理するためのネットワークプロトコルです。送信前にデバイスがネットワークに耳を傾け、衝突が発生したときに検出することで、データの衝突を防止します。