Tech Sketch Bucket of Technical Chips by TIS Inc.

イーサネットはCSMA/CD方式? 〜 IEEE 802.3小ネタ(2)

Pocket

banner-ieee8023topics.png

技術標準規格ってお堅いものの代表ですが,そんなお堅い標準規格のひとつ,イーサネットの標準規格を定めているIEEE 802.3を,ちょっとマニアックな視点からイジってみようかと思ってます。

2回目は,基本に立ち返ってCSMA/CDから。でも,これって本当に基本なんでしょうかね?


■イーサネットはCSMA/CD方式なのか?

書店2(320x310).jpg

〔写真〕ネットワーク技術の入門書籍だけでもたくさん出版されています。良い本とそうでない本を見極めるのはたいへんですね。それができるなら入門書は要らないでしょうから。(※ちなみに私が「マズイですよ」と書いた本はこの中にはありません)。

昔々,イーサネットがIT業界で使われはじめた頃,ITエンジニア達は"CSMA/CD"とかいう面倒な呪文を理解しようとしました。"送信したフレームが運わるく衝突したらランダムな待ち時間をおいて云々〜"と,決定論的な制御では無いことがソフトウェアエンジニアの脳みそにはいまひとつしっくり来なかった覚えがあります。でも,これが理解できないとイーサネットという新時代の画期的な瞬間移動の技が使えずに生き残れないような,そんな恐怖を感じておりました。
そして,時代は変わり21世紀...

最近でも,ネットワーク技術を最初に勉強するときの教科書などで,CSMA/CDの説明って出てくるのでしょうか。説明はされるにせよどんな扱いをされているんでしょうか。ちょっと前から気にはなっていたので,今回のコラムを書くに際して,新入社員向けの教科書に使いそうな本をいくつか見てみました。私が見た本ではどれも,昔と変わらず"LAN→イーサネット→CSMA/CD"を自然な流れで解説しています。この解説の流れ自体を悪者にするつもりはありません。けれど...
イーサネットではアクセス制御方式としてCDMA/CDを使っています」という記述は間違いとは言えないけど,でもちょっと困ったな。「CSMA/CDのイーサネットは企業などでよく使われています」と書いている本もありましたが,ここまで来るとかなりマズイですよ。


■CSMA/CD,コリジョン,半二重通信

CSMA/CDの「CD」は"コリジョン(衝突)回避"ですが,そもそもコリジョン(送出フレームの衝突)が発生するのは,同軸ケーブルの様に同じ媒体を共有して,かつ,交通整理役がいないところで皆が送信しようとするからです。今,みなさんが使っているイーサネットは,ツイストペア線(撚(よ)り対線; UTPまたはSTP; 普通はUTP)でPCやサーバなどのマシン1台ごとにケーブルを1本引っ張っていて共有していませんよね。
それに,CSMA/CD方式だと同じ導線の上で受信も送信もするので,送信と受信を同時にはできずに半二重通信しかできません。けれど,今のイーサネットはほとんど全二重で使っていませんか?オートネゴシエーションなのでほとんど意識しないかもしれませんが,ifconfigとかで見てみれば,だいたいの場合は「Full Duplex」と記されているはずです。もしCSMA/CDだったら全二重通信はできません。

screenshot-ifconfig.png

私が普段使っているパソコン(MacOSX)での表示。

じゃあ,今のデジタルネットワークではどこでもコリジョンは発生しないのかというと,無線通信では起こりますね。無線は物理空間という同じ媒体を共有して通信しているからです。でもこれはCSMA/CDではありません。コリジョンを検出できないのでCDじゃなくて,CSMA/CA方式ですね。CSMA/CAは現役バリバリなので聞いたことがあるでしょう。


■出番のないCSMA/CD

つまり,今ではCSMA/CDに出番はありません。言い切ってしまっていますが,規格の上では残っているので,どこかでイエローケーブルを引き回して,ひっそりと使われているかもしれません。けれど,故障しても代替機材や部品を手に入れるのはかなり難しくなっていると思います。ちなみに,CSMA/CDが昔話あつかいされている状況では"イエローケーブル"はもっと意味不明かもしれません。これは10BASE-5用の同軸ケーブルのことです。このコラム記事の冒頭のバナーに黄色いUTPケーブルを描いていますが,単にいたずら心で黄色いケーブルを使ってみましたが,これはいわゆる"イエローケーブル"とは違います。


■それでもCSMA/CDを教えますか?

少々乱暴かもしれませんが,ITの初学者に対して最初にCSMA/CDは教えなくて良いんじゃないでしょうか。教える意義を余り感じません。CSMA/CDを持ち出すとややこしいので持ち出さないで,今の全二重通信のイーサネットを教えた方がいいと思います。しかし,まぁ,ネットワーク技術のスペシャリストになるなら,CSMA/CDとCSMA/CAの違いや,さらに昔話ですがトークンリング/トークンバスなども知っておくべき知識でしょう。でも,最初に勉強することではないと思います。

さて,CSMA/CDは規格には残っていると書きましたが,その規格はご存知 IEEE 802.3 です。正確には「IEEE Std 802.3 (-年号)」と書くのが正しいようですが(本当かな?ちょっと自信ありません),面倒なので IEEE 802.3 と書きます。
この IEEE 802.3 のタイトルですが,2008年度版では『Carrier sense multiple access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications』(CSMA/CDアクセス方式と物理層仕様)と,なんとも長ったらしいタイトルです。つまり,規格のタイトルからして"CSMA/CD推し"なのです。たしかなことは存じませんが,おそらくは,また別のIEEE 802規格のあるトークンパッシング方式(トークンリングやトークンバス)とか他のLANの方式と並べたときに,「CSMA/CD」と書いて示すのが一番わかりやすかったのでしょう。それに『IEEEは"イーサネット(Ethernet)"という名称の使用をなるべく避けていた』と言われていましたので,それも理由の一部になっているのかもしれません。(ここではちょっとズルをして,IEEE802.3の2008年版を取り上げています。このズルの意味は次回か次々回にたぶん書きます)。

今は影の薄いCSMA/CDですが,10BASE-Tの頃はまだまだ健在でした。スイッチングハブが低価格になり,100M(ファーストイーサネット)が登場し,1G(ギガビットイーサネット)になり,規格上は残っていましたが出番はほとんど無くなってきました。そんな出番のない役者に引導を渡したのが10ギガイーサネット規格です。IEEE 802.3 の10ギガイーサネット規格からは,CSMA/CDを廃してしまいました。まぁ,それ自体は当然の成り行きだと思います。

冒頭で書いた,ある本で書かれていた「CSMA/CDのイーサネットは企業などでよく使われています」は,前世紀の話です。21世紀にこんな話をしたら笑われます。


■今回の小ネタ

CSMA/CDはもうほとんど使われていない。

市販されている本を見て感じたことは,今でもCSMA/CDが基本的知識のひとつとして扱われているらしいと言うことです。「なんだ?CSMA/CDも知らんのかよ」という言葉を耳にしたら,「じゃあ,どこで使ってるんだよ?」と切り返してみたらいいと思います。使っているところはまず見つからないでしょう。受験対策本みたいなもので真面目にお勉強をした人にはちょっと残念な話でしょうか。


さて,今回のこのコラムですが,書いておいてなんですが,話ネタとしては今ひとつですね。ネットワーク技術者にとっては常識でしょう(常識になっていると信じたいです)。逆にネットワーク技術者以外ではCSMA/CDが使われているかいないかは知ったことではないでしょう。だって,イーサネットを使う上ではなんにも影響が無いんですから。でも,ごめんなさい。このコラムは,たぶん,次回以降もこういう役に立たない話しか出てきません。

エンジニア採用中!私たちと一緒に働いてみませんか?