イーサネット - IPアドレスとは、どういうものなのか?IPv4×IPv6で調べよう!!

あなたのIPアドレスは38.107.191.88で、ホスト名は38.107.191.88です

イーサネットってインターネットと違うの?

イーサネット (Ethernet) はコンピュータネットワークの規格のひとつで、世界中のオフィスや家庭で一般的に使用されているLAN(ラン、ローカルエリア・ネットワーク)で最も使用されている技術規格です。現代のLAN (Local Area Network) では、主に物理的な規格である「イーサネット」と、通信内容の取り決めを決めた「TCP/IPプロトコル」の組合せが一般的です。イーサネット規格は技術の進歩に合わせて毎年のように新たな規格が登場しています。初期の同軸ケーブルによるLANから発展を続け、今日では世界中のLANの多くがイーサネット規格を採用し、より広い範囲のネットワークであるMANやWANでも一部の技術は「広域イーサネット」という名称でイーサネット規格を取り込み始めています。イーサネット規格の基本仕様は、7層あるOSI基本参照モデルの下位二つの層、物理層、データリンク層相当で規定されています。本項目の後半部で示すように、物理層は伝送速度の違いや物理的な仕様により多種の規格に分かれますが、データリンク層は、世代交代を重ねて来た新旧の規格同士の間にも互換性があり、新旧装置の混在環境でも部分的に低速なネットワークとして機能します。通信速度は、初期の10Mbps(ビット毎秒)の10BASE-Tから、その10倍の100Mbpsの伝送能力がある100BASE-TXが普及し、今日では1Gbpsの1000BASE-Tが普及しつつあります。また、新たな規格として10GBASE-T(UTPによる10ギガビット・イーサネット《10GbE》)規格が決定されました。さらなる高速規格として40ギガビット・イーサネット (40GbE) や100ギガビット・イーサネット (100GbE) などが国際的な通信規格について話し合う組織であるIEEEにおいて調整段階にあります。名称の「イーサ、ether」は、古典物理の時代に光の媒質として宇宙の隅々まで満たしているのではないかと考えられた仮想の物質、「エーテル」 (Ether、Aether) から付けられました。

イーサネットの歴史

イーサネットの発想の原点はハワイ大学のノーマン・エブラムソン教授が開発した「ALOHAシステム」と言われています。ハワイ諸島の島々を4,800ビット/秒の無線によるネットワークで結ぶシステムでした。ALOHAシステムのアイデアに基づいて最初のイーサネットは1972年~1973年にかけて、米ゼロックスのパロアルト研究所 (PARC) において、ロバート・メトカーフを中心に開発された。1973年5月22日、特許として登録したため、この日がイーサネットの誕生日とされます。発明当初の伝送速度は2.94Mbpsで、これは当時開発中のコンピュータ XeroxのAltoのベース・クロック5.88MHzに合わせた為だとされています。ゼロックス社はその後、特許を開放してオープンな規格とし、インテルとDECを開発に加えて、1979年、3社の頭文字をとってDIX仕様を制定します。伝送速度は10Mbpsでした。翌年の1980年には、この仕様をIEEE 802委員会に「Ethernet 1.0規格」として提出・公開しました。このオープン規格に対して世界中の企業・技術者が技術の仕様策定と製品の開発に加わり、さまざまな商品が生み出されていきました。メトカーフ氏自身もゼロックス社を退社して米3Com社を創設し、このネットワーク製品開発競争を主導していきました。1980年代当時は、米IBM社が「トークンリング」を、米アップルコンピュータ社がAppleTalkという「ローカルトーク」をそれぞれネットワーク製品として強力に推進していましたが、結局、規格を公開して多くの賛同者を得たイーサネットが勝ち残りました。現在、普及しているイーサネットは、1982年に提案された「Ethernet 2.0規格」を元に、1983年にIEEE 802.3 CSMA/CDとして策定された仕様です。イーサネット初期の10BASE2/5/-Tの時代は、OS側でのネットワーク・サポートは限定的であり、PCではNovel社のNetwareやIBM社のLan Managerといった専用ソフトを購入しないとファイル共有といった基本的な機能すら得られませんでした。1980年代のPCではネットワーク・インターフェース・カード (NIC) やイーサネット・カードと呼ばれるマザーボードに差し込むISA/EISA/NESA形式のドーターカードがオプションで販売されていることが多かったですが、1990年代初めにはPCI形式でのカードが用意されるようになり、1990年代後半にはCPUの専用周辺回路であるブリッジ・チップに最初から回路の一部が含まれるのが普通になったため、マザーボード上にイーサネットのジャックであるRJ-45が装備されるようになりました。この頃にはイーサネットによるLAN機能の実装が当たり前になるとともに、イーサネットという用語そのものを使うことがまれになりました。2007年現在では、マザーボードによっては2つのネットワーク・ポートを持つものも珍しくありません。

イーサネットの通信技術

イーサネットは、OSI参照モデルにおける物理層およびデータリンク層を規定するものであり、IEEEによりIEEE 802.3およびその拡張版として仕様が公開されていmす。歴史に述べるように、1970年に原型が開発され、1980年にIEEEに提出・公開され、1983年にIEEE 802.3として規定されたイーサネットは、50Ω同軸一芯ケーブルを利用し、バス型のトポロジーを持ったネットワークであり、半二重通信で10Mbpsを達成したものです。追って、10BASE2のThin Ethernetケーブル、10BROAD36の75Ω同軸ケーブル、FOIRLでマルチモード光ケーブルが使われるようになり、さらに1BASE5、追って10BASE-TでUTPケーブルが使われるようになり、物理的構成でもスター型構成がとられるようになりました。その一方でデータリンク層は、後述するジャンボフレームやVLANによる拡張はあるものの、基本的には信号的な互換性があり、メディアコンバータ等を用いて各規格をつなぎあわせることで、相互にフレームをやりとりすることができます。

物理層

OSI参照モデルにおけるレイヤー1(物理層)は、50Ω同軸ケーブルによるバス型接続を基本としています。物理的にはスター型構成をとる場合も、論理的にはバス型構成です。現在はIEEE 802.3の拡張により、UTPケーブルや光ケーブルなど、様々なインフラを利用することができるようになっています。イーサネットでは、信号を伝送するにあたり変調が行われる。ベースバンド変調を行うものは名称にBASEを、ブロードバンド変調を行うものは名称にBROADをつける決まりとなっています。ベースバンド変調では、10BASExではマンチェスターコードが用いられました。マンチェスターコードは、各ビットを示す信号の中央で常に LoHi や HiLo に信号レベルが変化することで伝送の基準となるクロック信号をデータ信号に重ねて送ることができました。他に、100BASE-TXでは8B-6T、1000BASE-Tでは8B/1Q4 (4D-PAM5) など、それぞれ適した変調が用いられます。初期のイーサネットは論理的、物理的ともにバス型構成であり、複数の端末が1本の同軸ケーブルに接続されていました。多数の端末が繋がっている場合には、任意の端末AとBとの「1対1」の排他的な通信は不可能であり、端末Aから送出されたデータは、同じイーサネットの配線に繋がっている全端末へ届けられる「1対全」の通信方式です。「1対全」の通信である為、既に端末AとBが通信している時に端末Cが新たに送信したい場合は、伝送路の空きを待つ必要があります。複数の端末が接続されているときに、ほぼ同時に送信が行われた場合、衝突することがあり、その場合データが損失する。これを衝突(コリジョン)と呼び、その対策が後に述べるCSMA/CD (Carrier Sense Multiple Access/Collision Detection) です。CSMA/CDは、ギガビットイーサネット (IEEE 802.3ab等) までサポートされています。MACフレームの形式 イーサネットの基本的なMACフレームの形式には米デジタル・イクイップメント、米インテル、米ゼロックスが開発した「DIX規格」とIEEE 802.3グループで国際標準化された「IEEE 802.3規格」の2つの形式が存在します。「DIX規格」ではタイプとなっているところが「IEEE 802.3規格」では長さ/タイプとなっているだけが違います。「DIX規格」のほうが広く使用されています。「IEEE 802.3規格」でも「DIX規格」と同じようにタイプを指定できます。イーサネットでは元の送信すべき通信データをまず一定の長さ以下に分割して、決められた形式による情報のかたまりを作り上げます。この情報のかたまりをMACフレーム (Media Access Control Frame)、または単にフレームと呼びます。イーサネットでは常にMACフレームの形で情報が伝送路を流れています。元の情報が分割されているために、ネットワーク機器は一定の長さ以下の情報を扱うだけで済むため、情報転送に関わるあらゆる処理が非常に単純な作業の繰り返しで済みます。

物理的構成

イーサネットの物理的構成は、PCやルータ等のネットワーク機器(ノード)およびケーブルで組み立てられます。イーサネットは論理的にバス型構成であるため、一つの論理的バスの固まりをコリジョン・セグメント(または単にセグメント、コリジョンドメイン等)と呼びます。コリジョンセグメント内のノードは各々電気的に等価であり、すべてのフレームが全ノードのネットワークインターフェイスに受け取られます。各ノードのネットワークインターフェイスはMACアドレスを持ち、自分宛でないフレームは廃棄します。また、スイッチングハブ等、レイヤー2以上のネットワークをサポートする機器を利用した場合全二重通信を行うことができます。

セグメント

同じデータが到達するネットワークを「コリジョン・セグメント」または単に「セグメント」と呼び、コリジョン検出の物理的な制約によって最長伝送路長が存在し、物理層のイーサネット規格として規定されています。一つのコリジョン・セグメント内に多すぎるノードが存在する場合は、後述するコリジョンの発生頻度が加速度的に高まり、閾値を越えたところで帯域が飽和します。また、機器間の距離が規定より長い場合、データリンクを確立できない可能性があります。規定された以上の長さの伝送路が必要な場合はリピータまたはリピータが多ポート化したリピータハブにより延長することが可能です。さらにブリッジや、ブリッジが多ポート化したスイッチング・ハブを用いてセグメントを拡張することができます。

全二重通信と半二重通信

「全二重通信」とは、1つの伝送路上の端末間で、常時、送信と受信が可能な通信技術のことです。「半二重通信」は、各端末は送信か受信のどちらか片方向の通信を、必要に応じて切り替えながらでしか行なえない通信技術です。半二重通信では送信・受信の切り替え時に無駄が発生することがあります。電話は全二重通信であり、CSMA/CDは半二重通信である。端末が自分の発した信号さえ把握していれば、受信した信号から送信されてきた信号(とノイズ)だけを得ることは可能であり、伝送路を伝わったエコー成分を消し去るエコーキャンセラ技術によって全二重通信は可能となりました。一般に、PC等の機器間をクロスケーブルで接続する場合や、スイッチングハブ等、データリンク層以上をサポートする機器を介在することで、全二重通信を行うことができます。多くのスイッチングハブは、全二重/半二重を自動で検知し、切り替えることができる機能を持っています(オートネゴシエーション)。

MACアドレス

イーサネット上の各端末を区別するために、製造段階で割り振られる世界中でただ1つ固有の48ビットのMACアドレスを持っています。先頭2ビットはアドレスの種類(ユニキャスト/マルチキャスト,グローバル/ローカル)、続く上位の22ビットはベンダーの固有値(グローバルアドレスの場合。なお、先頭2ビットとあわせて24ビットで表現されることが多い)、下位の24ビットはベンダーが自由に割り振る通し番号。イーサネットの上位に位置する通信規格であるIPプロトコル (IPv4) の32ビットのIPアドレスとは別です。

CSMA/CD

イーサネットを特徴づけるものがCSMA/CD (Carrier Sense Multiple Access/Collision Detection ; キャリア検知多重アクセス/コリジョン検出) であり、通信経路上での信号の発送手段を規定しています。物理的に類似した他方式、トークンリングの場合は、経路上のノード間でトークンと呼ばれる特殊なパケットを回し、受け取ったノードのみがフレームを送信することができますが、イーサネットでは、各ノードは自由に信号を発信することができます。その一方で信号の衝突が発生するため、通信路上を常に監視し(キャリア・センス)、衝突が検出(コリジョン・デテクション)された場合は、若干の時間待機した後、フレームを再送します。待機時間はTBEBアルゴリズムで決定します。短所として、たとえ混雑して送信待ちの端末が多数あっても常に通信路に空きが生じるため帯域に無駄が生じます。また、他の通信方式でも同様だが、規格で表わされている伝送速度は通信路に流せる全ての情報に対する通信容量であり、フレームの頭に付くヘッダーやプリアンブル、フレーム間ギャップも通信容量を消費するため、ユーザーデータの伝送速度は常に規格の速度をある程度下回ります。TCPやIPを使用すればその分のヘッダなどがさらに通信容量を消費します。

キャリアセンス

全ての端末は常に通信路上の信号を受信し、監視しています。この機能を「キャリア・センス」 (Carrier Sense) と呼びます。フレーム送信後、他のどの端末からもフレームが送り出されていない場合、最後のフレームの末尾から96ビット時間以上待ち、次のフレームを通信路に送出することが許されます。この待ち時間をフレーム間ギャップと呼び、このように複数の端末が1つの伝送路を共同で使用する機能を「マルチプル・アクセス」 (Multiple Access) と呼びます。

コリジョン・デテクション

たまたまほぼ同時に複数の端末がフレームを送り出した場合は「コリジョン」、つまり衝突が発生してしまいます。コリジョンによる信号の乱れを検出した場合は受信中のフレームは破棄され、ジャム信号という特殊な信号を伝送路に送信します。送出中の端末はコリジョンによる自身の信号の乱れを検出するかジャム信号を検出すれば、直ちに送出を停止し送信中だったフレームは送信前の状態に戻されます。この機能を「コリジョン・デテクション」 (Collision Detection) と呼びます。コリジョンは、送信側がフレーム送出を終了する前に検出される必要があります。そのため、同一ネットワーク上に接続された2つの端末をつなぐ通信路の総延長とフレームの最小サイズが限定されます。つまり、リピータなどを介したケーブルの総延長が最小サイズのフレームを送り終える前に2台の端末間を往復できるだけの長さより短い必要があります。基本的にイーサネットにおける最小フレーム長は512ビット=64バイトであり、送出するデータが小さく、フレーム長が64バイトに満たない場合は、足りない分を0で埋めて64バイトとします。これをパディングと呼びます。1000Mbit/s (1Gbps)以上の通信の場合は、最小フレーム長は4096ビット=512バイトとなり、足りない分を補うダミーデータをキャリア・エクステンションと呼びます。

再送時間の決定

フレームの送出を中止した端末は、擬似乱数によるランダムな時間だけ待った後、通信路が空いていれば、自分のフレームを送出することができます。その際にもし再度衝突が発生した場合は、2n個の待ち時間候補の中からランダムに決定されます。この方法は「TBEBアルゴリズム」 (Truncated bunary exponential backoff algorithm) と呼ばれます。

イーサネットのデータリンク層

イーサネット規格のレイヤー2、つまりデータリンク層では、送信するMACフレームの作成や受け取ったMACフレームの解釈に関する作業を規定しています。送信の場合を考える。ネットワーク端末であるイーサネット通信装置はホストであるコンピュータからの情報を通信路に送出するためには、まず受け取った元データが長ければいくつかのかたまりに分割します。このデータのかたまりは46~1500バイトの大きさです。これに以下の付加情報を加えてMACフレームを完成させます。
■MACフレームの構成
 ・宛先MACアドレス:6バイト
 ・送信元MACアドレス:6バイト
 ・(VLAN:4バイト)
 ・長さ(長さ/タイプ):2バイト  ・データ本体:46~1500バイト(VLANの4バイトを含む場合は42~1500バイト)
 ・エラー検出のためのフレーム・チェック・シーケンス (Frame check sequence、FCS) 4バイト
あて先MACアドレスの前にプリアンブルの8バイトがありますが、これは96ビット時間以上のフレーム間ギャップと同様にレイヤー1層「物理層」で自動的に挿入されるためにレイヤー2層「データリンク層」であるMACフレームの規格には含めません。DIX規格でのプリアンブルの8バイトは実際は10101010で構成された7バイト分のプリアンブルと1バイト分のスタート・フレーム・デリミター (Start frame delimiter、SFD) で構成されています。あて先MACアドレスと送信元MACアドレスの6バイトは全く同一の構成をとり、最初の2ビットで通信種別を表わし、マルチキャスト、ブロードキャスト、ユニキャストなどを指定します。続く22ビットでMACアドレスを使用するネットワーク機器のベンダーがIEEEから購入したベンダー固有の番号が入ります。最後の24ビットでベンダーが自由に割り振る番号が入り通常は通し番号が使われます。MACアドレスは全世界でただ一つのユニークな番号です。IEEE 802.1q規格でオプションのVLAN使用時には「長さ/タイプ」の前に4バイトが付加され、フレーム全体も4バイト分長くなります。このVLANという仮想LANのための4バイトが付加された場合は、最長フレーム長が1518バイトから1522バイトへと変わるがネットワーク装置は正しく処理を行なう必要があります。初期のネットワーク装置には1518バイトを超えるフレームを正しく処理できないものがありましたが、最近のネットワーク装置はほとんど1522バイトまでのフレームを正しく処理できます。DIX規格でのタイプとIEEE 802.3規格での長さ/タイプは混在していてもかまいません。この2バイト分のフィールドの値が46から1500であればそれはIEEE 802.3規格での長さを表わしており、1501以上であればそれはDIX規格でのタイプを表わしています。FCSによって、あて先MACアドレス、送信元MACアドレス、タイプ、データの4つの領域の情報が正しいかを判定します。判定のためのエラー検出方法はCRC (Cyclic redundancy check) 法を使います。フレームの終了を示す信号は存在せず、最後のFCSの信号が途絶えた時点で受信側はフレームの終了を判断します。荒っぽい方法ですが、このことによってデータやFCSには完全に自由な2進情報を含めることが可能となり、フレームの簡素化やネットワーク装置の処理の単純化が得られています。

フレーム間ギャップ

各フレーム同士の間には96ビット時間以上の間、信号の無いフレーム間ギャップを確保します。このMACフレームをレイヤー1、つまり物理層に渡して伝送路の空きで送出します。受信はこの逆で、受信データをレイヤー1・物理層を通じて受け取り、自分のMACアドレスが「送信先MACアドレス」に無ければそのまま破棄します。自分宛であれば「長さ」が有効であればその「長さ」を、有効でなければMACフレーム全体の長さから逆算して長さを求めます。その長さによって「データ本体」と「FCS」を切り出してこれら2つから伝送誤りが無いかを確認して、誤りがあれば普通は上位レイヤーである、レイヤー3ネットワーク層とレイヤー4・トランスポート層に報告し、レイヤー4からの指示でレイヤー3-2-1と下りて来て再送要求を送る、または再送されずに情報は失われます。伝送誤りが無ければ切り出されたデータをレイヤー3へ渡し1つ分のMACフレームの受信作業は終わります。ここで述べたレイヤー3と4はイーサネット規格の外部であり、多くのネットワークではTCP/IP規格が使用されている領域です。つまり、イーサネット規格では、再送処理やあて先の指定は含まれていません。レイヤー2の情報は「行き先MACアドレス」が要求すればLAN上のスイッチング・ハブによってセグメントを越えて伝送されます。つまりレイヤー1だけではセグメントの境界にスイッチング・ハブが位置しており、送出された信号はセグメントを越えることはありませんが、スイッチング・ハブの内部では一度レイヤー2まで階層を登って解釈され行き先MACアドレスを読み取って、隣のセグメントやその先のセグメントであれば、別のセグメントへと転送されるため、セグメントを越えることが出来ます。このため、スイッチング・ハブの内部ではそれぞれ接続されたセグメントごとに所属する端末のMACアドレスを一覧リストとして保持しており、MACフレームを受信するたびに高速で比較して転送先を決定しています。こういったレイヤー2スイッチング・ハブの動作は全ての速度・形式のイーサネット規格で同一です。

フレーム長の規定について

イーサネットでは、最短フレームサイズ64バイト、最長フレームサイズは1518バイトです。CSMA/CDでのコリジョンを正しく検出するには、送信された信号が送信を終える前に、伝送路上で衝突して信号が乱れた結果を送信側が受信できなければなりません。このためには送信される信号はある程度の長さを持たねばならず、その長さは、コリジョン検出に最も時間がかかる場合を想定して計算されなければなりません。伝送路の片方の端から送信された信号がもう一方の端に着いた瞬間に別の送信が開始される場合が最も時間がかかるので、この場合の時間は最初の信号が端から端まで伝播するのにかかった時間と、コリジョンが発生した信号が同じ道を戻る時間の合計となり、これは単純に伝送路の2倍の距離を信号が伝播する時間となります。CSMA/CDのコリジョンの検出のための往復電波遅延時間の計算は往復分2,500m × 2の5,000mに対するケーブルでの遅延時間 約26μSecと、リピータやトランシーバーの遅延時間分 約20μSecの合計で46.38μSecと計算されます。この長さは10BASE-xでは464ビット時間に相当します。これらの計算から最初の本格的なイーサネットの規格である10メガビット・イーサネットでは、最短のフレームサイズを余裕をもって512ビット(64バイト)時間としました。最長フレームサイズが1518バイトに決まった明確な理由はなく、あまり長ければ中間で処理を行なう伝送装置のメモリーを大きな容量にしなければならず、あまり短ければネットワーク上を流れるのはフレームヘッダばかりになってしまうため、当時のハードウェア環境から最も長いデータ長1,500バイトと決められました。これにフレームヘッダを合わせて、最長フレームサイズが1518バイトに決まりました。VLANを使う場合には、VLANのタグ(4バイト)が追加され、合計で1522バイトになります。