開発ノート【通信の共通言語:TCP/IPモデル(Ethernet)】
開発ノート【通信の共通言語:TCP/IPモデル(Ethernet)】です。
当サイトは、Bootstrap5で製作しています。
TCP/IPモデル(Ethernet)
Ethernet(イーサネット)は、TCP/IPモデルのリンク層のプロトコルの一種。
イーサと呼ばれることもある。
直接接続された機器と通信を行うためのプロトコル。
- Ethernetは、LANのデファクトスタンダード(事実上の標準)。
- Ethernetに関する規格は、IEEEで行われている。
- Ethernetは、IEEE 802.3。
通信方法
Ethernetは、「MACアドレス」を使って、相手にEthernetフレームを送る。
MACアドレス:個々を識別するための番号のこと。
- Ethernetフレームのヘッダには、自分と通信したい相手のアドレス+αが指定されている。
送信するホストのアドレス:送信元アドレス、Sourceアドレスと呼ぶ。
通信したい相手のアドレス:宛先アドレス、送信先アドレス、Destinationアドレスと呼ぶ。 - 受信者は、自分宛なら受け入れ、上位のレイヤーにEthernetフレームを渡す。
- 自分以外なら、Ethernetフレームを破棄する。
- 1:1の通信をUnicast通信と呼ぶ。(上図)
- Ethernetにも、Multicast通信やBroadcast通信がある。
Multicast通信:宛先アドレスには特定のグループを意味する特別なアドレスが指定され、自分がそのグループの一員であれば受信する。
Broadcast通信:宛先アドレスには全員を意味する特別なアドレスが指定される。(FF-FF-FF-FF-FF-FF)
MACアドレス
- Ethernetで使われるアドレスのこと。
- 48ビット(48桁)の0と1で表された数字。
- 実際は、同じ桁数でより大きな数字を表現できるように16進数が使われる。
- 12桁をハイフンやドットで区切って、00-00-5E-00-53-01や000.05E.005.301のように書く。
- MACアドレスは、前半の24ビットと後半の24ビットで異なる意味がある。
- 前半の24ビット(OUIとも呼ぶ)はIEEEで管理され、重複が起きないように各メーカーに割り当てている。
- 後半の24ビットは、メーカーが自由に割り当てることができる。
- MACアドレスには、特別なアドレスがあり、全てFの場合はBroadcastアドレスになる。(FF-FF-FF-FF-FF-FF)
ビット:2進数の1桁のことで、0と1で表される。
- MACアドレスは、ハードウェアアドレスと呼ばれることもあり、機器にあらかじめ設定されていることがほとんど。
- MACアドレスは固定ではなく、ソフトやコマンドで任意に変更できるものもある。
Ethernetフレーム
- Ethernetにはフレームが2種類ある。
①DIX仕様、DIX規格(DEC,Intel,Xerox社の頭文字)
その後改定されて、現在はEthernet Ⅱ、Ethernet Version Ⅱと呼ばれている。
②IEEE 802.3 - 主流は、Ethernet Ⅱ(DIX)。
- 1バイトは、8ビット。
MACアドレスは、48ビット。 - タイプと長さは同じ2バイト。
データフィールドの中にあるプロトコルの種類を示している。
この中の数字が、
・1500以下であれば後に続くデータフィールドの「長さ」を表し、IEEE 802.3となる。
・1536以上であれば「タイプ」を表し、DIXフレームとなる。 - LLC(Link Logical Control)
上位レイヤーとやりとりする管理情報が入っている。 - SNAP(SubNetwork Access Protocol)
上位レイヤーで使われているプロトコルの種類やプロトコルタイプが入っている。 - データ
上位レイヤーから渡されるデータが入っている。 - FCS(Frame Check Sequence)
受信した時にEthernetフレームが壊れていないか、チェックを行うために使用される。
プロトコルタイプ
- タイプフィールドには、上位レイヤーで使われているプロトコルの種類が入っている。
代表的なものに下記の2つがある。
・IP(Internet Protocol):0x0800
・ARP:0X0806
※0x:16進数のこと。
プリアンブルとIFG
プリアンブルとIFGを含めたEthernetフレームの送信イメージ
プリアンブル
- アプリケーションが送信するデータは、Ethernetフレーム1つに収まるような小さいデータとは限らない。
Ethernetフレームを何個も使うような通信は、Ethernetフレームを連続して送る。
その場合、次のEthernetフレームはどこで始まるのか、それを知る必要がでてくる。
それが、プリアンブル。 - Ethernetフレームの先頭のフィールドは宛先MACアドレスだが、実際はその前にプリアンブルが付いている。
- プリアンブルが終わる(=SFDが現れる)と、Ethernetフレーム本体が始まる。
- プリアンブルの長さは、8オクテット。
オクテット:8ビット。
オクテットはバイトと同じだが、使われるシーンによって1バイトが8ビット以外を意味することもあるため、明確に8ビットを意味したいときにオクテットを使う。
1と0が7オクテット分交互に続き、8オクテット目の最後の2ビットだけ11となる。
特に、最後の11をSFD(Start Frame Delimiter)と呼ぶ。 - SFDが現れたら、その後に続くのが宛先MACアドレスとなる。
IFG(Inter Frame Gap)
- IFGは、フレーム間ギャップとも呼ばれ、フレームとフレームの間にあける時間のこと。
- 96ビット分のデータを送信するのに掛かる時間。
Ethernetは時代とともにどんどん高速化し、規格も新しいものが作られている。
そのためEthernetの種類によって、96ビットを送信する時間が異なってくるため、具体的に何秒と言った言い方が出来ず、96ビットを送信するのに掛かる時間という表現になっている。
この空いている時間でホストは次のEthernetフレームを受信するための準備をしている。
Ethernet規格
インタフェースとポート
インタフェース:論理的、物理的な接点のこと。
ポート:ケーブルを接続する物理的な口のこと。
Ethernet規格(インタフェース規格)
- 規格は通信する同士で合わせる。
- 10Base2と10Base5は、古い規格でまず見ることはない。
- IEEEの規格名や通信が可能となるホスト間の距離、通信の際に使用するケーブルの種類が異なる。
- 規格名は、【通信速度】+【通信方式】+【ケーブル種類】で表される。
【通信速度】G無しはメガ、G有りはギガ。
【通信方式】Base Band方式のこと。他には、Broad Band方式がある。
【ケーブル種類】Tはツイストベアケーブル、T以外は光ファイバーケーブル。(10Base2と10Base5は除く) - 通信速度:通常1秒あたり何ビット送り出すことができるかを示す。(単位:bps)
100Base-TXの100は、1秒間に100M(メガ)ビット送り出すことが出来ることを意味している。
通信モード
- 通信モードには2種類ある。
・全二重通信(Duplex):同時に通信するか(送信と受信が同時にできる)
・半二重通信(Half Duplex):相手の通信が終わってから通信するか(送信と受信が片方しかできない) - 正常に通信を行うためには双方の機器で、Duplex(二重)を合わせる(統一する)必要がある。
- Duplexの設定方法には、固定と自動がある。
固定:手動で設定する。
自動(Auto、Auto Negotiation):機器間で自動検出する。(双方が自動であること) - Duplex設定は、不一致でも通信が出来てしまうが、フレームが破棄されてしまうなどの不都合が起きる。
- Duplexの設定間違いは気付きにくいので注意する必要がある。
通信速度と互換性
- 通信速度は、Speedとも言う。
- 1000Base-T/100Base-TX/10Base-Tは、互換性がある。
- 通信速度の低い方に揃える。
- Autoの場合は、自動で検出して通信速度を揃えてくれる。
ケーブルの種類
- Ethernetでのケーブルの種類
・同軸ケーブル(10Base2、10Base5用で最近は使用されていない)
・ツイストペアケーブル
・光ファイバーケーブル
ツイストペアケーブル
- 銅線を使用。
- 2本の銅線を捻じりながら合わせて、4組のペアで構成されている。
-
ツイストペアケーブルは、構造的な違いで2種類ある。
・STP(Shielded Twisted Pair):外部からのノイズ対策で、アルミホイルで覆って保護している。
・UTP(Unshielded Twisted Pair):保護がされていないケーブル。 - 主流(LANケーブルと言った場合)は、UTP。
- ツイストペアケーブルは、品質的な違いでカテゴリー分けされている。
- カテゴリー(Cat)には、カテゴリー1~8まである。
- 10Base-Tならカテゴリー3以上、100Base-TXならカテゴリー5以上が推奨される。
- 通信速度が上がれば、カテゴリーも上位が求められる。
- 銅線の組み合わせで種類を分けることもできる。
・ストレートケーブル
・クロスオーバーケーブル(クロスケーブル)

※上図はカテゴリー5の場合。 - パソコンやサーバネットワーク機器には、ポートのピンの配列に違いがあり、2種類ある。
・MDI:1番と2番を送信用に、3番と6番を受信用に使用している。(パソコンやサーバルータ)
・MDI-X:1番と2番を受信用に、3番と6番を送信用に使用している。(スイッチやハブ) - 送信側から送り出されたデータは受信側で受ける必要があるが、機器によって内部のピン配列に違いがあり、そのままストレートケーブルを使えるときと、ケーブル内部で入れ替えてあげるときがある。
- そのため、接続は下記のようになる。
・MDIとMDI-Xは、ストレートケーブル。
・MDI同士、MDI-X同士は、クロスオーバーケーブル。

- 最近は、自動検出(Auto MDI/MDI-X)されるため、ストレートケーブルとクロスケーブルを使い分ける必要がなくなってきた。
光ファイバーケーブル
- 石英ガラスやプラスチックを使用。
- 構造的な違いと光の進み方の違いで2種類ある。
・シングルモードファイバー(SM、SMF):光の伝わり方が一つしかない。長距離通信に適していて、通信事業者間の接続に使用される場合が多い。
・マルチモードファイバー(MM、MMF):光の進み方が複数ある。近距離通信に適していて、データセンター内や企業LANに使用される場合が多い。


- 光ファイバーは、コアとクラッドの2層構造。
コア:光が進む空間。
クラッド:コアを覆う外側の部分。 - 光は、コアの中を反射するように進んでいく。
- シングルモードは、マルチモードよりコアが細い。
- マルチモードは、反射が多い分、伝送損失が多くなり長距離通信に不向き。
-
長所:伝達距離が長い。伝達する情報量が多い。ノイズの影響を受けにくい。
短所:折り曲げに弱い。(取扱には注意が必要)
コネクタの種類
- コネクタは、ホストやネットワーク機器に接続するケーブルの接続点。
- ツイストペアケーブルを使用するときは、RJ-45(Registered Jack 45)コネクタ。
Category7用では、GG45(GigaGate 45)やTERAというコネクタもある。 - 光ファイバーケーブルを使用するときは、SC(Square-shaped Connector)コネクタとLC(Local Connector)コネクタ。
インタフェースモジュール
- インタフェースモジュールは、ネットワーク機器が搭載する物理的なインタフェース。
- ツイストペアケーブル用のRJ-45ポートは、標準で搭載されている場合がほとんど。
- 光ファイバーケーブルは、専用のインタフェースを別に用意して、ネットワーク機器に挿入してからケーブルを接続する。

・GBIC(GigaBit Interface Converter):1Gbitの速度に対応。
・SFP(Small Form-factor Pluggable):1Gbitの速度に対応。
・GBICは、SFPがでる前に使われていたもので、最近ではSFPが主流。
・SFP+(Small Form-factor Pluggable Plus):10Gbitの速度に対応。
・SFPとSFP+の外観はほぼ同じ。
CSMA/CD
CSMA/CD(過去)
- CSMA/CDは、ケーブルを共有して通信する際に、通信データの衝突を回避する機能のこと。
- CSMA/CDは、現在のEthernetでは必要とされない仕組み。
- 初期の頃のEthernetの規格では、10Base2、10Base5で同軸ケーブルを使用していた。
- 同軸ケーブルは、送信用と受信用が分かれていない一本のケーブルで、そこに複数のホストが接続される。
- すると同時に通信が発生して、データが衝突するときが出てくる。
- データの衝突が発生すると、データを再送する動作が頻繁に発生して、通信効率を下げてしまう。
- その対応として、CSMA/CDという機能が組み込まれた。
- CSMA/CD(Carrier Sense Multiple Access/Collision Detection)
・Carrier Sense Multiple Access:ホストは、送信前に他の通信状態を確認。
・Collision Detection:衝突を検出したらランダムな時間待機して再送。
通信を開始する前に他で通信が行われていないことを確認してから送信し、仮に衝突が発生した場合はランダムな時間待ってから再送を行う。
CSMA/CD(現在):スイッチ
- スイッチというネットワーク機器を使うため、データの衝突は起きない。
- スイッチは、必要な通信に応じてホスト同士を接続し、ケーブルは全二重通信が可能になっている。