基本情報でCSMA/CDを問われたら、「通信路の空きを確認して送信し、送信中に衝突を検出したらジャム信号を送り、乱数で決めた時間待って再送する」と整理すると判断しやすくなります。空きを確認するだけで衝突を防げる方式ではありません。
もう一つ大切なのは通信条件です。共有する通信路を半二重で使うEthernetの説明と、スイッチに接続して全二重で使うEthernetの説明を分けて読みます。全二重のEthernetではCSMA/CDを使いません。
この記事では、動作の順序、CSMA/CAとの違い、問題文の見分け方を説明します。自作の練習問題と、伝搬時間から最小フレーム長を考える計算例で、用語の暗記を判断につなげましょう。
- 空きを確認しても衝突が起こる理由を説明できる
- ジャム信号と乱数待機の役割を順番に整理できる
- 半二重・全二重の条件からCSMA/CDの要否を判断できる
- CSMA/CAとの違いと伝搬時間の計算を確認できる
基本情報のCSMA/CDの仕組み

CSMA/CDを三つの語に分ける
CSMA/CDは、Carrier Sense Multiple Access with Collision Detectionの略です。日本語では「搬送波感知多重アクセス/衝突検出方式」などと呼ばれます。長い名称を丸暗記するより、通信路を使うときの三つの判断に分解すると意味がつかめます。
| 名称 | 意味 | 端末が行うこと |
|---|---|---|
| Carrier Sense | 搬送波感知 | ほかの端末が通信路を使っていないか確認する |
| Multiple Access | 多重アクセス | 複数の端末が同じ通信路を利用する |
| Collision Detection | 衝突検出 | 送信中にほかの送信との衝突を検出する |
ここでいう多重アクセスは、「全端末が同時に好きなだけ送信しても届く」という意味ではありません。複数の端末にアクセスの機会がありますが、共有半二重の通信路では送信が重なると衝突するため、送信を始める前後の制御が必要です。
また、CSMA/CDは端末に固定の送信順を割り当てる方式でもありません。「端末Aが終わったら必ず端末B」という順番は決めず、通信路の状態を見ながら各端末が送信を試みます。このように通信路の使用を競い合う方式は、コンテンション方式として整理できます。
会話に例えるなら、同じ会議でほかの人が話していないか聞いてから発言し、声が重なったらいったん止めて話し直す場面に近いですね。ただし、実際の通信では信号が伝わる時間があるため、遠くの端末の送信開始を即座には知れません。この遅れが衝突を理解する鍵になります。
CSMA/CDが制御するのは、同じ伝送媒体へEthernetフレームを送出する場面です。OSI基本参照モデルではデータリンク層のMACに関係する話として押さえます。物理的な信号を感知するからといって、MACの制御まで物理層だけの仕事と決めつけないようにしましょう。
OSIの各層やハブとスイッチの役割を先に整理したい方は、基本情報のネットワーク分野と機器の役割を確認すると、この方式が通信全体のどこで働くか理解しやすくなります。
空きを確認してから送信する

