[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

CSMA/CA

pointこの用語のポイント

point通信のやり方だよ

pointコリジョン(データ同士の衝突)が発生しないように頑張るよ

point常に一定の待ち時間を入れるよ

スポンサーリンク

簡単に書くよ

CSMA/CAとは

通信のやり方のひとつで「交通事故が起きないように頑張るよ」方式のこと。
もう少し真面目に書くと

通信状況を確認して、空いていたら送りますよ、誰かが使っていたら終わるまで待ちますよ、コリジョン(データ同士の衝突)が発生する可能性を低くするために、送り始める前に適当な長さの待ち時間を入れますよ、な通信方式のこと
です。

image piyo

詳しく書くよ

まずは予備知識から行きましょう。

通信途中のデータ同士がぶつかっちゃうことを「コリジョン」と言います。
ネットワーク上の交通事故だとお考えください。

CSMA/CA

この交通事故は「半二重通信」という通信の環境において発生する場合があります。
半二重通信は「送ってるときは受け取れないよ、受け取ってるときは送れないよ通信方式」です。
トランシーバーや幅の狭い道路のように、出すのと入れるのを同時にはできないやり方です。

CSMA/CA2

半二重通信において、運悪く受け取るのと送るのが同じタイミングで発生すると、交通事故が発生します。
データ同士がぶつかってしまうのです。

CSMA/CA3

この半二重通信における、交通事故に対応する仕組み(のひとつ)が「CSMA/CA」です。
Carrier Sense Multiple Access with Collision Avoidance(キャリア・センス・マルチプル・アクセス・ウィズ・コリジョン・アボイダンス)」の頭文字を取ってCSMA/CAね。
ただし、おそらく暗記している人は、ほとんどいません。
別に覚えなくても良いです。

CSMA/CAは「交通事故が起こっても分からないので、最初から起こらないように気を付けますよ」の考えに基づいたやり方です。

通信をしたいときは、まず道路の空き状況は確認します。

CSMA/CA4

既に誰かが使っていたら、その人が終わるのを待ちます。

CSMA/CA5

前に使っている人が終わって道路が空いたら送ります。

CSMA/CA6

ただし、自分と同じように待っている人がいるかもしれません。
二人以上の人が「あっ、前の人が終わった。よし、送ろう」と思ったら、ぶつかっちゃいますよね。

CSMA/CA7

そこで念の為に、前の人が送り終わってすぐには送りません。
道路が空いても、少しだけぼーっとする時間を取ります。

CSMA/CA8

ぼーっとする時間の長さは適当です。
この適当な長さのぼーっとする時間を入れることで「あっ、前の人が終わったな。よし!次は自分が送ろう」と思った人たちの足並みをズラすことができるのです。

このズレが大事です。

送り始めようとするタイミングがズレることで「あれ?送ろうと思ったら他の人が送ってるじゃん」と気づくことができます。
交通事故の可能性が減るのです。

CSMA/CA9

これがCSMA/CAの仕組みです。
「ぶつかっても分からないから、できるだけぶつからないように気を付けて送ろうぜ~」方式です。

ちなみに、CSMA/CAのやり方でも交通事故が起こる可能性はあります。
ですが、送った方は交通事故が起こったことを知ることはできません。

それではどうするか?

受け取った方がお返事を出すのです。
データを受け取った方は「無事に届いたよ~」というお返事(ACK)を送った方に返します。

CSMA/CA10

このお返事が来れば「あぁ、無事届いたんだな」と分かりますよね。
お返事が来なければ交通事故が起こったのかなーと考えます。
そして交通事故が起こったっぽいときは、時間をおいて送り直すのです。

これがCSMA/CAにおける交通事故が起きたかどうかを判断する仕組みです。

せっかくなので、もう少し実際のネットワークに近い形でも見てみましょう。
CSMA/CAは主に無線LANで使われる仕組みなので、無線LANを例に説明します。

CSMA/CA11

無線LANの通信において、無線LANアクセスポイントパソコンさんから飛んできた無線LANの電波を受け取る機械)は、2台以上のパソコンさんを一人で相手する場合があります。
ですが、実は無線LANアクセスポイントさんが一度に相手できるのは一人です。二人以上「同時に」相手をすることはできません。

CSMA/CA12

そこでコンピュータさんたちは無線LANアクセスポイントさんに対して、実際に通信する前に「ねぇねぇ、今は暇?通信しても大丈夫?」と確認を取ります。

CSMA/CA13

大丈夫であれば、次のステップに進みます。
取込中であれば、終わるまで待ちます。

CSMA/CA14

おっと、前の人の通信が終わって無線LANアクセスポイントは暇になったようです。
じゃあ、次は自分の番!……と皆が考えますよね、きっと。

そうすると皆がまとめて押しかけるので、交通事故が発生しちゃいます。

CSMA/CA15

これを避けるために「じゃあ、次は自分の番!」と思ったら、少しの間、ぼーっと待たなくてはいけない決まりがあるのです。

CSMA/CA16

ぼーっと待つ時間は適当です。
これによって、皆が一度に押し掛ける可能性が減ります。
ぼーっと待つ時間が終わってはじめて、無線LANアクセスポイントさんに対して「じゃあ次は俺の番ね!」と言えるのです。

CSMA/CA17

「じゃあ次は俺の番ね!」と言えたコンピュータさんはデータを送ります。

CSMA/CA18

無事に届いた場合は「無事に届いたよー」というお返事(ACK)がきます。

CSMA/CA19

「無事に届いたよー」というお返事が来ない場合は、無事に届いていません。きっと交通事故が起こったのです。
そう判断して、もう一度送り直します。

CSMA/CA20

これがCSMA/CAの仕組みです。

1.空いてるかを確認
2.ちょっと待つ
3.送る


の流れになります。

ちなみに、CSMA/CAと似て非なるやり方に「CSMA/CD」というやり方があります。
「CSMA/CD」は「衝突したら何とかするよ方式」です。
余裕があれば、併せて覚えてあげてください。

image piyo2

一言でまとめるよ

まぁ「CSMA/CA」って単語が出てきたら「衝突しないように何とかするよ方式なんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク