JP2010081343A - パケット特定プログラム、パケット特定方法及びパケット特定装置 - Google Patents

パケット特定プログラム、パケット特定方法及びパケット特定装置 Download PDF

Info

Publication number
JP2010081343A
JP2010081343A JP2008248085A JP2008248085A JP2010081343A JP 2010081343 A JP2010081343 A JP 2010081343A JP 2008248085 A JP2008248085 A JP 2008248085A JP 2008248085 A JP2008248085 A JP 2008248085A JP 2010081343 A JP2010081343 A JP 2010081343A
Authority
JP
Japan
Prior art keywords
packet
message
unit
received
segment
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.)
Granted
Application number
JP2008248085A
Other languages
English (en)
Other versions
JP5163398B2 (ja
Inventor
Hirokazu Iwakura
廣和 岩倉
Ken Yokoyama
乾 横山
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 JP2008248085A priority Critical patent/JP5163398B2/ja
Priority to US12/534,606 priority patent/US8111700B2/en
Publication of JP2010081343A publication Critical patent/JP2010081343A/ja
Application granted granted Critical
Publication of JP5163398B2 publication Critical patent/JP5163398B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • H04L49/9094Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • H04L47/564Attaching a deadline to packets, e.g. earliest due date first

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】パケットロスが生じた後でも、先頭セグメントを含むパケットを特定できるようにすること。
【解決手段】通信状態可視化装置40は、監視対象のコンピュータ10、20間を流れるパケットの複製をLANスイッチ30から受信する毎に、そのパケットの所属するTCPコネクションを特定し(ステップS131〜S135)、そのTCPコネクション内でのパケットロスの発生を確認する(ステップS141〜S143)。何れかのTCPコネクションにおいてパケットロスの発生を確認すると(ステップS143;いいえ)、その後、通信状態可視化装置40は、そのTCPコネクションに係るパケットを破棄し(ステップS144〜S149)、先頭のセグメントが含まれると推定し得るパケットを受信すると(ステップS191;いいえ)、メッセージの再組立を再開する(ステップS195、S105:オフ、S107)。
【選択図】図1

Description

技術分野は、所定のパケットを特定するためのプログラム、装置及び方法に、関する。
周知のように、IP[Internet Protocol]ネットワークを介して接続された複数のコ
ンピュータの間の通信状態を可視化するためのソフトウエアがある。このソフトウエアが導入されたコンピュータは、監視対象となる複数のコンピュータ間を流れるパケットの複製を受信して、受信したパケットの内容をそのまま表示する。また、このソフトウエアが導入されたコンピュータは、パケット内に記述されているプロトコルやアドレスに関する情報を利用者が理解しやすい形態に変換して表示したり、特定の条件に合致するパケットを抽出して統計的な処理を行って図やグラフを表示したりする。また、このソフトウエアが導入されたコンピュータは、受信したパケットに基づいてTCP[Transmission Control Protocol]コネクション確立シーケンスやメッセージの遣り取りをラダー表示するこ
ともある。ここで、メッセージとは、IPヘッダとTCPヘッダとを取り除いて残るセグメントを基に再組み立てを行って元の形に戻したもので、TCPより上位の通信レイヤの送信単位を言う。
なお、当該ソフトウエアが導入されたコンピュータは、複数のパケット内のセグメントを基にメッセージの再組み立てを行う際、メッセージを構成するメッセージヘッダにおける「メッセージ長」フィールドの値を先頭セグメントから読み出す。そして、当該ソフトウエアが導入されたコンピュータは、この読み出した値に基づいて、1個のメッセージの再組み立てを行うのに必要な全てのパケットを特定している。
ところで、監視対象となる複数のコンピュータ間を流れるパケットの複製の受信は、通常、LAN[Local Area Network]スイッチのポートミラーリング機能によって、実現される。ポートミラーリング機能は、特定の通信ポートを通過するパケットを複製し、それをミラーポートから送出するための機能である。前述したソフトウエアが導入されたコンピュータは、監視対象となる複数のコンピュータがともに接続されているLANスイッチのミラーポートに対し、接続されることとなる。
このLANスイッチでは、ミラーポートのスループット(単位時間当たりの処理能力)が限界を超えてしまうと、パケットロス(パケットの消失)が生じるようになる。また、複製された全てのパケットが、当該ソフトウエアが導入されたコンピュータに送り出されたとしても、そのコンピュータのリソース不足によってパケットロスが生じることもある。
このため、複数のパケット内のセグメントを基にメッセージの再組み立てを行う際に、「メッセージ長」フィールドを含む先頭パケットが、パケットロスにより失われてしまうと、その後に続くパケットのうち、どこからどこまでのパケットで1個のメッセージが完結するのか判らなくなる。そのため、メッセージの再組み立てが行えなくなるという問題があった。
特開2007−026303号公報
本明細書で開示するパケット特定プログラムは、前述したような従来技術の有する問題
点に鑑みてなされたものであり、その課題は、パケットロスが生じた後でも、先頭セグメントを含むパケットを特定できるようにすることにある。
前述の課題を解決するために案出されたパケット特定プログラムは、コンピュータを、パケットを順次受信する受信手段、その受信手段がパケットを受信する毎に、その受信されたパケットと同一コネクションにおいてそのパケットとその直前に受信されたパケットとの受信時間間隔を、取得する取得手段、その取得手段が取得した受信時間間隔が所定の閾値を超えた場合に、受信手段が受信したパケットを、1つのメッセージを構成する複数のセグメントのうちの先頭のセグメントが含まれるパケットとして特定する特定手段として機能させることを、特徴としている。
このように構成されると、コンピュータは、パケットを受信する毎に、そのパケットと同一のコネクションにおいてそのパケットとその直前に受信したパケットとの受信時間間隔が所定の閾値を超えるか否かを確認するよう、動作する。また、このコンピュータは、受信時間間隔が所定の閾値を超えると、受信したパケットを、先頭セグメントが含まれるパケットとして特定するよう、動作する。
従って、先に開示したパケット特定プログラムによれば、パケットロスが生じた後でも、先頭セグメントを含むパケットが特定できるようになる。
以下、添付図面を参照しながら、先に開示したパケット特定プログラムの実施形態であるコンピュータネットワークシステムについて、説明する。
《構成》
図1は、本実施形態のコンピュータネットワークシステムの構成図である。
本実施形態のコンピュータネットワークシステムは、第1及び第2のコンピュータ10、20、LAN[Local Area Network]スイッチ30、並びに、通信状態可視化装置40を、含んでいる。
第1及び第2のコンピュータ10、20は、何れも、相手側とパケットの遣り取りを行う機能を有する一般的なコンピュータである。ここで、パケットとは、通信モデルの1つであるTCP/IP[Transmission Control Protocol/Internet Protocol]モデルの中
のインターネットレイヤでの送信単位である。LANスイッチ30は、パケット伝送路のスイッチングを行う中継機器である。図1に示すように、LANスイッチ30には、第1及び第2のコンピュータ10、20がそれぞれ接続されている。通信状態可視化装置40は、複数のコンピュータが互いに遣り取りするパケットをLANスイッチ30を介して取得し、取得したパケットに基づいてその通信状態を可視化するための装置である。本実施形態では、第1及び第2のコンピュータ10、20が、通信状態可視化装置40の監視対象となっている。なお、図1では、通信状態可視化装置40の監視対象は、2台となっているが、3台以上であっても良い。
図2は、LANスイッチ30の構成図である。
LANスイッチ30は、通信ユニット30a、ROM[Read Only Memory]ユニット30b、CPU[Central Processing Unit]30c、及び、RAM[Random Access Memory]ユニット30dを、含んでいる。
通信ユニット30aは、コンピュータ又は中継機器とパケットの遣り取りを行うためのユニットである。通信ユニット30aは、複数の通信ポート31を備え、1つの通信ポート31からパケットが進入してくると、そのパケットの送り出し先として適切な通信ポート31を選択し、選択した通信ポート31からそのパケットを送出する。これら通信ポート31には、それぞれ、第1及び第2のコンピュータ10、20が接続されている。なお、図2では、2個の通信ポート31しか示していないが、通信ユニット30aは、3個以上の通信ポート31を備えていても良い。また、通信ユニット30aは、ポートミラーリング機能32を実現するための回路を内蔵している。ポートミラーリング機能32は、特定の通信ポート31を通過するパケットを複製し、複製したパケットをミラーポート33から送出するための機能である。本実施形態では、通信ユニット30aは、1個のミラーポート33を備え、ポートミラーリング機能32は、2個の通信ポート31から進入してくる全てのパケットを複製し、複製したパケットをミラーポート33から出力するようになっている。なお、複製元のパケットは、前述したように、適切な通信ポート31から送出される。本実施形態では、ミラーポート33には、通信状態可視化装置40が接続されている。
ROMユニット30bは、通信ユニット30aを制御するためのプログラムや各種の設定データが記録されているユニットである。CPU30cは、ROMユニット30b内のプログラムに従って処理を行うユニットである。RAMユニット30dは、CPU30cがプログラムやデータをキャッシュしたり作業領域を展開したりするためのユニットである。
図3は、通信状態可視化装置40の構成図である。
通信状態可視化装置40は、監視対象のコンピュータ10、20間の通信状態を可視化するための機能が附加されたコンピュータである。通信状態可視化装置40は、ディスプレイ等の出力デバイス40aと、キーボードやマウス等の操作デバイス40bと、これらデバイス40a、40bが接続された本体とからなる。本体は、ビデオ制御ユニット40c、入力制御ユニット40d、通信ユニット40e、ストレージユニット40f、CPU[Central Processing Unit]40g、及び、メインメモリユニット40hを、内蔵して
いる。
この通信状態可視化装置40は、ストレージユニット40fに、少なくとも、オペレーティングシステム41と、通信状態可視化部42とを、記憶している。
オペレーティングシステム41は、ソフトウエアとハードウエアの仲介、メモリ空間の管理、ファイル管理、プロセスやタスクの管理などを行う。また、オペレーティングシステム41は、通信ユニット40eの動作を制御するためのドライバ(図4の41a)を含んでいる。なお、オペレーティングシステム41には、図示せぬTCP/IPスイートが含まれていても良い。TCP/IPスイートは、通信ユニット40eを介して接続されている他のコンピュータのTCP/IPスイートと、TCP/IPに従ってパケットの遣り取りを行うためのプログラムである。但し、本実施形態では、オペレーティングシステム41に含まれるTCP/IPスイートは、使用されない。
図4は、通信状態可視化部42の構成図である。
通信状態可視化ソフトウエア42は、監視対象のコンピュータ10、20間の通信状態を可視化するための機能をコンピュータに附加するためのソフトウエアである。具体的には、通信状態可視化ソフトウエア42は、利用者からの求めに応じて、監視対象のコンピ
ュータ10、20間を流れるパケットの内容を表示する機能を有する。また、通信状態可視化ソフトウエア42は、パケット内に記述されているプロトコルやアドレスに関する情報を利用者が理解しやすい形態に変換して表示する機能、特定の条件に合致するパケットを抽出して統計的な処理を行って図やグラフを表する機能を有する。さらに、通信状態可視化ソフトウエア42は、受信したパケットに基づいてTCPコネクション確立シーケンスやメッセージの遣り取りをラダー表示する機能を、含んでいる。これらの機能を実現するため、通信状態可視化部42は、メッセージ再組立部42a、通信部42b、及び、通信状態解析部42cを、含んでいる。
メッセージ再組立部42aは、パケットからIPヘッダとTCPヘッダとを取り除いて残るセグメントを基にメッセージの再組み立てを行うための処理部である。ここで、メッセージは、前述したTCP/IPモデルにおいてトランスポートレイヤより上位の通信レイヤであるアプリケーションレイヤでの送信単位である。メッセージ再組立部42aは、図4に示すように、オペレーティングシステム41内のドライバ41aから、図示せぬTCP/IPスイートを介さずに、直接、パケットを受け取るようになっている。このメッセージ再組立プログラム42aが実行する処理の内容については、図10を用いて後述する。また、メッセージ再組立部42aは、さらに、受信部、取得部、及び、特定部を含む。受信部は、パケットを順次受信する処理部である。取得部は、パケットを受信する毎に、その受信されたパケットと同一コネクションにおいてそのパケットとそのパケットの直前に受信されたパケットとの受信時間間隔を、取得する処理部である。特定部は、取得した受信時間間隔が所定の閾値を超えた場合に、受信したパケットを、1つのメッセージを構成する複数のセグメントのうちの先頭のセグメントが含まれるパケットとして特定する処理部である。
通信部42bは、通信ユニット40eを介して接続されている他のコンピュータの通信アプリケーションと、アプリケーションレイヤに属する所定のプロトコルに従って、メッセージの遣り取りを行うための処理部である。本実施形態では、通信部42bは、メッセージ再組立部42aにより生成されたメッセージから、所定のプロトコルに従って、ヘッダを取り除いてデータを取り出すために、利用される。なお、所定のプロトコルとしては、HTTP[HyperText Transfer Protocol]、IIOP[Internet Inter-ORB Protocol](オブジェクトマネージメントグループの商標)、SMTP[Simple Mail Transfer Protocol]、FTP[File Transfer Protocol]などがある。
通信状態解析部42cは、監視対象となる複数のコンピュータ間の通信状態を可視化するために必要な情報を生成するための処理部である。より具体的には、通信状態解析部42cは、通信状態可視化部42が利用者に提供する図やグラフなどを生成するための統計的な処理を行う機能、及び、ラダー表示に必要なTCPコネクション確立シーケンスやメッセージの遣り取りを解析する機能を、含んでいる。これらの機能を実現するため、通信状態解析部42cは、オペレーティングシステム41内のドライバ41aからパケットを直接受け取れるようになっている。また、通信状態解析部42cは、メッセージ再組立部42a及び通信部42bからメッセージ及びデータを受け取れるようになっている。
《TCP/IP》
次に、メッセージ再組立部42aによる処理の内容を理解するのに必要な知識として、TCP/IPに係る一般的な処理の内容について説明する。
図5は、一般的なメッセージの再組み立てについての説明図である。
トランスポートレイヤ及びインターネットレイヤに属するTCP/IPスイートは、ネットワークインターフェースレイヤに属するドライバ(図4の41a)からパケットを受
け取ると、受け取ったパケットからIPヘッダ及びTCPヘッダを順に取り除く。そして、TCP/IPスイートは、残ったメッセージを、アプリケーションレイヤに属する通信アプリケーションに引き渡す。
また、TCP/IPスイートは、パケットが、メッセージを分割してできたセグメントにIPヘッダとTCPヘッダとを附加したものである場合には、複数のパケットのそれぞれからセグメントを取り出す。そして、TCP/IPスイートは、取り出したセグメントを基にメッセージの再組み立てを行い、メッセージをアプリケーションレイヤに引き渡す。例えば、図5に示すように、第1乃至第3のパケットが、それぞれ、1個のメッセージを3個に分割してできた第1乃至第3のセグメントを含むものである場合、TCP/IPスイートは、第1乃至第3のパケットのそれぞれから、TCPヘッダとIPヘッダとを取り除く。そして、TCP/IPスイートは、残りの第1乃至第3のセグメントを基に1個のメッセージの再組み立てを行い、再組み立てにより生成された1個のメッセージを、アプリケーションレイヤに属する通信アプリケーションに引き渡す。
なお、メッセージは、図6に示すように、ヘッダとメッセージ内容とからなり、ヘッダ内には、ヘッダ長を含まないメッセージ内容全体のサイズがメッセージ内容長として格納される「メッセージ内容長」フィールドを、有している場合が多い。例えば、IIOPメッセージでは、ヘッダ内の「message size」フィールドにメッセージ内容長が格納される。また、メッセージ全体のサイズであるメッセージ長は、ヘッダ長とメッセージ内容長とを合計することにより、求めることができる。アプリケーションレイヤからトランスポートレイヤ及びインターネットレイヤに引き渡されるメッセージは、メッセージ長が長い場合には、TCP/IPスイートによって幾つかのセグメントに分割される。メッセージが分割されているときには、メッセージ長は、先頭のセグメント(図5では、「第1のセグメント」)の内容から算出することができる。
図7は、IPヘッダフォーマットを示す図である。
図7に示すように、IPヘッダは、「ヘッダ長」、「全長」、「出所IPアドレス」及び「宛先IPアドレス」のフィールドを、含んでいる。なお、図7では、これら以外のフィールドには、斜線掛けが施されされているが、この斜線掛けが施されたフィールドについては、本実施形態では使用しないため、説明を省略する。「ヘッダ長」フィールドには、そのIPヘッダのサイズが格納され、「全長」フィールドには、IPヘッダを含むパケット全体のサイズが格納される。また、「出所IPアドレス」フィールドには、パケットの出所となるコンピュータのIPアドレスが格納され、「宛先IPアドレス」フィールドには、パケットの宛先となるコンピュータのIPアドレスが格納される。
図8は、TCPヘッダフォーマットを示す図である。
図8に示すように、TCPヘッダは、「出所ポート番号」、「宛先ポート番号」、「制御ビット」、「シーケンス番号」、「確認応答番号」及び「ヘッダ長」のフィールドを、含んでいる。なお、図8では、これら以外のフィールドには、斜線掛けが施されているが、この斜線掛けが施されたフィールドについては、本実施形態では使用しないため、説明を省略する。「出所ポート番号」フィールドには、パケットの出所となるコンピュータにおいて、パケット内のメッセージを作成した通信アプリケーションを特定するポート番号が格納される。「宛先ポート番号」フィールドには、パケットの宛先となるコンピュータにおいてパケット内のメッセージを利用する通信アプリケーションを特定するポート番号が格納される。「制御ビット」フィールドは、パケットの種類や特別な制御情報を示す6個の制御ビットが格納される。なお、6個の制御ビットは、それぞれ、URG[URGent]、ACK[ACKnowledge]、PSH[PuSH]、RST[ReSeT]、SYN[SYNchronize]
、及び、FIN[FINish]のフラグのオンオフを示すが、以下の説明では、ACK、SYN、FINのみ使用される。「シーケンス番号」フィールドには、パケットの送り側が受け側に1回のTCPコネクションで送信するデータの各バイトに順に割り当てたシーケンス番号のうち、そのパケット内のセグメントの先頭のバイトに割り当てられている番号が格納される。なお、シーケンス番号の初期値は、ランダムに決定されるようになっている。「確認応答番号」フィールドは、パケットが、TCPヘッダ内の制御ビットのACKフラグが立っているパケット(以下、ACKパケットと表記)である場合において、そのACKパケットの受け側が同じTCPコネクションにおいて次にパケットを送ってくるときに、そのパケット内のセグメントの先頭バイトのシーケンス番号として期待される値が、格納される。より具体的には、この値は、ACKパケットの送り側が同一のTCPコネクションにおいて受け側から先に受け取っていたパケットのシーケンス番号に対してそのパケットのセグメント長と1とを加えた値となっている。「ヘッダ長」フィールドには、TCPヘッダのサイズが格納される。
図9は、TCPコネクションのシーケンスの一例を示す図である。
TCPコネクションを通じてメッセージの送信を行おうとする送信側コンピュータは、まず、ランダムな初期値(図9の例では、1000)をシーケンス番号として決定する。続いて、送信側コンピュータは、TCPヘッダ内の制御ビットのSYNフラグが立ったパケット(以下、SYNパケットと表記)P1を生成し、TCPヘッダの「シーケンス番号」フィールド(図9ではSequenceと表記)に初期値を格納する。送信側コンピュータは、更に、TCPヘッダの「拡張情報」フィールドにおいてMSS[Maximum Segment Size](図9の例では、1460バイト)を指定し、このSYNパケットP1をメッセージ送信先となる受信側コンピュータへ送信する。
すると、受信側コンピュータは、TCPに従って、ランダムな初期値(図9の例では、9000)をシーケンス番号として決定する。続いて、受信側コンピュータは、TCPヘッダ内の制御ビットのSYNフラグとACKフラグとがともに立ったパケット(以下、(SYN+ACK)パケットと表記)P2を生成する。その後、受信側コンピュータは、送信側コンピュータがSYNパケットP1において指定したシーケンス番号に1を加えたもの(図8の例では、1001)を、TCPヘッダの「確認応答番号」フィールド(図9ではAck. No. と表記)に格納する。受信側コンピュータは、更に、この(SYN+ACK
)パケットP2の「拡張情報」フィールドにおいてMSS(図9の例では、1460バイト)を指定し、この(SYN+ACK)パケットP2を送信側コンピュータへ送信する。
これを受けて、送信側コンピュータは、ACKパケットP3を生成し、受信側コンピュータが(SYN+ACK)パケットP2において指定した確認応答番号と同じもの(図9の例では、1001)を、TCPヘッダの「シーケンス番号」フィールドに格納する。送信側コンピュータは、更に、受信側コンピュータが(SYN+ACK)パケットP2において指定したシーケンス番号に1を加えたもの(図9の例では、9001)を、TCPヘッダの「確認応答番号」フィールドに格納し、このACKパケットP3を受信側コンピュータに送信する。
以上に示したSYNパケットP1と(SYN+ACK)パケットP2とACKパケットP3との遣り取り(スリーウエイハンドシェイク)により、送信側コンピュータと受信側コンピュータとのTCPコネクションが確立する。
その後、例えば、3500バイトのメッセージが送信される場合、送信側コンピュータは、そのメッセージの先頭バイトからMSS(1460バイト)分を第1のセグメントとして切り出し、切り出した1460バイトの第1のセグメントを含むパケットP4を生成
する。続いて、送信側コンピュータは、このパケットP4の「シーケンス番号」フィールドに、受信側コンピュータが(SYN+ACK)パケットP3において指定した確認応答番号と同じ1001を格納する。そして、送信側コンピュータは、パケットP4の「確認応答番号」フィールドに、その(SYN+ACK)パケットP3のシーケンス番号と同じ9001を格納して、パケットP4を受信側コンピュータに送信する。受信側コンピュータは、このパケットP4の受信により第1のセグメントを取得し、ACKパケットP5を生成する。その後、受信側コンピュータは、ACKパケットP5の「シーケンス番号」フィールドに、パケットP4の確認応答番号と同じ9001を格納する。更に、受信側コンピュータは、ACKパケットP5の「確認応答番号」フィールドに、パケットP4のシーケンス番号に第1のセグメント全体のバイト数(1460)と1とを加えた2461を、次に受信するパケットのシーケンス番号として期待される値として格納し、ACKパケットP5を送信側コンピュータに送信する。
また、送信側コンピュータは、送信すべき3500バイトのメッセージのうち、1461バイト目からMSS(1460バイト)分を、第2のセグメントとして切り出し、切り出した1460バイトの第2のセグメントを含むパケットP6を生成する。続いて、送信側コンピュータは、このパケットP6の「シーケンス番号」フィールドに、直前に送ったパケットP4において指定したシーケンス番号にパケットP4内の第1のセグメント全体のバイト数を加えた2461を格納する。そして、送信側コンピュータは、パケットP6の「確認応答番号」フィールドに、パケットP4と同じ9001を格納して、パケットP6を受信側コンピュータに送信する。受信側コンピュータは、このパケットP6の受信により第2のセグメントを取得し、ACKパケットP7を生成する。その後、受信側コンピュータは、ACKパケットP7の「シーケンス番号」フィールドに、パケットP6の確認応答番号と同じ9001を格納する。更に、受信側コンピュータは、ACKパケットP7の「確認応答番号」フィールドに、パケットP6のシーケンス番号に第2のセグメント全体のバイト数と1とを加えた3921を、次に受信するパケットのシーケンス番号として期待される値として格納し、ACKパケットP7を送信側コンピュータに送信する。
更に、送信側コンピュータは、送信すべき3500バイトのメッセージのうち、2921バイト目以降の580バイトを、第3のセグメントとし、580バイトの第3セグメントを含むパケットP8を生成する。続いて、送信側コンピュータは、このパケットP8の「シーケンス番号」フィールドに、直前に送ったパケットP6において指定したシーケンス番号にパケットP6内の第2のセグメント全体のバイト数を加えた3921を格納する。そして、送信側コンピュータは、パケットP8の「確認応答番号」フィールドに、パケットP6と同じ9001を格納して、パケットP8を受信側コンピュータに送信する。受信側コンピュータは、このパケットP8の受信により第3のセグメントを取得し、ACKパケットP9を生成する。その後、受信側コンピュータは、ACKパケットP9の「シーケンス番号」フィールドに、パケットP8の確認応答番号と同じ9001を格納する。更に、受信側コンピュータは、ACKパケットP9の「確認応答番号」フィールドに、パケットP8のシーケンス番号に第3のセグメント全体のバイト数と1とを加えた4501を、次に受信するパケットのシーケンス番号として期待される値として格納する。そして、受信側コンピュータは、ACKパケットP9を送信側コンピュータに送信する。
なお、TCPコネクションの切断に関しては、TCPヘッダ内の制御ビットのFINフラグが立ったパケットとACKパケットとの遣り取りが行われることとなるが、この説明は省略する。
TCPコネクションの確立後、以上に示したようにしてメッセージが送信側コンピュータから受信側コンピュータに送信される。このとき、送信側コンピュータが送信するパケットP4、P6、P8のシーケンス番号に着目してみると、パケットP4、P6、P8で
送信するセグメントのサイズをそのACKパケットのシーケンス番号に加算して得られる値が、次のACKパケットのシーケンス番号とされる。従って、受信側コンピュータにとってみれば、受信したパケットのシーケンス番号とセグメント長とが分かっていれば、次に受信すべきパケットのシーケンス番号が分かることとなる。また、受信したパケットのシーケンス番号が、その直前に受信したパケットのシーケンス番号とセグメント長とを足し合わせたものに一致しない場合には、受信側コンピュータは、パケットロスが発生したことが分かることとなる。後述のステップS141乃至S143は、この技術を利用したものである。
以上を踏まえて、メッセージ再組立部42aによる処理の内容について、説明する。
《処理》
図10は、メッセージ再組立処理の流れを示す図である。
メッセージ再組立処理の開始後、最初のステップS101では、メッセージ再組立部42aは、レコードが1つも存在していない新規のワークテーブルを1個生成する。このワークテーブルは、通信状態可視化装置40の監視対象の間において確立される複数のTCPコネクションに関する情報を記録するためのテーブルである。
図11は、ワークテーブル51を模式的に示す図である。
ワークテーブル51の各レコードは、「出所IPアドレス」、「宛先IPアドレス」、「出所ポート番号」、「宛先ポート番号」、「受信時刻」、「シーケンス番号」、「セグメント長」、「パケットロス」及び「残りメッセージ長」のフィールドを、有している。「出所IPアドレス」及び「宛先IPアドレス」の各フィールドは、パケットのIPヘッダ(図7参照)に格納されている出所IPアドレス及び宛先IPアドレスがそれぞれ記録されるフィールドである。「出所ポート番号」及び「宛先ポート番号」の各フィールドは、パケットのTCPヘッダ(図8参照)に格納されている出所ポート番号及び宛先ポート番号がそれぞれ記録されるフィールドである。「受信時刻」フィールドは、監視対象のコンピュータ10、20間を流れるパケットの複製をLANスイッチ30から通信状態可視化装置40が受信した時刻が記録されるフィールドである。「シーケンス番号」フィールドは、パケットのTCPヘッダに格納されているシーケンス番号が記録されるフィールドである。「セグメント長」フィールドは、パケットからIPヘッダとTCPヘッダとを取り除いた残りのセグメント全体のサイズが記録されるフィールドである。「パケットロス」フィールドは、出所IPアドレス、宛先IPアドレス、出所ポート番号、及び、宛先ポート番号の組み合わせにより特定されるTCPコネクションにおいてパケットロスが発生したか否かを示すパケットロスフラグが記録されるフィールドである。なお、本実施形態では、TCPコネクションにおいてパケットロスが発生すると、後述の判定処理部が、パケットロスフラグを「0」から「1」に切り替える。「残りメッセージ長」フィールドは、そのTCPコネクションにおいて送信されるメッセージのうちの未送信部分のサイズが残りメッセージ長として記録されるフィールドである。
メッセージ再組立部42aは、図11に示すようなフィールド構成を有する新規なワークテーブル51を生成すると、図10のステップS102へ処理を進める。
ステップS102では、メッセージ再組立部42aは、新規の度数テーブルを2個生成する。ここで生成される2個の度数テーブルは、何れも、同一のTCPコネクションにおいて連続して受信されたパケット同士の受信時間間隔についての度数分布を記録するためのテーブルである。受信時間間隔は、連続変量であるため、度数分布は、その受信時間間隔が採り得る時間の範囲を均等分割して複数の階級(区間)を設定し、各階級に属する受
信時間間隔の度数(個数)を数え上げることにより、得られる。なお、1個目の度数テーブルは、同一のTCPコネクションにおいて連続して受信された2個のパケットの中のセグメント同士がともに同一のメッセージを構成する場合におけるそれら2個のパケットの受信時間間隔の度数分布(第1の度数分布)を記録するためのテーブルである。以下、1個目の度数テーブルを、セグメント度数テーブル52と表記する。2個目の度数テーブルは、同一のTCPコネクションにおいて連続して受信された2個のパケットの中のセグメント同士が互いに異なるメッセージを構成する場合におけるそれら2個のパケットの受信時間間隔の度数分布(第2の度数分布)を記録するためのテーブルである。以下、2個目の度数テーブルを、メッセージ度数テーブル53と表記する。セグメント度数テーブル52は、全体の度数分布を得るためのものであるため、複数のTCPコネクションに対して、1個生成される。同様に、メッセージ度数テーブル53も、複数のTCPコネクションに対して、1個生成される。
図12は、度数テーブル52(53)を模式的に示す図である。
度数テーブル52(53)は、事前に設定された階級の個数と同数のレコードを、有している。図12には、0.00msecから0.25msecまでの範囲を25等分することによって0.01msecの時間幅を持つ複数の階級(区間)が設定された場合の例が、示されている。本実施形態では、受信時間間隔についての度数分布を得るために設定される階級は、何れの度数テーブル52(53)でも同じである。従って、セグメント度数テーブル52とメッセージ度数テーブル53は、互いに同じレコード数を有することになる。図12に示すように、度数テーブル52(53)の各レコードは、「階級」及び「度数」のフィールドを、有している。「階級」フィールドは、その階級(区間)を特定する情報が格納されるフィールドである。図12では、「0.00002sec - 0.00003sec」のように、その階級(区間)の
始点の時間と終点の時間とが、「階級」フィールドに格納されている。「度数」フィールドは、その階級に属する受信時間間隔の度数(個数)が格納されるフィールドである。なお、度数テーブル52(53)が生成された直後においては、「度数」フィールドの値は、どのレコードとも、初期値である「0」となっている。
メッセージ再組立部42aは、図12に示すようなフィールド構成を有する2個の新規な度数テーブル52(53)を生成すると、図10のステップS103へ処理を進める。
ステップS103では、メッセージ再組立部42aは、パケット受信サブルーチンを呼び出して実行する。パケット受信サブルーチンは、パケットを順次受信するための受信部である。
図13は、パケット受信サブルーチンの流れを示す図である。
パケット受信サブルーチンの開始後、最初のステップS131では、受信部は、LANスイッチ30のポートミラーリング機能32が複製したパケットを受信するまで、待機する(ステップS131;いいえ)。そして、パケットを受信すると(ステップS103;はい)、受信部は、ステップS132へ処理を進める。
ステップS132では、受信部は、ステップS131でパケットを受信した時刻を、取得する。
次のステップS133では、受信部は、ステップS131で受信したパケットのIPヘッダとTCPヘッダとからコネクション特定情報を取得する。コネクション特定情報は、出所IPアドレス、宛先IPアドレス、出所ポート番号、及び、宛先ポート番号からなる情報である。受信部は、コネクション特定情報を取得すると、ステップS134へ処理を
進める。
ステップS134では、受信部は、ステップS134で取得したコネクション特定情報を検索条件として、図11のワークテーブル51を検索する。
次のステップS135では、受信部は、ステップS134での検索により、検索条件を満たすレコードが図15のワークテーブル51から検出できたか否かを、判別する。そして、検索条件を満たすレコードが図15のワークテーブル51から検出できなかった場合(ステップS135;いいえ)、受信部は、ステップS135からステップS136へ処理を分岐させる。
ステップS136では、受信部は、ステップS131で受信したパケットのTCPヘッダからシーケンス番号を取得する。また、受信部は、当該パケットのIPヘッダから全長とヘッダ長を取得するとともに、TCPヘッダからヘッダ長を取得し、全長から両方のヘッダ長を差し引くことによって、セグメント長を取得する。
次のステップS137では、受信部は、ステップS131で受信したパケットからIPヘッダとTCPヘッダとを取り除き、残りのセグメントを、セグメントを格納するために用意されている所定のバッファに、格納する。
次のステップS138では、受信部は、ステップS137で所定のバッファに格納したセグメントに含まれるメッセージヘッダを読み出し、読み出したメッセージヘッダの内容に基づいてメッセージ長を取得する。なお、アプリケーションレイヤのプロトコルによっては、メッセージヘッダに、メッセージ全体のサイズが格納されている。この場合、受信部は、メッセージヘッダからメッセージ全体のサイズを読み出すことにより、メッセージ長を取得することとなる。また、プロトコルによっては、メッセージヘッダに、メッセージ内容長とメッセージヘッダ長とが格納されている。この場合、受信部は、メッセージヘッダからメッセージ内容長とメッセージヘッダ長とを読み出し、これらを合算することによって、メッセージ長を取得することとなる。また、プロトコルによっては、メッセージ長が固定である。この場合、受信部は、そのメッセージ長をそのまま利用することとなる。
次のステップS139では、受信部は、図11のワークテーブル51に、ステップS132で取得した受信時刻、ステップS133で取得したコネクション特定情報、ステップS136で取得したシーケンス番号及びセグメント長、並びに、ステップS138で取得したメッセージ長を含むレコードを、追加する。なお、ステップS138で取得したメッセージ長は、「残りメッセージ長」フィールドに、残りメッセージ長として格納される。また、ここで追加されるレコードの「パケットロス」フィールドの値(パケットロスフラグ)は、「0(オフ)」となっている。受信部は、レコードの追加を終えると、ステップS131へ処理を戻し、LANスイッチ30のポートミラーリング機能32が複製したパケットを受信するまで待機する状態に戻る。
一方、ステップS135での検索により、検索条件を満たすレコードが図11のワークテーブル51から検出できた場合(ステップS135;はい)、受信部は、図13に係るパケット受信サブルーチンを終了させる。
パケット受信サブルーチンが終了すると、メッセージ再組立部42aは、図10のメッセージ再組立処理に復帰し、ステップS104へ処理を進める。
ステップS104では、メッセージ再組立部42aは、パケットロス判定サブルーチン
を呼び出して実行する。パケットロス判定サブルーチンは、受信したパケットと同一のTCPコネクションにおいてパケットロスが発生したか否かを判定するための判定部である。
図14は、パケットロス判定サブルーチンの流れを示す図である。
パケットロス判定サブルーチンの開始後、最初のステップS141では、判定部は、図13のステップS131で受信したパケットのTCPヘッダからシーケンス番号を取得する。
次のステップS142では、判定部は、図13のステップS134での検索により検出されたレコードからシーケンス番号とセグメント長とを読み出す。なお、ここで読み出されるシーケンス番号とセグメント長は、図13のステップS131で受信したパケットと同一のTCPコネクションにおいてそのパケットの直前に受信されたパケットに関するものである。続いて、判定部は、読み出したシーケンス番号とセグメント長とを合算することにより、合計値を取得する(図9参照)。
次のステップS143では、判定部は、ステップS141で取得したシーケンス番号とステップS142で取得した合計値とが一致するか否かを、判別する。なお、前述したように、このステップS143は、パケットロスが発生したか否かを判別する処理である。そして、ステップS141で取得したシーケンス番号とステップS142で取得した合計値とが一致していなかった場合(ステップS143;いいえ)、判定部は、パケットロスが発生したとして、ステップS143からステップS144へ処理を分岐させる。
ステップS144では、判定部は、図13のステップS134での検索により検出されたレコードの「パケットロス」フィールドの値(パケットロスフラグ)を、「0(オフ)」から「1(オン)」に切り替える。
次のステップS145では、判定部は、図13のステップS134での検索により検出されたレコードの「残りメッセージ長」フィールドの値(残りメッセージ長)をクリアする。
次のステップS146では、判定部は、通信アプリケーション(図4の42b)に引き渡すべきメッセージを構成する全てのセグメントの受信が完了していないものの、所定のバッファをクリアする。
次のステップS147では、判定部は、図13のステップS131で受信したパケットのIPヘッダから全長とヘッダ長を取得するとともに、TCPヘッダからヘッダ長を取得し、全長から両方のヘッダ長を差し引くことによって、セグメント長を取得する。
次のステップS148では、判定部は、図13のステップS134での検索により検出されたレコードの「受信時刻」、「シーケンス番号」及び「セグメント長」の各フィールドの値に、図13のステップS132で取得した受信時刻、ステップS141で取得したシーケンス番号、及び、ステップS147で取得したセグメント長をそれぞれ上書きすることにより、当該レコードを更新する。
次のステップS149では、判定部は、図13のステップS131で受信したパケット内のセグメントを所定のバッファに格納することなく、そのパケットを破棄する。その後、判定部は、図14のパケットロス判定サブルーチンを離脱する。すると、CPU40gは、図10のメッセージ再組立処理に復帰し、ステップS103へ処理を戻す。
一方、ステップS141で取得したシーケンス番号とステップS142で取得した合計値とが一致していた場合(ステップS143;はい)、判定部は、パケットロスが発生していなかったとして、図14に係るパケットロス判定サブルーチンを終了させる。
パケットロス判定サブルーチンが終了すると、CPU40gは、図10のメッセージ再組立処理に復帰し、ステップS105へ処理を進める。
ステップS105では、CPU40gは、図13のステップS134での検索により検出されたレコードの「パケットロス」フィールドの値(パケットロスフラグ)が「0(オフ)」であるか「1(オン)」であるかを、判別する。そして、図13のステップS134での検索により検出されたレコードの「パケットロス」フィールドの値(パケットロスフラグ)が「0(オフ)」であった場合、CPU40gは、図13のステップS131で受信したパケットと同一のTCPコネクションにおいてパケットロスが発生していないとして、ステップS105からステップS106へ処理を進める。
ステップS106では、メッセージ再組立部42aは、度数テーブル更新サブルーチンを呼び出して実行する。度数テーブル更新サブルーチンは、図13のステップS131で受信したパケットと同一のTCPコネクションにおいてそのパケットとそのパケットの直前に受信されたパケットとの受信時間間隔に基づいて、セグメント度数テーブル52又はメッセージ度数テーブル53を更新するための処理部である。
図15は、度数テーブル更新サブルーチンの流れを示す図である。
ステップS161では、度数テーブル更新部は、図13のステップS131で受信したパケットと同一のTCPコネクションにおいて前回パケットを受信した時から今回パケットを受信したときまでの受信時間間隔を、直前の受信時間間隔として、取得する。具体的には、度数テーブル更新部は、まず、図13のステップS134での検索により検出されたレコードの「受信時刻」フィールドから、同一のTCPコネクションにおいて前回受信したパケットの受信時刻を読み出す。続いて、CPU40gは、図13のステップS132で取得した受信時刻から、前回の受信時刻を差し引くことにより、受信時間間隔を取得する。
次のステップS162では、度数テーブル更新部は、図13のステップS134での検索により検出されたレコードの「残りメッセージ長」フィールドの値(残りメッセージ長)を、取得する。
次のステップS163では、度数テーブル更新部は、ステップS162で取得した残りメッセージ長がゼロであるか否かを、判別する。そして、ステップS162で取得した残りメッセージ長がゼロでなかった場合(ステップS163;いいえ)、度数テーブル更新部は、図13のステップS131で受信したパケットの中のセグメントが、同一のTCPコネクションにおいて直前に受信されたパケット内のセグメントと同じメッセージを構成しているとして、ステップS163からステップS164へ処理を分岐させる。
ステップS164では、度数テーブル更新部は、図12のセグメント度数テーブル52において、ステップS161で取得した受信時間間隔が属する階級を特定し、その階級の度数を、1つ増やす。その後、度数テーブル更新部は、ステップS166へ処理を進める。
一方、ステップS162で取得した残りメッセージ長がゼロであった場合(ステップS
163;はい)、度数テーブル更新部は、図13のステップS131で受信したパケットの中のセグメントが、同一のTCPコネクションにおいて直前に受信されたパケット内のセグメントとは異なるメッセージを構成しているとして、ステップS163からステップS165へ処理を分岐させる。
ステップS165では、度数テーブル更新部は、図12のメッセージ度数テーブル53において、ステップS161で取得した受信時間間隔が属する階級を特定し、その階級の度数を、1つ増やす。その後、度数テーブル更新部は、ステップS166へ処理を進める。
ステップS166では、度数テーブル更新部は、閾値更新サブルーチンを呼び出して実行する。閾値更新サブルーチンは、セグメント度数テーブル52とメッセージ度数テーブル53とに基づいて閾値を更新するための処理部である。ここで、閾値とは、メッセージの先頭部分となるセグメントが含まれたパケットを他のパケットの中から特定するために後述のステップS109(図10)において用いられるものである。
図16及び図17は、閾値更新サブルーチンの流れを示す図である。
ステップS601では、閾値更新部は、図12のセグメント度数テーブル52において、度数が1以上の階級のうち、階級値が最大の階級を特定し、その階級値を取得する。ここで階級値は、本実施形態においては、その階級(区間)の始点の時間と終点の時間との平均値となっている。例えば、階級が「0.00002sec - 0.00003sec」である場合には、階
級値は0.000025secである。なお、ここで取得された階級値は、セグメント度数テーブル
52の内容(第1の度数分布)に基づくグラフであるヒストグラムにおける最大階級値となる。以下、このヒストグラムを、セグメント間隔ヒストグラムと表記する。
次のステップS602では、閾値更新部は、図12のメッセージ度数テーブル53において、度数が1以上の階級のうち、階級値が最小の階級を特定し、その階級値を取得する。なお、ここで取得された階級値は、メッセージ度数テーブル53の内容(第2の度数分布)に基づくグラフであるヒストグラムにおける最小階級値となる。以下、このヒストグラムを、メッセージ間隔ヒストグラムと表記する。
次のステップS603では、閾値更新部は、ステップS601で特定した最大階級値が、ステップS602で特定した最小階級値以下であるか否かを、判別する。そして、ステップS601で特定した最大階級値が、ステップS602で特定した最小階級値以下であった場合(ステップS603;はい)、閾値更新部は、セグメント間隔ヒストグラムとメッセージ間隔ヒストグラムとをそれぞれ線グラフで表した場合の交点が存在しないとして、ステップS603からステップS604へ処理を進める。
ステップS604では、閾値更新部は、ステップS601で特定した最大階級値とステップS602で特定した最小階級値との中間値を算出する。そして、閾値更新部は、後述のステップS109(図10)において用いられる閾値がその中間値と同じ値となるよう変更することにより、閾値を更新する。その後、閾値更新部は、図16及び図17に係る閾値更新サブルーチンを終了する。
一方、ステップS601で特定した最大階級値が、ステップS602で特定した最小階級値を上回っていた場合(ステップS603;いいえ)、閾値更新部は、セグメント間隔ヒストグラムとメッセージ間隔ヒストグラムとをそれぞれ線グラフで表した場合の交点が存在するとして、ステップS603から処理を分岐させ、図17の第1の処理ループL1を実行する。
第1の処理ループL1では、閾値更新部は、2個の度数テーブル52、53に設定されている全ての階級を1つずつ順に処理対象として特定しながら、処理対象として特定した1つの階級について、ステップS605乃至S607からなる処理を実行する。
ステップS605では、閾値更新部は、図12のセグメント度数テーブル52における処理対象階級のレコード内の度数を、変数Xに代入する。
次のステップS606では、閾値更新部は、図12のメッセージ度数テーブル53における処理対象階級のレコード内の度数を、変数Yに代入する。
次のステップS607では、閾値更新部は、変数Xの代入値が変数Yの代入値を上回っているか否かを、判別する。そして、変数Xの代入値が変数Yの代入値を上回っていた場合、閾値更新部は、横軸に階級値を持ち縦軸に度数を持つ座標系においてセグメント間隔ヒストグラムとメッセージ間隔ヒストグラムとをそれぞれ線グラフで表した場合の交点の階級値軸の座標値が、処理対象階級の階級値より大きいとして、第1の処理ループL1におけるこの処理対象の回を終了する。
閾値更新部は、2個の度数テーブル52、53に設定されている全ての階級について、ステップS605乃至S607からなる処理を実行し終えると、第1の処理ループL1から離脱し、図16及び図17に係る閾値更新サブルーチンを終了させる。
一方、何れかの階級が第1の処理ループL1の処理対象として特定されている場合に、変数Xの代入値が変数Yの代入値以下となったときには(ステップS607;いいえ)、閾値更新部は、横軸に階級値を持ち縦軸に度数を持つ座標系においてセグメント間隔ヒストグラムとメッセージ間隔ヒストグラムとをそれぞれ線グラフで表した場合の交点の階級値軸の座標値が、処理対象階級の階級値以下になったとして、ステップS607から処理を分岐させることによって、第1の処理ループL1から離脱する。閾値更新部は、第1の処理ループL1から離脱すると、ステップS608へ処理を進める。
ステップS608では、閾値更新部は、後述のステップS109(図10)において用いられる閾値が処理対象階級の階級値と同じ値となるよう変更することにより、閾値を更新する。その後、閾値更新部は、図16及び図17に係る閾値更新サブルーチンを終了させる。
閾値更新サブルーチンが終了すると、度数テーブル更新部は、図15の度数テーブル更新サブルーチンに復帰し、この度数テーブル更新サブルーチンを終了させる。
度数テーブル更新サブルーチンが終了すると、メッセージ再組立部42aは、図10のメッセージ再組立処理に復帰し、ステップS107へ処理を進める。
ステップS107では、メッセージ再組立部42aは、メッセージ処理サブルーチンを呼び出して実行する。メッセージ処理サブルーチンは、通信部(図4の42b)に引き渡すべきメッセージを構成する全てのセグメントを受信し終えていた場合に、メッセージを生成して通信部に引き渡すための処理部である。
図18は、メッセージ処理サブルーチンの流れを示す図である。
ステップS171では、メッセージ処理部は、図13のステップS131で受信したパケットのIPヘッダから全長とヘッダ長を取得するとともに、TCPヘッダからヘッダ長
を取得し、全長から両方のヘッダ長を差し引くことによって、セグメント長を取得する。
次のステップS172では、メッセージ処理部は、図13のステップS131で受信したパケットからIPヘッダとTCPヘッダとを取り除き、残りのセグメントを、セグメントを格納するために用意されている所定のバッファに、格納する。
次のステップS173では、メッセージ処理部は、図13のステップS134での検索により検出されたレコードの「受信時刻」、「シーケンス番号」及び「セグメント長」の各フィールドの値に、図13のステップS132で取得した受信時刻、図14のステップS141で取得したシーケンス番号、及び、ステップS173で取得したセグメント長をそれぞれ上書きすることにより、当該レコードを更新する。
次のステップS174では、メッセージ処理部は、図13のステップS134での検索により検出されたレコードの「残りメッセージ長」フィールドの値から、ステップS172で取得したセグメント長を差し引いて得られる値を算出し、算出した値を当該フィールドの値に上書きすることにより、残りメッセージ長を更新する。
次のステップS175では、メッセージ処理部は、ステップS174での更新の結果、残りメッセージ長が0となったか否かを、判別する。そして、ステップS174での更新の結果、残りメッセージ長が0とならなかった場合、メッセージ処理部は、通信アプリケーション(図4の42b)に引き渡すべきメッセージを構成する全てのセグメントを受信し終えていないとして、ステップS175から処理を分岐させ、図18に係るメッセージ処理サブルーチンを終了させる。一方、ステップS174での更新の結果、残りメッセージ長が0となった場合、メッセージ処理部は、ステップS175からステップS176へ処理を進める。
ステップS176では、メッセージ処理部は、所定のバッファに格納されている全てのセグメントに基づいてメッセージの再組立を行う。
次のステップS177では、メッセージ処理部は、ステップS176での再組立により生成されたメッセージを通信部(図4の42b)に引き渡す。
次のステップS178では、メッセージ処理部は、次のメッセージの受信に備えるため、所定のバッファをクリアする。その後、図18に係るメッセージ処理サブルーチンを終了させる。
メッセージ処理サブルーチンが終了すると、メッセージ再組立部42aは、図10のメッセージ再組立処理に復帰し、ステップS103へ処理を戻す。
一方、図13のステップS134での検索により検出されたレコードの「パケットロス」フィールドの値(パケットロスフラグ)が「1(オン)」であった場合(ステップS105;いいえ)、メッセージ再組立部42aは、図13のステップS131で受信したパケットと同一のTCPコネクションにおいてパケットロスの発生の影響によりメッセージの再組立が不能な状態にあるとして、ステップS105からステップS108へ処理を進める。
ステップS108では、取得部は、図13のステップS131で受信したパケットと同一のTCPコネクションにおいて前回パケットを受信した時から今回パケットを受信したときまでの受信時間間隔を、直前の受信時間間隔として、取得する。具体的には、取得部は、まず、図13のステップS134での検索により検出されたレコードの「受信時刻」
フィールドから、同一のTCPコネクションにおいて前回受信したパケットの受信時刻を読み出す。続いて、取得部は、図13のステップS132で取得した受信時刻から、前回の受信時刻を差し引くことにより、受信時間間隔を取得する。
次のステップS109では、取得部は、先頭特定サブルーチンを呼び出して実行する。先頭特定サブルーチンは、順次受信するパケットの中から、1つのメッセージを構成する複数のセグメントのうちの先頭のセグメントが含まれるパケットを特定するための処理部(以下、特定部という)である。
図19は、先頭特定判定サブルーチンの流れを示す図である。
ステップS191では、特定部は、図10のステップS108で取得した受信時間間隔が、図16のステップS604又は図17のステップS608により求められている閾値以下であるか否かを、判別する。そして、図10のステップS108で取得した受信時間間隔が、図16のステップS604又は図17のステップS608により求められている閾値以下であった場合(ステップS191;はい)、特定部は、図13のステップS131で受信したパケットがメッセージの先頭セグメントを含むものではないとして、ステップS191からステップS192へ処理を進める。
ステップS192では、特定部は、図13のステップS131で受信したパケットのIPヘッダから全長とヘッダ長を取得するとともに、TCPヘッダからヘッダ長を取得し、全長から両方のヘッダ長を差し引くことによって、セグメント長を取得する。
次のステップS193では、特定部は、図13のステップS134での検索により検出されたレコードの「受信時刻」、「シーケンス番号」及び「セグメント長」の各フィールドの値に、図13のステップS132で取得した受信時刻、図14のステップS141で取得したシーケンス番号、及び、ステップS192で取得したセグメント長をそれぞれ上書きすることにより、当該レコードを更新する。
次のステップS194では、特定部は、図13のステップS131で受信したパケット内のセグメントを所定のバッファに格納することなく、そのパケットを破棄する。その後、特定部は、図19に係る先頭特定サブルーチンを終了させる。
一方、図10のステップS108で取得した受信時間間隔が、図16のステップS604又は図17のステップS608により求められている閾値を上回っていた場合(ステップS191;いいえ)、特定部は、図13のステップS131で受信したパケットがメッセージの先頭セグメントを含むものであるとして、ステップS191からステップS195へ処理を分岐させる。
ステップS195では、特定部は、図13のステップS134での検索により検出されたレコードの「パケットロス」フィールドの値(パケットロスフラグ)を、「1(オン)」から「0(オフ)」に切り替える。
次のステップS196では、特定部は、図13のステップS131で受信したパケットのIPヘッダから全長とヘッダ長を取得するとともに、TCPヘッダからヘッダ長を取得し、全長から両方のヘッダ長を差し引くことによって、セグメント長を取得する。
次のステップS197では、特定部は、図13のステップS131で受信したパケットからIPヘッダとTCPヘッダとを取り除き、残りのセグメントを所定のバッファに格納する。
次のステップS198では、特定部は、ステップS197でバッファに格納したセグメントに含まれるメッセージヘッダを読み出し、読み出したメッセージヘッダの内容に基づいてメッセージ長を取得する。前述したように、アプリケーションレイヤのプロトコルが、メッセージヘッダにメッセージ全体のサイズが格納されるプロトコルである場合、特定部は、メッセージヘッダからメッセージ全体のサイズを読み出す。また、アプリケーションレイヤのプロトコルが、メッセージヘッダにメッセージ内容長とメッセージヘッダ長とが格納されるプロトコルである場合、特定部は、メッセージヘッダからメッセージ内容長とメッセージヘッダ長とを読み出し、これらを合算する。また、アプリケーションレイヤのプロトコルが、メッセージ長が固定であるプロトコルである場合、特定部は、そのメッセージ長をそのまま利用する。
次のステップS199では、特定部は、図13のステップS134での検索により検出されたレコードの「受信時刻」、「シーケンス番号」、「セグメント長」及び「残りメッセージ長」の各フィールドの値に、図13のステップS132で取得した受信時刻、図14のステップS141で取得したシーケンス番号、ステップS196で取得したセグメント長、ステップS198で取得したメッセージ長をそれぞれ上書きすることにより、当該レコードを更新する。なお、ステップS198で取得したメッセージ長は、「残りメッセージ長」フィールドに、残りメッセージ長として上書きされる。また、この時点では、ステップS195を経ているため、「パケットロス」フィールドの値(パケットロスフラグ)は、「0(オフ)」となっている。特定部は、レコードの更新を終えると、図19に係る先頭特定サブルーチンを終了させる。
先頭特定サブルーチンが終了すると、メッセージ再組立部42aは、図10のステップS103へ処理を戻す。
《作用効果》
本実施形態の通信状態可視化装置40は、通信状態可視化部42が起動されている状態では、監視対象のコンピュータ10、20間を流れるパケットの複製をLANスイッチ30から受信する毎に、そのパケットの所属するTCPコネクションを特定し、そのTCPコネクション内でのパケットロスの発生を確認する。
そして、何れかのTCPコネクションにおいてパケットロスの発生を確認すると、通信状態可視化装置40は、メッセージを構成するセグメントのうちの先頭のセグメントが含まれると見積もられるパケットを受信するまで、そのTCPコネクションに係るパケットを破棄し、先頭のセグメントが含まれると推定し得るパケットを受信すると、メッセージの再組立を再開することとなる。
このように、本実施形態の通信状態可視化装置40によれば、パケットロスが生じた後でも、先頭セグメントを含むパケットが特定できるようになり、メッセージの再組み立てが行えるようになる。
なお、メッセージを構成するセグメントのうちの先頭のセグメントがパケットに含まれるか否かは、そのパケットと同一コネクションにおいてそのパケットとその直前に受信されたパケットとの受信時間間隔が所定の閾値を超えるか否かに基づいて、判別される。その閾値は、受信時間間隔の統計に基づいて更新されている。
具体的には、通信状態可視化装置40は、同一のメッセージに所属するセグメントを含み連続して受信された一対のパケットの受信時間間隔についてのセグメント度数テーブル52、又は、異なるメッセージに所属するセグメントを含み連続して受信された一対のパ
ケットの受信時間間隔についてのメッセージ度数テーブル53とを、パケットを受信する毎に更新し、パケットを受信する毎に閾値を更新している。
その閾値は、セグメント度数テーブル52の内容(第1の度数分布)に基づくグラフであるセグメント間隔ヒストグラムの最大階級値が、メッセージ度数テーブル53の内容(第2の度数分布)に基づくグラフであるメッセージ間隔ヒストグラムの最小階級値よりも上回っている場合、図20に示すように、セグメント間隔ヒストグラムの線グラフとメッセージ間隔ヒストグラムの線グラフとの交点の階級値軸の座標値を下回る中でこれに最も近い階級値(図18では、0.07msec)となる。
一方、セグメント間隔ヒストグラムの最大階級値が、メッセージ間隔ヒストグラムの最小階級値以下である場合、閾値は、図21に示すように、セグメント間隔ヒストグラムの最大階級値とメッセージ間隔ヒストグラムの最小階級値との中間値(図19では、0.04msec)となる。
なお、通信アプリケーションが下位の通信レイヤにメッセージの送信を依頼した後、カーネル(オペレーティングシステム内のTCP/IPスイート)ではなく、ハードウエアが、メッセージをセグメントに分割してパケットを生成する場合、そのセグメント分割及びパケット生成は、ワイヤースピード(理論的に最大の通信速度)程度にて行われるので、同一メッセージに所属するセグメントを含むパケットの送信間隔は、極端に短くなる。このため、セグメント間隔ヒストグラムの最大階級値がメッセージ間隔ヒストグラムの最小階級値以下になる場合(図19参照)は、あり得る。
前述した本実施形態に関し、更に、以下の付記を開示する。
(付記1)
コンピュータを、
パケットを順次受信する受信手段、
前記受信手段がパケットを受信する毎に、その受信されたパケットと同一コネクションにおいてそのパケットとそのパケットの直前に受信されたパケットとの受信時間間隔を、取得する取得手段、及び、
前記取得手段が取得した受信時間間隔が所定の閾値を超えた場合に、前記受信手段が受信したパケットを、1つのメッセージを構成する複数のセグメントのうちの先頭のセグメントが含まれるパケットとして特定する特定手段
として機能させるためのパケット特定プログラム。
(付記2)
前記コンピュータを、更に、
前記受信手段がパケットを受信する毎に、その受信されたパケットと同一のコネクションにおいてパケットロスが発生したか否かを判定する判定手段
として機能させ、
前記取得手段は、前記判定手段がパケットロスが発生したと判定すると、そのパケットロスが発生したコネクションに係るパケットを前記受信手段が受信する毎に、前記受信時間間隔を取得する
ことを特徴とする付記1記載のパケット特定プログラム。
(付記3)
前記所定の閾値は、
同一のメッセージに所属するセグメントを含み連続して受信された一対のパケットの受信時間間隔についての第1の度数分布と、異なるメッセージに所属するセグメントを含み
連続して受信された一対のパケットの受信時間間隔についての第2の度数分布とに基づいて、決定されている
ことを特徴とする付記1又は2記載のパケット特定プログラム。
(付記4)
前記所定の閾値は、
前記第1の度数分布の最大階級値が、前記第2の度数分布の最小階級値よりも大きい場合には、前記第1の度数分布の線グラフと前記第2の度数分布の線グラフとの交点に最も近い階級値である
ことを特徴とする付記3記載のパケット特定プログラム。
(付記5)
前記所定の閾値は、
前記第1の度数分布の最大階級値が、前記第2の度数分布の最小階級値以下である場合には、その最大階級値と最小階級値との中間値である
ことを特徴とする付記3記載のパケット特定プログラム。
(付記6)
前記受信手段は、監視対象の複数のコンピュータ間を流れるパケットの複製を行う中継機器から、複製されたパケットを順次受信する
ことを特徴とする付記1乃至5の何れかに記載のパケット特定プログラム。
(付記7)
コンピュータが、
パケットを順次受信する受信手順、
前記受信手順でパケットを受信する毎に、その受信されたパケットと同一コネクションにおいてそのパケットとその直前に受信されたパケットとの受信時間間隔を、取得する取得手順、
前記取得手順で取得した受信時間間隔が所定の閾値を超えた場合に、前記受信手順で受信したパケットを、1つのメッセージを構成する複数のセグメントのうちの先頭のセグメントが含まれるパケットとして特定する特定手順
を実行する
ことを特徴とするパケット特定方法。
(付記8)
前記コンピュータが、更に、
前記受信手順でパケットを受信する毎に、その受信されたパケットと同一のコネクションにおいてパケットロスが発生したか否かを判定する判定手順
を実行し、
前記判定手順でパケットロスが発生したと判定すると、前記取得手順においては、そのパケットロスが発生したコネクションに係るパケットを前記受信手順で受信する毎に、前記受信時間間隔を取得する
ことを特徴とする付記7記載のパケット特定方法。
(付記9)
前記所定の閾値は、
同一のメッセージに所属するセグメントを含み連続して受信された一対のパケットの受信時間間隔についての第1の度数分布と、異なるメッセージに所属するセグメントを含み連続して受信された一対のパケットの受信時間間隔についての第2の度数分布とに基づいて、決定されている
ことを特徴とする付記7又は8記載のパケット特定方法。
(付記10)
前記所定の閾値は、
前記第1の度数分布の最大階級値が、前記第2の度数分布の最小階級値よりも大きい場合には、前記第1の度数分布の線グラフと前記第2の度数分布の線グラフとの交点に最も近い階級値である
ことを特徴とする付記9記載のパケット特定方法。
(付記11)
前記所定の閾値は、
前記第1の度数分布の最大階級値が、前記第2の度数分布の最小階級値以下である場合には、その最大階級値と最小階級値との中間値である
ことを特徴とする付記9記載のパケット特定方法。
(付記12)
前記コンピュータは、
前記受信手順においては、監視対象の複数のコンピュータ間を流れるパケットの複製を行う中継機器から、複製されたパケットを順次受信する
ことを特徴とする付記7乃至11の何れかに記載のパケット特定方法。
(付記13)
パケットを順次受信する受信部、
前記受信部がパケットを受信する毎に、その受信されたパケットと同一コネクションにおいてそのパケットとその直前に受信されたパケットとの受信時間間隔を、取得する取得部、及び、
前記取得部が取得した受信時間間隔が所定の閾値を超えた場合に、前記受信部が受信したパケットを、1つのメッセージを構成する複数のセグメントのうちの先頭のセグメントが含まれるパケットとして特定する特定部
を備えることを特徴とするパケット特定装置。
(付記14)
前記受信部がパケットを受信する毎に、その受信されたパケットと同一のコネクションにおいてパケットロスが発生したか否かを判定する判定部
を更に備え、
前記取得部は、前記判定部がパケットロスが発生したと判定すると、そのパケットロスが発生したコネクションに係るパケットを前記受信部が受信する毎に、前記受信時間間隔を取得する
ことを特徴とする付記13記載のパケット特定装置。
(付記15)
前記所定の閾値は、
同一のメッセージに所属するセグメントを含み連続して受信された一対のパケットの受信時間間隔についての第1の度数分布と、異なるメッセージに所属するセグメントを含み連続して受信された一対のパケットの受信時間間隔についての第2の度数分布とに基づいて、決定されている
ことを特徴とする付記13又は14記載のパケット特定装置。
(付記16)
前記所定の閾値は、
前記第1の度数分布の最大階級値が、前記第2の度数分布の最小階級値よりも大きい場合には、前記第1の度数分布の線グラフと前記第2の度数分布の線グラフとの交点に最も近い階級値である
ことを特徴とする付記15記載のパケット特定装置。
(付記17)
前記所定の閾値は、
前記第1の度数分布の最大階級値が、前記第2の度数分布の最小階級値以下である場合には、その最大階級値と最小階級値との中間値である
ことを特徴とする付記15記載のパケット特定装置。
(付記18)
前記受信部は、監視対象の複数のコンピュータ間を流れるパケットの複製を行う中継機器から、複製されたパケットを順次受信する
ことを特徴とする付記13乃至17の何れかに記載のパケット特定装置。
本実施形態のコンピュータネットワークシステムの構成図 LANスイッチの構成図 通信状態可視化装置の構成図 通信状態可視化部の構成図 一般的なメッセージの再組み立てについての説明図 一般的なメッセージの構成図 IPヘッダフォーマットを示す図 TCPヘッダフォーマットを示す図 TCPコネクションのシーケンスの一例を示す図 メッセージ再組立処理の流れを示す図 ワークテーブルを模式的に示す図 度数テーブルを模式的に示す図 パケット受信サブルーチンの流れを示す図 パケットロス判定サブルーチンの流れを示す図 度数テーブル更新サブルーチンの流れを示す図 閾値更新サブルーチンの流れを示す図 閾値更新サブルーチンの流れを示す図 メッセージ処理サブルーチンの流れを示す図 先頭特定サブルーチンの流れを示す図 セグメント間隔ヒストグラムとメッセージ間隔ヒストグラムの線グラフを示す図 セグメント間隔ヒストグラムとメッセージ間隔ヒストグラムの線グラフを示す図
符号の説明
30 LANスイッチ
30a 通信ユニット
31 通信ポート
32 ポートミラーリング機能
33 ミラーポート
40 通信状態可視化装置
40e 通信ユニット
40f ストレージユニット
40g CPU
40h メインメモリユニット
41 オペレーティングシステム
41a ドライバ
42 通信状態可視化ソフトウエア
42a メッセージ再組立プログラム
42b 通信アプリケーション
51 ワークテーブル
52 度数テーブル
53 度数テーブル

Claims (6)

  1. コンピュータを、
    パケットを順次受信する受信手段、
    前記受信手段がパケットを受信する毎に、その受信されたパケットと同一コネクションにおいてそのパケットとそのパケットの直前に受信されたパケットとの受信時間間隔を、取得する取得手段、及び、
    前記取得手段が取得した受信時間間隔が所定の閾値を超えた場合に、前記受信手段が受信したパケットを、1つのメッセージを構成する複数のセグメントのうちの先頭のセグメントが含まれるパケットとして特定する特定手段
    として機能させるためのパケット特定プログラム。
  2. 前記所定の閾値は、
    同一のメッセージに所属するセグメントを含み連続して受信された一対のパケットの受信時間間隔についての第1の度数分布と、異なるメッセージに所属するセグメントを含み連続して受信された一対のパケットの受信時間間隔についての第2の度数分布とに基づいて、決定されている
    ことを特徴とする請求項1記載のパケット特定プログラム。
  3. 前記所定の閾値は、
    前記第1の度数分布の最大階級値が、前記第2の度数分布の最小階級値よりも大きい場合には、前記第1の度数分布の線グラフと前記第2の度数分布の線グラフとの交点に最も近い階級値である
    ことを特徴とする請求項2記載のパケット特定プログラム。
  4. 前記所定の閾値は、
    前記第1の度数分布の最大階級値が、前記第2の度数分布の最小階級値以下である場合には、その最大階級値と最小階級値との中間値である
    ことを特徴とする請求項2記載のパケット特定プログラム。
  5. コンピュータが、
    パケットを順次受信する受信手順、
    前記受信手順でパケットを受信する毎に、その受信されたパケットと同一コネクションにおいてそのパケットとその直前に受信されたパケットとの受信時間間隔を、取得する取得手順、
    前記取得手順で取得した受信時間間隔が所定の閾値を超えた場合に、前記受信手順で受信したパケットを、1つのメッセージを構成する複数のセグメントのうちの先頭のセグメントが含まれるパケットとして特定する特定手順
    を実行する
    ことを特徴とするパケット特定方法。
  6. パケットを順次受信する受信部、
    前記受信部がパケットを受信する毎に、その受信されたパケットと同一コネクションにおいてそのパケットとその直前に受信されたパケットとの受信時間間隔を、取得する取得部、及び、
    前記取得部が取得した受信時間間隔が所定の閾値を超えた場合に、前記受信部が受信したパケットを、1つのメッセージを構成する複数のセグメントのうちの先頭のセグメントが含まれるパケットとして特定する特定部
    を備えることを特徴とするパケット特定装置。
JP2008248085A 2008-09-26 2008-09-26 パケット特定プログラム、パケット特定方法、パケット特定装置及び制御プログラム Expired - Fee Related JP5163398B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008248085A JP5163398B2 (ja) 2008-09-26 2008-09-26 パケット特定プログラム、パケット特定方法、パケット特定装置及び制御プログラム
US12/534,606 US8111700B2 (en) 2008-09-26 2009-08-03 Computer-readable recording medium storing packet identification program, packet identification method, and packet identification device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008248085A JP5163398B2 (ja) 2008-09-26 2008-09-26 パケット特定プログラム、パケット特定方法、パケット特定装置及び制御プログラム

Publications (2)

Publication Number Publication Date
JP2010081343A true JP2010081343A (ja) 2010-04-08
JP5163398B2 JP5163398B2 (ja) 2013-03-13

Family

ID=42057435

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008248085A Expired - Fee Related JP5163398B2 (ja) 2008-09-26 2008-09-26 パケット特定プログラム、パケット特定方法、パケット特定装置及び制御プログラム

Country Status (2)

Country Link
US (1) US8111700B2 (ja)
JP (1) JP5163398B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012100012A (ja) * 2010-11-01 2012-05-24 Fujitsu Ltd 解析処理装置、解析処理プログラム、及び解析処理方法
WO2013035451A1 (ja) * 2011-09-05 2013-03-14 日本電気通信システム株式会社 通信装置、通信状態検出方法、および通信状態検出プログラム
JP2014230105A (ja) * 2013-05-22 2014-12-08 富士通株式会社 分析装置、ネットワークシステム、ポートの切り替え方法及びプログラム

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5591829B2 (ja) * 2009-12-28 2014-09-17 富士通株式会社 通信方法及び通信装置
JP2016096416A (ja) * 2014-11-13 2016-05-26 富士通株式会社 パケット解析プログラム、及びパケット解析方法
US10404838B2 (en) * 2016-10-21 2019-09-03 ShieldX Networks, Inc. Systems and methods for selecting microservices to process protocol data streams
CN110198203A (zh) * 2019-06-14 2019-09-03 中国人民解放军陆军工程大学 一种控制数据传输速率的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07231317A (ja) * 1993-12-22 1995-08-29 Fuji Xerox Co Ltd トラフィック収集解析装置
JP2006261948A (ja) * 2005-03-16 2006-09-28 Toyota Motor Corp 通信システム、送信装置及び受信装置
JP2006324792A (ja) * 2005-05-17 2006-11-30 Mitsubishi Electric Corp ネットワークシステム、送信側スイッチ装置、受信側スイッチ装置、両用スイッチ装置およびフレームデータの選択方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6678250B1 (en) * 1999-02-19 2004-01-13 3Com Corporation Method and system for monitoring and management of the performance of real-time networks
US7076547B1 (en) * 2001-06-21 2006-07-11 Amdocs (Israel) Ltd. System and method for network performance and server application performance monitoring and for deriving exhaustive performance metrics
US7246101B2 (en) * 2002-05-16 2007-07-17 Hewlett-Packard Development Company, L.P. Knowledge-based system and method for reconstructing client web page accesses from captured network packets
US20040111507A1 (en) * 2002-12-05 2004-06-10 Michael Villado Method and system for monitoring network communications in real-time
DE60325650D1 (de) * 2003-03-17 2009-02-12 Ericsson Telefon Ab L M Verfahren zur informationsgewinnung über eine übertragungsfähigkeit
JP2005328131A (ja) 2004-05-12 2005-11-24 Toshiba Corp リアルタイムデータ受信装置
US7729256B2 (en) * 2004-07-14 2010-06-01 Opnet Technologies, Inc. Correlating packets
JP4570527B2 (ja) 2005-07-20 2010-10-27 富士通株式会社 システム性能監視プログラム及びシステム性能監視方法
US8743703B2 (en) * 2006-08-22 2014-06-03 Centurylink Intellectual Property Llc System and method for tracking application resource usage
US7835406B2 (en) * 2007-06-18 2010-11-16 Cisco Technology, Inc. Surrogate stream for monitoring realtime media

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07231317A (ja) * 1993-12-22 1995-08-29 Fuji Xerox Co Ltd トラフィック収集解析装置
JP2006261948A (ja) * 2005-03-16 2006-09-28 Toyota Motor Corp 通信システム、送信装置及び受信装置
JP2006324792A (ja) * 2005-05-17 2006-11-30 Mitsubishi Electric Corp ネットワークシステム、送信側スイッチ装置、受信側スイッチ装置、両用スイッチ装置およびフレームデータの選択方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012100012A (ja) * 2010-11-01 2012-05-24 Fujitsu Ltd 解析処理装置、解析処理プログラム、及び解析処理方法
WO2013035451A1 (ja) * 2011-09-05 2013-03-14 日本電気通信システム株式会社 通信装置、通信状態検出方法、および通信状態検出プログラム
JPWO2013035451A1 (ja) * 2011-09-05 2015-03-23 日本電気通信システム株式会社 通信装置、通信状態検出方法、および通信状態検出プログラム
US9461772B2 (en) 2011-09-05 2016-10-04 Nec Communication Systems, Ltd. Communication apparatus, communication state detecting method, and communication state detecting program
JP2014230105A (ja) * 2013-05-22 2014-12-08 富士通株式会社 分析装置、ネットワークシステム、ポートの切り替え方法及びプログラム

Also Published As

Publication number Publication date
JP5163398B2 (ja) 2013-03-13
US20100080246A1 (en) 2010-04-01
US8111700B2 (en) 2012-02-07

Similar Documents

Publication Publication Date Title
JP5163398B2 (ja) パケット特定プログラム、パケット特定方法、パケット特定装置及び制御プログラム
JP4759389B2 (ja) パケット通信装置
US9906630B2 (en) Processing data packets in performance enhancing proxy (PEP) environment
CN106953795B (zh) 配置多网卡的方法及装置
US7969976B2 (en) Gateway apparatus, packet forwarding method, and program
US8422501B2 (en) Efficient path maximum transmission unit information discovery and storage
US7636305B1 (en) Method and apparatus for monitoring network traffic
US20180159947A1 (en) Network traffic accelerator
JP2011146920A (ja) トポロジーツリー作成装置、プログラム、及び方法
EP3135016B1 (en) Managing sequence values with added headers in computing devices
CN108667921B (zh) 一种基于网络旁路的银行业务推荐信息生成方法及系统
US20180343182A1 (en) Network traffic capture analysis
JP5056438B2 (ja) パケット解析方法
US20070291782A1 (en) Acknowledgement filtering
CN110838935A (zh) 高可用sdn控制器集群方法、系统、存储介质及设备
CN108810008B (zh) 传输控制协议流量过滤方法、装置、服务器及存储介质
Mišić et al. On the benefits of compact blocks in bitcoin
CN109347825A (zh) 一种基于tcp协议数据分包黏包的处理方法
JP2016140058A (ja) ルーティング情報を判定するためのシステムおよび方法
CN108924061B (zh) 一种应用识别及管理方法、系统及相关装置
CN114465742B (zh) 网络安全防护方法以及防护设备
JP5212021B2 (ja) 監視プログラム、監視方法及び監視装置
WO2001059584A1 (en) Practical network support for ip traceback
CN113630442B (zh) 数据传输方法、装置及系统
US20040267692A1 (en) Sparse and non-sparse data management method and system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120806

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120828

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121029

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121203

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

Free format text: PAYMENT UNTIL: 20151228

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5163398

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees