Carrier Sense Multiple Access with Collision Avoidance
通信のやり方だよ
コリジョン(データ同士の衝突)が発生しないように頑張るよ
常に一定の待ち時間を入れるよ
「CSMA/CA」と表現されるのが一般的だよ
簡単に書くよ
Carrier Sense Multiple Access with Collision Avoidance(読:キャリア・センス・マルチプル・アクセス・ウィズ・コリジョン・アボイダンス)とは
いわゆる「CSMA/CA」のこと。
用語の中身としては
通信のやり方のひとつで「交通事故が起きないように頑張るよ」方式のこと
です。
もう少し具体的に書くと
「通信状況を確認して、空いていたら送りますよ。誰かが使っていたら終わるまで待ちますよ。データ同士の衝突(コリジョン)が発生する可能性を低くするために、送り始める前に適当な長さの待ち時間を入れますよ」な通信方式のこと
です。
詳しく書くよ
最初に留意事項です。
「CSMA/CA」と言われて「あぁ、アレのことね」と分かる方は最後まで読む必要ありません。
CSMA/CAの正式名称(?)が「Carrier Sense Multiple Access with Collision Avoidance」です。
「Carrier Sense Multiple Access with Collision Avoidance」の頭文字を取ったのが「CSMA/CA」ね。
※「Carrier Sense Multiple Access with Collision Avoidance」を何となく日本語にすると「うんちゃらかんちゃら接続 with 衝突を回避」となります。[詳細]
以上が「CSMA/CA」の意味を知っている人向けの説明です。
「CSMA/CAって何?美味しいの?」な人は、このまま読み進めてください。
用語の中身について説明します。