送信したいフレームがある端末は、まず通信路を調べます。他の送信がある間は自分のフレームの送信を開始せず、送信できる状態になるのを待ちます。空きを確認したら、規定のフレーム間隔などの条件を満たした上で送信を始めます。
試験の説明では「空いていれば送信する」と簡略化されることがありますが、「空きを見つけた瞬間に、規定の待ち時間を一切置かず送る」と読み替える必要はありません。まずは、空きを確認せず送信する方式ではないことを押さえれば十分です。
重要なのは、空きの確認が通信路全体への送信予約にならない点です。端末Aが見ているのは、Aの位置まで届いた信号の状態です。Aが送信を始めても、その信号が端末Bへ届くまでには時間がかかります。Bはその間、通信路が空いていると判断する可能性があります。
例えば、離れたAとBに送信したいフレームがあるとします。Aが空きを確認して送信を開始した直後、Aの信号がまだ届いていないBも空きを確認して送信を開始すると、二つの信号が重なります。両端末が確認を省略したからではなく、伝搬に時間がかかるために起こる衝突です。
そのため、Carrier Senseは衝突の機会を減らしますが、衝突しないことを保証しません。問題文に「通信路が空いていることを確認するので衝突は発生しない」とあれば、後半の断定が誤りです。空き確認と衝突検出を別の段階として読んでください。
伝搬時間とフレームの送信時間も分けて考えましょう。伝搬時間は信号が離れた場所へ到達するまでの時間、送信時間はフレームの全ビットを通信路へ送り出す時間です。通信速度を上げると同じ長さのフレームの送信時間は短くなりますが、それだけで距離に応じた伝搬時間がなくなるわけではありません。
衝突を検出したらジャムを送る
CSMA/CDでは、送信を始めた後も衝突を監視します。送信前の確認で終わりではないことが、名前の最後にあるCDの意味です。衝突を検出した端末は、通常のフレーム送信をそのまま完了させようとせず、ジャム信号による処理へ進みます。
ほかの送信があれば待ち、送信可能な状態か判断します。
送信を開始し、送信中も衝突の有無を監視します。
衝突をほかの参加端末にも認識させるための信号を送り、通常のフレーム送信を中断します。
バックオフで送信開始をずらし、通信路の状態などの条件を確認して同じフレームの送信を試みます。

ジャム信号の目的は、衝突が起きた状態を十分に伝えることです。衝突したデータを正しいデータへ修復する信号でも、相手が正常に受信したと知らせる確認応答でもありません。「ジャムを送ったのでデータが届いた」とは判断できません。
ここは「衝突したら即座にすべての信号を止める」という説明と区別します。正常なフレームを送り続けるのはやめますが、衝突を認識させるためのジャム信号は送ります。細かい信号の長さを問われていない問題なら、「衝突検出→ジャム→待機→再送」の順序を優先して理解しましょう。
再送するのは、衝突によって正常には送れなかったEthernetフレームです。フレームはデータリンク層で扱う単位であり、ここでは宛先までの通信全体を新しくやり直すという意味ではありません。一回の衝突だけで接続先のアプリケーションが必ず切断されるわけでもありません。
この再送をTCPの再送と混同すると、選択肢を読み違えやすくなります。CSMA/CDは共有する媒体で送信中に検出した衝突へ対処します。TCPの再送は、トランスポート層で到達確認などに基づいて失われたデータへ対処する仕組みです。「再送」という単語だけで方式を選ばないことが大切です。
上位の通信制御を学び直すときは、基本情報のTCPとUDPの違いへ進んでください。本記事では媒体アクセスの制御までを中心に扱い、TCPの確認応答や順序制御とは分けて覚えます。
乱数待機が再衝突を減らす
衝突した端末が、毎回すべて同じ時間だけ待ってから再送したらどうなるでしょうか。AとBが同じタイミングで送信をやめ、同じタイミングで再び送信を開始すると、また衝突する可能性があります。この送信開始の重なりを減らすため、各端末は乱数によって待機時間を選びます。
衝突後の再送待ちをバックオフと呼びます。EthernetのCSMA/CDでは、衝突が繰り返されると待機時間を選ぶ範囲を広げる、打切りのある二進指数バックオフを用います。名前が長いですが、「混雑しているときに再送開始をより広い範囲へ分散させる」と考えると役割が分かります。

