JP2011239309A - Gateway device - Google Patents

Gateway device Download PDF

Info

Publication number
JP2011239309A
JP2011239309A JP2010110728A JP2010110728A JP2011239309A JP 2011239309 A JP2011239309 A JP 2011239309A JP 2010110728 A JP2010110728 A JP 2010110728A JP 2010110728 A JP2010110728 A JP 2010110728A JP 2011239309 A JP2011239309 A JP 2011239309A
Authority
JP
Japan
Prior art keywords
packet
connection
processing unit
layer
standby system
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.)
Pending
Application number
JP2010110728A
Other languages
Japanese (ja)
Inventor
Kazu Mimura
和 三村
Tadashi Yano
正 矢野
Hitomi Nakamura
仁美 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2010110728A priority Critical patent/JP2011239309A/en
Publication of JP2011239309A publication Critical patent/JP2011239309A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a redundantly configured gateway device for enabling the redundancy of an L4 connection by duplicating a packet received from a communication partner with which the L4 connection is established, inputting the packet into both an active system and a standby system, and processing the packet in an L4 stack of each device.SOLUTION: A gateway device includes a plurality of independently working packet processors and a switching unit which connects the packet processors. Redundant configuration is established in the gateway device so that one of the packet processors represents an active system and another processor represents a standby system, and the active system serves as an L4 connection endpoint to a communication partner. When a packet of the L4 connection received from the communication partner is input into the active system or the standby system, the active system or the standby system uses a stored parameter regarding the L4 connection to overwrite a header of the packet and passes the packet to an L4 stack.

Description

本発明は、ゲートウェイ装置に係わり、特に、現用系と待機系を用意して冗長化を行い、かつ、レイヤ4コネクションの端点となるゲートウェイ装置に関する。   The present invention relates to a gateway device, and more particularly to a gateway device that provides redundancy by preparing an active system and a standby system, and serves as an end point of a layer 4 connection.

3GPP(3rd Generation Partnership Project)のLTE(Long Term Evolution)に代表される第3.9世代移動体通信網では、ネットワークがオールIP化されて、従来は回線交換網で提供されてきた電話サービスがIP網で提供されるようになる。このため、今後は移動体通信システムにおけるゲートウェイ装置に対しても電話交換機並の高信頼性が要求される。この高信頼性を達成するために、物理的に独立した2つ以上の装置を用意して、実際にサービスを提供する現用系としての役割と、通常はバックアップとして動作して、現用系故障時には代わりにサービスを提供する待機系としての役割を与えて、ゲートウェイ装置の冗長化を行う。これにより継続的なサービス提供が可能となる。このとき、現用系と待機系の切替時間、すなわちサービス停止時間は短時間(1秒以内)であることが望まれる。   In the 3.9th generation mobile communication network represented by LTE (Long Term Evolution) of 3GPP (3rd Generation Partnership Project), the network is all-IP, and the telephone service that has been provided in the circuit switching network in the past has been provided. It will be provided on the IP network. For this reason, high reliability equivalent to that of a telephone exchange is required for the gateway device in the mobile communication system. In order to achieve this high reliability, two or more devices that are physically independent are prepared, the role as the working system that actually provides the service, and usually operates as a backup, and when the working system fails Instead, the gateway device is made redundant by giving a role as a standby system for providing a service. This enables continuous service provision. At this time, the switching time between the active system and the standby system, that is, the service stop time is desired to be short (within 1 second).

一方、ゲートウェイ装置は、通信システム内の他装置と通信する際に、SCTP(Stream Control Transmission Protocol)やTCP(Transmission Control Protocol)に代表されるコネクション型レイヤ4(L4)プロトコルを用いる。特に移動体通信システムにおいては、呼処理関係のシグナリングにSCTPが用いられる傾向にあり、今後も利用は増えていくと考えられる。一般に、L4コネクションは状態遷移を持つため、冗長切替が発生すると、L4コネクションは一度切断され、その後再接続処理が行われる。これを図1を用いて説明する。   On the other hand, the gateway device uses a connection type layer 4 (L4) protocol represented by SCTP (Stream Control Transmission Protocol) or TCP (Transmission Control Protocol) when communicating with other devices in the communication system. In particular, in mobile communication systems, SCTP tends to be used for call processing-related signaling, and its use will increase in the future. In general, since an L4 connection has a state transition, when redundancy switching occurs, the L4 connection is disconnected once, and then a reconnection process is performed. This will be described with reference to FIG.

図1は現用系故障時の冗長切替において、SCTPを例にとり、L4コネクションを再接続するシーケンスである。冗長化装置101は、レイヤ2(L2)スイッチ102と現用系103と待機系104から構成される。現用系と待機系は、L2スイッチを介して他装置105と通信を行う。図1では、現用系と他装置との間であらかじめSCTPコネクションを確立している。そのため、他装置が送信したDATAパケット(110、111)を現用系は受信し、またその応答であるSACKパケット(112、113)を他装置は受信することができる。   FIG. 1 is a sequence for reconnecting an L4 connection, taking SCTP as an example in redundancy switching at the time of failure of the active system. The redundancy apparatus 101 includes a layer 2 (L2) switch 102, an active system 103, and a standby system 104. The active system and the standby system communicate with the other device 105 via the L2 switch. In FIG. 1, an SCTP connection is established in advance between the active system and another apparatus. Therefore, the active system can receive the DATA packet (110, 111) transmitted from the other apparatus, and the other apparatus can receive the SACK packet (112, 113) as the response.

図2AはDATAパケットのデータ構造であり、図2BはSACKパケットのデータ構造である。DATAパケット110のヘッダの送信元ポート番号201、送信先ポート番号202、送信先の検証タグ203、およびSACKパケット112のヘッダの送信元ポート番号211、送信先ポート番号212、送信先の検証タグ213は、L4コネクションを確立する際に通信相手である他装置と現用系との間で交換するパラメータである。また、DATAパケットヘッダの送信元が付けるシーケンス番号204は、初期値をSCTPコネクション確立時に交換し、DATAパケットを送信するごとに増加されるパラメータである。さらに、SACKパケットヘッダに付加する受信したDATAパケットのシーケンス番号214は、対応するDATAパケットのシーケンス番号204と同じ値をとるパラメータである。OS(Operation System)内においてSCTPコネクションを管理するL4スタックは、DATAパケットとSACKパケットを受信するごとにパケットに付加されるこれらの情報が正しいことを精査する。もしこれらの情報に誤りやズレがあれば、受信パケットを破棄するか、もしくはパケットの再送を要求する。L4スタックは内部に独自の状態遷移を持ちながら、上述したパケット精査を自動的に行う。   FIG. 2A shows the data structure of the DATA packet, and FIG. 2B shows the data structure of the SACK packet. The source port number 201, the destination port number 202, the destination verification tag 203 in the header of the DATA packet 110, the source port number 211, the destination port number 212, and the destination verification tag 213 in the header of the SACK packet 112. Is a parameter exchanged between the active device and another device that is a communication partner when establishing an L4 connection. The sequence number 204 assigned by the sender of the DATA packet header is a parameter that is increased every time a DATA packet is transmitted by exchanging the initial value when the SCTP connection is established. Further, the sequence number 214 of the received DATA packet added to the SACK packet header is a parameter that takes the same value as the sequence number 204 of the corresponding DATA packet. The L4 stack that manages the SCTP connection in the OS (Operation System) checks that the information added to the packet is correct every time the DATA packet and the SACK packet are received. If there is an error or misalignment in these pieces of information, the received packet is discarded or a packet retransmission is requested. The L4 stack automatically performs the above-described packet inspection while having a unique state transition inside.

図1に戻る。現用系に故障が発生すると(114)、他装置から送信されたDATAパケット(115、116)がL2スイッチから転送されない状態になる。待機系は現用系の故障を検知すると(117)、自分がサービスを提供するために現用系に移行する(118)。以降、待機系104を旧待機系104と記述する。旧待機系104は、冗長化装置101に送られたパケットを受信できるようにするために、L2スイッチに対してGratuitous ARP(119)を送信する。すると、DATAパケット120は、旧待機系に転送されるようになる(121)。しかしながら、旧待機系のL4スタックは、このSCTPコネクションに関する状態遷移情報を持たないため、DATAパケットを破棄して、応答として接続を強制終了させるABORTパケット(122、123)を他装置に送信する。他装置は、ABORTパケットを受信すると、SCTPコネクションが強制切断されたことを、そのSCTPコネクションを利用していたアプリケーションに通知する。アプリケーションは、再度データを送信するために再接続処理を要求する(124)。他装置のL4スタックは自動的に、待機系のL4スタックとの間でINITパケット、INIT−ACKパケット、COOKIE−ECHOパケット、COOKIE−ACKパケット(125〜132)をやり取りし、DATAパケット、SACKパケット送受信に必要となる情報を新たに交換して、新規のSCTPコネクションを再確立する。その後、他装置内のアプリケーションは、故障発生前後に送信し損なったデータの再送信処理を行う(133)。そして、新たに確立したSCTPコネクションを用いて、DATAパケット(134、135)とSACKパケット(136、137)が送受信される。以上のように、L4コネクションを持つ冗長化装置が冗長切替を行う場合には、強制切断、再接続、再送信の処理が必要になる。そのため、確立されるL4コネクション数が多くなると、高速な冗長切替達成に影響を与える。したがって、図1の破線部分140の処理を省き、L4コネクションの冗長化を行うことが要求される。   Returning to FIG. When a failure occurs in the active system (114), the DATA packet (115, 116) transmitted from another device is not transferred from the L2 switch. When the standby system detects a failure in the active system (117), it shifts to the active system in order to provide the service (118). Hereinafter, the standby system 104 is described as the old standby system 104. The old standby system 104 transmits a Gratuitous ARP (119) to the L2 switch so that the packet sent to the redundancy device 101 can be received. Then, the DATA packet 120 is transferred to the old standby system (121). However, since the old standby L4 stack does not have the state transition information regarding this SCTP connection, it discards the DATA packet and transmits an ABORT packet (122, 123) for forcibly terminating the connection as a response to the other apparatus. When the other device receives the ABORT packet, the other device notifies the application using the SCTP connection that the SCTP connection has been forcibly disconnected. The application requests reconnection processing to send data again (124). The L4 stack of the other device automatically exchanges the INIT packet, INIT-ACK packet, COOKIE-ECHO packet, COOKIE-ACK packet (125-132) with the standby L4 stack, and the DATA packet, SACK packet. Information necessary for transmission / reception is newly exchanged to re-establish a new SCTP connection. Thereafter, the application in the other apparatus performs a retransmission process for the data that failed to be transmitted before and after the occurrence of the failure (133). Then, the DATA packet (134, 135) and the SACK packet (136, 137) are transmitted / received using the newly established SCTP connection. As described above, when a redundant device having an L4 connection performs redundancy switching, forcible disconnection, reconnection, and retransmission processing are required. For this reason, if the number of established L4 connections increases, it will affect the achievement of high-speed redundancy switching. Therefore, it is required to omit the processing of the broken line portion 140 in FIG. 1 and make the L4 connection redundant.

これを解決するためには、現用系と待機系内のそれぞれのL4スタックが持つL4コネクションの状態遷移を同期させればよい。この方式として、共有方式と並列処理方式が挙げられる。共有方式は、現用系が管理するL4コネクションの状態遷移を、ネットワークを介してリアルタイムに待機系に転送する方式である。また、並列処理方式は、通信相手である他装置から受信したパケットを複製して現用系と待機系の両方にパケットを入力し、現用系と待機系のL4スタックが独立に処理を行うことで、同じ状態遷移を作り出す方式である。   In order to solve this, the state transitions of the L4 connections of the L4 stacks in the active system and the standby system may be synchronized. Examples of this method include a sharing method and a parallel processing method. The sharing method is a method of transferring the state transition of the L4 connection managed by the active system to the standby system in real time via the network. The parallel processing method duplicates the packet received from the other device that is the communication partner, inputs the packet to both the active system and the standby system, and the L4 stacks of the active system and the standby system perform processing independently. This is a method for creating the same state transition.

特許文献1では、装置間で共有可能な特殊なメモリを用いて、共有方式を実現する。しかしながら、移動体通信システムにおけるゲートウェイ装置は、一般的にATCA(Advanced Telecom Computing Architecture)などの汎用装置に実装されるため、特殊なハードウェアを設けてL4コネクションを冗長化することが困難である。そこで近年では、ゲートウェイ装置に対する並列処理方式の適用が検討されている。   In Patent Document 1, a sharing method is realized using a special memory that can be shared between apparatuses. However, since a gateway device in a mobile communication system is generally mounted on a general-purpose device such as an ATCA (Advanced Telecom Computing Architecture), it is difficult to provide special hardware to make the L4 connection redundant. Therefore, in recent years, application of a parallel processing method to a gateway device has been studied.

非特許文献1は、L4コネクション確立時に現用系と待機系で通知しあって、現用系と待機系のパラメータと状態遷移初期値を揃える方式を示している。   Non-Patent Document 1 shows a method in which the active system and the standby system are notified when the L4 connection is established, and the parameters of the active system and the standby system and the state transition initial values are aligned.

特開2007−274256号JP 2007-274256 A 狩野秀一、地引昌弘、“トランスポート端点のポータブルなクラスタ方式”、電子情報通信学会技術報告、IA2007−2、pp.5−10Shuichi Kano, Masahiro Jikihiki, “Portable cluster system of transport endpoints”, IEICE Technical Report, IA2007-2, pp. 5-10

本発明では、並列処理方式によってL4コネクションの冗長化を実現する。   In the present invention, redundancy of the L4 connection is realized by a parallel processing method.

上述したように、装置間でL4コネクションを確立する際、いくつかのパラメータを通信相手と交換し、共有する。以降のパケット通信では、交換したパラメータと状態遷移に基づく値をパケットヘッダに埋め込んで、データの送受信を行う。交換したパラメータもしくは現在の状態遷移と異なる値が検出された場合には、そのパケットは破棄される。その結果通信が正しく処理されなくなるか、もしくはL4コネクションが強制切断される。   As described above, when establishing an L4 connection between devices, some parameters are exchanged with a communication partner and shared. In subsequent packet communications, the exchanged parameters and values based on state transitions are embedded in the packet header, and data is transmitted and received. If a value that is different from the exchanged parameter or the current state transition is detected, the packet is discarded. As a result, communication is not processed correctly or the L4 connection is forcibly disconnected.

上記パラメータの一部は、OS内のL4スタックが自動的に生成する乱数である。そのため、独立した装置であれば異なる値を生成し、異なる状態遷移初期値をとる。一方、冗長構成を組んでいる場合、通信相手からは冗長化装置は1台の装置にしか見えない、すなわち現用系のパラメータと状態遷移しかパケットヘッダには反映されない。したがって、現用系と待機系の両方にパケットを入力したとしても、現用系のL4スタックでは処理されるが、待機系のL4スタックでは処理されないことになる。
そこで本発明は、L4コネクションを確立した通信相手から受信したパケットを複製して、現用系と待機系の両方にパケットを入力し、それぞれのL4スタックで処理できるようにすることを課題とする。
Some of the parameters are random numbers automatically generated by the L4 stack in the OS. Therefore, different values are generated if they are independent devices, and different state transition initial values are taken. On the other hand, when a redundant configuration is configured, the redundant device can be seen by only one device from the communication partner, that is, only the active parameters and state transitions are reflected in the packet header. Therefore, even if a packet is input to both the active system and the standby system, it is processed in the active L4 stack, but not processed in the standby L4 stack.
Therefore, an object of the present invention is to duplicate a packet received from a communication partner that has established an L4 connection, and input the packet to both the active system and the standby system so that each L4 stack can process it.

なお、非特許文献1では、L4コネクション確立時に現用系と待機系で通知しあって、現用系と待機系のパラメータと状態遷移初期値を揃えている。しかしながら、非特許文献1の方式では、L4コネクション確立時にしか対応できず、L4コネクション確立後に現用系もしくは待機系を追加したり交換したりする際には、L4コネクションを一度切断して再確立しなければならない。このことは、動的な負荷分散を目的とした装置の追加時や、故障装置の交換時にはL4コネクションの冗長化が引き継げないことを意味する。   In Non-Patent Document 1, notification is made between the active system and the standby system when the L4 connection is established, and the parameters of the active system and the standby system and the state transition initial values are aligned. However, the method of Non-Patent Document 1 can only cope with the establishment of an L4 connection. When an active or standby system is added or exchanged after the L4 connection is established, the L4 connection is disconnected and re-established. There must be. This means that the redundancy of the L4 connection cannot be taken over when a device for the purpose of dynamic load distribution is added or when a failed device is replaced.

本願で開示される実施態様の代表的なゲートウェイ装置は、独立して動作する複数のパケット処理装置と前記複数のパケット処理装置を接続するスイッチ装置を備え、前記複数のパケット処理装置のうち1台が現用系であり、前記現用系とは異なる1台が待機系となるように冗長構成をとり、前記現用系が通信相手に対してL4コネクションの端点となり、前記通信相手から受信した前記L4コネクションのパケットが前記現用系もしくは前記待機系に入力されると、前記現用系もしくは前記待機系は前記L4コネクションに関して記憶しているパラメータを用いて前記パケットのヘッダを書き換えて、L4スタックに前記パケットを渡すことを特徴とする。   A representative gateway device according to an embodiment disclosed in the present application includes a plurality of packet processing devices that operate independently and a switch device that connects the plurality of packet processing devices, and one of the plurality of packet processing devices. Is an active system, and has a redundant configuration so that one unit different from the active system is a standby system, and the active system is an end point of an L4 connection to the communication partner, and the L4 connection received from the communication partner Is input to the active system or the standby system, the active system or the standby system rewrites the header of the packet using the parameters stored with respect to the L4 connection, and puts the packet in the L4 stack. It is characterized by passing.

また、前記レイヤ4コネクションの確立時に前記通信相手と交換するパラメータと、前記レイヤ4コネクションの確立後のパケット通信においてパケットに付加されるパラメータを、前記現用系もしくは前記待機系において記憶する。   In addition, a parameter exchanged with the communication partner when the layer 4 connection is established and a parameter added to the packet in the packet communication after the establishment of the layer 4 connection are stored in the active system or the standby system.

また、前記現用系もしくは前記待機系は前記通信相手から受信した前記レイヤ4コネクションのパケットを受け取ると、それぞれ前記待機系もしくは前記現用系に前記パケットを転送する。   Further, when the working system or the standby system receives the packet of the layer 4 connection received from the communication partner, the packet is transferred to the standby system or the active system, respectively.

本発明によれば、冗長構成をとるゲートウェイ装置において、L4コネクションを確立した通信相手から受信したパケットを複製して、現用系と待機系の両方にパケットを入力し、それぞれのL4スタックで処理してL4コネクションの冗長化を実現できる。また、L4コネクションを確立したまま柔軟な冗長化装置の運用が可能となる。   According to the present invention, in a gateway device having a redundant configuration, a packet received from a communication partner that has established an L4 connection is duplicated, and the packet is input to both the active system and the standby system, and is processed by each L4 stack. Thus, redundancy of the L4 connection can be realized. In addition, it is possible to operate a flexible redundant apparatus while establishing the L4 connection.

現用系故障時の冗長切替においてSCTPコネクションを再接続するシーケンス図である。It is a sequence diagram which reconnects an SCTP connection in the redundant switching at the time of an active system failure. SCTP DATAパケットのデータ構成図である。It is a data block diagram of a SCTP DATA packet. SCTP SACKパケットのデータ構成図である。It is a data block diagram of a SCTP SACK packet. 本発明を適用する通信システムの構成図である。It is a block diagram of the communication system to which this invention is applied. 本実施の形態のゲートウェイ装置のハードウェア構成図である。It is a hardware block diagram of the gateway apparatus of this Embodiment. 本実施の形態のゲートウェイ装置のソフトウェアプログラム構成図である。It is a software program block diagram of the gateway apparatus of this Embodiment. スイッチブレードに対して現用系を転送先に登録するシーケンス図である。FIG. 6 is a sequence diagram for registering an active system as a transfer destination for a switch blade. 他装置から現用系にSCTPコネクションを確立するシーケンス図である。FIG. 10 is a sequence diagram for establishing an SCTP connection from another device to the active system. 他装置から現用系にSCTPコネクションを確立するシーケンス図の続きである。FIG. 5 is a continuation of the sequence diagram for establishing the SCTP connection from another device to the active system. 各CPUブレードのヘッダ処理部が保持する転送先テーブルである。It is a transfer destination table held by the header processing unit of each CPU blade. 図7B後においてCPUブレード1のヘッダ処理部が保持するSCTPのパラメータ格納テーブルである。7B is an SCTP parameter storage table held by the header processing unit of the CPU blade 1 after FIG. 7B. 図7B後においてCPUブレード2のヘッダ処理部が保持するSCTPのパラメータ格納テーブルである。7B is an SCTP parameter storage table held by the header processing unit of the CPU blade 2 after FIG. 7B. 現用系から他装置にSCTPコネクションを確立するシーケンス図である。FIG. 10 is a sequence diagram for establishing an SCTP connection from the active system to another apparatus. 現用系から他装置にSCTPコネクションを確立するシーケンス図の続きである。FIG. 6 is a continuation of the sequence diagram for establishing the SCTP connection from the active system to another apparatus. 他装置からSCTP DATAパケットを受信するシーケンス図である。It is a sequence diagram which receives an SCTP DATA packet from another apparatus. 現用系からSCTP DATAパケットを送信するシーケンス図である。It is a sequence diagram which transmits a SCTP DATA packet from an active system. 現用系故障発生時においてスイッチブレードに対して予備系を転送先に登録するシーケンス図である。FIG. 5 is a sequence diagram for registering a standby system as a transfer destination for a switch blade when an active system failure occurs. 現用系故障発生時において他装置からSCTP DATAパケットを受信するシーケンス図である。It is a sequence diagram which receives an SCTP DATA packet from another apparatus at the time of active system failure generation | occurrence | production. 現用系故障発生時において旧待機系からSCTP DATAパケットを送信するシーケンス図である。FIG. 11 is a sequence diagram for transmitting an SCTP DATA packet from an old standby system when an active system failure occurs. 待機系故障発生時において待機系へパケット通知を停止するシーケンス図である。FIG. 6 is a sequence diagram for stopping packet notification to a standby system when a standby system failure occurs. 待機系故障発生時において他装置からSCTP DATAパケットを受信するシーケンス図である。FIG. 11 is a sequence diagram for receiving an SCTP DATA packet from another device when a standby system failure occurs. 待機系故障発生時において現用系からSCTP DATAパケットを送信するシーケンス図である。FIG. 10 is a sequence diagram for transmitting an SCTP DATA packet from the active system when a standby system failure occurs. 負荷分散のため新たにCPUブレード3を追加するシーケンス図である。FIG. 11 is a sequence diagram for newly adding a CPU blade 3 for load distribution. 負荷分散のため新たにCPUブレード3を追加するシーケンス図の続きである。It is a continuation of the sequence diagram for newly adding a CPU blade 3 for load distribution. L4パラメータ通知メッセージのデータ構造である。It is a data structure of a L4 parameter notification message. 図19B後においてCPUブレード3のヘッダ処理部が保持するSCTPのパラメータ格納テーブルである。19B is an SCTP parameter storage table held by the header processing unit of the CPU blade 3 after FIG. 19B. 図19B後において他装置からSCTP DATAパケットを受信するシーケンス図である。FIG. 20B is a sequence diagram for receiving an SCTP DATA packet from another apparatus after FIG. 19B. 図19B後においてCPUブレード3からSCTP DATAパケットを送信するシーケンス図である。FIG. 20B is a sequence diagram for transmitting an SCTP DATA packet from the CPU blade 3 after FIG. 19B. 現用系においてヘッダ処理部がVNICから読込んだSCTPパケットを処理するフローチャート図である。It is a flowchart figure which processes the SCTP packet which the header process part read from VNIC in the active system. 現用系においてヘッダ処理部がVNIC以外から受取ったSCTPパケットを処理するフローチャート図である。FIG. 10 is a flowchart for processing an SCTP packet received by a header processing unit from other than the VNIC in the active system. 待機系においてヘッダ処理部がVNICから読込したSCTPパケットを処理するフローチャート図である。It is a flowchart figure which processes the SCTP packet which the header process part read from VNIC in the standby system. 待機系においてヘッダ処理部がVNIC以外から受取ったSCTPパケットを処理するフローチャート図である。It is a flowchart figure which processes the SCTP packet which the header process part received from other than VNIC in a standby system.

1.装置構成
はじめに、図3を用いて本発明が適用される通信システムの構成例を説明する。ここでは移動体通信システムを例にとる。移動体通信システムは、無線インタフェースを介してデータ通信を行う端末340と、端末を収容する無線アクセス網(320、330)と、加入者情報を管理し端末をサービス網に接続するユーザホーム網310と、端末に対してサービスを提供するサービス網300とから構成される。
1. Device Configuration First, a configuration example of a communication system to which the present invention is applied will be described with reference to FIG. Here, a mobile communication system is taken as an example. The mobile communication system includes a terminal 340 that performs data communication via a radio interface, a radio access network (320, 330) that accommodates the terminal, and a user home network 310 that manages subscriber information and connects the terminal to a service network. And a service network 300 that provides services to terminals.

無線アクセス網320は、無線信号を有線信号に相互変換する基地局321a、321bと、アクセスゲートウェイ323と、移動管理サーバ322から構成される。無線アクセス網330も同様に基地局アクセスゲートウェイ331a、331b、移動管理サーバ332で構成される。アクセスゲートウェイは、基地局から受信したユーザトラフィックをユーザホーム網に転送する装置である。また移動管理サーバは、端末の接続状況を管理するとともに、基地局とアクセスゲートウェイ間のデータパスを制御する装置である。   The wireless access network 320 includes base stations 321a and 321b that mutually convert wireless signals into wired signals, an access gateway 323, and a mobility management server 322. Similarly, the wireless access network 330 includes base station access gateways 331 a and 331 b and a mobility management server 332. An access gateway is a device that transfers user traffic received from a base station to a user home network. The mobility management server is a device that manages the connection status of terminals and controls the data path between the base station and the access gateway.

ユーザホーム網310は、サービス網ゲートウェイ311と、ポリシーサーバ312と、認証サーバ313から構成される。サービス網ゲートウェイは、アクセスゲートウェイから受信したユーザトラフィックを適切なサービス網に転送する装置である。また、ポリシーサーバは、サービス網ゲートウェイに対してユーザトラフィックの課金手段やQoSを指示する装置である。また、認証サーバは、端末ユーザの加入者情報を管理する装置である。   The user home network 310 includes a service network gateway 311, a policy server 312, and an authentication server 313. The service network gateway is a device that transfers user traffic received from the access gateway to an appropriate service network. The policy server is a device that instructs the service network gateway of charging means for user traffic and QoS. The authentication server is a device that manages subscriber information of terminal users.

サービス網300には、端末に対してサービスを提供するアプリケーションサーバ301が接続される。   An application server 301 that provides services to terminals is connected to the service network 300.

LTEでは、サービス網ゲートウェイ311とポリシーサーバ312の間、認証サーバ312と移動管理サーバ(322、332)の間、移動管理サーバ(322、332)と基地局(321a、321b、331a、331b)の間のシグナリングのL4プロトコルにSCTPが用いられる。本発明は、特にサービス網ゲートウェイ、移動管理サーバといったゲートウェイ装置への適用が最も効果的だが、これらに限らず、L4コネクションの端点となる装置であれば適用可能である。   In LTE, between the service network gateway 311 and the policy server 312, between the authentication server 312 and the mobility management servers (322, 332), between the mobility management servers (322, 332) and the base stations (321a, 321b, 331a, 331b). SCTP is used for the L4 protocol for signaling between. The present invention is particularly effective when applied to gateway devices such as service network gateways and mobility management servers. However, the present invention is not limited thereto, and can be applied to any device that is an end point of an L4 connection.

次に、図4を用いて、本実施の形態のゲートウェイ装置構成例を説明する。ゲートウェイ装置400は、シグナリング処理やユーザトラフィック転送処理を実現するCPUブレード1とCPUブレード2(410−1、410−2)と、レイヤ2(L2)スイッチ機能を備えるスイッチブレード420から構成される。   Next, a configuration example of the gateway device according to the present embodiment will be described with reference to FIG. The gateway device 400 includes a CPU blade 1 and a CPU blade 2 (410-1, 410-2) that realize signaling processing and user traffic transfer processing, and a switch blade 420 that has a layer 2 (L2) switch function.

CPUブレード1は、メモリ411−1、CPU412−1、IF(インタフェース)413−1、414−1、FROM(フラッシュROM)415−1を備える。ゲートウェイ装置としての機能を提供するためのソフトウェアプログラムはFROMに記憶されており、装置の起動時にメモリに展開される。CPUは、メモリ内に展開されたソフトウェアプログラムを順次読み出して実行する。なお、IFはイーサネット回線でスイッチブレード420に接続されており、IF413−1はデータ通信用に、IF414−1は装置制御用に使用される。
スイッチブレード420は、IF421、422、423、424、426および427、スイッチ部425、メモリ428、CPU429、FROM430から構成される。IF421、422、423および424はCPUブレード1とCPUブレード2(410−1、410−2)に、IF426、427は外部のパケット網に接続されており、スイッチ部はこれらの間でパケットを中継する。また、メモリ、CPU、FROMは、スイッチ部を制御、管理するのに用いられる。
The CPU blade 1 includes a memory 411-1, a CPU 412-1, IFs (interfaces) 413-1 and 414-1, and a FROM (flash ROM) 415-1. A software program for providing a function as a gateway device is stored in the FROM, and is expanded in the memory when the device is activated. The CPU sequentially reads and executes the software programs developed in the memory. The IF is connected to the switch blade 420 via an Ethernet line. The IF 413-1 is used for data communication and the IF 414-1 is used for device control.
The switch blade 420 includes IFs 421, 422, 423, 424, 426, and 427, a switch unit 425, a memory 428, a CPU 429, and a FROM 430. IFs 421, 422, 423, and 424 are connected to CPU blade 1 and CPU blade 2 (410-1, 410-2), and IFs 426, 427 are connected to an external packet network. The switch unit relays packets between them. To do. The memory, CPU, and FROM are used to control and manage the switch unit.

図5は、CPUブレード1およびCPUブレード2(410−1、410−2)のメモリ411−1、411−2に展開されるソフトウェアプログラムの構成図である。アプリケーションプログラム503−1、503−2は、L4コネクションを利用して特定のサービスを提供する。ただし、本実施の形態のゲートウェイ装置は冗長構成を形成しており、アプリケーションプログラム503−1、503−2についても、一方が現用状態として動作中は、他方は待機状態となる。L4スタック502−1、502−2はL4コネクションを管理する。VNIC(Virtual Network Interface)501−1、501−2は他のプログラムからデータの読み書きを可能とする仮想ネットワークインタフェースである。ヘッダ処理部500−1、500−2はL4コネクションのパケットヘッダの書き換えを行う。   FIG. 5 is a configuration diagram of software programs developed in the memories 411-1 and 411-2 of the CPU blade 1 and the CPU blade 2 (410-1 and 410-2). The application programs 503-1 and 503-2 provide specific services using the L4 connection. However, the gateway device of the present embodiment forms a redundant configuration, and one of the application programs 503-1 and 503-2 is in a standby state while one is operating as an active state. The L4 stacks 502-1 and 502-2 manage L4 connections. VNICs (Virtual Network Interfaces) 501-1 and 501-2 are virtual network interfaces that enable reading and writing of data from other programs. The header processing units 500-1 and 500-2 rewrite the packet header of the L4 connection.

ヘッダ処理部は、Rawソケットを用いてスイッチブレード420を介して外部のパケット網とパケットを送受信する。また、ヘッダ処理部は、TIPC(Transparent Inter−process Communication)などの通信プロトコルを用いてスイッチブレード420を介して、他のCPUブレードのヘッダ処理部とデータのやり取りを行う。さらに、ヘッダ処理部は、L4コネクションの冗長化に必要となるパラメータを格納するパラメータ格納テーブル(510−1、510−2)と、受信するL4コネクションのパケットをどのCPUブレードのヘッダ処理部に転送するかを決定する転送先テーブル(511−1、511−2)をもつ。パラメータ格納テーブルと転送先テーブルの詳細な説明については、後述の2.処理(シーケンス)の中で行う。   The header processing unit transmits / receives a packet to / from an external packet network via the switch blade 420 using a Raw socket. The header processing unit exchanges data with the header processing units of other CPU blades via the switch blade 420 using a communication protocol such as TIPC (Transparent Inter-process Communication). Further, the header processing unit forwards the parameter storage tables (510-1, 510-2) for storing parameters necessary for redundancy of the L4 connection and the received L4 connection packet to the header processing unit of which CPU blade. A transfer destination table (511-1, 511-2) for deciding whether to do. Details of the parameter storage table and the transfer destination table will be described later in 2. Performed in the process (sequence).

本実施の形態のゲートウェイ装置では、アプリケーションとヘッダ処理部はユーザ領域(520−1、520−2)に、L4スタックとVNICはカーネル領域(521−1、521−2)にそれぞれ置かれる。このような構成を採ることで、本実施の形態のゲートウェイ装置では、OSに改造を加えることなく、L4コネクションの冗長化を実現できる。   In the gateway device of the present embodiment, the application and header processing unit are placed in the user area (520-1, 520-2), and the L4 stack and VNIC are placed in the kernel area (521-1, 521-2). By adopting such a configuration, the gateway device according to the present embodiment can realize redundancy of the L4 connection without modifying the OS.

以上が、本実施の形態の装置構成である。
2.処理(シーケンス)
本実施の形態のゲートウェイ装置において、L4コネクションの冗長化処理について、3つの手順を説明する。具体的には、SCTPの場合を例にとり、(A):通常状態におけるパケット送受信と、(B):故障発生時におけるパケット送受信と、(C):負荷分散のために新たに現用系を追加する際のパケット送受信の手順である。
(A)通常状態におけるSCTPパケット送受信
故障未発生時の通常状態において、SCTPコネクションを確立し、DATAパケットを送受信する流れについて説明する。
(A−1)SCTPコネクション確立
図6は、現用系がパケットを受信するための前準備の手順である。まず、装置の管理者がCPUブレード1(410−1)を現用系に設定する(600)。また、CPUブレード2(410−2)を待機系に設定する(601)。その際、CPUブレード1は、スイッチブレード420に対してGratuitous ARPパケットを送信し、MAC(Media Access Control)アドレスをスイッチブレードに登録する(602)。こうすることで、ゲートウェイ装置宛に送られてきたパケットがCPUブレード1に転送されるようになる。
The above is the apparatus configuration of the present embodiment.
2. Processing (sequence)
In the gateway device according to the present embodiment, three procedures for L4 connection redundancy processing will be described. Specifically, taking the case of SCTP as an example, (A): packet transmission / reception in a normal state, (B): packet transmission / reception when a failure occurs, (C): a new active system is added for load distribution This is a packet transmission / reception procedure.
(A) SCTP packet transmission / reception in normal state The flow of establishing and transmitting an SCTP connection and transmitting / receiving a DATA packet in a normal state when no failure has occurred will be described.
(A-1) SCTP Connection Establishment FIG. 6 shows a preparation procedure for the active system to receive a packet. First, the administrator of the apparatus sets the CPU blade 1 (410-1) to the active system (600). Further, the CPU blade 2 (410-2) is set as a standby system (601). At that time, the CPU blade 1 transmits a Gratuitous ARP packet to the switch blade 420, and registers a MAC (Media Access Control) address in the switch blade (602). By doing so, the packet sent to the gateway device is transferred to the CPU blade 1.

図7A、図7Bは、外部の他装置からSCTPコネクションの確立要求があった際の処理手順である。まず、図7Aから説明する。図6の手順後の状態であり、CPUブレード1(410−1)が現用系、CPUブレード2(410−2)が待機系である。したがって、アプリケーション503−1は実際にサービスを提供する現用状態、アプリケーション503−2は現用側の処理をバックアップする待機状態として動作する。どちらのアプリケーションも、それぞれのCPUブレードで稼動するL4スタック(502−1、502−2)に対して待ち受け登録(Listen)をしておく(700、701)。スイッチブレード420が、外部の他装置からSCTPコネクション確立要求であるINITパケットを受信する(710)。スイッチブレードはCPUブレード1にINITパケットを転送し、ヘッダ処理部500−1がそのINITパケットを受信する(702)。ここで、ヘッダ処理部は、自身が保持する転送先テーブル511−1を参照する。   FIG. 7A and FIG. 7B are processing procedures when there is an SCTP connection establishment request from another external device. First, FIG. 7A will be described. 6 is a state after the procedure of FIG. 6, in which the CPU blade 1 (410-1) is the active system and the CPU blade 2 (410-2) is the standby system. Therefore, the application 503-1 operates as an active state for actually providing a service, and the application 503-2 operates as a standby state for backing up processing on the active side. Both applications perform standby registration (Listen) for the L4 stacks (502-1 and 502-2) operating on the respective CPU blades (700 and 701). The switch blade 420 receives an INIT packet that is an SCTP connection establishment request from another external device (710). The switch blade transfers the INIT packet to the CPU blade 1, and the header processing unit 500-1 receives the INIT packet (702). Here, the header processing unit refers to the transfer destination table 511-1 held by itself.

図8は、CPUブレード1のヘッダ処理部が保持する転送先テーブル511−1のデータ構造である。転送先テーブルは、通信相手のIPアドレスごとに作成される。転送先テーブルでは、自分のポート番号800と相手のポート番号801をインデックスとし、転送先802を記述する。本例では、自分のポート番号が5000番で相手のポート番号が11111番であるエントリに対して、転送先が<local>と<CPUブレード2>に設定されている。これは、自分のポート番号が5000番で相手のポート番号が11111番であるパケットを、CPUブレード1内で動作するアプリケーションと、CPUブレード2のヘッダ処理部に転送することを意味する。転送先テーブルは、装置の管理者があらかじめ設定しておく。   FIG. 8 shows the data structure of the transfer destination table 511-1 held by the header processing unit of the CPU blade 1. The transfer destination table is created for each IP address of the communication partner. In the transfer destination table, the transfer destination 802 is described using the own port number 800 and the partner port number 801 as indexes. In this example, the transfer destination is set to <local> and <CPU blade 2> for the entry whose own port number is 5000 and the partner port number is 11111. This means that the packet whose own port number is 5000 and whose partner port number is 11111 is transferred to the application operating in the CPU blade 1 and the header processing unit of the CPU blade 2. The transfer destination table is set in advance by the administrator of the apparatus.

図7Aに戻る。ヘッダ処理部500−1は、転送先テーブル511−1を参照して、INITパケットをCPUブレード2のヘッダ処理部500−2に通知する(712)。この際、実際にはスイッチブレードを介してパケットを通知するが、シーケンスの記述では省略する。ヘッダ処理部500−2は、INITパケットからパラメータを抽出し、パラメータ格納テーブルに記憶する(713)。   Returning to FIG. The header processing unit 500-1 refers to the transfer destination table 511-1 and notifies the header processing unit 500-2 of the CPU blade 2 of the INIT packet (712). At this time, the packet is actually notified via the switch blade, but is omitted in the description of the sequence. The header processing unit 500-2 extracts parameters from the INIT packet and stores them in the parameter storage table (713).

図9A、図9Bは、それぞれCPUブレード1と2がもつパラメータ格納テーブル(510−1、510−2)である。パラメータ格納テーブルは、通信相手のIPアドレスごとに作成される。パラメータ格納テーブルでは、自分のポート番号900と相手のポート番号901をインデックスとし、自分の検証タグ902と、自分のシーケンス番号903と、書換用の検証タグ904と、書換用のシーケンス番号905と、通信相手の検証タグ906と、通信相手のシーケンス番号907を記述する。ここで、書換用の検証タグ904と書換用のシーケンス番号905には、SCTPコネクション確立時に現用系であったCPUブレードのL4スタックが作成した検証タグとシーケンス番号の値が格納される。   9A and 9B are parameter storage tables (510-1 and 510-2) of the CPU blades 1 and 2, respectively. The parameter storage table is created for each IP address of the communication partner. In the parameter storage table, the own port number 900 and the partner port number 901 are used as indexes, and the own verification tag 902, own sequence number 903, rewrite verification tag 904, rewrite sequence number 905, A communication partner verification tag 906 and a communication partner sequence number 907 are described. Here, the verification tag 904 for rewriting and the sequence number 905 for rewriting store the verification tag and the sequence number value created by the L4 stack of the active CPU blade when the SCTP connection is established.

図7Aに戻る。ヘッダ処理部500−2は、INITパケットに記述されている通信相手の検証タグとシーケンス番号の初期値を抽出し、パラメータ格納テーブル510−2にエントリを作成して、通信相手の検証タグ906と通信相手のシーケンス番号907に上記パラメータを記憶する。ヘッダ処理部は500−2は、自身が保持する転送先テーブルを参照して、VNIC501−2を介してL4スタック502−2にINITパケットを渡す(714、715)。L4スタックは、応答としてINIT−ACKパケットを返す(716)。ヘッダ処理500−2は、VNIC501−2を介して、INIT−ACKパケットを受け取る(717)。ヘッダ処理部は、INIT−ACKパケットに記述されている自分の検証タグとシーケンス番号の初期値を抽出し、自分の検証タグ902と自分のシーケンス番号903に上記パラメータを記憶する(718)。このINIT−ACKパケットは、待機系側のL4スタックが作成したものなので、通信相手には送信すべきものではない。そのため、ヘッダ処理部500−2はINIT−ACKパケットを破棄する(719)。   Returning to FIG. The header processing unit 500-2 extracts the communication partner verification tag and the initial sequence number described in the INIT packet, creates an entry in the parameter storage table 510-2, and sets the communication partner verification tag 906. The above parameters are stored in the sequence number 907 of the communication partner. The header processing unit 500-2 refers to the transfer destination table held by itself, and passes the INIT packet to the L4 stack 502-2 via the VNIC 501-2 (714, 715). The L4 stack returns an INIT-ACK packet as a response (716). The header processing 500-2 receives the INIT-ACK packet via the VNIC 501-2 (717). The header processing unit extracts the initial value of its own verification tag and sequence number described in the INIT-ACK packet, and stores the above parameters in its own verification tag 902 and its own sequence number 903 (718). Since the INIT-ACK packet is created by the L4 stack on the standby side, it should not be transmitted to the communication partner. Therefore, the header processing unit 500-2 discards the INIT-ACK packet (719).

一方、CPUブレード1のヘッダ処理部500−1でもINITパケットに記述されている通信相手の検証タグとシーケンス番号の初期値を抽出し、パラメータ格納テーブル510−1にエントリを作成して、通信相手の検証タグ906と通信相手のシーケンス番号907に上記パラメータを記憶する(720)。その後、VNIC501−1を介してL4スタック502−1にINITパケットを渡す(721、722)。L4スタックは、応答としてINIT−ACKパケットを返す(723)。ヘッダ処理500−1は、VNIC501−1を介して、INIT−ACKパケットを受け取る(724)。ヘッダ処理部500−1は、転送先テーブルを参照し、INIT−ACKパケットをヘッダ処理部500−2に通知する(725)。ヘッダ処理部500−2は、INIT−ACKパケットに記述されている現用系の検証タグとシーケンス番号初期値を抽出し、パラメータ格納テーブル510−2の書換用の検証タグ904と書換用のシーケンス番号905に記憶する(726)。一方、CPUブレード1のヘッダ処理部500−1も、INIT−ACKパケットに記述されている自分の検証タグとシーケンス番号初期値を抽出し、パラメータ格納テーブル510−1の自分の検証タグ902と自分のシーケンス番号903に記憶する(727)。なお、現用系であるCPUブレード1に保持されるパラメータ格納テーブル510−1の書換用の検証タグ904と書換用のシーケンス番号905のカラムは空のままで、何も格納されない。その後、INIT−ACKパケットをスイッチブレード420に転送する(728)。スイッチブレードは、通信相手にINIT−ACKパケットを送信する(729)。この時点で、ヘッダ処理部500−1と500−2のそれぞれが保持するパラメータ転送テーブル510−1と510−2は、図9Aと図9Bに示したエントリのようになっている。   On the other hand, the header processing unit 500-1 of the CPU blade 1 also extracts the communication partner verification tag and the initial value of the sequence number described in the INIT packet, creates an entry in the parameter storage table 510-1, and creates a communication partner. The above parameters are stored in the verification tag 906 and the communication partner sequence number 907 (720). Thereafter, the INIT packet is transferred to the L4 stack 502-1 via the VNIC 501-1 (721, 722). The L4 stack returns an INIT-ACK packet as a response (723). The header processing 500-1 receives the INIT-ACK packet via the VNIC 501-1 (724). The header processing unit 500-1 refers to the transfer destination table and notifies the header processing unit 500-2 of the INIT-ACK packet (725). The header processing unit 500-2 extracts the active verification tag and sequence number initial value described in the INIT-ACK packet, rewrites the verification tag 904 and the rewrite sequence number in the parameter storage table 510-2. It memorize | stores in 905 (726). On the other hand, the header processing unit 500-1 of the CPU blade 1 also extracts its own verification tag and sequence number initial value described in the INIT-ACK packet, and sets its own verification tag 902 and its own in the parameter storage table 510-1. Is stored in the sequence number 903 (727). It should be noted that the rewrite verification tag 904 and rewrite sequence number 905 columns of the parameter storage table 510-1 held in the active CPU blade 1 remain empty, and nothing is stored. Thereafter, the INIT-ACK packet is transferred to the switch blade 420 (728). The switch blade transmits an INIT-ACK packet to the communication partner (729). At this time, the parameter transfer tables 510-1 and 510-2 held by the header processing units 500-1 and 500-2 are like the entries shown in FIGS. 9A and 9B, respectively.

図7Bに進む。スイッチブレード420は、通信相手からCOOKIE−ECHOパケットを受信し(730)、CPUブレード1に転送する。ヘッダ処理部500−1は、COOKIE−ECHOパケットを受け取る(731)。ヘッダ処理部500−1は、転送先テーブルを参照して、COOKIE−ECHOパケットをヘッダ処理部500−2に通知する(732)。ここで、このCOOKIE−ECHOパケットのヘッダには現用系であるCPUブレード1の検証タグが記述されおり、CPUブレード2のL4スタック502−2はそのままではパケットを破棄してしまう。そのため、ヘッダ処理部500−2は、図9Bに示したパラメータ格納テーブル510−2のエントリの自分の検証タグ902を参照し、COOKIE−ECHOパケットのヘッダの検証タグを、参照した値に書き換える(733)。その後、ヘッダ処理部は、VNIC501−2を介してL4スタック502−2にCOOKIE−ECHOパケットを渡す(734、735)。L4スタックは、応答としてCOOKIE−ACKパケットを返す(736)。ヘッダ処理500−2は、VNIC501−2を介して、COOKIE−ACKパケットを受け取る(737)。このCOOKIE−ACKパケットは、待機系側のL4スタックが作成したものなので、通信相手には送信すべきものではない。そのため、ヘッダ処理部500−2はCOOKIE−ACKパケットを破棄する(738)。この後、L4スタック502−2は、待ち受け登録をしたアプリケーション503−2に対して、このSCTPコネクションのソケット番号を通知し(739)、コネクション確立状態に遷移する(740)。   Proceed to FIG. 7B. The switch blade 420 receives the COOKIE-ECHO packet from the communication partner (730) and transfers it to the CPU blade 1. The header processing unit 500-1 receives the COOKIE-ECHO packet (731). The header processing unit 500-1 refers to the transfer destination table and notifies the header processing unit 500-2 of the COOKIE-ECHO packet (732). Here, the verification tag of the active CPU blade 1 is described in the header of the COOKIE-ECHO packet, and the L4 stack 502-2 of the CPU blade 2 discards the packet as it is. Therefore, the header processing unit 500-2 refers to its own verification tag 902 in the entry of the parameter storage table 510-2 shown in FIG. 9B, and rewrites the verification tag in the header of the COOKIE-ECHO packet with the referenced value ( 733). Thereafter, the header processing unit passes the COOKIE-ECHO packet to the L4 stack 502-2 via the VNIC 501-2 (734, 735). The L4 stack returns a COOKIE-ACK packet as a response (736). The header processing 500-2 receives the COOKIE-ACK packet via the VNIC 501-2 (737). Since this COOKIE-ACK packet is created by the L4 stack on the standby side, it should not be transmitted to the communication partner. Therefore, the header processing unit 500-2 discards the COOKIE-ACK packet (738). Thereafter, the L4 stack 502-2 notifies the socket number of this SCTP connection to the application 503-2 registered for standby (739), and transitions to a connection established state (740).

一方、CPUブレード1のヘッダ処理部500−1も、受け取ったCOOKIE−ECHOパケットに対して、パラメータ格納テーブル510−1を参照する。しかしながら、図9Aに示したように、パラメータ格納テーブル510−1のエントリで、書換用の検証タグの項には何も記述がないので、ヘッダ処理部500−1はパケットヘッダに対して操作を行わない。ヘッダ処理部500−1は、VNIC501−1を介してL4スタック502−1にCOOKIE−ECHOパケットを渡す(750、751)。L4スタックは、応答としてCOOKIE−ACKパケットを返す(752)。ヘッダ処理500−1は、VNIC501−1を介して、COOKIE−ACKパケットを受け取る(753)。ここで、L4スタック502−1は、待ち受け登録をしたアプリケーション503−1に対して、このSCTPコネクションのソケット番号を通知し(754)、コネクション確立状態に遷移する(755)。その後、ヘッダ処理部500−1は、COOKIE−ACKパケットをスイッチブレード420に転送する(756)。スイッチブレードは、通信相手にCOOKIE−ACKパケットを送信する(757)。   On the other hand, the header processing unit 500-1 of the CPU blade 1 also refers to the parameter storage table 510-1 for the received COOKIE-ECHO packet. However, as shown in FIG. 9A, since there is no description in the item of the verification tag for rewriting in the entry of the parameter storage table 510-1, the header processing unit 500-1 operates the packet header. Not performed. The header processing unit 500-1 passes the COOKIE-ECHO packet to the L4 stack 502-1 via the VNIC 501-1 (750, 751). The L4 stack returns a COOKIE-ACK packet as a response (752). The header processing 500-1 receives the COOKIE-ACK packet via the VNIC 501-1 (753). Here, the L4 stack 502-1 notifies the socket number of this SCTP connection to the application 503-1 registered for standby (754), and transitions to a connection established state (755). Thereafter, the header processing unit 500-1 transfers the COOKIE-ACK packet to the switch blade 420 (756). The switch blade transmits a COOKIE-ACK packet to the communication partner (757).

以上の手順により、他装置とゲートウェイ装置間のSCTPコネクション確立が完了する。   With the above procedure, the establishment of the SCTP connection between the other device and the gateway device is completed.

次に、図7A、図7Bの場合とは反対にゲートウェイ装置の現用系であるCPUブレード1から外部の他装置に対してSCTPコネクションの確立要求を行う際の処理手順を、図10A、図10Bを用いて説明する。まず、図10Aから説明する。CPUブレード1(410−1)のアプリケーション503−1が、L4スタック502−1に対して接続要求(Connect)を行う(1000)。L4スタックは、INITパケットをVNIC501−1に渡す(1001)。ヘッダ処理500−1は、VNICを介してINITパケットを受け取る(1002)。ヘッダ処理部は、転送先テーブルを参照して、INITパケットをCPUブレード2のヘッダ処理部500−2に通知する(1003)。ヘッダ処理部500−1は同時に、INITパケットに記述されている自分の検証タグとシーケンス番号の初期値を抽出し、パラメータ格納テーブル510−1にエントリを作成して、自分の検証タグ902と自分のシーケンス番号903に上記パラメータを記憶する(1004)。その後、INITパケットをスイッチブレード420に転送する(1005)。スイッチブレードは、通信相手にINITパケットを送信する(1006)。   Next, as opposed to the case of FIGS. 7A and 7B, the processing procedure when the CPU blade 1 which is the active system of the gateway device makes an SCTP connection establishment request to another external device is shown in FIGS. 10A and 10B. Will be described. First, FIG. 10A will be described. The application 503-1 of the CPU blade 1 (410-1) makes a connection request (Connect) to the L4 stack 502-1 (1000). The L4 stack passes the INIT packet to the VNIC 501-1 (1001). The header process 500-1 receives the INIT packet via the VNIC (1002). The header processing unit refers to the transfer destination table and notifies the header processing unit 500-2 of the CPU blade 2 of the INIT packet (1003). At the same time, the header processing unit 500-1 extracts its own verification tag and the initial value of the sequence number described in the INIT packet, creates an entry in the parameter storage table 510-1, and creates its own verification tag 902 and its own The above parameters are stored in the sequence number 903 of (1004). Thereafter, the INIT packet is transferred to the switch blade 420 (1005). The switch blade transmits an INIT packet to the communication partner (1006).

一方、CPUブレード2のヘッダ処理部500−2も、INITパケットに記述されている現用系の検証タグとシーケンス番号初期値を抽出し、パラメータ格納テーブル510−2にエントリを作成して、書換用の検証タグ904と書換用のシーケンス番号905に記憶する(1007)。その後、ヘッダ処理部は、現用系であるCPUブレード1のアプリケーション503−1から接続要求があったことを通知し、待機系であるCPUブレード2のアプリケーション503−2が同様に接続要求を行うことを促す(1008)。すると、アプリケーション503−2は、L4スタック502−2に対して接続要求(Connect)を行う(1009)。L4スタックはINITパケットをVNIC501−2に渡す(1010)。ヘッダ処理500−2は、VNICを介してINITパケットを受け取る(1011)。ヘッダ処理部は、INITパケットに記述されている自分の検証タグとシーケンス番号の初期値を抽出し、パラメータ格納テーブル510−2に自分の検証タグ902と自分のシーケンス番号903に上記パラメータを記憶する(1012)。このINITパケットは、待機系側のL4スタックが作成したものなので、通信相手には送信すべきものではない。そのため、ヘッダ処理部500−2はINITパケットを破棄する(1013)。   On the other hand, the header processing unit 500-2 of the CPU blade 2 also extracts the current verification tag and sequence number initial value described in the INIT packet, creates an entry in the parameter storage table 510-2, and rewrites it. The verification tag 904 and the rewrite sequence number 905 are stored (1007). After that, the header processing unit notifies that there is a connection request from the application 503-1 of the CPU blade 1 that is the active system, and the application 503-2 of the CPU blade 2 that is the standby system similarly issues the connection request. (1008). Then, the application 503-2 makes a connection request (Connect) to the L4 stack 502-2 (1009). The L4 stack passes the INIT packet to the VNIC 501-2 (1010). The header process 500-2 receives the INIT packet via the VNIC (1011). The header processing unit extracts the initial value of its own verification tag and sequence number described in the INIT packet, and stores the above parameters in its own verification tag 902 and its own sequence number 903 in the parameter storage table 510-2. (1012). Since this INIT packet is created by the L4 stack on the standby side, it should not be transmitted to the communication partner. Therefore, the header processing unit 500-2 discards the INIT packet (1013).

その後、スイッチブレード420が、通信相手の外部の他装置からINIT−ACKパケットを受信する(1020)。スイッチブレードはCPUブレード1にINIT−ACKパケットを転送し、ヘッダ処理部500−1がそのINIT−ACKパケットを受信する(1021)。ヘッダ処理部は、転送先テーブルを参照して、INIT−ACKパケットをCPUブレード2のヘッダ処理部500−2に通知する(1022)。ヘッダ処理部500−1は同時に、INIT−ACKパケットに記述されている通信相手の検証タグとシーケンス番号の初期値を抽出し、パラメータ格納テーブル510−1に、通信相手の検証タグ906と通信相手のシーケンス番号907に上記パラメータを記憶する(1023)。その後、VNIC501−1を介してL4スタック502−1にINIT−ACKパケットを渡す(1024、1025)。   Thereafter, the switch blade 420 receives an INIT-ACK packet from another device outside the communication partner (1020). The switch blade transfers the INIT-ACK packet to the CPU blade 1, and the header processing unit 500-1 receives the INIT-ACK packet (1021). The header processing unit refers to the transfer destination table and notifies the header processing unit 500-2 of the CPU blade 2 of the INIT-ACK packet (1022). At the same time, the header processing unit 500-1 extracts the communication partner verification tag and the initial value of the sequence number described in the INIT-ACK packet, and stores the communication partner verification tag 906 and the communication partner in the parameter storage table 510-1. The above parameters are stored in the sequence number 907 (1023). Thereafter, the INIT-ACK packet is passed to the L4 stack 502-1 via the VNIC 501-1 (1024, 1025).

一方、CPUブレード2のヘッダ処理部500−2は、1022のINIT−ACKパケット通知を受けた後、パラメータ格納テーブル510−2のエントリの自分の検証タグ902を参照し、INIT−ACKパケットのヘッダの検証タグを、参照した値に書き換える(1026)。これは、INIT−ACKパケットのヘッダの検証タグには現用系のものが記述されており、そのままではCPUブレード2のL4スタック502−2がパケットを破棄してしまうからである。その後、ヘッダ処理部500−2は、INIT−ACKパケットに記述されている通信相手の検証タグとシーケンス番号の初期値を抽出し、パラメータ転送テーブル510−2の通信相手の検証タグ906と通信相手のシーケンス番号907に上記パラメータを記憶する(1027)。そして、ヘッダ処理部は、VNIC501−2を介してL4スタック502−2にINIT−ACKパケットを渡す(1028,1029)。この時点で、図7A,図7Bの場合と同様に、ヘッダ処理部500−1と500−2のそれぞれが保持するパラメータ転送テーブル510−1と510−2は、図9Aと図9Bに示したエントリのようになる。   On the other hand, after receiving the INIT-ACK packet notification 1022, the header processing unit 500-2 of the CPU blade 2 refers to its own verification tag 902 in the entry of the parameter storage table 510-2 to refer to the header of the INIT-ACK packet. The verification tag is rewritten with the referenced value (1026). This is because the active tag is described in the verification tag in the header of the INIT-ACK packet, and the L4 stack 502-2 of the CPU blade 2 discards the packet as it is. After that, the header processing unit 500-2 extracts the communication partner verification tag and the initial value of the sequence number described in the INIT-ACK packet, and the communication partner verification tag 906 and the communication partner in the parameter transfer table 510-2. The above parameters are stored in the sequence number 907 of (1027). The header processing unit passes the INIT-ACK packet to the L4 stack 502-2 via the VNIC 501-2 (1028, 1029). At this point, as in FIGS. 7A and 7B, the parameter transfer tables 510-1 and 510-2 held by the header processing units 500-1 and 500-2 are shown in FIGS. 9A and 9B. It looks like an entry.

図10Bに進む。CPUブレード1のL4スタック502−1は、応答としてCOOKIE−ECHOパケットを返す(1030)。ヘッダ処理500−1は、VNIC501−1を介して、COOKIE−ECHOパケットを受け取る(1031)。ヘッダ処理部500−1は、受け取ったCOOKIE−ECHOパケットに対して、パラメータ格納テーブル510−1を参照する。しかしながら、図9Aに示したように、パラメータ格納テーブル510−1のエントリで、書換用の検証タグの項には何も記述がないので、ヘッダ処理部500−1はパケットヘッダに対して操作を行わない。その後、ヘッダ処理部は、COOKIE−ECHOパケットをスイッチブレード420に転送する(1032)。スイッチブレードは、通信相手にCOOKIE−ECHOパケットを送信する(1033)。   Proceed to FIG. 10B. The L4 stack 502-1 of the CPU blade 1 returns a COOKIE-ECHO packet as a response (1030). The header processing 500-1 receives the COOKIE-ECHO packet via the VNIC 501-1 (1031). The header processing unit 500-1 refers to the parameter storage table 510-1 for the received COOKIE-ECHO packet. However, as shown in FIG. 9A, since there is no description in the item of the verification tag for rewriting in the entry of the parameter storage table 510-1, the header processing unit 500-1 operates the packet header. Not performed. Thereafter, the header processing unit transfers the COOKIE-ECHO packet to the switch blade 420 (1032). The switch blade transmits a COOKIE-ECHO packet to the communication partner (1033).

一方、CPUブレード2のL4スタック502−2も、応答としてCOOKIE−ECHOパケットを返す(1034)。ヘッダ処理500−2は、VNIC501−2を介して、COOKIE−ECHOパケットを受け取る(1035)。このCOOKIE−ECHOパケットは、待機系側のL4スタックが作成したものなので、通信相手には送信すべきものではない。そのため、ヘッダ処理部500−2はCOOKIE−ECHOパケットを破棄する(1036)。   On the other hand, the L4 stack 502-2 of the CPU blade 2 also returns a COOKIE-ECHO packet as a response (1034). The header processing 500-2 receives the COOKIE-ECHO packet via the VNIC 501-2 (1035). Since this COOKIE-ECHO packet is created by the L4 stack on the standby side, it should not be transmitted to the communication partner. Therefore, the header processing unit 500-2 discards the COOKIE-ECHO packet (1036).

その後、スイッチブレード420が、通信相手の外部の他装置からCOOKIE−ACKパケットを受信する(1040)。スイッチブレードはCPUブレード1にCOOKIE−ACKパケットを転送し、ヘッダ処理部500−1がそのCOOKIE−ACKパケットを受信する(1041)。ヘッダ処理部は、転送先テーブルを参照して、COOKIE−ACKパケットをCPUブレード2のヘッダ処理部500−2に通知する(1042)。ヘッダ処理部500−1は同時に、VNIC501−1を介してL4スタック502−1にCOOKIE−ACKパケットを渡す(1043、1044)。L4スタック502−1は、接続要求をしたアプリケーション503−1に対して、このSCTPコネクションのソケット番号を通知し(1045)、コネクション確立状態に遷移する(1046)。   Thereafter, the switch blade 420 receives a COOKIE-ACK packet from another device outside the communication partner (1040). The switch blade transfers the COOKIE-ACK packet to the CPU blade 1, and the header processing unit 500-1 receives the COOKIE-ACK packet (1041). The header processing unit refers to the transfer destination table and notifies the COOKIE-ACK packet to the header processing unit 500-2 of the CPU blade 2 (1042). At the same time, the header processing unit 500-1 passes the COOKIE-ACK packet to the L4 stack 502-1 via the VNIC 501-1 (1043, 1044). The L4 stack 502-1 notifies the socket number of this SCTP connection to the application 503-1 that has made the connection request (1045), and transitions to a connection established state (1046).

一方、CPUブレード2のヘッダ処理部500−2は、1042のCOOKIE−ACKパケット通知を受けた後、パラメータ格納テーブル510−2のエントリの自分の検証タグ902を参照し、COOKIE−ACKパケットのヘッダの検証タグを、参照した値に書き換える(1047)。これは、COOKIE−ACKパケットのヘッダの検証タグには現用系のものが記述されており、そのままではCPUブレード2のL4スタック502−2がパケットを破棄してしまうからである。その後、ヘッダ処理部500−2は、VNIC501−2を介してL4スタック502−2にCOOKIE−ACKパケットを渡す(1048,1049)。L4スタック502−2は、接続要求をしたアプリケーション503−2に対して、このSCTPコネクションのソケット番号を通知し(1050)、コネクション確立状態に遷移する(1051)。
以上の手順により、図7A、図7Bの場合と同様に、他装置とゲートウェイ装置間のSCTPコネクション確立が完了する。
(A−2)SCTP DATAパケット送受信
次に、図11を用いて、SCTPコネクションを確立した通信相手である外部の他装置から、SCTP DATAパケットを受信する処理手順を説明する。スイッチブレード420は、通信相手からDATAパケットを受信し(1100)、CPUブレード1に転送する。ヘッダ処理部500−1は、DATAパケットを受け取る(1101)。ヘッダ処理部500−1は、転送先テーブルを参照して、DATAパケットをヘッダ処理部500−2に通知する(1102)。ヘッダ処理部500−1は同時に、受け取ったDATAパケットに対して、パラメータ格納テーブル510−1を参照する。しかしながら、図9Aに示したように、パラメータ格納テーブル510−1のエントリで、書換用の検証タグの項には何も記述がないので、ヘッダ処理部500−1はパケットヘッダに対して操作を行わない。その後、ヘッダ処理部は、自身が保持するパラメータ格納テーブル510−1のエントリの通信相手のシーケンス番号907を1だけ更新する。そして、ヘッダ処理部は、VNIC501−1を介してL4スタック502−1にDATAパケットを渡す(1103、1104)。L4スタックはDATAパケットのペイロード部分にあるアプリケーションデータを抽出し、アプリケーション503−1に渡す(1105)。L4スタックは同時に、応答としてSACKパケットを返す(1106)。ヘッダ処理500−1は、VNIC501−1を介して、SACKパケットを受け取る(1107)。ヘッダ処理部は、SACKパケットをスイッチブレード420に転送する(1108)。スイッチブレードは、通信相手にSACKパケットを送信する(1109)。
On the other hand, after receiving the COOKIE-ACK packet notification 1042, the header processing unit 500-2 of the CPU blade 2 refers to its own verification tag 902 in the entry of the parameter storage table 510-2, and the header of the COOKIE-ACK packet. The verification tag is rewritten with the referenced value (1047). This is because the working tag is described in the verification tag in the header of the COOKIE-ACK packet, and the L4 stack 502-2 of the CPU blade 2 discards the packet as it is. Thereafter, the header processing unit 500-2 passes the COOKIE-ACK packet to the L4 stack 502-2 via the VNIC 501-2 (1048, 1049). The L4 stack 502-2 notifies the socket number of this SCTP connection to the application 503-2 that has requested connection (1050), and transitions to a connection established state (1051).
With the above procedure, the establishment of the SCTP connection between the other device and the gateway device is completed as in the case of FIGS. 7A and 7B.
(A-2) SCTP DATA Packet Transmission / Reception Next, a processing procedure for receiving an SCTP DATA packet from another external device that is a communication partner with which an SCTP connection has been established will be described using FIG. The switch blade 420 receives the DATA packet from the communication partner (1100) and transfers it to the CPU blade 1. The header processing unit 500-1 receives the DATA packet (1101). The header processing unit 500-1 refers to the transfer destination table and notifies the DATA packet to the header processing unit 500-2 (1102). At the same time, the header processing unit 500-1 refers to the parameter storage table 510-1 for the received DATA packet. However, as shown in FIG. 9A, since there is no description in the item of the verification tag for rewriting in the entry of the parameter storage table 510-1, the header processing unit 500-1 operates the packet header. Not performed. Thereafter, the header processing unit updates the sequence number 907 of the communication partner in the entry of the parameter storage table 510-1 held by itself by one. The header processing unit passes the DATA packet to the L4 stack 502-1 via the VNIC 501-1 (1103, 1104). The L4 stack extracts the application data in the payload portion of the DATA packet and passes it to the application 503-1 (1105). At the same time, the L4 stack returns a SACK packet as a response (1106). The header process 500-1 receives the SACK packet via the VNIC 501-1 (1107). The header processing unit transfers the SACK packet to the switch blade 420 (1108). The switch blade transmits a SACK packet to the communication partner (1109).

一方、CPUブレード2のヘッダ処理部500−2は、1102のDATAパケット通知を受けた後、パラメータ格納テーブル510−2のエントリの自分の検証タグ902を参照し、図2Aに示したDATAパケットのヘッダの検証タグ203を、参照した値に書き換える(1110)。これは、DATAパケットのヘッダの検証タグには現用系のものが記述されており、そのままではCPUブレード2のL4スタック502−2がパケットを破棄してしまうからである。その後、ヘッダ処理部は、自身が保持するパラメータ格納テーブル510−2のエントリの通信相手のシーケンス番号907を1だけ増やして更新する。そして、ヘッダ処理部は、VNIC501−2を介してL4スタック502−2にDATAパケットを渡す(1111、1112)。L4スタックはDATAパケットのペイロード部分にあるアプリケーションデータを抽出し、アプリケーション503−2に渡す(1113)。こうすることで、待機系側のアプリケーション503−2も現用系と同様のアプリケーションデータを受信することができ、アプリケーション間の同期も可能になる。L4スタック502−2は同時に、応答としてSACKパケットを返す(1114)。ヘッダ処理500−2は、VNIC501−2を介して、SACKパケットを受け取る(1115)。このSACKパケットは、待機系側のL4スタックが作成したものなので、通信相手には送信すべきものではない。そのため、ヘッダ処理部500−2はSACKパケットを破棄する(1116)。   On the other hand, after receiving the DATA packet notification 1102, the header processing unit 500-2 of the CPU blade 2 refers to its own verification tag 902 in the entry of the parameter storage table 510-2, and determines the DATA packet shown in FIG. 2A. The verification tag 203 in the header is rewritten to the referenced value (1110). This is because the active tag is described in the verification tag in the header of the DATA packet, and the L4 stack 502-2 of the CPU blade 2 discards the packet as it is. Thereafter, the header processing unit updates the sequence number 907 of the communication partner in the entry of the parameter storage table 510-2 held by itself by 1 and updates it. The header processing unit passes the DATA packet to the L4 stack 502-2 via the VNIC 501-2 (1111 and 1112). The L4 stack extracts the application data in the payload portion of the DATA packet and passes it to the application 503-2 (1113). By doing so, the standby-side application 503-2 can also receive the same application data as that of the active system, and synchronization between applications is also possible. At the same time, the L4 stack 502-2 returns a SACK packet as a response (1114). The header processing 500-2 receives the SACK packet via the VNIC 501-2 (1115). Since this SACK packet is created by the L4 stack on the standby side, it should not be transmitted to the communication partner. Therefore, the header processing unit 500-2 discards the SACK packet (1116).

以上の手順を踏むことで、外部の他装置から受信したDATAパケットを現用系と待機系に入力し、適当なヘッダの値に書き換えることで、現用系と待機系のL4スタックでSCTPパケットを並列処理できるようになる。すなわち、ヘッダ処理部と併せることで、OSに改造を加えることなく、現用系と待機系のL4スタックが正しい状態遷移をとることができる。   By following the above procedure, DATA packets received from other external devices are input to the active and standby systems and rewritten with appropriate header values, so that SCTP packets are paralleled in the L4 stacks of the active and standby systems. It can be processed. That is, by combining with the header processing unit, the active and standby L4 stacks can take a correct state transition without modifying the OS.

次に、図11の場合とは反対にゲートウェイ装置の現用系であるCPUブレード1から、SCTPコネクションを確立した通信相手である外部の他装置に対して、SCTP DATAパケットを送信する処理手順を、図12を用いて説明する。CPUブレード1のアプリケーション503−1が、L4スタック502−1に対してアプリケーションデータの送信を要求する(1200)。L4スタックは、DATAパケットを作成し、VNIC501−1に渡す(1201)。ヘッダ処理500−1は、VNICを介してDATAパケットを受け取る(1202)。ヘッダ処理部は、転送先テーブルを参照して、DATAパケットをCPUブレード2のヘッダ処理部500−2に通知する(1203)。ヘッダ処理部500−1は同時に、受け取ったDATAパケットに対して、パラメータ格納テーブル510−1を参照する。しかしながら、図9Aに示したように、パラメータ格納テーブル510−1のエントリで、書換用の検証タグの項には何も記述がないので、ヘッダ処理部500−1はパケットヘッダに対して操作を行わない。その後、ヘッダ処理部は、自身が保持するパラメータ格納テーブル510−1のエントリの自分のシーケンス番号903を1だけ増やして更新する。そして、ヘッダ処理部は、DATAパケットをスイッチブレード420に転送する(1204)。スイッチブレードは、通信相手にDATAパケットを送信する(1205)。   Next, in contrast to the case of FIG. 11, the processing procedure for transmitting the SCTP DATA packet from the CPU blade 1 which is the active system of the gateway device to the other external device which is the communication partner with which the SCTP connection has been established, This will be described with reference to FIG. The application 503-1 of the CPU blade 1 requests the L4 stack 502-1 to transmit application data (1200). The L4 stack creates a DATA packet and passes it to the VNIC 501-1 (1201). The header process 500-1 receives the DATA packet via the VNIC (1202). The header processing unit refers to the transfer destination table and notifies the DATA packet to the header processing unit 500-2 of the CPU blade 2 (1203). At the same time, the header processing unit 500-1 refers to the parameter storage table 510-1 for the received DATA packet. However, as shown in FIG. 9A, since there is no description in the item of the verification tag for rewriting in the entry of the parameter storage table 510-1, the header processing unit 500-1 operates the packet header. Not performed. Thereafter, the header processing unit updates the sequence number 903 of the entry of the parameter storage table 510-1 held by itself by 1 and updates it. Then, the header processing unit transfers the DATA packet to the switch blade 420 (1204). The switch blade transmits a DATA packet to the communication partner (1205).

一方、CPUブレード2のヘッダ処理部500−2は、1203のDATAパケット通知を受けた後、現用系であるCPUブレード1のアプリケーション503−1からアプリケーション送信要求があったことを通知し、待機系であるCPUブレード2のアプリケーション503−2が同様のアプリケーションデータ送信要求を行うことを促す(1206)。こうすることで、待機系側のアプリケーション503−2は、現用系側のアプリケーション503−1がどのようなアプリケーションデータを送信したのかを知ることができ、アプリケーション間の同期も可能になる。アプリケーション503−2は、L4スタック502−2に対してアプリケーションデータの送信要求を行う(1207)。L4スタックは、DATAパケットを作成し、VNIC501−2に渡す(1208)。ヘッダ処理500−2は、VNICを介してDATAパケットを受け取る(1209)。ヘッダ処理部は、自身が保持するパラメータ格納テーブル510−2のエントリの自分のシーケンス番号903と、現用系を示す書換用のシーケンス番号905をそれぞれ1だけ増やして更新する。このDATAパケットは、待機系側のL4スタックが作成したものなので、通信相手には送信すべきものではない。そのため、ヘッダ処理部500−2はDATAパケットを破棄する(1210)。   On the other hand, after receiving the DATA packet notification 1203, the header processing unit 500-2 of the CPU blade 2 notifies that there is an application transmission request from the application 503-1 of the CPU blade 1 which is the active system, and the standby system The application 503-2 of the CPU blade 2 is urged to make a similar application data transmission request (1206). By doing so, the standby-side application 503-2 can know what kind of application data the active-side application 503-1 has transmitted, and synchronization between applications is also possible. The application 503-2 makes a transmission request for application data to the L4 stack 502-2 (1207). The L4 stack creates a DATA packet and passes it to the VNIC 501-2 (1208). The header process 500-2 receives the DATA packet via the VNIC (1209). The header processing unit increments and updates its own sequence number 903 of the entry in the parameter storage table 510-2 held by itself and the rewrite sequence number 905 indicating the active system. Since this DATA packet is created by the L4 stack on the standby side, it should not be sent to the communication partner. Therefore, the header processing unit 500-2 discards the DATA packet (1210).

その後、スイッチブレード420が、通信相手の外部の他装置からSACKパケットを受信する(1220)。スイッチブレードはCPUブレード1にSACKパケットを転送し、ヘッダ処理部500−1がそのSACKパケットを受信する(1221)。ヘッダ処理部は、転送先テーブルを参照して、SACKパケットをCPUブレード2のヘッダ処理部500−2に通知する(1222)。ヘッダ処理部500−1は同時に、VNIC501−1を介してL4スタック502−1にSACKパケットを渡す(1223、1224)。   Thereafter, the switch blade 420 receives a SACK packet from another device outside the communication partner (1220). The switch blade transfers the SACK packet to the CPU blade 1, and the header processing unit 500-1 receives the SACK packet (1221). The header processing unit refers to the transfer destination table and notifies the header processing unit 500-2 of the CPU blade 2 of the SACK packet (1222). At the same time, the header processing unit 500-1 passes the SACK packet to the L4 stack 502-1 via the VNIC 501-1 (1223, 1224).

一方、CPUブレード2のヘッダ処理部500−2は、1222のSACKパケット通知を受けた後、パラメータ格納テーブル510−2のエントリの自分の検証タグ902と自分のシーケンス番号903を参照し、図2Bに示したSACKパケットのヘッダにある検証タグ213と受信DATAパケットのシーケンス番号214を、参照した値に書き換える(1225)。これは、SACKパケットのヘッダの検証タグには現用系のものが、また受信DATAパケットのシーケンス番号には現用系が送信したDATAパケットのシーケンス番号が記述されており、そのままではCPUブレード2のL4スタック502−2がパケットを破棄してしまうからである。その後、ヘッダ処理部500−2は、VNIC501−2を介してL4スタック502−2にSACKパケットを渡す(1226、1227)。   On the other hand, after receiving the SACK packet notification 1222, the header processing unit 500-2 of the CPU blade 2 refers to its own verification tag 902 and its own sequence number 903 in the entry of the parameter storage table 510-2, and FIG. The verification tag 213 in the header of the SACK packet and the sequence number 214 of the received DATA packet are rewritten to the referenced values (1225). This is because the active tag is described in the verification tag of the header of the SACK packet, and the sequence number of the DATA packet transmitted by the active system is described in the sequence number of the received DATA packet. This is because the stack 502-2 discards the packet. Thereafter, the header processing unit 500-2 passes the SACK packet to the L4 stack 502-2 via the VNIC 501-2 (1226, 1227).

以上の手順を踏むことで、現用系側のアプリケーションから外部の他装置に送信するDATAパケットを現用系と待機系で作り出し、また応答であるSACKパケットを現用系と待機系に入力して適当なヘッダの値に書き換えて、現用系と待機系のL4スタックでSCTPパケットを並列処理できるようになる。すなわち、ヘッダ処理部と併せることで、OSに改造を加えることなく、現用系と待機系のL4スタックが正しい状態遷移をとることができる。   By following the above procedure, a DATA packet to be transmitted from the application on the active system side to another external device is created on the active system and the standby system, and a SACK packet as a response is input to the active system and the standby system to obtain an appropriate By rewriting the header value, the SCTP packet can be processed in parallel in the L4 stack of the active system and the standby system. That is, by combining with the header processing unit, the active and standby L4 stacks can take a correct state transition without modifying the OS.

また、本実施例では、スイッチブレードが通信相手からSCTPパケットを受信した場合、先に現用系に転送するように設定しているが、実際には先に待機系に転送するようにすることも可能である。
(B)故障発生時におけるSCTPパケット送受信
次に、前記(A)の手順を満たしておくことで、現用系もしくは待機系に故障が発生した場合でも、L4コネクションを切断することなく、通信を継続できることを説明する。
(B−1)現用系故障発生時におけるSCTP DATAパケット送受信
図13は、現用系であるCPUブレード1(410−1)に故障が発生した際に、待機系であるCPUブレード2(410−2)がパケットを受信するための前準備の手順である。CPUブレード1に故障が発生する(1300)。CPUブレード2は、その故障を検知する(1301)。すると、CPUブレード2では、ヘッダ処理部が保持する転送先テーブルの各エントリにある転送先から、<CPUブレード1>という記述を削除し、転送を停止する(1302)。CPUブレード2は、スイッチブレード420に対してGratuitous ARPパケットを送信し、MACアドレスをスイッチブレードに登録する(1304)。こうすることで、ゲートウェイ装置宛に送られてきたパケットがCPUブレード2に転送されるようになる。その後、CPUブレード2は、現用系として動作するように、内部で動くアプリケーションを現用状態に移行する(1305)。なお、本実施の形態のゲートウェイ装置のように、あらかじめ待機系側のアプリケーションにすべてのアプリケーションデータを転送しておくことで、冗長切替時にアプリケーション情報の引継ぎを行わなくて済む。
In this embodiment, when the switch blade receives the SCTP packet from the communication partner, it is set to forward to the active system first, but in practice, it may be forwarded to the standby system first. Is possible.
(B) SCTP packet transmission / reception at the time of failure Next, by satisfying the procedure (A) above, communication can be continued without disconnecting the L4 connection even if a failure occurs in the active or standby system. Explain what you can do.
(B-1) SCTP DATA packet transmission / reception at the time of failure of the active system FIG. 13 shows the CPU blade 2 (410-2) as the standby system when a failure occurs in the CPU blade 1 (410-1) as the active system. ) Is a preparation procedure for receiving a packet. A failure occurs in the CPU blade 1 (1300). The CPU blade 2 detects the failure (1301). Then, the CPU blade 2 deletes the description <CPU blade 1> from the transfer destination in each entry of the transfer destination table held by the header processing unit, and stops the transfer (1302). The CPU blade 2 transmits a Gratuitous ARP packet to the switch blade 420 and registers the MAC address in the switch blade (1304). By doing so, the packet sent to the gateway device is transferred to the CPU blade 2. Thereafter, the CPU blade 2 shifts the application running inside to the active state so as to operate as the active system (1305). Note that, as in the gateway device of the present embodiment, all application data is transferred to the standby-side application in advance, so that application information does not have to be taken over during redundancy switching.

次に、図14を用いて、SCTPコネクションを確立した通信相手である外部の他装置から、SCTP DATAパケットを受信する処理手順を説明する。スイッチブレード420は、通信相手からDATAパケットを受信し(1400)、CPUブレード2に転送する。ヘッダ処理部500−2は、DATAパケットを受け取る(1401)。ヘッダ処理部500−1は、受け取ったDATAパケットに対して、パラメータ格納テーブル510−2のエントリの自分の検証タグ902を参照し、図2Aに示したDATAパケットのヘッダの検証タグ203を、参照した値に書き換える(1402)。これは、DATAパケットのヘッダの検証タグには現用系であったCPUブレード1のものが記述されており、そのままではCPUブレード2のL4スタック502−2がパケットを破棄してしまうからである。その後、ヘッダ処理部は、自身が保持するパラメータ格納テーブル510−2のエントリの通信相手のシーケンス番号907を1だけ増やして更新する。そして、ヘッダ処理部は、VNIC501−2を介してL4スタック502−2にDATAパケットを渡す(1403、1404)。L4スタックは、DATAパケットのペイロード部分にあるアプリケーションデータを抽出し、アプリケーション503−2に渡す(1405)。L4スタックは同時に、応答としてSACKパケットを返す(1406)。ヘッダ処理500−2は、VNIC501−2を介して、SACKパケットを受け取る(1407)。このSACKパケットのヘッダ書換は不要である。ヘッダ処理部は、SACKパケットをスイッチブレード420に転送する(1408)。スイッチブレードは、通信相手にSACKパケットを送信する(1409)。   Next, a processing procedure for receiving an SCTP DATA packet from another external device that is a communication partner with which an SCTP connection has been established will be described with reference to FIG. The switch blade 420 receives the DATA packet from the communication partner (1400) and transfers it to the CPU blade 2. The header processing unit 500-2 receives the DATA packet (1401). The header processing unit 500-1 refers to the verification tag 902 of the entry of the parameter storage table 510-2 for the received DATA packet, and refers to the verification tag 203 of the header of the DATA packet illustrated in FIG. 2A. (1402). This is because the verification tag in the header of the DATA packet describes that of the active CPU blade 1, and the L4 stack 502-2 of the CPU blade 2 discards the packet as it is. Thereafter, the header processing unit updates the sequence number 907 of the communication partner in the entry of the parameter storage table 510-2 held by itself by 1 and updates it. Then, the header processing unit passes the DATA packet to the L4 stack 502-2 through the VNIC 501-2 (1403, 1404). The L4 stack extracts the application data in the payload portion of the DATA packet and passes it to the application 503-2 (1405). At the same time, the L4 stack returns a SACK packet as a response (1406). The header processing 500-2 receives the SACK packet via the VNIC 501-2 (1407). It is not necessary to rewrite the header of this SACK packet. The header processing unit transfers the SACK packet to the switch blade 420 (1408). The switch blade transmits a SACK packet to the communication partner (1409).

次に、図15を用いて、ゲートウェイ装置の現在の現用系であるCPUブレード2から、SCTPコネクションを確立した通信相手である外部の他装置に対して、SCTP DATAパケットを送信する処理手順を説明する。CPUブレード2のアプリケーション503−2が、L4スタック502−2に対してアプリケーションデータの送信を要求する(1500)。L4スタックは、DATAパケットを作成し、VNIC501−2に渡す(1501)。ヘッダ処理500−2は、VNICを介してDATAパケットを受け取る(1502)。ヘッダ処理部は、自身が保持するパラメータ格納テーブル510−2のエントリの自分のシーケンス番号903と、書換用のシーケンス番号905をそれぞれ1だけ増やして更新する。ヘッダ処理部は同時に、パラメータ格納テーブルのエントリの書換用のシーケンス番号905を参照し、図2Aに示したDATAパケットのヘッダのシーケンス番号204を、参照した値に書き換える(1503)。これは、DATAパケットのヘッダのシーケンス番号にはCPUブレード2のものが記述されているからである。SCTPコネクションが確立されたままなので、通信相手はDATAパケットのシーケンス番号にはCPUブレード1のもの、すなわち参照している書換用のシーケンス番号905の値が記述されていることを期待している。そのため、そのままでは通信相手がパケットを破棄してしまう。ヘッダ処理部500−2は、ヘッダを書き換えた後、DATAパケットをスイッチブレード420に転送する(1504)。スイッチブレードは、通信相手にDATAパケットを送信する(1505)。   Next, a processing procedure for transmitting an SCTP DATA packet from the CPU blade 2 that is the current active system of the gateway device to another external device that is the communication partner with which the SCTP connection has been established will be described with reference to FIG. To do. The application 503-2 of the CPU blade 2 requests the L4 stack 502-2 to transmit application data (1500). The L4 stack creates a DATA packet and passes it to the VNIC 501-2 (1501). The header process 500-2 receives the DATA packet via the VNIC (1502). The header processing unit increments and updates its own sequence number 903 and rewrite sequence number 905 of the entry of the parameter storage table 510-2 held by itself. At the same time, the header processing unit refers to the sequence number 905 for rewriting the entry of the parameter storage table, and rewrites the sequence number 204 of the header of the DATA packet shown in FIG. 2A to the referenced value (1503). This is because the sequence number of the header of the DATA packet describes the CPU blade 2. Since the SCTP connection remains established, the communication partner expects that the sequence number of the DATA packet describes the value of the CPU blade 1, that is, the rewrite sequence number 905 referred to. Therefore, the communication partner discards the packet as it is. After rewriting the header, the header processing unit 500-2 transfers the DATA packet to the switch blade 420 (1504). The switch blade transmits a DATA packet to the communication partner (1505).

その後、スイッチブレード420が、通信相手の外部の他装置からSACKパケットを受信する(1506)。スイッチブレードはCPUブレード2にSACKパケットを転送し、ヘッダ処理部500−2がそのSACKパケットを受信する(1507)。ヘッダ処理部は、パラメータ格納テーブル510−2のエントリの自分の検証タグ902と自分のシーケンス番号903を参照し、図2Bに示したSACKパケットのヘッダにある検証タグ213と受信DATAパケットのシーケンス番号214を、参照した値に書き換える(1508)。これは、SACKパケットのヘッダの検証タグ213には現用系であったCPUブレード1のものが、また受信DATAパケットのシーケンス番号214には、ヘッダを書換用のシーケンス番号に書き換えて送信したDATAパケットのシーケンス番号が記述されており、そのままではCPUブレード2のL4スタック502−2がパケットを破棄してしまうからである。その後、ヘッダ処理部500−2は、VNIC501−2を介してL4スタック502−2にSACKパケットを渡す(1509、1510)。   Thereafter, the switch blade 420 receives a SACK packet from another device outside the communication partner (1506). The switch blade transfers the SACK packet to the CPU blade 2, and the header processing unit 500-2 receives the SACK packet (1507). The header processing unit refers to its own verification tag 902 and its own sequence number 903 in the entry of the parameter storage table 510-2, and checks the verification tag 213 in the header of the SACK packet shown in FIG. 2B and the sequence number of the received DATA packet. 214 is rewritten to the referenced value (1508). This is because the verification tag 213 in the header of the SACK packet is that of the active CPU blade 1, and in the sequence number 214 of the received DATA packet, the DATA packet transmitted by rewriting the header with the sequence number for rewriting This is because the L4 stack 502-2 of the CPU blade 2 discards the packet as it is. Thereafter, the header processing unit 500-2 passes the SACK packet to the L4 stack 502-2 via the VNIC 501-2 (1509, 1510).

以上の手順を踏むことで、SCTPコネクションを切断することなく、通信を継続できる。すなわち、L4コネクションの冗長化を達成できる。また、故障発生時に必要な動作は、図13の手順だけであり、冗長切替の高速化に貢献できる。
(B−2)待機系故障発生時におけるSCTP DATAパケット送受信
図16は、待機系であるCPUブレード2(410−2)に故障が発生した際に、現用系であるCPUブレード1(410−1)が行う手順である。CPUブレード2に故障が発生する(1600)。CPUブレード1は、その故障を検知する(1601)。すると、CPUブレード1では、ヘッダ処理部が保持する転送先テーブルの各エントリにある転送先から、<CPUブレード2>という記述を削除し、転送を停止する(1602)。要するに、CPUブレード1から2へのSCTPパケットの転送を停止するだけである。
By following the above procedure, communication can be continued without disconnecting the SCTP connection. That is, the redundancy of the L4 connection can be achieved. Further, the operation necessary when a failure occurs is only the procedure shown in FIG. 13, which can contribute to speeding up redundancy switching.
(B-2) SCTP DATA packet transmission / reception when standby system failure occurs FIG. 16 shows the CPU blade 1 (410-1) as the active system when a failure occurs in the CPU blade 2 (410-2) as the standby system. ) Is the procedure to be performed. A failure occurs in the CPU blade 2 (1600). The CPU blade 1 detects the failure (1601). Then, the CPU blade 1 deletes the description <CPU blade 2> from the transfer destination in each entry of the transfer destination table held by the header processing unit, and stops the transfer (1602). In short, the transfer of the SCTP packet from the CPU blade 1 to 2 is only stopped.

次に、図17を用いて、SCTPコネクションを確立した通信相手である外部の他装置から、SCTP DATAパケットを受信する処理手順を説明する。スイッチブレード420は、通信相手からDATAパケットを受信し(1700)、CPUブレード1に転送する。ヘッダ処理部500−1は、DATAパケットを受け取る(1701)。ヘッダ処理部500−1は、受け取ったDATAパケットに対して、パラメータ格納テーブル510−1を参照する。しかしながら、図9Aに示したように、パラメータ格納テーブル510−1のエントリで、書換用の検証タグの項には何も記述がないので、ヘッダ処理部500−1はパケットヘッダに対して操作を行わない。その後、ヘッダ処理部は、自身が保持するパラメータ格納テーブル510−1のエントリの通信相手のシーケンス番号907を1だけ更新する。そして、ヘッダ処理部は、VNIC501−1を介してL4スタック502−1にDATAパケットを渡す(1702、1703)。L4スタックはDATAパケットのペイロード部分にあるアプリケーションデータを抽出し、アプリケーション503−1に渡す(1704)。L4スタックは同時に、応答としてSACKパケットを返す(1705)。ヘッダ処理500−1は、VNIC501−1を介して、SACKパケットを受け取る(1706)。ヘッダ処理部は、SACKパケットをスイッチブレード420に転送する(1707)。スイッチブレードは、通信相手にSACKパケットを送信する(1708)。   Next, a processing procedure for receiving an SCTP DATA packet from another external device that is a communication partner with which an SCTP connection has been established will be described with reference to FIG. The switch blade 420 receives the DATA packet from the communication partner (1700) and transfers it to the CPU blade 1. The header processing unit 500-1 receives the DATA packet (1701). The header processing unit 500-1 refers to the parameter storage table 510-1 for the received DATA packet. However, as shown in FIG. 9A, since there is no description in the item of the verification tag for rewriting in the entry of the parameter storage table 510-1, the header processing unit 500-1 operates the packet header. Not performed. Thereafter, the header processing unit updates the sequence number 907 of the communication partner in the entry of the parameter storage table 510-1 held by itself by one. Then, the header processing unit passes the DATA packet to the L4 stack 502-1 via the VNIC 501-1 (1702, 1703). The L4 stack extracts the application data in the payload portion of the DATA packet and passes it to the application 503-1 (1704). At the same time, the L4 stack returns a SACK packet as a response (1705). The header processing 500-1 receives the SACK packet via the VNIC 501-1 (1706). The header processing unit transfers the SACK packet to the switch blade 420 (1707). The switch blade transmits a SACK packet to the communication partner (1708).

次に、図18を用いて、ゲートウェイ装置の現用系であるCPUブレード1から、SCTPコネクションを確立した通信相手である外部の他装置に対して、SCTP DATAパケットを送信する処理手順を説明する。CPUブレード1のアプリケーション503−1が、L4スタック502−1に対してアプリケーションデータの送信を要求する(1800)。L4スタックは、DATAパケットを作成し、VNIC501−1に渡す(1801)。ヘッダ処理500−1は、VNICを介してDATAパケットを受け取る(1802)。ヘッダ処理部は、受け取ったDATAパケットに対して、パラメータ格納テーブル510−1を参照する。しかしながら、図9Aに示したように、パラメータ格納テーブル510−1のエントリで、書換用の検証タグの項には何も記述がないので、ヘッダ処理部500−1はパケットヘッダに対して操作を行わない。その後、ヘッダ処理部は、自身が保持するパラメータ格納テーブル510−1のエントリの自分のシーケンス番号903を1だけ増やして更新する。そして、ヘッダ処理部は、DATAパケットをスイッチブレード420に転送する(1803)。スイッチブレードは、通信相手にDATAパケットを送信する(1804)。   Next, a processing procedure for transmitting an SCTP DATA packet from the CPU blade 1 that is the active system of the gateway device to another external device that is the communication partner with which the SCTP connection has been established will be described with reference to FIG. The application 503-1 of the CPU blade 1 requests the L4 stack 502-1 to transmit application data (1800). The L4 stack creates a DATA packet and passes it to the VNIC 501-1 (1801). The header process 500-1 receives the DATA packet via the VNIC (1802). The header processing unit refers to the parameter storage table 510-1 for the received DATA packet. However, as shown in FIG. 9A, since there is no description in the item of the verification tag for rewriting in the entry of the parameter storage table 510-1, the header processing unit 500-1 operates the packet header. Not performed. Thereafter, the header processing unit updates the sequence number 903 of the entry of the parameter storage table 510-1 held by itself by 1 and updates it. Then, the header processing unit transfers the DATA packet to the switch blade 420 (1803). The switch blade transmits a DATA packet to the communication partner (1804).

その後、スイッチブレード420が、通信相手の外部の他装置からSACKパケットを受信する(1805)。スイッチブレードはCPUブレード1にSACKパケットを転送し、ヘッダ処理部500−1がそのSACKパケットを受信する(1806)。ヘッダ処理部は、VNIC501−1を介してL4スタック502−1にSACKパケットを渡す(1807、1808)。   Thereafter, the switch blade 420 receives a SACK packet from another device outside the communication partner (1805). The switch blade transfers the SACK packet to the CPU blade 1, and the header processing unit 500-1 receives the SACK packet (1806). The header processing unit passes the SACK packet to the L4 stack 502-1 via the VNIC 501-1 (1807 and 1808).

以上の手順を踏むことで、待機系故障発生時にもなんら問題なく、DATAパケットの送受信を続けることができる。
(C)新たにCPUブレード3を現用系として追加した際のSCTPパケット送受信
次に、前記(A)の手順を満たしておくことで、負荷分散のために新たに現用系を追加した場合でも、L4コネクションを切断することなく、通信を継続できることを説明する。ここで想定する状況は、現用系であるCPUブレード1のCPU負荷が高くなってきた際に、あらたにCPUブレード3を追加し、一部のSCTPコネクションのパケット処理をCPUブレード3に切り替える場合である。
(C−1)CPUブレード1からCPUブレード3へのSCTPコネクション切替
図19A、図19Bを用いて、CPUブレード1からCPUブレード3への特定のSCTPコネクションの端点を切り替える手順を説明する。図19Aから説明する。CPUブレード3(410−3)も、他のCPUブレードと同様に、ヘッダ処理部500−3、VNIC501−3、L4スタック502−3、アプリケーション503−3を備える。まず、装置の管理者が、各CPUブレードに負荷分散を開始することを設定する(1900)。すると、CPUブレード3のアプリケーション503−3が、現用状態で起動する(1901)。アプリケーションは、L4スタック502−3に対して待ち受け登録(Listen)を行う(1902)。次に、CPUブレード1のヘッダ処理部500−1は、ヘッダ処理部500−3に対して、端点の切替をしたいSCTPコネクションのL4パラメータを通知する(1910)。
By following the above procedure, DATA packet transmission / reception can be continued without any problem even when a standby system failure occurs.
(C) SCTP packet transmission / reception when the CPU blade 3 is newly added as the active system Next, by satisfying the procedure (A), even when a new active system is added for load distribution, Explain that communication can be continued without disconnecting the L4 connection. The situation assumed here is that when the CPU load of the active CPU blade 1 becomes high, a new CPU blade 3 is added and packet processing of some SCTP connections is switched to the CPU blade 3. is there.
(C-1) SCTP Connection Switching from CPU Blade 1 to CPU Blade 3 A procedure for switching an end point of a specific SCTP connection from the CPU blade 1 to the CPU blade 3 will be described with reference to FIGS. 19A and 19B. It demonstrates from FIG. 19A. Similarly to the other CPU blades, the CPU blade 3 (410-3) also includes a header processing unit 500-3, a VNIC 501-3, an L4 stack 502-3, and an application 503-3. First, the administrator of the apparatus sets to start load distribution to each CPU blade (1900). Then, the application 503-3 of the CPU blade 3 is activated in the active state (1901). The application performs standby registration (Listen) for the L4 stack 502-3 (1902). Next, the header processing unit 500-1 of the CPU blade 1 notifies the header processing unit 500-3 of the L4 parameter of the SCTP connection whose end point is to be switched (1910).

図20は、L4パラメータ通知メッセージ1910のデータ構造である。L4パラメータ通知メッセージは、通信相手のアドレス2000と、自分のポート番号2001と、通信相手のポート番号2002と、書換用の検証タグ2003と、書換用のシーケンス番号2004と、通信相手の検証タグ2005と、通信相手のシーケンス番号2006を含む。これらの情報はすべて、ヘッダ処理部500−1が保持する、図9Aに示したパラメータ格納テーブル510−1のエントリから作成される。自分のポート番号2001には自分のポート番号900を、通信相手のポート番号2002には通信相手のポート番号901を、書換用の検証タグ2003には自分の検証タグ902を、書換用のシーケンス番号2004には現在の自分のシーケンス番号903を、通信相手の検証タグ2005には通信相手の検証タグ906を、通信相手のシーケンス番号2006には現在のシーケンス番号907を格納する。   FIG. 20 shows the data structure of the L4 parameter notification message 1910. The L4 parameter notification message includes a communication partner address 2000, its own port number 2001, a communication partner port number 2002, a rewrite verification tag 2003, a rewrite sequence number 2004, and a communication partner verification tag 2005. And the communication partner's sequence number 2006. All of these pieces of information are created from the entries in the parameter storage table 510-1 shown in FIG. 9A held by the header processing unit 500-1. The own port number 2001 is the own port number 900, the communication partner port number 2002 is the communication partner port number 901, the rewrite verification tag 2003 is the own verification tag 902, and the rewrite sequence number is The current sequence number 903 is stored in 2004, the verification tag 906 of the communication partner is stored in the verification tag 2005 of the communication partner, and the current sequence number 907 is stored in the sequence number 2006 of the communication partner.

図19Aに戻る。ヘッダ処理部500−3は、L4パラメータ通知メッセージの通信相手の検証タグ2005と、通信相手のシーケンス番号2006を用いて、INITパケットを作成し、VNIC501−3を介してL4スタック502−3に渡す(1911、1912)。ヘッダ処理部500−3がこのようなINITパケットを作成することで、L4スタック502−3に対して、擬似的に通信相手からSCTPコネクション確立要求があったかのように挙動させることができる。このとき、通信相手のシーケンス番号を引き継ぐため、通信相手はSCTPコネクションを張り直すことなく、SCTPパケットを送信し続けることができる。その後、L4スタック502−3は、応答としてINIT−ACKパケットを返す(1913)。ヘッダ処理500−3は、VNIC501−3を介して、INIT−ACKパケットを受け取る(1914)。ヘッダ処理部は、INIT−ACKパケットに記述されている自分の検証タグとシーケンス番号の初期値を抽出し、パラメータ格納テーブルに記憶する(1915)。   Returning to FIG. 19A. The header processing unit 500-3 creates an INIT packet using the communication partner verification tag 2005 of the L4 parameter notification message and the communication partner sequence number 2006, and passes it to the L4 stack 502-3 via the VNIC 501-3. (1911, 1912). By creating such an INIT packet, the header processing unit 500-3 can cause the L4 stack 502-3 to behave as if an SCTP connection establishment request is received from a communication partner in a pseudo manner. At this time, since the sequence number of the communication partner is taken over, the communication partner can continue to transmit the SCTP packet without re-establishing the SCTP connection. Thereafter, the L4 stack 502-3 returns an INIT-ACK packet as a response (1913). The header processing 500-3 receives the INIT-ACK packet via the VNIC 501-3 (1914). The header processing unit extracts the initial value of its own verification tag and sequence number described in the INIT-ACK packet, and stores them in the parameter storage table (1915).

図21は、CPUブレード3のヘッダ処理部500−3がもつパラメータ格納テーブル510−3である。ヘッダ処理部は、パラメータ格納テーブル510−3にエントリを作成し、1910のL4パラメータ通知メッセージに記述されたパラメータと、1915で抽出したパラメータを格納する。図21に示すエントリは、1915の時点での状態である。このとき、書換用の検証タグ903には元の現用系であったCPUブレード1の検証タグが、書換用のシーケンス番号には904には切替直前のCPUブレード1のシーケンス番号が、それぞれ記述されることになる。   FIG. 21 is a parameter storage table 510-3 included in the header processing unit 500-3 of the CPU blade 3. The header processing unit creates an entry in the parameter storage table 510-3, and stores the parameters described in the L4 parameter notification message 1910 and the parameters extracted in 1915. The entry shown in FIG. 21 is in the state as of 1915. At this time, the verification tag for the CPU blade 1 that was the original active system is described in the verification tag for rewriting 903, and the sequence number of the CPU blade 1 immediately before switching is described in 904 as the sequence number for rewriting. Will be.

図19Aに戻る。ヘッダ処理部500−3はCOOKIE−ECHOパケットを作成し、VNIC501−3を介してL4スタック502−3に渡す(1916、1917)。L4スタックは、応答としてCOOKIE−ACKパケットを返す(1918)。ヘッダ処理500−3は、VNIC501−3を介して、COOKIE−ACKパケットを受け取る(1919)。ここで、L4スタック502−3は、待ち受け登録をしたアプリケーション503−3に対して、このSCTPコネクションのソケット番号を通知し(1920)、コネクション確立状態に遷移する(1921)。これ以降、L4スタック502−3は、切替対象となったSCTPパケットを送受信することができるようになる。その後、ヘッダ処理部500−3は、CPUブレード1のヘッダ処理部500−1に対して、SCTPコネクション設定が完了したことを通知する(1922)。   Returning to FIG. 19A. The header processing unit 500-3 creates a COOKIE-ECHO packet and passes it to the L4 stack 502-3 via the VNIC 501-3 (1916, 1917). The L4 stack returns a COOKIE-ACK packet as a response (1918). The header processing 500-3 receives the COOKIE-ACK packet via the VNIC 501-3 (1919). Here, the L4 stack 502-3 notifies the socket number of this SCTP connection to the application 503-3 that has registered for standby (1920), and transitions to a connection established state (1921). Thereafter, the L4 stack 502-3 can transmit and receive the SCTP packet to be switched. Thereafter, the header processing unit 500-3 notifies the header processing unit 500-1 of the CPU blade 1 that the SCTP connection setting has been completed (1922).

図19Bに進む。CPUブレード1のアプリケーション503−1は、CPUブレード3のアプリケーション503−3に対して、サービスを引き継ぐのに必要なアプリケーション情報を通知する(1930)。本実施の形態のゲートウェイ装置では、アプリケーション情報通知の方法については特に制限はなく、任意の方法を採ることが可能である。その後、各CPUブレードのヘッダ処理部は、1900で管理者が設定した情報に転送先テーブルを変更する(1931、1932、1933)。具体的には、CPUブレード1とCPUブレード3の間、CPUブレード2とCPUブレード3の間で切替対象となったSCTPコネクションのパケットを転送するように設定される。その後、CPUブレード1のL4スタックが持っているSCTPコネクションリソースを解放するため、ヘッダ処理部500−1は、図9Aに示すパラメータ格納テーブル510−1のエントリの通信相手の検証タグを用いてSHUTDOWNパケットを作成し、VNIC501−1を介してL4スタック502−1に渡す(1934、1935)。ヘッダ処理部500−1がこのようなSHUTDOWNパケットを作成することで、L4スタック502−1に対して、擬似的に通信相手からSCTPコネクション終了要求があったかのように挙動させることができる。その後、L4スタック502−1は、応答としてSHUTDOWN−ACKパケットを返す(1936)。ヘッダ処理500−1は、VNIC501−1を介して、SHUTDOWN−ACKパケットを受け取る(1937)。ヘッダ処理部は、完了通知としてSHUDOWN−COMPLETEパケットを作成し、VNIC501−1を介してL4スタック502−1に渡す(1938、1939)。L4スタックは該当するSCTPコネクションを利用していたアプリケーション503−1に対して、SCTPコネクションの切断通知を行い(1940)、コネクション終了状態に遷移する(1941)。   Proceed to FIG. 19B. The application 503-1 of the CPU blade 1 notifies the application information necessary for taking over the service to the application 503-3 of the CPU blade 3 (1930). In the gateway apparatus according to the present embodiment, the application information notification method is not particularly limited, and an arbitrary method can be adopted. Thereafter, the header processing unit of each CPU blade changes the transfer destination table to the information set by the administrator in 1900 (1931, 1932, 1933). Specifically, the SCTP connection packet that is the switching target is transferred between the CPU blade 1 and the CPU blade 3 and between the CPU blade 2 and the CPU blade 3. Thereafter, in order to release the SCTP connection resource held by the L4 stack of the CPU blade 1, the header processing unit 500-1 uses the verification tag of the communication partner in the entry of the parameter storage table 510-1 shown in FIG. 9A to perform SHUTDOWN. A packet is created and passed to the L4 stack 502-1 via the VNIC 501-1 (1934, 1935). When the header processing unit 500-1 creates such a SHUTDOWN packet, the L4 stack 502-1 can be made to behave as if a SCTP connection termination request is received from a communication partner in a pseudo manner. Thereafter, the L4 stack 502-1 returns a SHUTDOWN-ACK packet as a response (1936). The header processing 500-1 receives the SHUTDOWN-ACK packet via the VNIC 501-1 (1937). The header processing unit creates a SHDOWN-COMPLETE packet as a completion notification and passes it to the L4 stack 502-1 via the VNIC 501-1 (1938, 1939). The L4 stack notifies the disconnection of the SCTP connection to the application 503-1 that has used the corresponding SCTP connection (1940), and transitions to a connection end state (1941).

以上の手順を踏むことで、特定のSCTPコネクションの端点をCPUブレード1からCPUブレード3へ切り替える操作が完了する。
(C−2)前記(C−1)後におけるSCTP DATAパケット送受信
次に、図22を用いて、前記(C−1)の手順を満たした後に、SCTPコネクションを確立した通信相手である外部の他装置から、SCTP DATAパケットを受信する処理手順を説明する。スイッチブレード420は、通信相手からDATAパケットを受信し(2200)、CPUブレード1に転送する。CPUブレード1のヘッダ処理部500−1は、DATAパケットを受け取る(2201)。ヘッダ処理部500−1は、転送先テーブルを参照して、DATAパケットをCPUブレード3のヘッダ処理部500−3に通知する(2202)。ヘッダ処理部500−3は、転送先テーブルを参照して、DATAパケットをCPUブレード2のヘッダ処理部500−2に通知する(2203)。ヘッダ処理部500−3は同時に、受け取ったDATAパケットに対して、パラメータ格納テーブル510−3のエントリの自分の検証タグ902を参照し、図2Aに示したDATAパケットのヘッダの検証タグ203を、参照した値に書き換える(2204)。これは、DATAパケットのヘッダの検証タグには元の現用系であったCPUブレード1の検証タグが記述されており、そのままではCPUブレード3のL4スタック502−3がパケットを破棄してしまうからである。その後、ヘッダ処理部500−3は、自身が保持するパラメータ格納テーブル510−3のエントリの通信相手のシーケンス番号907を1だけ増やして更新する。そして、ヘッダ処理部は、VNIC501−3を介してL4スタック502−3にDATAパケットを渡す(2205、2206)。L4スタックはDATAパケットのペイロード部分にあるアプリケーションデータを抽出し、アプリケーション503−3に渡す(2207)。L4スタックは同時に、応答としてSACKパケットを返す(2208)。ヘッダ処理500−3は、VNIC501−3を介して、SACKパケットを受け取る(2209)。ヘッダ処理部は、SACKパケットをスイッチブレード420に転送する(2210)。スイッチブレードは、通信相手にSACKパケットを送信する(2211)。
By performing the above procedure, the operation for switching the end point of the specific SCTP connection from the CPU blade 1 to the CPU blade 3 is completed.
(C-2) SCTP DATA packet transmission / reception after (C-1) Next, using FIG. 22, after satisfying the procedure of (C-1), an external communication partner that established the SCTP connection A processing procedure for receiving an SCTP DATA packet from another apparatus will be described. The switch blade 420 receives the DATA packet from the communication partner (2200) and transfers it to the CPU blade 1. The header processing unit 500-1 of the CPU blade 1 receives the DATA packet (2201). The header processing unit 500-1 refers to the transfer destination table and notifies the DATA packet to the header processing unit 500-3 of the CPU blade 3 (2202). The header processing unit 500-3 refers to the transfer destination table and notifies the DATA packet to the header processing unit 500-2 of the CPU blade 2 (2203). At the same time, the header processing unit 500-3 refers to its own verification tag 902 in the entry of the parameter storage table 510-3 for the received DATA packet, and sets the verification tag 203 in the header of the DATA packet shown in FIG. The reference value is rewritten (2204). This is because the verification tag of the CPU blade 1 that was the original active system is described in the verification tag of the header of the DATA packet, and the L4 stack 502-3 of the CPU blade 3 discards the packet as it is. It is. Thereafter, the header processing unit 500-3 updates the sequence number 907 of the communication partner in the entry of the parameter storage table 510-3 held by itself by 1 and updates it. The header processing unit passes the DATA packet to the L4 stack 502-3 via the VNIC 501-3 (2205, 2206). The L4 stack extracts the application data in the payload portion of the DATA packet and passes it to the application 503-3 (2207). At the same time, the L4 stack returns a SACK packet as a response (2208). The header processing 500-3 receives the SACK packet via the VNIC 501-3 (2209). The header processing unit transfers the SACK packet to the switch blade 420 (2210). The switch blade transmits a SACK packet to the communication partner (2211).

一方、CPUブレード2のヘッダ処理部500−2は、2203のDATAパケット通知を受けた後、図11に示した1110〜1116と同様の手順を行う。そのため、ここでは説明を省略する。   On the other hand, after receiving the DATA packet notification 2203, the header processing unit 500-2 of the CPU blade 2 performs the same procedure as 1110 to 1116 shown in FIG. Therefore, description is abbreviate | omitted here.

以上の手順を踏むことで、一部のSCTPコネクションのパケット処理をCPUブレード1からCPUブレード3に切り替えた場合でも、SCTPコネクションを切断することなく、継続的にDATAパケットを受信することができる。   By following the above procedure, even when packet processing of some SCTP connections is switched from the CPU blade 1 to the CPU blade 3, it is possible to continuously receive DATA packets without disconnecting the SCTP connection.

次に、図23を用いて、現在の現用系であるCPUブレード3から、SCTPコネクションを確立した通信相手である外部の他装置に対して、SCTP DATAパケットを送信する処理手順を説明する。CPUブレード3のアプリケーション503−3が、L4スタック502−3に対してアプリケーションデータの送信を要求する(2300)。L4スタックは、DATAパケットを作成し、VNIC501−3に渡す(2301)。ヘッダ処理500−3は、VNICを介してDATAパケットを受け取る(2302)。ヘッダ処理部は、自身が保持するパラメータ格納テーブル510−3のエントリの自分のシーケンス番号903と、書換用のシーケンス番号905をそれぞれ1だけ増やして更新する。ヘッダ処理部は同時に、パラメータ格納テーブルのエントリの書換用のシーケンス番号905を参照し、図2Aに示したDATAパケットのヘッダのシーケンス番号204を、参照した値に書き換える(2303)。これは、DATAパケットのヘッダのシーケンス番号にはCPUブレード3のものが記述されているからである。SCTPコネクションが確立されたままなので、通信相手はDATAパケットのシーケンス番号にはCPUブレード1のもの、すなわち参照している書換用のシーケンス番号905の値が記述されていることを期待している。そのため、そのままでは通信相手がパケットを破棄してしまう。ヘッダ処理部500−3は、ヘッダを書き換えた後、DATAパケットをスイッチブレード420に転送する(2304)。スイッチブレードは、通信相手にDATAパケットを送信する(2305)。
一方、ヘッダ処理部500−3は、2304で転送するDATAパケットを複製し、転送先テーブルを参照して、複製したDATAパケットをCPUブレード2のヘッダ処理部500−2に通知する(2306)。その後、ヘッダ処理部500−2は、図12に示した1206〜1210と同様の手順を行う。そのため、ここでは説明を省略する。
Next, a processing procedure for transmitting an SCTP DATA packet from the current active CPU blade 3 to another external apparatus as a communication partner with which an SCTP connection has been established will be described with reference to FIG. The application 503-3 of the CPU blade 3 requests the L4 stack 502-3 to transmit application data (2300). The L4 stack creates a DATA packet and passes it to the VNIC 501-3 (2301). The header processing 500-3 receives the DATA packet via the VNIC (2302). The header processing unit increments and updates its own sequence number 903 and rewrite sequence number 905 of the entry of the parameter storage table 510-3 held by itself. At the same time, the header processing unit refers to the sequence number 905 for rewriting the entry of the parameter storage table, and rewrites the sequence number 204 of the header of the DATA packet shown in FIG. 2A to the referenced value (2303). This is because the sequence number of the header of the DATA packet describes the CPU blade 3. Since the SCTP connection remains established, the communication partner expects that the sequence number of the DATA packet describes the value of the CPU blade 1, that is, the rewrite sequence number 905 referred to. Therefore, the communication partner discards the packet as it is. After rewriting the header, the header processing unit 500-3 transfers the DATA packet to the switch blade 420 (2304). The switch blade transmits a DATA packet to the communication partner (2305).
On the other hand, the header processing unit 500-3 copies the DATA packet transferred in 2304, refers to the transfer destination table, and notifies the copied DATA packet to the header processing unit 500-2 of the CPU blade 2 (2306). Thereafter, the header processing unit 500-2 performs the same procedure as 1206 to 1210 illustrated in FIG. Therefore, description is abbreviate | omitted here.

その後、スイッチブレード420が、通信相手の外部の他装置からSACKパケットを受信する(2310)。スイッチブレードはCPUブレード1にSACKパケットを転送し、ヘッダ処理部500−1がそのSACKパケットを受信する(2311)。ヘッダ処理部500−1は、転送先テーブルを参照して、SACKパケットをCPUブレード3のヘッダ処理部500−3に通知する(2312)。ヘッダ処理部500−3は、転送先テーブルを参照して、SACKパケットをCPUブレード2のヘッダ処理部500−2に通知する(2313)。ヘッダ処理部500−3は同時に、パラメータ格納テーブル510−3のエントリの自分の検証タグ902と自分のシーケンス番号903を参照し、図2Bに示したSACKパケットのヘッダにある検証タグ213と受信DATAパケットのシーケンス番号214を、参照した値に書き換える(2314)。これは、SACKパケットのヘッダの検証タグ213には元の現用系であるCPUブレード1のものが、また受信DATAパケットのシーケンス番号214には、ヘッダを書換用のシーケンス番号に書き換えて送信したDATAパケットのシーケンス番号が記述されており、そのままではCPUブレード2のL4スタック502−2がパケットを破棄してしまうからである。その後、ヘッダ処理部500−3は、VNIC501−3を介してL4スタック502−3にSACKパケットを渡す(2315、2316)。   Thereafter, the switch blade 420 receives a SACK packet from another device outside the communication partner (2310). The switch blade transfers the SACK packet to the CPU blade 1, and the header processing unit 500-1 receives the SACK packet (2311). The header processing unit 500-1 refers to the transfer destination table and notifies the header processing unit 500-3 of the CPU blade 3 of the SACK packet (2312). The header processing unit 500-3 refers to the transfer destination table and notifies the header processing unit 500-2 of the CPU blade 2 of the SACK packet (2313). At the same time, the header processing unit 500-3 refers to its own verification tag 902 and its own sequence number 903 in the entry of the parameter storage table 510-3, and checks the verification tag 213 and received DATA in the header of the SACK packet shown in FIG. 2B. The packet sequence number 214 is rewritten to the referenced value (2314). This is because the verification tag 213 in the header of the SACK packet is the one of the original active CPU blade 1, and the sequence number 214 of the received DATA packet is the DATA transmitted by rewriting the header with the sequence number for rewriting. This is because the packet sequence number is described and the L4 stack 502-2 of the CPU blade 2 discards the packet as it is. Thereafter, the header processing unit 500-3 passes the SACK packet to the L4 stack 502-3 via the VNIC 501-3 (2315, 2316).

一方、CPUブレード2のヘッダ処理部500−2は、2313のSACKパケット通知を受けた後、図12に示した1225〜1227と同様の手順を行う。そのため、ここでは説明を省略する。   On the other hand, after receiving the SACK packet notification 2313, the header processing unit 500-2 of the CPU blade 2 performs the same procedure as 1225 to 1227 shown in FIG. Therefore, description is abbreviate | omitted here.

以上の手順を踏むことで、一部のSCTPコネクションのパケット処理をCPUブレード1からCPUブレード3に切り替えた場合でも、SCTPコネクションを切断することなく、継続的にDATAパケットを送信することができる。
3.処理(フローチャート)
本実施の形態のゲートウェイ装置では、ヘッダ処理部がL4コネクションで用いるパラメータを記憶して、必要に応じてヘッダを書き換えることによって、L4コネクションの冗長化を実現している。ヘッダ処理部の動作パターンは、VNIC、すなわち装置内のL4スタックからパケットを読み込んだ場合と、VNIC以外からパケットを受け取った場合に分けられる。また、装置が現用系である場合と、装置が待機系である場合に分けられる。図24、図25、図26、図27を用いて、SCTPを例にとり、ヘッダ処理部の動作を説明する。
By following the above procedure, even when packet processing for some SCTP connections is switched from the CPU blade 1 to the CPU blade 3, it is possible to continuously transmit DATA packets without disconnecting the SCTP connection.
3. Processing (flow chart)
In the gateway device according to the present embodiment, the header processing unit stores parameters used in the L4 connection and rewrites the header as necessary, thereby realizing redundancy of the L4 connection. The operation pattern of the header processing unit is divided into a case where a packet is read from the VNIC, that is, an L4 stack in the apparatus, and a case where a packet is received from other than the VNIC. Further, there are a case where the device is an active system and a case where the device is a standby system. The operation of the header processing unit will be described using SCTP as an example with reference to FIGS. 24, 25, 26, and 27.

図24は、現用系においてヘッダ処理部がVNICから読込んだSCTPパケットを処理するフローチャート図である。まず、VNICからSCTPパケットを読み込む(2400)。読み込んだパケットがDATAパケットである場合(2401)、図9Aなどで示したパラメータ格納テーブルに該当するエントリがあれば、自分のシーケンス番号903と書換用のシーケンス番号905の値を1だけ増やして更新する(2402)。その後、同エントリの書換用シーケンス番号905に値が記述されている場合には、DATAパケットのヘッダをその値に書き換える(2403)。その後、ヘッダ処理部は、図8に示した転送先テーブルを参照して、適当なCPUブレードのヘッダ処理部にSCTPパケットを転送する(2406)。   FIG. 24 is a flowchart for processing the SCTP packet read from the VNIC by the header processing unit in the active system. First, an SCTP packet is read from the VNIC (2400). When the read packet is a DATA packet (2401), if there is a corresponding entry in the parameter storage table shown in FIG. 9A or the like, the value of own sequence number 903 and rewrite sequence number 905 is incremented by 1 and updated. (2402). Thereafter, if a value is described in the rewrite sequence number 905 of the same entry, the header of the DATA packet is rewritten to that value (2403). Thereafter, the header processing unit transfers the SCTP packet to the header processing unit of an appropriate CPU blade with reference to the transfer destination table shown in FIG. 8 (2406).

一方、VNICから読み込んだSCTPパケットが、INITパケットもしくはINIT−ACKパケットである場合(2404)、パケットに記述されている検証タグとシーケンス番号初期値を抽出し、図9Aなどで示したパラメータ格納テーブルに新たなエントリを作成して、自分の検証タグ902と自分のシーケンス番号903に記憶する(2405)。その後、ヘッダ処理部は、図8に示した転送先テーブルを参照して、適当なCPUブレードのヘッダ処理部にSCTPパケットを転送する(2406)。   On the other hand, if the SCTP packet read from the VNIC is an INIT packet or an INIT-ACK packet (2404), the verification tag and sequence number initial value described in the packet are extracted, and the parameter storage table shown in FIG. A new entry is created and stored in its own verification tag 902 and its own sequence number 903 (2405). Thereafter, the header processing unit transfers the SCTP packet to the header processing unit of an appropriate CPU blade with reference to the transfer destination table shown in FIG. 8 (2406).

最後に、VNICから読み込んだSCTPパケットの種別に係わらず、スイッチブレードを介してそのパケットを通信相手に送信し(2407)、処理を終了する(2408)。   Finally, regardless of the type of the SCTP packet read from the VNIC, the packet is transmitted to the communication partner via the switch blade (2407), and the process ends (2408).

図25は、現用系においてヘッダ処理部がVNIC以外から受取ったSCTPパケットを処理するフローチャート図である。まず、VNIC以外からSCTPパケットを受け取る(2500)。これはすなわち、通信相手からのSCTPパケットを受け取ったことを意味する。次に、図8に示した転送先テーブルを参照して、適当なCPUブレードのヘッダ処理部にSCTPパケットを転送する(2501)。転送先テーブルの転送先802に、装置内のL4スタックにパケットを渡すことを意味する<local>を含むか検査し(2502)、含まなければ処理を終了する(2511)。   FIG. 25 is a flowchart for processing an SCTP packet received from a non-VNIC by the header processing unit in the active system. First, an SCTP packet is received from other than the VNIC (2500). This means that the SCTP packet from the communication partner has been received. Next, with reference to the transfer destination table shown in FIG. 8, the SCTP packet is transferred to the header processing unit of an appropriate CPU blade (2501). Whether the transfer destination 802 of the transfer destination table includes <local> which means that a packet is to be transferred to the L4 stack in the apparatus is checked (2502). If not included, the processing ends (2511).

2502に戻り、転送先に<local>を含む場合に進む。受け取ったSCTPパケットがDATAパケットである場合(2503)、図9Aなどで示したパラメータ格納テーブルに該当するエントリがあれば、通信相手のシーケンス番号907の値を1だけ増やして更新する(2504)。あるいは、受け取ったSCTPパケットがINITパケットもしくはINIT−ACKパケットである場合(2505)、パケットに記述されている検証タグとシーケンス番号初期値を抽出し、図9Aなどで示したパラメータ格納テーブルに新たなエントリを作成して、通信相手の検証タグ906と通信相手のシーケンス番号907に記憶する(2506)。あるいは、受け取ったSCTPパケットがSACKパケットである場合(2507)、SACKパケットのヘッダにある受信DATAパケットのシーケンス番号を、パラメータ格納テーブルの該当するエントリの自分のシーケンス番号903の値と異なれば、その値に書き換える(2508)。その後、受け取ったSCTPパケットの種別に係わらず、SCTPパケットのヘッダの検証タグを、パラメータ格納テーブルの該当するエントリの自分の検証タグ902の値と異なれば、その値に書き換える(2509)。そして、VNICにSCTPパケットを書き込み(2510)、処理を終了する(2511)。   Returning to 2502, the process proceeds when <local> is included in the transfer destination. If the received SCTP packet is a DATA packet (2503), if there is a corresponding entry in the parameter storage table shown in FIG. 9A or the like, the value of the communication partner sequence number 907 is incremented by 1 and updated (2504). Alternatively, when the received SCTP packet is an INIT packet or an INIT-ACK packet (2505), the verification tag and the sequence number initial value described in the packet are extracted, and the parameter storage table shown in FIG. An entry is created and stored in the communication partner verification tag 906 and the communication partner sequence number 907 (2506). Alternatively, if the received SCTP packet is a SACK packet (2507), if the sequence number of the received DATA packet in the header of the SACK packet is different from the value of its own sequence number 903 of the corresponding entry in the parameter storage table, The value is rewritten (2508). Then, regardless of the type of the received SCTP packet, if the verification tag in the header of the SCTP packet is different from the value of its own verification tag 902 of the corresponding entry in the parameter storage table, the value is rewritten (2509). Then, the SCTP packet is written to the VNIC (2510), and the process is terminated (2511).

図26は、待機系においてヘッダ処理部がVNICから読込したSCTPパケットを処理するフローチャート図である。まず、VNICからSCTPパケットを読み込む(2600)。読み込んだパケットがDATAパケットである場合(2601)、図9Bなどで示したパラメータ格納テーブルに該当するエントリがあれば、自分のシーケンス番号903と書換用のシーケンス番号905の値を1だけ増やして更新する(2602)。一方、VNICから読み込んだSCTPパケットが、INITパケットもしくはINIT−ACKパケットである場合(2603)、パケットに記述されている検証タグとシーケンス番号初期値を抽出し、図9Aなどで示したパラメータ格納テーブルに新たなエントリを作成して、自分の検証タグ902と自分のシーケンス番号903に記憶する(2604)。   FIG. 26 is a flowchart for processing the SCTP packet read from the VNIC by the header processing unit in the standby system. First, an SCTP packet is read from the VNIC (2600). If the read packet is a DATA packet (2601), if there is a corresponding entry in the parameter storage table shown in FIG. 9B etc., the value of own sequence number 903 and rewrite sequence number 905 is incremented by 1 and updated. (2602). On the other hand, if the SCTP packet read from the VNIC is an INIT packet or an INIT-ACK packet (2603), the verification tag and sequence number initial value described in the packet are extracted, and the parameter storage table shown in FIG. A new entry is created and stored in its own verification tag 902 and its own sequence number 903 (2604).

最後に、VNICから読み込んだSCTPパケットの種別に係わらず、パケットを破棄し(2605)、処理を終了する(2606)。   Finally, regardless of the type of the SCTP packet read from the VNIC, the packet is discarded (2605), and the process is terminated (2606).

図27は、待機系においてヘッダ処理部がVNIC以外から受取ったSCTPパケットを処理するフローチャート図である。まず、VNIC以外からSCTPパケットを受け取る(2700)。SCTPパケットの送信元のアドレスを特定する(2701)。送信元が現用系である、すなわち現用系から通信相手に送信されるSCTPパケットである場合に進む。SCTPパケットがINITパケットもしくはINIT−ACKパケットである場合(2702)、パケットに記述されている検証タグとシーケンス番号初期値を抽出し、図9Bなどで示したパラメータ格納テーブルに新たなエントリを作成して、書換用の検証タグ904と書換用のシーケンス番号905に記憶する(2703)。次に、SCTPパケットがINITパケットもしくはDATAパケットである場合(2704)、接続要求やアプリケーションデータ送信を促すために、装置内のアプリケーションに対してINITパケットもしくはDATAパケットを直接通知し(2705)、処理を終了する(2715)。一方、装でない場合、パケットを破棄し(2706)、処理を終了する(2715)。   FIG. 27 is a flowchart for processing the SCTP packet received from the header processing unit other than the VNIC in the standby system. First, an SCTP packet is received from other than the VNIC (2700). The source address of the SCTP packet is specified (2701). The process proceeds when the transmission source is the active system, that is, the SCTP packet is transmitted from the active system to the communication partner. When the SCTP packet is an INIT packet or an INIT-ACK packet (2702), the verification tag and the sequence number initial value described in the packet are extracted, and a new entry is created in the parameter storage table shown in FIG. Then, the data is stored in the verification tag 904 for rewriting and the sequence number 905 for rewriting (2703). Next, when the SCTP packet is an INIT packet or a DATA packet (2704), in order to prompt a connection request or application data transmission, the INIT packet or the DATA packet is directly notified to the application in the apparatus (2705), and processing is performed. Is finished (2715). On the other hand, if it is not a device, the packet is discarded (2706), and the process is terminated (2715).

2701に戻り、SCTP送信元が通信相手である、すなわちゲートウェイ装置が通信相手から受信したSCTPパケットである場合に進む。受け取ったSCTPパケットがDATAパケットである場合(2707)、図9Aなどで示したパラメータ格納テーブルに該当するエントリがあれば、通信相手のシーケンス番号907の値を1だけ増やして更新する(2708)。あるいは、受け取ったSCTPパケットがINITパケットもしくはINIT−ACKパケットである場合(2709)、パケットに記述されている検証タグとシーケンス番号初期値を抽出し、図9Aなどで示したパラメータ格納テーブルに新たなエントリを作成して、通信相手の検証タグ906と通信相手のシーケンス番号907に記憶する(2710)。あるいは、受け取ったSCTPパケットがSACKパケットである場合(2711)、SACKパケットのヘッダにある受信DATAパケットのシーケンス番号を、パラメータ格納テーブルの該当するエントリの自分のシーケンス番号903の値と異なれば、その値に書き換える(2712)。その後、受け取ったSCTPパケットの種別に係わらず、SCTPパケットのヘッダの検証タグを、パラメータ格納テーブルの該当するエントリの自分の検証タグ902の値と異なれば、その値に書き換える(2713)。そして、VNICにSCTPパケットを書き込み(2714)、処理を終了する(2715)。   Returning to 2701, the process proceeds when the SCTP transmission source is the communication partner, that is, the gateway device is an SCTP packet received from the communication partner. If the received SCTP packet is a DATA packet (2707), if there is a corresponding entry in the parameter storage table shown in FIG. 9A, etc., the value of the communication partner sequence number 907 is incremented by 1 and updated (2708). Alternatively, when the received SCTP packet is an INIT packet or an INIT-ACK packet (2709), the verification tag and the sequence number initial value described in the packet are extracted, and the parameter storage table shown in FIG. An entry is created and stored in the communication partner verification tag 906 and the communication partner sequence number 907 (2710). Alternatively, if the received SCTP packet is a SACK packet (2711), if the sequence number of the received DATA packet in the header of the SACK packet is different from the value of its own sequence number 903 of the corresponding entry in the parameter storage table, The value is rewritten (2712). Then, regardless of the type of the received SCTP packet, if the verification tag in the header of the SCTP packet is different from the value of its own verification tag 902 of the corresponding entry in the parameter storage table, it is rewritten to that value (2713). Then, the SCTP packet is written to the VNIC (2714), and the process is terminated (2715).

以上の処理によって、本実施の形態のゲートウェイ装置は、冗長構成をとるゲートウェイ装置において、L4コネクションを確立した通信相手から受信したパケットを複製して、現用系と待機系の両方にパケットを入力し、それぞれのL4スタックで処理してL4コネクションの冗長化を実現できる。また、L4コネクションを確立したまま柔軟な冗長化装置の運用が可能となる。   Through the above processing, the gateway device according to the present embodiment duplicates the packet received from the communication partner that has established the L4 connection in the gateway device having a redundant configuration, and inputs the packet to both the active system and the standby system. , It is possible to realize redundancy of the L4 connection by processing in each L4 stack. In addition, it is possible to operate a flexible redundant apparatus while establishing the L4 connection.

本発明は、移動体通信のゲートウェイ装置に限らず、様々な通信システムにおいてL4コネクション端点となる通信制御装置の冗長化に適用することができる。   The present invention is not limited to a gateway device for mobile communication, but can be applied to redundancy of a communication control device serving as an L4 connection endpoint in various communication systems.

400 ゲートウェイ装置
410−1 CPUブレード1
420 スイッチブレード
500−1 ヘッダ処理部
501−1 VNIC
502−1 L4スタック
503−1 アプリケーション
510−1 パラメータ格納テーブル
511−1 転送先テーブル
1910 L4パラメータ通知メッセージ
400 Gateway device 410-1 CPU blade 1
420 Switch Blade 500-1 Header Processing Unit 501-1 VNIC
502-1 L4 stack 503-1 application 510-1 parameter storage table 511-1 transfer destination table 1910 L4 parameter notification message

Claims (9)

独立して動作する複数のパケット処理装置と前記複数のパケット処理装置を接続するスイッチ装置を備え、前記複数のパケット処理装置のうち1台が現用系であり、前記現用系とは異なる1台が待機系となるように冗長構成をとり、前記現用系が通信相手に対してレイヤ4コネクションの端点となるゲートウェイ装置であって、
前記通信相手から受信した前記レイヤ4コネクションのパケットが前記現用系もしくは前記待機系に入力されると、前記現用系もしくは前記待機系は前記レイヤ4コネクションに関して記憶しているパラメータを用いて前記パケットのヘッダを書き換えて、レイヤ4スタックに前記パケットを渡すことを特徴とするゲートウェイ装置。
A plurality of packet processing devices that operate independently; and a switch device that connects the plurality of packet processing devices, wherein one of the plurality of packet processing devices is an active system and one that is different from the active system It is a gateway device that takes a redundant configuration so as to become a standby system, and the working system is an end point of a layer 4 connection to a communication partner,
When a packet of the layer 4 connection received from the communication partner is input to the active system or the standby system, the active system or the standby system uses the parameters stored for the layer 4 connection to A gateway device, wherein a header is rewritten and the packet is passed to a layer 4 stack.
請求項1に記載のゲートウェイ装置において、前記レイヤ4コネクションの確立時に前記通信相手と交換するパラメータと、前記レイヤ4コネクションの確立後のパケット通信において値が更新されるパラメータを、前記現用系もしくは前記待機系において記憶することを特徴とするゲートウェイ装置。   The gateway device according to claim 1, wherein a parameter exchanged with the communication partner at the time of establishment of the layer 4 connection and a parameter whose value is updated in packet communication after the establishment of the layer 4 connection are set as the active system or the A gateway device that stores data in a standby system. 請求項2に記載のゲートウェイ装置において、前記現用系もしくは前記待機系は前記通信相手から受信した前記レイヤ4コネクションのパケットを受け取ると、それぞれ前記待機系もしくは前記現用系に前記パケットを転送することを特徴とするゲートウェイ装置。   3. The gateway device according to claim 2, wherein when the working system or the standby system receives the packet of the layer 4 connection received from the communication partner, the packet is transferred to the standby system or the working system, respectively. A gateway device characterized. 請求項2に記載のゲートウェイ装置において、前記現用系はレイヤ4スタックから前記通信相手に送信する前記レイヤ4コネクションのパケットを受け取ると、前記現用系は前記レイヤ4コネクションに関して記憶しているパラメータを用いて前記パケットのヘッダを書き換えてパケット網に送信する、もしくは前記パケットを複製して前記待機系に転送する、もしくは前記2つの動作を両方とも行うことを特徴とするゲートウェイ装置。   3. The gateway apparatus according to claim 2, wherein when the working system receives a packet of the layer 4 connection transmitted from the layer 4 stack to the communication partner, the working system uses parameters stored for the layer 4 connection. The gateway apparatus, wherein the header of the packet is rewritten and transmitted to a packet network, or the packet is copied and transferred to the standby system, or both of the two operations are performed. 請求項4に記載のゲートウェイ装置において、前記待機系は前記現用系から転送された前記通信相手に送信する前記レイヤ4コネクションのパケットを受け取ると、待機系内アプリケーションに前記パケットを通知することを特徴とする、ゲートウェイ装置。   5. The gateway apparatus according to claim 4, wherein when the standby system receives the packet of the layer 4 connection transmitted from the active system to the communication partner, the standby system notifies the standby system application of the packet. A gateway device. 請求項4に記載のゲートウェイ装置において、前記待機系はレイヤ4スタックから前記通信相手に送信する前記レイヤ4コネクションのパケットを受け取ると、前記現用系が前記パケットをパケット網に送信している場合には前記待機系は前記パケットを破棄し、前記現用系が前記パケットをパケット網に送信していない場合には前記待機系は前記パケットをパケット網に送信することを特徴とするゲートウェイ装置。   5. The gateway device according to claim 4, wherein when the standby system receives a packet of the layer 4 connection transmitted from the layer 4 stack to the communication partner, the active system transmits the packet to a packet network. The gateway apparatus, wherein the standby system discards the packet, and when the active system does not transmit the packet to the packet network, the standby system transmits the packet to the packet network. 請求項1に記載のゲートウェイ装置において、前記現用系(第1の現用系)と前記待機系(第1の待機系)とは異なるパケット処理装置を第2の現用系もしくは第2の待機系として追加する場合に、前記第1の現用系もしくは前記第1の待機系は前記第2の現用系もしくは前記第2の待機系に対して前記レイヤ4コネクションに関して記憶しているパラメータを通知し、前記第2の現用系もしくは前記第2の待機系から前記通知に対する応答を受け取ると前記レイヤ4コネクションのパケットの転送先を前記第2の現用系もしくは前記第2の待機系に切り替えることを特徴とするゲートウェイ装置。   2. The gateway device according to claim 1, wherein a packet processing device different from the active system (first active system) and the standby system (first standby system) is used as the second active system or the second standby system. In the case of adding, the first working system or the first standby system notifies the second working system or the second standby system of the stored parameters regarding the layer 4 connection, and When a response to the notification is received from a second active system or the second standby system, the packet transfer destination of the layer 4 connection is switched to the second active system or the second standby system. Gateway device. 請求項7に記載のゲートウェイ装置において、前記第2の現用系もしくは前記第2の待機系は前記第1の現用系もしくは前記前記第1の待機系から前記レイヤ4コネクションのパラメータ通知を受け取ると、前記第2の現用系もしくは前記第2の待機系内のレイヤ4スタックに対して、通知された前記パラメータを用いて新規レイヤ4コネクションを擬似的に確立する挙動をさせ、前記新規レイヤ4コネクションのパラメータを記憶することを特徴とするゲートウェイ装置。   The gateway device according to claim 7, wherein the second active system or the second standby system receives the parameter notification of the layer 4 connection from the first active system or the first standby system. Using the notified parameter, the layer 4 stack in the second active system or the second standby system behaves to establish a new layer 4 connection in a pseudo manner, and the new layer 4 connection A gateway device characterized by storing parameters. 請求項7に記載のゲートウェイ装置において、前記第1の現用系もしくは前記第1の待機系は前記レイヤ4コネクションの転送先を切り替えた後に、前記第1の現用系もしくは前記第1の待機系内のレイヤ4スタックに対して、前記レイヤ4コネクションを擬似的に切断する挙動をさせることを特徴とするゲートウェイ装置。   8. The gateway device according to claim 7, wherein the first active system or the first standby system switches the transfer destination of the layer 4 connection and then the first active system or the first standby system. A gateway apparatus characterized by causing the layer 4 stack to behave in a pseudo-disconnection manner.
JP2010110728A 2010-05-13 2010-05-13 Gateway device Pending JP2011239309A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010110728A JP2011239309A (en) 2010-05-13 2010-05-13 Gateway device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010110728A JP2011239309A (en) 2010-05-13 2010-05-13 Gateway device

Publications (1)

Publication Number Publication Date
JP2011239309A true JP2011239309A (en) 2011-11-24

Family

ID=45326769

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010110728A Pending JP2011239309A (en) 2010-05-13 2010-05-13 Gateway device

Country Status (1)

Country Link
JP (1) JP2011239309A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114928660A (en) * 2022-05-16 2022-08-19 北京计算机技术及应用研究所 Method for transparent interprocess communication of embedded operating system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114928660A (en) * 2022-05-16 2022-08-19 北京计算机技术及应用研究所 Method for transparent interprocess communication of embedded operating system
CN114928660B (en) * 2022-05-16 2023-10-31 北京计算机技术及应用研究所 Method for communication between transparent processes of embedded operating system

Similar Documents

Publication Publication Date Title
US7801135B2 (en) Transport protocol connection synchronization
EP1829267B1 (en) Redundant l2tp end points
TW200845608A (en) Redundant wireless base station
JP5419907B2 (en) Network system and communication recovery method
CN102916897B (en) A kind of method and apparatus realizing VRRP load balancing
WO2016172926A1 (en) Communication method and device, and system in communication system
WO2021008591A1 (en) Data transmission method, device, and system
WO2021169291A1 (en) Route advertising method, network elements, system, and device
WO2015039512A1 (en) Pool element status information synchronization method, pool register and pool element
WO2014075216A1 (en) Method and network device for establishing virtual cluster
WO2012127644A1 (en) Communication node apparatus system, apparatus, and method
JP5309350B2 (en) Mobile communication gateway apparatus and mobile communication gateway control method
US8849270B2 (en) System and method for providing geographic redundancy for mobile wireless data network components
WO2011153870A1 (en) System, method and base station for implementing local switching transmission
JP2011239309A (en) Gateway device
WO2011143891A1 (en) Method and apparatus for backup of subscriber service information
WO2012159339A1 (en) Interface register method and device for network device to join cluster system
WO2011143888A1 (en) Method and system for backing up protocol state between devices
KR20180099143A (en) Apparatus and method for recovering tcp-session
WO2012097604A1 (en) Method, system and gateway for processing messages when gateway has failed
JP2013527648A (en) Emergency switching method and system
WO2014083922A1 (en) Information distribution system, information distribution method, communication terminal, and program
WO2018018897A1 (en) Apparatus communication method, device and system
WO2012088873A1 (en) Selection and disaster recovery method and system for access support node, and access control device
CN114793221B (en) NAT association table processing method and device