(57)【要約】【課題】転送情報の検索時間を短くできる通信装置を提供する。【解決手段】通信装置は、複数のインタフェースと、可変長のプレフィクス、出力先のインタフェース及び当該可変長プレフィクスに割り当てたラベルとの関係を示す転送情報を保持する保持手段と、転送情報に含まれる、受信パケットの宛先アドレスと一致する最長のプレフィックスを検索する検索手段と、転送情報の検索されたプレフィクスに対応するインタフェースにパケットを出力する出力手段と、を備えており、出力手段は、転送情報の検索されたプレフィクスの長さと、検索されたプレフィクスに対応するラベルを出力するパケットに設定する。【選択図】図６
2014165856.tif 000002
【特許請求の範囲】
【請求項１】
複数のインタフェースと、
可変長のプレフィクス、出力先のインタフェース及び当該可変長プレフィクスに割り当てたラベルとの関係を示す転送情報を保持する保持手段と、
前記転送情報に含まれる、受信パケットの宛先アドレスと一致する最長のプレフィックスを検索する検索手段と、
前記転送情報の前記検索されたプレフィクスに対応するインタフェースにパケットを出力する出力手段と、
を備えており、
前記出力手段は、前記転送情報の前記検索されたプレフィクスの長さと、前記検索されたプレフィクスに対応するラベルを前記出力するパケットに設定することを特徴とする通信装置。
【請求項２】
複数のインタフェースと、
可変長のプレフィクス、出力先のインタフェース及び当該可変長プレフィクスに割り当てたラベルとの関係を示す転送情報と、受信パケットの出力先のインタフェースを当該受信パケットに設定されたラベルにより決定するためのラベル転送情報を保持する保持手段と、
受信パケットの出力先のインタフェースを決定するために、前記転送情報に含まれる、当該受信パケットの宛先アドレスと一致する最長のプレフィックスを検索する第１検索手段と、
受信パケットの出力先のインタフェースを決定するために、前記ラベル転送情報を検索する第２検索手段と、
受信パケットにラベルが設定されていると、前記第２検索手段により当該受信パケットの出力先を決定し、受信パケットにラベルが設定されていない場合と、前記第２検索手段により当該受信パケットの出力先が決定できない場合に、前記第１検索手段により当該受信パケットの出力先を決定する様に制御する制御手段と、
を備えており、
前記制御手段は、ラベルが設定されている受信パケットの出力先を前記第１検索手段により決定させた際に、当該受信パケットの宛先アドレスの先頭から、当該受信パケットに設定されているプレフィクス長のコンポーネントを抜出し、前記抜出したコンポーネントの後ろに任意のコンポーネントを追加したプレフィクスが前記転送情報に含まれていないと、当該受信パケットに設定されているラベルについての出力先のインタフェースの情報を前記ラベル転送情報に追加することを特徴とする通信装置。
【請求項３】
前記ラベル転送情報は、受信パケットに設定されているラベルと、出力先インタフェースと、当該出力先インタフェースから出力するパケットに設定するラベルとの関係を示していることを特徴とする請求項２に記載の通信装置。
【請求項４】
前記ラベル転送情報は、さらに、前記出力先インタフェースから出力するパケットに設定するプレフィクス長を示していることを特徴とする請求項２又は３に記載の通信装置。
【請求項５】
請求項１から４のいずれか１項に記載の通信装置としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット通信ネットワークの通信装置に関し、特に、アドレスの一部に基づき転送先を決定する通信装置に関する。
【背景技術】
【０００２】
パケット通信ネットワークにおいては、パケットを交換するルータやスイッチ等の通信装置は複数のインタフェースを有し、あるインタフェースでパケットを受信すると、受信パケットが示す宛先アドレスに基づき、当該パケットを出力すべきインタフェースを決定し、当該決定したインタフェースに当該パケットを出力する。なお、アドレスは、１つ以上のコンポーネントの列と定義できる。具体的には、例えば、非特許文献１に記載のＩＰ（インターネット・プロトコル）ｖ４では、アドレスは３２ビットのビット列であり、各ビットがコンポーネントである。また、非特許文献２に記載のＣＣＮ（Ｃｏｎｔｅｎｔ  Ｃｅｎｔｒｉｃ  Ｎｅｔｗｏｒｋ）において、アドレスはコンテンツ名（Ｃｏｎｔｅｎｔ  Ｎａｍｅ）とも呼ばれる任意長の文字列であり、区切り文字であるスラッシュ"／"で区切られた部分がコンポーネントとなる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ＲＦＣ７９１、１９８１年９月
【非特許文献２】Ｖａｎ  Ｊａｃｏｂｓｏｎ，ｅｔ  ａｌ．，"ＮｅｔｗｏｒｋｉｎｇＮａｍｅｄ  Ｃｏｎｔｅｎｔ"，ＣｏＮＥＸＴ'０９，２００９年
【発明の概要】
【発明が解決しようとする課題】
【０００４】
通常、通信プロトコルで使用するアドレスの総数は膨大であるため、通信装置がパケットの出力先のインタフェースをアドレス毎に管理することは現実的ではない。このため、通信装置は、通常、アドレスの先頭部分を抜き出した可変長の"プレフィクス"と、パケットの出力先インタフェースとの関係を転送情報（Ｆｏｒｗａｒｄｉｎｇ  Ｉｎｆｏｒｍａｔｉｏｎ）として管理する。例えば、図１（Ａ）に示す様に２つの通信装置５及び６が接続されているものとする。なお、図１（Ａ）において、各通信装置５及び６は３つのインタフェース（それぞれ、番号＃１、＃２、＃３で示す。）を有し、通信装置５のインタフェース＃３と、通信装置６のインタフェース＃１が接続されている。また、通信装置５が有する転送情報が図１（Ｂ）の通りであり、通信装置６が有する転送情報が図１（Ｃ）の通りであるものとする。
【０００５】
図１（Ａ）に示す様に、通信装置５がインタフェース＃１で、宛先アドレスが"／ａａａ／ｂｂｂ／ｃｃｃ"のパケットを受信したものとする。なお、このアドレスは、非特許文献２で開示されているものであり３つのコンポーネントで構成されている。なお、以下の説明においてアドレス長とは、アドレスに含まれるコンポーネントの長さとし、プレフィクス長とは、プレフィクスに含まれるコンポーネントの長さとする。よって、アドレス"／ａａａ／ｂｂｂ／ｃｃｃ"の長さは３である。通信装置５は、図１（Ｂ）に示す転送情報から、宛先アドレスと一致するプレフィクスを検索する。図１（Ｂ）に示す転送情報において、番号＃２のエントリは、プレフィクスが"／ａａａ"であり、受信したパケットの宛先アドレスの先頭部分と一致し、さらに、番号＃３のエントリは、プレフィクスが"／ａａａ／ｂｂｂ"であり、受信したパケットの宛先アドレスの先頭部分と一致する。
【０００６】
この様な場合、通信装置５は、最も長いプレフィクスのエントリに従いパケットを転送する。つまり、図１（Ｂ）に示す転送情報の番号＃２のエントリのプレフィクス長は１であり、番号＃３のエントリのプレフィクス長は２であるため、通信装置５は、番号＃３のエントリに従い、受信したパケットをインタフェース＃３に出力する。したがって、通信装置６は、通信装置５が転送したパケットを受信する。なお、図１の通信装置５において、受信したパケットの宛先アドレスと一致するプレフィクスが存在しない場合には、番号＃１のエントリに従い、インタフェース＃１に受信したパケットを出力する。通信装置６が有する図１（Ｃ）に示す転送情報において、宛先アドレス"／ａａａ／ｂｂｂ／ｃｃｃ"に一致するプレフィクスは、番号＃２のエントリのみであるため、通信装置６は、インタフェース＃３に受信したパケットを転送する。
【０００７】
上記の様に、パケットは、所謂、"最長プレフィックス検索"に従い転送される。しかしながら、パケットを受信した段階において、通信装置は、自装置が有する転送情報のプレフィクスのうち、どの長さのプレフィクスと、受信したパケットの宛先アドレスが一致するかについての情報を保持してはいない。このため、例えば、通信装置５は、まず、プレフィクス長が１であるものとして、転送情報に"／ａａａ"のプレフィクスが存在するかを検索する。続いて、プレフィクス長が２であるものとして"／ａａａ／ｂｂｂ"のプレフィクスが存在するかを検索する。図１（Ｂ）に示す転送情報に含まれるプレフィクス長の最大値は"２"であるため、通信装置５は、この２回の検索により検索された転送情報のエントリのうち、最大のプレフィクス長のエントリに従いパケットの転送を行う。
【０００８】
なお、図１（Ｂ）の転送情報に含まれるプレフィクス長の最大値が"Ｎ"であると、通信装置５は、上記検索をＮ回実行する必要がある。なお、上記例において検索はプレフィクス長の昇順に行ったが降順に行うこともできる。降順で行う場合には、最初に一致したものが最長プレフィクスであるため、転送情報に含まれるプレフィクス長の最大値が"Ｎ"であったとしもてＮ回未満の検索で判定できる場合がある。しかしながら、いずれにしても、検索回数は、転送情報に含まれるプレフィクス長の数の範囲が多くなる程、多くなり、検索時間が長くなる。
【０００９】
本発明は、転送情報の検索時間を短くできる通信装置を提供するものである。
【課題を解決するための手段】
【００１０】
本発明の一側面によると、通信装置は、複数のインタフェースと、可変長のプレフィクス、出力先のインタフェース及び当該可変長プレフィクスに割り当てたラベルとの関係を示す転送情報を保持する保持手段と、前記転送情報に含まれる、受信パケットの宛先アドレスと一致する最長のプレフィックスを検索する検索手段と、前記転送情報の前記検索されたプレフィクスに対応するインタフェースにパケットを出力する出力手段と、を備えており、前記出力手段は、前記転送情報の前記検索されたプレフィクスの長さと、前記検索されたプレフィクスに対応するラベルを前記出力するパケットに設定することを特徴とする。
【００１１】
本発明の一側面によると、通信装置は、複数のインタフェースと、可変長のプレフィクス、出力先のインタフェース及び当該可変長プレフィクスに割り当てたラベルとの関係を示す転送情報と、受信パケットの出力先のインタフェースを当該受信パケットに設定されたラベルにより決定するためのラベル転送情報を保持する保持手段と、受信パケットの出力先のインタフェースを決定するために、前記転送情報に含まれる、当該受信パケットの宛先アドレスと一致する最長のプレフィックスを検索する第１検索手段と、受信パケットの出力先のインタフェースを決定するために、前記ラベル転送情報を検索する第２検索手段と、受信パケットにラベルが設定されていると、前記第２検索手段により当該受信パケットの出力先を決定し、受信パケットにラベルが設定されていない場合と、前記第２検索手段により当該受信パケットの出力先が決定できない場合に、前記第１検索手段により当該受信パケットの出力先を決定する様に制御する制御手段と、を備えており、前記制御手段は、ラベルが設定されている受信パケットの出力先を前記第１検索手段により決定させた際に、当該受信パケットの宛先アドレスの先頭から、当該受信パケットに設定されているプレフィクス長のコンポーネントを抜出し、前記抜出したコンポーネントの後ろに任意のコンポーネントを追加したプレフィクスが前記転送情報に含まれていないと、当該受信パケットに設定されているラベルについての出力先のインタフェースの情報を前記ラベル転送情報に追加することを特徴とする。
【発明の効果】
【００１２】
転送情報の検索時間が短くなる。
【図面の簡単な説明】
【００１３】
【図１】最長プレフィックス検索の説明図。
【図２】本実施形態の概念の説明図。
【図３】問題点の説明図。
【図４】問題点の説明図。
【図５】本実施形態の説明図。
【図６】一実施形態による通信装置の概略的な構成図。
【発明を実施するための形態】
【００１４】
以下、本発明の例示的な実施形態について図面を参照して説明する。なお、以下の各図においては、実施形態の説明に必要ではない構成要素については図から省略する。
【００１５】
図２（Ａ）は、本実施形態による通信装置１及び２を示し、図２（Ａ）において、各通信装置１及び２は３つのインタフェース（それぞれ、番号＃１、＃２、＃３で示す。）を有し、通信装置１のインタフェース＃３と、通信装置２のインタフェース＃１が接続されている。また、通信装置１が有する転送情報が図２（Ｂ）の通りであり、通信装置２が有する転送情報が図２（Ｃ）の通りであるものとする。図２（Ｂ）及び（Ｃ）に示す様に転送情報に含まれるプレフィクスは固定長ではなく可変長である。
【００１６】
本実施形態は、隣接する通信装置の転送情報には、同じプレフィックスが多く含まれる傾向があることを利用している。したがって、通信装置は、図２（Ｂ）及び（Ｃ）に示す様に、転送情報の各プレフィクスに対応したラベルを設定し、パケットを転送する際に、当該パケットのヘッダに自装置で一致したプレフィクスに対応するラベルを設定する。また、通信装置１及び２は、ラベル転送情報を管理する。図２（Ｄ）は、通信装置２のラベル転送情報である。なお、ラベル転送情報は、初期状態においてＮＵＬＬであり、通信装置は、学習によりラベル転送情報のエントリを追加する。
【００１７】
具体的には、図２（Ａ）に示す様に、通信装置１がインタフェース＃１で、宛先アドレスが"／ａａ／ｂｂ／ｃｃ／ｄｄ"のパケットを受信したものとする。なお、通信装置１がインタフェース＃１で受信するパケットは、例えば、ユーザの端末といった本実施形態による通信装置以外の通信装置からのものであり、よって、パケットにはラベルが設定されていないものとする。したがって、通信装置１は、従来と同様に最長プレフィックス検索を行う。図２（Ｂ）の転送情報から明らかな様に、番号＃３のエントリのプレフィクス"／ａａ／ｂｂ""が、アドレス"／ａａ／ｂｂ／ｃｃ／ｄｄ"に一致する最長のプレフィクスであり、よって、通信装置１は、インタフェース＃３にパケットを出力する。なお、このとき、通信装置１は、転送情報において、受信パケットの宛先アドレスに一致した番号＃３のエントリのラベルであるＸ３を示す情報をパケットの所定のヘッダ位置に追加する。
【００１８】
通信装置２は、このパケットをインタフェース＃１で受信する。初期状態において通信装置２のラベル転送情報はＮＵＬＬであるため、通信装置２は、受信したパケットのアドレスについて図２（Ｃ）に示す転送情報から最長プレフィクス検索を行う。図２（Ｃ）より、通信装置２は、エントリ＃２に従い、受信パケットのヘッダにラベルＹ２を設定してインタフェース＃３に出力する。また、通信装置２は、上記処理に伴い、インタフェース＃１で受信するラベルＸ１が設定されたパケットについては、ラベルＹ２を設定してインタフェース＃３に出力すれば良いことを学習する。よって、通信装置２は、図２（Ｄ）に示すラベル転送情報を設定する。以後、通信装置２は、インタフェース＃１で受信するラベルＸ１が設定されたパケットについては、図２（Ｃ）に示す転送情報を用いた最長プレフィクス検索を行うことなく、図２（Ｄ）に示すラベル転送情報に従い転送する。
【００１９】
以上の通り、パケットを転送する際にヘッダにラベルを設定し、ラベルに基づく転送先を示すラベル転送情報を生成することで、通信装置においては１回の検索で転送先を決定でき、よって、検索時間を短くしてスループットを高めることができる。
【００２０】
続いて、上記処理を単純に行った場合の問題点について図３及び図４を用いて説明する。図３と図２の違いは、図３（Ｃ）に示す通信装置２の転送情報の番号＃３のエントリのみである。既に説明した様に、通信装置１は、アドレス"／ａａ／ｂｂ／ｃｃ／ｄｄ"を有するパケットについては、図３（Ｂ）に示す転送情報に基づきラベルＸ３を設定してインタフェース＃３に出力する。また、通信装置２は、初めてラベルＸ３を有するインタフェースを受信したときに、図３（Ｃ）に示す転送情報に基づき図３（Ｄ）に示すラベル転送情報を設定する。その後、図４（Ａ）に示す様に、通信装置１が、アドレス"／ａａ／ｂｂ／ｄｄ／ｆｆ"を有するパケットを受信したものとする。なお、図４（Ｂ）〜（Ｄ）は、図３（Ｂ）〜（Ｄ）と同じものである。
【００２１】
通信装置１は、図４（Ｂ）に示す転送情報に基づき、図４（Ａ）に示す様に、アドレス"／ａａ／ｂｂ／ｄｄ／ｆｆ"を有するパケットのヘッダにラベルＸ３を設定して通信装置２に出力する。通信装置２は、既に図４（Ｄ）に示すラベル転送情報を保持しているため、通信装置からラベルＸ３を有するパケットを受信すると、図４（Ｄ）のラベル転送情報に従い、図４（Ａ）に示す様に、このパケットにラベルＹ２を設定してインタフェース＃３に出力することになる。しかしながら、図４（Ｃ）に示す転送情報において、アドレス"／ａａ／ｂｂ／ｄｄ／ｆｆ"と最長で一致するプレフィクスは番号＃３に示すプレフィクス"／ａａ／ｂｂ／ｄｄ"であり、よって、本来、通信装置２は、インタフェース＃２にパケットを出力し、さらに、出力するパケットにはラベルＹ３を設定しなければならない。
【００２２】
上記問題は、上流側の通信装置１の転送情報と最長一致したプレフィクスの後ろに任意のコンポーネントを追加したプレフィクスが自装置の転送情報に存在する場合に生じる。具体的には、図３及び図４の状態において問題が発生するのは、通信装置１で最長一致したプレフィクス"／ａａ／ｂｂ"の後ろに、コンポーネント"／ｄｄ"を追加したプレフィクスが通信装置２に存在するからである。
【００２３】
したがって、本実施形態では、図５（Ａ）に示す様に、各通信装置は、最長一致したプレフィク長もラベルと共にパケットに設定する。なお、図５（Ｂ）及び図５（Ｃ）は、それぞれ、通信装置１及び２の転送情報である。また、図５（Ｄ）は、通信装置２のラベル転送情報である。例えば、図５（Ａ）において通信装置１は、図５（Ｂ）に示す転送情報のうち最長一致した番号＃３のエントリに従い、ラベルＸ３と、一致したプレフィクス長である"２"を転送するパケットに設定する。また、各通信装置は、ラベル転送情報に存在しないラベルを有するパケットを受信すると、受信パケットの宛先アドレスから、受信パケットに設定されたプレフィクス長だけコンポーネントを抜き出し、抜き出したコンポーネントの後ろにコンポーネントを追加したプレフィクスが、自身の転送情報に存在するかを確認する。
【００２４】
ここで、存在する場合には、当該ラベルについてのラベル転送情報の設定は行わない。例えば、図５（Ｃ）に示す例では、番号＃３に"／ａａ／ｂｂ／ｄｄ"が存在するため、通信装置２は、図５（Ｄ）に示す様にラベル転送情報を設定しない。一方、存在しない場合には、ラベル転送情報の設定を行う。例えば、図５（Ａ）において、通信装置２が受信したパケットの宛先アドレスが"／ｂｂ／ｃｃ／ｄｄ／ｆｆ"であり、プレフィクス長が３とする。この場合、宛先アドレスの先頭から３つのコンポーネントを抜出した"／ｂｂ／ｃｃ／ｄｄ"の後ろに任意のコンポーネントを追加したプレフィクスは図５（Ｃ）の転送情報に存在しないため、通信装置２は、この受信パケットの転送に伴い、ラベル転送情報を追加する。この構成により上述した問題を回避し、かつ、転送先の検索時間を短くすることができる。なお、本実施形態では、図５（Ｄ）に示す様に、転送情報には、パケットを受信した入力インタフェースと、受信パケットのラベルの組み合わせに対する、当該パケットの出力インタフェースと、設定するラベルと、プレフィクス長の組み合わせの関係を保持している。
【００２５】
図６は、本実施形態による通信装置の概略的な構成図である。なお、図６において、制御部１５は、その他の機能部と制御情報を送受できる様に構成されている。また、保持部１６は、メモリ等の情報の記憶部であり、例えば、図５（Ｃ）に示す転送情報１３１と、学習により通信装置が設定する図５（Ｄ）に示すラベル転送情報１３２を含む転送情報１３を保持している。
【００２６】
複数のインタフェースを含むインタフェース部１１で受信したパケットは検索部１２に送られる。制御部１５は、受信パケットのヘッダにラベルが設定されているか否かを判定し、ラベルが設定されていれば、第２検索部１２２にラベル転送情報１３２による検索を行わせる。第２検索部１２２は、ラベル転送情報１３２に、受信パケットに設定されたラベルが存在すれば、ラベル転送情報１３２に基づき受信パケットの出力先のインタフェースを決定する。また、出力部１４は、第２検索部１２２が決定したインタフェースに受信パケットを出力する。また、その際、出力部１４は、転送するパケットのヘッダに、ラベル転送情報１３２に従いラベルとプレフィクス長を設定する。
【００２７】
一方、受信パケットのヘッダにラベルが設定されていない場合や、受信パケットのヘッダに設定されたラベルに対応するエントリがラベル転送情報１３２に存在しない場合、制御部１５は、第１検索部１２１に転送情報１３１を使用しての最長プレフィクス検索を行わせる。出力部１４は、第１検索部１２１が決定したインタフェースに受信パケットを出力する。また、その際、出力部１４は、転送するパケットのヘッダに、転送情報１３１に従いラベルとプレフィクス長を設定する。さらに、第１検索部１２１は、受信パケットのアドレスの先頭から、ヘッダに設定されたプレフィクス長だけコンポーネントを抜出し、抜き出したコンポーネントの後ろに任意のコンポーネントを追加したプレフィクスが自身の転送情報１３１に存在するかを判定する。ここで、存在しないと、制御部１５は、ラベル転送情報１３２に、パケットを受信したインタフェース及びラベルと、当該受信パケットの出力先のインタフェース、当該受信パケットに設定したラベル及びプレフィクス長との関係をラベル転送情報１３２として追加する。一方、存在する場合には、制御部１５は、ラベル転送情報１３２への追加は行わない。
【００２８】
なお、本発明による通信装置は、コンピュータを上記通信装置として動作させるプログラムにより実現することができる。これらコンピュータプログラムは、コンピュータが読み取り可能な記憶媒体に記憶されて、又は、ネットワーク経由で配布が可能なものである。
【図１】
2014165856.tif 000003
【図２】
2014165856.tif 000004
【図３】
2014165856.tif 000005
【図４】
2014165856.tif 000006
【図５】
2014165856.tif 000007
【図６】
2014165856.tif 000008