Ethernet は、1973年に米ゼロックスのパロアルト研究所で開発され、 1983年にIEEEで標準規格 802.3 として認められました。
その後、いろいろなケーブルを使う規格へと発展してきています。 過去および現在よく使われていた規格とケーブルの種類を 挙げておきます。
標準規格名 | 読み方 | IEEE仕様名 | 承認年 | 速度 | サポート媒体 | 備考 |
---|---|---|---|---|---|---|
10Base5 | テン ベース ファイブ | 802.3 | 1983 | 10Mbps | 50Ω同軸(thick) | 最初のEthernet。80年代〜90年代初めまで主流。 |
10Base2 | テン ベース ツー | 802.3a | 1988 | 10Mbps | 50Ω同軸(thin) | 80年代終り頃一瞬流行する。 |
10BaseT | テン ベース ティー | 802.3i | 1990 | 10Mbps | Category3 (内部線4本) | 90年代に一気に主流に。現在でもたまに見ることがある。 |
100BaseTX | ひゃく ベース ティーエックス | 802.3u | 1995 | 100Mbps | Category5 (内部線4本) | 2年前ならば主流 |
1000BaseT | せん ベース ティー | 802.3ab | 1998 | 1Gbps | Category5e (内部線8本) | 現在、主流になりつつある |
最初の製品は 10Base5 で 1980年に3Comから出荷されました。 初期は 10Base5 が主流でしたが、一瞬の10Base2の流行の後、 90年代にはオフィス環境では10BaseT でネットワークを 組むのが一般的となりました。 2000年ごろから急速に 100Base-TX が普及してきて、 100Base-TX が主流になりました。 2004年頃から1000Base-T 用の機器の値段が下落してきたので、 現在では1000Base-Tに主流が移りつつあります。
[Ethernet の名前の付け方]「伝送速度」 + 「伝送方式」 + 「伝送距離」か「ケーブル種類」
トランシーバは同軸ケーブルを電流源信号によって駆動していて、 論理値 0 または 1 がそれぞれ電流を 「流さない」または 「流す」 ことを表しています。 1台のトランシーバは約40mAの電流を流し (シールドを基準点にして同軸ケーブルの中心導体からトランシーバ へと負の電流が流れる)、同軸ケーブルの中心導体とシールドの電位差は 約2Vになります。
2台のトランシーバが電流を流す場合は、各々が 40mA を流すので 電位差は約 4V に上昇します。 これによりトランシーバの受信回路が衝突を検出できます。
各ノードはチャネル上のトラフィックを検出している (「話す前に聞く(listen-before-talking)」) わけです。 チャネル上に既にトラフィックがあれば送信を控えます、 トラフィックが無いことを確認してから通信を始めても、 信号の伝播 (同軸ケーブル上の信号伝播速度は約0.77c) には時間がかかる (propagation delay) ので、通信中に 信号の衝突が起きる可能性は残っています。
ノード host1 がフレームを送出してからネットワークの隅々にまで 信号が伝播するには一定の時間 t がかかるとします。 すると、送信を開始した後にこの時間 t が経過すれば、もはや 他のノードはフレームを送出しませんから衝突は起こりません。 衝突が起きた場合に衝突信号が返ってくる時間を考慮して、 信号が媒体を1往復する時間を T = 2t とすると、host1 は 送信を開始してから時間 T が経過したあとは伝送チャネルは host1 が確実に占有したと判断できます。 この T を「衝突の窓 (Collision Window) 」といいます。
休止時間 = slot time × r ただし 0 ≦ r < 2min(k,10) kは試行回数で計算されます。
ノードがフレームを送信し始めてから slot time が経過すればそのノードが 確実にチャネルを獲得したことになり、これ以降は他のノードはフレームを 送出しません(フレームの衝突は起こらなくなります)。 したがって、平均のフレームサイズが slot time よりどれだけ大きいかが ネットワークの効率を決定することになります。一般に、フレームサイズが 大きい方が効率は良くなります。
Ethenet フレームは最小 64 byte, 最大 1518 byte となります。 受信ノードは carrier sense 信号を監視しており、これが on から off になると1つのフレームが受信されたとみなします。
受信フレームが byte の整数倍でないと最も近い byte 整数に まるめます(普通はこの結果 FCS check error となります。 64 byte 未満の場合はラント・エラー)。 1518 byte よりも大きい場合は1518 byte で切ります。
Ethernetフレームの送信は、
マンチェスタ符合化 --- 1ビット・セルを2分割し、前半をオリジナルの 補数、後半をオリジナルにする方式です。 10Base5, 10Base2, 10BaseT の時に使われていました。
物理的に信号立ち上がり時は不安定なので、データを送出する前に チャネルを安定し同期をとる仕事が必要になります。 送信側はデータ送出に先だって 8 octet のプリアンブルを送り出し ます。 受信側はプリアンブルの最後 2bit に1が連続することを利用して データの先頭を検出します。
Ethernetフレームの中で、宛先や発信元を表すために 48bit の ビットパターンが使われています。これを 「Ethernetアドレス」 または「MACアドレス」と言います(MAC = Media Access Control)。 48bitのうち、上位24bitがベンダー(製造会社)固有の番号で、 下位24bitが各(Ethernet用)ハードウェア固有の番号となります。 これにより、特定のMACアドレスを持つ機器は世界中で1個しかないことが 保証されます。
48bitの全てのbitが1であるMACアドレスは特別で、Ethernet Broadcast Address と呼ばれます。これは同じEthernetに接続している全ての機器(の「MACアドレス」) を指定したことになります。
リピータとは、2本のEthernetを接続するための装置(増幅機)です。 基本的に「一方のEthernetから来た信号を増幅して、他方のEthernetへ送り出す」 という動作を行います。
リピータは
そのため、Ethernetをリピータでつないで拡張するには限度があります。 フルリピータを1個,ハーフリピータを0.5 個と数えることにすると、 「Ethernet上のどの2つのノード間も合計 2 個以下のリピータしか 存在してはいけない」という規則があります。
ブリッジは、Ethernet フレームを一旦受け取ってから、 必要に応じてネットワークに転送します。
したがって、ブリッジを越えて衝突が起きることはありません。 つまりリピータの2段ルールはブリッジがあるとそこで切れる (一まとまりになる)ことになります。
Ethernetで、衝突が起きる可能性能がある範囲を「コリージョン・ドメイン」 と言います。ブリッジがあるとそこで「コリージョン・ドメイン」は途切れます。 リピータでは途切れません。
Ethernetのブロードキャスト・フレームが伝わる範囲を 「ブロードキャスト・ドメイン」と言います。 リピータもブリッジはブロードキャスト・フレームも転送しますので、 「ブロードキャスト・ドメイン」はリピータやブリッジでは途切れません。
最近流行の「スイッチ」も一種のブリッジですが、2個以上の インターフェイスを持ち、 インターフェイス間のトラフィックを並列に処理する点が 異なります。
しかも「スイッチ」では "cut through" (フレームを全部受け取ってから 転送するのではなく、宛先アドレスを読み終るとすぐに送りだし始める) 技術を使って遅延時間を最小にするのが普通です。
ただし、"cut through" 技術では、壊れたEthernet Frameも転送してしまう (宛先アドレスまでは正しいことが多いので)という欠点があります。 このため、多少遅延時間は増えますが64バイトまで受け取ってから 転送を開始する "adaptive cut through" 方式を採用するスイッチが 多くなってきています。
最近よく目にする「スイッチングハブ (switching HUB)」というのは、 「スイッチ」の一種です。
10Base5 や 10Base2 においてはいずれも50Ω同軸ケーブルを敷設する 必要がありました。 10BaseTは、既に建物に埋め込まれた電話用ツイストペア・ケーブル (category 3)を利用するために規定されました。
パラメータ | Ethernet | FastEthernet |
---|---|---|
slotTime | 512bit-times | 同左 |
InterFrameGap | 9.6μs(最小) | 0.96μs(最小) |
attemptLimit | 16(試行) | 同左 |
backoffLimit | 10(指数) | 同左 |
jamSize | 32bits | 同左 |
maxFrameSize | 1518bytes | 同左 |
minFrameSize | 64bytes(512bits) | 同左 |
addressSize | 48bits | 同左 |
現在では 10 Mbps と 100 Mbps の両方を自動判別する スイッチングHUB が非常に安価(8 port 用で数千円)で入手 できるようになっています。 したがって100Base-TX でリピータHUBを使うことはまずないでしょう。 したがって、100Base-TXのリピータ規則は忘れても結構です。 ただし、10Base-T用の古いHUB(リピータハブ、ダムハブ)を使って ネットワークを構築するときは 10Base-Tのリピータ規則にはやはり気をつける必要があります。
スイッチングHUBはスイッチ(一種のブリッジ)ですが、 ポート毎にバッファがあるので一旦データを受け取ってから、 他のポートに転送することができるのです。 10Mbps と 100Mbps の自動変換が可能なのもこのためです。
スイッチングHUBはバッファが溢れそうになると、「半2重」通信の 場合はJam信号を出して送信を停止させます。
100BaseTX用のスイッチングHUBを使うと、接続されている機器(パソコン)が 対応していれば「全2重」(=送信と受信が同時にできる)で通信することも できます。 この場合は、送受が同時に起きることが衝突とはなりませんので、 スイッチングHUBのバッファが溢れそうになったら IEEE802.3xで 定められた「ポーズフレーム」を送ることで、送信を止めてもらいます。