読者です 読者をやめる 読者になる 読者になる

新人SEの学習記録

14年度入社SEの学習記録用に始めたブログです。気づけば社会人3年目に突入。

学習記録:イーサネット&TCP/IP

[学習記録] イーサネット&TCP/IP

第4章 イーサネットの基礎知識

イーサネットの歴史
  • 比較的近い距離内にある複数のコンピュータ間で、自由にデータのやり取りを行うために開発されたネットワーク方式
    • 1970年代にXEROX社で開発され、その後IntelとDECが協力して拡張
    • 80年代にIEEE 802.3として正式に制定、規格の拡張が続けられ現在でも有線LANの主流
    • 厳密にはXerox, DEC, Intelの3社による規格(DIX)とIEEEの規格とは微妙に異なるが、ソフトウェアで吸収可能
    • 最初に開発されたイーサネットはスイッチなどを使わず全機器を共通のケーブルに接続するバス型接続のネットワークだった
    • 通信速度は普及し始めた頃で10Mbps、現在は100Mbpsや1Gbpsが主流
10Mイーサネット
  • 初期からのイーサネットのいろいろな方式
    • 現在では使われていない初期の構成について説明
  • 10Base5イーサネット
    • 通信が"10"Mbps、ベースバンド方式(Base)、延長距離が"5"00メートルという意味
    • 太さ1cm強の同軸ケーブルを敷設
    • ケーブルにタップという信号接点を取り付けて信号を引き出し、トランシーバという機器を装着
    • トランシーバとコンピュータ間をAUIケーブルケーブルで接続する方式
    • スイッチ等が不要、ネットワーク本体は同軸ケーブルが1本だけというのが特徴
    • 一方で、ケーブルの側面に穴を開けて特殊なタップを取り付ける必要があり、素人には扱いにくいという欠点があった
  • 10Base2イーサネット
    • 10Base5をより簡単に改良した方式、業者ではなくユーザの手で敷設可能
    • トランシーバ部分を機器の内部に納め、タップの代わりにT字型の分岐コネクタでケーブルと機器を接続
    • 取り回しを楽にするため同軸ケーブルも細くなっているが、その分延長は最大185メートルに
  • 10Base-T
    • 90年代になるとさらに手軽かつ安価なネットワークが求められる
    • オフィスの電話の配線に使用されているUTPケーブル(Un-shielded Twisted Pair)を使うイーサネットが登場
    • TはTwisted pairのT。UTPケーブルは安定した通信の維持のため長さの上限は100メートルまでと定められている
    • UTPケーブルはオフィスでよく使用されており、電話と同様に敷設でき、ケーブル自体も安価
    • このケーブルではバス型接続ができないので、個々のPCなどから伸びたUTPケーブルをハブと呼ばれ集線装置に接続する形に
    • 1本のケーブルを長く延長するバス型から全ケーブルがハブに集中するスター型に
  • バス型からスター型へ
    • ハブは交換機(スイッチ)のように見えるが、初期のハブはデータを特定の宛先に中継する機能は持っていない
    • 10Base5のバス部分のケーブルを限りなく短くし、トランシーバとAUIケーブルをUTPケーブルに置き換えたような形
    • イーサネットの高速化にともない、ハブは交換機能を備えるようになった
    • 10Base-Tの登場により面倒な取り回しのないスター型接続に変化し、コストも低減
    • 現在普及している100Base-TX1000Base-Tはこの流れを汲んでいる
CSMA/CD方式
  • イーサネットが実際にどのように通信を行っているか
    • 現在の実運用では動作や形態が異なるが、もともとは通信メディアを共有するバス型ネットワーク
    • 接続している各機器はフレームという単位でネットワーク上にデータを送出
    • フレームには宛先、送信元、データ、その他制御情報が含まれる
    • 多数の機器が1つのメディアを共有するバス型ネットワークでは、通常衝突を避ける何らかの調停メカニズムが必要
    • イーサネットでは衝突の発生を前提としたCSMA/CD(搬送波完治多重アクセス/衝突検知)方式を使用
  • キャリアの検知
    • CSMA/CDの第一原則は、ある機器が送信を行っている間は別の機器は送信を開始しないこと
    • 10Baseイーサネットで使われるマンチェスタ符号化方式(1章)では常に電気信号の変異が発生=他の機器がデータ送信中が判別可
    • 送信したい機器はケーブル上の信号を観測し、誰かがデータ送信中ならそれが終わるのを待つ
    • ケーブルが未使用状態になったのを確認し、地震の送信を確認する
    • これがCSMA(搬送波感知多重アクセス)の意味
    • フレームの送信が終了してから次のフレームを送信し始めるまで少し時間を空けることになっている
    • これをフレーム間隔時間と呼ぶ。10Mイーサネットでは9.6マイクロ秒
  • 衝突の検知
    • 上記CSMAで大部分の衝突は防げる
    • しかし、メディアが使用されていないときに複数の機器が同時に送信を開始してしまった場合は衝突が発生する
    • この衝突を電気的に検出するメカニズムがCD(衝突検知)
    • イーサネットインタフェースは送信中衝突が発生していないことを確認し続ける
    • 衝突が検出されずにフレームを最後まで送信できたら、正しくデータ送信が行えたと想定する
  • 衝突が発生したら
    • 現在行っている送信処理を中止
    • 送れなかったフレームを再送信したいが、また複数の機器が同時に送信を行ってしまう可能性がある
    • そこで、各機器はランダムな時間だけ待ってから再送信を試みる
    • 待ち時間が短かった方が先に送信することになり、再度の衝突発生を防ぐ
  • イーサネットフレームのサイズ
    • 信号の伝搬には時間がかかるので、遠くで衝突が発生すると検出に時間がかかる
    • データが少なく送信時間が短いと、衝突を検知した際にはデータの送信が終わってしまっている可能性がある
    • このような事態を防ぐため、イーサネットの規約ではフレームの下限サイズを64Byte(送信時間5.12マイクロ秒)と規定
    • 各種制御情報を除くとデータ部の最小サイズは46Byteとなる。これ以上小さい場合はダミーのパディングで埋める
    • また、1つのフレームがメディアを長時間占有することを防ぐため、データ部の上限は1500Byteと定められている
    • 送信したいデータが1500Byteを超える場合、データを分割して複数フレームで送信する
    • このような分割と、それに伴う受信側での再構築は、イーサネットではなくより上位のプロトコルの仕事
イーサネットフレームの構成
  • プリアンブル(8Byte)
    • これからフレームが始まることを示す制御用の信号
    • ネットワークインタフェースの受信回路はこの信号を検知すると、タイミング合わせなどの準備を始める
    • DIXとIEEE 802.3ではプリアンブルの定義が異なるが、7Byteの10101010と1Byteの10101011という信号なのは同じ
  • 宛先/送信元MACアドレス(6Byte)
    • 48bitのデスティネーションアドレスとソースアドレス
    • MACアドレスについては後述
  • タイプ/長さ(2Byte)
    • 後に続くデータ/LLCフィールドについての情報
    • この部分の意味は、収められている数値によって異なる(規格が拡張された際に途中で意味が追加されたため)
    • もともとのDIXではデータのタイプ、つまり使用する上位プロトコルを示すものだった(IPv4ARP・・・)
    • IEEE 802.3ではこの値が1500以下の場合は後続のデータ/LLCフィールドの長さを表す
    • このフィールドで長さが指定された場合、データのタイプを示す情報はデータ/LLC部に含まれる
    • イーサネットTCP/IPを使用する場合、このフィールドはほとんどの場合タイプを示す
  • データ/LLC(46〜1500Byte)
    • 送信されるデータの内容部分。タイプ/長さ部で指定されているタイプの形式でデータが格納されている
    • 長さの情報が無くても、フレームの最後まで(伝送されてくるデータが無くなるまで)受信するだけでOK
    • タイプ/長さ部で長さを指定した場合は、データ部の先頭にLLCという管理情報が置かれる
  • FCS(4Byte)
    • エラーチェックのための部分。Frame Check Sequence
    • プリアンブル以後のアドレスからデータ部までの情報から導出したエラーチェック情報で、CRCコードが使用されている
    • 受信側で計算したCRC値とフレーム末尾のCRC値を比較し、ビット誤りがないか判定
MACアドレス
  • メディアを共有するイーサネットでは、送信されたフレームはほかのすべての機器のインタフェースで受信される
    • フレームに宛先情報を含めることで、それがどの機器宛のものか識別可能
    • フレームを受信した機器は、フレームの宛先アドレスと自身のアドレスを比較し、一致すれば受信して不一致なら無視する
  • 上記のような通信を実現するには、各機器のインタフェースには一意のアドレスを割り当てる必要がある
    • この48bitのアドレスをMACアドレスと呼ぶ。イーサネットアドレスや物理アドレス、リンクアドレスとも呼ばれる
    • Media Access Control、共有ケーブルやハブなどのメディア上での伝送を制御するためのアドレスという意味
    • 12桁の16進数で表され、2桁ずつハイフンかコロンで区切った書式がよく使われる(例、00:19:DB:64:0E:6A)
    • 上位24bitはベンダごとに固有の値、下位24bitは各機器を製造したベンダが自社製品に一意な値を指定する。
  • ブロードキャストアドレス
    • 通常のデータのやり取りはある機器から別の機器に向けた1対1の通信
    • すべての機器に対してデータを送りたい場合の通信をブロードキャストと呼ぶ
    • 1対1の通信をユニキャストと呼び、各nodeに割り当てられるアドレスをユニキャストアドレスと呼ぶ
    • ブロードキャストアドレスとしてFF:FF:FF:FF:FF:FFが定義されている
    • この宛先アドレスが指定されたフレームを受信した機器は、自身宛のものとして処理する