トランスポートの検証を目的としたギガビットネットワーク

トランスポートの検証を目的としたギガビットネットワーク
エミュレーションシステムの実装
Katsushi Kobayashi
Communication Research Laboratory, JAPAN
[email protected]
ワークインターフェースの性能とその実装を含む端
概要
末システム全体を考慮にいれることは困難であり、
広帯域ネットワークむけトランスポートの性能評
トランスポートの実装においても最終的にはシステ
価を目的として、ネットワークエミュレーションシ
ムレベルでの評価が必要とされている。また、バッ
ステムを開発した。開発したエミュレーションシス
クボーン帯域の増加にともなって数値シミュレーショ
テムは、汎用のネットワークプロセッサを使用し、汎
ンでの取り扱いが必要な情報量、時間も増加してい
用
る。例えば、すでに実現されつつある帯域
OS をプラットフォームとしてソフトウェアで実
装した。実装したシステムで 1Gbps のワイヤレー
遅延
50msec.
10Gbps,
というバックボーンリンクのシミュ
挙動評価を行なうにたる、1009 以下のパケット損失
1,500Bytes、双方向
リンクの帯域が利用しつくされた場合、 10 万パケッ
などを実現した。
ト弱のデータを取り扱う必要がある。また、この条
ト性能、広帯域ネットワークでのトランスポートの
レーションではパケットサイズ
TCP のウィンドウサイズの増減の発生間隔は 1
時間以上を要する。
(この条件で TCP が帯域を利用
し尽くす際の損失確率は 5 21009 程度となる)ここ
件で
1 はじめに
でのデータ量の増加、すなわち使用するメモリ量と
通信技術の開発では、ネットワークの挙動をモデ
処理時間の増加、はリンク帯域に比例している。リ
ル化しアプリケーションの品質、性能評価を行なう
ンク帯域の増加ペースはプロセッサ速度を凌駕して
ことはネットワーク構築に莫大なコストがかかり、膨
いることから、近年のプロセッサ速度の向上をもっ
大な数の端末を通信基盤の整備をおこなっていくう
てしてもシミュレーション環境の実現には膨大な時
えで、非常に重要である。インターネット関連の技術
間、費用を要することとなる。現実の帯域で回線の
開発では、インターネットで最も利用されてきたト
エミュレーションを数値シミュレーションと同等、そ
ランスポートプロトコルである
れ以下の費用で実現できれば、現実の動作時間で評
TCP の研究開発で、
NS2 などの数値シミュレーションを通じ、多くの機
価結果を得ることが可能となり、トランスポートプ
能拡張、性能改善がなされ、今日のインターネット
ロトコルのシステムレベルでの性能評価、数値シミュ
の基盤を築いてきた。数値シミュレーションによる
レーションと同様の解析を短時間での完了すること
シミュレーションでは、トランスポートの実装方式
が期待される。
の違いによる挙動の違いとその性能への影響、個々
我々は 、汎 用 ネット ワ ー ク プ ロ セッサ (Intel
CPU 性能、バスおよびメモリ帯域、ネット IXP2400) をベースにネットワークエミュレーショ
のパラメータの違いによる影響の解析には有用であ
る反面、
ンシステムをソフトウェアで実装した。開発したエ
表
ミュレーションシステムは、ギガビットイーサネッ
トインターフェースを有し、各種パラメータについ
てワイヤレートでのネットワークエミュレーショ
ンに対応している。また、プラットフォームとし
たネットワークプロセッサは同じアーキテクチャ
で
10Gbps の帯域に対応したものも製品化されてお
り、ギガビットを越える帯域でのエミュレーション
への対応も容易となっている。本稿では、実装した
エミュレーションシステム、ネットワークプロセッ
1: エミュレータに要求される要件
機能
パラメータ
遅延
時間
100msec(国際リンク)
ジッタ
分散
マイクロ秒の精度
損失
確率、分布
低い確率
パケット重複
確率、重複パケット数
順序入れ換え
確率
帯域制御
帯域、アルゴリズム
書き換え
比較、マスクビット
(1009)
上書きデータ
サ上への実装にあたっての問題点について述べる。
2 インターネットエミュレーション
備考
プで制約されてしまい利用者の要求に柔軟に応える
ことが困難という問題がある。このカテゴリでは、
いくつかの製品がすでに供給されているほか、いく
システム
つかの研究開発もなされている。第三の実装方法は、
パケット損失率、伝搬遅延、ネットワーク帯域、 ネットワーク機器向けに設計された処理プロセッサ、
キュー遅延などのパラメータとしてネットワーク特 いわゆるネットワークプロセッサ、を用いる方法で
Gbps か
性をモデル化し、ネットワークを再現するネットワー
ある。最近のネットワークプロセッサでは
クエミュレータは通信技術の研究開発にとって不可
ら
欠なツールであることから、ネットワーク特性のモ
のもあり、十分な帯域性能の実現が可能となってい
デル化とともに研究開発がおこなわれてきた。現在
る。パケット処理手続きはソフトウェアによって実
のネットワークエミュレータの実装は
装されるため、利用者の要求に応じたネットワーク
3 種類に分類
される。第一は、複数のネットワークインターフェー
10Gbps 帯域のパケット交換向けに設計されたも
モデルの実現が可能となっている。このカテゴリで
Empirex 社等からギガビット帯域に対応した製品
スを有するコンピュータをベースとし、コンピュー
は
タのソフトウェアによってネットワークモデルを実
が供給されており、ネットワークプロセッサ上でエ
現する方法である。この方法は、汎用
ミュレータ機能を実現する研究開発もなされている
PC をベース
とすることから安価に実現でき、ソフトウェアによ
[1, 2]。しかしながら、エミュレータで利用者が要求
り柔軟なモデルの設定ができる反面、処理時間の揺
するネットワークモデルを実現するためには開発環
らぎ、
境も含めて公開、モデルの複雑化に対応した処理速
帯域のネットワークのエミュレーションでは、十分な
度、容量面で十分なマージンが確保されている必要
精度で
がある。
CPU, バス, メモリ帯域の制約からギガビット
Gbps クラスの帯域を達成することが困難で
ある。このカテゴリに入るネットワークエミュレー
我々は高性能トランスポート層の研究開発を行な
ミンングが期待できる反面で、回路設計など実装コ
1 の機能を必要としした。この機
Intel 社製汎用ネッ
トワークプロセッサ IXP2400 をベースに開発を行
なった。開発にプラットフォームとして Radisys 社
製開発キット ENP2611 を使用し、コーディングは
ストの上昇、ネットワークモデルのコーディングが
中央システム技研がおこなった。
Dummynet が知られている。
第二の実装方法は、FPGA などを利用してチップレ
ションシステムとして、
ベルでエミュレーション機能を実現する方法である。
この方法は、十分な性能、正確なパケット送出タイ
容易ではない、ネットワークモデルそのものがチッ
うにあたって、表
能を実現するエミュレータとして
ENP2611
は
IXP2400
の開発環境であり、パケ
図
1: ENP2611 開発キット
図
2: 制御情報
+----+----+----------------------+
|flag|port|buffer ptr.
|
+----+----+----------------------+
|Output Timestamp
|
+--------------------------------+
DRAM, SRAM に加えて ME 間
の情報共有に利用される、Scratchpad, ME ごとに
独立したローカルメモリが用意されている。SPI-3
して、先に述べた、
インターフェースを介して受信されたデータはまず
3 ポート DRAM 領域にコピーされ、ME などでパケット処
1000BaseSX インターフェースを有している。コ 理、ME に実装が困難な複雑なパケット処理はコン
ントローラ向けインターフェースとして、100Base- トローラ CPU が行なわれ、処理が完了し転送され
TX/10Base-T、PCI バス、シリアルインターフェー るパケットは DRAM から SPI-3 インターフェース
スなどが用意されている。主にパケットバッファと を介して送信される。また、16 clock 毎に増加する
して利用される DRAM は 256MB(最大 1GB), 制御 64bit 長の時刻カウンタを有しておりパケット送出
情報バッファむけの SRAM は 8MB(最大 16MB) が た移民語の管理などに利用される。
搭載されている。IXP2400 はコントローラ CPU と
我々は、OS として UNIX の開発、運用経験が
パケット処理むけのマイクロエンジン (ME) の 2 つ 活かせる Linux (MontaVista) を選択し、Intel 製
のブロックから構成されている。コントローラ CPU IXA (Intel Internet eXchange Architecture) SDK
として、Xscale(600MHz) が採用され、OS として 3.1 上でネットワークエミュレータの開発を行なっ
Linux, VXworks などが提供されている。パケット た。IXA SDK では ME プログラミング言語として
処理向けインターフェース以外の全てのデバイスは C に近い開発環境も用意されているが、性能を確保
Xscale からアクセスされ、既存のデバイスドライバを するためには制約が多いため、今回の開発にあたっ
そのまま利用することが可能となっている。IXP2400 ては、主としてアセンブラを使用した。パケットネッ
では 600MHz で動作する 8 個の ME が用意されて トワークのエミュレーションに求められている機能
おり、ME での手続きを定義したインストラクショ (表 1) のうちデータ書き換え、パケット重複以外は、
ンは Xscale から与えられ実行される。また、それ 本質的に入力パケットに遅延、損失は無限時間の遅
ぞれの ME では 8 個までのスレッドを動作させる 延、を与え送出することで実現できる。我々の実装
ことができる。ME で処理されるパケットは、SPI-3 では、IXP2400 の 8 個の ME のうち、それぞれ 1
インターフェースを介して送受信され、帯域は送受 個を入力/出力処理、1 個を遅延処理に割り当て、残
信それぞれ 2.4Gbps となっている。IXP2400 と同 りの 5 個をそれぞれ独立なネットワーク挙動パラ
じファミリの製品として 10Gbps の帯域に対応する メータが設定可能なエミュレータに割り当てること
SPI-4 インターフェースを有する IXP2800 がすでに とした。各入力パケットに対して図 2 の制御情報が
発表されており、IXP2400 で開発されたシステムの 付与されている。ここで、flag}が ON の場合は当
IXP2800 への移行は容易となっている。
該パケットが 遅延処理 ME で廃棄されることを示
IXP2400 では ME からアクセス可能なメモリと し、OutputTimestamp は入力処理に割り当てられ
ット処理向けのインターフェースとして
の
た
ME で入力時間が記録され、遅延処理 ME では、
枠組の検証は、トランスポートの研究で従来行なわ
この情報の時間にパケットが出力される。ネットワー
れているホスト側への実装のみでは不可能である。
クエミュレーションに割り当てられた
機能追加の容易なルータとして
ME はそれぞ
PC ベースのルータ
れに与えられた、損質率、遅延時間、帯域などの情
という方法もあるが、先に述べたようにギガビット
Output Timestamp を書
報を基に、flag}、{\verb
を越えるルーティングは性能面で不足しており、十
き換えることで、ネットワークエミュレーションを
分な精度の検証は不可能である。我々は今回開発し
実現する。
たネットワークプロセッサのパケット書き換え機能
を利用して、エミュレータをリンク途中に配置する
3 高性能トランスポートの研究開
ことで、
explicit router response をギガビットイー
サネットのワイヤレートで実装し、遅延、帯域制御
機能と組み合わせて、高遅延帯域積ネットワークの
発に向けて
研究開発をおこなっていく。
ネットワークの広帯域化に対応するトランスポー
トの改善はインターネットの発展とともに常に行な
われており、とくに
TCP は長年にわたって実装面
での改良が重ねられてきた。しかしながら、高帯域
謝辞
本システムの開発にあたっては情報通信研究機構
TCP の延
インターネットアーキテクチャグループの平原正樹
長では、高いリンク利用効率の達成が困難であるこ
XCP, TCP quick start など従来の
TCP を越える枠組、explicit router response, が提
案されはじめている [3, 4]。我々も、同様の取り組み
氏に助言有益な助言とシステムの検証をいただきま
とから、近年、
した。
を行なっており、シミュレーションベースで性能向
参考文献
遅延積ネットワーク環境ではこれまでの
上が期待されることを示した
[5]。また、TFRC など
最近のアプリケーション要求に応えた新しいトラン
TCP のような AIMD 挙動を実装す
ることは困難である。すなわち、TFRC で想定され
スポートでは
[1] http://www.empirix.com/
[2] 東條晴基, 長谷川剛, 村田正幸, \ネットワーク
プロセッサを用いた実験用ネットワークエミュ
ている実時間アプリケーションでは実現可能な送出
帯域を抑えることは容易であっても、送出帯域を増
加させるタイミングを知ることは困難であると考え
られている
[3]
[6]。この問題は階層化マルチキャスト伝
[5]。ここに述べた方法は、いずれ
in Proc.
送にも当てはまる
IP オプションヘッダを定義し、送信ホストがオ
プションヘッダを含む IP パケットを送出、途中ルー
[4]
も
タがリンクの利用状況などネットワーク情報をオプ
ションヘッダに上書きすることで、送受信ホスト間
のネットワーク品質を明示的にエンドホストに伝え
draft-amit-quick-start-02.txt
[5]
るという枠組である。このような枠組を実証するた
めには、実装を通じた検証が不可欠である。しかし
ながら、ルータ側に新しい機能の追加の必要なこの
", 電子情報通信学会研究
報告 (NS2001-227, IN2001-183), (2002)
Katabi, D., Handley, M., and Rohrs, C.,
\Congestion Control for High BandwidthDelay Product Networks",
ACM SIGCOMM'02 (2002)
Jain, A. and Floyd , S., \Quick-Start for TCP
and IP",
,(2002)
小林克志, \ルータの情報付加によるボトルネッ
クの発見と輻輳制御方式'(その2)', インター
ネット技術研究委員会第 14 回研究会, (2003)
Floyd , S., Private Communication,(2003)
レータシステムの構築
帯域は不連続な値となり、損失を検出した際に送出
[6]