通信制御プログラム、情報処理装置およびパケット通信方法
【課題】複数の経路を用いてパケットを送信できるようにする。
【解決手段】記憶部11は、トンネル14の1つの端点に設定されたアドレスhと他の端点に設定されたアドレスe,fとを含むアドレス情報11aを記憶する(少なくとも一方の端点に複数のアドレスが設定されている)。制御部12は、アドレス情報11aの中から、取得したパケットのアドレスに応じた送信元アドレスと宛先アドレスとを選択する。送信部13は、パケットのトンネルヘッダに、選択した送信元アドレスと宛先アドレスとを付加した、カプセル化されたパケットを送信する。
【解決手段】記憶部11は、トンネル14の1つの端点に設定されたアドレスhと他の端点に設定されたアドレスe,fとを含むアドレス情報11aを記憶する(少なくとも一方の端点に複数のアドレスが設定されている)。制御部12は、アドレス情報11aの中から、取得したパケットのアドレスに応じた送信元アドレスと宛先アドレスとを選択する。送信部13は、パケットのトンネルヘッダに、選択した送信元アドレスと宛先アドレスとを付加した、カプセル化されたパケットを送信する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は通信制御プログラム、情報処理装置およびパケット通信方法に関する。
【背景技術】
【0002】
現在、物理的なネットワーク上に複数の論理的なネットワークを形成するネットワークの仮想化技術が利用されている。ネットワークの仮想化を行うことで、通信装置間の物理的な配線を変更しなくても、ユーザ毎にパケットの到達範囲を変更することができる。例えば、複数のユーザが利用するデータセンタのレイヤ2ネットワークにおいて、パケットがユーザ毎に論理的に分離されるように仮想化技術を用いることが考えられる。
【0003】
ネットワークの仮想化を実現する方式の1つとして、通信装置の間にトンネルを形成するトンネル方式がある。トンネル区間内では、トンネルヘッダが付加されてカプセル化されたパケットが伝送される。トンネルを通過するパケットは、トンネルの一方の端点(ヘッドポイント)でカプセル化され、他方の端点でカプセル化が解除される。トンネル区間内でのパケット伝送のため、例えば、カプセル化されたパケットには、トンネルの両端の通信装置のアドレスが送信元アドレスおよび宛先アドレスとして付加されている。
【0004】
ところで、ネットワークには、経路が冗長化されて、パケットの送信元と宛先との間に複数の物理的な経路が存在するものもある。経路が冗長化されている場合の経路制御技術としては、STP(Spanning Tree Protocol)やマルチパス技術がある。STPでは、ネットワーク内に存在するループが検出され、論理的にループが解消されるように通信装置間のリンクの一部を使用禁止にする。一方、マルチパス技術では、複数の経路を利用してパケットを分散して伝送する。例えば、パケットに付加された送信元アドレスや宛先アドレスなどに基づいて、当該パケットを伝送する経路を選択することが考えられる。マルチパス技術を用いることで、通信装置間のリンクの使用効率を向上させることができる。
【0005】
なお、マルチパス技術に関し、1つの宛先アドレスに対して複数の経路を登録したマルチパスルーティングテーブルを備え、マルチパスルーティングテーブルに従って、受信したパケットを出力するインタフェースを選択するパケット中継装置が提案されている。また、パケットの送信元アドレスをアプリケーションの種別に応じた仮想IP(Internet Protocol)アドレスに変換し、複数の経路が設定されたIPネットワークに出力することで、復路も往路と同じ経路になるよう制御可能なパケット中継装置が提案されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2006−165952号公報
【特許文献2】特開2001−160825号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
パケットを伝送するネットワーク(例えば、レイヤ2ネットワーク)に、トンネル方式によるネットワークの仮想化とマルチパス技術の両方を適用することを考える。しかし、その場合に、トンネルの両端の通信装置の物理アドレスを用いてパケットがカプセル化されてしまうと、トンネル区間内では経路制御について、カプセル化前の元の送信元アドレスや宛先アドレスの違い(フローの違い)が認識されなくなってしまう。よって、トンネル区間内に複数の経路を設定しても、カプセル化されたパケットを複数の経路に分散して伝送することが難しく、伝送効率が低下するという問題がある。
【0008】
1つの側面では、本発明は、複数の経路を用いてパケットを送信できるようにする通信制御プログラム、情報処理装置およびパケット通信方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
トンネルが形成されトンネルの区間内に複数の経路が設定されたネットワークを介して送信されるパケットを処理する通信制御プログラムが提供される。通信制御プログラムを実行するコンピュータが、トンネルの1つの端点に設定された第1の送信元アドレスと他の端点に設定された第1の宛先アドレスとを含み、第1の送信元アドレスと第1の宛先アドレスの少なくとも一方が複数設定されたアドレス情報を記憶する記憶部を備える。当該コンピュータが、第2の送信元アドレスと第2の宛先アドレスとを含む第1のパケットを取得し、アドレス情報の中から、第2の送信元アドレスと第2の宛先アドレスとに応じた第1の送信元アドレスと第1の宛先アドレスとを選択する。当該コンピュータが、第1のパケットのトンネルヘッダに、選択した第1の送信元アドレスと第1の宛先アドレスとを付加して、カプセル化した第2のパケットを生成する。
【0010】
また、トンネルが形成されトンネルの区間内に複数の経路が設定されたネットワークを介して送信されるパケットを処理する情報処理装置が提供される。情報処理装置は、記憶部と制御部と送信部とを有する。記憶部は、トンネルの1つの端点に設定された第1の送信元アドレスと他の端点に設定された第1の宛先アドレスとを含み、第1の送信元アドレスと第1の宛先アドレスの少なくとも一方が複数設定されたアドレス情報を記憶する。制御部は、第2の送信元アドレスと第2の宛先アドレスとを含む第1のパケットを取得し、アドレス情報の中から、第2の送信元アドレスと第2の宛先アドレスとに応じた第1の送信元アドレスと第1の宛先アドレスとを選択する。送信部は、第1のパケットのトンネルヘッダに、選択した第1の送信元アドレスと第1の宛先アドレスとを付加した、カプセル化された第2のパケットを送信する。
【0011】
また、トンネルが形成され前記トンネルの区間内に複数の経路が設定されたネットワークを介して送信されるパケットを処理するパケット通信方法が提供される。
【発明の効果】
【0012】
上記通信制御プログラム、情報処理装置およびパケット通信方法によれば、複数の経路を用いてパケットを送信できるようになる。
【図面の簡単な説明】
【0013】
【図1】第1の実施の形態の情報処理装置を示す図である。
【図2】第2の実施の形態の通信システムを示す図である。
【図3】サーバ装置のハードウェア例を示すブロック図である。
【図4】仮想マシンの配置例を示すブロック図である。
【図5】仮想マシンの他の配置例を示すブロック図である。
【図6】パケットのフォーマット例を示す図である。
【図7】サーバ装置の仮想スイッチを示すブロック図である。
【図8】仮想アドレステーブルの例を示す図である。
【図9】フロー管理テーブルの例を示す図である。
【図10】経路テーブルの例を示す図である。
【図11】パケット送信処理を示すフローチャートである。
【図12】パケット受信処理を示すフローチャートである。
【図13】パケット通信の手順例を示す第1の図である。
【図14】パケット通信の手順例を示す第2の図である。
【図15】パケット通信の手順例を示す第3の図である。
【図16】パケット通信の手順例を示す第4の図である。
【図17】パケット通信の手順例を示す第5の図である。
【発明を実施するための形態】
【0014】
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理装置を示す図である。第1の実施の形態の情報処理装置10は、トンネル14が形成されトンネル14の区間内に複数の経路(例えば、経路#1,#2)が設定されたネットワークを介して送信されるパケットを処理する。情報処理装置10は、記憶部11、制御部12および送信部13を有する。
【0015】
記憶部11は、アドレス情報11aを記憶する。アドレス情報11aは、トンネル14の1つの端点に設定されたアドレス(第1の送信元アドレス)と、他の端点に設定されたアドレス(第1の宛先アドレス)を含む。トンネル14の少なくとも一方の端点に、複数のアドレス(好ましくは、複数の第1の宛先アドレス)が設定される。例えば、1つの端点にアドレスhが設定され、他の端点にアドレスe,fが設定される。なお、アドレス情報11aが示すアドレスの中には、トンネル14の端点の通信装置の物理アドレスが含まれてもよい。例えば、アドレスe,fの何れか一方が、物理アドレスであってもよい。また、アドレス情報11aが示すアドレスは、全て仮想アドレスであってもよい。
【0016】
制御部12は、送信元アドレス(第2の送信元アドレス)と宛先アドレス(第2の宛先アドレス)を含むパケットを取得する。制御部12は、取得したパケットの送信元アドレスと宛先アドレスに応じて、記憶部11に記憶されたアドレス情報11aの中から、カプセル化に用いる送信元アドレスと宛先アドレスを選択する。例えば、制御部12は、元のパケットの送信元アドレスと宛先アドレスの組が同じであれば、カプセル化に用いる送信元アドレスと宛先アドレスの組が同じになるよう制御する。未知のアドレス組をもつパケットが到着したときは、使用頻度が平均化されるように(例えば、ラウンドロビン方式により)、カプセル化に用いるアドレス組を選択する。
【0017】
送信部13は、トンネル14の区間内で伝送されるカプセル化されたパケットをネットワークに出力する。カプセル化されたパケットは、取得された元のパケットに、トンネルヘッダや制御部12で選択された送信元アドレスおよび宛先アドレスが付加されたものである。トンネル14の区間内でのパケットの伝送経路は、トンネルヘッダに対して付加された(制御部12で選択された)送信元アドレスと宛先アドレスに基づいて選択される。例えば、アドレス組(a,c)をもつパケットが、アドレス組(h,e)を用いてカプセル化されて、経路#1で伝送される。また、アドレス組(a,d)をもつパケットが、アドレス組(h,f)を用いてカプセル化され、経路#2で伝送される。
【0018】
カプセル化したパケットの伝送経路は、情報処理装置10が選択してもよいし、ネットワークの通信装置(例えば、スイッチ)が選択してもよい。前者の場合、記憶部11は、カプセル化に用いる送信元アドレスおよび宛先アドレスと、トンネル14の区間内の経路を識別するための識別情報とを対応付けた経路情報11bを記憶する。制御部12は、記憶部11に記憶された経路情報11bを参照して、カプセル化後の送信元アドレスと宛先アドレスの組に応じた経路で伝送されるよう、パケットの送信を制御する。例えば、制御部12は、経路情報11bの示す識別情報がトンネルヘッダに付加されるよう制御する。なお、トンネル14の区間内の通信装置は、トンネルヘッダに付加された宛先アドレスや識別情報などに応じた経路でパケットを転送するよう設定されている。
【0019】
また、制御部12は、トンネル14の区間内の輻輳状況を考慮して、カプセル化に用いる送信元アドレスと宛先アドレスを選択するようにしてもよい。例えば、制御部12は、ネットワークの通信装置から、輻輳が検出された経路についての輻輳情報を取得する。輻輳情報には、例えば、輻輳している経路で伝送しようとしたパケットの送信元アドレスと宛先アドレス(カプセル化後の送信元アドレスと宛先アドレス)が含まれる。制御部12は、取得した輻輳情報に基づいて、アドレス情報11aが示すアドレス組のうちカプセル化のために選択可能なアドレス組を制限する。例えば、輻輳情報が示す送信元アドレスと宛先アドレスの組を、選択可能なアドレス組から除外する。
【0020】
なお、トンネル方式でネットワークの仮想化を行うことで、VLAN(Virtual Local Area Network)方式より高いスケーラビリティを得ることができる。トンネル14を形成する方法として、レイヤ2トンネリングやレイヤ3トンネリングなどを用いることができる。トンネリング技術には、GRE(Generic Routing Encapsulation)やIPoverIPなどが含まれる。情報処理装置10は、トンネル14の一方の端点に位置する通信装置として機能してもよい。また、情報処理装置10は、記憶部11を備えるコンピュータに、所定の通信制御プログラムを実行させることで実現してもよい。上記のパケットは、フレームなど他の名称で呼ばれる送信単位も含み、上記の送信元アドレスや宛先アドレスは、MAC(Medium Access Control)アドレスであってもよい。
【0021】
第1の実施の形態の情報処理装置10によれば、第2の送信元アドレスと第2の宛先アドレスとを含む第1のパケットが取得され、アドレス情報11aの中から、第2の送信元アドレスと第2の宛先アドレスとに応じた第1の送信元アドレスと第1の宛先アドレスとが選択される。第1のパケットのトンネルヘッダに、選択された第1の送信元アドレスと第1の宛先アドレスとが付加されて、カプセル化された第2のパケットが送信される。
【0022】
これにより、カプセル化に使用可能な送信元アドレスと宛先アドレスの組を複数用意することができる。このため、トンネル14の区間内でも、カプセル化後の送信元アドレスや宛先アドレスに基づいて、複数のフローを区別して認識することができる。よって、トンネル14の区間に設定した複数の経路に分散して、カプセル化されたパケットを送信することができ、カプセル化されたパケットを効率的に伝送することが可能となる。また、パケットの分散により、ネットワークでの輻輳の発生を抑制することができる。
【0023】
[第2の実施の形態]
図2は、第2の実施の形態の通信システムを示す図である。第2の実施の形態では、複数のサーバ装置で実行される仮想マシン(VM:Virtual Machine)がレイヤ2ネットワークを介して通信を行う通信システムを考える。第2の実施の形態の通信システムは、例えば、複数のユーザが利用するデータセンタに設けることができる。通信システムは、スイッチ21〜26を含むネットワーク20とサーバ装置100,100aとを有する。
【0024】
スイッチ21〜26は、パケットを転送する通信装置である。スイッチ21はサーバ装置100に接続され、スイッチ22はサーバ装置100aに接続されている。サーバ装置100とサーバ装置100aの間の経路には、スイッチ21,24、22を経由する経路と、スイッチ21,25,22を経由する経路とが含まれる。ネットワーク20上には、トンネル方式の仮想化により、ユーザ毎に論理的なネットワークを形成することができる。スイッチ21〜26は、トンネルヘッダが付加されたカプセル化されたパケットを転送できる。また、ネットワーク20上には、マルチパスを形成することができる。
【0025】
サーバ装置100,100aは、論理的なコンピュータである仮想マシンを複数実行可能な情報処理装置である。仮想マシンは、当該仮想マシンに割り当てられたハードウェア資源の範囲内で情報処理を行う。サーバ装置100,100aでは、仮想スイッチと呼ばれるソフトウェアが実行されている。仮想スイッチは、仮想マシンが出力したパケットをネットワーク20に送信し、ネットワーク20から受信したパケットを宛先アドレスに応じて仮想マシンに振り分ける。サーバ装置100上の仮想マシンとサーバ装置100a上の仮想マシンとが通信する場合、例えば、サーバ装置100,100aの間にトンネルを形成する。仮想スイッチは、トンネルの端点の通信装置としてトンネル通信を制御する。
【0026】
図3は、サーバ装置のハードウェア例を示すブロック図である。サーバ装置100は、CPU(Central Processing Unit)101、RAM(Random Access Memory)102、HDD(Hard Disk Drive)103、画像信号処理部104、入力信号処理部105、ディスクドライブ106および通信部107を有する。上記ユニットは、サーバ装置100内でバスに接続されている。なお、サーバ装置100aも、サーバ装置100と同様のハードウェアによって実現することができる。
【0027】
CPU101は、サーバ装置100における情報処理を制御する演算装置である。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部を読み出して、RAM102に展開してプログラムを実行する。なお、サーバ装置100は、複数のCPUを備えていてもよい。
【0028】
RAM102は、CPU101が扱うプログラムやデータを一時的に記憶する揮発性メモリである。なお、サーバ装置100は、複数のRAMを備えていてもよく、RAM以外の種類のメモリを備えていてもよい。
【0029】
HDD103は、OS(Operating System)プログラムやアプリケーションプログラムなどのプログラム、および、CPU101の処理に用いられるデータを記憶する不揮発性の記憶装置である。HDD103は、内蔵の磁気ディスクに対し読み書きを行う。なお、サーバ装置100は、複数のHDDを備えていてもよく、HDD以外の種類の不揮発性の記憶装置(例えば、SSD(Solid State Drive))を備えていてもよい。
【0030】
画像信号処理部104は、CPU101の命令に従って、サーバ装置100に接続されたディスプレイ31に画像を表示する。ディスプレイ31として、例えば、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイを用いることができる。
【0031】
入力信号処理部105は、サーバ装置100に接続された入力デバイス32から入力信号を取得し、CPU101に出力する。入力デバイス32として、例えば、マウスなどのポインティングデバイスや、キーボードを用いることができる。
【0032】
ディスクドライブ106は、記録媒体33に記録されたプログラムやデータを読み取る駆動装置である。記録媒体33として、例えば、フレキシブルディスク(FD:Flexible Disk)などの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を用いることができる。ディスクドライブ106は、例えば、CPU101の命令に従って、記録媒体33から読み取ったプログラムやデータをRAM102またはHDD103に出力する。
【0033】
通信部107は、ネットワーク20に接続して通信を行う通信インタフェースである。ネットワーク20への接続方法は、有線でも無線でもよい。すなわち、通信部107は、有線通信インタフェースでも無線通信インタフェースでもよい。
【0034】
図4は、仮想マシンの配置例を示すブロック図である。サーバ装置100には、サーバ装置100がプログラムを実行することで、例えば、仮想マシン111(VM#1)、仮想マシン112(VM#2)およびハイパーバイザ121が実現される。
【0035】
仮想マシン111,112は、ハイパーバイザ121から割り当てられたハードウェア資源(CPUの処理能力やRAMの記憶領域など)を用いて、ユーザから要求された情報処理を行う。仮想マシン毎にOSが実行される。仮想マシン111,112は、それぞれMACアドレスが付与されており、他の仮想マシンと通信することができる。ハイパーバイザ121は、仮想マシン111,112にサーバ装置100のハードウェア資源を割り振り、仮想マシン111,112の実行を管理する。
【0036】
ハイパーバイザ121は、仮想スイッチを有する。仮想スイッチは、サーバ装置100とネットワーク20の間の通信帯域を管理し、仮想マシン111,112と通信部107の間でパケットを処理する。前述の通り、仮想スイッチは、仮想マシン111,112から出力されたパケットを、通信部107を介してネットワーク20に送信する。また、通信部107を介してネットワーク20から受信したパケットを、宛先MACアドレスに応じて仮想マシン111,112に振り分ける。また、仮想スイッチは、トンネルの端点の通信装置として機能し、トンネルを介して伝送するパケットを処理する。
【0037】
図5は、仮想マシンの他の配置例を示すブロック図である。サーバ装置100aには、サーバ装置100aがプログラムを実行することで、例えば、仮想マシン113(VM#3)、仮想マシン114(VM#4)、仮想マシン115(VM#0)およびハイパーバイザ122が実現される。また、サーバ装置100aは、通信部107aを有する。
【0038】
仮想マシン113,114は、前述の仮想マシン111,112と同様に、ユーザから要求された情報処理を行う。仮想マシン115は、ハイパーバイザ122経由で仮想マシン113,114から命令を受け付け、各種デバイスへのアクセスを行うデバイス制御用の仮想マシンである。ハイパーバイザ122は、仮想マシン113〜115にサーバ装置100aのハードウェア資源を割り振る。ハイパーバイザ122は、仮想マシン113,114と通信部107aの間でパケットを転送する仮想スイッチを有する。
【0039】
図6は、パケットのフォーマット例を示す図である。仮想マシン111〜114が出力するパケットには、宛先の仮想マシンのMACアドレス、送信元の仮想マシンのMACアドレス、および、ペイロードが含まれる(図6(A))。仮想スイッチでは、仮想マシンから出力されたパケットに、トンネルヘッダと、カプセル化用の宛先MACアドレスおよび送信元MACアドレスが付加される(図6(B))。カプセル化用の宛先MACアドレスと送信元MACアドレスの組は、トンネル毎に複数通り用意されている。
【0040】
ネットワーク20のトンネル区間には、マルチパスが形成される。例えば、スイッチ21,24,22を経由する経路と、スイッチ21,25,22を経由する経路が設定される。トンネル区間の経路は、カプセル化後の宛先MACアドレスと送信元MACアドレスに基づいて選択される。各スイッチでのマルチパス制御の方法としては、例えば、SPAIN(Smart Path Assignment In Networks)を用いることができる。SPAINでは、選択された経路を各スイッチが認識できるように、VLAN IDを使用する。SPAINについては、例えば、Jayaram Mudigonda, Praveen Yalagandula, Mohammad Al-Fares and Jeffrey C. Mogul, SPAIN: Design and Algorithms for Constructing Large Data-Center Ethernets from Commodity Switches, October 8, 2009に記載がある。
【0041】
仮想スイッチは、ネットワーク20に設定されている複数の経路の中から、カプセル化したパケットを伝送する経路を選択し、選択した経路に対応するVLAN IDを更に付加する。例えば、トンネルヘッダとカプセル化用の宛先MACアドレスおよび送信元MACアドレスとの間に、VLAN IDが挿入される(図6(C))。トンネル区間の各スイッチは、例えば、VLAN IDと経路の対応情報を有し、VLAN IDとカプセル化後の宛先MACアドレスに基づいてパケットの転送先を制御する。
【0042】
ただし、VLAN IDを用いる方法は、マルチパス制御の一例であり、選択された経路でパケットを伝送できれば他の方法を用いてもよい。また、経路選択は、サーバ装置100,100aで行わずに、ネットワーク20で行ってもよい。その場合、スイッチ21,22は、カプセル化後の宛先MACアドレスと送信元MACアドレスに基づいて、カプセル化されたパケットを伝送する経路を選択する。そして、例えば、選択した経路に対応するVLAN IDを当該パケットに挿入して、他のスイッチに転送する。
【0043】
図7は、サーバ装置の仮想スイッチを示すブロック図である。仮想スイッチ130は、サーバ装置100のハイパーバイザ121に含まれる。サーバ装置100aのハイパーバイザ122に含まれる仮想スイッチも、仮想スイッチ130と同様の構成によって実現できる。仮想スイッチ130は、VMパケット処理部131、トンネル処理部132、輻輳制御部133、仮想アドレス制御部134、伝送パケット処理部135および経路制御部136を有する。
【0044】
VMパケット処理部131は、仮想マシン111,112から出力されたパケットを取得し、トンネル処理部132に出力する。また、VMパケット処理部131は、仮想マシン111,112に付与されたMACアドレスを示す情報を保持している。トンネル処理部132からカプセル化が解除されたパケットを取得すると、パケットの宛先MACアドレスが示す仮想マシンに当該パケットを出力する。
【0045】
トンネル処理部132は、トンネルを介して伝送されるパケットのカプセル化およびカプセル化の解除を行う。トンネル処理部132は、VMパケット処理部131からパケットを取得し、パケットのカプセル化に用いる宛先MACアドレスと送信元MACアドレスを仮想アドレス制御部134に問い合わせる。そして、仮想アドレス制御部134で選択されたMACアドレスを用いてカプセル化し、伝送パケット処理部135に出力する。また、トンネル処理部132は、伝送パケット処理部135からカプセル化されたパケットを取得し、トンネルヘッダを除去してVMパケット処理部131に出力する。カプセル化の解除の際には、元のMACアドレスとカプセル化後のMACアドレスの対応関係を仮想アドレス制御部134に通知する。
【0046】
輻輳制御部133は、伝送パケット処理部135から輻輳制御パケットを取得する。輻輳制御パケットは、輻輳を検出したスイッチが送信する制御パケットである。輻輳制御パケットには、輻輳により破棄されたパケットの宛先MACアドレスや送信元MACアドレス(カプセル化後のMACアドレス)が含まれている。輻輳制御部133は、輻輳制御パケットに含まれるMACアドレスを抽出して仮想アドレス制御部134に通知する。
【0047】
仮想アドレス制御部134は、仮想アドレステーブル141とフロー管理テーブル142を用いて、トンネルヘッダに付加する宛先MACアドレス(仮想宛先アドレス)と送信元MACアドレス(仮想送信元アドレス)を管理する。仮想アドレス制御部134は、パケットの送信時、元のパケットのMACアドレスに応じて、カプセル化に用いるMACアドレスを選択する。仮想アドレス制御部134は、パケットの受信時、受信したパケットの元のMACアドレスとカプセル化に用いられているMACアドレスの対応を確認し、両者の対応付けを更新することがある。また、輻輳制御パケットが受信されると、輻輳している経路が選択されないように、カプセル化に用いるMACアドレスを制限する。
【0048】
伝送パケット処理部135は、トンネル処理部132からカプセル化されたパケットを取得し、経路制御部136に当該パケットを伝送する経路を問い合わせる。そして、経路制御部136で選択されたVLAN IDをトンネルヘッダに付加して、通信部107に出力する。また、伝送パケット処理部135は、通信部107からカプセル化されたパケットを取得し、トンネルヘッダからVLAN IDを除去して、トンネル処理部132に出力する。また、輻輳制御パケットを取得すると、輻輳制御部133に出力する。
【0049】
経路制御部136は、経路テーブル143を用いて、パケットの送信経路を制御する。経路制御部136は、パケットの送信時、伝送パケット処理部135が取得したパケット(カプセル化されたパケット)の宛先MACアドレスと送信元MACアドレスに対応する経路を選択し、経路を示すVLAN IDを選択する。
【0050】
仮想アドレステーブル141、フロー管理テーブル142および経路テーブル143は、RAM102やHDD103などの記憶装置に記憶される。仮想アドレステーブル141は、カプセル化に使用可能な宛先MACアドレスと送信元MACアドレスの組を示す。フロー管理テーブル142は、カプセル化前のMACアドレスとカプセル化後のMACアドレスとの対応関係を示す。経路テーブル143は、カプセル化後のMACアドレスと経路を識別するためのVLAN IDとの対応関係を示す。
【0051】
なお、経路選択をサーバ装置100で行わずにネットワーク20で行う場合、仮想スイッチ130は、経路制御部136および経路テーブル143を有しなくてもよい。その場合、例えば、スイッチ21が、経路制御部136に相当する機能と経路テーブル143に相当するデータを有していればよい。
【0052】
また、仮想アドレステーブル141、フロー管理テーブル142および経路テーブル143を記憶する記憶装置は、第1の実施の形態の記憶部11の一例である。トンネル処理部132、輻輳制御部133、仮想アドレス制御部134および経路制御部136は、第1の実施の形態の制御部12の一例である。伝送パケット処理部135および通信部107は、第1の実施の形態の送信部13の一例である。
【0053】
図8は、仮想アドレステーブルの例を示す図である。仮想アドレステーブル141は、仮想スイッチ130がアクセス可能な記憶領域に格納される。仮想アドレステーブル141は、経路ID、送信元アドレス、宛先アドレスおよび輻輳フラグを示す項目を含む。
【0054】
経路IDは、仮想宛先アドレスと仮想送信元アドレスの組を識別するための識別情報である。アドレス組がネットワーク20の経路と1対1に対応している場合、経路IDは経路を示す。送信元アドレスは、トンネルの送信側の端点であるサーバ装置100に設定された仮想アドレス(仮想送信元アドレス)である。宛先アドレスは、トンネルの受信側の端点であるサーバ装置100aに設定された仮想アドレス(仮想宛先アドレス)である。経路ID、送信元アドレスおよび宛先アドレスは、例えば、管理者が予め設定しておく。輻輳フラグは、アドレス組に対応する経路で輻輳が発生しているか否かを示す。輻輳フラグは、仮想アドレス制御部134によって更新される。
【0055】
例えば、サーバ装置100に仮想アドレスとしてアドレスg,hが設定される。アドレスg,hの何れか1つがサーバ装置100の物理MACアドレスであってもよいし、全て物理MACアドレスと異なってもよい。また、サーバ装置100aに仮想アドレスとしてアドレスe,fが設定される。アドレスe,fの何れか1つがサーバ装置100aの物理MACアドレスであってもよいし、全て物理MACアドレスと異なってもよい。そして、仮想宛先アドレスと仮想送信元アドレスの組として、例えば、(e,g)と(f,h)が定義される。仮想宛先アドレスと仮想送信元アドレスの少なくとも一方が異なれば、異なるアドレス組と認識される。なお、サーバ装置100aが有する仮想アドレステーブルには、送信元と宛先が仮想アドレステーブル141とは逆に登録される。
【0056】
図9は、フロー管理テーブルの例を示す図である。フロー管理テーブル142は、仮想スイッチ130がアクセス可能な記憶領域に格納される。フロー管理テーブル142は、フローID、送信元アドレス、宛先アドレスおよび経路IDを示す項目を含む。
【0057】
フローIDは、宛先MACアドレスと送信元MACアドレスの組を識別するための識別情報であり、パケットのフローに対応する。送信元アドレスは、パケットの送信元の仮想マシンに付与されたMACアドレスである。宛先アドレスは、パケットの宛先の仮想マシンに付与されたMACアドレスである。サーバ装置100aが有するフロー管理テーブルには、送信元と宛先がフロー管理テーブル142とは逆に登録される。経路IDは、仮想アドレステーブル141の中から選択された仮想アドレスの組を示す。フロー管理テーブル142は、仮想アドレス制御部134によって更新される。
【0058】
仮想マシンのMACアドレスの組1つに対して、仮想アドレスの組1つが対応付けられる。仮想アドレスの組は、トンネル区間の経路の選択に用いられることから、パケットが複数の経路に分散するようにするため、できる限り均等に使用されることが好ましい。例えば、仮想アドレス制御部134は、新たな仮想マシンのMACアドレスの組が検出される毎に、ラウンドロビン方式で経路IDを選択する。仮想アドレスの組が2つ定義されている場合、2つの経路IDを交互に選択することが考えられる。なお、図9では、VM#1のMACアドレスをa、VM#2のMACアドレスをb、VM#3のMACアドレスをc、VM#4のMACアドレスをdと表記している。
【0059】
図10は、経路テーブルの例を示す図である。経路テーブル143は、仮想スイッチ130がアクセス可能な記憶領域に格納される。経路テーブル143は、VLAN ID、送信元アドレスおよび宛先アドレスの項目を含む。
【0060】
VLAN IDは、カプセル化されたパケットのトンネルヘッダに付加するVLAN IDである。VLAN IDは、スイッチ21〜26が、サーバ装置100で選択された経路を認識してパケットの転送先を制御するために用いられる。送信元アドレスは、トンネルヘッダに付加される仮想送信元アドレスである。宛先アドレスは、トンネルヘッダに付加される仮想宛先アドレスである。サーバ装置100aが有する経路テーブルには、送信元と宛先が経路テーブル143とは逆に登録される。経路テーブル143のVLAN IDと仮想アドレスの対応関係は、例えば、管理者が予め定義しておく。
【0061】
スイッチ21〜26には、VLAN IDとMACアドレスから転送先を判断するための転送情報が登録される。転送情報により、例えば、VLAN#1と宛先アドレスeが付されたパケットは、スイッチ21,24,22の順に転送され、VLAN#1と宛先アドレスgが付されたパケットは、その逆順に転送される(経路X)。また、VLAN#2と宛先アドレスfが付されたパケットは、スイッチ21,25,22の順に転送され、VLAN#2と宛先アドレスhが付されたパケットは、その逆順に転送される(経路Y)。
【0062】
なお、図8〜10のテーブル例では、ネットワーク20に設定した経路と仮想アドレスの組とが1対1に対応付けられている。経路と仮想アドレスの組とを1対1に対応付けることで、少数の仮想アドレスを効率的に使用してマルチパスを実現できる。ただし、仮想アドレスの組から経路を一意に特定できればよく、1つの経路に対して複数の仮想アドレスの組を対応付けてもよい。
【0063】
図11は、パケット送信処理を示すフローチャートである。サーバ装置100の仮想マシン111(VM#1)がサーバ装置100aの仮想マシン113(VM#3)宛てにパケットを送信する場合を想定して、図11に示す処理をステップ番号に沿って説明する。
【0064】
(ステップS11)VMパケット処理部131は、宛先MACアドレス=c,送信元MACアドレス=aのパケットをVM#3から取得する。
(ステップS12)トンネル処理部132は、VM#3が出力したパケットにトンネルヘッダを付加する。トンネルヘッダの内容は、用いるトンネリングプロトコルに従う。
【0065】
(ステップS13)仮想アドレス制御部134は、VM#3が出力したパケットのMACアドレスを確認し、フロー管理テーブル142に、宛先MACアドレス=c,送信元MACアドレス=aのフローが登録されているか判断する。登録されていない場合、処理をステップS14に進める。登録されている場合、処理をステップS15に進める。
【0066】
(ステップS14)仮想アドレス制御部134は、仮想アドレステーブル141から、ラウンドロビン方式などの方法によって経路IDを1つ選択する。そして、フロー管理テーブル142に、宛先MACアドレス=c,送信元MACアドレス=aと選択した経路IDを登録する。これにより、パケットのフローに対して仮想アドレスが割り当てられる。ただし、仮想アドレス制御部134は、仮想アドレステーブル141において輻輳フラグ=YESが対応付けられている経路IDは、選択しないようにする。
【0067】
(ステップS15)仮想アドレス制御部134は、宛先MACアドレス=c,送信元MACアドレス=aに割り当てられた仮想アドレスの組(仮想宛先アドレス=e,仮想送信元アドレス=g)を、仮想アドレステーブル141から選択する。トンネル処理部132は、選択された仮想アドレスの組をトンネルヘッダに付加する。
【0068】
(ステップS16)経路制御部136は、トンネル処理部132がカプセル化したパケットのMACアドレスを確認し、仮想宛先アドレス=e,仮想送信元アドレス=gに対応するVLAN ID(VLAN#1)を経路テーブル143から選択する。これにより、カプセル化されたパケットを伝送する経路が選択される。
【0069】
(ステップS17)伝送パケット処理部135は、経路制御部136が選択したVLAN IDをトンネルヘッダに付加する。
(ステップS18)伝送パケット処理部135は、カプセル化されたパケットを通信部107に出力する。通信部107は、伝送パケット処理部135が出力したパケットを、スイッチ21に送信する。これにより、カプセル化されたパケットが、スイッチ21,24,22を経由してサーバ装置100aに伝送される。
【0070】
図12は、パケット受信処理を示すフローチャートである。以下、サーバ装置100のVM#1がサーバ装置100aのVM#3からパケットを受信する場合を想定して、図12に示す処理をステップ番号に沿って説明する。
【0071】
(ステップS21)伝送パケット処理部135は、カプセル化されたパケットを通信部107から取得する。VM#3からVM#1へのパケットの場合、通信部107から取得するパケットには、仮想宛先アドレス=g,仮想送信元アドレス=e,VLAN#1,宛先MACアドレス=a,送信元MACアドレス=cがパケットに付加されている。
【0072】
(ステップS22)伝送パケット処理部135は、通信部107から取得したパケットが輻輳制御パケットであるか否か判断する。輻輳制御パケットであるか否かは、例えば、ヘッダ情報に基づいて判断される。輻輳制御パケットでない場合、処理をステップS23に進める。輻輳制御パケットの場合、処理をステップS27に進める。
【0073】
(ステップS23)伝送パケット処理部135は、VLAN ID(VLAN#1)をパケットから除去する。トンネル処理部132は、仮想宛先アドレス=g,仮想送信元アドレス=eおよびトンネルヘッダをパケットから除去する。
【0074】
(ステップS24)仮想アドレス制御部134は、仮想宛先アドレス=e,仮想送信元アドレス=g(受信パケットの送信元と宛先を逆にしたもの)に対応する輻輳フラグを、仮想アドレステーブル141を参照し確認する。また、宛先MACアドレス=c,送信元MACアドレス=a(受信パケットの送信元と宛先を逆にしたもの)に割り当てられている仮想アドレスの組がパケットに付加されていた仮想アドレスの組と一致するか、フロー管理テーブル142を参照し確認する。そして、仮想アドレス制御部134は、輻輳フラグがNOであり且つ仮想アドレスの組が変化したか判断する。条件を満たす場合、処理をステップS25に進める。条件を満たさない場合、処理をステップS26に進める。
【0075】
(ステップS25)仮想アドレス制御部134は、フロー管理テーブル142の経路IDを更新して、宛先MACアドレス=c,送信元MACアドレス=aに割り当てる仮想アドレスの組を、受信パケットに付加されていた仮想宛先アドレスと仮想送信元アドレスを逆にしたものに変更する。なお、宛先MACアドレス=c,送信元MACアドレス=aに対して仮想アドレスが未だ割り当てられていない場合、経路IDを新規に登録する。
【0076】
(ステップS26)VMパケット処理部131は、宛先MACアドレス=aをもつVM#1に、カプセル化が解除されたパケットを出力する。そして、処理が終了する。
(ステップS27)輻輳制御部133は、輻輳により破棄されたパケットのMACアドレス(トンネルヘッダに付加された仮想アドレス)の組を、輻輳制御パケットから抽出する。仮想アドレス制御部134は、仮想アドレステーブル141において、抽出された仮想アドレスの組に対応する輻輳フラグをYESに変更する。また、フロー管理テーブル142から、輻輳フラグ=YESになった経路IDが対応付けられているMACアドレスの組を検索し、当該MACアドレスの組に割り当てた経路IDを他の経路IDに変更する。
【0077】
次に、サーバ装置100とサーバ装置100aの間にトンネルが形成された後、VM#1〜#4がパケットをカプセル化して送信する流れの例を説明する。最初は、サーバ装置100が有するフロー管理テーブル142とサーバ装置100aが有するフロー管理テーブル142aとが空であるものとする。
【0078】
図13は、パケット通信の手順例を示す第1の図である。まず、VM#1がVM#3にパケットを送信する場合を考える。フロー管理テーブル142には、宛先MACアドレス=c,送信元MACアドレス=aが登録されていない。そこで、サーバ装置100は、当該MACアドレスの組に対して、仮想宛先アドレス=e,仮想送信元アドレス=gを割り当て、フロー管理テーブル142を更新する。そして、割り当てた仮想アドレスの組を用いてパケットをカプセル化し、当該仮想アドレスの組に対応する経路Xを示すVLAN#1をパケットに付加する。これにより、サーバ装置100が出力したパケットは、スイッチ21,24,22を経由して(経路Xで)サーバ装置100aに到着する。
【0079】
図14は、パケット通信の手順例を示す第2の図である。図13に示したパケットをサーバ装置100aが受信した場合を考える。フロー管理テーブル142aには、宛先MACアドレス=a,送信元MACアドレス=c(受信パケットの送信元と宛先を逆にしたもの)が登録されていない。そこで、サーバ装置100aは、当該MACアドレスの組に対して、仮想宛先アドレス=g,仮想送信元アドレス=e(受信パケットの送信元と宛先を逆にしたもの)を割り当て、フロー管理テーブル142aを更新する。
【0080】
次に、VM#3がVM#1にパケットを送信する場合を考える。フロー管理テーブル142aには、宛先MACアドレス=a,送信元MACアドレス=cが登録されている。そこで、サーバ装置100aは、当該MACアドレスの組に割り当てられた仮想宛先アドレス=g,仮想送信元アドレス=eを選択する。そして、選択した仮想アドレスの組を用いてパケットをカプセル化し、当該仮想アドレスの組に対応する経路Xを示すVLAN#1をパケットに付加する。これにより、サーバ装置100aが出力したパケットは、スイッチ22,24,21を経由して(経路Xで)サーバ装置100に到着する。
【0081】
次に、上記パケットをVM#1がVM#3から受信する場合を考える。フロー管理テーブル142には、宛先MACアドレス=c,送信元MACアドレス=a(受信パケットの送信元と宛先を逆にしたもの)が登録されている。また、当該MACアドレスの組に割り当てられている仮想アドレスの組が、受信パケットの送信元と宛先を逆にしたものに一致する。そこで、サーバ装置100は、フロー管理テーブル142を更新しない。
【0082】
図15は、パケット通信の手順例を示す第3の図である。次に、VM#4がVM#1にパケットを送信する場合を考える。フロー管理テーブル142aには、宛先MACアドレス=a,送信元MACアドレス=dが登録されていない。そこで、サーバ装置100aは、当該MACアドレスの組に対して、仮想宛先アドレス=h,仮想送信元アドレス=fを割り当て、フロー管理テーブル142aを更新する。そして、割り当てた仮想アドレスの組を用いてカプセル化し、当該仮想アドレスの組に対応する経路Yを示すVLAN#2をパケットに付加する。これにより、サーバ装置100aが出力したパケットは、スイッチ22,25,21を経由して(経路Yで)サーバ装置100に到着する。なお、フロー管理テーブル142aの1番目のエントリで経路Xが選択されているため、ラウンドロビン方式により、2番目のエントリでは経路Yが選択されている。
【0083】
次に、上記パケットをVM#1がVM#4から受信する場合を考える。フロー管理テーブル142には、宛先MACアドレス=d,送信元MACアドレス=a(受信パケットの送信元と宛先を逆にしたもの)が登録されていない。そこで、サーバ装置100は、当該MACアドレスの組に対して、仮想宛先アドレス=f,仮想送信元アドレス=h(受信パケットの送信元と宛先を逆にしたもの)を割り当て、フロー管理テーブル142を更新する。これにより、フロー管理テーブル142,142aに登録された情報が対称となる。
【0084】
図16は、パケット通信の手順例を示す第4の図である。次に、スイッチ21からスイッチ24へパケットを転送するリンクの輻輳が発生し、VM#1からVM#3へのパケットがスイッチ21で破棄された場合を考える。スイッチ21は、輻輳を検出すると、破棄されたパケットの送信元であるサーバ装置100に、仮想宛先アドレス=e,仮想送信元アドレス=gを含む輻輳制御パケットを送信する。輻輳を検出し通知する方法としては、例えば、IEEE (Institute of Electrical and Electronics Engineers) Standard 802.1Qau - 2010, 23 April, 2010に記載された方法を用いることができる。
【0085】
サーバ装置100は、輻輳制御パケットを受信すると、輻輳が発生している経路Xに対応する仮想宛先アドレス=e,仮想送信元アドレス=gを、輻輳フラグ=YESを設定することで使用禁止にする。そして、フロー管理テーブル142に登録されている経路IDを変更し、経路Xに代えて経路Yが選択されるようにする。これにより、VM#1がVM#3に送信するパケットや、VM#1がVM#4に送信するパケットは、スイッチ21,25,22を介して(経路Yで)伝送される。
【0086】
次に、VM#1がVM#3からパケットを受信する場合を考える。フロー管理テーブル142には、宛先MACアドレス=c,送信元MACアドレス=a(受信パケットの送信元と宛先を逆にしたもの)が登録されている。ここで、当該MACアドレスの組に割り当てられている仮想アドレスの組は、受信パケットの送信元と宛先を逆にしたものとは一致しない。しかし、仮想宛先アドレス=e,仮想送信元アドレス=g(受信パケットの送信元と宛先を逆にしたもの)には、輻輳フラグ=YESが設定されている。そこで、サーバ装置100は、輻輳が発生したことに伴う経路変更が不一致の原因であると判断し、フロー管理テーブル142を更新しない。
【0087】
図17は、パケット通信の手順例を示す第5の図である。次に、VM#2がVM#3にパケットを送信する場合を考える。フロー管理テーブル142には、宛先MACアドレス=c,送信元MACアドレス=bが登録されていない。そこで、サーバ装置100は、当該MACアドレスの組に対して、仮想宛先アドレス=f,仮想送信元アドレス=hを割り当て、フロー管理テーブル142を更新する。そして、割り当てた仮想アドレスの組を用いてパケットをカプセル化し、当該仮想アドレスの組に対応する経路Yを示すVLAN#2をパケットに付加する。これにより、サーバ装置100が出力したパケットは、スイッチ21,25,22を経由して(経路Yで)サーバ装置100aに到着する。
【0088】
なお、フロー管理テーブル142の2番目のエントリで経路Yが選択されている一方、経路Xの選択は禁止されている。そこで、ラウンドロビン方式の場合でも、経路Xがスキップされ、2番目のエントリに続いて3番目のエントリでも経路Yが選択される。
【0089】
第2の実施の形態の通信システムによれば、トンネルの両端にそれぞれ複数の仮想アドレスが設定され、カプセル化に使用可能な仮想宛先アドレスと仮想送信元アドレスの組が複数通り用意される。このため、仮想宛先アドレスや仮想送信元アドレスに基づいて、トンネル区間に設定した複数の経路にフローを分散させることが可能となる。よって、複数の経路を利用して、カプセル化されたパケットを効率的に伝送することができる。また、ネットワーク20で輻輳が発生したときは、輻輳状況に応じて選択される経路を変更することができ、経路選択が柔軟に行われる。
【0090】
なお、前述の通り、第2の実施の形態の通信方法は、コンピュータとしての機能を有するサーバ装置100,100aに、通信制御プログラムを実行させることで実現できる。通信制御プログラムは、コンピュータ読み取り可能な記録媒体(例えば、記録媒体33)に記録しておくことができる。記録媒体として、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、HDDおよびFDが含まれる。光ディスクには、CD、CD−R(Recordable)/RW(Rewritable)、DVDおよびDVD−R/RWが含まれる。
【0091】
プログラムを流通させる場合、例えば、当該プログラムを記録した可搬記録媒体が提供される。また、プログラムを他のコンピュータの記憶装置に格納しておき、ネットワーク20経由で当該プログラムを配布することもできる。サーバ装置100,100aは、例えば、可搬記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを、HDD103などの記憶装置に格納し、記憶装置からプログラムを読み込んで実行する。ただし、可搬型記録媒体から読み込んだプログラムを直接実行してもよく、他のコンピュータから受信したプログラムを直接実行してもよい。
【符号の説明】
【0092】
10 情報処理装置
11 記憶部
11a アドレス情報
11b 経路情報
12 制御部
13 送信部
14 トンネル
【技術分野】
【0001】
本発明は通信制御プログラム、情報処理装置およびパケット通信方法に関する。
【背景技術】
【0002】
現在、物理的なネットワーク上に複数の論理的なネットワークを形成するネットワークの仮想化技術が利用されている。ネットワークの仮想化を行うことで、通信装置間の物理的な配線を変更しなくても、ユーザ毎にパケットの到達範囲を変更することができる。例えば、複数のユーザが利用するデータセンタのレイヤ2ネットワークにおいて、パケットがユーザ毎に論理的に分離されるように仮想化技術を用いることが考えられる。
【0003】
ネットワークの仮想化を実現する方式の1つとして、通信装置の間にトンネルを形成するトンネル方式がある。トンネル区間内では、トンネルヘッダが付加されてカプセル化されたパケットが伝送される。トンネルを通過するパケットは、トンネルの一方の端点(ヘッドポイント)でカプセル化され、他方の端点でカプセル化が解除される。トンネル区間内でのパケット伝送のため、例えば、カプセル化されたパケットには、トンネルの両端の通信装置のアドレスが送信元アドレスおよび宛先アドレスとして付加されている。
【0004】
ところで、ネットワークには、経路が冗長化されて、パケットの送信元と宛先との間に複数の物理的な経路が存在するものもある。経路が冗長化されている場合の経路制御技術としては、STP(Spanning Tree Protocol)やマルチパス技術がある。STPでは、ネットワーク内に存在するループが検出され、論理的にループが解消されるように通信装置間のリンクの一部を使用禁止にする。一方、マルチパス技術では、複数の経路を利用してパケットを分散して伝送する。例えば、パケットに付加された送信元アドレスや宛先アドレスなどに基づいて、当該パケットを伝送する経路を選択することが考えられる。マルチパス技術を用いることで、通信装置間のリンクの使用効率を向上させることができる。
【0005】
なお、マルチパス技術に関し、1つの宛先アドレスに対して複数の経路を登録したマルチパスルーティングテーブルを備え、マルチパスルーティングテーブルに従って、受信したパケットを出力するインタフェースを選択するパケット中継装置が提案されている。また、パケットの送信元アドレスをアプリケーションの種別に応じた仮想IP(Internet Protocol)アドレスに変換し、複数の経路が設定されたIPネットワークに出力することで、復路も往路と同じ経路になるよう制御可能なパケット中継装置が提案されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2006−165952号公報
【特許文献2】特開2001−160825号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
パケットを伝送するネットワーク(例えば、レイヤ2ネットワーク)に、トンネル方式によるネットワークの仮想化とマルチパス技術の両方を適用することを考える。しかし、その場合に、トンネルの両端の通信装置の物理アドレスを用いてパケットがカプセル化されてしまうと、トンネル区間内では経路制御について、カプセル化前の元の送信元アドレスや宛先アドレスの違い(フローの違い)が認識されなくなってしまう。よって、トンネル区間内に複数の経路を設定しても、カプセル化されたパケットを複数の経路に分散して伝送することが難しく、伝送効率が低下するという問題がある。
【0008】
1つの側面では、本発明は、複数の経路を用いてパケットを送信できるようにする通信制御プログラム、情報処理装置およびパケット通信方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
トンネルが形成されトンネルの区間内に複数の経路が設定されたネットワークを介して送信されるパケットを処理する通信制御プログラムが提供される。通信制御プログラムを実行するコンピュータが、トンネルの1つの端点に設定された第1の送信元アドレスと他の端点に設定された第1の宛先アドレスとを含み、第1の送信元アドレスと第1の宛先アドレスの少なくとも一方が複数設定されたアドレス情報を記憶する記憶部を備える。当該コンピュータが、第2の送信元アドレスと第2の宛先アドレスとを含む第1のパケットを取得し、アドレス情報の中から、第2の送信元アドレスと第2の宛先アドレスとに応じた第1の送信元アドレスと第1の宛先アドレスとを選択する。当該コンピュータが、第1のパケットのトンネルヘッダに、選択した第1の送信元アドレスと第1の宛先アドレスとを付加して、カプセル化した第2のパケットを生成する。
【0010】
また、トンネルが形成されトンネルの区間内に複数の経路が設定されたネットワークを介して送信されるパケットを処理する情報処理装置が提供される。情報処理装置は、記憶部と制御部と送信部とを有する。記憶部は、トンネルの1つの端点に設定された第1の送信元アドレスと他の端点に設定された第1の宛先アドレスとを含み、第1の送信元アドレスと第1の宛先アドレスの少なくとも一方が複数設定されたアドレス情報を記憶する。制御部は、第2の送信元アドレスと第2の宛先アドレスとを含む第1のパケットを取得し、アドレス情報の中から、第2の送信元アドレスと第2の宛先アドレスとに応じた第1の送信元アドレスと第1の宛先アドレスとを選択する。送信部は、第1のパケットのトンネルヘッダに、選択した第1の送信元アドレスと第1の宛先アドレスとを付加した、カプセル化された第2のパケットを送信する。
【0011】
また、トンネルが形成され前記トンネルの区間内に複数の経路が設定されたネットワークを介して送信されるパケットを処理するパケット通信方法が提供される。
【発明の効果】
【0012】
上記通信制御プログラム、情報処理装置およびパケット通信方法によれば、複数の経路を用いてパケットを送信できるようになる。
【図面の簡単な説明】
【0013】
【図1】第1の実施の形態の情報処理装置を示す図である。
【図2】第2の実施の形態の通信システムを示す図である。
【図3】サーバ装置のハードウェア例を示すブロック図である。
【図4】仮想マシンの配置例を示すブロック図である。
【図5】仮想マシンの他の配置例を示すブロック図である。
【図6】パケットのフォーマット例を示す図である。
【図7】サーバ装置の仮想スイッチを示すブロック図である。
【図8】仮想アドレステーブルの例を示す図である。
【図9】フロー管理テーブルの例を示す図である。
【図10】経路テーブルの例を示す図である。
【図11】パケット送信処理を示すフローチャートである。
【図12】パケット受信処理を示すフローチャートである。
【図13】パケット通信の手順例を示す第1の図である。
【図14】パケット通信の手順例を示す第2の図である。
【図15】パケット通信の手順例を示す第3の図である。
【図16】パケット通信の手順例を示す第4の図である。
【図17】パケット通信の手順例を示す第5の図である。
【発明を実施するための形態】
【0014】
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理装置を示す図である。第1の実施の形態の情報処理装置10は、トンネル14が形成されトンネル14の区間内に複数の経路(例えば、経路#1,#2)が設定されたネットワークを介して送信されるパケットを処理する。情報処理装置10は、記憶部11、制御部12および送信部13を有する。
【0015】
記憶部11は、アドレス情報11aを記憶する。アドレス情報11aは、トンネル14の1つの端点に設定されたアドレス(第1の送信元アドレス)と、他の端点に設定されたアドレス(第1の宛先アドレス)を含む。トンネル14の少なくとも一方の端点に、複数のアドレス(好ましくは、複数の第1の宛先アドレス)が設定される。例えば、1つの端点にアドレスhが設定され、他の端点にアドレスe,fが設定される。なお、アドレス情報11aが示すアドレスの中には、トンネル14の端点の通信装置の物理アドレスが含まれてもよい。例えば、アドレスe,fの何れか一方が、物理アドレスであってもよい。また、アドレス情報11aが示すアドレスは、全て仮想アドレスであってもよい。
【0016】
制御部12は、送信元アドレス(第2の送信元アドレス)と宛先アドレス(第2の宛先アドレス)を含むパケットを取得する。制御部12は、取得したパケットの送信元アドレスと宛先アドレスに応じて、記憶部11に記憶されたアドレス情報11aの中から、カプセル化に用いる送信元アドレスと宛先アドレスを選択する。例えば、制御部12は、元のパケットの送信元アドレスと宛先アドレスの組が同じであれば、カプセル化に用いる送信元アドレスと宛先アドレスの組が同じになるよう制御する。未知のアドレス組をもつパケットが到着したときは、使用頻度が平均化されるように(例えば、ラウンドロビン方式により)、カプセル化に用いるアドレス組を選択する。
【0017】
送信部13は、トンネル14の区間内で伝送されるカプセル化されたパケットをネットワークに出力する。カプセル化されたパケットは、取得された元のパケットに、トンネルヘッダや制御部12で選択された送信元アドレスおよび宛先アドレスが付加されたものである。トンネル14の区間内でのパケットの伝送経路は、トンネルヘッダに対して付加された(制御部12で選択された)送信元アドレスと宛先アドレスに基づいて選択される。例えば、アドレス組(a,c)をもつパケットが、アドレス組(h,e)を用いてカプセル化されて、経路#1で伝送される。また、アドレス組(a,d)をもつパケットが、アドレス組(h,f)を用いてカプセル化され、経路#2で伝送される。
【0018】
カプセル化したパケットの伝送経路は、情報処理装置10が選択してもよいし、ネットワークの通信装置(例えば、スイッチ)が選択してもよい。前者の場合、記憶部11は、カプセル化に用いる送信元アドレスおよび宛先アドレスと、トンネル14の区間内の経路を識別するための識別情報とを対応付けた経路情報11bを記憶する。制御部12は、記憶部11に記憶された経路情報11bを参照して、カプセル化後の送信元アドレスと宛先アドレスの組に応じた経路で伝送されるよう、パケットの送信を制御する。例えば、制御部12は、経路情報11bの示す識別情報がトンネルヘッダに付加されるよう制御する。なお、トンネル14の区間内の通信装置は、トンネルヘッダに付加された宛先アドレスや識別情報などに応じた経路でパケットを転送するよう設定されている。
【0019】
また、制御部12は、トンネル14の区間内の輻輳状況を考慮して、カプセル化に用いる送信元アドレスと宛先アドレスを選択するようにしてもよい。例えば、制御部12は、ネットワークの通信装置から、輻輳が検出された経路についての輻輳情報を取得する。輻輳情報には、例えば、輻輳している経路で伝送しようとしたパケットの送信元アドレスと宛先アドレス(カプセル化後の送信元アドレスと宛先アドレス)が含まれる。制御部12は、取得した輻輳情報に基づいて、アドレス情報11aが示すアドレス組のうちカプセル化のために選択可能なアドレス組を制限する。例えば、輻輳情報が示す送信元アドレスと宛先アドレスの組を、選択可能なアドレス組から除外する。
【0020】
なお、トンネル方式でネットワークの仮想化を行うことで、VLAN(Virtual Local Area Network)方式より高いスケーラビリティを得ることができる。トンネル14を形成する方法として、レイヤ2トンネリングやレイヤ3トンネリングなどを用いることができる。トンネリング技術には、GRE(Generic Routing Encapsulation)やIPoverIPなどが含まれる。情報処理装置10は、トンネル14の一方の端点に位置する通信装置として機能してもよい。また、情報処理装置10は、記憶部11を備えるコンピュータに、所定の通信制御プログラムを実行させることで実現してもよい。上記のパケットは、フレームなど他の名称で呼ばれる送信単位も含み、上記の送信元アドレスや宛先アドレスは、MAC(Medium Access Control)アドレスであってもよい。
【0021】
第1の実施の形態の情報処理装置10によれば、第2の送信元アドレスと第2の宛先アドレスとを含む第1のパケットが取得され、アドレス情報11aの中から、第2の送信元アドレスと第2の宛先アドレスとに応じた第1の送信元アドレスと第1の宛先アドレスとが選択される。第1のパケットのトンネルヘッダに、選択された第1の送信元アドレスと第1の宛先アドレスとが付加されて、カプセル化された第2のパケットが送信される。
【0022】
これにより、カプセル化に使用可能な送信元アドレスと宛先アドレスの組を複数用意することができる。このため、トンネル14の区間内でも、カプセル化後の送信元アドレスや宛先アドレスに基づいて、複数のフローを区別して認識することができる。よって、トンネル14の区間に設定した複数の経路に分散して、カプセル化されたパケットを送信することができ、カプセル化されたパケットを効率的に伝送することが可能となる。また、パケットの分散により、ネットワークでの輻輳の発生を抑制することができる。
【0023】
[第2の実施の形態]
図2は、第2の実施の形態の通信システムを示す図である。第2の実施の形態では、複数のサーバ装置で実行される仮想マシン(VM:Virtual Machine)がレイヤ2ネットワークを介して通信を行う通信システムを考える。第2の実施の形態の通信システムは、例えば、複数のユーザが利用するデータセンタに設けることができる。通信システムは、スイッチ21〜26を含むネットワーク20とサーバ装置100,100aとを有する。
【0024】
スイッチ21〜26は、パケットを転送する通信装置である。スイッチ21はサーバ装置100に接続され、スイッチ22はサーバ装置100aに接続されている。サーバ装置100とサーバ装置100aの間の経路には、スイッチ21,24、22を経由する経路と、スイッチ21,25,22を経由する経路とが含まれる。ネットワーク20上には、トンネル方式の仮想化により、ユーザ毎に論理的なネットワークを形成することができる。スイッチ21〜26は、トンネルヘッダが付加されたカプセル化されたパケットを転送できる。また、ネットワーク20上には、マルチパスを形成することができる。
【0025】
サーバ装置100,100aは、論理的なコンピュータである仮想マシンを複数実行可能な情報処理装置である。仮想マシンは、当該仮想マシンに割り当てられたハードウェア資源の範囲内で情報処理を行う。サーバ装置100,100aでは、仮想スイッチと呼ばれるソフトウェアが実行されている。仮想スイッチは、仮想マシンが出力したパケットをネットワーク20に送信し、ネットワーク20から受信したパケットを宛先アドレスに応じて仮想マシンに振り分ける。サーバ装置100上の仮想マシンとサーバ装置100a上の仮想マシンとが通信する場合、例えば、サーバ装置100,100aの間にトンネルを形成する。仮想スイッチは、トンネルの端点の通信装置としてトンネル通信を制御する。
【0026】
図3は、サーバ装置のハードウェア例を示すブロック図である。サーバ装置100は、CPU(Central Processing Unit)101、RAM(Random Access Memory)102、HDD(Hard Disk Drive)103、画像信号処理部104、入力信号処理部105、ディスクドライブ106および通信部107を有する。上記ユニットは、サーバ装置100内でバスに接続されている。なお、サーバ装置100aも、サーバ装置100と同様のハードウェアによって実現することができる。
【0027】
CPU101は、サーバ装置100における情報処理を制御する演算装置である。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部を読み出して、RAM102に展開してプログラムを実行する。なお、サーバ装置100は、複数のCPUを備えていてもよい。
【0028】
RAM102は、CPU101が扱うプログラムやデータを一時的に記憶する揮発性メモリである。なお、サーバ装置100は、複数のRAMを備えていてもよく、RAM以外の種類のメモリを備えていてもよい。
【0029】
HDD103は、OS(Operating System)プログラムやアプリケーションプログラムなどのプログラム、および、CPU101の処理に用いられるデータを記憶する不揮発性の記憶装置である。HDD103は、内蔵の磁気ディスクに対し読み書きを行う。なお、サーバ装置100は、複数のHDDを備えていてもよく、HDD以外の種類の不揮発性の記憶装置(例えば、SSD(Solid State Drive))を備えていてもよい。
【0030】
画像信号処理部104は、CPU101の命令に従って、サーバ装置100に接続されたディスプレイ31に画像を表示する。ディスプレイ31として、例えば、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイを用いることができる。
【0031】
入力信号処理部105は、サーバ装置100に接続された入力デバイス32から入力信号を取得し、CPU101に出力する。入力デバイス32として、例えば、マウスなどのポインティングデバイスや、キーボードを用いることができる。
【0032】
ディスクドライブ106は、記録媒体33に記録されたプログラムやデータを読み取る駆動装置である。記録媒体33として、例えば、フレキシブルディスク(FD:Flexible Disk)などの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を用いることができる。ディスクドライブ106は、例えば、CPU101の命令に従って、記録媒体33から読み取ったプログラムやデータをRAM102またはHDD103に出力する。
【0033】
通信部107は、ネットワーク20に接続して通信を行う通信インタフェースである。ネットワーク20への接続方法は、有線でも無線でもよい。すなわち、通信部107は、有線通信インタフェースでも無線通信インタフェースでもよい。
【0034】
図4は、仮想マシンの配置例を示すブロック図である。サーバ装置100には、サーバ装置100がプログラムを実行することで、例えば、仮想マシン111(VM#1)、仮想マシン112(VM#2)およびハイパーバイザ121が実現される。
【0035】
仮想マシン111,112は、ハイパーバイザ121から割り当てられたハードウェア資源(CPUの処理能力やRAMの記憶領域など)を用いて、ユーザから要求された情報処理を行う。仮想マシン毎にOSが実行される。仮想マシン111,112は、それぞれMACアドレスが付与されており、他の仮想マシンと通信することができる。ハイパーバイザ121は、仮想マシン111,112にサーバ装置100のハードウェア資源を割り振り、仮想マシン111,112の実行を管理する。
【0036】
ハイパーバイザ121は、仮想スイッチを有する。仮想スイッチは、サーバ装置100とネットワーク20の間の通信帯域を管理し、仮想マシン111,112と通信部107の間でパケットを処理する。前述の通り、仮想スイッチは、仮想マシン111,112から出力されたパケットを、通信部107を介してネットワーク20に送信する。また、通信部107を介してネットワーク20から受信したパケットを、宛先MACアドレスに応じて仮想マシン111,112に振り分ける。また、仮想スイッチは、トンネルの端点の通信装置として機能し、トンネルを介して伝送するパケットを処理する。
【0037】
図5は、仮想マシンの他の配置例を示すブロック図である。サーバ装置100aには、サーバ装置100aがプログラムを実行することで、例えば、仮想マシン113(VM#3)、仮想マシン114(VM#4)、仮想マシン115(VM#0)およびハイパーバイザ122が実現される。また、サーバ装置100aは、通信部107aを有する。
【0038】
仮想マシン113,114は、前述の仮想マシン111,112と同様に、ユーザから要求された情報処理を行う。仮想マシン115は、ハイパーバイザ122経由で仮想マシン113,114から命令を受け付け、各種デバイスへのアクセスを行うデバイス制御用の仮想マシンである。ハイパーバイザ122は、仮想マシン113〜115にサーバ装置100aのハードウェア資源を割り振る。ハイパーバイザ122は、仮想マシン113,114と通信部107aの間でパケットを転送する仮想スイッチを有する。
【0039】
図6は、パケットのフォーマット例を示す図である。仮想マシン111〜114が出力するパケットには、宛先の仮想マシンのMACアドレス、送信元の仮想マシンのMACアドレス、および、ペイロードが含まれる(図6(A))。仮想スイッチでは、仮想マシンから出力されたパケットに、トンネルヘッダと、カプセル化用の宛先MACアドレスおよび送信元MACアドレスが付加される(図6(B))。カプセル化用の宛先MACアドレスと送信元MACアドレスの組は、トンネル毎に複数通り用意されている。
【0040】
ネットワーク20のトンネル区間には、マルチパスが形成される。例えば、スイッチ21,24,22を経由する経路と、スイッチ21,25,22を経由する経路が設定される。トンネル区間の経路は、カプセル化後の宛先MACアドレスと送信元MACアドレスに基づいて選択される。各スイッチでのマルチパス制御の方法としては、例えば、SPAIN(Smart Path Assignment In Networks)を用いることができる。SPAINでは、選択された経路を各スイッチが認識できるように、VLAN IDを使用する。SPAINについては、例えば、Jayaram Mudigonda, Praveen Yalagandula, Mohammad Al-Fares and Jeffrey C. Mogul, SPAIN: Design and Algorithms for Constructing Large Data-Center Ethernets from Commodity Switches, October 8, 2009に記載がある。
【0041】
仮想スイッチは、ネットワーク20に設定されている複数の経路の中から、カプセル化したパケットを伝送する経路を選択し、選択した経路に対応するVLAN IDを更に付加する。例えば、トンネルヘッダとカプセル化用の宛先MACアドレスおよび送信元MACアドレスとの間に、VLAN IDが挿入される(図6(C))。トンネル区間の各スイッチは、例えば、VLAN IDと経路の対応情報を有し、VLAN IDとカプセル化後の宛先MACアドレスに基づいてパケットの転送先を制御する。
【0042】
ただし、VLAN IDを用いる方法は、マルチパス制御の一例であり、選択された経路でパケットを伝送できれば他の方法を用いてもよい。また、経路選択は、サーバ装置100,100aで行わずに、ネットワーク20で行ってもよい。その場合、スイッチ21,22は、カプセル化後の宛先MACアドレスと送信元MACアドレスに基づいて、カプセル化されたパケットを伝送する経路を選択する。そして、例えば、選択した経路に対応するVLAN IDを当該パケットに挿入して、他のスイッチに転送する。
【0043】
図7は、サーバ装置の仮想スイッチを示すブロック図である。仮想スイッチ130は、サーバ装置100のハイパーバイザ121に含まれる。サーバ装置100aのハイパーバイザ122に含まれる仮想スイッチも、仮想スイッチ130と同様の構成によって実現できる。仮想スイッチ130は、VMパケット処理部131、トンネル処理部132、輻輳制御部133、仮想アドレス制御部134、伝送パケット処理部135および経路制御部136を有する。
【0044】
VMパケット処理部131は、仮想マシン111,112から出力されたパケットを取得し、トンネル処理部132に出力する。また、VMパケット処理部131は、仮想マシン111,112に付与されたMACアドレスを示す情報を保持している。トンネル処理部132からカプセル化が解除されたパケットを取得すると、パケットの宛先MACアドレスが示す仮想マシンに当該パケットを出力する。
【0045】
トンネル処理部132は、トンネルを介して伝送されるパケットのカプセル化およびカプセル化の解除を行う。トンネル処理部132は、VMパケット処理部131からパケットを取得し、パケットのカプセル化に用いる宛先MACアドレスと送信元MACアドレスを仮想アドレス制御部134に問い合わせる。そして、仮想アドレス制御部134で選択されたMACアドレスを用いてカプセル化し、伝送パケット処理部135に出力する。また、トンネル処理部132は、伝送パケット処理部135からカプセル化されたパケットを取得し、トンネルヘッダを除去してVMパケット処理部131に出力する。カプセル化の解除の際には、元のMACアドレスとカプセル化後のMACアドレスの対応関係を仮想アドレス制御部134に通知する。
【0046】
輻輳制御部133は、伝送パケット処理部135から輻輳制御パケットを取得する。輻輳制御パケットは、輻輳を検出したスイッチが送信する制御パケットである。輻輳制御パケットには、輻輳により破棄されたパケットの宛先MACアドレスや送信元MACアドレス(カプセル化後のMACアドレス)が含まれている。輻輳制御部133は、輻輳制御パケットに含まれるMACアドレスを抽出して仮想アドレス制御部134に通知する。
【0047】
仮想アドレス制御部134は、仮想アドレステーブル141とフロー管理テーブル142を用いて、トンネルヘッダに付加する宛先MACアドレス(仮想宛先アドレス)と送信元MACアドレス(仮想送信元アドレス)を管理する。仮想アドレス制御部134は、パケットの送信時、元のパケットのMACアドレスに応じて、カプセル化に用いるMACアドレスを選択する。仮想アドレス制御部134は、パケットの受信時、受信したパケットの元のMACアドレスとカプセル化に用いられているMACアドレスの対応を確認し、両者の対応付けを更新することがある。また、輻輳制御パケットが受信されると、輻輳している経路が選択されないように、カプセル化に用いるMACアドレスを制限する。
【0048】
伝送パケット処理部135は、トンネル処理部132からカプセル化されたパケットを取得し、経路制御部136に当該パケットを伝送する経路を問い合わせる。そして、経路制御部136で選択されたVLAN IDをトンネルヘッダに付加して、通信部107に出力する。また、伝送パケット処理部135は、通信部107からカプセル化されたパケットを取得し、トンネルヘッダからVLAN IDを除去して、トンネル処理部132に出力する。また、輻輳制御パケットを取得すると、輻輳制御部133に出力する。
【0049】
経路制御部136は、経路テーブル143を用いて、パケットの送信経路を制御する。経路制御部136は、パケットの送信時、伝送パケット処理部135が取得したパケット(カプセル化されたパケット)の宛先MACアドレスと送信元MACアドレスに対応する経路を選択し、経路を示すVLAN IDを選択する。
【0050】
仮想アドレステーブル141、フロー管理テーブル142および経路テーブル143は、RAM102やHDD103などの記憶装置に記憶される。仮想アドレステーブル141は、カプセル化に使用可能な宛先MACアドレスと送信元MACアドレスの組を示す。フロー管理テーブル142は、カプセル化前のMACアドレスとカプセル化後のMACアドレスとの対応関係を示す。経路テーブル143は、カプセル化後のMACアドレスと経路を識別するためのVLAN IDとの対応関係を示す。
【0051】
なお、経路選択をサーバ装置100で行わずにネットワーク20で行う場合、仮想スイッチ130は、経路制御部136および経路テーブル143を有しなくてもよい。その場合、例えば、スイッチ21が、経路制御部136に相当する機能と経路テーブル143に相当するデータを有していればよい。
【0052】
また、仮想アドレステーブル141、フロー管理テーブル142および経路テーブル143を記憶する記憶装置は、第1の実施の形態の記憶部11の一例である。トンネル処理部132、輻輳制御部133、仮想アドレス制御部134および経路制御部136は、第1の実施の形態の制御部12の一例である。伝送パケット処理部135および通信部107は、第1の実施の形態の送信部13の一例である。
【0053】
図8は、仮想アドレステーブルの例を示す図である。仮想アドレステーブル141は、仮想スイッチ130がアクセス可能な記憶領域に格納される。仮想アドレステーブル141は、経路ID、送信元アドレス、宛先アドレスおよび輻輳フラグを示す項目を含む。
【0054】
経路IDは、仮想宛先アドレスと仮想送信元アドレスの組を識別するための識別情報である。アドレス組がネットワーク20の経路と1対1に対応している場合、経路IDは経路を示す。送信元アドレスは、トンネルの送信側の端点であるサーバ装置100に設定された仮想アドレス(仮想送信元アドレス)である。宛先アドレスは、トンネルの受信側の端点であるサーバ装置100aに設定された仮想アドレス(仮想宛先アドレス)である。経路ID、送信元アドレスおよび宛先アドレスは、例えば、管理者が予め設定しておく。輻輳フラグは、アドレス組に対応する経路で輻輳が発生しているか否かを示す。輻輳フラグは、仮想アドレス制御部134によって更新される。
【0055】
例えば、サーバ装置100に仮想アドレスとしてアドレスg,hが設定される。アドレスg,hの何れか1つがサーバ装置100の物理MACアドレスであってもよいし、全て物理MACアドレスと異なってもよい。また、サーバ装置100aに仮想アドレスとしてアドレスe,fが設定される。アドレスe,fの何れか1つがサーバ装置100aの物理MACアドレスであってもよいし、全て物理MACアドレスと異なってもよい。そして、仮想宛先アドレスと仮想送信元アドレスの組として、例えば、(e,g)と(f,h)が定義される。仮想宛先アドレスと仮想送信元アドレスの少なくとも一方が異なれば、異なるアドレス組と認識される。なお、サーバ装置100aが有する仮想アドレステーブルには、送信元と宛先が仮想アドレステーブル141とは逆に登録される。
【0056】
図9は、フロー管理テーブルの例を示す図である。フロー管理テーブル142は、仮想スイッチ130がアクセス可能な記憶領域に格納される。フロー管理テーブル142は、フローID、送信元アドレス、宛先アドレスおよび経路IDを示す項目を含む。
【0057】
フローIDは、宛先MACアドレスと送信元MACアドレスの組を識別するための識別情報であり、パケットのフローに対応する。送信元アドレスは、パケットの送信元の仮想マシンに付与されたMACアドレスである。宛先アドレスは、パケットの宛先の仮想マシンに付与されたMACアドレスである。サーバ装置100aが有するフロー管理テーブルには、送信元と宛先がフロー管理テーブル142とは逆に登録される。経路IDは、仮想アドレステーブル141の中から選択された仮想アドレスの組を示す。フロー管理テーブル142は、仮想アドレス制御部134によって更新される。
【0058】
仮想マシンのMACアドレスの組1つに対して、仮想アドレスの組1つが対応付けられる。仮想アドレスの組は、トンネル区間の経路の選択に用いられることから、パケットが複数の経路に分散するようにするため、できる限り均等に使用されることが好ましい。例えば、仮想アドレス制御部134は、新たな仮想マシンのMACアドレスの組が検出される毎に、ラウンドロビン方式で経路IDを選択する。仮想アドレスの組が2つ定義されている場合、2つの経路IDを交互に選択することが考えられる。なお、図9では、VM#1のMACアドレスをa、VM#2のMACアドレスをb、VM#3のMACアドレスをc、VM#4のMACアドレスをdと表記している。
【0059】
図10は、経路テーブルの例を示す図である。経路テーブル143は、仮想スイッチ130がアクセス可能な記憶領域に格納される。経路テーブル143は、VLAN ID、送信元アドレスおよび宛先アドレスの項目を含む。
【0060】
VLAN IDは、カプセル化されたパケットのトンネルヘッダに付加するVLAN IDである。VLAN IDは、スイッチ21〜26が、サーバ装置100で選択された経路を認識してパケットの転送先を制御するために用いられる。送信元アドレスは、トンネルヘッダに付加される仮想送信元アドレスである。宛先アドレスは、トンネルヘッダに付加される仮想宛先アドレスである。サーバ装置100aが有する経路テーブルには、送信元と宛先が経路テーブル143とは逆に登録される。経路テーブル143のVLAN IDと仮想アドレスの対応関係は、例えば、管理者が予め定義しておく。
【0061】
スイッチ21〜26には、VLAN IDとMACアドレスから転送先を判断するための転送情報が登録される。転送情報により、例えば、VLAN#1と宛先アドレスeが付されたパケットは、スイッチ21,24,22の順に転送され、VLAN#1と宛先アドレスgが付されたパケットは、その逆順に転送される(経路X)。また、VLAN#2と宛先アドレスfが付されたパケットは、スイッチ21,25,22の順に転送され、VLAN#2と宛先アドレスhが付されたパケットは、その逆順に転送される(経路Y)。
【0062】
なお、図8〜10のテーブル例では、ネットワーク20に設定した経路と仮想アドレスの組とが1対1に対応付けられている。経路と仮想アドレスの組とを1対1に対応付けることで、少数の仮想アドレスを効率的に使用してマルチパスを実現できる。ただし、仮想アドレスの組から経路を一意に特定できればよく、1つの経路に対して複数の仮想アドレスの組を対応付けてもよい。
【0063】
図11は、パケット送信処理を示すフローチャートである。サーバ装置100の仮想マシン111(VM#1)がサーバ装置100aの仮想マシン113(VM#3)宛てにパケットを送信する場合を想定して、図11に示す処理をステップ番号に沿って説明する。
【0064】
(ステップS11)VMパケット処理部131は、宛先MACアドレス=c,送信元MACアドレス=aのパケットをVM#3から取得する。
(ステップS12)トンネル処理部132は、VM#3が出力したパケットにトンネルヘッダを付加する。トンネルヘッダの内容は、用いるトンネリングプロトコルに従う。
【0065】
(ステップS13)仮想アドレス制御部134は、VM#3が出力したパケットのMACアドレスを確認し、フロー管理テーブル142に、宛先MACアドレス=c,送信元MACアドレス=aのフローが登録されているか判断する。登録されていない場合、処理をステップS14に進める。登録されている場合、処理をステップS15に進める。
【0066】
(ステップS14)仮想アドレス制御部134は、仮想アドレステーブル141から、ラウンドロビン方式などの方法によって経路IDを1つ選択する。そして、フロー管理テーブル142に、宛先MACアドレス=c,送信元MACアドレス=aと選択した経路IDを登録する。これにより、パケットのフローに対して仮想アドレスが割り当てられる。ただし、仮想アドレス制御部134は、仮想アドレステーブル141において輻輳フラグ=YESが対応付けられている経路IDは、選択しないようにする。
【0067】
(ステップS15)仮想アドレス制御部134は、宛先MACアドレス=c,送信元MACアドレス=aに割り当てられた仮想アドレスの組(仮想宛先アドレス=e,仮想送信元アドレス=g)を、仮想アドレステーブル141から選択する。トンネル処理部132は、選択された仮想アドレスの組をトンネルヘッダに付加する。
【0068】
(ステップS16)経路制御部136は、トンネル処理部132がカプセル化したパケットのMACアドレスを確認し、仮想宛先アドレス=e,仮想送信元アドレス=gに対応するVLAN ID(VLAN#1)を経路テーブル143から選択する。これにより、カプセル化されたパケットを伝送する経路が選択される。
【0069】
(ステップS17)伝送パケット処理部135は、経路制御部136が選択したVLAN IDをトンネルヘッダに付加する。
(ステップS18)伝送パケット処理部135は、カプセル化されたパケットを通信部107に出力する。通信部107は、伝送パケット処理部135が出力したパケットを、スイッチ21に送信する。これにより、カプセル化されたパケットが、スイッチ21,24,22を経由してサーバ装置100aに伝送される。
【0070】
図12は、パケット受信処理を示すフローチャートである。以下、サーバ装置100のVM#1がサーバ装置100aのVM#3からパケットを受信する場合を想定して、図12に示す処理をステップ番号に沿って説明する。
【0071】
(ステップS21)伝送パケット処理部135は、カプセル化されたパケットを通信部107から取得する。VM#3からVM#1へのパケットの場合、通信部107から取得するパケットには、仮想宛先アドレス=g,仮想送信元アドレス=e,VLAN#1,宛先MACアドレス=a,送信元MACアドレス=cがパケットに付加されている。
【0072】
(ステップS22)伝送パケット処理部135は、通信部107から取得したパケットが輻輳制御パケットであるか否か判断する。輻輳制御パケットであるか否かは、例えば、ヘッダ情報に基づいて判断される。輻輳制御パケットでない場合、処理をステップS23に進める。輻輳制御パケットの場合、処理をステップS27に進める。
【0073】
(ステップS23)伝送パケット処理部135は、VLAN ID(VLAN#1)をパケットから除去する。トンネル処理部132は、仮想宛先アドレス=g,仮想送信元アドレス=eおよびトンネルヘッダをパケットから除去する。
【0074】
(ステップS24)仮想アドレス制御部134は、仮想宛先アドレス=e,仮想送信元アドレス=g(受信パケットの送信元と宛先を逆にしたもの)に対応する輻輳フラグを、仮想アドレステーブル141を参照し確認する。また、宛先MACアドレス=c,送信元MACアドレス=a(受信パケットの送信元と宛先を逆にしたもの)に割り当てられている仮想アドレスの組がパケットに付加されていた仮想アドレスの組と一致するか、フロー管理テーブル142を参照し確認する。そして、仮想アドレス制御部134は、輻輳フラグがNOであり且つ仮想アドレスの組が変化したか判断する。条件を満たす場合、処理をステップS25に進める。条件を満たさない場合、処理をステップS26に進める。
【0075】
(ステップS25)仮想アドレス制御部134は、フロー管理テーブル142の経路IDを更新して、宛先MACアドレス=c,送信元MACアドレス=aに割り当てる仮想アドレスの組を、受信パケットに付加されていた仮想宛先アドレスと仮想送信元アドレスを逆にしたものに変更する。なお、宛先MACアドレス=c,送信元MACアドレス=aに対して仮想アドレスが未だ割り当てられていない場合、経路IDを新規に登録する。
【0076】
(ステップS26)VMパケット処理部131は、宛先MACアドレス=aをもつVM#1に、カプセル化が解除されたパケットを出力する。そして、処理が終了する。
(ステップS27)輻輳制御部133は、輻輳により破棄されたパケットのMACアドレス(トンネルヘッダに付加された仮想アドレス)の組を、輻輳制御パケットから抽出する。仮想アドレス制御部134は、仮想アドレステーブル141において、抽出された仮想アドレスの組に対応する輻輳フラグをYESに変更する。また、フロー管理テーブル142から、輻輳フラグ=YESになった経路IDが対応付けられているMACアドレスの組を検索し、当該MACアドレスの組に割り当てた経路IDを他の経路IDに変更する。
【0077】
次に、サーバ装置100とサーバ装置100aの間にトンネルが形成された後、VM#1〜#4がパケットをカプセル化して送信する流れの例を説明する。最初は、サーバ装置100が有するフロー管理テーブル142とサーバ装置100aが有するフロー管理テーブル142aとが空であるものとする。
【0078】
図13は、パケット通信の手順例を示す第1の図である。まず、VM#1がVM#3にパケットを送信する場合を考える。フロー管理テーブル142には、宛先MACアドレス=c,送信元MACアドレス=aが登録されていない。そこで、サーバ装置100は、当該MACアドレスの組に対して、仮想宛先アドレス=e,仮想送信元アドレス=gを割り当て、フロー管理テーブル142を更新する。そして、割り当てた仮想アドレスの組を用いてパケットをカプセル化し、当該仮想アドレスの組に対応する経路Xを示すVLAN#1をパケットに付加する。これにより、サーバ装置100が出力したパケットは、スイッチ21,24,22を経由して(経路Xで)サーバ装置100aに到着する。
【0079】
図14は、パケット通信の手順例を示す第2の図である。図13に示したパケットをサーバ装置100aが受信した場合を考える。フロー管理テーブル142aには、宛先MACアドレス=a,送信元MACアドレス=c(受信パケットの送信元と宛先を逆にしたもの)が登録されていない。そこで、サーバ装置100aは、当該MACアドレスの組に対して、仮想宛先アドレス=g,仮想送信元アドレス=e(受信パケットの送信元と宛先を逆にしたもの)を割り当て、フロー管理テーブル142aを更新する。
【0080】
次に、VM#3がVM#1にパケットを送信する場合を考える。フロー管理テーブル142aには、宛先MACアドレス=a,送信元MACアドレス=cが登録されている。そこで、サーバ装置100aは、当該MACアドレスの組に割り当てられた仮想宛先アドレス=g,仮想送信元アドレス=eを選択する。そして、選択した仮想アドレスの組を用いてパケットをカプセル化し、当該仮想アドレスの組に対応する経路Xを示すVLAN#1をパケットに付加する。これにより、サーバ装置100aが出力したパケットは、スイッチ22,24,21を経由して(経路Xで)サーバ装置100に到着する。
【0081】
次に、上記パケットをVM#1がVM#3から受信する場合を考える。フロー管理テーブル142には、宛先MACアドレス=c,送信元MACアドレス=a(受信パケットの送信元と宛先を逆にしたもの)が登録されている。また、当該MACアドレスの組に割り当てられている仮想アドレスの組が、受信パケットの送信元と宛先を逆にしたものに一致する。そこで、サーバ装置100は、フロー管理テーブル142を更新しない。
【0082】
図15は、パケット通信の手順例を示す第3の図である。次に、VM#4がVM#1にパケットを送信する場合を考える。フロー管理テーブル142aには、宛先MACアドレス=a,送信元MACアドレス=dが登録されていない。そこで、サーバ装置100aは、当該MACアドレスの組に対して、仮想宛先アドレス=h,仮想送信元アドレス=fを割り当て、フロー管理テーブル142aを更新する。そして、割り当てた仮想アドレスの組を用いてカプセル化し、当該仮想アドレスの組に対応する経路Yを示すVLAN#2をパケットに付加する。これにより、サーバ装置100aが出力したパケットは、スイッチ22,25,21を経由して(経路Yで)サーバ装置100に到着する。なお、フロー管理テーブル142aの1番目のエントリで経路Xが選択されているため、ラウンドロビン方式により、2番目のエントリでは経路Yが選択されている。
【0083】
次に、上記パケットをVM#1がVM#4から受信する場合を考える。フロー管理テーブル142には、宛先MACアドレス=d,送信元MACアドレス=a(受信パケットの送信元と宛先を逆にしたもの)が登録されていない。そこで、サーバ装置100は、当該MACアドレスの組に対して、仮想宛先アドレス=f,仮想送信元アドレス=h(受信パケットの送信元と宛先を逆にしたもの)を割り当て、フロー管理テーブル142を更新する。これにより、フロー管理テーブル142,142aに登録された情報が対称となる。
【0084】
図16は、パケット通信の手順例を示す第4の図である。次に、スイッチ21からスイッチ24へパケットを転送するリンクの輻輳が発生し、VM#1からVM#3へのパケットがスイッチ21で破棄された場合を考える。スイッチ21は、輻輳を検出すると、破棄されたパケットの送信元であるサーバ装置100に、仮想宛先アドレス=e,仮想送信元アドレス=gを含む輻輳制御パケットを送信する。輻輳を検出し通知する方法としては、例えば、IEEE (Institute of Electrical and Electronics Engineers) Standard 802.1Qau - 2010, 23 April, 2010に記載された方法を用いることができる。
【0085】
サーバ装置100は、輻輳制御パケットを受信すると、輻輳が発生している経路Xに対応する仮想宛先アドレス=e,仮想送信元アドレス=gを、輻輳フラグ=YESを設定することで使用禁止にする。そして、フロー管理テーブル142に登録されている経路IDを変更し、経路Xに代えて経路Yが選択されるようにする。これにより、VM#1がVM#3に送信するパケットや、VM#1がVM#4に送信するパケットは、スイッチ21,25,22を介して(経路Yで)伝送される。
【0086】
次に、VM#1がVM#3からパケットを受信する場合を考える。フロー管理テーブル142には、宛先MACアドレス=c,送信元MACアドレス=a(受信パケットの送信元と宛先を逆にしたもの)が登録されている。ここで、当該MACアドレスの組に割り当てられている仮想アドレスの組は、受信パケットの送信元と宛先を逆にしたものとは一致しない。しかし、仮想宛先アドレス=e,仮想送信元アドレス=g(受信パケットの送信元と宛先を逆にしたもの)には、輻輳フラグ=YESが設定されている。そこで、サーバ装置100は、輻輳が発生したことに伴う経路変更が不一致の原因であると判断し、フロー管理テーブル142を更新しない。
【0087】
図17は、パケット通信の手順例を示す第5の図である。次に、VM#2がVM#3にパケットを送信する場合を考える。フロー管理テーブル142には、宛先MACアドレス=c,送信元MACアドレス=bが登録されていない。そこで、サーバ装置100は、当該MACアドレスの組に対して、仮想宛先アドレス=f,仮想送信元アドレス=hを割り当て、フロー管理テーブル142を更新する。そして、割り当てた仮想アドレスの組を用いてパケットをカプセル化し、当該仮想アドレスの組に対応する経路Yを示すVLAN#2をパケットに付加する。これにより、サーバ装置100が出力したパケットは、スイッチ21,25,22を経由して(経路Yで)サーバ装置100aに到着する。
【0088】
なお、フロー管理テーブル142の2番目のエントリで経路Yが選択されている一方、経路Xの選択は禁止されている。そこで、ラウンドロビン方式の場合でも、経路Xがスキップされ、2番目のエントリに続いて3番目のエントリでも経路Yが選択される。
【0089】
第2の実施の形態の通信システムによれば、トンネルの両端にそれぞれ複数の仮想アドレスが設定され、カプセル化に使用可能な仮想宛先アドレスと仮想送信元アドレスの組が複数通り用意される。このため、仮想宛先アドレスや仮想送信元アドレスに基づいて、トンネル区間に設定した複数の経路にフローを分散させることが可能となる。よって、複数の経路を利用して、カプセル化されたパケットを効率的に伝送することができる。また、ネットワーク20で輻輳が発生したときは、輻輳状況に応じて選択される経路を変更することができ、経路選択が柔軟に行われる。
【0090】
なお、前述の通り、第2の実施の形態の通信方法は、コンピュータとしての機能を有するサーバ装置100,100aに、通信制御プログラムを実行させることで実現できる。通信制御プログラムは、コンピュータ読み取り可能な記録媒体(例えば、記録媒体33)に記録しておくことができる。記録媒体として、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、HDDおよびFDが含まれる。光ディスクには、CD、CD−R(Recordable)/RW(Rewritable)、DVDおよびDVD−R/RWが含まれる。
【0091】
プログラムを流通させる場合、例えば、当該プログラムを記録した可搬記録媒体が提供される。また、プログラムを他のコンピュータの記憶装置に格納しておき、ネットワーク20経由で当該プログラムを配布することもできる。サーバ装置100,100aは、例えば、可搬記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを、HDD103などの記憶装置に格納し、記憶装置からプログラムを読み込んで実行する。ただし、可搬型記録媒体から読み込んだプログラムを直接実行してもよく、他のコンピュータから受信したプログラムを直接実行してもよい。
【符号の説明】
【0092】
10 情報処理装置
11 記憶部
11a アドレス情報
11b 経路情報
12 制御部
13 送信部
14 トンネル
【特許請求の範囲】
【請求項1】
トンネルが形成され前記トンネルの区間内に複数の経路が設定されたネットワークを介して送信されるパケットを処理する通信制御プログラムであって、
前記トンネルの1つの端点に設定された第1の送信元アドレスと他の端点に設定された第1の宛先アドレスとを含み、前記第1の送信元アドレスと前記第1の宛先アドレスの少なくとも一方が複数設定されたアドレス情報を記憶する記憶部を備えるコンピュータに、
第2の送信元アドレスと第2の宛先アドレスとを含む第1のパケットを取得し、前記アドレス情報の中から、前記第2の送信元アドレスと前記第2の宛先アドレスとに応じた前記第1の送信元アドレスと前記第1の宛先アドレスとを選択し、
前記第1のパケットのトンネルヘッダに、選択した前記第1の送信元アドレスと前記第1の宛先アドレスとを付加して、カプセル化した第2のパケットを生成する、
処理を実行させる通信制御プログラム。
【請求項2】
前記記憶部は、前記第1の送信元アドレスと前記第1の宛先アドレスと前記トンネルの区間内の経路を識別するための識別情報とを対応付けた経路情報を更に記憶し、
前記コンピュータに、前記経路情報に基づいて、前記複数の経路のうち選択した前記第1の送信元アドレスと前記第1の宛先アドレスとに応じた経路で送信されるよう、前記第2のパケットの送信を制御する、処理を更に実行させる、
請求項1記載の通信制御プログラム。
【請求項3】
前記コンピュータに、
前記複数の経路のうち輻輳が検出された経路についての輻輳情報を取得し、
前記輻輳情報に基づいて、前記アドレス情報が示す前記第1の送信元アドレスと前記第1の宛先アドレスの組み合わせのうち、選択可能な組み合わせを制限する、
処理を更に実行させる請求項1または2記載の通信制御プログラム。
【請求項4】
トンネルが形成され前記トンネルの区間内に複数の経路が設定されたネットワークを介して送信されるパケットを処理する情報処理装置であって、
前記トンネルの1つの端点に設定された第1の送信元アドレスと他の端点に設定された第1の宛先アドレスとを含み、前記第1の送信元アドレスと前記第1の宛先アドレスの少なくとも一方が複数設定されたアドレス情報を記憶する記憶部と、
第2の送信元アドレスと第2の宛先アドレスとを含む第1のパケットを取得し、前記アドレス情報の中から、前記第2の送信元アドレスと前記第2の宛先アドレスとに応じた前記第1の送信元アドレスと前記第1の宛先アドレスとを選択する制御部と、
前記第1のパケットのトンネルヘッダに、選択した前記第1の送信元アドレスと前記第1の宛先アドレスとを付加した、カプセル化された第2のパケットを送信する送信部と、
を有する情報処理装置。
【請求項5】
トンネルが形成され前記トンネルの区間内に複数の経路が設定されたネットワークを介して送信されるパケットを処理するパケット通信方法であって、
前記トンネルの1つの端点に設定された第1の送信元アドレスと他の端点に設定された第1の宛先アドレスとを含み、前記第1の送信元アドレスと前記第1の宛先アドレスの少なくとも一方が複数設定されたアドレス情報を記憶する記憶部を備えるコンピュータが、
第2の送信元アドレスと第2の宛先アドレスとを含む第1のパケットを取得し、前記アドレス情報の中から、前記第2の送信元アドレスと前記第2の宛先アドレスとに応じた前記第1の送信元アドレスと前記第1の宛先アドレスとを選択し、
前記第1のパケットのトンネルヘッダに、選択した前記第1の送信元アドレスと前記第1の宛先アドレスとを付加して、カプセル化した第2のパケットを送信する、
パケット通信方法。
【請求項1】
トンネルが形成され前記トンネルの区間内に複数の経路が設定されたネットワークを介して送信されるパケットを処理する通信制御プログラムであって、
前記トンネルの1つの端点に設定された第1の送信元アドレスと他の端点に設定された第1の宛先アドレスとを含み、前記第1の送信元アドレスと前記第1の宛先アドレスの少なくとも一方が複数設定されたアドレス情報を記憶する記憶部を備えるコンピュータに、
第2の送信元アドレスと第2の宛先アドレスとを含む第1のパケットを取得し、前記アドレス情報の中から、前記第2の送信元アドレスと前記第2の宛先アドレスとに応じた前記第1の送信元アドレスと前記第1の宛先アドレスとを選択し、
前記第1のパケットのトンネルヘッダに、選択した前記第1の送信元アドレスと前記第1の宛先アドレスとを付加して、カプセル化した第2のパケットを生成する、
処理を実行させる通信制御プログラム。
【請求項2】
前記記憶部は、前記第1の送信元アドレスと前記第1の宛先アドレスと前記トンネルの区間内の経路を識別するための識別情報とを対応付けた経路情報を更に記憶し、
前記コンピュータに、前記経路情報に基づいて、前記複数の経路のうち選択した前記第1の送信元アドレスと前記第1の宛先アドレスとに応じた経路で送信されるよう、前記第2のパケットの送信を制御する、処理を更に実行させる、
請求項1記載の通信制御プログラム。
【請求項3】
前記コンピュータに、
前記複数の経路のうち輻輳が検出された経路についての輻輳情報を取得し、
前記輻輳情報に基づいて、前記アドレス情報が示す前記第1の送信元アドレスと前記第1の宛先アドレスの組み合わせのうち、選択可能な組み合わせを制限する、
処理を更に実行させる請求項1または2記載の通信制御プログラム。
【請求項4】
トンネルが形成され前記トンネルの区間内に複数の経路が設定されたネットワークを介して送信されるパケットを処理する情報処理装置であって、
前記トンネルの1つの端点に設定された第1の送信元アドレスと他の端点に設定された第1の宛先アドレスとを含み、前記第1の送信元アドレスと前記第1の宛先アドレスの少なくとも一方が複数設定されたアドレス情報を記憶する記憶部と、
第2の送信元アドレスと第2の宛先アドレスとを含む第1のパケットを取得し、前記アドレス情報の中から、前記第2の送信元アドレスと前記第2の宛先アドレスとに応じた前記第1の送信元アドレスと前記第1の宛先アドレスとを選択する制御部と、
前記第1のパケットのトンネルヘッダに、選択した前記第1の送信元アドレスと前記第1の宛先アドレスとを付加した、カプセル化された第2のパケットを送信する送信部と、
を有する情報処理装置。
【請求項5】
トンネルが形成され前記トンネルの区間内に複数の経路が設定されたネットワークを介して送信されるパケットを処理するパケット通信方法であって、
前記トンネルの1つの端点に設定された第1の送信元アドレスと他の端点に設定された第1の宛先アドレスとを含み、前記第1の送信元アドレスと前記第1の宛先アドレスの少なくとも一方が複数設定されたアドレス情報を記憶する記憶部を備えるコンピュータが、
第2の送信元アドレスと第2の宛先アドレスとを含む第1のパケットを取得し、前記アドレス情報の中から、前記第2の送信元アドレスと前記第2の宛先アドレスとに応じた前記第1の送信元アドレスと前記第1の宛先アドレスとを選択し、
前記第1のパケットのトンネルヘッダに、選択した前記第1の送信元アドレスと前記第1の宛先アドレスとを付加して、カプセル化した第2のパケットを送信する、
パケット通信方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2012−169733(P2012−169733A)
【公開日】平成24年9月6日(2012.9.6)
【国際特許分類】
【出願番号】特願2011−26997(P2011−26997)
【出願日】平成23年2月10日(2011.2.10)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成24年9月6日(2012.9.6)
【国際特許分類】
【出願日】平成23年2月10日(2011.2.10)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]