システム奮闘記:その106

全二重通信と半二重通信



Tweet

(2016年11月14日に掲載)

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

 ハブの種類を、大きくわけるとリピータハブとスイッチングハブがある。
リピーターハブとスイッチングハブの違い
リピーターハブ スイッチングハブ
リピータハブの場合、送信するパケットを全ての口から送信する スイッチングハブは、目的のパソコンが差し込まれている口のみパケットを送信する
リピーターハブはパケットを接続されているケーブルに対してパケットを送る
スイッチングハブは目的にパソコン方面にだけパケットを送る

 古い時代のハブはリピーターハブで、現在、主流なのはスイッチングハブだ。

 リピーターハブはパケットを撒き散らす事から

 バカハブ

 とも言われている。

 だが、欠点を逆手に取る事もできる。
 それについては、後で出てきます社内LANの調査をご覧ください。


 リピーターハブは半二重通信を行い、スイッチングハブは全二重通信を行うのだが

 そんな事、知らへんかった

 なので、半二重通信と全二重通信は何なのかを見ていく事にした。


半二重通信と全二重通信

 LANの通信方式に、半二重通信(Half duplex)と全二重通信(Full duplex)の違いがある。  半二重通信とは以下のようになる。
半二重(Half duplex)
半二重(Half duplex)通信
一方通行での通信になる。
電車で例えると、単線になる。

 全二重は以下のようなものだ。

全二重(Full duplex)
全二重(Full duplex)通信
同時に双方向の通信が行なえる。
電車で例えると複線だ。

 それぐらいは知っていたのだが
実際に・・・

 どんな時、半二重通信になり

 どんな時、全二重通信なるのか

 全く考えた事があらへん

 なのだ。

 そこで調べてみる事にした。
 するとリピーターハブの場合、常に半二重通信である事がわかった。

 なぜリピーターハブが半二重なのかを調べてみた。


パケット衝突

 リピーターハブはパケットの衝突をすると言われているのだが それは・・・  疑似衝突に過ぎなかった!!  実際には、パケットは衝突していないのだ。  1週間で学ぶネットワークの要点 - 解剖 100Mイーサネット 第3回:ITpro(日経ITPro)  ASCII.jp:Ethernetで通信をスムーズに行なう工夫とは? (1/3)|入門Ethernet(ASCII.jp)  UBとスイッチングHUBの違い | コレガ(Corega社)  なぜ、疑似衝突にする必要があるのか?  それには、LANの歴史を遡る必要があった。  私が知らない昔のLANの時代に遡る。  当時は、10Base-5/2の時代で、LANケーブルは同軸ケーブルが使われていた。
10Base5/2時代に使われていた同軸ケーブル
10Base5/2時代に使われていた同軸ケーブル
同軸ケーブルは、テレビのアンテナケーブルに使われているが
昔はLANケーブルも同軸ケーブルだった。
ただし、その時代、私はLANを使っていないので実物は見た事がないが。

通信に使うのは、ケーブルの真ん中にある芯線だ。
そのため通信線は1本になる。

 ところで

 同軸ケーブルは

 そこでネットを調べてみる事にした。

 空間伝導と対策 | ノイズ対策 基礎講座 | 村田製作所
 測定器玉手箱 計測に関する知識 | 計測器、パソコンレンタルのオリックス・レンテック
 ケーブル基礎講座  ブラックボックス・ネットワークサービス株式会社


同軸ケーブルの中身
外側に絶縁体があるのは、外部の電磁波(ノイズ)を防ぐためにある。
外部導体(シールド)は、銅製で、外部からの電磁波(ノイズ)や
通信の際に内部で発生した電磁波(ノイズ)を吸収する役目がある。

 LANケーブルの歴史は、電磁波との戦いの歴史とも言える。


 もちろん同軸ケーブルの場合、今のパソコンのLANカードの
差し込み口とは異なる。

10Base5/2時代のLANの差し込み方法
スター型のLANケーブルの写真
2003年に「システム奮闘記:その24」を書いた時に撮影した物だ。
当時、社内に10BASE5/2のT字コネクタがついていたパソコンがあった。
ただ、社内では10Base-TのLANしか敷設していないため
同軸ケーブルはなかった。


 同軸ケーブルは通信線が一本しかなかったため、以下の図のような
電気信号の衝突が起こっていた。

10Base5時代のLAN
10Base5時代のLAN
一本の線でつながっていた。
ケーブルの両端にはターミネータ(終端抵抗)がある。
信号の反射による信号の乱れを防ぐための物だ。

 1本しか信号線がないため、2台のパソコンが同時に信号を送ると
以下のように、信号同士が衝突してしまう。

信号同士の衝突
10Base5時代は信号同士の衝突があった
1本の信号線がないため、2台同時に信号を送ると
途中で衝突してしまうのだ。

 ここで同軸ケーブルと終端抵抗の話が出てきた。

 同軸ケーブルの仕組みや終端抵抗の話について書き出すと
 結構な量になるので、ここでは説明は省略して、別枠で「同軸ケーブル」で載せました。


衝突回避のためのCSMA/CD

 同軸ケーブルの時代、パケットの衝突回避のために CSMA/CDという技術ができた。  「システム奮闘記:その24」(LANの設定・仕組み)でも載せてみたのだが 大して調べていないため、どんな話か説明できないため、調べてみた。  イーサネット(Ethernet)のしくみ(2) −CSMA/CD方式− - ネットワークエンジニアを目指して  CSMA/CD(その1) TCP/IP入門(@network)  ASCII.jp:Ethernetで通信をスムーズに行なう工夫とは? (1/3)|入門Ethernet  CSMA/CD  CSMA/CDなのだが、言葉の意味を知らねばならない。  以下の略だという。  Carrier Sense Multiple Access with Collision Detection  だが、英語だとわからん。分解して日本語にすると  信号感知(Carrier Sense)、複数の接続(Multiple Access)、衝突感知(Collision Detection)になる。  日本語訳は  衝突検出を用いて、複数のパケット送信信号を検知する  そのまんまなのだ。  英語のままだと理解しやすい話が、アルファベットの略語やカタカナだと 意味不明になってしまうので、理解の妨げになってしまう。  CSMA/CDの概略は以下のようになる。
パケットが飛んでいない状態
CSMA/CD パケットが飛んでいない状態
パケットが飛んでいない状態なので
どのマシンも、いつでもパケットを飛ばせる状態なのだ。

 あるマシンがパケットを送信した場合を見てみる。
 全てのマシンにパケットが送信されるのだ。

全てのマシンにパケットが送信される
CSMA/CD 全てのマシンにパケットが送信される
送信されたパケットは、LANに接続されている全てのマシンに送信される。
受け手のマシン以外は、パケットを受け取らずに破棄するのだ。

 LANのケーブルだが、10Base-5/2の時代は、同軸ケーブルだ。
 鉄道だと単線になる。


 2台のマシンが「信号がない」と検知して、同時にパケットを送信すると
衝突が発生する。

パケット衝突が発生
CSMA/CD 2台のマシンがパケット送信をして衝突が起こる
2台のマシンが「信号がない」と検知し、同時にパケットを送信すると
パケットの衝突が起こってしまう。

 衝突が発生したら、送信元はパケット衝突を感知して
パケット送信を終了し、衝突発生信号(JAM信号を流す)

衝突発生信号(JAM信号を流す)
衝突発生信号(JAM信号を流す)
パケット送信元は、パケット衝突を検知する。
どうやって検知するかは、調べてもわからなかったが
どうやら衝突が起こった際、異常な電圧を検知ためのようだ。

そして衝突発生を知らせる信号(JAM)を流すのだ。

 そして再送信するまで、ある程度の時間(一定ではない)、待機するのだ。

 流れ図に書いたら、以下のようになる。

CSMA/CDでのパケット送信の流れ
CSMA/CDでのパケット送信の流れ
パケット衝突が16回、連続したら、送信失敗になるのだが
そんな話は知らなかった。

 待機の時間だが、一定ではない。
 10Base-Tの場合、以下の方法で待ち時間が決められている。

CSMA/CDでのパケット送信までの待ち時間
CSMA/CDでのパケット送信までの待ち時間
再送信の際、衝突が起こりにくくするための工夫のようだ。
「システム奮闘記:その24」で、この式を載せているのだが
当時は知識がないので、載せるだけで、
理論的な裏付けは書いていなかった。

もちろん、今も理論づけはできないので、逃げる事にするのだ!!

 ところで、CSMA/CDだが、知らなくても、問題がなくなる。
 その理由は後述しています。


リピーターハブと疑似衝突

 同軸ケーブルの場合、信号線が1本しかないため パケットが衝突する事はわかった。  だが、10BaseTと100Base-TXの場合、LANケーブルは8本の信号線があり そのうち4本が使われている。
10BaseTと100Base-TXの場合、8本のうち4本が通信に使われる
ストレートケーブル 10BaseTの場合、8本のうち4本が通信に使われる
10BaseTで、ストレートケーブルを使った場合、上図のように
4本の通信線が、データ通信に使われる。

 よく考えると4本の通信線が、データ通信に使われている。
 鉄道で例えると複々線だ。しかも上下とも線が分けられているので

 パケットの衝突が起こりえない!

 のだ。


 以前から、なんとなく気づいていたが、そこから先は調べていなかった。
 そこで今回は調べてみたら、以下の事がわかったのだ。

リピータハブは全の端末にパケットを送信する
リピータハブは全の端末にパケットを送信する
リピーターハブは、上図のように全ての端末にパケットを送信する。

 そのため同時に2ヶ所以上からパケットが送られると処理ができない。
 そこで以下の図のように、衝突があったように見せているのだ。

リピーターハブの疑似衝突
リピーターハブの疑似衝突
2つ以上の端末からパケットが送信された場合
ハブはパケットの処理ができないため
パケットの衝突が起こったようにしている。

 そしてリピーターハブは、全端末にパケットの送信を中断するように
ジャム信号を送信する。

全ての端末にジャム信号を送る
衝突の際、リピーターハブは全ての端末にジャム信号を送る
「ジャム」(jam)とは「詰まる」とか「渋滞」の意味がある。
「今、パケットが詰まっていて、送信できない」の信号を送る事で
全端末にパケット送信をしないように合図を送っているのだ。

 リピーターハブの場合、実際にはパケットが衝突しないが
2台以上のマシンが同時にパケット送信ができないために、
パケット送信中断要請として、疑似衝突という形をとっている。

 同時ケーブル時代の技術を応用して使っているのだ。


半二重通信とリピーターハブ

 今まで10BaseTに半二重通信があるのに疑問に感じなかった。  だが、よくよく考えると、10BaseT以降では双方向の信号線が 同時に使えるので、全二重通信だけでも良いのに、半二重通信があるのに 疑問に感じるようになった。  確かに、同軸ケーブルは信号線が一本しかないため 双方向の通信を行なうために、必然的に半二重になる。  そこで10BaseTでも半二重がある理由を調べてみると なんと・・・  リピーターハブの場合、通信は全て半二重  だった。  なぜリピーターハブの場合、通信が半二重になるのか理解できなかった。 だが、少し時間を置いたら、なるほどと思う理由である事が理解できた。  リピーターハブは、2つ以上の端末からパケットを送られると処理できない。  もし、リピーターハブが全二重だった場合、以下の事が起こってしまう。
もし、リピーターハブが全二重の通信が可能な場合
もし、リピーターハブが全二重の通信が可能な場合
パソコンAからパケット送信中、リピーターハブは
他の全てのパソコンにパケットを送信する。

もし、全二重通信が可能なら、パソコンAがパケット送信中
リピーターハブがパソコンAから来たパケットを
他のパソコンにパケットを送信している間も
パソコンEからもパケットが送信できてしまう。

 そんな場合、2ヶ所のパソコンからパケットを送信してしまうので

リピーターハブが全二重可能だと疑似衝突が起こってしまう
リピーターハブが全二重可能だと疑似衝突が起こってしまう
パソコンAとパソコンEからパケットが送信されてしまうため
リピーターハブは、同時に送られてきたパケットが処理できず
疑似衝突にせざるえなくなる。
そしてパケットの送信をやりなおすため、無駄が発生してしまう。

 そのためリピーターハブは半二重通信にする必要があるというのだ。


 だが、半二重通信は見かけなくなった。
 リピーターハブは過去のハブになり、現在ではスイッチングハブが主流。

 2016年の今、この話は技術回顧録になっている感じがしたりするのだ。


LAN入門:目次
ストレートケーブルとクロスケーブル LANケーブルのストレートタイプとクロスタイプの違いを書きました。
リピーターハブとスイッチングハブ リピーターハブとスイッチングハブの違いと、全二重通信と半二重通信の話です。
10Base-T以降では、パケット衝突は、実は擬似衝突などを書いています。
社内LANの調査 2005年に、ブラックボックス化した社内LANを解明した話です。
オートネゴーシエーション 10Base-T、100Base-TX、1000Base-Tなどが混在する環境で
どうやって通信制御を行っているのか
その仕組みを書きました。
LANケーブルの規格 CAT(カテゴリー) LANケーブルの規格のCAT(カテゴリー)の違いを書きました。
データ送信とデジタル信号の符号化 LANケーブルを信号が伝わる際、どうやってデータ送信をしているのか。
デジタル信号の周波数を抑えながら、高速で信号送信する技術を書きました。
10Base-T、100Base-TX、1000Base-Tについて書きました。
データリンク層 LAN内のパソコンや通信機器同士の通信はMACアドレスが使われています。
それを司るデータリンク層について書きました。
表皮効果と近接作用 LANケーブル内で起こっている信号減衰の原因が
表皮効果と近接作用である事と
LANケーブルの撚り線が、ノイズ対策なのを書きました。
ツイストペアとノイズ対策 LANケーブルがツイストペア(撚り線)なのはノイズ対策のためです。
その話を書きました。
差動回路とノイズ対策 LANケーブルは8本あり、データ通信は複線で行っています。
差動回路を使ったノイズ対策の話を書きました。
同軸ケーブルの仕組み 昔のLANに使われていた同軸ケーブル。
現在でもテレビのアンテナに接続する線として使われたりしています。
同軸ケーブルの仕組みや特性インピーダンスの話を軽く触れました。
発振回路 クロック信号を作る発振回路の説明です。
簡単なLC型コルピッツ発振回路を使って説明しました。


目次:「LAN入門 LANの基礎」に戻る
前章:「電磁気学入門」を読む
目次:システム奮闘記に戻る