指数的に広がるのは、選択できる待機時間の範囲です。「同じ端末が実際に待つ時間が、衝突のたびに必ず二倍になる」とは限りません。毎回乱数を選ぶため、前回より短い待機時間が選ばれる場合もあります。衝突回数が増えると、無制限に範囲が広がり続けるわけでもありません。
伝統的なEthernetのバックオフを表す規定では、待機時間はr×slotTimeで、rは0以上2のk乗未満の整数から一様に選ばれます。kは再送の試行段階nと10の小さい方です。n=1ならrは0か1、n=2なら0から3、n=3なら0から7となり、範囲の拡大には上限があります。
| 再送の段階n | k | 乱数rの候補 |
|---|---|---|
| 1 | 1 | 0、1 |
| 2 | 2 | 0、1、2、3 |
| 3 | 3 | 0から7 |
| 10以上 | 10 | 0から1023 |
この数式とジャム後の待機は、IEEEのCSMA/CDバックオフに関する公式解釈に記されています。資料は旧版規格の解釈であり、ここでは共有半二重Ethernetの基本動作を説明する根拠として使っています。
r=0を選べることもポイントです。バックオフの追加待機が0になることと、通信路が使用中でも無条件で送信してよいことは別です。再送時も媒体アクセスの条件を満たす必要があります。試験では「全端末が固定時間待つ」「衝突した端末が常に最優先で送る」といった説明に注意してください。
また、乱数による分散は再衝突の可能性を下げる仕組みです。同じ値を選ぶ可能性は残るため、一回待てば必ず成功するとはいえません。再試行にも打切りがあり、永遠に送り続けて成功を保証する方式ではありません。具体的な制限値が問題に示されたときは、その条件に従って判断します。
共有媒体が混雑すると、衝突した送信と再送待ちに時間を使うため、有効なデータを運べる割合が下がります。回線の公称速度が各端末の実効速度としてそのまま保証されるわけではありません。ただし、端末数だけから実効速度を単純に割り算するのも不十分で、送信量やタイミングなどの条件が必要です。
基本情報のCSMA/CDを問題で判断

共有半二重と全二重を区別する
CSMA/CDの動作を理解したら、「どのEthernetでも衝突検出を行う」と覚えないことが大切です。試験で扱う共有半二重のEthernetでは、複数端末が同じ媒体の使用を競います。一方、ポイントツーポイントで適切に全二重動作するEthernetでは、送信と受信を同時に行え、CSMA/CDを使いません。
| 問題文の通信条件 | 送受信の考え方 | CSMA/CD |
|---|---|---|
| リピータハブで媒体を共有し、半二重で通信 | 同時送信は衝突の原因になる | 使用する |
| 端末とスイッチをポイントツーポイントで接続し、全二重で通信 | 送信と受信を同時に行える | 使用しない |
| スイッチを使うとだけ記載 | 接続機器の名前だけでは動作モードを断定できない | 半二重・全二重などの条件も読む |
半二重は、一つのリンクで送信と受信を同時には行わない動作です。全二重は、両方向の通信を同時に行える動作です。ここで「二重」という言葉はデータを二回送る意味ではなく、両方向の通信の使い方を指します。
リピータハブは受け取った信号をほかのポートへ伝えるため、接続した端末が共有する衝突範囲を形成します。この範囲はコリジョンドメインと呼ばれます。外見が星形の配線でも、リピータハブ経由で信号を共有するなら、端末同士の送信競合を考える必要があります。
スイッチは、リピータハブのようにすべての端末を一つの共有媒体へ接続する装置ではありません。端末とスイッチのリンクを分けて扱えます。そのリンクの両端が全二重で動作していれば、共有半二重でいう衝突の処理は不要です。機器名だけではなく、問題文に明記された動作モードを優先しましょう。
「スイッチに接続した全二重リンクでは、衝突が少なくなるからCSMA/CDを時々使う」という説明も誤りです。全二重ではCSMA/CDを使わない、と明確に分けます。この区別は、CiscoのEthernetの動作説明でも確認できます。
ただし、衝突がないことと通信の失敗が一切ないことは別です。全二重でも、混雑によるキューのあふれや物理的な通信エラーなどでフレームが失われる可能性はあります。「衝突なし→再送もエラーも絶対にない」と話を広げないようにしてください。
CSMA/CAは送信前に衝突を避ける

CSMA/CAのCAはCollision Avoidanceで、衝突回避を意味します。基本情報では、無線LANの媒体アクセスを説明する文脈で登場します。CSMA/CDが送信中に衝突を検出して対処するのに対し、CSMA/CAは送信前の確認や待機などによって、送信が重なる可能性を下げる方向で制御します。
| 比較点 | CSMA/CD | CSMA/CA |
|---|---|---|
| 末尾の意味 | Collision Detection:衝突検出 | Collision Avoidance:衝突回避 |
| 基本情報での代表的な場面 | 共有半二重Ethernet | 無線LAN |
| 中心となる動作 | 送信中に衝突を検出し、ジャムとバックオフで対処 | 送信前の確認やバックオフで競合を減らす |
| 誤って覚えやすい点 | 現在の全二重Ethernetでも使うと思い込む | 衝突を完全になくす方式と思い込む |
無線では、送信中に相手側で起こる衝突を有線Ethernetと同じ方法で確実に検出するのは難しいため、送信前の回避が重要になります。端末同士が直接互いの電波を感知できなくても、同じアクセスポイントへ送信する場合があることも、衝突の可能性が残る理由です。
CSMA/CAにも乱数による待機があります。したがって、「ランダムな時間待つ」という記述だけではCDかCAかを決められません。待つのが送信前の競合を避ける場面か、送信中に検出した衝突へ対処する場面か、という前後の説明を読みます。
CSMA/CAは衝突を避けるための仕組みですが、衝突をゼロにする保証ではありません。複数端末が同じタイミングで送信したり、互いを感知できない端末が送信したりすれば衝突は起こり得ます。CiscoのCSMA/CA教材も、目的を衝突の確率を下げることとして説明しています。
無線LANではACKによる受信確認が利用される場面があります。ただし、ACKが届かなかったことだけから原因を必ず衝突と断定することはできません。通信エラーなどでも正常な確認ができないことがあるため、「衝突の直接検出」と「受信確認が得られないこと」は分けて理解します。
RTS/CTSは、送信に先立って媒体の使用予定を知らせ、隠れ端末による衝突を減らすために使われる仕組みです。CSMA/CAでは毎フレーム必ずRTSとCTSを交換する、とは覚えないでください。利用には条件や設定があり、制御フレームを交換する分の負荷も発生します。
この任意性とACKの役割は、Ciscoの802.11制御フレームの解説で確認できます。試験では、まずCDの検出とCAの回避を押さえ、RTS/CTSの必須固定や衝突ゼロといった過剰な断定を避けましょう。
問題文の条件から選択肢を絞る
方式名の暗記だけで選ぶより、「誰がいつ通信路を使えるか」を読むと、似た選択肢を区別できます。読む順序は、媒体の共有と二重方式、送信前の確認、送信中の衝突検出、衝突後の動作です。前半が合っていても、後半が固定待機や送信権の受渡しになっていれば、CSMA/CDの説明ではありません。

自作問題A:複数端末が共有半二重のEthernetを使っています。端末は通信路が空いていることを確認して送信し、送信中に衝突を検出した場合はジャム信号を送ります。その後の動作として適切なものを選んでください。
- ア:すべての端末が必ず同じ固定時間だけ待ってから再送する
- イ:乱数で決めたバックオフを行い、媒体アクセスの条件を確認して再送を試みる
- ウ:送信権を表すトークンが順番に届くまで待つ
- エ:正常に届いたものとみなし、次のフレームの送信へ進む
正解はイです。乱数による待機は、衝突した端末の再送開始が重なり続ける可能性を減らします。アは同じ時間で再送を同期させやすく、ウはトークンパッシングの説明です。エも、ジャム信号を受信成功の確認として扱っているため誤りです。
トークンパッシングでは、送信権を表すトークンを受け取った端末が送信します。TDMAでは、割り当てられた時間枠を使って送信します。どちらも「空いていれば競って送信し、衝突したら対処する」というCSMA/CDの中心動作とは異なります。
自作問題B:端末とスイッチを接続したEthernetリンクの両端が全二重で動作しています。「両端が同時に送信すると衝突するため、CSMA/CDによる再送待機が必要である」という説明は適切でしょうか。
答えは不適切です。この条件では両方向へ同時に通信でき、CSMA/CDは使いません。「Ethernet」という単語だけを見てCDを選ぶと間違えます。問題文にある全二重の条件が、判断を変える決定的な情報です。
自作問題C:無線LANで、送信前に媒体の利用状況を確認し、待機を使って複数端末の競合を減らす方式は何でしょうか。答えはCSMA/CAです。ここで「乱数待機があるからCSMA/CD」と結論づけず、無線LANと送信前の回避という条件を組み合わせます。
復習では、正解だけでなく「アは固定待機」「ウは送信権の受渡し」のように、誤りを一言で説明してみてください。同じ意味を違う表現で問われても、動作の順序と条件が分かっていれば選択肢を絞れます。出題頻度や必ず出る年度を決めつける必要はありません。
往復伝搬時間とフレーム長を考える
CSMA/CDでは、遠い端末との衝突が戻ってくるまで、送信元がまだ送信中であることが重要です。フレームを短くしすぎて先に送り終わると、送信中の衝突として検出できなくなるおそれがあります。この考え方から、理想化した問題ではフレーム送信時間を最大往復伝搬時間以上にする条件を考えます。

