[go: up one dir, main page]

JP2024051680A - COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL SYSTEM, AND COMMUNICATION CONTROL METHOD - Google Patents

COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL SYSTEM, AND COMMUNICATION CONTROL METHOD Download PDF

Info

Publication number
JP2024051680A
JP2024051680A JP2022157969A JP2022157969A JP2024051680A JP 2024051680 A JP2024051680 A JP 2024051680A JP 2022157969 A JP2022157969 A JP 2022157969A JP 2022157969 A JP2022157969 A JP 2022157969A JP 2024051680 A JP2024051680 A JP 2024051680A
Authority
JP
Japan
Prior art keywords
packet
server
route information
communication control
control device
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
JP2022157969A
Other languages
Japanese (ja)
Inventor
健太郎 海老澤
Kentaro Ebisawa
祐司 矢澤
Yuji Yazawa
智子 増田(奥澤)
Masuda, (Okuzawa) Tomoko
遼 中村
Ryo 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.)
University of Tokyo NUC
Toyota Motor Corp
Original Assignee
University of Tokyo NUC
Toyota Motor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Tokyo NUC, Toyota Motor Corp filed Critical University of Tokyo NUC
Priority to JP2022157969A priority Critical patent/JP2024051680A/en
Publication of JP2024051680A publication Critical patent/JP2024051680A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

To provide a technique capable of maintaining a connection by a daisy chaining even in the case of not only using a dedicated device but also using a general hardware router.SOLUTION: A communication control device is constructed so as to replace first passage information stored in a storage part to second passage information in the case of detecting a change of the number of servers of a transfer destination candidate, and update the first passage information so as to indicate the transfer destination candidate of the packet after the change. In the case of receiving the packet from a terminal, the packet received from the terminal is transferred to a first server in accordance with the first passage information. The first server determines whether or not the packet belongs to the connection to be managed by oneself, and transmits a retransmission packet corresponded to the packet to the communication control device in the case where the packet is not belonged to the connection to be managed by oneself. The communication control device transfers the retransmission packet to a second server in accordance with the second passage information in the case of receiving the retransmission packet from the first server.SELECTED DRAWING: Figure 5

Description

本発明は、通信制御装置、通信制御システム及び通信制御方法に関する。 The present invention relates to a communication control device, a communication control system, and a communication control method.

従来、ある特定の宛先に対するロードバランシングの手法として、宛先の等価経路に対して通信を分散するECMP(Equal Cost Multi Path)が存在する。ECMPは、多くのL3ルータに実装されている。しかしながら、ECMPは、ある宛先に対応する複数の分散先に変更が生じた場合、殆どのフローの分散先が変わってしまい、その結果、コネクションが切断されるという問題がある。そのため、ECMPをロードバランシングの手法として用いる場合、これに対する様々な対策が考えられている。一例として、非特許文献1では、クライアント-分散先サーバ間のコネクションをデイジーチェイニング方式で維持する手法が提案されている。 Conventionally, as a method of load balancing for a specific destination, there is ECMP (Equal Cost Multi Path), which distributes communication to the destination's equal cost paths. ECMP is implemented in many L3 routers. However, with ECMP, when a change occurs in the multiple distribution destinations corresponding to a certain destination, the distribution destinations of most flows change, resulting in the disconnection of connections. Therefore, when ECMP is used as a load balancing method, various countermeasures against this problem have been considered. As an example, Non-Patent Document 1 proposes a method of maintaining connections between clients and distribution destination servers using a daisy chaining method.

Stateless Datacenter Load-balancing with Beamer Vladimir Olteanu, Alexandru Agache, Andrei Voinescu, and Costin Raiciu, University Politehnica of Bucharest In NSDI, 2018. https://www.usenix.org/system/files/conference/nsdi18/nsdi18-olteanu.pdfStateless Datacenter Load-balancing with Beamer Vladimir Olteanu, Alexandru Agache, Andrei Voinescu, and Costin Raiciu, University Politehnica of Bucharest In NSDI, 2018. https://www.usenix.org/system/files/conference/nsdi18/nsdi18-olteanu.pdf

本件発明者らは、上記従来の方法によれば、次のような問題点があることを見出した。すなわち、従来の方法では、ステート情報をパケットに埋め込むことで、コネクション維持を実現しており、その処理は、P4(Programming Protocol-Independent Packet Processors)言語を使用可能な特定のハードウェアASIC(Application Specific Integrated Circuit)搭載の装置等で実装される。そのため、この方法には、汎用のハードウェアルータを用いることはできない。すなわち、従来の方法では、専用の装置を用いなければ、デイジーチェイニング方式でコネクションを維持することは困難である。 The inventors of the present invention have found that the above conventional method has the following problems. That is, in the conventional method, connection maintenance is achieved by embedding state information in packets, and this processing is implemented in a device equipped with a specific hardware ASIC (Application Specific Integrated Circuit) that can use the P4 (Programming Protocol-Independent Packet Processors) language. Therefore, general-purpose hardware routers cannot be used with this method. In other words, with the conventional method, it is difficult to maintain a connection using the daisy chaining method unless a dedicated device is used.

本開示は、このような状況を鑑みてなされたものであって、その目的は、専用の装置のみならず、汎用のハードウェアルータを用いた場合でも、デイジーチェイニング方式でコネクションを維持可能な技術を提供することである。 This disclosure was made in light of these circumstances, and its purpose is to provide technology that can maintain connections using the daisy chaining method, not only when a dedicated device is used, but also when a general-purpose hardware router is used.

本開示の第1の態様に係る通信制御装置は、パケットの転送先候補をそれぞれ示す第1の経路情報及び第2の経路情報を記憶する記憶部、前記パケットを受信するように構成される受信部、前記パケットを送信するように構成される送信部、並びに制御部、を備える通信制御装置であって、前記制御部は、転送先候補のサーバ数の変更を検出した場合に、前記記憶部に記憶されている前記第1の経路情報を前記第2の経路情報に置き換え、前記変更後の前記パケットの転送先候補を示すように前記第1の経路情報を更新するように構成され、前記制御部は、前記受信部を通じて端末からパケットを受信した場合に、前記送信部を使用して、前記第1の経路情報に従い、前記端末から受信した前記パケットを第1のサーバに転送することであって、前記第1のサーバに前記パケットが自身の管理するコネクションに属するか否かを判定させ、自身の管理するコネクションに前記パケットが属さない場合に、前記パケットに対応する再送パケットを前記通信制御装置に返信させるように前記パケットを転送すること、及び前記受信部を通じて前記第1のサーバから前記再送パケットを受信した場合に、前記送信部を使用して、前記第2の経路情報に従い、前記再送パケットを第2のサーバに転送すること、を実行するように更に構成される。 A communication control device according to a first aspect of the present disclosure is a communication control device including a storage unit that stores first route information and second route information, each indicating a candidate forwarding destination of a packet, a receiving unit configured to receive the packet, a transmitting unit configured to transmit the packet, and a control unit, wherein the control unit is configured to replace the first route information stored in the storage unit with the second route information and update the first route information to indicate the candidate forwarding destination of the packet after the change when a change in the number of servers of the candidate forwarding destination is detected, and the control unit is configured to, when receiving a packet from a terminal through the receiving unit, The device is further configured to use a transmission unit to forward the packet received from the terminal to a first server according to the first route information, to cause the first server to determine whether the packet belongs to a connection managed by the first server, and to forward the packet so that a retransmission packet corresponding to the packet is returned to the communication control device if the packet does not belong to a connection managed by the first server, and to forward the retransmission packet to a second server using the transmission unit according to the second route information when the retransmission packet is received from the first server via the reception unit.

本開示の第2の態様に係る通信制御システムは、パケットの転送先候補をそれぞれ示す第1の経路情報及び第2の経路情報を記憶する記憶部、前記パケットを受信するように構成される受信部、前記パケットを送信するように構成される送信部、並びに制御部、を備える通信制御装置と、第1のサーバと、第2のサーバと、を含む通信制御システムであって、前記通信制御装置の前記制御部は、転送先候補のサーバ数の変更を検出した場合に、前記記憶部に記憶されている前記第1の経路情報を前記第2の経路情報に置き換え、前記変更後の前記パケットの転送先候補を示すように前記第1の経路情報を更新するように構成され、前記受信部を通じて端末からパケットを受信した場合に、前記送信部を使用して、前記第1の経路情報に従い、前記端末から受信した前記パケットを第1のサーバに転送し、前記第1のサーバは、前記通信制御装置から転送された前記パケットを受信するように構成される受信部と、前記パケットが前記第1のサーバが管理するコネクションに属するか否かを判定する制御部と、前記制御部によって自身の管理するコネクションに前記パケットが属さないと判定された場合に、前記パケットに対応する再送パケットを前記通信制御装置に送信するように構成される送信部と、を備え、前記通信制御装置の制御部は、前記受信部を通じて前記第1のサーバから前記再送パケットを受信した場合に、前記送信部を使用して、前記第2の経路情報に従い、前記再送パケットを第2のサーバに転送する。 A communication control system according to a second aspect of the present disclosure is a communication control system including a communication control device having a memory unit that stores first route information and second route information, each indicating a candidate forwarding destination of a packet, a receiver configured to receive the packets, a transmitter configured to transmit the packets, and a control unit, a first server, and a second server, wherein the control unit of the communication control device is configured to replace the first route information stored in the memory unit with the second route information when a change in the number of servers of the candidate forwarding destination is detected, and to update the first route information to indicate the candidate forwarding destination of the packet after the change, and when a packet is received from a terminal through the receiver, to use the transmitter to The packet received from the terminal is forwarded to a first server according to the first route information, and the first server includes a receiving unit configured to receive the packet forwarded from the communication control device, a control unit that determines whether the packet belongs to a connection managed by the first server, and a transmitting unit configured to transmit a retransmission packet corresponding to the packet to the communication control device when the control unit determines that the packet does not belong to a connection managed by the first server, and when the control unit of the communication control device receives the retransmission packet from the first server through the receiving unit, the control unit uses the transmitting unit to forward the retransmission packet to a second server according to the second route information.

本開示の第3の態様に係る通信制御システムは、パケットの転送先候補をそれぞれ示す第1の経路情報及び第2の経路情報を記憶し、転送先候補のサーバ数の変更を検出し、前記第1の経路情報を前記第2の経路情報に置き換え、前記変更後の前記パケットの転送先候補を示すように前記第1の経路情報を更新するように構成された通信制御装置が、端末からのパケットを受信する工程と、前記第1の経路情報に従い、前記端末から受信した前記パケットを第1のサーバに転送する工程と、を有し、前記第1のサーバが、前記通信制御装置から転送された前記パケットを受信する工程と、前記パケットが前記第1のサーバが管理するコネクションに属するか否かを判定された場合、自身の管理するコネクションに前記パケットが属さないと判定された場合に、前記パケットに対応する再送パケットを前記通信制御装置に送信する工程と、を有し、前記通信制御装置は、前記第1のサーバから前記再送パケットを受信する工程と、前記第2の経路情報に従い、前記再送パケットを第2のサーバに転送する工程と、を更に有する。 A communication control system according to a third aspect of the present disclosure includes a communication control device configured to store first route information and second route information each indicating a candidate destination for a packet, detect a change in the number of candidate servers for the destination, replace the first route information with the second route information, and update the first route information to indicate the candidate destination for the packet after the change, the communication control device includes a step of receiving a packet from a terminal, and a step of forwarding the packet received from the terminal to a first server according to the first route information, the first server receives the packet forwarded from the communication control device, and when it is determined whether the packet belongs to a connection managed by the first server, if it is determined that the packet does not belong to a connection managed by the first server, the first server transmits a retransmission packet corresponding to the packet to the communication control device, and the communication control device further includes a step of receiving the retransmission packet from the first server, and a step of forwarding the retransmission packet to a second server according to the second route information.

本開示の一態様によれば、専用の装置のみならず、汎用のハードウェアルータを用いた場合でも、デイジーチェイニング方式でコネクションを維持可能な技術を提供する。 According to one aspect of the present disclosure, a technology is provided that can maintain a connection using the daisy chaining method, not only when a dedicated device is used, but also when a general-purpose hardware router is used.

本実施形態に係る通信制御システム1の概要の一例を示す図である。1 is a diagram showing an example of an overview of a communication control system 1 according to an embodiment of the present invention; 本実施形態に係る通信制御システム1の各装置の物理構成の一例を示す図である。2 is a diagram illustrating an example of a physical configuration of each device in the communication control system 1 according to the present embodiment. FIG. 本実施形態に係る通信制御システム1の機能構成の一例を示す図である。FIG. 2 is a diagram illustrating an example of a functional configuration of the communication control system 1 according to the present embodiment. 本実施形態に係る通信制御システム1の動作例を示す図である。FIG. 2 is a diagram illustrating an example of the operation of the communication control system 1 according to the present embodiment. 本実施形態に係る通信制御システム1の動作例を示す図である。FIG. 2 is a diagram illustrating an example of the operation of the communication control system 1 according to the present embodiment. 本実施形態に係るサーバ20の動作例を示すフローチャートである。5 is a flowchart showing an example of the operation of the server 20 according to the present embodiment.

添付図面を参照して、本発明の実施形態について説明する。なお、各図において、同一の符号を付したものは、同一又は同様の構成を有する。 The following describes an embodiment of the present invention with reference to the attached drawings. In each drawing, the same reference numerals denote the same or similar configurations.

(概要)
図1は、本実施形態に係る通信制御システムの概要の一例を示す図である。通信制御システム1は、通信制御装置10と、通信制御装置10に接続されるサーバ20A~20Dと、通信制御装置10とネットワーク40を介して接続される端末30と、を含んで構成される。
(overview)
1 is a diagram showing an example of an overview of a communication control system according to this embodiment. The communication control system 1 includes a communication control device 10, servers 20A to 20D connected to the communication control device 10, and a terminal 30 connected to the communication control device 10 via a network 40.

通信制御装置10は、端末30からのパケットの通信制御を行う装置である。当該端末30からのパケットは、端末30からのトラフィックデータに関するパケット、及び/又は、端末30からの要求(例えば、端末30に対するトラフィックデータの要求)に関するパケットであってもよい。 The communication control device 10 is a device that controls communication of packets from the terminal 30. The packets from the terminal 30 may be packets related to traffic data from the terminal 30 and/or packets related to a request from the terminal 30 (e.g., a request for traffic data from the terminal 30).

通信制御装置10は、例えば、パケット転送用のASIC(application specific integrated circuit)を搭載した汎用のハードウェアルータであるが、これに限られず、ソフトウェアルータ又はスイッチ等、端末30からのパケットの通信制御を行うどのような装置であってもよい。また、通信制御装置10は、例えば、ECMP(Equal Cost Multi path)を搭載した汎用的な装置(例えば、L3汎用ルータ)であるが、これに限られず、トラフィック分散専用のハードウェア又はソフトウェアが搭載された専用装置(例えば、ロードバランサ)であってもよい。 The communication control device 10 is, for example, a general-purpose hardware router equipped with an ASIC (application specific integrated circuit) for packet forwarding, but is not limited to this and may be any device that controls communication of packets from the terminal 30, such as a software router or switch. Also, the communication control device 10 is, for example, a general-purpose device equipped with ECMP (Equal Cost Multi path) (for example, an L3 general-purpose router), but is not limited to this and may be a dedicated device equipped with hardware or software dedicated to traffic distribution (for example, a load balancer).

サーバ20A~20Dは、端末30からのパケットの転送先の候補となる複数のサーバである。例えば、サーバ20A~20Dは、通信制御装置10とともにデータセンターDC等に配置されるが、配置場所はデータセンターDCに限られない。以下、サーバ20A~20Dを区別しない場合はサーバ20と総称する。各サーバ20は、一つ又は複数の装置で構成されてもよい。また、サーバ20は、通信制御装置10と直接接続されていてもよいし、不図示の他の装置(例えば、ルータやスイッチ等)やネットワークを介して接続されてもよい。 Servers 20A to 20D are multiple servers that are candidates for the forwarding destination of packets from terminal 30. For example, servers 20A to 20D are placed in a data center DC together with communication control device 10, but the placement location is not limited to the data center DC. Hereinafter, when there is no need to distinguish between servers 20A to 20D, they will be collectively referred to as servers 20. Each server 20 may be composed of one or more devices. Furthermore, server 20 may be directly connected to communication control device 10, or may be connected via another device (not shown) (e.g., a router or a switch) or a network.

端末30は、ネットワーク40を介してサーバ20との通信を行う端末である。例えば、端末30は、TCU(Telematics Control Unit)、スマートフォン、パソコン、タブレット端末、IoT(Internet of Things)デバイス等であってもよい。ネットワーク40は、有線及び/又は無線のネットワークである。 The terminal 30 is a terminal that communicates with the server 20 via the network 40. For example, the terminal 30 may be a TCU (Telematics Control Unit), a smartphone, a personal computer, a tablet terminal, an IoT (Internet of Things) device, etc. The network 40 is a wired and/or wireless network.

なお、図1では、端末30からのパケットの分散先として4つのサーバ20が示されるが、通信制御システム1を構成するサーバ20の数(以下、「サーバ数」という)Nは4に限られず、複数であればよい。また、通信制御システム1に設けられる通信制御装置10は一つに限られず、同一及び/又は異なるサーバ20を収容する複数の通信制御装置10が設けられてもよい。 In FIG. 1, four servers 20 are shown as distribution destinations for packets from terminal 30, but the number N of servers 20 (hereinafter referred to as the "number of servers") constituting communication control system 1 is not limited to four, and may be any number greater than one. Furthermore, the number of communication control devices 10 provided in communication control system 1 is not limited to one, and multiple communication control devices 10 accommodating the same and/or different servers 20 may be provided.

通信制御システム1では、通信制御装置10は、ネットワーク40を介して端末30からのパケットを受信した場合、通信制御装置10に接続される複数のサーバ20の中から、当該パケットの転送先のサーバ20を決定し、決定されたサーバ20に対して当該パケットを送信する。当該決定されたサーバ20は、受信したパケットに基づく各種処理(例えば、画像データの解析等)を行う。これにより、通信制御装置10は、複数のサーバ20間での負荷分散を実現する。 In the communication control system 1, when the communication control device 10 receives a packet from a terminal 30 via the network 40, it determines which server 20 to forward the packet to from among multiple servers 20 connected to the communication control device 10, and transmits the packet to the determined server 20. The determined server 20 performs various processes (e.g., analyzing image data) based on the received packet. In this way, the communication control device 10 achieves load balancing among the multiple servers 20.

(構成)
図2及び3を参照し、本実施形態に係る通信制御システム1の物理構成及び機能構成を説明する。
<物理構成>
図2は、本実施形態に係る通信制御システムの各装置の物理構成の一例を示す図である。通信制御システム1内の各装置(例えば、通信制御装置10、サーバ20及び端末30等)は、プロセッサ11、記憶装置12、有線又は無線の通信を行う通信装置13、各種の入力操作を受け付ける入力装置や各種情報の出力を行う入出力装置14を含む。プロセッサ11が記憶装置12に記憶されたプログラムを実行することにより、各装置の制御部の少なくとも一部の機能を実現する。
(composition)
The physical configuration and functional configuration of the communication control system 1 according to this embodiment will be described with reference to FIGS.
<Physical configuration>
2 is a diagram showing an example of the physical configuration of each device in the communication control system according to the present embodiment. Each device in the communication control system 1 (e.g., the communication control device 10, the server 20, and the terminal 30) includes a processor 11, a storage device 12, a communication device 13 that performs wired or wireless communication, and an input device that accepts various input operations and an input/output device 14 that outputs various information. The processor 11 executes a program stored in the storage device 12 to realize at least a part of the function of the control unit of each device.

プロセッサ11は、例えば、CPU(Central Processing Unit)であり、通信制御システム1内の各装置を制御する。プロセッサ11は、プログラムを記憶装置12から読み出して実行することで、本実施形態で説明する各種の処理を実行してもよい。通信制御システム1内の各装置は、1又は複数のプロセッサ11により構成されていてもよい。また、当該各装置は、コンピュータと呼ばれてもよい。 The processor 11 is, for example, a CPU (Central Processing Unit) and controls each device in the communication control system 1. The processor 11 may execute various processes described in this embodiment by reading and executing a program from the storage device 12. Each device in the communication control system 1 may be composed of one or more processors 11. Furthermore, each of the devices may be referred to as a computer.

記憶装置12は、例えば、メモリ、HDD(Hard Disk Drive)及び/又はSSD(Solid State Drive)等のストレージから構成される。記憶装置12は、プロセッサ11による処理の実行に必要な各種情報(例えば、プロセッサ11によって実行されるプログラム等)を記憶してもよい。記憶装置12は、各装置の記憶部の少なくとも一部の機能を実現する。 The storage device 12 is composed of storage such as a memory, a hard disk drive (HDD) and/or a solid state drive (SSD). The storage device 12 may store various information (e.g., programs executed by the processor 11) necessary for the processor 11 to execute processing. The storage device 12 realizes at least some of the functions of the storage unit of each device.

通信装置13は、ネットワーク40を介して通信を行う装置であり、例えば、ネットワークカード、通信モジュール、チップ、アンテナ等を含んでもよい。入出力装置14は、例えば、キーボード、タッチパネル、マウス及び/又はマイク等の入力装置と、例えば、ディスプレイ及び/又はスピーカ等の出力装置とを含む。通信装置13は、各装置の送信部、受信部及び制御部の少なくとも一部の機能を実現する。 The communication device 13 is a device that communicates via the network 40, and may include, for example, a network card, a communication module, a chip, an antenna, etc. The input/output device 14 includes, for example, an input device such as a keyboard, a touch panel, a mouse and/or a microphone, and an output device such as a display and/or a speaker. The communication device 13 realizes at least some of the functions of the transmission unit, reception unit, and control unit of each device.

以上説明した物理構成は一例に過ぎない。通信制御システム1内の各装置は、図2に記載したハードウェアの一部が省略されていてもよいし、図2に記載されていないハードウェアを備えていてもよい。また、図2に示すハードウェアが1又は複数のチップにより構成されていてもよい。 The physical configuration described above is merely one example. Each device in the communication control system 1 may omit some of the hardware shown in FIG. 2, or may include hardware not shown in FIG. 2. In addition, the hardware shown in FIG. 2 may be composed of one or more chips.

<機能構成>
図3は、本実施形態に係る通信制御システム1の機能構成の一例を示す図である。なお、図3では、例えば、通信制御装置10及びサーバ20の機能構成を説明する。
<Functional configuration>
Fig. 3 is a diagram showing an example of the functional configuration of the communication control system 1 according to the present embodiment. Note that Fig. 3 illustrates, for example, the functional configuration of the communication control device 10 and the server 20.

≪通信制御装置10≫
図3に示すように、通信制御装置10は、記憶部101、受信部102、制御部103及び送信部104を備える。
<Communication control device 10>
As shown in FIG. 3, the communication control device 10 includes a storage unit 101, a receiving unit 102, a control unit 103, and a transmitting unit 104.

記憶部101は、通信制御装置10によって受信されたパケットの転送先の候補(以下、「転送先候補」という)をそれぞれ示す複数の経路情報(例えば、第1の経路情報及び第2の経路情報)を記憶する。具体的には、記憶部101は、パケットの転送先候補の各サーバ20をそれぞれ示す複数の経路情報を記憶してもよい。記憶部101は、通信制御装置10に接続される複数のサーバ20間での負荷分散のために当該複数の経路情報の各々を記憶してもよい。 The storage unit 101 stores multiple pieces of route information (e.g., first route information and second route information) each indicating a candidate destination (hereinafter, referred to as a "destination candidate") for a packet received by the communication control device 10. Specifically, the storage unit 101 may store multiple pieces of route information each indicating each server 20 that is a candidate destination for the packet. The storage unit 101 may store each of the multiple pieces of route information for load balancing among multiple servers 20 connected to the communication control device 10.

例えば、当該複数の経路情報は、それぞれ、当該パケットのネクストホップとして、当該転送先候補の各サーバ20のアドレス(例えば、IP(Internet Protocol)アドレス又はMAC(Media Access Control)アドレス)を示してもよい。また、当該複数の経路情報は、それぞれ、当該パケットの宛先として、転送先候補の各サーバ20に対応付けられた仮想サーバのアドレス(例えば、IPアドレス)を示してもよい。当該仮想サーバは、転送先候補の複数の実サーバ20に負荷を分散させるために仮想的に設けられるものであり、実体を有しなくともよい。 For example, each of the multiple route information may indicate the address (e.g., IP (Internet Protocol) address or MAC (Media Access Control) address) of each of the candidate servers 20 as the next hop of the packet. Also, each of the multiple route information may indicate the address (e.g., IP address) of a virtual server associated with each of the candidate servers 20 as the destination of the packet. The virtual server is virtually provided to distribute the load to the multiple candidate real servers 20, and does not need to have a physical entity.

当該複数の経路情報のうちの第1の経路情報は、現在の転送先候補の各サーバ20を示してもよく、以下、「現在の経路情報」と呼ぶ。一方、当該複数の経路情報のうちの第2の経路情報は、過去の転送先候補の各サーバ20を示してもよく、以下、「過去の経路情報」と呼ぶ。過去の経路情報は、現在の経路情報より一世代前の経路情報に限られず、現在の経路情報より一世代前又は複数世代前の経路情報を含んでもよい。例えば、複数の経路情報は、VRF(Virtual Routing and Forwarding)で構成され、現在の経路情報及び過去の経路情報はそれぞれオリジナル(original)VRF及びシャドウ(Shadow)VRFで構成されてもよい。 The first route information of the multiple route information may indicate each server 20 that is a current candidate for the forwarding destination, and is hereinafter referred to as "current route information". On the other hand, the second route information of the multiple route information may indicate each server 20 that is a past candidate for the forwarding destination, and is hereinafter referred to as "past route information". The past route information is not limited to route information one generation before the current route information, and may include route information one generation before or multiple generations before the current route information. For example, the multiple route information may be configured with VRF (Virtual Routing and Forwarding), and the current route information and the past route information may be configured with the original VRF and the shadow VRF, respectively.

なお、現在の経路情報は、通信制御装置10自身で生成されてもよい。又は、現在の経路情報は、通信制御装置10自身で生成されなくともよく、通信制御装置10によって他の装置から取得されるものであってもよい。 The current route information may be generated by the communication control device 10 itself. Alternatively, the current route information does not have to be generated by the communication control device 10 itself, and may be obtained by the communication control device 10 from another device.

受信部102は、パケットを受信するように構成される。具体的には、受信部102は、端末30からのパケットを受信する。また、受信部102は、サーバ20からの再送パケットを受信してもよい。当該再送パケットは、当該サーバ20に転送されたパケットに対応し、当該パケットがサーバ20自身の管理するコネクションに属さない場合に当該サーバ20から送信される。 The receiving unit 102 is configured to receive packets. Specifically, the receiving unit 102 receives packets from the terminal 30. The receiving unit 102 may also receive retransmitted packets from the server 20. The retransmitted packets correspond to packets transferred to the server 20, and are transmitted from the server 20 when the packets do not belong to a connection managed by the server 20 itself.

制御部103は、転送先候補のサーバ数の変更を検出した場合に、記憶部101に記憶されている現在の経路情報を過去の経路情報に置き換え、変更後のパケットの転送先候補を示すように現在の経路情報を更新するように構成される。このように、転送先候補のサーバ数の変更が検出された場合に、現在の経路情報が過去の経路情報に置き換えられ、新たな転送先候補のサーバ数に対応する現在の経路情報が生成又は取得されるので、現在の経路情報が示す転送先候補のサーバ20の数は、少なくとも、一世代前の経路情報が示す転送先候補のサーバ20の数とは異なる。 When a change in the number of candidate servers for the forwarding destination is detected, the control unit 103 is configured to replace the current route information stored in the storage unit 101 with the past route information and update the current route information to indicate the candidate servers for the forwarding destination of the changed packet. In this way, when a change in the number of candidate servers for the forwarding destination is detected, the current route information is replaced with the past route information, and current route information corresponding to the new number of candidate servers for the forwarding destination is generated or obtained, so that the number of candidate servers 20 for the forwarding destination indicated by the current route information is at least different from the number of candidate servers 20 for the forwarding destination indicated by the route information of one generation ago.

なお、制御部103は、転送先候補のサーバ数の変更を検出した場合に、変更前の過去の経路情報を、破棄(変更前の現在の経路情報で置き換え)してもよいし、又は、記憶部101に保持させてもよい。すなわち、制御部103は、過去の経理情報として、変更後の現在の経路情報(例えば、経路情報#k+1)の一世代前の経路情報(例えば、経路情報#k)だけでなく、二世代以上前の経路情報(例えば、経路情報#k-1、…)を記憶部101に保持させてもよい。 When the control unit 103 detects a change in the number of servers that are candidate forwarding destinations, the control unit 103 may discard the past route information before the change (replace it with the current route information before the change), or may store it in the storage unit 101. In other words, the control unit 103 may store in the storage unit 101 not only the route information one generation before the current route information after the change (e.g., route information #k+1) (e.g., route information #k-1, ...), but also route information from two or more generations ago as past accounting information.

制御部103は、受信部102を通じて端末30からのパケットを受信した場合に、送信部104を使用して、第1の経路情報に従い、端末30からのパケットをサーバ20(第1のサーバ)に転送する。また、制御部202は、当該サーバ20に当該パケットが自身の管理するコネクションに属するか否かを判定させ、自身の管理するコネクションにパケットが属さない場合に、当該パケットに対応する再送パケットを通信制御装置10に返信させるように当該パケットを転送する。また、制御部103は、受信部102を通じてサーバ20(第1のサーバ)から前記再送パケットを受信した場合に、送信部104を使用して、第2の経路情報に従い、再送パケットを他のサーバ20(第2のサーバ)に転送する。 When the control unit 103 receives a packet from the terminal 30 through the receiving unit 102, it uses the transmitting unit 104 to transfer the packet from the terminal 30 to the server 20 (first server) according to the first route information. The control unit 202 also causes the server 20 to determine whether the packet belongs to a connection it manages, and if the packet does not belong to a connection it manages, it transfers the packet so that the server 20 returns a retransmission packet corresponding to the packet to the communication control device 10. When the control unit 103 receives the retransmission packet from the server 20 (first server) through the receiving unit 102, it uses the transmitting unit 104 to transfer the retransmission packet to another server 20 (second server) according to the second route information.

具体的には、制御部103は、記憶部101に記憶された現在の経路情報に基づいて、受信部102によって受信された端末30からのパケットの転送先のサーバ20(第1のサーバ)を決定する。例えば、制御部103は、現在の経路情報が示す転送先候補のサーバ20の中から、フロー情報に基づいて、転送先のサーバ20を決定してもよい。ここで、フロー情報とは、端末30からのパケットが属するフローに関する情報であり、例えば、フローの識別子であってもよい。 Specifically, the control unit 103 determines the server 20 (first server) to which the packet received from the terminal 30 by the receiving unit 102 is to be forwarded based on the current route information stored in the memory unit 101. For example, the control unit 103 may determine the destination server 20 based on the flow information from among the candidate servers 20 indicated by the current route information. Here, the flow information is information related to the flow to which the packet from the terminal 30 belongs, and may be, for example, an identifier of the flow.

また、制御部103は、記憶部101に記憶された過去の経路情報に基づいて、受信部102によって受信されたサーバ20(第1のサーバ)からの再送パケットの転送先のサーバ20(第2のサーバ)を決定する。例えば、制御部103は、過去の経路情報が示す転送先候補のサーバ20の中から、フロー情報に基づいて、転送先のサーバ20を決定してもよい。 The control unit 103 also determines the server 20 (second server) to which the retransmitted packet received by the receiving unit 102 from the server 20 (first server) is to be forwarded based on the past route information stored in the memory unit 101. For example, the control unit 103 may determine the destination server 20 based on the flow information from among the candidate destination servers 20 indicated by the past route information.

なお、制御部103は、過去の経路情報としてI(I>1)世代の経路情報が記憶部101で保持される場合、転送された再送パケットが通信制御装置10に返送されなくなるまで、i(0<i<I)世代前の経路情報に基づく再送パケットの転送を繰り返してもよい。例えば、制御部103は、一世代前の経路情報に基づいて決定されたサーバ20に転送された再送パケットが当該サーバ20自身の管理するコネクションに属さないとして通信制御装置10に返送された場合、二世代前の経路情報に基づいて決定されるサーバ20に当該再送パケットを再転送してもよい。 When I (I>1) generation route information is stored in the storage unit 101 as past route information, the control unit 103 may repeatedly forward the retransmission packet based on the route information of i (0<i<I) generations ago until the forwarded retransmission packet is no longer returned to the communication control device 10. For example, when a retransmission packet forwarded to a server 20 determined based on route information of one generation ago is returned to the communication control device 10 as not belonging to a connection managed by the server 20 itself, the control unit 103 may retransmit the retransmission packet to a server 20 determined based on route information of two generations ago.

送信部104は、パケットを送信するように構成される。具体的には、送信部104は、制御部103によって現在の経路情報に基づいて決定されたサーバ20に対して、端末30からのパケットを送信する。また、送信部104は、制御部103によって過去の経路情報に基づいて決定されたサーバ20に対して、上記再送パケットを送信する。 The transmitting unit 104 is configured to transmit packets. Specifically, the transmitting unit 104 transmits packets from the terminal 30 to the server 20 determined by the control unit 103 based on the current route information. The transmitting unit 104 also transmits the retransmission packet to the server 20 determined by the control unit 103 based on the past route information.

≪サーバ20≫
サーバ20(第1のサーバ)は、受信部201、制御部202及び送信部203を備える。受信部201は、通信制御装置10から転送されたパケットを受信するように構成される。
<Server 20>
The server 20 (first server) includes a receiving unit 201, a control unit 202, and a transmitting unit 203. The receiving unit 201 is configured to receive packets transferred from the communication control device 10.

制御部202は、受信部201を通じて通信制御装置10から転送されたパケットを受信した場合に、当該受信されたパケットが自身の管理するコネクションに属するか否かを判定する。例えば、制御部202は、当該パケットのポート番号及び/又はIPアドレスに基づいて当該パケットが自身の管理するコネクションに属するか否かを判定してもよい。 When the control unit 202 receives a packet forwarded from the communication control device 10 via the receiving unit 201, the control unit 202 determines whether or not the received packet belongs to a connection that the control unit 202 manages. For example, the control unit 202 may determine whether or not the packet belongs to a connection that the control unit 202 manages based on the port number and/or IP address of the packet.

なお、制御部202は、当該パケットがフローの2番目以降のパケットである場合に当該判定を行ってもよい。一方、制御部202は、当該パケットがフローの最初のパケットである場合は当該判定を行わずに自装置内で処理してもよい。制御部202は、受信されたパケットがフローの最初のパケットであるか否かを、TCP(Transmission Control Protocol)のSYNフラグに基づいて決定してもよい。例えば、制御部202は、SYNフラグが1に設定されたパケットである場合、当該パケットをフローの最初のパケットであると決定し、SYNフラグが0に設定されたパケットである場合、当該パケットをフローの後続のパケットであると決定してもよい。 The control unit 202 may make this determination if the packet is the second or subsequent packet of the flow. On the other hand, if the packet is the first packet of the flow, the control unit 202 may process the packet within its own device without making this determination. The control unit 202 may determine whether the received packet is the first packet of the flow based on the SYN flag of TCP (Transmission Control Protocol). For example, if the SYN flag is set to 1, the control unit 202 may determine that the packet is the first packet of the flow, and if the SYN flag is set to 0, the control unit 202 may determine that the packet is a subsequent packet of the flow.

制御部202は、当該受信されたパケットが自身の管理するコネクションに属さないと判定された場合に、当該受信されたパケットに対応する再送パケットを生成する。当該再送パケットは、当該受信されたパケットをカプセル化したパケットであり、当該カプセル化されたパケットの宛先アドレスは、通信制御装置10に設定されてもよい。また、制御部202は、生成された再送パケットが通信制御装置10で過去の経路情報(例えば、Shadow VRF)を参照するように、当該再送パケット内の所定フィールド(例えば、SRv6(Segment Routing over IPv6)のEnd.DT)の値を設定してもよい。制御部202は、生成された再送パケットを、送信部203を使用して通信制御装置10に返送する。 When the control unit 202 determines that the received packet does not belong to a connection managed by the control unit 202, it generates a retransmission packet corresponding to the received packet. The retransmission packet is a packet in which the received packet is encapsulated, and the destination address of the encapsulated packet may be set to the communication control device 10. The control unit 202 may also set the value of a predetermined field (e.g., End.DT of SRv6 (Segment Routing over IPv6)) in the retransmission packet so that the generated retransmission packet refers to past route information (e.g., Shadow VRF) in the communication control device 10. The control unit 202 returns the generated retransmission packet to the communication control device 10 using the transmission unit 203.

一方、制御部202は、当該受信されたパケットが自身の管理するコネクションに属すると判定された場合、通信制御装置10から転送されたパケットを自装置で処理する。 On the other hand, if the control unit 202 determines that the received packet belongs to a connection that it manages, it processes the packet forwarded from the communication control device 10 within its own device.

送信部203は、制御部202によって生成された再送パケットを通信制御装置10に送信するように構成される。 The transmitting unit 203 is configured to transmit the retransmission packet generated by the control unit 202 to the communication control device 10.

(動作)
図4~6を参照し、本実施形態に係る通信制御システム1の動作を説明する。
(motion)
The operation of the communication control system 1 according to this embodiment will be described with reference to FIGS.

<通信制御システム1の動作>
図4及び5は、本実施形態に係る通信制御システム1の動作例を示す図である。図4及び5では、例えば、パケット1~3が同一のフローFに属するものとする。また、図4及び5では、通信制御装置10は、ECMPを用いてサーバ20A~20Dにパケットを分散させるものとするが、負荷分散アルゴリズムはECMPに限られない。
<Operation of communication control system 1>
4 and 5 are diagrams showing an example of the operation of the communication control system 1 according to this embodiment. In Fig. 4 and 5, for example, packets 1 to 3 belong to the same flow F. Also, in Fig. 4 and 5, the communication control device 10 distributes packets to the servers 20A to 20D using ECMP, but the load distribution algorithm is not limited to ECMP.

例えば、図4に示すように、現在の経路情報である経路情報#kは、宛先アドレスとして仮想サーバのアドレスS20を示し、ネクストホップとして転送先候補のサーバ20A~20Dのアドレスを示す。なお、図4では、サーバ20A、20B、20C及び20Dがそれぞれ0、1、2及び3で識別されるものとする。 For example, as shown in FIG. 4, route information #k, which is the current route information, indicates the address of the virtual server S20 as the destination address, and indicates the addresses of the candidate servers 20A to 20D as the next hops. Note that in FIG. 4, servers 20A, 20B, 20C, and 20D are identified by 0, 1, 2, and 3, respectively.

図4に示すように、ステップS101において、通信制御装置10は、フローFに属する端末30からのパケット1及び2を受信する。当該パケット1及び2の宛先アドレスには、仮想サーバのアドレスS20が設定されている。 As shown in FIG. 4, in step S101, the communication control device 10 receives packets 1 and 2 from a terminal 30 belonging to flow F. The destination addresses of packets 1 and 2 are set to the address S20 of the virtual server.

ステップS102において、通信制御装置10は、ステップS101で受信されたパケット1及び2が属するフローFと、経路情報#kが示す転送先候補のサーバ数Nと、に基づいて、パケット1及び2の転送先としてサーバ20Dを決定し、決定されたサーバ20に対してパケット1及び2を送信する。 In step S102, the communication control device 10 determines server 20D as the forwarding destination of packets 1 and 2 based on the flow F to which packets 1 and 2 received in step S101 belong and the number N of servers as forwarding destination candidates indicated by the route information #k, and transmits packets 1 and 2 to the determined server 20.

具体的には、通信制御装置10は、フローFに関するハッシュ値を、サーバ数Nを用いて剰余演算した結果に基づいて、転送先のサーバ20を決定してもよい。なお、フローFに関するハッシュ値は、例えば、フローFの識別子のハッシュ値、パケット1~3の伝送に用いられるコネクションの識別子のハッシュ値等であってもよい。例えば、図4では、パケット1及び2が属するフローFに関するハッシュ値(Hash(F))が3であり、転送先候補のサーバ数Nは4であり、ハッシュ値とサーバ数Nを用いた剰余演算結果が3となる。このため、通信制御装置10は、当該剰余演算の結果である3で識別されるサーバ20Dに転送先を決定する。なお、転送先のサーバ20の決定方法は上記のものに限られず、転送先のサーバ20は剰余演算以外の方法を用いて決定されてもよいし、ハッシュ値を用いずに決定されてもよい。 Specifically, the communication control device 10 may determine the destination server 20 based on the result of modulo operation of the hash value of flow F using the number of servers N. The hash value of flow F may be, for example, the hash value of the identifier of flow F, or the hash value of the identifier of the connection used to transmit packets 1 to 3. For example, in FIG. 4, the hash value (Hash(F)) of flow F to which packets 1 and 2 belong is 3, the number of servers N of the destination candidates is 4, and the result of the modulo operation using the hash value and the number of servers N is 3. Therefore, the communication control device 10 determines the destination server 20D identified by the result of the modulo operation, 3. The method of determining the destination server 20 is not limited to the above, and the destination server 20 may be determined using a method other than the modulo operation, or may be determined without using the hash value.

ステップS102において通信制御装置10から送信されたパケット1及び2を受信したサーバ20Dは、当該パケット1及び2が自身の管理するコネクションに属するか否かを判定する。例えば、サーバ20Dは、パケット1及び2のポート番号及び/又はIPアドレスに基づいて、当該パケット1及び2が自身の管理するコネクションに属するか否かを判定してもよい。ここでは、パケット1及び2が自身の管理するコネクションに属するので、サーバ20Dは、当該パケット1及び2を自装置内で処理する。なお、パケット1がフローFの最初のパケット(例えば、SYNフラグが1であるパケット)である場合、当該パケット1についての上記判定は省略されてもよい。 In step S102, server 20D receives packets 1 and 2 sent from communication control device 10 and determines whether packets 1 and 2 belong to a connection managed by server 20D. For example, server 20D may determine whether packets 1 and 2 belong to a connection managed by server 20D based on the port numbers and/or IP addresses of packets 1 and 2. In this case, packets 1 and 2 belong to a connection managed by server 20D, so server 20D processes packets 1 and 2 within its own device. Note that if packet 1 is the first packet of flow F (for example, a packet with a SYN flag of 1), the above determination for packet 1 may be omitted.

図5に示すように、ステップS103において、パケット1及び2と同一のフローFに属するパケット3を通信制御装置10が受信する前に、サーバ20Bにおいて障害が発生する。これにより、通信制御装置10は、転送先候補のサーバ数の変更を検出する。 As shown in FIG. 5, in step S103, a failure occurs in server 20B before communication control device 10 receives packet 3, which belongs to the same flow F as packets 1 and 2. As a result, communication control device 10 detects a change in the number of servers as forwarding destination candidates.

ステップS104において、通信制御装置10は、転送先候補のサーバ数の変更が検出された場合、現在の経路情報である経路情報#kを過去の経路情報に置き換え、現在の経路情報を変更後の転送先候補を示すように更新する(すなわち、現在の経路情報を変更後の転送先候補であるサーバ20A、20B、20Dを示す経路情報#k+1に置き換える)。 In step S104, if a change in the number of servers as candidate transfer destinations is detected, the communication control device 10 replaces the current route information, route information #k, with the past route information, and updates the current route information to indicate the new candidate transfer destinations (i.e., replaces the current route information with route information #k+1 indicating the new candidate transfer destinations, servers 20A, 20B, and 20D).

ステップS105において、通信制御装置10は、パケット1及び2と同一のフローFに属する端末30からの後続のパケット3を受信する。当該パケット3の宛先アドレスには、仮想サーバのアドレスS20が設定されている。 In step S105, the communication control device 10 receives a subsequent packet 3 from the terminal 30 that belongs to the same flow F as packets 1 and 2. The destination address of packet 3 is set to the address S20 of the virtual server.

ステップS106において、通信制御装置10は、ステップS105で受信されたパケット3が属するフローFと、現在の経路情報である経路情報#k+1が示す転送先候補のサーバ数N1と、に基づいて、パケット3の転送先としてサーバ20Aを決定し、決定されたサーバ20Aに対してパケット3を送信する。 In step S106, the communication control device 10 determines server 20A as the destination of packet 3 based on the flow F to which packet 3 received in step S105 belongs and the number N 1 of candidate servers as destinations indicated by route information #k+1, which is the current route information, and transmits packet 3 to the determined server 20A.

具体的には、通信制御装置10は、フローFに関するハッシュ値を、サーバ数Nを用いて剰余演算した結果に基づいて、転送先のサーバ20を決定してもよい。例えば、図5では、パケット3が属するフローFに関するハッシュ値(Hash(F))が3であり、転送先候補のサーバ数N1は3であり、ハッシュ値のサーバ数N1を用いた剰余演算結果が0となる。このため、通信制御装置10は、当該剰余演算の結果である0で識別されるサーバ20Aに転送先を決定する。なお、転送先のサーバ20の決定方法は上記のものに限られず、転送先のサーバ20は剰余演算以外の方法を用いて決定されてもよいし、ハッシュ値を用いずに決定されてもよい。 Specifically, the communication control device 10 may determine the destination server 20 based on the result of modulo operation of the hash value for flow F using the number of servers N. For example, in FIG. 5, the hash value (Hash(F)) for flow F to which packet 3 belongs is 3, the number of destination servers N1 is 3, and the result of modulo operation of the hash value using the number of servers N1 is 0. Therefore, the communication control device 10 determines the destination server to be server 20A identified by the result of the modulo operation, 0. Note that the method of determining the destination server 20 is not limited to the above, and the destination server 20 may be determined using a method other than the modulo operation, or may be determined without using a hash value.

ステップS106において通信制御装置10から送信されたパケット3を受信したサーバ20Aは、当該パケット3が自身の管理するコネクションに属するか否かを判定する。例えば、サーバ20Aは、パケット3のポート番号及び/又はIPアドレスに基づいて、当該パケット3が自身の管理するコネクションに属するか否かを判定してもよい。ここでは、パケット3が自身の管理するコネクションに属さないので、サーバ20Aは、当該パケット3に対応する再送パケットを生成する。 In step S106, server 20A receives packet 3 transmitted from communication control device 10 and determines whether or not packet 3 belongs to a connection managed by server 20A. For example, server 20A may determine whether or not packet 3 belongs to a connection managed by server 20A based on the port number and/or IP address of packet 3. In this case, since packet 3 does not belong to a connection managed by server 20A, server 20A generates a retransmission packet corresponding to packet 3.

具体的には、サーバ20Aは、パケット3をカプセル化して再送パケットを生成し、当該再送パケット内の所定フィールド(例えば、SRv6のEnd.DT)を過去の経路情報である経路情報#kを参照するように設定してもよい。ステップS107において、サーバ20Aは、生成された再送パケットを通信制御装置10に送信する。 Specifically, server 20A may encapsulate packet 3 to generate a retransmission packet, and set a predetermined field (e.g., End.DT of SRv6) in the retransmission packet to refer to route information #k, which is past route information. In step S107, server 20A transmits the generated retransmission packet to communication control device 10.

ステップS108において、通信制御装置10は、過去の経路情報である経路情報#kに基づいて、サーバ20Aから送信された再送パケットの転送先のサーバ20を決定する。具体的には、通信制御装置10は、再送パケット内の所定フィールド(例えば、SRv6のEnd.DT)の値に基づいて、現在の経路情報である経路情報#k+1ではなく、過去の経路情報である経路情報#kを参照することを決定する。 In step S108, the communication control device 10 determines the server 20 to which the retransmission packet transmitted from the server 20A is to be forwarded based on the route information #k, which is the past route information. Specifically, the communication control device 10 determines to refer to the route information #k, which is the past route information, instead of the route information #k+1, which is the current route information, based on the value of a specific field (e.g., End.DT of SRv6) in the retransmission packet.

通信制御装置10は、再送パケットをデカプセル化したパケット3が属するフローと、過去の経路情報である経路情報#kが示す転送先候補のサーバ数N2と、に基づいて、パケット3の転送先としてサーバ20Dを決定する。例えば、図5では、パケット3が属するフローFに関するハッシュ値(Hash(F))が3であり、転送先候補のサーバ数N2は4であり、ハッシュ値のサーバ数N2を用いた剰余演算結果が3となる。このため、通信制御装置10は、当該剰余演算の結果である3で識別されるサーバ20Dに転送先を決定し、決定されたサーバ20Dに対してパケット3を送信する。 The communication control device 10 determines the server 20D as the transfer destination of the packet 3 based on the flow to which the packet 3 obtained by decapsulating the retransmission packet belongs and the number N2 of servers as transfer destination candidates indicated by the route information #k, which is the past route information. For example, in Fig. 5, the hash value (Hash(F)) for the flow F to which the packet 3 belongs is 3, the number N2 of servers as transfer destination candidates is 4, and the result of the modulus operation using the number N2 of servers of the hash value is 3. Therefore, the communication control device 10 determines the transfer destination to be the server 20D identified by the result of the modulus operation, 3, and transmits the packet 3 to the determined server 20D.

図4及び5に示す動作によると、同一のフローFに属するパケット1~3が全てサーバ20Dに転送される。このため、ECMPを用いて負荷分散を図る場合に、転送先候補のサーバ数に変更があっても、PCC(Per-Connection Consistency)を実現できる。 According to the operation shown in Figures 4 and 5, packets 1 to 3 belonging to the same flow F are all forwarded to server 20D. Therefore, when load balancing is performed using ECMP, PCC (Per-Connection Consistency) can be achieved even if the number of candidate servers for forwarding destinations changes.

<サーバ20の動作>
図6は、本実施形態に係るサーバ20の動作例を示すフローチャートである。なお、図6は一例にすぎず、不図示のステップが追加されてもよい。
<Operation of Server 20>
Fig. 6 is a flowchart showing an example of the operation of the server 20 according to the present embodiment. Note that Fig. 6 is merely an example, and steps not shown may be added.

図6に示すように、ステップS201において、サーバ20は、通信制御装置10から転送されたパケットを受信する。ステップS202において、サーバ20は、当該パケットがフローFの最初のパケットであるか否かを判定してもよい。例えば、サーバ20は、当該パケットのSYNフラグに基づいて、当該パケットがフローFの最初のパケットであるか否かを判定してもよい。 As shown in FIG. 6, in step S201, the server 20 receives a packet forwarded from the communication control device 10. In step S202, the server 20 may determine whether the packet is the first packet of flow F. For example, the server 20 may determine whether the packet is the first packet of flow F based on the SYN flag of the packet.

ステップS201で受信されたパケットがフローFの最初のパケットであると判定された場合(ステップS202;YES)、本動作は終了し、サーバ20は、当該パケットを自身で処理する。 If it is determined in step S201 that the packet received is the first packet of flow F (step S202; YES), this operation ends and server 20 processes the packet itself.

一方、ステップS201で受信されたパケットがフローFの最初のパケットではない(すなわち、後続のパケットである)と判定された場合(ステップS202;NO)、ステップS203において、サーバ20は、当該パケットが、自身が管理するコネクションに属するか否かを判定する。例えば、サーバ20は、当該パケットのポート番号及び/又はIPアドレスがサーバ20で保持されるか否かに基づいて、自身が管理するコネクションに属するか否かを判定してもよい。 On the other hand, if it is determined in step S201 that the packet received is not the first packet of flow F (i.e., it is a subsequent packet) (step S202; NO), in step S203, server 20 determines whether or not the packet belongs to a connection that it manages. For example, server 20 may determine whether or not the packet belongs to a connection that it manages based on whether or not the port number and/or IP address of the packet is held by server 20.

ステップS201で受信されたパケットがサーバ20自身の管理するコネクションに属する場合(ステップS203;YES)、本動作は終了し、サーバ20は、当該パケットを自身で処理する。一方、当該パケットがサーバ20自身の管理するコネクションに属しない場合(ステップS203;NO)、ステップS204において、サーバ20は、当該パケットに対応する再送パケットを生成する。上記の通り、サーバ20は、当該パケットをカプセル化して通信制御装置10を宛先とする再送パケットを生成し、当該再送パケットの所定フィールド(例えば、SRv6のEnd.DT)の値を過去の経路情報である経路情報#kを参照するように設定してもよい。 If the packet received in step S201 belongs to a connection managed by the server 20 itself (step S203; YES), this operation ends, and the server 20 processes the packet itself. On the other hand, if the packet does not belong to a connection managed by the server 20 itself (step S203; NO), in step S204, the server 20 generates a retransmission packet corresponding to the packet. As described above, the server 20 encapsulates the packet to generate a retransmission packet addressed to the communication control device 10, and may set the value of a specified field (e.g., End.DT of SRv6) of the retransmission packet to refer to route information #k, which is past route information.

ステップS205において、サーバ20は、ステップS204で生成された再送パケットを通信制御装置10に対して送信する。 In step S205, the server 20 transmits the retransmission packet generated in step S204 to the communication control device 10.

以上のように、本実施形態に係る通信制御システム1によれば、通信制御装置10は、転送先候補のサーバ数の変更が検出された場合、現在の経路情報を過去の経路情報に置き換え、現在の経路情報を変更後の転送先候補を示すように更新するので、転送先候補のサーバ数に変更があっても、PCC(Per-Connection Consistency)を実現できる。したがって、専用の装置のみならず、汎用のハードウェアルータを用いた場合でも、デイジーチェイニング方式でコネクションを維持できる。 As described above, according to the communication control system 1 of this embodiment, when a change in the number of candidate servers for the transfer destination is detected, the communication control device 10 replaces the current route information with the past route information and updates the current route information to indicate the changed candidate servers for the transfer destination, so that PCC (Per-Connection Consistency) can be achieved even if there is a change in the number of candidate servers for the transfer destination. Therefore, the connection can be maintained using the daisy chaining method not only when a dedicated device is used, but also when a general-purpose hardware router is used.

(その他)
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。
(others)
The above-described embodiments are intended to facilitate understanding of the present invention, and are not intended to limit the present invention. The elements of the embodiments, as well as their arrangements, materials, conditions, shapes, sizes, etc., are not limited to those illustrated, and can be changed as appropriate. In addition, configurations shown in different embodiments can be partially substituted or combined with each other.

例えば、上記実施形態では、通信制御装置10は、ECMPを用いて端末30からのパケットを複数のサーバ20に分散させる例を説明したが、負荷分散アルゴリズムはECMPに限られない。例えば、ラウンドロビン方式等、ECMP以外の方法を用いて端末30からのパケットについての複数のサーバ20間での負荷分散が実現されてもよい。 For example, in the above embodiment, an example was described in which the communication control device 10 distributes packets from the terminal 30 to multiple servers 20 using ECMP, but the load distribution algorithm is not limited to ECMP. For example, load distribution of packets from the terminal 30 among multiple servers 20 may be achieved using a method other than ECMP, such as a round robin method.

1 通信制御システム
10 通信制御装置
20、20A~20D サーバ
30 端末
40 ネットワーク
11 プロセッサ
12 記憶装置
13 通信装置
14 入出力装置
101 記憶部
102 受信部
103 制御部
104 送信部
201 受信部
202 制御部
203 送信部
1 Communication control system 10 Communication control device 20, 20A to 20D Server 30 Terminal 40 Network 11 Processor 12 Storage device 13 Communication device 14 Input/output device 101 Storage unit 102 Receiving unit 103 Control unit 104 Transmitting unit 201 Receiving unit 202 Control unit 203 Transmitting unit

Claims (5)

パケットの転送先候補をそれぞれ示す第1の経路情報及び第2の経路情報を記憶する記憶部、
前記パケットを受信するように構成される受信部、
前記パケットを送信するように構成される送信部、並びに
制御部、
を備える通信制御装置であって、
前記制御部は、転送先候補のサーバ数の変更を検出した場合に、前記記憶部に記憶されている前記第1の経路情報を前記第2の経路情報に置き換え、前記変更後の前記パケットの転送先候補を示すように前記第1の経路情報を更新するように構成され、
前記制御部は、
前記受信部を通じて端末からパケットを受信した場合に、前記送信部を使用して、前記第1の経路情報に従い、前記端末から受信した前記パケットを第1のサーバに転送することであって、前記第1のサーバに前記パケットが自身の管理するコネクションに属するか否かを判定させ、自身の管理するコネクションに前記パケットが属さない場合に、前記パケットに対応する再送パケットを前記通信制御装置に返信させるように前記パケットを転送すること、及び
前記受信部を通じて前記第1のサーバから前記再送パケットを受信した場合に、前記送信部を使用して、前記第2の経路情報に従い、前記再送パケットを第2のサーバに転送すること、
を実行するように更に構成される、
通信制御装置。
a storage unit that stores first route information and second route information each indicating a candidate forwarding destination of a packet;
a receiver configured to receive the packets;
a transmitting unit configured to transmit the packet; and a control unit.
A communication control device comprising:
the control unit is configured, when detecting a change in the number of servers that are transfer destination candidates, to replace the first route information stored in the storage unit with the second route information, and to update the first route information so as to indicate the transfer destination candidates for the packet after the change;
The control unit is
when a packet is received from a terminal via the receiving unit, using the transmitting unit to transfer the packet received from the terminal to a first server in accordance with the first route information, causing the first server to determine whether or not the packet belongs to a connection managed by the first server, and when the packet does not belong to a connection managed by the first server, transferring the packet so that the first server returns a retransmission packet corresponding to the packet to the communication control device; and when the retransmission packet is received from the first server via the receiving unit, using the transmitting unit to transfer the retransmission packet to a second server in accordance with the second route information;
and further configured to execute
Communications control device.
前記制御部は、
前記第1の経路情報と、前記パケットが属するフローに関するフロー情報と、に基づいて、前記第1のサーバを決定し、
前記第2の経路情報と、前記フロー情報と、に基づいて、前記第2のサーバを決定する、
請求項1記載の通信制御装置。
The control unit is
determining the first server based on the first route information and flow information regarding a flow to which the packet belongs;
determining the second server based on the second route information and the flow information;
The communication control device according to claim 1.
パケットの転送先候補をそれぞれ示す第1の経路情報及び第2の経路情報を記憶する記憶部、
前記パケットを受信するように構成される受信部、
前記パケットを送信するように構成される送信部、並びに
制御部、
を備える通信制御装置と、第1のサーバと、第2のサーバと、を含む通信制御システムであって、
前記通信制御装置の前記制御部は、
転送先候補のサーバ数の変更を検出した場合に、前記記憶部に記憶されている前記第1の経路情報を前記第2の経路情報に置き換え、前記変更後の前記パケットの転送先を示すように前記第1の経路情報を更新するように構成され、
前記受信部を通じて端末からパケットを受信した場合に、前記送信部を使用して、前記第1の経路情報に従い、前記端末から受信した前記パケットを第1のサーバに転送し、
前記第1のサーバは、
前記通信制御装置から転送された前記パケットを受信するように構成される受信部と、
前記パケットが前記第1のサーバが管理するコネクションに属するか否かを判定する制御部と、
前記制御部によって自身の管理するコネクションに前記パケットが属さないと判定された場合に、前記パケットに対応する再送パケットを前記通信制御装置に送信するように構成される送信部と、
を備え、
前記通信制御装置の制御部は、
前記受信部を通じて前記第1のサーバから前記再送パケットを受信した場合に、前記送信部を使用して、前記第2の経路情報に従い、前記再送パケットを第2のサーバに転送する通信制御システム。
a storage unit that stores first route information and second route information each indicating a candidate forwarding destination of a packet;
a receiver configured to receive the packets;
a transmitting unit configured to transmit the packet; and a control unit.
A communication control system including a communication control device having a first server and a second server,
The control unit of the communication control device
when detecting a change in the number of servers that are candidates for forwarding destinations, the first route information stored in the storage unit is replaced with the second route information, and the first route information is updated to indicate the forwarding destination of the packet after the change;
When a packet is received from a terminal via the receiving unit, using the transmitting unit, the packet received from the terminal is transferred to a first server in accordance with the first route information;
The first server comprises:
a receiving unit configured to receive the packet transferred from the communication control device;
a control unit that determines whether the packet belongs to a connection managed by the first server;
a transmission unit configured to transmit a retransmission packet corresponding to the packet to the communication control device when the control unit determines that the packet does not belong to a connection managed by the transmission unit;
Equipped with
The control unit of the communication control device
A communication control system that, when the retransmission packet is received from the first server via the receiving unit, uses the transmitting unit to forward the retransmission packet to a second server in accordance with the second route information.
前記第1のサーバの前記制御部は、
前記制御部によって自身の管理するコネクションに前記パケットが属すると判定された場合、前記再送パケットを前記通信制御装置に対して送信せずに、前記パケットを処理する、
請求項3記載の通信制御システム。
The control unit of the first server
when the control unit determines that the packet belongs to a connection managed by the control unit, the control unit processes the packet without transmitting the retransmission packet to the communication control device.
The communication control system according to claim 3.
パケットの転送先候補をそれぞれ示す第1の経路情報及び第2の経路情報を記憶し、転送先候補のサーバ数の変更を検出し、前記第1の経路情報を前記第2の経路情報に置き換え、前記変更後の前記パケットの転送先候補を示すように前記第1の経路情報を更新するように構成された通信制御装置が、
端末からのパケットを受信する工程と、
前記第1の経路情報に従い、前記端末から受信した前記パケットを第1のサーバに転送する工程と、を有し、
前記第1のサーバが、
前記通信制御装置から転送された前記パケットを受信する工程と、
前記パケットが前記第1のサーバが管理するコネクションに属するか否かを判定された場合、自身の管理するコネクションに前記パケットが属さないと判定された場合に、前記パケットに対応する再送パケットを前記通信制御装置に送信する工程と、を有し、
前記通信制御装置は、
前記第1のサーバから前記再送パケットを受信する工程と、
前記第2の経路情報に従い、前記再送パケットを第2のサーバに転送する工程と、を更に有する
通信制御方法。
a communication control device configured to store first route information and second route information each indicating a candidate destination of a packet, detect a change in the number of servers of the candidate destination, replace the first route information with the second route information, and update the first route information so as to indicate the candidate destination of the packet after the change;
receiving a packet from a terminal;
and forwarding the packet received from the terminal to a first server in accordance with the first route information;
The first server,
receiving the packet transferred from the communication control device;
a step of transmitting a retransmission packet corresponding to the packet to the communication control device when it is determined whether or not the packet belongs to a connection managed by the first server, and when it is determined that the packet does not belong to a connection managed by the first server,
The communication control device includes:
receiving the retransmitted packet from the first server;
and transferring the retransmission packet to a second server in accordance with the second route information.
JP2022157969A 2022-09-30 2022-09-30 COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL SYSTEM, AND COMMUNICATION CONTROL METHOD Pending JP2024051680A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022157969A JP2024051680A (en) 2022-09-30 2022-09-30 COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL SYSTEM, AND COMMUNICATION CONTROL METHOD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022157969A JP2024051680A (en) 2022-09-30 2022-09-30 COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL SYSTEM, AND COMMUNICATION CONTROL METHOD

Publications (1)

Publication Number Publication Date
JP2024051680A true JP2024051680A (en) 2024-04-11

Family

ID=90622769

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022157969A Pending JP2024051680A (en) 2022-09-30 2022-09-30 COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL SYSTEM, AND COMMUNICATION CONTROL METHOD

Country Status (1)

Country Link
JP (1) JP2024051680A (en)

Similar Documents

Publication Publication Date Title
CN103155500B (en) For the method and system of the stateless load balance of network service flow
EP2514152B1 (en) Distributed routing architecture
JP5964239B2 (en) Distributed routing architecture
US10749794B2 (en) Enhanced error signaling and error handling in a network environment with segment routing
CN102474467B (en) Server-side load balancing using parent-child link aggregation groups
EP2514150B1 (en) Distributed routing architecture
US11711293B2 (en) Per-provider origin pull
US9712649B2 (en) CCN fragmentation gateway
US11405320B2 (en) Systems and methods for scalable validation of multiple paths in a network using segment routing
EP3968580B1 (en) Method for generating multicast forwarding table entry, and access gateway
US10205663B1 (en) Managing host computing devices
US10862800B2 (en) Method and system for managing network communications
JP2017069951A (en) System and method for stateless information centric network
JP2017147733A (en) Method and system for routing diameter message in diameter signaling router and computer readable medium
US8433808B1 (en) Learning values of transmission control protocol (TCP) options
WO2023040782A1 (en) Message processing method and system, and device and storage medium
EP4648378A1 (en) Method for forwarding in-network computing message, forwarding node and computer storage medium
US20160105358A1 (en) Compression of routing information exchanges
JP2024051680A (en) COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL SYSTEM, AND COMMUNICATION CONTROL METHOD
CN105656994A (en) Business acceleration method and device
CN113169936A (en) Service chaining mechanism for data stream processing
CN116708456A (en) Determining the best destination on the best route using multifactor routing
CN117099356A (en) Example - Affine business scheduling
CN119968829A (en) User plane entity enhancements for supporting in-network computing in mobile networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20250709