JP2009207099A - 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 PDF

Info

Publication number
JP2009207099A
JP2009207099A JP2008050209A JP2008050209A JP2009207099A JP 2009207099 A JP2009207099 A JP 2009207099A JP 2008050209 A JP2008050209 A JP 2008050209A JP 2008050209 A JP2008050209 A JP 2008050209A JP 2009207099 A JP2009207099 A JP 2009207099A
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.)
Granted
Application number
JP2008050209A
Other languages
Japanese (ja)
Other versions
JP5014199B2 (en
Inventor
Norimitsu Nagashima
規充 永嶋
Shinobu Atozawa
忍 後沢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2008050209A priority Critical patent/JP5014199B2/en
Publication of JP2009207099A publication Critical patent/JP2009207099A/en
Application granted granted Critical
Publication of JP5014199B2 publication Critical patent/JP5014199B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To carry out application analysis, even if there is a packet that cannot be received, by receiving and assembling packets addressed to other hosts on a network. <P>SOLUTION: In a communication recording apparatus 1, a reception control unit 3 connects to a communication network over which application data are divided into a plurality of packets and communicated, and stores received packets in a memory. A TCP analysis unit 4 analyzes connection information of the packets received by the reception control unit 3, and a TCP order control unit 5 determines an order of packets received by the reception control unit 3. When some of the plurality of packets are stored in the memory by the reception control unit 3, an application analysis unit 6 then reads the partial packets from the memory and records part of application data contained in the read partial packets in a recording unit 9, which in turn is an auxiliary storage device, as part of communication history. <P>COPYRIGHT: (C)2009,JPO&INPIT

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])とこれに対する応答(画像データ、音声データ)を復元して記録する。
特開2006−295921号公報 特開2006−340322号公報 特開2003−163714号公報 特開2000−244564号公報 特開2001−251342号公報 特開2003−163682号公報 村山公保、西田佳史、尾家祐二著、「岩波講座 インターネット 第三巻 トランスポートプロトコル」、岩波書店、2001年4月6日発行、P47
In communication using TCP (Transmission Control Protocol), data is processed as a byte stream between a transmission application and a reception application.
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.
JP 2006-295921 A JP 2006-340322 A JP 2003-163714 A JP 2000-244564 A JP 2001-251342 A JP 2003-163682 A Murayama Koho, Nishida Yoshifumi, Oie Yuji, “Iwanami Lecture Internet Volume 3 Transport Protocol”, Iwanami Shoten, April 6, 2001, P47

しかし、通信記録装置が記録するデータは、端末−プロキシサーバ間やプロキシサーバ−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に送信する。
Embodiment 1 FIG.
FIG. 1 is a diagram illustrating an example of a communication network system 100 according to the first embodiment.
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 proxy server 26. Data is acquired from the WWW server 23.
The FW 25 is provided to ensure the security of the in-house network 22 and restricts direct communication between the in-house network 22 and the Internet 24. The proxy server 26 acquires data from the WWW server 23 instead of the terminal 21 so that the terminal 21 of the in-house network 22 can acquire data from the WWW server 23 on the Internet 24, and transmits the acquired data to the terminal 21.

通信記録装置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 communication recording device 1 receives data transmitted / received between the proxy server 26 and the WWW server 23 via the SW 27 (switching hub device), and the received data is communicated between the in-house network 22 and the Internet 24. Data history (communication history 120, communication log). The terminal 21 is one of terminals connected to the internal network 22 and the WWW server 23 is one of terminals connected to the Internet 24. The communication recording apparatus 1 records a history of communication (via the proxy server 26) between a communication terminal of the in-house network 22 and a communication terminal connected to the Internet 24. By verifying the communication history 120 recorded by the communication recording device 1, it is possible to check whether there is an unauthorized access from the Internet 24 to the in-house network 22, information leakage from the in-house network 22 to the Internet 24, and the content thereof. In other words, the communication history 120 is used as forensic evidence to prove the presence or absence of unauthorized access, analysis of unauthorized access procedures, and the presence or absence of information loss.

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 proxy server 26, and the communication recording device 1. In particular, a port to which the communication recording apparatus 1 is connected is referred to as a “mirroring port”. The SW 27 relays (relays) data transmitted from the internal network 22 or transmitted to the internal network 22 between the ports, and transmits the data to the communication cable connected to the FW 25, the proxy server 26, and the communication recording apparatus 1 from each port. To do. In particular, the SW 27 relays all data relayed between the ports to the mirroring port to which the communication recording apparatus 1 is connected via the communication cable 29. This function of the SW 27 is called “port monitor function”. The communication recording apparatus 1 can receive all data relayed between the ports by the port monitor function of the SW 27.

図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-house network 22 and the Internet 24. In the TCP / IP communication, an IP packet 105 configured as shown in FIG. 2 is communicated.

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 GETm 107, and FIG. 4 is a diagram illustrating a configuration of the Resm 108.
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 GETm 107 and the Resm 108 has a message header 71 in which control information is set and a message body 72 that is data for communication. The message header 71 and the message body 72 are separated by a blank line 66.
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 Resm 108 includes a status line 68, a response header field 69, and a general header field. 63, a header field 64, and the other 65.
“GET” is set in the request line 61 of the GET m 107 to indicate that this HTTP message is GET 43. In the header field 64 of GETm 107 and Resm 108, “Content-Length” indicating the size of the message body 72 is set. Hereinafter, the size of the message body 72 is referred to as “content size”.

以下、GETm107やResm108を総称して「メッセージ106」という。   Hereinafter, GETm 107 and Resm 108 are collectively referred to as “message 106”.

図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 Resm 108.
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 Resume 108 of 2000 bytes (bytes) is divided into two by 1000 bytes, a packet (Res44) including a message header 71 (the head of the Resm 108) and a part of the message body 72, and the remaining message body 72 (Resm108). And the packet (Data 45) including the end of the data.

以下、Res44に設定されたデータやData45に設定されたデータのように分割されたメッセージ106を構成するそれぞれの部分を総称して「分割データ(または、フラグメント)」という。   Hereinafter, the respective parts constituting the message 106 divided like the data set in Res 44 and the data set in Data 45 are collectively referred to as “divided data (or fragment)”.

図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 Res 108 shown in FIG. 5 is sent from the WWW server 23 to the proxy server 26 using Res 44 and Data 45 in the flow shown in FIG.
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-house network 22 to the WWW server 23. The proxy server 26 receives a request from the terminal 21 to the WWW server 23. If the terminal 21 does not hold the requested data, the proxy server 26 issues a request to the WWW server 23 instead of the terminal 21 to acquire the data, and responds to the terminal 21 with the acquired data. FIG. 6 shows a flow of packet transmission / reception when the proxy server 26 sends a request to the WWW server 23 instead of the terminal 21 to acquire data.

まず、プロキシサーバ26はSYN40、SYN/ACK41およびACK42の送受信によりWWWサーバ23とTCPのコネクションを確立し、確立したコネクションを用いてGET43、Res44、Data45およびACK47の送受信によりWWWサーバ23からデータを取得し、FIN/ACK50、FIN/ACK51およびACK52の送受信によりコネクションを切断する。   First, the proxy server 26 establishes a TCP connection with the WWW server 23 through transmission / reception of SYN 40, SYN / ACK 41 and ACK 42, and acquires data from the WWW server 23 through transmission / reception of GET 43, Res 44, Data 45 and ACK 47 using the established connection. The connection is disconnected by sending / receiving FIN / ACK 50, FIN / ACK 51 and ACK 52.

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 40 is a packet in which a flag indicating a connection establishment request is set in the TCP header 102.
SYN / ACK 41 is a packet in which an acknowledgment number (ack) indicating completion of reception of SYN 40 and a flag indicating establishment of a connection are set in the TCP header 102.
The ACK 42 is a packet in which an acknowledgment number indicating completion of reception of SYN / ACK 41 is set in the TCP header 102.
The GET 43 is a packet in which the GET m 107 is set in the TCP data 103.
Res 44 is a packet in which the first half of Res 108 is set in the TCP data 103.
Data 45 is a packet in which the latter half of Resm 108 is set in TCP data 103.
The ACK 47 is a packet in which an acknowledgment number indicating completion of the reception of Res 44 and Data 45 is set in the TCP header 102.
The FIN / ACK 50 is a packet in which a flag indicating a connection disconnection request is set in the TCP header 102.
The FIN / ACK 51 is a packet in which an acknowledgment number indicating completion of reception of the FIN / ACK 50 and a flag indicating disconnection are set in the TCP header 102.
The ACK 52 is a packet in which an acknowledgment number indicating completion of reception of the FIN / ACK 51 is set in the TCP header 102.
Hereinafter, the case where the TCP data 103 is not included in the SYN 40, the SYN / ACK 41, the ACK 42, the ACK 47, the FIN / ACK 50, the FIN / ACK 51, and the ACK 52 will be described as an example.

送受信されるパケットの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 SYN 40 and SYN / ACK 41.

図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 SYN 40 means that the arrangement order of the TCP data 103 transmitted from the proxy server 26 to the WWW server 23 is indicated by a serial number that continues from “99”.
Further, seq (700) set in SYN / ACK 41 means that the arrangement order of the TCP data 103 transmitted from the WWW server 23 to the proxy server 26 is indicated by a serial number subsequent to “700”.

「確認応答番号(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 SYN 40, SYN / ACK 41, FIN / ACK 50, and FIN / ACK 51 treat the TCP data 103 as a 1-byte packet, and “1 (byte)” is added to the “sequence number (seq)”.

図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 proxy server 26 transmits SYN 40 in which “99” is set as an initial value of its own seq to the WWW server 23 in order to establish a connection with the WWW server 23. The WWW server 23 that has received the SYN 40 sets a value (100) obtained by adding “1” to the seq (99) of the SYN 40 as an ack, and proxies the SYN / ACK 41 in which “700” is set as an initial value of its own seq. Send to server 26. The proxy server 26 that has received the SYN / ACK 41 sets a value (701) obtained by adding “1” to the seq (700) of the SYN / ACK 41 as an ack, and an ACK 42 that sets the ack (100) of the SYN / ACK 41 to a seq. Is transmitted to the WWW server 23. Thereby, a connection is established between the proxy server 26 and the WWW server 23.
After establishing the connection, the proxy server 26 transmits the GET 43 in which the GET m 107 is set as the TCP data 103 to the WWW server 23. Seq and ack of GET 43 are the same as ACK 42. Here, the size of GETm 107 is assumed to be 100 bytes.

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 GET 43 divides the 2000 byte Resm 108 into two parts each having 1000 bytes. Then, the WWW server 23 transmits the Res 44 in which the first 1000 bytes including the head of the Resm 108 are set as the TCP data 103 to the proxy server 26, and the second 1000 bytes including the end of the Resm 108 is the TCP data 103. The set Data 45 is transmitted to the proxy server 26. The seq of Res44 is the same value as the ack of GET43, and the seq of Data45 is a value (1701) obtained by adding the size (1000) of the TCP data 103 of Res44 to the seq (701) of Res44.
The proxy server 26 that has received the Res 44 and the Data 45 sets the ACK 47 in which the value (2701) obtained by adding the total size (2000) of the TCP data 103 of the Res 44 and Data 45 to the ack (701) of the GET 43 is set as the ack. Send to. The seq of ACK 47 is the same as the ack of Res 44 and Data 45.

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 proxy server 26 that has received Resm 108 by Res 44 and Data 45 transmits FIN / ACK 50 in which the same seq (200) and ack (2701) as ACK 47 are set to the WWW server 23 in order to disconnect the connection. The WWW server 23 that has received the FIN / ACK 50 transmits to the proxy server 26 FIN / ACK 51 (seq: 2701) in which a value (201) obtained by adding “1” to the seq (200) of the FIN / ACK 50 is set as ack. The proxy server 26 that has received the FIN / ACK 51 transmits to the WWW server 23 ACK 52 (seq: 201) in which a value (2702) obtained by adding “1” to seq (2701) of the FIN / ACK 51 is set as ack. As a result, the connection between the proxy server 26 and the WWW server 23 is disconnected.

図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 communication recording apparatus 1 receives each packet (SYN40 to ACK52) communicated between the WWW server 23 and the proxy server 26, and communicates the TCP data 103 set in each packet. Record as history 120. In FIG. 6, GETm 107 set in GET 43, Resm 108 set in Res 44 and Data 45 are recorded as communication history 120 by the communication recording device 1.
The communication recording device 1 records the TCP data 103 set in Res44 and the TCP data 103 set in Data45 in association with each other as Resm108, and records the GETm107 and Resm108 in association with each other.

図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 GETm 107 and the Resm 108 are set according to the first embodiment.
For example, the communication recording apparatus 1 records GETm 107 and Resm 108 in association with each other as shown in FIG.
The request pointer 81 indicates the address of the storage area in which the GETm 107 set in the GET 43 is recorded.
The response pointer 82 includes the address of the storage area recorded in the first half of Resm 108 set in Res 44 and the address of the storage area recorded in the second half of Resm 108 set in Data 45 as the storage area in which Resm 108 is recorded. Is shown in the order of the data (start → end).
For example, the first half part of Resm 108 set in GETm 107 and Res 44 and the second half part set in Data 45 are stored in a continuous storage area.
Thereby, the communication recording device 1 can record the message 106 communicated between the proxy server 26 and the WWW server 23 as the communication history 120.
A set of request pointers 81 and response pointers 82 is generated for the number of messages 106 communicated between the proxy server 26 and the WWW server 23.
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 communication recording device 1 is not limited to that shown in FIG.

図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 communication recording device 1 according to the first embodiment.
In FIG. 8, the communication recording apparatus 1 includes a CPU 911 (also referred to as a central processing unit, a central processing unit, a processing unit, an arithmetic unit, a microprocessor, a microcomputer, or a processor) that executes a program. The CPU 911 includes a cache memory 907, a ROM 913, a RAM 914, a communication board 915, a display device 901, a keyboard 902, a mouse 903, an FDD 904 (Flexible Disk Drive), a CDD 905 (compact disk device), a printer device 906, via a bus 912. It is connected to a magnetic disk device 920 and controls these hardware devices. Instead of the magnetic disk device 920, a storage device such as an optical disk device or a memory card read / write device may be used.
The RAM 914 and the cache memory 907 are an example of a main storage device and an example of a volatile memory. The ROM 913 is an example of a nonvolatile memory. The storage medium of the FDD 904, the storage medium of the CDD 905, and the magnetic disk device 920 are an example of an auxiliary storage device and an example of a nonvolatile memory.
The communication board 915, the keyboard 902, the FDD 904, and the like are examples of an input device, an input device, or an input unit.
The communication board 915, the display device 901, the printer device 906, and the like are examples of output devices, output devices, or output units.

通信ボード915は複数のポートを備え、各ポートには通信ケーブルの一端が接続され、通信ケーブルの他端はSW27のミラーリングポートに接続される。   The communication board 915 includes a plurality of ports. One end of the communication cable is connected to each port, and the other end of the communication cable is connected to the mirroring port of the SW 27.

磁気ディスク装置920には、OS921(オペレーティングシステム)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、OS921、ウィンドウシステム922により実行される。   The magnetic disk device 920 stores an OS 921 (operating system), a window system 922, a program group 923, and a file group 924. The programs in the program group 923 are executed by the CPU 911, the OS 921, and the window system 922.

上記プログラム群923には、実施の形態において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。   The program group 923 stores a program for executing a function described as “˜unit” in the embodiment. The program is read and executed by the CPU 911.

ファイル群924には、実施の形態において、「〜部」の機能を実行した際の「〜の判定結果」、「〜の計算結果」、「〜の処理結果」などの結果データ、「〜部」の機能を実行するプログラム間で受け渡しするデータ、その他の情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。通信履歴120はファイル群924に含まれるものの一例である。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、実施の形態において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disc)等の記録媒体に記録される。また、データや信号値は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
In the file group 924, in the embodiment, result data such as “determination result”, “calculation result of”, “processing result of” when executing the function of “to part”, “to part” The data to be passed between programs that execute the function “,” other information, data, signal values, variable values, and parameters are stored as items “˜file” and “˜database”. The communication history 120 is an example of what is included in the file group 924.
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 CPU 911 via a read / write circuit, and extracted, searched, referenced, compared, and calculated. Used for CPU operations such as calculation, processing, output, printing, and display. Information, data, signal values, variable values, and parameters are temporarily stored in the main memory, cache memory, and buffer memory during the CPU operations of extraction, search, reference, comparison, operation, calculation, processing, output, printing, and display. Is remembered.
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 RAM 914 memory, the FDD 904 flexible disk, the CDD 905 compact disk, and the magnetic disk device 920 magnetic field. It is recorded on a recording medium such as a disc, other optical discs, mini discs, DVD (Digital Versatile Disc). Data and signal values are transmitted online via a bus 912, signal lines, cables, or other transmission media.

また、実施の形態において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、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 ROM 913. Alternatively, it may be implemented only by software, only hardware such as elements, devices, substrates, wirings, etc., or a combination of software and hardware, and further a combination of firmware. Firmware and software are stored as programs in a recording medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a mini disk, and a DVD. The program is read by the CPU 911 and executed by the CPU 911. That is, the program causes the computer to function as “to part”. Alternatively, the procedure or method of “to part” is executed by a computer.

図9は、実施の形態1における通信記録装置1の機能構成図である。
実施の形態1における通信記録装置1の機能構成について、図9に基づいて以下に説明する。
FIG. 9 is a functional configuration diagram of the communication recording apparatus 1 according to the first embodiment.
A functional configuration of the communication recording apparatus 1 according to the first embodiment will be described below with reference to FIG.

通信記録装置1は、受信制御部3、TCP解析部4、TCP順序制御部5、アプリケーション解析部6、データ表示部7、入力ポート2および記録部9を備える。   The communication recording apparatus 1 includes a reception control unit 3, a TCP analysis unit 4, a TCP order control unit 5, an application analysis unit 6, a data display unit 7, an input port 2, and a recording unit 9.

入力ポート2は通信ケーブル29に接続され、通信ケーブル29の他端はSW27のミラーリングポートに接続されている。入力ポート2は、通信ケーブル29を介して、SW27のポートモニタ機能により転送されたパケットを入力し、入力したパケットを受信制御部3に出力する。   The input port 2 is connected to the communication cable 29, and the other end of the communication cable 29 is connected to the mirroring port of SW27. The input port 2 inputs a packet transferred by the port monitor function of the SW 27 via the communication cable 29 and outputs the input packet to the reception control unit 3.

記録部9は、アプリケーション解析部6によりメッセージ106が通信履歴120として記録される補助記憶装置(不揮発性メモリ)(例えば、磁気ディスク装置920、フラッシュメモリ、FD、CD、DVD、)である。   The recording unit 9 is an auxiliary storage device (nonvolatile memory) (for example, a magnetic disk device 920, flash memory, FD, CD, DVD) in which the message 106 is recorded as the communication history 120 by the application analysis unit 6.

受信制御部3は入力ポート2からパケットを入力し、入力した全てのパケットを主記憶装置(揮発性メモリ)(例えば、RAM914、キャッシュメモリ907)に記憶する。受信制御部3には、自宛でないパケットも含めて全てのパケットを受信する動作モード(プロミスカスモード)が設定されている。   The reception control unit 3 inputs a packet from the input port 2 and stores all the input packets in a main storage device (volatile memory) (for example, the RAM 914 and the cache memory 907). The reception control unit 3 is set with an operation mode (promiscuous mode) for receiving all packets including packets not addressed to itself.

受信制御部3は、特定のデータを示すアプリケーションデータ(例えば、GETm107、Resm108、メッセージ106)が複数のパケットに分割されて通信される通信ネットワーク(例えば、社内ネットワーク22、インターネット24)に入力ポート2、通信ケーブル29およびSW27を介して接続し、複数のパケットのうち通信ネットワークに送出されたパケットを受信する(パケットを入力ポート2から入力する)。そして、受信制御部3は、受信したパケットを主記憶装置に記憶する。   The reception control unit 3 inputs the input port 2 to a communication network (for example, the in-house network 22 and the Internet 24) in which application data (for example, GETm 107, Resm 108, message 106) indicating specific data is divided into a plurality of packets and communicated. The communication cable 29 and the SW 27 are connected to receive a packet sent to the communication network among the plurality of packets (the packet is input from the input port 2). The reception control unit 3 stores the received packet in the main storage device.

TCP解析部4は、受信制御部3に受信され主記憶装置に記憶された各パケットのTCPヘッダ102を解析する。例えば、TCP解析部4はコネクション情報の設定、検索および削除を行う。   The TCP analysis unit 4 analyzes the TCP header 102 of each packet received by the reception control unit 3 and stored in the main storage device. For example, the TCP analysis unit 4 sets, searches, and deletes connection information.

TCP順序制御部5は、受信制御部3に受信され主記憶装置に記憶された各パケットについて、TCPヘッダ102に設定されたシーケンス番号(seq)に基づいてTCPパケット104の順序に関する制御を行う。   The TCP order control unit 5 performs control related to the order of the TCP packets 104 based on the sequence number (seq) set in the TCP header 102 for each packet received by the reception control unit 3 and stored in the main storage device.

例えば、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 reception control unit 3 to include the first TCP packet including the first TCP data and the first TCP header including the sequence number of the first TCP data. Is received and stored in the main storage device, and the first TCP data included in the first TCP packet is recorded in the recording unit 9 (auxiliary storage device) by the application analysis unit 6 (communication recording unit) described later. When the second TCP packet including the second TCP data and the second TCP header including the sequence number of the second TCP data is received by the reception control unit 3 and stored in the main storage device The following processing is performed. The TCP order control unit 5 determines the second TCP data based on the sequence number of the first TCP data included in the first TCP header and the sequence number of the second TCP data included in the second TCP header. It is determined using the CPU whether or not is data following the first TCP data.

また例えば、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 order control unit 5 determines whether or not the third TCP data included in the third TCP packet is data subsequent to the second TCP data based on the sequence number included in the referenced TCP header. judge.

アプリケーション解析部6は、受信制御部3により受信され主記憶装置に記憶された各パケットについて、TCPデータ103を解析して記録部9に記録する。   The application analysis unit 6 analyzes the TCP data 103 and records it in the recording unit 9 for each packet received by the reception control unit 3 and stored in the main storage device.

例えば、アプリケーション解析部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 reception control unit 3, The packet is read, and a part of the message 106 included in the part of the read packet is recorded in the recording unit 9 as a part of the communication history.

また例えば、アプリケーション解析部6は、受信制御部3により主記憶装置に記憶されたTCPパケット104に含まれるTCPヘッダ102を参照する。そして、アプリケーション解析部6は、参照したTCPヘッダ102に含まれるシーケンス番号(seq)に基づいて、TCPパケット104に含まれるTCPデータ103をメッセージ106内での並び位置に対応させて記録部9に記録する。   For example, the application analysis unit 6 refers to the TCP header 102 included in the TCP packet 104 stored in the main storage device by the reception control unit 3. Then, the application analysis unit 6 causes the recording unit 9 to associate the TCP data 103 included in the TCP packet 104 with the arrangement position in the message 106 based on the sequence number (seq) included in the referenced TCP header 102. Record.

また例えば、アプリケーション解析部6は、主記憶装置に記憶されている第2のTCPデータが記録部9に記録されている第1のTCPデータに続くデータであるとTCP順序制御部5により判定された場合、第2のTCPデータを主記憶装置から読み出し、読み出した第2のTCPデータを第1のTCPデータに続かせて記録部9に記録する。   Further, for example, the application analysis unit 6 determines that the second TCP data stored in the main storage device is data following the first TCP data recorded in the recording unit 9 by the TCP order control unit 5. In this case, the second TCP data is read from the main storage device, and the read second TCP data is recorded in the recording unit 9 following the first TCP data.

また例えば、アプリケーション解析部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 application analysis unit 6 determines that the second TCP data stored in the main storage device is data following the first TCP data recorded in the recording unit 9 by the TCP order control unit 5. When it is determined that the third TCP data stored in the main storage device is data following the second TCP data, the following processing is performed. The application analysis unit 6 reads the second TCP data and the third TCP data from the main storage device, records the second TCP data in the recording unit 9 following the first TCP data, and the third TCP data. The TCP data is recorded in the recording unit 9 following the second TCP data.

データ表示部7は、記録部9に記録された通信履歴120を表示装置901に表示したり、プリンタ装置906から印刷したりする。   The data display unit 7 displays the communication history 120 recorded in the recording unit 9 on the display device 901 or prints it from the printer device 906.

図10は、実施の形態1における通信記録装置1の通信記録方法を示すフローチャートである。
実施の形態1における通信記録装置1の通信記録方法について、図10に基づいて以下に説明する。
通信記録装置1の各部は、以下に説明する各処理をCPUを用いて実行する。
FIG. 10 is a flowchart showing a communication recording method of the communication recording apparatus 1 according to the first embodiment.
A communication recording method of the communication recording apparatus 1 in the first embodiment will be described below with reference to FIG.
Each unit of the communication recording apparatus 1 executes each process described below using a CPU.

<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 reception control unit 3 receives and receives the IP packet 105 from the input port 2, and stores the received IP packet 105 in a memory (main storage device).
The IP packet 105 received by the reception control unit 3 and stored in the memory is an IP packet 105 communicated between the proxy server 26 and the WWW server 23 and between the proxy server 26 and the terminal 21 in FIG. Yes, the IP packet 105 is transferred by the port monitor function of the SW 27. The TCP data 103 of the IP packet 105 indicates a message 106 from the terminal 21 of the internal network 22 to the WWW server 23 of the Internet 24 and a message 106 from the WWW server 23 of the Internet 24 to the terminal 21 of the internal network 22. The message 106 having a large size is divided into a plurality of pieces, and each is transmitted as a TCP data 103 by a plurality of IP packets 105.

<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 TCP analysis unit 4 refers to the TCP packet 104 included in the IP packet 105 received by the reception control unit 3 in S110 and stored in the memory, and analyzes the TCP packet 104 based on the TCP header 102.
For example, in FIG. 6, the TCP analysis unit 4 identifies whether the TCP packet 104 is SYN 40, SYN / ACK 41, ACK 42, GET 43, Res 44, Data 45, ACK 47, FIN / ACK 50, FIN / ACK 51, or ACK 52.
For example, the TCP analysis unit 4 sets connection information based on SYN 40 and SYN / ACK 41.

<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 order control unit 5 determines the order of arrangement of the TCP data 103.
For example, the TCP order control unit 5 refers to the TCP packet 104 included in the IP packet 105, and arranges the TCP data 103 in the message 106 before the division based on the sequence number (seq) set in the TCP header 102. Identify the location.

<S140:アプリケーション解析処理>
そして、アプリケーション解析部6は各TCPデータ103を順序通りに並べてメッセージ106を通信履歴120として記録部9に記録する。
例えば、アプリケーション解析部6は各TCPデータ103をIPパケット105から取得し、取得した各TCPデータ103を分割前のメッセージ106内での並び位置に対応させて通信履歴として記録部9に記録する。
<S140: Application Analysis Processing>
Then, the application analysis unit 6 arranges the TCP data 103 in order and records the message 106 as the communication history 120 in the recording unit 9.
For example, the application analysis unit 6 acquires each TCP data 103 from the IP packet 105 and records the acquired TCP data 103 in the recording unit 9 as a communication history in association with the arrangement position in the message 106 before the division.

<S150:データ表示処理>
また、データ表示部7は記録部9から通信履歴120を取得し、取得した通信履歴120を表示装置901に表示したり、プリンタ装置906から印刷したりする。
<S150: Data Display Processing>
Further, the data display unit 7 acquires the communication history 120 from the recording unit 9, and displays the acquired communication history 120 on the display device 901 or prints it from the printer device 906.

図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 reception control unit 3 in the reception control process (S110), the TCP shown in FIG. Analysis processing (S120) to application analysis processing (S140) are executed.

まず、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 TCP analysis unit 4 refers to the TCP header 102 of the IP packet 105 newly stored in the memory, determines whether the TCP packet 104 is SYN 40 or SYN / ACK 41 transmitted when the connection is established, or FIN / It is determined whether the packet is an ACK 50 or another TCP packet 104. Hereinafter, the IP packet 105 newly stored in the memory is referred to as a “received packet” (S1).

S1においてTCPパケット104がSYN40またはSYN/ACK41であった場合、TCP解析部4はTCPヘッダ102およびIPヘッダ101に基づいてコネクション情報を生成する(S4)。   When the TCP packet 104 is SYN 40 or SYN / ACK 41 in S1, the TCP analysis unit 4 generates connection information based on the TCP header 102 and the IP header 101 (S4).

このとき、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 SYN 40 is stored in the memory, the TCP analysis unit 4 sets “source IP address” and “destination IP address” set in the IP header 101 and “transmission” set in the TCP header 102. Connection information is generated using the “original port number” and the “destination port number” as information for identifying the connection (hereinafter referred to as “connection identifier”). Also, the TCP analysis unit 4 sets a value obtained by adding “1” to “sequence number (seq)” set in the TCP header 102 of the SYN 40 in the connection information as the Next Seq of the transmission source of the SYN 40.
Further, when SYN / ACK 41 is stored in the memory, the TCP analysis unit 4 sets a value obtained by adding “1” to seq set in the TCP header 102 as the connection source NextSeq in the connection information. To do.
“NextSeq” indicates the sequence number of the TCP data 103 recorded in the recording unit 9 next.

S4の処理後、TCP解析部4は受信パケット(SYN40およびSYN/ACK41)をメモリから消去する。以下、メモリからの消去を「廃棄」という(S2)。
受信パケット(SYN40およびSYN/ACK41)に対する処理はこれで終了する。
After the processing of S4, the TCP analysis unit 4 deletes the received packets (SYN 40 and SYN / ACK 41) from the memory. Hereinafter, erasure from the memory is referred to as “discard” (S2).
This completes the processing for the received packets (SYN 40 and SYN / ACK 41).

S1においてTCPパケット104がFIN/ACK50であった場合、TCP解析部4はTCPヘッダ102およびIPヘッダ101に基づいて対応するコネクション情報を特定し、特定したコネクション情報を削除する(S4b)。   When the TCP packet 104 is FIN / ACK 50 in S1, the TCP analysis unit 4 identifies the corresponding connection information based on the TCP header 102 and the IP header 101, and deletes the identified connection information (S4b).

S4bの処理後、TCP解析部4は、TCPデータ103が含まれていないため(S11)、受信パケット(FIN/ACK50)を廃棄する(S2)。
受信パケット(FIN/ACK50)に対する処理はこれで終了する。
After the process of S4b, the TCP analysis unit 4 does not include the TCP data 103 (S11), and therefore discards the received packet (FIN / ACK 50) (S2).
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 analysis unit 4 determines whether the TCP state of the received packet is correct based on the TCP header 102 (S3).

例えば、TCP解析部4は、受信パケットのコネクション識別子で識別されるコネクション情報の有無を調べ、コネクション情報が有ればTCPステートを「OK」とし、コネクション情報が無ければTCPステートを「NG」とする。   For example, the TCP analysis unit 4 checks the presence or absence of connection information identified by the connection identifier of the received packet. If there is connection information, the TCP state is “OK”, and if there is no connection information, the TCP state is “NG”. To do.

S3においてTCPステートが「NG」であった場合、TCP解析部4は受信パケットを廃棄する(S2)。   If the TCP state is “NG” in S3, the TCP analysis unit 4 discards the received packet (S2).

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 TCP analysis unit 4 determines whether the size of the TCP data 103 is “0”. The size of the TCP data 103 is obtained by subtracting the “header length” of the IP header 101 set in the IP header 101 from the “packet length” of the IP packet 105 set in the IP header 101. Hereinafter, the TCP data 103 of the received packet is referred to as “received data”, and the size of the received data is referred to as “received size” (S11).

S11において受信サイズが「0」であった場合、TCP解析部4は受信パケットを廃棄する(S2)。   If the reception size is “0” in S11, the TCP analysis unit 4 discards the received packet (S2).

次に、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 sequence control unit 5 refers to the TCP header 102 of the received packet and the connection information of the received packet, and determines the seq set in the TCP header 102 of the received packet and the transmission source of the received packet set in the connection information It is determined whether NextSeq is the same (S5).

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 sequence control unit 5 determines whether or not there is a holding packet (hereinafter referred to as “granted packet”) including the TCP data 103 that can be added to the received data (S50). ).

このとき、TCP順序制御部5は受信パケットのseqに受信サイズを加算した値がseqとして設定されている保持パケットを付与パケットとして特定する。付与パケットのTCPデータ103は受信データとseqが連続し、メッセージ106内で受信データの後に続くデータである。
さらに、TCP順序制御部5は、同様にして、付与パケットに対する第2の付与パケット、第2の付与パケットに対する第3の付与パケットというように、TCPデータ103が受信データのシーケンス番号から連続する関係にある付与パケットを全て特定する。
At this time, the TCP order control unit 5 identifies a holding packet in which a value obtained by adding the reception size to seq of the reception packet is set as seq as the grant packet. The TCP data 103 of the attached packet is data in which the received data and seq are continuous and follow the received data in the message 106.
Further, the TCP order control unit 5 similarly has a relationship in which the TCP data 103 is consecutive from the sequence number of the received data, such as a second grant packet for the grant packet and a third grant packet for the second grant packet. All grant packets in are identified.

S50において付与パケットが無かった場合、TCP順序制御部5は受信パケットをアプリケーション解析部6に通知し、アプリケーション解析部6は受信パケットに対して以下に説明するアプリケーション解析処理(S140)を実行する。
アプリケーション解析処理(S140)の実行後、受信パケットに対する処理は終了する。
If there is no grant packet in S50, the TCP sequence control unit 5 notifies the application analysis unit 6 of the received packet, and the application analysis unit 6 executes application analysis processing (S140) described below for the received packet.
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 sequence control unit 5 notifies the application analysis unit 6 of the received packet and the grant packet specified in S50 as a reception packet (S51), and the application analysis unit 6 receives the received packet (assignment). The application analysis process (S140) described below is executed for the packet (including the packet).
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 application analysis unit 6 reads the received packet from the memory, records the received data in the recording unit 9, and deletes the received packet from the memory. When the received packet includes a grant packet, the application analysis unit 6 further reads out the grant packet from the memory and records the TCP data 103 (hereinafter referred to as “grant data”) set in the grant packet in the recording unit 9. The granted packet is deleted (S13).

このとき、アプリケーション解析部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 application analysis unit 6 refers to the seq of the received packet, and records the received data in the recording unit 9 in association with seq. For example, the application analysis unit 6 records the received data as a part of the message 106 in the format shown in FIG. For example, in FIG. 7, when Resm 108 is divided into Res 44 and Data 45 and transmitted, the application analysis unit 6 stores the recorded first half portion of Resm 108 set as the TCP data 103 of Res 44 in the response pointer 82. The address of the area is set as the first pointer. Further, the application analysis unit 6 sets, in the response pointer 82, the address of the storage area recorded in the latter half of the Resm 108 set as the TCP data 103 of the Data 45 as the second pointer. Further, in the first half of the Resm 108 (TCP data 103 set in Res44) and the second half (TCP data 103 set in Data45), the first pointer and the second pointer are “first pointer <first It is stored so as to satisfy the relationship of “two pointers”. Further, the first half and the second half of Resm 108 are recorded in a continuous storage area. The request pointer 81 and the response pointer 82 are newly generated when reception data of a new message 106 is recorded, and an address indicating the recording area of the reception data is added every time reception data constituting the message 106 is recorded. .

さらに、アプリケーション解析部6は、S13で受信データ(付与データを含む)を記録部9に記録したため、受信パケットの送信元のNextSeqに受信サイズ(付与データのサイズを含む。以下、付与データのサイズを「付与サイズ」という)を加算して受信パケットのコネクション情報を更新する。「NextSeq」は次に記録部9に記録されるTCPデータ103のseqを示す(S21)。
受信パケットに対するアプリケーション解析処理(S140)はこれで終了する。
Further, since the application analysis unit 6 records the reception data (including the grant data) in S13 in the recording unit 9, the reception size (including the size of the grant data is included in the NextSeq of the transmission source of the received packet. Hereinafter, the size of the grant data (Referred to as “grant size”) to update the connection information of the received packet. “NextSeq” indicates the seq of the TCP data 103 recorded in the recording unit 9 (S21).
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 proxy server 26. Packets transmitted / received by the proxy server 26 to / from the Internet 24 are notified to the communication recording apparatus 1 via the SW 27. Since the HTTP protocol used for connection to the WWW server 23 operates on TCP, the proxy server 26 transmits SYN 40 to establish the connection. The reception control unit 3 of the communication recording apparatus 1 is set to a promiscuous mode for receiving all packets, and can receive packets addressed to other hosts.

受信制御部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 SYN 40 is received by the reception control unit 3, the TCP analysis unit 4 checks the TCP type and TCP state (steps 1 and 3). The TCP analysis unit 4 analyzes whether the transmission source IP address, transmission destination (destination) IP address, transmission source port number, and transmission destination (destination) port number of the received packet are registered, and must be registered. For example, the address and port number in the packet are registered as connection information (step 4). Thereafter, when the packet is received, the TCP analysis unit 4 checks whether the packet is transmitted / received on the established connection (step 3). Then, when the packet is transmitted without establishing a connection, the TCP analysis unit 4 discards the packet as a TCP state error (step 2). The connection information is retained during communication after the connection is established, and is deleted when a connection disconnection packet (FIN / ACK 50) is received (step 4b). The received SYN 40 is discarded after the TCP state check (step 2).

SYN40を受信したWWWサーバ23は、SYN/ACK41を送信する。SYN/ACK41は、TCP解析部4でのチェック(ステップ3)後に廃棄される(ステップ2)。   The WWW server 23 that has received the SYN 40 transmits a SYN / ACK 41. The SYN / ACK 41 is discarded after checking by the TCP analysis unit 4 (step 3) (step 2).

次に、プロキシサーバ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 proxy server 26 transmits ACK42. The communication recording device 1 receives the ACK 42 transmitted by the proxy server 26. At this time, NextSeq (O) (hereinafter referred to as NextSeq (O) of proxy server 26) of the packet transmitted in the direction of “in-house (proxy server 26) → Internet (WWW server 23)” is “100”. Further, NextSeq (I) (hereinafter referred to as NextSeq (I) of WWW server 23) of a packet transmitted in the direction of “in-house (proxy server 26) ← Internet (WWW server 23)” is “701”.
Next, the TCP analysis unit 4 checks the data size of the ACK 42 (the size of the TCP data 103, the reception size) (S11), but discards the ACK 42 because the size is “0” (step 2).

次に、プロキシサーバ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 proxy server 26 transmits GET43. When the GET 43 is received by the reception control unit 3, the TCP analysis unit 4 determines the TCP type (“other than”) of the GET 43 (step 1), determines the TCP state (“OK”) (step 3), The reception size (> 0) is determined (step 11).
Next, the TCP order control unit 5 compares NextSeq (O) of the proxy server 26 with the received TCP sequence number of the GET 43 (step 5). NextSeq (O) is “100”, which matches the sequence number of GET43.
Next, the TCP sequence control unit 5 analyzes whether there is data located behind the received data among the held data (step 50).
Since there is no retained data for the GET 43, application analysis processing (step 140) is executed next.
In the application analysis process (step 140), the message header 71 and message body 72 of the GET 43 are recorded in the recording unit 9 (step 13), and NextSeq (O) is updated by the received size to become “200” (step 21).

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 GET 43 transmits Res 44 and Data 45.
When Res 44 is received by the reception control unit 3, the TCP analysis unit 4 performs a TCP analysis process (step 120) on Res 44 in the same manner as the GET 43.
Next, the TCP order control unit 5 compares NextSeq (I) of the WWW server 23 with the TCP sequence number of the received Res 44 (step 5). NextSeq (I) is “701”, which matches the sequence number of Res44.
Next, the TCP sequence control unit 5 analyzes whether there is data located behind the received data among the held data (step 50).
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).
Data 45 is processed in the same manner as Res 44 and recorded in the recording unit 9, and NextSeq (I) is updated to “2701”.

Data45を受信したプロキシサーバ26はACK47を送信する。
受信制御部3によりACK47が受信された場合、ACK47はデータサイズが「0」のため廃棄される(ステップ2)。
The proxy server 26 that has received the Data 45 transmits an ACK 47.
When the reception control unit 3 receives ACK 47, the ACK 47 is discarded because the data size is “0” (step 2).

以降、コネクション切断のためFIN/ACK50、FIN/ACK51、ACK52がプロキシサーバ26とWWWサーバ23との間でやりとりされ受信制御部3により受信されるが、いずれも廃棄され(ステップ2)、処理は終了する。このとき、TCPコネクションが切断されるため、TCP解析部4はコネクション情報を削除する(ステップ4b)。   Thereafter, FIN / ACK 50, FIN / ACK 51, and ACK 52 are exchanged between the proxy server 26 and the WWW server 23 and received by the reception control unit 3 for disconnection, but all of them are discarded (step 2). finish. At this time, since the TCP connection is disconnected, the TCP analysis unit 4 deletes the connection information (step 4b).

図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 Res 44 and Data 45 is reversed with respect to FIG. 6.

SYN40〜GET43に対する動作は図6に基づく上記の例と同様である。
GET43に対する動作後、プロキシサーバ26のNextSeq(O)は「200」であり、WWWサーバ23のNextSeq(I)は「701」である。
The operations for SYN 40 to GET 43 are the same as in the above example based on FIG.
After the operation for the GET 43, NextSeq (O) of the proxy server 26 is “200”, and NextSeq (I) of the WWW server 23 is “701”.

受信制御部3によりData45が受信された場合、TCP解析部4によるTCP解析処理(S120)の後、TCP順序制御部5は、WWWサーバ23のNextSeq(I)と受信したData45のTCPシーケンス番号とを比較する(ステップ5)。ここでは、NextSeq(I)「701」とData45のシーケンス番号「1701」とが不一致のため、Data45は記録部9に記録されず、メモリに保持される(ステップ7)。   When Data 45 is received by the reception control unit 3, after the TCP analysis processing (S 120) by the TCP analysis unit 4, the TCP sequence control unit 5 receives NextSeq (I) of the WWW server 23 and the TCP sequence number of the received Data 45. Are compared (step 5). Here, since the NextSeq (I) “701” and the sequence number “1701” of Data 45 do not match, Data 45 is not recorded in the recording unit 9 but is stored in the memory (step 7).

次に、受信制御部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 Res 44 is received by the reception control unit 3, after the TCP analysis processing (S 120) by the TCP analysis unit 4, the TCP order control unit 5 receives NextSeq (I) of the WWW server 23 and the TCP of the received Res 44. The sequence number is compared (step 5). At this time, NextSeq (I) “701” and Res44 sequence number “701” match. Therefore, the TCP sequence control unit 5 checks whether there is data that can be added after the Res 44 in the stored data (step 50). Since the retained packet includes the previously received Data 45, the TCP sequence control unit 5 notifies the application analysis unit 6 of the data packet to which Data 45 is added after Res 44 as a received packet (step 51).
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 ACK 47 to ACK 52 are the same as in the above example based on FIG.

実施の形態1では、以下のような通信記録装置1および通信記録装置1のアプリケーションデータ解析方法(通信記録方法)について説明した。   In the first embodiment, the following communication recording apparatus 1 and application data analysis method (communication recording method) of the communication recording apparatus 1 have been described.

通信記録装置1は、受信制御部3、TCP解析部4、TCP順序制御部5、アプリケーション解析部6、記録部9およびデータ表示部7を有し、受信したデータのシーケンス番号を解析し、データが順序どおり到着した場合は、データを組み立てバッファ(主記憶装置、メモリ)に保持せずにアプリケーション解析を実施して記録する。
受信制御部3は、ネットワークから他ホスト宛のパケットを含めすべてのパケットを受信する。
TCP解析部4は、受信制御部3により受信されたパケットのTCPステートを解析する。
TCP順序制御部5は、パケットの順序が逆転していた場合に正しい順序になるよう制御する。
アプリケーション解析部6は、アプリケーションデータ(メッセージ106)を解析する。
記録部9は、アプリケーション解析部6の解析結果(アプリケーションデータ)が記録される。
データ表示部7は、記録部9のデータを表示する。
The communication recording device 1 includes a reception control unit 3, a TCP analysis unit 4, a TCP sequence control unit 5, an application analysis unit 6, a recording unit 9, and a data display unit 7, analyzes the sequence number of received data, Are received in order, data is not stored in the assembly buffer (main storage device, memory), but is analyzed by application analysis and recorded.
The reception control unit 3 receives all packets including packets addressed to other hosts from the network.
The TCP analysis unit 4 analyzes the TCP state of the packet received by the reception control unit 3.
The TCP order control unit 5 performs control so that the packet order is correct when the packet order is reversed.
The application analysis unit 6 analyzes application data (message 106).
The recording unit 9 records the analysis result (application data) of the application analysis unit 6.
The data display unit 7 displays the data of the recording unit 9.

以上のように、通信記録装置1は、他ホスト宛のデータに対して受信したデータのシーケンス番号とNextSeqとを比較し、一致する場合、つまり、データが順序どおり到着した場合にはデータを保持しないでアプリケーション解析を実行する。このため、通信記録装置1はメモリなどのリソースを消費せず、アプリケーションデータを記録することができる。
また、通信記録装置1は、シーケンス番号が一致しない場合にはデータを保持し、このデータの前に位置するデータを受信した時点で保持データを付与してアプリケーション解析を実施する。このため、通信記録装置1はパケットの順序が逆転した場合にもアプリケーションデータを記録することができる。
As described above, the communication recording apparatus 1 compares the sequence number of received data with respect to data addressed to another host and NextSeq, and holds the data if they match, that is, if the data arrives in order. Do application analysis without. For this reason, the communication recording apparatus 1 can record application data without consuming resources such as a memory.
Further, the communication recording apparatus 1 holds data when the sequence numbers do not match, and performs application analysis by adding the held data when data positioned before this data is received. Therefore, the communication recording apparatus 1 can record application data even when the order of packets is reversed.

実施の形態2.
実施の形態2では、通信記録装置1が複数のメッセージ106の含まれるパケットを処理する形態について説明する。例えば、複数のメッセージ106が含まれるパケットとは、先に送信された第1のメッセージの終端を含む部分と第1のメッセージの後で送信された第2のメッセージの先頭を含む部分とが含まれるパケットである。
以下、実施の形態1と異なる事項について主に説明し、説明を省略する事項については実施の形態1と同様であるものとする。
Embodiment 2. FIG.
In the second embodiment, a mode in which the communication recording apparatus 1 processes a packet including a plurality of messages 106 will be described. For example, a packet including a plurality of messages 106 includes a portion including the end of the first message transmitted earlier and a portion including the beginning of the second message transmitted after the first message. Packet.
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 communication recording apparatus 1 according to the second embodiment.
In FIG. 14, the communication recording device 1 according to the second embodiment includes a termination detection unit 10 in addition to the configuration of the communication recording device 1 according to the first embodiment.

終端検知部10は、受信制御部3により受信され主記憶装置に記憶された各パケットからメッセージ106の終端を検出する。   The end detection unit 10 detects the end of the message 106 from each packet received by the reception control unit 3 and stored in the main storage device.

例えば、終端検知部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 reception control unit 3 and the size of each of the plurality of messages 106 included in the plurality of packets. A packet including the end of each message 106 among a plurality of packets is specified as a terminal packet using the CPU.

また例えば、終端検知部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 application analysis unit 6 distinguishes a plurality of packets stored in the main storage device by the reception control unit 3 for each message 106 based on the termination packet of each message 106 specified by the termination detection unit 10. Then, the application analysis unit 6 distinguishes the plurality of messages 106 included in the plurality of packets for each message 106 and records them in the recording unit 9.

また、アプリケーション解析部6は、後述する終端検知部10により終端パケットに第1のアプリケーションデータの終端と第2のアプリケーションデータの先頭とが含まれていると判定された場合、次のような処理を行う。アプリケーション解析部6は、終端パケットから第1のアプリケーションデータと第2のアプリケーションデータとを抽出し、第1のアプリケーションデータと第2のアプリケーションデータとを区別して記録部9に記録する。   In addition, when the termination detection unit 10 described later determines that the termination packet includes the termination of the first application data and the beginning of the second application data, the application analysis unit 6 performs the following processing I do. The application analysis unit 6 extracts the first application data and the second application data from the terminal packet, distinguishes the first application data and the second application data, and records them in the recording unit 9.

図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: Res 44 in which the part is set, and Data / Res 53 (terminal packet) in which the terminal part of the message 106a and the message 106b (head part to terminal part) are set.

図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 application analysis unit 6 determines whether the received data is the head of the message 106 (S16).

例えば、アプリケーション解析部6は後述するコンテントサイズと後述する記録サイズとを比較し、コンテントサイズと記録サイズとが一致する場合に受信データはメッセージ106の先頭であると判定する。
コンテントサイズはメッセージ106のメッセージボディ72のサイズを示し、記録サイズはメッセージ106のメッセージボディ72のうち記録部9に記録されたデータのサイズを示す。コンテントサイズと記録サイズとはTCP解析部4によるコネクション情報の生成時(S4)に初期値として「0」が設定されているものとする。コンテントサイズと記録サイズとは、コネクションを確立する双方それぞれに対して設定される。以下、「コンテントサイズ」および「記録サイズ」は“送信先”と明示しない場合、受信パケットの送信元に対するものとする。コンテントサイズと記録サイズとが同じであるのは、最初の受信データが受信された場合およびメッセージボディ72が全て記録された場合のいずれかである。つまり、コンテントサイズと記録サイズが同じである場合、新たな受信データはメッセージ106の先頭を示す。
For example, the application analysis unit 6 compares a content size described later with a recording size described later, and determines that the received data is the head of the message 106 when the content size and the recording size match.
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 recording unit 9 in the message body 72 of the message 106. It is assumed that the content size and the recording size are set to “0” as initial values when the TCP analysis unit 4 generates connection information (S4). The content size and the recording size are set for each of both establishing a connection. Hereinafter, “content size” and “recording size” are assumed to be for the transmission source of the received packet unless “transmission destination” is specified. The content size and the recording size are the same either when the first received data is received or when the entire message body 72 is recorded. That is, when the content size and the recording size are the same, the new received data indicates the head of the message 106.

S16において受信データがメッセージ106の先頭であった場合、アプリケーション解析部6は受信パケットのコネクション情報に設定されている記録サイズを「0」に初期化する(S17)。   If the received data is the head of the message 106 in S16, the application analysis unit 6 initializes the recording size set in the connection information of the received packet to “0” (S17).

さらに、アプリケーション解析部6は、受信データの先頭から所定の位置に設定されているコンテントサイズ(メッセージヘッダ71のヘッダフィールド64内)を取得し、受信パケットのコネクション情報に設定する。また、受信サイズ(付与サイズを含む)からメッセージヘッダ71のサイズを減算した値を「受信サイズB」として受信パケットのコネクション情報に設定する(S18)。   Further, the application analysis unit 6 acquires the content size (in the header field 64 of the message header 71) set at a predetermined position from the beginning of the received data, and sets it in the connection information of the received packet. Further, a value obtained by subtracting the size of the message header 71 from the reception size (including the added size) is set as “reception size B” in the connection information of the reception packet (S18).

S16において受信データがメッセージ106の先頭でなかった場合、アプリケーション解析部6は受信サイズを受信サイズBに設定する(S18b)。   If the received data is not the head of the message 106 in S16, the application analysis unit 6 sets the reception size to the reception size B (S18b).

次に、終端検知部10は受信サイズBと記録サイズとの合計値とコンテントサイズとを大小比較する。受信サイズBと記録サイズとの合計値とコンテントサイズとが同じであるとき、受信データの終端はメッセージ106の終端となる(S19)。   Next, the end detection unit 10 compares the total size of the reception size B and the recording size with the content size. When the total value of the reception size B and the recording size and the content size are the same, the end of the reception data is the end of the message 106 (S19).

コンテントサイズが受信サイズ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 application analysis unit 6 receives the received packet (including the attached packet) as received data, as in the first embodiment (FIG. 12). The set message body 72 is recorded in the recording unit 9 for the reception size B. If the received data is the head of the message 106 in S16, the message header 71 is also recorded (S13).

また、アプリケーション解析部6は、S13において受信サイズB分のメッセージボディ72を記録部9に記録したため、受信サイズBを加算して記録サイズを更新する(S20)。   Further, since the application analysis unit 6 has recorded the message body 72 for the reception size B in the recording unit 9 in S13, the application analysis unit 6 adds the reception size B and updates the recording size (S20).

また、アプリケーション解析部6は、実施の形態1(図12)と同様に、受信サイズを加算して送信元のNextSeqを更新する(S21)。
受信パケットに対するアプリケーション解析処理(S140)はこれで終了する。
Further, the application analysis unit 6 adds the reception size and updates the NextSeq of the transmission source as in the first embodiment (FIG. 12) (S21).
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 application analysis unit 6 cuts out the first message part from the received data (including the added data). Hereinafter, the cut out first message is referred to as “cutout data” (S22).

次に、アプリケーション解析部6はS22で受信データから切り出した切り出しデータ(メッセージボディ72の終端部分)を記録部9に記録する(S13b)。   Next, the application analysis unit 6 records the cut-out data cut from the received data in S22 (the end portion of the message body 72) in the recording unit 9 (S13b).

このとき、アプリケーション解析部6は、S13と同様に、切り出しデータをシーケンス番号に対応させて記録部9に記録する。切り出しデータはメッセージ106の最終データとして記録部9に記録される。   At this time, the application analysis unit 6 records the cut-out data in the recording unit 9 in association with the sequence number, similarly to S13. The cut-out data is recorded in the recording unit 9 as the final data of the message 106.

また、アプリケーション解析部6は、S22で受信データから切り出しデータ(メッセージボディ72の終端部分)を切り出したため、切り出しデータのサイズ(以下、切り出しサイズとする)を減算して受信サイズを更新する(S23)。   In addition, since the application analysis unit 6 cuts out the cut-out data (the end portion of the message body 72) from the reception data in S22, the application analysis unit 6 updates the reception size by subtracting the size of the cut-out data (hereinafter referred to as cut-out size) (S23). ).

また、アプリケーション解析部6は、S13bにおいて切り出しデータを記録部9に記録したため、切り出しサイズを加算して記録サイズを更新する(S24)。   In addition, since the application analysis unit 6 records the cut-out data in the recording unit 9 in S13b, the application analysis unit 6 adds the cut-out size and updates the record size (S24).

さらに、アプリケーション解析部6は、S13bで切り出しデータを記録部9に記録したため、切り出しサイズを加算して送信元のNextSeqを更新する(S25)。   Furthermore, since the application analysis unit 6 has recorded the cut-out data in the recording unit 9 in S13b, the application analysis unit 6 adds the cut-out size and updates the NextSeq of the transmission source (S25).

そして、アプリケーション解析部6は、S22で切り出しデータが切り出した残りの受信データ(付与データを含む)に対して、S16以降の処理を実行する。
このとき、S24において記録サイズが更新されているため、コンテントサイズと記録サイズとが等しく、受信データはメッセージ106の先頭と判断される(S16)。
And the application analysis part 6 performs the process after S16 with respect to the remaining received data (a provision data is included) which the cut-out data cut out by S22.
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 Data 45 is replaced with Data / Res 53 with respect to FIG. 6 of the first embodiment.
As described with reference to FIG. 15, Data / Res 53 is a packet in which the end portion of the message 106 a and the message 106 b (head portion to end portion) are set as the TCP data 103.
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, SYN 40 to ACK 42 are discarded (S2) in the TCP analysis process (S120), and the application analysis process (S140) is not executed.

次に、プロキシサーバ26からWWWサーバ23に送信されたGET43は、実施の形態1で説明したように、受信制御部3により受信されてメモリに記憶され(S110)、TCP解析部4によりTCP解析処理(S120)され、TCP順序制御部5によりTCP順序制御処理(S130)され、アプリケーション解析部6に受信パケットとして通知される。   Next, as described in the first embodiment, the GET 43 transmitted from the proxy server 26 to the WWW server 23 is received by the reception control unit 3 and stored in the memory (S110), and the TCP analysis unit 4 performs TCP analysis. The process is performed (S120), the TCP order control unit 5 performs the TCP order control process (S130), and is notified to the application analysis unit 6 as a received packet.

図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 application analysis unit 6 determines whether or not the GET 43 is the head of the message 106 (S16). At this time, since the content size and the recording size for the proxy server 26 are both the initial value “0”, the GET 43 is determined to be the head of the message 106. Therefore, the application analysis unit 6 initializes the recording size (S17), and acquires the content size and sets the reception size B (S18).
Next, the end detection unit 10 compares the total size of the reception size B and the recording size with the content size (S19). Here, the reception size B is “100 (subtracting the size of the message header 71)”, the recording size is “0”, and the content size is “100 (subtracting the size of the message header 71)”. Therefore, the total value of the reception size B and the recording size is equal to the content size. Therefore, the application analysis unit 6 records the GET 43 in the recording unit 9 (S13), updates the recording size to a value obtained by adding the reception size B (S20), and adds NextSeq of the proxy server 26 to the reception size “200”. (S21), and the process for GET 43 is terminated.

次に、WWWサーバ23からプロキシサーバ26に送信されたRes44は、実施の形態1で説明したように、受信制御部3により受信されてメモリに記憶され(S110)、TCP解析部4によりTCP解析処理(S120)され、TCP順序制御部5によりTCP順序制御処理(S130)され、アプリケーション解析部6に受信パケットとして通知される。   Next, Res 44 transmitted from the WWW server 23 to the proxy server 26 is received by the reception control unit 3 and stored in the memory (S110) as described in the first embodiment, and the TCP analysis unit 4 performs TCP analysis. The process is performed (S120), the TCP order control unit 5 performs the TCP order control process (S130), and the application analysis unit 6 is notified as the received packet.

図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 application analysis unit 6 determines whether Res 44 is the head of the message 106 (S16). At this time, since the content size and the recording size for the WWW server 23 are both the initial value “0”, it is determined that Res 44 is the head of the message 106a. Therefore, the application analysis unit 6 initializes the recording size (S17), acquires the content size “1500 (subtracting the size of the message header 71)”, and sets the reception size B (S18).
Next, the end detection unit 10 compares the total size of the reception size B and the recording size with the content size (S19). Here, the reception size B is “1000 (subtracting the size of the message header 71)”, the recording size is “0”, and the content size is “1500 (subtracting the size of the message header 71)”. Therefore, the total value of the reception size B and the recording size is smaller than the content size. Therefore, the application analysis unit 6 records Res44 in the recording unit 9 (S13), and updates the recording size to a value “1000 (subtracting the size of the message header 71)” obtained by adding the reception size B (S20). ), NextSeq of the WWW server 23 is updated to “1701” to which the reception size is added (S21), and the processing for Res44 is ended.

次に、WWWサーバ23からプロキシサーバ26に送信されたData/Res53は、実施の形態1で説明したように、受信制御部3により受信されてメモリに記憶され(S110)、TCP解析部4によりTCP解析処理(S120)され、TCP順序制御部5によりTCP順序制御処理(S130)され、アプリケーション解析部6に受信パケットとして通知される。   Next, the Data / Res 53 transmitted from the WWW server 23 to the proxy server 26 is received by the reception control unit 3 and stored in the memory (S110) as described in the first embodiment. The TCP analysis process (S120) is performed, the TCP order control unit 5 performs the TCP order control process (S130), and the application analysis unit 6 is notified as the received packet.

図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 application analysis unit 6 determines whether Data / Res 53 is the head of the message 106 (S16). At this time, the content size for the proxy server 26 is set to “1500 (subtracting the size of the message header 71)” at the time of Res44 processing, and the recording size is set to “1000 (from the message header 71 at the time of Res44 processing). Minus the size of “)”. For this reason, the content size does not match the recording size, and it is determined that Data / Res 53 is not the head of the message 106.
Next, the end detection unit 10 compares the total size of the reception size B and the recording size with the content size (S19). Here, the reception size B is “1000”, the recording size is “1000 (subtracting the size of the message header 71)”, and the content size is “1500 (subtracting the size of the message header 71)”. The total value of the reception size B and the recording size is larger than the content size. Therefore, the application analysis unit 6 determines that the message 106b is included in the Data / Res53 in addition to the message 106a, and cuts out the end portion (500 bytes) of the message 106a from the Data / Res53 (S22). The terminal portion of the message 106a is recorded in the recording unit 9 (S13b). Further, the application analysis unit 6 updates the reception size to “500” obtained by subtracting the size of the end portion of the message 106a (S23), and the recording size is added to the size of “1500” (from the message header). 71 (subtracting the size of 71) ”(S24), and NextSeq (I) of the WWW server 23 is updated to“ 2201 ”obtained by adding the size of the terminal portion of the message 106a (S25).

そして、アプリケーション解析部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 application analysis unit 6 performs the process from S16 on the remaining Data / Res 53 (message 106b) from which the message 106a has been cut out.
The application analysis unit 6 determines whether or not the remaining Data / Res 53 (message 106b) is the head of the message (S16). At this time, since the content size and the recording size are both “1500 (subtracting the size of the message header 71)”, the remaining Data / Res 53 is determined to be the head of the message 106b. Therefore, the application analysis unit 6 initializes the recording size of the remaining Data / Res 53 (message 106b) (S17), and the content size is the size of the message 106b “500 (subtracting the size of the message header 71)”. Acquisition and setting of the reception size B are performed (S18).
Next, the end detection unit 10 compares the total size of the reception size B and the recording size with the content size (S19). Here, the reception size B is “500 (subtracting the size of the message header 71)”, the recording size is “0”, and the content size is “500 (subtracting the size of the message header 71)”. Therefore, the total value of the reception size B and the recording size is equal to the content size. Therefore, the application analysis unit 6 records the remaining Data / Res 53 (message 106b) in the recording unit 9 (S13), updates the recording size to a value obtained by adding the reception size B (S20), and the NextSeq of the WWW server 23. Is updated to “2701” to which the reception size is added (S21), and the processing for Data / Res53 is terminated.

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 communication recording apparatus 1 according to the second embodiment, the termination analysis unit 10 identifies a packet (termination packet) including the termination of the message 106, and the application analysis unit 6 is included in the termination packet. The messages 106 can be distinguished, and a plurality of messages 106 can be distinguished for each message 106 and recorded in the recording unit 9.

実施の形態3.
実施の形態3では、プロキシサーバ26とWWWサーバ23との間では正常に通信の完了したパケットが、SW27内で通信記録装置1と接続するミラーリングポートへの転送時に発生したエラーにより損失したり、SW27のミラーリングポートから通信記録装置1に繋がる通信ケーブル29での伝送時に発生したエラーにより損失したりした場合について説明する。損失したパケットは、プロキシサーバ26とWWWサーバ23との間では通信が完了しているため、プロキシサーバ26とWWWサーバ23との間で再送されることはなく、通信記録装置1により受信されることはない。
以下、実施の形態1および実施の形態2と異なる事項について主に説明し、説明を省略する事項については実施の形態1および実施の形態2と同様であるものとする。
Embodiment 3 FIG.
In the third embodiment, a packet that has been successfully communicated between the proxy server 26 and the WWW server 23 is lost due to an error that occurs during transfer to the mirroring port connected to the communication recording device 1 in the SW 27. A case will be described in which loss occurs due to an error that occurred during transmission through the communication cable 29 connected from the mirroring port of the SW 27 to the communication recording apparatus 1. Since the communication between the proxy server 26 and the WWW server 23 is completed, the lost packet is not retransmitted between the proxy server 26 and the WWW server 23 and is received by the communication recording device 1. There is nothing.
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 communication recording apparatus 1 in the third embodiment is the same as that in the first and second embodiments.

実施の形態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 reception control unit 3. The TCP order control unit 5 is the TCP data 103 that has not been received by the reception control unit 3 based on the confirmation response number (ack) included in the referenced TCP header 102, and is between specific communication terminal devices (for example, The TCP data 103 that has been communicated between the proxy server 26 and the WWW server 23) is specified as missing data using the CPU.

アプリケーション解析部6は、TCP順序制御部5により特定された抜けデータのサイズ分所定の値が設定されたデータを抜けデータとして生成し、生成した抜けデータを記録部9に記録する。   The application analysis unit 6 generates data in which a predetermined value is set as the missing data size specified by the TCP order control unit 5 as missing data, and records the generated missing data in the recording unit 9.

図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 order control unit 5 holds the received packet (S7), the Seq set in the TCP header 102 of the received packet is transmitted. It is set in the connection information as the original “assembly Seq”. However, when “assembly Seq” is already set, the TCP sequence control unit 5 compares the set assembly Seq with the Seq of the received packet, and updates the assembly Seq when the received packet Seq is smaller To do. When the set assembly Seq is larger, the TCP sequence control unit 5 does not update the assembly Seq. That is, the top Seq of the holding packet (s) is set in the assembly Seq. Note that “assembly Seq” is set to an initial value “0” when the TCP analysis unit 4 generates connection information (S4). “Assembly Seq” is set for both communication terminals that establish a connection.
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 order control unit 5 refers to the TCP header 102 of the received packet and the connection information of the received packet. Then, the TCP sequence control unit 5 compares the ack (acknowledgment response number) set in the TCP header 102 of the received packet with the NextSeq of the transmission destination (reception side) of the received packet set in the connection information. . As a result of this size comparison, the TCP sequence control unit 5 successfully communicates between the communication terminals (for example, the proxy server 26 and the WWW server 23), but is lost during transfer to the communication recording device 1 and lost to the communication recording device 1. Whether or not there is a packet not received (hereinafter referred to as a missing packet) is determined (S8).

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 order control unit 5 refers to the TCP header 102 of the received packet and the connection information of the received packet. The TCP order control unit 5 compares the ack set in the TCP header 102 of the received packet with the assembly Seq of the destination of the received packet set in the connection information (S9).

受信パケットの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 reception control unit 3 Means that. At this time, it is unavoidable to continue holding the holding packet in anticipation of receiving the TCP data 103 that continues from the destination NextSeq. Therefore, in S9, the TCP sequence control unit 5 compares the ack of the received packet with the assembly Seq of the destination of the received packet, and determines whether there is a retained packet that can be retained.

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 sequence control unit 5 uses a variable obtained by subtracting the NextSeq of the destination of the received packet from the assembled Seq of the destination of the received packet. Set to “Diff”. “Diff” indicates the size of the TCP data 103 of the missing packet. Hereinafter, the TCP data 103 of the missing packet is referred to as “missing data”, and the size of the missing data is referred to as “missing size” (S41).

S41の後、保持パケットを記録部9に記録するためのアプリケーション解析処理(S140)がアプリケーション解析部6により実行される。   After S41, application analysis processing (S140) for recording the retained packet in the recording unit 9 is executed by the application analysis unit 6.

図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 application analysis unit 6 determines whether Diff (size of missing data) is “0” (S10).

S10においてDiffが「0」であった場合、アプリケーション解析部6はS11以降の処理を実行する。
S10においてDiffが「0」である場合とは図18において順序判定処理(S131)後にアプリケーション解析処理(S140)が実行された場合であり、S11以降の処理は受信データを記録部9に記録するために行われる処理である。
S11以降の処理の詳細については後述する。
When Diff is “0” in S <b> 10, the application analysis unit 6 executes the processes after S <b> 11.
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 recording unit 9. This is a process performed for this purpose.
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 application analysis unit 6 executes the processing from S51 onward shown in FIG.
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 application analysis unit 6 identifies a held packet whose transmission data sequence number is less than the ack of the received packet among the transmission destination held packets. The holding data of the holding packet specified here is a target to be recorded in the recording unit 9 below (S51).

次に、アプリケーション解析部6は、抜けパケットの代わりとする代替パケットを作成する(S52)。   Next, the application analysis unit 6 creates a substitute packet to replace the missing packet (S52).

例えば、アプリケーション解析部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 application analysis unit 6 sets the IP header 101 and the TCP header 102 of the destination holding packet as alternative packets, and updates the packet size of the IP header 101, the seq of the TCP header 102, etc. according to the missing data. . Further, for example, the application analysis unit 6 creates substitute data to be recorded in the recording unit 9 instead of missing data, and sets the created substitute data in a substitute packet. The size of the substitute data is Diff, and the data value of the substitute data is a specific value (for example, all 0, hereinafter referred to as substitute value) indicating that the data is substitute data. In addition, the application analysis unit 6 creates alternative data for a portion of the received packet that is less than ack and has no retained data. For example, the portion of the received packet that is less than the ack and has no retained data means that the received packet has an ack of 401, and there are retained data A with sequence numbers 101 to 200 and retained data B with sequence numbers 301 to 400 The data with sequence numbers 201-300. Also, for example, the portion of the received packet that is less than ack and has no retained data is data having a sequence number of 301 to 400 when the received packet ack is 401 and there is retained data of sequence numbers 201 to 300. (S52).

次に、アプリケーション解析部6は受信パケットのコネクション情報を参照し、受信パケットの送信先の記録サイズおよびDiffの合計値と受信パケットの送信先のコンテントサイズとを比較する(S26)。   Next, the application analysis unit 6 refers to the connection information of the received packet, and compares the recording size of the transmission destination of the received packet and the total value of Diff with the content size of the transmission destination of the received packet (S26).

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 application analysis unit 6 records the retained data specified in S51 and the substitute data generated in S52 in the recording unit 9, but does not distinguish each message 106 as shown in FIG. 7 (S13c).

また、アプリケーション解析部6は、S13cで保持データと代替データとを記録部9に記録したため、保持サイズと代替サイズとの合計値を加算して送信先の記録サイズを更新し(S53)、保持サイズと代替サイズとの合計値を加算して送信先のNextSeqを更新する(S54)。   Further, since the application analysis unit 6 records the retained data and the alternative data in the recording unit 9 in S13c, the application analysis unit 6 adds the total value of the retained size and the alternative size to update the recording size of the transmission destination (S53). The total value of the size and the alternative size is added to update NextSeq of the transmission destination (S54).

そして、アプリケーション解析部6は、以後、受信パケットの送信先からのTCPデータ103をメッセージ106毎に区別せずに記録部9に記録することを示すように異常フラグに「1」を設定する。この異常フラグは受信パケットのコネクション情報に受信パケットの送信先の異常フラグとして設定される(S32)。
受信パケットに対する処理はこれで終了する。
Then, the application analysis unit 6 sets “1” in the abnormality flag so as to indicate that the TCP data 103 from the transmission destination of the received packet is recorded in the recording unit 9 without being distinguished for each message 106. This abnormality flag is set as the abnormality flag of the destination of the received packet in the connection information of the received packet (S32).
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, Res 44 is data that has already been received and recorded in the recording unit 9, Data 45 is missing data, and Data 46 is retained data. FIG. 21 shows the content size 111 and the recording size 112 for the message body 72 excluding the message header 71. As shown in FIG. 21, when the total value of the recording size 112 and the Diff 113 is larger than the content size 111, the next message 106 starts in the middle of the Data 45 that is missing data, and the message header 71 becomes unknown. For this reason, it becomes unclear whether Data 46 is the next message 106 or the next message 106. FIG. 21 is referred to as “Case 2”.
In case 2, the application analysis unit 6 sets “1” in the abnormality flag as described above.

一方、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 application analysis unit 6 stores the data held in the transmission destination ( And alternative data) can be recorded in the recording unit 9 separately for each message 106.

図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 case 1 in which the total value of the recording size 112 and the Diff 113 and the content size 111 are equal. In Case 1, the TCP data 103 of Data 46 starts from the message header 71 (first) of the next message 106.
In FIG. 22, Case 3, Case 4, and Case 5 are shown as cases where the total value of the recording size 112 and Diff 113 is less than the content size.
Case 3 is a case where the total value of the recording size 112, Diff 113, and holding size 114 is larger than the content size 111, and the Data 46 includes the end of the message body 72 and the message header 71 of the next message 106.
Case 4 is a case where the total value of the recording size 112, Diff 113, and holding size 114 is equal to the content size 111, and the TCP data 103 of Data 46 ends at the end of the message body 72.
Case 5 is a case where the total value of the recording size 112, Diff 113, and holding size 114 is smaller than the content size 111, and the Data 46 includes an intermediate message body 72 (no termination).

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 (case 1, case 3, case 4 and case 5), the processing moves to (2) in FIG. The unit 6 executes the processing from S16 onward as in the first embodiment, using the retained packet specified in S41 and the substitute packet generated in S42 as received packets.
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 GETm 107 and Resm 108 in the third embodiment are set, and corresponds to FIG. 7 in the first embodiment.
As shown in FIG. 23, the application analysis unit 6 of the communication recording apparatus 1 according to the third embodiment records the data of the packet (Data 45) that has been lost and not received by the reception control unit 3 as no data.

図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, Data 45 has disappeared and has not been received by the communication recording apparatus 1. Data 46 indicates the end of the message 106 (case 4).

端末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 proxy server 26. Packets transmitted / received by the proxy server 26 to / from the Internet 24 are notified to the communication recording apparatus 1 via the SW 27. Since the HTTP protocol used for connection to the WWW server 23 operates on TCP, the proxy server 26 transmits SYN 40 to establish the connection. When SYN 40 is received by the reception control unit 3 of the communication recording device 1, the TCP analysis unit 4 checks the TCP type and TCP state (steps 1 and 3). The TCP analysis unit 4 analyzes whether the transmission source IP address, transmission destination (destination) IP address, transmission source port number, and transmission destination (destination) port number of the received packet are registered, and must be registered. For example, the address and port number in the packet are registered as connection information (step 4). Thereafter, when the packet is received, the TCP analysis unit 4 checks whether the packet is transmitted / received on the established connection (step 3). Then, when the packet is transmitted without establishing a connection, the TCP analysis unit 4 discards the packet as a TCP state error (step 2). The connection information is retained during communication after the connection is established, and is deleted when a connection disconnection packet (FIN / ACK 50) is received. The received SYN 40 is discarded after the TCP state check (step 2).

SYN40を受信したWWWサーバ23は、SYN/ACK41を送信する。SYN/ACK41は、TCP解析部4でのチェック(ステップ3)後に廃棄される(ステップ2)。   The WWW server 23 that has received the SYN 40 transmits a SYN / ACK 41. The SYN / ACK 41 is discarded after checking by the TCP analysis unit 4 (step 3) (step 2).

次に、プロキシサーバ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 proxy server 26 transmits ACK42. The communication recording device 1 receives the ACK 42 transmitted by the proxy server 26. The TCP analysis unit 4 performs the TCP analysis process (S120) shown in FIG. At this time, NextSeq (O) of the proxy server 26 is “100”, and NextSeq (I) of the WWW server 23 is “701”.
The TCP order control unit 5 compares the sequence number (Seq) of the ACK 42 with the NextSeq (O) of the proxy server 26 (Step 5). Here, seq of ACK 42 and NextSeq (O) of proxy server 26 match with “100”. For this reason, an application analysis process (step 140) is executed. At this time, Diff indicating the difference between the sequence numbers is “0” because the setting in S41 of FIG. 18 is not performed.
In the application analysis process (step 140) of FIG. 19, since Diff is “0” (step 10), the application analysis unit 6 checks the reception size (step 11). The size of the ACK 42 is 0, and the application for the ACK 42 The analysis process (S140) ends. Further, in step 8 of FIG. 18, since the ack of the ACK 42 and the NextSeq (I) of the WWW server 23 coincide with “701”, the processing for the ACK 42 is ended.

その後、プロキシサーバ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 proxy server 26 transmits GET43. GET 43 is transmitted as an HTTP request. When the reception control unit 3 receives the GET 43, the TCP analysis unit 4 performs the TCP analysis process (S120) shown in FIG. Next, the TCP order control unit 5 compares the sequence number of the header of the GET 43 with NextSeq (O) of the proxy server 26 (S5). Since seq of GET 43 and NextSeq (O) of proxy server 26 match with “100”, the application analysis process (step 140) is executed with “Diff = 0”.
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 application analysis unit 6 checks whether the received data is the head of the message 106 (step 16).
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 Embodiment 2 mentioned above.
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 termination detection unit 10 searches for a data delimiter in the message body 72 based on the content size and the reception size. The end of data is identified (step 19).
In FIG. 5, Res 44 and Data 45 are processed as one message Resm 108. In FIG. 15, the message 106a is divided into two packets of Res44 and Data / Res53, and the second packet (Data / Res53) includes a message body 72 of the message 106a and a message header 71 of the message 106b. Is stored. In this case (when there is data at the end of the delimiter), as described in the second embodiment, the application analysis unit 6 cuts out the message body 72 of the message 106a stored in the Data / Res 53 (step 22), and the message The message body 72 of 106a is recorded in the recording unit 9 (S13b), and the reception size, recording size, and NextSeq (O) of the proxy server 26 are updated (S23 to S25). Then, the application analysis unit 6 processes the data after the end of the message body 72 of the message 106a (message header 71, blank line 56, message body 72) as a new message, and returns to the check at the head of the message (S16). Repeat the process. If there is no data at the end of the delimiter, the process ends. Next, the received data is processed as the head of the message 106.

実施の形態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 ( Data 46 has an end of data).
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 GET 43 is the head of the GET request (step 16), the application analysis unit 6 initializes the recording size (step 17). Next, the application analysis unit 6 determines the content size (size of the message body 72) and data from the request line 61, the request header field 62, the general-purpose header field 63, the header field 64, and other (65) headers in the message header 71. Information on the transmission format is acquired (step 18). The information acquired here is used for searching for the delimiter of data described above.
Next, the end detection unit 10 compares the content size, the reception size, and the recording size, and checks whether there is a data end (step 19). Hereinafter, for simplification of description, the description will be continued with “content size = size of message 106 (including message header 71)”, “reception size = reception size B”, and “recording size = recorded message 106 size”. . Since the content size (100) ≧ reception size B (100) + recording size (0) in the GET 43, the application analysis unit 6 assumes that there is an end (there is no data at the end of the packet), and the GET 43 is recorded in the recording unit 9 (Step 13). FIG. 7 shows an example of recording the message 106 in the recording unit 9. In the recording unit 9, GETm 107 is stored in the area indicated by the request pointer 81.
Then, the application analysis unit 6 adds the reception size B to the recording size (step 20), and adds the reception size to NextSeq (O) of the proxy server 26 (step 21). At this time, NextSeq (I) of the proxy server 26 is updated to “200”, and NextSeq (O) of the WWW server 23 remains “701”.
Next, in FIG. 18, the TCP sequence control unit 5 compares the ACK number of GET 43 with NextSeq (I) on the opposite side (step 8), and ends the processing because both match with “701”.

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 GET 43 transmits Res 44.
When Res44 is received by the reception control unit 3, the process is the same as the GET 43 until the process of acquiring the content size (step 18) in FIG. 19 (steps 1, 3, 4, 5, 6, 10, 11, 12). 16, 17). Res 44 is the head of the GET response, and the application analysis unit 6 acquires the content size and transmission format information from Res 44 (step 18). Res44 is 1000-byte data, but since it is the head of three packets (Res44, Data45, and Data46) obtained by dividing 3000-byte data, the content size is 3000.
Next, the end detection unit 10 compares the content size with the reception size + recording size (S19). In Res44, since content size (3000) ≧ reception size B (1000) + recording size (0), the application analysis unit 6 records Res44 in the recording unit 9 (step 13). In recording to the recording unit 9 (step 13), Res 44 is stored in the area indicated by the response pointer 82 of the recording unit 9.
Then, the application analysis unit 6 adds the reception size B to the recording size (step 20), and adds the reception size to NextSeq (I) of the WWW server 23 (step 21). At this time, NextSeq (O) of the proxy server 26 remains “200”, and NextSeq (I) of the WWW server 23 is updated to “1701”.
Next, in FIG. 18, the TCP sequence control unit 5 compares the ACK number of Res44 with NextSeq (O) on the opposite side (step 8), and ends the processing because both match with “200”.

次に、WWWサーバ23はData45とData46とを送信するが、Data45はネットワーク上でエラー等により廃棄され、通信記録装置1に届かなかったものとする。   Next, it is assumed that the WWW server 23 transmits Data 45 and Data 46, but the Data 45 is discarded due to an error or the like on the network and has not reached the communication recording apparatus 1.

受信制御部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 data 45 is not received by the reception control unit 3 and the data 46 is received, in FIG. 18, after the TCP type and TCP state are checked by the TCP analysis unit 4 (steps 1 and 3), the TCP sequence control unit 5 The header sequence number (2701) and NextSeq (I) (1701) of the WWW server 23 are compared (step 5). The TCP order control unit 5 determines that the order of the packets has been reversed because they do not match, holds Data 46 until Data 45 arrives, and sets assembly Seq to “2701” (step 7).
Next, the TCP order control unit 5 compares the ACK number of Data 46 with NextSeq (O) on the opposite side (step 8), and ends the processing because both match with “200”.

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 proxy server 26 that has received the Data 45 and the Data 46 transmits an ACK 47.
When ACK 47 is received by the reception control unit 3, the sequence number of the header of ACK 47 and NextSeq (O) of proxy server 26 match “200” in FIG. 8 (step 5). Processing (step 140) is performed. In the application analysis process (step 140) of FIG. 19, since ACK 47 has no data (reception size == 0), the process ends.
Next, in FIG. 18, the TCP sequence control unit 5 compares the ACK number (3701) of the header of ACK 47 with the next Seq (I) (1701) on the opposite side (step 8). At this time, “ACK of ACK 47 header> NextSeq (I) on the opposite side”.
Next, the TCP order control unit 5 compares ACK (3701) with assembly Seq (2701) (step 9). At this time, “ACK ≧ assembly Seq”.
Next, the TCP sequence control unit 5 sets “Assembly Seq—Next Seq (I) on the opposite side” to Diff (step 41).
Then, the application analysis unit 6 performs application analysis processing (step 140) on the retained data 46 with Diff = 1000.
In FIG. 19, since “Diff! = 0”, the process jumps to (1) of FIG.
In FIG. 20, the application analysis unit 6 identifies Data 46 as a recording target (S41), and creates an alternative packet to replace the lost packet that has been lost (S42). Here, since content (3000) ≧ record size (1000) + Diff (1000) (step 26), the process jumps to (2) in FIG.
In FIG. 19, the application analysis unit 6 records Data 46 and the substitute packet, updates the recording size, and updates NextSeq (I) of the WWW server 23 (steps 16, 18 b, 19, 13, 20, 21). ), The processing for Data 46 is terminated.

以降のACK47、GET48、Res49、FIN/ACK50、FIN/ACK51およびACK52に対する処理は、実施の形態1と同様である。GET48およびRes49はGET43と同様に処理される。GET48およびRes49は、GET43およびRes44(Data45、Data46)と同様に、別のメッセージ106として記録部9に記録される。   The subsequent processing for ACK 47, GET 48, Res 49, FIN / ACK 50, FIN / ACK 51, and ACK 52 is the same as in the first embodiment. GET48 and Res49 are processed in the same manner as GET43. GET 48 and Res 49 are recorded in the recording unit 9 as another message 106 in the same manner as GET 43 and Res 44 (Data 45, Data 46).

図23に基づいてケース4の場合を説明したが、ケース1、ケース3およびケース5の場合も、通信記録装置1は、ケース4の場合と同様に、抜けたパケットの分を飛ばしてメッセージ106を記録することができる。
ケース2の場合、通信記録装置1はヘッダ情報が参照できないため、TCPデータ103の位置づけを把握できない。このケースでは、通信記録装置1は抜けたパケット分を飛ばしてTCPデータ103を記録し、異常フラグをセットし、以降のパケットのTCPデータ103を記録する。
Although the case 4 has been described with reference to FIG. 23, the communication recording apparatus 1 also skips the missing packet in the case 1, case 3, and case 5 as in the case 4. Can be recorded.
In case 2, the communication recording device 1 cannot refer to the header information, and thus cannot grasp the position of the TCP data 103. In this case, the communication recording apparatus 1 skips the missing packet and records the TCP data 103, sets an abnormality flag, and records the TCP data 103 of the subsequent packets.

実施の形態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 communication recording apparatus 1 and application analysis method have been described.
The communication recording device 1 includes a reception control unit 3, a TCP analysis unit 4, a TCP sequence control unit 5, an application analysis unit 6, a termination detection unit 10, a recording unit 9, and a data display unit 7. In the case of flight, the application number is analyzed using the sequence number and content size, and data is recorded.
The reception control unit 3 receives a packet from the network.
The TCP analysis unit 4 analyzes the TCP state of the packet received by the reception control unit 3.
The TCP order control unit 5 performs control so that the correct order is obtained when the order of the packets is reversed.
The application analysis unit 6 analyzes application data.
The end detection unit 10 detects a message delimiter when application data is divided into a plurality of messages and transmitted.
The recording unit 9 records the analysis result.
The data display unit 7 displays the data of the recording unit 9.

実施の形態3における通信記録装置1は、上記のように、パケットが廃棄され通知されなかった場合、パケットを保持し、保持したパケットと以降に受信したパケットとのACK番号の差分(Diff)を計算することで、パケット抜けを検出する。そして、通信記録装置1は、廃棄されたパケット分を飛ばしてアプリケーション解析処理(S140)を実施する。このため、通信記録装置1はパケットが廃棄された場合でもアプリケーションデータ(メッセージ106)を記録することができる。   As described above, the communication recording device 1 according to the third embodiment holds a packet when the packet is discarded and is not notified, and calculates a difference (Diff) between ACK numbers between the held packet and a packet received thereafter. By calculating, packet loss is detected. Then, the communication recording device 1 skips the discarded packets and performs the application analysis process (S140). Therefore, the communication recording apparatus 1 can record application data (message 106) even when a packet is discarded.

実施の形態4.
実施の形態4では、受信制御部3がパケットを受信することのできるルートが複数ある形態について説明する。
以下、実施の形態1〜実施の形態3と異なる事項について主に説明し、説明を省略する事項については実施の形態1〜実施の形態3と同様であるものとする。
Embodiment 4 FIG.
In the fourth embodiment, a mode in which there are a plurality of routes through which the reception control unit 3 can receive a packet will be described.
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 communication network system 100 according to the fourth embodiment.
As shown in FIG. 25, communication network system 100 in the fourth embodiment is obtained by adding SW 28 to communication network system 100 in the first embodiment.
The SW 28 transfers all packets to the communication recording apparatus 1 via the communication cable 30 by the port monitor function, similarly to the SW 27.
The communication recording apparatus 1 receives the same packet twice because it receives the packet from the two switches (SW27, SW28). Even if the packet is discarded due to an error in one switch, the packet is received from the other. Can receive.

図26は、実施の形態4における通信記録装置1の機能構成図である。
図26に示すように、受信制御部3は全てのパケットをSW27から通信ケーブル29および入力ポート2を介して受信すると共に、全てのパケットをSW28から通信ケーブル30および入力ポート12を介して受信する。
FIG. 26 is a functional configuration diagram of the communication recording apparatus 1 according to the fourth embodiment.
As shown in FIG. 26, the reception control unit 3 receives all packets from the SW 27 via the communication cable 29 and the input port 2, and receives all packets from the SW 28 via the communication cable 30 and the input port 12. .

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 TCP analysis unit 4 receives the TCP packet 104 by the reception control unit 3 and stores it as the first TCP packet in the main storage device, and then receives a new TCP packet 104 by the reception control unit 3 and stores it in the main storage device. When stored as a second TCP packet, the following processing is performed. The TCP analysis unit 4 receives the first TCP packet and the second TCP packet based on the sequence number (seq) of the first TCP packet and the sequence number (seq) of the second TCP packet. 3 determines whether or not the same TCP packet 104 is received from a different route (SW27 → communication cable 29 → input port 2, SW28 → communication cable 30 → input port 12). When the TCP analysis unit 4 determines that the first TCP packet and the second TCP packet are the same TCP packet, the TCP analysis unit 4 deletes the second TCP packet received later from the main storage device.

図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 TCP analysis unit 4 determines whether or not the received packet is the same as a packet received in the past (S33).

通常、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 SW 27 and SW 28 to the communication recording apparatus 1, the same packet reaches the communication recording apparatus 1 continuously. Therefore, the TCP analysis unit 4 sets the IP header 101 and the TCP header 102 of the previous received packet in the connection information, and sets the IP header 101 and the TCP header 102 and the connection information of the new received packet in the previous time. The IP header 101 and the TCP header 102 of the received packet are compared. When the IP header 101 and the TCP header 102 of the new received packet are the same as the IP header 101 and the TCP header 102 of the previous received packet set in the connection information, the TCP analyzing unit 4 It is determined that the packet is the same as the packet received in the past. Further, for example, the TCP analysis unit 4 sets the IP header 101 and the TCP header 102 of all received packets in the connection information, and receives if any received packet is the same as the IP header 101 and the TCP header 102. You may determine with a packet being the same packet as the packet received in the past. In this case, the IP header 101 and the TCP header 102 of the received packet determined to be the same packet as the received packet need not be set in the connection information.

S33において受信パケットが過去に受信されたパケットと同じパケットであった場合、TCP解析部4は受信パケットを廃棄する(S2)。   If the received packet is the same as the packet received in S33, the TCP analysis unit 4 discards the received packet (S2).

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 communication recording apparatus 1 and application analysis method have been described.

通信記録装置1において、受信制御部3は複数の入力ポートからパケットを受信し、TCP解析部4は受信制御部3により受信されたパケットが同じであるか比較し、同じデータを受信した場合には一方を廃棄する。一方からしかパケットが受信されなかった場合、アプリケーション解析部6は受信されたパケットに対してデータ解析を実施する。また、すべてのポートからパケットを受信しなかった場合、アプリケーション解析部6はパケットが抜けたこととしてアプリケーション解析を実施する。   In the communication recording apparatus 1, the reception control unit 3 receives packets from a plurality of input ports, and the TCP analysis unit 4 compares whether the packets received by the reception control unit 3 are the same and receives the same data. Discard one. When a packet is received only from one side, the application analysis unit 6 performs data analysis on the received packet. If the packet is not received from all the ports, the application analysis unit 6 performs application analysis on the assumption that the packet has been lost.

実施の形態4における通信記録装置1は、上記のように、2つの入力ポートからパケットを受信するため、一方のスイッチでパケットがエラーのため廃棄されたとしても、他方から受信したパケットで処理を継続できる。   Since the communication recording apparatus 1 according to the fourth embodiment receives packets from two input ports as described above, even if a packet is discarded due to an error in one switch, processing is performed using the packet received from the other. Can continue.

各実施の形態では、他ホスト宛てのパケットを受信し、受信したパケットに基づいてアプリケーションデータを組み立て、組み立てたアプリケーションデータを“通信履歴”として記録する形態について説明した。
但し、組み立てられたアプリケーションデータは“通信履歴”として記録されなくても構わない。
例えば、組み立てられたアプリケーションデータは、本来の送信先である通信(端末)装置、または、その他の特定の通信(端末)装置に送信(または、中継、転送)されてもよい。本来の送信先である通信(端末)装置とは、当該アプリケーションデータの少なくとも一部を含むパケットに送信先として設定された端末のことであり、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における通信ネットワークシステム100の一例を示す図。1 is a diagram illustrating an example of a communication network system 100 according to Embodiment 1. FIG. IPパケット105の構成を示す図。The figure which shows the structure of the IP packet 105. FIG. GET43の構成を示す図。The figure which shows the structure of GET43. Res44の構成を示す図。The figure which shows the structure of Res44. 分割されたResm108を示す図。The figure which shows Resm108 divided | segmented. 実施の形態1における通信シーケンスの一例を示す図。FIG. 5 shows an example of a communication sequence in Embodiment 1. 実施の形態1におけるGETm107とResm108とが設定された通信履歴120を示す図。The figure which shows the communication log | history 120 in which GETm107 and Resm108 in Embodiment 1 were set. 実施の形態1における通信記録装置1のハードウェア資源の一例を示す図。FIG. 3 is a diagram illustrating an example of hardware resources of the communication recording device 1 according to the first embodiment. 実施の形態1における通信記録装置1の機能構成図。2 is a functional configuration diagram of a communication recording apparatus 1 according to Embodiment 1. FIG. 実施の形態1における通信記録装置1の通信記録方法を示すフローチャート。3 is a flowchart showing a communication recording method of the communication recording apparatus 1 according to the first embodiment. 実施の形態1における通信記録方法のTCP解析処理(S120)〜アプリケーション解析処理(S140)の詳細を示すフローチャート。7 is a flowchart showing details of a TCP analysis process (S120) to an application analysis process (S140) of the communication recording method according to the first embodiment. 実施の形態1における通信記録方法のアプリケーション解析処理(S140)の詳細を示すフローチャート。5 is a flowchart showing details of application analysis processing (S140) of the communication recording method according to the first embodiment. 実施の形態1における通信シーケンスの一例を示す図。FIG. 5 shows an example of a communication sequence in Embodiment 1. 実施の形態2における通信記録装置1の機能構成図。FIG. 4 is a functional configuration diagram of a communication recording apparatus 1 according to a second embodiment. 分割されたメッセージ106を示す図。The figure which shows the message 106 divided | segmented. 実施の形態2における通信記録方法のアプリケーション解析処理(S140)の詳細を示すフローチャート。10 is a flowchart showing details of application analysis processing (S140) of the communication recording method according to the second embodiment. 実施の形態2における通信シーケンスの一例を示す図。FIG. 6 shows an example of a communication sequence in Embodiment 2. 実施の形態3における通信記録方法のTCP解析処理(S120)〜アプリケーション解析処理(S140)の詳細を示すフローチャート。10 is a flowchart showing details of a TCP analysis process (S120) to an application analysis process (S140) of the communication recording method according to the third embodiment. 実施の形態3における通信記録方法のアプリケーション解析処理(S140)の詳細を示すフローチャート。10 is a flowchart showing details of application analysis processing (S140) of a communication recording method according to Embodiment 3. 実施の形態3における通信記録方法のアプリケーション解析処理(S140)の一部を示すフローチャート。10 is a flowchart showing a part of application analysis processing (S140) of a communication recording method according to Embodiment 3. 記録サイズとDiffとの合計値がコンテントサイズより大きい場合を示す図。The figure which shows the case where the sum total of recording size and Diff is larger than content size. 記録サイズとDiffとの合計値がコンテントサイズ以下である場合を示す図。The figure which shows the case where the total value of recording size and Diff is below content size. 実施の形態3におけるGETm107とResm108とが設定された通信履歴120を示す図。The figure which shows the communication log | history 120 in which GETm107 and Resm108 in Embodiment 3 were set. 実施の形態3における通信シーケンスの一例を示す図。FIG. 9 shows an example of a communication sequence in Embodiment 3. 実施の形態4における通信ネットワークシステム100の一例を示す図。FIG. 10 is a diagram illustrating an example of a communication network system 100 according to a fourth embodiment. 実施の形態4における通信記録装置1の機能構成図。FIG. 6 is a functional configuration diagram of a communication recording apparatus 1 according to a fourth embodiment. 実施の形態4における通信記録方法のTCP解析処理(S120)〜アプリケーション解析処理(S140)の詳細を示すフローチャート。10 is a flowchart showing details of a TCP analysis process (S120) to an application analysis process (S140) of the communication recording method according to the fourth embodiment.

符号の説明Explanation of symbols

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 (11)

他の複数の通信装置間の通信の履歴を記録する通信記録装置であり、
特定のデータを示すアプリケーションデータが複数のパケットに分割されて通信される通信ネットワークに接続し、前記複数の通信装置の少なくともいずれかを送信先とする前記複数のパケットのうち前記通信ネットワークに送出されたパケットを受信し、受信したパケットを主記憶装置に記憶する受信制御部と、
前記受信制御部により前記複数のパケットのうち一部のパケットが前記主記憶装置に記憶されたときに、前記主記憶装置から前記一部のパケットを読み出し、読み出した前記一部のパケットに含まれる前記アプリケーションデータの一部を補助記憶装置に前記通信ネットワークの通信履歴の一部として記録する通信記録部と
を備えたことを特徴とする通信記録装置。
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 apparatus comprising: a communication recording unit configured to record a part of the application data as a part of a communication history of the communication network in an auxiliary storage device.
前記受信制御部は、前記パケットとして前記アプリケーションデータの一部を示すTCP(Transmission Control Protocol)データと前記アプリケーションデータ内での前記TCPデータの並び位置を示すシーケンス番号の含まれるTCPヘッダとが含まれるTCPパケットを受信して前記主記憶装置に記憶し、
前記通信記録部は、前記受信制御部により前記主記憶装置に記憶された前記TCPパケットに含まれる前記TCPヘッダを参照し、参照した前記TCPヘッダに含まれる前記シーケンス番号に基づいて前記TCPパケットに含まれる前記TCPデータを前記アプリケーションデータ内での並び位置に対応させて前記補助記憶装置に記録する
ことを特徴とする請求項1記載の通信記録装置。
The reception control unit includes TCP (Transmission Control Protocol) data indicating a part of the application data and a TCP header including a sequence number indicating the arrangement position of the TCP data in the application data as the packet. Receiving a TCP packet and storing it in the main storage device;
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パケットに含まれるTCPヘッダを参照し、参照した前記TCPヘッダに含まれるシーケンス番号に基づいて前記第3のTCPパケットに含まれる第3のTCPデータが前記第2のTCPデータに続くデータであるか否かを判定し、
前記通信記録部は、前記順序判定部により前記第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.
前記受信制御部は、アプリケーションデータを通信する特定の通信端末装置間で通信の完了したTCPデータを示す確認応答番号の含まれるTCPヘッダの含まれるTCPパケットを受信して前記主記憶装置に記憶し、
前記通信記録装置は、さらに、
前記受信制御部により前記主記憶装置に記憶されたTCPパケットに含まれるTCPヘッダを参照し、参照した前記TCPヘッダに含まれる前記確認応答番号に基づいて前記受信制御部により受信されていないTCPデータであり、特定の通信端末装置間で通信の完了したTCPデータを抜けデータとしてCPUを用いて特定する抜けデータ特定部を備え、
前記通信記録部は、前記抜けデータ特定部により特定された前記抜けデータのサイズ分所定の値が設定されたデータを前記抜けデータとして生成し、生成した前記抜けデータを前記補助記憶装置に記録する
ことを特徴とする請求項2〜請求項4いずれかに記載の通信記録装置。
The reception control unit receives a TCP packet including a TCP header including an acknowledgment number indicating TCP data that has been communicated between specific communication terminal devices that communicate application data, and stores the received TCP packet 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 The communication recording apparatus according to claim 2, wherein
前記受信制御部は、複数のアプリケーションデータを少なくともいずれかのアプリケーションデータの少なくとも一部を部分データとして含む複数のパケットで受信し、受信した複数のパケットを前記主記憶装置に記憶し、
前記通信記録装置は、さらに、
前記受信制御部により前記主記憶装置に記憶された複数のパケットそれぞれのサイズと前記複数のパケットに含まれる複数のアプリケーションデータそれぞれのサイズとに基づいて前記複数のパケットのうち各アプリケーションデータの終端が含まれるパケットを終端パケットとしてCPUを用いて特定する終端特定部を備え、
前記通信記録部は、前記受信制御部により前記主記憶装置に記憶された複数のパケットを前記終端特定部により特定された各アプリケーションデータの終端パケットに基づいてアプリケーションデータ毎に区別し、複数のパケットに含まれる複数のアプリケーションデータをアプリケーションデータ毎に区別して前記補助記憶装置に記録する
ことを特徴とする請求項1〜請求項5いずれかに記載の通信記録装置。
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 The communication recording device according to claim 1, wherein the plurality of application data included in the storage device is recorded in the auxiliary storage device while being distinguished for each application data.
前記終端特定部は、前記終端パケットに第1のアプリケーションデータの終端と第2のアプリケーションデータの先頭とが含まれているか否かを判定し、
前記通信記録部は、前記終端特定部により前記終端パケットに第1のアプリケーションデータの終端と第2のアプリケーションデータの先頭とが含まれていると判定された場合、前記終端パケットから第1のアプリケーションデータと第2のアプリケーションデータとを抽出し、第1のアプリケーションデータと第2のアプリケーションデータとを区別して前記補助記憶装置に記録する
ことを特徴とする請求項6記載の通信記録装置。
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 7. The communication recording apparatus according to claim 6, 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.
前記受信制御部は、前記通信ネットワークに複数の経路で接続し、前記通信ネットワークに送出されたパケットを複数の経路それぞれから受信し、複数の経路それぞれから受信したパケットを前記主記憶装置に記憶する
ことを特徴とする請求項1〜請求項7いずれかに記載の通信記録装置。
The reception control unit is connected to the communication network through a plurality of routes, receives packets sent to the communication network from each of the plurality of routes, and stores packets received from the plurality of routes in the main storage device. 8. The communication recording apparatus according to claim 1, wherein
前記受信制御部は、前記パケットとして前記アプリケーションデータの一部を示すTCP(Transmission Control Protocol)データと前記アプリケーションデータ内での前記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解析部
を備えたことを特徴とする請求項8記載の通信記録装置。
The reception control unit includes TCP (Transmission Control Protocol) data indicating a part of the application data and a TCP header including a sequence number indicating the arrangement position of the TCP data in the application data as the packet. Receiving a TCP packet and storing it in the main storage device;
The communication recording device further includes:
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 9. The communication device according to claim 8, further comprising a TCP analysis unit that deletes the second TCP packet from the main storage device. Recording device.
受信制御部が、特定のデータを示すアプリケーションデータが複数のパケットに分割されて通信される通信ネットワークに接続し、前記複数のパケットのうち前記通信ネットワークに送出されたパケットを受信し、受信したパケットを主記憶装置に記憶する受信制御処理を行い、
通信記録部が、前記受信制御部により前記複数のパケットのうち一部のパケットが前記主記憶装置に記憶されたときに、前記主記憶装置から前記一部のパケットを読み出し、読み出した前記一部のパケットに含まれる前記アプリケーションデータの一部を補助記憶装置に記憶する記憶処理を行う
ことを特徴とする通信データ処理方法。
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 comprising: performing storage processing for storing a part of the application data included in the packet in an auxiliary storage device.
請求項10記載の通信データ処理方法をコンピュータに実行させることを特徴とする通信データ処理プログラム。   A communication data processing program for causing a computer to execute the communication data processing method according to claim 10.
JP2008050209A 2008-02-29 2008-02-29 Communication recording apparatus, communication data processing method, and communication data processing program Expired - Fee Related JP5014199B2 (en)

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 true JP2009207099A (en) 2009-09-10
JP5014199B2 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)

Cited By (6)

* Cited by examiner, † Cited by third party
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
JP2014003744A (en) * 2012-06-15 2014-01-09 Takaoka Electric Mfg Co Ltd Remote monitoring and control system of charger for electric vehicle
JP2016062572A (en) * 2014-09-22 2016-04-25 富士ゼロックス株式会社 Load distribution device, server, load distribution system, and load distribution program
US9736080B2 (en) 2014-03-04 2017-08-15 Fujitsu Limited Determination method, device and storage medium
US10353594B2 (en) 2011-09-21 2019-07-16 Hitachi Automotive Systems, Ltd. Electronic control unit for vehicle and method of writing data

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002029579A1 (en) * 2000-10-03 2002-04-11 Netagent Co. Ltd Communication information recorder
JP2006246195A (en) * 2005-03-04 2006-09-14 Canon Electronics Inc System and device for gathering network information, and control method thereof
JP2007173931A (en) * 2005-12-19 2007-07-05 Mitsubishi Space Software Kk Packet analyzing system, method and program
JP2007336551A (en) * 2006-06-12 2007-12-27 Mitsubishi Electric Information Technology Centre Europa Bv Method and device for submitting at least one tcp data segment stream to in-line content analysis, computer readable medium holding one or more instruction sequence for implementing the method, and computer program product
JP2008118198A (en) * 2006-10-31 2008-05-22 Toshiba Corp Communication recording and monitoring device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002029579A1 (en) * 2000-10-03 2002-04-11 Netagent Co. Ltd Communication information recorder
JP2006246195A (en) * 2005-03-04 2006-09-14 Canon Electronics Inc System and device for gathering network information, and control method thereof
JP2007173931A (en) * 2005-12-19 2007-07-05 Mitsubishi Space Software Kk Packet analyzing system, method and program
JP2007336551A (en) * 2006-06-12 2007-12-27 Mitsubishi Electric Information Technology Centre Europa Bv Method and device for submitting at least one tcp data segment stream to in-line content analysis, computer readable medium holding one or more instruction sequence for implementing the method, and computer program product
JP2008118198A (en) * 2006-10-31 2008-05-22 Toshiba Corp Communication recording and monitoring device

Cited By (9)

* Cited by examiner, † Cited by third party
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
WO2013042920A3 (en) * 2011-09-19 2013-05-23 에스케이텔레콤 주식회사 Device and method for supporting a simultaneous transmission service of multiple network based data
US9258737B2 (en) 2011-09-19 2016-02-09 Sk Telecom Co., Ltd. Device and method for simultaneously transmitting data in multi-network
US10353594B2 (en) 2011-09-21 2019-07-16 Hitachi Automotive Systems, Ltd. Electronic control unit for vehicle and method of writing data
US11360698B2 (en) 2011-09-21 2022-06-14 Hitachi Astemo, Ltd. Electronic control unit for vehicle and method of writing data
JP2014003744A (en) * 2012-06-15 2014-01-09 Takaoka Electric Mfg Co Ltd Remote monitoring and control system of charger for electric vehicle
US9736080B2 (en) 2014-03-04 2017-08-15 Fujitsu Limited Determination method, device and storage medium
JP2016062572A (en) * 2014-09-22 2016-04-25 富士ゼロックス株式会社 Load distribution device, server, load distribution system, and load distribution program

Also Published As

Publication number Publication date
JP5014199B2 (en) 2012-08-29

Similar Documents

Publication Publication Date Title
US11765079B2 (en) Computational accelerator for storage operations
CN107438012B (en) Load balancing service forwarding method, system, balancing device and host machine
US20190075049A1 (en) Determining Direction of Network Sessions
US9455873B2 (en) End-to-end analysis of transactions in networks with traffic-altering devices
JP5014199B2 (en) Communication recording apparatus, communication data processing method, and communication data processing program
US8898311B2 (en) Data communication method and information processing device
US7990847B1 (en) Method and system for managing servers in a server cluster
US10230825B2 (en) Dynamic port type detection
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
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
JP5630070B2 (en) Relay device, program and method
JP2017216613A (en) Transfer device and transfer method
CN112702236B (en) Method and processor for realizing packet loss detection
US8995271B2 (en) Communications flow analysis
KR102363758B1 (en) Proxy device and its control 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