• 検索結果がありません。

17 TCP (ACK:ACKnowledge) (RTT:Round Trip Time) TCP (Transmission Control Protocol) PSPacer (Precise Software Pacer) JGN2 TCP FAST TCP UDP PSPacer

N/A
N/A
Protected

Academic year: 2021

シェア "17 TCP (ACK:ACKnowledge) (RTT:Round Trip Time) TCP (Transmission Control Protocol) PSPacer (Precise Software Pacer) JGN2 TCP FAST TCP UDP PSPacer"

Copied!
40
0
0

読み込み中.... (全文を見る)

全文

(1)

特別研究報告

題目

高速

TCP

におけるパケットスぺーシングの効果

指導教官 鶴 正人助教授 報告者 米山 由布子 平成18年 2月 27日 九州工業大学 情報工学部 電子情報工学科

(2)

平成

17

年度 特別研究報告

高速 TCP におけるパケットスぺーシングの効果

米山 由布子

内容梗概

現在,インターネットの高速化と大容量データ転送を必要とするアプリケーションの出現 により,高速長距離ネットワークに適した高速データ転送プロトコルの開発に関する様々な 課題が活発に研究されている.その中の1つが,送信側が送ったデータに対して受信側から

確認応答(ACK:ACKnowledge)が戻ってくるまでの時間幅(RTT:Round Trip Time)内で

のパケットの送信をできるだけ滑らかに(一定レートに)に制御する「バースティネスコン トロール」である.バーストトラヒックが発生する場合,中間ルータでバッファオーバーフ ローが起こる可能性がある.この問題を解決するためのバースティネスコントロールの機構 が,それぞれのパケット伝達のタイミングを直接制御する,パケットスペーシングである. そこで,本研究では,高速長距離ネットワークに適した新しいTCP (Transmission Control Protocol)の開発のためのステップとして,(独)産業技術総合研究所グリッド研究センターで

開発されたパケットスペーシングのソフトウェアであるPSPacer (Precise Software Pacer)

を用いて,それが高速長距離ネットワークでの高速データ転送にどのような効果があるかを, 高速ネットワークテストベッドであるJGN2上での実験によって分析評価した.その結果, 標準TCP,FAST TCPのどちらのプロトコルに対しても,平均スループットの向上が確認 できた.特に,UDPによるクロストラヒックが存在する環境においては著しい効果が観察 された.

主な用語

バースティネスコントロール,パケットスぺーシング,PSPacer

(3)

目 次

1 はじめに 1 2 高速 TCPにおける課題 2 2.1 タイマ割り込み . . . . 3 2.2 ウインドウサイズコントロール . . . . 3 3 PSPacer 5 3.1 機構 . . . . 5 3.1.1 iproute2 . . . . 7 3.1.2 Qdisc . . . . 7 4 パケットスペーシングメカニズム 10 4.1 ギャップパケット . . . 10 4.1.1 ターゲットレート. . . 11

4.2 IPG-aware packet scheduling . . . 11

4.3 実装 . . . 12 5 実験 13 5.1 エミュレータを用いた実験ネットワーク . . . 13 5.2 実環境ネットワークでの実験. . . 13 5.3 実験内容 . . . 14 5.3.1 iperf . . . 14 5.3.2 FAST TCP . . . 15 5.3.3 ソケットバッファサイズ . . . 16 5.3.4 PSPacer . . . 17 6 結果と考察 18 6.1 エミュレータを用いた実験の時の検証. . . 18

(4)

6.2 実環境ネットワークの時の検証 . . . 22 6.2.1 Standard TCP . . . 23 6.2.2 FAST TCP . . . 28 6.3 提案機構の評価 . . . 33 7 まとめ 34 謝辞 35 参考文献 36

(5)

1

はじめに

近年,インターネットでは,膨大な量になるDNA情報の取り出しなど,高速長距離ネッ トワークにおける大容量データ転送における問題が,大きな検討課題の一つとなっている. インターネットで用いられるIP通信では,短時間に多くのパケットがまとまって送られる バーストトラヒックが発生して利用可能な帯域を一時的に越えてしまうことがある.する と,ネットワークの中間にあるスイッチやルータのバッファオーバーフローを引き起こし, パケット消失が生じて実効通信性能が著しく低下する可能性がある.通常のPCやストリー ミングサーバなどでは,バーストトラヒックの発生が避けられず,通信性能が低下してしま う.これを抑えるためには,利用可能な帯域に応じてパケットを等間隔に送信する平滑化処 理が必要である.産総研グリッド研究所では,平滑化によりバーストトラヒックを抑えるこ とで効率よく通信が行えることに注目し,ソフトウエアで平滑化を実現するPSPacer の開 発が行われた. そこで本研究では,高速長距離ネットワークにおける高速性/効率性と他のプロトコルと の親和性の両立を目指した新しいTCPの開発のための一課題として,パケットスペーシン グがどのような場合(対象プロトコル,ネットワーク環境)にどの程度の効果があるのか,と いうことを評価する. 以下,2章で,高速長距離ネットワークにおける問題点について説明する.次に3章で産 総研グリッド研究所で提案されたPSPacerについて説明し,4章ではパケットスペーシング のメカニズムについて詳しく説明する.5章では,PSPacer を使った実験について説明し, 6章ではその実験結果を示し,考察する.最後に7章でまとめと今後の課題を示す.

(6)

2

高速

TCP

における課題

IP通信においてエンドツーエンドのデータ転送を提供するトランスポートプロトコルと

して,Transmission Cotrol Protocol (TCP)とUser Datagram Protocol (UDP)があるが,

WWW,ファイル転送,メール配送など,1ビットの不足もなくデータを完全に転送する必 要があるアプリケーションの多くはTCP を使っている.これは,TCPが,エンドツーエ ンドのパケットの転送結果を保証しないIP通信網の上で,次の2つを行うからである. エンドツーエンドの高信頼バイトストリーム転送 途中の経路でパケットのロスや順序逆転が発生した場合に,再送や並べ替えを行う(エ ラー制御).あるいは,受信側の処理能力以上にパケットが到着しないように,送信 速度を制限する(エンドツーエンドのフロー制御). ネットワーク帯域の効率的な利用 ネットワーク状態を推定して適応的に送信速度を調整する.パスの途中が空いていそ うなら速度を上げ,混んでいそうなら速度を落す(輻輳制御). ところが,高速長距離ネットワーク上では,標準TCPを使って大容量ファイル転送して も,十分なスループットは達成できず,そのため,様々な形での標準TCPの改良/拡張が 研究されている.基本的には,信頼性のあるトランスポートプロトコルにおいては,何らか の形のエラー制御や輻輳制御を行う必要がある.そして,高速な通信になればなるほど短い 時間スケールでの迅速なエラー制御や輻輳制御が必要になるが,一方,長距離になればなる ほど伝播遅延によりフィードバックが遅れる.つまり,長距離通信において,エンドツーエ ンドのプロトコルによって送信速度の制御を適切に行なうことでパケットロスも防ぎながら 高速性を実現することは,本質的な困難を抱えている. 送信速度の制御には,通常,送信側が送ったデータに対して受信側から確認応答(ACK:

ACKnowledgement)が戻ってくるまでの時間幅 (RTT: Round Trip Time)内に連続して送

信するデータの量を決める「ウインドサイズコントロール」と,そのRTT内でのパケット

(7)

とがある.そこで,本節では,「バースティネスコントロール」に従来使われているタイマ割 り込みの問題点と,高速長距離環境における「ウインドサイズコントロール」の問題点を簡 単に説明する.

2.1

タイマ割り込み

タイマ割り込みとは,コンピュータの内部に組み込まれた時計が一定間隔の時間を刻んだ ことを,稼働中のソフトウエアに通知するためのハードウエア機構のことである.タイマ割 り込みは,オペレーティングシステムによって一定の間隔で補足され,システムのソフトウ エアコンポーネントや実行中のアプリケーションソフトは,必要に応じてその経過時間な どの情報を受信することができる.タイマ割り込みでパケットの送信されるタイミングは, ペーシングタイマが決定し,通常ミリ秒単位でこれを表示する. 従来,ソフトウエアによりパケットの送信間隔を制御する場合,タイマ割り込みが用いら れてきた.linux 等のオペレーティングシステムが提供するタイマ割り込みは通常 1∼10ms 程度の間隔であり,送信間隔の制御を精密に行うことはできなかった.一方,タイマ割り込 みの間隔を短くすると,プロセッサの負荷が大きくなり,計算機の計算性能や通信性能に悪 影響を与えるという問題があった.

2.2

ウインドウサイズコントロール

ウインドウサイズコントロール とは,それぞれの RTT の期間のトランスミッションの 量を制御するための課題である.RTTが長いと,ACKが返ってくるのが遅くなるため,ス ループットが出なくなる.ACKとは,コンピュータ間の通信において,送信したデータが 送信先に到達した時に送信先のコンピュータが送信元のコンピュータに送る確認応答のこと である.データ転送が正常に終了したときなどに送信される. 高速長距離のネットワークに焦点を合わせた ウインドウサイズコントロールは広く研究

され,多くの体系が提案された.まず一つは,HighSpeed TCP,Scalable TCP,BIC-TCP

などの AIMD(Additive Increase and Multiplicative Decrease) の異なるアルゴリズムは利

(8)

そしてもう一つの体系として,FAST TCPは中間ルータでバッファによって引き起こされ る遅延に基づいて利用可能な帯域幅を見積もる.

(9)

3

PSPacer

PSPacer を使用しない通常の通信では,パケット送信間隔にかたより(バーストトラヒッ ク)が発生し,スイッチやルータのバッファオーバーフローを引き起こすためにパケット消 失が生じる.PSPacerを使用することで,パケットを等間隔に送信するため安定した通信が 可能となる. 従来,ソフトウエアによりパケットの送信間隔を制御する場合,タイマ割り込みが用いら れてきた.PSPacerでは,タイマ割り込みではなく,パケットとパケットの間に別のパケッ ト(ギャップパケット)を送信するという手法により送信間隔を制御している.ギャップパケッ トの数や大きさを制御することにより,送信間隔を精密に制御することができる.ギャップ パケットは,スイッチやルータの入力ポートで破棄されるため,ネットワークに影響を与え ることはない. 本章ではまず,高速 TCP における課題について説明する.次に PSPacer のしくみにつ

いて説明し,その中でも特に iproute2,Qdisc,tc について説明する.そして PSPacer の

インストールについての説明を行う.

3.1

機構

PSPacerは,パケット間ギャップ(IPG:Inter Packet GAP)を調整することによって精密

なぺーシングを提供するパケットスケジューラである.このスケジューラは,tc コマンド によるトラヒック制御から利用可能なクラスフルキューイング規則として実装されており, 各クラスごとに設定した送信ターゲットレートにしたがってトラヒックを平滑化する.ター ゲットレートの指定方法には,tcコマンドから静的に指定する静的ターゲットレートモード と,TCPの場合に限り,輻輳ウィンドウサイズとラウンドトリップタイムから送信レート を見積もる動的ターゲットレートモードが利用できる.PSPacerはLinux プラットフォー ムへのトラヒックコントロールフレームワークである,iproute2に基づいて実装される.こ のフレームワークは3個の基本要素を提供する.その基本要素とは, qdisc,class(パケッ トの種別),filter(情報の選別) である.qdisc とは,送受信用のパケットを繋ぐ送信データ

(10)

キューのことである.また,PSPacerは2つの部分から成る.負荷可能なカーネルモジュー

ルと,ユーザレベルライブラリである.前者は,クラスフルqdiscである.そして後者はtc

コマンドを使ってコントロールし,それをモニターするためにこのモジュールで伝送する.

PSPacer はパケット間ギャップとして IEEE802.3x PAUSE フレームを使用する.した

がって,システムが関連しているスイッチ/ルータから伝送を止めるためにPAUSEフレー ムを使用することができない.PAUSEフレームの元々の用途としては,全二重イーサネッ トでは,PAUSE フレームを送信することで相手に対して送信を待たせることができる.「中 断時間×512ビット時間」が実際の送信中断時間となるが,「中断時間」に 0 を指定すると 送信再開の指示となる. 主な機能としては,一般的なPCを用いて100以上のコネクションを別々に帯域制御,平滑 化できる.ギガビットイーサネットの場合,IP通信のコネクションごとに8Kbps∼930Mbps の範囲で送信帯域を設定でき,帯域に合わせてパケットの送信間隔を1バイトのデータ送信 に要する時間単位の高い精度で制御できる.また,PSPacerは,Linuxのローダブルカーネ ルモジュールとして実装されており,簡単に導入可能で,デバイスドライバにも依存しない. PSPacerを導入した後,IPアドレスやポート番号によるパケット振り分けルールを記述し, 帯域制御,平滑化を行う通信のインターフェイスと帯域を指定するだけで動作する.ネット ワークを利用するアプリケーションの変更も不要である. PSPacerを用いると,送信帯域の変動が最小限に抑えられ,バッファオーバーフローの可 能性を低減する.このため,ネットワークの物理帯域の利用効率を飛躍的に増大させること ができる.PSPacer は,以下のような用途で有効である. 遠距離広帯域の TCP/IP 通信の場合 インターネットの通信で広く用いられているTCP/IPでは,RTTごとに送信可能な データの最大量を制御している.このため,遅延が大きい遠距離ネットワークでは, バーストトラヒックが発生しやすくなる.PSPacer を用いれば,大陸間のような遅延 が非常に大きな環境でもネットワーク帯域の9割以上を利用できる. 同一経路を通して複数の通信が行われる場合

(11)

ストリーム配信などで,ネットワーク上の同一の経路を用いて複数の通信を行う場合, それぞれの通信のバーストトラヒックが重なって,利用可能な帯域を簡単に超えてし まうことがある.PSPacer を用いれば,それぞれの通信の帯域が設定値を超えること はなくなり,ネットワークの帯域を最大限に利用できる.

3.1.1

iproute2

iproute2とは,ネットワークトラヒックに対するクラス分け,優先度付け,帯域制御など の機能を提供するためのフレームワークである.ほとんどのLinux ディストリビューショ

ンでは,伝統あるarp,ifconfig,route といったコマンドを現在でも用いている.これらの

ツールは動作はするもののLinux2.2以降ではときどき期待通りの働きをしないことがある.

例えば,GRE(generic Routing Encapsulation)トンネルは今日ではルーティングの一部と

なっているが,これは完全に別のツールが必要である.ここでGRE トンネルとは,Cisco によって開発された高機能なトンネリングプロトコルで,マルチキャストやIPv6トラヒッ クも転送できるという特徴をもつ.また,Linux を含む多くのOS は,デフォルトゲート ウェイの送出先を1ヶ所しか設定できない.iproute2を使うと,2つのプロバイダに接続を した1台の LinuxBox からそれぞれの接続に対して正しく通信することが可能である.

3.1.2

Qdisc

PSP(PSPacer) qdisc は CBQ(Class-Based Queueing:帯域制御)のような階層的なクラ

