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