第 7部
移動ノード

151

1章

第

はじめに
近年、計算機は急激に小型化され、強力な処理性能を持つ計算機が持ち運べる大きさにまでなった。同時にネットワークも急速に拡大し 、計算機を使用する上で必要不可欠なものになりつつある。このような環境下では、当然、各自が手にしている計算機からネットワークにアクセスしたいという要求が出てくる。しかし 、現在のネットワークアー
キテクチャでは、移動しながらネットワークにアクセスするような利用体系は考慮されていない。具体的に、手持ちの計算機からネットワークにアクセスするためには、アドレスの取得及びその設定、アドレスデータベースの再登録など様々な問題が山積している。しかも、これらの問題を解決出来たとしても、「計算機の移動透過性」を実現することは出来ない。計算機が移動した場合、その上で動作している、もしくはその計算機と通信を行なっているアプリケーションは移動した計算機を認識できなくなる。そのため、計算機環境は移動する前と異なったものになり、ユーザに負担をかけることにる。
このような問題を解決するための研究は、ここ数年、盛んに行なわれるようになってきた。現在、ネットワーク分割方式、パケット転送方式などが存在する。また、これらの方式がを基盤としているのに対し 、社では、一般的なネッ
トワークアーキテクチャでのモデルを提案している。

Internet Protocol (IP)

[41]

IBM

[42]

コロンビア大学が提案しているネットワーク分割方式
は、学内における計算機の移動透過性を実現するために提案された方式で、基本的には、複数の物理ネットワーク
を一つの論理ネットワークとして扱うことにより、計算機の移動透過性を実現している。
複数の物理ネットワークを一つの論理ネットワークとして取り扱う時に生じる矛盾を解決するためにこの方式では各物理ネットワークに 一つずつを導入している。移動ホストは基本的に一つの論理ネットワークの中だけしか移動できない。あるホストが移動ホスト と通信を行なうためにはホスト
はホストのアドレスを設定したパケットをのプロトコルに従って送信する。送信されたパケット
はの経路制御機構によってホスト が存在する論理ネットワークに経路制御される。
その後、このパケットは到着した物理ネットワークのに渡る。
は、まず、ホスト が同じ物理ネットワークに存在しているかを自分が保持しているデータベースに問い合わせる。もし 、同じ物理ネットワークに存在していたらホスト に対してパケッ
トを転送する。同じ物理ネットワークに存在していなかったら、同じ論理ネットワーク
上に存在する他のに対して問い合わせをし 、ホスト が存在している物理ネット
ワーク上にあるからの応答を待つ。応答を受けとると、そのに対してパケッMSR (Mobile Support Router)

A

IP

IP

B

A

B

MSR

B

MSR
B

MSR
MSR

B

153

MSR

B

154

1992 年度 WIDE 報告書

MSR

トをカプセル化した形で転送する。それを受けとったはカプセルからもとのパケッ
トを取り出してホスト へ転送する。ここで、が持っている同じ物理ネットワー
ク上に存在するホストのデータベースは移動ホストからの通知によって管理されている。
この方式の利点は以外に特殊な機能を必要とせず、を導入するだけで利用できる点である。逆に短所は、同じ論理ネットワーク上の全てのへ問い合わせをするため、ネットワークの規模を大きくすることが難しい点である。
松下電器社ではパケットを順に転送していくパケット転送方式を提案している。この方式では、ホストが移動可能なネットワークに一つずつ用意されていると呼ばれるパケット転送ホストを用いてパケットを転送する。それ
ぞれの移動ホストは つのネットワークアドレスを保持している。一方は移動したネッ
トワークのアドレスである一時アドレス、もう一方はホストに固有なホームアドレスである。移動ホストは移動した時に自分のホームネットワークのに予め一時アドレスを登録しておく。あるホスト が移動ホスト と通信する場合、ホスト が送信したパケットは移動ホスト のホームネットワーク上のによってホスト に転送される。その後は、ホスト がからの通知によって移動ホスト の一時アドレスを取得できた場合にはホスト は一時アドレスを使って通信を行なう。このとき、移動ホス
ト がさらに他のネットワークに移動したとする。移動ホスト はホームネットワーク
上のに加えて、これまで接続されていたネットワーク上のに新たな一時アド
レスを登録する。これによりホスト が送信したパケットは直前に接続されていたネッ
トワークのによって移動ホスト の新たな位置に転送される。この方式の利点は、が存在するネットワークなら何処へでも移動できる点である。逆に欠点は、パケットを転送しなければならないためネットワークの分断に弱い点である。
我々は、これまで、仮想ネットワークの概念をに適用したを提案してきた、これについては 章で詳しく述べる。この方式の特徴はに依存していない点である。仮想ネットワークという概念を定義しておき、あくまでそれをに適用している。このプロトコルには、まだ、幾つかの問題を含んでいる。この問題を解決することが今回の目的である。 章での問題点を明らかにする。さらに、この問題を解決するための考察を 章で行ない。 章ではの仕様をまとめ、 章でその実装について説明する。 章では実装したの評価を行なう。最後に 章で締めくくる。

B

MSR

MSR

Forwarding Server)

MSR

[43]
PFS (Packet

2

A

B

PFS

PFS

B

B
A PFS
A

PFS

PFS

[44]
2

Protocol (VIP)
IP
IP

9

6

4

B

A
B

B
PFS

A
B

PFS

Protocol (EVIP)
VIP

MSR

3

IP

VIP
5

Virtual Internet

Enhanced Virtaul Internet
7

2章
Virtual Internet Protocol
第この章では我々が提案する仮想ネットワークの概念をの仕様について説明する。

Protocol (VIP) [45]2.1

IP に適用した Virtual Internet

仮想ネットワークInternet アーキテクチャの問題点をさらに明確にして Virtual Network の

この節では概念を導入する。

2.1.1 Internet アーキテクチャの問題点

IP 層は、上位プロトコル (UDP や TCP) から受けとったデータを、正しく通信相手まで配送する手段を規定している層である。IP 層の上位層は、 IP 層にデータを渡す時、同時に、そのデータを届けるべき通信相手を示す Internet アドレスを渡す。ここに問題が一つ存在する。
アドレスはとから形成されている。
はネットワークの識別子であり、ホストの識別とは無関係である。
全体を考えた場合、アドレ
スはホストの識別子ではなくホストの位置情報として動作する。しかし 、 の上位プロ
トコルが
層に渡す
アドレスは、通信相手の位置情報としてではなく、通信相手の識別子として使われている。ホストの存在位置で通信相手を特定する方法は、十分に短い時間内では有効だが、長い時間を想定した場合、この方法で通信相手を特定することは出来ない。実際、現行のでは相手のアドレスが変わると、異なったホストとして認識され、通信相手の識別さえ出来なくなる。
通信相手を、その存在位置に依存することなく特定するためには、純粋な識別子で通信相手を指定しなければならない。しかし 、現行のではこのようなホスト識別子は存
在せず、存在位置に依存しない相手の指定方法はない。

InternetIP

netid hostid

Internet

Internet

IP

netid

Internet
IP

Internet
IP

2.1.2

仮想ネット ワークの概念

上記のような問題を踏まえて、我々はホスト識別子を新たに導入することにした。実際には図に示す様に、これまで一つの層であったネットワーク層を、ホスト識別子

2.1

155

156

1992 年度 WIDE 報告書

でネットワークを構成している仮想ネットワーク層と既存のネットワーク層の二つに分割する。仮想ネットワーク層では、上位にある層から通信相手の識別子を受けとり、さらに位置情報を付加して既存のネットワーク層に渡す。

Application

Application

Presentaion

Presentaion

SessionSessionTransport

Transport
Virtual Network

Network
Physical Network
Datalink

Datalink

PhysicalPhysical

図2.1: ネットワーク層の分割

ここで、ネットワーク層を既存のネットワーク層と仮想ネットワーク層の二つの層に分けたため、識別子から位置情報への対応付けをする必要が生じる。ネットワーク層より上位に位置する層では、通信相手の位置情報を考慮せず通信を行なうことが本来の目的である。ゆえに、仮想ネットワーク層で位置情報を付加しなければならない。この、位置情報の付加を行なうために、仮想ネットワーク層では、識別子を鍵として位置情報を得るためのデータベースが必要になる。しかも、このデータベースは検索速度が高速で、且つ上の全てのホストに対する情報が遅れることなく更新されなければならない。

Internet

2.1.3

拡散キャッシュ法

VIP(Propa-

上で述べたようなデータベースを管理するためにでは拡散キャッシュ法を用いている。拡散キャッシュ法とはネットワーク上で通信が行なわれる際に流れるパケットを使ってデータベースエントリを拡散させていく方法で、パケットを転送する際にルータは、そのパケットに含まれている送信ホスト情報を用いて自分のデータベースエントリを更新する。つまり、一つパケットを転送する度にそのパケットを送信したホストのホスト識別子を鍵とするエントリの更新または追加を行うことになる。この方法を用いた場合、データベースは基本的に特別なプロトコルを使って管理する必要がなく、その分のトラヒックを削ることが出来る。また、パケットが流れ

gating Cache Method)

第 7部

157

移動ノード

る経路上にないルータにはデータベースエントリが作られることはなく、無関係なホス
ト上にエントリを作りメモリ資源などを無駄に消費することはない。

2.2 Virtual Internet Protocol の概要
Internet Protocol (IP)

Virtual Internet
Internet Protocol

この節では仮想ネットワークの概念をに適用したの概要について説明する。仮想ネットワークの概念をに適用した場合、その階層化は図のようになる。

Protocol (VIP)
2.2.1

2.2

仮想 Internet アドレス

IP

前章で述べたような仮想ネットワークの概念をに適用するためには、ホストの識別子として新たに仮想アドレス
アドレス を導入する必要がある。理論上はこの識別子はどのようなフォーマットでも構わないがアーキテクチャに新たに導入する関係上、 ビット値とする。 の上位プロトコルであるやは下層がであることを前提としているため、下層に対してアドレスを渡す。そのため、の上位プロトコルを変更せずに層を導入するために、仮想アドレスはアドレスと同じビット値でなければならない。

Internet

IP

IP
Internet

(VIP

32

IP

)

Internet
IP

VIP

32

RPC...

FTP...

UDP

TCP

TCP UDPInternet

VIP
IP
Ethernet
図

FDDI

SLIP

2.2: VIP 層と他の層の関係

2.2.2 Address Mapping Table

2.1.3 で述べたように仮想ネットワークの概念を導入するためにはホスト識別子の導入の他に、識別子 (仮想 Internet アドレス) から位置情報 (Internet アドレス) への対応づ

158

1992 年度 WIDE 報告書

VIPけを行なうためのデータベースの導入が必要になる。この、データベースをではと呼ぶ。
は仮想ネットワーク層に実装された仮想アドレスとアドレスの組を要素として持つ表で、仮想アドレスを鍵として検索される。
原理的にはは全てのホストに対するエントリを持つ必要がある。しかし 、実際には一つのホストがに接続されている全てのホストに対するエントリを持つことはその大きさから不可能である。そこで、各ホストは膨大なデータベースの一部をとして持ち、他の部分については暗黙の対応付を用いることで対応している。
ではを拡散キャッシュ法を用いて管理している。

Address Mapping Table (AMT)Internet
Internet

AMT

Internet

AMT
Internet

AMT
VIP

AMT

2.2.3

暗黙の対応付けとホームネット ワーク

AMT を管理するために拡散キャッシュ法を使うと前述したが、この方法には一つ問題がある。これは、エントリを持たないノード へのパケットは転送、または送信することが出来ない点である。初期状態においてノードはキャッシュを全然持たないため、どのノードに対してもパケットを送信 転送することが出来ない。
この問題を解決するためにではホームネットワークを導入して暗黙の対応付けを提供している。通信相手のエントリを持たなかった場合、
では仮想
アドレスを
アドレスとして設定する。こうすることにより、もし 、途中のルータがその仮想アドレスに対するエントリを持っていなかったとしても、そのパケットは必ず自分の仮想アドレスと同じネットワーク番号を持つネットワークに到達する。自分の仮想アドレスと同じネットワーク番号を持っているネット
ワークのことをホームネットワークと呼ぶ。また、ホームネットワークに接続されている
ルータをホームルータと呼ぶ。ホームルータが移動ホストに対するエントリを持っていることを保証すれば問題は解決する。これを保証するために、移動ホストは実際にホームネットワークの外に移動した時に必ずホームネットワークにそのことを通知することが義務づけられている。また、移動ホストがホームネットワークに接続される時は、そのホストの仮想アドレスとアドレスは一致し 、他のルータ上のエントリが破棄されてもパケットは正しく配送される。

Internet
Internet

VIP
AMT

/

VIP

Internet

Internet
Internet

Internet

Internet

AMT

2.3 Virtual Internet Protocol のプロト コル仕様
この節では

VIP のプロトコル仕様について詳しく説明する。

2.3.1 VIP 層の実現

VIP

現行の階層化に層を挿入する方法として二つの方法が考えられる。一つは新たに独立した層を設ける方法であり、もう一つはのオプションとして挿入する方法である。
では後者を選択している。ネットワークアーキテクチャの観点から見れば前者

VIP

IP

第 7部

159

移動ノード

Internetの方がはるかに整っているが、この方法を用いるためには上の全てのホストがを実装しなければならず、現実的に不可能であることを踏まえた選択である。
層を実現するためにオプションとして実装されている
ヘッダは図 に示すようなフォーマットを持つ。ここで、太い線で囲まれた上の部分はパケットのヘッダとして定義されている部分で、その下の部分がを実装するために新たに作ったオ
プション部である。

VIP
VIP

IP

VIP

VIP

0

8
ver

16

hlen

tos

identification
ttl

proto

24

IP

2.3

32

total length
flags fragment offset
header checksum

Source IP Address
destination IP address

OptType

OptLen

Ver Type

Hold

Source VIP Address
Destination VIP Address
Source Address Timestamp
Destination Address Timestamp
図2.3: VIP パケットヘッダのフォーマット

それぞれのフィールドは次のような意味を持っている。

 ver: VIP のバージョン番号。現在のバージョンは 0。
 type: パケットの型を表す。VIP には次のようなパケットの型が定義されている。
{ VipData 通常のデータ。
{ VipConn 移動ホストが移動した時にホームネットワークに対して送信する通知。
{ VipConnAck ホームネットワークからの VipConn に対する確認応答。
{ VipDisc 移動ホストがネットワークから切断されるときにホームネットワーク
に対して送信する通知。

{ VipDelAMT まわりのノード の AMT エントリを破棄するための通知。
{ VipErrObs 古い AMT エントリを使って対応付けが行なわれたパケットを発見した時にルータおよびホストが発行するエラーパケット。

160

1992 年度 WIDE 報告書

 hold: このパケットによって作成・更新された AMT エントリの有効期間 (単位は分)。
 source VIP address: 送信ホストの仮想 Internet アドレス。
 destination VIP address: 受信ホストの仮想 Internet アドレス。
 source address timestamp: 送信ホストの Internet アドレスと仮想 Internet アドレスの組が作成された時のタイムスタンプ。このタイムスタンプは source VIP address
フィールドで特定されるホストによってのみ管理されるもので、対応付けを行なった時のタイムスタンプではない。

 destination address timestamp: 受信ホストの Internet アドレスと仮想 Internet アド
レスの組が作成された時のタイムスタンプ。このタイムスタンプは destination VIP
address フィールドで特定されるホストによって管理されるものであり対応付けを行なった時のタイムスタンプではない。途中で対応付けが行なわれる場合も AMT
エントリに保存してあるタイムスタンプがこのフィールドに代入される。

IP
unknown option

VIP
VIP

VIP

このように
のオプションという形をとる
ヘッダはを実装していないホス
トではとして無視される。
を実装していないホストではこれまでののヘッダとして図の上部だけが処理される。
また、仮想アドレスはインターフェイスの識別子という位置付けで、インターフェイス毎に付ける。

IP

Internet

2.3

2.3.2 Address Mapping Table

VIP の仕様の中で AMT の取り扱いも同時に定義されている。AMT で保持するべき
データは基本的には仮想 Internet アドレスと Internet アドレスだけだが 、それ以外にも表を管理をするために必要な、アドレスの組が作られた時のタイムスタンプやエントリの取り扱いを示すフラグを表の中に持つことをプロトコル仕様として義務づけている。
のモデルでは
は図の様なフォーマットをもつ。

AMT

AMT

2.4

VIP Address
IP Address
Timestamp
Flags
図

Timer

unused

2.4: AMT エントリのフォーマット

それぞれのフィールドは次のような意味をもつ。

第 7部

161

移動ノード

 VIP address: 仮想 Internet アドレス。検索の鍵として使われる。
 IP address: Internet アドレス。検索によって引き出す情報。
 timestamp: VIP/IP address のペアが作られた時のタイムスタンプ。アドレ スの対応付けの時に使われる。

 ags: エントリを管理するために使われるフラグ。現在、次のフラグが存在する。
{ AmtInUse このエントリが使用中であることを示すフラグ。
{ AmtPerm このエントリはタイムアウトしないことを示す非消去フラグ。ホーム
ネットワークで使用される。

 timer: エントリのタイムアウトを管理するためのタイマ。このフィールドによりタ
イムアウトが検出された時、そのエントリは消去される。エントリが作られる時にパケットのフィールド の値がこのフィールドに入れられ、 分毎に減算される。

VIP

hold time1

2.4 VIP の動作例
VIP

2.5

VIP

ここでは 、例を示しながらの全体の動作を説明する。図
はを実装したホストを含んだネットワークの図である。ここで、四角はルータ、丸はエンド ホストを、
さらに斜線はを実装しているホストを表している。
まず、この図でがからに移動した時の動作について説明する。
はに接続された時、ホームネットワークであるに 正
確にはのルータであるもしくはに 接続されたことを図のようなパケットを使って通知する。ここで、varcurrV er と表されているのはそのホストが内部に持つバージョン番号である。この通知はにのエントリを作りながらに到達する。この通知を受信したはにこの通知をのようなパケットでブロードキャ
ストする。このブロードキャストによって
にも
の
エントリが
作成される。このとき、のエントリには非消去フラグ タイ
ムアウトを無効にするフラグ が立てられる。
ここで、がと通信することを考える。
はを鍵とするエントリを持たないので図のようなパケットを送信する。このパケッ
トはの経路情報によってまで経路制御される。
はからの接続通知によりを鍵とするエントリを持っているので、パケットのヘッダを図のように変更して、改めて上のへ転送する。ここで、AMTIP AMTTS という表記はエントリの値であることを示している。
次に、がにパケットを送信することを考える。
はを鍵とするエントリを持たないのでのアドレスとしてVIP

2.6-(a)Host:A-a
Host:A-a Net:B-a
Net:A-b

Net:A-b

GW:A-ad Host:A-a AMT
GW:A-ab Net:A-b

GW:A-ab

Net:B-a

GW:A-bc )Net:A-b (GW:B, GW:BB-ab, GW:A,
GW:A-ab2.6-(b)
GW:A-bc
Host:A-a AMT
GW:A-ab, GW:A-bc AMT()
Host:D-a Host:A-a
Host:D-a Host:A-aAMT
2.7-(a)IP
GW:BB-ab
GW:BB-ab Host:A-a
Host:A-aAMT
2.7-(b)
Net:B-a
Host:A-a,
AMT
Host:A-a Host:D-a
Host:A-a Host:D-a
AMT
Host:D-a Internet
Host:D-a162

1992 年度 WIDE 報告書
Site AVIP router
VIP host
IP router
IP hostHost:A-a
GW:A-ab

Net:A-a

GW:A-bc
Net:A-b

Net:A-c

Host:A-b

Site B
Host:A-c

GW:A-adHost:B-a

Host:A-a

Host:A-a
Host:B-b

GW:A-de
Net:A-d

Net:A-e

GW:B-ab
Net:B-a

GW:A
GW:BB-ab
Net:BB-a

Net:B-b

GW:B
GW:BB-bc
GW:BB-cd
GW:BB-de
Net:BB-b
Net:BB-c
Net:BB-d
Net:BB-e

Back Bone
GW:C

GW:D

Site C

Site D

Net:C-a

Net:C-b
GW:C-abHost:C-a

図Internet
AMT

Net:C-c

Net:D-a

Host:C-b

Host:D-a

GW:C-bc

2.5: ネットワーク図
Host:D-aの仮想アドレスを設定したパケットを送信する。どのルータもを鍵とするエントリを持たないので、このパケットはに到達するまで変更が加えられることはない。
はこのパケットを受けとると、自分宛のパケットだと判断し 、処理するとともにを鍵とするエントリのタイマを初期化する。

Host:D-a

Host:D-a
Host:A-a
AMT
この後、さらに Host:D-a が Host:A-a にパケットを送信する場合、Host:D-a は Host:Aa を鍵とする AMT エントリを保持しているので、Host:A-a の Internet アドレスを直接指定して送信することが出来る。

Host:A-a と Host:D-a 以外の通信がこのネットワークで行なわれないとすると、GW:BBab, GW:A, GW:A-ad 上の AMT エントリはタイムアウトによって消去される。さらに、
Host:A-a, Host:D-a 間の通信が途絶えると、一定時間後に GW:B, GW:D, Host:D-a 上のエントリも消去される。

Net:A-b のルータ以外の全てのホストの AMT エントリが消去された後、Host:D-a が
Host:A-a と通信する場合、ホームルータ上の AMT エントリはタイムアウトによって消去されることがないので、前述の GW:BB-ab が行なった変更が GW:A-ab で行なわれるにすぎない。
最後に

Host:A-a が Net:B-a から切断される時の動作について説明する。Host:A-a は

第 7部

eld

V IPSrcAddr
IPSrcAddr
V IPSrcTS
V IPDstAddr
IPDstAddr
V IPDstTSvalue
VIP address of Host:A-a
IP address of Host:A-avarcurrV er of Host:A-a
VIP address of GW:A-ab
IP address of GW:A-ab
0
(a)
図

eld

V IPSrcAddr
IPSrcAddr
V IPSrcTS
V IPDstAddr
IPDstAddr
V IPDstTS

eld

V IPSrcAddr
IPSrcAddr
V IPSrcTS
V IPDstAddr
IPDstAddr
V IPDstTSvalue
VIP address of Host:A-a
IP address of Host:A-avarcurrV er of Host:A-a
VIP address of GW:A-ab
Bcast address of Net:A-b0(b)2.6: Host:A-a からの通知パケット

value
VIP address of Host:D-a
IP address of Host:D-avarcurrV er of Host:D-a
VIP address of Host:A-a
VIP address of Host:A-a
0
(a)
図

163

移動ノード

eld

V IPSrcAddr
IPSrcAddr
V IPSrcTS
V IPDstAddr
IPDstAddr
V IPDstTSvalue
VIP address of Host:D-a
IP address of Host:D-avarcurrV er of Host:D-a
VIP address of Host:A-avalue of AMTIP eldvalue of AMTTS eld(b)

2.7: Host:A-a からの通知パケット

Net:B-a から切断される前に、切断通知パケット (VipDisc) をホームルータに送信する。
GW:B, GW:BB-ab, GW:A, GW:A-ad はこの切断通知パケットを転送するが、その時、
Host:A-a を鍵とする AMT エントリを保持していたらそのエントリを破棄して、さらに、
AMT エントリ破棄要求 (VipDelAMT) をブロードキャストする。このブロードキャストを受けとった GW:A-bc, GW:A-de なども同じ動作をし 、最終的にネットワーク上から
Host:A-a を鍵とする AMT エントリは無くなる。

3章
VIP の問題点
第前章で説明したプロトコルでも移動するホストを接続した時の移動透過性を保証するという意味では十分である。しかし 、実働しているネットワーク上にこのプロトコルを持ち込もうとした時、いくつかの問題が浮き彫りになる。これらの問題のうち今回解決する問題点をここで明確にする。各問題点については、前章の図を使って例を挙げる。

2.5

3.1

孤立した AMT エント リの残留

AMT
1

AMT

ある移動ホストに対するエントリを持つホストが 、同じエントリを持つ
他のホストから分断され、 ホップ以内に同じエントリを持つ他のホストがなくなると、このエントリは一定の時間が経過するまで消えることがなく、その間、間違った対応づけをする。間違った対応づけは余分なトラヒックを発生するだけではなく、パケットを目的の移動ホストに配送する妨げになる。
がに接続されており、にそのエントリが存在しているとする。ここで、がから切断されてに接続されることを考える。
はネットワークから切断される前に、ホームネットワークであるに切断通知を行なう。このパケットはを経由してへ到達する。このとき 、はをブロードキャストする。しかし 、これらのパケッ
トはには到達しないため、上のエントリは残留エントリとなる。この状態でがへのパケットを送信した場合、がを鍵とするエントリを持たないならば 、パケットはでの上でのアドレスへ対応付けがなされ、へ経路制御される。

AMT

Host:A-a Net:B-a
GW:D
AMT
Host:A-a Net:B-a
Net:A-eHost:A-a
Net:A-b
GW:B, GW:BB-cd, GW:BB-bc, GW:BB-ab, GW:A,
GW:A-ab
GW:B, GW:BB-ab, GW:A,
GW:A-ad
GW:A-ad, GW:A-ab VipDelAMT
GW:D
GW:D
AMT
Host:D-a Host:A-a
Host:D-a Host:A-a
AMT
GW:D Host:A-a Net:B-a
Internet
Net:B-a

3.2

無期限の余分な転送

VipDisc

移動ホストがパケットを送信せずにネットワークを離れると、その移動ホス
トが次にネットワークに接続されるまでホームネットワークのゲートウェイ上に作られたエントリは消えることはなく、その間、それまで接続されていたネットワークにパケットを転送し続けることになる。この転送は、余分なトラヒックの発生源となる。

AMT

164

第 7部

Host:A-a

165

移動ノード

Net:B-a

GW:B, GW:BB-ab, GW:A,
GW:A-ab, GW:A-bc Host:A-a
Host:A-a

前章と同じ くがへ接続されていて 、およびホームネットワークのルータであるがを鍵とするエントリを保持しているとする。この状態で、が切断通知を送信せずに、或は何らかの原因で切断通知パケットが途中で紛失されたままネットワー
クから切断された場合、のエントリはいずれ破棄されるが、ホームルータであるが保持しているエン
トリは破棄されることはない。この残留エントリにより、ホームルータは他のホストからへ送信されたパケットをへ転送し続ける。

GW:A-ad

AMT

Host:A-a

GW:B, GW:BB-ab, GW:A, GW:A-ad AMT
GW:A-ab, GW:A-bc
AMT
Net:B-aAMT

3.3 IP との互換性
VIP ホストが通常の IP ホストとの間でコネクションを張るとき、 IP ホストは VIP
ホストをその物理 Internet アドレ スで認識する。このことは VIP ホストが移動した時に、VIP ホストの移動透過性を保証できないことを意味する。
また、通常の運用の場合、移動ホストはネームサーバに名前と仮想 Internet アドレスを登録され、名前でそのアドレスを参照される。IP ホストが移動ホストと通信する場合、ネームサーバから得られたアドレスを使い、そのホームネットワークにパケットを送信するので、通信は不可能である。
がに接続されていて、との間で通信が行なわれているとする。この時、はヘッダを含んだパケットを送信するが側では 、それをとして処理する。つまり、上のアプリケーション、および
層は
を
の
における
ア
ドレスで認識している。ここで、がへ移動した場合、はそれを検知することが出来ずにパケットを送り続ける。

Host:A-a Net:B-a

Host:A-a Host:C-b

Host:A-a VIP
Host:C-b
Unknown Option
Host:C-b
TCP/UDP
Host:A-a Host:A-a Net:B-a
Internet
Host:A-a Net:A-b
Host:C-b
Net:B-a

3.4

複雑な AMT 管理機構

VIP は多種のコントロールパケットを持っており、その分、ネットワークソフトウェア
も複雑なものとなっている。また、3.2 節にも関連しているが、ホームネットワーク上のAMT は特に管理が複雑で、何らかの理由で矛盾が生じた場合、回復が難しい。
例として、何らかの理由でホームネットワーク上にタイムスタンプの値が大きなエントリが作成された時を考える。このエントリは、そのタイムスタンプより新しいタイム
スタンプを持つパケットを受信するまで削除されるはことなく、その間、誤ったアドレ
スの対応づけを行なう。

4章
Enhanced Virtual Internet Protocol への
第

考察
VIP

本章では前章で述べた問題点を考慮しながらの改良点について議論する。ここで、新たに改良したをこれまでのと区別するためにと呼ぶ。

Protocol (EVIP)

4.1

VIP

VIP

Enhanced Virtual Internet

孤立した AMT エント リの残留

AMT エントリは、 VipDelAMT パケットが波の様に広がることにより消去される。
しかし 、VipDelAMT パケットが拡散することに対し 、なんらかの制限を加えなければ 、消去すべき AMT エントリに無関係なホストを含む、ネットワーク上の全てのホストに
VipDelAMT パケットが配送されることになる。これでは大規模なネットワークでの使用に耐えることはできない。そこで、VIP では消す必要がある AMT エントリを持つホストに限り、VipDelAMT を中継している。この為、同じセグメント上に、消去する必要があ
る AMT エントリを持った他のホスト (ルータ) がない場合、そのホストに VipDelAMTが届くことはなく、その AMT エントリは更新されるか、一定の時間が経過するまで残留する。
この様な古い孤立したエントリを消去するためには、その様なエントリを発見した他のホストが 、そのホストに対して指示をする必要がある。この為には古くなったエントリを発見するための機構が必要となる。古いエントリを持つホストに対する処置としては、これまでにも、コントロールパケットにより古いエントリの消去を行なってきた。しかし 、この場合の古いエントリの発見は、発見する側のホストが同じ移動ホストに対する新しいエントリを持っている場合に限られていた。しかし 、実際にを運用するにあたっては、古いエントリに代わって新しいエントリが作られる場合より、古いエントリが消去されるだけに留まることが多い。そこで、今回、AMT エントリの二段階消去を行なうことにより、古いエントリを発見するための機構を強化した。
実際には、これまでを受信すると、ホストは直ちにそのエントリを消去していたところを、新たな消去機構では、実際に消去するのではなく、一旦、無効フラグを立て、消去タイマを設定するだけにとどめる。以後、無効フラグが立てられ

AMT

AMT

AMT

VipErrObs

AMT

AMT

VIP

AMT
VipDelAMT

AMT

AMT

AMT

AMT

AMT

166

AMT

第 7部

AMT

167

移動ノード

AMT

た
エントリは一定時間が経過するまで消去されるべきエントリとして保存され、古いエントリを持つホストを発見するために使われる。古い
エント
リは実際には消去されず、無効フラグが立てられているだけなので、この
エント
リを持つホスト ルータ を古い対応付けをされたパケットが通過する場合、そのパケッ
トは古いエントリによって対応付けされたものである、ということをホストは知ることが出来る。
しかし 、これまでののパケットヘッダフォーマットではアドレスの対応付けを行なったホストを知ることが出来ない。これまでの
にあった
コントロー
ルパケットによるエントリの消去では、パケットは同じ経路を通るものと仮定してパケットの発信元にコントロールパケットを送ることにより、途中、もしくは発信元にある古いエントリの消去を行なっていた。しかし 、日々複雑化している現在のネットワークでは必ずしもこの仮定は成り立たなくなっている。そこで、今回の改良では、新たにアドレスの対応づけを行なったホストのアドレスをヘッダに含めることにした。
さらに、この機構を確実に動作させるために移動ホストが直前に継っていたセグメント
上の古いエントリに無効フラグを立てるため、このセグメントにもを送信するようにする。これにより何処かに古いエントリが残っており、移動ホスト
が以前に接続されていたセグ メントへパケットが経路制御されても、最終的には正しい位置へ経路制御し 、古い対応付けをしたホスト上の古いエントリを消去することが出来る。この時、直前に接続されていたネットアークを一時的代理ネット ワーク、そのネットワークのルータを一時的代理ルータと呼ぶ。

AMT

AMT

(

AMT
AMT

)

VIP

VIP

AMT
VipErrObs
AMT

VipErrObs

IP

AMT

VipConn

AMT

AMT

4.2

無期限の余分な転送

VIP ではネットワークから切断される前に、そのことをホームネットワークに通知し 、
ネットワーク上のホストの AMT エントリを消去するため、 VipDisc コントロールパケッ
トを送信しなければならない。
ここで、ホームネットワーク上のエントリはコントロール
パケットによってのみ消去されることに注意しなければならない。もし 、移動ホストがコントロールパケットを送信せずにネットワークを離れた場合、ホームネット
ワーク上のホストが次に移動ホストからのパケット
等 を受けとるまでホーム
ネットワーク上のホストにある古いエントリは消えることはない。この残留エントリがあるためにホームネットワーク上のホストは移動ホストに対するパケットを、
以前、移動ホストが接続されていたネットワークに転送し続け、トラヒックを増大させる元となる。
しかし 、実際にを運用する場合、このような状況は頻繁に発生する。可搬型の計算機の性格上、移動ホストは突然ネットワークから切り離される可能性が高く、それを前もって知ることが出来るのはユーザだけである。これまでのではユーザがコントロールパケットを送信することを意識した上で運用されていたが、この状況は、ホAMT

VipDisc

AMT

VipDisc/VipDelAmt(VipConn )

AMT

VIP

VIP

VipDisc

168

1992 年度 WIDE 報告書

Use

VipConn/other packet

VipDisc/VipDelAMT

Free

図

4.1: ホームルータの AMT の状態遷移
VipDisc を必要としない新た

ストの移動透過性を実現する上で望ましくない。そこで、な管理機構が必要になる。

AMT( 4.1)

UseFree

この問題は状態遷移図 図
をみるとその性質は明らかであり、からへ移る状態遷移にコントロールパケットに依存しない線を加えることにより解決できる。コ
ントロールパケットに依存しないイベントとしてタイマを選択した。

4.3 IP との互換性
VIP を実装したホストは IP ヘッダの source address, destination address フィールド
に Internet アドレスを埋めて送信する。そのため、相手のホストが普通の IP ホストの場合、この Internet アドレスを移動ホストの識別子として使ってしまい、現行の IP と同じ理由により移動透過性を保証することが出来ない。

IP

source address

Internet

この問題は
ヘッダの
フィールドにアドレスではなく仮想アドレスを入れることで解決できる。 では、ホストはパケットヘッダのフィールドだけで通信相手を識別している。このことを逆に利用したのがこの方法である。移動ホストを仮想アドレスで認識したホストは常にそのアドレスを使って通信を行なう。これは、の視点から見るとヘッダはないもののアドレスの対応付けが行なわれていないパケットとしてみることが出来る。
ではアドレスの対応づけが行なわれていないパケットは最悪でもホームネットワークでアドレスの対応付けが行なわれることになっている。つまり、このパケットは最終的に移動ホストの仮想アドレスの位置に到達するまでに少なくとも一度はアドレスの対応づけをされる機会を持っている。この時にアドレスの対応付けだけではなく
パケットヘッダの付加を行なう このことはパケットをパケットに変換することを意味する。 ことによりホストとホストとの間で移動透過性を実現することが出来る。

Internet
source address

IP

Internet
VIP

IP
VIP

Internet

)

IP

(

IP
VIP

IP

VIP

VIP
VIP

第 7部

4.4

169

移動ノード

複雑な AMT 管理機構

VIP では AMT は基本的に以下の 5 種のコントロールパケットで管理される。
 VipConn: 移動ホストがサブネットワークに接続されたことを通知するためのコン
トロールパケット。

 VipConnAck: VipConn に対する確認応答パケット。
 VipDisc: 移動ホストがこれからサブネットワークから切断されることを通知するパケット。

 VipDelAmt: AMT エントリが無効になったことを通知するパケット。
 VipErrObs: 無効な AMT エントリが発見されたことを通知するパケット。

AMT

これらのパケットは、全て、を制御するためのコントロールパケットである。しかし 、
は前節の状態遷移図にあるように、 つの状態しか持たず、これを制御するためには表のように つのコントロールパケットで十分である。

AMT
4.1

2

2

4.1: AMT の状態遷移
invalid valid
Delete invalid invalid
Create valid valid

表

2

AMT

そこで、コントロールパケットを 種類に削減することで、の制御機構を簡素化しプログラム自身を小さくし 、より効率化をはかることが出来る。

 VipCAmt ターゲットに関する AMT エントリを作成/更新する。
 VipDAmt ターゲットに関する AMT エントリに削除フラグを立てる。

VIPInternet

AMT

ただし 、これまでのでは送信側仮想
アドレスフィールドを使ってエントリ操作の鍵としていた。今回、明示的に鍵や値を示すように変更したので、鍵や値を特定するためのフィールドがヘッダに必要になる。

VIP

4.5

仮想 Internet アドレスの割当対象

VIP
Internet

Internet

これまでの
では、仮想
アドレスはインターフェイス毎に設定していた。
しかし 、仮想アドレスは「位置に依存しない通信相手の識別子」という役割上、ホスト毎に設定する方が自然である。そこで、では仮想アドレスはホスト

EVIP

Internet

1701992 年度 WIDE 報告書

Internet毎に指定するように変更する。変更後は、ルータをしているホストでは複数のアドレスを持つため、一つの仮想アドレスに対し複数のアドレスの対応を持つことなる。複数のアドレスの対応が存在してもプロトコル上問題は生じないが、固定のルータでは特に仮想アドレスを設定せず、インターフェイス毎に設定したアドレスを仮想アドレスとして使用することを推奨する。

Internet

Internet
Internet

4.6

Internet

付加機能

VIP

これまでの
では将来の拡張性が考慮されておらず、機能を追加することが難しかった。そこで、今回の改良では拡張性を考慮して、以下のような付加機能を追加することにした。

 途中のルータでは AMT エントリの作成・更新を行なわずず、ホームルータでのみ
AMT エントリの作成・更新をする。
 途中のルータではアドレスの対応づけをせず、ホームゲートウェイのみでアドレスの対応づけと行なう。

 AMT エントリを作成・更新をする際に、パケットを送信したホストの認証を行なう。

EVIP

これらは
に実際に仕様として追加されるが、さらに、機能を拡張する時のことを考慮してフラグフィールドを予約しておく。

4.7

ヘッダフォーマット

今回の改良で必要になったフィールドは次の通りである。

 アドレスの対応付を行なったホストのアドレス (V IPRslvIP ) フラグ (V IPFlags)
 AMT エントリの鍵 (V IPTV ipAddr ) { 仮想 Internet アドレス
 AMT エントリの値 (V IPTIpAddr ) { Internet アドレス
 AMT エントリの鍵/値の対のバージョン番号 (V IPTV er )
 AMT エントリの保存時間 (V IPTV er )VIP

しかし 、これらのフィールドをヘッダに含めると、ヘッダ長が大きくなり過ぎる。
また、対象ホストに関するフィールドはコントロールパケットのみで使われるため、通常の通信の時には不必要なフィールドである。そこで、
では 、パケットを 種類分類し 、データパケットとコントロールパケットで別のヘッダフォーマットを使用する。

EVIP

2

第 7部

4.8

171

移動ノード

タイプのフラグ化

EVIP

これまでに述べてきたように、
ではパケットをデータパケットとコントロールパケットに分類した。また、コントロールパケットはさらにコントロールパケットとコントロールパケットに分類されている。これは、これまで同等の扱いをしてきたパケット分類を階層化したことに他ならない。このことを利用してではパケットの分類をフラグで表す。

DAMT (Delete AMT entry)

CAMT (Create AMT entry)

EVIP

4.9

動作の安定性EVIP では、ホームネットワーク上のホストの AMT エントリもタイムアウトにより削除されるように変更したため、移動ホストは一定時間 t 毎に VipCAmt コントロールパケットをホームネットワークに対して送信しなければならないが、この時のパケットの中に含まれるエントリ保持時間は よりも長い必要がある。
では、ホームルータが、移動ホストに対するエントリを必ず保持していることを要求している。 がエントリ保持時間より長い時、この条件を満たすことが出来なくり、ホームネットワークにエントリがない時のパケットは紛失され移動ホストに届かなくなるからである。
また、エントリ保持時間と が同じ値であることも推奨できない。エントリ保持時間とが等しい場合、パケットを処理する時間が考慮すると僅かながらホームネットワーク上のホストにエントリが存在しない時間が出来てしまい、動作が安定しない。安定した動作を提供するためにとするべきである。

t

AMT

AMT
t

t

AMT

t  hold time

VIP

t

5章
Enhanced Virtual Internet Protocol
第

この章では

Enhanced Virtual Internet Protocol の仕様を記述する。

5.1 EVIP のヘッダフォーマットEVIP のパケットフォーマットにはデータパケット用のヘッダフォーマットとコント
ロールパケット用のデータフォーマットが存在する。それぞれのフォーマットを図 5.1に示す。EVIP ヘッダは VIP と同様に IP オプションとして実装され、28 バイトの大きさ
を持つ。

0

8
ver

hlen

16
tos

identification
ttl

proto

OptType24

320total length

8
verflags fragment offset

hlen

16
tos

identification

header checksum

ttl

proto

24
total length

flags fragment offset
header checksum

Source VIP Address

Source VIP Address

destination IP address

destination IP address

OptLenVer unused

Flags

OptType

OptLen32

Ver unused

Flags

Source IP Address

Source IP Address

Destination VIP Address

Destination VIP Address

Source VIP/IP Version

Target VIP Address

Destination VIP/IP Version

Target IP Address

Resolving System IP Address

Target VIP/IP Version

Holding Time

Target Holding Time

Authentication Data (optional)

Authentication Data (optional)(a) Data packet format(b) Control packet format

図5.1: EVIP のヘッダフォーマット

データパケット のヘッダフォーマット

172

第 7部

移動ノード

 送信側仮想 Internet アドレス
パケットを送信したホストの 仮想

173

Internet アドレス。

 OptType/OptLen
IP オプションのタイプ番号およびそのオプションが使うヘッダの長さ。(このフィー
ルドは Internet Protocol によって定義されている。) 現在、VIP ではオプション番
号として 140(0x8C) を使用しているが、これは正式に割り当てられた番号ではない。
 VIP バージョン番号
VIP のバージョン。現在のバージョンは 0 である。
 フラグ
パケットの取り扱いに対するフラグ。現在、次のようなフラグが用意されている。

{ data/control: データパケットかコントロールパケットかのフラグ。
{ DtCacheIR: 途中のルータでは AMT エントリを作らない。
{ DtRslvIR: 途中のルータではアドレスの対応付けを行なわない。
{ BcastDAamt: ホームネットワークのルータ以外のルータが DAmt コントロー

DAmt

ルパケットを受けとった時、パケットをブロード キャストするかど うかを決める。 ホームネットワークでは必ずブロードキャストする。

(

 受信側仮想 Internet アドレス
パケットを受信するホストの仮想

Internet アドレス。

 送信側アドレス対バージョン番号
このパケットを送信したホストのアドレス対のバージョン番号。この番号は送信ホ
ストによって生成される単調増加な番号でなければならない。

 受信側アドレス対バージョン番号
このパケットを受信するホストのアドレス対のバージョン番号。

 エントリ保持時間
ルータがこのパケットによって作成・更新した
時間。単位は秒。

AMT エントリを保持しておくべき アドレス解決実行システム Internet アドレス
このパケットの受信ホストのアドレ スの対応付を行なったホストのレス。

 認証用データ
パケット認証に使用される
ていない。

)

Internet アド

key などを格納するためのフィールド。(現在は使用され

1741992 年度 WIDE 報告書

コント ロールパケット のヘッダフォーマット

 送信側仮想 Internet アドレス
データパケットと同じ

 OptType/OptLen
データパケットと同じ

 VIP バージョン番号
データパケットと同じ

 フラグ
データパケットのフラグに次のフラグが追加される。

{ タイプ : 現在次のタイプがある。

3 0: CAmt AMT エントリを作成・更新する。
3 1: DAmt AMT エントリを削除する。

 送信側アドレス対バージョン番号
データパケットと同じ

 対象システム仮想 Internet アドレス
このコントロールパケットが対象とするドレス。

AMT エントリの鍵となる仮想 Internet ア 対象システム Internet アドレス
このコントロールパケットが対象とするレス。

 対象システムアドレス対バージョン番号
このコントロールパケットが対象とする
番号

 対象システムエントリ保持時間
このコントロールパケットが対象とする単位は秒。

 認証用データ
コントロールパケットと同じ 。

AMT エントリの値となる Internet アド
AMT エントリのアドレス対のバージョン
AMT エントリを保持しておくべき時間。

第 7部

0

図

8

175

移動ノード

16
24
VIP Address
IP Address
VIP/IP Version
Idle Timer
Deleting Timer
Flags

32

5.2: EVIP の AMT エントリのフォーマット

5.2 Address Mapping Table
AMT

5.2に示す。AMT の管理機構の改プロトコルの改良に伴い変更したの構造を図良に伴い、新たにタイマが追加されている。

deleting

 VIP Address: このエントリの鍵となる仮想 Internet アドレス。
 IP Address: このエントリの値となる仮想 Internet アドレス。
 Address Version: このエントリのアドレス対のバージョン番号。
 Holding Timer: このエントリが無効になるまでの残り時間。このタイマは減算タイ
マであり、0 になると、エントリは invalid フラグが立てられる。
 Deleting Timer: このエントリが消去されるまでの残り時間。このタイマは invalid
フラグがオンの間のみ動作する。このタイマは減算タイマであり、0 になると、このエントリは削除される。

 Flags: このエントリの制御フラグ。現在、次のようなフラグが存在する。
{ Use/Free: エントリが使用中かど うかを示すフラグ。
{ Valid/Invalid: エントリの有効/無効を示すフラグ。

{ home/not-home: エントリが子ホストのためのものかを示すフラグ。

{ local/not-local 同じセグ メントに接続されているホストの為のエントリである
ことを示すフラグ。

176

1992 年度 WIDE 報告書

5.3

エント リ保持時間

4.9 節で議論したように VipCAmt の送信間隔 t は t  hold time でなければならない。そこで、EVIP では 3t = エントリ保持時間 とする。これにより、VipCAmt コント
ロールパケットが一回失われることがあっても安定に動作することが可能となる。

5.4 EVIP における接続手順
VipCAmt

移動ホストは新たにネットワークに接続された時、コントロールパケットを接続通知としてホームネットワークに送信しなければならない。
コントロール
パケットを中継するルータは、自分が保持しているを更新しつつパケットを転送する。また、このコントロールパケットを受信したホームルータはを更新し 、更に
コントロールパケットを移動ホストが直前に接続されていたネットワークへ送信する。このパケットにより直前に接続されていたネットワークのルータのエントリは更新され、一時的代理ホストとして動作する。以下に途中ルータ、ホームルータ、一時的代理ホストの動作を示す。

AMT

VipCAmt
VipCAmt

VipCAmt

AMT

途中ルータ
移動ホストに対する

if (AMT エントリを持っている ) f
if ( AMT エントリの方が古い ) f
・ VipDAmt をブロードキャストする。
・移動ホストに対する AMT エントリを更新する。
・パケットを経路情報に従って中継する。

g else if ( AMT エントリとバージョンが等しい ) f
・移動ホストに対する AMT エントリのタイマをリセットする。
・パケットを経路情報に従って中継する。

g else if ( AMT エントリの方が新しい ) f
・ VipDAmt をアドレスの対応づけを行なったホストへ送信する。
・パケットを破棄する。

gg else f

・移動ホストに対するg

・パケットを経路情報に従って中継する。

ホームルータ移動ホストに対する

if (AMT エントリを作成する。

AMT エントリを持っている ) f
if ( AMT エントリの方が古い ) f
・ VipDAmt をブロードキャストする。

AMT

第 7部

移動ノード

177

VipCAmt をホームネットワークにブロードキャストする。
・移動ホストが直前に接続されていたネットワークに VipCAmt を送信する。
・移動ホストに対する AMT エントリを更新する。
g else if ( AMT エントリとバージョンが等しい ) f
・ VipCAmt をホームネットワークにブロードキャストする。
・移動ホストに対する AMT エントリのタイマをリセットする。
g else if ( AMT エントリの方が新しい ) f
・ VipDAmt をアドレスの対応づけを行なったホストへ送信する。
・・パケットを破棄する。

gg else f
・VipCAmt をホームネットワークにブロードキャストする。
・移動ホストに対する AMT エントリを作成する。
g
一時的代理ホスト

if ( 移動ホストに対する AMT エントリを持っている ) f
if ( AMT エントリの方が古い ) f
・ VipDAmt をブロードキャストする。
・ VipCAmt を 移動ホストが接続されていたネットワークにブロードキャストする。

AMT エントリを更新する。
g else if ( AMT エントリとバージョンが等しい ) f
・ VipCAmt を移動ホストが接続されていたネットワークに・移動ホストに対するブロードキャストする。

AMT エントリのタイマをリセットする。
g else if ( AMT エントリの方が新しい ) f
・ VipDAmt をアドレスの対応づけを行なったホストへ送信する。
・移動ホストに対する・パケットを破棄する。

gg else f

・移動ホストに対する・g

AMT エントリを作成する。

VipCAmt を移動ホストが接続されていたネットワークにブロードキャストする。

178

1992 年度 WIDE 報告書

2.5

Host:A-a Net:A-e
Net:B-a
GW:A-de, GW:A-ad, GW:A-ab, GW:A-bc Host:A-a
Net:B-a
Host:A-a5.3-(a)
Net:A-b
AMT
GW:A-ad5.3-(b)

この様子を図を使って説明する。
がからへ移動することを考える。現在、にを鍵とするエントリが存在するとする。
に移動した後、は図の様なコントロールパケットをに対して送信する。これを中継する時、を鍵とするエントリを保持しているルータ
は図の様なコントロールパケットをブロードキャストする。また、ホームルータであるはをブロードキャストすると同時に図の様な他のホーム
ルータへの通知、図の様な一時的代理ホストを作るためのコントロー
ルパケットを送信する。

AMT
VipCAmt
Host:A-a
VipDAmt
GW:A-ab VipDAmt
5.3-(d)eld

V IPType
V IPSrcAddr
IPSrcAddr
V IPDstAddr
IPDstAddr
V IPTV ipAddr
V IPTIpAddr
V IPTV ipV ereld

V IPType
V IPSrcAddr
IPSrcAddr
V IPDstAddr
IPDstAddr
V IPTV ipAddr
V IPTIpAddr
V IPTV ipV er

value
VipCAmt
VIP address of Host:A-a
IP address of Host:A-a
VIP address of Host:A-a
VIP address of Host:A-a
VIP address of Host:A-a
IP address of Host:A-avarcurrV er of Host:A-a
(a)
value
VipCAmt
VIP address of GW:A-ab
IP address of GW:A-ab
Broadcast address
Broadcast address
VIP address of Host:A-a
IP address of Host:A-avarcurrV er of Host:A-a(c)
図5.3-(c)VipCAmteld

V IPType
V IPSrcAddr
IPSrcAddr
V IPDstAddr
IPDstAddr
V IPTV ipAddr
V IPTIpAddr
V IPTV ipV ereld

V IPType
V IPSrcAddr
IPSrcAddr
V IPDstAddr
IPDstAddr
V IPTV ipAddr
V IPTIpAddr
V IPTV ipV er

value
VipDAmt
VIP address of Host:A-ad
IP address of Host:A-ad
Broadcast address
Broadcast address
VIP address of Host:A-a
IP address of Host:A-avarcurrV er of Host:A-a
(b)
value
VipCAmt
VIP address of GW:A-ab
IP address of GW:A-ab
value of AMTV ipAddr eld
value of AMTIpAddr eld
VIP address of Host:A-a
IP address of Host:A-avarcurrV er of Host:A-a(d)

5.3: 接続処理時のパケットフォーマット

5.5 EVIP における通信手順
EVIP における通常のデータ通信の動作を説明する。
Host:A-a が Net:B-a に接続されているとき Host:D-a との間で通信することを考える。
Host:D-a が Host:A-a に最初にパケットを送信する時 Host:D-a は Host:A-a を鍵とする
AMT エントリを持っていないので図 5.4-(a) の様なパケットを送信する。このパケットは
GW:BB-ab で対応づけが行なわれ 図 5.4-(b) の様なヘッダに変換され Host:A-a に転送される。Host:A-a から Host:D-a へパケットが送られると、そのパケットによって Host:D-aに Host:A-a を鍵とする AMT エントリが作られる。その後 Host:D-a が Host:A-a に対
この章では

第 7部
してパケットを送信する時は、図eld

V IPType
V IPSrcAddr
IPSrcAddr
V IPSrcV er
V IPDstAddr
IPDstAddr
V IPDstV er
V IPRslvIP

179

移動ノード

5.4-(c) の様なパケットを送信することが出来る。

value
eld
value
VipData
V IPType
VipData
V IPSrcAddr VIP address of Host:D-a
VIP address of Host:D-a
IP address of Host:D-a
IPSrcAddr
IP address of Host:D-avarcurrV er of Host:D-avarcurrV er of Host:D-a
V IPSrcV er
V IPDstAddr VIP address of Host:A-a
VIP address of Host:A-a
IPDstAddr
VIP address of Host:A-avalue of AMTIpAddr
0value of AMTV er
V IPDstV er
0
V IPRslvIP
IP address of GW:BB-ab
(a)
(b)
eld
value
V IPType
VipData
V IPSrcAddr VIP address of Host:D-a
IPSrcAddr
IP address of Host:D-avarcurrV er of Host:D-a
V IPSrcV er
V IPDstAddr VIP address of Host:A-avalue of AMTIpAddr
IPDstAddr
V IPDstV ervalue of AMTV er
V IPRslvIP
IP address of Host:D-a(c)
図5.4: 通信時のパケットフォーマット

5.6 EVIP における切断手順
EVIP では 2 種類の切断方法がある。一つは「通知を行なわない切断」、もう一つは「明示的な切断」である。

VipDAmt

通知を行なわない切断: この方法では、移動ホストはコントロールパケットを送信することなくネットワークから切断される。ネットワーク上に残留しているエントリについては、次のパケットによって更新されるか、タイムアウトにより消去されることを期待した方法である。

AMT

VipCAmt

実際にこの方法で切断される場合は、移動ホストがネットワークから切断されるだけなので特に例を示すことはしない。

VipDAmt

明示的な切断: この方法は、実際にネットワークから切断される際にコント
ロールパケットを用いてホームネットワークに通知を行なう方式である。この方法を用いた場合、ホームネットワーク上のエントリを積極的に無効に出来るだけでなく、パケットが転送される途中のルータ上のエントリも無効にすることが出来る。さ

AMT
AMT

180

1992 年度 WIDE 報告書

broadcast DAMT
1
VIP
VipDAmt
Host:A-a Net:B-a5.5-(a)1
GW:B, GW:BB-ab, GW:A, GW:A-ad
5.5-(b)らに、コントロールパケットのフラグを にしておくことによりこれまでのと同じようにコントロールパケットを拡散することも出来る。
前章の続きでがから切断される場合の例を示す。
は切断される前に図の様なパケットを送信する。このパケットのフ
ラグが ならば途中のはこのパケットを転送すると同時に図のようなパケットをブロードキャストする。

eld

value

V IPType
VipDAmt
V IPSrcAddr VIP address of Host:A-a
IPSrcAddr
IP address of Host:A-a
V IPDstAddr VIP address of Host:A-a
VIP address of Host:A-a
IPDstAddr
V IPTV ipAddr VIP address of Host:A-a
V IPTIpAddr IP address of Host:A-a
V IPTV ipV er varcurrV er of Host:A-a

(a)

図

eld

Host:A-abroadcast DAMT

value

V IPType
VipDAmt
V IPSrcAddr VIP address of source GW
IPSrcAddr
IP address of source GW
V IPDstAddr broadcast address
broadcast address
IPDstAddr
V IPTV ipAddr VIP address of Host:A-a
V IPTIpAddr IP address of Host:A-a
V IPTV ipV er varcurrV er of Host:A-a

5.5: 切断時のパケットフォーマット

(b)

6章
EVIP の実装
第4.3 BSD UNIX オペレーティングシステムを基盤とした二つのオペレーティ(NewsOS 4.1、BSD/386) 上で EVIP を実装した。本章ではこの実装につ

本研究では
ングシステム
いて記述する。

6.1

記憶領域の確保

VIP を実装するためには少なくとも次の 2 つを保存するための領域を確保する必要がある。

 仮想 Internet アドレス
 Address Mapping Table

kernel

これらの領域は内部に静的変数として確保した。仮想
構造体で、
は付録の
構造体を配列で確保した。

AMT

6.2

amt

Internet アドレスは in addr

処理系の構成VIP

6.1

今回実装したのブロックダ イアグラムを図に示す。ここで細線で表された矢印はの処理の流れを表しており、太線がを実装するために付加した部分である。

IP

VIP

VIP

TCP/UDP

送信の場合、基本的にオプションを付加するだけである。まず、層からモジュールが呼ばれ 、その直後にモジュールを通る。このモ
ジュールでオプションが作られる。作られたオプションはもう一度モジュールに渡され、この中で他のオプションと共にヘッダに付加される。その後、モジュールが呼ばれ受信ホストのアドレスの対応付けが行なわれる。対
応付けが行なわれた後は、通常のの送信手順に従い、ルーティングテーブルが検索される。この時点でパケットを送出するインターフェイスが決まり、モジュールを呼び出してオプションの送信側を設定する。その後、
モジュールを呼び出してパケットを送出する。

ip output
VIP

ip mapdstaddr
VIP

vip output
VIP
IP

IP

Internet

181

ip output

ll ip
if output

182

1992 年度 WIDE 報告書
TCP / UDP

TCP/UDP layer

AMT
vip_input

ip_output
vip_forward

ipintrip_forward
vip_convert

vip_output

vip_error

amt_update

vip_mapdstaddr

Interface layer

Ethernet / FDDI / ...
IP data flow
図Internet

IP layer

VIP data flow

VIP control flow

6.1: ブロックダ イアグラム
IPInternet

受信の場合、
アドレス、 ヘッダのチェックサムをチェックした後、仮想アドレスを確認しなければならない。インターフェイスがパケットを受信すると割り込
みが入り、モジュールが呼び出される。
モジュールでは送信ホストの仮想アドレスを鍵とするエントリを更新した後、アドレスの確認を行ない、自分宛のパケットならばモジュールを呼び出す。
モジュー
ルではアドレスの確認と、そのパケットがコントロールパケットであるか否かの確認を行ない、自分宛のデータパケットなら受信側
アドレスフィールドに仮想アドレスを代入し 、上位プロトコルに渡す。コントロールパケットはモジュールで処理を行なった後、破棄し上位プロトコルには渡さない。
中継の場合、受信側のアドレ スの対応付けを行なった後に転送すればよい。
モ
ジュールで自分宛のパケットではないと判断された場合、モジュールが呼ばれ、もしこのパケットがコントロールパケットならば 、ここで一度処理される。その後、モジュールに渡されフォワード される。アドレスの対応付けは、実際にはこ
こでは行なわれず、送信の時と同じようにモジュールからモ
ジュールが呼ばれる時に行なわれる。
また、中継するパケットが普通のパケットだった場合、モジュールの代わりにモジュールが呼ばれ 、パケットに変換されてからフォワード
される。これにより、通常のホストとの通信中も移動ホストの移動透過性を保証することが可能となる。

ipintrInternet

VIP

AMT
vip input

ipintrInternet
vip input

Internet

Internet

vip input
ipintrvip forward

ip forward

vip convert

ip output

IP

IP

VIP

ip mapdstaddr

vip forward

第

7章

評価
この章では、実装した

7.1

EVIP の評価および考察を行なう。

実験環境

Sony

NEWS 7
NEWS
MC68030

7.1

本研究では社のワークステーションであるを 台用いて図の様なネッ
トワークを構築し 、評価を行なった。番号はの型番である。今回使用したはいずれもはクロックがので、メモリは 〜
のも
のである。

CPU

25MHz

1750

1550

1550

1550

図

7.2

NEWS
4 12 M byte

1550

1250

1550

7.1: 実験環境

オーバヘッドNEWS-1750 上で送信、中継、受信について 1 パケットを処理するのにかかるオーバ
ヘッドを改良前の実装、改良後の実装および既存の IP について計測した結果を図 7.2に示す。図の数値の単位はマイクロ秒であり、括弧の中の数字はオーバヘッドを示してい

183

184

1992 年度 WIDE 報告書

ICMP ECHO

VIP

kernelる。計測はパケットをホストから送信し 、内にとられた領域に、モジュール毎にタイムスタンプを残し 、そのダンプを解析することにより行なった。

78
transmission

198 (120)205 (127)

300
relay

400 (100)
389 (89)

IP

66
reception

old VIP

150 (84)

enhanced VIP

128 (62)

0

100

図

200
time ( µ sec )

300

400

7.2: オーバヘッド

また、それぞれのオーバヘッド の詳細を表

7.1から表 7.3に示す。

7.1: 送信のオーバヘッドの内訳
transmission overhead: 127
vip output() ip insertoptions() vip mapdstaddr() ll ip() others
43
39
25
17
3
sec
表

7.2: 転送のオーバヘッドの内訳
relay overhead: 89
vip forward() vip mapdstaddr() ll ip() others
37
25
17
10
sec
表

第 7部

185

移動ノード

7.3: 受信のオーバヘッドの内訳
reception overhead: 67
ip dooptions() vip input() others
23
43
1
sec
表

7.3

オーバヘッド の考察

この章では、今回の実装により生じたオーバヘッドについて考察する。
実装は既存のネットワークプログラムに追加する形でなされているため、実装前より速くなることはない。測定結果を見ても、ある程度のオーバヘッドがあることがわかる。
この中で、送信時のオーバヘッドは改良前の実装よりさらに処理が遅くなっている。これは、今回の改良により複雑化したヘッダ アドレス解決実行システム
アドレ
スの挿入等 の処理部に時間がかかるのに対し 、他の簡略化された部分 コントロールパ
ケットのタイプの削減等 が送信時の処理には影響を及ぼさないためである。送信時のオーバヘッドは現行のの約もあり、さらに実装の面で改良する必要がある。

(

)

)
IP

160%

(

Internet

CPU

送信時のオーバヘッドによる影響は、パケットを送信するホストのの処理時間を多く消費することと、パケットを送り出すまでに要する時間が長くなること以外にはない。これは受信時のオーバヘッドについても同じことが言える。しかし 、中継時のオーバヘッドにはホップ数が掛かる。パケットは通常、相手のホストに到達するまでに幾つかのルータを経由する。この経由するルータの数が転送時のオーバヘッドに掛かってくる。この様子を次式に示す。

Host-to-Host overhead = (relay overhead) 2 Nhops+(transmission overhead) + (reception overhead)= 89 2 Nhops + 127 + 62
= 89 2 Nhops + 189(7.1)
現在考えているようなホストが移動した状況ではとくに経由するルータの数が増える
ことが予想されるので転送時のオーバヘッドを最小限にとどめることは重要である。現
在の実装では転送時のオーバヘッドは約である。途中のルータの数に対するのオーバヘッドを表
に示す。

7.4

30%

VIP

186

1992 年度 WIDE 報告書

7.4: host-to-host Overhead
host-to-host overhead
Hops old VIP enhanced VIP
10
1.2
1.1
20
2.2
2.0
30
3.2
2.9
msec
表

7.4

考察

3

この章では、 章で説明した問題についての検証、その他今回の研究により改良された部分について議論する。

7.4.1

孤立した AMT エント リの残留

AMT が残留する問題について 3.1 節で用いた例と同じ例を用いて検証する。
Host:A-a が Net:B-a に接続されており、GW:D にその AMT エントリが存在している。ここで、Host:A-a が Net:B-a から切断されて Net:A-e に接続されることを考える。
Host:A-a はネットワークから切断され Net:A-e に接続された時、ホームネットワークである Net:A-b へ VipCAmt コントロールパケットを送信する。GW:A-ab ではこのパケッ
トを Net:A-b へブロードキャストすると同時に Net:B-a へも VipCAmt パケットを転送する。これにより、Net:B-a 上の残留エントリは更新され GW:B は一時的代理ホストとして動作するようになる。しかし 、この状態では、まだ、GW:D 上の AMT エントリは残留エントリとして残っている。この状態で Host:D-a が Host:A-a へパケットを送信す
ることを考える。Host:D-a から送信されたパケットは GW:D-a により古い対応づけをなされて Net:B-a へ転送される。しかし 、その入口である GW:B は正しい AMT エントリを保持しているため、パケットは新しい対応づけがなされ Net:A-e へ転送される。GW:B
は同時に間違った対応づけを行なった GW:D に対して VipDAmt コントロールパケット
を送り、GW:D 上の残留エントリを消去することが出来る。
孤立した

7.4.2

無期限の余分な転送

AMT

この問題を解決するためにホームルータのエントリについてもタイムアウトを設けた。これにより、移動ホストがネットワークから切断され、定期的なが届かなくなると確実にホームルータ上のエントリは消去される。しかし 、このことは新たな問題点をつくり出した。定期的なによるトラヒックは節で述べたの関係から頻繁に移動するノードでは大きくなってしまう。

t hold time

AMT
VipCAmt

VipCAmt

4.9
t = 1.0 (min)

第 7部

187

移動ノード

6bit/secのホストでは約のトラヒックを発生させることになる。これは移動ノードが増えるに従って大きな問題となる。

7.4.3 IP との互換性

IP との互換性について 3.1 で用いた例と同じ例を用いて検証する。
Host:A-a が Net:B-a に接続されていて、Host:A-a と Host:C-b の間で通信が行なわれているとする。この時、Host:A-a は VIP ヘッダを含んだパケットを送信するが Host:C-b
側では、それを Unknown Option として処理する。しかし 、実際には今回の改良により
IP ヘッダに含まれている送信ホストアドレスは仮想 Internet アドレスであるため、ホストは Host:A-a をその仮想 Internet アドレスで認識する。ただし 、Host:C-b から送信されたパケットは一度 GW:BB-ab に到達し、そこで VIP パケットに変換された後 Net:B-a
へ転送されることになる。この場合、Host:A-a が移動した後も他のルータが正しい AMT
エントリを保持していれば通信の連続性、つまり、ホストの移動透過性は保証される。

7.4.4

複雑な AMT 管理機構

VIP のコントロールパケットの種類を減らすことにより AMT 管理のメカニズムを簡略化した。これによりソフトウェアも簡略化でき、オーバヘッド の表にも現れているよ
うに転送 受信時のコストを削減できた。特に前述した理由により転送時のコストの削減
は全体のパフォーマンスに直接大きな影響を与えている。これは、の二段階消去などの機能を追加したにも関わらずパフォーマンスが落ちていないことを見てもわ
かる。

VIP

/

AMT

第

8章

今後の課題
これまで述べてきたような問題の他に、まだ、次のような問題点が残っている。

 IP アドレス取得の問題
VIP では移動ホストがネットワークを移動した時に、一時的な Internet アドレスを取得しなければならない。一時的な Internet アドレスの取得過程を自動化するためには問題が二つある。一つはネットワークを移動したことを、ユーザを通さずに如何にして検知するかという問題で、もう一つはどのようなプロトコルでアドレスを取得するかである。現在、この問題は解決されつつあり、移動の検知はパケット
が届かなくなったことをタイムアウトにより検知し 、プロトコルとしてはを使う方向で検討している。現在、移動したことを検知するためのデーモンプログラムは完成しており、アドレス取得のプロトコルとしてを使用している。
はまだ正式にリリースされたプロトコルではなく、これがリリースされると同時にこのプロトコルを導入する予定である。また、移動検知の方もレベルで検知できるものにつ
いては
または
を使って
時間の消費を出来るだけ押えた形で実装していく予定である。

IP

Dynamic

Host Con gration Protocol (DHCP)

Bootstrap Protocol (BOOTP)

ioctl

system call

CPU

DHCP

kernel 耐故障性現在の VIP の仕様では Home Network への到達性がないネットワークには接続することが出来ない。当然、何らかのトラブルによってネットワークが切断された場
合、通信が不可能になる。これを回避するために、我々は代理ホームネットワークを導入することを検討中である。複数のホームネットワークを導入するためにはホームネットワーク間のエントリの整合性を如何にして保証するかという問題を解決しなければならない。現在、この方法を検討中である。

AMT

 認証
移動ノード 用のプロトコルは、その名の通り移動できるような小型の計算機を想定したプロトコルであるため、その使用される状況を考えると認証を疎かにすることはできない。小型な計算機は持ち運ぶことが出来るためネットワークのあらゆる場所に接続されることが考えられる。これは頻繁にを送信することによりなりすましが出来ることを意味する。認証が確実に出来てないような状態ではネッ

VipCAmt

188

第 7部

移動ノード

189

トワークを信頼することは出来ない。そこで何らかの認証システムが必要になるがはもともと認証機構を含んでいないため外側から認証機構を採り入れても結局基本的なところで問題がでてくる。我々は今後自体に認証機構が採り入れられる様に希望すると同時にその機構の開発に力を注ぐつもりである。

IP

IP

第

9章

まとめ
VIP

IP

本研究では
を実用にするため改良を加えた。最大の問題点であったとの互換性を高めるためヘッダフォーマットの変更、変換ルータを導入を行なった。また、の管理機構をいくつかの面から強化し 、古い
エントリの残留による無駄なトラヒッ
クを削減した。
また、改良したを実装し 、その評価を行なった。改良後のでは使用状況によっては定常状態でのトラヒックが増加するという問題点が新たに浮き彫りにされたことを除くと、これまでのより優れた結果が得られた。
しかし 、まだオペレーティングシステムレベル、アプリケーションレベルでの移動ノード の支援は十分ではない。携帯できる計算機は比較的小規模であり資源を十分に用意できない。このような場合、当然、ネットワーク上の資源を有効に利用することになる。しかし 、ネットワークファイルシステムなどを見るとわかるように、既存のソフトウェアを変更を加えずに利用すると、ネットワークに大きな負荷をかけることは必至である。このような無理な負荷をネットワークにかけないためにも、携帯している計算機で作業をするためにはさらに別の面から研究を進めていく必要がある。

AMT

VIP

VIP

VIP

190

AMT

第

10 章

付録

10.1 amt 構造体
以下に

amt 構造体を定義しているヘッダファイルを付す。

/3
3 $Header: amt.h,v 0.0 1992/12/20 05:59:15 kei Exp kei $3/struct amt f
struct amt
3next;
struct amt
3prev;
struct in addr vip;
struct in addr ip;
u int
ver;
tm idle;u int
tm delete;
u int
u int
ags;
g;
/3 amt ags 3/#de ne AMT INUSE 0x01
#de ne AMT PERM 0x02
0x04
#de ne AMT DEL/3 busy ag 3//3 permanent 3//3 deleting 3/

191

192

1992 年度 WIDE 報告書