実験! L2 スイッチは実用上、何個までカスケード接続可能か?

スイッチング HUB ではない従来の HUB (いわゆるダム HUB) は、100Base-TX では 2 段までしかカスケード接続できないという制約があるのは有名だと思います。


最近ダム HUB を使うことはほとんど無くなってきています。100Base-TX でも通常はスイッチング HUB が安価ですのでそれを使いますし (100Base-TX 用のダム HUB は見かけなくなってしまいました)、1000Base-T では規格上は CSMA/CD は残っていますが、事実上ダム HUB の実装はなく (たぶん)、ほぼ例外なく L2 スイッチを使用して LAN を組むと思います。

さて、それではいわゆる「スイッチング HUB」 (L2 スイッチ) は何段までカスケード接続することができるのでしょうか?
これについて、「何段カスケード接続すれば通信できなくなるのか?」という意味での回答は、「無制限」が正解かと思います。ダム HUB やリピータと違い、スイッチング HUB は原理上無限に多段カスケード接続することができます。

しかし、実際には、色々な解説書には「スイッチング HUB も数個カスケード接続をすることにより遅延が生じてしまうので、実用上は、カスケード接続は数段程度が上限」 などといったことが書かれている場合もあります。


確かに、LAN 内で遅延が数 msec 〜数十 msec も発生してしまうと、色々な LAN 上のアプリケーションの動作がもたつくなど、支障が出たりする可能性もあります。そういうことを避ける意味で、いくつかの解説書には、「スイッチング HUB を多段にカスケードすると遅延が発生し実用的でない」という解説がされているのかと思います。


それでは実際に何個くらいの L2 スイッチング HUB をカスケード接続すれば、何 msec 程度の遅延が発生するのでしょうか?
そういう実験は、昔からやってみたいと思っていましたが、わざわざたくさんの L2 スイッチを用意してカスケード接続して試してみるのは手間がかかります。また機種やメーカーによって結果が異なるかも知れません。数十個の L2 スイッチング HUB をカスケード接続すれば、何 msec 程度の遅延が発生するのか? という疑問は、高校生のころから持っていた疑問でした。L2 スイッチの仕様を調べて計算することはできるかも知れませんが、それは正確でないかも知れません。いつか実際に実験してみたいと思っていました。


そこで本日思い立って実験してみることにしました。 インテリジェント L2 スイッチとして、Catalyst 2970 を 1 台、Catalyst 3550 を 2 台、Summit 5i を 1 台、Summit 7i を 2 台、BS-G2016MR を 3 台、用意しました。また、普通の L2 スイッチ (ノンインテリジェントのもの) を 2 台用意しました。
インテリジェントスイッチは、ポート 1 とポート 2 を VLAN 1、ポート 3 とポート 4 を VLAN 2、…… というように設定し、次にポート 2 とポート 3、ポート 4 と ポート 5、…… を LAN ケーブルですべて物理的に接続することにより、1 台のンテリジェントスイッチで直列に多数回、1000Base-T のパケット受信・スイッチング・送信動作が発生するようにしました。

これにより、合計で 74 台分のスイッチング HUB を直列にカスケードした場合とほぼ同等の環境 を作ることができました。一応、記念写真を撮っておきました。大量の LAN ケーブル (75 本) が溢れるように乱雑に刺さっており、今にも抜けそうな具合ですが、実験であるためまあ大丈夫かと思います。



そして実際に、ある程度精密 (0.01msec 単位の精度) で、74 台分のポートを直列に超える形で遅延を測定してみたところ、おおよそ 0.55msec 程度でした。
すなわち、1 台のスイッチング HUB を多段カスケード接続することにより、約 0.008msec 程度の遅延 が発生するようです。
なお、もちろん上記環境でスループット計測したところ、0.97Gbps 程出ていました。

n 台のスイッチング HUB を多段カスケード接続する場合の遅延 = n × 0.008msec 程度

というのがだいたい成り立つということでしょうか。試しに上記の実験セットの途中部分で遅延を測ってみたりしましたが、どの機種でもほとんど同等程度の遅延時間のようでしたので、上記の式はおおよそ正しいのではないかと思います。


結論として、たとえば RTT (往復時間) が 1.0msec 以下である必要がある場合、ポート数の少ない安物の L2 スイッチで多段カスケード接続する場合のスイッチの直列合計台数は 60 台程度が妥当で、60 台程度を超えると 1.0msec 以上の RTT が生じてしまうということになります。ということは、通常は 60 台も L2 スイッチ をカスケード接続する事態は考えられない訳ですので、だいたい通常の範囲であれば、安物の L2 スイッチをたくさんカスケード接続して端末数を増やすという場合、それにより発生する遅延は問題にならないと考えることができるのではないかと思います。(もちろんできれば端末数が多い場合は、故障率の低下や、局所的にトラフィックが集中した場合におけるボトルネックのできにくさ等の要因から、ポート数が多い高級な L2 スイッチ等を使用するほうが良いと言えると思います。)


以上、ネットワークをやっている人であれば恐らく誰でも思いつくような、あまり役に立たないかも知れない疑問を、実際に実験してみて確かめた結果でした。