発表・掲載日:2005/06/06

ネットワークトラフィックを平滑化するソフトウェアPSPacer1.0を公開

-バーストトラフィックの発生を抑え通信効率が向上-

ポイント

  • 従来専用ハードウェアが必要だった精密なネットワーク帯域制御・トラフィック平滑化をソフトウェアのみで実現。
  • 効率の良い遠距離広帯域通信、高品質なストリーム配信が可能に。
  • Linux上で動作するオープンソース・ソフトウェアとして無償公開。

概要

 独立行政法人 産業技術総合研究所【理事長 吉川 弘之】(以下「産総研」という)グリッド研究センター【センター長 関口 智嗣】は、ネットワークの精密な帯域制御とトラフィックの平滑化を行うソフトウェアPSPacer1.0を公開しました。PSPacer1.0は、従来専用ハードウェアを用いなければ実現できなかった精密な帯域制御・平滑化を、Linuxが動作する一般のPC上で実現しています。バーストトラフィックの発生を抑え、インターネットを用いた遠距離広帯域通信の効率化や、ストリーム配信の品質向上に寄与します。

通信状態比較のための模式図

PSPacerを使用しない通常の通信では、パケット送信間隔にかたより(バーストトラフィック)が発生し、スイッチやルータのバッファオーバーフローを引き起すためにパケット消失が生じる。
PSPacerを使用するとパケットを等間隔に送信するため安定した通信が可能。


開発の背景

 インターネットで用いられるIP通信では、短時間に多くのパケットがまとまって送られるバーストトラフィックが発生して利用可能な帯域を一時的に超えてしまうことがあります。すると、ネットワークの中間にあるスイッチやルータのバッファオーバーフローを引き起こし、パケット消失が生じて実効通信性能が著しく低下する可能性があります。通常のPCやストリーミングサーバなどでは、バーストトラフィックの発生が避けられず、通信品質が低下してしまいます。これを抑えるためには、利用可能な帯域に応じてパケットを等間隔に送信する平滑化処理が必要です。

開発の経緯

 産総研グリッド研究センターでは、平滑化によりバーストトラフィックを抑えることで効率よく通信が行えることに注目し、ハードウェアを用いた平滑化装置を開発・利用してきました。この技術をさらに広く利用できるようにするために、ソフトウェアで平滑化を実現するPSPacerの開発を行いました。

 なお、本ソフトウェアの開発の一部は、文部科学省「経済活性化のための重点技術開発プロジェクト」の一環として実施している超高速コンピュータ網形成プロジェクト(NAREGI: National Research Grid Initiative)により行われました。

技術のポイント

 従来、ソフトウェアによりパケットの送信間隔を制御する場合、タイマ割り込みが用いられてきました。Linux等のオペレーティングシステムが提供するタイマ割り込みは通常1~10ms程度の間隔であり、送信間隔の制御を精密に行うことはできませんでした。一方、タイマ割り込みの間隔を短くすると、プロセッサの負荷が大きくなり、計算機の計算性能や通信性能に悪影響を与えるという問題がありました。

 PSPacer1.0では、タイマ割り込みではなく、パケットとパケットの間に別のパケット(ギャップパケット)を送信するという手法により送信間隔を制御しています。ギャップパケットの数や大きさを制御することにより、送信間隔を精密に制御することができるようになりました。ギャップパケットは、スイッチやルータの入力ポートで破棄されるため、ネットワークに影響を与えることはありません。

主な機能

 一般的なPCを用いて100以上のコネクションを別々に帯域制御・平滑化できます。ギガビットイーサネットの場合、IP通信のコネクションごとに8Kbps~930Mbpsの範囲で送信帯域を設定でき、帯域に合わせてパケットの送信間隔を1バイトのデータ送信に要する時間単位の高い精度で制御します。

  PSPacer1.0は、Linuxローダブルカーネルモジュールとして実装されており、簡単に導入可能で、デバイスドライバにも依存しません。PSPacer1.0を導入した後、IPアドレスやポート番号によるパケット振り分けルールを記述し、帯域制御・平滑化を行う通信のインタフェースと帯域を指定するだけで動作します。ネットワークを利用するアプリケーションの変更も不要です。また、IPv6にも対応しています。

主な用途

 PSPacer1.0を用いると、送信帯域の変動が最小限に抑えられ、バッファオーバーフローの可能性を低減します。このため、ネットワークの物理帯域の利用効率を飛躍的に増大させることができます。

PSPacer1.0は、以下のような用途で有効です。

  1. 遠距離広帯域のTCP/IP通信
     インターネットの通信で広く用いられているTCP/IPでは、往復遅延時間ごとに送信可能なデータの最大量を制御しています。このため、遅延が大きい遠距離ネットワークでは、バーストトラフィックが発生しやすくなります。PSPacer1.0を用いれば、大陸間のような遅延が非常に大きな環境でもネットワークの帯域の9割以上を利用できます。
     
  2. 同一経路を通して複数の通信が行われる場合
     ストリーム配信などで、ネットワーク上の同一の経路を用いて複数の通信を行う場合、それぞれの通信のバーストトラフィックが重なって、利用可能な帯域を簡単に超えてしまうことがあります。PSPacer1.0を用いれば、それぞれの通信の帯域が設定値を超えることはなくなり、ネットワークの帯域を最大限に利用できます。

配布方法

 PSPacer1.0は、GNU GPL(General Public License)に従ったオープンソース・ソフトウェアとして配布され、GridMPI (http://aist-itri.github.io/gridmpi/)からダウンロード可能です。



用語の解説

◆帯域制御・平滑化
単位時間当たりに送られるデータ量の最大値を設定し、設定値以上にデータが送られることが無いようにする制御を帯域制御と呼びます。送受信する計算機のソフトウェアや、ルータ等のネットワーク装置による帯域制御では、帯域を規定する時間間隔が大きいため、平均では最大値以下でも、短時間には帯域を超えてデータが送られるバーストトラフィックが発生する可能性があります。このようなバーストトラフィックが発生しないように、パケットの送信間隔を制御し、利用帯域を平均化する操作を平滑化と呼びます。[参照元へ戻る]
◆バーストトラフィック
パケットが一度にまとめて送信されてしまう現象です。バーストトラフィック発生時には、平均利用帯域に比べて大きな帯域を消費します。このため、ネットワークの利用可能帯域を超えてしまい、スイッチやルータのバッファオーバーフローの原因になります。[参照元へ戻る]
◆遠距離広帯域通信
回線の帯域が大きいほど大容量通信ができます。ちなみに産総研つくばセンターはインターネットと10Gbpsの回線で接続されています。一方、遠距離通信では信号の伝搬に要する往復遅延時間が大きくなり、つくば―大阪間では10ms程度、日米間では200ms程度になります。このように、回線の帯域と往復遅延時間の積が大きい場合、大きなバーストトラフィックが発生しやすくなり、通信効率低下の原因となります。[参照元へ戻る]
◆ストリーム配信
マルチメディアファイルを、全体を送り先に転送してから再生するのではなく、時間軸順にデータを送受信しながら順次再生する仕組み。[参照元へ戻る]
◆バッファオーバーフロー
スイッチやルータのバッファがあふれ、パケット消失が起きる現象です。スイッチやルータが送り出すことができる帯域を超えてパケットが到着した場合、送り出せないパケットはバッファに格納されます。しかし、バッファの量には限りがあるため、やがてあふれてしまい、パケットが捨てられることになります。[参照元へ戻る]
◆タイマ割り込み
プロセッサ外部に設けたタイマを用いて、設定した時間ごとにプロセッサにハードウェア割り込みをかけ、指定した処理を行う仕組み。[参照元へ戻る]
◆ギャップパケット
ギャップパケットは、実際にPCのネットワークインタフェースから送信され、PCが接続されているスイッチの入力ポートで破棄される必要があります。PSPacer1.0では、ギャップパケットとして、イーサネット規格の一部であるIEEE 802.3xで規定されるPAUSEフレームを用いています。PAUSEフレームは、本来は対向する装置に送信を一定時間停止するよう求めるために用いられるものです。対向する装置(PCが直接接続されているスイッチ等)の入力ポートで破棄され、それより先に送られることはありません。PSPacerで用いるギャップパケットではPAUSEフレーム中で指定する停止時間を0としているため、対向装置の送信は停止しません。なお、PSPacer1.0を導入すると、PAUSEフレームを用いて対向装置の送信を停止させることはできなくなります。[参照元へ戻る]
◆コネクション
ここでは、IPアドレスとポート番号で識別されるパケットフローをコネクションと呼んでいます。PSPacer1.0は、LinuxのQoS(Quality of Service)機構であるQdiscフレームワークを利用し、ネットワークインタフェースへのコネクションをクラス分けすることで、クラスごとの帯域制御・平滑化を実現します。従って、複数のコネクションにまとめて帯域を割り当て平滑化することも可能です。[参照元へ戻る]
◆ローダブルカーネルモジュール
Linux OSのカーネル本体を再コンパイルすることなく、モジュール単位で機能を動的に追加、削除できる仕組みです。このためPSPacer1.0は、計算機を再起動することなく導入・削除することができます。[参照元へ戻る]


お問い合わせ

お問い合わせフォーム