ス構造を持つことが可能であり,リーフノードの各クラスはそれぞれ qdisc を持つ.PSP qdisc にパケットがエンキューされると,ルートから開始して,次に示す方法にしたがい, どのノードにパケットを分類するか決定する.これをリーフノードに達するまで繰り返す. 1. クラスに登録されたフィルタを調べ,条件が成立したノードへ送る. 2. どの条件にも合致しなかった場合は,デフォルトクラスへ送る. また,PSP クラスツリーのルート qdisc は,次のパラメータを持つ.

(12)

• parent major 必須のパラメータ.qdisc の親クラスを指定する.親クラスはインタフェースのルー ト,もしくは既存のクラスのどちらかになる. • handle major qdisc にハンドルを割り当てる.ハンドルはメジャー番号にコロンをつなげた表記で 表される.ハンドルは qdiscを参照する際に使用されるため,サブクラスを設定する 場合に必要となる. • default minor-id クラシフィケーションされなかったトラヒックはこのマイナー番号を持つクラスに送 られる. • rate rate インターフェースの最大転送レートを明示的に指定する.PCI(Peripheral Component Interconnect)バスボトルネックでインターフェースの物理性能を出せない場合に利用

する.PCI とは,CPU(Central Processing Unit :中央演算処理装置)と高性能な

周辺機器との間でデータ交換を行うための、CPU非依存の業界標準バス・アーキテク チャのことである. クラスは次に示すパラメータを保持する. • parent major 必須のパラメータ.クラスの親クラスを指定する.クラスではなく,直接qdisc に追 加する場合は,マイナー番号を省略する. • classid major 必須パラメータ.qdisc のように,クラスにも名前を付けることができる.子供(ク ラス,qdisc)から参照されるために必要である.メジャー番号は所属するqdisc のメ ジャー番号と等しくなければならない.

(13)

• rate rate 最大送信レートを指定する. • mode mode 動作モードを指定する.0 から 2 の整数値を取る.0 はスぺーシングなし,1 は静的 ターゲットレートによるスペーシング,2 は動的ターゲットレートによるスペーシン グである. 実際の PSPacerの起動のコマンドは,5章で説明をおこなう.

(14)

4

パケットスペーシングメカニズム

正確なソフトウエアスペーシングを達成するために,2つのメカニズムが提案されている.

まず一つは,ギャップパケットである.そしてもう一つは,IPG-aware packet scheduling と

いうメカニズムである.

本章では,まずギャップパケットについての説明を行い,次にIPG-aware packet scheduling

について説明を行う.そのあとでパケットスペーシングの実装についての説明を行う.

4.1

ギャップパケット

正確なソフトウエアスペーシングのために,実のパケットの間にダミーのパケットを挿入

する.このダミーのパケットのことを,ギャップパケットという. ギャップパケットは連続し

て伝達された実のパケットの間にギャップを挿入する.パケットは NIC(Network Interface

Card)の IFQ(Interface Queue)から送信される.したがって,IFQにたまっている実のパ

ケットの間にギャップパケットを挿入することによって,次のパケットの送信は,NIC で ギャップパケットを送ったあとに行われる.ギャップパケットのサイズを変えることによって, 次の実のパケットの伝達の送信時を正確に制御することができる.例えば,半分の送信レート に制御するために,ギャップパケットは,ギャップパケットサイズが実のパケットのものと 同じであるところで,すべての実のパケットの間に挿入される.また,ギャップパケットは, 次の伝達の始動時を遅らせることを除いた,どんな副作用も発生させるべきではない.そし てギャップパケットはNIC が接続されているスイッチの入力ポートで捨てられるべきであ る.ギャップパケットの図を図4.1に示す.

(15)

図4.1: ギャップパケット

4.1.1

ターゲットレート

ターゲットレートは,以下の方程式で求められる. cwndは,輻輳ウインドウサイズである. targetrate =cwnd×packetsizu RT T (4.1) 次にギャップパケットが挿入されている場合のターゲットレートは,以下の方程式で求めら れる.maxrateはNIC の最大の物理的な帯域幅である.

targetrate0= maxrate× packetsize

packetsize + gapsize (4.2)

この2 式を使って,ギャップパケットのサイズが計算される.すなわち,

gapsize = maxrate×RT T

cwnd − packetsize (4.3)

4.2

IPG-aware packet scheduling

IPG-aware packet scheduling メカニズムの基本的な考え方は,それぞれのボトルネック

リンクの帯域幅に基づいて計算される,必要なIPGに基づくパケット伝達を計画すること

である.もしネットワークが単一のボトルネックリンクを持つだけであるなら,スケジュー

ラはギャップパケットを挿入するだけである.しかし,もしネットワークが複数のボトルネッ

クリンクを持つなら,パケット伝達の順序や,パケットの間隔を計算するために,このメカ

(16)

このメカニズムについては,まだ実装されておらず,今後の課題となっている.

4.3

実装

それぞれの伝達されたパケットは,TCP/IPプロトコルスタックの処理のあと,出力NIC

に関連しているIFQ の列に並ばせられる.Linux kernelは QoS 制御フレームワークのた

めに,複数のqdisk を提供する.qdiscモジュールはIFQとキューイングアルゴリズムから

成る.

sch-ipg では,2つの構成要素を提供する.まず一つは Target Rate Estimator である.

ここでは,スペーシングのためのターゲットレートを計算する.そしてもう一つは,Gap

Packet Injectorである.ここでは,反待ち行列要求がデバイスドライバから受け取られる

(17)

図5.1: ネットワークエミュレータを用いた実験環境

5

実験

本研究では実験ネットワークを構築してPSPacerを用いて,実験を行い,パケットスペー シングの有効性を評価する.本章では実験モデル,実験手法についての説明を行う.

5.1

エミュレータを用いた実験ネットワーク

PC1 と PC2 の間にエミュレータを置いた 1対1 の実験環境である.実験ネットワーク を図5.1に示す.

PC1 のマシンにだけ Standard(linux-2.6.10-41msmp),FAST(linux-2.6.7) と PSPacer

version 1.1をインストールしてある.

5.2

実環境ネットワークでの実験

PC1 と PC2 の間にスイッチがあり,北九州JGN2リサーチセンターを経由するネット

(18)

sender receiver   JGN2 JGN2 router 図5.2: 実環境ネットワーク この実環境ネットワークの実験においても,PC1のマシンにだけStandard

(linux-2.6.10-41msmp),FAST(linux-2.6.7)とPSPacer version 1.1をインストールしてある.

5.3

実験内容

ネットワークエミュレータを用いた実験では,高速 TCP と Standard TCP における PSPacerの効果を検証するためネットワークエミュレータを用いて遅延を発生させ,iperfで の測定を行った.RTTの値は,50ms,100ms,150ms,200msと変化させた.また,PSPacer の送信帯域は930Mbpsに設定した. 実環境ネットワークでの実験では,Standard TCP,FAST TCPそれぞれで,1本流し た場合,2本流した場合,UDPと共に流した場合の,平均スループットを測定した.また, UDPでは,帯域を10Mb/sと20Mb/s の両方の場合で測定した.この実験環境でも,ネッ トワークエミュレータを用いた実験と同様,PSPacer の送信帯域は930Mbps に設定した.

5.3.1

iperf

実験ネットワークに TCPやUDPのデータを送信し,そのスループットを計測するため

にiperfを用いた.iperfは,TCPとUDPのトラヒックを発生させ,そのスループットを計

測するツールであり,パケットの送信時間,UDP のbandwidth,バッファ長等のパラメー

(19)

せ,送信側でクライアントモードでサーバを指定して起動させることで,任意のプロトコル とパラメータで通信を行う事ができる.この時の結果より,スループットを計測できる.受 信側(サーバ)でiperf を起動させるには以下のコマンドを用いる. % iperf -s 送信側(クライアント)で立ち上げるには以下のコマンドを使用する. % iperf -c <受信側ホスト名(又は受信側 IP アドレス)> 上記のようにオプションを付加しなければ,デフォルトのパラメータを用いて,プロトコル はTCP をつ使って通信を行う.iperfを使用する時は送信側よりも受信側を先に起動させ ておく点に注意する必要がある.

5.3.2

FAST TCP

FAST TCPとは,カリフォルニア工科大学の研究チームが開発したプロトコルである. 2003年6月4日のニュー・サイエンティスト(オンライン版)によると,下り方向の速度を 引き上げるもので,100Gbpsの超高速ダウンロードも可能である.パケット送受信の失敗が あった場合に早い段階で検知して,適切なデータレートに修正してパケットロスを抑える. FAST TCP を起動させる場合,送信側,受信側でコマンドが必要である.まず,送信側 でのコマンドを以下に示す. echo ‘‘4096 33554432 33554432’’ > /proc/sys/net/ipv4/tcp_mem echo ‘‘4096 33554432 33554432’’ > /proc/sys/net/ipv4/tcp_rmem echo ‘‘4096 33554432 33554432’’ > /proc/sys/net/ipv4/tcp_wmem echo ‘‘4096 33554432 33554432’’ > /proc/sys/net/core/wmem_max echo ‘‘4096 33554432 33554432’’ > /proc/sys/net/core/rmem_max echo ‘‘1’’ > /proc/sys/net/ipv4/tcp_fast echo ‘‘1’’ > /proc/sys/net/ipv4/tcp_fast_bc echo ‘‘1’’ > /proc/sys/net/ipv4/tcp_fast_kmon_rtt

(20)

echo ‘‘400’’ > /proc/sys/net/ipv4/tcp_fast_kmon_t /sbin/ifconfig eth0 txqueuelen 4000

echo ‘‘1500’’ > /proc/sys/net/core/netdev_max_backlog modprobe e1000 RxDescriptors=4096,4096

受信側のコマンドは,送信側のコマンドの 6∼9行目がなくなるだけで,あとは変わら ない.

5.3.3

ソケットバッファサイズ

ソケットバッファは,アプリケーション層とTCP層(トランスポート層)の間でのデー タの受け渡しをするために使われるバッファのことである.ソケットバッファは,ソケット ごとに受信用バッファと送信用バッファが確保されている. ソケットバッファのサイズが 小さすぎると,アプリケーションがTCPからデータを受け取る,あるいは,データを送る ための時間がかかり,結果としてアプリケーションから見た通信速度が遅くなってしまう. 逆に大きすぎてもリソースを消費するだけとなってしまうため,通信環境に合わせた最適な サイズに設定することが必要である. ソケットバッファのサイズは,アプリケーション側 から設定することができるが,何も設定しなかった場合,システムのデフォルトのサイズが 適用される. Standard TCP での実験の場合に,このソケットバッファサイズを以下のコマンドを用い て設定した.このコマンドは,送信側,受信側両方で設定した. sysctl -w net.ipv4.route.flush=1 sysctl -w net.core.rmem_max=33554432 sysctl -w net.core.wmem_max=33554432 sysctl -w net.core.rmem_default=65536 sysctl -w net.core.wmem_default=65536 sysctl -w net.ipv4.tcp_rmem=’’4096 33554432 33554432’’ sysctl -w net.ipv4.tcp_wmem=’’4096 33554432 33554432’’

(21)

sysctl -w net.ipv4.tcp_mem=’’33554432 33554432 33554432’’ sysctl -w net.core.netdev_max_backlog=1500

madprobe e1000 RxDescriptors=4096,4096 madprobe e1000 TxDescriptors=4096,4096

5.3.4

PSPacer

ここでは,PSPacerを起動させる時に必要なコマンドについて説明を行う.このコマンド

は,送信側のみで必要である.

ethtool -K eth0 tso off

/sbin/tc qdisc add dev eth0 root handle 1: psp default 2

/sbin/tc class add dev eth0 parent 1: classid 1:1 psp rate 930mbit /sbin/tc class add dev eth0 parent 1: classod 1:2 psp mode 0

/sbin/tc qdisc add dev eth0 parent 1:1 handle 10: pfifo /sbin/tc qdisc add dev eth0 parent 1:2 handle 20: pfifo

/sbin/tc filter add dev eth0 parent 1: protocol ip pref 1 u32 match ip

(22)

6

結果と考察

本章では,PSPacerを用いたパケットスペーシングの効果についての実験結果を示し,考 察する.

6.1

エミュレータを用いた実験の時の検証

エミュレータで遅延を発生させ,実験を行い,その際,300秒間の平均スループットの値 を検証した.Standard TCP の場合の結果を図6.1,図6.2,図6.3,図6.4 に示す. Standard TCP では,変化させた RTT の全ての値で PSPacer の効果がみられた.次に, FAST TCP の場合の結果を図6.5,図6.6,図6.7,図6.8に示す.FAST TCP の場 合では,変化させた RTT の全ての値で PSPacer の効果が見られなかった.これは,ネッ トワークエミュレータを用いた実験環境ではパケットロスがおきないため,効果がみられな かったものと考えられる.

(23)

0 200 400 600 800 1000 0 50 100 150 200 250 300 throughput[Mbps] time[s] without pacing with pacing 図6.1: ネットワークエミュレータを用い,Standard TCP で測定した結果(RTT 50) 0 200 400 600 800 1000 0 50 100 150 200 250 300 throughput[Mbps] time[s] without pacing with pacing 図 6.2: ネットワークエミュレータを用い,Standard TCP で測定した結果(RTT 100)

(24)

0 200 400 600 800 1000 0 50 100 150 200 250 300 throughput[Mbps] time[s] without pacing with pacing 図 6.3: ネットワークエミュレータを用い,Standard TCP で測定した結果(RTT 150) 0 200 400 600 800 1000 0 50 100 150 200 250 300 throughput[Mbps] time[s] without pacing with pacing 図 6.4: ネットワークエミュレータを用い,Standard TCP で測定した結果(RTT 200)

(25)

0 200 400 600 800 1000 0 50 100 150 200 250 300 throughput[Mbps] time[s] without pacing with pacing 図6.5: ネットワークエミュレータを用い,FAST TCP で測定した結果(RTT 50) 0 200 400 600 800 1000 0 50 100 150 200 250 300 throughput[Mbps] time[s] without pacing with pacing 図6.6: ネットワークエミュレータを用い,FAST TCP で測定した結果(RTT 100)

(26)

0 200 400 600 800 1000 0 50 100 150 200 250 300 throughput[Mbps] time[s] without pacing with pacing 図6.7: ネットワークエミュレータを用い,FAST TCP で測定した結果(RTT 150) 0 200 400 600 800 1000 0 50 100 150 200 250 300 throughput[Mbps] time[s] with spacing without spacing 図6.8: ネットワークエミュレータを用い,FAST TCP で測定した結果(RTT 200)

6.2

実環境ネットワークの時の検証

この実験環境では,Standard TCP,FAST TCPそれぞれで,1本流した場合,2本流し た場合,UDPと共に流した場合の,平均ープットの値を検証した.また,UDPでは,帯域 を10Mb/s と 20Mb/s の両方の場合で測定した.この実験環境でも,ネットワークエミュ レータを用いた実験と同様,PSPacer の送信帯域は930Mbpsに設定した.

(27)

6.2.1

Standard TCP

Standard TCP を用いた場合の結果を,図6.9,図6.10,図6.11,図6.12,図6.13,図

(28)

0 200 400 600 800 1000 0 50 100 150 200 250 300 throughput[Mbps] time[s]

without pacing with pacing

図6.9: 実環境ネットワークを用い,Standard TCP 1本で測定した結果 0 200 400 600 800 1000 0 50 100 150 200 250 300 throughput[Mbps] time[s] iperf1 iperf2 SUM 図6.10: 実環境ネットワークを用い,Standard TCP 2本で測定した結果(PSPacerなし)

(29)

0 200 400 600 800 1000 0 50 100 150 200 250 300 throughput[Mbps] time[s] iperf1 iperf2 SUM 図6.11: 実環境ネットワークを用い,Standard TCP 2本で測定した結果(PSPacerあり) 0 200 400 600 800 1000 0 50 100 150 200 250 300 throughput[Mbps] time[s] without pacing with pacing 図6.12: 実環境ネットワークを用い,Standard TCP+UDP(10Mbps)で測定した結果

(30)

0 200 400 600 800 1000 0 50 100 150 200 250 300 throughput[Mbps] time[s] with spacing without spacing 図6.13: 実環境ネットワークを用い,Standard TCP+UDP(20Mbps)で測定した結果 0 20 40 60 80 100 0 50 100 150 200 250 300 0 0.5 1 1.5 2 loss[%] jitter[ms] time[s] loss jitter 図6.14: 実環境ネットワークを用い,Standard TCP+UDP(10Mbps)で測定した場合のロ ス率(PSPacerなし

(31)

0 20 40 60 80 100 0 50 100 150 200 250 300 0 0.5 1 1.5 2 loss[%] jitter[ms] time[s] loss jitter 図6.15: 実環境ネットワークを用い,StandardTCP+UDP(10Mbps)で測定した場合のロス 率(PSPacerあり) 0 20 40 60 80 100 0 50 100 150 200 250 300 0 0.5 1 1.5 2 loss[%] jitter[ms] time[s] loss jitter 図6.16: 実環境ネットワークを用い,StandardTCP+UDP(20Mbps)で測定した場合のロス 率(PSPacerなし)

(32)

0 20 40 60 80 100 0 50 100 150 200 250 300 0 0.5 1 1.5 2 loss[%] jitter[ms] time[s] loss jitter 図6.17: 実環境ネットワークを用い,StandardTCP+UDP(20Mbps)で測定した場合のロス 率(PSPacerあり)

6.2.2

FAST TCP

FAST TCPを用いた場合の結果を,図6.18,図6.19,図6.20,図6.21,図6.22,図6.23, 図6.24,図6.25,図6.26に示す.

(33)

0 200 400 600 800 1000 0 50 100 150 200 250 300 throughput[Mbps] time[s] with spacing without spacing 図6.18: 実環境ネットワークを用い,FAST TCP 1本で測定した結果) 0 200 400 600 800 1000 0 50 100 150 200 250 300 throughput[Mbps] time[s] iperf1 iperf2 SUM 図6.19: 実環境ネットワークを用い,FASTTCP 2本 で測定した結果(PSPacerなし)

(34)

0 200 400 600 800 1000 0 50 100 150 200 250 300 throughput[Mbps] time[s] iperf1 iperf2 SUM 図6.20: 実環境ネットワークを用い,FAST TCP 2本で測定した結果(PSPacerあり) 0 200 400 600 800 1000 0 50 100 150 200 250 300 throughput[Mbps] time[s] without pacing with pacing 図 6.21: 実環境ネットワークを用い,FAST TCP+UDP(10Mbps)で測定した結果

(35)

0 200 400 600 800 1000 0 50 100 150 200 250 300 throughput[Mbps] time[s] with spacing without spacing 図 6.22: 実環境ネットワークを用い,FAST TCP+UDP(20Mbps)で測定した結果 0 20 40 60 80 100 0 50 100 150 200 250 300 0 0.5 1 1.5 2 loss[%] jitter[ms] time[s] loss jitter 図6.23: 実環境ネットワークを用い,FAST TCP+UDP(10Mbps)で測定した場合のロス率 (PSPacerなし)

(36)

0 20 40 60 80 100 0 50 100 150 200 250 300 0 0.5 1 1.5 2 loss[%] jitter[ms] time[s] loss jitter 図6.24: 実環境ネットワークを用い,FAST TCP+UDP(10Mbps)で測定した場合のロス率 (PSPacerあり) 0 20 40 60 80 100 0 50 100 150 200 250 300 0 0.5 1 1.5 2 loss[%] jitter[ms] time[s] loss jitter 図6.25: 実環境ネットワークを用い,FAST TCP+UDP(20Mbps)で測定した場合のロス率 (PSPacerなし)

(37)

0 20 40 60 80 100 0 50 100 150 200 250 300 0 0.5 1 1.5 2 loss[%] jitter[ms] time[s] loss jitter 図6.26: 実環境ネットワークを用い,FAST TCP+UDP(20Mbps)で測定した場合のロス率 (PSPacerあり)

6.3

提案機構の評価

以上の結果より,エミュレータを用いた実験では,Standard TCPにはPSPacerの効果が みられ,優れたスループットを得られることが分かった.しかし,FAST TCPには,PSPacer の効果はみられなかった.

