Ethernetの原理


はじめに
 Ethernetは1970年代の終わりにXeroxが開発したLANの方式で、現在もめざましい勢いで普及しつつある。ATMや無線LANなどの新しい方式もあるが、Ethernetは扱いが簡単で機器がとくに安価といったメリットがある。
Ethernetの原理
 ネットワークの下層に位置する接続方法はpoint-to-point方式とbroadcast方式に分けることができる。前者は2点間を接続するもので、最近はダイヤルアップPPPなどでよく使われているほか、WANの構築に利用される。後者はデータを媒介するメディアに複数のインターフェースが接続するもので、EthernetをはじめとするLANの方式のほとんどがbroadcastである。
 Ethernetという名称は、電磁波を伝えるもの(すなわちメディア)として存在が信じられていたエーテル(ether)に由来する。エーテルは19世紀末のMichelson-Morleyの実験により存在しないことが確認され、電磁波は真空中を伝播することがわかった。このあたりが基礎となって、Einsteinの特殊相対性理論が成立した。
 その1世紀後、Xeroxの研究者たちは新しいネットワークのメディアとして現代にエーテルを復活させた。

 broadcast方式の起源はハワイ大学のALOHAネットで、ハワイ諸島間を無線で結んでデータを交換するための方式として研究されていた。複数のインターフェースがどのようにパケットを送れば効率がよいかという観点(これをMedia Access Control、略してMACと呼ぶ)からは、メディアが大気からケーブルに変わっただけで、考え方の基本は同じえある。
 もっとも素朴なpure ALOHAでは、装置から各インターフェースにデータが送られてきたら、ただちにパケットを送出する。すこしネットワークが混んでいるとパケットどうしが衝突する可能性は相当大きいので、ネットワークの利用効率はかなり低いといえる。衝突を回避するにはさまざまな工夫が必要になる。このあたりの基礎理論を調べるのはなかなか楽しいので、皆さんの課題としましょう。
Ethernetの特徴
 Ethernetは、1-persistent CSMA/CD(Carrier Sence Multiple Access with Collision Detection)という方式をとっている。ごく大雑把にみてみると、装置から送出すべきデータがくると、インターフェースはメディアが空いているかを調べる。空いていれば送出し、そうでなければ空くまで待つ。送出中にパケットどうしがぶつかっていることを検出したら、送出をやめて任意の時間だけ待ってから最初に戻って送出を始めるという方式である。
 そのため、Ethernetでは相手に届くまでの時間が保証されていないので、リアルタイム性が要求される用途には限界がある。通信内容に優先度をもたせることもできない。さらに、ネットワークが輻輳してくると効率が急激に低下することはよく知られている。
 ずいぶんいい加減な方式のようだが、そのぶんプロトコルの仕組みが簡単で故障に強いのが特徴である。
 最近では、Ethernet上でできるだけリアルタイム性を維持したり通信に優先度をつけるためのさまざまな方式が研究されている。その1つであるALTQ(Alternate Queueing)という方式をFreeBSDに実装したものがソニーCSLから公開されているhttp://www.csl.sony.co.jp/person/kjc/programs.html
 Ethernetと対照的なLAN方式がIBMのTokenRingである。TokenRingではネットワーク上をtokenと呼ばれる特殊な識別子が回っている。インターフェースは送出すべきパケットを受け取ると、まずこのtokenを獲得してからパケットを送出する。
 TokenRingではパケットの到達時間に上限を設けたり、通信に優先度をもたせたりすることができる。輻輳時にも効率が落ちにくい。たいへん素晴らしい方式なのだが、ちょっとの故障でも破掟しがちである。例えばtokenを握ったままインターフェースが応答しなくなると、LAN全体が機能しなくなってしまう。この種の故障を回避できるように設計されてはいるが、実際には珍しくない。
 EthernetとTokenRingのどちらがすぐれているかという論争がしばしば起こる。方式自体にはどちらにもそれぞれの利点があるようだが、コスト面からはEthernetが間違いなく有利である。
データ伝送の仕組み
 CSMD/CDとは次のような仕組みである。まず、自分が同軸ケーブル上にデータを出すときは、ほかのコンピュータからデータが流されていないか確認をする。
 もし、ほかのコンピュータが同軸ケーブル上にデータを流している場合は、送信が終了するまで待機する。ほかのコンピュータが同軸ケーブルを使用していないことを確認した場合は、データを送信することになる。ただし、このような仕組みでは、複数台のコンピュータが同軸ケーブルを使用していないと同時に判断し、いっせいにデータを流し始める可能性もある。
 そこで、データを同軸ケーブル上に流した場合は、自分が流したものとほかのコンピュータが流したものが衝突(Collision)していないか監視する方式をとっている。もし、衝突が起きた場合は、特別なジャム信号と呼ばれるものを同軸ケーブル上に流し、接続されているすべてのコンピュータに「受信した信号は無効なので破棄するように」と伝えるようになっている。そして、乱数により適当に時間を空けて、だれも使用していない隙間を狙って再度送信し直す。(その他にも、1つのコンピュータが同軸ケーブルを独占しないように、データの最大長を1518bitとし、連続して送信する場合は少なくとも9.6μ秒の間隔を空ける決まりになっている)
Ethernetの規格
 Xeroxの開発したEthernetは、IEEE802.3で規格化された。わずかな違いがあるので厳密には区別される場合もあるが、両方を合わせてEthernetと呼ぶことが多い。ちなみに、TokenRingはIEEE802.5として規格化されている。
 Ethernetには物理的なインターフェースが何種類か定義されている(デバイスドライバではこのインターフェースのことをメディアと呼んでいる)。太くて黄色い同軸ケーブル(2分の1インチサイズの同軸ケーブル)でおなじみの10Base5(1つの最大ケーブル長は500m)や細い同軸ケーブルの10Base2、そして撚り対線による10BaseTのほか、光ファイバーによる10BaseFなどもある。
 たんにEthernetというと10Mbpsのものを指すが、最近はIEEE802.3u で規格化された100MbpsのFastEthernetもかなり普及してきた。カテゴリー5の撚り対線を使う100BaseTXのほか、従来のカテゴリー3のケーブルが利用できる100BaseT4、光ケーブルを利用する100BaseFXがある。
 Fast Ethernetは基本的にEthernetを速くしただけで、パケットの形式などは10MbpsのEthernetと同じである。同様にして、1GbpsのGigabit EthernetもIEEE802.3zで規格化作業が進められている。
 Fast Ethernetと同様にEthernetの高速化を目指す別系統の規格として、IEEE802.12にもとづく100VG(100BaseVG、100VG AnyLAN)もある。EthernetとTokenRingを統合して、到達時間の上限の保証や優先度を設定できるようにしようという野心的な方式である。技術的には優れているのだが、規格化が遅れたことなどからほとんど普及していない。
 Ethernetにおいて個々のインターフェースを識別するには、6byteからなるMACアドレスが使われる。MACアドレスはネットワーク・インターフェースごとに重複しないように付与されている。先頭の3byteはIEEEによりメーカごとに割当てられているので、逆にMACアドレスからメーカを割り出すことができる。
主なベンダー・コード
ベンダー名ベンダー・コード
00:00:0Cシスコ・システム
00:00:1Bノベル
00:00:AAXerox
00:00:4CNEC
00:00:74リコー
00:60:083COM
08:00:07Apple
08:00:09HP
08:00:20Sun Microsystems
08:00:2BDEC
08:00:5AIBM
 主なベンダー・コードはhttp://stdsbbs.ieee.org/products/oui/ouilst.htmlから検索できるようになっている。また、最新データーはftp://ftp.lcs.mit.edu/pub/map/Ethernet-codesからも入手できる。ただし、たいていのEthernetカードではMACアドレスを比較的簡単に変更可能なため、ホスト認証などのセキュリティにかかわる用途には利用できない。
 IEEEは米国電気電子技術者協会と呼ばれるもので、正式名称はThe Institute of Electrical and Electronics Engineers,Inc.という世界で最大の専門技術者組織(公益団体)であり、この組織の名を付けたコンピュータの標準規格などがある。

Ethernetのパケット
 Ethernetのパケット(データフレーム、あるいはたんにフレームと呼ぶこともある)のソフトウェア的なフォーマットを以下に示します。
Ethernet packet Format 7bytes1bytes6bytes6bytes2bytes0〜1,500bytes0〜46bytes4bytes
preambleframe delimiterdestination addresssource addresslength of data fielddatapadchecksum
 伝統的なEthernetでは、IEEE802.3でデータ長になっている部分にプロトコルの種別(TCP/IPやAppleTalk、IPXなど)を表す番号が入る。前者のデータ長は1,500byte以下だが、後者のプロトコル種別は基本的にそれより大きな数字に割り当てられている。したがって両者を区別するのは簡単で、混乱することはない。
 パケットの長さは最低60byteなければならないので、データが46byteより短い場合にはダミーの詰め物を入れる必要がある。これがpadである。
 実際にEthernetを流れる信号には、先頭に7byteのpreambleと1byteのframe delimiter、末尾に4byteのchecksumが付加されている。この部分はハードウェアで自動的に付加・削除されるので、ソフトウェアからは気にする必要がない。
 checksumはパケットの整合性を確認するためのCRC(Cyclic Redundancy Check)値である。受け取ったパケットの内容とchecksumが合わない場合、パケットは破棄される。この部分もハードウェア的に処理される。
壊れたパケット
 さまざまな原因で、Ethernet本来のパケットとは異なる壊れたパケットを受信することがある。パケットどうしの衝突をできるだけ回避する方式とはいっても、とくにネットワークが混んでいる場合にはパケットが壊れたり、寸断されることは避けられない。また、ハードウェアの故障により異常なパケットが送出されることもある。特別な名前がついているものとして、”runt(チビ)”がある、これは60byteに満たない小さなパケットである。こういった断片化は珍しいものではなく、それほど害にはならない。通常、runtは受信してもそのまま破棄される。
 厄介なのは”jabber(わめき屋)”である。切れ目なく連続して続くデータで、パケットの体をなしていない。機器の故障により起こることがあるが、jabberがいるとネットワークの機能が停止してしまう。
Ethernetのケーブルの種類
 基本的なEthernetケーブルとして10BASE5と呼ばれる直径2分の1インチの同軸ケーブルは、重く曲げにくいため敷設に問題があり、最近ではあまり使用されていない。
 それに代わるものとして、直径が小さく(thin-wire)安価な10BASE2が使用される。このタイプは1セグメントの最大長185メートルとなっている。ただし、バス型接続で構成されるため、ケーブルのどこか1か所が損傷しただけで、ネットワーク全体がダウンしてしまうという欠点がある。
 そして現在では、10BASE-Tが広く使用されるようになっている。10BASE-Tには両端にはRJ-45コネクタが接続されたツイストペア・ケーブルが用いられ10Mbpsの伝送を実現している。10BASE-Tはハブと呼ばれる装置を用いスター型に接続するが、ハブの内部では10BASE-5での伝送方式がシュミレートされている。また、ハブからネットワーク・インターフェース・カードまでの最大長は100メートルとなっており、個別にネットワークに接続したり切り離したりできる。加えて、10BASE-2と異なりある1つのノードに障害が発生しても、ネットワーク全体がダウンすることがないといった特徴がある。
ツイストペアー・ケーブルのカテゴリ
カテゴリ用途
CAT1音声のみが送信できるもので、以前の電話システムに用いられたもの
CAT24組のツイストペアで構成され、4Mbpsの伝送速度を有する。
CAT310Mbpsの伝送速度を持つもので、イーサネットやTokenRingなどで最も普及している。
CAT416Mbpsの伝送速度を持ち、イーサネットや16MbpsのTokenRingで使用できる。
CAT5100Mbpsの伝送速度を持ち、Fast EthernetやATMなどの高速ネットワークで使用できる。
参考
ISO Reference Model
アプリケーション層アプリケーション・レベルでの通信プロトコルについての規定
プレゼンテーション層送受信するデータの形式や文字コードなどについての規定
セッション層セッション・レベルでのプロトコルについての規定。
トランスポート層プロセス間通信についての規定。
ネットワーク層ネットワーク上に接続された任意の2ノード間でのデータの転送のプロトコルを規定。(ルーターの範囲)
データ・リンク層データのパケット化の方法と送受信プロトコルに関する規定(ブリッジの範囲)
物理層EthernetやRS232Cなど物理的な媒体の電気的なインターフェースおよび基本的なデータの変調方法などについて規定。(リピータの範囲)

一つ前へ