JP5014199B2 - Communication recording apparatus, communication data processing method, and communication data processing program - Google Patents
Communication recording apparatus, communication data processing method, and communication data processing program Download PDFInfo
- Publication number
- JP5014199B2 JP5014199B2 JP2008050209A JP2008050209A JP5014199B2 JP 5014199 B2 JP5014199 B2 JP 5014199B2 JP 2008050209 A JP2008050209 A JP 2008050209A JP 2008050209 A JP2008050209 A JP 2008050209A JP 5014199 B2 JP5014199 B2 JP 5014199B2
- Authority
- JP
- Japan
- Prior art keywords
- tcp
- data
- packet
- communication
- received
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
本発明は、例えば、社内ネットワークとインターネットとの間で送受信されるパケットを受信し、受信したデータを解析して記録し、ネットワーク上でやり取りされたデータを証拠として保存する通信記録装置、通信データ処理方法および通信データ処理プログラムに関するものである。 The present invention, for example, receives a packet transmitted and received between an in-house network and the Internet, analyzes and records the received data, and stores the data exchanged on the network as evidence, and communication data The present invention relates to a processing method and a communication data processing program.
不正アクセスの兆候の解析や情報漏えいの際の証拠として使用するために、ネットワーク上で送受信されるパケットを記録する通信記録装置(フォレンジックサーバ)がある。 There is a communication recording device (forensic server) that records packets transmitted and received on a network for use as evidence in the case of unauthorized access analysis and information leakage.
通信記録装置は、内部ネットワークに接続されているスイッチングハブのミラーリングポートに接続され、内部ネットワークとインターネットとの間で送受信されるパケットを記録する。 The communication recording device is connected to a mirroring port of a switching hub connected to the internal network, and records packets transmitted and received between the internal network and the Internet.
TCP(Transmission Control Protocol)を用いた通信において、送信アプリケーションと受信アプリケーションとの間では、データがバイトストリームとして処理される。
通信記録装置はTCPパケットを受信すると、受信したパケットのシーケンス番号に従ってパケットを組み立てた後、アプリケーションデータを解析する。例えば、通信記録装置は、データがWebアクセスのHTTP(HyperText Transfer Protocol) GETである場合には、アクセス先の情報(www.***.co.jpのようなURL[Uniform Resource Locator])とこれに対する応答(画像データ、音声データ)を復元して記録する。
When the communication recording device receives the TCP packet, it assembles the packet according to the sequence number of the received packet and then analyzes the application data. For example, when the data is an HTTP (Hyper Text Transfer Protocol) GET for Web access, the communication recording device is configured with a URL [Uniform Resource Locator] such as access destination information (www. ***. Co.jp). The response (image data, audio data) to this is restored and recorded.
しかし、通信記録装置が記録するデータは、端末−プロキシサーバ間やプロキシサーバ−WWWサーバ間といった他ホスト間で送受信されるデータであり、そのデータが設定されたパケットの宛先は通信記録装置でない。また、OSのTCP/IP(Internet Protocol)プロトコルスタックは自宛でないパケットを処理対象にしないため、通信記録装置はOSのTCP/IPプロトコルスタック機能を用いて記録の対象である他ホスト間の通信データを組み立てることができない。 However, the data recorded by the communication recording device is data transmitted / received between other hosts such as between the terminal and the proxy server or between the proxy server and the WWW server, and the destination of the packet in which the data is set is not the communication recording device. Further, since the TCP / IP (Internet Protocol) protocol stack of the OS does not target packets that are not addressed to itself, the communication recording device uses the OS TCP / IP protocol stack function to communicate between other hosts that are to be recorded. The data cannot be assembled.
また、通信記録装置は、ミラーリングポートからパケットのコピーを受信しているため、パケットがミラーリングポートへの転送の最中に通信エラーとなって廃棄された場合、廃棄されたパケットで送信されたデータを受信することができない。さらに、このパケットは、ミラーリングポートへの転送の最中に通信エラーとなっても、内部ネットワークとインターネットとの間では送受信が完了する。このため、パケットの再送は行われず、通信記録装置がこのパケットを受信することはない。そして、通信記録装置においてこのパケットのシーケンス番号以降のデータはシーケンス番号の連続性が保たれず、このパケットで送信されるデータを含んだアプリケーションデータの組み立ては完了しない。従ってミラーリングポートへの転送時にパケットが廃棄された場合、通信記録装置は廃棄されたパケットで送信されるデータを含んだアプリケーションデータを解析することができない。 In addition, since the communication recording device has received a copy of the packet from the mirroring port, if the packet is discarded due to a communication error during transfer to the mirroring port, the data transmitted in the discarded packet Can not receive. Furthermore, transmission and reception of this packet between the internal network and the Internet is completed even if a communication error occurs during transfer to the mirroring port. For this reason, the packet is not retransmitted, and the communication recording apparatus does not receive the packet. In the communication recording device, the continuity of the sequence number is not maintained for the data after the sequence number of this packet, and the assembly of the application data including the data transmitted in this packet is not completed. Therefore, when a packet is discarded during transfer to the mirroring port, the communication recording apparatus cannot analyze application data including data transmitted in the discarded packet.
本発明は、例えば、上記のような課題を解決するためになされたもので、ネットワーク上で他ホスト間のTCP/IPの通信データを受信し、他ホスト宛のパケットの組み立てを行い、アプケーション解析を実行できるようにすることを目的とする。
また例えば、本発明は、パケットがミラーリングポートに転送する最中に通信エラーとなって廃棄された場合でも、アプリケーション解析を継続してパケットを記録できるようにすることを目的とする。
The present invention has been made to solve the above-described problems, for example, receives TCP / IP communication data between other hosts on a network, assembles packets addressed to other hosts, and The purpose is to be able to perform analysis.
In addition, for example, the present invention has an object to enable continuous application analysis to record a packet even when the packet is discarded due to a communication error while being transferred to a mirroring port.
本発明の通信記録装置は、他の複数の通信装置間の通信の履歴を記録する通信記録装置であり、特定のデータを示すアプリケーションデータが複数のパケットに分割されて通信される通信ネットワークに接続し、前記複数の通信装置の少なくともいずれかを送信先とする前記複数のパケットのうち前記通信ネットワークに送出されたパケットを受信し、受信したパケットを主記憶装置に記憶する受信制御部と、前記受信制御部により前記複数のパケットのうち一部のパケットが前記主記憶装置に記憶されたときに、前記主記憶装置から前記一部のパケットを読み出し、読み出した前記一部のパケットに含まれる前記アプリケーションデータの一部を補助記憶装置に前記通信ネットワークの通信履歴の一部として記録する通信記録部とを備える。 The communication recording device of the present invention is a communication recording device that records the history of communication between a plurality of other communication devices, and is connected to a communication network in which application data indicating specific data is divided into a plurality of packets and communicated Receiving a packet sent to the communication network out of the plurality of packets destined for at least one of the plurality of communication devices, and storing the received packet in a main storage device; When a part of the plurality of packets is stored in the main memory by the reception control unit, the part of the packets is read from the main memory, and the part of the read packets includes the packet A communication recording unit that records a part of application data in the auxiliary storage device as a part of the communication history of the communication network.
本発明によれば、例えば、アプリケーションデータの一部を受信することができなかった場合でも、受信できた部分を通信ネットワークの通信履歴として記録することができる。これにより、記録された部分に基づいてアプリケーションデータを解析することができる。 According to the present invention, for example, even when a part of application data cannot be received, the received part can be recorded as a communication history of the communication network. Thereby, application data can be analyzed based on the recorded part.
実施の形態1.
図1は、実施の形態1における通信ネットワークシステム100の一例を示す図である。
図1において、社内ネットワーク22(社内LAN[LAN:ローカルエリアネットワーク])に接続する端末21(通信端末装置の一例)は、FW25(ファイアウォール装置)およびプロキシサーバ26を介して、インターネット24に接続するWWWサーバ23からデータを取得する。
FW25は社内ネットワーク22のセキュリティを確保するために設けられ、社内ネットワーク22とインターネット24と間で直接に通信することを制限する。プロキシサーバ26は社内ネットワーク22の端末21がインターネット24上のWWWサーバ23からデータを取得できるように、端末21の代わりにWWWサーバ23からデータを取得し、取得したデータを端末21に送信する。
FIG. 1 is a diagram illustrating an example of a
In FIG. 1, a terminal 21 (an example of a communication terminal device) connected to an in-house network 22 (in-house LAN [LAN: local area network]) connects to the Internet 24 via an FW 25 (firewall device) and a
The FW 25 is provided to ensure the security of the in-
通信記録装置1は、プロキシサーバ26とWWWサーバ23との間で送受信されるデータをSW27(スイッチングハブ装置)を介して受信し、受信したデータを社内ネットワーク22とインターネット24との間で通信されたデータの履歴(通信履歴120、通信ログ)として記録する。端末21は社内ネットワーク22に通信接続する端末の一つであり、WWWサーバ23はインターネット24に通信接続する端末の一つである。通信記録装置1は社内ネットワーク22の通信端末とインターネット24に接続する通信端末との間での(プロキシサーバ26を介した)通信の履歴を記録する。通信記録装置1により記録された通信履歴120を検証することにより、インターネット24から社内ネットワーク22への不正なアクセスや社内ネットワーク22からインターネット24への情報漏えいの有無およびその内容を調べることができる。つまり、通信履歴120は不正アクセスの有無、不正アクセスの手順の解析、情報流失の有無を証明するフォレンジックな証拠として活用される。
The
SW27は通信ケーブルが接続される複数のポートを有する。各ポートに接続された通信ケーブルはFW25、プロキシサーバ26および通信記録装置1に接続されている。特に、通信記録装置1の接続されているポートを「ミラーリングポート」という。SW27は社内ネットワーク22から送信され又は社内ネットワーク22に送信されたデータを各ポート間で中継(リレー)し、各ポートからFW25、プロキシサーバ26および通信記録装置1に接続されている通信ケーブルに送出する。特に、SW27は、各ポート間で中継された全てのデータを通信ケーブル29を介して通信記録装置1の接続されているミラーリングポートに中継する。SW27が有するこの機能を「ポートモニタ機能」という。通信記録装置1はSW27のポートモニタ機能により各ポート間で中継された全てのデータを受信することができる。
The SW 27 has a plurality of ports to which communication cables are connected. The communication cable connected to each port is connected to the FW 25, the
図2は、IPパケット105の構成を示す図である。
社内ネットワーク22およびインターネット24ではTCP/IP通信が行われ、TCP/IP通信では図2に示すように構成されるIPパケット105が通信される。
FIG. 2 is a diagram showing the configuration of the IP packet 105.
TCP / IP communication is performed in the in-
IPパケット105(IPデータグラムともいう)は、制御情報が設定されたIPヘッダ101を有すると共に、TCPパケット104を包含してカプセル化する。IPヘッダ101には、送信元の端末を識別する「送信元IPアドレス」、送信先の端末を識別する「送信先IPアドレス」、IPパケット105のサイズを示す「パケット長」、IPヘッダ101のサイズを示す「ヘッダ長」などが設定される。TCPパケット104のサイズはパケット長からヘッダ長を減算したサイズである。 An IP packet 105 (also referred to as an IP datagram) has an IP header 101 in which control information is set, and encapsulates the TCP packet 104. The IP header 101 includes a “source IP address” for identifying a source terminal, a “destination IP address” for identifying a destination terminal, a “packet length” indicating the size of the IP packet 105, an IP header 101 “Header length” indicating the size is set. The size of the TCP packet 104 is a size obtained by subtracting the header length from the packet length.
TCPパケット104(TCPセグメントともいう)は、制御情報が設定されたTCPヘッダ102とアプリケーションデータの少なくとも一部が設定されたTCPデータ103とを有する。TCPヘッダ102には、送信元のアプリケーションプログラムを識別する「送信元ポート番号」、送信先のアプリケーションプログラムを識別する「送信先ポート番号」、アプリケーションデータ内でのTCPデータ103の並び位置を示す「シーケンス番号」、送信先(受信側)から次に送信されるTCPデータ103のアプリケーションデータ内での並び位置を示す「確認応答番号」などが設定される。 The TCP packet 104 (also referred to as a TCP segment) includes a TCP header 102 in which control information is set and TCP data 103 in which at least a part of application data is set. The TCP header 102 includes a “transmission source port number” that identifies a transmission source application program, a “transmission destination port number” that identifies a transmission destination application program, and an arrangement position of the TCP data 103 in the application data “ The “sequence number”, “acknowledgment number” indicating the arrangement position in the application data of the TCP data 103 transmitted next from the transmission destination (reception side), and the like are set.
以下、IPパケット105およびTCPパケット104を総称して「パケット」という。
また、シーケンス番号を「seq」と記し、確認応答番号を「ack」と記す。
Hereinafter, the IP packet 105 and the TCP packet 104 are collectively referred to as “packets”.
Further, the sequence number is written as “seq”, and the confirmation response number is written as “ack”.
図3は、GETm107の構成を示す図であり、図4は、Resm108の構成を示す図である。
図3に示すHTTPのリクエストメッセージ(GETm107と記す)や図4に示すHTTPのレスポンスメッセージ(Resm108と記す)は、TCPデータ103に設定されるアプリケーションデータの一例である。
GETm107およびResm108はそれぞれ制御情報が設定されたメッセージヘッダ71と通信の目的のデータであるメッセージボディ72とを有し、メッセージヘッダ71とメッセージボディ72とは空行66により区切られる。
GETm107のメッセージヘッダ71にはリクエストライン61、リクエストヘッダフィールド62、汎用ヘッダフィールド63、ヘッダフィールド64およびその他65から構成され、Resm108のメッセージヘッダ71にはステータスライン68、レスポンスヘッダフィールド69、汎用ヘッダフィールド63、ヘッダフィールド64およびその他65から構成される。
GETm107のリクエストライン61には“GET”が設定され、このHTTPのメッセージがGET43であることを示す。GETm107およびResm108のヘッダフィールド64にはメッセージボディ72のサイズを示す「Content−Length」が設定されている。以下、メッセージボディ72のサイズを「コンテントサイズ」という。
FIG. 3 is a diagram illustrating a configuration of the
The HTTP request message (denoted as GETm 107) shown in FIG. 3 and the HTTP response message (denoted as Resm 108) shown in FIG. 4 are examples of application data set in the TCP data 103.
Each of the
The message header 71 of the GETm 107 includes a request line 61, a request header field 62, a general header field 63, a header field 64, and the other 65. The message header 71 of the
“GET” is set in the request line 61 of the
以下、GETm107やResm108を総称して「メッセージ106」という。
Hereinafter, GETm 107 and
図5は、分割されたResm108を示す図である。
図5において、メッセージ106(例えば、Resm108)のサイズが大きい場合、メッセージ106は複数に分割され、複数のパケットで送信される。
例えば、2000バイト(byte)のResm108は、1000バイトずつ2つに分割され、メッセージヘッダ71(Resm108の先頭)とメッセージボディ72の一部とを含むパケット(Res44)と残りのメッセージボディ72(Resm108の終端)を含むパケット(Data45)とで送信される。
FIG. 5 is a diagram illustrating the divided
In FIG. 5, when the size of the message 106 (for example, Resm 108) is large, the message 106 is divided into a plurality of pieces and transmitted in a plurality of packets.
For example, a
以下、Res44に設定されたデータやData45に設定されたデータのように分割されたメッセージ106を構成するそれぞれの部分を総称して「分割データ(または、フラグメント)」という。
Hereinafter, the respective parts constituting the message 106 divided like the data set in
図6は、実施の形態1における通信シーケンスの一例を示す図である。
図5に示したResm108は、図6に示すような流れで、Res44とData45とでWWWサーバ23からプロキシサーバ26に送信される。
図6に示す矢印は、矢印の向きにパケットが送信されることを示している。
FIG. 6 is a diagram illustrating an example of a communication sequence in the first embodiment.
The
An arrow shown in FIG. 6 indicates that a packet is transmitted in the direction of the arrow.
ここで、社内ネットワーク22の端末21からWWWサーバ23に何らかのデータが要求(HTTPリクエスト)されたものとする。プロキシサーバ26は端末21からWWWサーバ23への要求を受信する。端末21に要求されたデータを保持していない場合、プロキシサーバ26は端末21の代わりにWWWサーバ23に要求を出してデータを取得し、取得したデータを端末21に応答する。図6は、プロキシサーバ26が端末21の代わりにWWWサーバ23に要求を出してデータを取得する際のパケットの送受信の流れを示している。
Here, it is assumed that some data is requested (HTTP request) from the terminal 21 of the in-
まず、プロキシサーバ26はSYN40、SYN/ACK41およびACK42の送受信によりWWWサーバ23とTCPのコネクションを確立し、確立したコネクションを用いてGET43、Res44、Data45およびACK47の送受信によりWWWサーバ23からデータを取得し、FIN/ACK50、FIN/ACK51およびACK52の送受信によりコネクションを切断する。
First, the
SYN40は、TCPヘッダ102にコネクションの確立の要求を示すフラグが設定されたパケットである。
SYN/ACK41は、SYN40の受信の完了を示す確認応答番号(ack)とTCPヘッダ102にコネクションの確立を示すフラグとが設定されたパケットである。
ACK42は、TCPヘッダ102にSYN/ACK41の受信の完了を示す確認応答番号が設定されたパケットである。
GET43は、TCPデータ103にGETm107が設定されたパケットである。
Res44は、TCPデータ103にResm108の前半部分が設定されたパケットである。
Data45は、TCPデータ103にResm108の後半部分が設定されたパケットである。
ACK47は、TCPヘッダ102にRes44およびData45の受信の完了を示す確認応答番号が設定されたパケットである。
FIN/ACK50は、TCPヘッダ102にコネクションの切断の要求を示すフラグが設定されたパケットである。
FIN/ACK51は、TCPヘッダ102にFIN/ACK50の受信の完了を示す確認応答番号とコネクションの切断を示すフラグとが設定されたパケットである。
ACK52は、TCPヘッダ102にFIN/ACK51の受信の完了を示す確認応答番号が設定されたパケットである。
以下、SYN40、SYN/ACK41、ACK42、ACK47、FIN/ACK50、FIN/ACK51及びACK52にTCPデータ103が含まれない場合を例にして説明を行う。
SYN /
The
The
The
The FIN /
The FIN /
The
Hereinafter, the case where the TCP data 103 is not included in the
送受信されるパケットのTCPヘッダ102には「シーケンス番号(seq)」と「確認応答番号(ack)」が設定される。 A “sequence number (seq)” and an “acknowledgment response number (ack)” are set in the TCP header 102 of the transmitted / received packet.
「シーケンス番号(seq)」は送信されたTCPデータ103の並び順をバイト(byte)単位で示し、当該パケットの送信元(送信側)から当該パケットの送信先(受信側)に送信されるメッセージ106内での当該パケットのTCPデータ103の並び位置を示す。「シーケンス番号(seq)」の初期値はSYN40およびSYN/ACK41に設定される。
“Sequence number (seq)” indicates the arrangement order of the transmitted TCP data 103 in units of bytes, and is a message transmitted from the transmission source (transmission side) of the packet to the transmission destination (reception side) of the packet. An arrangement position of the TCP data 103 of the packet in 106 is shown. The initial value of “sequence number (seq)” is set to
図6において、SYN40に設定されたseq(99)は、プロキシサーバ26がWWWサーバ23に送信するTCPデータ103の並び順を「99」から続く連番で示すことを意味する。
また、SYN/ACK41に設定されたseq(700)は、WWWサーバ23がプロキシサーバ26に送信するTCPデータ103の並び順を「700」から続く連番で示すことを意味する。
In FIG. 6, seq (99) set to
Further, seq (700) set in SYN /
「確認応答番号(ack)」は受信の完了したTCPデータ103のシーケンス番号に「1」を加えた値であり、当該パケットの送信元が当該パケットの送信先から過去に受信したTCPデータ103のシーケンス番号に「1」を加えた値を示す。当該パケットの送信先から当該パケットの送信元には、次に、当該パケットに設定された「確認応答番号(ack)」から続くデータをTCPデータ103として含んだパケットが送信される。 The “acknowledgment response number (ack)” is a value obtained by adding “1” to the sequence number of the TCP data 103 that has been received, and the transmission source of the packet has received the TCP data 103 received in the past from the transmission destination of the packet. A value obtained by adding “1” to the sequence number is shown. Next, a packet including the data following the “acknowledgment response number (ack)” set in the packet as the TCP data 103 is transmitted from the transmission destination of the packet to the transmission source of the packet.
なお、SYN40、SYN/ACK41、FIN/ACK50およびFIN/ACK51は、TCPデータ103が1バイトのパケットとして扱われ、「シーケンス番号(seq)」に「1(バイト)」が加算される。
The
図6において、プロキシサーバ26は、WWWサーバ23とのコネクションを確立するために、自己のseqの初期値として「99」を設定したSYN40をWWWサーバ23に送信する。SYN40を受信したWWWサーバ23はSYN40のseq(99)に「1」を加えた値(100)をackとして設定すると共に、自己のseqの初期値として「700」を設定したSYN/ACK41をプロキシサーバ26に送信する。SYN/ACK41を受信したプロキシサーバ26はSYN/ACK41のseq(700)に「1」を加えた値(701)をackとして設定する共に、SYN/ACK41のack(100)をseqに設定したACK42をWWWサーバ23に送信する。これにより、プロキシサーバ26とWWWサーバ23との間にコネクションが確立する。
コネクションの確立後、プロキシサーバ26は、GETm107がTCPデータ103として設定されたGET43をWWWサーバ23に送信する。GET43のseqおよびackはACK42と同じである。ここで、GETm107のサイズを100バイトとする。
In FIG. 6, the
After establishing the connection, the
GET43を受信したWWWサーバ23は、2000バイトのResm108を1000バイトずつ2つに分割する。そして、WWWサーバ23は、Resm108の先頭を含んだ前半の1000バイトがTCPデータ103として設定されたRes44をプロキシサーバ26に送信すると共に、Resm108の終端を含んだ後半の1000バイトがTCPデータ103として設定されたData45をプロキシサーバ26に送信する。Res44のseqはGET43のackと同じ値になり、Data45のseqはRes44のseq(701)にRes44のTCPデータ103のサイズ(1000)を加えた値(1701)になる。
Res44とData45とを受信したプロキシサーバ26は、GET43のack(701)にRes44とData45とのTCPデータ103の合計サイズ(2000)を加えた値(2701)をackとして設定したACK47をWWWサーバ23に送信する。ACK47のseqはRes44およびData45のackと同じである。
The WWW server 23 that has received the
The
Res44とData45とによりResm108を受信したプロキシサーバ26は、コネクションの切断のために、ACK47と同じseq(200)とack(2701)とを設定したFIN/ACK50をWWWサーバ23に送信する。FIN/ACK50を受信したWWWサーバ23はFIN/ACK50のseq(200)に「1」を加えた値(201)をackとして設定したFIN/ACK51(seq:2701)をプロキシサーバ26に送信し、FIN/ACK51を受信したプロキシサーバ26はFIN/ACK51のseq(2701)に「1」を加えた値(2702)をackとして設定したACK52(seq:201)をWWWサーバ23に送信する。これにより、プロキシサーバ26とWWWサーバ23とのコネクションが切断される。
The
図6に示すように、通信記録装置1は、WWWサーバ23とプロキシサーバ26との間で通信された各パケット(SYN40〜ACK52)を受信し、各パケットに設定されているTCPデータ103を通信履歴120として記録する。図6では、GET43に設定されたGETm107、Res44とData45とに設定されたResm108が通信記録装置1により通信履歴120として記録される。
通信記録装置1は、Res44に設定されたTCPデータ103とData45に設定されたTCPデータ103とを関連付けてResm108として記録すると共に、GETm107とResm108とを関連付けて記録する。
As shown in FIG. 6, the
The
図7は、実施の形態1におけるGETm107とResm108とが設定された通信履歴120を示す図である。
例えば、通信記録装置1は、図7に示すようにしてGETm107とResm108とを関連付けて記録する。
リクエストポインタ81は、GET43に設定されたGETm107の記録された記憶領域のアドレスを示す。
レスポンスポインタ82は、Resm108の記録された記憶領域として、Res44に設定されたResm108の前半部分の記録された記憶領域のアドレスとData45に設定されたResm108の後半部分の記録された記憶領域のアドレスとをデータの並び順(先頭→終端)に示す。
例えば、GETm107とRes44に設定されたResm108の前半部分とData45に設定された後半部分とは連続する記憶領域に記憶される。
これにより、通信記録装置1は、プロキシサーバ26とWWWサーバ23との間で通信されたメッセージ106を通信履歴120として記録することができる。
リクエストポインタ81とレスポンスポインタ82との組は、プロキシサーバ26とWWWサーバ23との間で通信されたメッセージ106の数分、生成される。
また、各メッセージ106のリクエストポインタ81とレスポンスポインタ82との組は、コネクション毎に管理される。
通信記録装置1により記録される通信履歴のフォーマットは図7に示すものに限られない。
FIG. 7 is a diagram illustrating the communication history 120 in which the
For example, the
The request pointer 81 indicates the address of the storage area in which the
The response pointer 82 includes the address of the storage area recorded in the first half of the
For example, the first half part of
Thereby, the
A set of request pointers 81 and response pointers 82 is generated for the number of messages 106 communicated between the
In addition, a set of request pointer 81 and response pointer 82 of each message 106 is managed for each connection.
The format of the communication history recorded by the
図8は、実施の形態1における通信記録装置1のハードウェア資源の一例を示す図である。
図8において、通信記録装置1は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してキャッシュメモリ907、ROM913、RAM914、通信ボード915、表示装置901、キーボード902、マウス903、FDD904(Flexible・Disk・Drive)、CDD905(コンパクトディスク装置)、プリンタ装置906、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
RAM914、キャッシュメモリ907は主記憶装置の一例であり、揮発性メモリの一例である。ROM913は不揮発性メモリの一例である。FDD904の記憶媒体、CDD905の記憶媒体、磁気ディスク装置920は補助記憶装置の一例であり、不揮発性メモリの一例である。
通信ボード915、キーボード902、FDD904などは、入力機器、入力装置あるいは入力部の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力機器、出力装置あるいは出力部の一例である。
FIG. 8 is a diagram illustrating an example of hardware resources of the
In FIG. 8, the
The
The
The
通信ボード915は複数のポートを備え、各ポートには通信ケーブルの一端が接続され、通信ケーブルの他端はSW27のミラーリングポートに接続される。
The
磁気ディスク装置920には、OS921(オペレーティングシステム)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、OS921、ウィンドウシステム922により実行される。
The
上記プログラム群923には、実施の形態において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
The
ファイル群924には、実施の形態において、「〜部」の機能を実行した際の「〜の判定結果」、「〜の計算結果」、「〜の処理結果」などの結果データ、「〜部」の機能を実行するプログラム間で受け渡しするデータ、その他の情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。通信履歴120はファイル群924に含まれるものの一例である。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、実施の形態において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disc)等の記録媒体に記録される。また、データや信号値は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
In the
The “˜file” and “˜database” are stored in a recording medium such as a disk or a memory. Information, data, signal values, variable values, and parameters stored in a storage medium such as a disk or memory are read out to the main memory or cache memory by the
In addition, arrows in the flowcharts described in the embodiments mainly indicate input / output of data and signals. The data and signal values are the
また、実施の形態において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、「〜部」としてコンピュータを機能させるものである。あるいは、「〜部」の手順や方法をコンピュータに実行させるものである。
In addition, what is described as “˜unit” in the embodiment may be “˜circuit”, “˜device”, “˜device”, and “˜step”, “˜procedure”, “˜”. Processing ". That is, what is described as “˜unit” may be realized by firmware stored in the
図9は、実施の形態1における通信記録装置1の機能構成図である。
実施の形態1における通信記録装置1の機能構成について、図9に基づいて以下に説明する。
FIG. 9 is a functional configuration diagram of the
A functional configuration of the
通信記録装置1は、受信制御部3、TCP解析部4、TCP順序制御部5、アプリケーション解析部6、データ表示部7、入力ポート2および記録部9を備える。
The
入力ポート2は通信ケーブル29に接続され、通信ケーブル29の他端はSW27のミラーリングポートに接続されている。入力ポート2は、通信ケーブル29を介して、SW27のポートモニタ機能により転送されたパケットを入力し、入力したパケットを受信制御部3に出力する。
The
記録部9は、アプリケーション解析部6によりメッセージ106が通信履歴120として記録される補助記憶装置(不揮発性メモリ)(例えば、磁気ディスク装置920、フラッシュメモリ、FD、CD、DVD、)である。
The
受信制御部3は入力ポート2からパケットを入力し、入力した全てのパケットを主記憶装置(揮発性メモリ)(例えば、RAM914、キャッシュメモリ907)に記憶する。受信制御部3には、自宛でないパケットも含めて全てのパケットを受信する動作モード(プロミスカスモード)が設定されている。
The
受信制御部3は、特定のデータを示すアプリケーションデータ(例えば、GETm107、Resm108、メッセージ106)が複数のパケットに分割されて通信される通信ネットワーク(例えば、社内ネットワーク22、インターネット24)に入力ポート2、通信ケーブル29およびSW27を介して接続し、複数のパケットのうち通信ネットワークに送出されたパケットを受信する(パケットを入力ポート2から入力する)。そして、受信制御部3は、受信したパケットを主記憶装置に記憶する。
The
TCP解析部4は、受信制御部3に受信され主記憶装置に記憶された各パケットのTCPヘッダ102を解析する。例えば、TCP解析部4はコネクション情報の設定、検索および削除を行う。
The
TCP順序制御部5は、受信制御部3に受信され主記憶装置に記憶された各パケットについて、TCPヘッダ102に設定されたシーケンス番号(seq)に基づいてTCPパケット104の順序に関する制御を行う。
The TCP
例えば、TCP順序制御部5(順序判定部)は、受信制御部3により第1のTCPデータと第1のTCPデータのシーケンス番号の含まれる第1のTCPヘッダとを含んだ第1のTCPパケットが受信されて主記憶装置に記憶されると共に後述するアプリケーション解析部6(通信記録部)により第1のTCPパケットに含まれる第1のTCPデータが記録部9(補助記憶装置)に記録された後、受信制御部3により第2のTCPデータと第2のTCPデータのシーケンス番号の含まれる第2のTCPヘッダとを含んだ第2のTCPパケットが受信されて主記憶装置に記憶された場合、次のような処理を行う。TCP順序制御部5は、第1のTCPヘッダに含まれる第1のTCPデータのシーケンス番号と第2のTCPヘッダに含まれる第2のTCPデータのシーケンス番号とに基づいて、第2のTCPデータが第1のTCPデータに続くデータであるか否かをCPUを用いて判定する。
For example, the TCP order control unit 5 (order determination unit) causes the
また例えば、TCP順序制御部5(順序判定部)は、第2のTCPデータを第1のTCPデータに続くデータであると判定した場合、主記憶装置に記憶されている第3のTCPパケットに含まれるTCPヘッダを参照する。そして、TCP順序制御部5は、参照したTCPヘッダに含まれるシーケンス番号に基づいて、第3のTCPパケットに含まれる第3のTCPデータが第2のTCPデータに続くデータであるか否かを判定する。
Further, for example, when the TCP sequence control unit 5 (order determination unit) determines that the second TCP data is data subsequent to the first TCP data, the TCP sequence control unit 5 (order determination unit) adds the third TCP packet stored in the main storage device to the third TCP packet. Refer to the included TCP header. Then, the TCP
アプリケーション解析部6は、受信制御部3により受信され主記憶装置に記憶された各パケットについて、TCPデータ103を解析して記録部9に記録する。
The
例えば、アプリケーション解析部6(通信記録部)は、メッセージ106を分割した複数のパケットのうち一部のパケットが受信制御部3により主記憶装置に記憶されたときに、主記憶装置から一部のパケットを読み出し、読み出した一部のパケットに含まれるメッセージ106の一部を記録部9に通信履歴の一部として記録する。
For example, the application analysis unit 6 (communication recording unit), when a part of the plurality of packets obtained by dividing the message 106 is stored in the main storage device by the
また例えば、アプリケーション解析部6は、受信制御部3により主記憶装置に記憶されたTCPパケット104に含まれるTCPヘッダ102を参照する。そして、アプリケーション解析部6は、参照したTCPヘッダ102に含まれるシーケンス番号(seq)に基づいて、TCPパケット104に含まれるTCPデータ103をメッセージ106内での並び位置に対応させて記録部9に記録する。
For example, the
また例えば、アプリケーション解析部6は、主記憶装置に記憶されている第2のTCPデータが記録部9に記録されている第1のTCPデータに続くデータであるとTCP順序制御部5により判定された場合、第2のTCPデータを主記憶装置から読み出し、読み出した第2のTCPデータを第1のTCPデータに続かせて記録部9に記録する。
Further, for example, the
また例えば、アプリケーション解析部6は、主記憶装置に記憶されている第2のTCPデータが記録部9に記録されている第1のTCPデータに続くデータであるとTCP順序制御部5により判定されると共に、主記憶装置に記憶されている第3のTCPデータが第2のTCPデータに続くデータであると判定された場合、次のような処理を行う。アプリケーション解析部6は、第2のTCPデータと第3のTCPデータとを主記憶装置から読み出し、第2のTCPデータを第1のTCPデータに続かせて記録部9に記録すると共に第3のTCPデータを第2のTCPデータに続かせて記録部9に記録する。
Further, for example, the
データ表示部7は、記録部9に記録された通信履歴120を表示装置901に表示したり、プリンタ装置906から印刷したりする。
The
図10は、実施の形態1における通信記録装置1の通信記録方法を示すフローチャートである。
実施の形態1における通信記録装置1の通信記録方法について、図10に基づいて以下に説明する。
通信記録装置1の各部は、以下に説明する各処理をCPUを用いて実行する。
FIG. 10 is a flowchart showing a communication recording method of the
A communication recording method of the
Each unit of the
<S110:受信制御処理>
受信制御部3はIPパケット105を入力ポート2から入力して受信し、受信したIPパケット105をメモリ(主記憶装置)に記憶する。
受信制御部3により受信されメモリに記憶されるIPパケット105は、図1において、プロキシサーバ26とWWWサーバ23との間およびプロキシサーバ26と端末21との間で通信されているIPパケット105であり、SW27のポートモニタ機能により転送されたIPパケット105である。IPパケット105のTCPデータ103は社内ネットワーク22の端末21からインターネット24のWWWサーバ23へのメッセージ106およびインターネット24のWWWサーバ23から社内ネットワーク22の端末21へのメッセージ106を示す。サイズの大きいメッセージ106は複数に分割され、それぞれがTCPデータ103として複数のIPパケット105により送信される。
<S110: Reception control processing>
The
The IP packet 105 received by the
<S120:TCP解析処理>
次に、TCP解析部4はS110で受信制御部3により受信されメモリに記憶されたIPパケット105に含まれるTCPパケット104を参照し、TCPヘッダ102に基づいてTCPパケット104を解析する。
例えば、TCP解析部4は、図6において、TCPパケット104がSYN40、SYN/ACK41、ACK42、GET43、Res44、Data45、ACK47、FIN/ACK50、FIN/ACK51またはACK52のいずれであるかを識別する。
また例えば、TCP解析部4は、SYN40およびSYN/ACK41に基づいてコネクション情報の設定を行う。
<S120: TCP analysis processing>
Next, the
For example, in FIG. 6, the
For example, the
<S130:TCP順序制御処理>
次に、TCP順序制御部5は各TCPデータ103の並びの順序を判定する。
例えば、TCP順序制御部5はIPパケット105に含まれるTCPパケット104を参照し、TCPヘッダ102に設定されているシーケンス番号(seq)に基づいて分割前のメッセージ106内でのTCPデータ103の並び位置を特定する。
<S130: TCP order control process>
Next, the TCP
For example, the TCP
<S140:アプリケーション解析処理>
そして、アプリケーション解析部6は各TCPデータ103を順序通りに並べてメッセージ106を通信履歴120として記録部9に記録する。
例えば、アプリケーション解析部6は各TCPデータ103をIPパケット105から取得し、取得した各TCPデータ103を分割前のメッセージ106内での並び位置に対応させて通信履歴として記録部9に記録する。
<S140: Application Analysis Processing>
Then, the
For example, the
<S150:データ表示処理>
また、データ表示部7は記録部9から通信履歴120を取得し、取得した通信履歴120を表示装置901に表示したり、プリンタ装置906から印刷したりする。
<S150: Data Display Processing>
Further, the
図11は、実施の形態1における通信記録方法のTCP解析処理(S120)〜アプリケーション解析処理(S140)の詳細を示すフローチャートである。
実施の形態1における通信記録方法のTCP解析処理(S120)〜アプリケーション解析処理(S140)の詳細について、図11に基づいて以下に説明する。
FIG. 11 is a flowchart showing details of TCP analysis processing (S120) to application analysis processing (S140) of the communication recording method according to the first embodiment.
Details of the TCP analysis process (S120) to the application analysis process (S140) of the communication recording method according to the first embodiment will be described below with reference to FIG.
実施の形態1の通信記録方法において、受信制御処理(S110)で受信制御部3によりIPパケット105が新たに受信されメモリに記憶された場合、新たなIPパケット105に対して図11で示すTCP解析処理(S120)〜アプリケーション解析処理(S140)が実行される。
In the communication recording method of the first embodiment, when the IP packet 105 is newly received and stored in the memory by the
まず、TCP解析処理(S120)として以下の処理が実行される。
TCP解析部4はメモリに新たに記憶されたIPパケット105のTCPヘッダ102を参照し、TCPパケット104がコネクション確立時に送信されるSYN40またはSYN/ACK41であるか、コネクション切断時に送信されるFIN/ACK50であるか、その他のTCPパケット104であるかを判定する。以下、メモリに新たに記憶されたIPパケット105を「受信パケット」という(S1)。
First, the following processing is executed as TCP analysis processing (S120).
The
S1においてTCPパケット104がSYN40またはSYN/ACK41であった場合、TCP解析部4はTCPヘッダ102およびIPヘッダ101に基づいてコネクション情報を生成する(S4)。
When the TCP packet 104 is
このとき、TCP解析部4は、SYN40がメモリに記憶された場合、IPヘッダ101に設定されている「送信元IPアドレス」および「送信先IPアドレス」、TCPヘッダ102に設定されている「送信元ポート番号」および「送信先ポート番号」をコネクションを識別する情報(以下、「コネクション識別子」という)として、コネクション情報を生成する。また、TCP解析部4はSYN40のTCPヘッダ102に設定されている「シーケンス番号(seq)」に「1」を加算した値をSYN40の送信元のNextSeqとしてコネクション情報に設定する。
また、TCP解析部4は、SYN/ACK41がメモリに記憶された場合、TCPヘッダ102に設定されているseqに「1」を加算した値をSYN/ACK41の送信元のNextSeqとしてコネクション情報に設定する。
「NextSeq」は次に記録部9に記録されるTCPデータ103のシーケンス番号を示す。
At this time, when the
Further, when SYN /
“NextSeq” indicates the sequence number of the TCP data 103 recorded in the
S4の処理後、TCP解析部4は受信パケット(SYN40およびSYN/ACK41)をメモリから消去する。以下、メモリからの消去を「廃棄」という(S2)。
受信パケット(SYN40およびSYN/ACK41)に対する処理はこれで終了する。
After the processing of S4, the
This completes the processing for the received packets (
S1においてTCPパケット104がFIN/ACK50であった場合、TCP解析部4はTCPヘッダ102およびIPヘッダ101に基づいて対応するコネクション情報を特定し、特定したコネクション情報を削除する(S4b)。
When the TCP packet 104 is FIN /
S4bの処理後、TCP解析部4は、TCPデータ103が含まれていないため(S11)、受信パケット(FIN/ACK50)を廃棄する(S2)。
受信パケット(FIN/ACK50)に対する処理はこれで終了する。
After the process of S4b, the
This completes the processing for the received packet (FIN / ACK 50).
S1においてTCPパケット104がその他の種類であった場合、TCP解析部4はTCPヘッダ102に基づいて受信パケットのTCPステートが正しいか否かを判定する(S3)。
If the TCP packet 104 is of another type in S1, the
例えば、TCP解析部4は、受信パケットのコネクション識別子で識別されるコネクション情報の有無を調べ、コネクション情報が有ればTCPステートを「OK」とし、コネクション情報が無ければTCPステートを「NG」とする。
For example, the
S3においてTCPステートが「NG」であった場合、TCP解析部4は受信パケットを廃棄する(S2)。
If the TCP state is “NG” in S3, the
S3においてTCPステートが「OK」であった場合、TCP解析部4はTCPデータ103のサイズが「0」であるか否かを判定する。TCPデータ103のサイズはIPヘッダ101に設定されているIPパケット105の「パケット長」からIPヘッダ101に設定されているIPヘッダ101の「ヘッダ長」を減算して求められる。以下、受信パケットのTCPデータ103を「受信データ」とし、受信データのサイズを「受信サイズ」とする(S11)。
If the TCP state is “OK” in S3, the
S11において受信サイズが「0」であった場合、TCP解析部4は受信パケットを廃棄する(S2)。
If the reception size is “0” in S11, the
次に、S11において受信サイズが「0」でないと判定された受信パケットに対して順序判定処理S131がTCP順序制御処理S130として以下のように実行される。 Next, the order determination process S131 is executed as the TCP order control process S130 as follows for the received packet determined that the reception size is not “0” in S11.
TCP順序制御部5は、受信パケットのTCPヘッダ102と受信パケットのコネクション情報とを参照し、受信パケットのTCPヘッダ102に設定されているseqとコネクション情報に設定されている受信パケットの送信元のNextSeqとが同じか否かを判定する(S5)。
The TCP
S5においてseqとNextSeqとが同じでなかった場合、つまり、順序通りに受信データを受信できなかった場合、受信パケットに対する処理は終了する。このとき、受信パケットは廃棄されずメモリに記憶されたまま保持される。以下、メモリに保持された受信パケットを「保持パケット」という(S7)。 If seq and NextSeq are not the same in S5, that is, if the received data cannot be received in order, the processing for the received packet ends. At this time, the received packet is not discarded but is stored in the memory. Hereinafter, the received packet held in the memory is referred to as “held packet” (S7).
S5においてseqとNextSeqとが同じであった場合、TCP順序制御部5は受信データに付与できるTCPデータ103を含む保持パケット(以下、「付与パケット」という)が有るか否かを判定する(S50)。
When seq and NextSeq are the same in S5, the TCP
このとき、TCP順序制御部5は受信パケットのseqに受信サイズを加算した値がseqとして設定されている保持パケットを付与パケットとして特定する。付与パケットのTCPデータ103は受信データとseqが連続し、メッセージ106内で受信データの後に続くデータである。
さらに、TCP順序制御部5は、同様にして、付与パケットに対する第2の付与パケット、第2の付与パケットに対する第3の付与パケットというように、TCPデータ103が受信データのシーケンス番号から連続する関係にある付与パケットを全て特定する。
At this time, the TCP
Further, the TCP
S50において付与パケットが無かった場合、TCP順序制御部5は受信パケットをアプリケーション解析部6に通知し、アプリケーション解析部6は受信パケットに対して以下に説明するアプリケーション解析処理(S140)を実行する。
アプリケーション解析処理(S140)の実行後、受信パケットに対する処理は終了する。
If there is no grant packet in S50, the TCP
After the application analysis process (S140) is executed, the process for the received packet ends.
S50において付与パケットが有った場合、TCP順序制御部5は受信パケットとS50で特定した付与パケットとを受信パケットとしてアプリケーション解析部6に通知し(S51)、アプリケーション解析部6は受信パケット(付与パケットを含む)に対して以下に説明するアプリケーション解析処理(S140)を実行する。
アプリケーション解析処理(S140)の実行後、受信パケットに対する処理は終了する。
When there is a grant packet in S50, the TCP
After the application analysis process (S140) is executed, the process for the received packet ends.
図12は、実施の形態1における通信記録方法のアプリケーション解析処理(S140)の詳細を示すフローチャートである。
実施の形態1における通信記録方法のアプリケーション解析処理(S140)の詳細について、図12に基づいて以下に説明する。
FIG. 12 is a flowchart showing details of application analysis processing (S140) of the communication recording method according to the first embodiment.
Details of the application analysis process (S140) of the communication recording method according to the first embodiment will be described below with reference to FIG.
アプリケーション解析部6は受信パケットをメモリから読み出して受信データを記録部9に記録し、受信パケットをメモリから消去する。受信パケットに付与パケットが含まれる場合、アプリケーション解析部6は、さらに、付与パケットをメモリから読み出して付与パケットに設定されているTCPデータ103(以下、「付与データ」という)を記録部9に記録し、付与パケットを削除する(S13)。
The
このとき、アプリケーション解析部6は受信パケットのseqを参照し、受信データをseqに対応させて記録部9に記録する。例えば、アプリケーション解析部6は図7に示したような形式で受信データをメッセージ106の一部として記録する。例えば、図7において、Resm108がRes44とData45とに分割されて送信された場合、アプリケーション解析部6は、レスポンスポインタ82に、Res44のTCPデータ103として設定されたResm108の前半部分の記録された記憶領域のアドレスを第1のポインタとして設定する。さらに、アプリケーション解析部6は、レスポンスポインタ82に、Data45のTCPデータ103として設定されたResm108の後半部分の記録された記憶領域のアドレスを第2のポインタとして設定する。さらに、Resm108の前半部分(Res44に設定されたTCPデータ103)と後半部分(Data45に設定されたTCPデータ103)とは、第1のポインタと第2のポインタとが「第1のポインタ<第2のポインタ」の関係を満たすように記憶される。さらに、Resm108の前半部分と後半部分とは、連続する記憶領域に記録される。リクエストポインタ81およびレスポンスポインタ82は新たなメッセージ106の受信データが記録される際に新たに生成され、メッセージ106を構成する受信データの記録の度に受信データの記録領域を示すアドレスが追加される。
At this time, the
さらに、アプリケーション解析部6は、S13で受信データ(付与データを含む)を記録部9に記録したため、受信パケットの送信元のNextSeqに受信サイズ(付与データのサイズを含む。以下、付与データのサイズを「付与サイズ」という)を加算して受信パケットのコネクション情報を更新する。「NextSeq」は次に記録部9に記録されるTCPデータ103のseqを示す(S21)。
受信パケットに対するアプリケーション解析処理(S140)はこれで終了する。
Further, since the
The application analysis process (S140) for the received packet ends here.
次に、図6に示した通信シーケンスを例にして、図11および図12に示したTCP解析処理(S120)〜アプリケーション解析処理(S140)を説明する。 Next, the TCP analysis process (S120) to the application analysis process (S140) illustrated in FIGS. 11 and 12 will be described using the communication sequence illustrated in FIG. 6 as an example.
端末21からの情報取得要求は、プロキシサーバ26を経由してWWWサーバ23に通知される。プロキシサーバ26がインターネット24に対して送受信するパケットはSW27経由で通信記録装置1に通知される。WWWサーバ23への接続に使用されるHTTPプロトコルはTCP上で動作するため、プロキシサーバ26は、コネクションの確立のため、SYN40を送信する。通信記録装置1の受信制御部3はすべてのパケットを受信するプロミスカスモードに設定され、他ホスト宛のパケットを受信できる。
An information acquisition request from the terminal 21 is notified to the WWW server 23 via the
受信制御部3によりSYN40が受信されたら、TCP解析部4はTCPの種類およびTCPステートをチェックする(ステップ1、3)。TCP解析部4は、受信したパケットの送信元IPアドレス、送信先(宛先)IPアドレス、送信元ポート番号及び送信先(宛先)ポート番号が内部に登録されているかを解析し、登録されていなければパケット内のアドレス、ポート番号をコネクション情報として登録する(ステップ4)。以降、TCP解析部4は、パケットが受信された際、確立されたコネクション上でパケットが送受信されているかをチェックする(ステップ3)。そして、TCP解析部4は、コネクション未確立でパケットが送信されている場合、TCPステートエラーとしてパケットを廃棄する(ステップ2)。コネクション情報は、コネクション確立後、通信が行われている間保持され、コネクション切断パケット(FIN/ACK50)が受信された時に削除される(ステップ4b)。受信されたSYN40は、TCPステートチェック後、廃棄される(ステップ2)。
When the
SYN40を受信したWWWサーバ23は、SYN/ACK41を送信する。SYN/ACK41は、TCP解析部4でのチェック(ステップ3)後に廃棄される(ステップ2)。
The WWW server 23 that has received the
次に、プロキシサーバ26はACK42を送信する。通信記録装置1はプロキシサーバ26が送信したACK42を受信する。このとき、「社内(プロキシサーバ26)→インターネット(WWWサーバ23)」の向きで送信されるパケットのNextSeq(O)(以下、プロキシサーバ26のNextSeq(O)という)は「100」である。また、「社内(プロキシサーバ26)←インターネット(WWWサーバ23)」の向きで送信されるパケットのNextSeq(I)(以下、WWWサーバ23のNextSeq(I)という)は「701」である。
次に、TCP解析部4は、ACK42のデータサイズ(TCPデータ103のサイズ、受信サイズ)をチェックするが(S11)、サイズが「0」のためACK42を廃棄する(ステップ2)。
Next, the
Next, the
次に、プロキシサーバ26はGET43を送信する。受信制御部3によりGET43が受信された場合、TCP解析部4は、GET43のTCP種類(“以外”)を判定し(ステップ1)、TCPステート(“OK”)を判定し(ステップ3)、受信サイズ(>0)を判定する(ステップ11)。
次に、TCP順序制御部5は、プロキシサーバ26のNextSeq(O)と受信したGET43のTCPシーケンス番号とを比較する(ステップ5)。NextSeq(O)は「100」であり、GET43のシーケンス番号と一致する。
次に、TCP順序制御部5は、保持しているデータの中で受信したデータの後方に位置するデータがあるかどうかを解析する(ステップ50)。
GET43に対する保持データはないため、次に、アプリケーション解析処理(ステップ140)が実行される。
アプリケーション解析処理(ステップ140)では、GET43のメッセージヘッダ71およびメッセージボディ72が記録部9に記録され(ステップ13)、NextSeq(O)が受信サイズ分更新され「200」になる(ステップ21)。
Next, the
Next, the TCP
Next, the TCP
Since there is no retained data for the
In the application analysis process (step 140), the message header 71 and message body 72 of the
GET43を受信したWWWサーバ23はRes44およびData45を送信する。
受信制御部3によりRes44が受信された場合、TCP解析部4は、GET43と同様に、Res44に対してTCP解析処理(ステップ120)を行う。
次に、TCP順序制御部5は、WWWサーバ23のNextSeq(I)と受信したRes44のTCPシーケンス番号とを比較する(ステップ5)。NextSeq(I)は「701」であり、Res44のシーケンス番号と一致する。
次に、TCP順序制御部5は、保持しているデータの中で受信したデータの後方に位置するデータがあるかどうかを解析する(ステップ50)。
Res44に対する保持データはないため、次に、アプリケーション解析処理(ステップ140)が実行される。
アプリケーション解析処理(ステップ140)では、Res44のメッセージヘッダ71およびメッセージボディ72が記録部9に記録され(ステップ13)、NextSeq(I)が受信サイズ分更新され「1701」になる(ステップ21)。
Data45もRes44と同様に処理されて記録部9に記録され、NextSeq(I)は「2701」に更新される。
The WWW server 23 that has received the
When
Next, the TCP
Next, the TCP
Since there is no retained data for Res44, application analysis processing (step 140) is executed next.
In the application analysis process (step 140), the message header 71 and message body 72 of Res44 are recorded in the recording unit 9 (step 13), and NextSeq (I) is updated by the received size to become “1701” (step 21).
Data45を受信したプロキシサーバ26はACK47を送信する。
受信制御部3によりACK47が受信された場合、ACK47はデータサイズが「0」のため廃棄される(ステップ2)。
The
When the
以降、コネクション切断のためFIN/ACK50、FIN/ACK51、ACK52がプロキシサーバ26とWWWサーバ23との間でやりとりされ受信制御部3により受信されるが、いずれも廃棄され(ステップ2)、処理は終了する。このとき、TCPコネクションが切断されるため、TCP解析部4はコネクション情報を削除する(ステップ4b)。
Thereafter, FIN /
図13は、実施の形態1における通信シーケンスの一例を示す図である。
次に、パケットがメッセージ106内での並び順とは異なる順序で送信先に届いた場合のTCP解析処理(S120)〜アプリケーション解析処理(S140)について、図11〜図13に基づいて説明する。
図13では、図6に対してRes44とData45との順序が逆転している。
FIG. 13 is a diagram illustrating an example of a communication sequence according to the first embodiment.
Next, TCP analysis processing (S120) to application analysis processing (S140) in a case where the packets arrive at the transmission destination in an order different from the arrangement order in the message 106 will be described with reference to FIGS.
In FIG. 13, the order of
SYN40〜GET43に対する動作は図6に基づく上記の例と同様である。
GET43に対する動作後、プロキシサーバ26のNextSeq(O)は「200」であり、WWWサーバ23のNextSeq(I)は「701」である。
The operations for
After the operation for the
受信制御部3によりData45が受信された場合、TCP解析部4によるTCP解析処理(S120)の後、TCP順序制御部5は、WWWサーバ23のNextSeq(I)と受信したData45のTCPシーケンス番号とを比較する(ステップ5)。ここでは、NextSeq(I)「701」とData45のシーケンス番号「1701」とが不一致のため、Data45は記録部9に記録されず、メモリに保持される(ステップ7)。
When
次に、受信制御部3によりRes44が受信されると、TCP解析部4によるTCP解析処理(S120)の後、TCP順序制御部5は、WWWサーバ23のNextSeq(I)と受信したRes44のTCPシーケンス番号とを比較する(ステップ5)。このとき、NextSeq(I)「701」とRes44のシーケンス番号「701」とは一致する。そのため、TCP順序制御部5は、保持しているデータにこのRes44の後ろに付与できるデータがあるかどうかをチェックする(ステップ50)。保持パケットには先に受信したData45があるため、TCP順序制御部5はRes44の後ろにData45を付与したものを受信パケットとしてアプリケーション解析部6に通知する(ステップ51)。
アプリケーション解析処理(S140)では、図6に基づく先の例と同様に、Res44のメッセージヘッダ71とメッセージボディ72およびData45のメッセージボディ72が記録部9に記録され(ステップ13)、NextSeq(I)が受信サイズ分(Res44のTCPデータ103のサイズ+Data45のTCPデータ103のサイズ)更新され「2701」になる(ステップ21)。
Next, when
In the application analysis process (S140), as in the previous example based on FIG. 6, the message header 71 of Res44, the message body 72, and the message body 72 of Data45 are recorded in the recording unit 9 (step 13), and NextSeq (I) Is updated by the received size (the size of the TCP data 103 of Res44 + the size of the TCP data 103 of Data45) to become “2701” (step 21).
ACK47〜ACK52に対する動作は図6に基づく上記の例と同様である。
The operations for
実施の形態1では、以下のような通信記録装置1および通信記録装置1のアプリケーションデータ解析方法(通信記録方法)について説明した。
In the first embodiment, the following
通信記録装置1は、受信制御部3、TCP解析部4、TCP順序制御部5、アプリケーション解析部6、記録部9およびデータ表示部7を有し、受信したデータのシーケンス番号を解析し、データが順序どおり到着した場合は、データを組み立てバッファ(主記憶装置、メモリ)に保持せずにアプリケーション解析を実施して記録する。
受信制御部3は、ネットワークから他ホスト宛のパケットを含めすべてのパケットを受信する。
TCP解析部4は、受信制御部3により受信されたパケットのTCPステートを解析する。
TCP順序制御部5は、パケットの順序が逆転していた場合に正しい順序になるよう制御する。
アプリケーション解析部6は、アプリケーションデータ(メッセージ106)を解析する。
記録部9は、アプリケーション解析部6の解析結果(アプリケーションデータ)が記録される。
データ表示部7は、記録部9のデータを表示する。
The
The
The
The TCP
The
The
The
以上のように、通信記録装置1は、他ホスト宛のデータに対して受信したデータのシーケンス番号とNextSeqとを比較し、一致する場合、つまり、データが順序どおり到着した場合にはデータを保持しないでアプリケーション解析を実行する。このため、通信記録装置1はメモリなどのリソースを消費せず、アプリケーションデータを記録することができる。
また、通信記録装置1は、シーケンス番号が一致しない場合にはデータを保持し、このデータの前に位置するデータを受信した時点で保持データを付与してアプリケーション解析を実施する。このため、通信記録装置1はパケットの順序が逆転した場合にもアプリケーションデータを記録することができる。
As described above, the
Further, the
実施の形態2.
実施の形態2では、通信記録装置1が複数のメッセージ106の含まれるパケットを処理する形態について説明する。例えば、複数のメッセージ106が含まれるパケットとは、先に送信された第1のメッセージの終端を含む部分と第1のメッセージの後で送信された第2のメッセージの先頭を含む部分とが含まれるパケットである。
以下、実施の形態1と異なる事項について主に説明し、説明を省略する事項については実施の形態1と同様であるものとする。
In the second embodiment, a mode in which the
Hereinafter, items different from the first embodiment will be mainly described, and items omitted will be the same as those of the first embodiment.
図14は、実施の形態2における通信記録装置1の機能構成図である。
図14において、実施の形態2における通信記録装置1は、実施の形態1の通信記録装置1の構成に加えて、終端検知部10を備える。
FIG. 14 is a functional configuration diagram of the
In FIG. 14, the
終端検知部10は、受信制御部3により受信され主記憶装置に記憶された各パケットからメッセージ106の終端を検出する。
The
例えば、終端検知部10(終端特定部)は、受信制御部3により主記憶装置に記憶された複数のパケットそれぞれのサイズと複数のパケットに含まれる複数のメッセージ106それぞれのサイズとに基づいて、複数のパケットのうち各メッセージ106の終端が含まれるパケットを終端パケットとしてCPUを用いて特定する。
For example, the termination detection unit 10 (termination specifying unit) is based on the size of each of the plurality of packets stored in the main storage device by the
また例えば、終端検知部10(終端特定部)は、終端パケットに第1のアプリケーションデータの終端と第2のアプリケーションデータの先頭とが含まれているか否かを判定する。 Further, for example, the termination detection unit 10 (terminating unit) determines whether the termination packet includes the termination of the first application data and the beginning of the second application data.
アプリケーション解析部6は、終端検知部10により特定された各メッセージ106の終端パケットに基づいて、受信制御部3により主記憶装置に記憶された複数のパケットをメッセージ106毎に区別する。そして、アプリケーション解析部6は、複数のパケットに含まれる複数のメッセージ106をメッセージ106毎に区別して記録部9に記録する。
The
また、アプリケーション解析部6は、後述する終端検知部10により終端パケットに第1のアプリケーションデータの終端と第2のアプリケーションデータの先頭とが含まれていると判定された場合、次のような処理を行う。アプリケーション解析部6は、終端パケットから第1のアプリケーションデータと第2のアプリケーションデータとを抽出し、第1のアプリケーションデータと第2のアプリケーションデータとを区別して記録部9に記録する。
In addition, when the
図15は、分割されたメッセージ106を示す図である。
図15において、メッセージ106aのサイズが大きい場合、メッセージ106aは複数に分割され、複数のパケットで送信される。また、メッセージ106aの終端を含んだパケットには、メッセージ106aの終端部分を含めてTCPデータ103のサイズが所定の最大サイズになるように、メッセージ106aの次に送信されるメッセージ106bの先頭部分が設定される。
例えば、メッセージ106aのサイズが1500バイト(byte)であり、メッセージ106bのサイズが500バイトであり、TCPデータ103の最大サイズが1000バイトである場合、メッセージ106aとメッセージ106bとは、メッセージ106aの先頭部分が設定されたRes44と、メッセージ106aの終端部分およびメッセージ106b(先頭部分〜終端部分)が設定されたData/Res53(終端パケット)との2つのパケットで送信される。
FIG. 15 is a diagram showing the divided message 106.
In FIG. 15, when the size of the message 106a is large, the message 106a is divided into a plurality of pieces and transmitted in a plurality of packets. Further, in the packet including the end of the message 106a, the head portion of the message 106b transmitted next to the message 106a is included in the packet including the end portion of the message 106a so that the size of the TCP data 103 becomes a predetermined maximum size. Is set.
For example, when the size of the message 106a is 1500 bytes (bytes), the size of the message 106b is 500 bytes, and the maximum size of the TCP data 103 is 1000 bytes, the message 106a and the message 106b are the top of the message 106a. The packet is transmitted in two packets:
図16は、実施の形態2における通信記録方法のアプリケーション解析処理(S140)の詳細を示すフローチャートである。
実施の形態2における通信記録方法のアプリケーション解析処理(S140)の詳細について、図16に基づいて以下に説明する。
TCP解析処理(S120)〜TCP順序制御処理(S130)は、実施の形態1(図11)と同じである。
FIG. 16 is a flowchart showing details of application analysis processing (S140) of the communication recording method according to the second embodiment.
Details of the application analysis process (S140) of the communication recording method according to the second embodiment will be described below with reference to FIG.
The TCP analysis process (S120) to the TCP order control process (S130) are the same as those in the first embodiment (FIG. 11).
まず、アプリケーション解析部6は受信データがメッセージ106の先頭であるか否かを判定する(S16)。
First, the
例えば、アプリケーション解析部6は後述するコンテントサイズと後述する記録サイズとを比較し、コンテントサイズと記録サイズとが一致する場合に受信データはメッセージ106の先頭であると判定する。
コンテントサイズはメッセージ106のメッセージボディ72のサイズを示し、記録サイズはメッセージ106のメッセージボディ72のうち記録部9に記録されたデータのサイズを示す。コンテントサイズと記録サイズとはTCP解析部4によるコネクション情報の生成時(S4)に初期値として「0」が設定されているものとする。コンテントサイズと記録サイズとは、コネクションを確立する双方それぞれに対して設定される。以下、「コンテントサイズ」および「記録サイズ」は“送信先”と明示しない場合、受信パケットの送信元に対するものとする。コンテントサイズと記録サイズとが同じであるのは、最初の受信データが受信された場合およびメッセージボディ72が全て記録された場合のいずれかである。つまり、コンテントサイズと記録サイズが同じである場合、新たな受信データはメッセージ106の先頭を示す。
For example, the
The content size indicates the size of the message body 72 of the message 106, and the recording size indicates the size of the data recorded in the
S16において受信データがメッセージ106の先頭であった場合、アプリケーション解析部6は受信パケットのコネクション情報に設定されている記録サイズを「0」に初期化する(S17)。
If the received data is the head of the message 106 in S16, the
さらに、アプリケーション解析部6は、受信データの先頭から所定の位置に設定されているコンテントサイズ(メッセージヘッダ71のヘッダフィールド64内)を取得し、受信パケットのコネクション情報に設定する。また、受信サイズ(付与サイズを含む)からメッセージヘッダ71のサイズを減算した値を「受信サイズB」として受信パケットのコネクション情報に設定する(S18)。
Further, the
S16において受信データがメッセージ106の先頭でなかった場合、アプリケーション解析部6は受信サイズを受信サイズBに設定する(S18b)。
If the received data is not the head of the message 106 in S16, the
次に、終端検知部10は受信サイズBと記録サイズとの合計値とコンテントサイズとを大小比較する。受信サイズBと記録サイズとの合計値とコンテントサイズとが同じであるとき、受信データの終端はメッセージ106の終端となる(S19)。
Next, the
コンテントサイズが受信サイズBと記録サイズとの合計値より大きい場合とは、メッセージ106を分割する全てのパケットが受信されていないことを意味する。また、コンテントサイズが受信サイズBと記録サイズとの合計値と等しい場合とは、メッセージ106を分割する全てのパケットが受信され、且つ、受信データに次のメッセージ106が含まれていないことを意味する。 The case where the content size is larger than the total value of the reception size B and the recording size means that all the packets that divide the message 106 have not been received. Further, the case where the content size is equal to the total value of the reception size B and the recording size means that all the packets that divide the message 106 are received and the next message 106 is not included in the received data. To do.
S19においてコンテントサイズが受信サイズと記録サイズとの合計値以上であった場合、アプリケーション解析部6は、実施の形態1(図12)と同様に、受信パケット(付与パケットを含む)に受信データとして設定されているメッセージボディ72を受信サイズB分、記録部9に記録する。S16において受信データがメッセージ106の先頭であった場合、メッセージヘッダ71も記録される(S13)。
When the content size is equal to or larger than the total value of the reception size and the recording size in S19, the
また、アプリケーション解析部6は、S13において受信サイズB分のメッセージボディ72を記録部9に記録したため、受信サイズBを加算して記録サイズを更新する(S20)。
Further, since the
また、アプリケーション解析部6は、実施の形態1(図12)と同様に、受信サイズを加算して送信元のNextSeqを更新する(S21)。
受信パケットに対するアプリケーション解析処理(S140)はこれで終了する。
Further, the
The application analysis process (S140) for the received packet ends here.
また、S19においてコンテントサイズが受信サイズと記録サイズとの合計値未満であった場合、つまり、受信データに第1のメッセージの終端を含む部分(メッセージボディ72の終端部分)が設定されていると共に第1のメッセージの終端の後に続いて第2のメッセージの先頭を含む部分が設定されている場合、アプリケーション解析部6は受信データ(付与データを含む)から第1のメッセージ部分を切り出す。以下、切り出した第1のメッセージを「切り出しデータ」とする(S22)。
If the content size is less than the total value of the reception size and the recording size in S19, that is, a portion including the end of the first message (end portion of the message body 72) is set in the reception data. When the part including the head of the second message is set after the end of the first message, the
次に、アプリケーション解析部6はS22で受信データから切り出した切り出しデータ(メッセージボディ72の終端部分)を記録部9に記録する(S13b)。
Next, the
このとき、アプリケーション解析部6は、S13と同様に、切り出しデータをシーケンス番号に対応させて記録部9に記録する。切り出しデータはメッセージ106の最終データとして記録部9に記録される。
At this time, the
また、アプリケーション解析部6は、S22で受信データから切り出しデータ(メッセージボディ72の終端部分)を切り出したため、切り出しデータのサイズ(以下、切り出しサイズとする)を減算して受信サイズを更新する(S23)。
In addition, since the
また、アプリケーション解析部6は、S13bにおいて切り出しデータを記録部9に記録したため、切り出しサイズを加算して記録サイズを更新する(S24)。
In addition, since the
さらに、アプリケーション解析部6は、S13bで切り出しデータを記録部9に記録したため、切り出しサイズを加算して送信元のNextSeqを更新する(S25)。
Furthermore, since the
そして、アプリケーション解析部6は、S22で切り出しデータが切り出した残りの受信データ(付与データを含む)に対して、S16以降の処理を実行する。
このとき、S24において記録サイズが更新されているため、コンテントサイズと記録サイズとが等しく、受信データはメッセージ106の先頭と判断される(S16)。
And the
At this time, since the recording size is updated in S24, the content size is equal to the recording size, and the received data is determined to be the head of the message 106 (S16).
図17は、実施の形態2における通信シーケンスの一例を示す図であり、実施の形態1の図6に対してData45をData/Res53に置き換えたものである。
図15で説明したように、Data/Res53はメッセージ106aの終端部分とメッセージ106b(先頭部分〜終端部分)とがTCPデータ103として設定されたパケットである。
図17に示す通信シーケンスを例にして、図16に示したアプリケーション解析処理(S140)を説明する。
FIG. 17 is a diagram illustrating an example of a communication sequence according to the second embodiment, in which
As described with reference to FIG. 15, Data /
The application analysis process (S140) shown in FIG. 16 will be described using the communication sequence shown in FIG. 17 as an example.
SYN40〜ACK42は、実施の形態1で説明したように、TCP解析処理(S120)で廃棄され(S2)、アプリケーション解析処理(S140)は実行されない。
As described in the first embodiment,
次に、プロキシサーバ26からWWWサーバ23に送信されたGET43は、実施の形態1で説明したように、受信制御部3により受信されてメモリに記憶され(S110)、TCP解析部4によりTCP解析処理(S120)され、TCP順序制御部5によりTCP順序制御処理(S130)され、アプリケーション解析部6に受信パケットとして通知される。
Next, as described in the first embodiment, the
図16において、アプリケーション解析部6は、GET43がメッセージ106の先頭か否かを判定する(S16)。このとき、プロキシサーバ26用のコンテントサイズと記録サイズとは共に初期値「0」であるため、GET43はメッセージ106の先頭と判断される。そこで、アプリケーション解析部6は、記録サイズを初期化し(S17)、コンテントサイズの取得と受信サイズBの設定とを行う(S18)。
次に、終端検知部10は、受信サイズBと記録サイズとの合計値とコンテントサイズとを大小比較する(S19)。ここで、受信サイズBは「100(からメッセージヘッダ71のサイズを引いたもの)」、記録サイズは「0」、コンテントサイズは「100(からメッセージヘッダ71のサイズを引いたもの)」であるから受信サイズBと記録サイズとの合計値はコンテントサイズと等しい。そこで、アプリケーション解析部6は、GET43を記録部9に記録し(S13)、記録サイズを受信サイズBを加算した値に更新し(S20)、プロキシサーバ26のNextSeqを受信サイズを加算した「200」に更新し(S21)、GET43に対する処理を終了する。
In FIG. 16, the
Next, the
次に、WWWサーバ23からプロキシサーバ26に送信されたRes44は、実施の形態1で説明したように、受信制御部3により受信されてメモリに記憶され(S110)、TCP解析部4によりTCP解析処理(S120)され、TCP順序制御部5によりTCP順序制御処理(S130)され、アプリケーション解析部6に受信パケットとして通知される。
Next,
図16において、アプリケーション解析部6は、Res44がメッセージ106の先頭か否かを判定する(S16)。このとき、WWWサーバ23用のコンテントサイズと記録サイズとは共に初期値「0」であるため、Res44はメッセージ106aの先頭と判断される。そこで、アプリケーション解析部6は、記録サイズを初期化し(S17)、コンテントサイズ「1500(からメッセージヘッダ71のサイズを引いたもの)」の取得と受信サイズBの設定とを行う(S18)。
次に、終端検知部10は、受信サイズBと記録サイズとの合計値とコンテントサイズとを大小比較する(S19)。ここで、受信サイズBは「1000(からメッセージヘッダ71のサイズを引いたもの)」、記録サイズは「0」、コンテントサイズは「1500(からメッセージヘッダ71のサイズを引いたもの)」であるから受信サイズBと記録サイズとの合計値はコンテントサイズより小さい。そこで、アプリケーション解析部6は、Res44を記録部9に記録し(S13)、記録サイズを受信サイズBを加算した値「1000(からメッセージヘッダ71のサイズを引いたもの)」に更新し(S20)、WWWサーバ23のNextSeqを受信サイズを加算した「1701」に更新し(S21)、Res44に対する処理を終了する。
In FIG. 16, the
Next, the
次に、WWWサーバ23からプロキシサーバ26に送信されたData/Res53は、実施の形態1で説明したように、受信制御部3により受信されてメモリに記憶され(S110)、TCP解析部4によりTCP解析処理(S120)され、TCP順序制御部5によりTCP順序制御処理(S130)され、アプリケーション解析部6に受信パケットとして通知される。
Next, the Data /
図16において、アプリケーション解析部6は、Data/Res53がメッセージ106の先頭か否かを判定する(S16)。このとき、プロキシサーバ26用のコンテントサイズにはRes44の処理時に「1500(からメッセージヘッダ71のサイズを引いたもの)」が設定され、記録サイズにはRes44の処理時に「1000(からメッセージヘッダ71のサイズを引いたもの)」が設定されている。このため、コンテントサイズと記録サイズとは一致せず、Data/Res53はメッセージ106の先頭ではないと判断される。
次に、終端検知部10は、受信サイズBと記録サイズとの合計値とコンテントサイズとを大小比較する(S19)。ここで、受信サイズBは「1000」、記録サイズは「1000(からメッセージヘッダ71のサイズを引いたもの)」、コンテントサイズは「1500(からメッセージヘッダ71のサイズを引いたもの)」であるから受信サイズBと記録サイズとの合計値はコンテントサイズより大きい。そこで、アプリケーション解析部6は、Data/Res53にメッセージ106aの他にメッセージ106bが含まれていると判断して、Data/Res53からメッセージ106aの終端部分(500バイト)を切り出し(S22)、切り出したメッセージ106aの終端部分を記録部9に記録する(S13b)。また、アプリケーション解析部6は、受信サイズをメッセージ106aの終端部分のサイズを減算した「500」に更新し(S23)、記録サイズをメッセージ106aの終端部分のサイズを加算した「1500(からメッセージヘッダ71のサイズを引いたもの)」に更新し(S24)、WWWサーバ23のNextSeq(I)をメッセージ106aの終端部分のサイズを加算した「2201」に更新する(S25)。
In FIG. 16, the
Next, the
そして、アプリケーション解析部6はメッセージ106aを切り出した残りのData/Res53(メッセージ106b)に対してS16から処理を行う。
アプリケーション解析部6は、残りのData/Res53(メッセージ106b)がメッセージの先頭か否かを判定する(S16)。このとき、コンテントサイズと記録サイズとは共に「1500(からメッセージヘッダ71のサイズを引いたもの)」であるため、残りのData/Res53はメッセージ106bの先頭と判断される。そこで、アプリケーション解析部6は、残りのData/Res53(メッセージ106b)の記録サイズを初期化し(S17)、コンテントサイズにメッセージ106bのサイズ「500(からメッセージヘッダ71のサイズを引いたもの)」の取得と受信サイズBの設定とを行う(S18)。
次に、終端検知部10は、受信サイズBと記録サイズとの合計値とコンテントサイズとを大小比較する(S19)。ここで、受信サイズBは「500(からメッセージヘッダ71のサイズを引いたもの)」、記録サイズは「0」、コンテントサイズは「500(からメッセージヘッダ71のサイズを引いたもの)」であるから受信サイズBと記録サイズとの合計値はコンテントサイズと等しい。そこで、アプリケーション解析部6は、残りのData/Res53(メッセージ106b)を記録部9に記録し(S13)、記録サイズを受信サイズBを加算した値に更新し(S20)、WWWサーバ23のNextSeqを受信サイズを加算した「2701」に更新し(S21)、Data/Res53に対する処理を終了する。
Then, the
The
Next, the
ACK47〜ACK52については、実施の形態1で説明したように、TCP解析処理(S120)で廃棄され(S2)、アプリケーション解析処理(S140)は実行されない。 As described in the first embodiment, ACK47 to ACK52 are discarded in the TCP analysis process (S120) (S2), and the application analysis process (S140) is not executed.
上記のように、実施の形態2の通信記録装置1は、終端検知部10がメッセージ106の終端が含まれるパケット(終端パケット)を特定することにより、アプリケーション解析部6が終端パケットに含まれる複数のメッセージ106を区別し、複数のメッセージ106をメッセージ106毎に区別して記録部9に記録することができる。
As described above, in the
実施の形態3.
実施の形態3では、プロキシサーバ26とWWWサーバ23との間では正常に通信の完了したパケットが、SW27内で通信記録装置1と接続するミラーリングポートへの転送時に発生したエラーにより損失したり、SW27のミラーリングポートから通信記録装置1に繋がる通信ケーブル29での伝送時に発生したエラーにより損失したりした場合について説明する。損失したパケットは、プロキシサーバ26とWWWサーバ23との間では通信が完了しているため、プロキシサーバ26とWWWサーバ23との間で再送されることはなく、通信記録装置1により受信されることはない。
以下、実施の形態1および実施の形態2と異なる事項について主に説明し、説明を省略する事項については実施の形態1および実施の形態2と同様であるものとする。
In the third embodiment, a packet that has been successfully communicated between the
Hereinafter, matters different from the first embodiment and the second embodiment will be mainly described, and matters that will not be described are the same as those in the first embodiment and the second embodiment.
実施の形態3における通信記録装置1の機能構成は実施の形態1および実施の形態2と同様である。
The functional configuration of the
実施の形態3において、TCP順序制御部5(抜けデータ特定部)は、受信制御部3により主記憶装置に記憶されたTCPパケット104に含まれるTCPヘッダ102を参照する。そして、TCP順序制御部5は、参照したTCPヘッダ102に含まれる確認応答番号(ack)に基づいて、受信制御部3により受信されていないTCPデータ103であり、特定の通信端末装置間(例えば、プロキシサーバ26とWWWサーバ23)で通信の完了したTCPデータ103を抜けデータとしてCPUを用いて特定する。
In the third embodiment, the TCP order control unit 5 (missing data specifying unit) refers to the TCP header 102 included in the TCP packet 104 stored in the main storage device by the
アプリケーション解析部6は、TCP順序制御部5により特定された抜けデータのサイズ分所定の値が設定されたデータを抜けデータとして生成し、生成した抜けデータを記録部9に記録する。
The
図18は、実施の形態3における通信記録方法のTCP解析処理(S120)〜アプリケーション解析処理(S140)の詳細を示すフローチャートである。
実施の形態3における通信記録方法のTCP解析処理(S120)〜アプリケーション解析処理(S140)の詳細について、図18に基づいて以下に説明する。
FIG. 18 is a flowchart showing details of TCP analysis processing (S120) to application analysis processing (S140) of the communication recording method according to the third embodiment.
Details of the TCP analysis process (S120) to the application analysis process (S140) of the communication recording method according to the third embodiment will be described below with reference to FIG.
実施の形態3におけるTCP解析処理(S120)は、実施の形態1におけるTCP解析処理(S120)[図11参照]からパケットの受信サイズ(TCPデータ103のサイズ)が「0」か否かの判定(S11)が除かれたものである。 In the TCP analysis process (S120) in the third embodiment, it is determined whether or not the packet reception size (the size of the TCP data 103) is “0” from the TCP analysis process (S120) in the first embodiment (see FIG. 11). (S11) is removed.
実施の形態3におけるTCP順序制御処理(S130)は、実施の形態1におけるTCP順序制御処理(S130)[図11参照]に抜けデータ特定処理(S132)が加わったものである。 The TCP order control process (S130) in the third embodiment is obtained by adding the missing data specifying process (S132) to the TCP order control process (S130) in the first embodiment (see FIG. 11).
また、実施の形態3のTCP順序制御処理(S130)において、TCP順序制御部5は、受信パケットを保持する際(S7)、受信パケットのTCPヘッダ102に設定されているSeqを受信パケットの送信元の「組み立てSeq」としてコネクション情報に設定する。但し、既に「組み立てSeq」が設定されている場合、TCP順序制御部5は、設定済みの組み立てSeqと受信パケットのSeqとを大小比較し、受信パケットSeqの方が小さい場合に組み立てSeqを更新する。設定済みの組み立てSeqの方が大きい場合、TCP順序制御部5は、組み立てSeqを更新しない。つまり、組み立てSeqには(複数の)保持パケットの先頭のSeqが設定される。なお、「組み立てSeq」はTCP解析部4によるコネクション情報の生成時(S4)に初期値「0」が設定されるものとする。「組み立てSeq」はコネクションを確立する通信端末の双方に対して設定される。
以下に、抜けデータ特定処理(S132)について説明する。
In the TCP order control process (S130) of the third embodiment, when the TCP
The missing data specifying process (S132) will be described below.
順序判定処理(S131)においてアプリケーション処理(S140)または受信パケットの保持(S7)の後、TCP順序制御部5は、受信パケットのTCPヘッダ102と受信パケットのコネクション情報とを参照する。そして、TCP順序制御部5は、受信パケットのTCPヘッダ102に設定されているack(確認応答番号)とコネクション情報に設定されている受信パケットの送信先(受信側)のNextSeqとを大小比較する。この大小比較により、TCP順序制御部5は、通信端末間(例えば、プロキシサーバ26とWWWサーバ23)では正常に通信が完了したが通信記録装置1への転送中に損失して通信記録装置1により受信されないパケット(以下、抜けパケットという)の有無を判定する(S8)。
After the application process (S140) or the reception packet holding (S7) in the order determination process (S131), the TCP
S8において受信パケットのackが受信パケットの送信先のNextSeq以下であった場合、抜けパケットは無いため、受信パケットに対する処理は終了する。 If the ack of the received packet is equal to or less than NextSeq of the destination of the received packet in S8, the process for the received packet ends because there is no missing packet.
S8において受信パケットのackが受信パケットの送信先のNextSeqより大きかった場合、TCP順序制御部5は、受信パケットのTCPヘッダ102と受信パケットのコネクション情報とを参照する。そして、TCP順序制御部5は、受信パケットのTCPヘッダ102に設定されているackとコネクション情報に設定されている受信パケットの送信先の組み立てSeqとを大小比較する(S9)。
When the ack of the received packet is larger than NextSeq of the destination of the received packet in S8, the TCP
受信パケットのackは受信を完了したTCPデータ103のシーケンス番号(に「1」を加えたもの)を送信先に示すものである。このため、受信パケットのackが受信パケットの送信先のNextSeqより大きい場合とは、少なくとも送信先のNextSeqから続くTCPデータ103が通信端末間では通信が完了したが受信制御部3には届かなかったことを意味する。このとき、送信先のNextSeqから続くTCPデータ103の受信を期待して保持パケットを保持し続けても仕方がない。そこで、S9において、TCP順序制御部5は、受信パケットのackと受信パケットの送信先の組み立てSeqとを大小比較して、保持し続けても仕方がない保持パケットの有無を判定する。
The ack of the received packet indicates the sequence number of the TCP data 103 that has been received (added to “1”) to the transmission destination. For this reason, when the ack of the received packet is larger than the NextSeq of the destination of the received packet, at least the TCP data 103 following the destination NextSeq has been communicated between the communication terminals, but has not reached the
S9において受信パケットのackが受信パケットの送信先の組み立てSeq未満であった場合、受信パケットに対する処理は終了する。この場合、保持データの前に位置するTCPデータ103が受信される可能性があるため、受信パケットの送信先から送信されて保持された保持パケット(以下、送信先の保持パケットという)はそのまま保持される。 If the ack of the received packet is less than the assembly Seq of the destination of the received packet in S9, the process for the received packet ends. In this case, since there is a possibility that the TCP data 103 located before the held data may be received, the held packet transmitted from the destination of the received packet and held (hereinafter referred to as the destination holding packet) is held as it is. Is done.
S9において受信パケットのackが受信パケットの送信先の組み立てSeq以上であった場合、TCP順序制御部5は、受信パケットの送信先の組み立てSeqから受信パケットの送信先のNextSeqを減算した値を変数「Diff」に設定する。「Diff」は抜けパケットのTCPデータ103のサイズを示す。以下、抜けパケットのTCPデータ103を「抜けデータ」とし、抜けデータのサイズを「抜けサイズ」とする(S41)。
If the ack of the received packet is equal to or greater than the assembled Seq of the destination of the received packet in S9, the TCP
S41の後、保持パケットを記録部9に記録するためのアプリケーション解析処理(S140)がアプリケーション解析部6により実行される。
After S41, application analysis processing (S140) for recording the retained packet in the
図19は、実施の形態3における通信記録方法のアプリケーション解析処理(S140)の詳細を示すフローチャートである。
図20は、実施の形態3における通信記録方法のアプリケーション解析処理(S140)の一部を示すフローチャートである。
実施の形態3における通信記録方法のアプリケーション解析処理(S140)の詳細について、図19および図20に基づいて以下に説明する。
FIG. 19 is a flowchart showing details of application analysis processing (S140) of the communication recording method according to the third embodiment.
FIG. 20 is a flowchart showing a part of application analysis processing (S140) of the communication recording method according to the third embodiment.
Details of the application analysis process (S140) of the communication recording method according to the third embodiment will be described below with reference to FIGS.
図19において、アプリケーション解析部6はDiff(抜けデータのサイズ)が「0」か否かを判定する(S10)。
In FIG. 19, the
S10においてDiffが「0」であった場合、アプリケーション解析部6はS11以降の処理を実行する。
S10においてDiffが「0」である場合とは図18において順序判定処理(S131)後にアプリケーション解析処理(S140)が実行された場合であり、S11以降の処理は受信データを記録部9に記録するために行われる処理である。
S11以降の処理の詳細については後述する。
When Diff is “0” in S <b> 10, the
The case where Diff is “0” in S10 is the case where the application analysis process (S140) is executed after the order determination process (S131) in FIG. 18, and the processes after S11 record the received data in the
Details of the processing after S11 will be described later.
S10においてDiffが「0」でなかった場合、アプリケーション解析部6は図20で示すS51以降の処理を実行する。
S10においてDiffが「0」でない場合とは図18において抜けデータ特定処理(S132)後にアプリケーション解析処理(S140)が実行された場合であり、S51以降の処理は送信先の保持データを記録部9に記録するために行われる処理である。
以下に、S51以降の処理について説明する。
When Diff is not “0” in S10, the
The case where Diff is not “0” in S10 is the case where the application analysis process (S140) is executed after the missing data specifying process (S132) in FIG. This is a process performed to record the data.
Below, the process after S51 is demonstrated.
図20において、アプリケーション解析部6は、送信先の保持パケットのうち保持データのシーケンス番号が受信パケットのack未満のものを特定する。ここで特定された保持パケットの保持データが以下で記録部9に記録される対象となる(S51)。
In FIG. 20, the
次に、アプリケーション解析部6は、抜けパケットの代わりとする代替パケットを作成する(S52)。
Next, the
例えば、アプリケーション解析部6は、送信先の保持パケットのIPヘッダ101とTCPヘッダ102とを代替パケットに設定し、IPヘッダ101のパケットサイズやTCPヘッダ102のseqなどを抜けデータに合わせて更新する。また例えば、アプリケーション解析部6は、抜けデータの代わりに記録部9に記録する代替データを作成し、作成した代替データを代替パケットに設定する。代替データのサイズはDiffであり、代替データのデータ値は代替データであることを示す特定の値(例えば、オール0。以下、代替値とする)である。その他に、アプリケーション解析部6は受信パケットのack未満で保持データの無い部分についても代替データを作成する。例えば、受信パケットのack未満で保持データが無い部分とは、受信パケットのackが401であり、シーケンス番号が101〜200の保持データAとシーケンス番号が301〜400の保持データBとが有る場合、シーケンス番号が201〜300のデータのことである。また例えば、受信パケットのack未満で保持データが無い部分とは、受信パケットackが401であり、シーケンス番号が201〜300の保持データが有る場合、シーケンス番号が301〜400のデータのことである(S52)。
For example, the
次に、アプリケーション解析部6は受信パケットのコネクション情報を参照し、受信パケットの送信先の記録サイズおよびDiffの合計値と受信パケットの送信先のコンテントサイズとを比較する(S26)。
Next, the
S26において、送信先の記録サイズおよびDiffの合計値が送信先のコンテントサイズより大きい場合、抜けパケットに次のメッセージ106のメッセージヘッダ71が含まれる。つまり、次のメッセージ106のコンテントサイズが不明となり、以降のTCPデータ103をメッセージ106毎に区別することはできない。 In S26, when the total value of the recording size of the transmission destination and Diff is larger than the content size of the transmission destination, the message header 71 of the next message 106 is included in the missing packet. That is, the content size of the next message 106 becomes unknown, and subsequent TCP data 103 cannot be distinguished for each message 106.
そのため、アプリケーション解析部6はS51で特定した保持データとS52で生成した代替データとを記録部9に記録するが、図7に示したようにメッセージ106毎に区別はしない(S13c)。
Therefore, the
また、アプリケーション解析部6は、S13cで保持データと代替データとを記録部9に記録したため、保持サイズと代替サイズとの合計値を加算して送信先の記録サイズを更新し(S53)、保持サイズと代替サイズとの合計値を加算して送信先のNextSeqを更新する(S54)。
Further, since the
そして、アプリケーション解析部6は、以後、受信パケットの送信先からのTCPデータ103をメッセージ106毎に区別せずに記録部9に記録することを示すように異常フラグに「1」を設定する。この異常フラグは受信パケットのコネクション情報に受信パケットの送信先の異常フラグとして設定される(S32)。
受信パケットに対する処理はこれで終了する。
Then, the
This completes the process for the received packet.
図21は、記録サイズとDiffとの合計値がコンテントサイズより大きい場合を示す図である。
図21において、Res44は既に受信され記録部9に記録されているデータであり、Data45は抜けデータであり、Data46は保持データである。図21ではメッセージヘッダ71を除いてメッセージボディ72の部分についてコンテントサイズ111と記録サイズ112を示している。図21に示すように、記録サイズ112とDiff113との合計値がコンテントサイズ111より大きい場合、抜けデータであるData45の途中から次のメッセージ106が始まることとなり、メッセージヘッダ71が不明となる。このため、Data46が次のメッセージ106か2つ先のメッセージ106かも不明となる。図21を「ケース2」とする。
ケース2の場合、アプリケーション解析部6は上記のように異常フラグに「1」を設定する。
FIG. 21 is a diagram illustrating a case where the total value of the recording size and Diff is larger than the content size.
In FIG. 21,
In
一方、S26において、送信先の記録サイズおよびDiffの合計値が送信先のコンテントサイズ以下である場合、アプリケーション解析部6は、実施の形態1での受信データと同様に、送信先の保持データ(および代替データ)をメッセージ106毎に区別して記録部9に記録することができる。
On the other hand, in S26, when the recording size of the transmission destination and the total value of Diff are equal to or smaller than the content size of the transmission destination, the
図22は、記録サイズとDiffとの合計値がコンテントサイズ以下である場合を示す図であり、図21に対応する図である。
図22では、ケース1として、記録サイズ112とDiff113との合計値とコンテントサイズ111とが等しい場合を示している。ケース1では、Data46のTCPデータ103は次のメッセージ106のメッセージヘッダ71(先頭)から始まる。
また、図22では、記録サイズ112とDiff113との合計値がコンテントサイズ未満である場合としてケース3、ケース4およびケース5を示している。
ケース3は、記録サイズ112とDiff113と保持サイズ114との合計値がコンテントサイズ111より大きい場合であり、Data46にはメッセージボディ72の終端と次のメッセージ106のメッセージヘッダ71とが含まれる。
ケース4は、記録サイズ112とDiff113と保持サイズ114との合計値がコンテントサイズ111と等しい場合であり、Data46のTCPデータ103はメッセージボディ72の終端で終わる。
ケース5は、記録サイズ112とDiff113と保持サイズ114との合計値がコンテントサイズ111より小さい場合であり、Data46には途中のメッセージボディ72(終端無し)が含まれる。
FIG. 22 is a diagram illustrating a case where the total value of the recording size and Diff is equal to or smaller than the content size, and corresponds to FIG.
FIG. 22 shows a
In FIG. 22,
S26において、送信先の記録サイズおよびDiffの合計値が送信先のコンテントサイズ以下である場合(ケース1、ケース3、ケース4およびケース5)、処理は図19の(2)に移り、アプリケーション解析部6は、S41で特定した保持パケットとS42で生成した代替パケットとを受信パケットとして、実施の形態1と同様に、S16以下の処理を実行する。
但し、S16において、受信データがメッセージの先頭で且つ代替データである場合、処理は(3)に移る。
In S26, when the recording value of the transmission destination and the total value of Diff are equal to or smaller than the content size of the transmission destination (
However, in S16, when the received data is the head of the message and is alternative data, the process proceeds to (3).
図23は、実施の形態3におけるGETm107とResm108とが設定された通信履歴120を示す図であり、実施の形態1の図7に対応する図である。
実施の形態3における通信記録装置1のアプリケーション解析部6は、図23に示すように、消失して受信制御部3により受信されなかったパケット(Data45)のデータをデータ無しとして記録する。
FIG. 23 is a diagram showing communication history 120 in which
As shown in FIG. 23, the
図24は、実施の形態3における通信シーケンスの一例を示す図であり、実施の形態1の図6に対応する図である。
図24に示す通信シーケンスを例にして、図19に示したアプリケーション解析処理(S140)を説明する。
図24では、Data45が消失し通信記録装置1により受信されていない。また、Data46はメッセージ106の終端を示すものとする(ケース4)。
FIG. 24 is a diagram illustrating an example of a communication sequence according to the third embodiment, and corresponds to FIG. 6 according to the first embodiment.
The application analysis process (S140) shown in FIG. 19 will be described using the communication sequence shown in FIG. 24 as an example.
In FIG. 24,
端末21からの情報取得要求は、プロキシサーバ26を経由してWWWサーバ23に通知される。プロキシサーバ26がインターネット24に対して送受信するパケットはSW27経由で通信記録装置1に通知される。WWWサーバ23への接続に使用されるHTTPプロトコルはTCP上で動作するため、プロキシサーバ26は、コネクションの確立のため、SYN40を送信する。通信記録装置1の受信制御部3によりSYN40が受信されたら、TCP解析部4はTCPの種類およびTCPステートをチェックする(ステップ1、3)。TCP解析部4は、受信したパケットの送信元IPアドレス、送信先(宛先)IPアドレス、送信元ポート番号及び送信先(宛先)ポート番号が内部に登録されているかを解析し、登録されていなければパケット内のアドレス、ポート番号をコネクション情報として登録する(ステップ4)。以降、TCP解析部4は、パケットが受信された際、確立されたコネクション上でパケットが送受信されているかをチェックする(ステップ3)。そして、TCP解析部4は、コネクション未確立でパケットが送信されている場合、TCPステートエラーとしてパケットを廃棄する(ステップ2)。コネクション情報は、コネクション確立後、通信が行われている間保持され、コネクション切断パケット(FIN/ACK50)が受信された時に削除される。受信されたSYN40は、TCPステートチェック後、廃棄される(ステップ2)。
An information acquisition request from the terminal 21 is notified to the WWW server 23 via the
SYN40を受信したWWWサーバ23は、SYN/ACK41を送信する。SYN/ACK41は、TCP解析部4でのチェック(ステップ3)後に廃棄される(ステップ2)。
The WWW server 23 that has received the
次に、プロキシサーバ26はACK42を送信する。通信記録装置1はプロキシサーバ26が送信したACK42を受信する。TCP解析部4はACK42に対して図18に示したTCP解析処理(S120)を行う。このとき、プロキシサーバ26のNextSeq(O)は「100」であり、WWWサーバ23のNextSeq(I)は「701」である。
TCP順序制御部5は、ACK42のシーケンス番号(Seq)とプロキシサーバ26のNextSeq(O)とを比較する(ステップ5)。ここで、ACK42のseqとプロキシサーバ26のNextSeq(O)とは「100」で一致する。このため、アプリケーション解析処理(ステップ140)が実行される。このとき、シーケンス番号の差分を示すDiffは図18のS41での設定が行われていないため「0」である。
図19のアプリケーション解析処理(ステップ140)では、Diffが「0」のため(ステップ10)、アプリケーション解析部6は受信サイズをチェックする(ステップ11)、ACK42のサイズは0であり、ACK42に対するアプリケーション解析処理(S140)は終了する。また、図18のステップ8において、ACK42のackとWWWサーバ23のNextSeq(I)とは「701」で一致するため、ACK42に対する処理は終了する。
Next, the
The TCP
In the application analysis process (step 140) of FIG. 19, since Diff is “0” (step 10), the
その後、プロキシサーバ26は、GET43を送信する。GET43はHTTPリクエストとして送信される。受信制御部3によりGET43が受信された場合、TCP解析部4はGET43に対して図18に示したTCP解析処理(S120)を行う。次に、TCP順序制御部5は、GET43のヘッダのシーケンス番号とプロキシサーバ26のNextSeq(O)とを比較する(S5)。GET43のseqとプロキシサーバ26のNextSeq(O)とは「100」で一致するため、「Diff=0」としてアプリケーション解析処理(ステップ140)が実行される。
図19のアプリケーション解析処理(ステップ140)では、「Diff==0」であり(ステップ10)、「受信サイズ!=0」であり(ステップ11)、「異常フラグ!=1」であるため(ステップ12)、アプリケーション解析部6は受信データがメッセージ106の先頭かどうかをチェックする(ステップ16)。
メッセージ106の先頭とは、図3のGETm107(HTTPリクエストメッセージ)のリクエストライン61の先頭から始まること(リクエストの場合)、もしくは、図4のResm108(HTTPレスポンスメッセージ)のステータスライン68の先頭から始まること(レスポンスの場合)を意味する。コネクションを確立して最初に送信されるメッセージ106は、メッセージ106の先頭から送信される。
Thereafter, the
In the application analysis process (step 140) of FIG. 19, since “Diff == 0” (step 10), “reception size! = 0” (step 11), and “abnormal flag! = 1” ( In step 12), the
The beginning of the message 106 starts from the beginning of the request line 61 of the GETm 107 (HTTP request message) in FIG. 3 (in the case of a request) or starts from the beginning of the status line 68 of the Resm 108 (HTTP response message) in FIG. Means (in the case of response). The message 106 transmitted first after establishing the connection is transmitted from the head of the message 106.
ここで、前述した実施の形態2について補足する。
画像データのようにサイズの大きなデータを含んだResm108(GETレスポンス)は、図5に示したように、メッセージボディ72は1つのパケットに格納されず、2つのパケットに分割されて送信される。この際、2つ目以降のパケットには、メッセージボディ72のみが格納される。メッセージボディ72のみが格納されるパケットはメッセージ106を先頭からではなく途中から示す。このように、メッセージ106が複数のパケットに分割された場合、実施の形態2で説明したように、終端検知部10は、コンテントサイズおよび受信サイズに基づいてメッセージボディ72のデータの区切りを検索し、データの終端を識別する(ステップ19)。
図5では、Res44とData45とが1つのメッセージResm108として処理される。また、図15では、メッセージ106aがRes44とData/Res53との2つのパケットに分割され、さらに2つ目のパケット(Data/Res53)にはメッセージ106aのメッセージボディ72とメッセージ106bのメッセージヘッダ71とが格納されている。この場合(区切りの先にデータがある場合)、実施の形態2で説明したように、アプリケーション解析部6はData/Res53に格納されているメッセージ106aのメッセージボディ72を切り出し(ステップ22)、メッセージ106aのメッセージボディ72を記録部9に記録し(S13b)、受信サイズ、記録サイズおよびプロキシサーバ26のNextSeq(O)を更新する(S23〜S25)。そして、アプリケーション解析部6はメッセージ106aのメッセージボディ72の終端以降のデータ(メッセージヘッダ71、空行56、メッセージボディ72)を新規のメッセージとして処理するため、メッセージの先頭のチェック(S16)に戻り、処理を繰り返す。区切りの先にデータがない場合、処理は終了する。次に、受信されたデータはメッセージ106の先頭として処理される。
Here, it supplements about
As shown in FIG. 5, Resm 108 (GET response) including large data such as image data is not stored in one packet but transmitted in two packets. At this time, only the message body 72 is stored in the second and subsequent packets. A packet in which only the message body 72 is stored indicates the message 106 from the middle rather than from the beginning. In this way, when the message 106 is divided into a plurality of packets, as described in the second embodiment, the
In FIG. 5,
実施の形態3での図24では、GET43、GET48及びRes49は1パケットに格納され(データの終端あり)、Res44、Data45およびData46はデータを3つに分割していることとして動作を説明する(Data46にデータの終端あり)。
以下、図24に基づいて説明を続ける。
In FIG. 24 in the third embodiment, GET43, GET48, and Res49 are stored in one packet (there is data termination), and the operation will be described assuming that Res44, Data45, and Data46 divide the data into three (
Hereinafter, the description will be continued based on FIG.
図19において、GET43はGETリクエストの先頭となるため(ステップ16)、アプリケーション解析部6は記録サイズを初期化する(ステップ17)。次に、アプリケーション解析部6は、メッセージヘッダ71内のリクエストライン61、リクエストヘッダフィールド62、汎用ヘッダフィールド63、ヘッダフィールド64およびその他(65)のヘッダからコンテントサイズ(メッセージボディ72のサイズ)やデータ送信フォーマットの情報を取得する(ステップ18)。ここで取得した情報は、先に説明したデータの区切りの検索に使用される。
次に、終端検知部10は、コンテントサイズ、受信サイズ、記録サイズを比較し、データの終端があるかどうかをチェックする(ステップ19)。以降、説明の簡略化のため、「コンテントサイズ=メッセージ106(メッセージヘッダ71を含む)のサイズ」、「受信サイズ=受信サイズB」、「記録サイズ=記録されたメッセージ106サイズ」として説明を続ける。GET43ではコンテンツサイズ(100)≧受信サイズB(100)+記録サイズ(0)のため、アプリケーション解析部6は、終端あり(パケットには終端の先にデータが無い)として、GET43を記録部9に記録する(ステップ13)。図7は記録部9でのメッセージ106の記録の例である。記録部9では、リクエストポインタ81で示される領域にGETm107が保存される。
そして、アプリケーション解析部6は記録サイズに受信サイズBを加算し(ステップ20)、プロキシサーバ26のNextSeq(O)に受信サイズを加算する(ステップ21)。このとき、プロキシサーバ26のNextSeq(I)は「200」に更新され、WWWサーバ23のNextSeq(O)は「701」のままである。
次に、図18において、TCP順序制御部5は、GET43のACK番号と反対側のNextSeq(I)とを比較し(ステップ8)、共に「701」で一致するため処理を終了する。
In FIG. 19, since
Next, the
Then, the
Next, in FIG. 18, the TCP
GET43を受信したWWWサーバ23はRes44を送信する。
受信制御部3によりRes44が受信された場合、図19のコンテントサイズを取得する処理(ステップ18)までは前記GET43と同様である(ステップ1、3、4、5、6、10、11、12、16、17)。Res44はGETレスポンスの先頭であり、アプリケーション解析部6はRes44からコンテントサイズ、送信フォーマットの情報を取得する(ステップ18)。Res44は、1000バイトのデータであるが、3000バイトのデータを分割した3つのパケット(Res44、Data45、Data46)の先頭であるため、コンテントサイズは3000となる。
次に、終端検知部10はコンテントサイズと受信サイズ+記録サイズを比較する(S19)。Res44ではコンテントサイズ(3000)≧受信サイズB(1000)+記録サイズ(0)のため、アプリケーション解析部6はRes44を記録部9に記録する(ステップ13)。記録部9への記録(ステップ13)では、記録部9のレスポンスポインタ82で示される領域にRes44が保存される。
そして、アプリケーション解析部6は記録サイズに受信サイズBを加算し(ステップ20)、WWWサーバ23のNextSeq(I)に受信サイズを加算する(ステップ21)。このとき、プロキシサーバ26のNextSeq(O)は「200」のままであり、WWWサーバ23のNextSeq(I)は「1701」に更新される。
次に、図18において、TCP順序制御部5は、Res44のACK番号と反対側のNextSeq(O)とを比較し(ステップ8)、共に「200」で一致するため処理を終了する。
The WWW server 23 that has received the
When Res44 is received by the
Next, the
Then, the
Next, in FIG. 18, the TCP
次に、WWWサーバ23はData45とData46とを送信するが、Data45はネットワーク上でエラー等により廃棄され、通信記録装置1に届かなかったものとする。
Next, it is assumed that the WWW server 23 transmits
受信制御部3によりData45が受信されず、Data46が受信された場合、図18において、TCP解析部4によるTCPの種類とTCPステートのチェック後(ステップ1、3)、TCP順序制御部5はData46のヘッダのシーケンス番号(2701)とWWWサーバ23のNextSeq(I)(1701)とを比較する(ステップ5)。そして、TCP順序制御部5は両者が一致しないためパケットの順序が逆転したと判断し、Data45が届くまでData46を保持し、組み立てSeqを「2701」とする(ステップ7)。
次に、TCP順序制御部5はData46のACK番号と反対側のNextSeq(O)とを比較し(ステップ8)、共に「200」で一致するため処理を終了する。
When the
Next, the TCP
Data45とData46とを受信したプロキシサーバ26はACK47を送信する。
受信制御部3によりACK47が受信された場合、図8においてACK47のヘッダのシーケンス番号とプロキシサーバ26のNextSeq(O)とが「200」で一致するため(ステップ5)、ACK47に対してアプリケーション解析処理(ステップ140)が実施される。図19のアプリケーション解析処理(ステップ140)では、ACK47はデータがないため(受信サイズ==0)、処理が終了する。
次に、図18において、TCP順序制御部5はACK47のヘッダのACK番号(3701)と反対側のNextSeq(I)(1701)とを比較する(ステップ8)。このとき、「ACK47のヘッダのACK>反対側のNextSeq(I)」となる。
次に、TCP順序制御部5はACK(3701)と組み立てSeq(2701)とを比較する(ステップ9)。このとき、「ACK≧組み立てSeq」となる。
次に、TCP順序制御部5はDiffに「組み立てSeq−反対側のNextSeq(I)」を設定する(ステップ41)。
そして、アプリケーション解析部6は、Diff=1000として、保持しているData46に対してアプリケーション解析処理(ステップ140)を実施する。
図19において、「Diff!=0」のため、図20の(1)に処理が飛ぶ。
図20において、アプリケーション解析部6はData46を記録対象と特定し(S41)、消失した抜けパケットに代わる代替パケットを作成する(S42)。ここで、コンテント(3000)≧記録サイズ(1000)+Diff(1000)であるため(ステップ26)、図19の(2)に処理が飛ぶ。
図19において、アプリケーション解析部6は、Data46と代替パケットとを記録し、記録サイズを更新し、WWWサーバ23のNextSeq(I)を更新して(ステップ16、18b、19、13、20、21)、Data46に対する処理を終了する。
The
When the
Next, in FIG. 18, the TCP
Next, the TCP
Next, the TCP
Then, the
In FIG. 19, since “Diff! = 0”, the process jumps to (1) of FIG.
In FIG. 20, the
In FIG. 19, the
以降のACK47、GET48、Res49、FIN/ACK50、FIN/ACK51およびACK52に対する処理は、実施の形態1と同様である。GET48およびRes49はGET43と同様に処理される。GET48およびRes49は、GET43およびRes44(Data45、Data46)と同様に、別のメッセージ106として記録部9に記録される。
The subsequent processing for
図23に基づいてケース4の場合を説明したが、ケース1、ケース3およびケース5の場合も、通信記録装置1は、ケース4の場合と同様に、抜けたパケットの分を飛ばしてメッセージ106を記録することができる。
ケース2の場合、通信記録装置1はヘッダ情報が参照できないため、TCPデータ103の位置づけを把握できない。このケースでは、通信記録装置1は抜けたパケット分を飛ばしてTCPデータ103を記録し、異常フラグをセットし、以降のパケットのTCPデータ103を記録する。
Although the
In
実施の形態3では、以下のような通信記録装置1およびアプリケーション解析方法について説明した。
通信記録装置1は、受信制御部3、TCP解析部4、TCP順序制御部5、アプリケーション解析部6、終端検知部10、記録部9およびデータ表示部7を備え、パケットが抜けてシーケンス番号が飛んだ場合にはシーケンス番号およびコンテントサイズを用いて抜けた分を考慮し、アプリケーション解析を実施し、データを記録する。
受信制御部3はネットワークからパケットを受信する。
TCP解析部4は受信制御部3により受信されたパケットのTCPステートを解析する。
TCP順序制御部5はパケットの順序が逆転していた場合に正しい順序になるよう制御する。
アプリケーション解析部6はアプリケーションデータを解析する。
終端検知部10はアプリケーションのデータが複数のメッセージに分割されて送信された場合にメッセージの区切りを検出する。
記録部9は解析結果が記録される。
データ表示部7は記録部9のデータを表示する。
In the third embodiment, the following
The
The
The
The TCP
The
The
The
The
実施の形態3における通信記録装置1は、上記のように、パケットが廃棄され通知されなかった場合、パケットを保持し、保持したパケットと以降に受信したパケットとのACK番号の差分(Diff)を計算することで、パケット抜けを検出する。そして、通信記録装置1は、廃棄されたパケット分を飛ばしてアプリケーション解析処理(S140)を実施する。このため、通信記録装置1はパケットが廃棄された場合でもアプリケーションデータ(メッセージ106)を記録することができる。
As described above, the
実施の形態4.
実施の形態4では、受信制御部3がパケットを受信することのできるルートが複数ある形態について説明する。
以下、実施の形態1〜実施の形態3と異なる事項について主に説明し、説明を省略する事項については実施の形態1〜実施の形態3と同様であるものとする。
In the fourth embodiment, a mode in which there are a plurality of routes through which the
Hereinafter, matters different from the first to third embodiments will be mainly described, and matters that will not be described are the same as those of the first to third embodiments.
図25は、実施の形態4における通信ネットワークシステム100の一例を示す図である。
図25に示すように、実施の形態4における通信ネットワークシステム100は、実施の形態1における通信ネットワークシステム100に対して、SW28を加えたものである。
SW28は、SW27と同様に、ポートモニタ機能により全てのパケットを通信ケーブル30を介して通信記録装置1に転送する。
通信記録装置1は、2つのスイッチ(SW27、SW28)からパケットを受信するため同じパケットを2度受信することになるが、一方のスイッチでパケットがエラーのため廃棄されたとしても他方からパケットを受信できる。
FIG. 25 is a diagram illustrating an example of the
As shown in FIG. 25,
The
The
図26は、実施の形態4における通信記録装置1の機能構成図である。
図26に示すように、受信制御部3は全てのパケットをSW27から通信ケーブル29および入力ポート2を介して受信すると共に、全てのパケットをSW28から通信ケーブル30および入力ポート12を介して受信する。
FIG. 26 is a functional configuration diagram of the
As shown in FIG. 26, the
TCP解析部4は、受信制御部3によりTCPパケット104が受信され主記憶装置に第1のTCPパケットとして記憶された後、受信制御部3により新たにTCPパケット104が受信され主記憶装置に第2のTCPパケットとして記憶された場合、次のような処理を行う。TCP解析部4は、第1のTCPパケットのシーケンス番号(seq)と第2のTCPパケットのシーケンス番号(seq)とに基づいて、第1のTCPパケットと第2のTCPパケットとが受信制御部3により異なる経路(SW27→通信ケーブル29→入力ポート2、SW28→通信ケーブル30→入力ポート12)から受信された同一のTCPパケット104であるか否かを判定する。そして、TCP解析部4は、第1のTCPパケットと第2のTCPパケットとが同一のTCPパケットであると判定した場合、後から受信された第2のTCPパケットを主記憶装置から削除する。
The
図27は、実施の形態4における通信記録方法のTCP解析処理(S120)〜アプリケーション解析処理(S140)の詳細を示すフローチャートである。
図27は、実施の形態3の図18にS33とS2とを加えたものである。
FIG. 27 is a flowchart showing details of the TCP analysis process (S120) to the application analysis process (S140) of the communication recording method according to the fourth embodiment.
FIG. 27 is obtained by adding S33 and S2 to FIG. 18 of the third embodiment.
TCP解析部4は、受信パケットが過去に受信されたパケットと同じパケットか否かを判定する(S33)。
The
通常、SW27とSW28とから同じパケットが通信記録装置1に転送される場合、同じパケットは連続して通信記録装置1に到達する。そこで、TCP解析部4は、前回の受信パケットのIPヘッダ101およびTCPヘッダ102をコネクション情報に設定しておき、新たな受信パケットのIPヘッダ101およびTCPヘッダ102とコネクション情報に設定されている前回の受信パケットのIPヘッダ101およびTCPヘッダ102とを比較する。そして、TCP解析部4は、新たな受信パケットのIPヘッダ101およびTCPヘッダ102とコネクション情報に設定されている前回の受信パケットのIPヘッダ101およびTCPヘッダ102とが同じである場合、受信パケットが過去に受信されたパケットと同じパケットであると判定する。また例えば、TCP解析部4は、全ての受信パケットのIPヘッダ101およびTCPヘッダ102をコネクション情報に設定しておき、いずれかの受信パケットとIPヘッダ101およびTCPヘッダ102が同じである場合に受信パケットが過去に受信されたパケットと同じパケットであると判定してもよい。この場合、受信済みのパケットと同じパケットであると判定した受信パケットのIPヘッダ101およびTCPヘッダ102はコネクション情報に設定されなくてよい。
Normally, when the same packet is transferred from
S33において受信パケットが過去に受信されたパケットと同じパケットであった場合、TCP解析部4は受信パケットを廃棄する(S2)。
If the received packet is the same as the packet received in S33, the
S33において受信パケットが過去に受信されたパケットと同じパケットでなかった場合、受信パケットに対して実施の形態1〜実施の形態3で説明したS1以降の処理が実行される。 When the received packet is not the same as the packet received in S33 in S33, the processing after S1 described in the first to third embodiments is performed on the received packet.
実施の形態4において、以下のような通信記録装置1およびアプリケーション解析方法について説明した。
In the fourth embodiment, the following
通信記録装置1において、受信制御部3は複数の入力ポートからパケットを受信し、TCP解析部4は受信制御部3により受信されたパケットが同じであるか比較し、同じデータを受信した場合には一方を廃棄する。一方からしかパケットが受信されなかった場合、アプリケーション解析部6は受信されたパケットに対してデータ解析を実施する。また、すべてのポートからパケットを受信しなかった場合、アプリケーション解析部6はパケットが抜けたこととしてアプリケーション解析を実施する。
In the
実施の形態4における通信記録装置1は、上記のように、2つの入力ポートからパケットを受信するため、一方のスイッチでパケットがエラーのため廃棄されたとしても、他方から受信したパケットで処理を継続できる。
Since the
各実施の形態では、他ホスト宛てのパケットを受信し、受信したパケットに基づいてアプリケーションデータを組み立て、組み立てたアプリケーションデータを“通信履歴”として記録する形態について説明した。
但し、組み立てられたアプリケーションデータは“通信履歴”として記録されなくても構わない。
例えば、組み立てられたアプリケーションデータは、本来の送信先である通信(端末)装置、または、その他の特定の通信(端末)装置に送信(または、中継、転送)されてもよい。本来の送信先である通信(端末)装置とは、当該アプリケーションデータの少なくとも一部を含むパケットに送信先として設定された端末のことであり、Resm108(組み立てられたアプリケーションデータの一例)に対するプロキシサーバ26および端末21のことである。
つまり、各実施の形態で説明した通信記録装置(および、方法、プログラム)は、他ホスト宛てのパケットを受信し、受信したパケットに基づいてアプリケーションデータを組み立て、組み立てたアプリケーションデータを特定の通信(端末)装置に送信(または、中継、転送)する通信データ処理装置(および、方法、プログラム)として用いられてもよい。
また、通信データ処理装置は、組み立てたアプリケーションデータを解析し、解析結果を本来の送信先である通信(端末)装置に送信しても構わない。
通信データ処理装置は、データ表示部7の代わりに(または、データ表示部7と共に)、データ送信部を備える。
In each embodiment, a mode has been described in which a packet addressed to another host is received, application data is assembled based on the received packet, and the assembled application data is recorded as a “communication history”.
However, the assembled application data may not be recorded as “communication history”.
For example, the assembled application data may be transmitted (or relayed or transferred) to a communication (terminal) device that is an original transmission destination or another specific communication (terminal) device. The communication (terminal) device that is the original transmission destination is a terminal set as a transmission destination in a packet including at least a part of the application data, and is a proxy server for Resm 108 (an example of assembled application data). 26 and the terminal 21.
That is, the communication recording device (and method, program) described in each embodiment receives a packet addressed to another host, assembles application data based on the received packet, and assembles the assembled application data with a specific communication ( It may be used as a communication data processing device (and method, program) that transmits (or relays, transfers) to a terminal device.
The communication data processing apparatus may analyze the assembled application data and transmit the analysis result to the communication (terminal) apparatus that is the original transmission destination.
The communication data processing device includes a data transmission unit instead of the data display unit 7 (or together with the data display unit 7).
1 通信記録装置、2 入力ポート、3 受信制御部、4 TCP解析部、5 TCP順序制御部、6 アプリケーション解析部、7 データ表示部、9 記録部、10 終端検知部、12 入力ポート、21 端末、22 社内ネットワーク、23 WWWサーバ、24 インターネット、25 FW、26 プロキシサーバ、27,28 SW、29,30 通信ケーブル、40 SYN、41 SYN/ACK、42 ACK、43 GET、44 Res、45 Data、46 Data、47 ACK、48 GET、49 Res、50,51 FIN/ACK、52 ACK、53 Data/Res、53d Data/Resm、54 Data、61 リクエストライン、62 リクエストヘッダフィールド、63 汎用ヘッダフィールド、64 ヘッダフィールド、65 その他、66 空行、67 ボディ、68 ステータスライン、69 レスポンスヘッダフィールド、71 メッセージヘッダ、72 メッセージボディ、81 リクエストポインタ、82 レスポンスポインタ、100 通信ネットワークシステム、101 IPヘッダ、102 TCPヘッダ、103 TCPデータ、104 TCPパケット、105 IPパケット、106,106a,106b メッセージ、107 GETm、108 Resm、111 コンテントサイズ、112 記録サイズ、113 Diff、114 保持サイズ、120 通信履歴、901 表示装置、902 キーボード、903 マウス、904 FDD、905 CDD、906 プリンタ装置、907 キャッシュメモリ、911 CPU、912 バス、913 ROM、914 RAM、915 通信ボード、920 磁気ディスク装置、921 OS、922 ウィンドウシステム、923 プログラム群、924 ファイル群。 1 communication recording device, 2 input port, 3 reception control unit, 4 TCP analysis unit, 5 TCP sequence control unit, 6 application analysis unit, 7 data display unit, 9 recording unit, 10 termination detection unit, 12 input port, 21 terminal , 22 Corporate network, 23 WWW server, 24 Internet, 25 FW, 26 Proxy server, 27, 28 SW, 29, 30 Communication cable, 40 SYN, 41 SYN / ACK, 42 ACK, 43 GET, 44 Res, 45 Data, 46 Data, 47 ACK, 48 GET, 49 Res, 50, 51 FIN / ACK, 52 ACK, 53 Data / Res, 53d Data / Resm, 54 Data, 61 Request line, 62 Request header field, 63 General header field, 6 Header field, 65 Other, 66 Blank line, 67 Body, 68 Status line, 69 Response header field, 71 Message header, 72 Message body, 81 Request pointer, 82 Response pointer, 100 Communication network system, 101 IP header, 102 TCP header , 103 TCP data, 104 TCP packet, 105 IP packet, 106, 106a, 106b message, 107 GETm, 108 Resm, 111 content size, 112 recording size, 113 Diff, 114 holding size, 120 communication history, 901 display device, 902 Keyboard, 903 mouse, 904 FDD, 905 CDD, 906 printer, 907 cache memory, 911 CP , 912 Bus, 913 ROM, 914 RAM, 915 communication board, 920 a magnetic disk device, 921 OS, 922 Window system, 923 Program group, 924 File group.
Claims (10)
特定のデータを示すアプリケーションデータが複数のパケットに分割されて通信される通信ネットワークに接続し、前記複数の通信装置の少なくともいずれかを送信先とする前記複数のパケットのうち前記通信ネットワークに送出されたパケットを受信し、受信したパケットを主記憶装置に記憶する受信制御部と、
前記受信制御部により前記複数のパケットのうち一部のパケットが前記主記憶装置に記憶されたときに、前記主記憶装置から前記一部のパケットを読み出し、読み出した前記一部のパケットに含まれる前記アプリケーションデータの一部を補助記憶装置に前記通信ネットワークの通信履歴の一部として記録する通信記録部とを備え、
前記受信制御部は、前記パケットとして前記アプリケーションデータの一部を示すTCP(Transmission Control Protocol)データと前記アプリケーションデータを通信する特定の通信端末装置間で通信の完了したTCPデータを示す確認応答番号が含まれるTCPヘッダとを含むTCPパケットを受信して前記主記憶装置に記憶し、
前記通信記録装置は、さらに、
前記受信制御部により前記主記憶装置に記憶されたTCPパケットに含まれるTCPヘッダを参照し、参照した前記TCPヘッダに含まれる前記確認応答番号に基づいて前記受信制御部により受信されていないTCPデータであり、特定の通信端末装置間で通信の完了したTCPデータを抜けデータとしてCPUを用いて特定する抜けデータ特定部を備え、
前記通信記録部は、前記抜けデータ特定部により特定された前記抜けデータのサイズ分所定の値が設定されたデータを前記抜けデータとして生成し、生成した前記抜けデータを前記補助記憶装置に記録する
ことを特徴とする通信記録装置。 A communication recording device that records a history of communication between other communication devices,
Application data indicating specific data is divided into a plurality of packets and connected to a communication network to be communicated, and is transmitted to the communication network among the plurality of packets destined for at least one of the plurality of communication devices. A reception control unit that receives the received packet and stores the received packet in the main storage device;
When some packets of the plurality of packets are stored in the main storage device by the reception control unit, the some packets are read from the main storage device, and are included in the read some packets A communication recording unit that records a part of the application data as a part of a communication history of the communication network in an auxiliary storage device ;
The reception control unit has an acknowledgment number indicating a TCP (Transmission Control Protocol) data indicating a part of the application data as the packet and a TCP data having been communicated between a specific communication terminal device communicating the application data. A TCP packet including the included TCP header is received and stored in the main storage device;
The communication recording device further includes:
TCP data that is received by the reception control unit by referring to a TCP header included in a TCP packet stored in the main storage device and based on the confirmation response number included in the referenced TCP header And a missing data identifying unit that identifies, using the CPU, TCP data that has been communicated between specific communication terminal devices as missing data,
The communication recording unit generates, as the missing data, data in which a predetermined value for the size of the missing data specified by the missing data specifying unit is set, and records the generated missing data in the auxiliary storage device <br/> A communication recording apparatus characterized by the above.
前記通信記録部は、前記受信制御部により前記主記憶装置に記憶された前記TCPパケットに含まれる前記TCPヘッダを参照し、参照した前記TCPヘッダに含まれる前記シーケンス番号に基づいて前記TCPパケットに含まれる前記TCPデータを前記アプリケーションデータ内での並び位置に対応させて前記補助記憶装置に記録する
ことを特徴とする請求項1記載の通信記録装置。 The reception control unit stores prior Symbol the main storage device receives a TCP packet containing a TCP header in which the contains TCP data sequence number indicating the sequence position of in the application data,
The communication recording unit refers to the TCP header included in the TCP packet stored in the main storage device by the reception control unit, and determines the TCP packet based on the sequence number included in the referenced TCP header. The communication recording apparatus according to claim 1, wherein the included TCP data is recorded in the auxiliary storage device in association with the arrangement position in the application data.
前記受信制御部により第1のTCPデータと第1のTCPデータのシーケンス番号の含まれる第1のTCPヘッダとを含んだ第1のTCPパケットが受信されて前記主記憶装置に記憶されると共に前記通信記録部により前記第1のTCPパケットに含まれる前記第1のTCPデータが前記補助記憶装置に記録された後、前記受信制御部により第2のTCPデータと前記第2のTCPデータのシーケンス番号の含まれる第2のTCPヘッダとを含んだ第2のTCPパケットが受信されて前記主記憶装置に記憶された場合、前記第1のTCPヘッダに含まれる前記第1のTCPデータのシーケンス番号と前記第2のTCPヘッダに含まれる前記第2のTCPデータのシーケンス番号とに基づいて第2のTCPデータが前記第1のTCPデータに続くデータであるか否かをCPUを用いて判定する順序判定部を備え、
前記通信記録部は、前記順序判定部により前記第2のTCPデータが前記第1のTCPデータに続くデータであると判定された場合、前記第2のTCPデータを前記主記憶装置から読み出し、読み出した前記第2のTCPデータを前記第1のTCPデータに続かせて前記補助記憶装置に記録する
ことを特徴とする請求項2記載の通信記録装置。 The communication recording device further includes:
The reception control unit receives the first TCP packet including the first TCP data and the first TCP header including the sequence number of the first TCP data, and stores the first TCP packet in the main storage device. After the first TCP data included in the first TCP packet is recorded in the auxiliary storage device by the communication recording unit, the sequence number of the second TCP data and the second TCP data by the reception control unit When the second TCP packet including the second TCP header included is received and stored in the main storage device, the sequence number of the first TCP data included in the first TCP header Based on the sequence number of the second TCP data included in the second TCP header, the second TCP data follows the first TCP data. Whether the data includes determining the order determination unit by using the CPU,
The communication recording unit reads and reads the second TCP data from the main storage device when the order determination unit determines that the second TCP data is data following the first TCP data. The communication recording apparatus according to claim 2, wherein the second TCP data is recorded in the auxiliary storage device following the first TCP data.
前記通信記録部は、前記順序判定部により前記第2のTCPデータが前記第1のTCPデータに続くデータであると判定されると共に前記第3のTCPデータが前記第2のTCPデータに続くデータであると判定された場合、前記第2のTCPデータと前記第3のTCPデータとを前記主記憶装置から読み出し、前記第2のTCPデータを前記第1のTCPデータに続かせて前記補助記憶装置に記録すると共に前記第3のTCPデータを前記第2のTCPデータに続かせて前記補助記憶装置に記録する
ことを特徴とする請求項3記載の通信記録装置。 When determining that the second TCP data is data subsequent to the first TCP data, the order determination unit refers to a TCP header included in a third TCP packet stored in the main storage device Determining whether the third TCP data included in the third TCP packet is data following the second TCP data based on the sequence number included in the referenced TCP header;
The communication recording unit determines that the second TCP data is data following the first TCP data by the order determination unit and the third TCP data follows the second TCP data. The second TCP data and the third TCP data are read from the main storage device, and the second TCP data is followed by the first TCP data to the auxiliary storage. 4. The communication recording device according to claim 3, wherein the third TCP data is recorded in the auxiliary storage device following the second TCP data while being recorded in the device.
前記通信記録装置は、さらに、
前記受信制御部により前記主記憶装置に記憶された複数のパケットそれぞれのサイズと前記複数のパケットに含まれる複数のアプリケーションデータそれぞれのサイズとに基づいて前記複数のパケットのうち各アプリケーションデータの終端が含まれるパケットを終端パケットとしてCPUを用いて特定する終端特定部を備え、
前記通信記録部は、前記受信制御部により前記主記憶装置に記憶された複数のパケットを前記終端特定部により特定された各アプリケーションデータの終端パケットに基づいてアプリケーションデータ毎に区別し、複数のパケットに含まれる複数のアプリケーションデータをアプリケーションデータ毎に区別して前記補助記憶装置に記録する
ことを特徴とする請求項1〜請求項4いずれかに記載の通信記録装置。 The reception control unit receives a plurality of application data in a plurality of packets including at least a part of at least one of the application data as partial data, stores the received plurality of packets in the main storage device,
The communication recording device further includes:
Based on the size of each of the plurality of packets stored in the main storage device by the reception control unit and the size of each of the plurality of application data included in the plurality of packets, the end of each application data among the plurality of packets is determined. A termination specifying unit that specifies a contained packet as a termination packet using a CPU,
The communication recording unit distinguishes a plurality of packets stored in the main storage device by the reception control unit for each application data based on a termination packet of each application data specified by the termination specifying unit, and a plurality of packets communication apparatus according to any one claims 1 to 4, to distinguish a plurality of application data for each application data and recording in the auxiliary storage device included in the.
前記通信記録部は、前記終端特定部により前記終端パケットに第1のアプリケーションデータの終端と第2のアプリケーションデータの先頭とが含まれていると判定された場合、前記終端パケットから第1のアプリケーションデータと第2のアプリケーションデータとを抽出し、第1のアプリケーションデータと第2のアプリケーションデータとを区別して前記補助記憶装置に記録する
ことを特徴とする請求項5記載の通信記録装置。 The termination specifying unit determines whether the termination packet includes a termination of first application data and a head of second application data;
The communication recording unit, when the termination specifying unit determines that the termination packet includes the termination of the first application data and the beginning of the second application data, the first application from the termination packet 6. The communication recording apparatus according to claim 5, wherein the data and the second application data are extracted, and the first application data and the second application data are distinguished and recorded in the auxiliary storage device.
特定のデータを示すアプリケーションデータが複数のパケットに分割されて通信される通信ネットワークに接続し、前記複数の通信装置の少なくともいずれかを送信先とする前記複数のパケットのうち前記通信ネットワークに送出されたパケットを受信し、受信したパケットを主記憶装置に記憶する受信制御部と、
前記受信制御部により前記複数のパケットのうち一部のパケットが前記主記憶装置に記憶されたときに、前記主記憶装置から前記一部のパケットを読み出し、読み出した前記一部のパケットに含まれる前記アプリケーションデータの一部を補助記憶装置に前記通信ネットワークの通信履歴の一部として記録する通信記録部とを備え、 前記受信制御部は、前記通信ネットワークに複数の経路で接続し、前記パケットとして前記通信ネットワークに送出されたTCP(Transmission Control Protocol)パケットであって、前記アプリケーションデータの一部を示すTCPデータと前記アプリケーションデータ内での前記TCPデータの並び位置を示すシーケンス番号が含まれるTCPヘッダとを含むTCPパケットを複数の経路それぞれから受信し、複数の経路それぞれから受信したTCPパケットを前記主記憶装置に記憶し、 前記通信記録装置は、さらに、
前記受信制御部によりTCPパケットが受信され前記主記憶装置に第1のTCPパケットとして記憶された後、前記受信制御部により新たにTCPパケットが受信され前記主記憶装置に第2のTCPパケットとして記憶された場合、前記第1のTCPパケットの前記シーケンス番号と前記第2のTCPパケットの前記シーケンス番号とに基づいて前記第1のTCPパケットと前記第2のTCPパケットとが前記受信制御部により異なる経路から受信された同一のTCPパケットであるか否かを判定し、前記第1のTCPパケットと前記第2のTCPパケットとが同一のTCPパケットであると判定した場合、後から受信された前記第2のTCPパケットを前記主記憶装置から削除するTCP解析部
を備えたことを特徴とする通信記録装置。 A communication recording device that records a history of communication between other communication devices,
Application data indicating specific data is divided into a plurality of packets and connected to a communication network to be communicated, and is transmitted to the communication network among the plurality of packets destined for at least one of the plurality of communication devices. A reception control unit that receives the received packet and stores the received packet in the main storage device;
When some packets of the plurality of packets are stored in the main storage device by the reception control unit, the some packets are read from the main storage device, and are included in the read some packets a communication recording portion and be recorded as part of the communication history of the communication network portions of the application data in the auxiliary storage device, the receiving control unit is connected to a plurality of paths in the communication network, as the packet A TCP (Transmission Control Protocol) packet sent to the communication network, the TCP header including TCP data indicating a part of the application data and a sequence number indicating the arrangement position of the TCP data in the application data TCP packet containing Received from each of the plurality of paths, storing TCP packets received from each of the plurality of paths to the main storage device, the communication record apparatus further,
After the TCP packet is received by the reception control unit and stored as the first TCP packet in the main storage device, a new TCP packet is received by the reception control unit and stored as the second TCP packet in the main storage device The first TCP packet and the second TCP packet differ depending on the reception control unit based on the sequence number of the first TCP packet and the sequence number of the second TCP packet. It is determined whether or not the same TCP packet is received from the route, and when it is determined that the first TCP packet and the second TCP packet are the same TCP packet, the later received TCP analysis unit for deleting the second TCP packet from the main storage device
Communication recording apparatus comprising the.
通信記録部が、前記受信制御部により前記複数のパケットのうち一部のパケットが前記主記憶装置に記憶されたときに、前記主記憶装置から前記一部のパケットを読み出し、読み出した前記一部のパケットに含まれる前記アプリケーションデータの一部を補助記憶装置に記憶する記憶処理を行う通信データ処理方法であって、
前記受信制御部は、前記受信制御処理で、前記パケットとして前記アプリケーションデータの一部を示すTCP(Transmission Control Protocol)データと前記アプリケーションデータを通信する特定の通信端末装置間で通信の完了したTCPデータを示す確認応答番号が含まれるTCPヘッダとを含むTCPパケットを受信して前記主記憶装置に記憶し、 抜けデータ特定部が、前記受信制御部により前記主記憶装置に記憶されたTCPパケットに含まれるTCPヘッダを参照し、参照した前記TCPヘッダに含まれる前記確認応答番号に基づいて前記受信制御部により受信されていないTCPデータであり、特定の通信端末装置間で通信の完了したTCPデータを抜けデータとしてCPUを用いて特定する抜けデータ特定処理を行い、
前記通信記録部は、前記記憶処理で、前記抜けデータ特定部により特定された前記抜けデータのサイズ分所定の値が設定されたデータを前記抜けデータとして生成し、生成した前記抜けデータを前記補助記憶装置に記録する
ことを特徴とする通信データ処理方法。 The reception control unit connects to a communication network in which application data indicating specific data is divided into a plurality of packets and communicates, receives a packet sent to the communication network among the plurality of packets, and receives the received packet Receive control processing to store the
The communication recording unit reads the part of the packet from the main storage device when the packet is stored in the main storage device by the reception control unit, and the part that is read A communication data processing method for performing a storage process of storing a part of the application data included in the packet in an auxiliary storage device ,
In the reception control process, the reception control unit transmits TCP (Transmission Control Protocol) data indicating a part of the application data as the packet and TCP data that has been communicated between a specific communication terminal device that communicates the application data. And a TCP packet including a TCP header including an acknowledgment number indicating that the data is stored in the main storage device, and a missing data specifying unit is included in the TCP packet stored in the main storage device by the reception control unit. TCP data that is not received by the reception control unit based on the confirmation response number included in the referenced TCP header, and that has been communicated between specific communication terminal devices. The omission specified using the CPU as omission data It performs data specific processing,
The communication recording unit generates, as the missing data, data in which a predetermined value is set for the size of the missing data specified by the missing data specifying unit in the storage process, and the generated missing data is used as the auxiliary data. A communication data processing method comprising: recording in a storage device .
通信記録部が、前記受信制御部により前記複数のパケットのうち一部のパケットが前記主記憶装置に記憶されたときに、前記主記憶装置から前記一部のパケットを読み出し、読み出した前記一部のパケットに含まれる前記アプリケーションデータの一部を補助記憶装置に記憶する記憶処理を行う通信データ処理方法であって、 前記受信制御部は、前記受信制御処理で、前記通信ネットワークに複数の経路で接続し、前記パケットとして前記通信ネットワークに送出されたTCP(Transmission Control Protocol)パケットであって、前記アプリケーションデータの一部を示すTCPデータと前記アプリケーションデータ内での前記TCPデータの並び位置を示すシーケンス番号が含まれるTCPヘッダとを含むTCPパケットを複数の経路それぞれから受信し、複数の経路それぞれから受信したパケットを前記主記憶装置に記憶し、 TCP解析部が、前記受信制御部によりTCPパケットが受信され前記主記憶装置に第1のTCPパケットとして記憶された後、前記受信制御部により新たにTCPパケットが受信され前記主記憶装置に第2のTCPパケットとして記憶された場合、前記第1のTCPパケットの前記シーケンス番号と前記第2のTCPパケットの前記シーケンス番号とに基づいて前記第1のTCPパケットと前記第2のTCPパケットとが前記受信制御部により異なる経路から受信された同一のTCPパケットであるか否かを判定し、前記第1のTCPパケットと前記第2のTCPパケットとが同一のTCPパケットであると判定した場合、後から受信された前記第2のTCPパケットを前記主記憶装置から削除するTCP解析処理を行う
ことを特徴とする通信データ処理方法。 The reception control unit connects to a communication network in which application data indicating specific data is divided into a plurality of packets and communicates, receives a packet sent to the communication network among the plurality of packets, and receives the received packet Receive control processing to store the
The communication recording unit reads the part of the packet from the main storage device when the packet is stored in the main storage device by the reception control unit, and the part that is read A communication data processing method for performing a storage process of storing a part of the application data included in a packet in an auxiliary storage device , wherein the reception control unit performs a plurality of paths to the communication network in the reception control process. A TCP (Transmission Control Protocol) packet that is connected and sent to the communication network as the packet, and is a sequence that indicates TCP data indicating a part of the application data and an arrangement position of the TCP data in the application data Including a TCP header containing a number The CP packets received from each of the plurality of paths, the first packets received from each of the plurality of paths is stored in the main storage device, TCP analyzing unit, TCP packets received by the receiving control unit to the main storage device When the TCP packet is newly received by the reception control unit and stored as the second TCP packet in the main storage device, the sequence number of the first TCP packet and the first TCP packet are stored. And determining whether the first TCP packet and the second TCP packet are the same TCP packet received from different paths by the reception control unit based on the sequence number of the second TCP packet. And determining that the first TCP packet and the second TCP packet are the same TCP packet. If the communication data processing method according to claim <br/> that the received second TCP packet performing TCP analysis process to be deleted from the main memory later.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008050209A JP5014199B2 (en) | 2008-02-29 | 2008-02-29 | Communication recording apparatus, communication data processing method, and communication data processing program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008050209A JP5014199B2 (en) | 2008-02-29 | 2008-02-29 | Communication recording apparatus, communication data processing method, and communication data processing program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009207099A JP2009207099A (en) | 2009-09-10 |
JP5014199B2 true JP5014199B2 (en) | 2012-08-29 |
Family
ID=41148880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008050209A Expired - Fee Related JP5014199B2 (en) | 2008-02-29 | 2008-02-29 | Communication recording apparatus, communication data processing method, and communication data processing program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5014199B2 (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101209926B1 (en) | 2011-09-19 | 2012-12-11 | 에스케이텔레콤 주식회사 | Method for simultaneously transmitting data in heterogeneous network |
WO2013042920A2 (en) | 2011-09-19 | 2013-03-28 | 에스케이텔레콤 주식회사 | Device and method for supporting a simultaneous transmission service of multiple network based data |
JP2013068105A (en) | 2011-09-21 | 2013-04-18 | Hitachi Automotive Systems Ltd | Electronic control device for vehicle |
JP2014003744A (en) * | 2012-06-15 | 2014-01-09 | Takaoka Electric Mfg Co Ltd | Remote monitoring and control system of charger for electric vehicle |
JP6206254B2 (en) | 2014-03-04 | 2017-10-04 | 富士通株式会社 | Duplicate packet removal method and program |
JP6413543B2 (en) * | 2014-09-22 | 2018-10-31 | 富士ゼロックス株式会社 | Load balancing device, server, load balancing system, load balancing program |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1324206A4 (en) * | 2000-10-03 | 2008-07-23 | Netagent Co Ltd | Communication information recorder |
JP4652851B2 (en) * | 2005-03-04 | 2011-03-16 | キヤノン電子株式会社 | Network information collecting apparatus, control method, and program |
JP4699893B2 (en) * | 2005-12-19 | 2011-06-15 | 三菱スペース・ソフトウエア株式会社 | Packet analysis system, packet analysis program, packet analysis method, and packet acquisition device |
EP1868321B1 (en) * | 2006-06-12 | 2016-01-20 | Mitsubishi Denki Kabushiki Kaisha | In-line content analysis of a TCP segment stream |
JP4334560B2 (en) * | 2006-10-31 | 2009-09-30 | 株式会社東芝 | Communication record monitoring device |
-
2008
- 2008-02-29 JP JP2008050209A patent/JP5014199B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2009207099A (en) | 2009-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11765079B2 (en) | Computational accelerator for storage operations | |
JP5014199B2 (en) | Communication recording apparatus, communication data processing method, and communication data processing program | |
US9455873B2 (en) | End-to-end analysis of transactions in networks with traffic-altering devices | |
CN107438012B (en) | Load balancing service forwarding method, system, balancing device and host machine | |
US20190075049A1 (en) | Determining Direction of Network Sessions | |
US7990847B1 (en) | Method and system for managing servers in a server cluster | |
US8898311B2 (en) | Data communication method and information processing device | |
US8009672B2 (en) | Apparatus and method of splitting a data stream over multiple transport control protocol/internet protocol (TCP/IP) connections | |
JP4087271B2 (en) | Proxy response device and network system | |
US20090241188A1 (en) | Communication monitoring apparatus and communication monitoring method | |
JP4516439B2 (en) | Relay program, relay method, and relay device | |
EP2717520A1 (en) | Communication path control system, and communication path control method | |
EP3574617B1 (en) | Method and apparatus for managing routing disruptions in a computer network | |
JP5024394B2 (en) | System visualization program, method and apparatus | |
US8213325B2 (en) | Packet analysis method, packet analysis apparatus, recording medium storing packet analysis program | |
US9313291B2 (en) | Systems and methods for transparent communication with bandwidth conservation and HTTP caching | |
WO2017071430A1 (en) | Message processing method, network card, system, information update method, and server | |
EP1575236B1 (en) | Connectivity confirmation method for network storage device and host computer | |
US10623338B2 (en) | Information processing device, information processing method and non-transitory computer-readable storage medium | |
JP4845661B2 (en) | Network monitoring apparatus, network monitoring method and program | |
US10257093B2 (en) | Information processing device, method, and medium | |
JP2017216613A (en) | Transfer device and transfer method | |
CN112702236B (en) | Method and processor for realizing packet loss detection | |
US8995271B2 (en) | Communications flow analysis | |
US20200059440A1 (en) | Communication device and communication method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101207 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120228 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120325 |
|
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: 20120508 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120605 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150615 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5014199 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |