連載
» 2016年11月16日 05時00分 UPDATE

Tech Basics/Keyword:イーサネット (1/2)

無線LAN全盛とはいえ、オフィスでは有線ネットワークの「イーサネット」がまだまだ多用されている。その種類や速度、動作原理は? 40年以上の歴史を振り返りつつ解説。

[打越浩幸,デジタルアドバンテージ]
「Tech Basics/Keyword」のインデックス

連載目次

 「イーサネット(Ethernet)」は、米Xerox社のPalo Alto Research Center(PARC)のRobert M. Metcalfe博士によって1970年代に開発されたネットワークシステム。Ethernetという名称は、19世紀に、電磁波や光を伝播させる(伝える)仮想的な物質と考えられていた「Ether(エーテル)」と「Network(ネットワーク)」を合わせた造語である。

 現在広く普及しているイーサネットは、1983年に「IEEE 802.3 CSMA/CD」として制定されたものが基となっている(IEEE 802.3は、イーサネットの規格を制定するIEEEの作業部会)。その後、通信速度を10Mbit/sから100Mbit/s、1Gbit/s、10Gbit/s、……と高速化したものや、ツイストペアケーブルや光ファイバーなどを伝送媒体に使用した規格などが作られ、発展を続けている。

イーサネットのトポロジー:バス型とスター型

 開発当初のイーサネットはバス型のアーキテクチャを採用していた。これは1本のバス(同軸ケーブル)に複数のノード(コンピュータ)が接続されている形式のネットワークである。

バス型とスター型のネットワークトポロジー バス型とスター型のネットワークトポロジー
最初のイーサネットはバス型であったが、現在ではハブ(スイッチ)を中心としたスター型が主流である。バス型では、送信できるノードはどれか1台だけで、2台以上が同時に送信を開始するとデータが衝突して失敗してしまう。スイッチを使った現在のイーサネットでは、スイッチとノードが1対1で接続されていて、複数のノードが同時に送信を行っても衝突することはない。

 当初制定された10BASE5という規格では、最長500mの同軸ケーブルを5本までリピーター(中継器)で連結して、最大長2.5kmまでのネットワークを構築することができた。ネットワークに接続されたコンピュータは、後述のCSMA/CDというアクセス制御方式を使ってデータを送信する。

 だが同軸ケーブルを用いる方式は設置や取り扱いが容易ではなかったため、広く普及するには至らなかった。その後ツイストペアケーブルや光ファイバーケーブルと「ハブ」「スイッチ」を使うスター型のネットワーク方式が開発され、急速に普及が進んだ。

イーサネットのフレーム構造

 イーサネットでは、各ノードが送信するパケットの構造は次のようになっている。

イーサネットのフレーム構造 イーサネットのフレーム構造
イーサネットでは1パケットで46〜1500bytesのデータを送信できる(送信するデータが46bytes未満の場合は、何らかのダミーデータを埋めて送信する)。
・宛先アドレス:送信先を表す6bytesのMACアドレス
・送信元アドレス:送信元コンピュータのMACアドレス
・タイプ:プロトコルのタイプ、もしくはデータ長
・VLANタグ:VLAN(仮想ネットワーク)のタグを表す値
・FCS:エラーチェック用のCRCコード
・キャリアエクステンション:ギガビットイーサネット(1000BASE-x)において、最小フレームサイズを512bytesに拡大するためのダミーデータ

 一度に送信できるデータは最小46bytes、最大1500bytesである。なぜ最小サイズが1byteではなく46bytesかというと、CSMA/CD方式における衝突検出を確実に行うためだ。

イーサネットのアクセス制御方式:CSMA/CD

 当初のイーサネットでは、1本の同軸ケーブルに多数のコンピュータが接続されているが、それらを中央集権的に管理する機能は用意されていない。代わりに各コンピュータは「CSMA/CD(Carrier Sense Multiple Access with Collision Detection)」というアクセス制御方式を使って、送信権の確保とデータの送信などを行っている。

 これは、ケーブルが空いているかどうかを見て、空いていれば送信を始めるが、途中で衝突が起こったらしばらく待ってから再送信する、という方法である。詳細は次の通り。

  1. バスが使用中かどうかをまず確認する(Carrier Sense、バスに電気信号が流れているかどうかで判断する)
  2. 空いていれば各コンピュータがそれぞれ自由に送信を始める(Multiple Access)
  3. 送信中のケーブル上の電気信号を監視しつつ、送信する。送信中に他のコンピュータが送信を始めると電気信号が衝突し、ケーブル上の信号が乱れる。これを検出する
  4. 送信途中で衝突を検出したら(Collision Detection)、しばらく待ってから再送信する(最大16回試行する)

 信号の伝わる速度は有限なので(同軸ケーブルなら光速の約6割)、2台のコンピュータがケーブルの空きを検出してから送信を始めたとしても、途中で必ず信号が衝突することになる。その場合はお互いにランダムな時間待ってから再送信する。

 受信側は常にケーブル上の信号をモニタしており、宛先アドレスが自分宛になっているパケットが流れてきたら、それを取り込んで上位プロトコルへ渡す、という動作をする。

 このように非常にシンプルな仕組みであるが、利用率が低い間(例えば平均パケット長が64bytesなら、おおむね3割以下)ならば衝突の発生頻度も少なく、効率的に利用できるとされている。

 同軸ケーブル上に信号を送信できるのはただ1台だけであり、同時に2台が送信と受信を行う、といったことはできない。送受信したい場合は、必ず時間差で分けて利用する必要がある。このような通信方式を半二重方式という。

 これに対して、現在のハブ(スイッチ)とツイストペアケーブル/光ファイバーを使った通信では、スイッチとコンピュータ間はポイント・ツー・ポイントの全二重通信となっている。

コリジョンドメイン

 CSMA/CD方式が有効に機能するためには、衝突の発生を確実に検出する必要がある。そのために決められているのが、伝送速度とケーブルの最大長、パケットの最小サイズの関係である。10BASE5のケーブル長は最大2.5kmであり、その一端から送信した信号が反対側まで行ってから衝突して戻ってくるまでの時間と電子回路での遅延などを合わせると、50μ秒程度かかる(1μ秒=100万分の1秒)。ここから最小パケットサイズとして64bytes(512bit)が決められた。これより小さいと、位置関係によっては衝突する前に相手に届いてしまうことになり、衝突を検出できなくなる。ケーブル上のどこかで衝突が発生した場合、必ず全ノードにまで伝わるように、最小サイズが決められている。

 この衝突が伝わる範囲を「コリジョンドメイン」という。

送信パケットの衝突とコリジョンドメイン 送信パケットの衝突とコリジョンドメイン
ケーブルが未使用であることを確認してから送信を開始しても((1))、同時に送信を始めるとどこかで信号が衝突((2))する。送信元のノードは送信した信号を監視しており、衝突によって壊れた信号を受け取ると((3))、ランダムな時間待ってから再送する。
衝突の伝わる範囲をコリジョンドメインという。コリジョンはリピーターを越えることはできるが、ブリッジやスイッチ、ルータなどを越えることはできない。

 コリジョンドメインはL2スイッチ(やブリッジ)で分割できる。L2スイッチはパケットをいったん受け取ってから中継するネットワーク機器であり、これを超えて衝突が伝播することはないからだ。

       1|2 次のページへ

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

Touch Barという新UIを得た「MacBook Pro」、プレゼント!

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。