F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1...
Transcript of F · Copyright©2016 NTT corp. All Rights Reserved. n MÊ [ • » qg bæq • tg B å÷ ñoMn 0 1...
Copyright©2016NTTcorp.AllRightsReserved.
n
l BGG
VPUN 9UR BGG H N R [[ BGG
*(). )) ** F
Copyright©2016NTTcorp.AllRightsReserved.
Fn ” ”
” ”• )(( q
” t u“
• ”• n fi
”
AnEfficientFrameworkforData-planeVerificaHonwithGeometricWindowingQueries,inproc.ofIEEEInternaHonalConferenceonNetworkProtocols,2016.
Copyright©2016NTTcorp.AllRightsReserved.
B kn ”
n 8::
• t u•
n
Copyright©2016NTTcorp.AllRightsReserved.
n• n
r k s•
n r s
A1�
B�A2�
A3�
B1�B2�
B3�C3�
C2�
C1�A� C�
Field1� Field2� Action�
*� [3,4]� Drop�
[4,5]� *� A1�
[6,7]� *� A3�
[0,3]� *� A2�
Field1� Field2� Action�
[0,3]� [2,5]� B2�
[4,5]� *� B1�
[7,7]� [1,3]� B3�
*� *� Drop�
Field1� Field2� Action�
[2,2]� [1,3]� C2�
[4,5]� *� C1�
[6,7]� *� C3�
*� *� Drop�
A� B� C�I�Drop�A� B� C�II�
A� B� C�III�
XII�
:�
A� B� C�
Field1�Field2�
0� 7�0�
7� I�II�III�IV�
V�VI�
VII�
VIII�
IX�
X�XI�
XII�
(3bit)
(3bit)
Copyright©2016NTTcorp.AllRightsReserved.
n
P d D uE B C• n
• r k s• l n
• l
)1* ( * ( *,20(
B n B
• )1* ( * ( *,20( B n m• B n )1* ( * ( *,20( m
Copyright©2016NTTcorp.AllRightsReserved.[Yang16]H.YangandS.S.Lam,IEEE/ACMTrans.Netw.,2016.
LKN T).M• t u
• ” r s ”• k n n
n
7
f ] tr z s t
89
” *)(, n r- a Rspp r s)(
“r n s p r *)(,s
• r s4 e , , f• 7 9 4 e , f
]a[ VR NPR
Copyright©2016NTTcorp.AllRightsReserved.[Kazemian13]P.Kazemianetal.,USENIXNSDI,2013.
n
• n r k n s• )1* ( * ( *,20( B n• B n )1* ( * ( *,20(
L NdRYVN ) M• ”• ”•
U UH
r s
n
r s
Copyright©2016NTTcorp.AllRightsReserved.
n fi ”n
Copyright©2016NTTcorp.AllRightsReserved.
n r s
VY VPN V[ N R N V[
}
U U
n
• 2 )1* ( * ( *,20( B n m• }2 B n )1* ( * ( *,20( m
l ” ”
k
Copyright©2016NTTcorp.AllRightsReserved.
” r s
U U
n
78
9
• PW2 W ”
D 4 e , fRρ 4 e f
• Rρ2 ρ
t
W
l W ρ 8 9 ”
:{ } { , }( )
Rρ PW �
Copyright©2016NTTcorp.AllRightsReserved.
” r } s
} U U
• PW2 W ”
• Rρ2 Rρ r ρ “ s
t
Rρ PW �
l ρ 8 9 W ”
n
78
9
PW 4 e , fRρ 4 e , f
W �
2 { , } { , }( )
I Rρ A PW B
Copyright©2016NTTcorp.AllRightsReserved.
” n n
“ ” ”
Rρ � PW � } Rρ � PW � Rρ � PW � Rρ � PW �
Rρ� LKN T).M
Rρ� o Rρr wsPW � r >9BD ” sPW � mr ” ” ws
lRρ PW
w Rρ, PW “
[Yang16]H.YangandS.S.Lam,IEEE/ACMTrans.Netw.,2016.
Copyright©2016NTTcorp.AllRightsReserved.
” r } l ys
} U U
• QW2 W
tRρ PW �
l ρ 8 9 W ”
n
78
9
QW 4 e fRρ 4 e f
W �
:{ }{{ }r s
Rρ { QW �
• Rρ2 ρ
Copyright©2016NTTcorp.AllRightsReserved.
” n n r ys
“ ” ”• O(|Rρ| + |PW| + |QW|) ” r n s
Rρ � PW � } Rρ � QW � Rρ � PW � Rρ � QW �
Rρ� LKN T).M
PW � r >9BD ” sQW � m
lQW
l ” r n n s
[Yang16]H.YangandS.S.Lam,IEEE/ACMTrans.Netw.,2016.
Copyright©2016NTTcorp.AllRightsReserved.
k �
U U • W� �
• ” 8:: n ” L> [aR),M
• 8::
n
PW={ , },
W �
QW={ }
l8:: �
t - “ *)(,
pU U r k n s
[Inoue14]T.Inoueetal.,IEEEICNP,2014.
Copyright©2016NTTcorp.AllRightsReserved.
PW( W���"��0���2)• ' +.#�%��W �!)��� �5*�6���
• W !��� r s
QW( W �1&�0���2)• BDD
• rangetree W
�
0
1 1
3
2
3
2
4 4
3
4 4
33
I
5 5
4
VII
5 5
444
II III
5 5
VIII IX
5555
VI V IV XXIIXI
0
1
3
III�
3
II� IV�
Adecisiondiagram6-bit 12
PW={�,�},�
W �
QW={�} �
/-��34�
W �
W <=>
Copyright©2016NTTcorp.AllRightsReserved.
a
o• /2 LKN T).M “• *2 2 =RN R F NPR 7 N c V L NdRYVN ) M
- 2eV 1 -. ). -0 ).,. */ .
S [ ! )*. ( /-/ ) . ,(- .* :32bit, :104bit
“ ”
nU U n n *{0..1023},TCP
[Yang16]H.YangandS.S.Lam,IEEE/ACMTrans.Netw.,2016.[Kazemian13]P.Kazemianetal.,USENIXNSDI,2013.
Copyright©2016NTTcorp.AllRightsReserved.
(1/2)
n t• Rρ PW�(,������
Rρ PW�$����• 16p120
PWH QW (Purdue) 1
10
100
1000
10000
100000
1x106
Internet2 Stanford PurdueTi
me
[us]
Our methodE-APVHassel-C
120
• =N R 9 Da aR
sPW � ** / )( 0(QW � )0 1 ) (,
(
Copyright©2016NTTcorp.AllRightsReserved.
(2/2)
10
100
1000
10000
100000
10 100 1000 10000 100000 1x106 1x107
Tim
e [s
]
# of tests
Our methodE-APV
10
18
t (Purdue)•
(7M) ”
• Rρ PW • 10
Copyright©2016NTTcorp.AllRightsReserved.
• ”r n n s
• • n n )( ”
r• n 3 Y ”•
Copyright©2016NTTcorp.AllRightsReserved.
0
1 1
3
2
3
2
4 4
3
4 4
33
I
5 5
4
VII
5 5
444
II III
5 5
VIII IX
5555
VI V IV XXIIXI
A:: m• Aa V R YV N OV N c :RPV V[ :VNT NY• r n s
Field1�
Field2�
0� 7�0�
7� I�II�III�IV�
V�VI�
VII�
VIII�
IX�
X�XI�
XII�
A� B� C�I�Drop�A� B� C�II�
A� B� C�III�
XII�
:�
A� B� C�
G > [aR R N g R UV WV T DNPWR 9 N VhPN V[ S[ < [ON BR b[ W IVRb [S F[S bN R :Rh R BR b[ WV T i >9BD *(),
VR )2 ()(VR *2 ))(
>
VR)
VR*
n
Copyright©2016NTTcorp.AllRightsReserved.
n•
• n
0
1 1
2
IIII II IV V
1
IN
ON
OUTL((( ()(M
n n&
最後に,H⊂=R の判定を行い,ハイパーキューブに含まれるす
べてのパケットが宛先に到達できるかどうかを検査する.図 1
の例において,ハイパーキューブ [0,3], [2,3] について A1 から B2までの到達可能性を検査する.この例では,R = {II,V}かつ H = {II, III, IV,V} なので,H⊂
=R は満たされていない(III と IV のパケットは到達しない).つまりテスト結果は失敗となる.式 (2)を算出するためにはすべての APと交わり判定を行うため,AP 数が数万 [12]にもなると,計算時間がかなり遅くなる可能性がある.
3. 提案アルゴリズム本節では提案アルゴリズムを説明する.3. 1節でMDDを振
り返り,3. 2節でアルゴリズムの入出力を述べ,3. 3節から 3. 5
節までアルゴリズムを説明する.3. 1 MDD
図 2b が示すように,MDD [13] は BDD と同じくひとつの根を持つ無閉路有向グラフだが,2つより多くの終端節点を持つ.それぞれの終端節点はいずれかの AP番号 I, II, · · · , |P | に対応付けられている.この点を除けば,他の特徴は BDDと同じである.MDDは次のような多値関数 F を表す.
F : X → {I, II, · · · , |P |},
パケット x が i 番目の APに属するときのみ,F (x) = i となる.ヘッダ空間全体を表すには複数の BDD が必要だったが,MDDは一つで十分である.MDDは reachability treeと並行して構築・更新できるため,検証時間全体への影響は非常に小さい (実験で確認する).これまでMDDはパケット分類に使われてきた [12].ヘッダ
空間に存在する一つの点 x が与えられたとき,x がどの APに属するかを判定するのは簡単だが,ハイパーキューブの場合はそう簡単ではない.3. 2 入 出 力提案アルゴリズムは,MDDを用いて式 (2)を効率よく計算す
る.アルゴリズムの入力は MDD F とハイパーキューブ h で,出力は H である.2. 4節の APVと異なり,ハイパーキューブを表す BDDやMDDを構築する必要はない.3. 3 単一フィールド (上限のみ)
まずは,ヘッダにひとつのフィールドしかなく,下限を 0とし,上限のみを考える.フィールド長は L ビットとする.提案アルゴリズムはMDDを探索しながら各節点の状態を更新する.節点状態は三通りあって,それぞれ IN (範囲内),ON (境界上)とOUT (範囲外) で表す.探索が終わると,INとONの終端節点を返す.図 5 を使ってアルゴリズムのコンセプトを簡単に説明する.
フィールド長を L=3とする.上限は 2であり,x ∈ [000, 010]
において h(x) = ⊤となる.節点の状態は図 5に示す通りに更新される.黒い節点は IN,灰色の節点は ON,そして白い節点は OUT を表す.例えば根から赤い枝までのパスの値は 01 であり,上限の先頭 2ビットと同じであるため,子の状態は ON
になる.もうひとつの例として,終端 Iへは 00*と 011の2つ
0!
1! 1!
2!
III!I! II! IV! V!
1!
IN!
ON!
OUT!
図 5: 単一フィールド用のアルゴリズム Traverse による MDD 探索.
Algorithm 1:単一フィールド用のアルゴリズム Traverse
Input: root
Output: terminals
for each arc in breadth-first order from root dochild, parent ← arc
update child by Table 1return terminals of IN and ON.
表 1: 状態遷移
Child \Parent IN ON OUT
IN IN IN IN
ON IN Table 2 ON
OUT IN Table 2 OUT
のパスがある.011は OUTだが 00*は INであるため,終端 I
の状態は INとする.AP Iとハイパーキューブが完全には一致していなくても,交わりがあれば ,h ∧ fi |= ⊥ が成り立つためである.最終的に,OUTではない終端 I と IIが返される.提案アルゴリズムは意味的にはすべてのパスをチェックする
ことになるが,パスの数は節点よりはるかに多く,実際にすべてのパスをたどるのは効率的ではない.そこで,動的計画法によってMDDを幅優先に探索し,各枝を 2回以上通ることなく同じ結果を得られる.提案アルゴリズムを Traverse と呼ぶことにし,アルゴリ
ズム 1 に示す.まず,根の初期状態を ONとし,その他の節点は仮に OUTとしておく.幅優先に枝をたどりながら,表 1にしたがって子を更新していく.表 1について説明する.親が INであればすでに範囲内であ
ることが確定しているため,枝の値に関係なく子も必ず INになる.親が OUT の場合は範囲外であることが確定しているため,子の状態を変更する必要はない.親が ONの場合,表 2に従って枝と上限を比較する.表 2 を説明する.もし枝と上限の値が同じであれば,子も
ONとなる.枝が上限より小さい場合,子は INになり,そうでなければ変更しない.図 1 の終端 Iへの 0枝のようにビットをスキップしているときは,可能な最小値を比較するためにスキップしたビットを 0とみなす.幅優先にMDDを探索するため,すべての節点は状態が確定
してから親として参照される.また,0/1枝をともに辿ったら,その親は次の探索のために再初期化できるので,初期化のため
— 4 —
表 2: 親が ON 状態であるときの状態遷移
Arc bit \Bound bit 0 1
0 ON IN
1 Child ON
IN!
ONL/U!
OUT!
ONL!
ONU!
0!
1!
2!
3!
I!
0!
2!
1! 1!
3!
I!
(a) Single path to ONL/U! (b) Branch and join at ONL/U!
図 6: 単一フィールドにおいて上下限をともに指定する場合の状態遷移.(a) 範囲を [0000,0011] とする.(b) 範囲を [0011,1100] とする.いくつかの枝と終端節点を省略している.
だけにMDDをたどる必要はない.Traverse は各枝を最大一回しか辿らないため,計算時間
はパスの数ではなく枝の数のみに依存する.また,OUT節点の子をたどる必要はなく,たとえば図 1では右の白い部分を無視できる.実際の検査では比較的狭い範囲を指定することが多く (たとえば 192.0.2.64/29 はアドレス空間のごく一部である),MDDのかなりの部分を無視できる場合も少なくない.3. 4 単一フィールド (上下限あり)
本節では下限も与えられるとする.ふたつの境界を区別するために,下限に乗っている場合を ONL,上限に乗っている場合を ONU とし,ともに乗っている場合を ONL/U とする.根節点は ONL/U に初期化する.先ほどと同様に,各節点は
表 1 に基づいて更新される.親がいずれかの ON 状態で子がINではない場合,子は枝と上下限の値に従って更新される (表2).表 2を参照するとき,もし親が ONL か ONU なら,子は同
じ種類の ON 状態を継承する.親と異なる ON 状態であればONL/U になる.下限の場合は表 2 の 0 と 1 をそれぞれ逆にすればいい.また,枝がビットをスキップしているときは,スキップしたビットを 1にして下限と比べる.もし親が ONL/U
なら,図 6 で示すように,上限と下限の場合をそれぞれ計算してからひとつにまとめる.3. 5 複数フィールド本節では複数のフィールドがある場合を説明する.ここで
L =!
i Li とし,Li は i 番目のフィールド長を表す.単一フィールドアルゴリズム Traverse は,アルゴリズム 2 に示すようにして複数フィールドに拡張できる.フィールドごとにTraverse を呼び出し,前のフィールドで返された終端節点を次フィールドの根節点とする.図 7 に例を示す.3-bit のフィールドがふたつあり,最初の
フィールドの範囲を [000, 010],次を [011, 101]とする.なお,
Algorithm 2: 複数フィールド用のアルゴリズムInput: fields
Output: terminals
roots ← {MDD root}for each field do
terminals ← Traverse(roots)
roots ← terminalsreturn terminals
0
1 1
3
2
3
2
4 4
3
4 4
33
I
5 5
4
VII
5 5
444
II III
5 5
VIII IX
5555
VI V IV XXIIXI
0
1
3
III!
1st field!
2nd field!
図 7: 提案アルゴリズムによる MDD 探索 (複数フィールド).
最初のフィールドは図 5と同じとした.赤縁の節点は,最初のフィールドで到達可能な終端節点であり,同時に次のフィールドの根節点にもなる.これらの節点は,二回目の Traverse を実行するときに ONL/U に初期化する.最終的に {II, III, IV}が返される.複数フィールドの場合も単一フィールドの場合と同じく,計
算時間は枝の数にのみ依存する.OUT節点の下部は無視できるので,ハイパーキューブが小さいほど高速になる.
4. 実 験本節ではアルゴリズムの計算時間を評価する.Internet2 と
スタンフォード大学 [14],パデュー大学 [15] の 3 つのデータを用いた (表 3).FIB は宛先アドレスのみで指定され,ACL
は 5-tuple で指定される.パデュー大学のデータには FIB がなかったので,最短経路に基づいて生成した.実験では到達可能性を検査した.各検査はランダムに選んだインタフェース間で行った.Internet2では prefix のみを指定し,他データでは5-tupleを指定した.提案アルゴリズムと APVを C++で実装した.実験に用いた CPUは Core i7-4790 3.6GHz,メモリサイズは 16GBである.図 8に各検査にかかった平均時間を示す.提案アルゴリズム
は APVより 17倍から 143倍も速かった.これは,APVの計算時間が AP数に大きく依存するのに対し,提案アルゴリズムはひとつのMDDしか探索しないためである.次に,全検査が完了するまで合計時間 (図 3全体の時間) を比
較する.MDD と reachability tree を並行して構築したため,前処理が APVより大きく遅くなることはなかった.前計算にかかる時間はネットワーク更新の規模に依存するが,最悪ケー
— 5 —
1
2
I II
5L>M n7 P OV (
Copyright©2016NTTcorp.AllRightsReserved.
n
IN
ONL/U
OUT
ONL
ONU
0
2
1 1
3
I
L(()) ))((Mn n
&
最後に,H⊂=R の判定を行い,ハイパーキューブに含まれるす
べてのパケットが宛先に到達できるかどうかを検査する.図 1
の例において,ハイパーキューブ [0,3], [2,3] について A1 から B2までの到達可能性を検査する.この例では,R = {II,V}かつ H = {II, III, IV,V} なので,H⊂
=R は満たされていない(III と IV のパケットは到達しない).つまりテスト結果は失敗となる.式 (2)を算出するためにはすべての APと交わり判定を行うため,AP 数が数万 [12]にもなると,計算時間がかなり遅くなる可能性がある.
3. 提案アルゴリズム本節では提案アルゴリズムを説明する.3. 1節でMDDを振
り返り,3. 2節でアルゴリズムの入出力を述べ,3. 3節から 3. 5
節までアルゴリズムを説明する.3. 1 MDD
図 2b が示すように,MDD [13] は BDD と同じくひとつの根を持つ無閉路有向グラフだが,2つより多くの終端節点を持つ.それぞれの終端節点はいずれかの AP番号 I, II, · · · , |P | に対応付けられている.この点を除けば,他の特徴は BDDと同じである.MDDは次のような多値関数 F を表す.
F : X → {I, II, · · · , |P |},
パケット x が i 番目の APに属するときのみ,F (x) = i となる.ヘッダ空間全体を表すには複数の BDD が必要だったが,MDDは一つで十分である.MDDは reachability treeと並行して構築・更新できるため,検証時間全体への影響は非常に小さい (実験で確認する).これまでMDDはパケット分類に使われてきた [12].ヘッダ
空間に存在する一つの点 x が与えられたとき,x がどの APに属するかを判定するのは簡単だが,ハイパーキューブの場合はそう簡単ではない.3. 2 入 出 力提案アルゴリズムは,MDDを用いて式 (2)を効率よく計算す
る.アルゴリズムの入力は MDD F とハイパーキューブ h で,出力は H である.2. 4節の APVと異なり,ハイパーキューブを表す BDDやMDDを構築する必要はない.3. 3 単一フィールド (上限のみ)
まずは,ヘッダにひとつのフィールドしかなく,下限を 0とし,上限のみを考える.フィールド長は L ビットとする.提案アルゴリズムはMDDを探索しながら各節点の状態を更新する.節点状態は三通りあって,それぞれ IN (範囲内),ON (境界上)とOUT (範囲外) で表す.探索が終わると,INとONの終端節点を返す.図 5 を使ってアルゴリズムのコンセプトを簡単に説明する.
フィールド長を L=3とする.上限は 2であり,x ∈ [000, 010]
において h(x) = ⊤となる.節点の状態は図 5に示す通りに更新される.黒い節点は IN,灰色の節点は ON,そして白い節点は OUT を表す.例えば根から赤い枝までのパスの値は 01 であり,上限の先頭 2ビットと同じであるため,子の状態は ON
になる.もうひとつの例として,終端 Iへは 00*と 011の2つ
0!
1! 1!
2!
III!I! II! IV! V!
1!
IN!
ON!
OUT!
図 5: 単一フィールド用のアルゴリズム Traverse による MDD 探索.
Algorithm 1:単一フィールド用のアルゴリズム Traverse
Input: root
Output: terminals
for each arc in breadth-first order from root dochild, parent ← arc
update child by Table 1return terminals of IN and ON.
表 1: 状態遷移
Child \Parent IN ON OUT
IN IN IN IN
ON IN Table 2 ON
OUT IN Table 2 OUT
のパスがある.011は OUTだが 00*は INであるため,終端 I
の状態は INとする.AP Iとハイパーキューブが完全には一致していなくても,交わりがあれば ,h ∧ fi |= ⊥ が成り立つためである.最終的に,OUTではない終端 I と IIが返される.提案アルゴリズムは意味的にはすべてのパスをチェックする
ことになるが,パスの数は節点よりはるかに多く,実際にすべてのパスをたどるのは効率的ではない.そこで,動的計画法によってMDDを幅優先に探索し,各枝を 2回以上通ることなく同じ結果を得られる.提案アルゴリズムを Traverse と呼ぶことにし,アルゴリ
ズム 1 に示す.まず,根の初期状態を ONとし,その他の節点は仮に OUTとしておく.幅優先に枝をたどりながら,表 1にしたがって子を更新していく.表 1について説明する.親が INであればすでに範囲内であ
ることが確定しているため,枝の値に関係なく子も必ず INになる.親が OUT の場合は範囲外であることが確定しているため,子の状態を変更する必要はない.親が ONの場合,表 2に従って枝と上限を比較する.表 2 を説明する.もし枝と上限の値が同じであれば,子も
ONとなる.枝が上限より小さい場合,子は INになり,そうでなければ変更しない.図 1 の終端 Iへの 0枝のようにビットをスキップしているときは,可能な最小値を比較するためにスキップしたビットを 0とみなす.幅優先にMDDを探索するため,すべての節点は状態が確定
してから親として参照される.また,0/1枝をともに辿ったら,その親は次の探索のために再初期化できるので,初期化のため
— 4 —
表 2: 親が ON 状態であるときの状態遷移
Arc bit \Bound bit 0 1
0 ON IN
1 Child ON
IN!
ONL/U!
OUT!
ONL!
ONU!
0!
1!
2!
3!
I!
0!
2!
1! 1!
3!
I!
(a) Single path to ONL/U! (b) Branch and join at ONL/U!
図 6: 単一フィールドにおいて上下限をともに指定する場合の状態遷移.(a) 範囲を [0000,0011] とする.(b) 範囲を [0011,1100] とする.いくつかの枝と終端節点を省略している.
だけにMDDをたどる必要はない.Traverse は各枝を最大一回しか辿らないため,計算時間
はパスの数ではなく枝の数のみに依存する.また,OUT節点の子をたどる必要はなく,たとえば図 1では右の白い部分を無視できる.実際の検査では比較的狭い範囲を指定することが多く (たとえば 192.0.2.64/29 はアドレス空間のごく一部である),MDDのかなりの部分を無視できる場合も少なくない.3. 4 単一フィールド (上下限あり)
本節では下限も与えられるとする.ふたつの境界を区別するために,下限に乗っている場合を ONL,上限に乗っている場合を ONU とし,ともに乗っている場合を ONL/U とする.根節点は ONL/U に初期化する.先ほどと同様に,各節点は
表 1 に基づいて更新される.親がいずれかの ON 状態で子がINではない場合,子は枝と上下限の値に従って更新される (表2).表 2を参照するとき,もし親が ONL か ONU なら,子は同
じ種類の ON 状態を継承する.親と異なる ON 状態であればONL/U になる.下限の場合は表 2 の 0 と 1 をそれぞれ逆にすればいい.また,枝がビットをスキップしているときは,スキップしたビットを 1にして下限と比べる.もし親が ONL/U
なら,図 6 で示すように,上限と下限の場合をそれぞれ計算してからひとつにまとめる.3. 5 複数フィールド本節では複数のフィールドがある場合を説明する.ここで
L =!
i Li とし,Li は i 番目のフィールド長を表す.単一フィールドアルゴリズム Traverse は,アルゴリズム 2 に示すようにして複数フィールドに拡張できる.フィールドごとにTraverse を呼び出し,前のフィールドで返された終端節点を次フィールドの根節点とする.図 7 に例を示す.3-bit のフィールドがふたつあり,最初の
フィールドの範囲を [000, 010],次を [011, 101]とする.なお,
Algorithm 2: 複数フィールド用のアルゴリズムInput: fields
Output: terminals
roots ← {MDD root}for each field do
terminals ← Traverse(roots)
roots ← terminalsreturn terminals
0
1 1
3
2
3
2
4 4
3
4 4
33
I
5 5
4
VII
5 5
444
II III
5 5
VIII IX
5555
VI V IV XXIIXI
0
1
3
III!
1st field!
2nd field!
図 7: 提案アルゴリズムによる MDD 探索 (複数フィールド).
最初のフィールドは図 5と同じとした.赤縁の節点は,最初のフィールドで到達可能な終端節点であり,同時に次のフィールドの根節点にもなる.これらの節点は,二回目の Traverse を実行するときに ONL/U に初期化する.最終的に {II, III, IV}が返される.複数フィールドの場合も単一フィールドの場合と同じく,計
算時間は枝の数にのみ依存する.OUT節点の下部は無視できるので,ハイパーキューブが小さいほど高速になる.
4. 実 験本節ではアルゴリズムの計算時間を評価する.Internet2 と
スタンフォード大学 [14],パデュー大学 [15] の 3 つのデータを用いた (表 3).FIB は宛先アドレスのみで指定され,ACL
は 5-tuple で指定される.パデュー大学のデータには FIB がなかったので,最短経路に基づいて生成した.実験では到達可能性を検査した.各検査はランダムに選んだインタフェース間で行った.Internet2では prefix のみを指定し,他データでは5-tupleを指定した.提案アルゴリズムと APVを C++で実装した.実験に用いた CPUは Core i7-4790 3.6GHz,メモリサイズは 16GBである.図 8に各検査にかかった平均時間を示す.提案アルゴリズム
は APVより 17倍から 143倍も速かった.これは,APVの計算時間が AP数に大きく依存するのに対し,提案アルゴリズムはひとつのMDDしか探索しないためである.次に,全検査が完了するまで合計時間 (図 3全体の時間) を比
較する.MDD と reachability tree を並行して構築したため,前処理が APVより大きく遅くなることはなかった.前計算にかかる時間はネットワーク更新の規模に依存するが,最悪ケー
— 5 —
• CB •
( )
Copyright©2016NTTcorp.AllRightsReserved.
n0
1 1
3
2
3
2
4 4
3
4 4
33
I
5 5
4
VII
5 5
444
II III
5 5
VIII IX
5555
VI V IV XXIIXI
0
1
3
III
1st field
2nd field
IN
ONL/U
OUT
ONL
ONU
VR )2 L((( ()(MVR *2 L()) )()M
n n
&
• n >B CB CB H
Copyright©2016NTTcorp.AllRightsReserved.
rQW s
l
• • ” N TR RR ”
n
QW 4 e f
W �
t - “ *)(,
pU U r k n s
W �
Copyright©2016NTTcorp.AllRightsReserved.
0
1
B
3
2
4 4
3
5 5
T
l• 8:: ” “• k n k
• C 8:: ” “
r OV s
nr
OVs
�� ����
��
f ] t
n
Copyright©2016NTTcorp.AllRightsReserved.
N TR RR
Rρ, PW, QW
”
8::