JP2024051680A - COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL SYSTEM, AND COMMUNICATION CONTROL METHOD - Google Patents
COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL SYSTEM, AND COMMUNICATION CONTROL METHOD Download PDFInfo
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
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
本件発明者らは、上記従来の方法によれば、次のような問題点があることを見出した。すなわち、従来の方法では、ステート情報をパケットに埋め込むことで、コネクション維持を実現しており、その処理は、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.
添付図面を参照して、本発明の実施形態について説明する。なお、各図において、同一の符号を付したものは、同一又は同様の構成を有する。 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
通信制御装置10は、端末30からのパケットの通信制御を行う装置である。当該端末30からのパケットは、端末30からのトラフィックデータに関するパケット、及び/又は、端末30からの要求(例えば、端末30に対するトラフィックデータの要求)に関するパケットであってもよい。
The
通信制御装置10は、例えば、パケット転送用のASIC(application specific integrated circuit)を搭載した汎用のハードウェアルータであるが、これに限られず、ソフトウェアルータ又はスイッチ等、端末30からのパケットの通信制御を行うどのような装置であってもよい。また、通信制御装置10は、例えば、ECMP(Equal Cost Multi path)を搭載した汎用的な装置(例えば、L3汎用ルータ)であるが、これに限られず、トラフィック分散専用のハードウェア又はソフトウェアが搭載された専用装置(例えば、ロードバランサ)であってもよい。
The
サーバ20A~20Dは、端末30からのパケットの転送先の候補となる複数のサーバである。例えば、サーバ20A~20Dは、通信制御装置10とともにデータセンターDC等に配置されるが、配置場所はデータセンターDCに限られない。以下、サーバ20A~20Dを区別しない場合はサーバ20と総称する。各サーバ20は、一つ又は複数の装置で構成されてもよい。また、サーバ20は、通信制御装置10と直接接続されていてもよいし、不図示の他の装置(例えば、ルータやスイッチ等)やネットワークを介して接続されてもよい。
端末30は、ネットワーク40を介してサーバ20との通信を行う端末である。例えば、端末30は、TCU(Telematics Control Unit)、スマートフォン、パソコン、タブレット端末、IoT(Internet of Things)デバイス等であってもよい。ネットワーク40は、有線及び/又は無線のネットワークである。
The
なお、図1では、端末30からのパケットの分散先として4つのサーバ20が示されるが、通信制御システム1を構成するサーバ20の数(以下、「サーバ数」という)Nは4に限られず、複数であればよい。また、通信制御システム1に設けられる通信制御装置10は一つに限られず、同一及び/又は異なるサーバ20を収容する複数の通信制御装置10が設けられてもよい。
In FIG. 1, four
通信制御システム1では、通信制御装置10は、ネットワーク40を介して端末30からのパケットを受信した場合、通信制御装置10に接続される複数のサーバ20の中から、当該パケットの転送先のサーバ20を決定し、決定されたサーバ20に対して当該パケットを送信する。当該決定されたサーバ20は、受信したパケットに基づく各種処理(例えば、画像データの解析等)を行う。これにより、通信制御装置10は、複数のサーバ20間での負荷分散を実現する。
In the
(構成)
図2及び3を参照し、本実施形態に係る通信制御システム1の物理構成及び機能構成を説明する。
<物理構成>
図2は、本実施形態に係る通信制御システムの各装置の物理構成の一例を示す図である。通信制御システム1内の各装置(例えば、通信制御装置10、サーバ20及び端末30等)は、プロセッサ11、記憶装置12、有線又は無線の通信を行う通信装置13、各種の入力操作を受け付ける入力装置や各種情報の出力を行う入出力装置14を含む。プロセッサ11が記憶装置12に記憶されたプログラムを実行することにより、各装置の制御部の少なくとも一部の機能を実現する。
(composition)
The physical configuration and functional configuration of the
<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
プロセッサ11は、例えば、CPU(Central Processing Unit)であり、通信制御システム1内の各装置を制御する。プロセッサ11は、プログラムを記憶装置12から読み出して実行することで、本実施形態で説明する各種の処理を実行してもよい。通信制御システム1内の各装置は、1又は複数のプロセッサ11により構成されていてもよい。また、当該各装置は、コンピュータと呼ばれてもよい。
The
記憶装置12は、例えば、メモリ、HDD(Hard Disk Drive)及び/又はSSD(Solid State Drive)等のストレージから構成される。記憶装置12は、プロセッサ11による処理の実行に必要な各種情報(例えば、プロセッサ11によって実行されるプログラム等)を記憶してもよい。記憶装置12は、各装置の記憶部の少なくとも一部の機能を実現する。
The
通信装置13は、ネットワーク40を介して通信を行う装置であり、例えば、ネットワークカード、通信モジュール、チップ、アンテナ等を含んでもよい。入出力装置14は、例えば、キーボード、タッチパネル、マウス及び/又はマイク等の入力装置と、例えば、ディスプレイ及び/又はスピーカ等の出力装置とを含む。通信装置13は、各装置の送信部、受信部及び制御部の少なくとも一部の機能を実現する。
The
以上説明した物理構成は一例に過ぎない。通信制御システム1内の各装置は、図2に記載したハードウェアの一部が省略されていてもよいし、図2に記載されていないハードウェアを備えていてもよい。また、図2に示すハードウェアが1又は複数のチップにより構成されていてもよい。
The physical configuration described above is merely one example. Each device in the
<機能構成>
図3は、本実施形態に係る通信制御システム1の機能構成の一例を示す図である。なお、図3では、例えば、通信制御装置10及びサーバ20の機能構成を説明する。
<Functional configuration>
Fig. 3 is a diagram showing an example of the functional configuration of the
≪通信制御装置10≫
図3に示すように、通信制御装置10は、記憶部101、受信部102、制御部103及び送信部104を備える。
<
As shown in FIG. 3, the
記憶部101は、通信制御装置10によって受信されたパケットの転送先の候補(以下、「転送先候補」という)をそれぞれ示す複数の経路情報(例えば、第1の経路情報及び第2の経路情報)を記憶する。具体的には、記憶部101は、パケットの転送先候補の各サーバ20をそれぞれ示す複数の経路情報を記憶してもよい。記憶部101は、通信制御装置10に接続される複数のサーバ20間での負荷分散のために当該複数の経路情報の各々を記憶してもよい。
The
例えば、当該複数の経路情報は、それぞれ、当該パケットのネクストホップとして、当該転送先候補の各サーバ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
当該複数の経路情報のうちの第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
なお、現在の経路情報は、通信制御装置10自身で生成されてもよい。又は、現在の経路情報は、通信制御装置10自身で生成されなくともよく、通信制御装置10によって他の装置から取得されるものであってもよい。
The current route information may be generated by the
受信部102は、パケットを受信するように構成される。具体的には、受信部102は、端末30からのパケットを受信する。また、受信部102は、サーバ20からの再送パケットを受信してもよい。当該再送パケットは、当該サーバ20に転送されたパケットに対応し、当該パケットがサーバ20自身の管理するコネクションに属さない場合に当該サーバ20から送信される。
The receiving
制御部103は、転送先候補のサーバ数の変更を検出した場合に、記憶部101に記憶されている現在の経路情報を過去の経路情報に置き換え、変更後のパケットの転送先候補を示すように現在の経路情報を更新するように構成される。このように、転送先候補のサーバ数の変更が検出された場合に、現在の経路情報が過去の経路情報に置き換えられ、新たな転送先候補のサーバ数に対応する現在の経路情報が生成又は取得されるので、現在の経路情報が示す転送先候補のサーバ20の数は、少なくとも、一世代前の経路情報が示す転送先候補のサーバ20の数とは異なる。
When a change in the number of candidate servers for the forwarding destination is detected, the
なお、制御部103は、転送先候補のサーバ数の変更を検出した場合に、変更前の過去の経路情報を、破棄(変更前の現在の経路情報で置き換え)してもよいし、又は、記憶部101に保持させてもよい。すなわち、制御部103は、過去の経理情報として、変更後の現在の経路情報(例えば、経路情報#k+1)の一世代前の経路情報(例えば、経路情報#k)だけでなく、二世代以上前の経路情報(例えば、経路情報#k-1、…)を記憶部101に保持させてもよい。
When the
制御部103は、受信部102を通じて端末30からのパケットを受信した場合に、送信部104を使用して、第1の経路情報に従い、端末30からのパケットをサーバ20(第1のサーバ)に転送する。また、制御部202は、当該サーバ20に当該パケットが自身の管理するコネクションに属するか否かを判定させ、自身の管理するコネクションにパケットが属さない場合に、当該パケットに対応する再送パケットを通信制御装置10に返信させるように当該パケットを転送する。また、制御部103は、受信部102を通じてサーバ20(第1のサーバ)から前記再送パケットを受信した場合に、送信部104を使用して、第2の経路情報に従い、再送パケットを他のサーバ20(第2のサーバ)に転送する。
When the
具体的には、制御部103は、記憶部101に記憶された現在の経路情報に基づいて、受信部102によって受信された端末30からのパケットの転送先のサーバ20(第1のサーバ)を決定する。例えば、制御部103は、現在の経路情報が示す転送先候補のサーバ20の中から、フロー情報に基づいて、転送先のサーバ20を決定してもよい。ここで、フロー情報とは、端末30からのパケットが属するフローに関する情報であり、例えば、フローの識別子であってもよい。
Specifically, the
また、制御部103は、記憶部101に記憶された過去の経路情報に基づいて、受信部102によって受信されたサーバ20(第1のサーバ)からの再送パケットの転送先のサーバ20(第2のサーバ)を決定する。例えば、制御部103は、過去の経路情報が示す転送先候補のサーバ20の中から、フロー情報に基づいて、転送先のサーバ20を決定してもよい。
The
なお、制御部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
送信部104は、パケットを送信するように構成される。具体的には、送信部104は、制御部103によって現在の経路情報に基づいて決定されたサーバ20に対して、端末30からのパケットを送信する。また、送信部104は、制御部103によって過去の経路情報に基づいて決定されたサーバ20に対して、上記再送パケットを送信する。
The transmitting
≪サーバ20≫
サーバ20(第1のサーバ)は、受信部201、制御部202及び送信部203を備える。受信部201は、通信制御装置10から転送されたパケットを受信するように構成される。
<
The server 20 (first server) includes a receiving
制御部202は、受信部201を通じて通信制御装置10から転送されたパケットを受信した場合に、当該受信されたパケットが自身の管理するコネクションに属するか否かを判定する。例えば、制御部202は、当該パケットのポート番号及び/又はIPアドレスに基づいて当該パケットが自身の管理するコネクションに属するか否かを判定してもよい。
When the
なお、制御部202は、当該パケットがフローの2番目以降のパケットである場合に当該判定を行ってもよい。一方、制御部202は、当該パケットがフローの最初のパケットである場合は当該判定を行わずに自装置内で処理してもよい。制御部202は、受信されたパケットがフローの最初のパケットであるか否かを、TCP(Transmission Control Protocol)のSYNフラグに基づいて決定してもよい。例えば、制御部202は、SYNフラグが1に設定されたパケットである場合、当該パケットをフローの最初のパケットであると決定し、SYNフラグが0に設定されたパケットである場合、当該パケットをフローの後続のパケットであると決定してもよい。
The
制御部202は、当該受信されたパケットが自身の管理するコネクションに属さないと判定された場合に、当該受信されたパケットに対応する再送パケットを生成する。当該再送パケットは、当該受信されたパケットをカプセル化したパケットであり、当該カプセル化されたパケットの宛先アドレスは、通信制御装置10に設定されてもよい。また、制御部202は、生成された再送パケットが通信制御装置10で過去の経路情報(例えば、Shadow VRF)を参照するように、当該再送パケット内の所定フィールド(例えば、SRv6(Segment Routing over IPv6)のEnd.DT)の値を設定してもよい。制御部202は、生成された再送パケットを、送信部203を使用して通信制御装置10に返送する。
When the
一方、制御部202は、当該受信されたパケットが自身の管理するコネクションに属すると判定された場合、通信制御装置10から転送されたパケットを自装置で処理する。
On the other hand, if the
送信部203は、制御部202によって生成された再送パケットを通信制御装置10に送信するように構成される。
The transmitting
(動作)
図4~6を参照し、本実施形態に係る通信制御システム1の動作を説明する。
(motion)
The operation of the
<通信制御システム1の動作>
図4及び5は、本実施形態に係る通信制御システム1の動作例を示す図である。図4及び5では、例えば、パケット1~3が同一のフローFに属するものとする。また、図4及び5では、通信制御装置10は、ECMPを用いてサーバ20A~20Dにパケットを分散させるものとするが、負荷分散アルゴリズムはECMPに限られない。
<Operation of
4 and 5 are diagrams showing an example of the operation of the
例えば、図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
図4に示すように、ステップS101において、通信制御装置10は、フローFに属する端末30からのパケット1及び2を受信する。当該パケット1及び2の宛先アドレスには、仮想サーバのアドレスS20が設定されている。
As shown in FIG. 4, in step S101, the
ステップS102において、通信制御装置10は、ステップS101で受信されたパケット1及び2が属するフローFと、経路情報#kが示す転送先候補のサーバ数Nと、に基づいて、パケット1及び2の転送先としてサーバ20Dを決定し、決定されたサーバ20に対してパケット1及び2を送信する。
In step S102, the
具体的には、通信制御装置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
ステップ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,
図5に示すように、ステップS103において、パケット1及び2と同一のフローFに属するパケット3を通信制御装置10が受信する前に、サーバ20Bにおいて障害が発生する。これにより、通信制御装置10は、転送先候補のサーバ数の変更を検出する。
As shown in FIG. 5, in step S103, a failure occurs in
ステップ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
ステップS105において、通信制御装置10は、パケット1及び2と同一のフローFに属する端末30からの後続のパケット3を受信する。当該パケット3の宛先アドレスには、仮想サーバのアドレスS20が設定されている。
In step S105, the
ステップS106において、通信制御装置10は、ステップS105で受信されたパケット3が属するフローFと、現在の経路情報である経路情報#k+1が示す転送先候補のサーバ数N1と、に基づいて、パケット3の転送先としてサーバ20Aを決定し、決定されたサーバ20Aに対してパケット3を送信する。
In step S106, the
具体的には、通信制御装置10は、フローFに関するハッシュ値を、サーバ数Nを用いて剰余演算した結果に基づいて、転送先のサーバ20を決定してもよい。例えば、図5では、パケット3が属するフローFに関するハッシュ値(Hash(F))が3であり、転送先候補のサーバ数N1は3であり、ハッシュ値のサーバ数N1を用いた剰余演算結果が0となる。このため、通信制御装置10は、当該剰余演算の結果である0で識別されるサーバ20Aに転送先を決定する。なお、転送先のサーバ20の決定方法は上記のものに限られず、転送先のサーバ20は剰余演算以外の方法を用いて決定されてもよいし、ハッシュ値を用いずに決定されてもよい。
Specifically, the
ステップS106において通信制御装置10から送信されたパケット3を受信したサーバ20Aは、当該パケット3が自身の管理するコネクションに属するか否かを判定する。例えば、サーバ20Aは、パケット3のポート番号及び/又はIPアドレスに基づいて、当該パケット3が自身の管理するコネクションに属するか否かを判定してもよい。ここでは、パケット3が自身の管理するコネクションに属さないので、サーバ20Aは、当該パケット3に対応する再送パケットを生成する。
In step S106,
具体的には、サーバ20Aは、パケット3をカプセル化して再送パケットを生成し、当該再送パケット内の所定フィールド(例えば、SRv6のEnd.DT)を過去の経路情報である経路情報#kを参照するように設定してもよい。ステップS107において、サーバ20Aは、生成された再送パケットを通信制御装置10に送信する。
Specifically,
ステップS108において、通信制御装置10は、過去の経路情報である経路情報#kに基づいて、サーバ20Aから送信された再送パケットの転送先のサーバ20を決定する。具体的には、通信制御装置10は、再送パケット内の所定フィールド(例えば、SRv6のEnd.DT)の値に基づいて、現在の経路情報である経路情報#k+1ではなく、過去の経路情報である経路情報#kを参照することを決定する。
In step S108, the
通信制御装置10は、再送パケットをデカプセル化したパケット3が属するフローと、過去の経路情報である経路情報#kが示す転送先候補のサーバ数N2と、に基づいて、パケット3の転送先としてサーバ20Dを決定する。例えば、図5では、パケット3が属するフローFに関するハッシュ値(Hash(F))が3であり、転送先候補のサーバ数N2は4であり、ハッシュ値のサーバ数N2を用いた剰余演算結果が3となる。このため、通信制御装置10は、当該剰余演算の結果である3で識別されるサーバ20Dに転送先を決定し、決定されたサーバ20Dに対してパケット3を送信する。
The
図4及び5に示す動作によると、同一のフローFに属するパケット1~3が全てサーバ20Dに転送される。このため、ECMPを用いて負荷分散を図る場合に、転送先候補のサーバ数に変更があっても、PCC(Per-Connection Consistency)を実現できる。
According to the operation shown in Figures 4 and 5,
<サーバ20の動作>
図6は、本実施形態に係るサーバ20の動作例を示すフローチャートである。なお、図6は一例にすぎず、不図示のステップが追加されてもよい。
<Operation of
Fig. 6 is a flowchart showing an example of the operation of the
図6に示すように、ステップS201において、サーバ20は、通信制御装置10から転送されたパケットを受信する。ステップS202において、サーバ20は、当該パケットがフローFの最初のパケットであるか否かを判定してもよい。例えば、サーバ20は、当該パケットのSYNフラグに基づいて、当該パケットがフローFの最初のパケットであるか否かを判定してもよい。
As shown in FIG. 6, in step S201, the
ステップ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
一方、ステップ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,
ステップ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
ステップS205において、サーバ20は、ステップS204で生成された再送パケットを通信制御装置10に対して送信する。
In step S205, the
以上のように、本実施形態に係る通信制御システム1によれば、通信制御装置10は、転送先候補のサーバ数の変更が検出された場合、現在の経路情報を過去の経路情報に置き換え、現在の経路情報を変更後の転送先候補を示すように更新するので、転送先候補のサーバ数に変更があっても、PCC(Per-Connection Consistency)を実現できる。したがって、専用の装置のみならず、汎用のハードウェアルータを用いた場合でも、デイジーチェイニング方式でコネクションを維持できる。
As described above, according to the
(その他)
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。
(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
1 通信制御システム
10 通信制御装置
20、20A~20D サーバ
30 端末
40 ネットワーク
11 プロセッサ
12 記憶装置
13 通信装置
14 入出力装置
101 記憶部
102 受信部
103 制御部
104 送信部
201 受信部
202 制御部
203 送信部
1
Claims (5)
前記パケットを受信するように構成される受信部、
前記パケットを送信するように構成される送信部、並びに
制御部、
を備える通信制御装置であって、
前記制御部は、転送先候補のサーバ数の変更を検出した場合に、前記記憶部に記憶されている前記第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の経路情報を更新するように構成され、
前記受信部を通じて端末からパケットを受信した場合に、前記送信部を使用して、前記第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.
前記制御部によって自身の管理するコネクションに前記パケットが属すると判定された場合、前記再送パケットを前記通信制御装置に対して送信せずに、前記パケットを処理する、
請求項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の経路情報に従い、前記端末から受信した前記パケットを第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.
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) |
-
2022
- 2022-09-30 JP JP2022157969A patent/JP2024051680A/en active Pending
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 |