実環境ネットワークでの実験では,Standard TCP,FAST TCPのどちらにもPSPacerの

効果がみられた.特にFAST TCPでは,PSPacerがない場合,FAST TCP1本の場合に比

べ,UDPと共に測定すると平均スループットは200Mbps 程低い.それに対して,PSPacer

(38)

7

まとめ

本研究では,高速長距離ネットワークにおいて,バーストトラヒックを発生させないこと を目的として,産総研グリッド研究所で開発されたソフトウエアであるPSPacerを使って 実験を行い,その有効性を明らかにした.具体的には,現在インターネットで広く使われて いる Standdard TCPと,高速長距離ネットワーク向けの新しい TCPである FAST TCP を用いて,平均スループットを測定し,その平均スループットの向上を目的とした. ネットワークエミュレータを用いた実験ネットワークと,実環境ネットワークでの実験を 行い,PSPacerの有効性を調査した.その結果,以下のことが分かった. ネットワークエミュレータを用いた実験では,Standard TCPはPSPacerの効果がみ られ,良好なスループット特性を示すことが分かった.しかし,FAST TCPはPSPacer の効果はみられなかった.

実環境ネットワークでの実験では,Standard TCP,FAST TCP共にPSPacer の効

果がみられ,良好なスループット特性を示すことが分かった.

また,今後の課題としては,以下に示すことが挙げられる.

ネットワークの規模を大きくした場合の特性の評価

実環境ネットワークでの実験の場合の,FAST TCP+UDP の場合の UDP での不自

(39)

謝辞

本研究を進めるにあたり、様々な面において適切に御指導をくださいました鶴正人助教授 に心から感謝致します.また,ゼミに対して適切な御意見を頂きました,尾家祐二教授,川 原憲治助教授,池永全志助教授,福田豊助手に厚くお礼申し上げます.また,本研究に対し 御指導頂きました株式会社 アックスの高野了成様に深く感謝致します.また,本研究に対 しお忙しい中終始熱心に御指導して頂きました九州電力の神山勝司様,NICT北九州JGN2 リサーチセンターの熊副和美様に深く感謝致します.また様々な面で御協力頂きました鶴研 究室,尾家研究室,川原研究室の皆様に感謝申し上げます.最後に研究室での生活を快適に 整えて下さいました竹村真奈美事務補佐員,吉木智絵事務補佐員に感謝致します.

(40)

参考文献

[1] Ryousei Takano,Tomohiro Kudoh,Yuetsu kodama,Motohiko Matsuda,Hiroshi Tezeka and Yutaka Ishikawa: “Design and Evaluation of Precise Software Pacing Mechanisms for Fast Long-Distance Networks”

[2] 鶴正人,熊副和美,尾家祐二: “長距離通信のための TCP 性能改善技術の動向情報処

理,vol.44,No.9,pp.951–957

[3] http://www.gridmpi.org/pspacer-1.0/index.ja.jsp

[4] http://www.aist.go.jp/aist-j/aistinfo/aist-today/vol05-09/topics/ vol05-09-topics.html

図 4.1: ギャップパケット 4.1.1 ターゲットレート ターゲットレートは,以下の方程式で求められる . cwnd は,輻輳ウインドウサイズである. targetrate = cwnd × packetsizu RT T (4.1) 次にギャップパケットが挿入されている場合のターゲットレートは,以下の方程式で求めら れる. maxrate は NIC の最大の物理的な帯域幅である .
図 5.1: ネットワークエミュレータを用いた実験環境 5 実験 本研究では実験ネットワークを構築して PSPacer を用いて,実験を行い,パケットスペー シングの有効性を評価する.本章では実験モデル,実験手法についての説明を行う. 5.1 エミュレータを用いた実験ネットワーク PC1 と PC2 の間にエミュレータを置いた 1 対 1 の実験環境である.実験ネットワーク を図 5.1 に示す.
図 6.9: 実環境ネットワークを用い, Standard TCP 1 本で測定した結果  0 200 400 600 800 1000  0  50  100  150  200  250  300throughput[Mbps] time[s] iperf1iperf2SUM 図 6.10: 実環境ネットワークを用い, Standard TCP 2 本で測定した結果 (PSPacer なし )

参照

関連したドキュメント

と歌を歌いながら止まっています。電気きかん車が、おけしようを

ても情報活用の実践力を育てていくことが求められているのである︒

停止等の対象となっているが、 「青」区分として、観光目的の新規入国が条件付きで認めら

90年代に入ってから,クラブをめぐって新たな動きがみられるようになっている。それは,従来の

L´evy V´ehel, Large deviation spectrum of a class of additive processes with correlated non-stationary increments.. L´evy V´ehel, Multifractality of

に関連する項目として、 「老いも若きも役割があって社会に溶けこめるまち(桶川市)」 「いくつ

AMS (代替管理システム): AMS を搭載した船舶は規則に適合しているため延長は 認められない。 AMS は船舶の適合期日から 5 年間使用することができる。

ASTM E2500-07 ISPE は、2005 年初頭、FDA から奨励され、設備や施設が意図された使用に適しているこ