それでは、いってみましょう。
まずは予備知識として「コリジョン」と「半二重通信」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
コリジョンは「通信途中のデータ同士がぶつかっちゃうこと」です。
ネットワーク上の交通事故だとお考えください。
この交通事故は「半二重通信」という通信の環境において発生する場合があります。
半二重通信は「送ってるときは受け取れないよ。受け取ってるときは送れないよ」な通信方式です。
トランシーバーでのやり取りや幅の狭い道路を使った移動みたいなものですね。
出すのと入れるのを同時にはできないやり方です。
半二重通信において、運悪く受け取るのと送るのが同じタイミングで発生すると、交通事故が発生します。
データ同士がぶつかってしまうのです。
この交通事故がコリジョンです。
以上を踏まえて
半二重通信における交通事故(コリジョン)に対応する仕組みのひとつ
が「Carrier Sense Multiple Access with Collision Avoidance」です。
上でも書きましたが、一般的には「CSMA/CA」と表現されます。
※本ページでも以降は「CSMA/CA」と表現します。
CSMA/CAは「交通事故が起こっても分からないので、最初から起こらないように気を付けますよ」の考えに基づいたやり方です。
通信をしたいときは、まず道路の空き状況は確認します。
すでに誰かが使っていたら、その人が終わるのを待ちます。
前に使っている人が終わって道路が空いたら送ります。
ただし、自分と同じように待っている人がいるかもしれません。
2人以上の人が「あっ、前の人が終わった。よし、送ろう」と思ったら、ぶつかっちゃいますよね。
そこで念の為に、前の人が送り終わってすぐには送りません。
道路が空いても、少しだけぼーっとする時間を取ります。
ぼーっとする時間の長さは適当です。
例えば1秒とか時間を決めてしまうと、相手も同じ時間だけ待って同じタイミングで送りかねないですからね。
「適当な時間」待つことで「あっ、前の人が終わったな。よし!次は自分が送ろう」と思った人たちの足並みをズラせるのです。
このズレが大事です。
送り始めようとするタイミングがズレることで「あれ?送ろうと思ったら他の人が送ってるじゃん」と気付けます。
交通事故の可能性が減るのです。
これがCSMA/CAの仕組みです。
「ぶつかっても分からないから、できるだけぶつからないように気を付けて送ろうぜ~」方式です。
ちなみに、CSMA/CAのやり方でも交通事故が起こる可能性はあります。
ですが、送った方は交通事故が起こったことを知ることはできません。
それでは、どうするか?
データを受け取った方がお返事を出すのです。
データを受け取った方は「無事に届いたよ~」というお返事(ACK)を送った方に返します。
このお返事が来れば「あぁ、無事に届いたんだな」と分かりますよね。
お返事が来なければ「交通事故が起こったのかな?」と考えます。
そして交通事故が起こったっぽいときは、時間をおいて送り直すのです。
これがCSMA/CAにおける交通事故が起きたかどうかを判断する仕組みです。
お返事の有無で相手に届いたか(交通事故が起こらなかったか)を判断します。
せっかくなので、もう少し実際のネットワークに近い形でも見てみましょう。
CSMA/CAは主に無線LANで使われる仕組みなので、無線LANを例に説明します。
無線LANの通信において、無線LANアクセスポイント(パソコンさんから飛んできた無線LANの電波を受け取る機械)は、2台以上のパソコンさんを1人で相手する場合があります。
ですが、実は無線LANアクセスポイントさんが一度に相手できるのは1人です。
2人以上を「同時に」相手をすることはできません。
そこでコンピュータさんたちは、無線LANアクセスポイントさんに対して実際に通信する前に「ねぇねぇ、今は暇?通信しても大丈夫?」と確認を取ります。
大丈夫であれば、次のステップに進みます。
取込中であれば、終わるまで待ちます。
おっと、前の人の通信が終わって無線LANアクセスポイントは暇になったようです。
じゃあ、次は自分の番!……と、みんなが考えますよね、きっと。
そうすると、みんながまとめて押しかけるので、交通事故が発生しちゃいます。
これを避けるために「じゃあ、次は自分の番!」と思ったら、少しの間、ぼーっと待たなくてはいけない決まりがあるのです。
ぼーっと待つ時間は適当です。
これによって、みんなが一度に押し掛ける可能性が減ります。
ぼーっと待つ時間が終わってはじめて、無線LANアクセスポイントさんに対して「じゃあ次は俺の番ね!」と言えるのです。
「じゃあ次は俺の番ね!」と言えたコンピュータさんはデータを送ります。
無事に届いた場合は「無事に届いたよー」というお返事(ACK)がきます。
「無事に届いたよー」というお返事が来ない場合は、無事に届いていません。
きっと交通事故が起こったのです。
そう判断して、もう一度送り直します。
これがCSMA/CAの仕組みです。
1.空いてるかを確認
2.ちょっと待つ
3.送る
の流れになります。
ちなみに、CSMA/CAと似て非なるやり方に「CSMA/CD(Carrier Sense Multiple Access with Collision Detection)」というやり方があります。
「CSMA/CD」は「衝突したら何とかするよ方式」です。
余裕があれば、併せて覚えてあげてください。
一言でまとめるよ
まぁ「Carrier Sense Multiple Access with Collision Avoidance」って単語が出てきたら「CSMA/CA
(衝突しないように何とかするよ方式)のことなんだな~」と お考えください。
おまけ
■訳してみるよ
「carrier(キャリア)」の意味は「運ぶ人」とか「運搬車」とか「通信事業者」とかです。
「sense(センス)」の意味は「感覚」とか「知覚」とか「センス」とかです。
「multiple(マルチプル)」の意味は「多数の」とか「複合の」とか「多種多様な」とかです。
「access(アクセス)」の意味は「接近」とか「接続」とか「出入り」とかです。
「with(ウィズ)」の意味は「~と(一緒に)」とかです。
「collision(コリジョン)」の意味は「衝突」とかです。
「avoidance(アボイダンス)」の意味は「回避」とかです。
何となく くっつけると
運ぶ人の感覚の多数の接続 with 衝突を回避
となります。
……よく分かりませんね。






