(57)【特許請求の範囲】
【請求項１】
データグラムを含むパケットが送信される場合に、前記データグラムのヘッダ部のビット順序を反転して生成した反転ヘッダ情報を、前記データグラムの末尾に付加して反転ヘッダ付加データグラムを生成し、出力するための反転ヘッダ付加手段と、
前記反転ヘッダ情報を付加されたデータグラムを含む前記パケットが受信され、前記受信されたパケットが転送される場合に、前記パケットが転送される通信経路の最大転送サイズに対応して前記反転ヘッダ付加データグラムを分割し、前記反転ヘッダ付加データグラムの先頭から前記最大転送サイズ以下の分までの部分の前部データグラムと、前記反転ヘッダ付加データグラムから前記前部データグラムを除いた部分を、ビット順序を反転させた後部データグラムとを生成し、出力するためのフラグメンテーション処理手段と、
前記後部データグラムを含むパケットが受信された場合に、前記後部データグラムに含まれる前記ヘッダ部を削除して反転後部データを抽出し、前記反転後部データのビット順序を反転して前記前部データグラムに含まれる前部データの末尾に付加したデータを出力するためのデータ反転手段と、を含む
パケット転送システム。
【請求項２】
前記反転ヘッダ付加手段は、ネットワーク層の前記ヘッダ部のビット順序を反転して前記反転ヘッダ情報を生成する
ことを特徴とする請求項１記載のパケット転送システム。
【請求項３】
前記反転ヘッダ付加手段は、更に、ネットワーク層より上位の層も含めた前記ヘッダ部のビット順序を反転して前記反転ヘッダ情報を生成する
ことを特徴とする請求項２記載のパケット転送システム。
【請求項４】
前記反転ヘッダ付加手段は、前記パケットに含まれる前記データグラムのサイズが閾値以上の場合に、反転ヘッダ付加データグラムを生成し、前記データグラムのサイズが閾値以下の場合に、反転ヘッダ付加データグラムを生成しない
ことを特徴とする請求項１乃至３のいずれか１項に記載のパケット転送システム。
【請求項５】
前記フラグメンテーション処理手段は、前記パケットに含まれる前記データグラムのサイズが閾値以上の場合に、前記反転ヘッダ付加データグラムを分割し、前記データグラムのサイズが閾値以下の場合に、前記反転ヘッダ付加データグラムを分割しないで、反転ヘッダを削除する
ことを特徴とする請求項１乃至４のいずれか１項に記載のパケット転送システム。
【請求項６】
請求項１乃至５のいずれか１項に記載のフラグメンテーション処理手段を含む
情報処理装置。
【請求項７】
請求項１乃至５に記載の反転ヘッダ付加手段及びデータ反転手段のいずれかひとつを少なくとも含む
情報処理装置。
【請求項８】
第１の情報処理装置がデータグラムを含むパケットが送信される場合に、前記データグラムのヘッダ部のビット順序を反転して生成した反転ヘッダ情報を、前記データグラムの末尾に付加して反転ヘッダ付加データグラムを生成し、出力し、
転送装置が前記反転ヘッダ情報を付加されたデータグラムを含む前記パケットが受信され、前記受信されたパケットが転送される場合に、前記パケットを転送する通信経路の最大転送サイズに対応して前記反転ヘッダ付加データグラムを分割し、前記反転ヘッダ付加データグラムの先頭から前記最大転送サイズ以下の分までの部分の前部データグラムと、前記反転ヘッダ付加データグラムから前記前部データグラムを除いた部分を、ビット順序を反転させた後部データグラムとを生成し、出力し、
第２の情報処理装置が前記後部データグラムを含むパケットが受信された場合に、前記後部データグラムに含まれる前記ヘッダ部を削除して反転後部データを抽出し、前記反転後部データのビット順序を反転して前記前部データグラムに含まれる前部データの末尾に付加したデータを出力する、
パケット転送方法。
【請求項９】
データグラムを含むパケットが送信される場合に、前記データグラムのヘッダ部のビット順序を反転して反転ヘッダ情報を生成する処理と、
前記生成した反転ヘッダ情報を前記データグラムの末尾に付加して反転ヘッダ付加データグラムを生成し、出力する処理と、をコンピュータに実行させ、
前記コンピュータは、
前記反転ヘッダ情報を付加されたデータグラムを含む前記パケットが受信され、前記受信されたパケットが転送される場合に、前記パケットを転送する通信経路の最大転送サイズに対応して前記反転ヘッダ付加データグラムを分割し、前記反転ヘッダ付加データグラムの先頭から前記最大転送サイズ以下の分までの部分の前部データグラムと、前記反転ヘッダ付加データグラムから前記前部データグラムを除いた部分を、ビット順序を反転させた後部データグラムとを生成し、出力するためのフラグメンテーション処理手段と、
前記後部データグラムを含むパケットが受信された場合に、前記後部データグラムに含まれる前記ヘッダ部を削除して反転後部データを抽出し、前記反転後部データのビット順序を反転して前記前部データグラムに含まれる前部データの末尾に付加したデータを出力するためのデータ反転手段と、を含むパケット転送システムに含まれるコンピュータである
プログラム。
【請求項１０】
データグラムを含むパケットが送信される場合に、前記データグラムのヘッダ部のビット順序を反転して生成した反転ヘッダ情報を、前記データグラムの末尾に付加して反転ヘッダ付加データグラムを生成し、出力するための反転ヘッダ付加手段と、
前記反転ヘッダ情報を付加されたデータグラムを含む前記パケットが受信され、前記受信されたパケットが転送される場合に、前記パケットを転送する通信経路の最大転送サイズに対応して前記反転ヘッダ付加データグラムを分割し、前記反転ヘッダ付加データグラムの先頭から前記最大転送サイズ以下の分までの部分の前部データグラムと、前記反転ヘッダ付加データグラムから前記前部データグラムを除いた部分を、ビット順序を反転させた後部データグラムとを生成し、出力するためのフラグメンテーション処理手段と、を含むパケット転送システムに含まれるコンピュータに、
前記後部データグラムを含むパケットが受信された場合に、前記後部データグラムに含まれる前記ヘッダ部を削除して反転後部データを抽出する処理と、
前記反転後部データのビット順序を反転して前記前部データグラムに含まれる前部データの末尾に付加したデータを出力する処理と、を実行させる
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信経路の最大転送サイズに対応してパケットサイズを調整するパケット転送システム、パケット転送方法、及びそのためのプログラムに関する。
【背景技術】
【０００２】
通信経路の最大転送サイズに対応してパケットサイズを調整するパケット転送システムは、送信元ホストから宛先ホストへパケットを転送する際に、例えば以下のように動作する。
【０００３】
第１に、送信元ホストは、第１のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）にパケットを送出する。
【０００４】
第２に、第１のルータは、そのパケットを第１のＬＡＮから受信し、ＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）の通信網へ送出する。ここで、第１のルータは、ＶＰＮの通信網のＭＴＵ（Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）サイズに対応して、そのパケットをフラグメント化（フラグメンテーション）し、例えば、前部パケットと後部パケットとにして送出する。
【０００５】
第３に、第２のルータは、その前部パケットと後部パケットとをＶＰＮの通信網から受信し、第２のＬＡＮへ送出する。
【０００６】
第４に、宛先ホストは、第２のＬＡＮから、その前部パケットと後部パケットとを受信し、その前部パケットと後部パケットとから送信元ホストが送出したパケットを再構築する。
【０００７】
しかしながら、上述のようなフラグメンテーションによりパケットサイズを調整することには、次のような問題点がある。
【０００８】
その問題点は、パケットをフラグメンテーションする処理が複雑であるため、第１のルータにおける負荷が高くなり、パケット転送能力が不足する場合がある点である。
【０００９】
上述の第１の問題点に対し、フラグメンテーションの処理が発生しないように、経路の最大転送サイズを検出するＰａｔｈ  ＭＴＵ  Ｄｉｓｃｏｖｅｒｙという技術がある。例えば、特許文献１は、通信経路の経路ＭＴＵ情報を探索し、その探索結果をデータ送信装置に通知するネットワーク中継装置を開示する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】再特２００７／１１４１８３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、上述した背景技術においては、ルータの負荷増大を抑制しつつ、転送の遅延を防止することができないという問題点がある。
【００１２】
その理由は、Ｐａｔｈ  ＭＴＵ  Ｄｉｓｃｏｖｅｒｙを使用した場合には、再送などによるパケット遅延が大きくなる場合があるからである。また、特許文献１が開示するネットワーク中継装置は、経路ＭＴＵを検出するための通信が必要であり、その通信による、ルータの負荷増大、転送の遅延が発生する場合があるからである。
【００１３】
本発明の目的は、上述した問題点を解決するパケット転送システム、パケット転送方法、及びそのためのプログラムを提供することにある。
【課題を解決するための手段】
【００１４】
本発明のパケット転送システムは、データグラムを含むパケットが送信される場合に、前記データグラムのヘッダ部のビット順序を反転して生成した反転ヘッダ情報を、前記データグラムの末尾に付加して反転ヘッダ付加データグラムを生成し、出力するための反転ヘッダ付加手段と、
前記反転ヘッダ情報を付加されたデータグラムを含む前記パケットが受信され、前記受信されたパケットが転送される場合に、前記パケットが転送される通信経路の最大転送サイズに対応して前記反転ヘッダ付加データグラムを分割し、前記反転ヘッダ付加データグラムの先頭から前記最大転送サイズ以下の分までの部分の前部データグラムと、前記反転ヘッダ付加データグラムから前記前部データグラムを除いた部分を、ビット順序を反転させた後部データグラムとを生成し、出力するためのフラグメンテーション処理手段と、
前記後部データグラムを含むパケットが受信された場合に、前記後部データグラムに含まれる前記ヘッダ部を削除して反転後部データを抽出し、前記反転後部データのビット順序を反転して前記前部データグラムに含まれる前部データの末尾に付加したデータを出力するためのデータ反転手段と、を含む。
【００１５】
本発明のパケット転送方法は、第１の情報処理装置がデータグラムを含むパケットが送信される場合に、前記データグラムのヘッダ部のビット順序を反転して生成した反転ヘッダ情報を、前記データグラムの末尾に付加して反転ヘッダ付加データグラムを生成し、出力し、
転送装置が前記反転ヘッダ情報を付加されたデータグラムを含む前記パケットが受信され、前記受信されたパケットが転送される場合に、前記パケットを転送する通信経路の最大転送サイズに対応して前記反転ヘッダ付加データグラムを分割し、前記反転ヘッダ付加データグラムの先頭から前記最大転送サイズ以下の分までの部分の前部データグラムと、前記反転ヘッダ付加データグラムから前記前部データグラムを除いた部分を、ビット順序を反転させた後部データグラムとを生成し、出力し、
第２の情報処理装置が前記後部データグラムを含むパケットが受信された場合に、前記後部データグラムに含まれる前記ヘッダ部を削除して反転後部データを抽出し、前記反転後部データのビット順序を反転して前記前部データグラムに含まれる前部データの末尾に付加したデータを出力する。
【００１６】
本発明の第１のプログラムは、データグラムを含むパケットが送信される場合に、前記データグラムのヘッダ部のビット順序を反転して反転ヘッダ情報を生成する処理と、
前記生成した反転ヘッダ情報を前記データグラムの末尾に付加して反転ヘッダ付加データグラムを生成し、出力する処理と、を、
前記反転ヘッダ情報を付加されたデータグラムを含む前記パケットが受信され、前記受信されたパケットが転送される場合に、前記パケットを転送する通信経路の最大転送サイズに対応して前記反転ヘッダ付加データグラムを分割し、前記反転ヘッダ付加データグラムの先頭から前記最大転送サイズ以下の分までの部分の前部データグラムと、前記反転ヘッダ付加データグラムから前記前部データグラムを除いた部分を、ビット順序を反転させた後部データグラムとを生成し、出力するためのフラグメンテーション処理手段と、
前記後部データグラムを含むパケットが受信された場合に、前記後部データグラムに含まれる前記ヘッダ部を削除して反転後部データを抽出し、前記反転後部データのビット順序を反転して前記前部データグラムに含まれる前部データの末尾に付加したデータを出力するためのデータ反転手段と、を含むパケット転送システムに含まれる
コンピュータに実行させる。
【００１７】
本発明の第２のプログラムは、データグラムを含むパケットが送信される場合に、前記データグラムのヘッダ部のビット順序を反転して生成した反転ヘッダ情報を、前記データグラムの末尾に付加して反転ヘッダ付加データグラムを生成し、出力するための反転ヘッダ付加手段と、
前記反転ヘッダ情報を付加されたデータグラムを含む前記パケットが受信され、前記受信されたパケットが転送される場合に、前記パケットを転送する通信経路の最大転送サイズに対応して前記反転ヘッダ付加データグラムを分割し、前記反転ヘッダ付加データグラムの先頭から前記最大転送サイズ以下の分までの部分の前部データグラムと、前記反転ヘッダ付加データグラムから前記前部データグラムを除いた部分を、ビット順序を反転させた後部データグラムとを生成し、出力するためのフラグメンテーション処理手段と、を含むパケット転送システムに含まれるコンピュータに、
前記後部データグラムを含むパケットが受信された場合に、前記後部データグラムに含まれる前記ヘッダ部を削除して反転後部データを抽出する処理と、
前記反転後部データのビット順序を反転して前記前部データグラムに含まれる前部データの末尾に付加したデータを出力する処理と、を実行させる。
【発明の効果】
【００１８】
本発明は、ルータの負荷増大を抑制しつつ、転送の遅延を防止することが可能になるという効果がある。
【図面の簡単な説明】
【００１９】
【図１】図１は、第１の実施形態に係るパケット転送システムの構成を示すブロック図である。
【図２】図２は、第１の実施形態に係るホストの構成を示すブロック図である。
【図３】図３は、第１の実施形態におけるパケットの一例を示す図である。
【図４】図４は、第１の実施形態におけるＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）データの一例を示す図である。
【図５】図５は、第１の実施形態におけるＩＰデータグラムの一例を示す図である。
【図６】図６は、第１の実施形態における反転ヘッダ付加データグラムの一例を示す図である。
【図７】図７は、第１の実施形態に係るホストを実現するコンピュータのハードウェア構成を示すブロック図である。
【図８】図８は、第１の実施形態に係るルータの構成を示すブロック図である。
【図９】図９は、第１の実施形態における反転ヘッダ付加データグラムが分割されるイメージを示す図である。
【図１０】図１０は、第１の実施形態における前部ＩＰデータグラムの一例を示す図である。
【図１１】図１１は、第１の実施形態における後部ＩＰデータグラムの一例を示す図である。
【図１２】図１２は、第１の実施形態における前部パケットの一例を示す図である。
【図１３】図１３は、第１の実施形態における後部パケットの一例を示す図である。
【図１４】図１４は、第１の実施形態に係るホストの構成を示すブロック図である。
【図１５】図１５は、第１の実施形態における前部ＩＰデータの一例を示す図である。
【図１６】図１６は、第１の実施形態における反転後部データの一例を示す図である。
【図１７】図１７は、第１の実施形態におけるヘッダ情報取得部、ヘッダ情報取得部及び反転ヘッダ付加部の動作を示すフローチャートである。
【図１８】図１８は、第１の実施形態におけるフラグメンテーション処理部の動作を示すフローチャートである。
【図１９】図１９は、第１の実施形態におけるヘッダ削除部及びデータ反転部の動作を示すフローチャートである。
【図２０】図２０は、第２の実施形態に係るパケット転送システムの構成を示すブロック図である。
【図２１】図２１は、第３の実施形態における反転ヘッダ付加データグラムの一例を示す図である。
【発明を実施するための形態】
【００２０】
本発明を実施するための形態について図面を参照して詳細に説明する。尚各図面及び明細書記載の各実施形態において、同様の機能を備える構成要素には同様の符号が与えられている。
【００２１】
［第１の実施形態］
図１は、本発明の第１の実施形態に係るパケット転送システムの構成を示すブロック図である。
【００２２】
図１を参照すると、本実施形態に係るパケット転送システムは、ホスト（情報処理装置とも呼ばれる）１００、ホスト２００、ルータ（情報処理装置とも呼ばれる）５００、ルータ９００を含む。ホスト１００とルータ５００とはＬＡＮ（通信経路とも呼ばれる）４１０で接続されている。ルータ５００とルータ９００とはＶＰＮ（通信経路とも呼ばれる）４６０で接続されている。ルータ９００とホスト２００とはＬＡＮ（通信経路とも呼ばれる）４２０で接続されている。
【００２３】
図１を参照して、本実施形態に係るパケット転送システムの動作の概要を説明する。
【００２４】
ここで、一例として、ＶＰＮ４６０のＭＴＵサイズ（最大転送サイズとも呼ばれる）は、ＬＡＮ４１０のＭＴＵサイズの２分の１であるとする。
【００２５】
ホスト１００は、パケットの送信元であり、例えば宛先をホスト２００するパケット３００をＬＡＮ４１０へ送出する。例えば、パケット３００のサイズは、ＶＰＮ４６０のＭＴＵサイズの１．５倍であるとする。
【００２６】
ルータ５００は、ＬＡＮ４１０から受信したパケット３００を、ＶＰＮ４６０に送出する。例えば、ルータ５００は、ＬＡＮ４１０を経由して受信したパケット３００を前部パケット３０２と後部パケット３０３とに分割（フラグメンテーション）し、ＶＰＮ４６０に送出する。
【００２７】
ルータ９００は、ＶＰＮ４６０から受信したパケットをＬＡＮ４２０に送出する。例えば、ルータ９００は、ＶＰＮ４６０を経由して受信したその前部パケット３０２と後部パケット３０３とのそれぞれを、前部パケット３０４と後部パケット３０５のそれぞれとしてＬＡＮ４２０に送出する。
【００２８】
ホスト２００は、自身を宛先とするその前部パケット３０４と後部パケット３０５とを、ＬＡＮ４２０から受信する。続けて、ホスト２００は、その前部パケット３０４と後部パケット３０５とを結合して元のパケット３００を再生する
以上が、本実施形態に係るパケット転送システムの動作の概要である。
【００２９】
次に、ホスト１００の構成要素について、詳細に説明する。
【００３０】
図２は、本発明の第１の実施形態に係るホスト１００の構成を示すブロック図である。
【００３１】
図２を参照すると、本実施形態に係るホスト１００は、アプリケーション部１２１、上位層処理部１２２、ネットワーク層処理部１２４、データリンク層処理部１２７及び物理層処理部１２８を含む。尚、図２に示す構成要素は、ハードウェア単位の構成要素でも、コンピュータ装置の機能単位に分割した構成要素でもよい。ここでは、図２に示す構成要素は、コンピュータ装置の機能単位に分割した構成要素として説明する。
【００３２】
図３は、パケット３００の一例を示す図である。パケット３００は、例えば、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）ヘッダ３１０、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダ３２０、上位層ヘッダ３３０、データ３４０、反転上位層ヘッダ３３１、反転ＩＰヘッダ３２１、ＦＣＳ（Ｆｒａｍｅ  Ｃｈｅｃｋ  Ｓｅｑｕｅｎｃｅ）３５０とから構成される。ここで、ＩＰヘッダ３２０の「ＩＰヘッダ」は、ネットワーク層のヘッダ部とも呼ばれる。また、上位層ヘッダ３３０の「上位層」は、ネットワーク層より上位の層とも呼ばれる。また、反転上位層ヘッダ３３１の「反転上位層ヘッダ」及び反転ＩＰヘッダ３２１の「反転ＩＰヘッダ」は、反転ヘッダ情報とも呼ばれる。
【００３３】
＝＝＝アプリケーション部１２１＝＝＝
アプリケーション部１２１は、ホスト２００へ送信するデータ３４０を生成し、出力する。
【００３４】
＝＝＝上位層処理部１２２＝＝＝
上位層処理部１２２は、受け取ったデータ３４０に上位層ヘッダ３３０を付加して図４に示すようなＩＰデータ３００１を生成し、ネットワーク層処理部１２４に出力する。図４は、ＩＰデータ３００１の一例を示す図である。ここで、上位層ヘッダ３３０は、例えば、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）ヘッダやＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）ヘッダである。
【００３５】
また、上位層処理部１２２はヘッダ情報取得部１２３を含む。ヘッダ情報取得部１２３は、その付加した上位層ヘッダ３３０を図示しない記憶手段（例えば、ホスト１００のメモリ部）に記録する。尚、ヘッダ情報取得部１２３は、上位層処理部１２２の外部に存在してもよい。
【００３６】
＝＝＝ネットワーク層処理部１２４＝＝＝
ネットワーク層処理部１２４では、受け取ったＩＰデータ３００１にＩＰヘッダ３２０を付加し、図５に示すようなＩＰデータグラム（ＩＰデータグラムは、単に、データグラムとも呼ばれる）３００２を生成する。図５は、ＩＰデータグラム３００２の一例を示す図である。尚、ＩＰヘッダ３２０内のＴｏｔａｌ  Ｌｅｎｇｔｈフィールドの値は、このＩＰデータグラム３００２のサイズを示す値である。
【００３７】
また、ネットワーク層処理部１２４は、ヘッダ情報取得部１２５を含む。ヘッダ情報取得部１２５は、その付加したＩＰヘッダ３２０を図示しない記憶手段（例えば、ホスト１００のメモリ部）に記録する。尚、ヘッダ情報取得部１２５は、ネットワーク層処理部１２４の外部に存在してもよい。
【００３８】
また、ネットワーク層処理部１２４は、反転ヘッダ付加部１２６を含む。反転ヘッダ付加部１２６は、ヘッダ情報取得部１２３が記録した上位層ヘッダ３３０のビット順序を反転して本来とは逆のビット順序とした反転上位層ヘッダ３３１を生成する。ここで、「ビット順序を反転する」とは、その対象データ全体をビットシリアルなひとつの単位として、ビットの並び順を逆にすることである。次に、反転ヘッダ付加部１２６は、図５に示すＩＰデータグラム３００２の末尾に、その生成した反転上位層ヘッダ３３１を付加する。
【００３９】
更に、反転ヘッダ付加部１２６は、ヘッダ情報取得部１２５が記録したＩＰヘッダ３２０のビット順序を反転して本来とは逆のビット順序とした反転ＩＰヘッダ３２１を生成する。次に、反転ヘッダ付加部１２６は、反転上位層ヘッダ３３１の末尾に、その生成した反転ＩＰヘッダ３２１を付加する。尚、反転ヘッダ付加部１２６は、ヘッダ情報取得部１２５の外部に存在してもよい。
【００４０】
図６は、ＩＰデータグラム３００２に反転上位層ヘッダ３３１及び反転ＩＰヘッダ３２１を付加された反転ヘッダ付加データグラム３００３の一例を示す図である。
【００４１】
ネットワーク層処理部１２４は、上述のようにして生成した図６に示す反転ヘッダ付加データグラム３００３を、データリンク層処理部１２７に出力する。
【００４２】
＝＝＝データリンク層処理部１２７＝＝＝
データリンク層処理部１２７は、受け取った反転ヘッダ付加データグラム３００３にＭＡＣヘッダ３１０、ＦＣＳ３５０を付加し、物理層処理部１２８に出力する。
【００４３】
＝＝＝物理層処理部１２８＝＝＝
物理層処理部１２８は、受け取ったパケット３００をＬＡＮ４１０に送出する。
【００４４】
以上が、ホスト１００のコンピュータ装置の機能単位に分割した構成要素の説明である。
【００４５】
次に、ホスト１００のハードウェア単位の構成要素について説明する。
【００４６】
図７は、本実施形態におけるホスト１００を実現するコンピュータ７００のハードウェア構成を示す図である。
【００４７】
図７に示すように、コンピュータ７００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）７０１、記憶部７０２、記憶装置７０３、入力部７０４、出力部７０５及び通信部７０６を含む。更に、コンピュータ７００は、外部から供給される記録媒体（または記憶媒体）７０７を含む。記録媒体７０７は、情報を非一時的に記憶する不揮発性記録媒体であってもよい。
【００４８】
ＣＰＵ７０１は、オペレーティングシステム（不図示）を動作させて、コンピュータ７００の、全体の動作を制御する。また、ＣＰＵ７０１は、例えば記憶装置７０３に装着された記録媒体７０７から、プログラムやデータを読み込み、読み込んだプログラムやデータを記憶部７０２に書き込む。ここで、そのプログラムは、例えば、後述の図１７に示すフローチャートの動作をコンピュータ７００に実行させるプログラムである。
【００４９】
そして、ＣＰＵ７０１は、読み込んだプログラムに従って、また読み込んだデータに基づいて、図２に示すアプリケーション部１２１、上位層処理部１２２、ネットワーク層処理部１２４、データリンク層処理部１２７及び物理層処理部１２８として各種の処理を実行する。
【００５０】
尚、ＣＰＵ７０１は、データのビット順序を反転させる処理をハードウェア的に実行するビット順序反転部（不図示）を含んでもよい。
【００５１】
尚、ＣＰＵ７０１は、通信網（不図示）に接続されている外部コンピュータ（不図示）から、記憶部７０２にプログラムやデータをダウンロードするようにしてもよい。
【００５２】
記憶部７０２は、プログラムやデータを記憶する。記憶部７０２は、例えば、パケット３００、ＩＰデータ３００１、ＩＰデータグラム３００２及び反転ヘッダ付加データグラム３００３を記憶してよい。
【００５３】
記憶装置７０３は、例えば、光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク及び半導体メモリであって、記録媒体７０７を含む。記憶装置７０３は、プログラムをコンピュータ読み取り可能に記録する。また、記憶装置７０３は、データをコンピュータ読み取り可能に記録してもよい。記憶装置７０３は、例えば、パケット３００、ＩＰデータ３００１、ＩＰデータグラム３００２及び反転ヘッダ付加データグラム３００３を記憶してよい。
【００５４】
入力部７０４は、例えばマウスやキーボード、内蔵のキーボタンなどで実現され、入力操作に用いられる。入力部７０４は、マウスやキーボード、内蔵のキーボタンに限らず、例えばタッチパネル、加速度計、ジャイロセンサ、カメラなどでもよい。
【００５５】
出力部７０５は、例えばディスプレイで実現され、出力を確認するために用いられる。
【００５６】
通信部７０６は、ルータ５００とのインタフェースを実現する。通信部７０６は、物理層処理部１２８の一部として含まれる。
【００５７】
以上説明したように、図２に示すホスト１００の機能単位のブロックは、図７に示すハードウェア構成のコンピュータ７００によって実現される。但し、コンピュータ７００が備える各部の実現手段は、上記に限定されない。すなわち、コンピュータ７００は、物理的に結合した１つの装置により実現されてもよいし、物理的に分離した２つ以上の装置を有線または無線で接続し、これら複数の装置により実現されてもよい。
【００５８】
尚、上述のプログラムのコードを記録した記録媒体７０７が、コンピュータ７００に供給され、ＣＰＵ７０１は、記録媒体７０７に格納されたプログラムのコードを読み出して実行するようにしてもよい。或いは、ＣＰＵ７０１は、記録媒体７０７に格納されたプログラムのコードを、記憶部７０２、記憶装置７０３またはその両方に格納するようにしてもよい。すなわち、本実施形態は、コンピュータ７００（ＣＰＵ７０１）が実行するプログラム（ソフトウェア）を、一時的にまたは非一時的に、記憶する記録媒体７０７の実施形態を含む。
【００５９】
以上が、本実施形態におけるホスト１００を実現するコンピュータ７００の、ハードウェア単位の各構成要素についての説明である。
【００６０】
次に、ルータ５００の構成要素について詳細に説明する。
【００６１】
図８は、本実施形態に係るルータ５００の構成を示すブロック図である。尚、図８に示す構成要素は、ハードウェア単位の構成要素でも、コンピュータ装置の機能単位に分割した構成要素でもよい。例えば、図８に示す構成要素をＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）で実現してもよい。尚、ルータ５００は、ホスト１００と同様に、図７に示すコンピュータ７００で実現されてもよい。
【００６２】
図８を参照すると、本実施形態に係るルータ５００は、物理層処理部５４１、データリンク層処理部５４２、ルータ処理部５４４、データリンク層処理部５４７及び物理層処理部５４８を含む。
【００６３】
＝＝＝物理層処理部５４１＝＝＝
物理層処理部５４１は、ＬＡＮ４１０からパケット３００を受信し、データリンク層処理部５４２に出力する。
【００６４】
＝＝＝データリンク層処理部５４２＝＝＝
データリンク層処理部５４２は、受け取ったパケット３００からＭＡＣヘッダ３１０、ＦＣＳ３５０を削除して生成した反転ヘッダ付加データグラム３００３を、ルータ処理部５４４に出力する。
【００６５】
＝＝＝ルータ処理部５４４＝＝＝
ルータ処理部５４４は、受信した反転ヘッダ付加データグラム３００３の転送経路（例えば、ＶＰＮ４６０）を選択する。
【００６６】
また、ルータ処理部５４４は、フラグメンテーション処理部５４５を含む。
【００６７】
図９は、反転ヘッダ付加データグラム３００３が分割されるイメージを示す図である。図１０は、前部データ３４１０を含む、第１フラグメントの前部ＩＰデータグラム３０２３の一例を示す図である。図１１は、後部データ３４２０を含む、第２フラグメントの後部ＩＰデータグラム３０３３の一例を示す図である。
【００６８】
フラグメンテーション処理部５４５は、図９に示すように反転ヘッダ付加データグラム３００３をＶＰＮ４６０のＭＴＵサイズに対応して分割し、図１０に示すような前部ＩＰデータグラム３０２３（前部データグラムとも呼ばれる）及び図１１に示すような後部ＩＰデータグラム（後部データグラムとも呼ばれる）３０３３を生成する。尚、フラグメンテーション処理部５４５は、ルータ処理部５４４の外部に存在してもよい。
【００６９】
図６に示す反転ヘッダ付加データグラム３００３に含まれるＩＰヘッダ３２０内のＴｏｔａｌ  Ｌｅｎｇｔｈフィールドは、図５に示すＩＰデータグラム３００２のデータ長を示している。ルータ処理部５４４は、このＴｏｔａｌ  Ｌｅｎｇｔｈフィールドの値とＶＰＮ４６０のＭＴＵサイズとを比較して、フラグメンテーション実行の要否を決定する。従って、反転ＩＰヘッダ３２１及び反転上位層ヘッダ３３１が付加されたことによる、不必要なフラグメンテーション処理が発生することはない。
【００７０】
次に、ルータ処理部５４４は、その前部ＩＰデータグラム３０２３及び後部ＩＰデータグラム３０３３を、選択した転送経路の情報とともに、データリンク層処理部５４７に出力する。
【００７１】
フラグメンテーション処理部５４５は、反転ＩＰヘッダ３２１、反転上位層ヘッダ３３１及び後部データ３４２０のビット順序を反転して、後部ＩＰデータグラム３０３３とする。即ち、後部ＩＰデータグラム３０３３のＩＰヘッダ３２２は、反転ＩＰヘッダ３２１のビット順序が再度反転されて本来のビット順序とされたものであり、ＩＰヘッダ３２０と同じものである。また、上位層ヘッダ３３２は、反転上位層ヘッダ３３１のビット順序が再度反転されて本来のビット順序とされたものであり、上位層ヘッダ３３０と同じものである。また、反転後部データ３４２１は、後部データ３４２０のビット順序が反転されて、本来のビット順序と逆のビット順序とされたものである。
【００７２】
＝＝＝データリンク層処理部５４７＝＝＝
データリンク層処理部５４７は、受け取った前部ＩＰデータグラム３０２３にＭＡＣヘッダ５１０及びＦＣＳ５２０を付加し、図１２に示すような前部パケット３０２を生成し、物理層処理部５４８に出力する。また、データリンク層処理部５４７は、後部ＩＰデータグラム３０３３にＭＡＣヘッダ５３０及びＦＣＳ５４０を付加し図１３に示すような後部パケット３０３を生成し、物理層処理部５４８に出力する。図１２は、前部パケット３０２の一例を示す図である。図１３は、後部パケット３０３の一例を示す図である。
【００７３】
＝＝＝物理層処理部５４８＝＝＝
物理層処理部５４８は、受け取った前部パケット３０２及び後部パケット３０３をＶＰＮ４６０に送出する。
【００７４】
以上が、ルータ５００の構成要素の説明である。
【００７５】
次に、ルータ９００について詳細に説明する。
【００７６】
ルータ９００は、ＶＰＮ４６０から受信した前部パケット３０２を、前部パケット３０４としてＬＡＮ４２０に送出する。また、ルータ９００は、ＶＰＮ４６０から受信した後部パケット３０３を、後部パケット３０５としてＬＡＮ４２０に送出する。尚、前部パケット３０４及び後部パケット３０５のそれぞれは、図１２に示す前部パケット３０２及び図１３に示す後部パケット３０３のそれぞれと、ＭＡＣヘッダ５１０、ＦＣＳ５２０、ＭＡＣヘッダ５３０及びＦＣＳ５４０の内容を除き同じものである。
【００７７】
その際、ルータ９００は、前部パケット３０２及び後部パケット３０３に含まれる上位層のヘッダ情報に基づいて、ＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）処理やフィルタリング処理など実行してもよい。即ち、前部パケット３０２及び後部パケット３０３のそれぞれに、上位層ヘッダ３３０及び上位層ヘッダ３３２が含まれているので、ルータ９００はそれらに基づいて、上位層の処理を実行することができる。
【００７８】
次に、ホスト２００の構成要素について詳細に説明する。
【００７９】
＝＝＝ホスト２００＝＝＝
図１４は、本実施形態に係るホスト２００の構成を示すブロック図である。尚、図１４に示す構成要素は、ハードウェア単位の構成要素でも、コンピュータ装置の機能単位に分割した構成要素でもよい。ここでは、図１４に示す構成要素は、コンピュータ装置の機能単位に分割した構成要素として説明する。また、ホスト２００は、ホスト１００と同様に、図７に示すコンピュータ７００で実現されてもよい。
【００８０】
図１４を参照すると、本実施形態に係るホスト２００は、物理層処理部２６１、データリンク層処理部２６２、ネットワーク層処理部２６３、上位層処理部２６６及びアプリケーション部２６７を含む。
【００８１】
＝＝＝物理層処理部２６１＝＝＝
物理層処理部２６１は、ＬＡＮ４２０から前部パケット３０４及び後部パケット３０５を受信し、データリンク層処理部２６２に出力する。
【００８２】
＝＝＝データリンク層処理部２６２＝＝＝
データリンク層処理部２６２は、受け取った前部パケット３０４からＭＡＣヘッダ５１０及びＦＣＳ５２０を削除して生成した前部ＩＰデータグラム３０２３を、ネットワーク層処理部２６３に出力する。また、データリンク層処理部２６２は、受け取った後部パケット３０５からＭＡＣヘッダ５３０及びＦＣＳ５４０を削除して生成した後部ＩＰデータグラム３０３３を、ネットワーク層処理部２６３に出力する。
【００８３】
＝＝＝ネットワーク層処理部２６３＝＝＝
ネットワーク層処理部２６３は、ヘッダ削除部２６４及びデータ反転部２６５を含む。
【００８４】
ヘッダ削除部２６４は、受け取った前部ＩＰデータグラム３０２３からＩＰヘッダ３２０を削除し、図１５に示すような前部ＩＰデータ３０４１を生成する。また、ヘッダ削除部２６４は、受け取った後部ＩＰデータグラム３０３３からＩＰヘッダ３２２及び上位層ヘッダ３３２を削除し、図１６に示すような反転後部データ３４２１を抽出する。尚、ヘッダ削除部２６４はネットワーク層処理部２６３の外部に存在してもよい。また、ヘッダ削除部２６４以外のネットワーク層処理部２６３の図示しない手段が、ＩＰヘッダ３２０及びＩＰヘッダ３２２を削除するようにしてもよい。
【００８５】
データ反転部２６５は、反転後部データ３４２１のビット順序を反転し、それを前部ＩＰデータ３０４１の末尾に付加して、図４に示すＩＰデータ３００１を生成する。尚、データ反転部２６５は、ネットワーク層処理部２６３の外部に存在してもよい。
【００８６】
次に、ネットワーク層処理部２６３は、そのＩＰデータ３００１を上位層処理部２６６に出力する。
【００８７】
＝＝＝上位層処理部２６６＝＝＝
上位層処理部２６６は、受け取ったＩＰデータ３００１から上位層ヘッダ３３０を削除し、データ３４０をアプリケーション部２６７に出力する。
【００８８】
＝＝＝アプリケーション部２６７＝＝＝
アプリケーション部２６７は、受け取ったデータ３４０を利用する。
【００８９】
以上が、ホスト２００のコンピュータ装置の機能単位に分割した構成要素の説明である。
【００９０】
次に、本実施形態の動作について、図面を参照して詳細に説明する。
【００９１】
図１７は、ヘッダ情報取得部１２３、ヘッダ情報取得部１２５及び反転ヘッダ付加部１２６の動作を示すフローチャートである。
【００９２】
ヘッダ情報取得部１２３は、上位層ヘッダ３３０を図示しない記憶手段に格納する（ステップＳ１０１）。
【００９３】
次に、ヘッダ情報取得部１２５は、ＩＰヘッダ３２０を図示しない記憶手段に格納する（ステップＳ１０２）。
【００９４】
次に、反転ヘッダ付加部１２６は、上位層ヘッダ３３０とＩＰヘッダ３２０とのビット順序を反転し、ＩＰデータグラム３００２の末尾に付加する（ステップＳ１０３）。
【００９５】
図１８は、フラグメンテーション処理部５４５の動作を示すフローチャートである。
【００９６】
フラグメンテーション処理部５４５は、反転ヘッダ付加データグラム３００３のＩＰヘッダ３２０内のＴｏｔａｌ  Ｌｅｎｇｔｈフィールドの値と、ＶＰＮ４６０のＭＴＵサイズとを比較する（ステップＳ５０１）。尚、フラグメンテーション処理部５４５は、図示しない手段によりＶＰＮ４６０のＭＴＵサイズを予め取得しているものとする。
【００９７】
Ｔｏｔａｌ  Ｌｅｎｇｔｈフィールドの値がＶＰＮ４６０のＭＴＵサイズ以下の場合（ステップＳ５０１でＹＥＳ）、処理は終了する。
【００９８】
Ｔｏｔａｌ  Ｌｅｎｇｔｈフィールドの値がＶＰＮ４６０のＭＴＵサイズを超える場合（ステップＳ５０１でＮＯ）、フラグメンテーション処理部５４５は、反転ヘッダ付加データグラム３００３の先頭からＭＴＵサイズ以下の分までのデータを、前部ＩＰデータグラム３０２３として出力する（ステップＳ５０２）。反転ヘッダ付加データグラム３００３の先頭からＭＴＵサイズ以下の分までのデータは、例えば図９に示すように、ＩＰヘッダ３２０、上位層ヘッダ３３０及び前部データ３４１０である。
【００９９】
次にフラグメンテーション処理部５４５は、反転ヘッダ付加データグラム３００３から前部ＩＰデータグラム３０２３を除いた部分のデータを、ビット順序を反転させ、後部ＩＰデータグラム３０３３として出力する（ステップＳ５０３）。
【０１００】
図１９は、ヘッダ削除部２６４及びデータ反転部２６５の動作を示すフローチャートである。
【０１０１】
ヘッダ削除部２６４は、前部ＩＰデータグラム３０２３からＩＰヘッダ３２０を削除し、前部ＩＰデータ３０４１を生成する（ステップＳ２０１）。
【０１０２】
次に、ヘッダ削除部２６４は、後部ＩＰデータグラム３０３３からＩＰヘッダ３２２及び上位層ヘッダ３３２を削除し、反転後部データ３４２１を抽出する（ステップＳ２０２）。
【０１０３】
次に、データ反転部２６５は、反転後部データ３４２１のビット順序を反転し、それを前部ＩＰデータ３０４１の末尾に付加して、ＩＰデータ３００１を生成し、出力する（ステップＳ２０３）。
【０１０４】
以上説明したように、本実施形態のパケット転送システムは、パケットのフラグメント化の処理をホスト１００とルータ５００とが協調して実行し、ホスト２００がそのフラグメント化されたパケットを再構築する。以上が、本実施形態の動作の説明である。
【０１０５】
尚、ルータ５００は、受信したパケットが反転ヘッダ付加データグラム３００３を含むパケット３００であることを認識して処理を実行する必要がある。同様に、ホスト２００は、受信したパケットが、前部パケット３０４及び反転後部データ３４２１を含む後部パケット３０５であることを認識して処理を実行する必要がある。そのために、例えばルータ５００に対して、ホスト１００から届くパケットはパケット３００であることの設定が登録される。また、ホスト２００に対してルータ９００から届くパケットは前部パケット３０４または後部パケット３０５であることの設定が登録される。尚、あるパケットがパケット３００、前部パケット３０４及び後部パケット３０５であることを、パケットヘッダ内のフラグを利用して伝達するようにしてもよい。或いは、パケット３００、前部パケット３０４及び後部パケット３０５を転送する旨の情報を、制御プロトコルを用いて自動配布するようにしてもよい。
【０１０６】
また、図１のホスト１００とルータ５００の間に別のルータが存在する場合であっても、パケット３００に含まれる反転ＩＰヘッダ３２１と反転上位層ヘッダ３３１とは通常のＩＰデータの一部として扱われるため、問題ない。
【０１０７】
また、以上の説明では、データリンクプロトコルの例をローカルエリアネットワークで用いられることの多いＩＥＥＥ（Ｔｈｅ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ，  Ｉｎｃ．）８０２．３としてＭＡＣヘッダを用いるように説明したが、他のプロトコルで他のヘッダであってもよい。他のプロトコルは、例えば、ＰＰＰ（Ｐｏｉｎｔ−ｔｏ−Ｐｏｉｎｔ  Ｐｒｏｔｏｃｏｌ）やＨＤＬＣ（Ｈｉｇｈ−Ｌｅｖｅｌ  Ｄａｔａ  Ｌｉｎｋ  Ｃｏｎｔｒｏｌ）であってよい。
【０１０８】
上述した本実施形態における第１の効果は、ルータ５００の負荷増大を抑制しつつ、転送の遅延を防止することが可能になる点である。
【０１０９】
その理由は、以下のような構成を含むからである。即ち、第１に、ヘッダ情報取得部１２３、ヘッダ情報取得部１２５及び反転ヘッダ付加部１２６が、反転上位層ヘッダ３３１及び反転ＩＰヘッダ３２１を含む反転ヘッダ付加データグラム３００３を生成する。第２に、フラグメンテーション処理部５４５が、反転ヘッダ付加データグラム３００３を分割して前部ＩＰデータグラム３０２３及び後部ＩＰデータグラム３０３３を生成する。第３に、ヘッダ削除部２６４及びデータ反転部２６５が前部ＩＰデータグラム３０２３及び後部ＩＰデータグラム３０３３からＩＰデータ３００１を再構築する。
【０１１０】
上述した本実施形態における第２の効果は、ルータ５００の負荷増大を抑制しつつ、転送の遅延を防止することに加え、上位層のヘッダ情報にしたがった処理を実施可能にすることを同時に実現することが可能になる点である。
【０１１１】
その理由は、第１の効果の理由と同じく、ヘッダ情報取得部１２３、ヘッダ情報取得部１２５及び反転ヘッダ付加部１２６が、反転上位層ヘッダ３３１及び反転ＩＰヘッダ３２１を含む反転ヘッダ付加データグラム３００３を生成するようにしたからである。
［第２の実施形態］
次に、本発明の第２の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
【０１１２】
図２０は、本発明の第２の実施形態に係るパケット転送システム６０２の構成を示すブロック図である。
【０１１３】
図２０を参照すると、本実施形態におけるパケット転送システム６０２は、反転ヘッダ付加部６１１、フラグメンテーション処理部５４５及びデータ反転部６１２を含む。
【０１１４】
＝＝＝反転ヘッダ付加部６１１＝＝＝
例えばサーバ（不図示）がデータグラムを含むパケットを送信する場合に、反転ヘッダ付加部６１１は、図５に示す上位層ヘッダ３３０のビット順序を反転し、図５に示すＩＰデータグラム３００２の末尾に反転上位層ヘッダ３３１として付加する。更に、反転ヘッダ付加部１２６は、図５に示すＩＰヘッダ３２０のビット順序を反転し、反転上位層ヘッダ３３１の末尾に反転ＩＰヘッダ３２１として付加する。次に、反転ヘッダ付加部６１１は、反転上位層ヘッダ３３１及び反転ＩＰヘッダ３２１を付加したＩＰデータグラム３００２を、図６に示す反転ヘッダ付加データグラム３００３として出力する。
【０１１５】
尚、反転ヘッダ付加部６１１は、上述のようにサーバの一部として含まれてもよいし、ルータやゲートウェイ等に含まれてもよい。
【０１１６】
＝＝＝フラグメンテーション処理部５４５＝＝＝
フラグメンテーション処理部５４５は、図８に示すフラグメンテーション処理部５４５と同じである。即ち、例えば、ルータ５００が反転ヘッダ付加データグラム３００３を含むパケット３００（図３）を受信し、受信したパケット３００を転送する場合に、フラグメンテーション処理部５４５は、パケット３００を転送する通信経路の最大転送サイズに対応して反転ヘッダ付加データグラム３００３を分割する。具体的には、フラグメンテーション処理部５４５は、反転ヘッダ付加データグラム３００３の先頭からその最大転送サイズ以下の分までの部分の前部ＩＰデータグラム３０２３（図１０）を生成し、出力する。また、フラグメンテーション処理部５４５は、反転ヘッダ付加データグラム３００３から前部ＩＰデータグラム３０２３を除いた部分を、ビット順序を反転させた後部ＩＰデータグラム３０３３（図１１）を生成し、出力する
＝＝＝データ反転部６１２＝＝＝
例えばサーバ（不図示）が後部ＩＰデータグラム３０３３を含む後部パケット３０３（図１３）を受信した場合に、データ反転部６１２は、後部ＩＰデータグラム３０３３からＩＰヘッダ３２２及び上位層ヘッダ３３２を削除し、反転後部データ３４２１（図１６）を生成する。
【０１１７】
次に、データ反転部６１２は、反転後部データ３４２１のビット順序を反転し、前部ＩＰデータ３０４１（図１５）の末尾に付加する。次に、データ反転部６１２は、その反転後部データ３４２１を付加したＩＰデータ３００１（図４）を生成し、出力する。
【０１１８】
尚、データ反転部６１２は、反転後部データ３４２１のビット順序を反転し、前部ＩＰデータグラム３０２３（図１０）の末尾に付加するようにしてもよい。この場合、データ反転部６１２は、そのビット順序を反転した反転後部データ３４２１を付加したＩＰデータグラム３００２（図５）を生成し、出力する。即ち、データ反転部６１２は、データ反転部６１２が前部ＩＰデータグラム３０２３及び後部ＩＰデータグラム３０３３からＩＰデータ３００１を再構築する。
【０１１９】
尚、データ反転部６１２は、上述のようにサーバの一部として含まれてもよいし、ルータやゲートウェイ等に含まれてもよい。
【０１２０】
上述した本実施形態における第１の効果は、フラグメンテーション処理部５４５の負荷増大を抑制しつつ、転送の遅延を防止することが可能になる点である。
【０１２１】
その理由は、以下のような構成を含むからである。即ち、第１に、反転ヘッダ付加部６１１が、反転上位層ヘッダ３３１及び反転ＩＰヘッダ３２１を含む反転ヘッダ付加データグラム３００３を生成する。第２に、フラグメンテーション処理部５４５が、反転ヘッダ付加データグラム３００３を分割して前部ＩＰデータグラム３０２３及び後部ＩＰデータグラム３０３３を生成する。第３に、データ反転部６１２が前部ＩＰデータグラム３０２３及び後部ＩＰデータグラム３０３３からＩＰデータ３００１を再構築する。
【０１２２】
上述した本実施形態における第２の効果は、フラグメンテーション処理部５４５の負荷増大を抑制しつつ、転送の遅延を防止することに加え、上位層のヘッダ情報にしたがった処理を実施可能にすることを同時に実現することが可能になる点である。
【０１２３】
その理由は、第１の効果の理由と同じく、反転ヘッダ付加部６１１が、反転上位層ヘッダ３３１及び反転ＩＰヘッダ３２１を含む反転ヘッダ付加データグラム３００３を生成するようにしたからである。
【０１２４】
［第３の実施形態］
次に、本発明の第３の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
【０１２５】
第３の実施形態の構成は、図２０に示すパケット転送システム６０２の構成と同じである。第３の実施形態のパケット転送システム６０２は、第２の実施形態のパケット転送システム６０２に比べて、反転ヘッダ付加部６１１及びデータ反転部６１２の動作が異なる。
【０１２６】
＝＝＝反転ヘッダ付加部６１１＝＝＝
本実施形態の反転ヘッダ付加部６１１は、上位層ヘッダ３３０のビット順序を反転した反転上位層ヘッダ３３１を生成しない。従って、本実施形態の反転ヘッダ付加部６１１は、ＩＰデータグラム３００２の末尾に、反転上位層ヘッダ３３１を付加する処理を実行しない。即ち、本実施形態の反転ヘッダ付加部６１１は、図２１に示すような、反転上位層ヘッダ３３１が付加されない反転ヘッダ付加データグラム３００３を生成する。図２１は、反転ヘッダ付加データグラム３００３の一例を示す図である。
【０１２７】
＝＝＝データ反転部６１２＝＝＝
本実施形態のデータ反転部６１２は、後部ＩＰデータグラム３０３３からＩＰヘッダ３２２を削除し、反転後部データ３４２１（図１６）を生成する。即ち、本実施系形態における後部ＩＰデータグラム３０３３には、反転上位層ヘッダ３３１が含まれていないため、データ反転部６１２は、上位層ヘッダ３３２を削除する処理を実行しない。
【０１２８】
上述した本実施形態における効果は、第２の実施形態の第１の効果に加え、反転ヘッダ付加部６１１及びデータ反転部６１２の負荷を軽減することが可能になる点である。
【０１２９】
その理由は、反転ヘッダ付加部６１１及びデータ反転部６１２が、ネットワーク層についての反転ヘッダ情報のみを処理するようにしたからである。
【０１３０】
［第４の実施形態］
次に、本発明の第４の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
【０１３１】
第４の実施形態の構成は、図２０に示すパケット転送システム６０２の構成と同じである。第４の実施形態のパケット転送システム６０２は、第２の実施形態のパケット転送システム６０２に比べて、反転ヘッダ付加部６１１の動作が異なる。
【０１３２】
＝＝＝反転ヘッダ付加部６１１＝＝＝
本実施形態の反転ヘッダ付加部６１１は、図５に示すＩＰデータグラム３００２のサイズが閾値以上の場合に、反転ヘッダ付加データグラム３００３を生成し、ＩＰデータグラム３００２のサイズが閾値以下の場合に、反転ヘッダ付加データグラム３００３を生成しない。
【０１３３】
ここで、その閾値は、例えば、ホスト１００とホスト２００の間の最小のＭＴＵサイズである。また、その閾値は、パケット転送システム６０２の運用管理者が任意に決定した値であってよい。その閾値は、例えば図７に示す入力部７０４を介して反転ヘッダ付加部６１１に設定されてよい。また、その閾値は、反転ヘッダ付加部６１１に対して、パケットヘッダ内のフラグを使って伝達されたり、制御プロトコルなどで自動配布されたりしてよい。
【０１３４】
尚、反転ヘッダ付加部６１１が反転ヘッダ付加データグラム３００３を生成しない場合、フラグメンテーション処理部５４５及びデータ反転部６１２は、特段の処理をする必要はない。
【０１３５】
上述した本実施形態における効果は、第２の実施形態の効果に加え、パケット転送システム６０２の負荷を軽減することが可能になる点である。
【０１３６】
その理由は、反転ヘッダ付加部６１１が、ＩＰデータグラム３００２のサイズが閾値以下の場合に、反転ヘッダ付加データグラム３００３を生成しないようにしたからである。
【０１３７】
［第５の実施形態］
次に、本発明の第５の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
【０１３８】
第５の実施形態の構成は、図２０に示す第２の実施形態のパケット転送システム６０２の構成と同じである。第５の実施形態のパケット転送システム６０２は、第２の実施形態のパケット転送システム６０２に比べて、フラグメンテーション処理部５４５の動作が異なる。
【０１３９】
＝＝＝フラグメンテーション処理部５４５＝＝＝
本実施形態のフラグメンテーション処理部５４５は、パケット３００に含まれるＩＰデータグラム３００２のサイズが閾値以上の場合に、反転ヘッダ付加データグラム３００３を分割し、ＩＰデータグラム３００２のサイズが閾値以下の場合に、反転ヘッダ付加データグラム３００３を分割しないで、反転ヘッダを削除する。
【０１４０】
ここで、その閾値は、例えば、ホスト１００とホスト２００の間の最小のＭＴＵサイズである。また、その閾値は、パケット転送システム６０２の運用管理者が任意に決定した値であってよい。その閾値は、図示しない入力手段を介してフラグメンテーション処理部５４５に設定されてよい。また、その閾値は、フラグメンテーション処理部５４５に対して、パケットヘッダ内のフラグを使って伝達されたり、制御プロトコルなどで自動配布されたりしてよい。
【０１４１】
尚、フラグメンテーション処理部５４５が反転ヘッダ付加データグラム３００３を分割しないで、反転ヘッダを削除する場合、データ反転部６１２は、特段の処理をする必要はない。
【０１４２】
上述した本実施形態における効果は、第２の実施形態の効果に加え、パケット転送システム６０２の負荷を軽減することが可能になる点である。
【０１４３】
その理由は、フラグメンテーション処理部５４５が、ＩＰデータグラム３００２のサイズが閾値以下の場合に、反転ヘッダ付加データグラム３００３を分割しないで、反転ヘッダを削除するようにしたからである。
【０１４４】
以上の各実施形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はない。例えば、各構成要素は、複数の構成要素が１個のモジュールとして実現されてよい。また、各構成要素は、１つの構成要素が複数のモジュールで実現されてもよい。また、各構成要素は、ある構成要素が他の構成要素の一部であるような構成であってよい。また、各構成要素は、ある構成要素の一部と他の構成要素の一部とが重複するような構成であってもよい。
【０１４５】
以上説明した各実施形態における各構成要素及び各構成要素を実現するモジュールは、必要に応じ、可能であれば、ハードウェア的に実現されてよい。また、各構成要素及び各構成要素を実現するモジュールは、コンピュータ及びプログラムで実現されてよい。また、各構成要素及び各構成要素を実現するモジュールは、ハードウェア的なモジュールとコンピュータ及びプログラムとの混在により実現されてもよい。
【０１４６】
そのプログラムは、例えば、磁気ディスクや半導体メモリなど、不揮発性のコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られる。この読み取られたプログラムは、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施形態における構成要素として機能させる。
【０１４７】
また、以上説明した各実施形態では、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の順番は内容的に支障しない範囲で変更することができる。
【０１４８】
更に、以上説明した各実施形態では、複数の動作は個々に相違するタイミングで実行されることに限定されない。例えば、ある動作の実行中に他の動作が発生したり、ある動作と他の動作との実行タイミングが部分的に乃至全部において重複していたりしていてもよい。
【０１４９】
更に、以上説明した各実施形態では、ある動作が他の動作の契機になるように記載しているが、その記載はある動作と他の動作との全ての関係を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の関係は内容的に支障のない範囲で変更することができる。また各構成要素の各動作の具体的な記載は、各構成要素の各動作を限定するものではない。このため、各構成要素の具体的な各動作は、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障をきたさない範囲内で変更されて良い。
【０１５０】
以上、各実施形態及び実施例を参照して本発明を説明したが、本発明は上記実施形態及び実施例に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しえるさまざまな変更をすることができる。
【符号の説明】
【０１５１】
１００    ホスト
１２１    アプリケーション部
１２２    上位層処理部
１２３    ヘッダ情報取得部
１２４    ネットワーク層処理部
１２５    ヘッダ情報取得部
１２６    反転ヘッダ付加部
１２７    データリンク層処理部
１２８    物理層処理部
２００    ホスト
２６１    物理層処理部
２６２    データリンク層処理部
２６３    ネットワーク層処理部
２６４    ヘッダ削除部
２６５    データ反転部
２６６    上位層処理部
２６７    アプリケーション部
３００    パケット
３０２    前部パケット
３０３    後部パケット
３０４    前部パケット
３０５    後部パケット
３１０    ＭＡＣヘッダ
３２０    ＩＰヘッダ
３２１    反転ＩＰヘッダ
３２２    ＩＰヘッダ
３３０    上位層ヘッダ
３３１    反転上位層ヘッダ
３３２    上位層ヘッダ
３４０    データ
３５０    ＦＣＳ
４１０    ＬＡＮ
４２０    ＬＡＮ
４６０    ＶＰＮ
５００    ルータ
５１０    ＭＡＣヘッダ
５２０    ＦＣＳ
５３０    ＭＡＣヘッダ
５４０    ＦＣＳ
５４１    物理層処理部
５４２    データリンク層処理部
５４４    ルータ処理部
５４５    フラグメンテーション処理部
５４７    データリンク層処理部
５４８    物理層処理部
６０２    パケット転送システム
６１１    反転ヘッダ付加部
６１２    データ反転部
７００    コンピュータ
７０１    ＣＰＵ
７０２    記憶部
７０３    記憶装置
７０４    入力部
７０５    出力部
７０６    通信部
７０７    記録媒体
９００    ルータ
３００１    ＩＰデータ
３００２    ＩＰデータグラム
３００３    反転ヘッダ付加データグラム
３０２３    前部ＩＰデータグラム
３０３３    後部ＩＰデータグラム
３０４１    前部ＩＰデータ
３４１０    前部データ
３４２０    後部データ
３４２１    反転後部データ
【図１】
0005639129.tif 000002
【図２】
0005639129.tif 000003
【図３】
0005639129.tif 000004
【図４】
0005639129.tif 000005
【図５】
0005639129.tif 000006
【図６】
0005639129.tif 000007
【図７】
0005639129.tif 000008
【図８】
0005639129.tif 000009
【図９】
0005639129.tif 000010
【図１０】
0005639129.tif 000011
【図１１】
0005639129.tif 000012
【図１２】
0005639129.tif 000013
【図１３】
0005639129.tif 000014
【図１４】
0005639129.tif 000015
【図１５】
0005639129.tif 000016
【図１６】
0005639129.tif 000017
【図１７】
0005639129.tif 000018
【図１８】
0005639129.tif 000019
【図１９】
0005639129.tif 000020
【図２０】
0005639129.tif 000021
【図２１】
0005639129.tif 000022