JP7380091B2 - Packet processing device and packet processing method - Google Patents

Packet processing device and packet processing method Download PDF

Info

Publication number
JP7380091B2
JP7380091B2 JP2019200402A JP2019200402A JP7380091B2 JP 7380091 B2 JP7380091 B2 JP 7380091B2 JP 2019200402 A JP2019200402 A JP 2019200402A JP 2019200402 A JP2019200402 A JP 2019200402A JP 7380091 B2 JP7380091 B2 JP 7380091B2
Authority
JP
Japan
Prior art keywords
packet
communication
transmitted
retransmission
information processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019200402A
Other languages
Japanese (ja)
Other versions
JP2021077924A (en
Inventor
廣和 岩倉
仁 上野
史之 飯塚
純代 岡田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019200402A priority Critical patent/JP7380091B2/en
Publication of JP2021077924A publication Critical patent/JP2021077924A/en
Application granted granted Critical
Publication of JP7380091B2 publication Critical patent/JP7380091B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

本発明は、通信パケットを処理する装置および方法に係わる。 The present invention relates to an apparatus and method for processing communication packets.

柔軟な情報処理サービスを提供するために、仮想環境下で動作する情報処理システムが実用化されている。仮想環境下で動作する情報処理システムは、例えば、複数の仮想サーバおよび仮想サーバ間に設けられる仮想スイッチを含む。そして、複数の仮想サーバは、仮想スイッチを介して通信パケットを送信および受信することで、要求された情報処理を実現する。なお、以下の記載では、仮想環境下で動作する情報処理システムを「仮想情報処理システム」と呼ぶことがある。 In order to provide flexible information processing services, information processing systems that operate in virtual environments have been put into practical use. An information processing system that operates under a virtual environment includes, for example, a plurality of virtual servers and a virtual switch provided between the virtual servers. The plurality of virtual servers transmits and receives communication packets via the virtual switch, thereby realizing the requested information processing. Note that in the following description, an information processing system that operates in a virtual environment may be referred to as a "virtual information processing system."

仮想情報処理システムを監視する場合、仮想スイッチのミラーリング機能を利用して、仮想サーバ間で送信される通信パケットがコピーされる。コピーされた通信パケットは、中継装置によりシステム分析装置に転送される。システム分析装置は、受信した通信パケットに基づいて、仮想情報処理システムを監視する。例えば、システム分析装置は、仮想情報処理システムのパケット数、パケット損失率、応答時間、スループットなどを監視する。 When monitoring a virtual information processing system, the mirroring function of a virtual switch is used to copy communication packets sent between virtual servers. The copied communication packet is transferred to the system analysis device by the relay device. The system analysis device monitors the virtual information processing system based on the received communication packets. For example, the system analysis device monitors the number of packets, packet loss rate, response time, throughput, etc. of the virtual information processing system.

なお、関連技術として、TCP送信処理の効率化を実現する方法が提案されている(例えば、特許文献1)。また、データストリームを構成する映像データを授受して非信頼性伝送路上で動作する場合の映像品質を向上させる方法が提案されている(例えば、特許文献2)。 Note that as a related technique, a method has been proposed to improve the efficiency of TCP transmission processing (for example, Patent Document 1). Furthermore, a method has been proposed for transmitting and receiving video data constituting a data stream to improve video quality when operating on an unreliable transmission path (for example, Patent Document 2).

WO2010/073671WO2010/073671 特開2004-007823号公報Japanese Patent Application Publication No. 2004-007823

仮想環境の外に設けられるシステム分析装置を用いて仮想情報処理システムを監視するときは、仮想サーバ間で送信される通信パケットの挙動を、システム分析装置上に再現する必要がある。ところが、仮想環境においては、演算効率を高くするために、仮想環境に特有の処理が行われることがある。このため、仮想サーバ間で送信される通信パケットの挙動をシステム分析装置上に再現することが難しいケースがある。そして、仮想サーバ間で送信される通信パケットの挙動をシステム分析装置上に正確に再現できなければ、仮想情報処理システムの監視の精度が低下してしまう。 When monitoring a virtual information processing system using a system analysis device provided outside the virtual environment, it is necessary to reproduce the behavior of communication packets transmitted between virtual servers on the system analysis device. However, in a virtual environment, processing specific to the virtual environment may be performed in order to increase computational efficiency. For this reason, there are cases where it is difficult to reproduce the behavior of communication packets transmitted between virtual servers on a system analysis device. If the behavior of communication packets transmitted between virtual servers cannot be accurately reproduced on the system analysis device, the accuracy of monitoring the virtual information processing system will decrease.

本発明の1つの側面に係わる目的は、仮想情報処理システムの監視精度を向上させることである。 An object of one aspect of the present invention is to improve the accuracy of monitoring virtual information processing systems.

本発明の1つの態様のパケット処理方法は、仮想情報処理システム内で送信される通信パケットを前記仮想情報処理システムから受信し、前記通信パケットが前記仮想情報処理システム内で送信された再送パケットであるか否かを判定し、前記通信パケットが前記仮想情報処理システム内で送信された再送パケットでないときは、送信データの分割処理を実行するセグメントオフロード機能がオン状態に設定された第1の出力部を介して前記通信パケットを出力し、前記通信パケットが前記仮想情報処理システム内で送信された再送パケットであるときは、前記セグメントオフロード機能がオフ状態に設定された第2の出力部を介して前記通信パケットを出力する。 A packet processing method according to one aspect of the present invention includes receiving a communication packet transmitted within a virtual information processing system from the virtual information processing system, wherein the communication packet is a retransmission packet transmitted within the virtual information processing system. If the communication packet is not a retransmission packet transmitted within the virtual information processing system, a first segment offload function for performing division processing of transmission data is set to an on state. a second output unit that outputs the communication packet via an output unit, and when the communication packet is a retransmission packet transmitted within the virtual information processing system, the segment offload function is set to an off state; The communication packet is outputted via.

上述の態様によれば、仮想情報処理システムの監視精度が向上する。 According to the above aspect, the monitoring accuracy of the virtual information processing system is improved.

仮想情報処理システムを監視する監視システムの一例を示す図である。FIG. 1 is a diagram illustrating an example of a monitoring system that monitors a virtual information processing system. セグメントオフロード機能に係わる問題を説明する図である。FIG. 2 is a diagram illustrating a problem related to a segment offload function. セグメントオフロード機能に係わる他の問題を説明する図である。FIG. 7 is a diagram illustrating another problem related to the segment offload function. 本発明の実施形態に係わる監視システムの一例を示す図である。1 is a diagram showing an example of a monitoring system according to an embodiment of the present invention. 仮想サーバ間で通常パケットが送信されたときの中継装置の動作の一例を示す図である。FIG. 3 is a diagram illustrating an example of the operation of a relay device when a normal packet is transmitted between virtual servers. 仮想サーバ間で再送パケットが送信されたときの中継装置の動作の一例を示す図である。FIG. 6 is a diagram illustrating an example of the operation of a relay device when a retransmission packet is transmitted between virtual servers. 中継装置のハードウェア構成の一例を示す図である。FIG. 2 is a diagram illustrating an example of a hardware configuration of a relay device. パケットロスに起因する再送手順の例を示す図である。FIG. 3 is a diagram illustrating an example of a retransmission procedure due to packet loss. カプセルパケットの一例を示す図である。FIG. 3 is a diagram showing an example of a capsule packet. パケットバッファ、セッション管理テーブル、およびパラメータテーブルの実施例を示す図である。FIG. 3 is a diagram illustrating an example of a packet buffer, a session management table, and a parameter table. パケット受信部の処理の一例を示すフローチャートである。7 is a flowchart illustrating an example of processing by a packet receiving unit. 再送判定部の処理の一例を示すフローチャートである。3 is a flowchart illustrating an example of processing by a retransmission determination section. 転送制御部の処理の一例を示すフローチャートである。5 is a flowchart illustrating an example of processing by a transfer control unit. 転送部の処理の一例を示すフローチャートである。3 is a flowchart illustrating an example of processing by a transfer unit.

図1は、仮想情報処理システムを監視する監視システムの一例を示す。この例では、監視システムは、仮想情報処理システム1の動作状態を監視するために、中継装置2およびシステム分析装置3を備える。仮想情報処理システム1は、仮想環境下で動作する情報処理システムである。中継装置2は、仮想情報処理システム1内で送信される通信パケットを仮想情報処理システム1から受信してシステム分析装置3に転送する。システム分析装置3は、中継装置2から転送されてくる通信パケットを利用して仮想情報処理システム1の動作を監視する。 FIG. 1 shows an example of a monitoring system that monitors a virtual information processing system. In this example, the monitoring system includes a relay device 2 and a system analysis device 3 in order to monitor the operating state of the virtual information processing system 1. The virtual information processing system 1 is an information processing system that operates under a virtual environment. The relay device 2 receives communication packets transmitted within the virtual information processing system 1 from the virtual information processing system 1 and transfers them to the system analysis device 3. The system analysis device 3 monitors the operation of the virtual information processing system 1 using communication packets transferred from the relay device 2.

仮想情報処理システム1は、図1に示すように、複数の仮想サーバ11(11a、11b)、仮想スイッチ12、収集サーバ13、NIC(network interface card)14を備える。なお、仮想情報処理システム1は、図1に示していない他の機能を備えていてもよい。また、仮想情報処理システム1は、3以上の仮想サーバ11を備えてもよい。 As shown in FIG. 1, the virtual information processing system 1 includes a plurality of virtual servers 11 (11a, 11b), a virtual switch 12, a collection server 13, and a NIC (network interface card) 14. Note that the virtual information processing system 1 may include other functions not shown in FIG. Further, the virtual information processing system 1 may include three or more virtual servers 11.

仮想サーバ11は、仮想マシンにより実現される。そして、仮想サーバ11は、演算結果を他の仮想サーバ11に送信できる。また、仮想サーバ11は、他の仮想サーバ11の演算結果を受信できる。演算結果(及び、制御情報)は、例えば、TCPパケットに格納されて送信される。 The virtual server 11 is realized by a virtual machine. Then, the virtual server 11 can transmit the calculation results to other virtual servers 11. Further, the virtual server 11 can receive calculation results of other virtual servers 11. The calculation result (and control information) is stored in, for example, a TCP packet and transmitted.

仮想スイッチ12は、仮想サーバ11間で通信パケットを転送する。また、仮想スイッチ12は、ミラーリング機能を利用して、仮想サーバ11間で送信される通信パケットをコピーして収集サーバ13に導くことができる。よって、収集サーバ13は、仮想サーバ11間で送信される通信パケットを収集できる。なお、収集サーバ13も仮想マシンにより実現される。 The virtual switch 12 transfers communication packets between the virtual servers 11. Further, the virtual switch 12 can copy communication packets transmitted between the virtual servers 11 and guide them to the collection server 13 by using a mirroring function. Therefore, the collection server 13 can collect communication packets transmitted between the virtual servers 11. Note that the collection server 13 is also realized by a virtual machine.

収集サーバ13は、収集した通信パケットを、NIC14を介して中継装置2に送信する。そうすると、中継装置2は、NIC21を介して、通信パケットを受信する。すなわち、中継装置2は、仮想サーバ11間で送信される通信パケットを受信する。なお、仮想情報処理システム1と中継装置2との間は、TCPプロトコルで通信が行われる。すなわち、仮想サーバ11間で送信される通信パケットは、TCPパケットに格納されて仮想情報処理システム1から中継装置2に送信される。 The collection server 13 transmits the collected communication packets to the relay device 2 via the NIC 14. Then, the relay device 2 receives the communication packet via the NIC 21. That is, the relay device 2 receives communication packets transmitted between the virtual servers 11. Note that communication is performed between the virtual information processing system 1 and the relay device 2 using the TCP protocol. That is, communication packets transmitted between the virtual servers 11 are stored in TCP packets and transmitted from the virtual information processing system 1 to the relay device 2.

なお、以下の記載では、仮想情報処理システム1から中継装置2に送信されるパケットを「カプセルパケット」と呼ぶことがある。すなわち、仮想サーバ11間で送信される通信パケットは、カプセルパケットに格納されて仮想情報処理システム1から中継装置2に送信される。また、「通信パケット」は、仮想サーバ11間で送信されるパケット、または、仮想サーバ11間で送信されるパケットをコピーすることで生成されるパケットを表すものとする。 Note that in the following description, the packet transmitted from the virtual information processing system 1 to the relay device 2 may be referred to as a "capsule packet." That is, communication packets transmitted between the virtual servers 11 are stored in capsule packets and transmitted from the virtual information processing system 1 to the relay device 2. Furthermore, a "communication packet" refers to a packet transmitted between virtual servers 11 or a packet generated by copying a packet transmitted between virtual servers 11.

中継装置2は、図1に示すように、NIC21、パケット受信部22、パケットバッファ23、転送部24、NIC25を備える。なお、中継装置2は、図1に示していない他の機能を備えていてもよい。 As shown in FIG. 1, the relay device 2 includes a NIC 21, a packet receiving section 22, a packet buffer 23, a transfer section 24, and a NIC 25. Note that the relay device 2 may include other functions not shown in FIG.

パケット受信部22は、仮想情報処理システム1から送信されるカプセルパケットを受信する。そして、パケット受信部22は、カプセルパケットから通信パケットを抽出してパケットバッファ23に書き込む。すなわち、仮想サーバ11間で送信される通信パケットがパケットバッファ23に書き込まれる。転送部24は、パケットバッファ23から通信パケットを読み出す。そして、転送部24は、この通信パケットを、NIC25を介してシステム分析装置2に送信する。 The packet receiving unit 22 receives capsule packets transmitted from the virtual information processing system 1. Then, the packet receiving unit 22 extracts the communication packet from the capsule packet and writes it into the packet buffer 23. That is, communication packets transmitted between the virtual servers 11 are written into the packet buffer 23. The transfer unit 24 reads communication packets from the packet buffer 23. Then, the transfer unit 24 transmits this communication packet to the system analysis device 2 via the NIC 25.

システム分析装置3は、NIC31を介して、通信パケットを受信する。そして、分析部32は、中継装置2から受信する通信パケットを分析する。ここで、システム分析装置3が受信する通信パケットは、仮想サーバ11間で送信される通信パケットである。よって、分析部32は、この通信パケットを分析することにより、仮想情報処理システム1を監視できる。このとき、分析部32は、例えば、仮想情報処理システム1のパケット数、パケット損失率、応答時間、スループットなどを監視する。 The system analysis device 3 receives communication packets via the NIC 31. The analysis unit 32 then analyzes the communication packet received from the relay device 2. Here, the communication packet received by the system analysis device 3 is a communication packet transmitted between the virtual servers 11. Therefore, the analysis unit 32 can monitor the virtual information processing system 1 by analyzing this communication packet. At this time, the analysis unit 32 monitors, for example, the number of packets, packet loss rate, response time, throughput, etc. of the virtual information processing system 1.

図2は、セグメントオフロード機能に係わる問題を説明する図である。なお、仮想情報処理システム1、中継装置2、およびシステム分析装置3の構成は、図1および図2において実質的に同じである。 FIG. 2 is a diagram illustrating problems related to the segment offload function. Note that the configurations of the virtual information processing system 1, the relay device 2, and the system analysis device 3 are substantially the same in FIGS. 1 and 2.

仮想情報処理システム1においては、通信処理のオーバヘッドを削減するために、仮想NIC(図2では、V_NIC)のセグメントオフロード機能がオン状態に設定されることが多い。セグメントオフロード機能は、CPUの代わりにTCP通信における送信データの分割処理を実行する。図2に示す仮想情報処理システム1においては、セグメントオフロード機能がオン状態に設定されるときは、仮想サーバ11間で、MTUより大きい通信パケットが送信され得る。なお、MTU(maximum transmission unit)値は、たとえば、1500Bに設定される。そして、MTUより大きい通信パケット(図2では、64KBのパケット)が、仮想サーバ11間で送信されるものとする。 In the virtual information processing system 1, in order to reduce the overhead of communication processing, the segment offload function of the virtual NIC (V_NIC in FIG. 2) is often set to the on state. The segment offload function executes division processing of transmission data in TCP communication instead of the CPU. In the virtual information processing system 1 shown in FIG. 2, when the segment offload function is set to the on state, communication packets larger than the MTU can be transmitted between the virtual servers 11. Note that the MTU (maximum transmission unit) value is set to, for example, 1500B. It is assumed that a communication packet larger than the MTU (a 64 KB packet in FIG. 2) is transmitted between the virtual servers 11.

仮想情報処理システム1と中継装置2との間は、TCPプロトコルで通信が行われる。よって、仮想サーバ11間で送信される通信パケットは、1または複数のカプセルパケットに格納されて仮想情報処理システム1から中継装置2に送信される。このとき、仮想サーバ11間で送信される通信パケットは、必要に応じて、複数に分割される。 Communication is performed between the virtual information processing system 1 and the relay device 2 using the TCP protocol. Therefore, communication packets transmitted between the virtual servers 11 are stored in one or more capsule packets and transmitted from the virtual information processing system 1 to the relay device 2. At this time, the communication packets transmitted between the virtual servers 11 are divided into a plurality of packets as necessary.

中継装置2は、仮想情報処理システム1から受信する1または複数のカプセルパケットから、仮想サーバ11間で送信される通信パケットを抽出する。そして、抽出された通信パケットは、図2に示すように、いったんパケットバッファ23に保存される。その後、転送部24は、パケットバッファ23から通信パケットを読み出してNIC25に渡す。 Relay device 2 extracts communication packets transmitted between virtual servers 11 from one or more capsule packets received from virtual information processing system 1 . The extracted communication packet is then temporarily stored in the packet buffer 23, as shown in FIG. Thereafter, the transfer unit 24 reads the communication packet from the packet buffer 23 and passes it to the NIC 25.

中継装置2とシステム分析装置3との間は、物理的にイーサネット(登録商標)で接続され、MTU値は1500Bであるものとする。ここで、仮想情報処理システム1内の通信パケットの挙動をシステム分析装置3で精度よく監視するためには、中継装置2は、パケットバッファ23から読み出した通信パケットをそのままシステム分析装置3にストリーム出力することが好ましい。このため、中継装置2とシステム分析装置3との間に実装されるNIC(即ち、NIC25、31)のセグメントオフロード機能は、オフ状態に設定される。 It is assumed that the relay device 2 and the system analysis device 3 are physically connected via Ethernet (registered trademark), and the MTU value is 1500B. Here, in order to accurately monitor the behavior of communication packets in the virtual information processing system 1 with the system analysis device 3, the relay device 2 must stream output the communication packets read from the packet buffer 23 as they are to the system analysis device 3. It is preferable to do so. Therefore, the segment offload function of the NIC (namely, NIC 25, 31) installed between the relay device 2 and the system analysis device 3 is set to the off state.

ところが、NIC25、31のMTU値は、1500Bに設定されている。このため、仮想サーバ11間で送信される通信パケットのサイズがMTU値より大きいときは、その通信パケットは、NIC25、31により廃棄されてしまう。すなわち、仮想情報処理システム1内の仮想NICのセグメントオフロード機能がオン状態に設定され、中継装置2とシステム分析装置3との間に実装されるNICのセグメントオフロード機能がオフ状態に設定されると、システム分析装置3は、仮想情報処理システム1内の通信パケットの挙動を正しく監視できない。 However, the MTU value of the NICs 25 and 31 is set to 1500B. Therefore, when the size of a communication packet transmitted between the virtual servers 11 is larger than the MTU value, the communication packet is discarded by the NICs 25 and 31. That is, the segment offload function of the virtual NIC in the virtual information processing system 1 is set to the on state, and the segment offload function of the NIC implemented between the relay device 2 and the system analysis device 3 is set to the off state. Then, the system analysis device 3 cannot correctly monitor the behavior of communication packets within the virtual information processing system 1.

図2を参照して説明した問題は、中継装置2とシステム分析装置3との間に実装されるNICのセグメントオフロード機能をオン状態に設定することで解決され得る。即ち、NIC25、31のセグメントオフロード機能がオン状態に設定されると、MTUより大きな通信パケットは、NIC25によりMTU以下の通信パケットに分割されてシステム分析装置3に送信される。そして、NIC31は、NIC25により分割された通信パケットを結合することで元の通信パケットを再生する。したがって、仮想サーバ11間でMTUより大きい通信パケットが送信されるケースであっても、その通信パケットが中継装置2とシステム分析装置3との間で廃棄されることはない。 The problem described with reference to FIG. 2 can be solved by turning on the segment offload function of the NIC installed between the relay device 2 and the system analysis device 3. That is, when the segment offload function of the NICs 25 and 31 is set to the on state, a communication packet larger than the MTU is divided into communication packets smaller than the MTU by the NIC 25 and transmitted to the system analysis device 3. Then, the NIC 31 reproduces the original communication packet by combining the communication packets divided by the NIC 25. Therefore, even if a communication packet larger than the MTU is transmitted between the virtual servers 11, the communication packet will not be discarded between the relay device 2 and the system analysis device 3.

しかしながら、中継装置2とシステム分析装置3との間に実装されるNICのセグメントオフロード機能をオン状態に設定すると、別の問題が発生することがある。例えば、仮想サーバ11間でパケットロスが発生した場合、仮想サーバ11間で再送が行われる。このとき、MTUより大きい通信パケットのロスが発生した後の再送手順において、再度、パケットロスが発生すると、リカバリするための処理コストが大きくなる。このため、MTUより大きい通信パケットのロスが発生した場合には、その通信パケットは、MTU以下のパケットに分割されて再送されることがある。図3に示す例では、64KBの通信パケットのロスが発生した後、MTU以下の複数の再送パケットP1~Pnが送信されている。 However, when the segment offload function of the NIC installed between the relay device 2 and the system analysis device 3 is set to the on state, another problem may occur. For example, if a packet loss occurs between the virtual servers 11, retransmission is performed between the virtual servers 11. At this time, if a packet loss occurs again in the retransmission procedure after a communication packet loss larger than the MTU occurs, the processing cost for recovery increases. Therefore, if a loss of a communication packet larger than MTU occurs, the communication packet may be divided into packets smaller than MTU and retransmitted. In the example shown in FIG. 3, after a loss of a 64 KB communication packet occurs, a plurality of retransmission packets P1 to Pn of less than MTU are transmitted.

このような再送が行われるケースでは、図3に示すように、複数の再送パケットP1~Pnが中継装置2からシステム分析装置3に転送される。ところが、NIC25、31のセグメントオフロード機能がオン状態に設定されている。よって、NIC31は、それら複数の再送パケットP1~Pnを結合して1つの通信パケットを再生する。すなわち、実際には仮想サーバ11間で複数の再送パケットP1~Pnが送信されたにもかかわらず、分析部32は、1個の通信パケットが送信されたと認識してしまう。この結果、監視精度が低下することになる。 In a case where such retransmission is performed, a plurality of retransmission packets P1 to Pn are transferred from relay device 2 to system analysis device 3, as shown in FIG. However, the segment offload functions of the NICs 25 and 31 are set to the on state. Therefore, the NIC 31 combines the plurality of retransmission packets P1 to Pn and reproduces one communication packet. That is, even though a plurality of retransmission packets P1 to Pn are actually transmitted between the virtual servers 11, the analysis unit 32 recognizes that one communication packet has been transmitted. As a result, monitoring accuracy will be reduced.

このように、中継装置2とシステム分析装置3との間に実装されるNICのセグメントオフロード機能をオン状態に設定すれば、仮想サーバ11間で送信される通信パケットのサイズがMTUより大きくてもその通信パケットを正しく認識できるが、仮想サーバ11間で通信パケットの再送が行われたときは、監視精度が低下することがある。そこで、本発明の実施形態に係わるパケット処理装置は、仮想情報処理システムから受信する通信パケットが、仮想サーバ11間で送信された再送パケットであるか否かを判定する機能を備える。そして、パケット処理装置は、この判定結果に応じて異なるパケット処理を実行する。 In this way, if the segment offload function of the NIC implemented between the relay device 2 and the system analysis device 3 is set to ON, the size of communication packets sent between the virtual servers 11 will be larger than the MTU. However, when the communication packet is retransmitted between the virtual servers 11, the monitoring accuracy may deteriorate. Therefore, the packet processing device according to the embodiment of the present invention has a function of determining whether a communication packet received from the virtual information processing system is a retransmission packet transmitted between the virtual servers 11. The packet processing device then performs different packet processing depending on the determination result.

<実施形態>
図4は、本発明の実施形態に係わる監視システムの一例を示す。この例では、監視システムは、仮想情報処理システム1の動作状態を監視するために、中継装置2Aおよびシステム分析装置3Aを備える。仮想情報処理システム1は、仮想環境下で動作する情報処理システムである。中継装置2Aは、仮想情報処理システム1内で送信される通信パケットを仮想情報処理システム1から受信してシステム分析装置3Aに転送する。システム分析装置3Aは、中継装置2Aから転送されてくる通信パケットを利用して仮想情報処理システム1の動作状態を監視する。
<Embodiment>
FIG. 4 shows an example of a monitoring system according to an embodiment of the present invention. In this example, the monitoring system includes a relay device 2A and a system analysis device 3A in order to monitor the operating state of the virtual information processing system 1. The virtual information processing system 1 is an information processing system that operates under a virtual environment. The relay device 2A receives communication packets transmitted within the virtual information processing system 1 from the virtual information processing system 1, and transfers them to the system analysis device 3A. The system analysis device 3A monitors the operating state of the virtual information processing system 1 using communication packets transferred from the relay device 2A.

仮想情報処理システム1は、図1および図4において実質的に同じである。すなわち、仮想サーバ11(11a、11b)は、仮想NICを介して通信パケットを送信および受信する。仮想NICのセグメントオフロード機能は、オン状態に設定されている。すなわち、仮想サーバ11間でMTUより大きい通信パケットが送信され得る。また、仮想スイッチ12および収集サーバ13は、仮想サーバ11間で送信される通信パケットをコピーして中継装置2Aに送信する。なお、仮想サーバ11間で送信される通信パケットは、カプセルパケットに格納されて、仮想情報処理システム1から中継装置2Aに送信される。 The virtual information processing system 1 is substantially the same in FIGS. 1 and 4. That is, the virtual servers 11 (11a, 11b) transmit and receive communication packets via the virtual NIC. The segment offload function of the virtual NIC is set to the on state. That is, communication packets larger than MTU can be transmitted between virtual servers 11. Further, the virtual switch 12 and the collection server 13 copy communication packets transmitted between the virtual servers 11 and transmit the copy to the relay device 2A. Note that communication packets transmitted between the virtual servers 11 are stored in capsule packets and transmitted from the virtual information processing system 1 to the relay device 2A.

中継装置2Aは、NIC21、パケット受信部22、パケットバッファ23、再送判定部26、転送制御部27、転送部24a、24b、NIC25a、25bを備える。NIC21、パケット受信部22、パケットバッファ23は、図1および図4において実質的に同じである。即ち、パケット受信部22は、仮想情報処理システム1から受信するカプセルパケットから、仮想サーバ11間で送信される通信パケットを抽出する。そして、パケット受信部22は、仮想サーバ11間で送信される通信パケットをパケットバッファ23に保存する。なお、中継装置2は、図4に示していない他の機能を備えていてもよい。 The relay device 2A includes a NIC 21, a packet receiving section 22, a packet buffer 23, a retransmission determining section 26, a transfer control section 27, transfer sections 24a and 24b, and NICs 25a and 25b. The NIC 21, packet receiver 22, and packet buffer 23 are substantially the same in FIGS. 1 and 4. That is, the packet receiving unit 22 extracts communication packets transmitted between the virtual servers 11 from the capsule packets received from the virtual information processing system 1 . Then, the packet receiving unit 22 stores communication packets transmitted between the virtual servers 11 in the packet buffer 23. Note that the relay device 2 may include other functions not shown in FIG. 4.

再送判定部26は、パケットバッファ23に保存された通信パケットが、仮想情報処理システム1内で送信された再送パケットであるか否かを判定する。すなわち、再送判定部26は、パケットバッファ23に保存された通信パケットが、通常パケットであるか再送パケットであるかを判定する。再送パケットは、仮想情報処理システム1内で発生したパケットロスに起因して送信されるパケットである。通常パケットは、仮想情報処理システム1内で送信される、再送パケット以外のパケットである。 The retransmission determination unit 26 determines whether the communication packet stored in the packet buffer 23 is a retransmission packet transmitted within the virtual information processing system 1. That is, the retransmission determination unit 26 determines whether the communication packet stored in the packet buffer 23 is a normal packet or a retransmission packet. A retransmitted packet is a packet that is transmitted due to a packet loss that occurs within the virtual information processing system 1. A normal packet is a packet other than a retransmission packet that is transmitted within the virtual information processing system 1.

なお、この実施例では、再送パケットのサイズは、MTU値以下であるものとする。よって、MTUより大きい通常パケットのロスが発生した場合、その通常パケットに対して複数の再送パケットが送信される。 Note that in this embodiment, it is assumed that the size of the retransmitted packet is less than or equal to the MTU value. Therefore, when a loss of a normal packet larger than MTU occurs, multiple retransmission packets are transmitted for that normal packet.

転送部24a、24bは、転送制御部27から与えられる指示に応じて、パケットバッファ23から通信パケットを読み出す。NIC25a、25bは、それぞれ、転送部24a、24bにより読み出された通信パケットを出力する。ここで、NIC25aのセグメントオフロード機能はオン状態に設定されており、NIC25bのセグメントオフロード機能はオフ状態に設定されている。すなわち、NIC25aは、転送部24aにより読み出された通信パケットのサイズがMTU値より大きいときは、その通信パケットを複数のパケットに分割して出力する。一方、NIC25bは、転送部24bにより読み出された通信パケットのサイズにかかわらず、その通信パケットをそのまま出力する。なお、転送部24aおよびNIC25aは、セグメントオフロード機能がオン状態に設定された第1の出力部の一例である。また、転送部24bおよびNIC25bは、セグメントオフロード機能がオフ状態に設定された第2の出力部の一例である。 The transfer units 24a and 24b read communication packets from the packet buffer 23 in accordance with instructions given from the transfer control unit 27. The NICs 25a and 25b output communication packets read by the transfer units 24a and 24b, respectively. Here, the segment offload function of the NIC 25a is set to the on state, and the segment offload function of the NIC 25b is set to the off state. That is, when the size of the communication packet read by the transfer unit 24a is larger than the MTU value, the NIC 25a divides the communication packet into a plurality of packets and outputs the divided packets. On the other hand, the NIC 25b outputs the communication packet as it is, regardless of the size of the communication packet read by the transfer unit 24b. Note that the transfer unit 24a and the NIC 25a are examples of a first output unit in which the segment offload function is set to an on state. Further, the transfer unit 24b and the NIC 25b are an example of a second output unit in which the segment offload function is set to an off state.

転送制御部27は、再送判定部26による判定結果に応じて転送部24a、24bに指示を与える。具体的には、パケットバッファ23に保存された通信パケットが再送パケットでないとき(即ち、パケットバッファ23に保存された通信パケットが通常パケットであるとき)は、転送制御部27は、その通信パケットを出力することを表す指示を転送部24aに与える。この場合、転送部24aはその通信パケットを読み出し、NIC25aはその通信パケットを出力する。一方、パケットバッファ23に保存された通信パケットが再送パケットであるきは、転送制御部27は、その通信パケットを出力することを表す指示を転送部24bに与える。この場合、転送部24bはその通信パケットを読み出し、NIC25bはその通信パケットを出力する。 The transfer control section 27 gives instructions to the transfer sections 24a and 24b according to the determination result by the retransmission determination section 26. Specifically, when the communication packet stored in the packet buffer 23 is not a retransmission packet (that is, when the communication packet stored in the packet buffer 23 is a normal packet), the transfer control unit 27 transmits the communication packet. An instruction to output is given to the transfer unit 24a. In this case, the transfer unit 24a reads the communication packet, and the NIC 25a outputs the communication packet. On the other hand, when the communication packet stored in the packet buffer 23 is a retransmission packet, the transfer control unit 27 gives an instruction to the transfer unit 24b to output the communication packet. In this case, the transfer unit 24b reads the communication packet, and the NIC 25b outputs the communication packet.

システム分析部3Aは、NIC31a、31b、および分析部32を備える。ここで、NIC31aのセグメントオフロード機能はオン状態に設定されており、NIC31bのセグメントオフロード機能はオフ状態に設定されている。 The system analysis section 3A includes NICs 31a and 31b and an analysis section 32. Here, the segment offload function of the NIC 31a is set to the on state, and the segment offload function of the NIC 31b is set to the off state.

NIC31aは、NIC25aから出力される通信パケットを受信する。すなわち、NIC31aは、通常パケットを受信する。ここで、NIC31aのセグメントオフロード機能はオン状態に設定されている。よって、NIC25aにおいてセグメントオフロード機能によりパケットが分割されたときは、NIC31aは、複数のパケットから元の通信パケットを再生する。 The NIC 31a receives communication packets output from the NIC 25a. That is, the NIC 31a receives normal packets. Here, the segment offload function of the NIC 31a is set to the on state. Therefore, when a packet is divided by the segment offload function in the NIC 25a, the NIC 31a reproduces the original communication packet from the plurality of packets.

NIC31bは、NIC25bから出力される通信パケットを受信する。すなわち、NIC31bは、再送パケットを受信する。ここで、NIC31bのセグメントオフロード機能はオフ状態に設定されている。したがって、NIC25aは、同じTCPセッション内の複数の再送パケットを受信したときに、それら複数の再送パケットを結合することはない。すなわち、複数の再送パケットは、結合されることなく、そのまま分析部32に導かれる。 The NIC 31b receives communication packets output from the NIC 25b. That is, the NIC 31b receives the retransmission packet. Here, the segment offload function of the NIC 31b is set to an off state. Therefore, when the NIC 25a receives multiple retransmitted packets within the same TCP session, it does not combine the multiple retransmitted packets. That is, the plurality of retransmitted packets are directly guided to the analysis section 32 without being combined.

分析部32は、中継装置2Aから受信する通信パケットを分析する。ここで、システム分析装置3Aが受信する通信パケットは、仮想サーバ11間で送信される通信パケットである。よって、分析部32は、この通信パケットを分析することにより、仮想情報処理システム1を監視できる。このとき、分析部32は、例えば、仮想情報処理システム1のパケット数、パケット損失率、応答時間、スループットなどを監視する。 The analysis unit 32 analyzes communication packets received from the relay device 2A. Here, the communication packet received by the system analysis device 3A is a communication packet transmitted between the virtual servers 11. Therefore, the analysis unit 32 can monitor the virtual information processing system 1 by analyzing this communication packet. At this time, the analysis unit 32 monitors, for example, the number of packets, packet loss rate, response time, throughput, etc. of the virtual information processing system 1.

図5は、仮想サーバ11間で通常パケットが送信されたときの中継装置2Aの動作の一例を示す。この場合、仮想サーバ11間で送信される通常パケットは、パケットバッファ23に保存される。再送判定部26は、パケットバッファ23に保存された通信パケットが通常パケットであると判定すると、転送部24aに対して送信指示を与える。そうすると、転送部24aは、送信指示に従ってパケットバッファ23から通常パケットを読み出す。そして、NIC25aは、この通常パケットをシステム分析装置3Aに送信する。ここで、NIC25aのセグメントオフロード機能がオン状態に設定されている。よって、通常パケットのサイズがMTU値より大きいときは、NIC25aは、この通常パケットをMTU以下のパケットに分割してシステム分析装置3Aに送信する。 FIG. 5 shows an example of the operation of the relay device 2A when a normal packet is transmitted between the virtual servers 11. In this case, normal packets transmitted between the virtual servers 11 are stored in the packet buffer 23. When the retransmission determination section 26 determines that the communication packet stored in the packet buffer 23 is a normal packet, it gives a transmission instruction to the transfer section 24a. Then, the transfer unit 24a reads the normal packet from the packet buffer 23 according to the transmission instruction. Then, the NIC 25a transmits this normal packet to the system analysis device 3A. Here, the segment offload function of the NIC 25a is set to the on state. Therefore, when the size of the normal packet is larger than the MTU value, the NIC 25a divides the normal packet into packets smaller than the MTU and transmits them to the system analysis device 3A.

このように、仮想サーバ11間で通常パケットが送信されたときは、その通常パケットは、セグメントオフロード機能がオン状態に設定されているNICを介して中継装置2Aからシステム分析装置3Aに転送される。したがって、通常パケットのサイズがMTU値より大きい場合であっても、中継装置2Aからシステム分析装置3Aへの転送において、その通常パケットが廃棄されることはない。 In this way, when a normal packet is sent between the virtual servers 11, the normal packet is transferred from the relay device 2A to the system analysis device 3A via the NIC in which the segment offload function is set to the on state. Ru. Therefore, even if the size of a normal packet is larger than the MTU value, the normal packet will not be discarded during transfer from the relay device 2A to the system analysis device 3A.

図6は、仮想サーバ11間で再送パケットが送信されたときの中継装置2Aの動作の一例を示す。この実施例では、仮想情報処理システム1において、通常パケットのロスに起因して、複数の再送パケットP1~Pnが送信されるものとする。また、各再送パケットP1~Pnのサイズは、MTU値以下である。 FIG. 6 shows an example of the operation of the relay device 2A when a retransmission packet is transmitted between the virtual servers 11. In this embodiment, it is assumed that in the virtual information processing system 1, a plurality of retransmission packets P1 to Pn are transmitted due to a loss of a normal packet. Furthermore, the size of each retransmission packet P1 to Pn is less than or equal to the MTU value.

この場合、仮想サーバ11間で送信される再送パケットP1~Pnは、パケットバッファ23に保存される。再送判定部26は、パケットバッファ23に保存された通信パケットが再送パケットであると判定すると、転送部24bに対して送信指示を与える。そうすると、転送部24bは、送信指示に従ってパケットバッファ23から再送パケットP1~Pnを順番に読み出す。そして、NIC25aは、再送パケットP1~Pnをシステム分析装置3Aに送信する。 In this case, retransmission packets P1 to Pn transmitted between virtual servers 11 are stored in packet buffer 23. When the retransmission determination unit 26 determines that the communication packet stored in the packet buffer 23 is a retransmission packet, it gives a transmission instruction to the transfer unit 24b. Then, the transfer unit 24b sequentially reads retransmission packets P1 to Pn from the packet buffer 23 according to the transmission instruction. Then, the NIC 25a transmits the retransmission packets P1 to Pn to the system analysis device 3A.

このように、仮想サーバ11間で再送パケットP1~Pnが送信されたときは、再送パケットP1~Pnは、セグメントオフロード機能がオフ状態に設定されているNICを介して中継装置2Aからシステム分析装置3Aに転送される。したがって、システム分析装置3Aに実装されるNICにおいて再送パケットP1~Pnが結合されることはなく、仮想情報処理システム1内での通信パケットの挙動が正しく再現される。 In this way, when the retransmitted packets P1 to Pn are transmitted between the virtual servers 11, the retransmitted packets P1 to Pn are transmitted from the relay device 2A to the system analysis via the NIC whose segment offload function is set to the off state. The data is transferred to device 3A. Therefore, the retransmission packets P1 to Pn are not combined in the NIC installed in the system analysis device 3A, and the behavior of communication packets within the virtual information processing system 1 is correctly reproduced.

図7は、中継装置2Aのハードウェア構成の一例を示す。中継装置2Aは、ハードディスク41、メモリ42、CPU43、およびNIC25a、25bを備える。なお、中継装置2Aは、図7に示していない回路またはデバイスを備えてもよい。 FIG. 7 shows an example of the hardware configuration of the relay device 2A. The relay device 2A includes a hard disk 41, a memory 42, a CPU 43, and NICs 25a and 25b. Note that the relay device 2A may include circuits or devices not shown in FIG. 7.

ハードディスク41には、OS(operating system)プログラムおよび中継プログラムが保存されている。中継プログラムは、パケット受信プログラム、再送判定プログラム、転送制御プログラム、および転送プログラムを含む。パケット受信プログラム、再送判定プログラム、転送制御プログラム、および転送プログラムは、それぞれ、パケット受信部22、再送判定部26、転送制御部27、および転送部24a、24bの処理を記述する。 The hard disk 41 stores an OS (operating system) program and a relay program. The relay program includes a packet reception program, a retransmission determination program, a transfer control program, and a transfer program. The packet reception program, retransmission determination program, transfer control program, and transfer program describe the processing of the packet reception unit 22, retransmission determination unit 26, transfer control unit 27, and transfer units 24a and 24b, respectively.

メモリ42は、例えば、半導体メモリであり、作業領域42aおよびパケットバッファ42bを実現する。作業領域42aは、CPU43の作業領域として使用される。したがって、OSプログラムおよび中継プログラムは、作業領域42aにロードされて実行される。パケットバッファ42bは、図4~図6に示すパケットバッファ23に相当する。 The memory 42 is, for example, a semiconductor memory, and implements a work area 42a and a packet buffer 42b. The work area 42a is used as a work area for the CPU 43. Therefore, the OS program and the relay program are loaded into the work area 42a and executed. The packet buffer 42b corresponds to the packet buffer 23 shown in FIGS. 4 to 6.

CPU43は、中継プログラムを実行することにより、図5~図6に示すパケット処理を実行する。このとき、CPU43がパケット受信プログラム、再送判定プログラム、転送制御プログラム、および転送プログラムを実行することにより、パケット受信部22、再送判定部26、転送制御部27、および転送部24a、24bの機能が提供される。すなわち、中継装置2Aは、仮想情報処理システム1から受信するパケットをシステム分析装置3Aに転送するパケット処理装置として動作する。なお、CPU43は、複数のプロセッサを備えるマルチプロセッサシステムであってもよい。 The CPU 43 executes the packet processing shown in FIGS. 5 and 6 by executing the relay program. At this time, the CPU 43 executes the packet reception program, the retransmission determination program, the transfer control program, and the transfer program, so that the functions of the packet reception section 22, retransmission determination section 26, transfer control section 27, and transfer sections 24a and 24b are provided. That is, the relay device 2A operates as a packet processing device that transfers packets received from the virtual information processing system 1 to the system analysis device 3A. Note that the CPU 43 may be a multiprocessor system including a plurality of processors.

図8は、パケットロスに起因する再送手順の例を示す。この実施例では、時刻T1において仮想サーバ11aから仮想サーバ11bにSYNパケットが送信される。SYNパケットのヘッダは、宛先IPアドレス、宛先ポート番号、送信元IPアドレス、宛先ポート番号、TCPシーケンス番号を含む。そして、仮想サーバ11bから仮想サーバ11aに不図示のACNパケットが返送される。この手順により、仮想サーバ11aから仮想サーバ11bに通信パケットを送信するためのセッション(または、コネクション)が確立される。 FIG. 8 shows an example of a retransmission procedure due to packet loss. In this embodiment, a SYN packet is transmitted from the virtual server 11a to the virtual server 11b at time T1. The header of the SYN packet includes a destination IP address, a destination port number, a source IP address, a destination port number, and a TCP sequence number. Then, an ACN packet (not shown) is sent back from the virtual server 11b to the virtual server 11a. Through this procedure, a session (or connection) for transmitting communication packets from the virtual server 11a to the virtual server 11b is established.

この後、時刻T2において仮想サーバ11aから仮想サーバ11bに通信パケット(すなわち、通常パケット)が送信される。通常パケットのヘッダに設定される宛先IPアドレス、宛先ポート番号、送信元IPアドレス、宛先ポート番号は、SYNパケットと同じである。ただし、通常パケットのTCPシーケンス番号は、SYNパケットとは異なる。また、この通常パケットのサイズは、MTU値より大きいものとする。そして、仮想サーバ11bは、通信パケットを受信したときは、不図示のACKパケットを返送する。すなわち、仮想サーバ11bは、仮想サーバ11aから通信パケットを受信したときは、仮想サーバ11aにACKパケットを送信する。 Thereafter, at time T2, a communication packet (that is, a normal packet) is transmitted from the virtual server 11a to the virtual server 11b. The destination IP address, destination port number, source IP address, and destination port number set in the header of the normal packet are the same as those of the SYN packet. However, the TCP sequence number of a normal packet is different from that of a SYN packet. Further, it is assumed that the size of this normal packet is larger than the MTU value. When the virtual server 11b receives the communication packet, it returns an ACK packet (not shown). That is, when the virtual server 11b receives a communication packet from the virtual server 11a, it transmits an ACK packet to the virtual server 11a.

ただし、図8に示す例では、パケットロスが発生し、仮想サーバ11bは、仮想サーバ11aから送信される通常パケットを受信しない。この場合、仮想サーバ11bは、仮想サーバ11aにACKパケットを送信しない。すなわち、仮想サーバ11aは、時刻T2に送信した通常パケットに対応するACKパケットを受信できない。そして、時刻T2から所定のタイムアウト時間が経過すると、仮想サーバ11aは、再送手順を開始する。 However, in the example shown in FIG. 8, a packet loss occurs and the virtual server 11b does not receive the normal packet transmitted from the virtual server 11a. In this case, the virtual server 11b does not transmit an ACK packet to the virtual server 11a. That is, the virtual server 11a cannot receive the ACK packet corresponding to the normal packet transmitted at time T2. Then, when a predetermined timeout period has elapsed from time T2, the virtual server 11a starts a retransmission procedure.

再送手順において、仮想サーバ11aは、先に送信した通常パケットの代わりに、再送パケットP1~Pnを送信する。各再送パケットP1~Pnのサイズは、MTU値以下である。各再送パケットP1~Pnは、所定の時間間隔ΔTまたはΔTより短い時間間隔で1つずつ順番に送信される。各再送パケットP1~Pnのヘッダに格納される宛先IPアドレス、宛先ポート番号、送信元IPアドレス、宛先ポート番号は、先に送信された通常パケットと同じである。また、再送パケットP1~Pnのうちで最初に送信されるパケット(即ち、再送パケットP1)のTCPシーケンス番号は、先に送信された通常パケットのTCPシーケンス番号と同じであるものとする。さらに、再送パケットP2~PnのTCPシーケンス番号は、再送パケットP1のTCPシーケンス番号から一意に計算されるものとする。 In the retransmission procedure, the virtual server 11a transmits retransmission packets P1 to Pn instead of the previously transmitted normal packet. The size of each retransmission packet P1 to Pn is less than or equal to the MTU value. Each of the retransmission packets P1 to Pn is sequentially transmitted one by one at a predetermined time interval ΔT or at a time interval shorter than ΔT. The destination IP address, destination port number, source IP address, and destination port number stored in the header of each retransmission packet P1 to Pn are the same as those of the previously transmitted normal packet. Furthermore, it is assumed that the TCP sequence number of the first transmitted packet (ie, retransmitted packet P1) among the retransmitted packets P1 to Pn is the same as the TCP sequence number of the previously transmitted normal packet. Furthermore, it is assumed that the TCP sequence numbers of retransmission packets P2 to Pn are uniquely calculated from the TCP sequence number of retransmission packet P1.

上述の送信/再送手順において、仮想スイッチ12は、仮想サーバ11aから受信するパケットをコピーする。そして、仮想情報処理システム1(具体的には、収集サーバ13またはNIC14)は、このパケットを中継装置2Aに送信する。このとき、収集サーバ13またはNIC14は、中継装置2Aに送信する通信パケットに送信時刻情報を付与する。ただし、仮想サーバ11aが通信パケットを送信するときにその通信パケットに送信時刻情報を付与するときは、収集サーバ13またはNIC14は、中継装置2Aに送信する通信パケットに送信時刻情報を付与する必要はない。いずれにしても、中継装置2Aが受信する通信パケットには、その通信パケットの送信時刻を表す送信時刻情報が付与されている。 In the above transmission/retransmission procedure, the virtual switch 12 copies packets received from the virtual server 11a. Then, the virtual information processing system 1 (specifically, the collection server 13 or NIC 14) transmits this packet to the relay device 2A. At this time, the collection server 13 or NIC 14 adds transmission time information to the communication packet to be transmitted to the relay device 2A. However, when the virtual server 11a sends a communication packet and adds sending time information to the communication packet, the collection server 13 or NIC 14 does not need to add sending time information to the communication packet sent to the relay device 2A. do not have. In any case, the communication packet received by the relay device 2A is given transmission time information indicating the transmission time of the communication packet.

図9は、仮想情報処理システム1から中継装置2Aに送信されるカプセルパケットの一例を示す。この実施例では、仮想サーバ11間で送信される通信パケットは、図9に示すように、カプセルパケットのペイロードに格納される。このとき、このカプセルパケットのペイロードには、送信時刻情報も格納される。送信時刻情報は、仮想サーバ11間で送信された通信パケットがカプセルパケットに格納された時刻を表す。ただし、仮想サーバ11間で通信パケットが送信された直後に、その通信パケットがカプセルパケットに格納される。したがって、送信時刻情報は、実質的に、仮想サーバ11間で通信パケットが送信された時刻を表す。 FIG. 9 shows an example of a capsule packet transmitted from the virtual information processing system 1 to the relay device 2A. In this embodiment, communication packets transmitted between virtual servers 11 are stored in the payload of a capsule packet, as shown in FIG. At this time, transmission time information is also stored in the payload of this capsule packet. The transmission time information represents the time when a communication packet transmitted between the virtual servers 11 was stored in a capsule packet. However, immediately after a communication packet is transmitted between virtual servers 11, the communication packet is stored in a capsule packet. Therefore, the transmission time information substantially represents the time at which the communication packet was transmitted between the virtual servers 11.

なお、仮想サーバ11間で送信された通信パケットのサイズによっては、その通信パケットは複数のパケット部分に分割され、複数のカプセルパケットを利用して中継装置2Aに送信される。この場合、中継装置2Aは、複数のパケット部分を結合することにより、元の通信パケットを再生できる。 Note that depending on the size of the communication packet transmitted between the virtual servers 11, the communication packet is divided into a plurality of packet parts and transmitted to the relay device 2A using a plurality of capsule packets. In this case, the relay device 2A can reproduce the original communication packet by combining the plurality of packet parts.

中継装置2Aは、仮想情報処理システム1から受信する1または複数のカプセルパケットから、仮想サーバ11間で送信された通信パケットを抽出する。抽出された通信パケットは、パケットバッファ23に保存される。また、中継装置2Aは、TCPセッション毎に通信パケットを管理する。TCPセッションは、この実施例では、宛先IPアドレス、宛先ポート番号、送信元IPアドレス、宛先ポート番号の組合せにより識別される。 The relay device 2A extracts communication packets transmitted between the virtual servers 11 from one or more capsule packets received from the virtual information processing system 1. The extracted communication packets are stored in the packet buffer 23. Further, the relay device 2A manages communication packets for each TCP session. A TCP session is identified in this example by a combination of destination IP address, destination port number, source IP address, and destination port number.

図10(a)は、パケットバッファ23の一例を示す。パケットバッファ23には、仮想サーバ11間で送信された通信パケットが保存される。なお、通信パケットに関連づけて、仮想情報処理システム1において通信パケットに付与される送信時刻情報もパケットバッファ23に保存される。 FIG. 10(a) shows an example of the packet buffer 23. The packet buffer 23 stores communication packets transmitted between the virtual servers 11. Note that transmission time information given to the communication packet in the virtual information processing system 1 is also stored in the packet buffer 23 in association with the communication packet.

図10(b)は、TCPセッション毎に通信パケットを管理するセッション管理テーブルの一例を示す。セッション管理テーブルは、TCPセッション毎に、通信パケットのシーケンス番号および送信時刻情報を管理する。なお、セッション管理テーブルには、TCPセッション毎に、最新の通信パケットのシーケンス番号および送信時刻情報が記録される。 FIG. 10(b) shows an example of a session management table that manages communication packets for each TCP session. The session management table manages sequence numbers and transmission time information of communication packets for each TCP session. Note that the sequence number and transmission time information of the latest communication packet are recorded in the session management table for each TCP session.

図10(c)は、パラメータテーブルの一例を示す。パラメータテーブルには、MTU値、タイムアウト時間、連続送信間隔が記録される。MTU値は、最大送信サイズの一例であり、予め決められている。タイムアウト時間は、仮想情報処理システム1内で発生するパケットロスを検出するために使用される。例えば、仮想サーバ11は、相手装置に通信パケットを送信したときからタイムアウト時間内に対応するACKパケットを受信できなければ、パケットロスが発生したと判定する。この場合、仮想サーバ11は、再送手順を実行する。連続送信間隔は、再送手順において複数の再送パケットを順番に送信する間隔を表す。図8に示す例では、連続送信間隔は、ΔTで表記されている。 FIG. 10(c) shows an example of a parameter table. The MTU value, timeout time, and continuous transmission interval are recorded in the parameter table. The MTU value is an example of the maximum transmission size and is predetermined. The timeout period is used to detect packet loss occurring within the virtual information processing system 1. For example, if the virtual server 11 cannot receive a corresponding ACK packet within a timeout period from the time when the communication packet was sent to the partner device, it determines that a packet loss has occurred. In this case, the virtual server 11 executes a retransmission procedure. The continuous transmission interval represents the interval at which multiple retransmission packets are sequentially transmitted in the retransmission procedure. In the example shown in FIG. 8, the continuous transmission interval is expressed as ΔT.

図11は、パケット受信部22の処理の一例を示すフローチャートである。なお、パケット受信部22は、S1において、仮想情報処理システム1との間のTCP通信のためのソケットを生成する。この後、仮想情報処理システム1からパケット受信部22にTCPプロトコルパケットが到着するごとに、S2~S5の処理が実行される。 FIG. 11 is a flowchart illustrating an example of processing by the packet receiving unit 22. Note that the packet receiving unit 22 generates a socket for TCP communication with the virtual information processing system 1 in S1. Thereafter, each time a TCP protocol packet arrives at the packet receiving unit 22 from the virtual information processing system 1, the processes of S2 to S5 are executed.

S2において、パケット受信部22は、仮想情報処理システム1からTCPプロトコルパケットを受信する。この実施例では、パケット受信部22は、仮想情報処理システム1からカプセルパケットを受信する。カプセルパケットは、図9に示すように、仮想サーバ11間で送信される通信パケットおよび送信時刻情報を含む。 In S2, the packet receiving unit 22 receives a TCP protocol packet from the virtual information processing system 1. In this embodiment, the packet receiving unit 22 receives capsule packets from the virtual information processing system 1. As shown in FIG. 9, the capsule packet includes a communication packet transmitted between the virtual servers 11 and transmission time information.

S3において、パケット受信部22は、受信したカプセルパケットから通信パケットを抽出する。S4において、パケット受信部22は、受信したカプセルパケットから送信時刻情報を抽出する。S5において、パケット受信部22は、図10(a)に示すように、受信したカプセルパケットから抽出した通信パケットおよび送信時刻情報をパケットバッファ23に保存する。 In S3, the packet receiving unit 22 extracts a communication packet from the received capsule packet. In S4, the packet receiving unit 22 extracts transmission time information from the received capsule packet. In S5, the packet receiving unit 22 stores the communication packet and transmission time information extracted from the received capsule packet in the packet buffer 23, as shown in FIG. 10(a).

図12は、再送判定部26の処理の一例を示すフローチャートである。このフローチャートの処理は、パケット受信部22によりパケットバッファ23に通信パケットが保存されたときに実行される。 FIG. 12 is a flowchart illustrating an example of processing by the retransmission determination unit 26. The processing in this flowchart is executed when the packet receiving unit 22 stores a communication packet in the packet buffer 23.

S11において、再送判定部26は、パケットバッファ23に保存されている通信パケットを参照する。S12において、再送判定部26は、通信パケットのヘッダに設定されている宛先IPアドレス、宛先ポート番号、送信元IPアドレス、宛先ポート番号に基づいて、TCPセッション(又は、TCPコネクション)を識別する。S13において、再送判定部26は、通信パケットのヘッダに設定されているTCPシーケンス番号を抽出する。この後、再送判定部26は、S12で識別したTCPセッションに対してS14~S21の処理を実行する。以下の記載では、図12に示すフローチャートにおいて処理される通信パケットを「対象通信パケット」と呼ぶことがある。 In S11, the retransmission determination unit 26 refers to the communication packet stored in the packet buffer 23. In S12, the retransmission determination unit 26 identifies the TCP session (or TCP connection) based on the destination IP address, destination port number, source IP address, and destination port number set in the header of the communication packet. In S13, the retransmission determination unit 26 extracts the TCP sequence number set in the header of the communication packet. Thereafter, the retransmission determination unit 26 executes the processes of S14 to S21 for the TCP session identified in S12. In the following description, the communication packets processed in the flowchart shown in FIG. 12 may be referred to as "target communication packets."

S14において、再送判定部26は、S13で抽出したTCPシーケンス番号に基づいて、対象通信パケットが再送パケットであるか否かを判定する。例えば、仮想情報処理システム1においてパケットロスに起因して再送手順が実行され、1または複数の再送パケットが送信されるときに、最初の再送パケットのTCPシーケンス番号は、元の通信パケットのTCPシーケンス番号と同じであるものとする。この場合、S13で抽出したTCPシーケンス番号が、先に受信した通信パケットのTCPシーケンス番号と同じであるときは、再送判定部26は、対象通信パケットが再送パケットであると判定する。なお、対象通信パケットの直前に受信した通信パケットのTCPシーケンス番号は、セッション管理テーブルに記録されている。 In S14, the retransmission determination unit 26 determines whether the target communication packet is a retransmission packet based on the TCP sequence number extracted in S13. For example, when a retransmission procedure is executed due to a packet loss in the virtual information processing system 1 and one or more retransmission packets are transmitted, the TCP sequence number of the first retransmission packet is the TCP sequence number of the original communication packet. shall be the same as the number. In this case, if the TCP sequence number extracted in S13 is the same as the TCP sequence number of the previously received communication packet, the retransmission determination unit 26 determines that the target communication packet is a retransmission packet. Note that the TCP sequence number of the communication packet received immediately before the target communication packet is recorded in the session management table.

対象通信パケットが再送パケットであると判定されたときは(S14:Yes)、再送判定部26は、S20において、再送パケット通知を生成する。再送パケット通知は、対象通信パケットが再送パケットであることを表す。一方、対象通信パケットが再送パケットであると判定されなかったときは(S14:No)、再送判定部26の処理はS15に進む。 When it is determined that the target communication packet is a retransmission packet (S14: Yes), the retransmission determination unit 26 generates a retransmission packet notification in S20. The retransmission packet notification indicates that the target communication packet is a retransmission packet. On the other hand, when it is determined that the target communication packet is not a retransmission packet (S14: No), the process of the retransmission determination unit 26 proceeds to S15.

S15において、再送判定部26は、対象通信パケットの送信間隔を算出する。具体的には、対象通信パケットの送信時刻と、対象通信パケットの直前に受信した通信パケットの送信時刻との差分を算出する。なお、対象通信パケットの送信時刻を表す情報は、図10(a)に示すように、パケットバッファ23に保存されている。また、対象通信パケットの直前に受信した通信パケットの送信時刻を表す情報は、図10(b)に示すように、セッション管理テーブルに記録されている。 In S15, the retransmission determination unit 26 calculates the transmission interval of the target communication packet. Specifically, the difference between the transmission time of the target communication packet and the transmission time of the communication packet received immediately before the target communication packet is calculated. Note that information representing the transmission time of the target communication packet is stored in the packet buffer 23, as shown in FIG. 10(a). Furthermore, information representing the transmission time of the communication packet received immediately before the target communication packet is recorded in the session management table, as shown in FIG. 10(b).

S16において、再送判定部26は、セッション管理テーブルを更新する。このとき、セッション管理テーブルは、対象通信パケットのTCPセッションに対応するレコードにおいて、TCPシーケンス番号および送信時刻情報が、対象通信パケットのTCPシーケンス番号および送信時刻情報に書き換えられる。すなわち、セッション管理テーブルは、最新の通信パケットを管理する。 In S16, the retransmission determination unit 26 updates the session management table. At this time, in the session management table, the TCP sequence number and transmission time information in the record corresponding to the TCP session of the target communication packet are rewritten to the TCP sequence number and transmission time information of the target communication packet. That is, the session management table manages the latest communication packets.

S17において、再送判定部26は、対象通信パケットの送信間隔がタイムアウト時間以上であるか否かを判定する。タイムアウト時間は、仮想情報処理システム1においてパケットロスを検知するために使用され、図10(c)に示すパラメータテーブルに登録されている。そして、対象通信パケットの送信間隔がタイムアウト時間以上であれば、再送判定部26の処理はS19に進む。 In S17, the retransmission determination unit 26 determines whether the transmission interval of the target communication packet is equal to or longer than the timeout period. The timeout period is used to detect packet loss in the virtual information processing system 1, and is registered in the parameter table shown in FIG. 10(c). If the transmission interval of the target communication packet is equal to or longer than the timeout time, the process of the retransmission determination unit 26 proceeds to S19.

S19において、再送判定部26は、対象通信パケットのサイズとMTU値とを比較する。MTU値は、図10(c)に示すパラメータテーブルに登録されている。そして、対象通信パケットのサイズがMTU値以下であるときは、再送判定部26の処理はS20に進む。すなわち、対象通信パケットの送信間隔がタイムアウト時間以上であり、且つ、対象通信パケットのサイズがMTU値以下であるときは、再送判定部26は、S20において、再送パケット通知を生成する。 In S19, the retransmission determination unit 26 compares the size of the target communication packet and the MTU value. The MTU value is registered in the parameter table shown in FIG. 10(c). Then, when the size of the target communication packet is less than or equal to the MTU value, the process of the retransmission determination unit 26 proceeds to S20. That is, when the transmission interval of the target communication packet is longer than the timeout time and the size of the target communication packet is lower than or equal to the MTU value, the retransmission determination unit 26 generates a retransmission packet notification in S20.

対象通信パケットの送信間隔がタイムアウト時間より短いときは、再送判定部26は、S18において、対象通信パケットの送信間隔と予め決められた連続送信間隔とを比較する。なお、仮想情報処理システム1の再送手順において複数の再送パケットが送信される場合は、再送パケットは、予め指定された連続送信間隔以下の間隔で送信されるものとする。よって、対象通信パケットの送信間隔が連続送信間隔以下であれば、再送判定部26の処理はS19に進む。すなわち、対象通信パケットの送信間隔が連続送信間隔以下であり、且つ、対象通信パケットのサイズがMTU値以下であるときは、再送判定部26は、S20において、再送パケット通知を生成する。 When the transmission interval of the target communication packet is shorter than the timeout time, the retransmission determination unit 26 compares the transmission interval of the target communication packet with a predetermined continuous transmission interval in S18. Note that when a plurality of retransmission packets are transmitted in the retransmission procedure of the virtual information processing system 1, the retransmission packets are transmitted at intervals equal to or less than a predetermined continuous transmission interval. Therefore, if the transmission interval of the target communication packet is equal to or less than the continuous transmission interval, the process of the retransmission determination unit 26 proceeds to S19. That is, when the transmission interval of the target communication packet is equal to or less than the continuous transmission interval and the size of the target communication packet is equal to or less than the MTU value, the retransmission determination unit 26 generates a retransmission packet notification in S20.

一方、対象通信パケットの送信間隔がタイムオーバ時間より短く、且つ、連続送信間隔より長いときは(S17およびS18:No)、再送判定部26の処理はS21に進む。また、対象通信パケットのサイズがMTU値より大きいときも(S19:No)、再送判定部26の処理はS21に進む。S21において、再送判定部26は、通常パケット通知を生成する。通常パケット通知は、対象通信パケットが通常パケットであることを表す。 On the other hand, when the transmission interval of the target communication packet is shorter than the time-over time and longer than the continuous transmission interval (S17 and S18: No), the process of the retransmission determination unit 26 proceeds to S21. Also, when the size of the target communication packet is larger than the MTU value (S19: No), the process of the retransmission determination unit 26 proceeds to S21. In S21, the retransmission determination unit 26 generates a normal packet notification. The normal packet notification indicates that the target communication packet is a normal packet.

このように、再送判定部26は、対象通信パケットの送信間隔およびパケットサイズに基づいて、対象パケットが通常パケットであるか再送パケットであるかを判定する。そして、再送判定部26は、その判定結果に応じて、通常パケット通知または再送パケット通知を生成する。 In this manner, the retransmission determination unit 26 determines whether the target packet is a normal packet or a retransmission packet based on the transmission interval and packet size of the target communication packet. Then, the retransmission determination unit 26 generates a normal packet notification or a retransmission packet notification according to the determination result.

図13は、転送制御部27の処理の一例を示すフローチャートである。転送制御部27は、再送判定部26の判定結果に応じて、転送部24aまたは転送部24bを起動する。 FIG. 13 is a flowchart illustrating an example of processing by the transfer control unit 27. The transfer control section 27 activates the transfer section 24a or the transfer section 24b according to the determination result of the retransmission determination section 26.

S31~S32において、転送制御部27は、再送判定部26の判定結果を表す通知を受信する。すなわち、転送制御部27は、S20において生成される再送パケット通知またはS21において生成される通常パケット通知を受信する。 In S31 and S32, the transfer control unit 27 receives a notification representing the determination result of the retransmission determination unit 26. That is, the transfer control unit 27 receives the retransmission packet notification generated in S20 or the normal packet notification generated in S21.

通常パケット通知を受信したときは、転送制御部27は、S33において、セグメントオフロード機能がオン状態に設定されたNICに対応する転送部に送信指示を与える。この実施例では、NIC25aのセグメントオフロード機能がオン状態に設定されている。よって、通常パケット通知を受信したときは、転送制御部27は、転送部24aに送信指示を与える。なお、送信指示は、対象通信パケット(ここでは、通常パケット)が保存されたアドレスを含む。 When receiving the normal packet notification, the transfer control unit 27 in S33 gives a transmission instruction to the transfer unit corresponding to the NIC whose segment offload function is set to the ON state. In this embodiment, the segment offload function of the NIC 25a is set to the on state. Therefore, when receiving a normal packet notification, the transfer control section 27 gives a transmission instruction to the transfer section 24a. Note that the transmission instruction includes the address where the target communication packet (here, the normal packet) is stored.

再送パケット通知を受信したときは、転送制御部27は、S34において、セグメントオフロード機能がオフ状態に設定されたNICに対応する転送部に送信指示を与える。この実施例では、NIC25bのセグメントオフロード機能がオフ状態に設定されている。よって、再送パケット通知を受信したときは、転送制御部27は、転送部24bに送信指示を与える。なお、送信指示は、対象通信パケット(ここでは、再送パケット)が保存されたアドレスを含む。 When receiving the retransmission packet notification, in S34, the transfer control unit 27 gives a transmission instruction to the transfer unit corresponding to the NIC whose segment offload function is set to the off state. In this embodiment, the segment offload function of the NIC 25b is set to an off state. Therefore, when receiving the retransmission packet notification, the transfer control section 27 gives a transmission instruction to the transfer section 24b. Note that the transmission instruction includes the address where the target communication packet (here, the retransmission packet) is stored.

図14は、転送部24の処理の一例を示すフローチャートである。なお、図14に示すフローチャートの説明において、転送部24は、転送部24aまたは転送部24bの総称である。 FIG. 14 is a flowchart illustrating an example of processing by the transfer unit 24. Note that in the explanation of the flowchart shown in FIG. 14, the transfer unit 24 is a general term for the transfer unit 24a or the transfer unit 24b.

S41において、転送部24は、転送制御部27から送信指示を受信する。S42において、転送部24は、送信指示に従って、パケットバッファ23から通信パケットを取得する。送信指示は、上述したように、通信パケットが保存されているアドレスを含む。S43において、転送部24は、S42で取得した通信パケットをNICにストリーム出力する。すなわち、パケットバッファ23から読み出された通信パケットは、そのままNICを介して出力される。 In S41, the transfer unit 24 receives a transmission instruction from the transfer control unit 27. In S42, the transfer unit 24 obtains a communication packet from the packet buffer 23 according to the transmission instruction. The transmission instruction includes the address where the communication packet is stored, as described above. In S43, the transfer unit 24 outputs the communication packet obtained in S42 as a stream to the NIC. That is, the communication packet read from the packet buffer 23 is output as is via the NIC.

ここで、図8に示す2つのケースを参照して図12~図14に示すフローチャートを説明する。なお、以下の記載では、時刻T1において仮想サーバ11aから送信されるSYNパケットは、仮想サーバ11bに到着するとともに、中継装置2Aにも到着する。この結果、SYNパケットのTCPシーケンス番号および送信時刻情報は、セッション管理テーブルに記録される。また、時刻T2において仮想サーバ11aから通常パケットが送信される。ここで、この通常パケットのサイズは、MTU値より大きいものとする。 Here, the flowcharts shown in FIGS. 12 to 14 will be explained with reference to the two cases shown in FIG. In the following description, the SYN packet transmitted from the virtual server 11a at time T1 arrives at the virtual server 11b and also at the relay device 2A. As a result, the TCP sequence number and transmission time information of the SYN packet are recorded in the session management table. Further, at time T2, a normal packet is transmitted from the virtual server 11a. Here, it is assumed that the size of this normal packet is larger than the MTU value.

図8(a)に示すケースでは、仮想サーバ11aから送信される通常パケットは、仮想スイッチ12と仮想サーバ11bとの間でロスが発生する。この場合、この通常パケットは、仮想サーバ11bには到着しないが、中継装置2Aには到着する。そうすると、中継装置2Aにおいて下記の処理が実行される。 In the case shown in FIG. 8A, a loss occurs in the normal packet transmitted from the virtual server 11a between the virtual switch 12 and the virtual server 11b. In this case, this normal packet does not arrive at the virtual server 11b, but arrives at the relay device 2A. Then, the following process is executed in the relay device 2A.

通常パケットのTCPシーケンス番号は、直前の受信パケット(すなわち、SYNパケット)のTCPシーケンス番号とは異なる。したがって、S14の判定結果は「No」である。また、通常パケットの送信間隔(すなわち、時刻T1と時刻T2との差分)は、タイムアウト時間より短く、連続送信間隔より長い。よって、S17およびS18の判定結果はそれぞれ「No」である。この結果、S21において通常パケット通知が生成され、S33において転送部24aに送信指示が与えられる。そして、この通常パケットは、NIC25aを介してシステム分析装置3Aに送信される。 The TCP sequence number of a regular packet is different from the TCP sequence number of the immediately previous received packet (ie, SYN packet). Therefore, the determination result in S14 is "No". Further, the normal packet transmission interval (that is, the difference between time T1 and time T2) is shorter than the timeout time and longer than the continuous transmission interval. Therefore, the determination results in S17 and S18 are "No", respectively. As a result, a normal packet notification is generated in S21, and a transmission instruction is given to the transfer unit 24a in S33. This normal packet is then transmitted to the system analysis device 3A via the NIC 25a.

時刻T2からタイムアウト時間が経過すると、仮想サーバ11aから再送パケットP1が送信される。ここで、再送パケットP1のTCPシーケンス番号は、時刻T2において送信された通常パケットのTCPシーケンス番号と同じであるものとする。この場合、中継装置2Aにおいて下記の処理が実行される。 When the timeout period elapses from time T2, a retransmission packet P1 is transmitted from the virtual server 11a. Here, it is assumed that the TCP sequence number of the retransmission packet P1 is the same as the TCP sequence number of the normal packet transmitted at time T2. In this case, the following process is executed in the relay device 2A.

再送パケットP1のTCPシーケンス番号は、直前の受信パケット(すなわち、時刻T2に送信された通常パケット)のTCPシーケンス番号と同じである。よって、S14の判定結果は「Yes」であり、S20において再送パケット通知が生成される。そして、S34において転送部24bに送信指示が与えられるので、再送パケットP1は、NIC25bを介してシステム分析装置3Aに送信される。 The TCP sequence number of the retransmitted packet P1 is the same as the TCP sequence number of the immediately previous received packet (ie, the normal packet transmitted at time T2). Therefore, the determination result in S14 is "Yes", and a retransmission packet notification is generated in S20. Then, in S34, a transmission instruction is given to the transfer unit 24b, so the retransmission packet P1 is transmitted to the system analysis device 3A via the NIC 25b.

再送パケットP1が送信されたときから連続送信間隔ΔTが経過すると、仮想サーバ11aから再送パケットP2が送信される。ここで、再送パケットP2のTCPシーケンス番号は、再送パケットP1のTCPシーケンス番号と異なる。この場合、中継装置2Aにおいて下記の処理が実行される。 When the continuous transmission interval ΔT has elapsed since the retransmission packet P1 was transmitted, the retransmission packet P2 is transmitted from the virtual server 11a. Here, the TCP sequence number of retransmission packet P2 is different from the TCP sequence number of retransmission packet P1. In this case, the following process is executed in the relay device 2A.

再送パケットP2のTCPシーケンス番号は、直前の受信パケット(すなわち、再送パケットP1)のTCPシーケンス番号とは異なる。よって、S14の判定結果は「No」である。ところが、再送パケットP1の送信間隔(すなわち、再送パケットP1が送信されたときから再送パケットP2が送信されたときまでの時間)は、連続送信間隔ΔTである。よって、S18の判定結果は「Yes」である。さらに、再送パケットP2のサイズがMTU値より小さいので、S19の判定結果も「Yes」である。この結果、S20において再送パケット通知が生成され、S34において転送部24bに送信指示が与えられる。したがって、再送パケットP2も、NIC25bを介してシステム分析装置3Aに送信される。なお、この後に送信される各再送パケットは、再送パケットP2と同様に処理される。 The TCP sequence number of retransmission packet P2 is different from the TCP sequence number of the immediately previous received packet (ie, retransmission packet P1). Therefore, the determination result in S14 is "No". However, the transmission interval of retransmission packet P1 (that is, the time from when retransmission packet P1 is transmitted to when retransmission packet P2 is transmitted) is the continuous transmission interval ΔT. Therefore, the determination result in S18 is "Yes". Furthermore, since the size of retransmission packet P2 is smaller than the MTU value, the determination result in S19 is also "Yes". As a result, a retransmission packet notification is generated in S20, and a transmission instruction is given to the transfer unit 24b in S34. Therefore, the retransmission packet P2 is also transmitted to the system analysis device 3A via the NIC 25b. Note that each retransmission packet transmitted thereafter is processed in the same manner as retransmission packet P2.

図8(b)に示すケースでは、仮想サーバ11aから送信される通常パケットは、仮想サーバ11aと仮想スイッチ12との間でロスが発生する。この場合、この通常パケットは、仮想サーバ11bに到着しないだけでなく、中継装置2Aにも到着しない。したがって、セッション管理テーブルには、時刻T1に送信されたSYNパケットのTCPシーケンス番号および送信時刻情報が登録されている。そして、中継装置2Aにおいて下記の処理が実行される。 In the case shown in FIG. 8B, a loss occurs between the virtual server 11a and the virtual switch 12 in the normal packet transmitted from the virtual server 11a. In this case, this normal packet not only does not arrive at the virtual server 11b, but also does not arrive at the relay device 2A. Therefore, the TCP sequence number and transmission time information of the SYN packet transmitted at time T1 are registered in the session management table. Then, the following process is executed in the relay device 2A.

時刻T2からタイムアウト時間が経過すると、図8(a)に示すケースと同様に、仮想サーバ11aから再送パケットP1が送信される。再送パケットP1のTCPシーケンス番号は、直前の受信パケット(図8(b)に示すケースでは、時刻T1に送信されたSYNパケット)のTCPシーケンス番号と異なる。よって、S14の判定結果は「No」であり、S15~S21の処理が実行される。 When the timeout period elapses from time T2, the retransmission packet P1 is transmitted from the virtual server 11a, similar to the case shown in FIG. 8(a). The TCP sequence number of the retransmission packet P1 is different from the TCP sequence number of the immediately previous received packet (in the case shown in FIG. 8B, the SYN packet transmitted at time T1). Therefore, the determination result in S14 is "No", and the processes in S15 to S21 are executed.

再送パケットP1の送信間隔は、SYNパケットが送信されたときから再送パケットP1が送信されたときまでの時間である。すなわち、再送パケットP1の送信間隔は、「タイムアウト時間+連続送信間隔ΔT」である。よって、S17の判定結果は「Yes」である。また、各再送パケットのサイズはMTU値以下なので、S19の判定結果も「Yes」である。したがって、S20において再送パケット通知が生成され、S34において転送部24bに送信指示が与えられるので、再送パケットP1は、NIC25bを介してシステム分析装置3Aに送信される。この後、再送パケットP2~Pnに対する処理は、図8(a)および図8(b)において同じである。 The transmission interval of the retransmission packet P1 is the time from when the SYN packet is transmitted to when the retransmission packet P1 is transmitted. That is, the transmission interval of the retransmission packet P1 is "timeout time+continuous transmission interval ΔT". Therefore, the determination result in S17 is "Yes". Furthermore, since the size of each retransmitted packet is less than or equal to the MTU value, the determination result in S19 is also "Yes". Therefore, a retransmission packet notification is generated in S20, and a transmission instruction is given to the transfer unit 24b in S34, so that the retransmission packet P1 is transmitted to the system analysis device 3A via the NIC 25b. After this, the processing for retransmission packets P2 to Pn is the same in FIGS. 8(a) and 8(b).

このように、中継装置2Aは、仮想情報処理システム1内で送信される通信パケットが通常パケットであるか再送パケットであるかを判定する。具体的には、通信パケットのTCPシーケンス番号、送信間隔、パケットサイズに基づいて、通信パケットが通常パケットであるか再送パケットであるかが判定される。そして、通信パケットが通常パケットであるときは、セグメントオフロード機能がオン状態に設定されているNICを介して、その通信パケットが中継装置2Aからシステム分析装置3Aに送信される。よって、通信パケットのサイズがMTU値より大きい場合であっても、その通信パケットがNICにおいて廃棄されることはない。また、通信パケットが再送パケットであるときは、セグメントオフロード機能がオフ状態に設定されているNICを介して、その通信パケットが中継装置2Aからシステム分析装置3Aに送信される。よって、通常パケットのロスに起因して複数の再送パケットが送信される場合であっても、それら複数の再送パケットがシステム分析装置3Aにおいて結合されることはない。従って、仮想情報処理システム1内で送信される通信パケットの挙動がシステム分析装置3Aにおいて精度よく再現されるので、仮想情報処理システム1を精度よく監視できる。 In this way, the relay device 2A determines whether the communication packet transmitted within the virtual information processing system 1 is a normal packet or a retransmission packet. Specifically, it is determined whether the communication packet is a normal packet or a retransmission packet based on the TCP sequence number, transmission interval, and packet size of the communication packet. When the communication packet is a normal packet, the communication packet is transmitted from the relay device 2A to the system analysis device 3A via the NIC whose segment offload function is set to the ON state. Therefore, even if the size of a communication packet is larger than the MTU value, the communication packet will not be discarded at the NIC. Furthermore, when the communication packet is a retransmission packet, the communication packet is transmitted from the relay device 2A to the system analysis device 3A via a NIC whose segment offload function is set to an off state. Therefore, even if a plurality of retransmission packets are transmitted due to normal packet loss, the plurality of retransmission packets are not combined in the system analysis device 3A. Therefore, since the behavior of communication packets transmitted within the virtual information processing system 1 is accurately reproduced in the system analysis device 3A, the virtual information processing system 1 can be monitored with accuracy.

1 仮想情報処理システム
2A 中継装置
3A システム分析装置
11(11a、11b) 仮想サーバ
22 パケット受信部
23 パケットバッファ
24a、24b 転送部
25a、25b NIC
26 再送判定部
27 転送制御部
31a、31b NIC
32 分析部
41 ハードディスク
42 メモリ
43 CPU
1 Virtual information processing system 2A Relay device 3A System analysis device 11 (11a, 11b) Virtual server 22 Packet receiving section 23 Packet buffer 24a, 24b Transfer section 25a, 25b NIC
26 Retransmission determination unit 27 Transfer control unit 31a, 31b NIC
32 Analysis section 41 Hard disk 42 Memory 43 CPU

Claims (6)

仮想情報処理システム内で送信される通信パケットを前記仮想情報処理システムから受信して処理するパケット処理装置により実行されるパケット処理方法であって、
前記パケット処理装置は、
前記仮想情報処理システムから前記通信パケットを受信し、
前記通信パケットが前記仮想情報処理システム内で送信された再送パケットであるか否かを判定し、
前記通信パケットが前記仮想情報処理システム内で送信された再送パケットでないときは、送信データの分割処理を実行するセグメントオフロード機能がオン状態に設定された第1の出力部を介して前記通信パケットを出力し、
前記通信パケットが前記仮想情報処理システム内で送信された再送パケットであるときは、前記セグメントオフロード機能がオフ状態に設定された第2の出力部を介して前記通信パケットを出力する
ことを特徴とするパケット処理方法。
A packet processing method executed by a packet processing device that receives and processes communication packets transmitted within a virtual information processing system from the virtual information processing system, the method comprising:
The packet processing device includes:
receiving the communication packet from the virtual information processing system;
determining whether the communication packet is a retransmission packet transmitted within the virtual information processing system;
When the communication packet is not a retransmission packet transmitted within the virtual information processing system, the communication packet is transmitted through a first output unit in which a segment offload function that performs division processing of transmission data is set to an on state. Outputs
When the communication packet is a retransmission packet transmitted within the virtual information processing system, the communication packet is output through a second output unit in which the segment offload function is set to an off state. packet processing method.
前記通信パケットのシーケンス番号が、前記通信パケットと同じセッション内で前記通信パケットの直前に送信されたパケットのシーケンス番号と同じときは、前記パケット処理装置は、前記通信パケットが前記仮想情報処理システム内で送信された再送パケットであると判定する
ことを特徴とする請求項1に記載のパケット処理方法。
When the sequence number of the communication packet is the same as the sequence number of a packet transmitted immediately before the communication packet within the same session as the communication packet , the packet processing device 2. The packet processing method according to claim 1, further comprising: determining that the packet is a retransmitted packet transmitted at
前記仮想情報処理システムにおいて、第1のパケットの送信時刻から所定のタイムアウト時間が経過するまでの期間に対応するACKパケットが得られないときに、前記第1のパケットに対応する、予め決められた最大送信サイズ以下の複数の再送パケットが送信されるケースにおいて、
前記通信パケットの送信時刻と、前記通信パケットと同じセッション内で前記通信パケットの直前に送信されたパケットの送信時刻との差分が、前記タイムアウト時間以上であり、且つ、前記通信パケットのサイズが前記最大送信サイズ以下であるときは、前記パケット処理装置は、前記通信パケットが前記仮想情報処理システム内で送信された再送パケットであると判定する
ことを特徴とする請求項1に記載のパケット処理方法。
In the virtual information processing system, when an ACK packet corresponding to the period from the transmission time of the first packet to the elapse of a predetermined timeout period is not obtained, a predetermined ACK packet corresponding to the first packet is obtained. In the case where multiple retransmission packets smaller than the maximum transmission size are sent,
The difference between the transmission time of the communication packet and the transmission time of a packet transmitted immediately before the communication packet within the same session as the communication packet is greater than or equal to the timeout time, and the size of the communication packet is greater than or equal to the timeout time, and 2. The packet processing method according to claim 1, wherein when the size is less than or equal to the maximum transmission size , the packet processing device determines that the communication packet is a retransmission packet transmitted within the virtual information processing system. .
前記仮想情報処理システムにおいて、前記複数の再送パケットが所定の連続送信間隔以下の間隔で順番に送信されるケースにおいて、
前記通信パケットの送信時刻と、前記通信パケットと同じセッション内で前記通信パケットの直前に送信されたパケットの送信時刻との差分が、前記連続送信間隔以下であり、且つ、前記通信パケットのサイズが前記最大送信サイズ以下であるときは、前記パケット処理装置は、前記通信パケットが前記仮想情報処理システム内で送信された再送パケットであると判定する
ことを特徴とする請求項3に記載のパケット処理方法。
In the virtual information processing system, in a case where the plurality of retransmission packets are sequentially transmitted at intervals equal to or less than a predetermined continuous transmission interval,
The difference between the transmission time of the communication packet and the transmission time of a packet transmitted immediately before the communication packet within the same session as the communication packet is less than or equal to the continuous transmission interval, and the size of the communication packet is Packet processing according to claim 3, characterized in that when the size is less than or equal to the maximum transmission size , the packet processing device determines that the communication packet is a retransmission packet transmitted within the virtual information processing system. Method.
仮想情報処理システム内で送信される通信パケットを前記仮想情報処理システムから受信するパケット受信部と、
前記通信パケットが前記仮想情報処理システム内で送信された再送パケットであるか否かを判定する再送判定部と、
送信データの分割処理を実行するセグメントオフロード機能がオン状態に設定された第1の出力部と、
前記セグメントオフロード機能がオフ状態に設定された第2の出力部と、
前記通信パケットが前記仮想情報処理システム内で送信された再送パケットでないときは、前記第1の出力部に前記通信パケットを出力させ、前記通信パケットが前記仮想情報処理システム内で送信された再送パケットであるときは、前記第2の出力部に前記通信パケットを出力させる転送制御部と、
を備えるパケット処理装置。
a packet receiving unit that receives communication packets transmitted within the virtual information processing system from the virtual information processing system;
a retransmission determination unit that determines whether the communication packet is a retransmission packet transmitted within the virtual information processing system;
a first output unit in which a segment offload function for performing division processing of transmission data is set to an on state;
a second output section in which the segment offload function is set to an off state;
When the communication packet is not a retransmission packet transmitted within the virtual information processing system, the first output unit outputs the communication packet, and the communication packet is a retransmission packet transmitted within the virtual information processing system. If so, a transfer control unit that causes the second output unit to output the communication packet;
A packet processing device comprising:
仮想情報処理システム内で送信される通信パケットを前記仮想情報処理システムから受信し、
前記通信パケットが前記仮想情報処理システム内で送信された再送パケットであるか否かを判定し、
前記通信パケットが前記仮想情報処理システム内で送信された再送パケットでないときは、送信データの分割処理を実行するセグメントオフロード機能がオン状態に設定された第1の出力部を介して前記通信パケットを出力し、
前記通信パケットが前記仮想情報処理システム内で送信された再送パケットであるときは、前記セグメントオフロード機能がオフ状態に設定された第2の出力部を介して前記通信パケットを出力する
処理をプロセッサに実行させるパケット処理プログラム。
receiving a communication packet transmitted within the virtual information processing system from the virtual information processing system;
determining whether the communication packet is a retransmission packet transmitted within the virtual information processing system;
When the communication packet is not a retransmission packet transmitted within the virtual information processing system, the communication packet is transmitted through a first output unit in which a segment offload function that performs division processing of transmission data is set to an on state. Outputs
When the communication packet is a retransmission packet transmitted within the virtual information processing system, the processor outputs the communication packet via a second output unit in which the segment offload function is set to an off state. A packet processing program that is executed by
JP2019200402A 2019-11-05 2019-11-05 Packet processing device and packet processing method Active JP7380091B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019200402A JP7380091B2 (en) 2019-11-05 2019-11-05 Packet processing device and packet processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019200402A JP7380091B2 (en) 2019-11-05 2019-11-05 Packet processing device and packet processing method

Publications (2)

Publication Number Publication Date
JP2021077924A JP2021077924A (en) 2021-05-20
JP7380091B2 true JP7380091B2 (en) 2023-11-15

Family

ID=75898245

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019200402A Active JP7380091B2 (en) 2019-11-05 2019-11-05 Packet processing device and packet processing method

Country Status (1)

Country Link
JP (1) JP7380091B2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140161123A1 (en) 2010-03-11 2014-06-12 Microsoft Corporation Multi-stage large send offload
US20150261556A1 (en) 2014-03-11 2015-09-17 Vmware, Inc. Large receive offload for virtual machines
US20180234360A1 (en) 2017-02-16 2018-08-16 Netscout Systems, Inc Flow and time based reassembly of fragmented packets by ip protocol analyzers
JP2019193201A (en) 2018-04-27 2019-10-31 富士通株式会社 Device, method and program for packet acquisition

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140161123A1 (en) 2010-03-11 2014-06-12 Microsoft Corporation Multi-stage large send offload
US20150261556A1 (en) 2014-03-11 2015-09-17 Vmware, Inc. Large receive offload for virtual machines
US20180234360A1 (en) 2017-02-16 2018-08-16 Netscout Systems, Inc Flow and time based reassembly of fragmented packets by ip protocol analyzers
JP2019193201A (en) 2018-04-27 2019-10-31 富士通株式会社 Device, method and program for packet acquisition

Also Published As

Publication number Publication date
JP2021077924A (en) 2021-05-20

Similar Documents

Publication Publication Date Title
US7593331B2 (en) Enhancing transmission reliability of monitored data
US10798199B2 (en) Network traffic accelerator
JP6236933B2 (en) Relay device
JP2006279394A (en) Session relaying apparatus, and session relaying method and program
US8266317B2 (en) Reducing idle time due to acknowledgement packet delay
CN106375139B (en) Method, device and system for copying request
JP2007006477A (en) Apparatus and method
WO2017219813A1 (en) Traffic processing method and transparent buffer system
JP5523130B2 (en) COMMUNICATION DEVICE, COMMUNICATION METHOD, AND PROGRAM
US10601692B2 (en) Integrating a communication bridge into a data processing system
US8572245B1 (en) Using the TCP window size for identifying packets and debugging
JP7380091B2 (en) Packet processing device and packet processing method
JP5212021B2 (en) Monitoring program, monitoring method and monitoring apparatus
JP2016162324A (en) Information processing system, control program and control method
JP6200870B2 (en) Data transfer control device, method and program
US10735349B2 (en) Non-transitory computer-readable storage medium, packet control method, and packet control device
US10841040B2 (en) Acknowledgment and packet retransmission for spliced streams
JP2009284433A (en) System and method for detecting and controlling p2p terminal
CN115190077B (en) Control method, control device and computing equipment
JP2004241872A (en) Information communication method and repeating device
EP4096174B1 (en) Delivery of transport layer packets
US11962517B2 (en) Communications method, apparatus, and system for recovering lost packets
US20230130964A1 (en) Communication protocol, and a method thereof for accelerating artificial intelligence processing tasks
US11528344B2 (en) Elimination of latency in a communication channel
WO2017183088A1 (en) Packet relay apparatus, packet relay method, and packet relay program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230720

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231016

R150 Certificate of patent or registration of utility model

Ref document number: 7380091

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150