スイッチの処理性能
目次
「スイッチ」と一口でいっても・・・
スイッチは、現在のLANではもう欠くことができないほど、必須のネットワーク機器です。スイッチの呼び方は、「スイッチングハブ」とか「LANスイッチ」とか、「レイヤ2スイッチ」とか・・・またまた「レイヤ3スイッチ」とかレイヤ~スイッチというのもたくさん聞くことがあると思います。
一口にスイッチといっても、スイッチには、家庭でも利用できるような4ポート程度の製品から企業内のバックボーンで利用されるような数百ポートも備わっている製品があります。シスコの「Catalyst」というスイッチをとってみても、比較的小規模な環境向けのCatalyst2950シリーズというスイッチから、大規模向けのCatalyst6500シリーズといったさまざまなラインアップがあります。
ちなみに、Catalyst6500シリーズはこんなのです。
こういったさまざまなスイッチがどれだけの性能を持っているのかということを知るために、必要な知識を解説していきます。
処理性能の「キーワード」
まず、スイッチの処理性能を考える上でのキーワードがあります。キーワードは次のとおりです。
- スイッチング能力 pps(packet per second)
- スイッチング容量 bps(bit per seconf)
- ワイヤスピード
- ノンブロッキング
これらのキーワードのうち、まず今回は、「スイッチング能力」「スイッチング容量」の2つについて説明します。
スイッチング能力-PPS(Packet Per Second)
スイッチング能力は、pps(packet per second)という単位で表されます。単位を見ると、
「1秒間あたりのパケット」
です。本来、スイッチはデータリンク層のネットワーク機器なので、処理する対象は一般的には「フレーム」と表現されるべきですが、「パケット」と表現されています。パケットであるか、フレームであるかは本質的な問題ではないです。大事なことは、スイッチング能力とは、スイッチが1秒間に処理することができるフレームの「数」を表していることです。
スイッチング容量-BPS(Bit Per Second)
そして、スイッチング容量はbps(bit per second)の単位で表現されています。こちらは、
「1秒間あたりのビット」
です。スイッチ内部では、ポート間でフレームの転送を行う必要があります。ポート間でフレームを転送するための内部的な帯域幅をスイッチング容量と呼んでいます。つまり、スイッチング容量はスイッチが1秒間に処理する「データ量」を表していることがわかります。また、スイッチング容量は、「バックプレーン容量」や「内部バス速度」「スイッチングファブリック」などと表現されることもあります。この辺の言葉の表現は、各ベンダによって違うことがよくありますので、気をつけてくださいね。
どれぐらいの数値があれば???
スイッチング能力、スイッチング容量の数値が大きければ大きいほど、それだけ高性能な機器であるということになります。それにつれて、価格もどんどん高くなってしまいます。小規模な環境では、そんなに高性能で高価格なスイッチは必要ないかもしれません。
どれぐらいの数値があればいいのか?ということを判断するために、次回以降でまず必要となるスイッチング能力の数値を判断するための「ワイヤスピード」「ノンブロッキング」の意味、そして、スイッチング容量の必要となる数値を見ていくことにします。
「ワイヤスピード」ってなに?
スイッチのカタログを見ると、「ワイヤスピード・ノンブロッキングで転送」と銘打っているものをよく見かけます。
じゃ、ワイヤスピードっていったい何でしょう?なんとなく、「すっげー速い!」というイメージがつきますが・・・
ワイヤスピードとは、理論上の最大の転送速度を指しています。たとえば、100Mbpsのファストイーサネットであれば、ワイヤスピードは100Mbpsです。通常は、データは絶え間なく流れているわけではなくて、流れているときもあれば、流れていないときもあります。考えられる最も負荷がかかるときが、絶え間なくデータが流れている状態です。その状態を「ワイヤスピード」と呼んでいます。
では、ワイヤスピードで転送するときにスイッチにかかる負荷を考えてみましょう。しかし、イーサネットフレームは長さが一定ではなく可変長です。どのパケットサイズを基準に考えればいいのでしょう?
こういったケースでは最も負荷がかかる場合を基準に考えることになります。フレームサイズが小さければフレームの数が増加するので、最小の64バイトのフレームを送信するときに最も負荷がかかることがわかります。したがって、100Mbpsのワイヤスピードで転送するとき1秒間あたりのフレームの数を計算してみましょう。
ただし、ここで注意することはイーサネットフレームの前に電気信号の同期を取るためのプリアンプルとSFD(Start Frame Delimeter)が合わせて8バイト付加されていることです。そして1つのフレームの後にすぐに次のフレームがやってくるわけではないということです。フレーム間には、12バイトのIFG(Inter Frame Gap)が必要です。もともとイーサネットはひとつの通信回線を他のコンピュータと共有するので、必ずフレーム間ではIFGだけあけてからデータを送ることになっています。
ワイヤスピードでの転送を別の観点で見ると、IFGのあとにすぐに次のフレーム(パケット)がやってくることと考えてもいいでしょう。1つフレームを転送すると、IFGだけおいてすぐに次のフレーム。また、IFGだけおいて、すぐに次のフレーム・・・といった感じでデータ転送が行われている状況です。
1つのフレームを送信するためには8バイト(プリアンプル、SFD)+64バイト(イーサネットフレーム)+12バイト(IFG)で合計84バイト=672ビットを転送するだけの時間が必要ということになります。このことから100Mbpsワイヤスピードでは1秒間あたりのフレーム数は、次の式から求めることができます。
100000000(bit/秒)÷672(bit/パケット)≒148810パケット/秒(pps)
すなわち、100Mbpsのワイヤスピードは148810ppsであり、スイッチング能力がこの数値以上であればワイヤスピードでの転送が可能です。もしも100Mbpsではなくて、1000Mbpsギガビットイーサネットになればワイヤスピードは1488100ppsになります。
まとめると、
イーサネットのワイヤスピード-14880pps
ファストイーサネットのワイヤスピード-148810pps
ギガビットイーサネットのワイヤスピード-1488100pps
となります。
「ノンブロッキング」って?
ワイヤスピードを意味する148810ppsという数値は100Mbpsのイーサネットポート1ポートあたりで考えています。
スイッチに最も負荷がかかるのは全ポートに対してワイヤスピードでフレームが送られたときです。すべてのポートに対して、ワイヤスピードでフレームが送られてきても、スイッチが遅延することなくすべてのフレームを転送することができることを意味して「ノンブロッキング」と呼んでいます。
あるスイッチのスイッチング能力で次の式が成立すればノンブロッキングです。この式を満たさない場合は、スイッチはすべてのフレームを処理しきれなくなり、この状況を「ブロッキング」と呼びます。
ポート数×ワイヤスピード≦スイッチング能力
たとえば、24ポートの100Mbpsのポートを持っているスイッチの場合、スイッチング能力が
24×148810≒3.6Mpps
以上であればノンブロッキングとなります。
ノンブロッキングであれば、理論上の最大負荷を処理できることが保証されます。しかし、どんな状況においても必ずノンブロッキングが必要であるわけではありません。
実際にワイヤスピードでパケットが転送されつづけることはかなりレアなケースです。ですから、ネットワークの規模が小さくそれほどスイッチに負荷がかからない環境であればブロッキングのスイッチでも十分です。
今度はスイッチング容量がどれぐらいあればいいのかということを考えていきます。もう一度、スイッチング容量の意味を振り返るとスイッチ内部でフレームを転送するために用いる帯域幅のことです。
スイッチ内部に流れるデータが最大になるケースを考えるとすべてのポートが全2重通信を行うときです。この最大のデータ容量をサポートすることができるかどうかがスイッチの処理性能を知る上で大事なポイントとなります。たとえば、24ポートの100BASE-TXのスイッチであれば最大のデータ容量は、
12×2×100=2.4Gbps
です。これは24ポートあるので転送を行うポートの組が12組、その12組それぞれが100Mbpsの全2重通信を行う計算です。スイッチング容量が2.4Gbpsよりも大きければすべてのデータを同時に転送することが可能となります
スイッチング能力と同様に、スイッチング容量もこのようにすべてのポートが同時に通信ができるだけの容量が必要というわけではありません。ネットワークの規模によっては、スイッチング容量が小さくてもきちんとトラフィックを処理することができます。その見極めについては、日頃からネットワーク上を流れるトラフィックを正確に把握しておくことが大事なポイントです。