JP6206254B2 - 重複パケット除去方法及びプログラム - Google Patents

重複パケット除去方法及びプログラム Download PDF

Info

Publication number
JP6206254B2
JP6206254B2 JP2014041247A JP2014041247A JP6206254B2 JP 6206254 B2 JP6206254 B2 JP 6206254B2 JP 2014041247 A JP2014041247 A JP 2014041247A JP 2014041247 A JP2014041247 A JP 2014041247A JP 6206254 B2 JP6206254 B2 JP 6206254B2
Authority
JP
Japan
Prior art keywords
packet
identifier
storage unit
session
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014041247A
Other languages
English (en)
Other versions
JP2015167316A (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 JP2014041247A priority Critical patent/JP6206254B2/ja
Priority to US14/603,449 priority patent/US9736080B2/en
Publication of JP2015167316A publication Critical patent/JP2015167316A/ja
Application granted granted Critical
Publication of JP6206254B2 publication Critical patent/JP6206254B2/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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames

Landscapes

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

Description

本発明は、通信装置からキャプチャしたパケットのうち重複するパケットを除去するための技術に関する。
ネットワークを流れるパケットをキャプチャして、キャプチャしたパケットを解析することが行われている。例えば、図1に示すように、3台のスイッチSW1乃至SW3が接続されているネットワークにおいて、サーバA及びBはスイッチSW2に接続されており、サーバC及びDがスイッチSW3に接続されており、スイッチSW2及びSW3にスイッチSW1が接続されているものとする。ここで、スイッチSW2において、サーバBがサーバA及びサーバCと通信する際に発生するパケットをキャプチャするため、サーバBが接続されているポートをミラーリングの対象ポートとして指定して、点線で示すように、分析装置に接続されているポートに、複製されたパケットを出力させる。同様に、スイッチSW3において、サーバCがサーバB及びサーバDと通信する際に発生するパケットをキャプチャするため、サーバCが接続されているポートをミラーリングの対象ポートとして指定して、点線で示すように、分析装置に接続されているポートに、複製されたパケットを出力させる。
そうすると、分析装置には、スイッチSW2から、サーバAとサーバBとの間で送受信されるパケットと、サーバBとサーバCとの間で送受信されるパケットとが送出される。また、スイッチSW3から、サーバBとサーバCとの間で送受信されるパケットと、サーバCとサーバDとの間で送受信されるパケットとが送出される。すなわち、サーバBとサーバCとの間で送受信されるパケットとが重複してしまうので、分析装置では、余分なパケットを削除することになる。
このような余分なパケットの破棄については従来から着目されていたが、後から受信した同一のパケットを破棄するという基本的な事項以外に特別な工夫は存在していない。特に、余分なパケットの破棄に用いるメモリの容量は、キャプチャするパケットの数が多くなればなるほど問題となるが、その削減について検討されているものは存在しない。
特開2006−246195号公報 特開2009−207099号公報
従って、本発明の目的は、一側面によれば、通信装置からキャプチャしたパケットのうち重複するパケットを除去するために用いるメモリの容量を削減する技術を提供することである。
本発明に係る重複パケット除去方法は、(A)1又は複数の通信装置における所定のポートから受信した第1のパケットの識別子が、パケットの識別子を格納する格納部に格納されているか否かを判断し、(B)第1のパケットの識別子が格納部に格納されていると判断された場合には、第1のパケットを破棄し、(C)第1のパケットの識別子が格納部に格納されていないと判断された場合には、第1のパケットの識別子を格納部に格納し、(D)格納部に識別子が格納されているパケットに係るセッションと同一のセッションに係り且つ通信方向が反転した第2のパケットを受信したことを検出した場合には、格納部に格納されている識別子を削除する処理を含む。
一側面によれば、通信装置からキャプチャしたパケットのうち重複するパケットを除去するために用いるメモリの容量を削減できるようになる。
図1は、スイッチと分析装置との関係の一例を表す図である。 図2は、第1の実施の形態に係る分析装置とスイッチの接続例を示す図である。 図3は、メッセージの送受信を模式的に示す図である。 図4は、同一セッションにおいて送受信されるメッセージを模式的に示す図である。 図5は、第1の実施の形態に係る分析装置の機能ブロック図である。 図6は、セッションテーブルに格納されるデータの一例を示す図である。 図7は、振り分けテーブルに格納されるデータの一例を示す図である。 図8は、番号格納部に格納されるデータの一例を示す図である。 図9は、IPIDテーブルの一例を示す図である。 図10は、分析装置の処理の概要を示す図である。 図11は、実施の形態に係る処理フローを示す図である。 図12は、IPパケットのフォーマットを示す図である。 図13は、IPヘッダの構成を示す図である。 図14は、TCPヘッダの構成を示す図である。 図15は、UDPヘッダの構成を示す図である。 図16は、実施の形態に係る処理フローを示す図である。 図17は、実施の形態に係る処理フローを示す図である。 図18は、第2の実施の形態に係る分析装置の機能ブロック図である。 図19は、他のシステム例を示す図である。 図20は、コンピュータの機能ブロック図である。
[実施の形態1]
本実施の形態に係るシステムの概要を図2乃至図4を用いて説明する。
例えば、本実施の形態に係る分析装置100は、図2に示すように、スイッチSW1乃至SW3に接続されており、クライアント端末200はスイッチSW1に接続されており、サーバ300はスイッチSW3に接続されている。また、スイッチSW1とスイッチSW2、スイッチSW2とスイッチSW3が、それぞれ接続されているものとする。
このような場合、パケット1乃至3を含むリクエストが、クライアント端末200からサーバ300へ送信されると、リクエストは、スイッチSW1、スイッチSW2及びスイッチSW3を介してサーバ300へ転送される。そうすると、分析装置100は、図3に示すように、スイッチSW1から3つのパケット1乃至3を受信し、スイッチSW2から3つのパケット1乃至3を受信し、さらにスイッチSW3から3つのパケット1乃至3を受信する。
その後、パケット4乃至6を含むレスポンスが、サーバ300からクライアント端末200へ送信されると、レスポンスは、スイッチSW3、スイッチSW2及びスイッチSW1を介してユーザ端末200へ転送される。そうすると、分析装置100は、図3に示すように、通信方向が反転して、スイッチSW3から3つのパケット4乃至6を受信し、スイッチSW2から3つのパケット4乃至6を受信し、スイッチSW1から3つのパケット4乃至6を受信する。
このように同一セッションにおけるリクエスト及びレスポンスは逆方向に送信される。また、図4に示すように、複数のメッセージのやりとりが同一セッションにおいて行われる場合もある。すなわち、リクエストメッセージAがクライアント端末200からサーバ300へ送信されると、通信方向は反転して、レスポンスメッセージBがクライアント端末200へ送信される。さらに、リクエストメッセージCが、通信方向が反転して、クライアント端末200からサーバ300へ送信される。
このように、同一セッション内では、メッセージが宛先に届くと、通信方向が反転して次のメッセージが送信される、という現象が繰り返される。そうすると、分析装置100においても、通信方向が反転すれば、異なるメッセージを受信したことになるので、通信方向が反転してから次に通信方向が反転するまでの間で、重複して受信した余分なパケットであるか否かを判断すれば効率がよいことが分かる。
より具体的には、同一セッションについて通信方向が反転してから次に通信方向が反転するまでを1つのメッセージとしてみなして、1つのメッセージに含まれるパケットの識別子を保持しておく。そして、同一の識別子を含むパケットを受信した場合には、そのパケットを破棄するという基本的な処理を行う。さらに、次に通信方向が反転したことを検出すると、現在保持しているパケットの識別子は不要になるので破棄して、次のメッセージについてのパケットの識別子を保持するようにする。このようにすれば、パケットの識別子の保持時間は非常に短くなり、メモリ容量の消費も少なくなる。
次に、本実施の形態に係る分析装置100の機能ブロック図を図5に示す。
本実施の形態では、分析装置100は、複数のCPU(Central Processing Unit)0乃至2で機能分担を行っているものとする。図5で模式的に示すように、CPU0は、NIC(Network Interface Card)及びOS(Operating System)を介して受信したパケットを、例えばプロミスキャスモードで取得して、Layer−4(L4)解析処理の一部を実行する。すなわち、CPU0が分析プログラムを実行することで、L4解析部110が実現される。L4解析部110は、パケット振り分け部111と、先頭検出部112と、セッション識別部113と、パケット受信部114と、セッションテーブル115と、振り分けテーブル116と、番号格納部117とを有する。
パケット受信部114は、OSを介してパケットを受信し、セッション識別部113に出力する。セッション識別部113は、受信パケットに係るセッションを識別する。さらに、先頭検出部112は、受信パケットがメッセージの先頭のパケットであるか否かを判断する。さらに、パケット振り分け部111は、受信パケットを、その解析処理を実行するCPU1又はCPU2に振り分ける。
セッションテーブル115は、例えば図6に示すようなテーブルである。図6の例では、接続先IPアドレス、接続先ポート番号、接続元IPアドレス及び接続元ポート番号を含むセッションデータと、送信先IPアドレスで表される最新通信方向と、最新メッセージ番号と、現在受信メッセージを処理中であるCPUの番号である現CPU番号とが、セッション毎に格納されるようになっている。
振り分けテーブル116は、例えば図7に示すようなテーブルである。図7の例では、CPU毎に、CPU番号及び担当するメッセージの数とが登録されるようになっている。このように、本実施の形態では、セッション単位ではなく、メッセージ単位でパケットの処理が各CPUに振り分けられる。図4の例では、振り分け先のCPUは、CPU1及びCPU2である。
番号格納部117は、図8に示すようなデータを格納する。本実施の形態では、初めて受信したメッセージに通し番号を付与するようになっており、現在受信中のメッセージの番号が、番号格納部117に格納されているものとする。
また、CPU1が分析プログラムを実行することで、L4解析部120と、L7解析部130とが実現される。L4解析部120は、パケット処理部121と、IPIDテーブル122を含む。パケット処理部121は、パケット振り分け部111から受信したパケットに対してIPIDテーブル122を用いたチェックを行って、重複受信した余分なパケットであれば破棄し、重複受信した余分なパケットでない場合にはそのパケットのIPIDをIPIDテーブル122に登録すると共に、L7解析部130に出力する。
IPIDテーブル122に格納されるデータの一例を図9に示す。IPIDテーブル122は、メッセージ毎に、そのメッセージに含まれるパケットの識別子(IPID)を格納するようになっている。図9では、1つのテーブルが1つのメッセージのIPIDテーブルに相当する。
L7解析部130は、所定のシステム状態解析を実行する。但し、この処理については、従来と変わらないので、これ以上述べない。
CPU2も分析プログラムを実行することで、L4解析部140及びL7解析部150が実現される。L4解析部140は、L4解析部120と同様に、パケット処理部141と、IPIDテーブル142とを有する。
次に、図10を用いて、分析装置100の処理の概要を説明する。CPU0においてL4解析部110のパケット受信部114は、パケットを受信すると(ステップS1)、当該パケットをセッション識別部113等に出力する。そうすると、セッション識別部113は、受信したパケットからセッションを識別し(ステップS3)、さらに先頭検出部112は、受信したパケットがその通信方向からメッセージの先頭か否かを判断する(ステップS5)。パケット振り分け部111は、メッセージの先頭のパケットであれば新たにCPUを選択し、メッセージの先頭のパケットでない場合にはそのメッセージを処理しているCPUを特定する(ステップS7)。そして、パケット振り分け部111は、選択したCPU又は特定したCPUに、メッセージ番号と共に、受信したパケットを出力する(ステップS9)。図10に示したように、セッション毎ではなく、メッセージ毎にパケットはCPUに割り振られる。図10の例では、セッション1におけるパケット1乃至3のメッセージはCPU1で処理され、セッション2におけるパケット1及び2のメッセージはCPU1で処理される。また、セッション1におけるパケット4乃至6のメッセージはCPU2で処理され、セッション3におけるパケット1乃至3のメッセージはCPU2で処理される。
CPU1におけるL4解析部120のパケット処理部121は、受信したパケットのIPIDでメッセージ番号に対応するIPIDテーブル122の検索を行う。そして、受信したパケットのIPIDがIPIDテーブル122に既に登録されている場合には、パケット処理部121は、そのパケットを破棄し、未登録であればIPIDテーブル122にIPIDを登録すると共に、受信したパケットをL7解析部130に出力する(ステップS11)。また、L7解析処理部130は、所定の解析処理を実行する(ステップS13)。
同様に、CPU2におけるL4解析部140のパケット処理部141は、受信したパケットのIPIDでメッセージ番号に対応するIPIDテーブル142の検索を行う。そして、受信したパケットのIPIDがIPIDテーブル142に既に登録されている場合には、パケット処理部141は、そのパケットを破棄し、未登録であればIPIDテーブル142にIPIDを登録すると共に、受信したパケットをL7解析部150に出力する(ステップS15)。また、L7解析処理部150は、所定の解析処理を実行する(ステップS17)。
なお、先頭検出部112は、メッセージの先頭を検出すると、同一セッションについての直前メッセージを担当しているCPUを特定し、直前メッセージの番号と共にIPIDテーブルの削除要求を、特定したCPUに出力する。削除要求を受信したCPU1のL4解析部120のパケット処理部121は、直前メッセージの番号のIPIDテーブル122をクリアする(ステップS21)。同様に、削除要求を受信したCPU2のL4解析部140のパケット処理部141は、直前メッセージの番号のIPIDテーブル142をクリアする(ステップS23)。
このようにすれば、重複受信した余分なパケットを削除でき、さらにIPIDテーブル122及び142を早期にクリアできるので、メモリ容量の消費を抑制できるようになる。また、メッセージ単位でパケットを各CPUに振り分けるので、セッション単位で振り分けを行う場合に比して振り分けの自由度が高くなり、処理負荷の分散が効率的に行えるようになる。
次に、図11乃至図17を用いて、本実施の形態に係る処理の詳細を説明する。
CPU0におけるL4解析部110のパケット受信部114は、パケット受信まで待機する(図11:ステップS101)。すなわち、パケット受信でない場合には、処理は端子Cを介してステップS139に移行する。
一方、パケットを受信すると、パケット受信部114は、セッション識別部113に出力し、セッション識別部113は、パケットを受信すると、セッションデータを当該パケットから読み出す(ステップS103)。
図12に、パケットのIPパケットの構成を示す。図12の例では、上段は、IPヘッダとTCPパケット(TCPヘッダ及びTCPセグメント)とを含むIPパケットの構成を示し、下段は、IPヘッダとUDPパケット(UDPヘッダ及びUDPデータグラム)とを含むIPパケットの構成を示す。
図13に、IPヘッダの構成を示す。IPヘッダの構成はよく知られたものであるが、本実施の形態では、識別子(IPID)と、送信元IPアドレスと、送信先IPアドレスとが抽出される。
図14に、TCPヘッダの構成を示す。TCPヘッダの構成もよく知られたものであるが、送信元ポート(port)番号と、送信先ポート番号とが抽出される。
図15に、UDPヘッダの構成を示す。UDPヘッダの構成もよく知られたものであるが、送信元ポート番号と、送信先ポート番号とが抽出される。
セッションデータは、送信元IPアドレスと、送信先IPアドレスと、送信元ポート番号と、送信先ポート番号とを含む。
そして、先頭検出部112は、セッションテーブル115を、セッション識別部113によって読み出したセッションデータで検索する(ステップS105)。読み出したセッションデータが、セッションテーブル115で検出された場合には(ステップS107:Yesルート)、既に検出済みのセッションにおけるメッセージのパケットを受信したことになり、最初に検出されたリクエストメッセージと同じセッションデータが検出されたことになる。よって、先頭検出部112は、通信方向を上りと設定する(ステップS109)。具体的には、送信先IPアドレス(=接続先IPアドレス)を保持する。そして処理は端子Aを介して図16の処理に移行する。
一方、読み出したセッションデータが、セッションテーブル115で検出されなかった場合(ステップS107:Noルート)、先頭検出部112は、セッションデータにおける送信先と送信元とを入れ替えてから、セッションテーブル115を検索する(ステップS111)。
このように変更したセッションデータがセッションテーブル115において検出された場合には(ステップS113:Yesルート)、既に検出済みのセッションにおけるメッセージのパケットを受信したことになるが、最初に検出されたリクエストメッセージとは反対の通信方向のパケットを受信したことになる。従って、先頭検出部112は、通信方向を下りと設定する(ステップS115)。具体的には、送信先IPアドレス(=接続元IPアドレス)を保持する。そして処理は端子Aを介して図16の処理に移行する。
一方、変更したセッションデータがセッションテーブル115において検出されなかった場合には(ステップS113:Noルート)、新規のセッションが検出されたことになる。従って、先頭検出部112は、読み出したセッションデータを、セッションテーブル115に追加格納する(ステップS117)。さらに、先頭検出部112は、通信方向を上りと設定する(ステップS119)。具体的には、送信先IPアドレスを保持する。そして、処理は端子Bを介して図16のステップS131の処理に移行する。
図16の処理の説明に移行して、端子Aの後に、先頭検出部112は、セッションテーブル115において該当セッションデータに対応付けられている最新通信方向と、設定された通信方向とが一致するか否かを判断することで、通信方向反転の有無を判定する(ステップS121)。一致していれば通信方向の反転はないし、一致していなければ通信方向は反転している。
通信方向の反転がないと判定された場合には(ステップS123:Noルート)、パケット振り分け部111は、セッションテーブル115から、セッションデータに対応付けられている現CPU及びメッセージ番号を読み出す(ステップS125)。そして処理はステップS135に移行する。なお、通信方向の反転がない場合には、現CPUに対してパケットを出力するために、本ステップを実行する。
一方、通信方向の反転があると判断された場合には(ステップS123:Yesルート)、パケット振り分け部111は、セッションテーブル115から、セッションデータに対応付けられている現CPU及びメッセージ番号を読み出す(ステップS127)。さらに、パケット振り分け部111は、読み出されたCPU番号のCPUに対して、メッセージ番号を含む削除要求を出力する(ステップS129)。そして処理はステップS131に移行する。
これに対して、例えばCPU1におけるL4解析部120のパケット処理部121は、削除要求を受信すると、当該削除要求に含まれるメッセージ番号のIPIDテーブルを削除する(ステップS141)。すなわち、同一セッションにおいて通信方向が反転してメッセージが変わったと判断された場合には、前のメッセージについてのIPIDテーブルについてはもう使用しないので、削除する。これによってメモリの有効活用が図られる。
そして、パケット振り分け部111は、振り分けテーブル116及び番号格納部117から、新CPU番号と新メッセージ番号を取得して、セッションテーブル115において該当セッションデータに対応付けて格納する(ステップS131)。振り分けテーブル116において、各CPUが担当するメッセージの数が登録されているので、可能な限り均等になるように、メッセージ数が最も小さい値のCPUの番号を読み出し、そのCPU番号のメッセージ数を1インクリメントする。さらに、番号格納部117から、現在のメッセージ番号を読み出して、当該メッセージ番号に1を加えた番号を、新メッセージ番号として採用する。さらに、番号格納部117において、メッセージ番号を新メッセージ番号に更新する。
さらに、パケット振り分け部111は、設定された通信方向(送信先IPアドレス)を、セッションテーブル115において該当セッションデータに対応付けて格納する(ステップS135)。
そして、パケット振り分け部111は、処理に係るパケット及びメッセージ番号(ステップS125で読み出されたメッセージ番号又はステップS131で取得された新メッセージ番号)を、CPU番号(ステップS125で読み出されたCPU番号又はステップS131で取得された新CPU番号)のCPUに出力する(ステップS137)。
その後、L4解析部110は、処理を終了するか否かを判断する(ステップS139)。処理を終了しない場合には、処理は端子Dを介して図11のステップS101に戻る。一方、終了を指示されるなどして処理を終了する場合には、処理を終了する。
このようにすれば、同一セッションにおける通信方向の反転に応じて異なるメッセージを受信するようになったことを検出して、IPIDテーブルをクリアしてメモリの使用容量を削減しつつ、重複受信した余分なパケットを削除できる。
なお、CPU1及びCPU2では、図17に示すような処理が行われる。すなわち、例えばCPU1におけるL4解析部120のパケット処理部121は、CPU0からパケット及びメッセージ番号を受信すると(ステップS301)、メッセージ番号に対応するIPIDテーブル122を特定して、当該IPIDテーブル122を、パケットに含まれるIPIDで検索する(ステップS303)。
IPIDがメッセージ番号に対応するIPIDテーブル122に検出された場合には(ステップS305:Yesルート)、重複受信した余分なパケットであるので、パケット処理部121は、受信パケットを破棄する(ステップS307)。そして処理を終了する。なお、IPIDテーブル122のサイズは、メッセージ毎にIPIDを有しているので小さく、検索処理の処理時間もセッション単位でIPIDを管理する場合に比して少なくて済む。
一方、IPIDがメッセージ番号に対応するIPIDテーブル122に検出されなかった場合には(ステップS305:Noルート)、初めて受信したパケットであるので、パケット処理部121は、パケットのIPIDを、IPIDテーブル122に登録する(ステップS309)。そして、パケット処理部121は、受信パケットをL7解析部130に出力する。L7解析部130は、受信パケットについての解析処理を実行する(ステップS311)。
このようにすれば、重複受信した余分なパケットは破棄され、新規なパケットはL7解析部130で処理されるようになる。
[実施の形態2]
第1の実施の形態では、NIC及びOSを介してパケット受信部114がパケットを受信して、そのまま処理を行う例を示したが、例えば、図18に示すような構成を採用するようにしても良い。すなわち、受信部172及び保存部171を有するパケット保存部170を導入して、受信部172はパケットを受信すると、保存部171は受信パケットをデータ格納部160に格納する。
L4解析部110bは、パケット受信部114の代わりにパケット読み出し部118を有しており、パケット読み出し部118は、処理開始後に、データ格納部160に格納されているパケットを格納順に読み出して、以降の処理を実行する。
このように、パケット受信時とは別のタイミングで、L4解析処理及びL7解析処理を実行するようにしても良い。
以上本発明の実施の形態について説明したが、本発明はこれらに限定されるものではない。例えば、機能ブロック構成は一例であって、プログラムモジュール構成とは一致しない場合もある。さらに、処理フローについても、処理結果が変わらない限り、処理順番を入れ替えたり、複数ステップを並列実行するようにしても良い。
さらに、CPU0乃至CPU2で機能分担を行うような例を示したが、例えばシングルプロセッサのコンピュータを複数台用いて上で述べたような処理を実行するようにしても良いし、例えばCPU2が異なるコンピュータに含まれる場合もある。
さらに、図2の例では、分析装置100は、複数のスイッチの複数のポートに接続されている例を示したが、複数のスイッチではなく複数のポートでもない場合もある。例えば、図19に示すようなケースであっても分析装置100は有効である。具体的には、スイッチSW1には、クライアント端末と、サーバA(例えばWebサーバ)と、サーバB(例えばAPサーバ)と、分析装置100と、スイッチSW2とが接続されている。一方、スイッチSW2には、サーバC(例えばDBサーバ)が接続されているが、スイッチSW2には、ミラーリングの機能が存在しないものとする。
そうすると、スイッチSW1において、サーバA及びサーバBが接続されているポートが監視対象ポートとして指定されて、分析装置100が接続されているポートにミラリーングで複製されたパケットが出力される。そうすると、サーバAが接続されているポートからは、クライアント端末とサーバAとの間におけるHTTP(Hyper Text Transfer Protocol)のパケットと、サーバAとサーバBとの間におけるIIOP(Internet Inter-ORB Protocol)のパケットとがキャプチャされる。一方、サーバBが接続されているポートからは、サーバAとサーバBとの間におけるIIOPのパケットと、サーバBとサーバCとの間におけるDBプロトコルのパケットとがキャプチャされる。そうすると、サーバAとサーバBとの間におけるIIOPのパケットが重複してしまう。
このような状況においても、正しく重複受信した余分なパケットを破棄でき、さらに使用メモリ量を削減でき、処理を高速化できる。
なお、上で述べた分析装置100は、コンピュータ装置であって、図20に示すように、メモリ2501とCPU(Central Processing Unit)群2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU群2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU群2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU群2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本実施の形態をまとめると、以下のようになる。
本実施の形態に係る重複パケット除去方法は、(A)1又は複数の通信装置における所定のポートから受信した第1のパケットの識別子が、パケットの識別子を格納する格納部に格納されているか否かを判断し、(B)第1のパケットの識別子が格納部に格納されていると判断された場合には、第1のパケットを破棄し、(C)第1のパケットの識別子が格納部に格納されていないと判断された場合には、第1のパケットの識別子を格納部に格納し、(D)格納部に識別子が格納されているパケットに係るセッションと同一のセッションに係り且つ通信方向が反転した第2のパケットを受信したことを検出した場合には、格納部に格納されている識別子を削除する処理を含む。
このように、同一セッションにおいて異なるメッセージを受信したことを検出できるので、メッセージ単位で管理されているパケットの識別子を、異なるメッセージを受信したことを契機に破棄でき、結果として使用メモリ量を削減できる。
さらに、上で述べた重複パケット除去方法は、(E)上で述べた第2のパケットを受信した場合、(A)乃至(D)の処理を実行する複数の処理部から1つの処理部を選択し、(F)選択された上記1つの処理部に、第2のパケットを出力する処理を含むようにしても良い。このようにすれば、メッセージ単位で負荷分散を行うことができ、フレキシブルな処理部の選択が可能となる。
さらに、上記重複パケット除去方法は、(G)各セッションについて複数の処理部のうち当該セッションを現在担当する処理部の識別子と当該セッションにおける通信方向とを格納する第2の格納部から、所定のポートから受信した第3のパケットに係るセッションが既に検出されていたか判断し、(H)第3のパケットに係るセッションが既に検出されていたと判断された場合、第2の格納部から、第3のパケットから通信方向が反転したか判断し、(I)第3のパケットから通信方向が反転したと判断された場合には、複数の処理部から処理部を選択し、(J)第3のパケットの通信方向及び選択された処理部の識別子で第2の格納部を更新する処理をさらに含むようにしても良い。
このようにすれば、確実に通信方向の反転を検出できる。また、処理部の識別子を保持しているので、現在受信中のメッセージに含まれるパケットを同じ処理部に送出するのも容易である。
また、上記重複パケット除去方法は、(K)第3のパケットを含むメッセージに対してメッセージの識別子を付与し、(L)第3のパケットとメッセージの識別子とを、選択された処理部に出力する処理をさらに含むようにしても良い。このようにメッセージの識別子を付与して用いることで、処理部ではメッセージ毎にパケットの識別子を管理するのが容易になる。なお、第2の格納部にメッセージの識別子をセッションに対応付けて格納するようにしても良い。
なお、上で述べたような処理をプロセッサ又はコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROMなどの光ディスク、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
1又は複数の通信装置における所定のポートから受信した第1のパケットの識別子が、パケットの識別子を格納する格納部に格納されているか否かを判断し、
前記第1のパケットの識別子が前記格納部に格納されていると判断された場合には、前記第1のパケットを破棄し、
前記第1のパケットの識別子が前記格納部に格納されていないと判断された場合には、前記第1のパケットの識別子を前記格納部に格納し、
前記格納部に識別子が格納されているパケットに係るセッションと同一のセッションに係り且つ通信方向が反転した第2のパケットを受信したことを検出した場合には、前記格納部に格納されている識別子を削除する
処理を、コンピュータに実行させるためのプログラム。
(付記2)
前記第2のパケットを受信した場合、付記1記載の処理を実行する複数の処理部から1つの処理部を選択し、
選択された前記1つの処理部に、前記第2のパケットを出力する
処理を、前記コンピュータ又は他のコンピュータに実行させるためのプログラム。
(付記3)
各セッションについて前記複数の処理部のうち当該セッションを現在担当する処理部の識別子と当該セッションにおける通信方向とを格納する第2の格納部から、前記所定のポートから受信した第3のパケットに係るセッションが既に検出されていたか判断し、
前記第3のパケットに係るセッションが既に検出されていたと判断された場合、前記第2の格納部から、前記第3のパケットから通信方向が反転したか判断し、
前記第3のパケットから通信方向が反転したと判断された場合には、前記複数の処理部から処理部を選択し、
前記第3のパケットの通信方向及び選択された処理部の識別子で前記第2の格納部を更新する
処理を、さらに前記コンピュータ又は他のコンピュータに実行させるための付記2記載のプログラム。
(付記4)
前記第3のパケットを含むメッセージに対してメッセージの識別子を付与し、
前記第3のパケットと前記メッセージの識別子とを、選択された前記処理部に出力する
処理をさらに前記コンピュータ又は他のコンピュータに実行させるための付記3記載のプログラム。
(付記5)
1又は複数の通信装置における所定のポートから受信した第1のパケットの識別子が、パケットの識別子を格納する格納部に格納されているか否かを判断し、
前記第1のパケットの識別子が前記格納部に格納されていると判断された場合には、前記第1のパケットを破棄し、
前記第1のパケットの識別子が前記格納部に格納されていないと判断された場合には、前記第1のパケットの識別子を前記格納部に格納し、
前記格納部に識別子が格納されているパケットに係るセッションと同一のセッションに係り且つ通信方向が反転した第2のパケットを前記所定のポートから受信したことを検出した場合には、前記格納部に格納されている識別子を削除する
処理を、コンピュータが実行する重複パケット除去方法。
100 分析装置
110,120,140 L4解析部
111 パケット振り分け部
112 先頭検出部
113 セッション識別部
114 パケット受信部
115 セッションテーブル
116 振り分けテーブル
117 番号格納部
121,141 パケット処理部
122,142 IPIDテーブル

Claims (5)

  1. 1又は複数の通信装置における所定のポートから受信した第1のパケットの識別子が、パケットの識別子を格納する格納部に格納されているか否かを判断し、
    前記第1のパケットの識別子が前記格納部に格納されていると判断された場合には、前記第1のパケットを破棄し、
    前記第1のパケットの識別子が前記格納部に格納されていないと判断された場合には、前記第1のパケットの識別子を前記格納部に格納し、
    前記格納部に識別子が格納されているパケットに係るセッションと同一のセッションに係り且つ通信方向が反転した第2のパケットを受信したことを検出した場合には、前記格納部に格納されている識別子を削除する
    処理を、コンピュータに実行させるためのプログラム。
  2. 前記第2のパケットを受信した場合、請求項1記載の処理を実行する複数の処理部から1つの処理部を選択し、
    選択された前記1つの処理部に、前記第2のパケットを出力する
    処理を、前記コンピュータ又は他のコンピュータに実行させるためのプログラム。
  3. 各セッションについて前記複数の処理部のうち当該セッションを現在担当する処理部の識別子と当該セッションにおける通信方向とを格納する第2の格納部から、前記所定のポートから受信した第3のパケットに係るセッションが既に検出されていたか判断し、
    前記第3のパケットに係るセッションが既に検出されていたと判断された場合、前記第2の格納部から、前記第3のパケットから通信方向が反転したか判断し、
    前記第3のパケットから通信方向が反転したと判断された場合には、前記複数の処理部から処理部を選択し、
    前記第3のパケットの通信方向及び選択された処理部の識別子で前記第2の格納部を更新する
    処理を、さらに前記コンピュータ又は他のコンピュータに実行させるための請求項2記載のプログラム。
  4. 前記第3のパケットを含むメッセージに対してメッセージの識別子を付与し、
    前記第3のパケットと前記メッセージの識別子とを、選択された前記処理部に出力する
    処理をさらに前記コンピュータ又は他のコンピュータに実行させるための請求項3記載のプログラム。
  5. 1又は複数の通信装置における所定のポートから受信した第1のパケットの識別子が、パケットの識別子を格納する格納部に格納されているか否かを判断し、
    前記第1のパケットの識別子が前記格納部に格納されていると判断された場合には、前記第1のパケットを破棄し、
    前記第1のパケットの識別子が前記格納部に格納されていないと判断された場合には、前記第1のパケットの識別子を前記格納部に格納し、
    前記格納部に識別子が格納されているパケットに係るセッションと同一のセッションに係り且つ通信方向が反転した第2のパケットを前記所定のポートから受信したことを検出した場合には、前記格納部に格納されている識別子を削除する
    処理を、コンピュータが実行する重複パケット除去方法。
JP2014041247A 2014-03-04 2014-03-04 重複パケット除去方法及びプログラム Expired - Fee Related JP6206254B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014041247A JP6206254B2 (ja) 2014-03-04 2014-03-04 重複パケット除去方法及びプログラム
US14/603,449 US9736080B2 (en) 2014-03-04 2015-01-23 Determination method, device and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014041247A JP6206254B2 (ja) 2014-03-04 2014-03-04 重複パケット除去方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2015167316A JP2015167316A (ja) 2015-09-24
JP6206254B2 true JP6206254B2 (ja) 2017-10-04

Family

ID=54018569

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014041247A Expired - Fee Related JP6206254B2 (ja) 2014-03-04 2014-03-04 重複パケット除去方法及びプログラム

Country Status (2)

Country Link
US (1) US9736080B2 (ja)
JP (1) JP6206254B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109561021B (zh) 2017-09-25 2021-08-20 华为技术有限公司 一种报文转发的方法及网络设备
CN114116006A (zh) * 2021-11-30 2022-03-01 星宸科技股份有限公司 用于控制电子装置的方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6473793B1 (en) * 1994-06-08 2002-10-29 Hughes Electronics Corporation Method and apparatus for selectively allocating and enforcing bandwidth usage requirements on network users
CA2419767C (en) * 2002-02-25 2011-01-04 Olsonet Communications Corporation Method for routing ad-hoc signals
US7962606B2 (en) * 2005-01-24 2011-06-14 Daintree Networks, Pty. Ltd. Network analysis system and method
JP4652851B2 (ja) 2005-03-04 2011-03-16 キヤノン電子株式会社 ネットワーク情報収集装置、制御方法およびプログラム
JP5014199B2 (ja) 2008-02-29 2012-08-29 三菱電機株式会社 通信記録装置、通信データ処理方法および通信データ処理プログラム
JP5720668B2 (ja) * 2010-02-16 2015-05-20 日本電気株式会社 パケット転送装置、通信システム、処理規則の更新方法およびプログラム
JP5682233B2 (ja) * 2010-11-01 2015-03-11 富士通株式会社 解析処理装置、解析処理プログラム、及び解析処理方法
US8873557B2 (en) * 2011-04-08 2014-10-28 Gigamon Inc. Systems and methods for packet de-duplication
CN104995603A (zh) * 2013-11-14 2015-10-21 联发科技股份有限公司 至少部分基于共享相同数据及/或存取相同存储地址的任务分布的任务调度方法以及多核处理器系统中用于分配任务的相关非暂时性计算机可读介质
US9413859B2 (en) * 2014-01-17 2016-08-09 Gigamon Inc. Systems and methods for processing packets

Also Published As

Publication number Publication date
US20150256469A1 (en) 2015-09-10
US9736080B2 (en) 2017-08-15
JP2015167316A (ja) 2015-09-24

Similar Documents

Publication Publication Date Title
KR101862273B1 (ko) 가상화된 네트워킹 스택의 라이브 이주를 위한 시스템 및 방법
US7990847B1 (en) Method and system for managing servers in a server cluster
JP5842933B2 (ja) ネットワークシステム、及び経路情報同期方法
US9760442B2 (en) Method of delaying checkpoints by inspecting network packets
Shashidhara et al. {FlexTOE}: Flexible {TCP} Offload with {Fine-Grained} Parallelism
US8335238B2 (en) Reassembling streaming data across multiple packetized communication channels
US20160241482A1 (en) Packet communication apparatus and packet communication method
JP6308601B2 (ja) パケット処理方法およびデバイス
US9910687B2 (en) Data flow affinity for heterogenous virtual machines
US8266504B2 (en) Dynamic monitoring of ability to reassemble streaming data across multiple channels based on history
JP6206254B2 (ja) 重複パケット除去方法及びプログラム
JPWO2012105677A1 (ja) パケット処理装置、パケット処理方法およびプログラム
JP2016162266A (ja) 通信装置及びそのプロセッサ割当方法
US8527664B2 (en) Direct memory access with minimal host interruption
JP5917678B1 (ja) 情報処理装置、方法およびプログラム
Hanford et al. Analysis of the effect of core affinity on high-throughput flows
US9553795B2 (en) Port switching method, analysis device, and recording medium
JP2020005051A (ja) 制御プログラム、制御装置、及び制御方法
US20050086390A1 (en) Efficient packet desegmentation on a network adapter
US10735349B2 (en) Non-transitory computer-readable storage medium, packet control method, and packet control device
Zhao et al. Design and implementation of a content-aware switch using a network processor
JP2018005664A (ja) 制御装置、情報処理システム、制御方法、及び、情報処理プログラム
CN109040330A (zh) 一种流量切换方法以及装置
US20240146628A1 (en) Methods for managing insertion of metadata into a data stream to assist with analysis of network traffic and devices thereof
Cascón et al. Improving IPS by network processors

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161102

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170726

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170821

R150 Certificate of patent or registration of utility model

Ref document number: 6206254

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees