JP4175507B2 - ネットワーク経路選択方法及びネットワーク経路選択システム - Google Patents

ネットワーク経路選択方法及びネットワーク経路選択システム Download PDF

Info

Publication number
JP4175507B2
JP4175507B2 JP2003159521A JP2003159521A JP4175507B2 JP 4175507 B2 JP4175507 B2 JP 4175507B2 JP 2003159521 A JP2003159521 A JP 2003159521A JP 2003159521 A JP2003159521 A JP 2003159521A JP 4175507 B2 JP4175507 B2 JP 4175507B2
Authority
JP
Japan
Prior art keywords
route
packet
program
communication
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003159521A
Other languages
English (en)
Other versions
JP2004363907A (ja
Inventor
佐藤  一郎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Japan Science and Technology Agency
National Institute of Japan Science and Technology Agency
Original Assignee
Japan Science and Technology Agency
National Institute of Japan Science and Technology Agency
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Japan Science and Technology Agency, National Institute of Japan Science and Technology Agency filed Critical Japan Science and Technology Agency
Priority to JP2003159521A priority Critical patent/JP4175507B2/ja
Publication of JP2004363907A publication Critical patent/JP2004363907A/ja
Application granted granted Critical
Publication of JP4175507B2 publication Critical patent/JP4175507B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ネットワーク上の通信パケットの選択方法及びそのシステムに関し、特に、通信パケット自体にその通信パケットの転送経路を記述する経路制御プログラムを保有させて、その経路制御プログラムに従ってネットワーク上の複数の通信ノードに通信パケットを送信するようにしたネットワーク経路選択方法及びネットワーク経路選択システムに関する。
【0002】
【従来の技術】
一般に、ネットワークを用いてデータのやり取りを行う方法としては、パケット通信が普及している。パケット通信用のプロトコルとしては、物理層からアプリケーション層までさまざまなプロトコルがあり、例えば、インターネット通信のTCP/IP、ホームページを参照するときのHTTPあるいはメール通信用のプロトコルであるSMTPなどはよく知られている。これらのプロトコルは、世界各国から多くの専門家が集まり長年の検討を経て標準化されたものである。
【0003】
しかし、一般のユーザから見ると、標準化されたプロトコルをそのままの状態で利用することは逆に不便となることが起こりうる。例えば、HTTPでどこかのホームページにアクセスする場合などで特別にセキュリティーを考慮したい場合や、インターネットで電子会議を行う場合などで標準の通信プロトコルを変更して利用したいなどの要求が起こることがある。そこで、従来から、標準化を待つことなく、通信プロトコルを動的に変更する方法が検討され、その手法としてアクティブネットワーク手法が開発された。アクティブネットワークは、通信プロトコルの動的配布及び変更能力をもつネットワークであり、ネットワーク内に設けられたルータでアプリケーション層までの処理を実行させることができるものである。アクティブネットワークは、いわば、ネットワーク自体をプログラム化して取り扱うことができるネットワークであるということができる。
【0004】
このアクティブネットワーク手法としては、通信ノードの通信制御プログラムを動的に変更できるようにしたアクティブノード(プログラマブルノード)手法と、通信パケットにパケット制御プログラムを内蔵させたアクティブパケット(プログラマブルパケット)と呼ばれるものとがある。アクティブノード手法としては、Java(登録商標)言語による通信プロトコルの配置を行うMIT(Massachusetts Institute of Technology)のANTS(Active Network Script)や、Java(登録商標)言語によるネットワーク管理を行うColumbia大学のNet Scriptなどが代表的である(例えば、非特許文献1を参照。)。
【0005】
ルータや端末などの通信ノードでは、通常その内部に通信プロトコルを実現するソフトウエアを持ち、このソフトウエアによる通信プロトコルに従って通信処理を行っている。上記ANTSのようなアクティブノード手法では、通信パケットの経路処理を行うルータ上に、プロトコル処理プログラムを必要に応じて所定のサーバからダウンロードする機構が導入されている。そして、その通信ノードが通信パケットを受け取るとその通信パケットが要求するプロトコルを調べ、その通信ノードがそのパケットが要求するプロトコルを持っていない場合には、サーバからダウンロードし、そのプロトコルにより当該通信パケットを次の転送先ノードに送信する。すなわち、新しいプロトコルを定義したソフトウエアを外部から当該通信ノードに導入し、既存のソフトウエアと入れ替えて利用するようにしている。
【0006】
また、アクティブパケット(プログラマブルパケット)手法としては、例えば、BBN TechnologyのSmart Packetsやペンシルベニア大学で開発されたPLAN(A Packet Language for Active Networks)が知られている(例えば、非特許文献2を参照)。Smart PacketsはC言語などの手続き型言語によって通信制御を行うものであり、PLANは関数型言語によってパケットの移動経路を記述したものである。これらのアクティブパケットは、通信パケットそのものにプロトコルを埋め込んだプログラム付のパケット、つまりプログラマブルパケットを実現するものである。
【0007】
一般に、通常の通信パケットにおいては、そのヘッダ部分に受信先コンピュータのネットワークアドレスが書き込まれ、ルータなどのネットワークノードはそのアドレスを読んで次の転送先を決定する。アクティブパケット手法に用いられるアクティブパケット(プログラマブルパケット)ではヘッダ部分にアドレスの代わりにそれ自身の転送を制御する経路処理プログラムが書き込まれている。そして、このプログラマブルパケットがルータなどの通信ノードに転送されると、その通信ノードは、予め用意されたプログラムの解釈実行システムを通じて、そのパケットのヘッダ部分にあるプログラムを実行して次の転送先を決定する。この結果、パケットがそれ自身の転送方法を定義できるようになる。
【0008】
このように、ANTSでは、各通信ノード上にJava(登録商標)言語の実行系とソフトウエア置換機構を予め配置しておく。そして、各通信ノードはパケットを受け取ると、そのパケットに示されたプロトコル識別子を基にして、そのパケットの通信手順を定義するプロトコルを実装したJava(登録商標)言語プログラムを、ネットワーク上の専用サーバからダウンロードする。そしてダウンロードしたプログラムに従って受け取ったパケットを処理する。
【0009】
図15は、従来のプログラマブルノードを用いたネットワークシステムであるANTSの例を示したものであり、このシステムは、通信元コンピュータ端末100、配信先コンピュータ端末101、通信制御プログラムの配布サーバ102、中継通信ノードであるルータ103、104から構成される。このシステムによれば、通信元コンピュータ端末100から、ルータ103に対して通信パケット105とそのパケットの処理に必要なプロトコルが記述された通信制御プログラム106が送信される(▲1▼)。ルータ103は、パケット105と通信制御プログラム106を受信すると、配布サーバ102に対してこのパケット105の処理に必要なプロトコルを持つ処理プログラムの転送要求を行う(▲2▼)。
【0010】
配布サーバ102は、上記ルータ103からのプログラム転送要求を受けて、そのパケットの処理に必要なプログラムをルータ103に転送する(▲3▼)。ルータ103は処理が終了したパケット105を次のルータ104に送る(▲4▼)。そして、このパケット105を受け取ったルータ104は、ルータ103と同様に配布サーバ102に対してパケットを処理するためのプログラムの転送要求を行う(▲5▼)。配布サーバ102は、上記ルータ104からのプログラム転送要求を受けて、処理に必要なプログラムをルータ104に転送する(▲6▼)。
なお、この従来システムにおいては、パケット単位で通信処理を変更する場合、その都度、配布サーバ102に対して通信制御プログラムの転送要求を行い、配布サーバからプログラムを転送してもらわなければならないので、伝送効率が悪いという問題がある。
【0011】
図16は、プログラマブルパケットの従来例と本発明の比較を示したものであり、 図16Aは、1997年に発表されたペンシルベニア大学のPLANに用いられているプログラマブルパケット、図16Bは、比較のために示した本発明で用いられるプログラマブルパケットの例である。
【0012】
図16Aに示されるように、通信パケット105はデータ部107とヘッダ部108に分かれており、ヘッダ部108はプログラム部109と付加情報110を保有している。このプログラム部109には、宛先アドレスの代わりにパケット自身の経路を決める経路制御プログラム111が埋め込まれている。図16Aに例示されているプログラムはPING機能を持つプログラムである。PING機能とは、宛先に届いたらパケットを送信元に戻す機能であり、このプログラムの例では、プログラム中の変数srcに送信元ノード名を格納し、変数destに宛先ノード名を格納する。すなわち、このパケットは変数srcに格納されるノードから変数destに格納されるノードに転送され、その後、再び変数srcに格納されるノードに戻ってくるプログラムである。
【0013】
このように、従来の経路制御プログラム111は、汎用的なプログラミング言語で記述されたものであり、汎用的な言語である点で記述能力に優れている反面、パケットに占めるバイト数が多くなるという問題があった。
【0014】
図16Bは、後述する本発明で用いられるプログラマブルパケットであるが、このパケットを転送するプログラムは、例えば「sとdを変数とすると、変数sに格納されるノードから変数dに格納されるノードに転送され、その後、変数sに格納されるノードに戻って終了する。」というプログラムは、「s;d;s;0」とノード名を記述するだけで完了する。この意味で従来の記述(図16A)に比べて大幅に短縮される。
【0015】
【非特許文献1】
David Tennenhouse and David J. Wetherall(Massachusetts Institute of Technology) HYPERLINK "http://nms.lcs.mit.edu/activeware/" インターネット<URL:http://nms.lcs.mit.edu/activeware/
【非特許文献2】
Scott M. Nettles and Carl A. Gunter(University of Pennsylvania) インターネット<URL: HYPERLINK "http://cis.upenn.edu/~dsl/PLAN/" http://cis.upenn.edu/~dsl/PLAN/
【0016】
【発明が解決しようとする課題】
ANTSに代表される従来のシステムにおいては、パケットを処理するプログラムが通信ノードにないときは、パケットのプロトコル種別ごとに、その処理プログラムをサーバから発見し、それをダウンロードする必要があった。このため、多様なプロトコルを利用する場合には、通信遅延などが起こり、その結果通信コストが大きくなるという問題があった。
【0017】
また、ANTSやNetScriptを含む既存のアクティブノード手法では、ノード単位のプロトコルの動的変更は可能であるが、パケット単位でこの変更を行うことはできない。すなわち、ネットワークには多様なデータがパケットとして流されるが、アクティブノード手法は、通信ノード上のソフトウエアを入れ替えるものであるため、ノードに送られてくるパケット単位にプロトコルを変更することはできなかった。
【0018】
また、上述したように、既存のプログラマブルパケット手法では、C言語等の汎用プログラミング言語を使用しているため、むしろその記述能力が優れている点が弊害となっていた。例えば、図16Aのプログラマブルパケットのように、通信パケット105内にネットワーク内で移動する経路を示す経路制御プログラム111を埋め込んだプログラム部109を持つようになると、プログラム部分のバイト数が増え、パケット自体のバイト数が増えてしまうという問題が生じる。すなわち、パケット通信においてパケット105自体の情報量が増えることはその分伝送速度の低減につながるという問題あった。また、仮にパケット105の大きさを固定とすれば、データ部107に分配されるバイト数が少なくなり、データ部107が圧縮されて伝送できる情報量が低減されるという問題があった。
【0019】
すなわち、通信パケットは伝送スピード及び伝送効率から、そのサイズには制限がある(例えば1.5KB程度)。このため、パケットに埋め込まれるプログラムは最小化される必要があるが、これらの汎用プログラミング言語は記述能力が高い分、プログラムサイズが増大してしまうのである。そして、そのことが、パケットの大部分を経路制御プログラムが占有してデータサイズを圧迫する原因となっていた。また、データサイズを同程度に維持しようとすると、パケットサイズが増大することになり、伝送速度や伝送効率を悪化させるという問題があった。
【0020】
また、汎用プログラミング言語は記述能力が高いので、通信ノード内のアクセスが容易となり、安全な実行が難しくなるという問題もあった。つまり、汎用型または関数型プログラミング言語により経路処理プログラムを記述することはセキュリティー上での問題がある。更に、プログラマブルパケットを受信した中間ノードは、そのプログラムを実行して次の宛先ノードを決定する必要があるが、記述能力の高い言語ほどその実行システムは大きくなり、ノード側処理を増大させ、実行速度が遅くなり、結果として通信遅延が大きくなるという問題もあった。
【0021】
このように、既存のプログラマブルパケット手法ではC言語などの手続き型の汎用プログラミング言語やML(Markup Language)などの関数型プログラミング言語をもとにした言語を前提としているため、必ずしも経路制御記述に向いているとはいえず、記述自体の冗長性が高く、プログラムサイズ及び実行コストが大きくなっていた。
【0022】
本発明は、これらの問題に鑑みてなされたものであり、汎用プログラミング言語を利用することなく、したがってパケットサイズを大きくすることのない専用言語を用いての経路記述を可能とするとともに、この専用言語により記述された経路制御プログラムをパケット内に埋め込んだプログラマブルパケットをパケットプールに複数格納し、このパケットプールに格納されたプログラマブルパケットの中から経路要求に応じたパケットが簡単に選択できるネットワーク経路選択方法及びネットワーク経路選択システムを提供することを目的とする。
【0023】
【課題を解決するための手段】
上記課題を解決し、本発明の目的を達成するため、本発明のネットワーク経路選択方法は、データ部とヘッダ部を有する通信パケットの転送経路を表す経路制御プログラムを通信パケットのヘッダ部に記述した複数の通信パケットを予め格納するパケットプールを用意し、該パケットプールに経路要求プログラムを入力し、該パケットプールから、入力された経路要求プログラムに見合った通信パケットを選択するネットワーク経路選択方法であって、ヘッダ部に経路制御プログラムを含む通信パケットをパケットプールに格納するステップと、経路要求プログラムとパケットプールに格納されている通信パケットの経路制御プログラムとを比較するステップと、経路要求プログラムと経路制御プログラムとを比較することにより、経路要求プログラムを満足する経路制御プログラムを有する通信パケットを選択するステップと、この選択した通信パケットのデータ部に、経路要求プログラムとデータを有する転送要求の中の前記データを転送するステップと、を含むことを特徴とする。
【0024】
また、本発明のネットワーク経路選択システムは、データ部とヘッダ部を有する通信パケットのヘッダ部に、通信パケットを転送する経路を表す経路制御プログラムを記述した複数の通信パケットが格納されたパケットプールと、このパケットプールに入力される経路要求プログラムを格納する経路要求プログラム格納部と、パケットプールに格納された複数の通信パケットが持つ経路制御プログラムと経路要求プログラム格納部に格納された経路要求プログラムとを比較する比較手段と、この比較手段で比較した結果、経路要求プログラムを満足する経路制御プログラムを有する通信パケットをパケットプールから選択する選択手段と、この選択手段で選択した通信パケットのデータ部に、経路要求プログラムとデータを有する転送要求の中の前記データを転送する転送手段と、を備えている。
【0025】
また、本発明のネットワーク経路選択方法またはネットワーク経路選択システムの好ましい形態としては、経路要求プログラムを満足する経路制御プログラムを有する通信パケットが複数あるときは、転送回数の最も少ない通信パケットを選択することを特徴としている。
【0033】
なお、本発明のネットワーク経路選択方法及びネットワーク経路選択システムの好ましい形態に利用される経路制御プログラムは、経路記述専用のプログラミング言語により転送先及び転送順序を記述するものである。
【0034】
本発明のネットワーク経路選択方法またはネットワーク経路選択システムによれば、通信パケットを転送する経路を表す経路制御プログラムを記述した通信パケットがパケットプールに複数用意されているので、通信パケット内に含まれている経路制御プログラムを入力された経路要求プログラムと比較することにより経路要求に見合った通信パケットをきわめて簡単に、しかも短時間で選択することができる。
【0036】
また、本発明のネットワーク経路選択方法及びネットワーク経路選択システムに用いられるプログラマブルパケットの経路制御プログラム及び外部から受信される経路要求プログラムは、汎用的プログラミング言語あるいは関数型プログラミング言語ではない本発明者が独自に開発した経路記述専用のプログラミング言語を用いているので、プログラムサイズを極小に抑えることができる。また、両社の比較対照が容易となるため、パケットプールから経路要求を満足するパケットの選択も極めて簡単に行うことができる。
【0040】
【発明の実施の形態】
図1は、本発明のネットワーク経路選択システムの全体構成図を示すものである。このネットワーク経路選択システムにおいては、パケットプール1が、ネットワーク2を介して通信ノードa、b、cと接続されている。パケットプール1は、一種のサーバのようなもので、ヘッダ部3とデータ部4から構成される複数のプログラマブルパケット5と、外部からの経路要求プログラム(リクエスト)6を受け取る経路要求入力部7と、外部からの経路要求プログラムとプログラマブルパケット5のヘッダ部3に記憶された経路制御プログラムとを比較する比較装置8から構成されている。
【0041】
また、通信ノードa、b、cは、外部から転送されてくるプログラマブルパケット5が順番に記憶される待ち行列記憶部9と、この待ち行列に記録されているプログラマブルパケット5を読み出して処理のための解釈を加える経路解釈部10と、経路解釈部10で経路制御プログラムを解釈した結果をもって、次の転送先の通信ノードに転送するパケット転送装置11から構成される。
【0042】
図2は、本発明のネットワーク経路選択方法及びネットワーク経路選択システムに用いられるプログラマブルパケット5の構造を示したものであり、このプログラマブルパケット5のヘッダ部3は、パケットの転送先となる通信ノード名を記述した経路制御プログラムが格納されるプログラム格納領域12と、変数名及び変数データを格納する変数名格納領域13とから構成される。また、ヘッダ部3には、更に、送信元ホスト名を格納する送信元ホスト名格納領域14及びバージョン番号を格納するバージョン番号格納部15が設けられているが、これらの格納領域14と15は省略してもよい。
【0043】
図3は本発明に利用されるパケットプール1の詳細な構成を示す図であり、比較装置7は木構造生成装置16と木構造比較装置17から構成されている。このパケットプール1に蓄積されている待機中のパケット5は、それぞれパケットの転送経路、すなわち経路制御プログラムが記述されたヘッダ部3と転送するデータが記憶されるデータ部4とから構成され、比較装置7において、ヘッダ部3に格納されている経路制御プログラムが、経路要求入力部6に入力される経路要求プログラムと比較される。
【0044】
この比較は、まず木構造生成装置16により経路要求プログラム及びそれと比較される経路制御プログラムの木構造が生成された後、木構造比較装置17において両者の木構造の比較が行われる。
【0045】
次に、図4に基づいて、本発明に用いられる経路用言語について説明する。図4に示す経路用言語は、経路要求用の言語と経路記述用の言語からなる。経路比較を容易にするために両者は類似した言語として構成されるが、経路記述用の言語は、経路要求用の言語を制限したものとなっている。そして、プログラマブルパケットには、経路記述用の言語で書かれた経路が予め与えられている。経路要求用の言語を経路記述用の言語を拡張したものとしているのは、経路要求には任意性を含ませることが必要であるからである。例えば、経路要求用の言語には「複数あるノードのうちの1つでも転送されれば十分である」とか、「複数ノードに転送する際に、その順番は問わない(任意でかまわない)」とか、「あるノードを通過する回数は任意の回数でかまわない」といった要求を表現できる記述性が求められるからである。
【0046】
図4に示される経路要求用の言語で具体的に説明すると、符号EあるいはFは、経路を示すものであり、「0」は移動終了を意味し、「a」は名前aのノード(ホスト)への移動を意味する。ノードとしては通常のコンピュータ端末である場合とルータである場合とがある。経路E、Fは、通常はパケットを転送するノード名であることが多いが、2つのノードを関連付けた演算子を含む式である場合もある。したがって、単純に「a;0」と記述した場合は、ノードaにパケットを転送してから、そのパケットの転送を終了させることを意味する。
【0047】
「E;F」(逐次合成)は、経路Eに従って移動した後に、経路Fに従って移動することを意味する。例えば、経路制御プログラムが「a;b」と記述されたパケットは、まず、最初に通信ノードaにパケットが転送され、続いて通信ノードbにパケットが転送されることを意味する。
【0048】
また、「E+F」(選択合成)は、経路Eまたは経路Fのどちらか一方に従って移動するが、その選択は処理内容によって明示的に決められていることを意味している。すなわち、この場合の選択基準は、両経路において最初に移動するノードが存在する経路を選択するようにする。例えば、ノードaとノードbがあって、「a+b」と記述されると、ノードaまたはノードbのいずれかに転送されるのであるが、ノードaが最初に移動する経路にある場合には、ノードaを選択し、ノードbにはパケットの転送を行わない。
【0049】
同様に、「E#F」(非決定的選択合成)は、経路Eと経路Fのどちらか一方の経路を選択することを意味し、最初に移動するノードが存在する経路を優先的に選択するかどうかは問わない点が「E+F」と異なっている。つまり、タスク依頼のEとFのどちらの経路を辿ってもよいことを意味する。例えば、ノードa、b、cに対してパケットに要求する経路が「(a#b);c」と記述されると、ノードaを経由してノードcに行く経路と、ノードbを経由してノードcに行く経路のいずれかを選択的にとることを意味するが、どちらの経路を優先するかは問わない。
【0050】
また、「E%F」(非決定的可換合成)は、経路EとFの両方の経路をとることを意味するが、2つの経路のいずれを先にとるかは任意であることを意味している。つまり、タスク依頼の経路要求において、経路Eと経路Fの順序は入れ換えて移動してもよいことを示す。例えば、「(a%b);c」と記述されたプログラムは、ノードaからノードbを通ってノードcに行く経路と、ノードbからノードaを通ってノードcに行く経路のいずれかの経路、すなわち「a;b;c」あるいは「b;a:c」のいずれかの経路をとること意味するプログラムである。
【0051】
「E&F」(非同期合成)は、経路Eと経路F移動を非同期に実行してもよいことを意味するプログラムである。言い換えると、経路Eの転送中に経路Fに従って転送されてもよく、またその逆でもよいことを意味する。
【0052】
「E*」(閉包)は、タスク要求において、エージェントが経路Eによる転送を0回以上の任意の回数繰り返して行ってもよいことを意味する。
【0053】
この言語は、ラベルつき遷移システムとしてその動作が定義され、以下のような自明な等価関係は構造合同性「≡」により予め定義される。
(1)0;E≡E
(2)E+0≡E、E+E≡E、E+F≡F+E、
(E+F)+G≡E+(F+G)
(3)E#E≡E、E#F≡F#E、(E#F)#G≡E#(F#G)
(4)E%0≡E、E%F≡F%E、(E%F)%G≡E%(F%G)
(5)E&0≡E、E&F≡F&E、(E&F)&G≡E&(F&G)
(6)E*≡0#(E;E*
【0054】
以上、経路要求用の言語について簡単な説明を行ったが、経路記述用の言語は経路要求用の言語の部分集合であるので、特に説明は要しない。
【0055】
次に、図5と図6に基づいてパケットプールの中の経路が記述された複数のプログラマブルパケットの中から、経路要求に合致したプログラマブルパケットを選択するときの経路比較アルゴリズムについて説明する。
この選択は各パケットに記述されている転送経路(記述経路)と通信要求の転送経路(要求経路)が互いにその経路をたどれるかどうかを調べることによって行われる。
【0056】
図5は経路要求プログラムまたは経路記述プログラムの木構造の生成について説明するための図である。
まず、経路記述と経路要求を木構造に展開する手順について説明する。ここで「a」はノード名、EとFは経路記述または経路要求に対応した記号列である。
(1)「a;E」の形の時は、Eに対応した木構造につなげる1つの枝を持ち、その枝には「a」というラベルがついた直列木(「決定木」ともいう。)と呼ぶ木構造に展開する。
(2)「E+F」の形の時は、EとFは選択木と呼ぶ木構造に展開する。これはEとFに対応する木構造の根を結合したものを根とする木構造である。この選択木という木構造は、節から2本以上の枝があり、それぞれの枝に異なるラベルがついているものをいう。
(3)「E#F」の形の時は、EとFは非決定選択木と呼ぶ木構造に展開する。これはEとFに対応する木構造のどちらか一方を任意に選択する木構造である。この非決定選択木(「非決定木」ともいう。)の木構造は、節から2本以上の枝があり、それぞれの枝にはラベルがついているが、そのラベル名は同じである場合もある。
(4)「E%F」の形の時は、「E;F#F;E」に変換した後、木構造に展開する。
(5)「E&F」の形の時は、EとFは並列木と呼ぶ木構造に展開する。これは経路Eと経路Fに対応する木構造を重ねたものとなるが、両木構造は排他的に選択されることはない。この並列木と呼ばれる木構造は、節から2本以上の枝があり、それぞれの枝にラベルがついているものである。このような木構造の比較では、それぞれの枝について並列に比較を行うようにしている。
(6)「E*」の形の時は、「0#E;E*」に変換した後、木構造に展開する。
【0057】
図5は、木構造に展開するアルゴリズムを示したフロー図である。
まず、最初に、経路要求または経路記述の用語に用いられている記号を読む(ステップS1)。次に、その記号がノード名か変数名かが判断される(ステップS2)。ここで、記号がノード名か変数名である場合は、ノード名をアーク(枝)の名前とし(ステップS3)、記号の左辺からなる部分経路から決定木を生成する(ステップS4)。
【0058】
判断ステップS2で、記号がノード名または変数名でないと判断されると、次に記号が演算子「+」であるか否かが判断される(ステップS5)。記号が「+」であると判断されると、その「+」の両辺(A,B)から2つの部分経路AとBを生成し(ステップS6)、この部分経路から選択木を生成する(ステップS7)。
【0059】
判断ステップS5で、記号が演算子「+」でないと判断されると、次に、記号が演算子「%」であるか否かが判断される(ステップS8)。記号が「%」であると判断されると、その「%」の両辺(A,B)から2つの部分経路A;BとB;Aを生成し(ステップS9)、各部分経路から選択木を生成する(ステップS10)。
【0060】
判断ステップS8で、記号が演算子「%」でないと判断されると、次に、記号が演算子「#」であるか否かが判断される(ステップS11)。記号が「#」であると判断されると、その「#」の両辺(A,B)から2つの部分経路AとBを生成し(ステップS12)、各部分経路から非決定木を生成する(ステップS13)。
【0061】
判断ステップS11で、記号が演算子「#」でないと判断されると、次に、記号が演算子「&」であるか否かが判断される(ステップS14)。記号が「&」であると判断されると、その「&」の両辺(A,B)から2つの部分経路AとBを生成し(ステップS15)、各部分経路から並列木を生成する(ステップS16)。
【0062】
判断ステップS14で、記号が演算子「&」でないと判断されると、次に、記号が演算子「*」であるか否かが判断される(ステップS17)。記号が「*」であると判断されると、部分経路A#A*と0を生成し(ステップS18)、各部分経路から選択木を生成する(ステップS19)。
【0063】
判断ステップS17で、記号が演算子「*」でないと判断されると、次の記号を読み(ステップS20)、判断ステップS2に戻る。以上の手順を経て、要求経路または記述経路に対応した木構造が生成展開される(ステップS21)。
【0064】
次に、図6に基づいて、経路要求と経路記述の木構造の比較のアルゴリズムについて説明する。この比較は経路要求と経路記述のそれぞれの対応する木構造を比較して経路記述が経路要求を満足するか否かを判断するためのものである。ここで経路記述が経路要求を満足するとは、経路記述が経路要求に示された必要な転送先ノードに、要求された転送順序で転送可能であり、逆に、経路記述が経路要求に示された以外のノードや、経路要求に示された転送順序以外の順序の転送を含まないことを意味する。
【0065】
以下、図6に基づいて経路要求と経路記述の比較の手順を説明する。なお、ここでは、経路要求の木構造をR、経路記述の木構造をSとして説明する。
まず、図5で説明したフロー図により、経路要求に対応した木構造Rと経路記述に対応した木構造Sが生成され(ステップS22)、この2つの木構造が比較される(ステップS23)。この比較は、木構造Rの根から伸びている枝のラベルと木構造Sの根から伸びている枝のラベルを比較することによって行われる。
【0066】
まず、経路要求の木構造Rが直列木(決定木)であるか否かが判断される(ステップS24)。木構造Rが直列木のときは、経路記述Sの部分木の節点が経路要求Rと同じラベルを持つかどうかを調べ(ステップS25)、ラベルが一致したか否かが判断される(ステップS26)。ここでは、SはRと同じラベルを持った枝を持ち、RもSと同じラベルを持った枝を持っていることが一致の条件となる。ラベルが一致した場合には、経路要求Rと経路記述Sの他の部分木について比較を行う(ステップS28)。
【0067】
判断ステップS24で経路要求の木構造Rが直列木でないと判断されると、次に、木構造Rが選択木であるか否かが判断される(ステップS29)。木構造Rが選択木のときは、選択木のすべての部分木の節点が経路記述の木構造Sの部分木と同じラベルを持っているか否かを調べる(ステップS30)。ここで、同じラベルを持つとは、木構造Sがその選択可能なすべての枝について木構造Rのすべての枝と同じラベル名を持ち、かつ木構造Rも木構造Sが持つすべての枝について同じラベル名を持つことを意味する。次に、木構造Rと木構造Sに同じラベル名をもつ節点が存在しているか否かが判断され(ステップS31)、同じラベルを持つ節点が存在していれば、経路要求Rと経路記述Sの他の部分木について比較を行う(ステップS32)。
【0068】
判断ステップS29で経路要求の木構造Rが選択木でないと判断されると、次に、木構造Rが非決定選択木(「非決定木」あるいは「非選択木」という。)であるか否かが判断される(ステップS33)。木構造Rが非決定木のときは、非決定木のすべての部分木の節点が経路記述の木構造Sの部分木と同じラベルを持っているか否かを調べる(ステップS34)。ここで、木構造Rの枝が非決定木のときは、木構造Rの枝の1つ以上と同じラベルを持った枝を木構造Sも持っていることが必要条件である。次に、木構造Rと木構造Sに同じラベル名をもつ節点が存在しているか否かが判断され(ステップS35)、同じラベルを持つ節点が存在していれば、経路要求Rと経路記述Sのそれぞれのラベルが一致した節を持つ他の部分木について比較を行う(ステップS36)。この比較は、それぞれの木構造RとSの同じラベル名のついた枝の先にある木構造についても同様に比較されることを意味する。
【0069】
判断ステップS33で経路要求の木構造Rが非決定選択木でないと判断されると、次に、木構造Rが並列木であるか否かが判断される(ステップS37)。木構造Rが並列木のときは、並列木のすべての部分木の節点が経路記述の木構造Sの部分木と同じラベルを持っているか否かを調べる(ステップS38)。ここで、木構造Rの枝が並列木のときは、木構造Rの枝の1つ以上と同じラベルを持った枝を木構造Sも持っていることが必要条件である。次に、木構造Rと木構造Sに同じラベル名をもつ節点が存在しているか否かが判断され(ステップS39)、同じラベルを持つ節点が存在していれば、経路要求Rと経路記述Sのそれぞれの他の部分木について比較を行う(ステップS40)。この比較は、それぞれの木構造RとSにおいて、その一致したそれぞれの枝の先にある木構造を同様に比較し、かつ木構造Rにおいて一致した枝以外の先にある木構造と、木構造Sにおいて一致した枝以外の先にある木構造とを同様に比較することを意味する。
【0070】
経路要求の木構造Rと経路記述の木構造Sの比較は上記ステップS23からS40を繰り返し、最終的にその木構造の末端までの比較が行われる(ステップS41)。そして、経路記述の木構造Sが経路要求の木構造Rを満足すると判定された木構造Sがパケットプール1より選定される。ここで、経路要求の木構造Rを満足する経路記述の木構造Sが複数存在するときは、木の深さが最小となるものを選ぶことにより、必要な転送回数が最小となる経路記述を選択することができる。
【0071】
判断ステップS26でラベルが一致しないとき、及び判断ステップS31、S35、S39で同じラベルを持つ節点が存在しないときは、経路要求の木構造Rを満足する経路記述の木構造はないと判断される(ステップS42)。
【0072】
次に、図7にもとづいて、本発明のネットワークノード側の処理について説明する。図1の全体システムの構成図において既に説明したように、通信ノード側の構成は、プログラマブルパケット5が供給されて記憶される待ち行列記憶部9と、この待ち行列記憶部9に記憶されているパケット5を順番に取り出して処理する経路解釈部10と、経路制御プログラムを処理した後に次の転送アドレスにパケットを転送するパケット転送装置11から構成される。
【0073】
ここで、経路解釈部10は、待ち行列記憶部9から取り出したパケット5のヘッダ部3に記憶されている経路制御プログラムを読み出して入力するプログラム格納部18と、プログラム格納部に格納された先頭記号を読み込むプログラム処理部19と、プログラムに変数が使用されている場合にその変数がどのノードに対応しているかを示す変数−ノード対照テーブル20から構成されている。
【0074】
上述の通信ノードにおいて、読み込まれた経路の先頭の記号がノード名である場合の動作について説明する。まず、不図示のネットワークから転送されたプログラマブルパケット5は、到着順に待ち行列記憶部9に格納される。この待ち行列記憶部9に格納されたプログラマブルパケット5のヘッダ部3に記憶されている経路制御プログラムはプログラム格納部18にいったん格納される。一例として、この経路記述プログラムは「a;b;c;0」というプログラムであるとする。すなわち、このプログラムを持つパケットは、最初通信ノードaに、次に通信ノードbに、最後に通信ノードcに転送されて終了するプログラムである。
【0075】
次に、プログラム格納部18に格納された先頭記号「a」がプログラム処理部19に読み込まれる。プログラム処理部19は、読み込んだ記号「a」が、次にパケットを転送するノード名であると解釈し、パケット転送装置11とネットワーク2を介してこのパケットを通信ノードaに転送する。このとき、プログラム処理部19は、この記号「a」を経路制御プログラムから除去し、転送するパケットに記録される経路記述プログラムを「b;c;0;0」とする。
【0076】
次に、図8に基づいて、経路制御プログラムの先頭アドレスが変数名である場合について、本発明のネットワークノード側の処理を説明する。すなわち、図8の例では、待ち行列記憶部9に記憶されているパケット5の制御プログラムが、例えば「y;b;y;0」のように変数「y」を含む場合について説明する。
【0077】
まず、変数名が含まれているプログラムが待ち行列記憶部9からプログラム格納部18に格納されると、プログラム処理部19は、この経路制御プログラムの経路を順に読み込み、これが変数名であれば変数―ノード対照テーブル20からその変数名を探す。1番目の記号と3番目の記号「y」は変数であり、変数−ノード対照テーブル20から、これが通信ノードaを表していると認識する。そして、この認識結果に基づいて、パケット転送装置11を介してネットワーク2に送信し、通信ノードaにこのパケット5を転送する。このとき、プログラム処理部19は、この1番目の記号「y」を経路制御プログラムから除去するとともに、3番目の記号「y」をノード名「a」に書き換え、通信ノードaに転送するパケットの経路記述プログラムを「b;a;0;0」に変更する。この変更された経路制御プログラムは、通信ノードaに転送された後に、通信ノードbに転送され、再び通信ノードaに転送されて終了することを意味している。
【0078】
次に、図7または図8に示す本発明のノード側の処理動作について、図9のフロー図に基づいて説明する。
まず、待ち行列記憶部9の先頭パケット5を処理し(ステップS50)、そのパケットの経路制御プログラムを経路解釈部10のプログラム格納部18に呼び出す(ステップS51)。
【0079】
次に、この呼び出したパケットから経路記号を読み(ステップS52)、その先頭記号が変数かどうかを判断する(ステップS53)。先頭記号が変数である場合は、変数−ノード対照テーブル20にその変数と対応するノード名があるか否かが判断される(ステップS54)。この結果、変数に対応するノード名があれば、その経路の変数部分を対応するノード名で書き換え(ステップS55)、次の経路記号を読む(ステップS56)。判断ステップS53で読み込んだ経路記号が変数でない場合は、ステップS56に進み、次の経路記号を読む。
【0080】
続いて、読み込んだ記号が経路の終端にあるか否かを判断する(ステップS57)。読み込んだ記号が経路の終端であれば、次の記号を読み込み(ステップS58)、続いてその記号がノード名か否かが判断される(ステップS59)。このステップS59でノード名でないと判断されると再びステップS58に戻り、新たな記号を読み込む。
【0081】
次に、判断ステップS59で読み込んだ記号がノード名であると判断されれば、そのノード名を不図示のパケットの転送先候補リストに登録し(ステップS60)、次の記号を読む(ステップS61)。そして、記号がノード名であるか否かが判断される(ステップS62)。この結果、読み込んだ記号がノード名であれば、再度ステップS61戻って次の記号を読み込み、記号がノード名でなければ、記号が演算子であるか否かが判断される(ステップS63)。
【0082】
そして、判断ステップS63で、記号が演算子であると判断されると、次の記号が読まれ(ステップS64)、転送先の候補リストに登録される(ステップS65)。そして、登録後はステップS61に進み、次の記号を読む。
【0083】
判断ステップS63で、記号が演算子でないと判断されると、次に、記号が経路の終端のものか否かが判断される(ステップS66)。経路の終端でなければ再びステップS61に戻り、次の記号を読み、経路の終端であると判断されれば、続いて転送先候補リストが空、すなわち「0」か否かが判断される(ステップS67)。
【0084】
転送先の候補リストが空、すなわち「0」であれば、接続可能リストから1つのノードを選択し、転送先ノードに対応したノード名より後(右側)の部分経路にパケット内の経路を書き換える(ステップS69)。そして、パケット転送装置11より、パケットを選定したノードに転送する(ステップS70)
【0085】
判断ステップS67で、転送先候補リストが空でない場合は、候補に対応したノードと接続可能か否かが判断され(ステップS64)、接続可能であれば、候補を接続可能リストに登録する(ステップS72)。そして、その候補を転送先候補リストから削除し(ステップS73)、判断ステップS67に戻る。判断ステップS71で候補に対応するノードと接続可能でないと判断された場合も判断ステップS67に戻り、再び転送先の候補リストが空か否かが判断される。
【0086】
次に、図10に基づいて、ネットワークノード側処理について説明する。図7と図8に示すシステムでは、経路処理が終了したパケットを転送するノード名を経路制御プログラムから消去したが、図10に示す例では、パケットの処理が終了したノードの経路番号を経路制御プログラムに書き込み、パケットが転送された経路を消去せずに記憶保持するようにしている。図7及び図8と共通の部分は同一符号を付して示す。
【0087】
この例では、プログラマブルパケット5のヘッダ部3は経路制御プログラムを格納するプログラム格納領域12と、既に処理が行われた経路の番号を記録する実行位置番号格納部12aを備えている。図10の例では、ノードaからノードbに到着するパケット5のヘッダ部3のプログラム格納領域12に「a;b;c」という経路制御プログラムが記述されており、実行位置番号格納部12aに「2」という数字が記憶されている。このプログラムは、「ノードaに転送された後、ノードbに転送され、最後にノードcに転送される。」ことを意味するプログラムであり、実行位置番号格納部12aに記憶されている「2」という数字は、既に1番目の経路処理が終了して、転送先の通信ノードにおいて2番目の経路処理を行うことを示している。
【0088】
したがって、このパケット5はノードaから現在の処理ノードbに転送されたことがわかり、待ち行列格納部9に記憶されている先頭パケットはノードbの経路解釈部10のプログラム格納部18に読み込まれる。経路解釈部10のプログラム処理部19は、まず、プログラム格納部18に読み込まれた実行位置番号「2」を読み込み、かつ処理する実行位置番号の次にある経路記号「c」を読み込む。
【0089】
次に、実行位置番号記憶部12aに記憶されている実行位置番号「2」の次の経路をプログラム処理部19で解釈した経路番号(ここでは経路cに対応する番号「3」)に変更し、これを実行位置番号記憶部12aに格納する。
こうして、次のノードに転送されるパケット5は、経路制御プログラムは「a;b;c」と実行位置番号「3」を有している。実行位置番号が「3」という数字なので、このパケット5は、2番目の経路bまで転送が終了し、次は3番目のノードcに転送されることを意味する。すなわち、このように処理されたパケット5は、パケット転送装置11を経て、ノードcに転送される。
【0090】
次に、図11のフロー図に基づいて、図10に示すような実行位置番号を書き換える例の動作について説明する。図11のフロー図は、図9のフロー図と概略一致しているので、同じ部分は同一符合を付して説明する。
図11において、ステップS50からステップS57までは図9のフロー図と同じであるので、その部分の説明は省略する。本例においては、図11の判断ステップS57で記号が終端であると判断された場合は、実行位置番号を読み取る(ステップS80)。そして、実行位置番号にある記号を読み(ステップS81)、記号がノード名か否かが判断される(ステップS59)。以下、ステップS60からS64までは図9のフロー図と同じであるので説明を省略する。
【0091】
判断ステップS63で記号が演算子であると判断された場合は、次の記号を読み(ステップS64)、転送先の候補とその経路上の位置をリストに登録する(ステップS82)。
また、判断ステップS67で転送先候補リストが空であると判断された場合は、接続可能リストから1つのノードを選択し(ステップS68)、続いて転送先となったノードの経路上の位置を1つ足した数字を実行位置番号とする(ステップS83)。ステップ71からステップS73の処理は図9と同じであるので省略する。
【0092】
次に、図12に基づいて、本発明のネットワーク経路選択方法を実現するシステムについて説明する。
ここでは、パケットプール1に蓄積されるパケット5は、パケット5a、5b、5cの3つから構成されている。ネットワーク2には3つの通信ノード、例えば、ノードa、ノードb、ノードcが接続されている。
【0093】
吹き出しの部分はパケット5a〜5cとリクエスト6に格納されている記述経路または要求経路を示している。すなわち、パケット5aでは、「a;c;0」、パケット5bでは「a;b;a;c;a;0」、パケット5cでは「a;b;c;a;0」と記述されている。リクエスト6は「a;((b;c)&a*)である。
【0094】
次に、図12に示す本発明のプログラマブルパケットの選択のシステムの動作について説明する。まず、ユーザからのリクエスト(転送要求)を受けると、パケットプール1において、リクエスト6が要求する要求経路を満足するプログラマぶるパケットが選択される。このパケットの選択は、すでに図5と図6で説明したように、要求経路と記述経路を木構造に展開して行われる。
【0095】
この例では、ユーザのリクエストの経路「a;((b;c)&a*)」に対して、パケットプール1の中のどのパケットをどのような手順で選択するかについて以下に説明する。
【0096】
最初に木構造により要求経路と記述経路を比較する。ここでは木構造は特に示すことはしないが、ユーザからのリクエスト6は、ノードaに転送してからノードbへ転送し、更にノードcに転送せよというものであるが、「(b;c)&a*」の部分の要求経路は、ノードbとノードcへの転送中にノードaに任意回数転送されてよいことを意味している。このため、パケット5bに記述されている記述経路「a;b;a;c;a;0」はユーザのリクエスト6を満足する。また、パケット5cの「a;b;c;a;0」もユーザのリクエストを満足することになる。このように、複数のパケットがユーザのリクエストを満足する場合には、転送回数が最小のパケットが選択されるように予め定めておく。この結果、本例の場合は、パケット5cが選択され、ネットワーク2を経てノードaに転送される。
【0097】
次に、図13と図14のフロー図に基づいて、本発明のネットワーク経路選択方法及びネットワーク経路選択システムの実施の形態について説明する。図13は、本発明によるプログラマブルパケット5の転送経路をパケットプール1に予め登録する方法を示すフロー図である。まず、プログラマブルパケット5はパケットプール1に転送される(ステップS101)。次に、パケットプール1は転送されたプログラマブルパケット5を格納する(ステップS102)。続いて、プログラマブルパケット5はそれ自身の転送経路を記述したプログラムのコピーをパケットプール1に通知し(ステップS103)、パケットプールはプログラマブルパケットの経路プログラムを受け取る(ステップS104)。
【0098】
次に、パケットプール1はプログラマブルパケットから受け取った経路プログラムを木構造に変換し(ステップS105)、この変換した木構造をそれ自身のデータベースに登録する(ステップS106)。ここで、リクエスト6が到達した際に、その都度、各プログラマブルパケット5を木構造に変換して経路比較を行うこともできるが、それには転送するまでの時間も増えるので、パケットプール1にプログラマブルパケット5を登録する段階で木構造に変換して登録するようにしている。
【0099】
図14は、パケットプール1がユーザからのリクエスト6(転送要求)を受けたときのプログラマブルパケットの選択方法を示すフロー図である。パケットプール1に転送要求が来ると(ステップS110)、パケットプール1は転送要求中のデータを取り出すとともに、要求経路を示すプログラムを取り出す(ステップS111)。次に、要求経路を木構造に変換し(ステップS112)、続いて要求経路の木構造と予め登録されているパケット5の木構造を比較する(ステップS113)。この結果、要求経路を満足するパケットが選択され(ステップS114)、その選択したパケットに転送要求から取り出したデータを転送してパケットの選択が終了する(ステップS115)。
【0100】
【発明の効果】
以上説明したように、一般的なプログラマブルパケットは、経路プログラムを保有している分、パケットサイズの増大(またはデータ領域の圧迫)や転送コストの増大を招くが、本発明のネットワーク経路選択方法及びネットワーク経路選択システムに用いられるプログラマブルパケットは、経路記述に簡単な専用言語を用いるため、プログラマブルパケットのサイズを大幅に小さくすることができる。
【0101】
また、本発明のネットワーク経路選択方法またはネットワーク経路選択システムによれば、通信パケットを転送する経路を表す経路制御プログラムを記述した通信パケットがパケットプールに複数用意されており、通信パケット内に含まれている経路制御プログラムを入力された経路要求プログラムと比較することにより、パケットプールに格納された通信パケットの中から経路要求に見合った通信パケットを、きわめて簡単に、しかも短時間で選択することができる。
【図面の簡単な説明】
【図1】 本発明のパケットプール及び通信ノードの関係を示す全体システムの構成図である。
【図2】 本発明に用いられるプログラマブルパケットの構造を示す図である。
【図3】 本発明に用いられるパケットプールの構造を示す図である。
【図4】 本発明に用いられる経路用言語を示す図である。
【図5】 本発明に用いられる木構造の生成のアルゴリズムを示すフロー図である。
【図6】 本発明に用いられる木構造の比較のアルゴリズムを示すフロー図である。
【図7】 リクエストがノード名の場合のネットワークノード側の処理を説明するための図である。
【図8】 リクエストが変数名を含む場合のネットワークノード側の処理を説明するための図である。
【図9】 経路解釈を終えた経路を消去する場合の、ネットワークノード側における経路解釈、パケット転送処理を説明するためのフロー図である。
【図10】 実行位置を記録する場合の本発明のネットワークノード側の処理を説明するための図である。
【図11】 経路解釈を終えた実行位置の番号を記録する場合の、ネットワークノード側における経路解釈、パケット転送処理を説明するためのフロー図である。
【図12】 本発明におけるプログラマブルパケットの選択方法を説明するための図である。
【図13】 プログラマブルパケットをパケットプールに登録する方法を示すフロー図である。
【図14】 プログラマブルパケットをパケットプールから選択する方法を示すフロー図である。
【図15】 従来のプログラマブルネットワークの構成と作用を説明するための図である。
【図16】 従来のプログラマブルパケットと本発明に用いられるプログラマブルパケットを比較して示す例である。
【符号の説明】
1・・・パケットプール、2・・・ネットワーク、3・・・ヘッダ部、4・・・データ部、6・・・リクエスト(経路要求)、7・・・経路要求入力部、8・・・比較装置、9・・・待ち行列記憶部、10・・・経路解釈部、11・・・パケット転送部、16・・・木構造生成装置、17・・・木構造比較装置、18・・・プログラム格納部、19・・・プログラム処理部、20・・・変数−ノード対照テーブル

Claims (5)

  1. データ部とヘッダ部を有する通信パケットの転送経路を表す経路制御プログラムを前記通信パケットの前記ヘッダ部に記述した複数の通信パケットを予め格納するパケットプールを用意し、該パケットプールに経路要求プログラムを入力し、該パケットプールから、前記入力された経路要求プログラムに見合った通信パケットを選択するネットワーク経路選択方法であって、
    前記ヘッダ部に経路制御プログラムを含む通信パケットを前記パケットプールに格納するステップと、
    前記経路要求プログラムと前記パケットプールに格納されている前記通信パケットの前記経路制御プログラムとを比較するステップと、
    前記経路要求プログラムと前記経路制御プログラムとの比較により、前記経路要求プログラムを満足する前記経路制御プログラムを有する通信パケットを選択するステップと、
    前記選択した通信パケットのデータ部に、前記経路要求プログラムとデータを有する転送要求の中の前記データを転送するステップと
    を含むことを特徴とするネットワーク経路選択方法。
  2. 前記経路要求プログラムを満足する前記経路制御プログラムを有する通信パケットが前記パケットプール内に複数あるときは、転送回数の最も少ない通信パケットを選択することを特徴とする請求項1に記載のネットワーク経路選択方法。
  3. 前記経路制御プログラムは、経路記述専用のプログラミング言語により転送先及び転送順序を記述するものであることを特徴とする請求項1〜2に記載のネットワーク経路選択方法。
  4. データ部とヘッダ部を有する通信パケットの前記ヘッダ部に、前記通信パケットを転送する経路を表す経路制御プログラムを記述した複数の通信パケットが格納されたパケットプールと、
    前記パケットプールに入力される経路要求プログラムを格納する経路要求プログラム格納部と、
    前記パケットプールに格納された前記複数の通信パケットが持つ前記経路制御プログラムと前記経路要求プログラム格納部に格納された前記経路要求プログラムとを比較する比較手段と、
    前記比較手段で比較した結果、前記経路要求プログラムを満足する前記経路制御プログラムを有する通信パケットを前記パケットプールから選択する選択手段と、
    前記選択手段で選択した通信パケットのデータ部に、前記経路要求プログラムとデータを有する転送要求の中の前記データを転送する転送手段と
    からなるネットワーク経路選択システム。
  5. 前記経路要求プログラムを満足する前記経路制御プログラムを有する通信パケットが前記パケットプール内に複数あるときは、転送回数の最も少ない通信パケットを選択することを特徴とする請求項4に記載のネットワーク経路選択システム。
JP2003159521A 2003-06-04 2003-06-04 ネットワーク経路選択方法及びネットワーク経路選択システム Expired - Fee Related JP4175507B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003159521A JP4175507B2 (ja) 2003-06-04 2003-06-04 ネットワーク経路選択方法及びネットワーク経路選択システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003159521A JP4175507B2 (ja) 2003-06-04 2003-06-04 ネットワーク経路選択方法及びネットワーク経路選択システム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008175670A Division JP2008289185A (ja) 2008-07-04 2008-07-04 ネットワーク経路処理方法及びネットワーク経路処理装置

Publications (2)

Publication Number Publication Date
JP2004363907A JP2004363907A (ja) 2004-12-24
JP4175507B2 true JP4175507B2 (ja) 2008-11-05

Family

ID=34052556

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003159521A Expired - Fee Related JP4175507B2 (ja) 2003-06-04 2003-06-04 ネットワーク経路選択方法及びネットワーク経路選択システム

Country Status (1)

Country Link
JP (1) JP4175507B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4374457B1 (ja) 2008-05-20 2009-12-02 大学共同利用機関法人情報・システム研究機構 集配経路選択システム

Also Published As

Publication number Publication date
JP2004363907A (ja) 2004-12-24

Similar Documents

Publication Publication Date Title
CN105357035B (zh) 通信系统、节点、控制设备、通信方法以及程序
JP3963690B2 (ja) パケット中継処理装置
JP3627599B2 (ja) 情報ルート作成方法
JP5407883B2 (ja) トポロジーツリー作成装置、プログラム、及び方法
WO2011030462A1 (ja) 通信システム、ノード、制御サーバ、通信方法およびプログラム
CN1701304B (zh) 在发布-订购网络中通过有效载荷检测进行分组路由的系统、方法和装置
US20070019561A1 (en) Method and apparatus for monitoring and logging the operation of a distributed processing system
CN104137509A (zh) 用于基于互联网协议的内容路由器的方法和装置
Signorello et al. Ndn. p4: Programming information-centric data-planes
WO1996000945A1 (en) Variable length data sequence matching method and apparatus
CN105141516A (zh) 通信系统、转发节点、路径管理服务器以及通信方法
US7187676B2 (en) Apparatus and method for steering a communication to an open stream
CN101127768A (zh) 创建多维网际协议的方法和装置以及系统
JP4074310B2 (ja) トラヒック分散制御装置、パケット通信ネットワークおよびプログラム
CN107529352A (zh) 用于软件定义的数据中心网络的协议独立的可编程交换机(pips)
CN101110830A (zh) 创建多维地址协议的方法、装置和系统
JP4175507B2 (ja) ネットワーク経路選択方法及びネットワーク経路選択システム
US8886764B2 (en) Quick upload
JP2008167464A (ja) Tlvに基づいたリンク状態のパケットの処理方法及び装置
JP4429173B2 (ja) デジタル通信データに基づいてアクションをトリガーする方法及びコンピュータ・システム
JP2008289185A (ja) ネットワーク経路処理方法及びネットワーク経路処理装置
JP5229109B2 (ja) パケット中継処理装置
TWI260887B (en) Sparse and non-sparse data management method and system
CN108123897A (zh) 一种sdn和nfv异构网络融合的方法、网关
JP4365397B2 (ja) パケット中継処理装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060516

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060516

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080513

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080704

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080805

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080813

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees