JP2007013803A - パケット転送方法、端末およびネットワーク装置 - Google Patents
パケット転送方法、端末およびネットワーク装置 Download PDFInfo
- Publication number
- JP2007013803A JP2007013803A JP2005194249A JP2005194249A JP2007013803A JP 2007013803 A JP2007013803 A JP 2007013803A JP 2005194249 A JP2005194249 A JP 2005194249A JP 2005194249 A JP2005194249 A JP 2005194249A JP 2007013803 A JP2007013803 A JP 2007013803A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- destination
- address
- tunnel
- terminal
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Telephonic Communication Services (AREA)
Abstract
【課題】IP通信を利用するアプリケーションを変更することなく、i3の機能を利用してIPパケットを転送することが可能なパケット転送方法を得ること。
【解決手段】本発明にかかるパケット転送方法は、IP通信を行う端末(1−1〜1−m)とi3ネットワークをIPネットワーク上に構成するネットワーク装置(2−1〜2−n)との間を、IPパケットを透過的に転送可能な所定のトンネルで接続し、そのトンネルをIP通信が可能な仮想インタフェースとして構成し、そして、i3ネットワークでのIDをIPアドレスと同じフォーマットとすることによって、IPパケットの転送をi3での宛先IDによる転送により実現する。
【選択図】 図1
【解決手段】本発明にかかるパケット転送方法は、IP通信を行う端末(1−1〜1−m)とi3ネットワークをIPネットワーク上に構成するネットワーク装置(2−1〜2−n)との間を、IPパケットを透過的に転送可能な所定のトンネルで接続し、そのトンネルをIP通信が可能な仮想インタフェースとして構成し、そして、i3ネットワークでのIDをIPアドレスと同じフォーマットとすることによって、IPパケットの転送をi3での宛先IDによる転送により実現する。
【選択図】 図1
Description
本発明は、IP通信を行うホスト端末と、i3(Internet Indirection Infrastructure)ネットワークをIPネットワーク上に構成するネットワーク装置と、から構成されるネットワークにおけるパケット転送方法に関するものである。
下記非特許文献1に記載のi3に示されるランデブ通信方式を実現するオーバレイネットワークでは、受信者が自らの受信したいパケットの宛先IDをネットワークに登録することにより、モビリティ,マルチキャスト,エニキャストといった通信形態を実現する。また、受信者が自らの受信したいパケットの宛先IDをネットワークに登録する際に、ネットワーク内で受信者に転送されるまでの経路を指定することが可能である。また、IDは任意のデータ長のデータとすることが可能であり、受信者がi3ネットワークに指定する受信したいパケットの宛先IDと、送信されるパケットに付与されるIDのマッチングは、最長プレフィックスマッチにより行われる。
Internet Indirection Infrastructure, Ion Stoica, Daniel Adkins, Shelley Zhuang, Scott Shenker, Sonesh Surana, ACM SIGCOMM2002
しかしながら、上記非特許文献1に記載のi3については、以下に示す問題点がある。
(1)i3は、オーバレイネットワークとして構成され、i3を用いた通信は、アプリケーションが通常のIP通信とは異なる方式で実行することを想定している。したがって、端末で動作するIP通信を利用する既存のアプリケーションを変えることなく、受信者によるパケット転送経路制御,モビリティ,マルチキャスト,エニキャストといった通信機能を、提供することができない。
(2)また、受信者がi3ネットワークに登録可能な「受信を希望するパケットの条件」が、パケットの宛先IDのみであり、i3のIDのマッチング方式が最長プレフィックスマッチである。このため、端末が受信したいパケットを、TCPのコネクション単位のようなフロー単位で指定することができない。したがって、アプリケーションが異なる端末間を移動するセッションハンドオーバを実現しようとした場合に、アプリケーションが使用しているTCPコネクションだけを、新しい端末に転送することができない。
(3)また、エニキャストを利用してサーバの負荷分散を実現しようとした場合に、i3の方式では、ID値によりランダムに負荷分散を行うことしかできない。このため、機能分散(例:DNSサーバでFQDN(Fully Qualified Domain Name)の内容によって管理するサーバが異なる場合)に対応することができない。
(4)また、i3の通信では、ある宛先IDのパケットを受信している受信者が1つか複数かを、送信者が知ることができない。このため、送信者は、受信者が1つと考えてTCP通信を行い、実際には複数受信者が存在し、TCP通信が行えない可能性がある。
本発明は、上記に鑑みてなされたものであって、端末で動作するIP通信を利用するアプリケーションを変更することなく、i3の機能(i3が提供する受信者からの経路制御,モビリティ,マルチキャスト,エニキャストといった機能)を利用してIPパケットを転送することが可能なパケット転送方法を得ることを目的とする。
また、TCPコネクション等、トランスポート層の情報による経路制御を可能とするパケット転送方法を得ることを目的とする。
また、IPパケットの内容による経路制御を可能とし、サーバ負荷分散において、ある範囲の機能分散に対応可能なパケット転送方法を得ることを目的とする。
また、受信者が複数存在する場合であってもTCP通信を可能とするパケット転送方法を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明にかかるパケット転送方法は、IP通信を行う端末と、i3ネットワークをIPネットワーク上に構成するネットワーク装置と、から構成されるネットワークにおいて、端末とネットワーク装置の間を所定のトンネルで接続し、i3ネットワークにおけるIDをIPアドレスと同じフォーマットとした場合のパケット転送方法であって、たとえば、端末が、IP通信用のアプリケーションを用いて、トンネル上で、IPパケットおよびパケット転送経路情報を登録または削除するための制御信号の送受信を行い、当該登録時に受信したいパケットの宛先IPアドレスを指定する第1のパケット転送ステップと、ネットワーク装置が、特定のトンネルから制御信号を受信した場合に、当該制御信号に指定されるIPアドレスと当該トンネルとの対応を登録または削除し、さらに、自装置のIPアドレスを追加したパケット経路情報をi3ネットワークに登録する経路情報制御ステップと、ネットワーク装置が、前記トンネルからIPパケットを受信した場合に、当該IPパケットに含まれる宛先IPアドレスを宛先IDとして扱い、かつ受信したIPパケットをデータとするi3パケットを作成し、当該宛先IDに関する転送先情報を管理する他のネットワーク装置へi3パケットを転送する第2のパケット転送ステップと、ネットワーク装置が、受信したi3パケットの宛先IDに基づいて他のネットワーク装置との間でi3の方式で規定された所定の転送処理を行い、また、i3パケットの宛先がIPアドレスの場合、当該i3パケットのデータであるIPパケットの宛先IPアドレスに対応付けられたトンネル上にIPパケットを転送する第3のパケット転送ステップと、を含むことを特徴とする。
この発明によれば、端末で動作するIP通信用のアプリケーションを変更することなく、i3の機能(受信者によるパケット転送経路制御,モビリティ,マルチキャスト,エニキャストといった機能)を利用してIPパケットを転送することができる、という効果を奏する。
以下に、本発明にかかるパケット転送方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
図1は、本発明にかかるパケット転送方法を実現するためのネットワーク構成の一例を示す図であり、たとえば、IP通信を行うホスト端末(端末)1−1,1−2,…,1−mと、i3(Internet Indirection Infrastructure)に示されるランデブ通信方式を実現するオーバレイネットワーク(以下、i3ネットワークと呼ぶ)をIPネットワーク上に構成するネットワーク装置2−1,2−2,…,2−nと、を備えている。
このネットワークにおいて、本実施の形態では、端末とネットワーク装置の間を、IPパケットを透過的に転送可能なトンネル(以下、端末−装置間トンネルと呼ぶ)で接続する。また、i3ネットワークにおけるIDとしては、たとえば、IPアドレス(IPv4,IPv6のいずれでも可)と同じフォーマットのものを使用する。また、端末−装置間トンネル上では、端末が、指定するID(=IPアドレス)宛のパケットを受信する。また、端末−装置間トンネル上では、idstackを示すトリガ(IDとidstackの組)の登録/削除を指示するための制御信号の送受信も可能とする。なお、idstackは、i3ネットワーク内で転送に使用する経路を指定するためのIDかIPアドレスのリスト(空も可)である。
図2は、端末1(上記端末1−1〜1−mに相当)の構成例を示す図であり、たとえば、LinuxをOSとするPCとする。図2において、端末1は、IP通信モジュール11と、トンネル通信モジュール12と、仮想インタフェースドライバ13と、アプリケーション14−1〜14−kと、から構成されている。
上記IP通信モジュール11は、IPネットワークを介して端末−ネットワーク装置間のIP通信を実現するIPプロトコル処理を行う機能を提供し、たとえば、Linuxに含まれるIPプロトコルスタックS/Wによって実現される。
また、トンネル通信モジュール12は、端末−装置間トンネルを実現するための通信プロトコル処理を行う。たとえば、IETF(Internet Engineering Task Force)のrfc2784に規定されるGRE(Generic Routing Encapsulation)を通信プロトコルとして使用することにより、トンネル通信を実現する。端末−装置間トンネルでIPパケットを透過的に転送するときは、GREヘッダの「Protocol Type」にIPを表す値を設定し、端末−装置間トンネルでトリガの登録/削除を指示するための制御信号の送受信を行うときは、GREヘッダの「Protocol Type」に制御信号を示す値を設定する。これにより、1つの端末−装置間トンネル上でIPパケット転送と制御信号転送とを実現する。
また、仮想インタフェースドライバ13は、端末−装置間トンネルを、IP通信が可能な1つのインタフェースとして見せるための機能を提供するものであり、Linuxのデバイスドライバとして実現する。
また、アプリケーション14−1〜14−kは、Linux上で動作するアプリケーションであり、IP通信モジュール11を用いたIP通信や、仮想インタフェースドライバ13が提供するAPIを利用して端末−装置間トンネルでトリガの登録/削除を指示するための制御信号の送受信、を行う。
図3は、ネットワーク装置2(上記ネットワーク装置2−1〜2−nに相当)の構成例を示す図であり、たとえば、LinuxをOSとするPCとする。図3において、ネットワーク装置2は、IP通信モジュール21と、トンネル通信モジュール22と、DHT検索モジュール23と、宛先ID端末テーブル24と、宛先IDルーティングテーブル25と、制御モジュール26と、から構成されている。
上記IP通信モジュール21は、IPネットワークを介して、端末−ネットワーク装置間のIP通信とネットワーク装置間のIP通信を実現するIPプロトコル処理を行う機能を提供し、たとえば、Linuxに含まれるIPプロトコルスタックS/Wによって実現される。また、トンネル通信モジュール22は、上記トンネル通信モジュール12と同様の処理を行う。
また、DHT検索モジュール23は、ChordというDHT(Distributed Hash Table)検索方式を実現するモジュールである。ある宛先IDが与えられたときに、その宛先IDがマップされるネットワーク装置を決定する。
また、宛先ID端末テーブル24は、宛先IDをIDとして指定するトリガを登録している端末−装置間トンネルのリストをデータとして保持する。また、宛先IDルーティングテーブル25は、自装置が管理することになるIDをIDとして指定するトリガに示されるidstackのリストをデータとして保持する。また、制御モジュール26は、他のモジュールの機能を利用して、本実施の形態における特徴的な処理を実現する。
つづいて、上記のように構成されるネットワークにおける各装置の動作例について説明する。
端末1の各アプリケーションは、端末−装置間トンネルを仮想インタフェースとして扱い、その仮想インタフェース上で通常のIPプロトコル処理手順に基づいてIPパケットの送受信を行う。たとえば、仮想インタフェースに、自端末のIPアドレスとサブネットワークアドレスとを割り当てる。IPアドレスはIPv4,IPv6のいずれでもよい。
ネットワーク装置2の制御モジュール26は、自装置に接続される端末−装置間トンネルについて、宛先ID(=IPアドレス)をキーとして、宛先ID端末テーブル24を管理する。また、制御モジュール26は、i3の方式によって自装置が管理することになるIDをキーとして、宛先IDルーティングテーブル25を管理する。
そして、ネットワーク装置2の制御モジュール26は、端末−装置間トンネル上で、トリガの登録を指示する制御信号を端末1から受信した場合に、そのトリガに指定されるIDと端末−装置間トンネルとの対応付けを、宛先ID端末テーブル24に追加する。さらに、そのトリガに示されるidstackを、そのidstackが表すIDのリストの最後に自装置のIPアドレスを追加したidstackに置き換えたトリガを、i3ネットワークに登録する。トリガの登録方式は、i3の方式に従う。
また、ネットワーク装置2の制御モジュール26は、端末−装置間トンネル上で、トリガの削除を指示する制御信号を端末1から受信した場合に、そのトリガに指定されるIDと端末−装置間トンネルとの対応付けを、宛先ID端末テーブル24から削除する。さらに、そのトリガに示されるidstackを、そのidstackが表すIDのリストの最後に自装置のIPアドレスを追加したidstackに置き換えたトリガを、i3ネットワークから削除する。トリガの削除方式は、i3の方式に従う。
たとえば、端末1内の特定のアプリケーションが、仮想インタフェース上で、IPパケットを送信すると、そのIPパケットは、端末−装置間トンネル経由でネットワーク装置2に転送される。ネットワーク装置2の制御モジュール26は、端末−装置間トンネルから受信したIPパケットに含まれる宛先IPアドレスをIDとして扱い、このIDを要素IDとして含むidstackを作成し、さらに、このidstackを宛先としIPパケットをデータとするi3パケットを作成する。そして、上記宛先IPアドレスに等しい宛先IDに関する転送先情報を管理するネットワーク装置2(他のネットワーク装置)へ、i3パケットを転送する。
上記i3パケットを受信したネットワーク装置2の制御モジュール26は、i3パケットの宛先として示されるidstackの先頭要素が、たとえば、ID(=ID#1)の場合、宛先IDルーティングテーブル25のリストに含まれる宛先IDの中でID#1に最長プレフィックスマッチするものを検索する。そして、受信したi3パケットの宛先idstackの先頭要素を、ID#1をキーとするデータに示されるidstack(宛先IDルーティングテーブル25に保持されたidstackのリスト中の単一または複数のidstack)の内容に、個別に置き換えたi3パケットを作成し、それらのi3パケットをi3の方式で転送する。
また、上記i3パケットを受信したネットワーク装置2の制御モジュール26は、i3パケットの宛先として示されるidstackの先頭要素が、たとえば、IPアドレス(=IP#1)の場合、i3パケットの宛先に示されるidstackの先頭要素を削除する。このとき、idstackが空になる場合は、宛先を示すidstackが空のi3パケットのデータであるIPパケットの宛先IPアドレスをキーとして、宛先ID端末テーブル24を検索し、検索結果として得られる全ての端末−装置間トンネル上にIPパケットを送信する。そして、端末1は、端末−装置間トンネルから受信したIPパケット(仮想インタフェース上で受信したIPパケット)を、通常のIPプロトコル処理手順により受信する。ただし、上記の処理でidstackが空でない場合は、そのidstackを宛先としたi3パケットを作成し、そのi3パケットをi3の方式で転送する。
以降、上記i3パケットの転送処理を繰り返し実行することにより、最終的には、端末1からの指示によりトリガを登録したネットワーク装置2に、i3パケットが転送される。
なお、上記i3の方式での転送処理は、以下の通りである。たとえば、宛先に示されるidstackの先頭要素がIDである場合は、そのIDに関する転送先情報を管理するネットワーク装置へi3パケットを転送する。宛先に示されるidstackの先頭要素がIPアドレスである場合は、そのIPアドレスを持つネットワーク装置へi3パケットを転送する。
このように、本実施の形態においては、i3による通信を行うネットワーク装置と、IP通信を行うアプリケーションが動作する端末と、の間をトンネルで接続し、端末は、そのトンネルを、IP通信が可能な仮想インタフェースとして構成する。また、端末は、そのトンネルを用いて、ネットワーク装置に対してi3におけるパケット転送経路を制御する。また、i3でのIDをIPアドレスと同じフォーマットとし、IPパケットの転送を、i3での宛先IDによる転送により実現する。これにより、端末で動作するIP通信用のアプリケーションを変更することなく、i3の機能(受信者によるパケット転送経路制御,モビリティ,マルチキャスト,エニキャストといった機能)を利用してIPパケットを転送することができる。
実施の形態2.
つづいて、実施の形態2の動作について説明する。なお、ネットワーク、端末1およびネットワーク装置2の構成については、前述した実施の形態1と同様である。本実施の形態では、前述した実施の形態1と異なる処理について説明する。
つづいて、実施の形態2の動作について説明する。なお、ネットワーク、端末1およびネットワーク装置2の構成については、前述した実施の形態1と同様である。本実施の形態では、前述した実施の形態1と異なる処理について説明する。
本実施の形態においては、端末1がネットワーク装置2に登録指示可能なトリガを、IDとトランスポート層条件とidstackとの組み合わせに拡張し、トランスポート層条件として、送信元アドレスとトランスポート層のプロトコルと送信元ポート番号と宛先ポート番号とを指定することとした。トランスポート層条件を構成する各項目については、指定を必須とする。
また、本実施の形態の各ネットワーク装置において、宛先ID端末テーブル24には、宛先IDとトランスポート層条件を指定するトリガを登録している端末−装置間トンネルのリストをデータとして保持する。また、宛先IDルーティングテーブル25には、i3の方式によって自装置が管理することになるIDとトランスポート層条件を指定するトリガに示されるidstackのリストをデータとして保持する。
たとえば、ネットワーク装置2の制御モジュール26は、自装置に接続される端末−装置間トンネルについて、宛先ID(=IPアドレス)とトランスポート層条件をキーとして、宛先ID端末テーブル24を管理する。また、制御モジュール26は、i3の方式によって自装置が管理することになるIDとトランスポート層条件をキーとして、宛先IDルーティングテーブル25を管理する。
そして、ネットワーク装置2の制御モジュール26は、端末−装置間トンネル上で、トリガの登録を指示する制御信号を端末1から受信した場合に、そのトリガに指定されるIDおよびトランスポート層条件と、端末−装置間トンネルと、の対応付けを、宛先ID端末テーブル24に追加する。さらに、そのトリガに示されるidstackを、そのidstackが表すIDのリストの最後に自装置のIPアドレスを追加したidstackに置き換えたトリガを、i3ネットワークに登録する。トリガの登録方式は、i3の方式に従う。
一方で、ネットワーク装置2の制御モジュール26は、端末−装置間トンネル上で、トリガの削除を指示する制御信号を端末1から受信した場合に、そのトリガに指定されるIDおよびトランスポート層条件と、端末−装置間トンネルと、の対応付けを、宛先ID端末テーブル24から削除する。さらに、そのトリガに示されるidstackを、そのidstackが表すIDのリストの最後に自装置のIPアドレスを追加したidstackに置き換えたトリガを、i3ネットワークから削除する。トリガの削除方式は、i3の方式に従う。
また、i3パケットを受信したネットワーク装置2の制御モジュール26は、i3パケットの宛先として示されるidstackの先頭要素が、たとえば、ID(=ID#1)の場合、宛先IDルーティングテーブル25のリストに含まれる宛先IDの中でID#1に最長プレフィックスマッチするものを検索する。そして、受信したi3パケットのデータに示されるIPパケットの内容と、各エントリのトランスポート層条件と、のマッチング処理を行う。トランスポート層条件がマッチするエントリが存在する場合は、受信したi3パケットの宛先idstackの先頭要素を、マッチするエントリのデータに示されるidstack(宛先IDルーティングテーブル25に保持されたidstackのリスト中の単一または複数のidstack)の内容で、個別に置き換えたi3パケットを作成し、それらのi3パケットをi3の方式で転送する。また、トランスポート層条件がマッチするエントリが存在しない場合は、受信したi3パケットの宛先idstackの先頭要素を、最長プレフィックスマッチする全てのエントリのデータに示されるidstackの内容で、個別に置き換えたi3パケットを作成し、それらのi3パケットをi3の方式で転送する。
また、i3パケットを受信したネットワーク装置2の制御モジュール26は、i3パケットの宛先として示されるidstackの先頭要素が、たとえば、IPアドレス(=IP#1)の場合、i3パケットの宛先に示されるidstackの先頭要素を削除する。このとき、idstackが空になる場合は、そのi3パケットのデータであるIPパケットの宛先IPアドレスをキーとして、宛先ID端末テーブル24を検索する。そして、検索結果として得られた全てのエントリ(端末−装置間トンネル)について、トランスポート層条件とi3パケットのデータであるIPパケットとのマッチングを行い、マッチするエントリが存在すれば、そのエントリに示される端末−装置間トンネルのリストに含まれる、全ての端末−装置間トンネル上にIPパケットを送信する。トランスポート層条件がマッチするエントリが存在しなければ、IPアドレスをキーとする検索で得られた全エントリに示される端末−装置間トンネルのリストに含まれる、全ての端末−装置間トンネル上にIPパケットを送信する。ただし、上記の処理でidstackが空でない場合は、そのidstackを宛先としたi3パケットを作成し、そのi3パケットをi3の方式で転送する。
以降、上記i3パケットの転送処理を繰り返し実行することにより、最終的には、端末1からの指示によりトリガを登録したネットワーク装置2に、i3パケットが転送される。
このように、本実施の形態においては、端末が、受信したいパケットの宛先IDだけでなく、トランスポート層条件についても指定可能とし、受信したいパケットを、TCPのコネクション単位のようなフロー単位で指定することを可能とした。これにより、実施の形態1と同様の効果が得られるとともに、さらに、アプリケーションが異なる端末間を移動するセッションハンドオーバを実現しようとした場合に、アプリケーションが使用しているTCPコネクションだけを、新しい端末に転送することができる。すなわち、トランスポート層の情報による経路制御を実現できる。
なお、上記においては、トランスポート層条件を構成する各項目の指定を必須として説明したが、これに限らず、トランスポート層条件を構成する各項目の指定を必須とせずに、実施の形態1の処理と併用することも可能とする。
実施の形態3.
つづいて、実施の形態3の動作について説明する。なお、ネットワーク、端末1およびネットワーク装置2の構成については、前述した実施の形態1および2と同様である。本実施の形態では、前述した実施の形態1と異なる処理について説明する。
つづいて、実施の形態3の動作について説明する。なお、ネットワーク、端末1およびネットワーク装置2の構成については、前述した実施の形態1および2と同様である。本実施の形態では、前述した実施の形態1と異なる処理について説明する。
本実施の形態においては、端末1がネットワーク装置2に登録指示可能なトリガを、IDとパケット内容条件とidstackとの組み合わせに拡張し、パケット内容条件として、文字列のパターンを表す拡張正規表現を指定することとした。パケット内容条件については、指定を必須とする。
また、本実施の形態の各ネットワーク装置において、宛先ID端末テーブル24には、宛先IDとパケット内容条件を指定するトリガを登録している端末−装置間トンネルのリストをデータとして保持する。また、宛先IDルーティングテーブル25には、i3の方式によって自装置が管理することになるIDとパケット内容条件を指定するトリガに示されるidstackのリストをデータとして保持する。
たとえば、ネットワーク装置2の制御モジュール26は、自装置に接続される端末−装置間トンネルについて、宛先ID(=IPアドレス)とパケット内容条件をキーとして、宛先ID端末テーブル24を管理する。また、制御モジュール26は、i3の方式によって自装置が管理することになるIDとパケット内容条件をキーとして、宛先IDルーティングテーブル25を管理する。
そして、ネットワーク装置2の制御モジュール26は、端末−装置間トンネル上で、トリガの登録を指示する制御信号を端末1から受信した場合に、そのトリガに指定されるIDおよびパケット内容条件と、端末−装置間トンネルと、の対応付けを、宛先ID端末テーブル24に追加する。さらに、そのトリガに示されるidstackを、そのidstackが表すIDのリストの最後に自装置のIPアドレスを追加したidstackに置き換えたトリガを、i3ネットワークに登録する。トリガの登録方式は、i3の方式に従う。
一方で、ネットワーク装置2の制御モジュール26は、端末−装置間トンネル上で、トリガの削除を指示する制御信号を端末1から受信した場合に、そのトリガに指定されるIDおよびパケット内容条件と、端末−装置間トンネルと、の対応付けを、宛先ID端末テーブル24から削除する。さらに、そのトリガに示されるidstackを、そのidstackが表すIDのリストの最後に自装置のIPアドレスを追加したidstackに置き換えたトリガを、i3ネットワークから削除する。トリガの削除方式は、i3の方式に従う。
また、i3パケットを受信したネットワーク装置2の制御モジュール26は、i3パケットの宛先として示されるidstackの先頭要素が、たとえば、ID(=ID#1)の場合、宛先IDルーティングテーブル25のリストに含まれる宛先IDの中でID#1に最長プレフィックスマッチするものを検索する。そして、受信したi3パケットのデータに示されるIPパケットの内容と、各エントリのパケット内容条件と、のマッチング処理を行う。パケット内容条件がマッチするエントリが存在する場合は、受信したi3パケットの宛先idstackの先頭要素を、マッチするエントリのデータに示されるidstack(宛先IDルーティングテーブル25に保持されたidstackのリスト中の単一または複数のidstack)の内容で、個別に置き換えたi3パケットを作成し、それらのi3パケットをi3の方式で転送する。また、パケット内容条件がマッチするエントリが存在しない場合は、受信したi3パケットの宛先idstackの先頭要素を、最長プレフィックスマッチする全てのエントリのデータに示されるidstackの内容で、個別に置き換えたi3パケットを作成し、それらのi3パケットをi3の方式で転送する。
また、i3パケットを受信したネットワーク装置2の制御モジュール26は、i3パケットの宛先として示されるidstackの先頭要素が、たとえば、IPアドレス(=IP#1)の場合、i3パケットの宛先に示されるidstackの先頭要素を削除する。このとき、idstackが空になる場合は、そのi3パケットのデータであるIPパケットの宛先IPアドレスをキーとして、宛先ID端末テーブル24を検索する。そして、検索結果として得られた全てのエントリ(端末−装置間トンネル)について、パケット内容条件とi3パケットのデータであるIPパケットとのマッチングを行い、マッチするエントリが存在すれば、そのエントリに示される端末−装置間トンネルのリストに含まれる、全ての端末−装置間トンネル上にIPパケットを送信する。パケット内容条件がマッチするエントリが存在しなければ、IPアドレスをキーとする検索で得られた全エントリに示される端末−装置間トンネルのリストに含まれる、全ての端末−装置間トンネル上にIPパケットを送信する。ただし、上記の処理でidstackが空でない場合は、そのidstackを宛先としたi3パケットを作成し、そのi3パケットをi3の方式で転送する。
以降、上記i3パケットの転送処理を繰り返し実行することにより、最終的には、端末1からの指示によりトリガを登録したネットワーク装置2に、i3パケットが転送される。
このように、本実施の形態においては、端末が、受信したいパケットの宛先IDだけでなく、パケット内容条件についても指定可能とし、たとえば、受信者が、「DNS Query」に指定されるFQDNの値を、条件として指定可能な構成とした。これにより、実施の形態1と同様の効果が得られるとともに、さらに、i3の方式において、サーバの負荷分散を実現しようとした場合に、ID値によるランダムな負荷分散ではなく、機能分散を実現できる。
なお、上記においては、パケット内容条件の指定を必須として説明したが、これに限らず、パケット内容条件の指定を必須とせずに、実施の形態1の処理と併用することも可能とする。
実施の形態4.
つづいて、実施の形態4の動作について説明する。なお、ネットワークおよび端末1の構成については、前述した実施の形態1および2と同様である。本実施の形態では、前述した実施の形態1〜3と異なる処理について説明する。
つづいて、実施の形態4の動作について説明する。なお、ネットワークおよび端末1の構成については、前述した実施の形態1および2と同様である。本実施の形態では、前述した実施の形態1〜3と異なる処理について説明する。
図4は、実施の形態4のネットワーク装置2(図1のネットワーク装置2−1〜2−nに相当)の構成例を示す図であり、たとえば、LinuxをOSとするPCとする。図4において、ネットワーク装置2は、前述したIP通信モジュール21,トンネル通信モジュール22,DHT検索モジュール23,宛先ID端末テーブル24,宛先IDルーティングテーブル25に加えて、さらに、制御モジュール26aと、TCP端末テーブル27aと、TCPルーティングテーブル28aと、を備えている。なお、前述した実施の形態1のネットワーク装置2(図3参照)と同様の構成については、同一の符号を付してその説明を省略する。
本実施の形態の各ネットワーク装置において、宛先ID端末テーブル24には、宛先IDをIDとして指定するトリガを登録している端末−装置間トンネルのリストを、データとして保持する。また、宛先IDルーティングテーブル25には、i3の方式によって自装置が管理することになるIDをIDとして指定するトリガに示されるidstackのリストを、データとして保持する。
たとえば、ネットワーク装置2の制御モジュール26aは、自装置に接続される端末−装置間トンネルについて、宛先ID(=IPアドレス)をキーとして、宛先ID端末テーブル24を管理する。また、制御モジュール26aは、i3の方式によって自装置が管理することになるIDをキーとして、宛先IDルーティングテーブル25を管理する。
また、ネットワーク装置2の制御モジュール26aは、TCPコネクションに関する情報を保持するために、送信元IPアドレス,宛先IPアドレス,送信元ポート番号,宛先ポート番号をキーとして、転送に使用する端末−装置間トンネル(1つ)をデータとして保持するTCP端末テーブル27aを管理する。また、制御モジュール26aは、送信元IPアドレス,宛先IPアドレス,送信元ポート番号,宛先ポート番号をキーとして、転送に使用するidstack(1つ)をデータとして保持するTCPルーティングテーブルを管理する。
そして、ネットワーク装置2の制御モジュール26aは、端末−装置間トンネル上で、トリガの登録を指示する制御信号を端末1から受信した場合に、そのトリガに指定されるIDと、端末−装置間トンネルと、の対応付けを、宛先ID端末テーブル24に追加する。さらに、そのトリガに示されるidstackを、そのidstackが表すIDのリストの最後に自装置のIPアドレスを追加したidstackに置き換えたトリガを、i3ネットワークに登録する。トリガの登録方式は、i3の方式に従う。
一方で、ネットワーク装置2の制御モジュール26aは、端末−装置間トンネル上で、トリガの削除を指示する制御信号を端末1から受信した場合に、そのトリガに指定されるIDと、端末−装置間トンネルと、の対応付けを、宛先ID端末テーブル24から削除する。さらに、そのトリガに示されるidstackを、そのidstackが表すIDのリストの最後に自装置のIPアドレスを追加したidstackに置き換えたトリガを、i3ネットワークから削除する。トリガの削除方式は、i3の方式に従う。
また、i3パケットを受信したネットワーク装置2の制御モジュール26aは、i3パケットのデータに示されるIPパケットがTCPパケットではなく、かつ、i3パケットの宛先として示されるidstackの先頭要素が、たとえば、ID(=ID#1)の場合、宛先IDルーティングテーブル25のリストに含まれる宛先IDの中でID#1に最長プレフィックスマッチするものを検索する。そして、受信したi3パケットの宛先idstackの先頭要素を、ID#1をキーとするデータに示されるidstack(宛先IDルーティングテーブル25に保持されたidstackのリスト中の単一または複数のidstack)の内容に、個別に置き換えたi3パケットを作成し、それらのi3パケットをi3の方式で転送する。
また、i3パケットを受信したネットワーク装置2の制御モジュール26aは、i3パケットの宛先に示されるidstackの先頭要素が、たとえば、ID(=ID#1)で、かつ、i3パケットのデータに示されるIPパケットがTCPパケットでSYNフラグが設定されるものの場合、宛先IDルーティングテーブル25のリストに含まれる宛先IDの中でID#1に最長プレフィックスマッチするものを検索する。そして、ID#1をキーとするデータに示されるidstackの中からランダムに1つを選択し、受信したi3パケットの宛先idstackの先頭要素を、選択されたidstackの内容に置き換えたi3パケットを作成し、そのi3パケットをi3の方式で転送する。さらに、TCPルーティングテーブル28aに、i3パケットに含まれるTCPパケットの送信元IPアドレス,宛先IPアドレス,送信元ポート番号,宛先ポート番号をキーとして、選択したidstackをデータとするエントリを追加する。
また、i3パケットを受信したネットワーク装置2の制御モジュール26aは、i3パケットの宛先に示されるidstackの先頭要素が、たとえば、ID(=ID#1)で、かつ、i3パケットのデータに示されるIPパケットがTCPパケットでSYNフラグもFINフラグも設定されないものの場合、i3パケットに含まれるTCPパケットの送信元IPアドレス,宛先IPアドレス,送信元ポート番号,宛先ポート番号をキーとして、TCPルーティングテーブル28aを検索する。この検索でデータが得られなければ、i3パケットを廃棄する。一方で、この検索でデータが得られた場合は、i3パケットの宛先idstackの先頭要素を、検索で得られたidstackの内容に置き換えたi3パケットを作成し、そのi3パケットをi3の方式で転送する。
また、i3パケットを受信したネットワーク装置2の制御モジュール26aは、i3パケットの宛先に示されるidstackの先頭要素が、たとえば、ID(=ID#1)で、かつ、i3パケットのデータに示されるIPパケットがTCPパケットでFINフラグが設定されるものの場合、i3パケットに含まれるTCPパケットの送信元IPアドレス,宛先IPアドレス,送信元ポート番号,宛先ポート番号をキーとして、TCPルーティングテーブル28aを検索する。この検索でエントリが得られるのであれば、そのエントリをTCPルーティングテーブル28aから削除する。さらに、宛先IDルーティングテーブル25に含まれる宛先IDの中でID#1に最長プレフィックスマッチするものを検索する。そして、受信したi3パケットの宛先idstackの先頭要素を、ID#1をキーとするデータに示されるidstackの内容に、個別に置き換えたi3パケットを作成し、それらのi3パケットをi3の方式で転送する。
また、i3パケットを受信したネットワーク装置2の制御モジュール26aは、i3パケットの宛先に示されるidstackの先頭要素が、IPアドレス(=IP#1)の場合、i3パケットの宛先に示されるidstackの先頭要素を削除する。このとき、idstackが空になる場合は、以下の処理を行う。
たとえば、idstackが空になり、かつ、宛先を示すidstackが空のi3パケットのデータであるIPパケットがTCPパケットではない場合は、そのIPパケットの宛先IPアドレスをキーとして、宛先ID端末テーブル24を検索し、検索結果として得られる全ての端末−装置間トンネル上にIPパケットを送信する。
また、idstackが空になり、かつ、i3パケットのデータに示されるIPパケットがTCPパケットでSYNフラグが設定されるものの場合は、そのIPパケットの宛先IPアドレスをキーとして、宛先ID端末テーブル24を検索し、さらに、検索結果として得られる全ての端末−装置間トンネルの中からランダムに1つを選択し、選択した端末−装置間トンネル上にIPパケットを送信する。そして、TCP端末テーブル27aに、i3パケットに含まれるTCPパケットの送信元IPアドレス,宛先IPアドレス,送信元ポート番号,宛先ポート番号をキーとして選択した端末−装置間トンネルをデータとするエントリを追加する。
また、idstackが空になり、かつ、i3パケットのデータに示されるIPパケットがTCPパケットでSYNフラグもFINフラグも設定されないものの場合は、i3パケットに含まれるTCPパケットの送信元IPアドレス,宛先IPアドレス,送信元ポート番号,宛先ポート番号をキーとして、TCP端末テーブル27aを検索する。この検索でデータが得られなければi3パケットを廃棄する。一方で、この検索でデータが得られた場合は、検索で得られた端末−装置間トンネル上にIPパケットを送信する。
また、idstackが空になり、かつ、i3パケットのデータに示されるIPパケットがTCPパケットでFINフラグが設定されるものの場合は、i3パケットに含まれるTCPパケットの送信元IPアドレス,宛先IPアドレス,送信元ポート番号,宛先ポート番号をキーとして、TCP端末テーブル27aを検索し、検索でエントリが得られるのであればエントリをTCP端末テーブル27aから削除する。さらに、IPパケットの宛先IPアドレスをキーとして、宛先ID端末テーブル24を検索し、検索結果として得られる全ての端末−装置間トンネル上にパケットを送信する。
ただし、上記の処理でidstackが空でない場合は、そのidstackを宛先としたi3パケットを作成し、そのi3パケットをi3の方式で転送する。
以降、上記i3パケットの転送処理を繰り返し実行することにより、最終的には、端末1からの指示によりトリガを登録したネットワーク装置2に、i3パケットが転送される。
このように、本実施の形態においては、TCP通信で受信者が複数存在する場合に、TCPコネクション開始時にネットワーク側で受信者をランダムに選択し、TCPコネクション継続中は必ず同じ通信相手との間で通信が行われるようにネットワーク側で制御を行うこととした。すなわち、ネットワーク側で通信相手が1つになるように制御を行うこととした。これにより、実施の形態1と同様の効果が得られるとともに、さらに、受信者が複数存在する場合であっても、TCP通信が可能となる。
以上のように、本発明にかかるパケット転送方法は、IP通信を行うホスト端末と、i3ネットワークをIPネットワーク上に構成するネットワーク装置と、から構成されるネットワークにおいて有用である。
1,1−1,1−2,1−m ホスト端末(端末)
2,2−1,2−2,2−n ネットワーク装置
11 IP通信モジュール
12 トンネル通信モジュール
13 仮想インタフェースドライバ
14−1,14−k アプリケーション
21 IP通信モジュール
22 トンネル通信モジュール
23 DHT検索モジュール
24 宛先ID端末テーブル
25 宛先IDルーティングテーブル
26,26a 制御モジュール
27a TCP端末テーブル
28a TCPルーティングテーブル
2,2−1,2−2,2−n ネットワーク装置
11 IP通信モジュール
12 トンネル通信モジュール
13 仮想インタフェースドライバ
14−1,14−k アプリケーション
21 IP通信モジュール
22 トンネル通信モジュール
23 DHT検索モジュール
24 宛先ID端末テーブル
25 宛先IDルーティングテーブル
26,26a 制御モジュール
27a TCP端末テーブル
28a TCPルーティングテーブル
Claims (8)
- IP通信を行う端末と、i3(Internet Indirection Infrastructure)ネットワークをIPネットワーク上に構成するネットワーク装置と、から構成されるネットワークにおいて、端末とネットワーク装置の間を所定のトンネルで接続し、i3ネットワークにおけるIDをIPアドレスと同じフォーマットとした場合のパケット転送方法であって、
端末が、IP通信用のアプリケーションを用いて、トンネル上で、IPパケットおよびパケット転送経路情報を登録または削除するための制御信号の送受信を行い、当該登録時に受信したいパケットの宛先IPアドレスを指定する第1のパケット転送ステップと、
ネットワーク装置が、特定のトンネルから制御信号を受信した場合に、当該制御信号に指定されるIPアドレスと当該トンネルとの対応を登録または削除し、さらに、自装置のIPアドレスを追加したパケット経路情報をi3ネットワークに登録する経路情報制御ステップと、
ネットワーク装置が、前記トンネルからIPパケットを受信した場合に、当該IPパケットに含まれる宛先IPアドレスを宛先IDとして扱い、かつ受信したIPパケットをデータとするi3パケットを作成し、当該宛先IDに関する転送先情報を管理する他のネットワーク装置へi3パケットを転送する第2のパケット転送ステップと、
ネットワーク装置が、受信したi3パケットの宛先IDに基づいて他のネットワーク装置との間でi3の方式で規定された所定の転送処理を行い、また、i3パケットの宛先がIPアドレスの場合、当該i3パケットのデータであるIPパケットの宛先IPアドレスに対応付けられたトンネル上にIPパケットを転送する第3のパケット転送ステップと、
を含むことを特徴とするパケット転送方法。 - 前記第1のパケット転送ステップでは、端末が、受信したいパケットの宛先IPアドレスに加えて、さらにトランスポート層条件を指定し、
前記経路情報制御ステップでは、ネットワーク装置が、制御信号に指定される宛先IPアドレスおよびトランスポート層条件とトンネルとの対応を登録または削除し、
前記第3のパケット転送ステップでは、ネットワーク装置が、受信したi3パケットの宛先IDおよび登録されたトランスポート層条件に基づいて、他のネットワーク装置との間で転送処理を行い、また、i3パケットの宛先がIPアドレスの場合、当該i3パケットのデータであるIPパケットの宛先IPアドレスに対応付けられたトンネルについて、トランスポート層条件とIPパケットとのマッチングを行い、マッチするトンネル上にIPパケットを転送することを特徴とする請求項1に記載のパケット転送方法。 - 前記トランスポート層条件として、送信元アドレスとトランスポート層のプロトコルと送信元ポート番号と宛先ポート番号とを指定することを特徴とする請求項2に記載のパケット転送方法。
- 前記第1のパケット転送ステップでは、端末が、受信したいパケットの宛先IPアドレスに加えて、パケット内容条件を指定し、
前記経路情報制御ステップでは、ネットワーク装置が、制御信号に指定される宛先IPアドレスおよびパケット内容条件とトンネルとの対応を登録または削除し、
前記第3のパケット転送ステップでは、ネットワーク装置が、受信したi3パケットの宛先IDおよび登録されたパケット内容条件に基づいて、他のネットワーク装置との間で転送処理を行い、また、i3パケットの宛先がIPアドレスの場合、当該i3パケットのデータであるIPパケットの宛先IPアドレスに対応付けられたトンネルについて、パケット内容条件とIPパケットとのマッチングを行い、マッチするトンネル上にIPパケットを転送することを特徴とする請求項1に記載のパケット転送方法。 - 前記パケット内容条件として、文字列のパターンを表す拡張正規表現を指定することを特徴とする請求項4に記載のパケット転送方法。
- 前記第3のパケット転送ステップでは、i3パケットのデータであるIPパケットがTCPパケットでかつ受信者(転送先のネットワーク装置および端末)が複数存在する場合、前記ネットワーク装置が、TCPコネクション開始時に受信者をランダムに選択し、また、TCPコネクション継続中は同じ受信者との間で通信が行われるように制御することを特徴とする請求項1に記載のパケット転送方法。
- i3(Internet Indirection Infrastructure)ネットワークをIPネットワーク上に構成するネットワーク装置とともにネットワークを構成する、IP通信を行う端末であって、
ネットワーク装置との間を所定のトンネルで接続するトンネル通信手段と、
前記トンネルを、IP通信が可能な1つのインタフェースとしてみなすための機能を提供する仮想インタフェース手段と、
前記仮想インタフェース手段が提供する機能を利用して、トンネル上で、IPパケットおよびパケット転送経路情報を登録または削除するための制御信号の送受信を行い、当該登録時に受信したいパケットの宛先IPアドレスを指定する制御手段と、
を備えることを特徴とする端末。 - IP通信を行う端末とともにネットワークを構成する、i3(Internet Indirection Infrastructure)ネットワークをIPネットワーク上に構成するネットワーク装置であって、
端末との間を所定のトンネルで接続するトンネル通信手段と、
特定のトンネルからパケット転送経路情報を登録または削除するための制御信号を受信した場合に、当該制御信号に指定されるIPアドレスと当該トンネルとの対応を登録または削除し、さらに、自装置のIPアドレスを追加したパケット経路情報をi3ネットワークに登録する経路情報制御手段と、
前記トンネルからIPパケットを受信した場合に、当該IPパケットに含まれる宛先IPアドレスを宛先IDとして扱い、かつ受信したIPパケットをデータとするi3パケットを作成し、当該宛先IDに関する転送先情報を管理する他のネットワーク装置へi3パケットを転送する第1の転送制御手段と、
受信したi3パケットの宛先IDに基づいて他のネットワーク装置との間で所定の転送処理を行い、また、i3パケットの宛先がIPアドレスの場合に、当該i3パケットのデータであるIPパケットの宛先IPアドレスに対応付けられたトンネル上にIPパケットを転送する第2の転送制御手段と、
を備えることを特徴とするネットワーク装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005194249A JP2007013803A (ja) | 2005-07-01 | 2005-07-01 | パケット転送方法、端末およびネットワーク装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005194249A JP2007013803A (ja) | 2005-07-01 | 2005-07-01 | パケット転送方法、端末およびネットワーク装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007013803A true JP2007013803A (ja) | 2007-01-18 |
Family
ID=37751635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005194249A Pending JP2007013803A (ja) | 2005-07-01 | 2005-07-01 | パケット転送方法、端末およびネットワーク装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007013803A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1958764A1 (en) | 2007-01-24 | 2008-08-20 | Asahi Glass Company, Limited | Laminated glass for vehicle |
WO2011074559A1 (ja) * | 2009-12-17 | 2011-06-23 | 日本電気株式会社 | ネットワークシステム、ネットワーク制御装置、及び制御方法 |
-
2005
- 2005-07-01 JP JP2005194249A patent/JP2007013803A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1958764A1 (en) | 2007-01-24 | 2008-08-20 | Asahi Glass Company, Limited | Laminated glass for vehicle |
WO2011074559A1 (ja) * | 2009-12-17 | 2011-06-23 | 日本電気株式会社 | ネットワークシステム、ネットワーク制御装置、及び制御方法 |
JP5672558B2 (ja) * | 2009-12-17 | 2015-02-18 | 日本電気株式会社 | ネットワークシステム、ネットワーク制御装置、及び制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4302170B2 (ja) | パケット中継装置 | |
US7590119B2 (en) | Method and apparatus for context-based prefix updates in border gateway protocol | |
US10547702B2 (en) | Internet protocol over a content-centric network (IPoC) | |
EP3340681A1 (en) | Seamless mobility schemes in named-data networking using multi-path routing and content caching | |
US20070133539A1 (en) | Routing apparatus for supporting IPv6 anycast service and method thereof | |
JP6542993B2 (ja) | 要求に基づいてルートを取得する方法およびゲートウェイ | |
JP2007522744A (ja) | レガシーノードとhipノード間のホストアイデンティティプロトコル(hip)接続を確立するためのアドレス指定方法及び装置 | |
JPWO2007123227A1 (ja) | マルチキャストパケット転送装置及びマルチキャストパケット管理装置並びにマルチキャストパケット受信装置 | |
US20170332439A1 (en) | Extending the range of mesh networks | |
KR20140099598A (ko) | 모바일 vpn 서비스를 제공하는 방법 | |
WO2014079190A1 (zh) | 组播报文转发的方法及设备 | |
US8873569B2 (en) | User centric virtual network and method of establishing the same | |
JP2006074132A (ja) | マルチキャスト通信方法及びゲートウェイ装置 | |
JP2016225783A (ja) | 仮想ネットワークシステムおよび仮想ネットワーク経路設定方法 | |
JP2011055236A (ja) | 通信システム、マッピング情報通知装置、マッピング情報通知方法及びプログラム | |
JP2007013803A (ja) | パケット転送方法、端末およびネットワーク装置 | |
WO2011072549A1 (zh) | 非lisp站点与lisp站点通信的方法、装置及系统 | |
JP4120607B2 (ja) | ルータ装置および通信方法 | |
JP4788221B2 (ja) | ハンドオフを制御する無線アクセスネットワークシステム及びハンドオフ制御方法 | |
JP3936366B2 (ja) | 通信装置及び通信方法 | |
JP3949626B2 (ja) | Ipマルチキャストネットワーク | |
KR100778348B1 (ko) | IPv6 라우터의 라인 카드에서 터널 포워딩 정보 구축방법 | |
Keranen et al. | Host Identity Protocol-Based Overlay Networking Environment (HIP BONE) Instance Specification for REsource LOcation And Discovery (RELOAD) | |
Kampanakis | anima Working Group M. Richardson Internet-Draft Sandelman Software Works Intended status: Standards Track P. van der Stok Expires: June 4, 2021 vanderstok consultancy | |
Kampanakis | anima Working Group M. Richardson Internet-Draft Sandelman Software Works Intended status: Standards Track P. van der Stok Expires: June 1, 2021 vanderstok consultancy |