JP7035771B2 - パケット取得装置、パケット取得方法、およびパケット取得プログラム - Google Patents

パケット取得装置、パケット取得方法、およびパケット取得プログラム Download PDF

Info

Publication number
JP7035771B2
JP7035771B2 JP2018086630A JP2018086630A JP7035771B2 JP 7035771 B2 JP7035771 B2 JP 7035771B2 JP 2018086630 A JP2018086630 A JP 2018086630A JP 2018086630 A JP2018086630 A JP 2018086630A JP 7035771 B2 JP7035771 B2 JP 7035771B2
Authority
JP
Japan
Prior art keywords
packet
length
fragment
data
header
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.)
Active
Application number
JP2018086630A
Other languages
English (en)
Other versions
JP2019193201A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018086630A priority Critical patent/JP7035771B2/ja
Publication of JP2019193201A publication Critical patent/JP2019193201A/ja
Application granted granted Critical
Publication of JP7035771B2 publication Critical patent/JP7035771B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、パケットを取得する装置、方法、およびプログラムに係わる。
拠点間を仮想ネットワークで接続する通信システムが普及している。この場合、各拠点には、ゲートウェイ装置が実装される。そして、ゲートウェイ装置が仮想LAN(VLAN:virtual local area network)を提供することで仮想ネットワークが実現される。
図1は、拠点間を仮想ネットワークで接続する通信システムの一例を示す。この実施例では、通信システム内に複数のユーザ(或いは、テナント)が収容されている。各ユーザは、各拠点に1または複数のサーバコンピュータを備える。各サーバコンピュータは、ゲートウェイ装置に接続される。
ゲートウェイ装置は、拠点X、Y間に仮想ネットワークを構築する。そして、ゲートウェイ装置は、仮想ネットワーク上でVXLAN(Virtual eXtensible Local Area Network)のトンネリングプロトコルを用いてユーザ毎にトンネルを設定する。なお、トンネルは、仮想パスに相当する。
サーバ間では、例えば、TCPに従うユーザパケット(以下「TCPパケット」と呼ぶことがある)が伝送される。仮想ネットワーク内では、例えば、VXLANのトンネリングプロトコルに従う通信パケット(以下「VXLANパケット」と呼ぶことがある)が伝送される。すなわち、ゲートウェイ装置は、プロトコル変換を実行する。換言すると、ゲートウェイ装置は、TCPパケットをカプセル化してVXLANパケットを生成する機能、およびVXLANパケットのカプセル化を解除してTCPパケットを再生する機能を備える。
上記構成の通信システムにおいて、サーバ間の通信をモニタする場合、ゲートウェイ装置は、ミラーリング機能を利用して、VXLANパケットをモニタ装置に導く。そして、モニタ装置は、ゲートウェイ装置から受信するVXLANパケットからTCPパケットを抽出し、サーバ間の通信の品質および状態をモニタする。
なお、メッセージ単位でのパケットの検出精度を向上させる技術が提案されている(例えば、特許文献1)。また、パケットが暗号化されている場合であっても、キャプチャ対象外のパケットを識別する方法が提案されている(例えば、特許文献2)。
特開2016-96416号公報 特開2011-193412号公報
図1に示すモニタ装置は、上述したように、ゲートウェイ装置から受信するVXLANパケットからTCPパケットを抽出し、抽出したTCPパケットを解析することでサーバ間の通信をモニタする。ところが、ゲートウェイ装置によるカプセル化において、1個のTCPパケットが複数のフラグメントに分割され、複数のVXLANパケットを利用して伝送されることがある。この場合、1番目のフラグメントはTCPパケットのヘッダ情報を含むが、後続のフラグメントはTCPパケットのヘッダ情報を含まない。すなわち、TCPパケットのヘッダ情報を含まないVXLANパケットが生成されることがある。そして、モニタ装置は、TCPパケットのヘッダ情報を含まないVXLANパケットを受信した場合、そのVXLANパケットから抽出したデータがどのサーバから送信されたのかを識別できない。したがって、このようなケースでは、モニタ装置は、サーバ間の通信の品質および状態を正しくモニタできない。
本発明の1つの側面に係わる目的は、パケットがカプセル化されて伝送される通信システムにおいて、受信パケットのパケット化を解除して元のパケットを取得できる装置、方法、およびプログラムを提供することである。
本発明の1つの態様のパケット取得方法は、第1のプロトコルに従うパケットに所定の規則に基づいてヘッダを追加することでカプセル化した第2のプロトコルに従うパケットが生成されて伝送される通信システムにおいて使用される。このパケット取得方法は、仮想的なパスを介して伝送される、前記第2のプロトコルに従う第1のパケットから前記所定の規則に基づいて追加されたヘッダを削除することでカプセル化を解除した第1のフラグメントのヘッダに含まれる長さ情報と前記第1のフラグメントに含まれるデータの長さとが一致するか否かを判定し、前記第1のフラグメントに含まれるデータの長さが、前記長さ情報により表される長さと一致しないときに、前記第1のフラグメントに含まれるデータを抽出してメモリに保存し、前記第1のパケットよりも後に前記仮想的なパスを介して伝送される、前記第2のプロトコルに従う第2のパケットのカプセル化を解除することで得られる第2のフラグメントを前記メモリに保存されているデータに結合して結合データを生成し、前記結合データの長さが前記長さ情報により表される長さと一致するときは、前記結合データを、前記第1のプロトコルに従う1個のパケットとして取得し、前記結合データの長さが前記長さ情報により表される長さよりも短いときは、前記第2のパケットよりも後に前記仮想的なパスを介して伝送される、前記第2のプロトコルに従うパケットのカプセル化を解除することで得られる後続フラグメントを前記結合データにさらに結合して新たな結合データを生成する処理を、前記新たな結合データの長さが前記長さ情報により表される長さと一致するまで繰り返す。
上述の態様によれば、パケットがカプセル化されて伝送される通信システムにおいて、受信パケットのパケット化を解除して元のパケットを取得できる。
拠点間を仮想ネットワークで接続する通信システムの一例を示す図である。 第1の実施形態に係わる通信システムの一例を示す図である。 イーサネットヘッダおよびIPヘッダのフォーマットを示す図である。 TCPヘッダ、UDPヘッダ、およびVXLANヘッダのフォーマットを示す図である。 第1の実施形態のパケット取得方法の一例を示すフローチャートである。 第2の実施形態に係わる通信システムの一例を示す図である。 1個のユーザパケットから複数のVXLANパケットを生成する方法の一例を示す図である。 第2の実施形態のパケット取得方法の一例を示すフローチャートである。 フラグメモリおよびデータバッファメモリの一例を示す図である。 ユーザパケットの組立ての一例を示す図である。 パケット取得装置の構成例を示す図である。 第3の実施形態に係わる通信システムの一例を示す図である。 第3の実施形態のパケット取得方法の一例を示すフローチャート(その1)である。 第3の実施形態のパケット取得方法の一例を示すフローチャート(その2)である。 ユーザパケットが分割されるケースにおけるIP-IDについて説明する図である。 IP-ID/IF名テーブルの一例を示す図である。 第3の実施形態が適用される通信システムの一例を示す図である。 モニタ装置およびパケット取得装置の機能を示すブロック図である。
<第1の実施形態>
図2は、第1の実施形態に係わる通信システムの一例を示す。この実施例では、通信システム100は、図2(a)に示すように、ゲートウェイ装置(GW)1X、1Y間の通信を提供する。各ゲートウェイ装置1X、1Yは、それぞれローカルエリアネットワークに接続されている。そして、各ローカルエリアネットワーク内には、1または複数のサーバコンピュータが実装されている。図2(a)に示すでは、ゲートウェイ装置1Xに接続するローカルエリアネットワークにサーバ2Xが実装され、ゲートウェイ装置1Yに接続するローカルエリアネットワークにサーバ2Yが実装されている。サーバ2Xは、スイッチ3Xを介してゲートウェイ1Xに接続され、サーバ2Yは、スイッチ3Yを介してゲートウェイ1Yに接続される。なお、各ローカルエリアネットワーク内では、例えば、TCP通信が行われる。
サーバ2X、2Yは、この実施例では、同じユーザに属するものとする。すなわち、このユーザは、サーバ2X、2Y間でデータを伝送する。
上記構成の通信システム100において、サーバ2Xからサーバ2Yへのデータ伝送が行われるものとする。この場合、サーバ2Xは、宛先がサーバ2Yであるユーザパケットを生成してローカルエリアネットワークに送出する。このユーザパケットは、スイッチ3Xによりゲートウェイ装置1Xに転送される。なお、ユーザパケットは、図2(b)に示すように、イーサネット(登録商標)ヘッダ、IPヘッダ、TCPヘッダ、およびユーザデータから構成される。ユーザパケットは、例えば、TCPパケット(または、TCP/IPパケット)により実現される。
ゲートウェイ装置1Xは、VXLANトンネリングプロトコルを用いて、ゲートウェイ装置1X、1Y間にトンネルを設定することができる。このトンネルは、仮想パスに相当する。なお、ゲートウェイ装置1X、1Yは、ユーザ毎に仮想パスを設定する。
ゲートウェイ装置1X、1Y間の仮想パスは、ゲートウェイ装置1Xまたは1YにおいてユーザパケットにOuterヘッダを付与することで設定される。Outerヘッダは、この実施例では、VXLANトンネリングプロトコルに従う。また、Outerヘッダは、図2(b)に示すように、イーサネットヘッダ、IPヘッダ、UDPヘッダ、VXLANヘッダから構成される。なお、以下の記載では、ユーザパケットにVXLANトンネリングプロトコルのOuterヘッダを付与することで生成されるパケットを「VXLANパケット」と呼ぶことがある。
イーサネットヘッダは、図3(a)に示すように、宛先MACアドレス(DA MAC)、送信元MACアドレス(SA MAC)、タグプロトコル識別子(TPID)、プライオリティコードポイント(PCP)、カノニカルフォーマットインディケータ(CFI)、仮想LAN識別子(VLAN-ID)、タイプ(Ether-Type)を含む。なお、ユーザパケットのヘッダ中のイーサネットヘッダにおいては、タグプロトコル識別子、プライオリティコードポイント、カノニカルフォーマットインディケータ、仮想LAN識別子を含まなくてもよい。
IPヘッダは、図3(b)に示すように、バージョン、ヘッダ長、サービスタイプ、データグラム長、識別子、フラグ、フラグメントオフセット、生存時間、プロトコル、ヘッダチェックサム、送信元IPアドレス、送信先IPアドレス、オプションを含む。なお、データグラム長は、IPパケット全体のサイズを表す。すなわち、データグラム長は、ユーザパケットのIPヘッダのバイト数、TCPヘッダのバイト数、およびユーザデータのバイト数の和を表す。
TCPヘッダは、図4(a)に示すように、送信元ポート番号、送信先ポート番号、シーケンス番号、確認応答番号、ヘッダ長、予約ビット、フラグ、ウィンドウサイズ、チェックサム、緊急ポインタ、オプションを含む。UDPヘッダは、図4(b)に示すように、送信元ポート番号、送信先ポート番号、ヘッダ長、チェックサムを含む。VXLANヘッダは、図4(c)に示すように、フラグおよびネットワーク識別子(VNI)を含む。
VXLANパケットを伝送する仮想パスは、Outerヘッダに設定される送信元IPアドレス、送信先IPアドレス、送信先ポート番号、ネットワーク識別子(VNI)の組合せにより識別される。すなわち、VXLANパケットを受信した装置は、Outerヘッダに設定されている送信元IPアドレス、送信先IPアドレス、送信先ポート番号、ネットワーク識別子の組合せに基づいて、そのVXLANパケットが伝送される仮想パスを識別できる。ここで、仮想パスは、ユーザ毎に設定される。すなわち、Outerヘッダに設定されている送信元IPアドレス、送信先IPアドレス、送信先ポート番号、ネットワーク識別子の組合せは、ユーザを識別する。
上記構成の通信システム100において、ゲートウェイ装置1Xは、ミラーリング機能により、サーバ2Xからサーバ2Yへ伝送されるVXLANパケットをモニタ装置11に導く。モニタ装置11において、パケット取得装置12は、受信したVXLANパケットをキャプチャし、そのVXLANパケットからユーザパケットを取得する。そして、モニタ装置11は、パケット取得装置12により取得されるユーザパケットを利用して、ネットワークの品質および状態をモニタする。具体的には、モニタ装置11は、ユーザパケット(即ち、TCPパケット)を解析し、パケットロス、RTT(round trip time)、アプリケーションの遅延、転送バイト数、転送パケット数などをモニタする。これにより、モニタ装置11は、ユーザ毎に、サーバ間通信あるいはサーバ-クライアント間通信の品質および状態を分析できる。
図5は、第1の実施形態におけるパケット取得方法の一例を示すフローチャートである。なお、ゲートウェイ装置1Xは、ミラーリング機能により、ゲートウェイ装置1Yに向かうVXLANパケットをモニタ装置11に導くものとする。
S1において、パケット取得装置12は、VXLANパケットを受信してキャプチャする。このVXLANパケットは、不図示のバッファメモリに一時的に保存される。
S2において、パケット取得装置12は、受信したVXLANパケットのOuterヘッダに基づいて、そのVXLANパケットを伝送する仮想パスを識別する。この実施例では、仮想パスは、ユーザ毎に設定される。したがって、パケット取得装置12は、受信したVXLANパケットのOuterヘッダに基づいて、そのVXLANパケットに係わるユーザを識別する。具体的には、受信VXLANパケットのOuterヘッダに設定されている送信元IPアドレス、送信先IPアドレス、送信先ポート番号、ネットワーク識別子(VNI)の組合せに基づいて、受信VXLANパケットに係わるユーザが識別される。この後、S3~S4の処理は、ユーザ毎に実行される。
S3において、パケット取得装置12は、受信VXLANパケットからOuterヘッダを削除することによりユーザパケットを取得する。Outerヘッダの長さは既知である。さらに、パケット取得装置12は、受信VXLANパケットからユーザパケットのイーサネットヘッダを削除してもよい。
S4において、モニタ装置11は、パケット取得装置12により取得されたユーザパケットを利用して、ネットワークの品質および状態を解析する。このとき、モニタ装置11は、S2において識別されたユーザ毎に、ネットワークの品質および状態を解析してもよい。
<第2の実施形態>
図6は、第2の実施形態に係わる通信システムの一例を示す。通信システム100の構成は、第1の実施形態および第2の実施形態において実質的に同じである。すなわち、第2の実施形態においても、通信システム100は、ゲートウェイ装置(GW)1X、1Y間の通信を提供する。
サーバ2X、2Y間では、ユーザパケット(例えば、TCPパケット)が伝送される。また、ゲートウェイ装置1X、1Y間では、VXLANパケットが伝送される。即ち、サーバ2Xから送信されるユーザパケットは、ゲートウェイ装置1Xにおいてカプセル化され、仮想パスを介してゲートウェイ装置1Yに伝送される。そして、ゲートウェイ装置1Yは、VXLANパケットのカプセル化を解除してユーザパケットを抽出し、抽出したユーザパケットをサーバ2Yに転送する。
ユーザパケットのサイズは、送信元サーバ(図6では、サーバ2X)が指定するMTU(maximum transmission unit)により決定される。一方、VXLANパケットのサイズは、ゲートウェイ装置(図6では、ゲートウェイ装置1X)が指定するMTUにより決定される。ところが、送信元サーバおよびゲートウェイ装置は、互いに独立してMTUを指定する。このため、サーバ間で伝送されるユーザパケットのサイズが、ゲートウェイ間で伝送されるVXLANパケットのサイズよりも大きくなることがある。そして、ユーザパケットのサイズがVXLANパケットよりも大きいときは、ユーザパケットが複数のフラグメントに分割されてカプセル化される。すなわち、1個のユーザパケットから複数のVXLANパケットが生成される。
図6に示す例では、サーバ2Xが指定するMTUが1600バイトであり、ゲートウェイ装置1Xが指定するMTUが1200バイトである。そして、サーバ2Xは、1600バイトのユーザパケットを送信する。
ゲートウェイ装置1Xは、サーバ2Xから受信するユーザパケットを分割してフラグメントF1およびフラグメントF2を生成する。そして、ゲートウェイ装置1Xは、フラグメントF1にOuterヘッダを付与するカプセル化を行ってVXLANパケット1を生成する。また、ゲートウェイ装置1Xは、フラグメントF2にOuterヘッダを付与するカプセル化を行ってVXLANパケット2を生成する。すなわち、ゲートウェイ装置1Xにおいて、1個のユーザパケットから2個のカプセル化されたパケット(VXLANパケット1およびVXLANパケット2)が生成される。
フラグメントF1は、図7に示すように、ユーザパケットのイーサネットヘッダ、IPヘッダ、TCPヘッダ、およびユーザデータの一部(以下、ユーザデータ1)から構成される。一方、フラグメントF2は、ユーザデータの残り部分(以下、ユーザデータ2)から構成される。すなわち、フラグメントF2は、ユーザパケットのヘッダ情報を含んでいない。なお、ゲートウェイ装置1Xは、例えば、フラグメントF1の長さが1200バイトとなるように、ユーザパケットからフラグメントF1およびフラグメントF2を生成する。
フラグメントF1、F2に付与されるOuterヘッダは、互いに実質的に同じである。ここで、Outerヘッダに設定される送信元IPアドレス、送信先IPアドレス、送信先ポート番号、ネットワーク識別子(VNI)の組合せは、VXLANパケットを伝送する仮想パスを識別する。したがって、VXLANパケット1およびVXLANパケット2は、同じ仮想パスを介して伝送される。
ただし、VXLANパケット1とVXLANパケット2との間で、Outerヘッダ中のIPヘッダに設定される識別子(IP-ID)は、互いに異なる。具体的には、VXLANパケット2のIP-IDは、VXLANパケット1のIP-IDを1だけインクリメントすることにより生成される。
上記構成の通信システム100において、ゲートウェイ装置1Xは、上述のカプセル化により生成されるVXLANパケットをゲートウェイ装置1Yに送信する。このとき、ゲートウェイ装置1Xは、ミラーリング機能を利用して、生成したVXLANパケットをモニタ装置11にも送信する。
モニタ装置11において、パケット取得装置12は、受信したVXLANパケットをキャプチャし、そのVXLANパケットからユーザパケットを取得する。このとき、1個のユーザパケットから複数のVXLANパケットが生成されている場合には、パケット取得装置12は、それら複数のVXLANパケットからユーザパケットを取得する。そして、モニタ装置11は、ユーザパケットを解析し、パケットロス、RTT、アプリケーションの遅延、転送バイト数、転送パケット数などをモニタする。
図8は、第2の実施形態におけるモニタ装置12の処理の一例を示すフローチャートである。なお、ゲートウェイ装置1Xは、ミラーリング機能により、ゲートウェイ装置1Yに向かうVXLANパケットをモニタ装置11に導くものとする。
S11~S12は、図5に示すS1~S2と実質的に同じである。すなわち、パケット取得装置12は、受信VXLANパケットのOuterヘッダに基づいて、そのVXLANパケットに係わるユーザを識別する。なお、S13~S18およびS21~S26の処理は、S12で識別されるユーザ毎に実行される。
なお、パケット取得装置12は、S12で識別されるユーザ毎に、後述するフラグメント中フラグを管理する。各ユーザのフラグメント中フラグは、図9に示すように、フラグメモリに記録される。そして、各ユーザのフラグメント中フラグは、ユーザを識別するユーザIDにより検索可能であるものとする。
加えて、パケット取得装置12は、受信VXLANパケットから抽出するユーザパケットデータを一時的に格納するデータバッファメモリを備える。そして、パケット取得装置12は、S12で識別されるユーザ毎に、受信VXLANパケットから抽出するユーザパケットデータをデータバッファメモリ格納するためのメモリ領域を確保する。このメモリ領域のアドレスは、図9に示すように、ユーザIDに一意に対応付けられている。ユーザIDは、この実施例では、VXLANパケットに設定されている送信元IPアドレス、送信先IPアドレス、送信先ポート番号、ネットワーク識別子の組合せに基づいて生成される。
S13において、パケット取得装置12は、S11で受信したVXLANパケットに対して、フラグメント処理が必要か否かを判定する。フラグメント処理は、1個のユーザパケットから複数のVXLANパケットが生成されるときに、2個目のVXLANパケットから最後のVXLANパケットに対して実行される。すなわち、1個のユーザパケットから複数のVXLANパケットが生成されるケースにおいて、受信VXLANパケットがユーザパケットの一部のみを含むときに、フラグメント処理が必要と判定される。ただし、フラグメント処理が必要か否かは、図9に示すフラグメモリに記録されるフラグメント中フラグにより表される。したがって、パケット取得装置12は、ユーザIDでフラグメモリにアクセスし、受信パケットに係わるユーザに対応するフラグメント中フラグを参照することにより、フラグメント処理が必要か否かを判定する。なお、フラグメント中フラグは、後で説明するが、初期状態においてOFFであり、S17またはS24により更新される。
フラグメント処理を実行しないときは(S13:No)、パケット取得装置12は、S14において、受信VXLANパケットからOuterヘッダおよびユーザパケットのイーサネットヘッダを削除する。この結果、ユーザパケットのIPヘッダおよびTCPヘッダ、及びユーザデータの少なくとも一部が得られる。受信VXLANパケットからOuterヘッダおよびユーザパケットのイーサネットヘッダを削除する処理は、この実施例では、VXLANパケットのカプセル化を解除する処理(即ち、デカプセル化処理)に相当する。
S15において、パケット取得装置12は、ユーザパケットのIPヘッダから「データグラム長」を取得する。データグラム長は、ユーザパケットのIPヘッダのバイト数、ユーザパケットのTCPヘッダのバイト数、及びユーザデータ全体のバイト数の和を表す。
S16において、パケット取得装置12は、受信パケットのデータ長がIPヘッダから取得したデータグラム長と一致するか否かを判定する。「受信パケットのデータ長」は、S14において受信VXLANパケットからOuterヘッダおよびユーザパケットのイーサネットヘッダを削除することで得られる残り部分のバイト数を表す。よって、このデータ長は、受信VXLANパケットのバイト数からOuterヘッダのバイト数およびユーザパケットのイーサネットヘッダのバイト数を引算することで得られる。
受信パケットのデータ長がIPヘッダから取得したデータグラム長と一致するときは、パケット取得装置12は、受信VXLANパケットの中に1個のユーザパケット全体がカプセル化されていると判定する。この場合、パケット取得装置12は、S25において、S14で取得した残り部分(IPヘッダ、TCPヘッダ、ユーザデータ)を1個のユーザパケットとして取得する。そして、S26において、モニタ装置11は、このユーザパケットを利用してネットワークの品質および状態を解析する。
受信パケットのデータ長がIPヘッダから取得したデータグラム長と一致しないときには(S16:No)、パケット取得装置12は、S17において、ユーザパケットが複数のフラグメントに分割され、且つ、それら複数のフラグメントのうちの最初のフラグメントがS11で受信したVXLANパケットに格納されている、と判定する。すなわち、パケット取得装置12は、上述した複数のフラグメントのうちの2番目以降のフラグメントが存在すると判定する。さらに換言すれば、パケット取得装置12は、フラグメント処理が必要であると判定する。したがって、パケット取得装置12は、フラグメント中フラグをON状態に更新する。
S18において、パケット取得装置12は、受信VXLANパケットから取得したデータをデータバッファメモリに保存する。このデータは、図9に示すように、ユーザIDに対応する領域に格納される。なお、S18においてデータバッファメモリに保存されるデータは、ユーザパケットのIPヘッダおよびTCPヘッダ、及びユーザデータの一部から構成される。なお、S17~S18の処理を実行した後は、パケット取得装置12は、2番目以降のフラグメントが格納されたVXLANパケットを待ち受ける。
フラグメント処理を実行するときは(S13:Yes)、パケット取得装置12は、S21において、受信VXLANパケットからOuterヘッダを削除する。この残り部分は、2番目以降のフラグメントのいずれか1つに相当する。ここで、2番目以降のフラグメントは、ユーザデータの一部のみから構成される。したがって、パケット取得装置12は、受信VXLANパケットからOuterヘッダを削除することにより、ユーザデータの一部を取得する。なお、受信VXLANパケットからOuterヘッダを削除する処理は、この実施例では、VXLANパケットのカプセル化を解除する処理(即ち、デカプセル化処理)に相当する。
S22において、パケット取得装置12は、ユーザIDに対応するメモリ領域に保存されているデータ(又は、結合データ)に、S21で新たに取得したフラグメントを結合して結合データを生成する。すなわち、データバッファメモリに保存されているデータ(又は、結合データ)に、S21で新たに取得したユーザデータが結合される。
S23において、パケット取得装置12は、S22で生成した結合データのデータ長がIPヘッダから取得したデータグラム長と一致するか否かを判定する。結合データのデータ長がデータグラム長よりも短いときは、パケット取得装置12は、後続のフラグメントが残っていると判定する。この場合、パケット取得装置12の処理は終了する。即ち、パケット取得装置12は、次のVXLANパケットを待ち受ける。
結合データのデータ長がデータグラム長と一致するときは、パケット取得装置12は、1個のユーザパケットから生成される複数のVXLANパケットをすべて受信したと判定する。すなわち、パケット取得装置12は、後続のフラグメントが残っていないと判定する。この場合、パケット取得装置12は、S24において、フラグメント中フラグをOFF状態に更新する。また、パケット取得装置12は、S25において、S22で生成される結合データを1個のユーザパケットとして取得する。そして、S26において、モニタ装置11は、このユーザパケットを利用してネットワークの品質および状態を解析する。
なお、S16において受信パケットのデータ長がデータグラム長と一致しなかったときは、図8に示すフローチャートの処理は、結合データのデータ長がデータグラム長と一致するまで繰り返し実行される。そして、結合データのデータ長がデータグラム長と一致したときに、パケット取得装置12は、その結合データを1個のユーザパケットとして取得する。
また、S23において、結合データのデータ長がデータグラム長よりも長いときは、何らかの通信エラーが発生したと考えられる。したがって、この場合、パケット取得装置12は、フラグメント中フラグを初期化し、また、データバッファメモリに格納されているデータを廃棄する。
このように、第2の実施形態のパケット取得方法においては、ユーザパケットが複数のフラグメントに分割されて伝送されるときに、パケット取得装置12は、先頭のフラグメントに含まれるユーザパケットのヘッダ情報からデータグラム長を取得する。そして、パケット取得装置12は、複数のフラグメントを結合したときの長さがデータグラム長に一致するときに、その結合データを1個のユーザパケットとして取得する。したがって、ユーザパケットのヘッダ情報を含まないフラグメントがVXLANパケット内にカプセル化されて伝送される場合であっても、パケット取得装置12は、カプセル化前のユーザパケットを取得できる。
次に、図6~図7に示す実施例を参照しながら図8に示すフローチャートの処理を説明する。なお、図6~図7に示す実施例では、1個のユーザパケットから2個のVXLANパケットが生成される。VXLANパケット1には、ユーザパケットのイーサネットヘッダ、IPヘッダ、TCPヘッダ、及びユーザデータの一部(ユーザデータ1)がカプセル化される。VXLANパケット2には、残りのユーザデータ(ユーザデータ2)がカプセル化される。
パケット取得装置12は、S11においてVXLANパケット1を受信すると、S12においてOuterヘッダを参照してユーザを識別する。このとき、このユーザに対応するフラグメント中フラグは、OFF状態に初期化されている。よって、パケット取得装置12の処理はS14に進む。
S14において、パケット取得装置12は、VXLANパケット1からOuterヘッダおよびユーザパケットのイーサネットヘッダを削除することにより、ユーザパケットのIPヘッダおよびTCPヘッダ、及びユーザデータ1を取得する。S15において、パケット取得装置12は、IPヘッダから「データグラム長」を取得する。S16において、パケット取得装置12は、ユーザパケットのIPヘッダおよびTCPヘッダ、及びユーザデータ1の合計バイト数とデータグラム長とを比較する。
この実施例では、ユーザパケットのIPヘッダおよびTCPヘッダ、及びユーザデータ1の合計バイト数は、データグラム長よりも小さい。よって、S17において、パケット取得装置12は、フラグメント中フラグをON状態に更新する。また、S18において、パケット取得装置12は、図10に示すように、S14で取得したユーザパケットのIPヘッダおよびTCPヘッダ、及びユーザデータ1をパケットデータメモリに保存する。
次に、パケット取得装置12は、VXLANパケット2を受信し、ユーザを識別する。そして、パケット取得装置12は、VXLANパケット2と同じユーザに係わるパケットを先に受信しているか否かを判定する。この実施例では、VXLANパケット1およびVXLANパケット2は同じユーザに係わる。よって、パケット取得装置12は、VXLANパケット1に対して実行した処理を引き継ぎながら、VXLANパケット2に対する処理を実行する。具体的には、パケット取得装置12は、VXLANパケット1を受信したときに更新したフラグメント中フラグおよびパケットデータメモリに保存されているデータを利用しながら、VXLANパケット2に対する処理を実行する。
VXLANパケット1に対するパケット取得処理においては、フラグメント中フラグがON状態に更新されている。また、ユーザパケットのIPヘッダおよびTCPヘッダ、及びユーザデータ1がパケットデータメモリに保存されている。
S13において、パケット取得装置12は、フラグメント中フラグを参照する。このとき、フラグメント中フラグはON状態なので、パケット取得装置12の処理はS21に進む。
S21において、パケット取得装置12は、VXLANパケット2からOuterヘッダを削除することでユーザデータ2を取得する。S22において、パケット取得装置12は、ユーザIDを用いてパケットデータメモリにアクセスすることにより、VXLANパケット1から取得したデータをサーチする。そして、パケット取得装置12は、図10に示すように、VXLANパケット1から取得したデータに、VXLANパケット2から新たに取得したデータを結合することで、結合データを生成する。
この実施例では、S22で生成される結合データのデータ長は、IPヘッダから取得したデータグラム長と一致する。よって、パケット取得装置12は、S25において、この結合データを1個のユーザパケットとして取得する。
なお、図6~図7に示す実施例では、1個のユーザパケットから2個のVXLANパケットが生成されるが、本発明は、1個のユーザパケットから任意の個数のVXLANパケットが生成されるケースに適用可能である。即ち、1個のユーザパケットから複数のVXLANパケットが生成されるケースでは、パケット取得装置12は、結合データの長さがデータグラム長に一致するまで、先に受信しているデータに新たなデータを結合する処理を繰り返し実行する。そして、結合データの長さがデータグラム長に一致したときに、パケット取得装置12は、この結合データを1個のユーザパケットとして取得する。
図11(a)は、第2の実施形態に係わるパケット取得装置の一例を示す図である。パケット取得装置12は、インタフェース回路21、プロセッサ22、およびメモリ23を備える。インタフェース回路21は、ゲートウェイ装置から転送されてくるVXLANパケットを終端する。プロセッサ22は、メモリ23に格納されているパケット取得プログラムを実行することにより、受信VXLANパケットからユーザパケットを取得する。パケット取得プログラムは、図8に示すフローチャートのS11~S18およびS21~S25の処理を記述する。よって、プロセッサ22は、パケット取得プログラムを実行することにより、図8に示すフローチャートの処理を実現する。
なお、メモリ23は、他のプログラムを格納してもよい。また、メモリ23は、受信パケットを一時的に保存するデータバッファメモリおよびフラグメント中フラグを格納するフラグメモリを含む。さらに、メモリ23は、複数のフラグメントを結合するための作業領域としても使用される。
<第3の実施形態>
図12は、第3の実施形態に係わる通信システムの一例を示す。第3の実施形態においは、サーバ2Xからサーバ2Yにデータを伝送する上りパスおよびサーバ2Yからサーバ2Xにデータを伝送する下りパスは、物理的に異なる回線に設定されている。すなわち、ゲートウェイ装置1X_Uは、サーバ2Xからサーバ2Yに向かうユーザパケットをVXLANパケットに変換してゲートウェイ装置1Y_Uに送信し、ゲートウェイ装置1Y_Uは、このVXLANパケットからユーザパケットを抽出してサーバ2Yに転送する。同様に、ゲートウェイ装置1Y_Dは、サーバ2Yからサーバ2Xに向かうユーザパケットをVXLANパケットに変換してゲートウェイ装置1X_Dに送信し、ゲートウェイ装置1X_Dは、このVXLANパケットからユーザパケットを抽出してサーバ2Xに転送する。
モニタ装置11は、複数のインタフェース回路を備える。各インタフェース回路は、それぞれ対応するゲートウェイ装置に接続される。図11に示す実施例では、モニタ装置11は、インタフェースIF1、IF2を備える。インタフェースIF1は、ゲートウェイ装置1X_Uから送られてくるVXLANパケットを終端し、インタフェースIF2は、ゲートウェイ装置1X_Dから送られてくるVXLANパケットを終端する。
モニタ装置11は、インタフェースIF1、IF2を介して受信するパケットを順番に処理する。このため、モニタ装置11は、受信パケットを適切な順番で処理できないことがある。例えば、ゲートウェイ装置1X_Uが1個のユーザパケットからVXLANパケット1およびVXLANパケット2を生成し、ゲートウェイ装置1X_Dがゲートウェイ装置1Y_DからVXLANパケット3を受信するものとする。そして、モニタ装置11は、順番に、インタフェースIF1を介してVXLANパケット1を受信し、インタフェースIF2を介してVXLANパケット3を受信し、インタフェースIF1を介してVXLANパケット2を受信するものとする。ここで、VXLANパケット1~3は、同じユーザに係わる。よって、図8に示すフローチャートの手順でVXLANパケット1~3が順番に処理されると、上りパスのデータおよび下りパスのデータが結合されてしまうおそれがある。すなわち、モニタ装置11は、ネットワークの品質および状態を正しくモニタできないおそれがある。
そこで、第3の実施形態においては、パケット取得装置12は、受信パケットに設定されている送信元IPアドレス、送信先IPアドレス、送信先ポート番号、ネットワーク識別子(VNI)の組合せに基づいてユーザを識別する共に、IPヘッダ内に設定されているIP-IDに基づいてパケットの連続性をチェックする。加えて、パケット取得装置12は、パケット取得装置12が備える複数のインタフェースのうちのどのインタフェースを介してパケットを受信したのかを考慮してパケット取得処理を実行する。
図13~図14は、第3の実施形態におけるモニタ装置の処理の一例を示すフローチャートである。なお、モニタ装置11に接続する各ゲートウェイ装置は、ミラーリング機能により、VXLANパケットをモニタ装置11に導くものとする。
S31~S32は、図5に示すS1~S2と実質的に同じである。すなわち、パケット取得装置12は、受信VXLANパケットのOuterヘッダに基づいて、そのVXLANパケットに係わるユーザを識別する。なお、S33~S39およびS41~S50の処理は、S32で識別されるユーザ毎に実行される。
S33において、パケット取得装置12は、受信VXLANパケット内にユーザパケットのヘッダ情報が格納されているか否か判定する。このとき、パケット取得装置12は、ユーザパケットのIPヘッダを参照してもよい。この場合、例えば、IPヘッダのチェックサムを利用した検証が正しければ、受信VXLANパケット内にユーザパケットのヘッダ情報が格納されていると判定される。そして、受信VXLANパケット内にユーザパケットのヘッダ情報が格納されているときは、パケット取得装置12は、下記のいずれかのケースに起因するVXLANパケットがパケット取得装置12に到着したと判定する。
(1)1個のユーザパケットから1個のVXNALパケットが生成され(すなわち、1個のユーザパケット全体を含むVXNALパケットが生成され)、そのVXNALパケットがパケット取得装置12に到着した。
(2)1個のユーザパケットが複数のフラグメントに分割され、それら複数のフラグメントのうちの先頭のフラグメントが格納されたVXNALパケットがパケット取得装置12に到着した。
そして、受信VXLANパケット内にユーザパケットのヘッダ情報が格納されているときは、パケット取得装置12の処理はS34に進む。
S34~S36の処理は、図8に示すS14~S16と実質的に同じである。即ち、S34において、パケット取得装置12は、受信VXLANパケットからOuterヘッダおよびユーザパケットのイーサネットヘッダを削除する。S35において、パケット取得装置12は、ユーザパケットのIPヘッダから「データグラム長」を取得する。そして、S36において、パケット取得装置12は、受信パケットのデータ長がIPヘッダから取得したデータグラム長と一致するか否かを判定する。
受信パケットのデータ長がIPヘッダから取得したデータグラム長と一致するときには(S36:Yes)、パケット取得装置12は、受信VXLANパケットの中に1個のユーザパケット全体がカプセル化されていると判定する。この場合、パケット取得装置12は、S49において、S34で取得した残り部分(IPヘッダ、TCPヘッダ、ユーザデータ)を1個のユーザパケットとして取得する。そして、S50において、モニタ装置11は、このユーザパケットを利用してネットワークの品質および状態を解析する。
受信パケットのデータ長がIPヘッダから取得したデータグラム長と一致しないときには(S36:No)、パケット取得装置12は、S37において、受信VXLANパケットから取得したデータをデータバッファメモリに格納する。このデータは、図9に示すように、ユーザIDに対応する領域に格納される。なお、このデータは、ユーザパケットのIPヘッダおよびTCPヘッダ、及びユーザデータの一部から構成される。
S38において、パケット取得装置12は、受信VXLANパケットのOuterヘッダからIP-IDを取得する。そして、パケット取得装置12は、取得したIP-IDをIP-ID/IF名テーブルに保存する。
IP-IDは、ゲートウェイ装置がユーザパケットをカプセル化する際に、VXLANパケットのIPヘッダに設定される。ここで、1個のユーザパケットから複数のVXLANパケットが生成されるときは、それら複数のVXLANパケットに設定されるIP-IDの値は連続している。
例えば、図15に示すように、ゲートウェイ装置において1個のユーザパケットが3個のフラグメントF1~F3に分割されるものとする。すなわち、ゲートウェイ装置は、3個のVXLANパケット1~3を順番に生成する。ここで、最初に生成されるVXLANパケット1のヘッダに「IP-ID:1000」が設定されるものとする。この場合、VXLANパケット2のヘッダに「IP-ID:1001」が設定され、VXLANパケット3のヘッダに「IP-ID:1002」が設定される。
S39において、パケット取得装置12は、受信したVXLANパケットが到着したインタフェース回路を表すIF名を取得する。なお、各インタフェース回路を識別するIF名は、パケット取得装置12のOSにより管理されており、各インタフェース回路のドライバに設定されている。そして、あるインタフェース回路にパケットが到着すると、そのインタフェース回路のドライバからパケット取得装置12のプロセッサにIF名が通知される。その後、パケット取得装置12は、取得したIF名をIP-ID/IF名テーブルに保存する。
図16は、IP-ID/IF名テーブルの一例を示す。IP-ID/IF名テーブルには、IP-IDの値およびIF名が互いに関連付けられて記録される。具体的には、パケット取得装置12は、S38~S39を実行するときに、IP-ID/IF名テーブルに新たなレコードを作成する。そして、パケット取得装置12は、S38において取得したIP-IDの値およびS39において取得してIF名をそのレコードに記録する。
なお、S37~S39は「1個のユーザパケットから複数のVXNALパケットが生成され、それらのうちの先頭のVXNALパケットがパケット取得装置12に到着した」ときに実行される。よって、S39の処理を実行した後は、パケット取得装置12は、2番目以降のフラグメントが格納されたVXLANパケットを待ち受ける。
受信VXLANパケット内にユーザパケットのヘッダ情報が格納されていないときには(S33:No)、パケット取得装置12の処理はS41に進む。S41~S42の処理は、S38~S39と実質的に同じである。すなわち、S41において、パケット取得装置12は、受信VXLANパケットのOuterヘッダからIP-IDを取得する。S42において、パケット取得装置12は、受信したVXLANパケットが到着したインタフェース回路を表すIF名を取得する。
S43~S44において、パケット取得装置12は、S41~S42で取得したIP-IDおよびIF名を用いてIP-ID/IF名テーブルを検索する。具体的には、パケット取得装置12は、S42で取得したIF名と同じIF名が記録されており、且つ、S41で取得したIP-IDの値よりも1だけ小さい値が記録されているレコードがIP-ID/IF名テーブルに存在するか否かを判定する。そして、IP-ID/IF名テーブルにそのようなレコードが存在するときは、パケット取得装置12の処理はS45に進む。
S45において、パケット取得装置12は、IP-ID/IF名テーブルを更新する。具体的には、パケット取得装置12は、S44で発見されたレコードにおいて、先に記録されているIP-IDを、S41で取得したIP-IDに書きかえる。
S46~S48の処理は、図8に示すS21~S23と実質的に同じである。即ち、S46において、パケット取得装置12は、受信VXLANパケットからOuterヘッダを削除する。S47において、パケット取得装置12は、ユーザIDに対応するメモリ領域に保存されているデータ(又は、結合データ)に、S46で新たに取得したフラグメントを結合して結合データを生成する。S48において、パケット取得装置12は、S47で生成した結合データのデータ長がIPヘッダから取得したデータグラム長と一致するか否かを判定する。そして、結合データのデータ長がデータグラム長よりも小さいときは、パケット取得装置12は、さらに後続するフラグメントが残っていると判定する。この場合、パケット取得装置12の処理は終了する。すなわち、パケット取得装置12は、次のVXLANパケットを待ち受ける。
なお、S36において受信パケットのデータ長がデータグラム長と一致しなかったときは、図13~図14に示すフローチャートの処理は、結合データのデータ長がデータグラム長と一致するまで繰り返し実行される。そして、結合データのデータ長がデータグラム長と一致したときに、パケット取得装置12の処理はS49に進む。
結合データのデータ長がデータグラム長と一致するときは、パケット取得装置12は、1個のユーザパケットから生成される複数のVXLANパケットをすべて受信したと判定する。即ち、パケット取得装置12は、後続のフラグメントが残っていないと判定する。この場合、パケット取得装置12は、S49において、S47で生成される結合データを1個のユーザパケットとして取得する。そして、S50において、モニタ装置11は、このユーザパケットを利用してネットワークの品質および状態を解析する。
なお、S48において、結合データのデータ長がデータグラム長よりも長いときは、何らかの通信エラーが発生したと考えられる。したがって、この場合、パケット取得装置12は、データバッファメモリに格納されているデータを廃棄する。
このように、第3の実施形態では、複数のVXLANパケットのヘッダに付与されているIP-IDの連続性を考慮して複数のフラグメントからユーザパケットが組み立てられる。したがって、同じ仮想パスを介して複数の通信が行われるケースであっても、パケット取得装置12は、ユーザパケットを正しく組み立てることができる。
なお、IP-IDの連続性を考慮して複数のフラグメントからユーザパケットが組み立てられる場合であっても、例えば、図12に示す上りパスおよび下りパスにおいて伝送されるVXLANパケットのIP-IDの値が互い同じであった場合には、それら2個のパケットを互いに識別できない。すなわち、パケット取得装置12は、上りパスのデータおよび下りパスのデータを結合してしまうおそれがある。
そこで、第3の実施形態では、パケット取得装置12は、受信するVXLANパケットのIP-IDの値が連続しており、且つ、それらのVXLANパケットが同じインタフェース回路に到着した場合に、それらのVXLANパケットから抽出されるデータを結合する。したがって、取得されるユーザパケットの信頼性がさらに高くなる。ただし、第3の実施形態は、必ずしもインタフェース回路の同一性を考慮しなくてもよい。
図11(b)は、第3の実施形態に係わるパケット取得装置の一例を示す図である。パケット取得装置12は、複数のインタフェース回路21、プロセッサ22、およびメモリ23を備える。各インタフェース回路21は、対応するゲートウェイ装置から転送されてくるVXLANパケットを終端する。プロセッサ22は、メモリ23に格納されているパケット取得プログラムを実行することにより、受信VXLANパケットからユーザパケットを取得する。パケット取得プログラムは、図13~図14に示すフローチャートのS31~S39およびS41~S49の処理を記述する。よって、プロセッサ22は、パケット取得プログラムを実行することにより、図13~図14に示すフローチャートの処理を実現する。
なお、メモリ23は、他のプログラムを格納してもよい。また、メモリ23は、受信パケットを一時的に保存するバッファメモリおよびIP-ID/IF名テーブルを含んでもよい。さらに、メモリ23は、複数のフラグメントを結合するための作業領域としても使用される。
図17は、第3の実施形態が適用される通信システムの一例を示す。この実施例では、サーバ間を接続するネットワークが冗長的に構成されており、障害の発生等に起因して、運用系(ACT)および予備系(SBY)が動的に切り替えられる。
パケット取得装置12は、4個以上のインタフェースを備え、運用系の上りパス、運用系の下りパス、予備系の上りパス、予備系の下りパスからそれぞれパケットを受信できるように構成されている。したがって、上りパスおよび下りパスにおいてそれぞれどちらの経路が選択された場合であっても、パケット取得装置12は、パスごとにユーザパケットを正しく組み立てることができる。
図18は、モニタ装置11およびパケット取得装置12の機能の一例を示すブロック図である。モニタ装置11は、この実施例では、パケット取得装置12および解析部13を備える。ただし、モニタ装置11は、パケット取得装置12を内蔵していなくてもよい。すなわち、パケット取得装置12は、モニタ装置11の外部に設けられてもよい。この場合、パケット取得装置12により取得されるパケットは、モニタ装置11に転送される。
パケット取得装置12は、パケット受信部31、ユーザ識別部32、フラグメント判定部33、パケット組立て部34を備える。なお、パケット取得装置12は、図18に示していない他の機能を備えていてもよい。
パケット受信部31は、カプセル化されたパケットをネットワークから受信する。上述した実施例では、パケット受信部31は、ゲートウェイ装置からVXLANパケットを受信する。
ユーザ識別部32は、パケット受信部31が受信したパケットを伝送する仮想パスを識別する。上述の実施例では、ユーザ識別部32は、VXLANパケットのOuterヘッダに設定されている送信元IPアドレス、送信先IPアドレス、送信先ポート番号、ネットワーク識別子の組合せに基づいて仮想パスを識別する。ここで、仮想パスは、ユーザ毎に設定される。よって、ユーザ識別部32は、パケット受信部31が受信したパケットに係わるユーザを識別することができる。
フラグメント判定部33は、パケット受信部31が受信したパケットに含まれる長さ情報により表される長さが、そのパケットのカプセル化を解除することで得られるフラグメントに含まれるデータの長さと一致するか否かに基づいて、そのデータに結合すべきフラグメントが存在するか否かを判定する。上述の実施例では、長さ情報は、IPヘッダに設定されているデータグラム長により実現される。なお、第2の実施例では、フラグメント中フラグを利用して、結合すべきフラグメントが存在するか否か(すなわち、フラグメント処理が必要か否か)が表される。また、第3の実施形態では、受信パケットがTCPパケットのヘッダを含むか否か、及び、受信パケットから抽出されるデータの長さとIPヘッダに設定されているデータグラム長と一致するか否かに基づいて、結合すべきフラグメントが存在するか否か(すなわち、フラグメント処理が必要か否か)が判定される。
パケット組立て部34は、後続パケットのカプセル化を解除することで得られる後続フラグメントを、先に得られているデータに結合して結合データを生成する処理を、結合データの長さが長さ情報により表される長さと一致するまで繰り返し実行する。そして、パケット組立て部34は、結合データの長さが長さ情報により表される長さと一致すると、その結合データを、カプセル化が解除されたパケットとして取得する。なお、第3の実施形態では、パケット組立て部34は、Outerヘッダ中のIPヘッダに設定されているIP-IDが連続しているパケットから抽出されるデータを結合する。
解析部13は、パケット組立て部34により取得されたパケットに基づいて、ネットワークの品質および状態を解析する。例えば、解析部13は、ユーザ毎に、パケットロス、RTT、アプリケーションの遅延、転送バイト数、転送パケット数などをモニタする。
1X、1Y ゲートウェイ装置
2X、2Y サーバ
11 モニタ装置
12 パケット取得装置
13 解析部
21 インタフェース
22 プロセッサ
23 メモリ
31 パケット受信部
32 ユーザ識別部
33 フラグメント判定部
34 パケット組立て部

Claims (6)

  1. 第1のプロトコルに従うパケットに所定の規則に基づいてヘッダを追加することでカプセル化した第2のプロトコルに従うパケットが生成されて伝送される通信システムにおいて、
    仮想的なパスを介して伝送される、前記第2のプロトコルに従う第1のパケットから前記所定の規則に基づいて追加されたヘッダを削除することでカプセル化を解除した第1のフラグメントのヘッダに含まれる長さ情報と前記第1のフラグメントに含まれるデータの長さとが一致するか否かを判定し、
    前記第1のフラグメントに含まれるデータの長さが、前記長さ情報により表される長さと一致しないときに、前記第1のフラグメントに含まれるデータを抽出してメモリに保存し、前記第1のパケットよりも後に前記仮想的なパスを介して伝送される、前記第2のプロトコルに従う第2のパケットのカプセル化を解除することで得られる第2のフラグメントを前記メモリに保存されているデータに結合して結合データを生成し、
    前記結合データの長さが前記長さ情報により表される長さと一致するときは、前記結合データを、前記第1のプロトコルに従う1個のパケットとして取得し、
    前記結合データの長さが前記長さ情報により表される長さよりも短いときは、前記第2のパケットよりも後に前記仮想的なパスを介して伝送される、前記第2のプロトコルに従うパケットのカプセル化を解除することで得られる後続フラグメントを前記結合データにさらに結合して新たな結合データを生成する処理を、前記新たな結合データの長さが前記長さ情報により表される長さと一致するまで繰り返す
    処理をプロセッサに実行させるパケット取得プログラム。
  2. 前記第1のフラグメントに含まれるデータの長さが、前記長さ情報により表される長さよりも短いときに、フラグメント処理が実行中であることを表すフラグをON状態に設定し、
    前記第1のパケットよりも後に前記仮想的なパスを介して伝送される後続パケットを受信したときに、前記フラグがON状態であれば、前記後続パケットのカプセル化を解除することで得られるフラグメントを前記メモリに保存されているデータに結合する
    処理をプロセッサに実行させる請求項1に記載のパケット取得プログラム。
  3. 前記第1のプロトコルに従う1個のパケットをカプセル化することで前記第2のプロトコルに従う複数のパケットが生成されるケースにおいて前記複数のパケットに対して順番に付与される連続する値を持った識別情報を、各受信パケットから取得し、
    前記第1のフラグメントに含まれるデータの長さが前記長さ情報により表される長さより短く、且つ、前記第1のパケットから取得した識別情報と前記第2のパケットから取得した識別情報とが連続しているときに、前記第2のフラグメントを前記メモリに保存されているデータに結合する
    処理をプロセッサに実行させる請求項1に記載のパケット取得プログラム。
  4. 各受信パケットが到着したインタフェースを表すインタフェース識別子を取得し、
    前記第1のフラグメントに含まれるデータの長さが前記長さ情報により表される長さより短く、且つ、前記第1のパケットが到着したインタフェースを表すインタフェース識別子と前記第2のパケットが到着したインタフェースを表すインタフェース識別子とが一致し、且つ、前記第1のパケットから取得した識別情報と前記第2のパケットから取得した識別情報とが連続しているときに、前記第2のフラグメントを前記メモリに保存されているデータに結合する
    処理をプロセッサに実行させる請求項3に記載のパケット取得プログラム。
  5. 第1のプロトコルに従うパケットに所定の規則に基づいてヘッダを追加することでカプセル化した第2のプロトコルに従うパケットが生成されて伝送される通信システムにおいて、前記第1のプロトコルに従うパケットを取得するパケット取得方法であって、
    仮想的なパスを介して伝送される、前記第2のプロトコルに従う第1のパケットから前記所定の規則に基づいて追加されたヘッダを削除することでカプセル化を解除した第1のフラグメントのヘッダに含まれる長さ情報と前記第1のフラグメントに含まれるデータの長さとが一致するか否かを判定し、
    前記第1のフラグメントに含まれるデータの長さが、前記長さ情報により表される長さと一致しないときに、前記第1のフラグメントに含まれるデータを抽出してメモリに保存し、前記第1のパケットよりも後に前記仮想的なパスを介して伝送される、前記第2のプロトコルに従う第2のパケットのカプセル化を解除することで得られる第2のフラグメントを前記メモリに保存されているデータに結合して結合データを生成し、
    前記結合データの長さが前記長さ情報により表される長さと一致するときは、前記結合データを、前記第1のプロトコルに従う1個のパケットとして取得し、
    前記結合データの長さが前記長さ情報により表される長さよりも短いときは、前記第2のパケットよりも後に前記仮想的なパスを介して伝送される、前記第2のプロトコルに従うパケットのカプセル化を解除することで得られる後続フラグメントを前記結合データにさらに結合して新たな結合データを生成する処理を、前記新たな結合データの長さが前記長さ情報により表される長さと一致するまで繰り返す
    ことを特徴とするパケット取得方法。
  6. 第1のプロトコルに従うパケットに所定の規則に基づいてヘッダを追加することでカプセル化した第2のプロトコルに従うパケットが生成されて伝送される通信システムにおいて、前記第1のプロトコルに従うパケットを取得するパケット取得装置であって、
    プロセッサと、
    前記プロセッサに接続するメモリと、を備え、
    前記プロセッサは、
    仮想的なパスを介して伝送される、前記第2のプロトコルに従う第1のパケットから前記所定の規則に基づいて追加されたヘッダを削除することでカプセル化を解除した第1のフラグメントのヘッダに含まれる長さ情報と前記第1のフラグメントに含まれるデータの長さとが一致するか否かを判定し、
    前記第1のフラグメントに含まれるデータの長さが、前記長さ情報により表される長さと一致しないときに、前記第1のフラグメントに含まれるデータを抽出して前記メモリに保存し、前記第1のパケットよりも後に前記仮想的なパスを介して伝送される、前記第2のプロトコルに従う第2のパケットのカプセル化を解除することで得られる第2のフラグメントを前記メモリに保存されているデータに結合して結合データを生成し、
    前記結合データの長さが前記長さ情報により表される長さと一致するときは、前記結合データを、前記第1のプロトコルに従う1個のパケットとして取得し、
    前記結合データの長さが前記長さ情報により表される長さよりも短いときは、前記第2のパケットよりも後に前記仮想的なパスを介して伝送される、前記第2のプロトコルに従うパケットのカプセル化を解除することで得られる後続フラグメントを前記結合データにさらに結合して新たな結合データを生成する処理を、前記新たな結合データの長さが前記長さ情報により表される長さと一致するまで繰り返す
    ことを特徴とするパケット取得装置。
JP2018086630A 2018-04-27 2018-04-27 パケット取得装置、パケット取得方法、およびパケット取得プログラム Active JP7035771B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018086630A JP7035771B2 (ja) 2018-04-27 2018-04-27 パケット取得装置、パケット取得方法、およびパケット取得プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018086630A JP7035771B2 (ja) 2018-04-27 2018-04-27 パケット取得装置、パケット取得方法、およびパケット取得プログラム

Publications (2)

Publication Number Publication Date
JP2019193201A JP2019193201A (ja) 2019-10-31
JP7035771B2 true JP7035771B2 (ja) 2022-03-15

Family

ID=68391070

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018086630A Active JP7035771B2 (ja) 2018-04-27 2018-04-27 パケット取得装置、パケット取得方法、およびパケット取得プログラム

Country Status (1)

Country Link
JP (1) JP7035771B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7380091B2 (ja) * 2019-11-05 2023-11-15 富士通株式会社 パケット処理装置およびパケット処理方法
CN111224967B (zh) * 2019-12-30 2023-09-26 视联动力信息技术股份有限公司 数据处理方法及装置、电子设备、存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003069642A (ja) 2001-08-27 2003-03-07 Ando Electric Co Ltd レイヤ2トンネリング装置における複数パケット連結伝送方式
WO2004112326A1 (ja) 2003-06-10 2004-12-23 Fujitsu Limited パケット転送方法及び装置
JP2005110037A (ja) 2003-09-30 2005-04-21 Kddi Corp バケット収集装置およびその方法
JP2006074726A (ja) 2004-08-03 2006-03-16 Fujitsu Ltd 断片パケット処理方法及びこれを用いるパケット転送装置
WO2008126228A1 (ja) 2007-03-29 2008-10-23 Fujitsu Limited 通信装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003069642A (ja) 2001-08-27 2003-03-07 Ando Electric Co Ltd レイヤ2トンネリング装置における複数パケット連結伝送方式
WO2004112326A1 (ja) 2003-06-10 2004-12-23 Fujitsu Limited パケット転送方法及び装置
US20050243834A1 (en) 2003-06-10 2005-11-03 Kenji Fukuda Packet transfer method and device
JP2005110037A (ja) 2003-09-30 2005-04-21 Kddi Corp バケット収集装置およびその方法
JP2006074726A (ja) 2004-08-03 2006-03-16 Fujitsu Ltd 断片パケット処理方法及びこれを用いるパケット転送装置
WO2008126228A1 (ja) 2007-03-29 2008-10-23 Fujitsu Limited 通信装置

Also Published As

Publication number Publication date
JP2019193201A (ja) 2019-10-31

Similar Documents

Publication Publication Date Title
US7899048B1 (en) Method and apparatus for remotely monitoring network traffic through a generic network
US8009672B2 (en) Apparatus and method of splitting a data stream over multiple transport control protocol/internet protocol (TCP/IP) connections
US9294302B2 (en) Non-fragmented IP packet tunneling in a network
CN113132342B (zh) 方法、网络装置、隧道入口点装置及存储介质
JP5098820B2 (ja) フレーム中継装置およびフレーム中継方法
US20050243834A1 (en) Packet transfer method and device
CN113411313A (zh) 数据传输方法、装置和系统
US9191313B2 (en) Communications over multiple protocol interfaces in a computing environment
US9445384B2 (en) Mobile device to generate multiple maximum transfer units and data transfer method
US7733865B2 (en) Communication apparatus and method
JP7035771B2 (ja) パケット取得装置、パケット取得方法、およびパケット取得プログラム
WO2020142880A1 (zh) 一种数据传输方法及装置
JP5672836B2 (ja) 通信装置、通信方法、および通信プログラム
JPWO2011052729A1 (ja) パケット中継装置、パケット中継方法およびプログラム
JP2005252855A (ja) ヘッダ圧縮パケット処理装置及びヘッダ圧縮パケット処理方法
WO2004019561A1 (ja) イーサネット(r)におけるフレーム転送方法及びノード
JP6718739B2 (ja) 通信装置および通信方法
EP3913865B1 (en) Message decapsulation method and device, message encapsulation method and device, electronic device, and storage medium
US9641461B2 (en) Relay device, communication system, and communication method
EP2617166B1 (en) Method and apparatus for reducing receiver identification overhead in ip broadcast networks
JP2003244251A (ja) トンネル経路を再構成するパケット通信方法
WO2022242775A1 (zh) 一种报文处理的方法、系统和网络设备
JP2006050433A (ja) トラヒック監視装置、通信ネットワークトラヒック監視システム、および監視方法
US20150036588A1 (en) Method and apparatus for multiplexing packet to extend wireless sensor network using existing transmission network
JP2016019066A (ja) パケット中継システム、パケット中継装置、およびパケット中継方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211222

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220214

R150 Certificate of patent or registration of utility model

Ref document number: 7035771

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150