東京の主要な幹線道路の一つである環状七号線の地下に延長4.5km、内径12.5mの巨大なトンネルが掘られているのをご存じでしょうか?「神田川・環状七号線地下調節池」というのがこのトンネルの名称で、東京・神田川周辺地域の洪水被害を軽減するために造られました。最大54万立方メートルの水を貯留できます。調節池は、集中豪雨などの局地的な出水により、河川の流下能力を超過する可能性のある洪水を河川に入る前に一時的に溜める池です。溜まった水は、河川の水位が落ち着いたら放水できます。

 L2スイッチにも、「調節池」に相当する「バッファ」という機能あります(図1)。L2スイッチが持つ複数のポートからフレームの入力があり、それらの出力が同一のポートである場合、ある時点で出力可能なのは1つのフレームだけです。ですので、他のフレームは溜めておかなければなりません。スイッチがフレームを一時的に溜めておくこと、あるいはその機能がバッファなのです。図1の例では、端末Cが送信したフレームをバッファしておけば、端末Aからのフレーム送信終了を待って送信できるので、フレームが失われることはありません。バッファがない場合と、バッファがいっぱいになった場合、そのあとに送られてきたフレームは処理できないものとして失われます(ロストします)。

図1●バッファの概要。複数のポートから同じ宛先のフレームが同時に入力すると、ある時点で出力できるフレームは一つだけなので、残りはバッファされることになる。また、速いリンクスピード(1000BASE-Tなど)から遅いリンクスピード(10BASE-Tなど)に送信する場合にもバッファは必要となる
図1●バッファの概要。複数のポートから同じ宛先のフレームが同時に入力すると、ある時点で出力できるフレームは一つだけなので、残りはバッファされることになる。また、速いリンクスピード(1000BASE-Tなど)から遅いリンクスピード(10BASE-Tなど)に送信する場合にもバッファは必要となる
[画像のクリックで拡大表示]

 図1に示した環境で、端末Aと端末Cが同時に、それぞれある一定の大きさのフレームを2つ連続して、合計4フレームをワイヤースピードで端末B向けに送信した場合を考えてみましょう。前提条件として、すべてのポートが1Gbpsで接続されているものとします。このケースでは、いくつのフレームがバッファされるでしょうか?

 このスイッチのバッファが正しく機能すれば、答えは2個となります。スイッチには、毎秒2Gビットのペースでフレームが入ってきます。ポートAが1Gbps、ポートCが1Gbpsという計算です。一方スイッチからは、毎秒1Gビットのペースでフレームが出ていきます。これはポートBから送り出される分になります。入ってくるペースは出ていくペースの2倍ですので、フレームの半分はバッファされることになります。

 スイッチにつながった複数の端末が同時にサーバーと通信を始めるようなことは普通にあります。そのため、ネットワーク全体の通信量が少なかったとしても、ミクロの時間間隔でみると同一ポートから出力されるフレームが相当数集中することは十分起こり得ます。

 バッファがあふれてしまってスイッチがフレームをロストすると何が起こり得るでしょうか? フレームの中に詰めたデータの再送が発生するケースがあります。例えば、Webやメールなどで用いられるTCP(Transmission Control Protocol)という通信方式を使っている場合に再送が発生するのですが、その再送に秒単位の時間を要することもあります。秒単位の時間がかかってしまうと、ユーザーが体感するネットワークパフォーマンスに影響する可能性が出てきます。ユーザーエクスペリエンスを維持するうえでも、バッファは重要な機能なのです。

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。