JP4371938B2 - 複数の宛先アドレスを含むパケットのルーティング方法および当該ルータ装置 - Google Patents

複数の宛先アドレスを含むパケットのルーティング方法および当該ルータ装置 Download PDF

Info

Publication number
JP4371938B2
JP4371938B2 JP2004225695A JP2004225695A JP4371938B2 JP 4371938 B2 JP4371938 B2 JP 4371938B2 JP 2004225695 A JP2004225695 A JP 2004225695A JP 2004225695 A JP2004225695 A JP 2004225695A JP 4371938 B2 JP4371938 B2 JP 4371938B2
Authority
JP
Japan
Prior art keywords
packet
destination
division
data
routing
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
JP2004225695A
Other languages
English (en)
Other versions
JP2006050086A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2004225695A priority Critical patent/JP4371938B2/ja
Publication of JP2006050086A publication Critical patent/JP2006050086A/ja
Application granted granted Critical
Publication of JP4371938B2 publication Critical patent/JP4371938B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

本発明は、コンピュータ・ネットワークにおけるルーティング方法およびその装置(ルータ装置)に関するものであり、特に、パケットのサイズの上限値(MTU)の違いに対応する複数の宛先アドレスを含むパケットのルーティング方法および当該ルータ装置に関する。
コンピュータ・ネットワークでは、送信先のアドレスなどの制御情報を付加したパケットというデータの小さなまとまりを送受信することで、端末間の通信を実現する。また、コンピュータ・ネットワークでは、送信端末から受信端末へパケットを適切に配送するべくネットワークとネットワークとの連結部分において、ルータ装置を使用する。
ルータ装置は、接続されたあるネットワークからパケットが到着すると、その宛先アドレスを参照し、あらかじめ設定された、または稼動中に送られてくる制御パケットのルーティング情報に基づいて、データパケットを配送する先のネットワーク経路を決定する。
一方、データグラム型通信を実現するパケット転送フォーマットは、宛先アドレスを含むヘッダ部と、転送したいデータの本体を格納するデータ部(またはペイロード・データ部)とを有する構成が一般的である。同一メッセージを多数の宛先に送信する必要がある場合、ネットワーク・リソースの消費を抑えるべく、1パケットの容量が許す範囲内で複数の宛先アドレスを明示的にヘッダ部に格納し、データ部が共有となるパケットを構成してデータ通信する方法が知られている。
複数の宛先アドレスを含むパケットの処理を実施するルータ装置においても、動作の原則は変わらないが、パケット中に複数の宛先が含まれるため、単一の宛先アドレスを含むパケットの処理を実施する一般的なルータ装置のルーティング処理(ルータ動作)に加え、次の動作が加重される。
1)到着したパケットの宛先アドレスリストに含まれるすべての宛先アドレスについて、各アドレス毎に一般的なルータ装置のルーティング処理と同様に方法で、配送先のネットワークを決定する。
2)これらの宛先アドレスのうち、配送先ネットワークが同一となるアドレスのみから構成される宛先アドレスリストを構成し、ヘッダ部にこれを含めたパケットを該当する配送先のネットワークインタフェースに出力する。
3)ルータ装置に接続されているネットワーク経路毎に上記2)の動作を繰り返す。但し、元のパケットが到着したネットワークについては、すでにパケットが一度ネットワーク上を流れているので対象外とする。
このようなデータ通信方法によれば、送信端末は、同一データパケットを複数の宛先に送付することができ、すべての宛先アドレスをアドレスリストとして明示的に含むパケットを送信する。また、受信端末は、パケットのヘッダ中のアドレスリストに自分のアドレスが含まれる場合、自分宛のパケットと判断し、受信動作を実施する。
他方、ルータ装置は、ルーティング処理を実施するにあたり、さらに特別な動作が必要な場合がある。
一般に、ネットワークはその媒体の特徴に応じて、データ転送の単位となるフレームのサイズ、すなわち固有のMTU(Maximum Transmission Unit)を有する。通常、ネットワーク上に流すパケットのサイズは、フレームに格納できるように定められている。従って、MTUの大きな経路から到着したパケットのサイズが、転送を行う通信経路のMTUに対して大きい場合、そのまま転送することができない。
そこで、異なるネットワーク媒体を結ぶルータ装置では、到着したパケットのサイズが、転送を行う通信経路のMTUに対して大きい場合、パケットのデータを分割することによって対応する。すなわち、配送先ネットワークのMTU以下となるように、パケットのペイロード・データ部を分割し、それぞれに対し、この分割にかかわる情報を付加したヘッダ部を加えたパケットを生成する。
上述した技術内容は、例えば、非特許文献1に記載されている。
マスタリングTCP/IP 入門編 第3版 竹下隆史、村山公保、荒井透、苅田幸雄著 オーム社(図4.8、図4.12、図4.19、図4.21)
ところが、複数の宛先アドレスリストを含むパケットの場合、ヘッダ部のサイズは、宛先の数に比例して大きくなることから、従来から知られるパケットのデータ分割方法では対応できないケースがでてくる。
例えば、MTUが大きな経路から、宛先アドレス数がN個のパケットが到着したが、転送先の経路のMTUが小さく、データ分割が必要となる場合、まず、ルータ装置が、ルーティング処理を行い、ルーティング処理の結果、MTUが小さい経路に対し、宛先アドレス数M(但し、Mは、N以下の自然数)のパケットの配送を試みべく、M個の宛先アドレスリストを含むパケットのヘッダ部を構成する。
このとき、構成されるヘッダ部のサイズが転送先の経路のMTUよりも小さくなる場合には問題はないが、大きくなる場合、従来から知られるパケットのデータ分割方法では、データ部の分割を施しても、分割されたパケットのサイズは、MTU以下になることはない。この場合、ルータ装置は、到着したパケットの配送をすることができず、最終的にはパケットを廃棄せざるを得なくなってしまう。この結果、送信端末から送信されたデータが送信者の希望する宛先の端末まで配送されないという問題が発生し得る。
本発明は、上述した問題を考慮してなされたものであり、1パケットのサイズの上限が異なる2つのネットワークの間におけるパケットのルーティングを実施する際に、従来の分割方法では、分割されたパケットのサイズが転送経路のMTUよりも大きくなるような場合においても、適切にデータを分割または圧縮して配送可能とする複数の宛先アドレスを含むパケットのルーティング方法および当該ルータ装置を提供することを目的とする。
本発明に係る複数の宛先アドレスを含むパケットのルーティング方法は、上述した課題を解決するため、請求項1に記載したように、データパケットのサイズの上限が異なる少なくとも2つの経路で複数の宛先アドレスを含むデータパケットを受信した後、受信した前記パケットのアドレスリストが圧縮されているか否かを判断して圧縮されている場合に伸張処理ステップを実行する複数宛先パケット伸張処理手順と、複数の宛先アドレスのデータパケットに対してルーティング処理を行う複数宛先ルーティング処理手順と、前記ルーティング処理後のデータパケットを必要に応じて分割または圧縮して出力する分割・圧縮処理手順とを具備し、この分割・圧縮処理手順は、ルーティング処理後のデータパケットがそのまま送信可能であるか否かを判定する送信可否判定ステップと、送信可否判定ステップで送信できない場合にルーティング処理後のデータパケットのヘッダ部の宛先アドレスデータの分割数とペイロード・データ部の分割数を決定する分割数決定処理ステップと、この分割数決定処理ステップで決定した分割数にデータパケットを再分割するデータパケット分割処理ステップと、分割後のデータパケットを出力するデータパケット出力ステップとを備え、前記分割数決定処理ステップは、配送先のネットワークにおけるパケットのサイズの上限を超過する場合は、ペイロード・データ部の分割だけでなく、ヘッダ部に含まれる宛先アドレスの分割を試み、配送先ネットワークの1パケットのサイズの上限に収まるように、複数の分割パケットを構築して送出することを特徴とする。
上述した課題を解決するために、本発明に係る複数の宛先アドレスを含むパケットのルーティング方法は、請求項に記載したように、前記分割数決定処理ステップが、宛先アドレスの分割数およびペイロード・データの分割数の2つの値について、構築する分割パケットのサイズが配送先ネットワークの1パケットのサイズの上限値以下となる2つの値の組合せのうち、送出するパケット数を最小にする組合せを選択することを特徴とする。
本発明に係る複数の宛先アドレスを含むパケットのルータ装置は、上述した課題を解決するために、請求項に記載したように、外部との入出力インタフェースとして、データパケットを受け取る複数のネットワークインタフェースと、データパケットの送受信を担うデータパケット処理部と、前記ネットワークインタフェースが受け取ったデータパケットのアドレスリストが圧縮されている場合にアドレスリストを伸張して出力する複数宛先パケット伸張処理部と、前記ネットワークインタフェースが受け取ったデータパケットの宛先が単一のデータパケットのルーティング処理を行う単一宛先ルーティング処理部と、前記ネットワークインタフェースが受け取ったデータパケットの宛先が複数のデータパケットのルーティング処理を行う複数宛先ルーティング処理部と、前記ルーティング処理後のデータパケットを、配送先ネットワークの1パケットのサイズの上限を考慮して必要に応じてデータパケットの分割・圧縮処理を行い出力する複数宛先パケット分割・圧縮処理部と、制御パケットの送受信を行う制御パケット処理部と、ルーティング情報を格納したルーティングテーブルの情報を更新するルーティングテーブル更新部とを具備し、前記複数宛先パケット分割・圧縮処理部は、ルーティング処理後のデータパケットがそのまま送信できない場合、ルーティング処理後のデータパケットを分割する際に、ペイロード・データ部の分割およびヘッダ部に含まれる宛先アドレスの分割を試み、分割後の各分割パケットは配送先ネットワークの1パケットのサイズの上限に収まる複数の分割パケットとして送出されるように構成されたことを特徴とする。
上述した課題を解決するために、本発明に係る複数の宛先アドレスを含むパケットのルータ装置は、請求項に記載したように、前記複数宛先パケット分割・圧縮処理部が、ルーティング処理後のデータパケットがそのまま送信できない場合、ルーティング処理後のデータパケットを分割する際に、宛先アドレスの分割数およびペイロード・データの分割数の2つの値について、構築する分割パケットのサイズが配送先ネットワークの1パケットのサイズの上限値以下となる2つの値の組合せのうち、送出するパケット数を最小にする組合せを選択するように構成されたことを特徴とする。
また、上述した課題を解決するために、本発明に係る複数の宛先アドレスを含むパケットのルータ装置は、請求項に記載したように、前記複数宛先パケット分割・圧縮処理部が、ルーティング処理後のデータパケットがそのまま送信できない場合、ルーティング処理後のデータパケットを分割する際に必要となる宛先アドレスの分割数pおよびペイロード・データの分割数qの2つの値を、p×q個に分割されたパケットの1パケット長が配送先ネットワークの1パケットのサイズの上限値MTUoutに収まるpおよびqの組み合わせであるか否かで決定することを特徴とする。
本発明に係る複数の宛先アドレスを含むパケットのルーティング方法および当該ルータ装置によれば、1パケットのサイズの上限が異なる2つのネットワークの間におけるパケットのルーティングを実施する際に、従来の分割方法では、分割されたパケットのサイズが転送経路のMTUよりも大きくなるような場合においても、適切にデータを分割または圧縮して配送することができる。
以下、本発明に係る複数の宛先アドレスを含むパケットのルーティング方法および当該ルータ装置について図を参照して説明する。
ここでは、ルータ装置としてIPv6対応のルータ装置を、また複数の宛先アドレスを格納する転送方式としてXcast(eXplicit Multicast)をベースとしたプロトコルにおける実施例について説明する。尚、Xcast とは、主として動画等のストリーミング・データの効率的な配送等を目的としてIETFに提案されたインターネット・ドラフトである(draft−ooms−xcast−basic−spec−06.txt)。
図1に本発明に係る複数の宛先アドレスを含むパケットのルーティング方法を実行するルータ装置1の構成図を示す。
図1のルータ装置1は、外部との入出力インタフェースとして、複数(n)のネットワークインタフェース2と、受信したIPデータパケット(以下、単にデータパケットとする)の送受信を担うデータパケット処理部3と、宛先が単一のデータパケットのルーティング処理を行う単一宛先ルーティング処理部4と、宛先が複数のデータパケットのルーティング処理を行う複数宛先ルーティング処理部5とを具備する。
また、ルータ装置1は、ルーティング処理の制御を適切に行うべく、制御パケットの送受信を行う制御パケット処理部7と、ルーティング情報を格納したルーティングテーブル8の情報を更新するルーティングテーブル更新部9とをさらに具備する。
ルータ装置1におけるネットワークインタフェース2は、例えば、Ethernet(登録商標)によるLANや、無線によるネットワーク等の任意のネットワーク媒体である。ネットワークインタフェース2は、外部のコンピュータ・ネットワークから送信されたパケットを受け取り、受け取ったパケットがデータパケットの場合、データパケット処理部3に受け取ったパケットを送る。
データパケット処理部3は、ネットワークインタフェース2からデータパケットを受け取ると、受け取ったパケットがXcastパケットか否か、すなわち、宛先が単一か複数かを判断する。データパケット処理部3は、受け取ったパケットの宛先が単一の場合、受信したパケットを単一宛先ルーティング処理部4に送る。
単一宛先ルーティング処理部4は、ルータ装置1に格納され、ルーティング情報を有するルーティングテーブル8を参照し、配送先のネットワークへデータパケットを送信するべく、参照先のデータパケット処理部3へ送る。データパケット処理部3は、単一宛先ルーティング処理部4からルーティング処理後のデータパケットを受信すると、受信したデータパケットをネットワークインタフェース2へ送る。そして、ネットワークインタフェース2は、データパケット処理部3から受信したデータパケットを配送先のネットワークへ配送する。
一方、データパケット処理部3において、ネットワークインタフェース2から受け取ったパケットがXcastパケット(宛先が複数)の場合、Xcastパケットのアドレスリストが圧縮されている場合が考えられる。Xcast仕様では圧縮の具体的な方式は明示されていないが、何らかの特定の圧縮方式を採用することを想定している。
従って、ルータ装置1は、圧縮されたXcastパケットのアドレスリストを伸張できる構成とする必要がある。そこで、ルータ装置1は、図1に示すように圧縮されたXcastパケットのアドレスリストを伸張する複数宛先パケット伸張処理部11をさらに具備する。ネットワークインタフェース2から受け取ったパケットの宛先が複数の場合、データパケット処理部3が受け取ったパケットは、複数宛先パケット伸張処理部11へ送られる。
図2は、複数宛先パケット伸張処理部11へ送られるXcastパケットの一実施例であり、IPv6用Xcastパケットのフォーマットを説明する説明図である。
本実施例では、圧縮の有無を表現する手段として、Xcastヘッダの空き領域の特定ビット(例えば、図2における0と記載された領域)を利用できるものとする。つまり、複数宛先パケット伸張処理部11は、Xcastヘッダの空き領域の特定ビットを参照することで、圧縮の有無を判断できる。
従って、複数宛先パケット伸張処理部11は、まず、データパケット処理部3からXcastパケット(データパケット)受け取ると、Xcastヘッダの空き領域の特定ビットを参照してXcastパケット(データパケット)のアドレスリストが圧縮されているか否かを判断する。その結果、圧縮されている場合には、アドレスリストの伸張を行い、伸張後のXcastパケットを複数宛先ルーティング処理部5へ出力する。圧縮されていない場合には、受け取ったXcastパケットをそのまま複数宛先ルーティング処理部5へ出力する。
複数宛先ルーティング処理部5では、Xcastの仕様に基づき得られるアルゴリズムにより、配送先のネットワーク毎に、Xcastパケットを振り分けるルーティング処理を実施する。
図3に複数宛先をもつデータパケットのルーティング処理について一般的な処理手順を説明する説明図を、図4に複数宛先をもつデータパケットのルーティング処理をより具体的な例で説明する説明図を示す。
複数宛先ルーティング処理部5が行うルーティング処理は、図3に示すように、最初は1個だったXcastパケットを配送先ネットワーク毎に宛先アドレスを振り分ける。そして、それぞれ行き先の異なる複数のXcastパケットを構築するものである。
次に、図4に示すようなコンピュータ・ネットワークにおいて、ホストAからデータをホストB、ホストD、ホストGおよびホストHに配送する場合を例にして、ルータ装置(図4においてルータと省略)1の複数宛先ルーティング処理部5が行うルーティング処理を説明する。
尚、説明の前提として、図4に示すルータ装置1は、ネットワークインタフェース2として、第1のネットワークインタフェース2、第2のネットワークインタフェース2および第3のネットワークインタフェース2を備えているものとする。また、第1のネットワークインタフェース2がホストA、ホストBおよびホストCを有するコンピュータ・ネットワークと、第2のネットワークインタフェース2がホストD、ホストEを有するコンピュータ・ネットワークと、第3のネットワークインタフェース2がホストF、ホストGおよびホストHを有するコンピュータ・ネットワークと接続されているものとする。
複数宛先のデータパケットが所定の宛先に配信される手順としては、例えば、ホストAから全ての宛先をヘッダ部に含むデータパケットをホストB、ホストD、ホストGおよびホストHに送信する場合、送信されたデータパケットは、宛先に記載された端末(ホスト)が受け取る。まず、ホストAからルータ装置1の間に宛先として記載されたホストBが存在するので、ホストBは、ホストAから送信されたデータパケットを直接受け取る。そして、ホストAから送信されたデータパケットをルータ装置1が受け取る。
ルータ装置1において、ネットワークインタフェース2ホストAから送信されたデータパケットを受け取ると、図1に示すように、データパケット処理部3および複数宛先パケット伸張処理部11を経由して複数宛先ルーティング処理部5がデータパケットを受け取る。複数宛先ルーティング処理部5がデータパケットを受け取ると、複数宛先ルーティング処理部5は、図3に示す手順でルーティング処理を開始する。
図4に示す例では、宛先アドレス数が4つなので、図3に示されるNの値は、N=4となる。そして、ルーティングテーブル8を参照して1番目の宛先アドレスから4番目の宛先アドレスまで順次に該当する配送先リスト(初期状態は空)へ振り分けを行う。
また、複数宛先ルーティング処理部5が参照するルーティングテーブル8のルーティング情報は、データパケットと一緒に配送される制御パケットを受け取ったルーティングテーブル更新部9が更新を行い、データパケットの入力元となるコンピュータ・ネットワークを配送先から除外する。すなわち、図4に示す例では、ホストA、ホストBおよびホストCは、第1のネットワークインタフェース2宛てのリストから除外されている。
従って、1番目の宛先アドレスとなるホストBについては、何れのネットワークインタフェース2宛のリストに含まれないこととなり、配送先リストには追加されない。また、2番目の宛先アドレスとなるホストDについては、第2のネットワークインタフェース2宛のリストに含まれるので、第2のネットワークインタフェース2の配送先リストに追加される。さらに、3番目および4番目の宛先アドレスとなるホストGおよびホストHについては、両者とも第3のネットワークインタフェース2宛のリストに含まれるので、第3のネットワークインタフェース2の配送先リストに追加される。
続いて、入力元のネットワークインタフェース2である第1のネットワークインタフェース2以外のネットワークインタフェース2、すなわち、第2のネットワークインタフェース2および第3のネットワークインタフェース2の配送先リストが空でないことを確認した上で、構築された各Xcastパケットを配送先リストに対応するデータパケット処理部3に送信する。複数宛先ルーティング処理部5が各Xcastパケットをデータパケット処理部3に送信すると複数宛先ルーティング処理部5のルーティング処理は完了する。
複数宛先ルーティング処理部5がルーティング処理を行った後、複数宛先ルーティング処理部5から送信されたXcastパケットは、データパケット処理部3およびネットワークインタフェース2を経由して、ルータ装置1からそれぞれ個別に対応するコンピュータ・ネットワークに送信され、宛先となるホストD、ホストGおよびホストHに配送されることとなるが、この時、各パケットのサイズが、パケットの配送経路のMTUを超えていると配送できないという問題がある。
そこで、ルータ装置1では、図1に示すように、受け取ったデータパケットのサイズと配送先となるホスト(端末)があるコンピュータ・ネットワークのMTUとを考慮して必要に応じてデータパケットの分割・圧縮処理を行う複数宛先パケット分割・圧縮処理部12をさらに具備する。
複数宛先パケット分割・圧縮処理部12は、配送先ネットワークのMTUの値以下のサイズのデータパケットを受け取った場合は、そのまま何も変更を加えないデータパケットを複数宛先ルーティング処理部5で先に決定した配送先のデータパケット処理部3へ出力する。一方、配送先ネットワークのMTUよりも大きいサイズのデータパケットを受け取った場合は、Xcastパケットの分割または圧縮が加重され、分割または圧縮後のデータパケットが出力される。
データパケット処理部3は、単一の宛先の場合と同様に、対応するネットワークインタフェース2に対して出力処理を実施する。そして、ネットワークインタフェース2からネットワーク媒体に応じた物理的なパケットの送出が行われる。
このように、ルータ装置1は、複数宛先パケット伸張処理部11を具備することで、パケットのアドレスリストが圧縮されている場合にも、ルーティング処理を行うことができる。また、複数宛先パケット分割・圧縮処理部12を具備することで、1パケットのサイズの上限が異なる2つのネットワークの間におけるパケットのルーティング処理を実施する際に、従来の分割方法では、分割されたパケットのサイズが転送経路のMTUよりも大きくなるような場合においても、適切にデータを分割または圧縮して配送することができる。
次に、本発明に係る複数の宛先アドレスを含むパケットのルーティング方法について説明する。
複数の宛先アドレスを含むパケットルーティング方法は、受信したXcastパケットのアドレスリストが圧縮されているか否かを判断して圧縮されている場合に伸張処理ステップを実行する複数宛先パケット伸張処理手順と、複数の宛先アドレスのデータパケットに対してルーティング処理を行う複数宛先ルーティング処理手順と、ルーティング処理後のデータパケットを必要に応じて分割または圧縮して出力する分割・圧縮処理手順とを具備する。
図5は、複数宛先パケット分割・圧縮処理部12が行う分割・圧縮処理手順をさらに詳細に説明する処理フロー図である。
図5によれば、分割・圧縮処理手順は、ルーティング処理後のパケットを分割する分割処理手順と、ルーティング処理後のパケットを圧縮する圧縮処理手順とを備える。ここで、分割・圧縮処理手順における分割処理手順は、当該処理後のパケットサイズが必ず配送するMTUよりも小さくすることができる必須的処理手順である一方、圧縮処理手順は、アドレスリストの圧縮処理を行う手順であり、この圧縮処理手順のみでは、圧縮後のパケットサイズが必ずしもMTUより小さくなることを保証できない任意的処理手順である。
そこで、図5においては、分割処理手順および圧縮処理手順の両者が示されているが、説明の便宜上、まず、分割・圧縮処理手順が、必須的処理手順である分割処理手順のみを備える場合(ルータ装置1において設定された圧縮設定パラメータがoffの場合:後述するステップS5でNOの場合に相当)について説明する。
分割・圧縮処理手順(分割処理手順)は、複数宛先パケット分割・圧縮処理部12が受信したルーティング処理後のデータパケットがそのまま送信可能であるか否かを判定する送信可否判定ステップ(ステップS1)と、送信可否判定ステップで送信できないと判定された場合(ステップS1でNOの場合)にデータパケットの再分割を行う分割処理工程(ステップS2〜ステップS3)と、データパケット処理部3に分割後のデータパケットを出力するデータパケット出力ステップ(ステップS4)とを備える。
また、分割処理手順における分割処理工程は、データパケットのヘッダ部の宛先アドレスデータ(後述するヘッダ可変長部Hvに相当)の分割数p(pは自然数)とペイロード・データ部の分割数qを決定する分割数決定処理ステップ(ステップS2)と、分割数決定処理ステップで決定した分割数にデータパケットを再分割するデータパケット分割処理ステップ(ステップS3)とを有する。
分割処理手順(ステップS1〜ステップS4)は、複数宛先パケット分割・圧縮処理部12がルーティング処理後のパケットを受信すると開始される(開始)。複数宛先パケット分割・圧縮処理部12が分割処理手順を開始すると、まず、ステップS1に進み、ステップS1で送信可否判定ステップがなされる。
送信可否判定ステップでは、複数宛先パケット分割・圧縮処理部12が受信したルーティング処理後のデータパケットをそのまま送信可能であるか否かを判定する。送信可否判定ステップにおいて送信できないとの判定結果がなされた場合(ステップS1でNOの場合)、ステップS2に進み、続いて、分割処理工程がなされる。分割処理工程では、まず、ステップS2で分割数決定処理ステップがなされる。
図6に複数宛先パケット分割・圧縮処理部12が行う分割処理工程を概説する説明図を示す。
データパケットは、ヘッダ部とペイロード・データ部とを有する構成となるのが一般的であるが、このヘッダ部は、図6に示すように、宛先アドレス数に関係なく必要となるプロトコル固有のヘッダ固定長部Hfと、宛先アドレスの数に比例して変化する部分が占めるヘッダ可変長部Hvとを有する。
従って、ペイロード・データ長をDとすれば、データパケットのサイズは、ヘッダ固定長部Hfと、ヘッダ可変長部Hvと、ペイロード・データ長Dとの和(=Hf+Hv+D)となる。複数宛先パケット分割・圧縮処理部12がデータパケットを受け取るためには、受け取ったデータパケットのサイズ(=Hf+Hv+D)は、当然、配送元のコンピュータ・ネットワークのMTU(以下、MTUinとする)よりも小さい。
一方、複数宛先パケット分割・圧縮処理部12が受け取ったデータパケットを配送するためには、配送先のコンピュータ・ネットワークのMTU(以下、MTUoutとする)よりも受け取ったデータパケットのサイズが小さくないといけない。ところが、複数宛先パケット分割・圧縮処理部12が受け取ったデータパケットのサイズは、配送先のコンピュータ・ネットワークのMTU(以下、MTUoutとする)よりも大きい。
IPネットワークでは、受け取ったデータパケットのサイズよりもMTUが小さいコンピュータ・ネットワークに配送するための仕様としてペイロード・データ部を分割して複数のパケットを構築するIPフラグメンテーションが知られている。しかし、IPフラグメンテーションでは、Xcastパケットのような複数の宛先を明示的に含むパケットの場合、宛先アドレス数に比例してパケット内で宛先アドレスリストが必要とするバイト数が増大するため、データ領域を多数に分割しても配送先のMTU以下のサイズにパケットを小さくすることが不可能な場合が発生し得る。
そこで、IPフラグメンテーションのようなデータ分割では対応できない場合に対処するために、複数宛先パケット分割・圧縮処理部12は、ペイロード・データの分割だけでなく、それに加えてヘッダにおけるアドレスリストの分割を試みる。つまり、ヘッダ可変長部Hvの分割数pおよびペイロード・データ長Dの分割数qを決定し(ステップS2)、ヘッダ可変長部Hvをp個、ペイロード・データ長Dをq個に分割してp×q個の分割データパケットを構築する(ステップS3)。
尚、図6において、Hv1,Hv2〜Hvpは、宛先アドレスをp個に分割した結果の各サイズであり、
[数1]
Hv=Hv1+Hv2+……+Hvp
である。
一方、D1,D2〜Dqは、ペイロード・データ部をq個に分割した結果の各サイズであり、
[数2]
D=D1+D2+……+Dq
である。
次に、分割処理工程の分割数決定処理ステップにおいて決定されるデータパケット(Xcastパケット)の分割数p,qの決定方法について説明する。
分割数決定処理ステップでは、データパケット(Xcastパケット)の分割数p,qを決定する際、1個のXcastパケットを分割を実現する方法を与えるアルゴリズムを採用する。1個のXcastパケットを分割するアルゴリズムの一実施例(以下、分割数決定アルゴリズムとする)としては、まず、宛先アドレスの分割数p、データの分割数qの各組合せに対する1パケット長を計算し、計算結果がMTUout以下となるpおよびqの各組合せのうち、p×q(総パケット数)が最小となるpおよびqを選択するものが考えられる。
pおよびqの各組合せに対する1パケット長C(p,q)は、
[数3]
C(p,q)=Hf+B×K(N/p)+K(D/q)
で表すことができる。ここで、Nは宛先アドレス数、Bは1宛先アドレスあたりに必要となるバイト数(IPv6の場合16バイト)、K(x)はxの小数点以下を繰り上げて整数値を返す関数である。
尚、数式3に示されるC(p,q)は、より一般には、ネットワーク・プロトコルでしばしば用いられるパディングで使用されるバイト数を考慮して、
[数4]
C(p,q)=Hf+B×K(N/p)+K(D/q)+Padding(N)
と表すことができる。ここで、Padding(N)は、宛先アドレス数によって決まるパディングのバイト数で、正しく規定されたプロトコルであればその仕様に応じて、一意に定めることができる関数である。
1個のXcastパケットを分割するアルゴリズムを、分割データパケットのサイズがMTUout以下となる(p,q)の各組合せのうちp×q(総パケット数)が最小となるpおよびqを選択するとしたのは、Hf、Hv、D、MTUoutの各パラメータから変数pおよびqを直接得ようとするアルゴリズムと比べて、出力されるパケット数を最小限に抑えることで、不必要に多数のパケットが生成されないようにするためである。
仮に、Hf、Hv、D、MTUoutの各パラメータから変数pおよびqを直接得ようとすると、ヘッダの分割数が変わった場合、ペイロード・データ部に割り当てられる領域のサイズも変化するので、確実に転送可能にするp,qの値を得ることは可能であっても、必ずしも出力するパケット数を最小限に抑えるという観点において最適なp,qの値が得られるとは限らない。換言すれば、不必要に多数のパケットが生成される恐れがある。
つまり、分割数決定アルゴリズムの特徴は、ヘッダの分割数の変化に依存することなく、出力するパケット数を最小限に抑えるという観点において、最適な組合せを計算することができる点にある。また、Hfを宛先アドレス数を0とした場合に確保しなければならないヘッダ領域のバイト数とみなすことによって、Xcastに限らず、複数宛先を有するパケットを分割する数を決定するために利用することができる。
尚、Xcastに限らず、一般にネットワーク・プロトコルには、オプション機能があり、その使用の有無によってHfの実際の値と、1宛先アドレスあたりに必要となるバイト数Bが変化する場合がある。従って、HfおよびBの値が変化しないことを前提として説明してきた分割数決定アルゴリズムは、HfおよびBの値の少なくとも一方が変化した場合において適用できないようにも思われる。
しかし、1宛先アドレスあたりに必要となるバイト数Bが変化するような場合でも、ネットワーク・プロトコルの性質上、それぞれ具体的にどの値を使用すればよいかは、到着したパケットに含まれるヘッダ部内のいずれかの情報により常に知りえる。従って、分割数決定アルゴリズムは、HfおよびBの変化の有無にかかわらず、また、Xcastに限らず、複数宛先を有するパケットを分割する数を決定するために利用することができる。
分割数決定処理ステップで、複数宛先パケット分割・圧縮処理部12がヘッダ可変長部Hvの分割数pおよびペイロード・データ長Dの分割数qを決めると、ステップS3に進み、続いて、データパケット分割処理ステップを行う。データパケット分割処理ステップでは、複数宛先パケット分割・圧縮処理部12が、決定したpおよびqの値に基づき、図3に示す要領で、ヘッダ可変長部Hvをp個、ペイロード・データ長Dをq個に分割してp×q個の分割データパケットを構築する。
ペイロード・データ部の分割については、一般には、そのデータ並び順を復元する情報をパケットに含める必要がある。ここでは、IPフラグメンテーションに準じた方式を利用するものとする。また、データの並び順序を再現するための情報として例えばXcastヘッダの他の領域を利用できるものとする。一方、宛先アドレスの分割については、再現する情報はまったく必要なく、独立したパケットとして配送することができるので、分割に伴う付加的な情報は必要ない。
データパケット分割処理ステップで、複数宛先パケット分割・圧縮処理部12がp×q個の分割データパケットを構築すると、データパケット分割処理ステップを完了し、データパケット分割処理ステップの完了をもって、分割処理工程を完了する。分割処理工程が完了すると、ステップS4に進み、データパケット出力ステップがなされる。
データパケット出力ステップでは、複数宛先パケット分割・圧縮処理部12が構築されたp×q個の分割データパケットをすべてデータパケット処理部3に出力する。分割データパケットの出力先となるデータパケット処理部3は、複数宛先ルーティング処理部5がルーティング処理を行い決定したコンピュータ・ネットワークとネットワークインタフェース2を介して接続されるデータパケット処理部3である。データパケット出力ステップがなされると、分割処理手順は終了となる(終了)。
一方、送信可否判定ステップにおいて送信できるとの判定結果がなされた場合(ステップS1でYESの場合)には、ステップS4に進み、ステップS4以降の処理ステップがなされる。
このような分割処理手順を行えば、ヘッダ部(ヘッダ可変長部Hvのみ)を分割することで、従来であれば、パケットを廃棄せざるを得ないような場合、すなわち、宛先アドレス数が多くデータパケットのヘッダ長が長大であり、データ領域の分割によるパケット分割だけでは、分割しても配送先のMTU以下のサイズにパケットを小さくすることが不可能な場合であっても、データパケットの分割が可能となる。
次に、分割・圧縮処理手順が分割処理手順のみならず圧縮処理手順をも備える場合について説明する。
圧縮処理手順は、送信可否判定ステップ(ステップS1)と、データパケットのアドレスリストの圧縮処理を行う圧縮処理工程について実行するか否かを判定する圧縮処理工程実行判定ステップ(ステップS5)と、データパケットの圧縮処理を行う圧縮処理工程(ステップS6〜ステップS9)と、データパケット出力ステップ(ステップS4)とを備える。つまり、分割・圧縮処理手順は、既に説明した分割処理手順(ステップS1〜ステップS4)に圧縮処理工程実行判定ステップ(ステップS5)と、圧縮処理工程(ステップS6〜ステップS9)とを付加した処理手順である。
従って、分割・圧縮処理手順は、圧縮処理手順を備える場合であっても、圧縮処理手順を備えない場合と同様に、複数宛先パケット分割・圧縮処理部12がルーティング処理後のパケットを受信すると開始され、まず、送信可否判定ステップがなされる。そして、送信可否判定ステップにおいて送信できないとの判定結果がなされた場合(ステップS1でNOの場合)には、ステップS5に進み、続いて、圧縮処理工程実行判定ステップがなされる。
圧縮処理工程実行判定ステップでは、複数宛先パケット分割・圧縮処理部12が圧縮処理工程を行うか否かを判定する。圧縮処理工程を行うか否かは、複数宛先パケット分割・圧縮処理部12が、予めルータ装置1において設定される圧縮設定パラメータの値を読み取ることで行う。複数宛先パケット分割・圧縮処理部12は、ルータ装置1において設定された圧縮設定パラメータがonの場合(ステップS5でYESの場合)、圧縮処理工程を行うと判定する。
ここで、圧縮設定パラメータについて補足する。ルータ装置1に設定される圧縮設定パラメータは、圧縮が有効でないことが事前に予想される場合、offに設定することができる。例えば、IPv6アドレスの値は、アドレスリスト中のアドレス間で共通部分が多い場合が十分予想されるので、その場合は、高い圧縮率を期待できる。
しかし、共通部分の少ないアドレスリストを含むパケットが高い頻度で到着することが予想される場合は、圧縮の効果が少ないため、かえって圧縮アルゴリズムを試みる処理時間が無駄になる可能性がある。この理由から、ルータ装置1の外部設定パラメータとして、圧縮の有無を選択可能に構成している。
ルータ装置1において設定された圧縮設定パラメータがonの場合(ステップS5でYESの場合)、複数宛先パケット分割・圧縮処理部12は圧縮処理工程を行うと判定し、ステップS6に進み、続いて、ステップS6以降で圧縮処理工程を行う。
圧縮処理工程は、公知の技術内容であり、例えば図5に示すように、アドレスリストのデータ圧縮の効果を事前に判定する圧縮効果事前判定ステップ(ステップS6)と、アドレスリストのデータ圧縮を行うデータ圧縮ステップ(ステップS7)と、圧縮後のアドレスリストを用いて構築するデータパケット(以下、圧縮データパケットとする)のサイズが配送先のコンピュータ・ネットワークのMTU(MTUout)以下になるかを判定する圧縮データパケット送信可否判定ステップ(ステップS8)と、圧縮データパケットを構築する圧縮データパケット構築ステップ(ステップS9)とを備える。
そして、複数宛先パケット分割・圧縮処理部12が図5に示すような圧縮処理工程を完了すると、ステップS4に進み、続いて、ステップS4以降の処理ステップを実行する。一方、ルータ装置1において設定された圧縮設定パラメータがoffの場合(ステップS5でNOの場合)、ステップS2に進み、複数宛先パケット分割・圧縮処理部12は、続いて、ステップS2以降の処理ステップを実行する。
次に、分割・圧縮処理手順の一実施例として、図1に示すルータ装置1において以下の(1)〜(4)の場合を想定し、図5に示す分割・圧縮処理手順をより具体的に説明する。
(1)ルータ装置1は、3つのコンピュータ・ネットワーク(第1のネットワーク、第2のネットワークおよび第3のネットワーク)と接続されており、第1のネットワークから、ヘッダに含まれる宛先アドレスNが50個、ペイロード・データ部のデータ長Dは500バイトのXcastパケットを受信した。
(2)第1のネットワークのMTUは1500バイト、第2のネットワークのMTUは500バイト、第3のネットワークのMTUは700バイトである。尚、本来ネットワーク用語としては、「オクテット」を使用するのが適切な場合もあるが、本説明では、ルータの構成にかかわる説明の観点から、すべて「バイト」で表現する。
(3)受信したXcastパケットの宛先アドレスのうち、第2のネットワークに配送すべき宛先アドレスN2は40個、第3のネットワークに配送すべき宛先アドレスN3は10個である。
(4)ルータ装置1において圧縮設定パラメータはonと設定されている(アドレスリストのデータ圧縮のみで対応できる場合には圧縮処理手順を行い、分割処理手順は行わない)。
上記(1)〜(4)の場合において、複数宛先ルーティング処理部5は、第1のネットワークに接続されるネットワークインタフェース2から受信しXcastパケットを、複数宛先パケット伸張処理部11を経由して受信する。Xcastパケットを受信すると、複数宛先ルーティング処理部5は、図3に示すような処理手順でルーティング処理を行い、配送先となるネットワーク毎に宛先アドレスリストを分配したXcastパケットを構築する。
1個のXcastパケットのサイズ[バイト]は、一般にIPv6上のXcast仕様では、DSCPsリストやデスティネーション拡張ヘッダ等の拡張機能を用いない場合を想定し、Hf=72[バイト]、B=16[バイト]、Xcastパケットの宛先数をp個、データがDバイトとすると、
[数5]
40+N×16+24+8+D=72+16×N+D
となる。この数式5を用いれば、出力されるパケットのサイズを計算することができる。
ここで、第2のネットワーク宛てのXcastパケットのサイズ(ヘッダとペイロード・データとの合計サイズ)は、N=40、D=500を数式5に代入すれば、
72+16×40+500=1212となり、1212バイトとなる。
同様に、第3のネットワーク宛てのXcastパケットのサイズを求めると、
72+16×10+500=732となり、732バイトとなる。
つまり、複数宛先パケット分割・圧縮処理部12は、複数宛先ルーティング処理部5から構築された第1のパケット(1212バイト)および第2のパケット(732バイト)を受け取り、受け取ったパケットに対して圧縮・分割処理手順を行う。
圧縮・分割処理手順では、まず、送信可否判定ステップ(ステップS1)がなされる。上記(1)〜(4)の場合、複数宛先パケット分割・圧縮処理部12が第1のパケットおよび第2のパケットを受け取り、受け取った各々のデータパケットについて送信可否を判定する。
まず、第1のパケットについては、パケットのサイズ(1212バイト)が、配送先となる第2のネットワークのMTU(MTUout=500)を超えているため、複数宛先パケット分割・圧縮処理部12は、受け取った第1のパケットを送信不可と判定する(ステップS1でNOの場合)。圧縮・分割処理手順における送信可否判定ステップで、送信不可と判定された場合(ステップS1でNOの場合)、ステップS5に進み、続いて、圧縮処理工程実行判定ステップがなされる。
圧縮処理工程実行判定ステップでは、複数宛先パケット分割・圧縮処理部12が圧縮パラメータの状態(onまたはoff)を確認する。ここでは、圧縮パラメータをonとしているので、圧縮処理工程実行判定ステップでは、圧縮処理工程を実行すると判定する(ステップS5でYESの場合)。そして、ステップS6に進み、複数宛先パケット分割・圧縮処理部12は、第1のパケットについて圧縮処理工程を行う。
圧縮処理工程では、まず、ステップS6で圧縮効果事前判定ステップを行い、アドレスリストのデータ圧縮の効果を事前に判定する。効果の有無の判定は、ペイロード・データ部がMTUoutよりも大きいか否かで判断する。ペイロード・データ部がMTUout以上であれば、アドレスリストをいくらデータ圧縮しても全体のサイズがMTUout以下にならないことは自明だからである。つまり、圧縮効果事前判定ステップは、データ圧縮の実行前に、データ圧縮したとしても、配送することのできないデータパケットをデータ圧縮対象から排除するための処理ステップである。
ここで、第1のパケットのアドレスリストをデータ圧縮した場合の効果の有無について検討すると、受け取ったパケットのヘッダ部のサイズが、72+16×40=712バイト、ペイロード・データ部のサイズが500バイトである。また、MTUoutが500であることから、複数宛先パケット分割・圧縮処理部12は、第1のパケットについてアドレスリストをデータ圧縮しても効果がないと判定する(ステップS6でNOの場合)。
複数宛先パケット分割・圧縮処理部12は、アドレスリストをデータ圧縮しても効果がないと判定した場合(ステップS6でNOの場合)、ステップS2に進み、続いて、分割処理工程(ステップS2〜ステップS3)を行う。分割処理工程では、まず、分割数決定処理ステップがなされpおよびqの値が決定される(ステップS2)。分割数決定処理ステップでは、例えば、複数宛先パケット分割・圧縮処理部12が、分割数決定アルゴリズムを用いてpおよびqの値を決定する。
図7に分割数決定アルゴリズムを用いて宛先アドレスの分割数pとペイロード・データ部の分割数qとの組合せを計算した結果を表す説明図である。尚、図7に示される数値は、Hf=72[バイト]、N=40[個]、ペイロード・データ長D=500[バイト]の場合におけるC(p,q)の計算結果である。
分割数決定処理ステップでは、まず、複数宛先パケット分割・圧縮処理部12が、分割数決定アルゴリズムを用いて、C(p,q)の計算を行う。そして、MTUout(=500)に収まるpとqの組合せのうち、p×qの値が最も小さくなるpおよびqを選択する。図7によれば、p=4、q=2の場合にp×qが最小値8となり、Xcastパケット分割・圧縮処理部12は、p=4、q=2を分割数として決定する。
複数宛先パケット分割・圧縮処理部12が、分割数決定アルゴリズムを用いてpおよびqの値(p=4、q=2)を決定すると、続いて、ステップS3でデータパケット分割処理ステップを行い、宛先アドレスを4つ、ペイロード・データ部を2つに分割する。そして、8(=2×4)個の分割パケットが構築されると、データパケット分割処理ステップが完了し、データパケット分割処理ステップの完了をもって、分割処理工程は完了する。
分割処理工程が完了すると、ステップS4に進み、データパケット出力ステップがなされる。データパケット出力ステップでは、複数宛先パケット分割・圧縮処理部12が構築した8個の分割データパケットをすべてデータパケット処理部3に送る。そして、データパケット出力ステップを完了し、分割処理手順を終了する。分割処理手順の終了後、分割パケットを受け取ったデータパケット処理部3は、第1のパケットを分割して構築された8個の分割データパケットをネットワークインタフェース2に送り、ネットワークインタフェース2を経由して配送先の第2のネットワークに配送する。
一方、第2のパケットについても、パケットのサイズ(732バイト)が、配送先となる第3のネットワークのMTU(MTUout=700)を超えるため、第1のパケットの場合と同様に送信可否判定ステップ(ステップS1)に続いて、圧縮処理工程実行判定ステップ(ステップS5)および圧縮効果事前判定ステップ(ステップS6)がなされる。
第2のパケットの場合、複数宛先パケット分割・圧縮処理部12が受け取ったパケットのヘッダ部のサイズは、72+16×10=232バイト、ペイロード・データ部のサイズは500バイトであり、合計732バイトである。また、第2のパケットの場合、MTUoutが700であることから、このままでは第2のパケットは、送信することができない。
しかし、ヘッダとして割り当て可能な領域は、MTUout−D=700−500=200バイトあり、圧縮により送信可能になる可能性があるとみなせる。従って、複数宛先パケット分割・圧縮処理部12は、第2のパケットについてデータ圧縮の効果があると判定する(ステップS6でYESの場合)。従って、第2のパケットについては、ステップS7に進み、データ圧縮ステップを行う。
データ圧縮ステップでは、複数宛先パケット分割・圧縮処理部12が、アドレスリストのデータ圧縮を行う(ステップS7)。アドレスリストの圧縮率は、パケットの種類等で異なるが、ここでは、50%だったものとする。
データ圧縮ステップがなれると、続いて、圧縮データパケット送信可否判定ステップがなされる。圧縮データパケット送信可否判定ステップでは、複数宛先パケット分割・圧縮処理部12が、圧縮後のアドレスリストを用いて構築するデータパケットのサイズが配送先のMTUout以下になるかを判定する(ステップS8)。
第2のパケットは、アドレスリストの圧縮を実行した結果、圧縮後のXcastパケットのヘッダ長は、72+16×(50/100)×10=152バイトとなる。この結果、パケット全体長は、ペイロード長Dの500バイトを加算して、652バイトとなり、MTUout以下のサイズとなる(ステップS8でYESの場合)。従って、ステップS9に進み、続いて、圧縮データパケット構築ステップがなされる。
圧縮データパケット構築ステップでは、複数宛先パケット分割・圧縮処理部12が、圧縮したアドレスリストを含むパケット1個を構築する(ステップS9)。そして、先に複数宛先ルーティング処理部5が決定した配送先のデータパケット処理部3に出力する(ステップS4)。その後、圧縮データパケットは、ネットワークインタフェース2に送られ、ネットワークインタフェース2を経由して配送先の第3のネットワークに配送される。
従って、上記(1)〜(4)の場合には、複数宛先パケット分割・圧縮処理部12からなされるデータパケットの出力は、圧縮されたアドレスリストが入った圧縮データパケットと、分割された複数の分割データパケットとなる。すなわち、第1のパケットを8個に分割した8個の分割データパケットと、1個の圧縮データパケットとが複数宛先パケット分割・圧縮処理部12から出力されることになる。
以上、本発明に係る複数の宛先アドレスを含むパケットのルーティング方法および当該ルータ装置1によれば、MTUoutが異なる2つの経路にデータパケットをルーティングする際に、受信したデータパケットのデータサイズが、MTUoutを超える場合においても、宛先アドレス情報のデータ圧縮を実施することにより、または、宛先アドレス情報のデータ圧縮が有効でない場合には、1パケットを複数のパケットに分割することで、受信したデータパケットを配送先に配送することができる。
特に、本発明に係る複数の宛先アドレスを含むパケットのルーティング方法において、分割・圧縮処理手順が、圧縮処理手順と分割処理手順との両者を備える場合においては、まず、宛先アドレス情報のデータ圧縮を試み、データ圧縮が有効でなかった場合に、1パケットを複数のパケットに分割する分割処理手順を行うことができる。
分割処理手順では、ペイロード・データ部の分割とアドレスリスト(ヘッダ可変長部)の分割を組合せて行うことにより、従来では、パケットを廃棄せざるを得ないような場合(宛先アドレスリストが長大な故に、ヘッダ部のサイズが長大となり、データ部の分割によるパケット分割だけでは効果がない場合)であっても、データパケットの配送が可能となる。
また、分割処理手順において、分割アルゴリズムを適用することにより、与えられた配送先のネットワークにおけるパケットのサイズの上限値に基づき、出力するパケット数を最小限に抑えるという観点において最適な分割を行い、パケットを配送することが可能となる。
一方、ルータ装置1では、圧縮設定パラメータをon/offに切り替え可能に構成することで、データ圧縮の必要が無い場合や、データ圧縮の効果が少ない宛先アドレス群が得られることが予測しうる場合に圧縮アルゴリズムの適用に伴うルーティングの遅延を削減することが可能になる。
尚、ルータ装置1は、ルーティング処理の対象が常に複数の宛先アドレスを含むパケットであるならば、単一のデータパケットのルーティング処理を行う単一宛先ルーティング処理部4を具備していなくても良い。ルータ装置1が単一宛先ルーティング処理部4を具備しているのは、受信するデータパケットが単一の宛先アドレスのパケットの場合もあれば、複数の宛先アドレスを含むデータパケットの場合もあり得るからである。
本発明に係る複数の宛先アドレスを含むパケットのルーティング方法を実行するルータ装置の構成図。 本発明に係るルータ装置の複数宛先パケット伸張処理部へ送られるXcastパケットの一実施例であり、IPv6用Xcastパケットのフォーマットを説明する説明図。 複数宛先をもつデータパケットのルーティング処理について一般的な処理手順を説明する説明図。 複数宛先をもつデータパケットのルーティング処理における具体例を説明する説明図。 本発明に係るルータ装置の複数宛先パケット分割・圧縮処理部が行う分割・圧縮処理手順をさらに詳細に説明する処理フロー図。 本発明に係るルータ装置の複数宛先パケット分割・圧縮処理部が行う分割処理工程を概説する説明図。 分割数決定アルゴリズムを用いて宛先アドレスの分割数pとペイロード・データ部の分割数qとの組合せを計算した結果を表す説明図。
符号の説明
1 ルータ装置
2 ネットワークインタフェース
3 データパケット処理部
4 単一宛先ルーティング処理部
5 複数宛先ルーティング処理部
7 制御パケット処理部
8 ルーティングテーブル
9 ルーティングテーブル更新部
11 複数宛先パケット伸張処理部
12 複数宛先パケット分割・圧縮処理部

Claims (7)

  1. データパケットのサイズの上限が異なる少なくとも2つの経路で複数の宛先アドレスを含むデータパケットを受信した後、受信した前記パケットのアドレスリストが圧縮されているか否かを判断して圧縮されている場合に伸張処理ステップを実行する複数宛先パケット伸張処理手順と、複数の宛先アドレスを含むデータパケットに対してルーティング処理を行う複数宛先ルーティング処理手順と、前記ルーティング処理後のデータパケットを必要に応じて分割または圧縮して出力する分割・圧縮処理手順とを具備し、
    この分割・圧縮処理手順は、ルーティング処理後のデータパケットがそのまま送信可能であるか否かを判定する送信可否判定ステップと、送信可否判定ステップで送信できない場合にルーティング処理後のデータパケットのヘッダ部の宛先アドレスデータの分割数とペイロード・データ部の分割数を決定する分割数決定処理ステップと、この分割数決定処理ステップで決定した分割数にデータパケットを再分割するデータパケット分割処理ステップと、分割後のデータパケットを出力するデータパケット出力ステップとを備え、
    前記分割数決定処理ステップは、配送先のネットワークにおけるパケットのサイズの上限を超過する場合は、ペイロード・データ部の分割だけでなく、ヘッダ部に含まれる宛先アドレスの分割を試み、配送先ネットワークの1パケットのサイズの上限に収まるように、複数の分割パケットを構築して送出することを特徴とするルーティング方法。
  2. 前記分割数決定処理ステップは、宛先アドレスの分割数およびペイロード・データの分割数の2つの値について、構築する分割パケットのサイズが配送先ネットワークの1パケットのサイズの上限値以下となる2つの値の組合せのうち、送出するパケット数を最小にする組合せを選択することを特徴とする請求項1記載のルーティング方法。
  3. 前記分割数決定処理ステップは、前記宛先アドレスデータの分割数pと前記ペイロード・データ部の分割数qとを決定するために、p×q個に分割されたパケットの1パケット長が配送先ネットワークの1パケットのサイズの上限値MTUoutに収まるpおよびqの組み合わせを算出することを特徴とする請求項記載のルーティング方法。
  4. 外部との入出力インタフェースとして、データパケットを受け取る複数のネットワークインタフェースと、
    データパケットの送受信を担うデータパケット処理部と、
    前記ネットワークインタフェースが受け取ったデータパケットのアドレスリストが圧縮されている場合にアドレスリストを伸張して出力する複数宛先パケット伸張処理部と、
    前記ネットワークインタフェースが受け取ったデータパケットの宛先が単一のデータパケットのルーティング処理を行う単一宛先ルーティング処理部と、
    前記ネットワークインタフェースが受け取ったデータパケットの宛先が複数のデータパケットのルーティング処理を行う複数宛先ルーティング処理部と、
    前記ルーティング処理後のデータパケットを、配送先ネットワークの1パケットのサイズの上限を考慮して必要に応じてデータパケットの分割・圧縮処理を行い出力する複数宛先パケット分割・圧縮処理部と、
    制御パケットの送受信を行う制御パケット処理部と、
    ルーティング情報を格納したルーティングテーブルの情報を更新するルーティングテーブル更新部とを具備し、
    前記複数宛先パケット分割・圧縮処理部は、ルーティング処理後のデータパケットがそのまま送信できない場合、ルーティング処理後のデータパケットを分割する際に、ペイロード・データ部の分割およびヘッダ部に含まれる宛先アドレスの分割を試み、分割後の各分割パケットは配送先ネットワークの1パケットのサイズの上限に収まる複数の分割パケットとして送出されるように構成されたことを特徴とするルータ装置。
  5. 前記複数宛先パケット分割・圧縮処理部は、ルーティング処理後のデータパケットがそのまま送信できない場合、ルーティング処理後のデータパケットを分割する際に、宛先アドレスの分割数およびペイロード・データの分割数の2つの値について、構築する分割パケットのサイズが配送先ネットワークの1パケットのサイズの上限値以下となる2つの値の組合せのうち、送出するパケット数を最小にする組合せを選択するように構成されたことを特徴とする請求項4記載のルータ装置。
  6. 前記複数宛先パケット分割・圧縮処理部は、ルーティング処理後のデータパケットがそのまま送信できない場合、ルーティング処理後のデータパケットを分割する際に必要となる宛先アドレスの分割数pおよびペイロード・データの分割数qの2つの値を、p×q個に分割されたパケットの1パケット長が配送先ネットワークの1パケットのサイズの上限値MTUoutに収まるpおよびqの組み合わせであるか否かで決定することを特徴とする請求項4記載のルータ装置。
  7. 前記複数宛先パケット分割・圧縮処理部は、ルーティング処理後のデータパケットがそのまま送信できない場合、まず、データパケットのアドレスリストの圧縮処理を試み、データパケットのアドレスリストの圧縮処理を行ってもなお送信できない場合にルーティング処理後のデータパケットを分割するように構成されたことを特徴とする請求項記載のルータ装置。
JP2004225695A 2004-08-02 2004-08-02 複数の宛先アドレスを含むパケットのルーティング方法および当該ルータ装置 Expired - Fee Related JP4371938B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004225695A JP4371938B2 (ja) 2004-08-02 2004-08-02 複数の宛先アドレスを含むパケットのルーティング方法および当該ルータ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004225695A JP4371938B2 (ja) 2004-08-02 2004-08-02 複数の宛先アドレスを含むパケットのルーティング方法および当該ルータ装置

Publications (2)

Publication Number Publication Date
JP2006050086A JP2006050086A (ja) 2006-02-16
JP4371938B2 true JP4371938B2 (ja) 2009-11-25

Family

ID=36028162

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004225695A Expired - Fee Related JP4371938B2 (ja) 2004-08-02 2004-08-02 複数の宛先アドレスを含むパケットのルーティング方法および当該ルータ装置

Country Status (1)

Country Link
JP (1) JP4371938B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009071462A (ja) * 2007-09-12 2009-04-02 Nec Corp 通信装置及び通信システム並びに通信制御方法
WO2013042383A1 (ja) * 2011-09-22 2013-03-28 三洋電機株式会社 無線装置

Also Published As

Publication number Publication date
JP2006050086A (ja) 2006-02-16

Similar Documents

