システム奮闘記:その24

LANの設定・仕組みの話



(2003年11月20日に掲載)
はじめに

  解剖と言えば、普通なら「カエルの解剖」を思い浮かべる。
中学の時、理科部に所属していて、クラブ活動で、カエルの解剖をした事がある。
  男よりも、女の子の方が、解剖好きだったりするみたいで、
後輩だったK子は「面白い」と言いながら、楽しそうにカエルを解剖していた。
  他にも、小サメの解剖もしたし、豚の目の解剖もした。
  まさに、ブラックジャックや、スーパードクターKのような中学生だった(笑)
  個人的にはヴァルハラのテル先生(週刊マガジンに連載中)が好きだけど (^^)


  さて、今回は、カエルではなく、社内LANを解剖してみる事にした。
  社内LANは、システム管理者のみならず、会社でパソコンを使っている人なら
誰でも接する身近な存在。
  サーバー構築の知識がなくても、LANケーブルとハブさえあれば、
Windowsでファイル共有というネットワークが組める。

  しかし、LANは身近な存在だけに、見過ごしてしまう (^^;;

  そこで、身近なLANを解剖する話を書く事にしました。
  題して「社内LANの解剖実習」の始まり始まり (^^)

LANについての勉強をするキッカケ まずは、LANに目を向けるキッカケから書く事にした。 実は、今年になって、LANに目を向けるキッカケができた。 それは、ルーターの設定方法や、パケットフィルタリングに関する話をまとめた 「システム奮闘記:その18」(ヤマハルーター設定。RTA52,RTA55i) を編集している時、ネットワークの知識が必要なので、 ネットワークの事を調べていた。 その時、「最新TCP/IPハンドブック」(若林 宏:秀和システム)を読んでいた。 さて、まずはレイヤ構造の話が出てくる。 「レイヤ」とは階層の事で、通信の方法が階層構造になっていて、 各階層で、個々の通信に必要な事を行なう。
OSI参照モデルとTCP/IP階層構造との比較
OSI参照モデルとTCP/IP階層構造との比較
(注意) TCP/IPでも、LANのイーサーネットの場合
物理層とネットワークアクセス層を一緒にして
「ネットワークアクセス層」としている場合があります。
物理層とデータリンク層に、またがったプロトコルとして
ネットワークアクセス層があるからです。

  この時、ネットワーク層、トランスポート層に関しては「なるほど!」とわかる
図と出会った。

単なるルーターとフィルター付きルーターの仕組みの違い
通常のIPルーティング フィルタリング付きIPルーティング
通常のIPルーティングの図 フィルタリング付きIPルーティングだとトランスポート層を経由する
左図のように、単なるルーターだと、IPを見て行き先を判断する。
そのため、やって来たパケットを見てIP層で判断して、一番良い行き先を探す。

しかし、右図のように、フィルター付きの場合はTCP・UDP層も仕事をする。
例えば、Webを見に行くパケットだけを通したい場合、
やってきたパケットがWebのポート行きかどうかを知る必要がある。
しかし、IP層は「俺、知らない」で、TCP・UDP層へ丸投げをする。
そこで、ポートなどを見て判断できるTCP・UDP層がポートを見て選別する。
選別ができてら、IPを見て行き先を選ぶのだが、そこでもIP層へ丸投げ。
丸投げされたIP層が行き先を判断する。

(丸投げについて)
丸投げというと「無責任」という言葉を連想する。
しかし、この場合、丸投げの方が良い。もし、お節介に助け合いなどしたら
通信障害が生じた時、何が原因なのか、わからなくなるから。

  この図を見て初めて、2つの層がルーターでのパケットフィルタリングで
重要な役目を果たす事もわかった。

  では、物理層とデータリンク層ついて、どんな物を思い描いていたかを
正直に書きますと

 これを編集するまで持っていませんでした (^^;;

  なかなか一般的な説明だと、具体的な物が掴めない。
  ある本には次のような説明がある。

一般的な階層構造の説明
「最新DNS&BIND」(インスブレイン著:秀和システム)
P54からの引用
物理層 データを通信回線に送り出すため、電気信号としての変換や
ハード的な作業を定義されます。
ピンの形状やケーブルの特性もここで定義されます。
LANの転送レートの100Base-TXやケーブルのRJ-45などが
ここに当てはまります
データリンク層 データをやりとりする相手との物理的な通信経路の確保について
定義します。また、送られるデータのエラー検知などもここで
行なわれます。
TCP/IPでは、第1層(物理層)と合わせて
ネットワークインターフェイス層と位置付けています。
イーサネットやPPPなどはここで定義されます。

  この文を見ても「だから何?」という感じで、具体的な物を
思い浮かべる事ができなかった。
 そもそも、どういう働きをしているのか、具体的な事が
まるでわからなかった。

  ルーターの本を読んでいると、次の図があった説明があった。

LANからISDNへのルーター内のパケットの流れ
LANからISDN回線へパケットが飛ぶ過程でルーター内で通過する階層図

  本での物理層とデータリンク層の説明と、上の図を見比べていると、
なんとなく物理層とデータリンク層の役目がわかった気がした。
  実は「なんとなく、わかった気になった」は、全くわかっていない事を意味する。

 そこで今回はLANの話を取り上げる事にしました。

LANケーブルはストレートケーブルとクロスケーブルがある

本題に入る前に、過去におけるLANにまつわる話をする事にします。 その話は、相当、前に遡る。 社長が「わしのノートとデスクトップとの間でデータ転送したいんや」と 言ったので、私はLANケーブルを持ってきて下図のようにつなげた。
2台のパソコンをつなげた様子
2台のパソコンをストレートタイプのLANケーブルで接続した
実は、この時、ストレートタイプでつないだ。
当時、LANケーブルに2種類あるとは知らなかった。

  早速、データ転送をやってみたが

 つながらへん  (TT)

  これを見た社長は、苦笑いしながら「もっと勉強せんとアカンなぁ」と言った。
  この時、原因を考えたら、ハブを使っていないのに気づいた。
  その時は・・・

 2台のパソコンをつなげるのにハブが必要!

 と思った。

  それから、パソコン同士をつなげるのにハブがいると思い込んでいたが、
2002年9月になって、そうでない事がわかった。

  2002年9月、ある役員のパソコンが天へ召されたため、新しく買い換えた。
  うちの会社に初めて、WindowsXP搭載のマシンが入った。
  しかし、私自身、WindowsXPは全く触ったことがないので、質問されても、
何も答えられない。
  オマケに社長が自分のパソコンを新しく買い換えた。それも、WindowsXP
  「MSはドアホか! 品質向上せんと、新しいばかり作って、混乱するやないか」
と心の中で思いながら、会社でWindowsXPの入門書を買ってもらった。

  普段なら、何気なく読み飛ばすLANの設定部分を読んでいた時だった。
  この時、初めてLANのケーブルに2種類ある事を知った!

  クロスタイプストレートタイプの事だった。
  もちろん、この時、初めて、2種類のケーブルの違いを知る。

  早速、クロスタイプのケーブルを買ってきて、2台のパソコンをつなげてみた。

2台のパソコンをつなげた様子
2台のパソコンをLANのクロスケーブルを使って接続

  見事に通信ができた!!

  LANケーブルには、クロスタイプとストレートタイプの2種類がある事を知り
その上、2つの役目の違いも知った。

ストレートタイプとクロスタイプの違い
ストレートタイプのLANケーブルの中の線はまっすぐ クロスタイプのLANケーブルの中の線は交差している
ストレートタイプは中の配線が
文字通りまっすぐ(ストレート)
クロスタイプは配線が中で
交差(クロス)している。

  この時は、クロスタイプが「1と3」、「2と6」の部分がクロスしていて
他はクロスしていないのに、何も疑問を持たなかった。
  ただ「へぇ〜」という感じだった。

  しかし、2003年11月、LANの事で、この原稿を書くため本を調べていると
思わぬ発見をしてしまった。
  まず、LANのケーブルの配線は8本あるのだが、実際には、4本しか
使われていない事を知る。

ケーブルの接続部分
LANケーブルの線は8本あるうち4本しか使っていない
ピンが8本あるが、実際、4本しか使われていない事を知る。

  しかも、1、2がNICがデータ送信するための部分であり、
HUBがデータを受信する部分でもある。
  3、6がNICがデータ受信するための部分でもあり、HUBがデータ送信する
部分だという事もわかった。

  となると、ストレートタイプの場合、次のような事が成り立つ。

ストレートケーブルの配線
ストレートケーブルの場合、パソコンとハブとの線の対応関係
1、2でパソコン(NIC)が送信したデータはHUBが受け取る
3、6でHUBが送信したデータは、パソコン(NIC)が受信する。

  上の図を見た時「なるほど!  だからパソコンとハブはストレートタイプなのか」と
思った。

  パソコン同士の接続がクロスだという理由も、同じように考えると納得できる。

クロスケーブルの配線
クロスケーブルの場合の線の対応関係
1、2でishikawaのNICが送信したデータは、
3、6でsayuriが受け取る形になる。
sayuriのNICが1、2で送信したデータは、ishikawaの3、6で受信する。
お互いがデータの送受信できるようにするため交差(クロス)した形になっている。

  ここに来て、ようやくストレートケーブルとクロスケーブルの違いと、
その理由がわかった。


  ここで脱線。
  なぜ、上の図で、コンピューターの名前が、ishikawaとsayuriなのか。
  別には、石川さゆりのファンではないが、私のカラオケの18番の一つは
「津軽海峡冬景色」で、その歌は、石川さゆりが歌うからです。
  音痴は私は「上野発の夜行列車、降りた時から、青森駅は雪の中♪」と
音程メチャクチャで歌いながら、最後の部分は、みんなで大声を出しながら、

 津軽海峡〜♪ ふ〜ゆ〜げ〜し〜き〜♪

  と熱唱するのが大好きだからです。

ハブには2種類あったのらー!! さて「システム奮闘記:その18」(ヤマハルーターの設定。RTA52i RTA55i) から独立した形で、LANの事を取り上げようと思っていた。 最初はハブやケーブルの話は考えてなく、LAN内のパケットの送信の話を 書こうと考えていた。 しかし、次々と発生するネタの処理に追われて、なかなか手がつかない。 パケット送信の話など、特に必要に迫られる内容ではないと思っていただけに、 なかなか本を読もうと思わなかったり、調べようとも思わなかった。 そんな中、以前、会社で購入したハブの説明書を読んだ。 I-O DATAの5ポートスイッチングハブで型番が「ET-FSWH5L2」だ。
I-O DATAの「ET-FSWH5L2」
I-O DATAのハブ「ET-FSWH5L2」

  普段なら「ハブの使い方なんぞ知っとる」という感じで説明書は読まないが、
LANの話のネタになるかと思い、説明書を読んでみる事にした。
  なぜか、各部の名称・機能は、軽く眺めただけで、じっくり見なかった。
  目に飛込んできたのは注意書きの部分だった。

注意書きの内容を一部抜粋
本製品は、医療機器、原子力設備や機器、航空宇宙機器、
輸送設備の機器、兵器システムなどの人命に関わる設備や
機器、および海底中継器、宇宙衛星などの高度な信頼性を
必要とする設備や機器としての使用、またはこれらに組み
込んでの使用は意図されておりません。

  うーん、ハブの部品が軍事転用できるのかと思ってしまった。

  丁度、その頃、北朝鮮に軍事転用できる部品を売っていた
バカな日本のメーカが警察に摘発されたニュースが報道された。
  翌日、顧問と上司と私の3人で、その話で盛り上がっていた。
  顧問が「軍事関連の部品って、恐いもんやなぁ」と言ったので、
私が「身近な物にもありますよ」と言って、I-O DATAのハブの説明書の注意書きを
顧問に見せた。
  顧問は「4000円ぐらいの機械でも軍事利用ができるんかいな。
えらいもんなぁ。」と言った。
  上司が「菅くん、ハブを北朝鮮へ輸出したらアカンで」と冗談を言った。

  この時点では「軍事利用の話も盛り込もう」という程度にしか思わなかった。


  だが、2003年10月、この原稿を書く原動力が発生した。

  つまり、必要に迫られる事件が起こった(または、発見した)ためだった。

  2003年10月のある日、説明書に書いてあった注意書きをネタにするため、
会社から説明書を拝借して持って帰る事にした。
  帰りの電車の中で、LAN関係の事や、ネットワークの事を調べ直すために、
「最新TCP/IPハンドブック」(若林 宏:秀和システム)を読み返していた。
  P81の記述を見てに驚いた。

 ハブとハブとの間は、ツイストペア─ケーブルのクロスケーブルで接続します。

  その記述を読んで思わず

 マジかよ??  うそやろ??

  何せ、会社でハブとハブとの間は、ストレートケーブルで接続しているからだ。

社内LANの様子(一部)
社内LANでハブ同士はストレートケーブルで結ばれていた
上図のような接続をしている部分があります。
これらは、全てストレートケーブルで結ばれています。

  最初は本の内容を疑ったが、確かめる必要があると思った。

  さて、家に着いてから、ハブの説明書を読んでみると思ってもいなかった機能が
付いている事に気がついた。

  Auto MDI/MDI-X機能により、ケーブル(クロスケーブルまたはストレートケーブル)
を自動的に判別します。

  この時、MDIMDI-Xの違いがわからなかったので、どういう事なのかピンと来なかった。
  しかし、ケーブルの自動判別できるという記述から、次の事を思いついた。
  このハブとパソコンとの間をクロスケーブルで結んでも接続できるんとちゃうか?

私ができると思った事
パソコンとハブをクロスケーブルで接続実験
上図のような接続でも、うまくつながるのではと考えた。

  早く実験がしたい。しかし、家にはLANなんぞない。
  普段なら「やだなぁ。明日も会社かぁ」と思う所だが、この時ばかりは
「早く出社したい、早く実験したい」という気持ちだった ← おい!

ここで一つ暴露話
ハブの説明書に、ポートの部分を「RJ-45ステーションポート」と書いている。
最初、RJ-45は、ハブを生産したI-O DATAの独自用語かと思っていた。
しかし、後になり、関係ない所でRJ-45が出てきたので、あれっと思い調べると
10BASE-Tに使われるケーブルのコネクタの事を通称「RJ-45」という事がわかった。
そんな暗号みたいな名称で呼ぶかよと思ってしまった (^^;;

  翌日、ワクワクしながら出社した。そして、すぐに実験開始になった。
  まずは、I-O DATAのホームページからET-FSWHシリーズ用の共通取扱説明書を
ダウンロードした。http://www.iodata.jp/lib/

  そして、共通取扱説明書を読む事にした。
  ディジーチェーンポートステーションポートが出てきた。

  初めて知る用語だった  ← 何年、LANを触っているのだ!
  今まで、ハブの差し込み口に、2種類あったとは夢にも思っていなかった (^^;;

  ディジーチェーンポートステーションポートだが、別の言い方もあるので整理してみた。

名称の整理
ここで使う言い方別の言い方(1) 別の言い方(2)別の言い方(3)
ディジーチェーンポート MDIUplinkポート カスケードポート
ステーションポート MDI-X

  ここで整理しているため、説明書を読んで理解したと思われるが、
説明書を読んでいた時点では、複数の表現に混乱していた。
  後になって、頭の中を整理したのだが、文章を書いている都合、
ここで整理した物を出さないと、話が混乱するため、表を出す事にしました。

  ふと、思った。顧問の机に張り付けているハブは、口が1つだけ
独立した位置にあった事を。
  そこで、顧問の机に張り付けているハブを見てみた。

顧問の机に張り付けているハブ
ハブの口が1個だけ独立した場所にある

  ハブの口の所にディジーチェーンポートと書いてあった。
  今頃になって「へぇ、そんなのがあったのかぁ」と感心した。

  さて、I-O DATAからダウンロードした共通取扱説明書を読んでいると、
ハブとハブとの接続方法が書かれていた。

ハブとハブとの接続方法
ハブとハブとの接続でストレートケーブルで接続する場合、片方の口はディジーチェーンポートで、もう一方はステーションポートにつける
ハブとハブとの接続でクロスケーブルを使う場合は、両方ともステーションポート

  共通取扱説明書を読んで、初めて、ハブ同士の接続に規則がある事がわかった。
  本に書いてあった「通常、ハブとハブはクロスケーブルで結ぶ」の記述が
間違いでなかった事がわかった。(もちろん、実験で確認しました)
  この時、私は、次のような事を思った。

  なんで、今まで通信障害が起こらへんかったんやろ・・・

  だんだんLAN接続に関して、自信がなくなってきた・・・ (--;;
  そこで、社内にあるハブ同士が正しく接続されているか点検する事になった。


  ホコリが溜っている机の下に潜ったりした。そこで見た物は・・・

 奇跡としか思えないほど正しい接続をしている!

  ハブ同士の接続で、キチンと片方をディジーチェーンポートに差し込んでいて
もう一方の方をステーションポートに差し込んでいる。

  今まで、ハブ同士の接続に関する知識もなかった。LANの拡張時の時は、
適当なハブを買ってきては、ストレートケーブルで結んでいたのだから、
この時は「よぅ、トラブルが起こらんかったなぁ」と我ながら感心した。

  もう一つ、偶然にも、正しいハブ同士の接続をしている所を発見した。
それは、普通のハブとI-O DATAの自動MDI/MDI-X認識機能付きハブとの接続だった。

ハブとハブとの接続方法
ハブとハブとの接続方法

  このハブを購入した時は、私が、店頭にあったハブを見つけて買った物で、
特にハブについている機能は、意識していなかった。
  幸い、自動MDI/MDI-X認識機能付きハブを買っていたため、
そのハブが自動的に「相手のハブはステーションポートを使っていて、ケーブルは
ストレートタイプだから、ディジーチェーンポートにならないといけない」と
判断して、無事、接続がうまくいっている。
  もし、他のハブを購入していたら、つながらないという通信障害になっていたと思う。

普通のハブを買っていた時に起こっただろうトラブル
普通のハブを買っていた時に起こり得た障害

  自分でもビックリするほどの偶然で、LANに障害が起こっていなかった。
でも、社内のハブを調べている間に、ハブの事で試行錯誤した痕跡があった。

試行錯誤の痕跡
リピーターハブの口の形態
顧問の机に張り付いているハブは、ディジーチェーンポートと
その隣のステーションポートは、どちらかを使用していると
どちらかが使えない仕組みになっている。
でも、この手のハブが存在する事なんぞ、知らなかった私は
下図のような事をしていた。
つながらない口は故障という印をつけていた
実際のハブの写真
それだけでなく、ディジーチェーンポートから伸ているケーブルは、
別のハブのステーションポートに接続されている。
「なんで、つながらへんねん」と思いながら試行錯誤したと思う。
しかし、記憶にほとんどないなぁ・・・。

  ハブにこんな仕組みがあったとは知らなかったなぁと感心していると
別のハブは、スイッチで、ディジーチェーンポート(Uplink)とステーションポートが
切り替えできる事がわかった。

ディジーチェーンポートとステーションポートが
切り替えスイッチ型で変更できるハブ
切り替えスイッチでディジーチェーンポートとステーションポートの変更ができる
切り替えスイッチがあるハブの写真

  しかし、何も考えずに「Uplink」(ディジーチェーンポート)にしていたが
ここから伸るケーブルは別のハブにつながっているので、知らず知らずの間に
正しい設定をしていた。まさに偶然!


  さて、知らない事ばかり噴出したため、当初考えていた実験をするのを忘れていた。
  自動MDI/MDI-X認識機能付きハブに関する実験。

実験内容
ハブとパソコンの間をクロスケーブルで結んだ通信実験
上図のような接続でも、うまくつながるのではと考えた。

  早速、実験してみる事にした。結果は

 見事、成功!

  自動MDI/MDI-X認識機能付きハブだと、ケーブルの種類を意識する事なく、
ハブのポートの違いを気にする事なく、接続できる事がわかった!!

  社内のハブを見た所、幸い、ハブ同士の接続は下図のように、なっていた。

うちの会社のハブ同士の接続形態
社内LANのハブ同士の接続形態図

  これはLANの配線図を書かないといけないと思い、Visioを使って、
配線図を書くことにしたが、しかし、社内LANの全部のハブを点検したわけではない。
  それは、床に潜っている部分があり、そこの部分が調査できなかった。
そのため、中途半端なLANの配線図しか作れなかった・・・ (--;;


リピーターハブとスイッチングハブの違い

ところで、スイッチングハブという言葉が出てきたが、よく考えると、 普通のハブとの違いは何なのだろうか?  違いなんて、わからへん (^^;; そんな事、今まで考えもしなかった。 でも、I-O DATAの共通取扱説明に書いてあった。
リピーターハブとスイッチングハブの違い
リピーターハブ スイッチングハブ
リピータハブの場合、送信するパケットを全ての口から送信する スイッチングハブは、目的のパソコンが差し込まれている口のみパケットを送信する

  リピーターハブは、パケットを受け取った際、上図のように、ハブに接続された
コンピューター全てにパケットを送りつける。
  しかし、スイッチングハブは、目的のパソコンのみにパケットを流す。
  スイッチングハブは、MACアドレスを記録させる機能があり、
あらかじめ、どのポートには、どのマシンのMACアドレスが対応しているのか
記録されている。そのため、やってきたパケットの送り先のMACアドレスと
記録しているMACアドレスとを照らし合わせて、目的のマシンのみに
パケットを送る仕組みになっている。

  ここで、かなり脱線

  なぜ、コンピューターの名前が、yumi、takako、saki、kiroroなのか
  実は、私の好きな歌手の名前です。
  谷村裕美、岡村孝子、久保田早紀、Kiroro。

  家族には、岡村孝子、谷村裕美のファンだけで「オタク」と言われ、
Kiroroのファンだと「似合わない」と言われ、久保田早紀の曲(異邦人など)
を聞いていると、生まれてきた時代を誤ったと言われる・・・。

阪神ファンには辛かった岡村孝子ファンのメーリングリスト
かなり前に、岡村孝子のファンのMLに入っていた事があった。
当時、岡村孝子が巨人にいた石井と結婚。それ以来、阪神ファンである私は
流れてくるメールを見ては辛かった事がある。
石井が阪神戦で価千金のホームランを打った翌日、称賛のメールが流れてくる。
確かに、岡村孝子の旦那(今は離婚している)が打ったのだから、称賛のメールが
流れても、不思議ではないが、よりによって阪神戦に打つかよなぁと思った。
結構、石井は阪神相手だと活躍したので、MLにいるのが辛くなって脱退した (^^;;

  閑話休題

  リピーターハブとスイッチングハブの違いを書いたが、その違いによって
何が変わるのか。

リピーターハブの問題点
リピーターハブの問題点はパケットの衝突
takakoからsakiへパケット送信中に、yumiがkiroroへパケットを送ろうとする。
その時、takakoからきたパケットは、yumiの所にもやってくるため、
yumiからkiroroへ送信するパケットと衝突する事がある。
リピーターハブだと、パケット送信の交通整理ができないため、各所で、
パケットの衝突が起こり、それぞれのコンピューターはパケットの再送をする。
そのため、効率の悪いパケット送信となってしまう。

スイッチングハブ
スイッチングハブはパケットの交通整理を行うため衝突が発生しない
takakoからsakiへ送信するパケットは、sakiへしか行かない。
yumiからkiroroへ送信するパケットは、kiroroへしか行かない。
ハブがパケットについているMACアドレスを見て上手に交通整理しているため。
そのため、パケットの衝突が起こらず、効率の良いパケット送信となる。

  スイッチングハブを使うと、効率良くパケットを送信する事ができるため、
送信効率が20%ぐらい向上するみたい。
  しかし、私にはどれくらい効率が上がるのかを検証する力量がないので、
確かめる事ができない。
  「それぐらいできるようになれ!」という声があるかと思いますが、
そういう声には、次のように反論します。
  だって、事務員だもーん。わからなくて当然だもーん (^^)V


  さて、本当に、リピーターハブは、ハブに接続されている全てのマシンに
パケットを撒き散らし、スイッチングハブは、目的のマシンだけにパケットを
送信しているのか、自分の目で確かめてみたくなった。
  そこで、次の実験を行なった。

パケットを見る実験
リピーターハブがパケットをまき散らすのか確認する実験
Windows2000Proには、付属のパフォーマンス・モニタに、
パケットのモニター機能がついているので、モニター機能を使って、
パケットの送受信の状況を見てみることにした。

  まず最初に実際にパケットの動きを見るために、

パケットを見る実験
Windows2000Proから外部のホームページを見てみる
外部のホームページを見た時の送信と受信のパケットの様子
この時、Windows2000Proを、スイッチングハブにつけて見た。
青が受信。ピンクが送信するパケット。
ホームページを見に行くため、アクセス信号が出ているのがわかる。
そして、ほぼ同時に返答の信号が来ているのも、わかる。
秒当たりの平均パケット数らしいので、同時刻に起こっている現象に見えてしまう。

  具体的に何パケット飛んでいるのかまでは、わからないが、
結構、使えそうな感じはした。
  そこで、リピーターハブに接続したまま、パケットを撒き散らす様子を
観察してみる事にした。

パケットを見る実験
リピーターハブから各種パケットがまき散らされている様子
これを見る限り、撒き散らしている感じがする。
どこかでWebの閲覧や、データ送信が行なわれていると推測できる。
パケットの流量が減っている時は、あまり受信されない
結構、おとなしい時もある。
ほとんどネットワークが使われていない様子

  次に、Windows2000Proを、スイッチングハブに接続した場合をみてみると

パケットを見る実験
(スイッチングハブに接続の場合)
スイッチングハブは受信すべきパケットのみ送信してくる
だいたい、こんな感じ。パケットを撒き散らしている様子は見えなかった。

  この実験。厳密に行なっているわけでないので、かなり、いい加減さな部分が
あるかと思いますが、感じを掴むには良い実験だと思う。
  だって、私自身「なるほど!」と納得できたもーん (^^)V

  「もっと厳密に検証を行なうように」と、おっしゃる人がいるかと思います。
  そんな方には、私は次のように反論をします。

  だって、技術者じゃないもーん (^^)

  追求される前に、自分の職種を利用して逃げ道をつくるのが常套手段。
  でも、奮闘記を書くようになってからは「どこが事務員やねん」と突っ込みがきたり
場合によっては、職歴詐称とまで言われるようになった (^^;;
  いつまで「事務員だもーん」の言い訳が通用するのか、わからなくなってきた。

リピータハブとスイッチングハブの違い
(2005年10月に追加)
上で行った実験結果は正しい事が2004年に証明された。
Ethrealというパケットキャプチャのソフトを導入した事がきっかけだった。
このソフトは飛び交っているパケットをキャッチするための物で、
途中の経路にリピータハブを置いて、パケットを見る事ができる。
一見、データ転送の非効率な面が目立つが、パケット解析を行うには
威力を発揮するため、まだまだリピータハブは現役で使えるのだ。

  さて、スイッチングハブは、MACアドレスで判別する方法がとられている。
  ネットワークのレイヤー構造で、ハブのパケット送信処理を見てみると

リピーターハブとレイヤー構造
リピーターハブは物理層だけが関与している
物理層だけが関与している。
送られてきたパケット(電気信号)を受信して
減衰した信号を元気づけるため増幅し
増幅された信号を各ポートに流すだけの役目しかないからだ。

 では、スイッチングハブの場合を見てみる。

スイッチングハブとレイヤー構造
スイッチングハブの場合は、物理層だけでなくデータリンク層も関与するため、パケットのMACアドレスを見て、該当の送信先のある口のみ送信を行う
物理層とデータリンク層が関与している。
物理層ではリピーターハブと同様、減衰した信号を増幅している。
そして、データリンク層でMACアドレスのチェックを行なっている。
ハブが持っているMACアドレス帳を見て、該当のポートにだけ信号を送る。

  ここでレイヤー構造の下位部分について「なるほど、こういう物か」と
納得できる答えが得られた。

  スイッチングハブを導入すれば、効率の良いパケット送信ができる事がわかった。

  ここまで、さらりと文章を書いているので、比較的、順調に
LANの事を覚えていったと思われますが、実は、2回、誤解をした上で、
ようやく理解したのが実態だった。

  さて、ここからお得意の暴露コーナー

  どういう誤解をしていたか。
  実は、この章の題名は最初「仁義なきLAN内のパケット送信の戦い」に
する予定だった。その理由は次のような誤解をしていたからだった。

  それは、ハブの種類関係なく、パケット衝突が頻繁に起こると
思い込んでいたからだった!!

  つまり、スイッチングハブを導入していても、パケット衝突が頻繁に起こると
思い込んでいた。そんな誤解をしていたのには理由があった。

  以前からLANには、いくつかの接続形態がある事は知っていたが、
具体的に、どの形態が、どういう接続なのかは、わからなかった。
  2003年に最初になって、TCP/IPの本を読んでいたら、バス型LANの
接続形態が載っていた。

バス型のLAN形態
バス型のLAN形態
この図を見た時、うちのLAN形態と同じと思ってしまった。
なぜなら、普段からLANの配線図を書くとき、ハブなんぞ書かずに、
パソコンとケーブル配線しか書いていないため、それが頭に染み付き
バス型の接続形態を見た時、「うちの形態や!」と思ってしまった (^^;;

  でも、正しくはスター型の形態をとっている。

スター型のLAN形態と、社内LAN形態の比較
スター型のLAN形態 社内LAN形態
上の2つの図を見た時、とても社内LANの形態がスター型とは思わなかった。
そのため、スター型が、ハブを使ったLANの接続形態だとは思わなかった (^^;;

  上の誤解は、2003年9月までしていた。
  さて、題名を「仁義なきLAN内のパケット送信の戦い」にする話。
  それは、バス型のLANは、常にパケット衝突の問題にさらされているからだ。

バス型LANでのデータ伝送方法
バス型LANでのデータ伝送方法だとパケットの衝突が起こる
各パソコンがパケットを撒き散らすため、パケット衝突が頻繁に起こる。

  そのため、この章の題名を「仁義なきLAN内のパケット送信の戦い」にして
話のネタを書こうと思っていた (^^;;
  その誤解が解けたキッカケは、もう一度、TCP/IPの本を読み返した時だった。
  その時、一発で誤解が解けた絵を見た。

スター型LANの説明図
中央にハブがあり、そこから放射状にパソコンがつながっている形態
中心にハブがある絵を見たのと、ハブ接続がスター型と書いてあったので、
あっさりと誤解が解けてしまった (^^;;

バス型とスター型では、LANケーブルが違う
スター型のLANケーブルの写真
残念ながら同軸ケーブルは社内になかったが、同軸ケーブルと
パソコンを接続するT字型のコネクタは発見した。
うちの会社は、10BASE-Tしかない上、別に、このマシンは古くない。
なのに、10BASE2のT字型のコネクタがついていたので不思議だった。
コネクタの横には、10BASE-Tのコネクタの差し込み口がある。

  しかし、誤解が解けたが、本の説明でスイッチング方式と書いてあった。
その上、スイッチング方式でパケット制御しているという文を見て、
ここで、また1つ、誤解をしてしまったのだった (^^;;

 ハブを使うとパケットの衝突がなくなる

  誤解が解けたと思いきや、また、誤解をしていたのだった。
  この時「やばい、題名を変えんといかん」と思い、急遽、題名を変えた。
  折角、作ったパケット衝突の図とかが無駄になったけど、誤解していた事を
ネタに使えるなぁと思いながら、編集の方向を考えていた。

  この誤解が解けたのは、ある事がキッカケだった。

  上司が「スイッチングハブと普通のハブとは、どうちがうんやろか?」と
言ったのを聞いて、私は「そういえば、そうやなぁ」と思った。
  そこで、スイッチングハブと、普通のハブ(リピーターハブ)の違いを調べたら
スイッチングハブがパケット制御して、リピーターハブは制御機能がないため
パケットの衝突問題がある事がわかった。


  スター型LANの形態とバス型LANの形態との混同。
  ハブを全てスイッチングハブだと思い込んでいた誤解。

  ネタを書くために、前もって誤解しているのかと自分でも思ってしまうほど
回り道して勉強しているなぁと思う今日この頃 (--;;


リピーターハブの問題点とスイッチングハブの長所

そういえば、ディジーチェーンポートの事を、別名「カスケードポート」という。 そして、ハブとハブとの接続の事を「カスケード接続」と呼ぶ。 私は敏感に「カスケード」という言葉に反応した。  カスケードって、どういう意味? 早速、綴りを調べようと思ったが、LANの本には書いていない!! しかし、学生時代、私は物理学科にいた。学生時代に原子核物理の講義の 教科書として買ったが読まず(難しくて読めず)に、今も放置されている 「原子核物理学」の本を取り出した。 原子核乾板の話にあるはずと思っていたら、案の定、見つかった。 ここで物理学科卒業の利点が生かされたのだった! ちなみに、学生時代、原子核物理の講義は「不可」でした (^^;; 綴りは「cascade」だった。 そこで、英和辞典を調べてみた。念のため、英英辞典も取り出した。
「Cascade」を辞書で調べた結果
英和辞典を引いた結果、名詞としては「小滝、別れ滝」がある。
動詞では「滝のように流れる、段階的に行なう」という意味になる。

英英辞典では名詞の意味では次のように書いてあった。
a WATERFALL , esp One of several falling in stage down a steep slope with rocks
意味は滝で、特に、岩に当っていくつかに分流して流れている物の一つになる。
つまり「別れ滝」となる。
これを私の下手な絵で表現すると次の通りになる。
Cascade(カスケード)は滝に近いもの

  カスケード接続。滝の流れが岩に当って、流れが別れていくように、
配線もハブという分岐点から別れていく。しかも、ハブは階層的なので、
上から下へぶら下がっている感じになる。

カスケード接続
カスケード接続

  なかなか英語的には風流(?)な名称のつけ方だと思った。
  でも、日本語に訳すには、上手な訳がないなぁと思う・・・ (--;;
  「別れ滝」接続だと、しっくりこないし、「ネズミ講」接続だと名前が悪いし。


  カスケード接続について、本には、次の事が書いていた。
  カスケード接続は最大4段まで可能。逆に言えば、5段接続はできない。

カスケード接続の最大限度
カスケード接続の最大限度

  初めは、4段以上重ねると、ただでさえパケット制御ができないのに、
接続されるパソコンが増えるため、通信量が増えて、パケット衝突率が高くなり、
ダメになるのかと思っていたが、そうではなかった。

  パケット衝突というのは正しいのだが、通信量の問題ではなく、
衝突を検知してから、送信元に知らせるまでの時間が問題になるのだという。

送信元から一番遠く離れた所での衝突
送信元から一番遠く離れた所での衝突が発生

  パケットが衝突が起こると、衝突感知さて、送信元に送られる。
  それは、送信元が、そのパケットを送り終わるまでにしないといけないという。
  パケットの最小の大きさは64バイトなので、全て送信されるまでに、
パケット送信が検知されるまでに必要な時間は、パケットの半分が
送信されるまでの時間になる。
  つまり、32バイトのデータが送信される間の時間が必要になる。
  10Mbpsの場合、25.6マイクロ秒となる。

  さて、本にはケーブルとハブの遅延時間が書いてあった。

パケットの遅延時間
ケーブルとハブの遅延時間、即ち、送信元から一番遠く離れた場所から、
パケット衝突の信号が届くまでの時間を考えてみた。
4つのハブと、500mのケーブルの遅延時間は最大で11マイクロ秒。
25.6マイクロ秒と比較すると余裕があるように思える。
他にも、NICでの遅延時間などを考慮すると、これが限界なのかなぁと思う

  「なるほどなぁ、だからカスケード接続に制限があるのか」と納得したのだったが、
しかし、奮闘記を書いていると、厳しい突っ込みが来る場合のあるので、
安易には、わかった気にはさせてもらえない。ふと、私の疑問が出てきた。

  でも、衝突が起こって、衝突が感知されても、どうして慌てる必要があるのか?
  後続のパケットがやってきたって、別に、良いじゃないか。
  なんで、わざわざ短い時間に衝突を伝える信号を送信元へ送る必要があるのか?

  よく考えれば、LAN(イーサーネット)の場合、データリンク層で、
CRC計算でデータの誤りチェックが行なわれるし、IP通信の場合、
もう一つ上位にあるネットワーク層でも、誤りを調べるチェックサムがある。
  TCP/IP通信の場合は、もう1つ上位層(トランスポート層)でもデータの誤り調べている。
  後続のパケットがやって来たって、お構いなしに再送要求をしていたりする。
  なのに、パケットを全部送り終えるまでに、衝突を感知させる必要があるのか?

  最初、この疑問を解くだけの知識がないので、お得意の技で逃げようと考えたが
編集の最終段階になって、納得いく答えが見つかった (^^)
  それについては、後述しています。


  ハブとハブ(またはパソコン)との間のケーブルの最大長さが100m。
これはケーブル遅延の問題よりも信号の減衰が大きいのではないかと思う。
  ただ、データ通信速度が上がると、ケーブル遅延も無視できない。
  そこで、電気信号が500mの距離を駆け抜けるのに、どれくらいの
時間がかかるのか単純計算してみた。
  電気信号の速度は、光の速度と仮定しています。

電気信号が500mの距離を駆け抜ける時間
電気信号が500mの距離を駆け抜ける時間の計算式
結果は、1.7マイクロ秒と出た。最小パケットの半分が送信終了するまでに
25.6マイクロ秒と考えると、光の速度が無限大と考えるのに無理が出てくる。
実際、半導体技術で、集積化や高速化が進み、電気信号の速度が無限大と
考える事ができなくなりつつある。
1秒間に地球を7周半する光だが、この計算をすると「光は速くないやん」と錯覚する。


LANケーブルの特性と構造の秘密

ケーブルの事を見ていくと「ツイストペアケーブル」という文字が出てくる。 なんで「ツイストペア」という枕詞が付くのか? この部分にも興味を持った。 「ツイストペア」の訳として「より対」という意味がある。
ツイストペア
ツイストペアケーブル。螺旋状になっている
赤線と青線の2つの線がペアになって、螺旋状にしている状態を
ツイストペアという。
LANケーブルの中には、8本の線が入っていて、4つのペアの
螺旋状になったものが入っている。
でも、この絵を見ていると、LANケーブルよりも散髪屋の印に似てるなぁ (^^;;

  なぜ、わざわざ螺旋状にするのか。考えたら不思議だ。

  ここで助っ人を呼ぶ事にした。
  「図解LANハンドブック」(宮越 健、角田浩二:秀和システム)

  答えは助っ人の本に書いてあった。

ツイストペアの理由
ツイストペアにすると配線が出すノイズを打ち消しあう効果がある
ノイズが螺旋状のペアの所をくぐっている。
上の図のように、隣同士で起こったノイズが相殺してノイズを押さえる
仕組みをとっている。

  これだと「なんでやねん」となるので、拡大してみると

ツイストペアの理由:拡大版
配線から電磁波が発生する。これがノイズになるが、より対にする事で打ち消しあう
ノイズ(電磁波)の周辺を円を描くように、ノイズの作用になる力が働く。
しかし、隣では、ノイズの作用になる力が反対に働くため、結果的に相殺され
ノイズが押さえられるという仕組みになる。
初め、この図を見て「なるほどなぁ」と思ったが、ここは物理学科出身の私。
「ちょっと待てよ。どんな作用やねん」と思い、何の力が作用するか確かめた。
変動する電磁場を取り巻く形で起電力が起こる。作用する力は起電力で
これが信号のノイズという形になる。

  上で、あっさりと、わかったような書き方で、ノイズが乗る原因を書いたが、
実は、そうではなかった。
  調べる際に、電磁気学の本を取り出し、マックスウェルの方程式などを見たが、

 物理の知識は忘却の彼方だった (--;;

  そこで、母校の大学へ足を運び、お師匠様であるY教授に聞いてみたら
「私、忘れた」と笑っていた。そして「実験のプロのK先生に聞いたら」と言われた。
  K教授に聞きに行ったら「ツイストケーブルで、こういう方法でのノイズを
とる方法は聞いた事がないなぁ」と言った。
  研究室内の本棚を見て「電磁ノイズのはなし」(岡村迪夫:日刊工業新聞社)を
取り出したら、上の図と同じ説明が書いてあった。
  K教授に見せたら「うーん、ケーブルのねじれの内部を電磁波が通る場合だと
正しいかもしれんが、それだけじゃないから、どうなんやろ」と笑って言った。
  そして、最後には「計算する必要があるなぁ。頑張って」と言われた (--;;

  物理の教授が逃げたので、私は次のように言います。

  教授が逃げたので、事務員の私も逃げまーす!


  さて、ノイズの話が出てきたので、もう1つ、ノイズの話をします。
  実は、もう一つツイストケーブルにはノイズを押さえる効果がある事を知った。
その前に、そこに辿り着くまでの経緯も書くことにしました。

  さて、LANのケーブルのコネクタを見ていたら、8ピンある。
その中で、実際に使われているのは、4ピンで、後は使われていない。

LANケーブルの接続部分のピンの状態
接続部分の構造
4つのピンが上のように接続されている。
ストレートケーブルを例にあげたが、クロスケーブルの4つのピンを使っている。

  4つのピン、すなわち4本の線が信号を送っている事になる。
  この事を、初めて知った時は「へぇ〜、全部、使われていないのか」
と思っただけだった。
  しかし、時間を置いてみると、ふと次のような事を思った。
 待てよ、信号を送るのなら、2本で充分やないか?

私が思った疑問
LANの線は8本のうち4本使っている。複々線での使用だ
よく考えたら、全二重の通信だと、複線で充分のはずだが、
なぜか、複々線になっている。

  本に答えらしい物があったが、「差動で信号を送る」としか書いていなかった。
  これだと何の事なのか理解できないし、納得もできない。
  そこで、ネットで調べてみると、答えが見つかった。

複々線にしている理由
LANケーブルの線が複々線にしているのは、作動回路を使ってノイズを打ち消しあうため
本には電位差を信号として送ると書いていたが、電位差を信号にする意味が
よくわからなかった。でも、ノイズを押さえる理由は納得できた。
2つの線に流れる信号は、電圧は違っても、線の形状は同じなので、
信号に乗るノイズも、ほぼ同じと仮定できる。
そこで、あらかじめ、上のように電位差をつけて2種類の信号を送る。
そして、相手先についたら、2種類の信号の差を出して、元の信号に戻す。
その時、ノイズは上手に消去する事ができる。
実際、差動回路などを解読すれば良いのだが、電子工学は勉強した事がないため
差動回路の仕組みまで調べる気が起こらなかった (^^;;

  ノイズを押さえるため「ツイスト」にする方法と、複々線にする方法。
  普通に、数百円単位で手に入るケーブルに、こんなに技術が積まっていると思うと
こういう事を考えた人は凄いなぁと感心してしまう。
  
  ノイズの問題。今後、より技術者が頭を抱える問題になってくると思う。
信号の電圧を上げれば、それ自身がノイズを出すため、周辺機器に影響を与える。
  自分自身のノイズを押さえるのと、省エネのために、低電圧にすると、
周辺のノイズの影響をモロに受ける。下手をしなくても、信号よりも
ノイズの方が大きくなってしまう事もある。

  さて、私が大学時代に所属していた研究室でも課題になっていた。
自然界から出るノイズ。人工物から出るノイズ。観測装置自身が出すノイズ。
  院生・学部生が組んだ回路を使って、日夜、回路の特性や誤差を点検していた。
  実験に携わる機会のなかった私は、横で「大変だなぁ」と思ってみていた。

電子回路が全くダメな私
物理の実験系の研究室に所属していた私だが、電子回路は全くダメ。
オシロスコープの使い方なども全く知らない。
個人的には実験は好きなのだが、研究室に配属された時、
手先が不器用なため、教授に私が実験嫌いと誤解された。
そのため、シミュレーションとデータ解析をやる事になった。
結局、観測装置の回路を組んだり、特性確認をする事なく卒業したため、
電子回路関係は全くダメなままである (--;;


リピーターハブにおけるパケット送信と効率性

パケットの衝突の話が出てきた所で、当初、予定していたパケット送信の話を 書きたいと思います。 最初、私は、LANの形態がバス型だと思い込んでいたため、 衝突防止の方法の話などを調べていた。 もちろん、スター型でもリピーターハブだと衝突防止の話が必要になる。 ここで学術専門書(?)のような通信技術の本を取り出した。 「モバイルコンピューターのデータ通信」(山内雪路:東京電機大学出版) 本のタイトルには「モバイル」がついているが、有線のLANの話も書いてあり、 イメージ絵がわかりやすい。 さて、データの伝送効率を見るのに、LAN内に投入されたデータの総量と、 正常に送られたデータの総量を比較する方法がある。 つまり、どれくらい正常にデータ送信ができているかを見る。
トラフィックとスループット
送信したいデータ量と実際に送信できたデータ量

  さて、全く衝突防止の制御を行なわないパケット送信方法がある。
  Pure-ALOHA方式で、ハワイ大学で確立された方法なので「アロハ─」という。
  単純なネーミング。もし、東京だったら「こんにちは方式」で
大阪だったら「もうかりまっか方式」になるのかなぁと思ってみたりする (^^)

  ALOHA方式だと、LANに接続されている複数のパソコンが
パケットを送信した場合、パケットの衝突が起こる。
  しかし、何も制御しないので、複数のパケットが「我先に」と言わんばかりに
パケットを送信して、また、衝突が起こるというパターンに陥りやすい。
  その上、ネットワーク上にパケットが流れていても、お構いなしに
パケットを送信するため、自殺行為的な事までやってしまう。

  どれくらいの送信効率なのか理論式を書いてみると

Pure-ALOHAのスループットの式
Pure-ALOHAのスループットの式
ちなみに、物理伝送速度は、10BASE-Tだと10M。100BASE-TXだと100M。

  この式は、ポアソン到着である事を仮定しているという。
  導き方などは省略します。だって、面倒くさいもん (^^;;
  さて、式だけを見たのでは、なんの事やら、わからないので、グラフにしてみた。

Pure-ALOHAのスループットのグラフ
Pure-ALOHAのスループットのグラフ
10BASE-Tの場合、G=(LAN内の各マシンが送信するデータ総量)÷(10M)となる。
G=0.5の時(データ送信の総量が5M)に、データ転送可能総量が最大になる。
最大といっても、パケット制御されていないため、値は1.8Mとなる。
5M以上のデータを送信となれば、パケット衝突の確率が増えていくため、
相手先までパケットが届く割合が減るため、効率の悪いデータ送信になる。

  各パソコンが「我が先じゃー!」と言って、先を争ってパケットを出しまくったら
パケット衝突が多発して、なかなか届きにくくなる。
  ましてや、ネットワーク上に他のパケットが流れているかどうかはお構いない。
  まさに、これこそ

     パケット送信の仁義なき戦い!

  Pure ALOHA方式だと、無駄な部分がある。

Pure-ALOHAの無駄な部分
パケット衝突が送信時間を無駄にしている
各端末は、己れの好きな時にパケット送信しているため、上のような衝突が起こる。
最悪の場合、前のパケットの尻尾と後のパケットの先頭が衝突するため
お互いのパケットの送信時間分の合計時間、ネットワークが使えなくなる。

  そこで、Pure ALOHA方式の無駄な部分を改良したのが、Slotted ALOHA方式だった。

Pure-ALOHAのとSlotted ALOHAの比較
Pure-ALOHAのとSlotted ALOHAの比較
G=1の時、Slotted ALOHAだと、送信効率が最大の36%になる。
グラフを見ても、Pure ALOHAよりも効率が良いことがわかる。

  さて、Slotted ALOHAに改良された部分は、どこなのか、見てみよう!


Slotted ALOHAに施された工夫
Slotted ALOHAに施された工夫
どのマシンも時間を正確にして、T秒間隔の同期をとる。
そして、同期に合わせて「俺が先」とパケットを送信する。
この時、衝突が起こっても、損失時間はT秒だけになる。
欠点といえば、時間同期をとるため、パケットの大きさに制限があり
可変長パケット送信には向いていない。

  現在、この通信方法は、人工衛星との通信に使われていたりする。


  だが、やはりALOHA方式なので「パケットの仁義なき戦い」になってしまう。
無駄なパケット衝突を放置するわけにはいかない。
  そこで開発されたのがCSMA方式だという。

  これは、パソコンがパケットを送信する前に、ネットワーク上にパケットが
流れているかどうか確認して、流れていない場合は、パケットを送信する仕組みだ。
  それだと、流れているパケットに向かって、パケットを送信する自殺行為は
なくなるので、データ転送効率は良くなる。

  でも、完全に自殺行為(?)がなくなるわけではない。
  ネットワークにパケットが流れているか判断するのに、僅かだが時間がかかる。
この時間のズレが問題になる事もある。

時間のズレによるパケットの衝突
パケット送信にズレが生じるとパケットの衝突が起こる

  この問題は、解決できないみたい (^^;;

  さて、CSMA方式といっても、大きくわけて3つある。
  まずは、そのうちの一つの「Non-persistent CSMA」という方式から。
  この方式は、T秒間隔でネットワーク上に空きがあるか確かめて、
ネットワークに空きがあれば、データを送る方式をとっている。

Non-persistent CSMA方式のデータ送信方法
Non-persistent CSMA方式のデータ送信方法

  この方式の理論式を書くと

Non-persistent CSMA方式の理論式
Non-persistent CSMA方式の理論

  グラフに表すと、下図のようになる。

Non-persistent CSMA方式のグラフ
Non-persistent CSMA方式のグラフ
aの値が小さいとデータの送信の効率が良い事がわかる。

  aの値が小さいほど、データの送信の効率が良いのは、グラフからわかるが、
aの値って具体的にどれくらいという疑問を持った。

aの値って具体的にいくら?
具体的な値は、いくらやねんという事で、下図の例で考えてみた
>aの値の算出

  aの値を出してみた。ここで「一体、どれくらいの送信効率やねん」となるので
グラフを使って、Slotted ALOHA方式と比較してみる事にした。

Slotted ALOHA方式とNon-persistent CSMA方式の比較
Slotted ALOHA方式とNon-persistent CSMA方式の比較
Non-persistent CSMA方式のグラフは、aの値が0.1の場合にした。
トラフィック(ネットワークに投げ込まれたデータ総量)が
多くなればなるほど、Non-persistent CSMA方式の方が効率が良くなる。

  CSMA方式の方が、データ送信効率が良くなるので、だれが考えても、
CSMA方式を採用すると思う。
  ここで「あれって?」と思われた方がおられると思います。
  さきほど、Slotted ALOHA方式の部分で「人工衛星との通信に使われる」と
書きました。
  「人工衛星かて、CSMA方式を使えば、ええのに、なんで、Slotted ALOHA方式やねん」
と疑問に思われると思います。私も、同じように思いました。
  では、人工衛星にはSlotted ALOHA方式が採用されるのか。

  理由は、aの値に秘密があった。
  この値、ケーブル遅延(目的地までのデータ到着時間)に大きく依存する。

  ただ、人工衛星と一言で書いても、「ひまわり」のような静止衛星だと
高度3万6千キロを飛んでいるし、軍事衛星やスペースシャトルだと
高度400キロ〜600キロの上空を飛んでいる。

  そこで、今回は高度600キロを飛ぶ人工衛星の場合の、aの値を出してみた。

600キロ離れた場合の、aの値
600キロ離れた場合
aの値が約4000になっている。

  実は、aの値が1を越えている場合だと、Slotted ALOHA方式の方が
データ送信効率が良くなる特性がある。
  この場合、問題外なぐらい、aの値が大きいので、CSMA方式は採用されない。
  実際、私自身、手で計算してみて、納得した (^^)


  話を元に戻して、CSMA方式には3つあると書いたが、次に2つ目を紹介します。

1-persistent CSMA方式
1-persistent CSMA方式の図
常に、コンピューターが空き回線がないか、虎視眈々と狙っていて
空きがあると確認した瞬間、パケットを送信する。

  この方式は、Non-persistent CSMA方式のように、T秒ごとに、確認していたのでは
時間の損失が発生すると考え、常に回線の空きを確認するようにしている。
  しかし、この方式はデータ送信効率は、あまり良くない。
  理由は、複数のマシンが接続されている場合、もし、回線の空きがわかると、
何台ものマシンが同時に空き確認して、同時にパケットを送ってしまう事になる。
そのため、衝突が起こりやすくなってしまう。

  そこで、考え出されたものが、3つ目の、P-persistent CSMA方式だ。

P-persistent CSMA方式
P-persistent CSMA方式
回線に空きがあると確認できても、ここでパケットを投げるかどうか、
クジ引きを行なう。ハズレを引くと、T秒待って、当たりクジが出るまで、
T秒ごとにクジを引くことになっている。
クジが当たる確率が「P」なので、P-persistent CSMA方式という。
人間世界に例えると、譲り合いの精神で、狭い通り道に、一気に人が押し寄せると
混雑するし、下手をすれば、将棋倒しになってケガ人が出てしまう。
しかし、上手に譲り合えば、スムーズに通れるようになる。
ここでは、クジ引きが、譲り合いの役目を果たしている。

  P-persistent CSMA方式では、一定間隔ごとにクジ引きを行なう仕組みだが、
現在、10BASE-Tで使われているクジ引きの時間待ちは、別の方法を使っている。

クジ引きの時間待ち
パケット再送信の規則あり
あらかじめ、パケット再送信する時間を乱数(クジ)を引いて、決めておく
パケット再送で失敗が続くと、再送を見合わせるため、待ち時間を長くする
工夫をしている

  試行錯誤の上、いかに効率良くデータを送信しようとする姿が感じ取れる。
  しかし、衝突はなくならない。

  ところで、LANの本には、CSMAでなく、CSMA/CD方式という物が書かれている。

  後ろの「CD」には、次の意味がある。「Collision Detection」(衝突検出)
という意味だ。
  パケットが衝突が起こった場合、受信側で破棄されるのだが、
送信元がパケットが衝突した事を知らないと、パケットを最後まで送り続ける。

  Pure ALOHAで起こっていた無駄が、ここでも発生する。

CSMA方式の問題点
CSMA方式の問題点
CSMA方式の場合、パケット送信には時間同期はとられていない。
そのため、衝突が起こった場合、上図のような事が起こる。
最悪の場合、前のパケットの尻尾と、後のパケットの先頭が衝突するため、
お互いのパケットの送信時間分の合計時間、ネットワークが使えなくなる。

  もし、衝突が起こっても、上図のような事だけは避けたい。
  そこで、衝突検知器をつけて、パケットの衝突が起こると、
衝突が起こった事を知らせる叫び声(信号)を出す。

衝突が起こった場合、ノイズを出す
LAN内でパケット衝突発生
パケット衝突発生を知らせる信号をLAN内に告知
衝突を検知したkiroroは、パケット送信を止めて、LAN全体に
「衝突が起きた!」と叫び続ける。だいたい4マイクロ秒。
パケット衝突を告知
衝突の知らせを聞いたsakiも、パケット送信を止めて、LAN全体に
「衝突が起きた!」と叫び続ける。だいたい4マイクロ秒。

  衝突信号を送る理由。LAN内のマシンに「送信やめ!」と促すため。
  パケットの衝突が起こっているのに、マシンが最後までパケットを送り続けると
無駄が発生してしまう。その無駄を押さえる働きがある。
  そして、各端末が仕切り直して、「譲り合いの精神」でパケットの送信を行なう。


  ここにきて、ようやくLAN内で、リピーターハブは最大4つ、
ケーブルの合計が500mにする理由がわかった!!

  最小パケットを送り終える前に、衝突が起こった際に、衝突を知らせて、
パケット送信をやめさせて、LAN内の回線を空けるようにする。

  すげー、まわり道をしたが、納得できる答えが得られた (^^)V

  
  スイッチングハブの登場して、しかも、安価で購入できる事から、
新しくLANを組む時には、パケットの衝突を考慮する必要がなくなった。
  CSMA/CDは廃れていくのかというと、そうではない。

  実は、CSMAを基づいた技術が、無線LANで使われている。
  上で書いたCSMA/CDだと、無線LANには適用できないため、
改良した方法が使われている。

  ここで「ついでに無線LANもやっちゃえ!」という声もあるかと思いますが、
まだ、うちの会社に導入していないので、必要に迫られた知識ではない。
  そのため「無線LANには、隠れ端末問題などがある話を知ったけど、
無線LANは使わないので、詳しく調べる気が起こらない」で逃げる事にします (^^)


色々、調べている間に、わかってきた事が出てきた。 まず、ハブの説明書などを見ていると「IEEE802.3」という文字を見かける。 最初、ハブの事を調べ出した時は  一体、IEEE802.3って何? その時、google を使って調べてみた。 IEEEの意味は「The Institute of Electical and Electric Engineer」だという。 しかし、英文だけが並んでいると  だから、何やねん? となる (^^;; 日本語訳は「米国電気電子技術者協会」となる。 そこの協会で、LANの標準化のための委員会が発足した。 1980年2月に発足した事から、LANの標準化の委員会は「IEEE802」と 呼ばれるようになった。 単純だが、わかりやすいなぁと感心した。 ハブに書かれている規格名に「IEEE802.3」がある。 LANの標準化委員会にも、グループがあり、その一つということで、 IEEE802の後ろに、番号が付いているのだと思う。 今までなら、LANは10BASE-Tぐらいしか頭になかったのため、 なんで色々な分科会があるんやという風に思っていたが、今回のLANの解剖で、 使っている技術も機材も違っている事から、色々あっても不思議でないなぁと 思うようになった。 IEEE802の委員会の関係するものを見ていると、無線LAN(IEEE802.11)があるし 昔、LANで使われていたバス型(IEEE802.4)がある。 ただ、解せぬのがIEEE802.14だ。ケーブルテレビのプロトコル。思わず  どこがLANやねん! と突っ込みを入れたくなった (^^;;

リピーター、ブリッジ、ルーターとは何か?

最後に、わかった事を紹介しますと、ネットワークの本で、 リピーター、ブリッジ、ルーターの解説が書いてあったりするが、 今まで「なるほど!」と思う説明とは出会っていなかった。 しかし、今回、物理層、データリンク層といった話で、 頭の中をガラガラポンして整理されたせいか、ネットワークの本を読み返すと 「なるほど!」と思うようになった。
リピーターとは
リピーターの説明図
同じ規格(例えば、10BASE-T)同士でしか接続できない。
接続目的は、減衰した信号の増幅。
普通のハブの事を、リピーターハブと呼ばれるのは、ここから来ている。

ブリッジとは
ブリッジの説明図
別の規格同士の接続(例えば、10BASE-Tと10BASE2)の時に、
中継するために使う機械。LANの規格が違うと、通信方法が違うため、
データリンク層が関与している。データリンク層が関与するためビリッジという。

  データリンク層が関与する事から、スイッチングハブはリピーターなのか
ブリッジなのか、考えてしまう。
  どっちなんだろうか?

ルーターとは
ルーターの説明図
IP通信で、ネットワークが違う所同士と通信する場合
ネットワーク層が関与した接続装置が必要になる。
ネットワーク層が関与した接続機械の事をルーターという。

  「ネットワーク層が関与した接続機械の事をルーターという」に対して、
「ルーターでもポートを見て、パケットフィルタリングしているやないか。
トランスポート層も関与しているやないか!」と突っ込みをされる方も
おられるかと思います。
  トランスポート層も関与していたら「ゲートウェイ」というのですが、
文明が発達して、ルーターの機能が増えて、トランスポート層も関与できるが
固有名詞になった名称を変えられなくなったのが本当の所かも。

  文明の発達による機能追加で、厳密な区分ができない状態だなぁと思った。


ここでまとめ ちょっとLANの解剖を始めると、知らなかった事が噴出しました。 身近な物な上、普段、何気なく使っているため、まさに灯台もと暗しでした。 ケーブルのインピーダンスの話や信号の減衰の話など、調べたら、 もっと色々な事が出てくると思いますが、とても、私の手に負えないので、 一旦、解剖を中止する事にしました。 次回、LANの解剖をする時は、電子工学の知識などを準備した上で、 立ち向かいたいと思います。

次章:「ヤマハRTA55iルーターでVPN通信(PPTP)」を読む
前章:「バックアップ装置。CD-RW、RAID、UPSの導入」を読む
目次:Linux、オープンソースで「システム奮闘記」に戻る