Carrier Sense Multiple Access with Collision Detection
通信のやり方だよ
コリジョン(データ同士の衝突)が発生してから考えるよ
コリジョンが発生したら、待ち時間を入れるよ
「CSMA/CD」と表現されるのが一般的だよ
簡単に書くよ
Carrier Sense Multiple Access with Collision Detection(読:キャリア・センス・マルチプル・アクセス・ウィズ・コリジョン・ディテクション)とは
いわゆる「CSMA/CD」のこと。
用語の中身としては
通信のやり方のひとつで「交通事故が起きたら何とかするよ」方式のこと
です。
もう少し具体的に書くと
「通信状況を監視していて、線が空いていたら通信しますよ。運悪くデータ同士の衝突(コリジョン)が発生したら、一旦送るのを止めて、時間を空けて送り直しますよ」な通信方式のこと
です。
詳しく書くよ
最初に留意事項です。
「CSMA/CD」と言われて「あぁ、アレのことね」と分かる方は最後まで読む必要ありません。
CSMA/CDの正式名称(?)が「Carrier Sense Multiple Access with Collision Detection」です。
「Carrier Sense Multiple Access with Collision Detection」の頭文字を取ったのが「CSMA/CD」ね。
※「Carrier Sense Multiple Access with Collision Detection」を何となく日本語にすると「うんちゃらかんちゃら接続 with 衝突を検出」となります。[詳細]
以上が「CSMA/CD」の意味を知っている人向けの説明です。
「CSMA/CDって何?美味しいの?」な人は、このまま読み進めてください。
用語の中身について説明します。

それでは、いってみましょう。
まずは予備知識として「コリジョン」と「半二重通信」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
コリジョンは「通信途中のデータ同士がぶつかっちゃうこと」です。
ネットワーク上の交通事故だとお考えください。
この交通事故は「半二重通信」という通信の環境において発生する場合があります。
半二重通信は「送ってるときは受け取れないよ。受け取ってるときは送れないよ」な通信方式です。
トランシーバーでのやり取りや幅の狭い道路を使った移動みたいなものですね。
出すのと入れるのを同時にはできないやり方です。
半二重通信において運悪く受け取るのと送るのが同じタイミングで発生すると、交通事故が発生します。
データ同士がぶつかってしまうのです。
この交通事故がコリジョンです。
以上を踏まえて
半二重通信における交通事故(コリジョン)に対応する仕組みのひとつ
が「Carrier Sense Multiple Access with Collision Detection」です。
上でも書きましたが、一般的には「CSMA/CD」と表現されます。
※本ページでも以降は「CSMA/CD」と表現します。
CSMA/CDは「交通事故には一応気を付けるけど、起こったら仕方ないね。起こったときに対処しようか」の考えに基づいたやり方です。
交通事故は起こらないに越したことはないので、一応、道路の空き状況は監視しています。
そして道路が空いていたらサッと送る……のですが、世の中には同じことを考える人がいるかもしれません。
タイミングが合うと交通事故が発生します。
交通事故が起こったら、それはそれで仕方がありません。
気付いたやつが「交通事故が発生しました~!」と、みんなに聞こえるように大きな声で騒ぎます。
交通事故が発生したということは、データが ちゃんと届いていないということです。
ですから、もう一度送り直します。
ただし交通事故には相手がいます。
すぐに送り直したら、また同じ相手が送ったデータとぶつかっちゃうかもしれません。
そこで交通事故発生のお知らせを受けると、送り直す前に適当に時間を潰します。
どれくらい時間を潰すかは決まっていません。
例えば1秒とか時間を決めてしまうと、相手も同じだけ待ってまた同じタイミングで送りかねないですからね。
相手とタイミングがズレることを期待して「適当な時間」待つのです。
適当な時間が経ったら、交通事故にあったであろうデータをまた送ります。
これがCSMA/CDの仕組みです。
「取りあえず適当に送っちゃえ~。ぶつかったら仕方ないや~。ぶつかったときに考えようぜ~」方式です。
せっかくなので、もう少し実際のネットワークに近い形で見てみましょう。
「リピーターハブ」という機器が出てくるネットワークにおいて、CSMA/CDの仕組みを見てみます。
リピーターハブさんは、受け取った信号を全部のコンピュータに「宛先になっているコンピュータさん以外は無視してね~」と言いながら送る機器です。
このリピーターハブさんに同時に2つのコンピュータからデータ送られてくると、リピーターハブさんは混乱してしまいます。
リピーターハブさんの内部で交通事故が発生してしまうのです。
交通事故が発生した(交通事故の発生を知った)リピーターハブさんは、みんなに対して「交通事故が発生しました~!」なお知らせを出します。
このお知らせは「ジャム信号」と呼ばれています。
「交通事故が発生しました~!」なお知らせを受けたコンピュータさんたちはドキドキします。
そのときにデータを送っていなかった奴らは「あー、交通事故発生かー。大変だねー」程度でしょう。
まさにそのときデータを送っていたコンピュータさんにとっては、他人事では ありません。
交通事故にあったデータは、おそらく壊れちゃいました。
そのデータを送っていたコンピュータさんは再度送り直さなくてはいけません。
ですが、すぐに送り直すと、また同じ相手とぶつかってしまうかもしれません。
そこで、適当に時間をおいてから送り直します。
このようなやり方がCSMA/CDです。
補足として、今回のお話ではリピーターハブさんだけが「交通事故が発生しました~!」なお知らせ(ジャム信号)を出しました。
実際の仕組みは、もう少し複雑です。
リピーターハブさんに限らず「あっ、交通事故が発生したんだな」と気づいたやつは、とりあえず「交通事故が発生しました~!」なお知らせを出します。
また何をもって「交通事故が発生した」と判断するかですが、これも長くなるので触れません。
詳細は専門的に解説しているところで情報を補完してください。
あと、ついでなので書いておくと、CSMA/CDと似て非なるやり方に「CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)」というやり方があります。
「CSMA/CA」は「衝突しないように頑張るよ方式」です。
余裕があれば、併せて覚えてあげてください。
一言でまとめるよ
まぁ「Carrier Sense Multiple Access with Collision Detection」って単語が出てきたら「CSMA/CD
(衝突したら何とかするよ方式)のことなんだな~」と お考えください。
おまけ
■訳してみるよ
「carrier(キャリア)」の意味は「運ぶ人」とか「運搬車」とか「通信事業者」とかです。
「sense(センス)」の意味は「感覚」とか「知覚」とか「センス」とかです。
「multiple(マルチプル)」の意味は「多数の」とか「複合の」とか「多種多様な」とかです。
「access(アクセス)」の意味は「接近」とか「接続」とか「出入り」とかです。
「with(ウィズ)」の意味は「~と(一緒に)」とかです。
「collision(コリジョン)」の意味は「衝突」とかです。
「detection(ディテクション)」の意味は「看破」とか「探知」とか「検出」とかです。
何となく くっつけると
運ぶ人の感覚の多数の接続 with 衝突を検出
となります。
……よく分かりませんね。