片道の最大伝搬時間をτ、通信速度をRビット/秒、フレーム長をLビットとすれば、送信時間はL÷Rです。伝搬遅延だけを考える単純なモデルなら、L÷R≧2τ、すなわちL≧2τRが必要な条件になります。片道の時間だけで計算せず、往復を考えるところがポイントです。
最も厳しい状況を想像しましょう。Aが送信を開始した信号がBへ届く直前に、Bも送信を開始するとします。Aの信号がBに届くまでの時間に加え、B側で生じた衝突の影響がAまで戻る時間も必要です。Aが送信を続けていなければならない時間を考えるため、片道ではなく往復になります。
自作計算問題:共有半二重の通信路で、最大片道伝搬時間が20μs、通信速度が10Mビット/秒とします。中継装置・衝突検出回路の遅延、ジャム信号、規格固有の余裕やフレーム構成の制約を除き、伝搬時間だけから求めるフレーム長の下限を計算してください。ここではMを10の6乗とします。
| 手順 | 計算 | 結果 |
|---|---|---|
| 往復時間を求める | 20μs×2 | 40μs |
| ビット数を求める | 40×10の−6乗×10×10の6乗 | 400ビット |
| バイトへ換算する | 400÷8 | 50バイト |
このモデルでの下限は400ビット、50バイトです。20μsだけを使って200ビットとすると、衝突の影響が戻る時間を考慮できていません。また、10Mビット/秒を10Mバイト/秒として計算すると8倍の誤りになります。数字の前に、何の時間と何の単位なのかを書き出すとミスを減らせます。
ただし、50バイトがそのまま実際のEthernetで許される最小フレーム長になるわけではありません。この例は伝搬時間だけの理論条件を求める問題です。伝統的なEthernetの基本フレームには64バイトという最小長の規定があり、実際の設計では装置遅延や規格の条件も満たす必要があります。
64バイトはデータ部分だけの長さではなく、通常の基本フレームの宛先アドレスからFCSまでを数える規定です。送信前のプリアンブルやフレーム間隔を、フレーム長へ無条件に加えるものではありません。問われたLの定義や、計算で考慮する範囲を問題文で確認してください。
単純なモデルで速度Rを二倍にすると、同じ伝搬時間に対して必要な送信ビット数も二倍になります。速く送れるほど短いフレームでよい、と直感だけで判断しないことが大切です。実際の規格や方式にその式をそのまま適用できるかは、別に条件を確認する必要があります。
この最小長の理由を説明するときも、共有半二重での衝突検出が前提です。全二重リンクの通信を「必ず2τ以上送信して衝突を検出する」と説明しないようにしましょう。規格上のフレーム形式が残ることと、CSMA/CDを実行することは同じ意味ではありません。
まとめ:基本情報のCSMA/CD
基本情報のCSMA/CDは、空き確認だけでなく、送信中の衝突検出から再送までを一続きで理解すると整理できます。衝突が起きる理由は信号の伝搬に時間がかかることで、確認をした端末同士でも送信開始が重なる可能性があります。
- 共有半二重Ethernetか、全二重リンクかを先に読む
- 空き確認→送信→衝突検出→ジャム→バックオフ→再送をつなげる
- 乱数待機だけでCDとCAを判定せず、検出か回避かを確認する
- 最小フレーム長の計算は往復時間・ビット単位・規格条件を分ける
覚えたら、動作を声に出して説明し、自作問題の誤答を一つずつ直してみましょう。次に、基本情報の過去問アプリで無料演習を行い、問題文の「半二重」「全二重」「衝突検出」「衝突回避」に注目して確認すると、用語と条件を結び付けて復習できます。


コメント