Method for transferring SCTP association in radio access network and electronic device for performing transfer method
Patent Information
- Application Number
- PCT/KR2024/009317
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-12-28
- Filing Date
- 2024-07-02
- Publication Date
- 2025-02-13
Smart Images

Figure KR2024009317_13022025_PF_FP_ABST
Abstract
Description
A method for transferring SCTP connections in a wireless access network and an electronic device for performing the transfer method.
[0001] Embodiments disclosed in this document relate to a method for transferring an SCTP connection in a wireless access network and an electronic device for performing the method for transferring an SCTP connection.
[0002] In a 5G (5th Generation) radio access network (RAN) system, control signal and data signal processing can be performed in a CU (Centralized unit) or DU (Distributed unit) for user data transmission and reception processing.
[0003] The CU can separate and perform the control functions previously handled by the base station in existing 4G, and can generally perform control functions at Layer 3 or higher. The DU can perform L1 to L3 processing functions, convert analog signals received from the RU (Radio Unit) into digital signals, and perform resource management.
[0004] In a virtualized RAN (vRAN) system, a DU or CU (centralized unit) is virtualized into a vDU (virtualized DU) and a vCU (virtualized CU), and when a virtualized radio access network system is used, the RAN can be virtualized by separating each architecture by converting from a vendor and hardware-centric to a software-centric one in the conventional RAN.
[0005] A method for transferring SCTP (Stream Control Transmission Protocol) associations of a plurality of backend servers in a wireless access network system according to one embodiment, the method comprising: obtaining SCTP association information of the plurality of backend servers and status information of the plurality of backend servers from the plurality of backend servers; identifying whether to transfer a first backend server among the plurality of backend servers based on the obtained SCTP association information and status information; identifying at least one second backend server to which to transfer the SCTP association of the first backend server based on the identified need for transfer and the obtained SCTP association information and status information; and distributing the SCTP association of the first backend server to the at least one identified second backend server based on a predetermined distribution criterion.
[0006] A computer-readable recording medium according to one embodiment may include one or more program codes. The one or more program codes, when executed in an electronic device, perform the steps of: obtaining SCTP connection information of the plurality of backend servers and status information of the plurality of backend servers from a plurality of backend servers; identifying whether to transfer to a first backend server among the plurality of backend servers based on the obtained SCTP connection information and status information; identifying at least one second backend server to which to transfer the SCTP connection of the first backend server based on the identified need for transfer and the obtained SCTP connection information and status information; and distributing the SCTP connection of the first backend server to the at least one identified second backend server based on a predetermined distribution criterion.
[0007] An electronic device according to one embodiment of the present disclosure may include a memory storing one or more instructions; and at least one processor executing one or more instructions stored in the memory. The at least one processor may obtain SCTP connection information of the plurality of backend servers and status information of the plurality of backend servers from the plurality of backend servers. The at least one processor may identify whether a transfer is necessary for a first backend server among the plurality of backend servers based on the obtained SCTP connection information and status information. The at least one processor may identify at least one second backend server to which the SCTP connection of the first backend server will be transferred based on the identified need for transfer and the obtained SCTP connection information and status information. The at least one processor may distribute the SCTP connection of the first backend server to the at least one identified second backend server based on a predetermined distribution criterion.
[0008] FIG. 1 illustrates an SCTP connection relationship between a client and a backend server according to one embodiment of the present disclosure.
[0009] FIG. 2 illustrates a transfer electronic device of an SCTP connection between a client, a network, and a client and a backend server according to one embodiment of the present disclosure.
[0010] FIG. 3 illustrates a transfer electronic device of an SCTP connection between a client, a network, and a client and a backend server according to one embodiment of the present disclosure.
[0011] FIG. 4 illustrates a transfer procedure of an SCTP connection according to one embodiment of the present disclosure.
[0012] FIG. 5 illustrates a case where the transfer electronics of the SCTP connection between the client, the network, and the client and the backend server are located within a load balancer according to one embodiment of the present disclosure.
[0013] FIG. 6 illustrates a case where the transfer electronics of the SCTP connection between the client, the network, and the client and the backend server according to one embodiment of the present disclosure are located with separate functions in the load balancer and the backend server.
[0014] FIG. 7 is a flowchart illustrating a method for transferring an SCTP connection according to one embodiment of the present disclosure.
[0015] FIG. 8 illustrates a transfer electronic device of an SCTP connection according to one embodiment of the present disclosure.
[0016] In this disclosure, the expression “at least one of a, b or c” may refer to “a”, “b”, “c”, “a and b”, “a and c”, “b and c”, “all of a, b and c”, or variations thereof.
[0017] The terms used in this disclosure are selected from widely used, common terms, taking into account the functions of the disclosure. However, these terms may vary depending on the intentions of those skilled in the art, precedents, the emergence of new technologies, etc. Furthermore, in certain cases, terms may be arbitrarily selected by the applicant, in which case their meanings will be described in detail in the relevant description. Therefore, the terms used in this disclosure should not be defined simply as names, but rather based on the meanings of the terms and the overall content of the disclosure.
[0018] Singular expressions may include plural expressions unless the context clearly indicates otherwise. Terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person of ordinary skill in the art described herein. Furthermore, terms containing ordinal numbers, such as "first" or "second," used herein may be used to describe various components, but such components should not be limited by such terms. Such terms are used solely to distinguish one component from another.
[0019] When a part of the specification is said to "include" a component, unless otherwise specifically stated, this does not exclude other components but rather implies the inclusion of other components. Furthermore, terms such as "part" and "module" used in the specification refer to a unit that processes at least one function or operation, which may be implemented in hardware, software, or a combination of hardware and software.
[0020] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the attached drawings so that those skilled in the art can easily practice the present disclosure. However, the present disclosure may be implemented in various different forms and is not limited to the embodiments described herein. In addition, in the drawings, parts that are not related to the description are omitted to clearly explain the present disclosure, and similar parts are designated with similar reference numerals throughout the specification. In addition, the reference numerals used in each drawing are only for the purpose of describing each drawing, and different reference numerals used in different drawings do not indicate different elements.
[0021] Throughout the specification, when a part is said to be "connected" to another part, this includes not only "directly connected" or "physically connected," but also "electrically connected" with another element in between. In this disclosure, the terms "transmit," "receive," and "communicate" include both direct and indirect communication. Furthermore, when a part is said to "include" or "comprise" a component, this does not exclude other components, but rather includes other components, unless otherwise specifically stated.
[0022] Throughout this disclosure, unless specifically stated otherwise, “or” is inclusive and not exclusive. Thus, unless explicitly indicated otherwise or the context dictates otherwise, “A or B” can mean “A, B, or both.” Throughout this disclosure, the phrases “at least one of” or “one or more of” can indicate that different combinations of one or more of the listed items may be used, or that only any one of the listed items is required. For example, “at least one of A, B, and C” can include any of the following combinations: A, B, C, A and B, A and C, B and C, or A and B and C.
[0023] In one embodiment of the present disclosure, "connection relationship" may include the meaning of "connection relationship," "inclusion relationship," "attachment relationship," or "matching relationship." For example, "connected" may include the meaning of "connected," "inclusion," "attachment," or "matched." In one embodiment of the present disclosure, "connection" may include the meaning of data communication being possible, either wired or wireless. For example, "A and B are connected" may include the meaning that A and B are capable of data communication, i.e., can transmit and receive data with each other.
[0024] A "controller" can refer to any device, system, or part thereof that controls at least one operation. A controller can be implemented in hardware, a combination of hardware and software, or firmware. The functions associated with a particular controller can be centralized or distributed, localized or remote.
[0025] In the present disclosure, SCTP (Stream Control Transmission Protocol) is a part of the Internet protocol, and may be a protocol that provides reliable and message-oriented communication by combining the functions of TCP (Transmission Control Protocol) and UDP (User Datagram Protocol).
[0026] In this disclosure, the term "SCTP association" may refer to a connection between a client and a server that enables communication using SCTP. For example, if a client and a server are connected via SCTP, the client and server can communicate and exchange data via SCTP.
[0027] In this disclosure, the term "migration" may refer to the transfer of an SCTP connection between a client and a server to an SCTP connection between the client and another server. Furthermore, the term "migration" may be used interchangeably with or in conjunction with the terms "transfer," "migration," and "transition."
[0028] In this disclosure, the term "source server" may refer to a target server to which an SCTP connection must be transferred due to a problem with the server. For example, a source backend server may refer to a backend server that is experiencing a problem among the backend servers and to which the SCTP connection of that server is to be transferred.
[0029] In the present disclosure, the term "target server" may refer to a target server to which an SCTP connection is transferred from a source server. For example, a target backend server may refer to a backend server among backend servers to which an SCTP connection of the source backend server is transferred from a source backend server.
[0030] In this disclosure, the term "providing a service" may refer to a server performing tasks (or operations) requested by a client, such as data processing, information retrieval, or transaction processing. By performing the operations requested by SCTP-connected clients and thereby providing services, the server may refer to providing high-performance services to clients via a stable and efficient network protocol.
[0031] FIG. 1 illustrates an SCTP connection relationship between a client and a backend server according to one embodiment of the present disclosure.
[0032] Referring to FIG. 1, a load balancer (100) can manage SCTP connections between multiple clients including client 1 (210) to client N (230) and backend servers 1 (310) to backend servers N (330). In one embodiment, the load balancer (100) is a device or software that is responsible for distributing traffic in an Internet service or an internal network, and can perform the role of evenly distributing requests to multiple servers so as not to overload a server or database system.
[0033] In the present disclosure, data processing may be performed by one SCTP connection on one backend server, or data processing may be performed by thousands or tens of thousands of SCTP connections on one backend server.
[0034] In one embodiment, the plurality of clients (210, 220, ... , 230) may be any device or application capable of communicating with the plurality of backend servers (310, 320, ... , 330) and may perform a role of requesting services or data. For example, the plurality of clients (210, 220, ... , 230) may include at least one of a virtualized Distributed Unit (vDU), an Access and Mobility Management Function (AMP), an evolved NodeB (eNB), a Next-Generation NodeB (gNB), and a virtualized Centralized Unit-User Plane (vCU-UP).
[0035] Although the present disclosure describes vDU and vCU-UP assuming a v-RAN in which all components are virtualized, at least one client may include a non-virtualized Distributed Unit (DU) and a non-virtualized Centralized Unit-User Plane (CU-UP). Furthermore, at least one client may include a device defined in 3GPP standard documents that requests services and data from multiple backend servers (310, 320, ..., 330).
[0036] According to one embodiment, multiple backend servers (310, 320, ..., 330) can perform the functions of a call processing module. For example, multiple backend servers (310, 320, ..., 330) can receive packets and process various services including communication connection management, communication service provision, quality management, and error and abnormal situation management.
[0037] In one embodiment, a local area network (400) may include a load balancer (100) and a plurality of backend servers (310, 320, ..., 330). In the present disclosure, for convenience of explanation, the load balancer (100) is described as being included within the local area network (400), but the location of the load balancer (100) is not limited thereto. For example, the load balancer (100) may be located outside the local area network (400), and only a portion of the load balancer (100) may be located within the local area network (400). For example, only interface 2 (130) of the load balancer (100) may be located within the local area network (400), and the database (110) and interface 1 (120) of the load balancer (100) may be located outside the local area network (400).
[0038] In one embodiment of the present disclosure, the load balancer (100) may include a database (110), an interface 1 (120), and an interface 2 (130). In one embodiment, the load balancer (100) may receive connection requests from a plurality of clients (200) and distribute the connections to a plurality of backend servers (310, 320, ... , 330), thereby creating or maintaining connections between a plurality of clients (210, 220, ... , 230) and a plurality of backend servers (310, 320, ... , 330).
[0039] According to one embodiment, a database (110) can store information on which of a plurality of backend servers (310, 320, ..., 330) performs data processing through the SCTP connection, and NAT (Network Address Translation) information related to the connection.
[0040] In one embodiment, NAT is a networking technology that translates Internet Protocol (IP) addresses into different IP addresses, allowing multiple local network devices to share a single public IP address and connect. NAT can be used to conserve IP addresses, ensure security and privacy, and manage networks.
[0041] In one embodiment, IPs used within the local network (400) may all be recognized as the IP of interface 1 (120) of the load balancer (100) from outside the local network (400). Accordingly, multiple clients (210, 220, ..., 230) may not know which backend server they are SCTP-connected to, and may recognize that they are SCTP-connected to the IP of interface 1 (120).
[0042] Below, the source IP and target IP of a packet are described when client 1 (210) and backend server 1 (310) establish an SCTP connection.
[0043] The load balancer (100) can NAT the target IP of packets received from client 1 (210) through interface 1 (120) to the IP of backend server 1 (310) and transmit the received packets to backend server 1 (310). Here, the source IP of the packets received by backend server 1 (310) may be the IP of client 1 (210) that transmitted the received packets. In addition, the packets transmitted by backend server 1 (310) to the SCTP-connected client may be NAT-processed as they pass through the load balancer (100), and the source IP of the packets may be converted from the IP of backend server 1 (310) to the IP of interface 1 (120) and transmitted to client 1 (210).
[0044] In this case, since the SCTP connection status can be determined based on the IP of the packet, client 1 (210) can be determined to be SCTP connected to interface 1 (120) of load balancer (100), and backend server 1 (310) can be determined to be SCTP connected to client 1 (210). In one embodiment, load balancer (100) can perform the role of creating and managing SCTP connections between multiple clients (210, 220, ..., 230) and multiple backend servers (310, 320, ..., 330) from packet transmission and reception operations of interface 1 (120) and interface 2 (130) using database (110).
[0045] In the above network connection structure, if a problem occurs or an overload occurs in a specific backend server among multiple backend servers (310, 320, ..., 330) and it becomes difficult for the backend server to provide a service through an SCTP connection, it may be necessary to transfer the SCTP connection serviced by the server to another backend server.
[0046] If the network devices performing the SCTP connection transfer communicate directly with each other, additional traffic may be generated to coordinate the SCTP connection transfer, which can be time-consuming. Furthermore, if the transfer requires thousands or tens of thousands of SCTP connections from a backend server, network overload may occur.
[0047] Therefore, a method is needed to perform the transfer of a large number of SCTP connections at once and in a short period of time.
[0048] FIG. 2 illustrates a transfer electronic device of an SCTP connection between a client, a network, and a client and a backend server according to one embodiment of the present disclosure.
[0049] In explaining Fig. 2, any explanation that overlaps with the explanation given above in Fig. 1 may be omitted.
[0050] Referring to FIG. 2, a plurality of clients (210, 220, ..., 230) are connected to a load balancer (100) and can perform data communication with a plurality of backend servers (310, 320, 330, 340) included in a local network (400) via SCTP connection. In the present disclosure, for the convenience of explanation, the load balancer (100) is described as being included within the local network (400), but the location of the load balancer (100) is not limited thereto. For example, the load balancer (100) may be located outside the local network (400), or only a portion of the load balancer (100) may be located within the local network (400). For example, only interface 2 (130) of the load balancer (100) may be located inside the local network (400), and the database (110) and interface 1 (120) of the load balancer (100) may be located outside the local network (400).
[0051] In one embodiment, a plurality of clients (210, 220, ..., 230), a load balancer (100) and a plurality of backend servers (310, 320, 330, 340) may perform the functions and roles described above in FIG. 1.
[0052] An electronic device according to one embodiment of the present disclosure may include a transfer manager (410) and a backend controller (420). For convenience of explanation, FIG. 2 illustrates that the transfer manager (410) is located in the load balancer (100) and the backend controller (420) is located within the local network (400), but this is not limited thereto. For example, the electronic device including the transfer manager (410) and the backend controller (420) may be located as a separate device outside the load balancer (100).
[0053] In one embodiment of the present disclosure, the backend controller (420) may receive status information of the backend servers, including at least one of SCTP connection status information, CPU usage information, memory usage information, an abnormal status of the backend servers, and whether the backend servers are faulty, from backend server 1 (310), backend server 2 (320), backend server 3 (330), and backend server 4 (340). For example, the information received by the backend controller (420) may be received periodically or aperiodically.
[0054] In one embodiment of the present disclosure, the backend controller (420) may determine whether to transfer to backend server 4 (340) among the plurality of backend servers (310, 320, 330, 340) based on the status information of the plurality of backend servers (310, 320, 330, 340) received.
[0055] For example, the backend controller (420) can identify an SCTP connection transfer situation including a case where the backend server 4 (340) has a problem and cannot provide services to clients, needs to be terminated and restarted, needs repairs and is judged to be unusable for a long period of time, or has traffic exceeding a predetermined standard traffic amount generated on the backend server 4 (340), and determine the backend server 4 (340) as the first server, which is the source backend server of the SCTP connection transfer.
[0056] In the present disclosure, a source backend server may include a backend server that is temporarily or permanently out of operation due to a problem, and to which SCTP connections are transferred. In other words, the source backend server may include a backend server that originally has an SCTP connection, but transfers the SCTP connection to another backend server. A source backend server is a device that performs the above-described role, and is not limited to the term.
[0057] A backend controller (420) according to one embodiment of the present disclosure may transmit a service interruption command for an SCTP-connected client to backend server 4 (340), which is a source server. In addition, the backend controller (420) may transmit to the transfer manager (410) status information of backend server 4 (340), status information of backend server 1 (310), status information of backend server 2 (320), status information of backend server 3 (330), and information indicating that backend server 4 (340) is identified as a source backend server.
[0058] In one embodiment of the present disclosure, the transfer manager (410) can identify a target backend server to which the SCTP connection of backend server 4 (340) will be transferred based on information received from the backend controller (420). For example, the transfer manager (410) can identify (or determine, select, or set) a target backend server to which the SCTP connection of backend server 4 (340) will be transferred based on information about CPU usage, memory usage, and traffic volume of backend server 1 (310), backend server 2 (320), and backend server 3 (330) according to a load balancing algorithm. Here, the target backend server can be one or two or more.
[0059] In one embodiment, the target backend server is a server to which SCTP connections are transferred from the source backend server, and may include the backend server to which the SCTP connections are transferred. In other words, the target backend server may include the backend server to which the SCTP connections held by the source backend server are transferred from the source backend server. The target backend server is a device that performs the above-described role and is not limited to the term.
[0060] In one embodiment, the load balancing algorithm may include at least one of a random algorithm, a hashing algorithm, a round-robin algorithm, a least connections algorithm, and a resource-based algorithm (e.g., an algorithm based on CPU usage or memory usage). A known load balancing algorithm may also be used. For example, a known load balancing algorithm may be an algorithm that distributes traffic based on information about the amount of traffic allocated to each backend server.
[0061] In one embodiment, the transfer manager (410) can distribute the load by using the number of SCTP connections connected to each backend server. For example, if the information that the transfer manager (410) receives from the backend controller (420) is the number of SCTP connections of each backend server, and the number of SCTP connections of backend server 1 (310) is 5000, the number of SCTP connections of backend server 2 (320) is 5000, and the number of SCTP connections of backend server 3 (330) is 2000, the transfer manager (410) can identify backend server 3 (330) with the smallest number of SCTP connections as the second backend server, which is the target backend server.
[0062] In one embodiment, the transfer manager (410) can distribute the load by utilizing the CPU usage of each backend server. For example, if the information received by the transfer manager (410) from the backend controller (420) is the CPU usage of each backend server, and the CPU usage of backend server 1 (310) is 5%, the CPU usage of backend server 2 (320) is 4%, and the CPU usage of backend server 3 (330) is 2%, the transfer manager (410) can identify (or determine, select, or set) backend server 3 (330) with the lowest CPU usage as the second backend server, which is the target backend server.
[0063] For convenience of explanation, the transfer manager (410) has been described as using only one piece of status information to identify a target backend server, but this is not limited thereto. For example, the transfer manager (410) can identify (or determine, select, or set) a target backend server by considering both the number of SCTP connections and CPU usage. For example, the transfer manager (410) can identify (or determine, select, or set) a backend server by assigning a priority or weight to each piece of information.
[0064] For example, if the information received by the transfer manager (410) from the backend controller (420) is the number of SCTP connections of each backend server and the CPU usage of each backend server, and there is a backend server whose CPU usage is less than 3%, the transfer manager (410) can identify (or determine, select, set) the backend server as the target backend server regardless of the number of SCTP connections of the backend server.
[0065] For example, if the CPU usage of backend server 1 (310) is 5%, the number of SCTP connections of backend server 1 (310) is 1000, the CPU usage of backend server 2 (320) is 4%, the number of SCTP connections of backend server 2 (320) is 1000, and the CPU usage of backend server 3 (330) is 1%, and the number of SCTP connections of backend server 3 (330) is 3000, then the transfer manager (410) can identify (or determine, select, set) backend server 3 (330) with the largest number of SCTP connections but the lowest CPU usage as the target backend server.
[0066] In one embodiment, when the transfer manager (410) identifies backend server 3 (330) as the target backend server, the transfer manager (410) can perform SCTP transfer by transmitting an SCTP transfer start (or SCTP transfer INIT) message to backend server 3 (330).
[0067] In addition, the transfer manager (410) according to one embodiment can identify (or determine, select, or set) a restarted SCTP connection and update the SCTP connection and SCTP connection-related NAT information stored in the database (110) with the transferred SCTP connection status. For example, when an SCTP connection start message stored in the database (110) of the load balancer (100) occurs, the transfer manager (410) can recognize the SCTP transfer start message as a SCTP connection restart message and update all SCTP connections and SCTP connection-related NAT information stored in the database (110).
[0068] Here, the SCTP connection start message may be a message notifying that the SCTP connection between the client and backend server 3 (330) has started after the transfer of the SCTP connection of backend server 3 (330) is completed.
[0069] In one embodiment, the transferred SCTP connection can be restarted after an SCTP connection start message and an SCTP connection start response message are exchanged between a client and backend server 3 (330) that had established an SCTP connection with backend server 4 (340). The transfer manager (410) recognizes (or identifies) when the SCTP connection start message or the SCTP INIT message is delivered to the database (110) of the load balancer (100) as when the SCTP connection has been restarted, and from this time on, updates the SCTP connection and NAT information related to the SCTP connection in the database (110).
[0070] In Fig. 2, an example is described in which the transfer manager (410) identifies one target backend server, but the number of target backend servers identified by the transfer manager (410) may be two or more.
[0071] Below, we will explain using an example where there are two or more target backend servers.
[0072] FIG. 3 illustrates a transfer electronic device of an SCTP connection between a client, a network, and a client and a backend server according to one embodiment of the present disclosure.
[0073] In explaining Fig. 3, any explanation that overlaps with the explanation given above in either Fig. 1 or Fig. 3 may be omitted.
[0074] Referring to FIG. 3, a plurality of clients (210, 220, ..., 230) are connected to a load balancer (100) and can perform data communication with a plurality of backend servers (310, 320, 330, 340) included in a local network (400) via SCTP connection. In the present disclosure, for convenience of explanation, the load balancer (100) is described as being included within the local network (400), but the location of the load balancer (100) is not limited thereto. For example, the load balancer (100) may be located outside the local network (400), or only a portion of the load balancer (100) may be located within the local network (400). For example, only interface 2 (130) of the load balancer (100) may be located inside the local network (400), and the database (110) and interface 1 (120) of the load balancer (100) may be located outside the local network (400).
[0075] Multiple clients (210, 220, ... , 230), a load balancer (100) and multiple backend servers (310, 320, 330, 340) can perform the functions and roles described above in FIG. 1.
[0076] In one embodiment, the electronic device may include a transfer manager (410) and a backend controller (420). For convenience of explanation, FIG. 3 illustrates that the transfer manager (410) is located within the load balancer (100) and the backend controller (420) is located within the local network (400), but this is not limited thereto. For example, the electronic device including the transfer manager (410) and the backend controller (420) may be located as a separate device outside the load balancer (100).
[0077] In one embodiment, the backend controller (420) may receive status information of each backend server from multiple backend servers (310, 320, 330, 340) as described above in FIG. 2, and identify a source backend server to be transferred. In addition, the backend controller (420) may transmit information about the identified source backend server and status information of the received backend server to the transfer manager (410).
[0078] For example, the transfer manager (410) according to one embodiment may select multiple target backend servers to which the SCTP connection will be transferred. For example, the transfer manager (410) may select backend server 2 (320) and backend server 3 (330) as target backend servers based on status information of the backend servers.
[0079] In one embodiment, the transfer manager (410) can divide the SCTP connection of the backend server 4 (340), which is the source backend server, into multiple sets and transfer the divided SCTP sets to the target backend server to which the SCTP connection is to be transferred.
[0080] According to one embodiment, the transfer manager (410) can distribute the load by using the number of SCTP connections connected to each backend server. For example, assume that the information received by the transfer manager (410) from the backend controller (420) is the number of SCTP connections of each backend server, and the number of SCTP connections of backend server 1 (310) is 5000, the number of SCTP connections of backend server 2 (320) is 3000, the number of SCTP connections of backend server 3 (330) is 2000, and the number of SCTP connections of source backend server 4 (340) is 5000. In this case, the transfer manager (410) can identify backend server 2 (320) and backend server 3 (330), which have relatively small numbers of SCTP connections, as the second backend server, which is the target backend server.
[0081] In this case, the transfer manager (410) can divide 3,000 SCTP connections out of 5,000 SCTP connections of backend server 4 (340), which is the source backend server, into a first set and 2,000 SCTP connections into a second set, distribute the SCTP connections of the first set to backend server 3 (330), and distribute the SCTP connections of the second set to backend server 2 (320). When the distribution of the SCTP connections of the source backend server 4 (340) to the target backend server is completed, the SCTP connections of backend server 1 (310), backend server 2 (320), and backend server 3 (330) can be distributed to 5,000 SCTP connections each so that no SCTP connection is concentrated on any one backend server.
[0082] In one embodiment, the transfer manager (410) can distribute the load by utilizing the CPU usage of each backend server. For example, if the information received by the transfer manager (410) from the backend controller (420) is the CPU usage of each backend server, and the CPU usage of backend server 1 (310) is 5%, the CPU usage of backend server 2 (320) is 4%, and the CPU usage of backend server 3 (330) is 2%, the transfer manager (410) can identify backend server 2 (320) and backend server 3 (330) as the target backend servers in descending order of CPU usage.
[0083] In this case, the transfer manager (410) can divide the SCTP connection of the backend server 4 (340), which is the source backend server, into multiple sets and transfer the divided SCTP sets to the target backend server to which the SCTP connection will be transferred.
[0084] For convenience of explanation, the transfer manager (410) has been described as using only one piece of status information to identify a target backend server, but this is not limited thereto. For example, the transfer manager (410) can also identify (or determine, select, or set) a target backend server by considering both the number of SCTP connections and CPU usage. For example, the transfer manager (410) can identify (or determine, select, or set) a backend server by assigning a priority or weight to each piece of information.
[0085] For example, if the information received by the transfer manager (410) from the backend controller (420) is the number of SCTP connections of each backend server and the CPU usage of each backend server, and there is a backend server whose CPU usage is less than 3%, the transfer manager (410) can identify (or determine, select, set) the backend server as the target backend server regardless of the number of SCTP connections of the backend server.
[0086] For example, if the CPU usage of backend server 1 (310) is 5%, the number of SCTP connections of backend server 1 (310) is 1000, the CPU usage of backend server 2 (320) is 2%, the number of SCTP connections of backend server 2 (320) is 2000, and the CPU usage of backend server 3 (330) is 1%, and the number of SCTP connections of backend server 3 (330) is 3000, then the transfer manager (410) can identify (or determine, select, set) backend server 2 (320) and backend server 3 (330), which have relatively large numbers of SCTP connections but less than 3% of CPU usage, as target backend servers.
[0087] FIG. 4 illustrates a transfer procedure of an SCTP connection according to one embodiment of the present disclosure.
[0088] In explaining Fig. 4, any explanation that overlaps with the explanation given above in any one of Figs. 1 to 3 may be omitted.
[0089] Referring to FIG. 4, the backend controller (420) can perform a function (or, task, role, action, action) including three functions (or, task, role, action, action).
[0090] For example, the first function (or BC (Backend Controller)-1) of the backend controller (420) may include a function of acquiring (or receiving) SCTP connection information or status information of each backend server from a plurality of backend servers including a source backend server (430) and a target backend server (440).
[0091] For example, the second function (or BC-2) of the backend controller (420) may include a function of identifying (or determining, selecting, or discovering) a target backend server (440) based on SCTP connection information or status information of each backend server received from a plurality of backend servers including a source backend server (430) and a target backend server (440), and suspending a service (or data communication) with a SCTP-connected client to the target backend server (440).
[0092] For example, SCTP connection information may include the number of SCTP connections for each backend server, IP address information for each backend server, port number information, SCTP configuration setting information, security setting information, and system resource information.
[0093] For example, the third function (or BC-3) of the backend controller (420) may include a function to transmit information related to the target backend server (440) and the source backend server (430) to the transfer manager (410) so that the transfer manager (410) performs an operation to transfer the SCTP connection.
[0094] The functions of BC-1, BC-2 and BC-3 of the backend controller (420) are not limited to the names, and may represent actions or functions that can perform each function.
[0095] In one embodiment of the present disclosure, the transfer manager (410) can perform a function (or task, role, action, behavior) that includes two functions (or tasks, roles, actions, behaviors).
[0096] For example, the first function (or MM (Migration Manager)-1) of the migration manager (410) may include a function of receiving information on a source backend server (430) and a target backend server (440) from a backend controller (420), and identifying (or determining, judging) the target backend server (440) and SCTP connection set information to be transferred to the target backend server (440) based on the information on the source backend server (430) and the target backend server (440).
[0097] For example, the second function (or MM-2) of the transfer manager (410) may include a function to report an INIT message for an SCTP connection existing within the database (110) of the load balancer (100) as a restart process performed on the target backend server (440) and update the SCTP connection information within the database (110) and the NAT information related to the SCTP connection.
[0098] The functions of MM-1 and MM-2 of the transfer manager (410) are not limited to the names, and may represent actions or functions that can perform each function.
[0099] In one embodiment of the present disclosure, a plurality of backend servers including a target backend server (440) and a source backend server (430) may perform a BC-1 function of transmitting (401) SCTP connection information and status information of each backend server to a backend controller (420).
[0100] In one embodiment of the present disclosure, the backend controller (420) can perform a BC-1 function to identify (or determine) whether to transfer an SCTP connection based on the SCTP connection information or status information of each backend server received, and can identify (or determine, select, choose) a source backend server (430) and a target backend server (440) among a plurality of backend servers.
[0101] For example, the status information may include at least one of CPU usage information of multiple backend servers, memory usage information of multiple backend servers, traffic volume information of multiple backend servers, and whether multiple backend servers are faulty. The backend controller (420) may identify (or recognize, determine) that a problem has occurred in a backend server among the multiple backend servers whose CPU usage exceeds a predetermined standard, and may identify (or determine, judge) the corresponding backend server as a source backend server (430).
[0102] In one embodiment of the present disclosure, the backend controller (420) can periodically or aperiodically identify (or determine, judge) the status of all backend servers.
[0103] For example, the backend controller (420) can receive SCTP connection information or status information periodically or aperiodically from a plurality of backend servers, and accordingly, can identify (or determine) whether to transfer the SCTP connection based on the SCTP connection information or status information of each received backend server, and can identify (or determine, select, choose) a source backend server (430) from among the plurality of backend servers.
[0104] For example, SCTP connection information may include the number of SCTP connections for each backend server, IP address information for each backend server, port number information, SCTP configuration setting information, security setting information, and system resource information.
[0105] For example, if the backend controller (420) determines that no abnormalities occur in any of the backend servers or that excessive traffic or resources are not concentrated on a small number of backend servers through the SCTP connection information or status information received by each backend server, the backend controller (420) may not perform any additional actions. In this case, the backend controller (420) may again receive SCTP connection information or status information from multiple backend servers periodically or aperiodically, and may identify (or determine, judge) whether to transfer the SCTP connection each time it receives it.
[0106] In one embodiment of the present disclosure, the backend controller (420) may transmit (402) a service stop message to the identified source backend server (430). For example, if the identified source backend server (430) has failed or is determined to require transfer of the SCTP connection due to excessive load, the backend controller (420) may perform a BC-2 function of transmitting (402) a service stop message to the identified source backend server (430) to stop providing service to SCTP connected clients.
[0107] A source backend server (430) that receives a service stop message from a backend controller (420) may stop services provided to SCTP-connected clients. For example, after receiving a service stop message, the source backend server (430) may not perform operations (or tasks) requested by SCTP-connected clients, including data processing, information processing, and transaction processing.
[0108] In one embodiment of the present disclosure, the backend controller (420) may perform a BC-3 function of transmitting (403) to the transfer manager (410) a message indicating that an SCTP connection needs to be transferred and a message including information required for the transfer of the SCTP connection. For example, the message indicating that an SCTP connection needs to be transferred may be an SCTP connection transfer required message generated depending on whether an SCTP connection needs to be transferred as identified by the backend controller (420). For example, the information required for the transfer of the SCTP connection may include IP address information, port number information, SCTP configuration setting information, security setting information, and system resource information of the source backend server (430) that had the existing SCTP connection, depending on the SCTP connection transfer. However, the information required for the transfer of the SCTP connection is not limited thereto. It may further include information that may be determined to be required for the transfer of the SCTP connection.
[0109] In one embodiment of the present disclosure, the transfer manager (410), which receives the SCTP connection transfer requirement and SCTP connection transfer information messages from the backend controller (420), can identify (or calculate, compute, determine, or select) a transfer method based on distribution criteria for transferring SCTP connections to other servers. For example, the distribution criteria identified by the transfer manager (410) can include at least one of random, hashing, a round-robin algorithm, a least connections algorithm, and a resource-based algorithm.
[0110] Additionally, in one embodiment of the present disclosure, the transfer manager (410) may identify (or select, determine) at least one target backend server (440) based on the received SCTP connection transfer required and SCTP connection transfer information messages. Here, the identified at least one target backend server (440) may be one backend server or multiple backend servers. For example, the number of target backend servers (440) may be identified (or determined, selected, or chosen) by the backend controller (420) or may be a predetermined number.
[0111] In one embodiment, the transfer manager (410) may divide (or segment) an SCTP connection into at least one SCTP connection set. For example, the SCTP connection of the source backend server (430) may be identified (or determined, selected, or chosen) based on the status information of all target backend servers (440). For example, if there are 4,000 SCTP connections of the source backend server (430), and 4 target backend servers (440) are identified and are identified to distribute the SCTP connections evenly, the transfer manager (410) may distribute 1,000 SCTP connections of the source backend server (430) to each target backend server (440) out of the 4,000 SCTP connections.
[0112] In one embodiment of the present disclosure, the transfer manager (410) that receives the SCTP connection transfer required and SCTP connection transfer information messages from the backend controller (420) may perform an MM-1 function of transmitting (or sending) an SCTP connection transfer start message to the identified target backend server (440).
[0113] For example, the SCTP connection transfer start message transmitted by the transfer manager (410) may include essential information and protocol components for SCTP connection transfer. The SCTP connection transfer start message may include at least one of the SCTP connection set information identified by the transfer manager, current SCTP connection status information, identifier (e.g., IP address or port number) information of the source backend server (430), which is an existing backend server, identifier (e.g., IP address or port number) information of the target backend server (440), configuration information of connection parameters, security information, session and transaction information, and transfer request timestamp information.
[0114] In one embodiment of the present disclosure, a target backend server (440) that receives an SCTP connection transfer start message may receive an SCTP connection transfer start message from a transfer manager (410) and perform an operation of starting transfer of an SCTP connection in response.
[0115] For example, each target backend server (440) that receives an SCTP connection transfer start message can transmit (405) an SCTP connection start message (or SCTP INIT message) to all connected clients for the received SCTP connection set. More specifically, each target backend server (440) can transmit an SCTP connection start message for the SCTP connection set to the load balancer (100) of FIG. 2, and the load balancer (100) that receives the SCTP connection start message can transmit the SCTP connection start message to the client that is attempting to perform an SCTP connection with the target backend server (440). The load balancer (100) can transmit the SCTP connection start message to the client (200) that is attempting to perform an SCTP connection with the target backend server (440) by using the database (110) of the load balancer (100).
[0116] When the client (200) receives an SCTP connection start message, an SCTP connection can be created between the receiving client (200) and the target backend server (440).
[0117] In one embodiment of the present disclosure, when the transfer manager (410) recognizes the SCTP connection start message of the target backend server (440), it can recognize the SCTP connection start message as a restart message. In addition, the transfer manager (410) can transmit an update (406) message to the database (110) of the load balancer (100) based on the recognized restart message. For example, the transfer manager (410) can update all SCTP connection information and NAT information related to the SCTP connection stored in the database (110) from the information of the source backend server (430) to the information of the target backend server (440).
[0118] In one embodiment of the present disclosure, a client (200) that has received an SCTP connection start message can transmit (407) an ACK message (or response message) of SCTP connection start to the target backend server (440) in response to the SCTP connection start message. When the target backend server (440) receives the ACK message of SCTP connection start, the process of transferring the SCTP connection of the source backend server (430) to the target backend server (440) is completely completed, and data communication between the client (200) and the target backend server (440) can be performed according to the transferred SCTP connection relationship. For example, the target backend server (440) can receive a data processing request from the client (200) and perform an operation of processing the corresponding data.
[0119] In one embodiment of the present disclosure, the transfer manager (410) can discard packets received via a conventional SCTP connection. Accordingly, the transfer manager (410) can reduce unnecessary traffic that may be processed on the internal network.
[0120] As described above, when a large number of SCTP connections from a source backend server (430) need to be transferred to a target backend server (440) by the BC-1, BC-2, BC-3, MM-1 and MM-2 operations of the transfer manager (410) and the backend controller (420), the large number of SCTP connections can be transferred quickly and efficiently.
[0121] In FIGS. 2 to 4, a case in which the transfer manager (410) exists within the load balancer (100) and the backend controller (420) exists outside the load balancer (100) is described as an example. In the following FIGS. 5 and 6, a case in which the transfer manager (410) and the backend controller (420) are located in the load balancer (100), or a part of the functions of the transfer manager (410) and the backend controller (420) exist in the backend server and another part of the functions of the transfer manager (410) are performed in the load balancer (100) is described.
[0122] FIG. 5 illustrates an embodiment of the present disclosure where the transfer electronics of the SCTP connection between the client, the network, and the client and the backend server reside within a load balancer.
[0123] In explaining Fig. 5, any explanation that overlaps with the explanation given above in any one of Figs. 1 to 4 may be omitted.
[0124] Referring to FIG. 5, a plurality of clients (210, 220, ..., 230) are connected to a load balancer (100) and can perform data communication with a plurality of backend servers (310, 320, 330, 340) included in a local network (400) via SCTP connection. In the present disclosure, for the convenience of explanation, the load balancer (100) is described as being included within the local network (400), but the location of the load balancer (100) is not limited thereto. For example, the load balancer (100) may be located outside the local network (400), or only a portion of the load balancer (100) may be located within the local network (400). For example, only interface 2 (130) of the load balancer (100) may be located inside the local network (400), and the database (110) and interface 1 (120) of the load balancer (100) may be located outside the local network (400).
[0125] A backend controller (420) according to one embodiment of the present disclosure may perform a BC-1 function (or operation) of receiving status information of a backend server, including at least one of SCTP connection status information, CPU usage information, memory usage information, an abnormal status of a backend server, and a failure of a backend server, from backend server 1 (310), backend server 2 (320), backend server 3 (330), and backend server 4 (340). For example, the status information of the backend server received by the backend controller (420) may be received periodically or aperiodically.
[0126] For example, backend server 1 (310), backend server 2 (320), backend server 3 (330), and backend server 4 (340) can transmit status information of each backend server through interface 2 (130) of load balancer (100), and status information of each backend server can be transmitted to backend controller (420). This is not limited thereto. For example, status information of each backend server can be transmitted to backend controller (420) through another interface of load balancer (100).
[0127] In one embodiment of the present disclosure, backend server 1 (310), backend server 2 (320), backend server 3 (330), and backend server 4 (340) can each perform a BC-2 function that commands to stop services provided to SCTP connected clients when a failure occurs, memory usage exceeding a predetermined standard is detected, or an environment in which the servers cannot operate occurs.
[0128] Accordingly, when a problem occurs, each backend server can detect the problem, suspend the service, and transmit SCTP connection transfer information to the backend controller (420) of the load balancer (100) so that a transfer operation can be performed in which its SCTP connection can be transferred. Specifically, when a problem occurs in backend server 4 (340) and it cannot provide service to the client, or it needs to be restarted after termination, or it is determined that it cannot be used long-term because it needs repair, or when traffic exceeding a predetermined standard traffic occurs in backend server 4 (340), the abnormal status of backend server 4 (340) can be transmitted to the backend controller (420) of the load balancer (100). In this case, the backend controller (420) may not separately identify (or determine, select, choose) the source backend server to which the SCTP connection is transferred.
[0129] In one embodiment of the present disclosure, the backend controller (420) can perform a BC-3 function of transmitting status information of backend server 4 (340), which is a source backend server, and other backend servers 1 (310), 2 (320), and 3 (330) to the transfer manager (410).
[0130] According to one embodiment of the present disclosure, the transfer manager (410) can identify a target backend server to which the SCTP connection of backend server 4 (340) will be transferred, based on information received from the backend controller (420). For example, the transfer manager (410) can identify (or determine, select, or set) a target backend server to which the SCTP connection of backend server 4 (340) will be transferred, based on information about CPU usage, memory usage, and traffic volume of backend server 1 (310), backend server 2 (320), and backend server 3 (330), according to a load balancing algorithm. Here, the target backend server can be one or two or more.
[0131] Here, the load balancing algorithm may include at least one of random, hashing, round-robin, least connections, and resource-based algorithms (e.g., CPU usage or memory usage-based algorithms). Furthermore, a known load balancing algorithm may be utilized. For example, a known load balancing algorithm may be an algorithm that distributes traffic based on information about the amount of traffic allocated to each backend server.
[0132] In one embodiment, the transfer manager (410) can distribute the load by using the number of SCTP connections connected to each backend server. For example, if the information that the transfer manager (410) receives from the backend controller (420) is the number of SCTP connections of each backend server, and the number of SCTP connections of backend server 1 (310) is 5000, the number of SCTP connections of backend server 2 (320) is 5000, and the number of SCTP connections of backend server 3 (330) is 2000, the transfer manager (410) can identify backend server 3 (330) with the smallest number of SCTP connections as the second backend server, which is the target backend server.
[0133] In one embodiment, the transfer manager (410) can distribute the load by utilizing the CPU usage of each backend server. For example, if the information received by the transfer manager (410) from the backend controller (420) is the CPU usage of each backend server, and the CPU usage of backend server 1 (310) is 5%, the CPU usage of backend server 2 (320) is 4%, and the CPU usage of backend server 3 (330) is 2%, the transfer manager (410) can identify (or determine, select, or set) backend server 3 (330) with the lowest CPU usage as the second backend server, which is the target backend server.
[0134] For convenience of explanation, the transfer manager (410) has been described as using only one piece of status information to identify a target backend server, but this is not limited thereto. For example, the transfer manager (410) can identify (or determine, select, or set) a target backend server by considering both the number of SCTP connections and CPU usage. For example, the transfer manager (410) can identify (or determine, select, or set) a backend server by assigning a priority or weight to each piece of information.
[0135] For example, if the information received by the transfer manager (410) from the backend controller (420) is the number of SCTP connections of each backend server and the CPU usage of each backend server, and there is a backend server whose CPU usage is less than 3%, the transfer manager (410) can identify (or determine, select, set) the backend server as the target backend server regardless of the number of SCTP connections of the backend server.
[0136] For example, if the CPU usage of backend server 1 (310) is 5%, the number of SCTP connections of backend server 1 (310) is 1000, the CPU usage of backend server 2 (320) is 4%, the number of SCTP connections of backend server 2 (320) is 1000, and the CPU usage of backend server 3 (330) is 1%, and the number of SCTP connections of backend server 3 (330) is 3000, then the transfer manager (410) can identify (or determine, select, set) backend server 3 (330) with the largest number of SCTP connections but the lowest CPU usage as the target backend server.
[0137] In one embodiment, when two or more target backend servers are identified, the transfer manager (410) can divide the SCTP connection of backend server 4 (340), which is the source backend server, into multiple sets and transfer the divided SCTP sets to the target backend servers to which the SCTP connection will be transferred.
[0138] In one embodiment, the transfer manager (410) can distribute the load by using the number of SCTP connections connected to each backend server. For example, assume that the information that the transfer manager (410) receives from the backend controller (420) is the number of SCTP connections of each backend server, and that the number of SCTP connections of backend server 1 (310) is 5000, the number of SCTP connections of backend server 2 (320) is 3000, the number of SCTP connections of backend server 3 (330) is 2000, and the number of SCTP connections of source backend server 4 (340) is 5000. In this case, the transfer manager (410) can identify backend server 2 (320) and backend server 3 (330), which have relatively small numbers of SCTP connections, as the second backend server, which is the target backend server.
[0139] In this case, the transfer manager (410) can divide 3,000 SCTP connections out of 5,000 SCTP connections of backend server 4 (340), which is the source backend server, into a first set and 2,000 SCTP connections into a second set, distribute the SCTP connections of the first set to backend server 3 (330), and distribute the SCTP connections of the second set to backend server 2 (320). When the SCTP connections of backend server 4 (340) are distributed to the target backend server, the SCTP connections of backend server 1 (310), backend server 2 (320), and backend server 3 (330) can be distributed to 5,000 SCTP connections each so that no SCTP connection is concentrated on any one backend server.
[0140] In one embodiment, the transfer manager (410) can distribute the load by utilizing the CPU usage of each backend server. For example, if the information received by the transfer manager (410) from the backend controller (420) is the CPU usage of each backend server, and the CPU usage of backend server 1 (310) is 5%, the CPU usage of backend server 2 (320) is 4%, and the CPU usage of backend server 3 (330) is 2%, the transfer manager (410) can identify backend server 2 (320) and backend server 3 (330) as target backend servers in descending order of CPU usage.
[0141] For convenience of explanation, the transfer manager (410) has been described as using only one piece of status information to identify a target backend server, but this is not limited thereto. For example, the transfer manager (410) can also identify (or determine, select, or set) a target backend server by considering both the number of SCTP connections and CPU usage. For example, the transfer manager (410) can identify (or determine, select, or set) a backend server by assigning a priority or weight to each piece of information.
[0142] For example, if the information received by the transfer manager (410) from the backend controller (420) is the number of SCTP connections of each backend server and the CPU usage of each backend server, and there is a backend server whose CPU usage is less than 3%, the transfer manager (410) can identify (or determine, select, set) the backend server as the target backend server regardless of the number of SCTP connections of the backend server.
[0143] For example, if the CPU usage of backend server 1 (310) is 5%, the number of SCTP connections of backend server 1 (310) is 1000, the CPU usage of backend server 2 (320) is 2%, the number of SCTP connections of backend server 2 (320) is 2000, and the CPU usage of backend server 3 (330) is 1%, and the number of SCTP connections of backend server 3 (330) is 3000, then the transfer manager (410) can identify (or determine, select, set) backend server 2 (320) and backend server 3 (330), which have a relatively large number of SCTP connections but less than 3% of CPU usage, as target backend servers.
[0144] For convenience of explanation, the following description assumes that backend server 2 (320) and backend server 3 (330) are identified as target backend servers, and that the source SCTP connection targets are client 1 (210) and client 2 (220).
[0145] A transfer manager (410) according to one embodiment may perform an MM-1 function of transmitting an SCTP transfer start (or SCTP transfer INIT) message to backend server 2 (320) and backend server 3 (330).
[0146] For example, the SCTP connection transfer start message transmitted by the transfer manager (410) may include essential information and protocol components for SCTP connection transfer. In more detail, the SCTP connection transfer start message may include at least one of SCTP connection set information identified by the transfer manager, current SCTP connection state information, identifier (e.g., IP address or port number) information of backend server 4 (340), which is a source backend server and an existing backend server, identifier (e.g., IP address or port number) information of backend server 2 (320) and backend server 3 (330), which are target backend servers, configuration information of connection parameters, security information, session and transaction information, and transfer request timestamp information.
[0147] In one embodiment of the present disclosure, backend server 2 (320) and backend server 3 (330), which have received an SCTP connection transfer start message, may perform an operation of starting an SCTP connection in response to receiving the SCTP connection transfer start message from the transfer manager (410).
[0148] In one embodiment, after an SCTP connection start message and an SCTP connection start response message are exchanged between a client and a target backend server that have established an SCTP connection with backend server 4 (340), the transferred SCTP connection can be restarted. The transfer manager (410) recognizes (or identifies) when an SCTP connection start message or an SCTP INIT message is delivered to the database (110) of the load balancer (100) as when the SCTP connection has been restarted, and from this time, can update the SCTP connection and NAT information related to the SCTP connection in the database (110).
[0149] For example, backend server 2 (320) and backend server 3 (330), which have received an SCTP connection transfer start message, can transmit an SCTP connection start message (or SCTP INIT message) to all connected clients for the received SCTP connection set. More specifically, backend server 2 (320) and backend server 3 (330) can transmit an SCTP connection start message to the load balancer (100) for the SCTP connection set, and the load balancer (100) that has received the SCTP connection start message can transmit an SCTP connection start message to a client that is trying to perform an SCTP connection with backend server 2 (320) and backend server 3 (330). For example, the load balancer (100) can transmit an SCTP connection start message to client 1 (210) attempting to perform an SCTP connection with backend server 2 (320) and client 2 (220) attempting to perform an SCTP connection with backend server 3 (330) using the database (110) of the load balancer (100).
[0150] For example, when client 1 (210) and client 2 (220) receive an SCTP connection start message, an SCTP connection can be created between the received client 1 (210) and client 2 (220) and backend server 2 (320) and backend server 3 (330).
[0151] In one embodiment of the present disclosure, client 1 (210) and client 2 (220), which have received an SCTP connection start message, can transmit an ACK message (or response message) of SCTP connection start to target backend servers, backend server 2 (320) and backend server 3 (330), respectively, in response to the SCTP connection start message. When backend server 2 (320) and backend server 3 (330) receive the ACK message of SCTP connection start, the process of transferring the SCTP connection of backend server 4 (340) to backend server 2 (320) and backend server 3 (330) is completely completed, and data communication between client 1 (210) and client 2 (220) and backend server 2 (320) and backend server 3 (330) can be performed according to the transferred SCTP connection relationship. In more detail, backend server 2 (320) and backend server 3 (330) can receive data processing requests from client 1 (210) and client 2 (220), respectively, and perform operations to process the data.
[0152] In one embodiment of the present disclosure, since a backend controller (420) and a transfer manager (410) exist within a load balancer (100), the load balancer (100) can migrate SCTP connections according to the connection relationship of the load balancer (100) without the need for separate data processing and connection, thereby achieving various effects including the effect of efficiently managing infrastructure resources.
[0153] FIG. 6 illustrates a case where the transfer electronics of the SCTP connection between the client, the network, and the client and the backend server according to one embodiment of the present disclosure are located with separate functions in the load balancer and the backend server.
[0154] In explaining Fig. 6, any explanation that overlaps with the explanation given above in any one of Figs. 1 to 5 may be omitted.
[0155] Referring to FIG. 6, a plurality of clients (210, 220, ..., 230) are connected to a load balancer (100) and can perform data communication with a plurality of backend servers (310, 320, 330, 340) included in a local network (400) via SCTP connection. In the present disclosure, for convenience of explanation, the load balancer (100) is described as being included within the local network (400), but the location of the load balancer (100) is not limited thereto. For example, the load balancer (100) may be located outside the local network (400), or only a portion of the load balancer (100) may be located within the local network (400). For example, only interface 2 (130) of the load balancer (100) may be located inside the local network (400), and the database (110) and interface 1 (120) of the load balancer (100) may be located outside the local network (400).
[0156] In one embodiment of the present disclosure, among the plurality of backend servers, the transfer manager 2 (412) and the backend controller (420) may be configured such that one backend server may be a leader backend server. The leader backend server may perform some of the functions of the transfer manager (410) and the backend controller (420) of FIG. 5. For example, among the backend servers 1 (310), 2 (320), 3 (330), and 4 (340), backend server 1 (310) may be the leader backend server.
[0157] In one embodiment of the present disclosure, the leader backend server may include a backend controller (420) that performs BC-1 and BC-3 functions of the backend controller (420) and a transfer manager 1 (411) that performs MM-1 functions. For example, backend server 1 (310), which is a leader backend server, may include a backend controller (420) that performs BC-1 and BC-3 functions and a transfer manager 1 (411) that performs MM-1 functions while performing data processing of a client.
[0158] For example, backend server 1 (310) can perform a BC-1 function (or operation) to receive status information of backend servers including at least one of SCTP connection status information, CPU usage information, memory usage information, abnormal status of the backend server, and failure of the backend server from backend server 2 (320), backend server 3 (330), and backend server 4 (340). In addition, backend server 1 (310), which is a leader backend server, can obtain status information of the backend server including at least one of its own SCTP connection status information, CPU usage information, memory usage information, abnormal status of the backend server, and failure of the backend server. In addition, the status information of the backend server obtained by backend server 4 (340) can be obtained periodically or aperiodically.
[0159] In addition, in one embodiment of the present disclosure, backend server 1 (310), backend server 2 (320), backend server 3 (330), and backend server 4 (340) can each perform a BC-2 function to detect by themselves and order to stop services provided to SCTP connected clients when a failure occurs, memory usage exceeding a predetermined standard is detected, or an environment in which the servers cannot operate occurs.
[0160] When a problem occurs on its own, each backend server can detect it and suspend the service, and transmit SCTP connection transfer information to the backend controller (420) of backend server 1 (310), which is a leader backend server, so that a transfer operation can be performed in which its SCTP connection can be transferred. Specifically, when backend server 4 (340) has a problem and cannot provide service to clients, or needs to be restarted after termination, or is judged to be in need of repair and cannot be used long-term, or when traffic exceeding a predetermined standard traffic occurs on backend server 4 (340), backend server 4 (340) can transmit the abnormal status of backend server 4 (340) to backend server 1 (310), which is a leader backend server. In this case, the backend controller (420) of backend server 1 (310), which is a leader backend server, may not separately identify (or determine, select, choose) the source backend server to which the SCTP connection is to be transferred.
[0161] In one embodiment of the present disclosure, the backend controller (420) of the backend server 1 (310) can perform a BC-3 function of transmitting status information of the source backend server, backend server 4 (340), and other backend servers 1 (310), backend server 2 (320), and backend server 3 (330) to the transfer manager 1 (411) of the backend server 1 (310).
[0162] In one embodiment of the present disclosure, transfer manager 1 (411) can identify a target backend server to which the SCTP connection of backend server 4 (340) will be transferred based on information received from backend controller (420). For example, transfer manager 1 (411) can identify (or determine, select, set) a target backend server to which the SCTP connection of backend server 4 (340) will be transferred based on information about CPU usage, memory usage, and traffic volume of backend server 1 (310), backend server 2 (320), and backend server 3 (330) according to a load balancing algorithm. Here, the target backend server can be one or two or more.
[0163] Here, the load balancing algorithm may include at least one of random, hashing, round-robin, least connections, and resource-based algorithms (e.g., CPU usage or memory usage-based algorithms). Furthermore, a known load balancing algorithm may be utilized. For example, a known load balancing algorithm may be an algorithm that distributes traffic based on information about the amount of traffic allocated to each backend server.
[0164] According to one embodiment, the transfer manager 1 (411) of the backend server 1 can distribute the load by using the number of SCTP connections connected to each backend server. For example, if the information that the transfer manager 1 (411) receives from the backend controller (420) is the number of SCTP connections of each backend server, and the number of SCTP connections of backend server 1 (310) is 5000, the number of SCTP connections of backend server 2 (320) is 5000, and the number of SCTP connections of backend server 3 (330) is 2000, the transfer manager 1 (411) can identify backend server 3 (330) with the smallest number of SCTP connections as the second backend server, which is the target backend server.
[0165] According to one embodiment, the transfer manager 1 (411) can distribute the load by utilizing the CPU usage of each backend server. For example, if the information that the transfer manager 1 (411) receives from the backend controller (420) is the CPU usage of each backend server, and the CPU usage of backend server 1 (310) is 5%, the CPU usage of backend server 2 (320) is 4%, and the CPU usage of backend server 3 (330) is 2%, the transfer manager 1 (411) can identify (or determine, select, or set) the backend server 3 (330) with the lowest CPU usage as the second backend server, which is the target backend server.
[0166] For convenience of explanation, the transfer manager 1 (411) is described as using only one piece of status information to identify a target backend server, but this is not limited thereto. For example, the transfer manager 1 (411) can identify (or determine, select, or set) a target backend server by considering both the number of SCTP connections and CPU usage. For example, the transfer manager 1 (411) can identify (or determine, select, or set) a backend server by assigning a priority or a weight to each piece of information.
[0167] For example, if the information received by the transfer manager 1 (411) from the backend controller (420) is the number of SCTP connections of each backend server and the CPU usage of each backend server, and there is a backend server whose CPU usage is less than 3%, the transfer manager 1 (411) can identify (or determine, select, set) the backend server as the target backend server regardless of the number of SCTP connections of the backend server.
[0168] For example, if the CPU usage of backend server 1 (310) is 5%, the number of SCTP connections of backend server 1 (310) is 1000, the CPU usage of backend server 2 (320) is 4%, the number of SCTP connections of backend server 2 (320) is 1000, and the CPU usage of backend server 3 (330) is 1%, and the number of SCTP connections of backend server 3 (330) is 3000, then the transfer manager 1 (411) can identify (or determine, select, set) backend server 3 (330) with the largest number of SCTP connections but the lowest CPU usage as the target backend server.
[0169] In one embodiment, when two or more target backend servers are identified, the transfer manager (410) can divide the SCTP connection of backend server 4 (340), which is the source backend server, into multiple sets and transfer the divided SCTP sets to the target backend servers to which the SCTP connection will be transferred.
[0170] For convenience of explanation, the following description assumes that backend server 2 (320) and backend server 3 (330) are identified as target backend servers, and that the source SCTP connection targets are client 1 (210) and client 2 (220).
[0171] When transfer manager 1 (411) according to one embodiment identifies backend server 2 (320) and backend server 3 (330) as target backend servers, transfer manager 1 (411) can perform SCTP transfer by transmitting an SCTP transfer start (or SCTP transfer INIT) message to backend server 2 (320) and backend server 3 (330).
[0172] In one embodiment of the present disclosure, the load balancer (100) may include a transfer manager 2 (412) that performs an MM-2 function. For example, the transfer manager 2 (412) of the load balancer (100) may perform an MM-2 function of identifying (or determining, selecting, or setting) a restarted SCTP connection and updating the SCTP connection and SCTP connection-related NAT information stored in the database (110) with the transferred SCTP connection status. For example, when an SCTP connection start message stored in the database (110) of the load balancer (100) occurs, the transfer manager (410) may recognize the SCTP transfer start message as a SCTP connection restart message and update all of the SCTP connection and the SCTP connection-related NAT information stored in the database (110).
[0173] Here, the SCTP connection start message may be a message notifying that the SCTP connection transfer between backend server 2 (320) and backend server 3 (330) has been completed, and that the SCTP connection between client 1 (210) and client 2 (220) and backend server 2 (320) and backend server 3 (330) has been started.
[0174] In one embodiment, after an SCTP connection start message and an SCTP connection start response message are exchanged between client 1 (210) and client 2 (220) that had established an SCTP connection with backend server 4 (340) and target backend servers backend server 2 (320) and backend server 3 (330), the transferred SCTP connection can be restarted. The transfer manager 2 (412) recognizes (or identifies) when the SCTP connection start message or the SCTP INIT message is delivered to the database (110) of the load balancer (100) as when the SCTP connection has been restarted, and can update the SCTP connection and NAT information related to the SCTP connection in the database (110) from this time.
[0175] For example, backend server 2 (320) and backend server 3 (330), which have received an SCTP connection transfer start message, can transmit an SCTP connection start message (or SCTP INIT message) to all connected clients for the received SCTP connection set. For example, backend server 2 (320) and backend server 3 (330) can transmit an SCTP connection start message to the load balancer (100) for the SCTP connection set, and the load balancer (100) that has received the SCTP connection start message can transmit an SCTP connection start message to a client that is trying to perform an SCTP connection with backend server 2 (320) and backend server 3 (330). The load balancer (100) can transmit an SCTP connection start message to client 1 (210) attempting to perform an SCTP connection with backend server 2 (320) and client 2 (220) attempting to perform an SCTP connection with backend server 3 (330) using the database (110) of the load balancer (100).
[0176] In one embodiment of the present disclosure, when client 1 (210) and client 2 (220) receive an SCTP connection start message, an SCTP connection may be created between the received client 1 (210) and client 2 (220) and backend server 2 (320) and backend server 3 (330).
[0177] In one embodiment of the present disclosure, client 1 (210) and client 2 (220), which have received an SCTP connection start message, can transmit an ACK message (or response message) of SCTP connection start to target backend servers, backend server 2 (320) and backend server 3 (330), respectively, in response to the SCTP connection start message. When backend server 2 (320) and backend server 3 (330) receive the ACK message of SCTP connection start, the process of transferring the SCTP connection of backend server 4 (340) to backend server 2 (320) and backend server 3 (330) is completely completed, and data communication between client 1 (210) and client 2 (220) and backend server 2 (320) and backend server 3 (330) can be performed according to the transferred SCTP connection relationship. Backend server 2 (320) and backend server 3 (330) can receive data processing requests from client 1 (210) and client 2 (220), respectively, and perform operations to process the data.
[0178] In one embodiment of the present disclosure, transfer manager 2 (412) can discard packets received via a conventional SCTP connection of backend server 4 (340). Accordingly, transfer manager 2 (412) can reduce traffic that may be unnecessarily processed on the internal network.
[0179] In one embodiment of the present disclosure, since a transfer manager 2 (412) exists within a load balancer (100), and a transfer manager 1 (411) and a backend controller (420) exist in a leader backend server, various effects can be achieved, including the effect of efficiently managing infrastructure resources by migrating SCTP connections without the need to install separate communication equipment.
[0180] FIG. 7 is a flowchart illustrating a method for transferring an SCTP connection according to one embodiment of the present disclosure.
[0181] Referring to FIG. 7, an electronic device according to an embodiment of the present disclosure can obtain SCTP connection information of multiple servers and status information of multiple backend servers from multiple backend servers in step S710.
[0182] For example, the SCTP connection information of the plurality of servers may include the number of SCTP connections connected to the plurality of servers. For example, the status information may include at least one of CPU usage information of the plurality of backend servers, memory usage information of the plurality of backend servers, traffic volume information of the plurality of backend servers, and whether the plurality of backend servers are faulty. For example, the SCTP connection information may include the number of SCTP connections of each backend server, IP address information of each backend server, port number information, SCTP configuration setting information, security setting information, and system resource information.
[0183] For example, an electronic device may receive SCTP connection information or status information periodically or aperiodically from multiple backend servers.
[0184] In step S730, the electronic device can identify whether to transfer to a first backend server among multiple backend servers.
[0185] For example, the electronic device may identify (or recognize, determine) that a problem has occurred with a backend server among multiple backend servers whose CPU usage exceeds a predetermined standard, and may identify (or determine, judge) the backend server as the first backend server.
[0186] For example, if the electronic device determines, based on the SCTP connection information or status information received from each backend server, that no backend servers are experiencing any abnormalities, or that a small number of backend servers are not experiencing excessive traffic or resource congestion, the electronic device may not perform any further actions. In this case, the electronic device may again receive SCTP connection information or status information from multiple backend servers periodically or aperiodically, and may identify (or determine, judge) whether to transfer the SCTP connection each time it receives it.
[0187] Additionally, the electronic device according to one embodiment may transmit a service stop request message to the first backend server if the identified transfer status indicates that an SCTP connection transfer of the first backend server is required.
[0188] At step 750, the electronic device can identify at least one second backend server to which the SCTP connection of the first backend server will be transferred.
[0189] Additionally, in one embodiment of the present disclosure, at least one second backend server may be identified (or selected, determined) as a target backend server based on a message indicating that SCTP connection transfer is required and an SCTP connection transfer information message. Here, the identified at least one second backend server may be a single backend server or a plurality of backend servers. For example, the number of target backend servers (440) may be identified (or determined, selected, determined) by the backend controller (420) or may be a predetermined number.
[0190] At step 770, the electronic device may distribute the SCTP connection of the first backend server to at least one identified second backend server.
[0191] In one embodiment of the present disclosure, the electronic device may divide (or classify) an SCTP connection into at least one SCTP connection set. For example, the electronic device may identify (or determine, select, or choose) at least one SCTP connection set based on status information of at least one second backend server for the SCTP connections of the first backend server. For example, if the first backend server has 4,000 SCTP connections, the second backend server is identified as having 4,000 SCTP connections, and the SCTP connections are identified to be distributed evenly, the electronic device may distribute 1,000 SCTP connections of the first backend server to each of the second backend servers.
[0192] In one embodiment of the present disclosure, the electronic device may discard packets generated from an SCTP connection to the first backend server. For example, when the transfer of the SCTP connection from the first backend server to at least one backend server is completed, the electronic device may discard packets generated from the SCTP connection to the first backend server that are no longer needed.
[0193] In one embodiment of the present disclosure, an electronic device can recognize an SCTP connection start message transmitted to a client corresponding to an SCTP connection. Furthermore, the electronic device can update SCTP connection information in a load balancer's database or NAT information related to the SCTP connection based on the recognized SCTP connection start message.
[0194] FIG. 8 illustrates a transfer electronic device of an SCTP connection according to one embodiment of the present disclosure.
[0195] In explaining Fig. 8, any explanation that overlaps with the explanation given above in any one of Figs. 1 to 7 may be omitted.
[0196] Referring to FIG. 8, an electronic device (800) according to one embodiment may include a transceiver (810), a processor (820), and a memory (830). According to various embodiments, the configuration of the electronic device is not limited to that illustrated in FIG. 8, and may additionally include configurations not illustrated in FIG. 8 or omit some of the configurations illustrated in FIG. 8.
[0197] Additionally, the electronic device (800) according to one embodiment can perform the functions of the transfer manager and backend controller described above in FIGS. 2 to 7.
[0198] For example, in FIG. 8, the electronic device (800) is illustrated as controlling SCTP connection transfer by the operation of the processor (820), but the operation of the processor (820) may also be implemented and stored as software stored in the memory (830).
[0199] In addition, although not shown in FIG. 8, the electronic device (800) may further include an input unit that can input a distribution criterion for identifying a distribution method of an SCTP connection from a user, and an output unit that can output a distribution result of the SCTP connection.
[0200] Additionally, the operation of the processor (820) may be implemented as a software module stored in the memory (830). For example, the software module may be stored in the memory (830) and may be operated by being executed by the processor (820).
[0201] The transceiver (810) can support the establishment of a wired or wireless communication channel between the electronic device (800) and another external electronic device, and the performance of communication through the established communication channel. According to one embodiment, the transceiver (810) can transmit or receive information from multiple backend servers via wired or wireless communication.
[0202] According to one embodiment, the data received by the transceiver (810) may be status information of a plurality of backend servers. Here, the status information of the backend servers may include at least one of CPU usage information of the plurality of backend servers, memory usage information of the plurality of backend servers, traffic volume information of the plurality of backend servers, and whether the plurality of backend servers are in a state of failure.
[0203] According to various embodiments, the transceiver (810) may include a wireless communication module (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module (e.g., a local area network (LAN) communication module, or a power line communication module), and may communicate with an external electronic device through a short-range communication network (e.g., Bluetooth, WiFi direct, or IrDA (infrared data association)) or a long-range communication network (e.g., a cellular network, the Internet, or a computer network (e.g., a LAN or WAN)) using the corresponding communication module.
[0204] Alternatively, according to various embodiments, the transceiver (810) may communicate with a module within the load balancer via a wired connection or an internal bus within the load balancer.
[0205] The processor (820) is electrically connected to components included in the electronic device and can perform operations or data processing related to control and / or communication of the components included in the electronic device. According to one embodiment, the processor (820) can load commands or data received from at least one of the other components into the memory (830), process them, and store the resulting data in the memory (830).
[0206] In addition, for convenience of explanation, in FIG. 8, the processor (820) is expressed as operating as a single processor (820). However, the functions of at least some modules included in each unit conceptually dividing the functions of the electronic device may be implemented as multiple processors. In this case, the processor (820) may not operate as a single processor (820), but may be implemented as multiple processors implemented as separate hardware to perform each operation. The present invention is not limited thereto.
[0207] The memory (830) is electrically connected to the processor (820) and can store commands or data related to the operations of components included in the electronic device. According to various embodiments, the memory (830) can store distribution criteria for distributing SCTP connections or instructions for the above operations.
[0208] According to one embodiment, the memory (830) may also store instructions for executing software modules when the functions of the electronic device (800) are implemented as software modules that are conceptually separated and executed by the processor (820).
[0209] A method for transferring SCTP connections of a plurality of backend servers in a wireless access network system according to one embodiment may include: obtaining SCTP connection information of the plurality of backend servers and status information of the plurality of backend servers from the plurality of backend servers; identifying whether to transfer to a first backend server among the plurality of backend servers based on the obtained SCTP connection information and status information; identifying at least one second backend server to which to transfer the SCTP connection of the first backend server based on the identified need for transfer and the obtained SCTP connection information and status information; and distributing the SCTP connection of the first backend server to the at least one identified second backend server based on a predetermined distribution criterion.
[0210] The method may further include a step of transmitting a service stop request message to the first backend server if the identified transfer status is identified as requiring SCTP connection transfer of the first backend server.
[0211] The above method may further include a step of discarding packets generated from the SCTP connection of the first backend server.
[0212] The method may further include a step of recognizing a start message of an SCTP connection transmitted to a client corresponding to the SCTP connection; and a step of updating SCTP connection information or NAT (Network Address Translation) information related to the SCTP connection in a database of a load balancer based on the start message of the SCTP connection.
[0213] The above SCTP connection information may include information on the number of SCTP connections of the plurality of backend servers, IP (Internet Protocol) address information of the plurality of backend servers, port number information of the plurality of backend servers, and configuration setting information of the plurality of backend servers.
[0214] The above status information may include at least one of CPU usage information of the plurality of backend servers, memory usage information of the plurality of backend servers, traffic volume information of the plurality of backend servers, and whether the plurality of backend servers are in a state of failure.
[0215] The above distribution criteria may include at least one of random, hashing, round-robin algorithm, least connections algorithm, and resource-based algorithm.
[0216] The step of distributing the SCTP connection of the first backend server to the at least one identified second backend server may include the step of dividing the SCTP connection of the first backend server into at least one set based on the distribution criteria; and the step of transmitting information about the at least one divided set to the at least one second backend server.
[0217] The above method can be performed in a load balancer (100).
[0218] The above method can be performed in one backend server among the plurality of backend servers.
[0219] In one embodiment of the present disclosure, a computer-readable recording medium having recorded thereon a program for performing the above method on a computer may be provided.
[0220] In one embodiment of the present disclosure, an electronic device may include a memory (830) storing one or more instructions; and at least one processor (820) executing one or more instructions stored in the memory (830). The at least one processor may obtain SCTP connection information of the plurality of backend servers and status information of the plurality of backend servers from the plurality of backend servers by executing the one or more instructions. The at least one processor may identify whether a transfer is necessary for a first backend server among the plurality of backend servers based on the obtained SCTP connection information and status information by executing the one or more instructions. The at least one processor may identify at least one second backend server to which an SCTP connection of the first backend server will be transferred based on the identified need for transfer and the obtained SCTP connection information and status information by executing the one or more instructions. The at least one processor may distribute the SCTP connection of the first backend server to the at least one identified second backend server based on a predetermined distribution criterion by executing the one or more instructions.
[0221] According to one embodiment, at least one processor may execute one or more instructions to transmit a service stop request message to the first backend server when the identified transfer status indicates that SCTP connection transfer of the first backend server is required.
[0222] According to one embodiment, at least one processor may discard packets generated from an SCTP connection of the first backend server by executing one or more instructions.
[0223] According to one embodiment, at least one processor may recognize an SCTP connection start message transmitted to a client corresponding to the SCTP connection by executing one or more commands. At least one processor may update SCTP connection information or NAT (Network Address Translation) information related to the SCTP connection in a database of the load balancer based on the SCTP connection start message by executing one or more commands.
[0224] According to one embodiment, the SCTP connection information may include information on the number of SCTP connections of the plurality of backend servers, IP (Internet Protocol) address information of the plurality of backend servers, port number information of the plurality of backend servers, and configuration setting information of the plurality of backend servers.
[0225] According to one embodiment, the status information may include at least one of CPU usage information of the plurality of backend servers, memory usage information of the plurality of backend servers, traffic volume information of the plurality of backend servers, and whether the plurality of backend servers are in a state of failure.
[0226] According to one embodiment, the distribution criteria may include at least one of random, hashing, a round-robin algorithm, a least connections algorithm, and a resource-based algorithm.
[0227] In one embodiment, at least one processor may execute one or more commands to partition the SCTP connection of the first backend server into at least one set based on the distribution criteria. At least one processor may transmit information about the at least one partitioned set to at least one second backend server by executing one or more commands.
[0228] In one embodiment, the electronic device may be located within a load balancer.
[0229] In one embodiment, the electronic device may be located in one backend server of the plurality of backend servers.
[0230] A device-readable storage medium may be provided in the form of a non-transitory storage medium. Here, the term "non-transitory storage medium" simply indicates that it is a tangible device and does not contain signals (e.g., electromagnetic waves). This term does not distinguish between cases where data is permanently stored in the storage medium and cases where data is temporarily stored. For example, a "non-transitory storage medium" may include a buffer in which data is temporarily stored.
[0231] According to one embodiment, the method according to various embodiments disclosed in the present document may be provided as included in a computer program product. The computer program product may be traded as a product between a seller and a buyer. The computer program product may be distributed in the form of a machine-readable storage medium (e.g., compact disc read-only memory (CD-ROM)), or may be distributed online (e.g., downloaded or uploaded) through an application store or directly between two user devices (e.g., smartphones). In the case of online distribution, at least a portion of the computer program product (e.g., a downloadable app) may be temporarily stored or temporarily generated in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or an intermediary server.
Claims
1. A method for transferring SCTP connections (Stream Control Transmission Protocol associations) of multiple backend servers in a wireless access network system, A step of obtaining SCTP connection information of the plurality of backend servers and status information of the plurality of backend servers from the plurality of backend servers (S710); A step of identifying whether to transfer to a first backend server among the plurality of backend servers based on the acquired SCTP connection information and status information (S730); A step (S750) of identifying at least one second backend server to which the SCTP connection of the first backend server will be transferred, based on the identified need for transfer, the acquired SCTP connection information, and the status information; and A method comprising the step of distributing (S770) an SCTP connection of the first backend server to at least one identified second backend server based on a predetermined distribution criterion.
2. In paragraph 1, The above method, A method further comprising the step of transmitting a service stop request message to the first backend server if the identified transfer status is identified as requiring transfer of the SCTP connection of the first backend server.
3. In either paragraph 1 or paragraph 2, The above method, A method further comprising the step of discarding packets generated from the SCTP connection of the first backend server.
4. In any one of paragraphs 1 to 3, The above method, A step of recognizing a start message of an SCTP connection transmitted to a client corresponding to the SCTP connection; and A method further comprising the step of updating SCTP connection information or NAT (Network Address Translation) information related to the SCTP connection in a database of a load balancer based on the start message of the SCTP connection.
5. In any one of paragraphs 1 to 4, The above SCTP connection information is, A method including information on the number of SCTP connections of the plurality of backend servers, IP (Internet Protocol) address information of the plurality of backend servers, port number information of the plurality of backend servers, and configuration setting information of the plurality of backend servers.
6. In any one of paragraphs 1 to 5, The above status information is, A method including at least one of CPU usage information of the plurality of backend servers, memory usage information of the plurality of backend servers, traffic volume information of the plurality of backend servers, and whether the plurality of backend servers are faulty.
7. In any one of paragraphs 1 to 6, The above distribution criteria are: A method comprising at least one of a random, a hashing, a Round-Robin algorithm, a least connections algorithm, and a resource-based algorithm.
8. In any one of paragraphs 1 to 7, The step of distributing the SCTP connection of the first backend server to at least one second backend server identified above is: A step of dividing the SCTP connection of the first backend server into at least one set based on the above distribution criteria; and A method comprising the step of transmitting at least one of the divided sets of information to at least one second backend server.
9. In any one of paragraphs 1 to 8, The above method, Method performed on a load balancer (100).
10. In any one of paragraphs 1 to 8, The above method, A method performed on one backend server among the plurality of backend servers.
11. A computer-readable recording medium having recorded thereon a program for performing the method of any one of claims 1 to 10 on a computer.
12. In an electronic device (800) that performs SCTP connection (Stream Control Transmission Protocol association) transfer of multiple backend servers in a wireless access network system, A memory (830) storing one or more instructions; At least one processor (820) that executes one or more instructions stored in the memory (830), At least one processor (820) above, Obtain SCTP connection information of the plurality of backend servers and status information of the plurality of backend servers from the plurality of backend servers, Based on the acquired SCTP connection information and status information, identify whether transfer to the first backend server among the plurality of backend servers is necessary, Based on the identified need for transfer, the acquired SCTP connection information and status information, at least one second backend server to which the SCTP connection of the first backend server will be transferred is identified, An electronic device that distributes an SCTP connection of the first backend server to at least one identified second backend server based on predetermined distribution criteria.
13. In paragraph 12, At least one processor (820) above, An electronic device that transmits a service stop request message to the first backend server when the identified transfer status is identified as requiring transfer of the SCTP connection of the first backend server.
14. In either of paragraphs 12 or 13, At least one processor (820) above, Recognizes the start message of an SCTP connection transmitted to a client corresponding to the above SCTP connection, An electronic device that updates SCTP connection information or NAT (Network Address Translation) information related to the SCTP connection in a database of a load balancer based on the start message of the SCTP connection.
15. In any one of paragraphs 12 to 14, At least one processor (820) above, Based on the above distribution criteria, the SCTP connection of the first backend server is divided into at least one set, An electronic device that transmits at least one of the divided sets of information to at least one second backend server.
Citation Information
Patent Citations
Server system
JP2007316837A
Request reception system
JP2009301095A
Load balancing SCTP associations using vtag mediation
US20120230187A1
SCTP association endpoint relocation in a load balancing system
US20120233240A1
Systems and methods for providing load balancing as a service
US20150341428A1