計測自動制御学会東北支部 第 3 0 9 回研究集会( 2 0 1 7 .6. 2 3 )
資料番号 309-9
ネットワークノードによる冗長トラフィック削減処理の自律的選択
Autonomous decision of redundant traffic reduction with network nodes○池田大和、一條健司、成田明子○Yamato Ikeda, Kenji Ichijo, Akiko Narita
弘前大学
Hirosaki University
キーワード : TCP/IP，冗長トラフィック削減(Redundant Traffic Reduction)，
IP オプション(IP option), パケットキャッシュ(Packet Cache)

連絡先 : 〒036-8561 青森県弘前市文京町 3 理工学部 1 号館
成田明子，Email : slnari@hirosaki-u.ac.jp

1. はじめにマルチキャストを利用する方法もあるが、TCP

1.1 研究背景通信に対応していないことや、経路上のすべて近年では動画配信など、1 つの配信者から複のノードがこの IP マルチキャストに対応して数のホストに向けて短時間内に内容が重複すいなければならないなどの制約がある。その点、るデータが配信されることが増えている。ネッTR ノードは TCP 通信に対応しており、削減区トワークに同じデータが何度も流れる状況に間のみが TR ノードで構成されていれば冗長トは冗長性があり、帯域を浪費しているといえる。

ラフィックが削減でき、TR ノードは IP マルチ

我々の研究グループではネットワークノードキャストに比べて汎用性がある。以上の理由かにパケットキャッシュを設け、情報を損なわず

ら我々研究グループでは IP マルチキャストをに冗長トラフィックの通信量を削減すること利用せずに冗長トラフィックの削減を目的とが可能な TR（Traffic Reduction）ノードを開した TR ノードの開発を行っている。

発している。 TR ノードの処理としては①圧縮②中継③復元の 3 つがある(図 1)。①を担当するノードでは、キャッシュされたデータと同じ内容を持つ受信パケットを圧縮しデータサイズを削減する処理を行う。図 1 の点線は圧縮されたデータの流れを表す。②を担当するノード
では後続に復元ノードがあるためデータをキャッシュしながら圧縮データをフォワードす

図 1 TR ノードの削減処理を示す図る。そして③のノードでは、圧縮側と同一のデータを保有するキャッシュを使って圧縮デー

TR ノードではネットワーク層に IP を利用しタを元に戻す。これにより、圧縮を担当するた通信に対応している。TR ノードは配信で流TR ノードと復元を担当する TR ノード間で繰れるパケットのヘッダ領域を使いエンドポイり返し送られるデータのトラフィックを削減ント間に何台の TR ノードが存在するかを常にすることが可能となる。

検査し、途中で経路上の TR ノードが増減した冗長トラフィックを削減する手法として IP場合にも対応し、削減処理の内容を変更することができる。ただし、[1]の TR ノードが動作するネットワークに関しては条件がある。[1]のTR ノードでは TCP 通信で流れるパケットが往路と復路で同じ台数の TR ノードを経由して配図 2 TR オプションのパケット形式

信が行われるときのみしか最適な動作が保証されないのである。この条件を満たさないネッ

2.2

冗長トラフィックの削減手法

トワークで[1]の TR ノードを動作させるとパ[1]の TR ノードによるトラフィック削減のケットのヘッダ領域から適切な削減処理を選基本的な流れを図 3～図 4 を使って説明する。

択することができず、それが原因でエンドポイ

今回の説明ではエンドポイント間に 2 台の TRント間の通信の失敗や削減区間を最大限取れノードが存在する場合を想定する。TR ノードないといった問題が発生する。

はそれぞれ通信キャッシュを持っている。TR

本研究の目的は配信で流れるパケットの情ノードでは受信したパケットの内容と通信キ報からのみでは最適な削減処理を選択できなャッシュ内の中身を比較し、キャッシュ内に同かったネットワークにおいても通信の安定をじデータが無い場合はキャッシュに記録を行保証しながら TR ノードによって最大限の削減う（図 3）。

区間を確保させることである。この目的を達成するためには配信データが通過する TR ノードの台数を TR ノード間で伝え合い、適切な削減処理を選択させる必要がある。
本論文は以下の構成である。第 2 節では TRノードの動作と抱えている問題について述べる。第 3 節では問題の解決のために TR ノードが最適な削減処理を自律的に選択できるよう

図 3 キャッシュへの記録な機能について説明する。第 4 節では実際に動作させたときの結果を述べ、有効に動作してい図 3 では配信者によって”データ A”が送信ることを示す。第 5 節では本論文のまとめと今され TR ノード１がそのデータを受け取った時、後の課題について触れる。

キャッシュ内に同じものが無いためキャッシュの更新が行われる。このとき TR オプション

2.

TR ノード内の「指示」部分にはキャッシュの記録を指示

2.1

TR ノードの制御情報する値が格納される。そして TR ノード 1,2 で[1]では TR ノードの削減処理に必要な情報を通信キャッシュの内容を全く同じものにする

ホストが送信するパケットの IP ヘッダのオプ

ため TR ノード 1 は TR オプションの｢CE(キャションとして領域に保持していることを前提

ッシュエントリ番号｣を使い、データ A を更新にしている。このオプションを TR オプションするキャッシュのレコードを指定する。と呼び、図 2 のようなパケット形式となる。上そして TR ノード 1 からのパケットを受信したにある数字は各フィールドで要するバイト数

TR ノード 2 は TR オプションの｢指示｣と｢CEである。各フィールドに関しての説明は本研究番号｣をもとに TR ノード 1 と同じキャッシュで必要なもののみ 2.2～2.3 内で行う。の内容になるように更新を行う。
次に同じ”データ A”を TR ノード１が受け取った場合には”データ 1”をキャッシュエントリば 3 の値が入る。下位 2 桁の値は通過数の値で番号に置き換えた小さなパケットに変換する。

あり、TR ノードはパケットを受信する度にこその際、TR オプションの｢指示｣の値は変換しの値を 1 加算する。

たデータの復元を後続ノードに指示する値が削減処理は次のように選択する。TR ノード格納される。そして変換したパケットを後続へ１であれば総数が 3 に対し通過数が 1 なので後フォワードし冗長トラフィックの削減を行い、続に TR ノードが存在することがわかり圧縮処

図 4 のような形になる。以上の流れで TR ノー理を行うことになる。TR ノード 2 は総数が 3

ド１と TR ノード 2 の区間で冗長のトラフィッに対し通過数が 2 なので、後続に TR ノードがクを削減することができる。

あるとして圧縮データをフォワードする。そしなお図 1 のように配信のエンドポイント間にて TR ノード 3 では総数と通過数の値が一致し3 台以上の TR ノードが存在する場合、削減区たため後続に TR ノードが存在しないとしてキ間を最大限にとるため図 1 の TR ノード 2 は通ャッシュの内容からデータを復元する処理を信キャッシュの更新を行いながら圧縮データ選ぶ。

を後続へフォワードすることになる。

図 5 削減処理の選択方法
図 4

TR ノードを用いた冗長トラフィック

2.4

削減処理の選択方法に関する問題

図 6 は本研究で問題としたネットワーク環境削減の１つである。ルータ A は配信データに対しル2.3

削減処理の選択方法

ータ B へルーティングを行い、ルータ C はクTR ノードが圧縮や中継の動作を行うには自ライアントからのパケットに対し TR ノード 3身の後続に他の TR ノードが必ず存在しなけれへ固定されたルーティングする場合を考える。

ばならない。TR ノードは TR オプション内

この場合、サーバからクライアントへのパケッの”TR_HOP”というフィールドを用い、後続のトは合計 2 台の TR ノードを通り、クライアンTR ノードの有無を調べ、削減処理を選択す

トからサーバへのパケットは合計 3 台の TR ノる。”TR_HOP”は「総数」と「通過数」というードを通過する。総数の値はエンドポイントが値で構成され、総数はエンドポイント間で合計設定しており、通過数の値を反対方向のパケッ何台の TR ノードを通過するか、そして通過数トの総数のフィールドにコピーすることによはある TR ノードがパケットを受信した時までり実現される。図 6 でクライアントからのパケに何台の TR ノードを通過してきたかを示す値

ットを受信したサーバは通過数の値 3 をクライである。

アントへのパケットの総数の値へコピーし、そ

図 5 を例にして総数と通過数を使った削減処れを配信データに載せて送る。TR ノード 1 は理の選択について説明する。長方形内の数字はこれを受信し圧縮データを後続へ送る。しかしTR オプションの”TR_HOP”の値を示し、上位 2

TR ノード 2 は総数と通過数の値が一致しない

桁は総数を表す値で図 5 のネットワークであれことから後続に TR ノードが存在するとしてTR ノード１が圧縮したデータをフォワードしがクライアントである通信の情報として記録てしまうという問題が起こる。

しておく。なお TR ノードは配信の送受信を行

図 7 は図 6 の TR ノード 3 とルータ B が入れうマシンの組み合わせ単位で配信データが通替わったようなネットワークであるがこの場過する TR ノードの台数を記録し、以降説明す合、TR ノード 2 が総数と通過数の値が一致しる削減処理に関する情報を管理していく。これたことから後続に TR ノードが存在するにも関は TR ノード自身がルーティングを行っているわらず復元処理を行ってしまう。これも削減区配信データを送受信しあうマシンの組み合わ間が最大限とれないという 1 つの問題である。

せに応じて TR ノードが最適な処理を変更する

このように特定のネットワーク環境では TRことができるようにするためである。図 8 はサオプションの値のみから削減処理を選択する

ーバの配信がクライアント 1、2 へ行われる例と通信の失敗や削減区間が最大限とれないとだがこの場合、TR ノード 2 はサーバからクラいう問題が[1]の TR ノードでは起こることがイアント 1 への配信に関しては復元を行い、サわかっている。

ーバからクライアント 2 への配信に関しては中継の動作を選択するべきである。そのために削減処理の選択に関する情報を配信データの送受信を行うマシンの組み合わせ単位で管理させることにより TR ノード 2 はネットワークトポロジに応じて選択する削減処理を柔軟に変更することができるようになる。

図 6 通信の失敗が生じるネットワークの例

図 8 削減処理をエンドポイントの組み合わせ単位で選択する例
3.2
図 7 削減区間が最大限とれないネットワー
クの例

ICMP パケットの仕様とその利用方法

図 7 のようなネットワークでは TR ノード 3がクライアントからのパケットを受信できず、3.1 で述べた手法で配信データが何台の TR ノ

3.

削減処理の自律的選択機能ードを通過するかを知ることができない。そこ

3.1

最適な削減処理の選択に必要な情報で配信データを最初に受信する TR ノードが記本研究では 2.4 で述べた問題を解決するため録した総数の値を後続の TR ノードに伝え、そに TR ノードの削減処理を選択する仕組みを変れをもとに削減処理を選択させる仕組みを導更する。クライアントが発したパケットの総数入する。の値にはサーバが送る配信データが通過する

なお本研究ではサーバからの配信データをTR ノードの合計台数が書かれていることから最初に受信する TR ノードはクライアントがサTR ノードはその値を送信元がサーバ、送信先ーバへ宛てたパケットも受信しており、なおかつ図 6､図 7 におけるルータ A,C が一貫して固ていた通信のエンドポイントの組み合わせの定されたルーティングを行っているというこうち、どの組み合わせに関するデータが送られとを想定している。てきたのかを知ることができる。「通過合計台

図 7 における TR ノード 1 はクライアントか数」は対応するエンドポイントの組み合わせにらのパケットを受信し、配信データが通過する

おいて配信データが何台の TR ノードが通過すTR ノードの合計台数を知ることができたらるかを表す値である。「ホップカウント」はこ

ICMP パケットを後続の TR ノードへ向けて送のパケットを何番目に受信した TR ノードであ信する。なお、現状では TR ノード 1 は TR ノるかを示す値である。パケットを送信する TR

ード 3 の IP アドレスを知る術がない。想定しノードは「ホップカウント」の値を初期値としていた条件ではルータ A はクライアント宛てて 1 に設定し、後続の TR ノードはこのパケッのパケットを一貫して TR ノード 3 へルーティ

トを受信する度にこの値を 1 加算する。

ングする。TR ノード 1 はクライアントを送信

図 7 の TR ノード 1 は通過合計台数を 3 としする ICMP パケットの宛先とすることにより、TR ノード 2 へ ICMP パケットを送信する。そこの ICMP パケットは TR ノード 3 へ到達し、の時の処理の流れを図 10 に示す。緑で囲まれ配信データが通過する TR ノードの合計台数をた数字は ICMP データ部にある通過合計台数TR ノード 3 へ知らせることができる。

を表し、青で囲まれた数字はホップカウントの

図 9 は TR ノード 1 が送信する ICMP パケッ値を表す。ICMP パケットを受信した TR ノートにおける ICMP データ部の形式である。上にド 2 はホップカウントの値を 1 加算し通過合計ある数字は各フィールドで要するバイト数で台数と比較する。通過合計台数がホップカウンある。この ICMP パケットは配信が開始されたトの値より大きいため後続に TR ノードが存在直後に送られ、パケットのロストや経路上のするとわかる。このことから TR ノード 2 はサ

TR ノードの台数に増減があった場合以外にはーバからクライアント宛への通信において自送られない。そして ICMP データ部はホップカ

身は中継の動作を行うべきだと判断できる。そウントの後ろにパディングが入るため合計 8 バして ICMP パケットを後続へ送信する。ルータ

イトのデータ量となり帯域を流れる。これは一A へ送られた ICMP パケットは TR ノード 3 へ

般的な配信で流れる TCP データ部のデータ量届けられる。TR ノード 3 はホップカウントをと比べてもかなり小さく ICMP パケット送る加算し通過合計台数と比較する。通過合計台数機能が実装されたことによりトラフィックにが 3 に対しホップカウントの値が 3 となり 2 つ与える影響は極めて小さいといえる。の値が一致したため後続には TR ノードが存在せず自身が圧縮データを復元すべきだとわかる。TR ノード 3 はそのパケットを破棄し TR
ノード 1 へ ICMP パケットの受信が完了したこ

図 9 冗長データを初めに受信した TR ノードが送信する ICMP データの形式
ICMP パケットを受信した TR ノードは図 9にある「サーバの IP アドレス」と IP ヘッダ内の宛先 IP アドレス（図 7 の場合、クライアントの IP アドレスとなる。
）からそれまで仲介しとを新たにパケットを送信し伝える。

図 10 TR ノードが操作する ICMP データ部の11 のネットワークで動作させると、TR ノード

内容2 は TR オプションの総数が通過数の値よりも大きいため圧縮データを中継してしまう。このなお TR ノード 1 は TR ノード 3 からの応答

状況は図 6 のネットワークで生じる状況と同等があるまで圧縮処理を行わない。TR ノード 1のものである。つまり図 11 のネットワークでが送信した ICMP パケットが何らかの理由で新機能を実装した TR ノードが最適な削減処理ロストした場合、TR ノード 2,3 は自身が行うを選択し、TR ノード 2 が圧縮データを復元すべき処理を判断できない。この状態で TR ノーることができていれば、図 6 のネットワークでド 1 が圧縮データを後続へ送ってしまうと通信生じる問題を解決できたといえる。検証 B ではの失敗が起きてしまう可能性があるからであTR ノード 3 がクラインアントから送られてきる。

たパケットの通過数の値を加算しないように

TR ノード 3 から ICMP パケット受信が完了してある。これにより[1]の TR ノードを図 12したことが伝えられると TR ノード 1 は配信デのネットワークで動作させると TR ノード 2 はータを圧縮して送る。TR ノード 2，3 は先ほどTR オプションの総数が通過数の値と一致するの処理により自身が行うべき削減処理がわかため、後続に TR ノードがあるのにも関わらずっているため、エンドポイント間で往復するパ復元処理を選択してしまい、削減区間を最大限ケットが往路と復路で異なる TR ノードを通過にとれないという状況が発生する。この状況はする場合も最適な動作を行うことができるこ

図 7 を使って説明した状況と等しい。つまり、とになる。

図 12 のネットワークで新機能を実装した TRノードが最適な削減処理を選択し、削減区間を4 動作検証と評価最大限にとることができていれば、図 7 のネッ4.1 自律的な削減処理選択機能の検証トワークで生じる問題を解決できたといえる。

図 6 のように[1]の TR ノードでは圧縮データそれぞれの検証は 300 秒間行い、検証 A でがクラアイントへ送られてしまう状況にも対は TR ノード 1,2 の送受信量を測定し、検証 B応できているかの検証を検証 A、図 7 のようにでは TR ノード 1,2,3 の送受信量を測定した。

[1]の TR ノードでは削減区間を最大限取れな

また、図 11、図 12 のネットワーク構成で[1]かった状況では今回の実装で TR ノードはどのの TR ノードも動作させて新機能を実装した

ように動作するか確かめる検証を検証 B と呼TR ノードの動作と比較した。

ぶ。検証 A には図 11、検証 B では図 12 のネットワーク構成を使用した。検証 A、B ともにクライアント上では 5 つプロセスを起動させ 5台の受信ホストを代用する。そしてサーバはクライアントの各プロセスに冗長なデータ配信を行い TR ノードが最適な削減機能を選択できているか検証する。表 1 に検証 A,B で使用した各マシンのスペックを表す。
検証 A ではルータがクライアントから送られてきたパケットの通過数の値を加算するようにしてある。これにより[1]の TR ノードを図

図 11 検証 A のネットワーク構成

転送量[Mbps]

12010010010080604025252525200

図 12 検証 B のネットワーク構成

TRノード1受信量

表 1 検証 A,B で使用したマシンのスペック

TRノード2

TRノード3

送信量

図 14 検証 B における本研究の TR ノード 1,2,3

転送量[Mbps]の送受信量

4.2

検証結果

120100806040200

検証 A における TR ノード 1,2 の送受信量

100

25

TRノード1を図 13、検証 B において本研究の TR ノー

受信量100100 100

TRノード2

TRノード325送信量

ドを動作させた時における TR ノード 1,2,3の送受信量を図 14、[1]の TR ノードを動作

図 15 検証 B における[1]の TR ノード 1,2,3 のさせたときにおける TR ノード 1,2,3 の送受送受信量

信量を図 15 に示した。
120

図 13 より検証 A では[1]の削減処理の選択方
100100法を用いた TR ノード 1,2 の送受信量は著しく80低くなっていることがわかる。サーバが送信す60るパケットの TR オプションの総数には 3 が入転送量[Mbps]

1004025り、[1]の TR ノードは TR オプションの情報の2520

1.8 0.80.8 1.80
TRノード1 TRノード2 TRノード1 TRノード2
本研究受信量

文献[1]の仕様
送信量

みから処理を選択するため、TR ノード 2 は配信データの総数と通過数の値から後続に TR ノードが存在すると判断する。そのため圧縮データがフォワードされそれがクライアントに届けられる。するとクライアントは TCP チェッ

図 13 検証 A における TR ノード 1,2 の送受信クサムのエラーを検知しそのパケットを破棄量する。これにより TCP の輻輳制御が働きサー
バは配信のレートを大きく下げる。これが[1]の TR ノードの送受信量が著しく低下した理由である。しかし本研究における TR ノード 2 は圧縮データを復元できていることが図 13 からわかる。このことから TR ノード 2 は TR ノー失敗が起きる。TR ノードはルータの負荷分

ド 1 が送信した ICMP パケットの情報をもとに散により配信データが通る TR ノードの台数自身が復元処理を行うべきであると判断し最にばらつきがあることを検知したら、TR オ適な処理を選択できたといえる。

プションの通過数の値をこまめに監視し、確

図 15 から検証 B では [1]の削減処理の手法

実に配信データが TR ノードを通過する区間を用いた TR ノード 2 が圧縮データを復元してでのみ圧縮データを流すといった対策が必いることが確認できる。サーバが送信するパケ要となる。

ットの総数の値は 2 で、[1]の TR ノードならばTR ノード 2 は総数と通過数の値が一致するた

参考文献

め後続に TR ノードがいないとして復元処理を[1] Tomohiro Yoshida, Yamato Ikeda, Kenji

選択していた。この場合、実際は後続に TR ノIchijo, Akiko Narita “Autonomous Decision ofード 3 が存在しており削減区間を最大限とるこFunction of the Redundant Traffic Reductionとができていない。図 14 から本研究におけるNode Using a New IP Option”, 2016

TR ノード 2 の送受信量はともに約 25Mbps でInternational Conference on Networking andあり、TR ノード 2 は圧縮したデータを中継す

Network Applications (NaNA’2016) ,ることができていることがわかる。そして TRpp.233-pp.238

ノード 3 は圧縮データを復元できていることも図 14 からわかる。このことから TR ノード 2,3
は TR ノード 1 が送信した ICMP パケットの情報から最適な削減処理を選択できたといえる。

5.

結論

5.1

まとめ

本研究では配信データが通過する TR ノードの台数を TR ノード間で伝え合うことにより、それぞれが最適な削減機能を自律的に選択できることが可能になった。その結果、TRオプションの情報のみからでは適切な処理を選択することができなかったネットワー
クにおいても TR ノードは最適な動作を行うことができるようになった。
5.2

今後の課題

図 6、図 7 のようなネットワークにおいてルータ A が配信データに対し、固定されたルーティングを行わない場合問題が起きる。ルータ A の負荷分散などの機能により圧縮データがルータ B へ届けられると TR ノードが圧縮データを復元することができず通信の