唐突ですが、友人から、このようなものをいただきました。
ネットワークスプリッターと呼ばれるアイテムで、ネットワークにおいてはハブのように 1 つの LAN ケーブルを複数本に増加させ、より多くの端末が接続できるように...というアイテムと思われます。
このアイテムは 3 台の端末を同時に扱えるもの...と思いきや、友人曰くそうではないようです。何故こんなことが起こるのか、調べていきましょう。
ネットワークスプリッターの詳細
まず、取り扱っている線について確認しましょう。橙、赤、緑、白、水色、黄色、茶色、紫の 8 本の線からなるものであることが分かります。重要ではないですが、より線ではなく、単線ですね。あと、「CAT7」と記載が。
CAT7(Category 7 Cable)は LAN ケーブルの規格なのですが、本当にそうなら結構不便な点が...
ただ、冒頭の画像ではよく見ると「RJ45」と記載があります。この RJ45 というのは LAN ケーブルのコネクタの企画です。
CAT7 では RJ45 コネクタが使えません。つまり厳密には嘘です。
ただ、これは慣習的なところもあり、CAT7 と記載があるが RJ45 コネクタが入っていて、厳密な定義では違うやんけ!ということはよくあることです。
実際にどこ基準の物であるかについては、測定を行う必要があります。今回は「複数台でネットワークに同時につなげるか」を主題とするため、取り扱いません。本当はケーブルカラーも指定があるはずなのですが、守っていない可能性があります。
Ethernet の衝突回避ロジックと推測
このネットワークスプリッターが直接取り扱うのは IP パケットではなく、Ethernet データフレームです。
この Ethernet には CSMA/CD と呼ばれる、データフレームの衝突検知の仕組みが備わっています。
ただ、これは半二重通信と呼ばれる、データの送信と受信が同じ線で行われていた時代の仕組みです。現代において 1000BASE-T/10GBASE-T が要求される世界では、送受信は異なる線で行われており、そのために8本4対の線を利用しています。衝突なんて起きないはずなんです。
ネットワークスプリッターの仕様について、スイッチング機能を有している場合、スイッチングハブと呼ばれるものになります。
この場合、本当に複数の端末を 1 つのケーブルにまとめ、それぞれがネットワークに接続することが可能です。ただし、送信先の判別、振り分けのために電源が必要なはずです。よって違う可能性が高いと考えられます。
分解をしている訳では無いので、推測ではありますが、最悪下記のような配線になっている可能性があります。
この場合、リピータハブと呼ばれるものとほぼ等価になります。リピータハブは、ポートに接続されたデバイスからの信号を増幅、他の全てのポートに送信するだけ、というものです。現代では使われません。
ただし、本来のリピータの役割(信号の強化)を行わないので、本当にハブ、リピータハブ以下の代物かもしれません。
もう一つ、異なる配線である推測が可能です。100BASE-T という規格では4線2対で通信を行います。荒業ではありますが、8 線のうち 4 線を分岐先 A へ、残りの 4 線を分岐先 B へ配分することで、無理やり 100BASE-T による同時通信を可能とします。
...分岐先 C どうするねん。12線ならいけたんですけどね...ということで基本的には前者が濃厚な説となります。
ただ、これがやられているかを確認する価値はあるかもです。
確認方法 1: 抵抗値を測定
正直申し上げますと、自宅で LAN ケーブルを直接刺すノートパソコンが無く、変換アダプターの注文が必要でした(絶対に使うもののため、購入したことに後悔はありません)。
それが届くまでの間、「異なる配線」の否定のために考案された方法であり、推奨されたものではございません。
自宅にテスターがあったため、分岐先 1/2/3 の一番左の端子同士の抵抗値を測定します。上記画像のように、雑につながっているのであれば、抵抗値は 0 を、繋がっていないのであれば大きな値を示すはずです。
結果
「x」は他の箇所で計測しているため、使用しないことを指します。
| 分岐先 1 | 分岐先 2 | 分岐先 3 | 抵抗値 |
|---|---|---|---|
| 一番左 | 一番左 | x | 0 |
| 一番左 | 一番右 | x | >2M |
| 一番左 | x | 一番左 | 0 |
| 一番左 | x | 一番右 | >2M |
| x | 一番左 | 一番左 | 0 |
| x | 一番左 | 一番右 | >2M |
あくまで「一番左」の端子がどこと繋がっているかの確認であり、これが否定として十分に機能すると断言は出来ないのですが、ほぼほぼ前者の「リピータハブのリピータ抜き」で確定かと思われます。
確認方法 2: iPerf3 での速度計測
そもそもノートパソコンのように、常に何かしらの通信をしているような端末を使った実験でいいのか?という疑念があるのですが、一般的な検証方法としては分岐先に端末を接続し、通信方法を測定する方法だと思います。
理論的にはこちらの手法で、極限まで送信するデータフレームを減らした方が良いと思われます。現状部品を持っておらず...
今回、自分の環境では親側(分岐元)はルーターに接続、そのまま無線で繋がっている Windows へつなぎます。
そのため、親との通信では Wi-Fi による無線通信がボトルネックになっている可能性があります。分岐先 1/2/3 では CAT6 ケーブルを利用しています。
また、分岐先 1/2/3 は Windows/MacOS が混同されているため、通信量に数倍(2~3 倍程度)の差があることが想定されています。
これは、Windows では iPerf3 をそのままサポートしておらず、Cygwin によるエミュレーションを挟んでいます。これによりスループットの低下が想定されるためです。
ただ、今回確認すべき事項は「通信出来るか/出来ないか」というレベルから始まる問題であるため、問題無いとは思っています。
結果
それぞれ利用する(計測対象とする)場合はその OS を、利用しない場合は x を記載しています。
| 分岐先 1 | 分岐先 2 | 分岐先 3 | 親 | 速度 |
|---|---|---|---|---|
| Win | x | x | Win(Wi-Fi) | 694Mbits/sec |
| x | Win | x | Win(Wi-Fi) | 735Mbits/sec |
| x | x | Win | Win(Wi-Fi) | 680Mbits/sec |
| Mac | x | x | Win(Wi-Fi) | 290Mbits/sec |
| Mac | Win | x | x | 測定不能 |
| Mac | x | Win | x | 測定不能 |
計測しようと思ったのですが、そもそも分岐先 1/2/3 に複数端末を接続した瞬間に両方の端末でネットワーク通信が一切できなくなってしまいました。恐らく懸念していたデータフレームの衝突によるものと考えられます。
この際、WireShark を用いてパケットの解析も試みましたが、記録がそもそも残らなくなってしまうようです。まぁデータフレームレベルで「通信が正常に出来ていない」と判断されていると思うので、それはそうだと思うのですが。
ちゃんとデバッグするためには、やはりオシロスコープなどの道具が必要になるかもしれないです。
https://download.tek.com/document/Serial-Debugging_AN_48Z_19040_212.pdf
個人的に気になった点として、Windows は iPerf3 を公式にはサポートしていないと思われます。そのため、Win-Mac よりも Win-Win の方が遅いと思っていたのですが、何故か速い計測結果が記録されたこと。OS 間の差によりパケットサイズなど、送信された内容に違いがある可能性がありますが、原因は不明です。
まとめ
今回取り扱ったネットワークスプリッターは、極端な表現をすると「リピータハブのリピータ抜き」といったものであることが分かりました。
特にネットから部品を購入される際は、どのような部品であるか、しっかり確認をしてから注文するようにしましょう!