Publication Publication Date Title
KR102555671B1 (ko) 패킷 처리 방법, 관련 기기 및 컴퓨터 저장 매체
US7492762B2 (en) Method for dynamic flow mapping in a wireless network
US10419333B2 (en) Method and apparatus for compressing label stack, and method and apparatus for decompressing label stack
US6711164B1 (en) Method and apparatus for performing IP-ID regeneration to improve header compression efficiency
US9893984B2 (en) Path maximum transmission unit discovery
US7058728B1 (en) Method and apparatus for initiating compression of headers of packets and refreshing the context related to the packets
US7451227B2 (en) Method for path MTU discovery on IP network and apparatus thereof
US20070030848A1 (en) Network communication system
US8953631B2 (en) Interruption, at least in part, of frame transmission
US10432755B2 (en) SDN, SDN configuration method, SDN-based data transmission method, and network controller
EP3122012B1 (en) Data processing method and apparatus for openflow network
US9548921B2 (en) Compression of routing information exchanges
JP4371938B2 (ja) 複数の宛先アドレスを含むパケットのルーティング方法および当該ルータ装置
WO2004019561A1 (ja) イーサネット(r)におけるフレーム転送方法及びノード
SE522919C2 (sv) Återberäkning av kontrollsumma för transportprotokoll
JP6904846B2 (ja) 通信装置、通信装置の制御方法、および、プログラム
JP2015109544A (ja) 無線通信システム
WO2003084144A1 (en) Method for path mtu discovery on ip network and apparatus thereof
JP2006121434A (ja) Atm通信装置およびその通信方法
JP6221786B2 (ja) 中継装置、通信システム、および、通信方法
JP7008714B2 (ja) 通信装置
JP2010041498A (ja) パケット作成装置及びパケット作成方法
US7319697B2 (en) Data communication system according to a packet-switching principle
WO2016197832A1 (zh) 报文处理方法、设备和系统
JP2007074198A (ja) ネットワーク通信システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070510

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090512

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090710

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: 20090804

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: 20090901

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

Free format text: PAYMENT UNTIL: 20120911

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4371938

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20120911

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120911

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130911

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees