(57)【要約】      （修正有）【課題】適切にデータを分割または圧縮して配送可能とする複数の宛先アドレスを含むパケットのルーティング方法および当該ルータ装置を提供する。【解決手段】データパケットのサイズの上限が異なる２つの経路で複数の宛先アドレスを含むデータパケットを受信した後、受信した前記パケットのアドレスリストが圧縮されているか否かを判断する複数宛先パケット伸張処理手順と、複数の宛先アドレスを含むデータパケットに対してルーティング処理を行う複数宛先ルーティング処理手順と、分割または圧縮して出力する分割・圧縮処理手順とを具備し、この分割・圧縮処理手順は、ルーティング処理後のデータパケットがそのまま送信可能であるか否かを判定する送信可否判定ステップと、送信可否判定ステップで送信できない場合にルーティング処理後のデータパケットを分割する分割処理工程と、分割後のデータパケットを出力するデータパケット出力ステップとを備える。【選択図】  図５
2006050086.tif 000002
【特許請求の範囲】
【請求項１】
データパケットのサイズの上限が異なる少なくとも２つの経路で複数の宛先アドレスを含むデータパケットを受信した後、受信した前記パケットのアドレスリストが圧縮されているか否かを判断して圧縮されている場合に伸張処理ステップを実行する複数宛先パケット伸張処理手順と、複数の宛先アドレスを含むデータパケットに対してルーティング処理を行う複数宛先ルーティング処理手順と、前記ルーティング処理後のデータパケットを必要に応じて分割または圧縮して出力する分割・圧縮処理手順とを具備し、
この分割・圧縮処理手順は、ルーティング処理後のデータパケットがそのまま送信可能であるか否かを判定する送信可否判定ステップと、送信可否判定ステップで送信できない場合にルーティング処理後のデータパケットを再分割する分割処理工程と、分割後のデータパケットを出力するデータパケット出力ステップとを備えることを特徴とするルーティング方法。
【請求項２】
前記分割処理工程は、データパケットのヘッダ部の宛先アドレスデータの分割数とペイロード・データ部の分割数を決定する分割数決定処理ステップと、
この分割数決定処理ステップで決定した分割数にデータパケットを再分割するデータパケット分割処理ステップとを有することを特徴とする請求項１記載のルーティング方法。
【請求項３】
前記分割数決定処理ステップは、配送先のネットワークにおけるパケットのサイズの上限を超過する場合は、ペイロード・データ部の分割だけでなく、ヘッダ部に含まれる宛先アドレスの分割を試み、配送先ネットワークの１パケットのサイズの上限に収まるように、複数の分割パケットを構築して送出することを特徴とする請求項２記載のルーティング方法。
【請求項４】
前記分割数決定処理ステップは、宛先アドレスの分割数およびペイロード・データの分割数の２つの値について、構築する分割パケットのサイズが配送先ネットワークの１パケットのサイズの上限値以下となる２つの値の組合せのうち、送出するパケット数を最小にする組合せを選択することを特徴とする請求項２記載のルーティング方法。
【請求項５】
データパケットのサイズの上限が異なる少なくとも２つの経路で複数の宛先アドレスを含むデータパケットを受信した後、受信した前記パケットのアドレスリストが圧縮されているか否かを判断して圧縮されている場合に伸張処理ステップを実行する複数宛先パケット伸張処理手順と、複数の宛先アドレスを含むデータパケットに対してルーティング処理を行う複数宛先ルーティング処理手順と、前記ルーティング処理後のデータパケットを必要に応じて分割または圧縮して出力する分割・圧縮処理手順とを具備し、
前記分割・圧縮処理手順は、ルーティング処理後のデータパケットがそのまま送信可能であるか否かを判定する送信可否判定ステップと、
送信可否判定ステップで送信できない場合に、データパケットのアドレスリストの圧縮処理を行う圧縮処理工程について実行するか否かを判定する圧縮処理工程実行判定ステップと、
この圧縮処理工程実行判定ステップで、前記圧縮処理工程について実行すると判定した場合にデータパケットの圧縮処理を行う圧縮処理工程と、
前記圧縮処理工程実行判定ステップで、前記圧縮処理工程について実行しないと判定した場合にルーティング処理後のデータパケットを再分割する分割処理工程と、
前記圧縮処理工程および分割処理工程のいずれかがなされた後のデータパケットを出力するデータパケット出力ステップとを備えることを特徴とするルーティング方法。
【請求項６】
外部との入出力インタフェースとして、データパケットを受け取る複数のネットワークインタフェースと、
データパケットの送受信を担うデータパケット処理部と、
前記ネットワークインタフェースが受け取ったデータパケットのアドレスリストが圧縮されている場合にアドレスリストを伸張して出力する複数宛先パケット伸張処理部と、
前記ネットワークインタフェースが受け取ったデータパケットの宛先が単一のデータパケットのルーティング処理を行う単一宛先ルーティング処理部と、
前記ネットワークインタフェースが受け取ったデータパケットの宛先が複数のデータパケットのルーティング処理を行う複数宛先ルーティング処理部と、
前記ルーティング処理後のデータパケットを、配送先ネットワークの１パケットのサイズの上限を考慮して必要に応じてデータパケットの分割・圧縮処理を行い出力する複数宛先パケット分割・圧縮処理部と、
制御パケットの送受信を行う制御パケット処理部と、
ルーティング情報を格納したルーティングテーブルの情報を更新するルーティングテーブル更新部とを具備することを特徴とするルータ装置。
【請求項７】
前記複数宛先パケット分割・圧縮処理部は、ルーティング処理後のデータパケットがそのまま送信できない場合にルーティング処理後のデータパケットを分割して分割パケットを出力するように構成されたことを特徴とする請求項６に記載するルータ装置。
【請求項８】
前記複数宛先パケット分割・圧縮処理部は、ルーティング処理後のデータパケットがそのまま送信できない場合に、ペイロード・データ部の分割だけでなく、ヘッダ部に含まれる宛先アドレスの分割を試み、ルーティング処理後のデータパケットを分割した複数の分割パケットを構築して出力するように構成されたことを特徴とする請求項６記載のルータ装置。
【請求項９】
前記複数宛先パケット分割・圧縮処理部は、ルーティング処理後のデータパケットがそのまま送信できない場合、ルーティング処理後のデータパケットを分割する際に、宛先アドレスの分割数およびペイロード・データの分割数の２つの値について、構築する分割パケットのサイズが配送先ネットワークの１パケットのサイズの上限値以下となる２つの値の組合せのうち、送出するパケット数を最小にする組合せを選択するように構成されたことを特徴とする請求項８記載のルータ装置。
【請求項１０】
前記複数宛先パケット分割・圧縮処理部は、ルーティング処理後のデータパケットがそのまま送信できない場合、まず、データパケットのアドレスリストの圧縮処理を試み、データパケットのアドレスリストの圧縮処理を行ってもなお送信できない場合にルーティング処理後のデータパケットを分割するように構成されたことを特徴とする請求項６記載のルータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・ネットワークにおけるルーティング方法およびその装置（ルータ装置）に関するものであり、特に、パケットのサイズの上限値（ＭＴＵ）の違いに対応する複数の宛先アドレスを含むパケットのルーティング方法および当該ルータ装置に関する。
【背景技術】
【０００２】
コンピュータ・ネットワークでは、送信先のアドレスなどの制御情報を付加したパケットというデータの小さなまとまりを送受信することで、端末間の通信を実現する。また、コンピュータ・ネットワークでは、送信端末から受信端末へパケットを適切に配送するべくネットワークとネットワークとの連結部分において、ルータ装置を使用する。
【０００３】
ルータ装置は、接続されたあるネットワークからパケットが到着すると、その宛先アドレスを参照し、あらかじめ設定された、または稼動中に送られてくる制御パケットのルーティング情報に基づいて、データパケットを配送する先のネットワーク経路を決定する。
【０００４】
一方、データグラム型通信を実現するパケット転送フォーマットは、宛先アドレスを含むヘッダ部と、転送したいデータの本体を格納するデータ部（またはペイロード・データ部）とを有する構成が一般的である。同一メッセージを多数の宛先に送信する必要がある場合、ネットワーク・リソースの消費を抑えるべく、１パケットの容量が許す範囲内で複数の宛先アドレスを明示的にヘッダ部に格納し、データ部が共有となるパケットを構成してデータ通信する方法が知られている。
【０００５】
複数の宛先アドレスを含むパケットの処理を実施するルータ装置においても、動作の原則は変わらないが、パケット中に複数の宛先が含まれるため、単一の宛先アドレスを含むパケットの処理を実施する一般的なルータ装置のルーティング処理（ルータ動作）に加え、次の動作が加重される。  
１）到着したパケットの宛先アドレスリストに含まれるすべての宛先アドレスについて、各アドレス毎に一般的なルータ装置のルーティング処理と同様に方法で、配送先のネットワークを決定する。  
２）これらの宛先アドレスのうち、配送先ネットワークが同一となるアドレスのみから構成される宛先アドレスリストを構成し、ヘッダ部にこれを含めたパケットを該当する配送先のネットワークインタフェースに出力する。  
３）ルータ装置に接続されているネットワーク経路毎に上記２）の動作を繰り返す。但し、元のパケットが到着したネットワークについては、すでにパケットが一度ネットワーク上を流れているので対象外とする。
【０００６】
このようなデータ通信方法によれば、送信端末は、同一データパケットを複数の宛先に送付することができ、すべての宛先アドレスをアドレスリストとして明示的に含むパケットを送信する。また、受信端末は、パケットのヘッダ中のアドレスリストに自分のアドレスが含まれる場合、自分宛のパケットと判断し、受信動作を実施する。
【０００７】
他方、ルータ装置は、ルーティング処理を実施するにあたり、さらに特別な動作が必要な場合がある。
【０００８】
一般に、ネットワークはその媒体の特徴に応じて、データ転送の単位となるフレームのサイズ、すなわち固有のＭＴＵ（Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）を有する。通常、ネットワーク上に流すパケットのサイズは、フレームに格納できるように定められている。従って、ＭＴＵの大きな経路から到着したパケットのサイズが、転送を行う通信経路のＭＴＵに対して大きい場合、そのまま転送することができない。
【０００９】
そこで、異なるネットワーク媒体を結ぶルータ装置では、到着したパケットのサイズが、転送を行う通信経路のＭＴＵに対して大きい場合、パケットのデータを分割することによって対応する。すなわち、配送先ネットワークのＭＴＵ以下となるように、パケットのペイロード・データ部を分割し、それぞれに対し、この分割にかかわる情報を付加したヘッダ部を加えたパケットを生成する。
【００１０】
上述した技術内容は、例えば、非特許文献１に記載されている。
【非特許文献１】マスタリングＴＣＰ／ＩＰ  入門編  第３版  竹下隆史、村山公保、荒井透、苅田幸雄著  オーム社（図４．８、図４．１２、図４．１９、図４．２１）
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ところが、複数の宛先アドレスリストを含むパケットの場合、ヘッダ部のサイズは、宛先の数に比例して大きくなることから、従来から知られるパケットのデータ分割方法では対応できないケースがでてくる。
【００１２】
例えば、ＭＴＵが大きな経路から、宛先アドレス数がＮ個のパケットが到着したが、転送先の経路のＭＴＵが小さく、データ分割が必要となる場合、まず、ルータ装置が、ルーティング処理を行い、ルーティング処理の結果、ＭＴＵが小さい経路に対し、宛先アドレス数Ｍ（但し、Ｍは、Ｎ以下の自然数）のパケットの配送を試みべく、Ｍ個の宛先アドレスリストを含むパケットのヘッダ部を構成する。
【００１３】
このとき、構成されるヘッダ部のサイズが転送先の経路のＭＴＵよりも小さくなる場合には問題はないが、大きくなる場合、従来から知られるパケットのデータ分割方法では、データ部の分割を施しても、分割されたパケットのサイズは、ＭＴＵ以下になることはない。この場合、ルータ装置は、到着したパケットの配送をすることができず、最終的にはパケットを廃棄せざるを得なくなってしまう。この結果、送信端末から送信されたデータが送信者の希望する宛先の端末まで配送されないという問題が発生し得る。
【００１４】
本発明は、上述した問題を考慮してなされたものであり、１パケットのサイズの上限が異なる２つのネットワークの間におけるパケットのルーティングを実施する際に、従来の分割方法では、分割されたパケットのサイズが転送経路のＭＴＵよりも大きくなるような場合においても、適切にデータを分割または圧縮して配送可能とする複数の宛先アドレスを含むパケットのルーティング方法および当該ルータ装置を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明に係る複数の宛先アドレスを含むパケットのルーティング方法は、上述した課題を解決するため、請求項１に記載したように、データパケットのサイズの上限が異なる少なくとも２つの経路で複数の宛先アドレスを含むデータパケットを受信した後、受信した前記パケットのアドレスリストが圧縮されているか否かを判断して圧縮されている場合に伸張処理ステップを実行する複数宛先パケット伸張処理手順と、複数の宛先アドレスのデータパケットに対してルーティング処理を行う複数宛先ルーティング処理手順と、前記ルーティング処理後のデータパケットを必要に応じて分割または圧縮して出力する分割・圧縮処理手順とを具備し、この分割・圧縮処理手順は、ルーティング処理後のデータパケットがそのまま送信可能であるか否かを判定する送信可否判定ステップと、送信可否判定ステップで送信できない場合にルーティング処理後のデータパケットを再分割する分割処理工程と、分割後のデータパケットを出力するデータパケット出力ステップとを備えることを特徴とする。
【００１６】
上述した課題を解決するために、本発明に係る複数の宛先アドレスを含むパケットのルーティング方法は、請求項２に記載したように、前記分割処理工程が、データパケットのヘッダ部の宛先アドレスデータの分割数とペイロード・データ部の分割数を決定する分割数決定処理ステップと、この分割数決定処理ステップで決定した分割数にデータパケットを再分割するデータパケット分割処理ステップとを有することを特徴とする。
【００１７】
上述した課題を解決するために、本発明に係る複数の宛先アドレスを含むパケットのルーティング方法は、請求項４に記載したように、前記分割数決定処理ステップが、宛先アドレスの分割数およびペイロード・データの分割数の２つの値について、構築する分割パケットのサイズが配送先ネットワークの１パケットのサイズの上限値以下となる２つの値の組合せのうち、送出するパケット数を最小にする組合せを選択することを特徴とする。
【００１８】
本発明に係る複数の宛先アドレスを含むパケットのルータ装置は、上述した課題を解決するために、請求項６に記載したように、外部との入出力インタフェースとして、データパケットを受け取る複数のネットワークインタフェースと、データパケットの送受信を担うデータパケット処理部と、前記ネットワークインタフェースが受け取ったデータパケットのアドレスリストが圧縮されている場合にアドレスリストを伸張して出力する複数宛先パケット伸張処理部と、前記ネットワークインタフェースが受け取ったデータパケットの宛先が単一のデータパケットのルーティング処理を行う単一宛先ルーティング処理部と、前記ネットワークインタフェースが受け取ったデータパケットの宛先が複数のデータパケットのルーティング処理を行う複数宛先ルーティング処理部と、前記ルーティング処理後のデータパケットを、配送先ネットワークの１パケットのサイズの上限を考慮して必要に応じてデータパケットの分割・圧縮処理を行い出力する複数宛先パケット分割・圧縮処理部と、制御パケットの送受信を行う制御パケット処理部と、ルーティング情報を格納したルーティングテーブルの情報を更新するルーティングテーブル更新部とを具備することを特徴とする。
【００１９】
上述した課題を解決するために、本発明に係る複数の宛先アドレスを含むパケットのルータ装置は、請求項８に記載したように、前記複数宛先パケット分割・圧縮処理部が、ルーティング処理後のデータパケットがそのまま送信できない場合に、ペイロード・データ部の分割だけでなく、ヘッダ部に含まれる宛先アドレスの分割を試み、ルーティング処理後のデータパケットを分割した複数の分割パケットを構築して出力するように構成されたことを特徴とする。
【００２０】
また、上述した課題を解決するために、本発明に係る複数の宛先アドレスを含むパケットのルータ装置は、請求項９に記載したように、前記複数宛先パケット分割・圧縮処理部が、ルーティング処理後のデータパケットがそのまま送信できない場合、ルーティング処理後のデータパケットを分割する際に、宛先アドレスの分割数およびペイロード・データの分割数の２つの値について、構築する分割パケットのサイズが配送先ネットワークの１パケットのサイズの上限値以下となる２つの値の組合せのうち、送出するパケット数を最小にする組合せを選択するように構成されたことを特徴とする。
【発明の効果】
【００２１】
本発明に係る複数の宛先アドレスを含むパケットのルーティング方法および当該ルータ装置によれば、１パケットのサイズの上限が異なる２つのネットワークの間におけるパケットのルーティングを実施する際に、従来の分割方法では、分割されたパケットのサイズが転送経路のＭＴＵよりも大きくなるような場合においても、適切にデータを分割または圧縮して配送することができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明に係る複数の宛先アドレスを含むパケットのルーティング方法および当該ルータ装置について図を参照して説明する。
【００２３】
ここでは、ルータ装置としてＩＰｖ６対応のルータ装置を、また複数の宛先アドレスを格納する転送方式としてＸｃａｓｔ（ｅＸｐｌｉｃｉｔ  Ｍｕｌｔｉｃａｓｔ）をベースとしたプロトコルにおける実施例について説明する。尚、Ｘｃａｓｔ  とは、主として動画等のストリーミング・データの効率的な配送等を目的としてＩＥＴＦに提案されたインターネット・ドラフトである（ｄｒａｆｔ−ｏｏｍｓ−ｘｃａｓｔ−ｂａｓｉｃ−ｓｐｅｃ−０６．ｔｘｔ）。
【００２４】
図１に本発明に係る複数の宛先アドレスを含むパケットのルーティング方法を実行するルータ装置１の構成図を示す。
【００２５】
図１のルータ装置１は、外部との入出力インタフェースとして、複数（ｎ）のネットワークインタフェース２と、受信したＩＰデータパケット（以下、単にデータパケットとする）の送受信を担うデータパケット処理部３と、宛先が単一のデータパケットのルーティング処理を行う単一宛先ルーティング処理部４と、宛先が複数のデータパケットのルーティング処理を行う複数宛先ルーティング処理部５とを具備する。
【００２６】
また、ルータ装置１は、ルーティング処理の制御を適切に行うべく、制御パケットの送受信を行う制御パケット処理部７と、ルーティング情報を格納したルーティングテーブル８の情報を更新するルーティングテーブル更新部９とをさらに具備する。
【００２７】
ルータ装置１におけるネットワークインタフェース２は、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）によるＬＡＮや、無線によるネットワーク等の任意のネットワーク媒体である。ネットワークインタフェース２は、外部のコンピュータ・ネットワークから送信されたパケットを受け取り、受け取ったパケットがデータパケットの場合、データパケット処理部３に受け取ったパケットを送る。
【００２８】
データパケット処理部３は、ネットワークインタフェース２からデータパケットを受け取ると、受け取ったパケットがＸｃａｓｔパケットか否か、すなわち、宛先が単一か複数かを判断する。データパケット処理部３は、受け取ったパケットの宛先が単一の場合、受信したパケットを単一宛先ルーティング処理部４に送る。
【００２９】
単一宛先ルーティング処理部４は、ルータ装置１に格納され、ルーティング情報を有するルーティングテーブル８を参照し、配送先のネットワークへデータパケットを送信するべく、参照先のデータパケット処理部３へ送る。データパケット処理部３は、単一宛先ルーティング処理部４からルーティング処理後のデータパケットを受信すると、受信したデータパケットをネットワークインタフェース２へ送る。そして、ネットワークインタフェース２は、データパケット処理部３から受信したデータパケットを配送先のネットワークへ配送する。
【００３０】
一方、データパケット処理部３において、ネットワークインタフェース２から受け取ったパケットがＸｃａｓｔパケット（宛先が複数）の場合、Ｘｃａｓｔパケットのアドレスリストが圧縮されている場合が考えられる。Ｘｃａｓｔ仕様では圧縮の具体的な方式は明示されていないが、何らかの特定の圧縮方式を採用することを想定している。
【００３１】
従って、ルータ装置１は、圧縮されたＸｃａｓｔパケットのアドレスリストを伸張できる構成とする必要がある。そこで、ルータ装置１は、図１に示すように圧縮されたＸｃａｓｔパケットのアドレスリストを伸張する複数宛先パケット伸張処理部１１をさらに具備する。ネットワークインタフェース２から受け取ったパケットの宛先が複数の場合、データパケット処理部３が受け取ったパケットは、複数宛先パケット伸張処理部１１へ送られる。
【００３２】
図２は、複数宛先パケット伸張処理部１１へ送られるＸｃａｓｔパケットの一実施例であり、ＩＰｖ６用Ｘｃａｓｔパケットのフォーマットを説明する説明図である。
【００３３】
本実施例では、圧縮の有無を表現する手段として、Ｘｃａｓｔヘッダの空き領域の特定ビット（例えば、図２における０と記載された領域）を利用できるものとする。つまり、複数宛先パケット伸張処理部１１は、Ｘｃａｓｔヘッダの空き領域の特定ビットを参照することで、圧縮の有無を判断できる。
【００３４】
従って、複数宛先パケット伸張処理部１１は、まず、データパケット処理部３からＸｃａｓｔパケット（データパケット）受け取ると、Ｘｃａｓｔヘッダの空き領域の特定ビットを参照してＸｃａｓｔパケット（データパケット）のアドレスリストが圧縮されているか否かを判断する。その結果、圧縮されている場合には、アドレスリストの伸張を行い、伸張後のＸｃａｓｔパケットを複数宛先ルーティング処理部５へ出力する。圧縮されていない場合には、受け取ったＸｃａｓｔパケットをそのまま複数宛先ルーティング処理部５へ出力する。
【００３５】
複数宛先ルーティング処理部５では、Ｘｃａｓｔの仕様に基づき得られるアルゴリズムにより、配送先のネットワーク毎に、Ｘｃａｓｔパケットを振り分けるルーティング処理を実施する。
【００３６】
図３に複数宛先をもつデータパケットのルーティング処理について一般的な処理手順を説明する説明図を、図４に複数宛先をもつデータパケットのルーティング処理をより具体的な例で説明する説明図を示す。
【００３７】
複数宛先ルーティング処理部５が行うルーティング処理は、図３に示すように、最初は１個だったＸｃａｓｔパケットを配送先ネットワーク毎に宛先アドレスを振り分ける。そして、それぞれ行き先の異なる複数のＸｃａｓｔパケットを構築するものである。
【００３８】
次に、図４に示すようなコンピュータ・ネットワークにおいて、ホストＡからデータをホストＢ、ホストＤ、ホストＧおよびホストＨに配送する場合を例にして、ルータ装置（図４においてルータと省略）１の複数宛先ルーティング処理部５が行うルーティング処理を説明する。
【００３９】
尚、説明の前提として、図４に示すルータ装置１は、ネットワークインタフェース２として、第１のネットワークインタフェース２、第２のネットワークインタフェース２および第３のネットワークインタフェース２を備えているものとする。また、第１のネットワークインタフェース２がホストＡ、ホストＢおよびホストＣを有するコンピュータ・ネットワークと、第２のネットワークインタフェース２がホストＤ、ホストＥを有するコンピュータ・ネットワークと、第３のネットワークインタフェース２がホストＦ、ホストＧおよびホストＨを有するコンピュータ・ネットワークと接続されているものとする。
【００４０】
複数宛先のデータパケットが所定の宛先に配信される手順としては、例えば、ホストＡから全ての宛先をヘッダ部に含むデータパケットをホストＢ、ホストＤ、ホストＧおよびホストＨに送信する場合、送信されたデータパケットは、宛先に記載された端末（ホスト）が受け取る。まず、ホストＡからルータ装置１の間に宛先として記載されたホストＢが存在するので、ホストＢは、ホストＡから送信されたデータパケットを直接受け取る。そして、ホストＡから送信されたデータパケットをルータ装置１が受け取る。
【００４１】
ルータ装置１において、ネットワークインタフェース２ホストＡから送信されたデータパケットを受け取ると、図１に示すように、データパケット処理部３および複数宛先パケット伸張処理部１１を経由して複数宛先ルーティング処理部５がデータパケットを受け取る。複数宛先ルーティング処理部５がデータパケットを受け取ると、複数宛先ルーティング処理部５は、図３に示す手順でルーティング処理を開始する。
【００４２】
図４に示す例では、宛先アドレス数が４つなので、図３に示されるＮの値は、Ｎ＝４となる。そして、ルーティングテーブル８を参照して１番目の宛先アドレスから４番目の宛先アドレスまで順次に該当する配送先リスト（初期状態は空）へ振り分けを行う。
【００４３】
また、複数宛先ルーティング処理部５が参照するルーティングテーブル８のルーティング情報は、データパケットと一緒に配送される制御パケットを受け取ったルーティングテーブル更新部９が更新を行い、データパケットの入力元となるコンピュータ・ネットワークを配送先から除外する。すなわち、図４に示す例では、ホストＡ、ホストＢおよびホストＣは、第１のネットワークインタフェース２宛てのリストから除外されている。
【００４４】
従って、１番目の宛先アドレスとなるホストＢについては、何れのネットワークインタフェース２宛のリストに含まれないこととなり、配送先リストには追加されない。また、２番目の宛先アドレスとなるホストＤについては、第２のネットワークインタフェース２宛のリストに含まれるので、第２のネットワークインタフェース２の配送先リストに追加される。さらに、３番目および４番目の宛先アドレスとなるホストＧおよびホストＨについては、両者とも第３のネットワークインタフェース２宛のリストに含まれるので、第３のネットワークインタフェース２の配送先リストに追加される。
【００４５】
続いて、入力元のネットワークインタフェース２である第１のネットワークインタフェース２以外のネットワークインタフェース２、すなわち、第２のネットワークインタフェース２および第３のネットワークインタフェース２の配送先リストが空でないことを確認した上で、構築された各Ｘｃａｓｔパケットを配送先リストに対応するデータパケット処理部３に送信する。複数宛先ルーティング処理部５が各Ｘｃａｓｔパケットをデータパケット処理部３に送信すると複数宛先ルーティング処理部５のルーティング処理は完了する。
【００４６】
複数宛先ルーティング処理部５がルーティング処理を行った後、複数宛先ルーティング処理部５から送信されたＸｃａｓｔパケットは、データパケット処理部３およびネットワークインタフェース２を経由して、ルータ装置１からそれぞれ個別に対応するコンピュータ・ネットワークに送信され、宛先となるホストＤ、ホストＧおよびホストＨに配送されることとなるが、この時、各パケットのサイズが、パケットの配送経路のＭＴＵを超えていると配送できないという問題がある。
【００４７】
そこで、ルータ装置１では、図１に示すように、受け取ったデータパケットのサイズと配送先となるホスト（端末）があるコンピュータ・ネットワークのＭＴＵとを考慮して必要に応じてデータパケットの分割・圧縮処理を行う複数宛先パケット分割・圧縮処理部１２をさらに具備する。
【００４８】
複数宛先パケット分割・圧縮処理部１２は、配送先ネットワークのＭＴＵの値以下のサイズのデータパケットを受け取った場合は、そのまま何も変更を加えないデータパケットを複数宛先ルーティング処理部５で先に決定した配送先のデータパケット処理部３へ出力する。一方、配送先ネットワークのＭＴＵよりも大きいサイズのデータパケットを受け取った場合は、Ｘｃａｓｔパケットの分割または圧縮が加重され、分割または圧縮後のデータパケットが出力される。
【００４９】
データパケット処理部３は、単一の宛先の場合と同様に、対応するネットワークインタフェース２に対して出力処理を実施する。そして、ネットワークインタフェース２からネットワーク媒体に応じた物理的なパケットの送出が行われる。
【００５０】
このように、ルータ装置１は、複数宛先パケット伸張処理部１１を具備することで、パケットのアドレスリストが圧縮されている場合にも、ルーティング処理を行うことができる。また、複数宛先パケット分割・圧縮処理部１２を具備することで、１パケットのサイズの上限が異なる２つのネットワークの間におけるパケットのルーティング処理を実施する際に、従来の分割方法では、分割されたパケットのサイズが転送経路のＭＴＵよりも大きくなるような場合においても、適切にデータを分割または圧縮して配送することができる。
【００５１】
次に、本発明に係る複数の宛先アドレスを含むパケットのルーティング方法について説明する。
【００５２】
複数の宛先アドレスを含むパケットルーティング方法は、受信したＸｃａｓｔパケットのアドレスリストが圧縮されているか否かを判断して圧縮されている場合に伸張処理ステップを実行する複数宛先パケット伸張処理手順と、複数の宛先アドレスのデータパケットに対してルーティング処理を行う複数宛先ルーティング処理手順と、ルーティング処理後のデータパケットを必要に応じて分割または圧縮して出力する分割・圧縮処理手順とを具備する。
【００５３】
図５は、複数宛先パケット分割・圧縮処理部１２が行う分割・圧縮処理手順をさらに詳細に説明する処理フロー図である。
【００５４】
図５によれば、分割・圧縮処理手順は、ルーティング処理後のパケットを分割する分割処理手順と、ルーティング処理後のパケットを圧縮する圧縮処理手順とを備える。ここで、分割・圧縮処理手順における分割処理手順は、当該処理後のパケットサイズが必ず配送するＭＴＵよりも小さくすることができる必須的処理手順である一方、圧縮処理手順は、アドレスリストの圧縮処理を行う手順であり、この圧縮処理手順のみでは、圧縮後のパケットサイズが必ずしもＭＴＵより小さくなることを保証できない任意的処理手順である。
【００５５】
そこで、図５においては、分割処理手順および圧縮処理手順の両者が示されているが、説明の便宜上、まず、分割・圧縮処理手順が、必須的処理手順である分割処理手順のみを備える場合（ルータ装置１において設定された圧縮設定パラメータがｏｆｆの場合：後述するステップＳ５でＮＯの場合に相当）について説明する。
【００５６】
分割・圧縮処理手順（分割処理手順）は、複数宛先パケット分割・圧縮処理部１２が受信したルーティング処理後のデータパケットがそのまま送信可能であるか否かを判定する送信可否判定ステップ（ステップＳ１）と、送信可否判定ステップで送信できないと判定された場合（ステップＳ１でＮＯの場合）にデータパケットの再分割を行う分割処理工程（ステップＳ２〜ステップＳ３）と、データパケット処理部３に分割後のデータパケットを出力するデータパケット出力ステップ（ステップＳ４）とを備える。
【００５７】
また、分割処理手順における分割処理工程は、データパケットのヘッダ部の宛先アドレスデータ（後述するヘッダ可変長部Ｈｖに相当）の分割数ｐ（ｐは自然数）とペイロード・データ部の分割数ｑを決定する分割数決定処理ステップ（ステップＳ２）と、分割数決定処理ステップで決定した分割数にデータパケットを再分割するデータパケット分割処理ステップ（ステップＳ３）とを有する。
【００５８】
分割処理手順（ステップＳ１〜ステップＳ４）は、複数宛先パケット分割・圧縮処理部１２がルーティング処理後のパケットを受信すると開始される（開始）。複数宛先パケット分割・圧縮処理部１２が分割処理手順を開始すると、まず、ステップＳ１に進み、ステップＳ１で送信可否判定ステップがなされる。
【００５９】
送信可否判定ステップでは、複数宛先パケット分割・圧縮処理部１２が受信したルーティング処理後のデータパケットをそのまま送信可能であるか否かを判定する。送信可否判定ステップにおいて送信できないとの判定結果がなされた場合（ステップＳ１でＮＯの場合）、ステップＳ２に進み、続いて、分割処理工程がなされる。分割処理工程では、まず、ステップＳ２で分割数決定処理ステップがなされる。
【００６０】
図６に複数宛先パケット分割・圧縮処理部１２が行う分割処理工程を概説する説明図を示す。
【００６１】
データパケットは、ヘッダ部とペイロード・データ部とを有する構成となるのが一般的であるが、このヘッダ部は、図６に示すように、宛先アドレス数に関係なく必要となるプロトコル固有のヘッダ固定長部Ｈｆと、宛先アドレスの数に比例して変化する部分が占めるヘッダ可変長部Ｈｖとを有する。
【００６２】
従って、ペイロード・データ長をＤとすれば、データパケットのサイズは、ヘッダ固定長部Ｈｆと、ヘッダ可変長部Ｈｖと、ペイロード・データ長Ｄとの和（＝Ｈｆ＋Ｈｖ＋Ｄ）となる。複数宛先パケット分割・圧縮処理部１２がデータパケットを受け取るためには、受け取ったデータパケットのサイズ（＝Ｈｆ＋Ｈｖ＋Ｄ）は、当然、配送元のコンピュータ・ネットワークのＭＴＵ（以下、ＭＴＵinとする）よりも小さい。
【００６３】
一方、複数宛先パケット分割・圧縮処理部１２が受け取ったデータパケットを配送するためには、配送先のコンピュータ・ネットワークのＭＴＵ（以下、ＭＴＵoutとする）よりも受け取ったデータパケットのサイズが小さくないといけない。ところが、複数宛先パケット分割・圧縮処理部１２が受け取ったデータパケットのサイズは、配送先のコンピュータ・ネットワークのＭＴＵ（以下、ＭＴＵoutとする）よりも大きい。
【００６４】
ＩＰネットワークでは、受け取ったデータパケットのサイズよりもＭＴＵが小さいコンピュータ・ネットワークに配送するための仕様としてペイロード・データ部を分割して複数のパケットを構築するＩＰフラグメンテーションが知られている。しかし、ＩＰフラグメンテーションでは、Ｘｃａｓｔパケットのような複数の宛先を明示的に含むパケットの場合、宛先アドレス数に比例してパケット内で宛先アドレスリストが必要とするバイト数が増大するため、データ領域を多数に分割しても配送先のＭＴＵ以下のサイズにパケットを小さくすることが不可能な場合が発生し得る。
【００６５】
そこで、ＩＰフラグメンテーションのようなデータ分割では対応できない場合に対処するために、複数宛先パケット分割・圧縮処理部１２は、ペイロード・データの分割だけでなく、それに加えてヘッダにおけるアドレスリストの分割を試みる。つまり、ヘッダ可変長部Ｈｖの分割数ｐおよびペイロード・データ長Ｄの分割数ｑを決定し（ステップＳ２）、ヘッダ可変長部Ｈｖをｐ個、ペイロード・データ長Ｄをｑ個に分割してｐ×ｑ個の分割データパケットを構築する（ステップＳ３）。
【００６６】
尚、図６において、Ｈｖ１，Ｈｖ２〜Ｈｖｐは、宛先アドレスをｐ個に分割した結果の各サイズであり、
［数１］
Ｈｖ＝Ｈｖ１＋Ｈｖ２＋……＋Ｈｖｐ
である。
【００６７】
一方、Ｄ１，Ｄ２〜Ｄｑは、ペイロード・データ部をｑ個に分割した結果の各サイズであり、
［数２］
Ｄ＝Ｄ１＋Ｄ２＋……＋Ｄｑ
である。
【００６８】
次に、分割処理工程の分割数決定処理ステップにおいて決定されるデータパケット（Ｘｃａｓｔパケット）の分割数ｐ，ｑの決定方法について説明する。
【００６９】
分割数決定処理ステップでは、データパケット（Ｘｃａｓｔパケット）の分割数ｐ，ｑを決定する際、１個のＸｃａｓｔパケットを分割を実現する方法を与えるアルゴリズムを採用する。１個のＸｃａｓｔパケットを分割するアルゴリズムの一実施例（以下、分割数決定アルゴリズムとする）としては、まず、宛先アドレスの分割数ｐ、データの分割数ｑの各組合せに対する１パケット長を計算し、計算結果がＭＴＵout以下となるｐおよびｑの各組合せのうち、ｐ×ｑ（総パケット数）が最小となるｐおよびｑを選択するものが考えられる。
【００７０】
ｐおよびｑの各組合せに対する１パケット長Ｃ（ｐ，ｑ）は、
［数３］
Ｃ（ｐ，ｑ）＝Ｈｆ＋Ｂ×Ｋ（Ｎ／ｐ）＋Ｋ（Ｄ／ｑ）
で表すことができる。ここで、Ｎは宛先アドレス数、Ｂは１宛先アドレスあたりに必要となるバイト数（ＩＰｖ６の場合１６バイト）、Ｋ（ｘ）はｘの小数点以下を繰り上げて整数値を返す関数である。
【００７１】
尚、数式３に示されるＣ（ｐ，ｑ）は、より一般には、ネットワーク・プロトコルでしばしば用いられるパディングで使用されるバイト数を考慮して、
［数４］
Ｃ（ｐ，ｑ）＝Ｈｆ＋Ｂ×Ｋ（Ｎ／ｐ）＋Ｋ（Ｄ／ｑ）＋Ｐａｄｄｉｎｇ（Ｎ）
と表すことができる。ここで、Ｐａｄｄｉｎｇ（Ｎ）は、宛先アドレス数によって決まるパディングのバイト数で、正しく規定されたプロトコルであればその仕様に応じて、一意に定めることができる関数である。
【００７２】
１個のＸｃａｓｔパケットを分割するアルゴリズムを、分割データパケットのサイズがＭＴＵout以下となる（ｐ，ｑ）の各組合せのうちｐ×ｑ（総パケット数）が最小となるｐおよびｑを選択するとしたのは、Ｈｆ、Ｈｖ、Ｄ、ＭＴＵoutの各パラメータから変数ｐおよびｑを直接得ようとするアルゴリズムと比べて、出力されるパケット数を最小限に抑えることで、不必要に多数のパケットが生成されないようにするためである。
【００７３】
仮に、Ｈｆ、Ｈｖ、Ｄ、ＭＴＵoutの各パラメータから変数ｐおよびｑを直接得ようとすると、ヘッダの分割数が変わった場合、ペイロード・データ部に割り当てられる領域のサイズも変化するので、確実に転送可能にするｐ，ｑの値を得ることは可能であっても、必ずしも出力するパケット数を最小限に抑えるという観点において最適なｐ，ｑの値が得られるとは限らない。換言すれば、不必要に多数のパケットが生成される恐れがある。
【００７４】
つまり、分割数決定アルゴリズムの特徴は、ヘッダの分割数の変化に依存することなく、出力するパケット数を最小限に抑えるという観点において、最適な組合せを計算することができる点にある。また、Ｈｆを宛先アドレス数を０とした場合に確保しなければならないヘッダ領域のバイト数とみなすことによって、Ｘｃａｓｔに限らず、複数宛先を有するパケットを分割する数を決定するために利用することができる。
【００７５】
尚、Ｘｃａｓｔに限らず、一般にネットワーク・プロトコルには、オプション機能があり、その使用の有無によってＨｆの実際の値と、１宛先アドレスあたりに必要となるバイト数Ｂが変化する場合がある。従って、ＨｆおよびＢの値が変化しないことを前提として説明してきた分割数決定アルゴリズムは、ＨｆおよびＢの値の少なくとも一方が変化した場合において適用できないようにも思われる。
【００７６】
しかし、１宛先アドレスあたりに必要となるバイト数Ｂが変化するような場合でも、ネットワーク・プロトコルの性質上、それぞれ具体的にどの値を使用すればよいかは、到着したパケットに含まれるヘッダ部内のいずれかの情報により常に知りえる。従って、分割数決定アルゴリズムは、ＨｆおよびＢの変化の有無にかかわらず、また、Ｘｃａｓｔに限らず、複数宛先を有するパケットを分割する数を決定するために利用することができる。
【００７７】
分割数決定処理ステップで、複数宛先パケット分割・圧縮処理部１２がヘッダ可変長部Ｈｖの分割数ｐおよびペイロード・データ長Ｄの分割数ｑを決めると、ステップＳ３に進み、続いて、データパケット分割処理ステップを行う。データパケット分割処理ステップでは、複数宛先パケット分割・圧縮処理部１２が、決定したｐおよびｑの値に基づき、図３に示す要領で、ヘッダ可変長部Ｈｖをｐ個、ペイロード・データ長Ｄをｑ個に分割してｐ×ｑ個の分割データパケットを構築する。
【００７８】
ペイロード・データ部の分割については、一般には、そのデータ並び順を復元する情報をパケットに含める必要がある。ここでは、ＩＰフラグメンテーションに準じた方式を利用するものとする。また、データの並び順序を再現するための情報として例えばＸｃａｓｔヘッダの他の領域を利用できるものとする。一方、宛先アドレスの分割については、再現する情報はまったく必要なく、独立したパケットとして配送することができるので、分割に伴う付加的な情報は必要ない。
【００７９】
データパケット分割処理ステップで、複数宛先パケット分割・圧縮処理部１２がｐ×ｑ個の分割データパケットを構築すると、データパケット分割処理ステップを完了し、データパケット分割処理ステップの完了をもって、分割処理工程を完了する。分割処理工程が完了すると、ステップＳ４に進み、データパケット出力ステップがなされる。
【００８０】
データパケット出力ステップでは、複数宛先パケット分割・圧縮処理部１２が構築されたｐ×ｑ個の分割データパケットをすべてデータパケット処理部３に出力する。分割データパケットの出力先となるデータパケット処理部３は、複数宛先ルーティング処理部５がルーティング処理を行い決定したコンピュータ・ネットワークとネットワークインタフェース２を介して接続されるデータパケット処理部３である。データパケット出力ステップがなされると、分割処理手順は終了となる（終了）。
【００８１】
一方、送信可否判定ステップにおいて送信できるとの判定結果がなされた場合（ステップＳ１でＹＥＳの場合）には、ステップＳ４に進み、ステップＳ４以降の処理ステップがなされる。
【００８２】
このような分割処理手順を行えば、ヘッダ部（ヘッダ可変長部Ｈｖのみ）を分割することで、従来であれば、パケットを廃棄せざるを得ないような場合、すなわち、宛先アドレス数が多くデータパケットのヘッダ長が長大であり、データ領域の分割によるパケット分割だけでは、分割しても配送先のＭＴＵ以下のサイズにパケットを小さくすることが不可能な場合であっても、データパケットの分割が可能となる。
【００８３】
次に、分割・圧縮処理手順が分割処理手順のみならず圧縮処理手順をも備える場合について説明する。
【００８４】
圧縮処理手順は、送信可否判定ステップ（ステップＳ１）と、データパケットのアドレスリストの圧縮処理を行う圧縮処理工程について実行するか否かを判定する圧縮処理工程実行判定ステップ（ステップＳ５）と、データパケットの圧縮処理を行う圧縮処理工程（ステップＳ６〜ステップＳ９）と、データパケット出力ステップ（ステップＳ４）とを備える。つまり、分割・圧縮処理手順は、既に説明した分割処理手順（ステップＳ１〜ステップＳ４）に圧縮処理工程実行判定ステップ（ステップＳ５）と、圧縮処理工程（ステップＳ６〜ステップＳ９）とを付加した処理手順である。
【００８５】
従って、分割・圧縮処理手順は、圧縮処理手順を備える場合であっても、圧縮処理手順を備えない場合と同様に、複数宛先パケット分割・圧縮処理部１２がルーティング処理後のパケットを受信すると開始され、まず、送信可否判定ステップがなされる。そして、送信可否判定ステップにおいて送信できないとの判定結果がなされた場合（ステップＳ１でＮＯの場合）には、ステップＳ５に進み、続いて、圧縮処理工程実行判定ステップがなされる。
【００８６】
圧縮処理工程実行判定ステップでは、複数宛先パケット分割・圧縮処理部１２が圧縮処理工程を行うか否かを判定する。圧縮処理工程を行うか否かは、複数宛先パケット分割・圧縮処理部１２が、予めルータ装置１において設定される圧縮設定パラメータの値を読み取ることで行う。複数宛先パケット分割・圧縮処理部１２は、ルータ装置１において設定された圧縮設定パラメータがｏｎの場合（ステップＳ５でＹＥＳの場合）、圧縮処理工程を行うと判定する。
【００８７】
ここで、圧縮設定パラメータについて補足する。ルータ装置１に設定される圧縮設定パラメータは、圧縮が有効でないことが事前に予想される場合、ｏｆｆに設定することができる。例えば、ＩＰｖ６アドレスの値は、アドレスリスト中のアドレス間で共通部分が多い場合が十分予想されるので、その場合は、高い圧縮率を期待できる。
【００８８】
しかし、共通部分の少ないアドレスリストを含むパケットが高い頻度で到着することが予想される場合は、圧縮の効果が少ないため、かえって圧縮アルゴリズムを試みる処理時間が無駄になる可能性がある。この理由から、ルータ装置１の外部設定パラメータとして、圧縮の有無を選択可能に構成している。
【００８９】
ルータ装置１において設定された圧縮設定パラメータがｏｎの場合（ステップＳ５でＹＥＳの場合）、複数宛先パケット分割・圧縮処理部１２は圧縮処理工程を行うと判定し、ステップＳ６に進み、続いて、ステップＳ６以降で圧縮処理工程を行う。
【００９０】
圧縮処理工程は、公知の技術内容であり、例えば図５に示すように、アドレスリストのデータ圧縮の効果を事前に判定する圧縮効果事前判定ステップ（ステップＳ６）と、アドレスリストのデータ圧縮を行うデータ圧縮ステップ（ステップＳ７）と、圧縮後のアドレスリストを用いて構築するデータパケット（以下、圧縮データパケットとする）のサイズが配送先のコンピュータ・ネットワークのＭＴＵ（ＭＴＵout）以下になるかを判定する圧縮データパケット送信可否判定ステップ（ステップＳ８）と、圧縮データパケットを構築する圧縮データパケット構築ステップ（ステップＳ９）とを備える。
【００９１】
そして、複数宛先パケット分割・圧縮処理部１２が図５に示すような圧縮処理工程を完了すると、ステップＳ４に進み、続いて、ステップＳ４以降の処理ステップを実行する。一方、ルータ装置１において設定された圧縮設定パラメータがｏｆｆの場合（ステップＳ５でＮＯの場合）、ステップＳ２に進み、複数宛先パケット分割・圧縮処理部１２は、続いて、ステップＳ２以降の処理ステップを実行する。
【００９２】
次に、分割・圧縮処理手順の一実施例として、図１に示すルータ装置１において以下の（１）〜（４）の場合を想定し、図５に示す分割・圧縮処理手順をより具体的に説明する。  
（１）ルータ装置１は、３つのコンピュータ・ネットワーク（第１のネットワーク、第２のネットワークおよび第３のネットワーク）と接続されており、第１のネットワークから、ヘッダに含まれる宛先アドレスＮが５０個、ペイロード・データ部のデータ長Ｄは５００バイトのＸｃａｓｔパケットを受信した。  
（２）第１のネットワークのＭＴＵは１５００バイト、第２のネットワークのＭＴＵは５００バイト、第３のネットワークのＭＴＵは７００バイトである。尚、本来ネットワーク用語としては、「オクテット」を使用するのが適切な場合もあるが、本説明では、ルータの構成にかかわる説明の観点から、すべて「バイト」で表現する。  
（３）受信したＸｃａｓｔパケットの宛先アドレスのうち、第２のネットワークに配送すべき宛先アドレスＮ２は４０個、第３のネットワークに配送すべき宛先アドレスＮ３は１０個である。  
（４）ルータ装置１において圧縮設定パラメータはｏｎと設定されている（アドレスリストのデータ圧縮のみで対応できる場合には圧縮処理手順を行い、分割処理手順は行わない）。
【００９３】
上記（１）〜（４）の場合において、複数宛先ルーティング処理部５は、第１のネットワークに接続されるネットワークインタフェース２から受信しＸｃａｓｔパケットを、複数宛先パケット伸張処理部１１を経由して受信する。Ｘｃａｓｔパケットを受信すると、複数宛先ルーティング処理部５は、図３に示すような処理手順でルーティング処理を行い、配送先となるネットワーク毎に宛先アドレスリストを分配したＸｃａｓｔパケットを構築する。
【００９４】
１個のＸｃａｓｔパケットのサイズ［バイト］は、一般にＩＰｖ６上のＸｃａｓｔ仕様では、ＤＳＣＰｓリストやデスティネーション拡張ヘッダ等の拡張機能を用いない場合を想定し、Ｈｆ＝７２［バイト］、Ｂ＝１６［バイト］、Ｘｃａｓｔパケットの宛先数をｐ個、データがＤバイトとすると、
［数５］
４０＋Ｎ×１６＋２４＋８＋Ｄ＝７２＋１６×Ｎ＋Ｄ
となる。この数式５を用いれば、出力されるパケットのサイズを計算することができる。
【００９５】
ここで、第２のネットワーク宛てのＸｃａｓｔパケットのサイズ（ヘッダとペイロード・データとの合計サイズ）は、Ｎ＝４０、Ｄ＝５００を数式５に代入すれば、
７２＋１６×４０＋５００＝１２１２となり、１２１２バイトとなる。
【００９６】
同様に、第３のネットワーク宛てのＸｃａｓｔパケットのサイズを求めると、
７２＋１６×１０＋５００＝７３２となり、７３２バイトとなる。
【００９７】
つまり、複数宛先パケット分割・圧縮処理部１２は、複数宛先ルーティング処理部５から構築された第１のパケット（１２１２バイト）および第２のパケット（７３２バイト）を受け取り、受け取ったパケットに対して圧縮・分割処理手順を行う。
【００９８】
圧縮・分割処理手順では、まず、送信可否判定ステップ（ステップＳ１）がなされる。上記（１）〜（４）の場合、複数宛先パケット分割・圧縮処理部１２が第１のパケットおよび第２のパケットを受け取り、受け取った各々のデータパケットについて送信可否を判定する。
【００９９】
まず、第１のパケットについては、パケットのサイズ（１２１２バイト）が、配送先となる第２のネットワークのＭＴＵ（ＭＴＵout＝５００）を超えているため、複数宛先パケット分割・圧縮処理部１２は、受け取った第１のパケットを送信不可と判定する（ステップＳ１でＮＯの場合）。圧縮・分割処理手順における送信可否判定ステップで、送信不可と判定された場合（ステップＳ１でＮＯの場合）、ステップＳ５に進み、続いて、圧縮処理工程実行判定ステップがなされる。
【０１００】
圧縮処理工程実行判定ステップでは、複数宛先パケット分割・圧縮処理部１２が圧縮パラメータの状態（ｏｎまたはｏｆｆ）を確認する。ここでは、圧縮パラメータをｏｎとしているので、圧縮処理工程実行判定ステップでは、圧縮処理工程を実行すると判定する（ステップＳ５でＹＥＳの場合）。そして、ステップＳ６に進み、複数宛先パケット分割・圧縮処理部１２は、第１のパケットについて圧縮処理工程を行う。
【０１０１】
圧縮処理工程では、まず、ステップＳ６で圧縮効果事前判定ステップを行い、アドレスリストのデータ圧縮の効果を事前に判定する。効果の有無の判定は、ペイロード・データ部がＭＴＵoutよりも大きいか否かで判断する。ペイロード・データ部がＭＴＵout以上であれば、アドレスリストをいくらデータ圧縮しても全体のサイズがＭＴＵout以下にならないことは自明だからである。つまり、圧縮効果事前判定ステップは、データ圧縮の実行前に、データ圧縮したとしても、配送することのできないデータパケットをデータ圧縮対象から排除するための処理ステップである。
【０１０２】
ここで、第１のパケットのアドレスリストをデータ圧縮した場合の効果の有無について検討すると、受け取ったパケットのヘッダ部のサイズが、７２＋１６×４０＝７１２バイト、ペイロード・データ部のサイズが５００バイトである。また、ＭＴＵoutが５００であることから、複数宛先パケット分割・圧縮処理部１２は、第１のパケットについてアドレスリストをデータ圧縮しても効果がないと判定する（ステップＳ６でＮＯの場合）。
【０１０３】
複数宛先パケット分割・圧縮処理部１２は、アドレスリストをデータ圧縮しても効果がないと判定した場合（ステップＳ６でＮＯの場合）、ステップＳ２に進み、続いて、分割処理工程（ステップＳ２〜ステップＳ３）を行う。分割処理工程では、まず、分割数決定処理ステップがなされｐおよびｑの値が決定される（ステップＳ２）。分割数決定処理ステップでは、例えば、複数宛先パケット分割・圧縮処理部１２が、分割数決定アルゴリズムを用いてｐおよびｑの値を決定する。
【０１０４】
図７に分割数決定アルゴリズムを用いて宛先アドレスの分割数ｐとペイロード・データ部の分割数ｑとの組合せを計算した結果を表す説明図である。尚、図７に示される数値は、Ｈｆ＝７２［バイト］、Ｎ＝４０［個］、ペイロード・データ長Ｄ＝５００［バイト］の場合におけるＣ（ｐ，ｑ）の計算結果である。
【０１０５】
分割数決定処理ステップでは、まず、複数宛先パケット分割・圧縮処理部１２が、分割数決定アルゴリズムを用いて、Ｃ（ｐ，ｑ）の計算を行う。そして、ＭＴＵout（＝５００）に収まるｐとｑの組合せのうち、ｐ×ｑの値が最も小さくなるｐおよびｑを選択する。図７によれば、ｐ＝４、ｑ＝２の場合にｐ×ｑが最小値８となり、Ｘｃａｓｔパケット分割・圧縮処理部１２は、ｐ＝４、ｑ＝２を分割数として決定する。
【０１０６】
複数宛先パケット分割・圧縮処理部１２が、分割数決定アルゴリズムを用いてｐおよびｑの値（ｐ＝４、ｑ＝２）を決定すると、続いて、ステップＳ３でデータパケット分割処理ステップを行い、宛先アドレスを４つ、ペイロード・データ部を２つに分割する。そして、８（＝２×４）個の分割パケットが構築されると、データパケット分割処理ステップが完了し、データパケット分割処理ステップの完了をもって、分割処理工程は完了する。
【０１０７】
分割処理工程が完了すると、ステップＳ４に進み、データパケット出力ステップがなされる。データパケット出力ステップでは、複数宛先パケット分割・圧縮処理部１２が構築した８個の分割データパケットをすべてデータパケット処理部３に送る。そして、データパケット出力ステップを完了し、分割処理手順を終了する。分割処理手順の終了後、分割パケットを受け取ったデータパケット処理部３は、第１のパケットを分割して構築された８個の分割データパケットをネットワークインタフェース２に送り、ネットワークインタフェース２を経由して配送先の第２のネットワークに配送する。
【０１０８】
一方、第２のパケットについても、パケットのサイズ（７３２バイト）が、配送先となる第３のネットワークのＭＴＵ（ＭＴＵout＝７００）を超えるため、第１のパケットの場合と同様に送信可否判定ステップ（ステップＳ１）に続いて、圧縮処理工程実行判定ステップ（ステップＳ５）および圧縮効果事前判定ステップ（ステップＳ６）がなされる。
【０１０９】
第２のパケットの場合、複数宛先パケット分割・圧縮処理部１２が受け取ったパケットのヘッダ部のサイズは、７２＋１６×１０＝２３２バイト、ペイロード・データ部のサイズは５００バイトであり、合計７３２バイトである。また、第２のパケットの場合、ＭＴＵoutが７００であることから、このままでは第２のパケットは、送信することができない。
【０１１０】
しかし、ヘッダとして割り当て可能な領域は、ＭＴＵout−Ｄ＝７００−５００＝２００バイトあり、圧縮により送信可能になる可能性があるとみなせる。従って、複数宛先パケット分割・圧縮処理部１２は、第２のパケットについてデータ圧縮の効果があると判定する（ステップＳ６でＹＥＳの場合）。従って、第２のパケットについては、ステップＳ７に進み、データ圧縮ステップを行う。
【０１１１】
データ圧縮ステップでは、複数宛先パケット分割・圧縮処理部１２が、アドレスリストのデータ圧縮を行う（ステップＳ７）。アドレスリストの圧縮率は、パケットの種類等で異なるが、ここでは、５０％だったものとする。
【０１１２】
データ圧縮ステップがなれると、続いて、圧縮データパケット送信可否判定ステップがなされる。圧縮データパケット送信可否判定ステップでは、複数宛先パケット分割・圧縮処理部１２が、圧縮後のアドレスリストを用いて構築するデータパケットのサイズが配送先のＭＴＵout以下になるかを判定する（ステップＳ８）。
【０１１３】
第２のパケットは、アドレスリストの圧縮を実行した結果、圧縮後のＸｃａｓｔパケットのヘッダ長は、７２＋１６×（５０／１００）×１０＝１５２バイトとなる。この結果、パケット全体長は、ペイロード長Ｄの５００バイトを加算して、６５２バイトとなり、ＭＴＵout以下のサイズとなる（ステップＳ８でＹＥＳの場合）。従って、ステップＳ９に進み、続いて、圧縮データパケット構築ステップがなされる。
【０１１４】
圧縮データパケット構築ステップでは、複数宛先パケット分割・圧縮処理部１２が、圧縮したアドレスリストを含むパケット１個を構築する（ステップＳ９）。そして、先に複数宛先ルーティング処理部５が決定した配送先のデータパケット処理部３に出力する（ステップＳ４）。その後、圧縮データパケットは、ネットワークインタフェース２に送られ、ネットワークインタフェース２を経由して配送先の第３のネットワークに配送される。
【０１１５】
従って、上記（１）〜（４）の場合には、複数宛先パケット分割・圧縮処理部１２からなされるデータパケットの出力は、圧縮されたアドレスリストが入った圧縮データパケットと、分割された複数の分割データパケットとなる。すなわち、第１のパケットを８個に分割した８個の分割データパケットと、１個の圧縮データパケットとが複数宛先パケット分割・圧縮処理部１２から出力されることになる。
【０１１６】
以上、本発明に係る複数の宛先アドレスを含むパケットのルーティング方法および当該ルータ装置１によれば、ＭＴＵoutが異なる２つの経路にデータパケットをルーティングする際に、受信したデータパケットのデータサイズが、ＭＴＵoutを超える場合においても、宛先アドレス情報のデータ圧縮を実施することにより、または、宛先アドレス情報のデータ圧縮が有効でない場合には、１パケットを複数のパケットに分割することで、受信したデータパケットを配送先に配送することができる。
【０１１７】
特に、本発明に係る複数の宛先アドレスを含むパケットのルーティング方法において、分割・圧縮処理手順が、圧縮処理手順と分割処理手順との両者を備える場合においては、まず、宛先アドレス情報のデータ圧縮を試み、データ圧縮が有効でなかった場合に、１パケットを複数のパケットに分割する分割処理手順を行うことができる。
【０１１８】
分割処理手順では、ペイロード・データ部の分割とアドレスリスト（ヘッダ可変長部）の分割を組合せて行うことにより、従来では、パケットを廃棄せざるを得ないような場合（宛先アドレスリストが長大な故に、ヘッダ部のサイズが長大となり、データ部の分割によるパケット分割だけでは効果がない場合）であっても、データパケットの配送が可能となる。
【０１１９】
また、分割処理手順において、分割アルゴリズムを適用することにより、与えられた配送先のネットワークにおけるパケットのサイズの上限値に基づき、出力するパケット数を最小限に抑えるという観点において最適な分割を行い、パケットを配送することが可能となる。
【０１２０】
一方、ルータ装置１では、圧縮設定パラメータをｏｎ／ｏｆｆに切り替え可能に構成することで、データ圧縮の必要が無い場合や、データ圧縮の効果が少ない宛先アドレス群が得られることが予測しうる場合に圧縮アルゴリズムの適用に伴うルーティングの遅延を削減することが可能になる。
【０１２１】
尚、ルータ装置１は、ルーティング処理の対象が常に複数の宛先アドレスを含むパケットであるならば、単一のデータパケットのルーティング処理を行う単一宛先ルーティング処理部４を具備していなくても良い。ルータ装置１が単一宛先ルーティング処理部４を具備しているのは、受信するデータパケットが単一の宛先アドレスのパケットの場合もあれば、複数の宛先アドレスを含むデータパケットの場合もあり得るからである。
【図面の簡単な説明】
【０１２２】
【図１】本発明に係る複数の宛先アドレスを含むパケットのルーティング方法を実行するルータ装置の構成図。
【図２】本発明に係るルータ装置の複数宛先パケット伸張処理部へ送られるＸｃａｓｔパケットの一実施例であり、ＩＰｖ６用Ｘｃａｓｔパケットのフォーマットを説明する説明図。
【図３】複数宛先をもつデータパケットのルーティング処理について一般的な処理手順を説明する説明図。
【図４】複数宛先をもつデータパケットのルーティング処理における具体例を説明する説明図。
【図５】本発明に係るルータ装置の複数宛先パケット分割・圧縮処理部が行う分割・圧縮処理手順をさらに詳細に説明する処理フロー図。
【図６】本発明に係るルータ装置の複数宛先パケット分割・圧縮処理部が行う分割処理工程を概説する説明図。
【図７】分割数決定アルゴリズムを用いて宛先アドレスの分割数ｐとペイロード・データ部の分割数ｑとの組合せを計算した結果を表す説明図。
【符号の説明】
【０１２３】
１  ルータ装置
２  ネットワークインタフェース
３  データパケット処理部
４  単一宛先ルーティング処理部
５  複数宛先ルーティング処理部
７  制御パケット処理部
８  ルーティングテーブル
９  ルーティングテーブル更新部
１１  複数宛先パケット伸張処理部
１２  複数宛先パケット分割・圧縮処理部
【図１】
2006050086.tif 000003
【図２】
2006050086.tif 000004
【図３】
2006050086.tif 000005
【図４】
2006050086.tif 000006
【図５】
2006050086.tif 000007
【図６】
2006050086.tif 000008
【図７】
2006050086.tif 000009