JP4348227B2 - Hierarchical packet processing system, a relay device, a server, the method, and program - Google Patents

Hierarchical packet processing system, a relay device, a server, the method, and program Download PDF

Info

Publication number
JP4348227B2
JP4348227B2 JP2004108239A JP2004108239A JP4348227B2 JP 4348227 B2 JP4348227 B2 JP 4348227B2 JP 2004108239 A JP2004108239 A JP 2004108239A JP 2004108239 A JP2004108239 A JP 2004108239A JP 4348227 B2 JP4348227 B2 JP 4348227B2
Authority
JP
Japan
Prior art keywords
unit
packet
service
service processing
received packet
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
JP2004108239A
Other languages
Japanese (ja)
Other versions
JP2005295268A (en
Inventor
直樹 小口
哲明 鶴岡
Original Assignee
富士通株式会社
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 富士通株式会社 filed Critical 富士通株式会社
Priority to JP2004108239A priority Critical patent/JP4348227B2/en
Publication of JP2005295268A publication Critical patent/JP2005295268A/en
Application granted granted Critical
Publication of JP4348227B2 publication Critical patent/JP4348227B2/en
Application status is Active legal-status Critical
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic regulation in packet switching networks
    • H04L47/10Flow control or congestion control
    • H04L47/20Policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic regulation in packet switching networks
    • H04L47/10Flow control or congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic regulation in packet switching networks
    • H04L47/10Flow control or congestion control
    • H04L47/19Flow control or congestion control at layers above network layer

Description

本発明は、パケットを中継する際にフィルタ処理するパケット中継技術に関する。 The present invention relates to a packet relay technology to filter when relaying packets.

近年、パケット中継装置は不用意な通信をシャットアウトするため高度なフィルタ処理を備える。 Recently, the packet relay apparatus includes a sophisticated filtering to shut out inadvertent communications.
なかでもステートフルインスペクションと呼ばれる技術は、IP層よりも上位の通信セッションの状態を監視することで、パケットの通過許可/不許可をよりきめ細かく制御することができる。 Among them technique called stateful inspection, by monitoring the state of the host communication session than the IP layer, it is possible to more finely control the passage permission / non-permission of the packet.

ステートフルインスペクションは、パケット受信の度に、コネクションを認識し、各コネクションの状態を更新し、フィルタ条件とつき合わせてパケットの通過可否を判断する。 Stateful inspection, every packet received, recognizes the connection and updates the state of each connection and determines passability of packets butted filtering condition. 上記処理はほぼ全てのパケットに対し処理が必要になる反面、パケットの上位レイヤヘッダやペイロード部分の監視、状態管理、パケットのデフラグメント/リフラグメント等、単純なパケット処理に留まらない。 The above process although become necessary processing for almost all packets, monitor the upper layer header and a payload portion of the packet, state management, defragmentation / Li fragments, etc. of the packet, it goes beyond simple packet processing. このため、ハードウエア化すると装置規模が大きくなってしまう。 For this reason, the apparatus scale to the hardware of increases.

そこで、ネットワークプロセッサを用いるという方法も考えられる。 Therefore, it is considered a method of using a network processor. しかし、この方法では十分な性能がでない、プログラム可能なメモリにも制限があるなど、事実上の実装が困難であることが証明されている。 However, not out sufficient performance in this way, such as there are limits to the programmable memory, virtual implementations have proven to be difficult.

一方、サーバとネットワーク接続装置からなる系で、ネットワーク接続装置の中継処理においてパケットの詳細解析を行なう場合、そのパケットをサーバへ振り分けて詳細解析させる技術がある。 On the other hand, in a system comprising a server and a network connection device, when performing a detailed analysis of the packet in the relay process of the network connection apparatus, there is a technique for detailed analysis by distributing the packet to the server. この技術では先ず始めに、振分先であるサーバを予めポリシーテーブルに認識させておく必要がある。 First in this technique, it is necessary to be recognized by the advance policy table server is distribution destination. サービス処理部に対してパケットを振り分ける処理振分部は、パケットを受信すると上記ポリシーテーブルに基づき、当該パケットをサービス処理部または所定のサーバへ転送する。 Processing assignment unit for allocating a packet to service processing unit, based on the policy table when receiving the packet, forwards the packet to the service processing unit or a predetermined server. この転送により、処理が外部に分散され、ネットワーク接続装置での処理の負担を軽減できる(特許文献1参照)。 This transfer processing is dispersed to the outside, can reduce the burden of processing in the network connection device (see Patent Document 1).
特開2002−359637号公報 JP 2002-359637 JP

上述したように上記パケットをサーバへ振り分ける技術では、その振分先をポリシーテーブルに指定する。 The As described above distributes the packet to the server technology, specifying the distribution destination in the policy table. これにより上記処理振分部は、各サービス処理部或いは外部のサーバへ処理を振り分けることが可能になる。 Thereby the processing assignment unit, it is possible to distribute the processing to the service processing unit or an external server.

しかし、振り分け先であるサーバが頻繁に移動されたり、該サーバによって提供されるサービスが変えられるなどすると、上記ポリシーテーブルに指定した振り分け先のサーバを指定し直さなければならない。 However, if a distribution destination server is moved frequently, when such service provided by the server is changed, you must re-specify the server assignment destination specified above policy table.

このため、サーバの追加や変更等に基づく中継装置の調整に多大な手間を生じ、問題であった。 Therefore, it results in much labor for adjustment of the relay apparatus based on the server additions and changes, which is a problem.
そこで本発明は、サービス処理を行なうサーバの追加・変更等において好適で且つ高速中継処理を実現する階層型パケット処理技術を提供することを目的とする。 Accordingly, the present invention aims at providing a hierarchical packet processing technology for realizing a suitable and high speed relay process in addition and change of server for service processing.

本発明は上記課題を解決するために以下のように構成する。 The present invention is configured as follows in order to solve the above problems.
本発明の階層型パケット処理システムの態様一つは、受信パケットを対象にサービス処理を行なって上記受信パケットを中継処理する、中継部とサーバからなることを前提とし、上記中継部は、上記受信パケットを対象にサービス処理を行なう所定のサービス処理部を呼び出す呼出部と、上記呼出部の呼び出しにより、上記受信パケットにサービス処理を行なう第一のサービス処理部と、上記呼出部の呼び出しにより、上記受信パケットに仮想的にサービス処理を行なう第二のサービス処理部と、を有し、上記サーバは、上記第二のサービス処理部が上記呼出部から呼び出されると、上記第二のサービス処理部の代わりに上記受信パケットに対して任意のサービス処理を行なう外部サービス処理部を、有するように構成する。 One aspect of the hierarchical packet processing system of the present invention relays process the received packet by performing a service process to subject the received packet, assume that consist relay unit and a server, the relay unit, the received a calling unit for calling a predetermined service processing unit which performs service processing packets to the target, a call of the call unit, the first service processing unit for performing the service process of the received packet, the call of the call unit, the It has a second service processing unit which performs virtually service processing on the received packet, and said server, when the second service processing unit is called from the call unit, said second service processing unit the external service processing unit performing any service processing to the received packet instead be configured to have.

なお、上記呼出部の呼び出しにより上記第二のサービス処理部が呼び出されると、上記受信パケットは処理依頼キューに一時的にキューイングされ、続く受信パケットに対するサービス処理が上記呼出部によって続いて呼び出されたサービス処理部によって行なわれる、ように構成してもよい。 Incidentally, when the second service processing unit is called by a call of the call unit, the received packet is temporarily queued to a process request queue, the service processing for the subsequent received packet is called followed by the call unit was performed by the service processing unit may be configured to.

また、上記外部サービス処理部は、中継部における受信パケットの中継処理で使用されてるCPUが空いた時間を利用して上記サービス処理を行なう、ように構成してもよい。 Further, the external service processing unit uses the time used CPU is vacant relay processing of the received packet in the relay unit performs the service process, may be configured to.
また、受信パケットに対するコネクション状態を管理するコネクション状態管理部を更に有し、上記外部サービス処理部は、上記受信パケットの上位レイヤの状態を検出し、該上位レイヤの状態の検出結果を基に、上記コネクション状態管理部に管理される上記受信パケットの上記コネクション状態を更新し、上記中継部で受信された同一のコネクションパケットは、上記外部サービス処理部によって更新された上記コネクション状態管理部の上記コネクション状態に基づいてフィルタ処理される、ように構成することが望ましい。 Moreover, further comprising a connection state management unit that manages the connection state with respect to the received packet, the external service processing unit detects the state of the upper layer of the received packet, based on the detection result of the state of said upper layer, update the connection state of the received packets managed in the connection state management unit, same connection packet received by the relay unit, the connection of the connection state management unit that is updated by the external service processing unit is filtered based on the state, it is desirable to configure such.

また、上記仮想サービス処理部は、上記受信パケットに対するサービス処理を上記サーバへ振り分けるため、サービス処理を行なうサーバの情報及び該サーバが提供するサービス処理の識別情報とをパケットの種類に応じて管理するサービスリスト管理部を有し、上記サーバは、上記サービスリスト管理部に対し、自己サーバの情報及び該自己サーバが提供するサービス処理の識別子とを転送する転送部を有する、ように構成することが望ましい。 Also, the virtual service processing unit, for distributing the service process of the received packet to the server, manages in accordance with the identification information of the service processing information and the servers in the server to perform a service process to provide the type of packet having a service list management unit, said server may be set, on the service list management unit, to have a transfer unit for transferring the identifier of the service process information, and said self server self server provides, configured to desirable.

本発明の中継装置の態様一つは、受信パケットを対象にサービス処理を行なって上記受信パケットを中継処理することを前提とし、上記受信パケットを対象にサービス処理を行なう所定のサービス処理部を呼び出す呼出部と、上記呼出部の呼び出しにより、上記受信パケットにサービス処理を行なう第一のサービス処理部と、上記呼出部の呼び出しにより、上記受信パケットに仮想的にサービス処理を行なう第二のサービス処理部と、上記受信パケットの上位レイヤの状態の検出に基づく情報を管理するコネクション状態管理部と、上記第二のサービス処理部が上記呼出部から呼び出されると、受信パケットの内の所定の情報を所定のサーバへ送信する送信部と、上記サーバから送信された情報を受信する受信部と、上記受信した結果を上記 One aspect of the relay device of the present invention, performs a service process to target the received packet is assumed to relay processing the received packet, calls a predetermined service processing unit performing the service process of the received packet a calling unit, the call of the call unit, the first service processing unit for performing the service process of the received packet, the call of the call unit, a second service processing for virtually service process of the received packet and parts, and the connection state management unit for managing information based on the detection of the state of the upper layer of the received packet, when the second service processing unit is called from the call unit, predetermined information of the received packet the transmission unit, a reception unit for receiving information transmitted from the server, the result of the received transmission to a predetermined server 信パケットまたは上記コネクション状態管理部で管理される上記情報に反映する反映部と、同一のコネクションパケットに対し、上記コネクション状態管理部で管理される上記反映後の情報に基づいてフィルタ処理するフィルタ処理部と、を有するように構成する。 A reflecting unit for reflecting the signal packet or the information managed by the connection state management unit, for the same connection packet, filtering to filter based on the information after the reflection to be managed by the connection state management unit and parts, are configured to have.

なお、上記呼出部の呼び出しにより上記第二のサービス処理部が呼び出されると、上記受信パケットは処理依頼キューに一時的にキューイングされ、続く受信パケットに対するサービス処理が上記呼出部によって続いて呼び出されたサービス処理部によって行なわれる、ように構成してもよい。 Incidentally, when the second service processing unit is called by a call of the call unit, the received packet is temporarily queued to a process request queue, the service processing for the subsequent received packet is called followed by the call unit was performed by the service processing unit may be configured to.

また、上記第二のサービス処理部は、上記受信パケットに対するサービス処理を上記サーバへ振り分けるため、サービス処理を行なうサーバの情報及び該サーバが提供するサービス処理の識別情報とをパケットの種類に応じて管理するサービスリスト管理部を有する、ことが望ましい。 Further, the second service processing unit, in order to distribute the service process of the received packet to the server, in accordance with the identification information of the service processing information and the servers in the server to perform a service process to provide the type of packet having a service list management unit for managing, it is desirable.

本発明のサーバの態様一つは、中継装置で受信されたパケットの内の所定の情報を上記中継装置から受信することを前提とし、コネクションの状態を管理するコネクション状態管理部と、上記パケットの上位レイヤの状態を検出してサービス処理する上位レイヤ検出部と、上記上位レイヤ検出部によって検出された上記パケットの上位レイヤの状態を基に、上記コネクション状態管理部によって管理される上記パケットのコネクション状態を更新するコネクション状態更新部と、上記サービス処理の結果及び上記コネクション状態の更新情報を上記中継装置に送信する送信部と、を有するように構成する。 One aspect of the server of the present invention, predetermined information of the received packet by the relay station assumes that it receives from the relay device, and the connection state management unit for managing the state of the connection, the packet and upper layer detection unit for service processing by detecting the state of the upper layer, based on the state of the upper layer of the packets detected by the upper layer detection unit, the connection of the packet managed by the connection state management unit a connection state update unit that updates the state, the update information of the result and the connection state of the service process configured to have a transmission unit that transmits to the relay device.

なお、上記サーバは、サービス処理を行なうサーバの情報及び該サーバが提供するサービス処理の識別情報とをパケットの種類に応じて管理する上記中継装置のサービスリスト管理部に対し、自己サーバの情報及び該自己サーバが提供するサービス処理の識別子とを転送する転送部を有する、ように構成することが望ましい。 The above server to the service list management unit of the relay apparatus for managing in accordance with the identification information of the service processing information and the servers in the server to perform a service process to provide the type of packet, the self-server information and it is desirable that the self-server has a transfer unit for transferring the identifier of the service process to provide, configured to.

本発明の方法の態様一つは、受信パケットを対象にサービス処理を行なって上記受信パケットを中継処理する、中継部とサーバからなる階層型パケット処理システムで行なわれることを前提とし、上記中継部は、上記受信パケットを対象にサービス処理を行なう第一または第二のサービス処理部を呼び出し、上記呼び出しにより第一のサービス処理部が呼び出された場合は、上記受信パケットにサービス処理を行ない、上記呼び出しにより第二のサービス処理部が呼び出された場合は、上記受信パケットに仮想的にサービス処理を行ない、上記サーバは、上記第二のサービス処理部が上記呼び出されると、上記第二のサービス処理部の代わりに上記受信パケットに対して実際にサービス処理を行なう、ようにする。 One aspect of the method of the present invention relays process the received packet by performing a service process to subject the received packet, and is assumed to be performed in a hierarchical packet processing system comprising a relay unit and a server, the relay unit calls the first or second service processing unit for performing the service process of the received packet, if the first service processing unit is called by the call, performs the service process of the received packet, the If the second service processing unit is called by the call, it performs virtually service process of the received packet, the server, when the second service processing unit is called the, the second service processing parts actually perform the service processing to the received packet instead of, as in.

なお、受信パケットに対するコネクション状態をコネクション状態管理部で管理し、上記サーバは、上記受信パケットの上位レイヤの状態を検出し、該上位レイヤの状態の検出結果を基に、上記コネクション状態管理部に管理される上記受信パケットの上記コネクション状態を更新し、上記中継部は、同一のコネクション受信パケットを、上記更新された上記コネクション状態管理部の上記コネクション状態に基づいてフィルタ処理する、ことが望ましい。 Note that manages the connection state with respect to the received packet in a connection state management unit, said server detects the state of the upper layer of the received packet, based on the detection result of the state of said upper layer, in the connection state management unit update the connection state of the managed the received packet, the relay unit, the same connection reception packet is filtered based on the connection state of the connection state management unit that is the update, it is desirable.

本発明のプログラムの態様一つは、受信パケットを対象にサービス処理を行なって上記受信パケットを中継処理する、中継部とサーバで実行可能なプログラムであって、上記中継部において、上記受信パケットを対象にサービス処理を行なう第一または第二のサービス処理部を呼び出す機能と、上記呼び出しにより第一のサービス処理部が呼び出された場合は、上記受信パケットにサービス処理を行なう機能と、上記呼び出しにより第二のサービス処理部が呼び出された場合は、上記受信パケットに仮想的にサービス処理を行なう機能と、を実現し、上記サーバにおいて、上記第二のサービス処理部が上記呼び出されると、上記第二のサービス処理部の代わりに上記受信パケットに対して実際にサービス処理を行なう機能と、を実現する。 One aspect of the program of the present invention relays process the received packet by performing a service process to subject the received packet, a program executable by the relay unit and a server, in the relay unit, the received packet a function to call the first or second service processing unit which performs service processing to the target, if the first service processing unit is called by the call, a function of performing the service process of the received packet, by the call If the processing unit the second service is invoked, to achieve a function for virtually service process of the received packet, in said server, when the second service processing unit is called the, the first actually realize the function of performing the service processing to the received packet in place of the two service processing unit.

なお、受信パケットに対するコネクション状態をコネクション状態管理部で管理する機能と、上記サーバにおいて、上記受信パケットの上位レイヤの状態を検出する機能と、該上位レイヤの状態の検出結果を基に、上記コネクション状態管理部に管理される上記受信パケットの上記コネクション状態を更新する機能と、上記中継部において、同一のコネクション受信パケットを、上記更新された上記コネクション状態管理部の上記コネクション状態に基づいてフィルタ処理する機能と、を実現することが望ましい。 Incidentally, a function of managing a connection state of the received packets in a connection state management unit, in the server, a function of detecting a state of the upper layer of the received packet, based on the detection result of the state of said upper layer, said connection a function for updating the connection status of the received packet managed by the state management unit, in the relay unit, the same connection reception packet, filtering processing based on the connection state of the connection state management unit that is the update it is desirable to implement a function of, the.

本発明では、呼出部の呼び出しに応じて、サービス処理をサーバの外部サービス処理部で行なわせる。 In the present invention, in response to a call of the call unit to perform a service process in the external service processing unit of the server. そしてこの際に、呼出部に対し、中継部で処理を行なっているように見せかけて、実際に処理を行なっているサーバ及びサービス処理の存在を隠蔽する。 And when this, for the call unit, pretending as performs processing in relay unit, to conceal the actual presence of the server are subjected to processing and service processing.

このため、上記呼出部からは、上記第二のサービス処理部が何れのサーバで何れのサービス処理を行なわせているか認識できない。 Therefore, from the call unit, it can not recognize whether the second service processing unit is to perform any service process at any server. よって、仮にサーバや外部サービス処理部のサービス処理に追加・変更等があったとしても、該追加・変更等に基づく呼出部の設定変更は不要となる。 Therefore, even if there is such adding or changing the service processing server or an external service processing unit, a setting change of the call unit based on the added or changed, etc. it is unnecessary.

また本発明では、サーバでサービス処理を行なわせる場合、受信パケットを処理依頼キューに一時的に保管し、この間、同一のコネクションの受信パケットを処理するようにしている。 In the present invention, when to perform a service processing on the server, temporarily stored in the processing request queue incoming packets, during, and to process the received packets of the same connection.

このため、例えば複雑な処理をサーバに行なわせた場合であっても、上記複雑な処理が終わるまで同一のコネクション受信パケットの処理を止める必要がなくなり、同一のコネクション受信パケットを次々と処理できる。 Therefore, even when the example was conducted complex processing in the server, the complicated processing is not required to stop the processing of the same connection reception packet until the end, it can sequentially process the same connection reception packet.

また、サーバで行なわれるサービス処理を、中継部における受信パケットの中継処理で使用されてるCPUが空いた時間を利用して行なうようにする。 Furthermore, the service processing performed by the server, to carry out by using the time used CPU is vacant relay processing of the received packet in the relay unit.
このため、サーバで行なうサービス処理よりも中継部で行なう中継処理を優先することが可能になる。 Therefore, it is possible to prioritize relay process than the service processing performed by the server performed in the relay unit.

また、本発明では、サーバで行なうサービス処理において、上記受信パケットの上位レイヤの状態を検出し、該上位レイヤの状態の検出結果を基にコネクション状態管理部に管理される上記受信パケットのコネクション状態を更新する。 Further, in the present invention, in the service processing performed by the server, to detect the state of the upper layer of the received packet, the connection state of the received packet that is managed in said upper connection state management unit based on the detection result of the state of the layer to update. そして、上記中継部で受信された同一のコネクション受信パケットを、上記更新後のコネクション状態に基づいてフィルタ処理させる。 Then, the same connection reception packet received by the relay unit, thereby filtering based on the connection state after the update.

このため、上位レイヤの状態検出に基づくコネクション状態の更新をサーバで行なわせることが可能になり、中継部では単に、上記更新後のコネクション状態を参照するだけでフィルタ処理が行なえる。 Therefore, the update of the connection state based on the state detection of the upper layer it is possible to perform the server, simply relay unit, perform filtering only by reference to the connection state after the update.

また、本発明では、上記受信パケットに対するサービス処理を中継部からサーバへ振り分けるための、サービス処理を行なうサーバの情報及び該サーバが提供するサービス処理の識別情報とをサーバからサービスリストに登録させる。 In the present invention, for distributing the service process of the received packet from the relay unit to the server, and registers the identification information of the service processing server information and the server provides to perform service processing from the server to the service list.

このため、サーバから、自己サーバの情報及び該自己サーバが提供するサービス処理の識別子とを中継部のサービスリストへ転送することで、中継部によるパケットの振り分け先のサーバを変更できる。 Therefore, from the server, by transferring the identifier of the service processing information and said self server self server provides the service list of the relay unit can change the server assignment destination of the packet by the relay unit.

以上より本発明においては、サービス処理を行なうサーバの追加・変更等を行なう場合であってもその変更を容易に行なうことが可能になる。 In the present invention above, it is possible to also perform the change easily even when performing such additional or changed server for service processing. また、中継処理を高速に行なわせることが可能になる。 Further, it is possible to perform relay processing faster.

以下、本発明を実施するための最良の形態を、図面を参照しながら詳細に説明する。 Hereinafter, the best mode for carrying out the present invention will be described in detail with reference to the drawings.
図1は、本発明に適用される階層型パケット処理技術の原理を説明するための図である。 Figure 1 is a diagram for explaining the principle of the hierarchical packet processing technique applied to the present invention. 本階層型パケット処理技術は、異種または同種のネットワーク間に接続される中継システムにおいて好適に適用される技術であり、受信パケットに対するパケットサービス処理を中継部とサーバとに振り分けて行なわせることによりパケットの高速中継処理を実現させる。 This hierarchical packet processing technology is a technology that is suitably applied in the relay system connected between heterogeneous or homogeneous network, packet by causing distributes the packet service processing for the received packet to the relay unit and a server to realize the high speed relay processing of.

同図は、上記中継部及び上記サーバの、上記パケットサービス処理を行なう処理系の論理ブロック図である。 The figure, the relay unit and the server is a logical block diagram of a processing system for performing the packet service process.
同図の中継部1には、呼出部1−1、サービス処理部1−2、及び仮想サービス処理部1−3が構成される。 The relay unit 1 of the drawing, call unit 1-1, the service processing unit 1-2, and the virtual service processing unit 1-3 is constructed. また同図のサーバ2には、仮想呼出部2−1、外部サービス処理部2−2が構成される。 The server 2 in the figure, the virtual call unit 2-1, the external service processing unit 2-2 composed.

上記中継部1の呼出部1−1は、受信パケットに応じてサービス処理部1−2または仮想サービス処理部1−3を呼び出し、サービス処理部1−2または仮想サービス処理部1−3に対し、当該受信パケットに対する各自のサービス処理を互いに独立して実行させる。 Call unit 1-1 of the relay unit 1 calls the service processing unit 1-2 or the virtual service processing unit 1-3 in response to the received packet, to the service processing unit 1-2 or the virtual service processing unit 1-3 to execute independently their service processing for the received packet from each other.

上記サービス処理部1−2は、例えばタイマー更新処理やパケット通過/廃棄処理などのパケットbyパケット処理を、受信パケットに該当のコネクション状態を管理する後述のコネクション状態管理部を参照しながら当該受信パケットに実行する。 The service processing unit 1-2, for example, a timer update process and a packet-by-packet processing, such as the packet transmission / discard processing, the received packet with reference to the connection state management unit described later to manage the connection state of the corresponding to the received packet to run.

また上記仮想サービス処理部1−3は、当該受信パケットに対するサービス処理の実行を上記サーバ2の仮想呼出部2−1に委託し、更に該仮想呼出部2−1から当該サービス処理の実行結果を受け取ることにより、上記サーバ2で実行されたサービス処理(以下、外部サービス処理と呼ぶ)を、当該仮想サービス処理部2−1であたかも実行したかのうように上記呼出部1−1に見せかける。 Also the virtual service processing unit 1-3, the execution of the service processing for the received packet entrusted to the virtual call unit 2-1 of the server 2, a further execution result of the service processing from the virtual call unit 2-1 by receiving the service processing executed by the server 2 (hereinafter, referred to as external service process) to pretend to the call unit 1-1 as caries or executed as if in the virtual service processing unit 2-1. 上記外部サービス処理の好適な例としては、受信パケットの上位レイヤを分析して上記コネクション状態管理部の対応コネクションの状態を更新するステートフル処理が挙げられる。 Preferable examples of the external service processing, stateful processing of updating the state of the corresponding connection of the connection state management unit and the like by analyzing the upper layer of the received packet.

一方、上記サーバ2の外部サービス処理部2−2は、上記仮想呼出部2−1によって仮想的に呼び出され、上記中継部1の仮想サービス処理部1−3から上記仮想呼出部2−1に委託された外部サービス処理を実際に実行し、その実行結果を仮想呼出部2−1に与える。 On the other hand, the external service processing unit 2-2 of the server 2 is called virtually by the virtual call unit 2-1 to the virtual call unit 2-1 from the virtual service processing unit 1-3 of the relay unit 1 actually running the delegated external service process, giving the execution result to the virtual call unit 2-1. そして仮想呼出部2−1は、上記中継部1の仮想サービス処理部1−3に対してその実行結果を返す。 The virtual call unit 2-1 and returns the execution result to the virtual service processing unit 1-3 of the relay unit 1. このとき、上記外部サービス処理として上記ステートフル処理が適用される場合は、上記コネクション状態管理部をサーバ2から更新可能なように構成し、上記コネクション状態管理部の対応個所の更新も行なう。 In this case, if the stateful processing is applied as the external service process is configured to allow updates the connection state management unit from the server 2 also performs updating of the corresponding point of the connection state management unit.

なお、中継部1から如何なる種類のサービス処理をサーバ2に委託するか、当該サービス処理を如何なるサーバ2へ振り分けるかについての情報登録や登録情報の変更は、サーバ2及び仮想サービス処理部1−3が行なう。 Incidentally, either commissioned from the relay unit 1 to any type of service processing server 2, change information registration and registration information about whether distributing the service process to any server 2, server 2 and the virtual service processing unit 1-3 It is carried out.

このように本階層型パケット処理の技術によれば、受信パケットに対するサービス処理を中継部1だけでなく、サーバ2に実行させることができる。 Thus, according to this hierarchical packet processing technology, the service process of the received packet not only relay unit 1 can be executed in the server 2. この場合、特に、中継部1においてパケットbyパケット処理を行なわせ、サーバ2においてコネクション状態管理部を更新する複雑で重たい処理(ステートフル処理)を行なわせれば、中継部1でコネクション状態管理部を更新するための上記複雑で重たい処理を行なう必要はなくなる。 In this case, in particular, to perform a packet-by-packet processing in the relay unit 1, if made complicated heavy process of updating the connection state management unit in the server 2 (stateful processing), updates the connection state management unit the relay unit 1 the complex heavy processing to it becomes unnecessary to carry out. このため中継部1では、上記コネクション状態管理部を参照して受信パケットの通過/廃棄を決定する、或いはタイマーを更新するなど、単純で軽い処理を行なわせることが可能になる。 Therefore, the relay unit 1, determines a transmission / discard of the received packet by referring to the connection state management unit, or such as updating the timer, it is possible to perform the simple and mild process. そして更に、中継部1とサーバ2のサービス処理を互いに独立して行なわせるため、処理時間のかかるサーバ2のサービス処理が終わるのを待つことなく中継部1のサービス処理を次々に受信パケットに対して行なえ、パケット中継が高速になる。 And further, in order to perform service processing of the relay unit 1 and the server 2 independently from each other, with respect to received packets one after another service processing of the relay unit 1 without waiting for the service process of the server 2 of the processing time is over carried out, the packet relay is a high speed. また、如何なるサーバ2で如何なる外部サービス処理が実行されようとも、中継部1の呼出部1−1からはある所定のサービス処理に見える仮想サービス処理を呼び出すだけなので、各種サービス処理を呼び出す呼出部1−1の呼び出し設定やパケットbyパケット処理を行なう各部や設定を変更することなく、受信パケットに対して実行させる外部サービス処理の種類や当該外部サービス処理を行なうサーバの転送先を変更できる。 Moreover, no matter any recognize the external service process is performed in any server 2, because only calls the virtual service processing visible to predetermined service processing with from call unit 1-1 of the relay unit 1, the calling unit 1 to call the services processing without changing the respective units and setting to perform call setup and packet-by-packet processing -1, can change the server of the transfer destination to perform the type and the external service processing of an external service process to be executed for the received packet. また、中継部1の呼出部1−1による外部サービスの呼び出しが、あたかもサーバ2の仮想呼出部2−1から行なわれているかのように仮想化させているため、サーバ2の外部サービス処理部2−2も、相対する中継部1の設定変更を意識する必要がない。 Also, call the external service by calling unit 1-1 of the relay unit 1, though since the by virtualized as if they were made from the virtual call unit 2-1 of the server 2, the server 2 of the external service processing unit 2-2 also, there is no need to be aware of the setting change of the relative relay unit 1.

そして、特に、上記仮想サービス処理部1−3及びサーバ2の各部の機能をソフトウエアで実現し、パケットbyパケット処理を行なう各部をハードウエアで実現することで、パケット中継処理の高速化と、外部サービス処理の設定変更に対する柔軟性とを享受できる。 Then, in particular, to realize the functions of each unit of the virtual service processing unit 1-3 and the server 2 in software, by realizing each section for performing packet-by-packet processing by hardware, and faster packet relay processing, and flexibility can enjoy for the setting change of the external service processing.

続いて、上記論理ブロックの実装例を示す。 Subsequently, showing an implementation of the logical block.
なお本例では、Linux(登録商標)において本メカニズムを実装した場合の例を示すこととする。 In the present embodiment, it is assumed that an example of a case of mounting this mechanism in Linux (registered trademark).

図2(a)は、図1の中継部1の実装例である。 2 (a) is an implementation example of the relay unit 1 of FIG.
同図によると、上記中継部1は、「NF_HOOK」10−1、パケットbyパケット処理カーネル関数を提供するサービス処理部10−2、及び仮想ボトムハーフ処理部10−3によって構成することができる。 According to the figure, the relay unit 1 can be configured by "NF_HOOK" 10-1, service processing unit 10-2 provides a packet-by-packet processing kernel function, and the virtual bottom-half processing unit 10-3.

同図の「NF_FOOK」10−1はカーネル内の機能である。 "NF_FOOK" 10-1 in the figure is a function of the kernel. 当該「NF_FOOK」10−1は、受信パケットのヘッダ情報或いは、当該受信パケットに対するコネクションの状態が記述された不図示のコネクション状態管理テーブルを参照し、当該受信パケットは、上記サービス処理部10−2が提供するサービス処理を実行させるものであるか、または上記仮想ボトムハーフ処理部10−3が提供するサービス処理を実行させるものであるか判定する。 The "NF_FOOK" 10-1, the header information of the received packet or, with reference to the connection state management table (not shown) the status of connection to the received packet is written, is the received packet, the service processing unit 10-2 It determines but whether those to execute a service process to provide, or is intended to execute a service process that the virtual bottom-half processing unit 10-3 is provided.

当該判定により、上記サービス処理部10−2が提供するサービス処理を当該パケットに対して実行させるものである場合は、該当するパケットbyパケット処理カーネル関数によって提供される処理を実行させ、その処理結果を得る。 By the determination, if the service processing the service processing unit 10-2 is provided is intended to be performed on the packet, to execute the processing provided by the corresponding packet by packet processing kernel function, the processing result obtained. また、上記判定結果が、上記仮想ボトムハーフ処理部10−3が提供するサービス処理(すなわち外部サービス処理)を当該パケットに対して実行させるものである場合は、当該パケットを仮想ボトムハーフ処理部10−3に渡し、該仮想ボトムハーフ処理部10−3からサービス処理後のパケットを得る。 Further, the determination result, the when the virtual bottom-half processing unit service processing 10-3 provides (i.e. external service processing) is intended to be performed on the packet, the packet virtual bottom-half processing unit 10 pass -3, to obtain a packet after the service processing from the virtual bottom-half processing unit 10-3.

サービス処理部10−2は、パケットbyパケット処理カーネル関数が呼び出されると、受信パケットに対し、カーネルに実装された対応処理(例えばタイマー更新やコネクション状態管理テーブルの参照に基づくフィルタリング処理など)を実行する。 Service processing unit 10-2 executes a packet-by-packet processing kernel function is called, on the received packet, the corresponding process is implemented in the kernel (e.g., based on reference timer updates and connection state management table filtering, etc.) to.

仮想ボトムハーフ処理部10−3は、上記「NF_FOOK」10−1に対し該「NF_FOOK」10−1から渡されたパケットを自身で処理しているかのように見せかけ、その実際の処理をサーバ2に行なわせる。 Virtual bottom-half processing unit 10-3, the "NF_FOOK" 10-1 to seeming as if processing the packet passed from the "NF_FOOK" 10-1 itself, the server 2 and the actual processing to perform to. 本例では、当該仮想ボトムハーフ処理部10−3はユーザプロセスとして記述する。 In this example, the virtual bottom-half processing unit 10-3 described as a user process. 従って、仮想ボトムハーフ処理部10−3には、カーネル内の機能である上記「NF_FOOK」10−1と上記ユーザプロセス間で処理の交換ができるように、カーネルから提供される処理依頼キュー(ip Therefore, the virtual bottom-half processing unit 10-3, to allow the exchange of processing between a function of the kernel the "NF_FOOK" 10-1 and the user process, process request queue (ip provided by the kernel queue)10−3−1が使用される。 queue) 10-3-1 is used. また、当該仮想ボトムハーフ処理部10−3には、更に、上記処理依頼キュー10−3−1との間で処理を交換するための処理取り出し/書き込み機能10−3−2と、当該処理(パケットに対する外部サービス処理)の処理依頼を図1のサーバ2に転送するための転送機能10−3−3とをプロキシスレッドFPの形態で備える。 Further, to the virtual bottom-half processing unit 10-3 further includes a process extraction / writing function 10-3-2 to exchange processing between the process request queue 10-3-1, the process ( and a transfer function 10-3-3 for transferring a processing request of the external service processing) for the packet to the server 2 of FIG. 1 in the form of a proxy thread FP.

転送機能10−3−3は、受信パケットに対して実行する外部サービス処理の識別情報や当該外部サービス処理を実行させるサーバ2の情報を書き替え自在に記録したサービスリストを備え、当該サービスリストに基づいて、受信パケットに対する所定の外部サービス処理を所定のサーバ2へ委託する。 Transfer function 10-3-3 includes an external service processing of the identification information and services list that freely record rewriting the information of the server 2 to execute the external service processing to be executed for the received packet, to the service list based on, to entrust predetermined external service process of the received packet to a predetermined server 2. また、サーバ2から送信された情報(例えばサービスリストの更新情報、外部サービス処理の結果情報など)を受信する。 Also receives information transmitted from the server 2 (e.g., the update information of the service list, such as the result information of the external service process).

上記処理取り出し/書き込み機能10−3−2は、上記処理依頼キュー10−3−1から処理情報を取り出し、サーバ2で外部サービス処理ができるように処理情報を編集したり、サーバ2から送信された結果情報をこれに対応するパケットに反映させ、反映パケットを上記処理依頼キュー10−3−1に書き込んだりする。 The process extraction / writing function 10-3-2 retrieves the process information from the process request queue 10-3-1, edit process information to allow external service process in the server 2, is transmitted from the server 2 the result information is reflected in the packet corresponding thereto, the reflected packet or writes to the process request queue 10-3-1.

図2(b)は、図1のサーバ2の実装例である。 Figure 2 (b) is a mounting example of the server 2 FIG.
同図によると、上記サーバ2は、仮想「NF_FOOK」20−1、「フックボトムハーフ実行カーネル関数」20−2によって構成することができる。 According to the figure, the server 2 can be configured by the virtual "NF_FOOK" 20-1, "hook bottom-half execution kernel function" 20-2.

同図の仮想「NF_FOOK」20−1は、中継部1に対して処理応答(例えば外部サービス処理の処理結果など)を返すための転送機能20−1−1と、「フックボトムハーフ実行カーネル関数」20−2によって提供されるサーバ2のカーネル内の処理を呼び出す処理呼出機能PとをプロキシスレッドSPの態様で備える。 Virtual "NF_FOOK" 20-1 in the same figure, the transfer function 20-1-1 to return the processing response to the relay unit 1 (for example, an external service processing of the processing results, etc.), "hook bottom-half execution kernel function and a process call function P to call the process in the server 2 provided kernel by "20-2 provided in the manner of a proxy thread SP. そして更に、当該仮想「NF_FOOK」20−1では、上記処理呼出機能Pの一部(すなわち同図の処理呼出機能K)をカーネル内に配置させる。 And further, in the virtual "NF_FOOK" 20-1, it is arranged a part (i.e., process call function K of drawing) in the kernel of the process call function P. なお、本例では「フックボトムハーフ実行カーネル関数」20−2においてフックボトムハーフ機能が適用されているが、これは、優先して行なわなければならない処理を優先的にCPU(中央処理装置)に実行させる機能であり、当該「フックボトムハーフ実行カーネル関数」として登録されている処理は、上記優先処理の終わったタイミング(例えばCPUの空き時間等)に実行される。 Although the hook bottom-half features at 20-2 "hook bottom-half execution kernel function" in this example is applied, this is a preference to must be performed processed preferentially CPU (central processing unit) a function to be executed, the process being registered as the "hook bottom-half execution kernel function" is executed in the priority processing of finished timing (e.g. idle time of the CPU, etc.).

上記転送機能20−1−1は、中継部1から送信された処理依頼を受け付けたり、該処理依頼に対して実行した外部サービス処理の結果を該当する中継部1へ転送する。 The transfer function 20-1-1 transfers and accepts a processing request transmitted from the relay unit 1, to the relay unit 1 to the appropriate result of the external service processing performed on the processing request. また、中継部1の転送機能10−3−3に備えられるサービスリストの更新(外部サービスの種類の追加・削除・変更や当該外部サービスを提供するサーバ情報の追加・削除・変更など)を行なう。 Also, to update the service list provided in the transfer function 10-3-3 of the relay unit 1 (such as addition, deletion, change of server information that provides the type of add, delete, change or the external service of the external service) .

上記処理呼び出し機能Pは、システムコールにより、カーネル内の処理呼び出し機能Kを介して上記「フックボトムハーフ実行カーネル関数」20−2を呼び出し、転送機能20−1−1によって受信した処理依頼に基づく処理を実行させる。 The processing calling function P is the system call calls the "hook bottom-half execution kernel function" 20-2 through the process calling function K in the kernel, based on the processing request received by the transfer function 20-1-1 to perform the processing. そして、その実行結果を受け取ると転送機能20−1−1に渡す。 Then, it passed to the transfer function 20-1-1 and receive the execution result.

なお、上記処理では、適宜、不図示のコネクション状態管理テーブルが更新される。 In the process, as appropriate, the connection state management table (not shown) is updated. 仮に、上記コネクション状態管理テーブルがサーバ2と中継部1にそれぞれ装備されているとすると、上記サーバ2のコネクション状態管理テーブルの更新を基に、サーバ2の転送機能20−1−1及び中継部1の転送機能10−3−3を介して中継部1のコネクション状態管理テーブルの同期をとることができる。 Assuming that the above connection state management table are each equipped in the server 2 and the relay unit 1, based on the update of the server 2 of the connection state management table, the transfer function server 2 20-1-1 and the relay unit it can be synchronized connection state management table of the relay unit 1 via the first transfer function 10-3-3. このように中継部1及びサーバ2のそれぞれにコネクション状態管理テーブルを装備すれば、サーバ2のコネクション状態管理テーブルを状態の書き替え対象とし、中継部1のコネクション管理テーブルを参照やタイマーの更新を対象とする使い分けができる。 Thus equipped the connection state management table to each of the relay unit 1 and the server 2, and the connection state management table of the server 2 and the state of the rewrite target, an update of the reference and the timer the connection management table of the relay unit 1 it is proper use of interest.

また、「フックボトムハーフ実行カーネル関数」20−2側には、自己のカーネル内の「NF_FOOK」から呼ばれたように見せかけることができる。 The "hook bottom-half execution kernel function" 20-2 side can pretend as called by "NF_FOOK" in its kernel.
言うまでもないことだが、上記中継部1及びサーバ2は、それらの独立した処理を共通のCPUで実行させる中継システム(以下、階層型パケット処理システムと呼ぶ)、並びに、異なるCPUで実行させる階層型パケット処理システムに実装できる。 Needless to say, the relay unit 1 and the server 2, the relay system to execute their independent processing by a common CPU (hereinafter, referred to as a hierarchical packet processing system), as well as hierarchical be performed in a different CPU Packet It can be implemented in the processing system. 特に共通のCPUを持つ階層型パケット処理システムに実装した場合は、上記フックボトムハーフ機能により、中継部1のパケットbyパケット処理を優先的にCPUで実行させ、サーバ1の外部サービス処理は上記CPUの空き時間などを利用して行なわせることができる。 Especially if mounted on the hierarchical packet processing system with a common CPU, by the hook bottom half function, a packet-by-packet processing relay unit 1 preferentially is executed by CPU, server 1 of the external service processing said CPU it can be carried out by using, for example, free of time.

図3は、通信ケーブルを介して接続される異なる装置(中継装置及びサーバ)に上記中継部1とサーバ2を別々に実装した場合の上記階層型パケット処理システムの機能ブロック図である。 Figure 3 is a functional block diagram of the hierarchical packet processing system responds to implement the relay unit 1 and the server 2 separately to different device (relay device and server) connected via a communication cable.

本例の継装置300とサーバ350によって構成され、互いに通信ケーブルを介して接続されている。 Is constituted by the relay device 300 and the server 350 of this embodiment are connected via a communication cable to each other.
同図に示される階層型パケット処理システム30の機能ブロック図では、上記中継装置300とサーバ350が備えている機能を装置300、350毎に分けて示している。 In the functional block diagram of the hierarchical packet processing system 30 shown in the same figure shows separately functions of the relay device 300 and the server 350 is provided for each device 300 and 350. 同図に示されるように、上記中継装置300にはカーネル部301と同図に破線で囲まれる常駐型プログラム(以下、デーモンと呼ぶこととする)302が備えられ、上記サーバ350にはカーネル部351と同図に破線で囲まれるデーモン352が備えられている。 As shown in the figure, resident programs in the relay device 300 surrounded by a broken line in the figure the kernel portion 301 (hereinafter, will be referred to as a daemon) 302 is provided, in the server 350 kernel unit 351 a daemon 352 surrounded by a broken line in the figure are provided.

上記デーモン302は、同図に示されるように、マウントスレッド303、シグナリングスレッド304、プロキシスレッド305、及び、後述する例えば受信表、振分表、テーブルIDなどのサービスリストを備えている。 The daemon 302, as shown in the drawing, the mount threads 303, signaling thread 304, the proxy thread 305 and, later-described example receiving table, the distribution table, and a service list, such as a table ID. また、上記デーモン352も同様な機能を有するスレッド(マウントスレッド353、シグナリングスレッド354、及びプロキシスレッド355)及び、後述の例えば送信表、受信表、テーブルIDなどの転送情報(上記サービスリストに対応する情報を含む)を備えている。 Also, thread the daemon 352 also having similar functions (mounting thread 353, signaling thread 354 and proxy thread 355,) and, for example, transmit table below, received table, corresponding to the transfer information (the service list, such as table ID and a containing information).

上記各マウントスレッド303、353は、中継装置300に設定されているパケット取り込み用のネットワークインタフェース(同図のIF1及びIF2)と、サーバ350に仮想的に設定させるネットワークインタフェース(同図の仮想IF1及び仮想IF2)とのマッピング情報を両装置300、350上に作成するプロセス(マウントプロセス)である。 Each mount thread 303, 353 is relayed device network interface for packet capture set in 300 (IF1 and IF2 in the figure), the server 350 virtual IF1 and network interface (FIG be set virtually in is the process of creating the mapping information between the virtual IF2) on both devices 300 and 350 (mount process).

管理者がサーバ350においてマウントコマンド356を実行することにより、サーバ350のマウント情報357の中からIFが指定され、そのIFに対するマウント要求が中継装置300に送信される。 Administrator by running the mount command 356 in the server 350, IF is designated in the mounting information 357 of the server 350, mount request for the IF is transmitted to the repeater 300. 中継装置300では管理者が予め中継装置300においてマウント許可リスト設定コマンド306を実行しており、マウント許可リスト307にマウントを許可するIFを設定している。 Repeater 300, the administrator is running the mount permission list setting command 306 in advance repeater 300, which sets the IF to allow mounting the mount permission list 307. このため、サーバ350から送信されたマウント要求は、上記マウント許可リスト307の設定内容(当該IFに対してマウントを許可する、または、許可しないの設定)に基づき、上記マウント要求のあったIFに対するマウント許可の応答をサーバ350に返信する。 For this reason, IF mounted transmitted from the server 350 requests the setting contents of the mount permission list 307 (to allow the mount with respect to the IF, or set of not allowed) based on, for which the above mounting request the response of the mount permission to reply to the server 350. このマウントプロセスにより、IFトンネル対応情報が中継装置300の受信表308及びサーバ350の送信表358に設定され、サーバ350上に中継装置300の実IFが仮想的に作成される。 This mounting process, is set in the transmission table 358 of the receiving table 308 and the server 350 of the IF tunnel corresponding information relay device 300, the actual IF relay device 300 on the server 350 is created virtually.

なお、管理者により上記マウント許可リスト設定コマンド306が実行されると、例えば、中継装置300上のネットワークインタフェースの中で、サーバ350の外部サービス処理対象に指定するネットワークインタフェース(同図におけるIF1、IF2)を後述するフックハンドラに登録しておくことができる。 Incidentally, when the mount permission list setting command 306 is executed by an administrator, for example, in the network interface on the relay device 300, IF1 in the network interface (FIG specifying the external service processing target server 350, IF2 ) it can be registered to the hook handler to be described later.

また、サーバ350が複数存在する場合には上記サービスの提供対象とする上記中継装置300上のネットワークインタフェースを複数のサーバ350上の仮想IFへ対応づける必要があるため、上記マウントプロセスでは、上記中継装置300のネットワークフェースと複数のサーバ350の仮想IFとのマッピング情報を、プロセスの持つポート番号を用いて上記中継装置300の受信表308及びサーバ350の送信表358に設定する。 Further, since the server 350 is in the case of plurality of need to associate the network interface on the relay device 300 to provide the subject of the service to the virtual IF on multiple servers 350, in the mounting process, the relay the mapping information between the virtual IF networks face and a plurality of servers 350 of the apparatus 300, sets the transmission table 358 of the receiving table 308 and the server 350 of the relay device 300 using the port number with the process.

上記各シグナリングスレッド304、354は、サーバ350で提供する外部サービス処理を中継装置300から利用できるように設定するためのプロセス(シグナリングプロセス)である。 Each signaling thread 304,354 is a process for setting the external service process to provide a server 350 to be available from the relay apparatus 300 (signaling processes). 当該シグナリングプロセスでは、中継装置300上で外部サービス処理が呼び出された時にその処理依頼メッセージを中継装置300から所定のサーバ350へ転送できるようにするために、両装置300、350間にその転送表を設定する。 In the signaling process, the transfer table of the processing request message in order to be able to transfer from the relay device 300 to the predetermined server 350, between the two devices 300 and 350 when the external service process is invoked on the repeater 300 to set. このシグナリングプロセスでは、例えば、管理者が同図のサーバ350上でサービス起動コマンド359を実行して、サーバ350が備える所定のサービスモジュールを中継装置300から呼びだしできるように起動し、中継装置300と該中継装置が呼び出すサーバ350のサービスモジュールとの対応表を中継装置300の振分表309及びサーバ350の受信表359に設定する。 This signaling process, for example, the administrator running the service startup command 359 on server 350 in the figure, and starts a predetermined service module server 350 is provided to allow calls from the repeater 300, the repeater 300 setting the correspondence table between the service module of the server 350 to the relay device calls the reception table 359 of the distribution table 309 and the server 350 of the relay device 300. なお、この処理については後に詳しく説明することにする。 Incidentally, to be described in detail later this process.

また、デーモン302及びデーモン352は、それぞれ、テーブルID310及びテーブルID360を備える。 Also, Daemon 302 and daemon 352, respectively, provided with a table ID310 and table ID360. これらには、中継装置300のカーネル部301及びサーバ350のカーネル部351に共に備えられている後述のステートテーブル(上記コネクション状態管理テーブルに一部が対応)の場所が指定されている。 These include the location of the later of the state table is provided both in the kernel portion 351 of the kernel 301 and server 350 of the relay device 300 (corresponding part to the connection state management table) is specified.

上記プロキシスレッド305、355は、中継装置300において後述のコネクショントラッキング処理により検出された特定のパケットをサーバ350で処理させたり、中継装置300及びサーバ350の各カーネル部301、351に実装された後述のステートテーブルを同期させるためのプロセス(プロキシプロセス)である。 The proxy thread 305,355 is a specific packet detected by connection tracking process will be described later in the relay device 300 or to be processed in the server 350, described later, which is mounted on the kernel unit 301,351 of the relay device 300 and the server 350 it is a process for synchronizing the state table (proxy process).

上記プロキシスレッド305は、カーネル部301から上記特定のパケットを受信し、パケットの全てまたは該パケットの内で外部サービス処理に必要な情報(以下、必要情報とする)のみ抽出し、上記マウントプロセス及びシグナリングプロセスにより設定された送信表308及び振分表309に従って該当サーバ350のプロキシスレッド355に上記パケットまたは上記必要情報を含む処理依頼メッセージを送信する。 The proxy thread 305 receives the specific packet from the kernel portion 301, information necessary for the external service process among all or the packet of the packet (hereinafter, requires information) only extracted, and the mount process It transmits the processing request message including the packet or the required information to the proxy thread 355 of the corresponding server 350 according to the transmission table 308 and distribution table 309 set by the signaling process. 一方、上記プロキシスレッド355は上記処理依頼メッセージを受け取るとカーネル部351にその処理を渡して該当のサービス処理を実行させ、該カーネル部351からその処理結果を受け取る。 On the other hand, the proxy thread 355 to execute the service process of the corresponding passes the processing to the kernel section 351 receives the processing request message, receives the process result from the kernel portion 351. プロキシスレッド355は、上記マウントプロセス及びシグナリングプロセスにより設定された送信表358及び受信表359に従って、その処理結果(例えば、変更情報や、パケットの通過や廃棄を知らせる情報など)を処理応答メッセージとして上記プロキシスレッド305に送信する。 Proxy thread 355, the following transmission table 358 and receives table 359 set by the mount process and signaling process, the processing result (for example, change information, information such as notifying the passage and dropping of packets) as a processing response message and it transmits to the proxy thread 305. そして、プロキシスレッド305は、カーネル部301にその処理結果を返す。 Then, the proxy thread 305 returns the processing result to the kernel 301. また更に、プロキシスレッド355は、カーネル部351に実装されたステートテーブルの更新を検出すると、上記テーブルIDに指定されたプロキシスレッド305に対し、テーブル同期メッセージとしてその更新情報を送信し、プロキシスレッド305はカーネル301内に実装されたステートテーブルの更新を行なう。 Furthermore, the proxy thread 355 detects an update of the state table which is implemented in the kernel portion 351, to proxy thread 305 that is specified in the table ID, and transmits the update information as a table synchronization message, the proxy thread 305 the updates the state table implemented in the kernel 301.

次にカーネル部について説明する。 Next, a description will be given of the kernel part.
中継装置300のカーネル部301には、パケットの処理経路が太い矢印で示されている。 The kernel portion 301 of the repeater 300, the processing path of the packet is indicated by a thick arrow. 本例の処理経路には5つのフック処理部311〜315と二つのルーティング処理部316(316−1、316−2)とが実装されている。 The processing path of the present embodiment is five hook processing unit 311-315 and two routing processing unit 316 and (316-1,316-2) are mounted. また更に、フック情報テーブル317、フックハンドラ318、ステートテーブル319、及びフィルタルール320が実装されている。 Furthermore, the hook information table 317, the hook handler 318, state table 319 and the filter rules 320, are mounted.

上記フック情報テーブル317は、例えばタイマー更新処理やパケットの通過・パケットの廃棄を行なうフィルタ処理など、簡易処理を行なうパケットbyパケット処理、或いは複雑な処理をサーバに委託するコネクショントラッキング(またはコントラック)処理(以下では、一部にパケットbyパケット処理を含んでいる場合もコネクショントラッキング処理と呼ぶこととする)など、複数の処理を登録することができるテーブルである。 The hook information table 317, for example a timer, such as update processing and filtering processing for discarding passage packets of the packet, the packet-by-packet processing for a simple processing, or connection tracking entrust complex processing in the server (or con track) process (hereinafter, will be called a connection tracking process even if it contains a partially packet-by-packet processing) such as a table capable of registering a plurality of processing. 同図には、上記処理経路のパケットの取り込み口(同図のIF1)に最も近い位置に示されるフック処理部311のフック情報テーブル317のみが示されているが、その他の各フック処理部312〜315に対してもそれぞれフック情報テーブルが備えられている。 In the figure, inlet packets of the processing path but only hook information table 317 of the hook processing unit 311 shown closest to the (IF1 in the figure) are shown, each of the other of the hook processing unit 312 It is provided with a hook information table respectively against 315. 各フック処理部311〜315は、各フック処理部311〜315に対応するフック情報テーブルに登録された処理を受信パケットに対して順じ実行する。 Each hook unit 311 to 315 is sequentially applies to perform on a received packet processing registered in the hook information table corresponding to each hook processing unit 311-315.

本例では、フック処理部311及びフック処理部314においてコネクショントラッキング処理を実行するようにフック情報テーブルが設定され、その他のフック処理部312、313、315ではフィルタ処理(同図のルール設定部321によって書き替え自由にフィルタリングのポリシーが定義づけされる上記フィルタルール320や、セッション状態を管理する後述のステートテーブル319を参照し、受信パケットの通過・廃棄を判断する処理)を実行するようにフック情報テーブルが設定されている。 In this embodiment, the hook processing unit 311 and the hook information table is configured to perform connection tracking process in hook processing unit 314, the other hook processing unit 312,313,315 in filtering (rule drawing setting unit 321 hook as freely filtering policy rewriting is and the filter rules 320 defined pickled, with reference to the state table 319 to be described later to manage session state, executes the process) for determining the passage and disposal of the received packet by information table has been set.

上記フックハンドラ318は、上記フック情報テーブル317に設定されているコネクショントラッキング処理の際に呼び出される機能であり、当該フックハンドラ318に基づいて受信パケットに対するコネクショントラッキング処理を行なう。 The hook handler 318 is a function to be called when the connection tracking process set in the hook information table 317, it performs the connection tracking process for the received packet based on the hook handler 318. このコネクショントラッキング処理が実行されると、適宜、上記ステートテーブル319が参照される。 When the connection tracking process is executed, appropriately, the state table 319 is referred to.

なお、特に示されていないが、フック情報テーブルにコネクショントラッキング処理が設定されているフック処理部314においても、上記フック処理部311と同様な構成をとっている。 Although not specifically shown, in the hook processing unit 314 for connection tracking process in the hook information table is set, taking the same configuration as the hook processing unit 311.

また、フック情報テーブルにフィルタ処理が設定されているその他のフック処理部からも、上記ステートテーブル319及びフィルタルール320を参照できるように構成されている。 Also, the other of the hook unit where the filter processing is set in the hook information table is configured to allow reference to the state table 319 and the filter rules 320.

上記フック処理部311(同様にフック処理部314)において上記コネクショントラッキング処理が実行されると、例えば上記パケットbyパケット処理が行なわれる場合はタイマ更新を行なったら直ちに先の処理部に当該パケットを渡し、外部委託処理が行なわれる場合は、同図に示される処理依頼キュー(ip When in the hook processing unit 311 (as well as hook processing unit 314) the connection tracking process is performed, for example, if the packet by the packet processing is performed passes the packet to the processing unit of the immediately preceding After performing timer update If the outsourcing process is performed, the process request queue shown in FIG. (ip queue)322に当該パケットをキューイングして処理をサーバ350に委託して、当該フック処理部311(同様にフック処理部314)で次のパケットを受信する。 The queue) 322 to the packet by queuing processing entrusted to the server 350 to receive the next packet in the hook processing unit 311 (as well as hook processing unit 314). この処理依頼キュー311は、カーネル部301の機能であり、カーネル部301からパケットを借りてきて当該パケットをユーザ空間で取り扱えるようになる仕組みを提供する。 The process request queue 311 is a function of the kernel portion 301, provides a mechanism by borrowed packets from the kernel portion 301 will be handled the packets in user space.

なお、カーネル部301の処理依頼キュー322とデーモン302との通信は、同図のカーネルソケット(NETLINK)323を介して行なわせる。 The communication with the process request queue 322 and daemons 302 in kernel unit 301 to perform via the kernel socket (NETLINK) 323 in FIG.
また上記にも述べたが、上記ステートテーブル319と対になるステートテーブルがサーバ350のカーネル部351に実装されている。 Also mentioned in the above, state table to be paired with the state table 319 is implemented in the kernel portion 351 of the server 350. 本例では、互いのステートテーブルの同期を実現する仕組みとして、中継装置300のカーネル部301及びサーバ350のカーネル部351に示されるソケット(CT−NETLINK)324によって提供している。 In the present example, it provides a mechanism for implementing synchronization of mutual state table, by the socket (CT-NETLINK) 324 shown in kernel unit 351 of the kernel 301 and server 350 of the relay device 300.

一方、サーバ350のカーネル部351には、フックボトムハーフ361、サービス呼出モジュール362、及び、中継装置300のカーネル部351に実装されているステートテーブル319と対となるステートテーブル363が実装されている。 On the other hand, the kernel 351 of the server 350, the hook bottom-half 361, the service call module 362, and the state table 363 serving as a state table 319 that is implemented in the kernel portion 351 of the repeater 300 pairs are mounted .

上記フックボトムハーフ361は、ボトムハーフハンドラ(カーネル内で待ち行列に登録されたルーチンを処理する仕組み)を備え、上記サービス呼出モジュール362の呼びだしに応じて、該当するサービスモジュールをCPUの空き時間に実行し、その処理結果をサービスモジュールに返す。 The hook bottom-half 361 is provided with a bottom half handler (mechanism for processing routines queued in the kernel), in response to calls to the service call module 362, the appropriate service module to idle time of the CPU run, and returns the processing result to the service module.

また、該実行結果に応じて上記ステートテーブル363を更新する。 Also, updating the state table 363 in accordance with the execution result.
上記サービス呼出モジュール362は、デーモン351との通信を同図に示されるカーネルソケット364を介して行なう。 The service calling module 362 communicates with daemons 351 via the kernel socket 364 shown in FIG.

なお、同図に示されるソケット(CT−NETLINK)365は、先程も説明したが、サーバ350のカーネル351に実装されるステートテーブル363と中継装置300のカーネル部301に実装されるステートテーブル319との同期をとるための仕組みである。 Note that the socket (CT-NETLINK) 365 shown in the figure, has been also described earlier, the state table 319 that is implemented in the kernel portion 301 of state table 363 and the relay device 300 that is implemented in the kernel 351 of the server 350 it is a mechanism for synchronization.

上記ステートテーブル363は、現在認識されているコネクションの状態を管理するテーブルであり、本例においては、今後コネクション作成が期待されるコネクションの情報を管理する不図示のexpectテーブルと共に用いる。 The state table 363 is a table for managing the status of the connections that are currently recognized, in this example, use with expect table (not shown) for managing information of a connection to be expected in the future connection creation. なお、ステートテーブル319は単独で用いる。 Note that the state table 319 is used alone.

図4は、上記ステートテーブル319、363及び、該ステートテーブル363と共に用いる図3に不図示の上記expectテーブルのテーブル例である。 Figure 4 shows the above state tables 319,363 and is a table example above expect table not shown in FIG. 3 for use with the state table 363.
図4(a)は、上記ステートテーブル363(または319)の一例である。 4 (a) is an example of the state table 363 (or 319).

同図に示されるステートテーブル400には、コネクションを識別するための「上りtuple」欄401に現在認識されているコネクションの識別記号「T1」が登録され、当該「T1」のコネクションの属性情報が、「SRC IP」欄402、「SRC PORT」欄403、「DST IP」欄404、「DST PORT」欄405、「プロトコル種別」欄406、「L3status」欄407、「L4status」欄408、「helper」欄409、「expecting」欄410、「master」欄411、及び「timeout」欄412に設定されている。 The state table 400 shown in the drawing, an identification symbol of connections that are currently recognized in the "up tuple" column 401, "T1" is registered to identify the connection, the attribute information of the connection of the "T1" "SRC IP" column 402, "SRC PORT" column 403, "DST IP" column 404, "DST PORT" column 405, "protocol type" column 406, "L3status" column 407, "L4status" column 408, "helper "column 409," expecting "column 410, it is set to" master "column 411, and" timeout "column 412.

図4(b)は、上記expectテーブルの一例である。 4 (b) is an example of the above expect table.
同図に示されるexpectテーブル450には、当該コネクションを期待した対象が「expecting」欄451に登録され、該期待したコネクションの情報が「SRC IP」欄452、「SRC PORT」欄453、「DST IP」欄454、「DST PORT」欄455、及び「プロトコル種別」欄456に設定される。 To expect table 450 shown in the figure, subjects who expect the connection is registered in the "expecting" column 451, information of the connection that the expected "SRC IP" column 452, "SRC PORT" column 453, "DST IP "field 454 is set to" DST PORT "column 455, and" protocol type "column 456.

このexpectテーブル450に設定された期待コネクションは、ステートテーブル400に新たに設定される候補として利用される。 The expect set expected connection to table 450 is used as a candidate to be newly set in the state table 400.
続いて、上記構成の下で行なわれる各処理の流れを図3を参照しながら以下に説明する。 Next, described below with reference to FIG. 3 the flow of the process performed under the above-described configuration.

図5は、図3の中継装置300のカーネル部301に示されるパケットの処理経路の処理フローである。 Figure 5 is a process flow of the processing paths of packet shown in kernel unit 301 of the relay device 300 of FIG. 以下の説明において図3と対応する個所には、図3の符号を用いて説明する。 The locations corresponding to FIG 3 in the following description, with reference to reference numerals of FIG.

IF1からパケットを受信すると、先ず最初にフック処理部311が当該パケットに対し、フック情報テーブル317に登録してある処理を順じ実行する(S500)。 When a packet is received from the IF1, firstly the hook processing unit 311 to the packet, the process registered in the hook information table 317 to execute sequentially applies (S500). 本例ではフック情報テーブル#1(図3のフック情報テーブル317)」にコネクショントラッキング処理が登録されているので、フック処理部311は、不図示のフックハンドラ(図3のフックハンドラ318)によりコネクショントラッキング処理を実行する。 Since connection tracking process in the hook information table # 1 (hook information table 317 in FIG. 3) "in this example are registered, hook processing unit 311, a connection by an unillustrated hook handler (hook handler 318 of FIG. 3) performing a tracking process.

このコネクショントラッキング処理では、例えば受信パケットの状態や、その受信パケットに対応するセッションの状態に応じて、パケットbyパケット処理や外部委託処理が行なわれる。 In this connection tracking process, for example, the state of the received packet, depending on the state of the session corresponding to the received packet, the packet-by-packet processing and outsourcing process is performed. そして、上記パケットbyパケット処理や外部委託処理が終了すると続く処理部に送られ、次の受信パケットに対して上記コネクショントラッキング処理を行なう。 Then, the packet-by-packet processing and outsourced processing is sent to the processing unit that leads to end, it performs the connection tracking process with the next received packet. 特に上記外部委託処理が実行された場合は、当該パケットを一時的に処理依頼キュー322に渡し、サーバ350にその処理を依頼できるので、その間、当該フック処理部311は次のパケットを受信して処理を実行できる。 Especially when the outsourcing process is executed, pass temporarily process request queue 322 the packet, it is possible to request that processing to the server 350, during which the hook processing unit 311 receives the next packet processing can execute. よって、続くパケットが外部委託処理を要するものであれば、当該パケットを上記処理依頼キュー322に更に保持させることができるので、続く受信パケットの中継処理を円滑に行なえる。 Therefore, if the subsequent packet requires outsourcing process, since the packet can be further held in the processing request queue 322, smoothly perform the relay processing the subsequent received packets. なお、外部委託処理が反映されたパケットは、当該外部委託処理の結果が廃棄でなければ当該フック処理部311において、フック情報テーブル#1に登録された残りの処理が実行される。 The packet that outsourcing process is reflected as a result of the outsourcing process in the hook processing section 311 if not discarded, the remaining processes registered in the hook information table # 1 is executed.

続いて当該パケットに対する処理はルーティング処理部316−1に引き継がれ、該ルーティング処理部316−1はルーティングテーブルを検索し(S502)、当該パケットが自局宛てのパケットであるか否かを判定する(S504)。 Then processing for the packet is taken over by the routing processing unit 316-1, the routing processing unit 316-1 searches the routing table (S502), the packet is judged whether the packet addressed to the station (S504).

当該パケットが自局宛てであった場合、当該パケットに対する処理はフック処理部312に引き継がれ、該フック処理部312は当該パケットに対し、フック情報テーブル317に登録してある処理を順じ実行する(S506)。 If the packet was addressed to the station itself, processing for the packet is taken over by the hook processing unit 312, the hook processing unit 312 to the packet, sequentially applies executes processing registered in the hook information table 317 (S506). 本例では、該フック処理部312は、フック情報テーブル#2に登録されているフィルタ処理を順じ実行する。 In this example, the hook processing unit 312 sequentially applies perform the filter processes registered in the hook information table # 2. そして最終的に、許諾されたパケットのみをアプリケーションで受信する(S508)。 And finally, it receives only permitted packets by the application (S508).

一方、ステップS504で当該パケットが自局宛てでないと判定された場合、当該パケットに対する処理はフック処理部313に引き継がれ、該フック処理部313は当該パケットに対し、フック情報テーブル317に登録してある処理を順じ実行する(S510)。 On the other hand, if the packet is determined not to be addressed to the station itself in step S504, processing for the packet is taken over by the hook processing unit 313, the hook processing unit 313 to the packet, registered in the hook information table 317 a certain processing sequentially applies to run (S510). 本例では、該フック処理部313は、フック情報テーブル#5に登録されているフィルタ処理を順じ実行する。 In this example, the hook processing unit 313 sequentially applies perform the filter processes registered in the hook information table # 5. そして更に、当該パケットに対する処理はフック処理部315に引き継がれ、該フック処理部315は当該パケットに対し、フック情報テーブル317に登録してある処理を順じ実行する(S512)。 And further processing for the packet is taken over by the hook processing unit 315, the hook processing unit 315 to the packet, the process registered in the hook information table 317 to execute sequentially applies (S512). 本例では、該フック処理部315は、フック情報テーブル#4に登録されているフィルタ処理を順じ実行する。 In this example, the hook processing unit 315 sequentially applies perform the filter processes registered in the hook information table # 4. そして最終的に、許諾されたパケットのみをIF2へ送信する(S514)。 And finally, it transmits only permitted packets to IF2 (S514).

また、アプリケーションからパケットが送信されると、先ず最初にフック処理部314が、当該パケットに対し、フック情報テーブルに登録してある処理を順じ実行する。 Further, when a packet from the application is transmitted, first hook processing unit 314, to the packet, sequentially applies executes processing registered in the hook information table. 本例では、フック処理部314は、フック情報テーブル#3に登録されているコネクショントラッキング処理を順じ実行する(S516)。 In this embodiment, the hook processing unit 314 sequentially applies executes connection tracking processes registered in the hook information table # 3 (S516). なお、当該コネクショントラッキング処理についてはフック処理部311と同等の処理を行なうものであるため、ここでの詳しい説明は省略する。 Since the relevant connection tracking process and performs the process equivalent to the hook processing unit 311, a detailed description thereof is omitted here.

続いてルーティング処理部316−2においてルーティング処理が実行され(S518)、更に、当該パケットに対する処理はフック処理部315に引き継がれ、該フック処理部315は当該パケットに対し、フック情報テーブル317に登録してある処理を順じ実行する(S512)。 Subsequently routing in the routing processing unit 316-2 and is executed (S518), further processing for the packet is taken over by the hook processing unit 315, the hook processing unit 315 to the packet, registered in the hook information table 317 processing is executed sequentially applies you have (S512). 本例では、該フック処理部315は、フック情報テーブル#4に登録されているフィルタ処理を順じ実行する。 In this example, the hook processing unit 315 sequentially applies perform the filter processes registered in the hook information table # 4. そして最終的に、許諾されたパケットのみをIF2へ送信する(S514)。 And finally, it transmits only permitted packets to IF2 (S514).

図6は、シグナリングシーケンスの一例である。 Figure 6 is an example of a signaling sequence.
当該シグナリングシーケンスは、サーバ350で提供しているサービス処理を中継装置300側から利用可能なように設定する処理である。 The signaling sequence is a process of setting a service process that is provided by the server 350 as available from the relay apparatus 300 side.

先ず、サーバ350でサービス起動コマンド359の受付処理を行なう(SS600)。 First, perform the reception processing of the service startup command 359 on the server 350 (SS600).
続いて、上記受付処理に基づいてカーネル351のサービス呼出モジュール362を起動する(SS602)。 Then, to start the service call module 362 of the kernel 351 based on the reception processing (SS602).

更に続いて、カーネル351のフックボトムハーフ361で提供するサービスモジュールを起動する(SS604)。 Further subsequently, it starts the service module that provides a hook bottom-half 361 of the kernel 351 (SS604). この処理では、外部サービス処理用としてサービスモジュールをカーネル部351に組み込む。 In this process, incorporate service module into the kernel section 351 as an external service process.

そして、サービスとトンネル番号とを対応付けてから、払い出しを行ない(SS606)、当該サービスの開始を通知するサービス開始通知を中継装置300に送信する(SS608)。 Then, from the correspondence between services and the tunnel number, it performs a payout (SS606), and transmits a service start notification to notify start of the service to the relay device 300 (SS608).

中継装置300では、サーバ350から上記サービス開始通知を受信すると当該外部サービス処理に対するサービス情報(例えば、外部サービス処理の識別子/当該外部サービス処理が適用されるパケットの種類(例えは送信元アドレスや送信先アドレスなど)/当該外部サービス処理を中継装置300から委託するサーバ350のIPアドレスやトンネル番号など)を振分表309に登録する(SF600)。 In the relay apparatus 300, the service information when receiving the service start notification from the server 350 with respect to the external service process (e.g., external service process identifier / the type of packet external service process is applied (for example the source address and the transmission previous address) / the external service processing the IP address and the tunnel number of the server 350 to entrust the repeater 300) to register the distribution table 309 (SF600).

更に、例えば外部委託処理の実行の有無を上記フックハンドラ318で切り替え設定できるようにしている場合には、該当のパケットを処理依頼キュー322に転送するように上記フックハンドラ318を設定する(SF602)。 Furthermore, for example, when the presence or absence of execution of the outsourced processes are to be switching setting in the hook handler 318 sets the hook handler 318 to transfer the corresponding packet to the process request queue 322 (SF602) .

そして、中継装置350は、上記サービス開始通知の受け付けをした旨をサービス開始応答としてサーバ350に返信する(SF604)。 Then, the relay device 350, replies to the server 350 that it has the reception of the service start notification as a service start response (SF604).
サーバ350では、中継装置300から上記サービス開始応答を受信すると、当該外部サービス処理の登録結果をコマンドラインに表示する(SS610)。 In the server 350, when receiving the service start response from the relay device 300, and displays a registration result of the external service processing on the command line (SS610).

図7は、上記シグナリングシーケンスにおいてサーバ350と中継装置300間で取り交わされるメッセージの例である。 Figure 7 shows an example of messages exchanged between the server 350 and the relay device 300 in the signaling sequence.
図7(a)はメッセージフォーマットであり、図7(b)は上記サービス開始通知のメッセージ内容の例であり、図7(c)は上記サービス開始応答のメッセージ内容の例である。 7 (a) is a message format, FIG. 7 (b) is an example of message content of the service start notification, FIG. 7 (c) is an example of message content of the service start response.

図7(a)のメッセージフォーマット700は、「共通ヘッダ」701に、各メッセージの送信元機器のIPアドレスを格納する「送信元IPアドレス」の欄702と、各メッセージの送信先機器のIPアドレスを格納する「送信先IPアドレス」の欄703と、各メッセージの種別を格納する「種別」の欄704と、メッセージ長を格納する「メッセージ長」の欄705が構成されている。 Message format 700 of FIG. 7 (a), the "common header" 701, a column 702 of the "source IP address" to store the IP address of the source device of each message, the IP address of the destination device of the message a column 703 of "destination IP address" for storing, a column 704 of the "type" for storing the type of each message, field 705 of the "message length" to store the message length is constructed. また、「メッセージ固有部」の欄706に、サービスの開始や停止を示す情報を格納する「詳細コード」707と、サーバ350から中継装置300に提供する外部サービスの識別情報を格納する「サービスID」の欄708と、サーバ350から提供される外部サービスに対する中継装置300の受け入れ結果を示す情報を格納する「処理結果」709の欄が構成されている。 Further, in the column 706 of the "message-specific portion", a "detail code" 707 which stores information indicating the start and stop of the service, to store identification information of an external service provided by the server 350 to the relay device 300 "Service ID a column 708 of "stores information indicating the acceptance results in the relay apparatus 300 to an external service provided by the server 350" processing result "column 709 is formed.

図7(b)に示されるように、サービス開始通知のメッセージ710には、上記メッセージフォーマット700に従って以下の内容を格納する。 As shown in FIG. 7 (b), the message 710 of the service start notification, stores the following contents in accordance with the above message format 700.
上記「送信元IPアドレス」の欄702に、当該サービス開始通知メッセージ710の送信元機器である「サーバ350のIPアドレス」を格納し、上記「送信先IPアドレス」の欄703に、当該サービス開始通知メッセージ710の送信先機器である「中継装置300のIPアドレス」を格納し、上記「種別」の欄704に、サービス開始通知を知らせる情報を格納し、上記「メッセージ長」の欄705にメッセージ長を格納する。 In the column 702 of the "source IP address", and stores a transmission source device of the service start notification message 710 "IP address of the server 350 ', in the column 703 of the" destination IP address ", the service start a transmission destination device notification message 710 stores "IP address of the relay device 300" in the column 704 of the "type", and stores information indicating the service start notification message in the column 705 of the "message length" to store the length. また更に、上記「詳細コード」707の欄に、サービスの開始や停止を示す情報を格納し、上記「サービスID」の欄708に、サーバ350から中継装置300に提供する外部サービスの識別情報(外部サービスの識別子や当該外部サービスを適用するパケットの種類)を格納する。 Furthermore, in the column of the "Detailed code" 707 stores information indicating the start and stop services, in the column 708 of the "Service ID", the external service provided from the server 350 to the relay device 300 identification information ( storing type) packet to apply an external service identifier and the external service. なお、上記「処理結果」709の欄はサービス開始通知においては未使用である。 Incidentally, the column of the "process result" 709 in the service start notification is not used.

図7(c)に示されるように、サービス開始応答のメッセージ720には、上記メッセージフォーマット700に従って以下の内容を格納する。 As shown in FIG. 7 (c), the message 720 of the service start response, stores the following contents in accordance with the above message format 700.
上記「送信元IPアドレス」の欄702に、当該サービス応答通知メッセージ720を送信する送信元機器である「中継装置300のIPアドレス」を格納し、上記「送信先IPアドレス」の欄703に、当該サービス開始通知メッセージ710の送信先機器である「サーバ350のIPアドレス」を格納し、上記「種別」の欄704に、サービス開始の応答を示す情報を格納し、上記「メッセージ長」の欄705にメッセージ長を格納する。 In the column 702 of the "source IP address", and stores "IP address of the relay device 300" is the source device that transmits the service response notification message 720, the column 703 of the "destination IP address", stores a transmission destination device of the service start notification message 710 "IP address of the server 350 ', in the column 704 of the" type ", and stores information indicating the response of the service start, the column of the" message length " and stores the message length to 705. また更に、上記「詳細コード」707の欄に、サービスの開始や停止を示す情報を格納し、上記「サービスID」の欄708に、中継装置300で利用するサーバ350の外部サービスの識別情報を格納し、上記「処理結果」709の欄に正常に処理されたかどうかを示す情報を格納する。 Furthermore, in the column of the "Detailed code" 707 stores information indicating the start and stop services, in the column 708 of the "Service ID", the identification information of the external service of the server 350 to be used in the repeater 300 store, stores information indicating whether processed successfully in the column of "process result" 709.

図8は、中継装置300のフック処理部311(またはフック処理部314)におけるコネクショントラッキング処理の実行時に外部委託処理を行なった場合の、中継装置300とサーバ350におけるパケット処理シーケンスである。 8, the case of performing the outsourced processes during the execution of the connection tracking process in the hook processing unit 311 of the relay device 300 (or the hook processing unit 314), a packet processing sequence in the relay device 300 and the server 350.

先ず、中継装置300のフック処理部311(またはフック処理部314)でパケットを受信する(S800)。 First, receiving the packet at the hook processing unit 311 of the relay device 300 (or the hook processing unit 314) (S800).
続いて、上記フック処理部311(またはフック処理部314)でのコネクショントラッキング処理の実行により、当該パケットが外部委託処理を行なうべきパケットであるか否かチェックし(S802)、更に、サービス対象IFから受信したパケットであるか否かチェックする(S804)。 Subsequently, by executing the connection tracking process in the hook processing unit 311 (or the hook processing unit 314) checks whether the packet is a packet to perform outsourced processing (S802), further, the service object IF Check whether the packet received from (S804).

何れもYESである場合、当該パケットを処理依頼キュー322に渡し、処理依頼キュー322からプロキシスレッド305に当該パケットが引き渡される。 If both are YES, then pass the packet to the process request queue 322, the packet is transmitted from the processing request queue 322 to the proxy thread 305. プロキシスレッド305では当該パケットにおいて外部サービス処理に必要な情報(部分パケット情報)を抽出し、当該部分パケット情報及び、受信表308及び振分表309に登録された情報を基に、処理依頼メッセージを作成する(S806)。 Extracted in proxy Thread 305 the packet information necessary to external service process (partial packet information), and the partial packet information, based on information registered in the reception table 308 and the distribution table 309, the processing request message to create (S806). この際、送信先となるサーバ350のIPアドレスが共に同じである場合は、複数の処理依頼をまとめて一つの処理依頼メッセージに格納することもできる。 At this time, if the IP address of the server 350 as a transmission destination are both the same it can also be stored in one of the processing request message together multiple processing request.

そして、上記処理依頼メッセージをサーバ350へ送信する(S808)。 Then, send the processing request message to the server 350 (S808).
サーバ350では、中継装置300から送信された上記処理依頼メッセージをプロキシスレッド355で受け取ると、当該処理依頼メッセージによって指定されている処理に該当するサービスモジュールをサービス呼出モジュール362を介してフックボトムハーフ361から呼び出し、例えばCPUの空き時間などを利用して処理を実行させる(S810)。 In the server 350 receives the processing request message transmitted from the relay device 300 by the proxy thread 355, hooks the bottom half 361 of the service module corresponding to the process designated by the process request message via a service call module 362 It calls from executing a process, for example, using, for example, idle time of CPU (S810). このフックボトムハーフ361における処理は、他の処理を優先的に実行させて、それらの処理の空き時間などにフックボトムハーフに登録されるサービスモジュールを実行させる。 The processing in the hook bottom-half 361 is preferentially allowed to execute other processing, thereby executing the service module that is registered in the hook bottom-half to such idle time of their processing.

続いて、フックボトムハーフ361における当該サービスモジュールの処理結果を上記サービス呼出モジュール362を介してプロキシスレッド355に渡し、その処理結果がステートテーブルを更新するものであればステートテーブル363を更新する(S812)。 Subsequently, the processing result of the service module in the hook bottom-half 361 passes to proxy thread 355 through the service call module 362, the processing result is to update the state table 363 as long as it updates the state table (S812 ).

そして、プロキシスレッド355では、当該処理結果及び、送信表358及び受信表359に登録された情報を基に、処理応答メッセージを作成し、該処理応答メッセージの処理依頼を行なった中継装置300へ送信する(S814)。 Then, the proxy thread 355, the processing result and, on the basis of the information registered in the transmission table 358 and the receiving table 359, creates a processing response message, transmitted to the repeater 300 which performs a processing request of the transaction response message to (S814). この送信により、中継装置300の処理依頼キュー322では、当該処理結果に応じて当該パケットが破棄されたり、当該処理結果が当該パケットに反映されて、元のフック処理部311(またはフック処理部314)に当該反映後のパケットが返されたりする。 This transmission, the process request queue 322 of the relay device 300, or the packet is discarded in accordance with the processing result, the processing result is reflected in the packet, the original hook processing unit 311 (or the hook processing unit 314 packet after the reflected or returned to).

更に、ステートテーブル363の更新が行なわれた場合は、当該更新情報を含むテーブル同期メッセージがサーバ350で作成され(S816)、該テーブル同期メッセージが中継装置300へ送信される(818)。 Further, if the update of the state table 363 is performed, the table synchronization message including the update information created by the server 350 (S 816), the table synchronization message is transmitted to the relay apparatus 300 (818).

中継装置300は、上記テーブル同期メッセージをサーバ350から受け取ると、中継装置300のステートテーブル319に当該更新情報を反映し(S820)、テーブル同期応答メッセージをサーバ350に返す(S822)。 Repeater 300 receives the table synchronization message from the server 350 to reflect the updated information in the state table 319 of the relay device 300 (S820), and returns the table synchronization reply message to the server 350 (S822). こうして、互いのステートテーブルの同期をとることができる。 Thus, it is possible to synchronize each other's state table.

そして、中継装置300は、パケット中継処理を行なう(S824)。 The relay device 300 performs packet relay processing (S824).
図9及び図10に、上記各種のメッセージの例を示す。 9 and 10 show examples of the various messages.
図9(a)は、上記処理依頼メッセージの例である。 9 (a) is an example of the processing request message.

図6のメッセージフォーマットと比較すると、本処理依頼メッセージ900は、「種別」901の欄に処理依頼メッセージを示す情報が格納され、「シーケンス番号」の欄902に本処理依頼のシーケンス番号が格納され、「MARK値」の欄903にサービス呼出元識別子が格納される。 Compared to the message format of FIG. 6, the processing request message 900 is stored information indicating the process request message in the column of "type" 901, the sequence number of the processing request in the column 902 of the "sequence number" is stored , the service calling identifier in the column 903 of "MARK value" is stored. そして、一つの処理依頼メッセージに対し処理依頼を複数まとめて格納させることができる。 Then, it is possible to store the processing request plurality collectively for one processing request message.

図9(b)は、上記処理応答メッセージの例である。 9 (b) is an example of the processing response message.
図6のメッセージフォーマットと比較すると、本処理応答メッセージ950は、「種別」951の欄に処理応答メッセージを示す情報が格納され、「シーケンス番号」の欄952に本処理依頼のシーケンス番号が格納され、「MARK値」の欄953にサービス呼出元識別子が格納される。 Compared to the message format of FIG. 6, the processing response message 950 is stored information indicating a processing response message in the column of "type" 951, the sequence number of the processing request in the column 952 of the "sequence number" is stored , the service calling identifier in the column 953 of "MARK value" is stored. そして、これまた一つの処理応答メッセージに対し処理応答を複数まとめて格納させることができる。 And this also can be stored a processing response plurality collectively for one processing response message.

図10(a)は、上記テーブル同期メッセージの例である。 10 (a) is an example of the table synchronization message.
本テーブル同期メッセージ1000は、「種別」の欄1001にテーブル同期メッセージを示す情報が格納され、「サービスID」の欄1002に、同期するテーブルを認識するために使用する対象サービスの識別子が格納され、「メッセージタイプ」の欄1003に更新や削除等のメッセージタイプが格納される。 This table synchronization message 1000 contains information indicating the "type" column 1001 table synchronization message, in the column 1002 of "service ID", the identifier of the target service to be used to recognize a table to synchronize it is stored , message type of update or delete, etc. in the column 1003 of the "message type" is stored. そして、実際の更新情報が「オプション属性」の欄1004に格納される。 Then, the actual update information is stored in the column 1004 of the "optional attributes".

図10(b)は、上記テーブル同期応答メッセージの例である。 10 (b) is an example of the table synchronization reply message.
本テーブル同期メッセージ1050は、「種別」の欄1051にテーブル同期応答メッセージを示す情報が格納され、「サービスID」の欄1052に、同期するテーブルを認識するために使用する対象サービスの識別子が格納され、「処理結果」の欄1053に更新の結果(正常や異常など)が格納される。 This table synchronization message 1050 contains information indicating the "type" table synchronization reply message in the column 1051 of the column 1052 of "service ID", the identifier of the target service to be used to recognize a table to synchronize stores is, "process result" column 1053 in the update result (such as normal or abnormal) is stored.

図11は、中継装置350のフックハンドラ318によって実行されるコネクショントラッキング処理の一例である。 Figure 11 is an example of the connection tracking processing executed by the hook handler 318 of the relay device 350.
フック処理部311(またはフック処理部314)でパケットを受信し、フック情報テーブル317に指定されたコネクショントラッキング処理が呼び出されると、フックハンドラ318により以下の処理が実行される。 Receiving a packet at the hook processing unit 311 (or the hook processing unit 314), the connection tracking process specified in the hook information table 317 is called, the following processing is executed by the hook handler 318.

先ず、当該パケットがフラグメントパケットであるか否かパケットヘッダから判定される(S1100)。 First, the packet is determined from whether the packet header or a fragment packet (S1100).
当該パケットがフラグメントパケットであると判定された場合、仮想サービス処理部が呼び出され、該仮想サービス処理部に当該パケットに対する処理が引き継がれる(S1102)。 If the packet is determined to be a fragment packet, the virtual service processing unit is called, processing for the packet is handed over to the virtual service processing unit (S1102). 上記仮想サービス処理部に対する当該パケット処理の引き継ぎは、当該パケットが処理依頼キュー322に渡される事によって行なわれる。 It takes over the packet processing for the virtual service processing unit is performed by which the packet is passed to process request queue 322.

ステップS1100において、当該パケットがフラグメントパケットでないと判定された場合、続いて当該パケットの状態を見るために、先ず、パケットヘッダの「送信元IPアドレス(SRC IP)」、「送信元ポート番号(SRC PORT)」、「送信先IPアドレス(DST IP)」、及び「送信先ポート番号(DST PORT)」をキーにステートテーブル319が検索される(S1104)。 In step S1100, if the packet is determined not to be fragment packet, followed in order to see the state of the packet, first, the "transmission source IP address (SRC IP)" in the packet header, "a source port number (SRC pORT) "," destination IP address (DST IP) ", and" destination port number (DST pORT) "state table 319 to the key is retrieved (S1104).

そして、当該パケットが中継装置300内で処理できるパケットであるか否かが、当該パケット及び上記ステートテーブル319の検索によりヒットした属性情報を基に判定される(S1106)。 Then, whether the packet is a packet that can be processed in the repeater 300 is determined based on the attribute information hit by the search of the packet and the state table 319 (S1106).

本例では、L3コネクションの状態が「IPS_ASSURED」であり、L4コネクションの状態が「eES」であり、且つTCP(Transmission Control Protocol)フラグがSYN/FIN/RSTの何れかでない場合を、中継装置内で処理可能なパケットとする判定基準にしている。 In this example, a L3 connection state is "IPS_ASSURED", L4 connection state is "eES", and TCP case (Transmission Control Protocol) flag is not either SYN / FIN / RST, the relay apparatus in that the criteria to be processable packet. よって、これからコネクションを確立しようとするパケット(TCPフラグがSYNであるパケット)やコネクションを切るパケット(TCPフラグがFINであるパケット)などは上記判定基準を満たさないので、このような場合は、仮想サービス処理部が呼び出され、該仮想サービス処理部に当該パケットに対する処理が引き継がれる(S1108)。 Therefore, since such (packet is TCP flags FIN) packet to cut and connections (packet is TCP flags SYN) packets to be established in the future connection does not satisfy the criterion, in such a case, the virtual service processing unit is called, processing for the packet is handed over to the virtual service processing unit (S1108).

一方、上記判定基準を満たすパケットであった場合は、ステートテーブル319のセッションをタイマリフレッシュ(タイムアウト値の更新)する(S1110)。 On the other hand, if a packet satisfying the criteria, the session state table 319 to the timer refresh (update time-out value) (S1110).
そして当該コネクショントラッキング処理の呼出元へ処理が戻され(S1112)、フック情報テーブルに続く処理があれば当該パケットに対してその処理が実行される。 The process to the call source of the connection tracking process is returned (S1112), the processing on the packet is performed if any processing subsequent to hook information table.

なお、上記仮想サービス処理部に対して処理が引き継がれた場合は、次のパケットがステップS1100から実行される。 The processing with respect to the virtual service processing unit when carried over, the next packet is executed at step S1100.
図12は、上記コネクショントラッキング処理において処理を引き継いだサーバ350の、上記コネクショントラキング処理の引継ぎ処理例である。 12, the server 350 takes over the process in the connection tracking process, a takeover processing example of the connection tiger King processing.

中継装置300から処理依頼メッセージを受信すると、先ず、デフラグメント処理の依頼であるか否かを判定する(S1200)。 Upon reception of the processing request message from the relay device 300 first determines whether the request for defragment processing (S1200).
デフラグメント処理であると判定した場合は、上記処理依頼メッセージに格納されている必要情報(フラグメントパケットの全体とすることも可能であるが、本例ではパケット全体またはフラグメントパケットから取り出した必要情報が処理依頼メッセージに格納されているものとする)に対してデフラグメント処理を実行する(S1202)。 If it is determined that the de-fragmentation, it is also possible to overall required information (fragment packet stored in the processing request message, necessary information extracted from the entire packet or fragment packet in this example is processing request is assumed to be stored in the message) to defragment process on (S1202).

そして、当該必要情報に対するデフラグメント処理を終えると、当該必要情報に関する全ての情報のデフラグメント処理が完了したか否か判定し(S1204)、完了していないと判定した場合は、当該必要情報をサーバ350で保持し、当該必要情報をサーバ350で保持している旨を中継装置300に対して送信する(S1206)。 When completing the defragmenting processing for the required information, the necessary information determining whether defragment processing of all the information is completed relates to (S1204), if it is determined that it is not completed, the necessary information held by the server 350, it transmits the effect that holds the necessary information in the server 350 to the relay apparatus 300 (S1206). この処理により、サーバ350に保持されている上記必要情報に関連するフラグメントパケットが中継装置300で受信されると、中継装置350から当該サーバ350に対してその受信パケットの必要情報が送信され、当該サーバ350ではこれらの必要情報に対してデフラグメント処理を繰り返し実行する。 By the process, if the fragment packets associated with the necessary information stored in the server 350 is received by the relay station 300, necessary information of the received packet to the server 350 is transmitted from the relay device 350, the repeatedly defragment process for these necessary information in the server 350. そして、例えば予め決めた所定時間内に当該デフラグメント処理対象の全ての必要情報が当該サーバ350で受信されることにより、デフラグメント処理が完了する。 Then, for example, by predetermined all necessary information for the defragmenting processed within a predetermined time is received by the server 350, defragment processing is completed.

そして、ステップS1200においてデフラグメント処理ではないと判定した場合、またはステップS1204においてデフラグメントが完了したと判定した場合、当該必要情報の属するコネクションを、ステートテーブル363から検索する(S1208)。 When it is determined not to be defragment processing in step S1200, or if it is determined that the defragmentation is completed in step S1204, the connection belongs the necessary information, retrieved from the state table 363 (S1208). この検索は、当該必要情報に付加された「送信元IPアドレス(SRC IP)」、「送信元ポート番号(SRC PORT)」、「送信先IPアドレス(DST IP)」、及び「送信先ポート番号(DST PORT)」をキーに検索できる。 This search, the appended required information "transmission source IP address (SRC IP)", "source port number (SRC PORT)", "destination IP address (DST IP)", and "destination port number (DST PORT) "and can be searched in the key.

ここでステートテーブル363に当該コネクションが登録されているか否かを判定し(S1210)、ない場合は、当該必要情報に含まれているコネクションの属性情報をステートテーブル363に新規登録する(S1212)。 Wherein said connection in the state table 363 to determine whether or not it is registered (S1210), when there is no newly registers the attribute information of the connection that is included in the necessary information to the state table 363 (S1212).

ステップS1210において登録があると判定された場合、或いはステップS1212においてステートテーブル363に新規登録されると、図4(a)のステートテーブル400の「L3status」欄407の設定情報を参考に、当該必要情報のパケットのセッションにおけるイベント特性を決定する(S1214)。 If it is determined that there is registered in the step S1210, or when it is newly registered in the state table 363 at step S1212, the reference to "L3status" setting information field 407 of the state table 400 of FIG. 4 (a), the required determining the events characteristic of the information packet session (S1214). 例えば、「当該パケットがオリジナル方向であるか」、「当該パケットがリプライ方向であるか」、「パケットが両方向に流れたか」、「期待しているコネクションであるか」、または「速くエクスパイアしてしまわないようにセットしたか」などの設定情報に応じてイベント特性を決め、当該イベント特性をテーブルに設定する。 For example, "whether the packet is an original direction", "whether the packet is a reply direction", "the packet flows in both directions", "whether the connection expects", or "faster expire decide event characteristics according to the set so as not put away the or "configuration information such as, sets the event characteristics table.

そして、ICMP(Internet Control Message Protocol)の場合、上記イベント特性が「パケットがリプライ方向の場合に設定される(IP_CT_DIR_REPLY)」であれば当該パケットのコネクションの登録情報をステートテーブル363から削除し、それ以外のイベント特性の場合はステートテーブル363の当該コネクションのタイマを更新する(S1216)。 When the ICMP (Internet Control Message Protocol), remove if the event characteristics "packet is set when the reply direction (IP_CT_DIR_REPLY)" registration information of the connection of the packet from the state table 363, it for event characteristics other than to update the timer of the connection state table 363 (S1216).

また、UDP(User Datagram Protocol)の場合、上記「L3status」欄407の設定情報が「パケットが両方向に流れた状態(IPS_SEEN_REPLY)」であれば「IPS_ASSURED」を上記「L3status」欄407に設定し、更に当該コネクションのタイマをリフレッシュする。 Also, in the case of UDP (User Datagram Protocol), if the "state where the packet flows in both directions (IPS_SEEN_REPLY)" "L3status" setting information field 407 to "IPS_ASSURED" set to the "L3status" column 407, further refresh the connection timer. それ以外の場合はステートテーブル363の当該コネクションのタイマをリフレッシュする(S1218)。 Otherwise refresh the timer of the connection state table 363 (S1218).

また、TCPの場合、TCPプロトコルの状態遷移表を基に「L4status」の状態を更新する。 Also, in the case of TCP, and updates the state of "L4status" based on the state transition table of the TCP protocol.
図13は、「L4status」の状態変化を示す図である。 Figure 13 is a diagram showing the state change of "L4status".

図13(a)は、上記イベント特性がオリジナル方向の場合であり、図13(b)は、上記イベント特性がリプライ方向の場合である。 13 (a) is a case where the event properties of the original direction, FIG. 13 (b), the event characteristic is the case for the reply direction.
なお、図13(c)は、TCPプロトコルの状態と上図に用いられている略号の対応表である。 Incidentally, FIG. 13 (c) is a correspondence table of symbols used in the state and the upper view of the TCP protocol.

図13(a)、図13(b)は、横軸に「L4status」の状態変化を示し、縦軸に受信パケットのTCPヘッダのフラグの種類を示している。 FIG. 13 (a), the FIG. 13 (b), the horizontal axis indicates the state change of the "L4status" indicates the type of flag in the TCP header of the received packet on the vertical axis. 但し、noneは何れのフラグもセットされていない場合である。 However, none are if not also set any flag.

例えば本受信パケットイベント特性がオリジナルであり且つフラグがsynである場合の「L4status」の以前の状態が「ssS」であったならば、「sES」に更新される。 For example, the present received packet event characteristic is original and flag if the previous state of "L4status" when it is syn is "ssS" is updated to "sES".
また、正しい手順の場合はIPS_ASSUREDを設定し、それ以外はタイマをリフレッシュする(S1220)。 In the case of correct procedure sets the IPS_ASSURED, otherwise refresh the timer (S1220).

続いて、ステートテーブル400の「helper」欄409に上位アプリケーションを更新する処理方法が定義してあるか否か判定する(S1222)。 Subsequently, it is determined whether the processing method for updating the upper application in the "helper" column 409 of state table 400 has defined (S1222).
Yesの場合、上位アプリケーションの状態を更新する(S1224)。 If Yes, the updates the state of the upper application (S1224). 図4(a)のステートテーブル400の例では、「helper」欄409に「ftp In the example of the state table 400 of FIG. 4 (a), "helper" field 409, "ftp conntrack」が設定されている。 conntrack "is set. この処理は、FTPパケットのデータ部分を参照してFTPのデータセッションを検出し、このデータセッションの情報をexpectテーブル450に登録する。 This process detects FTP data session by referring to the data portion of the FTP packet, and registers the information of the data session to expect table 450.

ステップS1222の判定結果がNoの場合、またはステップS1224の処理を終えると、パケットが「reply」の場合はステートテーブル400の「L3status」の欄407に「パケットが両方向に流れた状態(IPS_SEEN_REPLY)」を示すフラグを追加する(S1226)。 If the determination result of step S1222 is No, or when completing the process of step S1224, if the packet is "reply" in the column 407 of "L3status" in the state table 400, "a state in which the packet flows in both directions (IPS_SEEN_REPLY)" Add a flag indicating (S1226).

そして、ステートテーブル400を修正したか否か判定し(S1228)、修正していると判定された場合、当該修正個所の情報を含むテーブル同期メッセージを中継装置へ送信する(S1230)。 Then, it is determined whether or not to modify the state table 400 (S1228), when it is determined to be corrected, and transmits the table synchronization message including information of the fix point to the relay device (S1230). また修正されていないと判定された場合、処理応答を中継装置へ送信する(S1232)。 Also if it is determined not to be corrected, and transmits a processing response to the relay device (S1232).

以上説明してきた各処理はプログラムの形態で配布することもできる。 Each processing described above can also be distributed in the form of a program.
その場合、フロッピー(登録商標)ディスク、CD−ROM、DVDなどの記録媒体に上記プログラムやファイルを記録させて配布したり、或いは、公衆網等で用いられる伝送媒体を介して、そのプログラムやファイルの一部、若しくは全部を配信するようにしたりすることができる。 In that case, a floppy disk, CD-ROM, or distributed by recording the program or file in a recording medium such as a DVD, or via a transmission medium used in a public network or the like, the program or file part of, or can be or so to deliver a whole. この場合、それを受け取ったユーザは、CD−ROM装置などの読み取り装置(入出力部の一部)を利用してフロッピー(登録商標)ディスクやCD−ROMやDVDなどの可搬型記録媒体から上記プログラムやファイルを外部記録部にコピーしたり、コンピュータの通信部を介してインターネットから上記プログラムやファイルを外部記録部にコピーしたりすることができる。 Above this case, the user who received it, from the portable recording medium such as a reader floppy using (a part of the input-output unit) disk or a CD-ROM or DVD, such as CD-ROM device to copy a program or file to an external recording unit, or can copy the program and files from the Internet to an external recording unit via the communication unit of the computer. そして、CPUで実行することにより、ユーザのコンピュータ上でも上述した機能を実現できる。 By executing by a CPU, a can realize the functions described above also on the user's computer.

以上より、本発明の実施形態においては、サービス処理を行なうサーバの追加・変更等を行なう場合であってもその変更を容易に行なうことが可能になる。 Thus, in the embodiment of the present invention, even when performing such additional or changed server for performing service processing makes it possible to carry out the changes easily. また、中継処理を高速に行なわせることが可能になる。 Further, it is possible to perform relay processing faster.

(付記1) 受信パケットを対象にサービス処理を行なって上記受信パケットを中継処理する、中継部とサーバからなる階層型パケット処理システムであって、上記中継部は、上記受信パケットを対象にサービス処理を行なう所定のサービス処理部を呼び出す呼出部と、上記呼出部の呼び出しにより、上記受信パケットにサービス処理を行なう第一のサービス処理部と、上記呼出部の呼び出しにより、上記受信パケットに仮想的にサービス処理を行なう第二のサービス処理部と、を有し、上記サーバは、上記第二のサービス処理部が上記呼出部から呼び出されると、上記第二のサービス処理部の代わりに上記受信パケットに対して任意のサービス処理を行なう外部サービス処理部を、有する、ことを特徴とする階層型パケット処理システム。 (Supplementary Note 1) to relay processing the received packet by performing a service process to subject the received packet, a hierarchical packet processing system comprising a relay unit and a server, the relay unit, the service process of the received packet a calling unit for calling a predetermined service processing unit for performing, by the call of the call unit, the first service processing unit for performing the service process of the received packet, the call of the call unit, virtually in the received packet It has a second service processing unit for performing a service process, and the server, when the second service processing unit is called from the call unit, in the received packet in place of the second service processing unit hierarchical packet processing system according to claim external service processing unit for performing any service processing, with, that for.

(付記2) 上記呼出部の呼び出しにより上記第二のサービス処理部が呼び出されると、上記受信パケットは処理依頼キューに一時的にキューイングされ、続く受信パケットに対するサービス処理が上記呼出部によって続いて呼び出されたサービス処理部によって行なわれる、ことを特徴とする付記1に記載の階層型パケット処理システム。 (Supplementary Note 2) When the second service processing unit is called by a call of the call unit, the received packet is temporarily queued to a process request queue, the service processing for the subsequent received packet is followed by the call unit performed by the service processing unit called, hierarchical packet processing system of statement 1, characterized in that.

(付記3) 上記外部サービス処理部は、中継部における受信パケットの中継処理で使用されてるCPUが空いた時間を利用して上記サービス処理を行なう、ことを特徴とする付記1または2に記載の階層型パケット処理システム。 (Supplementary Note 3) The external service processing unit, by utilizing the spare time to the CPU used in the process of relaying the received packet in the relay unit performs the service process, according to Appendix 1 or 2, characterized in that hierarchical packet processing system.

(付記4) 受信パケットに対するコネクション状態を管理するコネクション状態管理部を更に有し、上記外部サービス処理部は、上記受信パケットの上位レイヤの状態を検出し、該上位レイヤの状態の検出結果を基に、上記コネクション状態管理部に管理される上記受信パケットの上記コネクション状態を更新し、上記中継部で受信された同一のコネクション受信パケットは、上記外部サービス処理部によって更新された上記コネクション状態管理部の上記コネクション状態に基づいてフィルタ処理される、ことを特徴とする付記1乃至3の何れか一つに記載の階層型パケット処理システム。 (Supplementary Note 4) further includes a connection state management unit that manages the connection state with respect to the received packet, the external service processing unit detects the state of the upper layer of the received packet, based on the detection result of the state of said upper layer to, and updates the connection state of the received packets managed in the connection state management unit, the same connection reception packet received by the relay unit, the connection state management unit that is updated by the external service processing unit It said based on the connection state is filtered, the hierarchical packet processing system according to any one of appendices 1 to 3, wherein the the.

(付記5) 上記第一のサービス処理部で行なうサービス処理をパケットbyパケット処理に限定してハードウエアで構成し、上記外部サービス処理部で行なうサービス処理をソフトウエアで構成する、ことを特徴とする付記1乃至4の何れか一つに記載の階層型パケット処理システム。 (Supplementary Note 5) constituted by the first service processing unit in by limiting the service processing to the packet by the packet processing performed hardware, configuring the service processing performed by the external service processing unit by software, and wherein the hierarchical packet processing system according to any one of appendices 1 to 4.

(付記6) 上記仮想サービス処理部は、上記受信パケットに対するサービス処理を上記サーバへ振り分けるため、サービス処理を行なうサーバの情報及び該サーバが提供するサービス処理の識別情報とをパケットの種類に応じて管理するサービスリスト管理部を有し、上記サーバは、上記サービスリスト管理部に対し、自己サーバの情報及び該自己サーバが提供するサービス処理の識別子とを転送する転送部を有する、ことを特徴とする付記1乃至5の何れか一つに記載の階層型パケット処理システム。 (Supplementary Note 6) The virtual service processing unit, for distributing the service process of the received packet to the server, in accordance with the identification information of the service processing information and the servers in the server to perform a service process to provide the type of packet having a service list management unit for managing said server, to the service list management unit has a transfer unit for transferring the identifier of the service process information, and said self server self server provides a feature that hierarchical packet processing system according to any one of appendices 1 to 5.

(付記7) 上記中継部及び上記サーバはそれぞれ、受信パケットに対するコネクション状態を管理するコネクション状態管理部と、上記相互のコネクション状態管理部によって管理される上記コネクション状態を同期する同期部と、を有し、上記サーバは、上記外部サービス処理部に上記受信パケットの上位レイヤの状態を検出させ、該上位レイヤの状態の検出結果を基に、上記コネクション状態管理部に管理される上記受信パケットの上記コネクション状態を更新し、上記中継部で受信された同一のコネクション受信パケットは、上記サーバのコネクション状態管理部の更新後の上記コネクション状態を基に上記同期部によって同期されてなる、上記中継部のコネクション状態管理部の更新後の上記コネクション状態に基づいてフィルタ処 (Supplementary Note 7) Yes respectively the relay unit and the server, the connection state management unit that manages the connection state with respect to the received packet, and a synchronization unit for synchronizing said connection state managed by the connection state management unit of the other, the and, said server to the external service processing unit to detect the state of the upper layer of the received packet, based on the detection result of the state of said upper layer, above the received packets managed in the connection state management unit updates the connection state, same connection reception packet received by the relay unit, formed by synchronized by the synchronization unit based on the connection state after updating the connection state management unit of the server, the relay unit filter the based on the connection state after updating the connection state management unit 理される、ことを特徴とする付記1乃至6の何れか一つに記載の階層型パケット処理システム。 Management is the hierarchical packet processing system according to any one of Appendices 1 to 6, characterized in that.

(付記8) 上記中継部は外部サービス処理部で必要な情報のみを受信パケットから取り出して上記サーバへ送信する、ことを特徴とする付記1乃至7の何れか一つに記載の階層型パケット処理システム。 (Supplementary Note 8) The relay unit transmits to the server retrieves only the information required by the external service processing unit from the received packet, hierarchical packet processing according to any one of Supplementary Notes 1 to 7, characterized in that system.

(付記9) 上記中継部は上記サーバへ受信パケットを送信する際に、送信先が同一のサーバである受信パケットを複数まとめて一度に送信する、ことを特徴とする付記1乃至8の何れか一つに記載の階層型パケット処理システム。 When (Supplementary Note 9) The relay unit which transmits the received packet to the server, collectively transmitted at a time a plurality of received packet destination is the same server, any one of Appendixes 1 to 8, characterized in that hierarchical packet processing system according to one.

(付記10) 受信パケットを対象にサービス処理を行なって上記受信パケットを中継処理する中継装置であって、上記受信パケットを対象にサービス処理を行なう所定のサービス処理部を呼び出す呼出部と、上記呼出部の呼び出しにより、上記受信パケットにサービス処理を行なう第一のサービス処理部と、上記呼出部の呼び出しにより、上記受信パケットに仮想的にサービス処理を行なう第二のサービス処理部と、上記受信パケットの上位レイヤの状態の検出に基づく情報を管理するコネクション状態管理部と、上記第二のサービス処理部が上記呼出部から呼び出されると、受信パケットの内の所定の情報を所定のサーバへ送信する送信部と、上記サーバから送信された情報を受信する受信部と、上記受信した結果を上記受信パケットまた A (Note 10) relay apparatus for relaying the received packet by performing a service process to target the received packet, and a calling unit for calling a predetermined service processing unit performing the service process of the received packet, the call the part of the call, the first service processing unit for performing the service process of the received packet, the call of the call unit, and a second service processing unit which performs virtually service process of the received packet, the received packet a connection state management unit for managing the information based on the detection of the state of the upper layer, when the second service processing unit is called from the call unit transmits predetermined information of the received packet to a predetermined server a transmission unit, a reception unit for receiving information transmitted from the server, the received packet also the result of the received は上記コネクション状態管理部で管理される上記情報に反映する反映部と、同一のコネクションパケットに対し、上記コネクション状態管理部で管理される上記反映後の情報に基づいてフィルタ処理するフィルタ処理部と、を有することを特徴とする中継装置。 A reflecting unit which reflects on the information managed by the connection state management unit, for the same connection packet, and filtering unit for filtering based on the information after the reflection to be managed by the connection state management unit , the relay device characterized in that it comprises a.

(付記11) 上記呼出部の呼び出しにより上記第二のサービス処理部が呼び出されると、上記受信パケットは処理依頼キューに一時的にキューイングされ、続く受信パケットに対するサービス処理が上記呼出部によって続いて呼び出されたサービス処理部によって行なわれる、ことを特徴とする付記10に記載の中継装置。 When (Supplementary Note 11) the second service processing unit by the call of the call unit is called, the received packet is temporarily queued to a process request queue, the service processing for the subsequent received packet is followed by the call unit performed by the service processing unit called relay device according to note 10, wherein the.

(付記12) 上記仮想サービス処理部は、上記受信パケットに対するサービス処理を上記サーバへ振り分けるため、サービス処理を行なうサーバの情報及び該サーバが提供するサービス処理の識別情報とをパケットの種類に応じて管理するサービスリスト管理部を有する、 (Supplementary Note 12) The virtual service processing unit, for distributing the service process of the received packet to the server, in accordance with the identification information of the service processing information and the servers in the server to perform a service process to provide the type of packet with a service list management unit that manages,
ことを特徴とする付記10または11に記載の中継装置。 Relay device according to note 10 or 11, characterized in that.

(付記13) 中継装置で受信されたパケットの内の所定の情報を上記中継装置から受信するサーバであって、コネクションの状態を管理するコネクション状態管理部と、上記パケットの上位レイヤの状態を検出してサービス処理する上位レイヤ検出部と、上記上位レイヤ検出部によって検出された上記パケットの上位レイヤの状態を基に、上記コネクション状態管理部によって管理される上記パケットのコネクション状態を更新するコネクション状態更新部と、上記サービス処理の結果及び上記コネクション状態の更新情報を上記中継装置に送信する送信部と、を有することを特徴とするサーバ。 (Supplementary Note 13) A certain information of the received packet by the relay station a server receiving from the relay device, and the connection state management unit for managing the state of the connection, detect the state of the upper layer of the packet and the upper layer detection unit for service processing, based on the state of the upper layer of the packets detected by the upper layer detecting section, a connection state of updating the connection status of the packet managed by the connection state management unit server for an update unit, a transmission unit for transmitting the update information of the result and the connection state of the service process to said relay apparatus, characterized by having a.

(付記14) 上記サーバは、サービス処理を行なうサーバの情報及び該サーバが提供するサービス処理の識別情報とをパケットの種類に応じて管理する上記中継装置のサービスリスト管理部に対し、自己サーバの情報及び該自己サーバが提供するサービス処理の識別子とを転送する転送部を有する、ことを特徴とする付記13に記載のサーバ。 (Supplementary Note 14) The server, to the service list management unit of the relay apparatus for managing in accordance with the identification information of the service processing server information and the server provides to the type of the packet to perform a service process, the self server information and server according to note 13 having a transfer portion for transferring the identifier of the service processes the self server provides it characterized.

(付記15) 受信パケットを対象にサービス処理を行なって上記受信パケットを中継処理する、中継部とサーバからなる階層型パケット処理システムで行なわれる方法であって、上記中継部は、上記受信パケットを対象にサービス処理を行なう第一または第二のサービス処理部を呼び出し、上記呼び出しにより第一のサービス処理部が呼び出された場合は、上記受信パケットにサービス処理を行ない、上記呼び出しにより第二のサービス処理部が呼び出された場合は、上記受信パケットに仮想的にサービス処理を行ない、上記サーバは、上記第二のサービス処理部が上記呼び出されると、上記第二のサービス処理部の代わりに上記受信パケットに対して実際にサービス処理を行なう、ことを特徴とする方法。 (Supplementary Note 15) to relay processing the received packet by performing a service process to subject the received packet, a process performed in a hierarchical packet processing system comprising a relay unit and a server, the relay unit, the received packet call the first or second service processing unit which performs service processing to the target, by the call if the first service processing unit is called, it performs the service process of the received packet, the second service by the call If the processor is invoked, performs virtually service process of the received packet, the server, when the second service processing unit is called the, the received instead of the second service processing unit actually perform service processing to the packet, wherein the.

(付記16) 上記呼び出しにより上記第二のサービス処理部が呼び出されると、上記受信パケットは処理依頼キューに一時的にキューイングされ、続く受信パケットに対するサービス処理が、続いて呼び出されたサービス処理部によって行なわれる、ことを特徴とする付記15に記載の方法。 When the second service processing unit is called the (Supplementary Note 16) The call the received packet is temporarily queued to a process request queue, the service processing for the subsequent received packet, followed by the called service processing unit the method of statement 15, which is characterized in that performed by.

(付記17) 上記サーバは、上記中継部における受信パケットの中継処理で使用されてるCPUが空いた時間を利用して上記サービス処理を行なう、ことを特徴とする付記15または16に記載の方法。 (Supplementary Note 17) The server performs the service process using the spare time to the CPU used in the process of relaying the received packet in the relay unit, the method according to Appendix 15 or 16, characterized in that.

(付記18) 受信パケットに対するコネクション状態をコネクション状態管理部で管理し、上記サーバは、上記受信パケットの上位レイヤの状態を検出し、該上位レイヤの状態の検出結果を基に、上記コネクション状態管理部に管理される上記受信パケットの上記コネクション状態を更新し、上記中継部は、同一のコネクション受信パケットを、上記更新された上記コネクション状態管理部の上記コネクション状態に基づいてフィルタ処理する、ことを特徴とする付記15乃至17の何れか一つに記載の方法。 (Supplementary Note 18) manages the connection state with respect to the received packet in a connection state management unit, said server detects the state of the upper layer of the received packet, based on the detection result of the state of said upper layer, the connection state management is the updating of the connection state of the received packet management section, the relay unit, the same connection reception packet is filtered based on the connection state of the connection state management unit that is the update, that the method according to any one of appendices 15 to 17, characterized.

(付記19) 上記中継部は、上記受信パケットに対するサービス処理を上記サーバへ振り分けるため、サービス処理を行なうサーバの情報及び該サーバが提供するサービス処理の識別情報とをパケットの種類に応じてサービスリスト管理部で管理し、上記サーバは、上記サービスリスト管理部に対し、自己サーバの情報及び該自己サーバが提供するサービス処理の識別子とを転送する、ことを特徴とする付記15乃至18の何れか一つに記載の方法。 (Supplementary Note 19) The relay unit, for distributing the service process of the received packet to the server, the service list according to the identification information of the service processing server information and the server provides to perform service processing to the packet type managed by the management unit, the server may be set, on the service list management unit transfers the identifier of the service processing information and said self server self server provides, any one of Appendixes 15 to 18, characterized in that the method according to one.

(付記20) 受信パケットを対象にサービス処理を行なって上記受信パケットを中継処理する、中継部とサーバで実行可能なプログラムであって、上記中継部において、上記受信パケットを対象にサービス処理を行なう第一または第二のサービス処理部を呼び出す機能と、上記呼び出しにより第一のサービス処理部が呼び出された場合は、上記受信パケットにサービス処理を行なう機能と、上記呼び出しにより第二のサービス処理部が呼び出された場合は、上記受信パケットに仮想的にサービス処理を行なう機能と、を実現し、上記サーバにおいて、上記第二のサービス処理部が上記呼び出されると、上記第二のサービス処理部の代わりに上記受信パケットに対して実際にサービス処理を行なう機能と、を実現するプログラム。 (Supplementary Note 20) performs a service process in the subject received packets to relay processing the received packet, a program executable by the relay unit and a server, in the relay unit, performs service process of the received packet a function to call the first or second service processing unit, if the first service processing unit is called by the call, a function of performing the service process of the received packet, the second service processing unit through the call If is called, to achieve the function of virtually performs the service process of the received packet, in said server, when the second service processing unit is called above, said second service processing unit program implementing the the function of actually performing the service processing to the received packet instead.

(付記21) 上記中継部において、上記呼び出しにより上記第二のサービス処理部が呼び出されると上記受信パケットを処理依頼キューに一時的にキューイングする機能と、同一のコネクション受信パケットに対するサービス処理を上記サービス処理部で行なう機能と、を実現する付記20に記載のプログラム。 (Supplementary Note 21) In the relay unit, when the second service processing unit is called by the invocation and function of temporarily queued to a process request queue the received packet, the service process of the same connection reception packet above program of statement 20 to realize a function of performing the service processing unit.

(付記22) 上記サーバにおいて、上記中継部における受信パケットの中継処理で使用されてるCPUが空いた時間を利用して上記サービス処理を行なう機能を実現する付記20または21に記載のプログラム。 (Supplementary Note 22) In the server, the program of statement 20 or 21 to implement the function by using the time used CPU is vacant relay processing of the received packet performs the service processing in the relay unit.

(付記23) 受信パケットに対するコネクション状態をコネクション状態管理部で管理する機能と、上記サーバにおいて、上記受信パケットの上位レイヤの状態を検出する機能と、該上位レイヤの状態の検出結果を基に、上記コネクション状態管理部に管理される上記受信パケットの上記コネクション状態を更新する機能と、上記中継部において、同一のコネクション受信パケットを、上記更新された上記コネクション状態管理部の上記コネクション状態に基づいてフィルタ処理する機能と、を実現する付記20乃至22の何れか一つに記載のプログラム。 A function of managing a connection state of (Supplementary Note 23) the received packet in a connection state management unit, in the server, a function of detecting a state of the upper layer of the received packet, based on the detection result of the state of said upper layer, a function of updating the connection states of the received packets managed in the connection state management unit, in the relay unit, the same connection reception packet, based on the connection state of the connection state management unit that is the update program according to any one of appendices 20 to 22 to realize the function of filtering the.

(付記24) 上記中継部において、上記受信パケットに対するサービス処理を上記サーバへ振り分けるため、サービス処理を行なうサーバの情報及び該サーバが提供するサービス処理の識別情報とをパケットの種類に応じてサービスリスト管理部で管理する機能と、上記サーバにおいて、上記サービスリスト管理部に対し、自己サーバの情報及び該自己サーバが提供するサービス処理の識別子とを転送する機能と、を実現する付記20乃至23の何れか一つに記載のプログラム。 (Supplementary Note 24) In the relay unit, for distributing the service process of the received packet to the server, the service list according to the identification information of the service processing server information and the server provides to perform service processing to the packet type a function of managing the management unit, at the server, to the service list management unit, according to note 20 or 23 to implement the function of transferring the identifier of the service process information, and said self server self server provides the program according to any one.

(付記25) 上記第一のサービス処理部はパケットbyパケットの処理を行ない、 (Supplementary Note 25) The first service processing unit performs a processing of the packet by packet,
上記外部サービス処理部は、ステートフル処理を行なう、 The external service processing unit performs a stateful process,
ことを特徴とする付記1乃至9の何れか一つに記載の階層型パケット処理システム。 Hierarchical packet processing system according to any one of Appendices 1 to 9, characterized in that.

(付記26) 上記第一のサービス処理部はパケットbyパケットの処理を行なう、ことを特徴とする付記10乃至12の何れか一つに記載の中継装置。 (Supplementary Note 26) The first service processing unit performs the processing of the packet by packet, relay apparatus according to any one of Appendices 10 to 12, wherein the.
(付記27)上記サーバが上記第二のサービス処理部の代わりに上記受信パケットに対して実際に行なうサービス処理はステートフル処理である、ことを特徴とする付記15乃至19の何れか一つに記載の方法。 (Supplementary Note 27) The service processing actually performed the server with respect to the received packet in place of the second service processing unit is stateful processing, it according to any one of Appendices 15 to 19, characterized the method of.

(付記28)上記サーバが上記第二のサービス処理部の代わりに上記受信パケットに対して実際に行なうサービス処理はステートフル処理である、ことを特徴とする付記20乃至24の何れか一つに記載のプログラム。 (Supplementary Note 28) The server service processing actually performed for the received packet in place of the second service processing unit is stateful processing, it according to any one of Appendices 20 to 24, characterized of the program.

本発明に適用される階層型パケット処理技術の原理を説明するための図である。 It is a diagram for explaining the principle of the hierarchical packet processing technique applied to the present invention. 本発明に適用される階層型パケット処理技術の実装例である。 An implementation of the hierarchical packet processing technique applied to the present invention. 階層型パケット処理システムの機能ブロック図である。 It is a functional block diagram of the hierarchical packet processing system. ステートテーブル319、363及び、expectテーブルのテーブル例である。 State tables 319,363 and is a table example of expect table. 中継装置300のカーネル部301に示されるパケット処理経路の処理フローである。 The process flow of the packet processing route shown in the kernel portion 301 of the repeater 300. シグナリングシーケンスの一例である。 It is an example of a signaling sequence. メッセージの例である。 It is an example of a message. 中継装置300とサーバ350におけるパケット処理シーケンスである。 A packet processing sequence in the relay device 300 and the server 350. メッセージの例を示す。 It shows an example of the message. メッセージの例を示す。 It shows an example of the message. 中継装置350のフックハンドラ318によって実行されるコネクショントラッキング処理の一例である。 It is an example of a connection tracking process executed by the hook handler 318 of the relay device 350. 上記コネクショントラッキング処理において処理を引き継いだサーバ350の、上記コネクショントラキング処理の引継ぎ処理例である。 Server 350 takes over the process in the connection tracking process, a takeover processing example of the connection tiger King processing. 「L4status」の状態変化を示す図である。 It is a diagram illustrating a change in the state of "L4status".

符号の説明 DESCRIPTION OF SYMBOLS

1 中継部 1−1 呼出部 1−2 サービス処理部 1−3 仮想サービス処理部 2 サーバ 2−1 仮想呼出部 2−2 外部サービス処理部 1 relay unit 1-1 calling unit 1-2 service processing unit 1-3 virtual service processing unit 2 server 21 virtual call unit 2-2 external service processing unit

Claims (13)

  1. 受信パケットを対象にサービス処理を行なって前記受信パケットを中継処理する、中継部と複数のサーバを備えた階層型パケット処理システムであって、 To relay processing the received packet by performing a service process to subject the received packet, a hierarchical packet processing system having a relay unit and a plurality of servers,
    前記中継部は、 The relay unit,
    前記受信パケットを対象にサービス処理を行なう所定のサービス処理部を呼び出す呼出部と、 A calling unit for calling a predetermined service processing unit for performing the service process of the received packet,
    前記呼出部の呼び出しにより、前記受信パケットにサービス処理を行なう第一のサービス処理部と、 The call to the calling unit, the first service processing unit which performs service processing on the received packet,
    前記呼出部の呼び出しにより、前記受信パケットに仮想的にサービス処理を行なう第二のサービス処理部と、 The call to the calling unit, the second service processing unit which performs virtually service processing on the received packet,
    を有し、 Have,
    前記第二のサービス処理部は、前記受信パケットに対するサービス処理を前記複数のサーバの何れかへ振り分けるため、サービス処理を行なうサーバの情報及び該サーバが提供するサービス処理の識別情報をパケットの種類に応じて管理するサービスリスト管理部を有し、 The second service processing unit, a service processing for the received packet for distributing to one of said plurality of servers, the identification information of the service processing information and the servers in the server to perform a service process to provide the type of packet has a service list management unit for managing, depending,
    前記サーバは、 The server,
    前記サービスリスト管理部に対し、自己サーバの情報及び該自己サーバが提供するサービス処理の識別情報を転送する転送部と、 To the service list management unit, a transfer unit for transferring identity information of the service processing information and said self server self server provides,
    前記第二のサービス処理部が前記呼出部から呼び出されると、前記第二のサービス処理部の代わりに前記受信パケットに対して任意のサービス処理を行なう外部サービス処理部を、 When the second service processing unit is called from the calling unit, the external service processing unit performing any service processing to the received packet in place of the second service processing unit,
    有する、 With,
    ことを特徴とする階層型パケット処理システム。 Hierarchical packet processing system characterized by.
  2. 前記呼出部の呼び出しにより前記第二のサービス処理部が呼び出されると、前記受信パケットは処理依頼キューに一時的にキューイングされ、続く受信パケットに対するサービス処理が前記呼出部によって続いて呼び出されたサービス処理部によって行なわれる、ことを特徴とする請求項1に記載の階層型パケット処理システム。 When the second service processing unit is called by a call of the call unit, service the received packet is temporarily queued to a process request queue, the service processing for the subsequent received packet is called followed by the calling unit hierarchical packet processing system according to claim 1 which is carried out by the processing unit, characterized in that.
  3. 前記外部サービス処理部は、中継部における受信パケットの中継処理で使用されているCPUが空いた時間を利用して前記サービス処理を行なう、ことを特徴とする請求項1または2に記載の階層型パケット処理システム。 The external service processing unit, by utilizing the spare time to the CPU used in the process of relaying the received packet in the relay unit performs the service processing, hierarchical according to claim 1 or 2, characterized in that packet processing system.
  4. 受信パケットに対するコネクション状態を管理するコネクション状態管理部を更に有し、 Further comprising a connection state management unit that manages the connection state with respect to the received packet,
    前記外部サービス処理部は、前記受信パケットの上位レイヤの状態を検出し、該上位レイヤの状態の検出結果を基に、前記コネクション状態管理部に管理される前記受信パケットの前記コネクション状態を更新し、 The external service processing unit detects the state of the upper layer of the received packet, based on the detection result of the state of said upper layer, and updates the connection state of the received packets managed in the connection state management unit ,
    前記中継部で受信された同一のコネクションパケットは、前記外部サービス処理部によって更新された前記コネクション状態管理部の前記コネクション状態に基づいてフィルタ処理される、 The same connection packet received by the relay unit, the are filtered based on the connection state of the connection state management unit which is updated by the external service processing unit,
    ことを特徴とする請求項1乃至3の何れか一つに記載の階層型パケット処理システム。 Hierarchical packet processing system according to any one of claims 1 to 3, characterized in that.
  5. 受信パケットを対象にサービス処理を行なって前記受信パケットを中継処理する中継装置であって、 By performing service processing target received packet A relay apparatus for relaying the received packet,
    前記中継装置は、 The relay device,
    前記受信パケットを対象にサービス処理を行なう所定のサービス処理部を呼び出す呼出部と、 A calling unit for calling a predetermined service processing unit for performing the service process of the received packet,
    前記呼出部の呼び出しにより、前記受信パケットにサービス処理を行なう第一のサービス処理部と、 The call to the calling unit, the first service processing unit which performs service processing on the received packet,
    前記呼出部の呼び出しにより、前記受信パケットに仮想的にサービス処理を行なう第二のサービス処理部とを有し、 The call of the call unit, and a second service processing unit which performs virtually service processing on the received packet,
    前記第二のサービス処理部は、前記受信パケットに対するサービス処理を複数のサーバの何れかへ振り分けるため、サービス処理を行なうサーバの情報及び該サーバが提供するサービス処理の識別情報をパケットの種類に応じて管理するサービスリスト管理部を有し、該サーバから転送される自己サーバの情報及び該自己サーバが提供するサービス処理の識別情報を受信し、前記第二のサービス処理部が前記呼出部から呼び出されると、該第二のサービス処理部の代わりに該サーバにより該受信パケットに対して任意のサービス処理が行なわれることを特徴とする中継装置。 The second service processing unit, for distributing the service process of the received packet to one of a plurality of servers, according to identification information of the service processing information and the servers in the server to perform a service process to provide the type of packet has a service list management unit for supervises as to receive the identification information of the service processing information and said self server self server to be transferred from the server provides the second service processing unit is called up from the calling unit is the relay device characterized by any service processing on the received packet by the server instead of the second service processing unit is performed.
  6. 前記受信パケットの上位レイヤの状態の検出に基づく情報を管理するコネクション状態管理部と、 A connection state management unit for managing information based on the detection of the state of the upper layer of the received packet,
    前記第二のサービス処理部が前記呼出部から呼び出されると、受信パケットの内の所定の情報を所定のサーバへ送信する送信部と、 When the second service processing unit is called from the calling unit, a transmission unit for transmitting predetermined information of the received packet to a predetermined server,
    前記サーバから送信された情報を受信する受信部と、 A receiver for receiving the information transmitted from the server,
    前記受信した結果を前記受信パケットまたは前記コネクション状態管理部で管理される前記情報に反映する反映部と、 A reflecting unit for reflecting the result of the reception to the information managed by the reception packet or the connection state management unit,
    同一のコネクションパケットに対し、前記コネクション状態管理部で管理される前記反映後の情報に基づいてフィルタ処理するフィルタ処理部と、 And filtering unit for filtering based on for the same connection packet, the post-reflection information managed by the connection state management unit,
    さらに有することを特徴とする請求項5に記載の中継装置。 Relay apparatus according to claim 5, characterized in that it further comprises a.
  7. 前記呼出部の呼び出しにより前記第二のサービス処理部が呼び出されると、前記受信パケットは処理依頼キューに一時的にキューイングされ、続く受信パケットに対するサービス処理が前記呼出部によって続いて呼び出されたサービス処理部によって行なわれる、ことを特徴とする請求項5または 6に記載の中継装置。 When the second service processing unit is called by a call of the call unit, service the received packet is temporarily queued to a process request queue, the service processing for the subsequent received packet is called followed by the calling unit performed by the processing unit, the relay apparatus according to claim 5 or 6, characterized in that.
  8. 中継装置で受信されたパケットの内の所定の情報を前記中継装置から受信するサーバであって、 A predetermined information of the received packet by the relay station a server receiving from the relay device,
    受信パケットに対するサービス処理を複数のサーバの何れかへ振り分けるため、サービス処理を行なうサーバの情報及び該サーバが提供するサービス処理の識別情報をパケットの種類に応じて管理する前記中継装置のサービスリスト管理部に対して、自己サーバの情報及び該自己サーバが提供するサービス処理の識別情報を転送する転送部と、 For distributing the service process of the received packet to one of a plurality of servers, the service list management of the relay apparatus for managing in accordance with identification information of the service processing server information and the server provides to perform service processing to the packet type against part, a transfer unit information and said self server self server transfers the identification information of the service process to provide,
    前記中継装置において前記受信パケットに仮想的にサービス処理を行なうサービス処理部が呼び出されると、該サービス処理部の代わりに該受信パケットに対して任意のサービス処理を行なう外部サービス処理部と、 The service processing unit that virtually performs a service process is called the received packet in the relay device, and the external service processing unit performing any service processing to the received packet in place of the service processing unit,
    を有することを特徴とするサーバ。 Server characterized in that it comprises a.
  9. コネクションの状態を管理するコネクション状態管理部と、 And the connection state management unit for managing the state of the connection,
    前記パケットの上位レイヤの状態を検出してサービス処理する上位レイヤ検出部と、 And upper layer detection unit for service processing by detecting the state of the upper layer of the packet,
    前記上位レイヤ検出部によって検出された前記パケットの上位レイヤの状態を基に、前記コネクション状態管理部によって管理される前記パケットのコネクション状態を更新するコネクション状態更新部と、 Based on the state of the upper layer of the packets detected by the upper layer detecting section, a connection state update unit that updates the connection state of the packet managed by the connection state management unit,
    前記サービス処理の結果及び前記コネクション状態の更新情報を前記中継装置に送信する送信部と、 A transmission unit for transmitting the result and updates the connection state of the service processing to the relay device,
    さらに有することを特徴とする請求項8に記載のサーバ。 The server according to claim 8, characterized in that it further comprises a.
  10. 受信パケットを対象にサービス処理を行なって前記受信パケットを中継処理する、中継部と複数のサーバを備えた階層型パケット処理システムで行なわれる方法であって、 To relay processing the received packet by performing a service process to subject the received packet, a process performed in a hierarchical packet processing system having a relay unit and a plurality of servers,
    前記中継部は、 The relay unit,
    前記受信パケットに対するサービス処理を前記複数のサーバの何れかへ振り分けるため、サービス処理を行なうサーバの情報及び該サーバが提供するサービス処理の識別情報をパケットの種類に応じて管理し、 For distributing the service process of the received packet to one of said plurality of servers to manage in accordance with identification information of the service processing information and the servers in the server to perform a service process to provide the type of packet,
    前記受信パケットを対象にサービス処理を行なう第一または第二のサービス処理部を呼び出し、 Call the first or second service processing unit performing the service process of the received packet,
    前記呼び出しにより第一のサービス処理部が呼び出された場合は、前記受信パケットにサービス処理を行ない、 Wherein when the first service processing unit is called by the call, it performs service processing on the received packet,
    前記呼び出しにより第二のサービス処理部が呼び出された場合は、前記受信パケットに仮想的にサービス処理を行ない、 Wherein if the second service processing unit is called by a call, virtually performs service processing on the received packet,
    前記サーバは、 The server,
    前記中継部に対し、自己サーバの情報及び該自己サーバが提供するサービス処理の識別情報を転送し、 With respect to the relay unit, and transfers the identification information of the service processing information and said self server self server provides,
    前記第二のサービス処理部が前記呼び出されると、前記第二のサービス処理部の代わりに前記受信パケットに対して実際にサービス処理を行なう、 When the second service processing unit is called the actually performs service processing on the received packet instead of the second service processing unit,
    ことを特徴とする方法。 Wherein the.
  11. 受信パケットに対するコネクション状態をコネクション状態管理部で管理し、 The connection state of the received packet managed by the connection state management unit,
    前記サーバは、 The server,
    前記受信パケットの上位レイヤの状態を検出し、 Detects the state of the upper layer of the received packet,
    該上位レイヤの状態の検出結果を基に、前記コネクション状態管理部に管理される前記受信パケットの前記コネクション状態を更新し、 Based on the detection result of the state of said upper layer, and updates the connection state of the received packets managed in the connection state management unit,
    前記中継部は、 The relay unit,
    同一のコネクション受信パケットを、前記更新された前記コネクション状態管理部の前記コネクション状態に基づいてフィルタ処理する、 The same connection reception packet, filtering on the basis of the connection state of the updated the connection state management unit,
    ことを特徴とする請求項10に記載の方法。 The method of claim 10, characterized in that.
  12. 受信パケットを対象にサービス処理を行なって前記受信パケットを中継処理する、中継部とサーバで実行可能なプログラムであって、 To relay processing the received packet by performing a service process to subject the received packet, a program executable by the relay unit and a server,
    前記中継部において、 In the relay unit,
    前記受信パケットに対するサービス処理を複数のサーバの何れかへ振り分けるため、サービス処理を行なうサーバの情報及び該サーバが提供するサービス処理の識別情報をパケットの種類に応じて管理する機能と、 For distributing the service process of the received packet to one of a plurality of servers, the function of managing according to identification information of the service processing server information and the server provides to perform service processing to the packet type,
    前記受信パケットを対象にサービス処理を行なう第一または第二のサービス処理部を呼び出す機能と、 A function to call the first or second service processing unit performing the service process of the received packet,
    前記呼び出しにより第一のサービス処理部が呼び出された場合は、前記受信パケットにサービス処理を行なう機能と、 Wherein when the first service processing unit is called by the call, a function of performing the service process of the received packet,
    前記呼び出しにより第二のサービス処理部が呼び出された場合は、前記受信パケットに仮想的にサービス処理を行なう機能と、 Wherein if the second service processing unit is called by the call, a function of performing virtually service processing on the received packet,
    を実現し、 To achieve,
    前記サーバにおいて、 In the server,
    前記中継部に対し、自己サーバの情報及び該自己サーバが提供するサービス処理の識別情報を転送する機能と、 To said relay portion, a function of transferring the identification information of the service processing information and said self server self server provides,
    前記第二のサービス処理部が前記呼び出されると、前記第二のサービス処理部の代わりに前記受信パケットに対して実際にサービス処理を行なう機能と、 When the second service processing unit is called the, the function of actually performing the service processing on the received packet instead of the second service processing unit,
    を実現するプログラム。 Program to achieve.
  13. 受信パケットに対するコネクション状態をコネクション状態管理部で管理する機能と、 A function of managing a connection state in the connection state management unit for receiving a packet,
    前記サーバにおいて、 In the server,
    前記受信パケットの上位レイヤの状態を検出する機能と、 A function of detecting a state of the upper layer of the received packet,
    該上位レイヤの状態の検出結果を基に、前記コネクション状態管理部に管理される前記受信パケットの前記コネクション状態を更新する機能と、 Based on the detection result of the state of said upper layer, a function of updating the connection status of the received packets managed in the connection state management unit,
    前記中継部において、 In the relay unit,
    同一のコネクション受信パケットを、前記更新された前記コネクション状態管理部の前記コネクション状態に基づいてフィルタ処理する機能と、 A function to filter on the basis of the connection state of the same connection reception packet, the updated the connection state management unit,
    を実現する請求項12に記載のプログラム。 The program according to claim 12 for implementing the.
JP2004108239A 2004-03-31 2004-03-31 Hierarchical packet processing system, a relay device, a server, the method, and program Active JP4348227B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004108239A JP4348227B2 (en) 2004-03-31 2004-03-31 Hierarchical packet processing system, a relay device, a server, the method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004108239A JP4348227B2 (en) 2004-03-31 2004-03-31 Hierarchical packet processing system, a relay device, a server, the method, and program
US10/981,102 US7613825B2 (en) 2004-03-31 2004-11-04 Hierarchical packet processing system and method, relay device and server

Publications (2)

Publication Number Publication Date
JP2005295268A JP2005295268A (en) 2005-10-20
JP4348227B2 true JP4348227B2 (en) 2009-10-21

Family

ID=35054196

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004108239A Active JP4348227B2 (en) 2004-03-31 2004-03-31 Hierarchical packet processing system, a relay device, a server, the method, and program

Country Status (2)

Country Link
US (1) US7613825B2 (en)
JP (1) JP4348227B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4648182B2 (en) * 2005-12-19 2011-03-09 富士通株式会社 Packet relay system
US8874789B1 (en) * 2007-09-28 2014-10-28 Trend Micro Incorporated Application based routing arrangements and method thereof
WO2011096307A1 (en) * 2010-02-03 2011-08-11 日本電気株式会社 Proxy device and operation method thereof

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6157955A (en) * 1998-06-15 2000-12-05 Intel Corporation Packet processing system including a policy engine having a classification unit
JP3963690B2 (en) 2001-03-27 2007-08-22 富士通株式会社 Packet relay processing unit
US7305492B2 (en) * 2001-07-06 2007-12-04 Juniper Networks, Inc. Content service aggregation system
US7200144B2 (en) * 2001-10-18 2007-04-03 Qlogic, Corp. Router and methods using network addresses for virtualization
US20050060365A1 (en) * 2002-01-24 2005-03-17 Robinson Scott L. Context-based information processing
US7340535B1 (en) * 2002-06-04 2008-03-04 Fortinet, Inc. System and method for controlling routing in a virtual router system

Also Published As

Publication number Publication date
JP2005295268A (en) 2005-10-20
US7613825B2 (en) 2009-11-03
US20050220098A1 (en) 2005-10-06

Similar Documents

Publication Publication Date Title
KR101066757B1 (en) Controlled relay of media streams across network perimeters
JP6053071B2 (en) Virtualization application acceleration infrastructure
JP4564970B2 (en) Lightweight input / output protocol
US7039671B2 (en) Dynamically routing messages between software application programs using named routing nodes and named message queues
US7734752B2 (en) Intelligent integrated network security device for high-availability applications
CN101099345B (en) Interpreting an application message at a network element using sampling and heuristics
US6976174B2 (en) Secure multiprotocol interface
US5668943A (en) Virtual shared disks with application transparent recovery
US6888792B2 (en) Technique to provide automatic failover for channel-based communications
JP4160642B2 (en) Network data transfer method
KR101490548B1 (en) Realtime kernel
JP4929371B2 (en) Bidirectional specific process versus process byte stream protocol
US5530905A (en) Temporary state preservation for a distributed file service which purges virtual circuit control information after expiration of time limit of inactivity
JP4053967B2 (en) Vlan server
US7840683B2 (en) Systems and methods of migrating sessions between computer systems
US20030145230A1 (en) System for exchanging data utilizing remote direct memory access
US6718392B1 (en) Queue pair partitioning in distributed computer system
US20140286350A1 (en) Switching Method
US8671152B2 (en) Network processor system and network protocol processing method
EP0398492A2 (en) A flexible interface to authentication services in a distributed data processing system
CN100380334C (en) Network interface controller switching method with remote direct memory access
JP5167225B2 (en) Technique in which a plurality of virtual filers on a single filer it possible to participate in multiple address spaces having a network address overlapping
JP6445621B2 (en) Distributed Load Balancer
CN101370035B (en) Method and system for dynamic client/server network management using proxy servers
US20040177158A1 (en) Network address translation techniques for selective network traffic diversion

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090224

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090421

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

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

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130724

Year of fee payment: 4