KR102481033B1 - Method for client device registration and ultra-low latency large network packet management - Google Patents

Method for client device registration and ultra-low latency large network packet management Download PDF

Info

Publication number
KR102481033B1
KR102481033B1 KR1020220073171A KR20220073171A KR102481033B1 KR 102481033 B1 KR102481033 B1 KR 102481033B1 KR 1020220073171 A KR1020220073171 A KR 1020220073171A KR 20220073171 A KR20220073171 A KR 20220073171A KR 102481033 B1 KR102481033 B1 KR 102481033B1
Authority
KR
South Korea
Prior art keywords
packet
client device
server
slave server
client
Prior art date
Application number
KR1020220073171A
Other languages
Korean (ko)
Inventor
백성진
이랑혁
Original Assignee
주식회사 구루미
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 구루미 filed Critical 주식회사 구루미
Priority to KR1020220073171A priority Critical patent/KR102481033B1/en
Application granted granted Critical
Publication of KR102481033B1 publication Critical patent/KR102481033B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1091Interfacing with client-server systems or between P2P systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0659Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1051Group master selection mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

According to an embodiment of the present invention, a method for client device registration and ultra-low latency large network packet management comprises the steps of: (a) registering a plurality of client devices for each of host devices composed of a plurality of slave servers and a master server; (b) transmitting, by the client device, client role information and network packet type information to be processed to the host device, and sharing, by the host device, the client role information and the network packet type information with other host devices; (c) sharing, by the host device, the client role information among information received from the other host device with a client device managed by the host device; and (d) when the client device transmits a specific packet to the host device along with the network packet type information, referring to the previously stored network packet type information for each client device, and transmitting, by the host device, the specific packet to the other host device connected to the client device capable of processing the specific packet, such that the specific packet can be processed in the other client device.

Description

클라이언트 장치 등록 및 초저지연을 위한 대용량 네트워크 패킷 관리 방법{METHOD FOR CLIENT DEVICE REGISTRATION AND ULTRA-LOW LATENCY LARGE NETWORK PACKET MANAGEMENT}Method for managing large network packets for client device registration and ultra-low latency

본 발명은 클라이언트 장치 등록 및 초저지연을 위한 대용량 네트워크 패킷 관리방법에 관한 것으로서, 보다 상세하게는, 복수의 서버로 구성된 호스트 장치에 등록된 클라이언트 장치가 다른 호스트 장치의 클라이언트 장치에 네트워크 패킷을 전달할 때, 발생하는 지연을 최소화시키는 방법에 관한 것이다.The present invention relates to a method for registering a client device and managing large-capacity network packets for ultra-low latency, and more particularly, when a client device registered in a host device composed of a plurality of servers forwards a network packet to a client device of another host device. , it relates to a method for minimizing the delay that occurs.

오늘날에는 네트워크를 통해 다양한 정보가 전송되는데, 이처럼 다양한 정보가 공유되기 위해서는 서버장치가 필수적이다.Nowadays, a variety of information is transmitted through a network, and a server device is essential in order to share such a variety of information.

그러나 이를 위해 다수의 장치들이 서버장치로 접속하고, 서버장치를 통해 무수히 많은 패킷들이 전송되면 서버는 과부하가 걸리게 된다. 그래서 하나의 서버에 트래픽이 집중되고 결국 트래픽 양을 초과하여 서버에 문제가 발생할 수 있다.However, if a large number of devices access the server device for this purpose and countless packets are transmitted through the server device, the server becomes overloaded. Therefore, traffic is concentrated on one server, and eventually the amount of traffic is exceeded and a problem may occur in the server.

이러한 문제점을 해결하기 위해 종래의 기술은 여러 개의 물리 서버를 분산 시켜서 하나의 서버가 감당해야 하는 네트워크 트래픽 양을 조절 해 주었다. 그러나 공통 네트워크 패킷을 여러 개의 물리 서버로 분산 시킨다면 간단하게 패킷을 여러 서버로 분배하면 되지만, 특정 서버는 패킷을 처리하지 않아도 되고, 특정 서버는 패킷을 처리해야 하는 등의 특정 서버를 대상으로 하는 패킷 타겟팅 기능도 필요하다.In order to solve this problem, the conventional technology distributes several physical servers to control the amount of network traffic that one server has to handle. However, if a common network packet is distributed to multiple physical servers, it is simply possible to distribute the packets to multiple servers, but a specific server does not have to process packets, and a specific server needs to process packets. A targeting function is also required.

이와 같은 패킷 분산 과정에서 패킷 이동간에 발생 가능한 네트워크 지연, 무작위로 분포 돼 있는 여러 개의 클러스터링 돼 있는 서버들에 대한 패킷 분산 효율성 문제 등이 있다.In this packet distribution process, there are network delays that may occur between packet movements and packet distribution efficiency problems for several randomly distributed clustered servers.

이러한 문제점을 해결하기 위하여 여러 개의 물리 서버로 나뉘어져 있는 서버들을 하나의 클러스터링 구조로 묶고, 클러스터링을 자동화 또는 유연한 확장을 가능케 하고, 클러스터링 돼 있는 서버들간에 발생되는 네트워크 패킷 전송간의 지연 문제를 최소화 시켜서 화상통신과 같은 대용량 네트워크 패킷이 발생해도 지연을 최소화 시켜 실시간성을 유지하는데 문제가 발생하지 않는 패킷 처리 기술의 필요성이 있다.In order to solve this problem, servers divided into several physical servers are grouped into one clustering structure, clustering is automated or flexible expansion is possible, and the delay problem between network packet transmissions occurring between clustered servers is minimized. There is a need for a packet processing technology that does not cause problems in maintaining real-time performance by minimizing delay even when large-capacity network packets such as communication occur.

본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 여러 개의 물리 서버로 나뉘어져 있는 서버들을 하나의 클러스터링 구조로 묶고, 자동화 또는 유연한 확장을 가능하도록 한 클러스터링 서버들간에 발생되는 네트워크 패킷 전송간의 지연 문제를 최소화 시키고, 대용량 네트워크 패킷이 발생해도 지연을 최소화 시키는 패킷 처리 기술에 목적이 있다.The present invention is to solve the above-mentioned problems of the prior art, and the delay between network packet transmissions occurring between clustering servers that binds servers divided into several physical servers into one clustering structure and enables automation or flexible expansion. The purpose is a packet processing technology that minimizes problems and minimizes delay even when large-capacity network packets occur.

다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.However, the technical problem to be achieved by the present embodiment is not limited to the technical problem as described above, and other technical problems may exist.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 실시예에 따르는 클라이언트 장치 등록 및 초저지연을 위한 대용량 네트워크 패킷 관리방법에 있어서, (a) 복수의 슬레이브서버와 마스터서버로 구성된 호스트 장치들 각각마다 복수의 클라이언트 장치가 등록되는 단계; (b) 상기 클라이언트 장치가 상기 호스트 장치로 클라이언트 역할 정보 및 처리해야할 네트워크 패킷 종류 정보를 전송하고, 상기 호스트 장치는 다른 호스트 장치들로 상기 클라이언트 역할 정보 및 네트워크 패킷 종류 정보를 공유하는 단계; (c) 상기 호스트 장치는 다른 호스트 장치로부터 전달받은 정보들 중, 클라이언트 역할 정보를 자신이 관리하고 있는 클라이언트 장치로 공유하는 단계; 및 (d) 상기 클라이언트 장치가 특정 패킷을 호스트 장치로 네트워크 패킷 종류 정보와 함께 전달할 경우, 상기 호스트 장치는 기 저장된 각 클라이언트 장치 별 네트워크 패킷 종류 정보를 참고하여, 상기 특정 패킷을 처리할 수 있는 클라이언트 장치와 연결된 다른 호스트 장치로 전달하여, 상기 특정 패킷이 타 클라이언트 장치에서 처리될 수 있도록 하는 단계;를 포함한다.As a technical means for achieving the above technical problem, in the method for registering a client device and managing large-capacity network packets for ultra-low delay according to an embodiment of the present invention, (a) a host device composed of a plurality of slave servers and a master server Registering a plurality of client devices for each of the above; (b) the client device transmitting client role information and network packet type information to be processed to the host device, and the host device sharing the client role information and network packet type information with other host devices; (c) sharing, by the host device, client role information, among information received from other host devices, with a client device managed by the host device; and (d) when the client device forwards a specific packet to the host device along with network packet type information, the host device refers to previously stored network packet type information for each client device, and processes the specific packet. and transferring the specific packet to another host device connected to the device so that the specific packet can be processed by another client device.

또한, 상기 호스트 장치에서 관리되는 장치들은 클러스터링 된 상기 호스트 장치들과 상기 호스트 장치에게 상기 인증 패킷을 전달한 상기 클라이언트 장치들 중 어느 하나에 해당한다.Also, devices managed by the host device correspond to any one of the clustered host devices and the client devices that delivered the authentication packet to the host device.

또한, 상기 (b) 단계는, 상기 클라이언트 장치는 클라이언트 역할 정보 및 처리해야할 네트워크 패킷 종류 정보가 변경될 경우, 클라이언트 역할 정보 및 네트워크 패킷 종류 정보를 추가로 전달한다.In the step (b), the client device additionally transfers client role information and network packet type information when the client role information and network packet type information to be processed are changed.

또한, 상기 (a) 단계 전에, (a-1) 제 1 슬레이브서버 및 제 2 슬레이브서버가 상기 마스터서버로 접속 및 인증 패킷을 전달하는 단계; (a-2) 상기 마스터서버가 상기 제 1 슬레이브서버 및 제 2 슬레이브서버로 클러스터 넘버 및 접속가능한 다른 슬레이브서버들의 목록을 전달하는 단계; 및 (a-3) 상기 제 1 슬레이브서버가 상기 제 2 슬레이브서버보다 상기 마스터서버에 먼저 접속한 경우, 상기 제 2 슬레이브서버가 상기 제 1 슬레이브서버로 접속 및 인증패킷을 전달하고, 상기 제 1 슬레이브서버가 접속을 수락하는 단계; 를 더 포함하고, 상기 클러스터 넘버는 상기 마스터서버가 상기 슬레이브서버의 접속 및 인증 패킷을 전달하는 순서에 의해 순차적으로 발급되는 것이고, 상기 슬레이브서버들 간의 접속에 있어, 상기 슬레이브서버의 상기 마스터서버로의 접속 및 인증 패킷을 전달한 시점이 빠른 상기 슬레이브서버가 접속수락자 역할이 되고, 상기 슬레이브서버의 상기 마스터서버로의 접속 및 인증 패킷을 전달한 시점이 늦은 상기 슬레이브서버가 접속자 역할이 된다.Also, prior to the step (a), (a-1) the first slave server and the second slave server transmitting access and authentication packets to the master server; (a-2) transmitting, by the master server, a cluster number and a list of other accessible slave servers to the first slave server and the second slave server; and (a-3) when the first slave server accesses the master server earlier than the second slave server, the second slave server transmits an access and authentication packet to the first slave server, and the first Slave server accepting access; Further, the cluster number is issued sequentially according to the order in which the master server transfers the access and authentication packets of the slave server, and in connection between the slave servers, the master server of the slave server The slave server at the earliest delivery time of the access and authentication packet becomes the connection acceptor, and the slave server at the later time at the delivery time of the access and authentication packet of the slave server to the master server becomes the accessor role.

또한, 상기 (a) 단계는, 클라이언트 장치가 클러스터링 된 복수의 슬레이브서버와 마스터서버로 구성된 호스트 장치들 중 어느 하나에 접속한 후 인증 패킷을 전달하는 단계; 및 상기 인증 패킷을 수신한 호스트 장치가 상기 클라이언트 장치를 자신이 관리하는 클라이언트 장치들 중 하나로 등록하는 단계;를 포함한다.In addition, the step (a) may include transmitting an authentication packet after the client device accesses any one of the clustered host devices composed of a plurality of slave servers and master servers; and registering, by the host device receiving the authentication packet, the client device as one of client devices managed by the host device.

또한, 상기 네트워크 패킷 종류 정보는 상기 호스트 장치들 간에 공유되나, 상기 클라이언트 장치들 간에 공유되지 않고, 상기 호스트 장치는 새로운 클라이언트 장치가 상기 클러스터링 서버에 접속하면 상기 클라이언트 역할 정보를 전달한다.Also, the network packet type information is shared among the host devices, but not shared among the client devices, and the host device transmits the client role information when a new client device accesses the clustering server.

또한, 상기 (d) 단계 이후, 제 2 슬레이브서버에 등록 돼 있는 제 2-1 클라이언트 장치의 역할을 제 1 슬레이브서버에 등록 돼 있는 제 1-1 클라이언트 장치가 저장하는 단계; 상기 제 2-1 클라이언트 장치의 구동이 종료되면 상기 제 2 슬레이브서버가 상기 제 1 슬레이브서버에 상기 제 2-1 클라이언트 장치의 구동 종료를 알리는 단계; 및 상기 제 1-1 클라이언트 장치는 상기 제 2-1 클라이언트 장치의 구동 종료에 따라 저장된 클라이언트 장치 리스트 내에서 관리 정보를 제거하고, 기 저장한 클라이언트 역할 정보를 참고하여 동일한 역할이 가능한 다른 상기 클라이언트 장치를 찾아서 통신요청 하는 단계;를 포함한다.In addition, after step (d), the step of storing, by the 1-1st client device registered in the 1st slave server, the role of the 2-1st client device registered in the 2nd slave server; notifying, by the second slave server, the end of driving of the 2-1 client device to the first slave server when the driving of the 2-1 client device is terminated; and the 1-1 client device removes management information from the stored client device list according to the end of driving of the 2-1 client device, and refers to the previously stored client role information to select other client devices capable of the same role. It includes; finding and requesting communication.

또한, 각 호스트 장치 및 각 클라이언트 장치는, 메인 쓰래드; 및 수신 쓰래드와 송신 쓰래드를 포함하는 네트워크패킷처리 쓰래드;를 포함한다.In addition, each host device and each client device may include a main thread; and a network packet processing thread including a receiving thread and a transmitting thread.

또한, 페이로드패킷은 클라이언트 장치에서 발생되어 다른 클라이언트 장치에서 처리되기 위해 전달되어야 하는 패킷이고, 제어 패킷은 상기 페이로드패킷의 경로를 지정해주는 패킷인 것이고, 상기 각 호스트 장치 및 각 클라이언트 장치는, 제어 패킷을 수신할 경우, 메인 쓰래드를 통하여 처리하고, 페이로드패킷을 수신할 경우, 네트워크패킷처리 쓰래드를 통하여 처리한다.In addition, a payload packet is a packet that must be generated in a client device and transmitted to be processed by another client device, and a control packet is a packet specifying a path of the payload packet, and each host device and each client device, When a control packet is received, it is processed through the main thread, and when a payload packet is received, it is processed through the network packet processing thread.

또한, 각 서버는 타 서버 각각에 대한 네트워크 패킷처리 쓰래드를 포함하고 있으며, 어느 한 서버가 제 1 슬레이브 서버에 대한 네트워크패킷처리 쓰래드(송신 쓰래드 및 수신 쓰래드 포함)와 제 2 슬레이브서버에 대한 네트워크패킷처리 쓰래드(송신 쓰래드 및 수신 쓰래드 포함)를 포함하고 있을 때, 상기 어느 한 서버가 제 1 슬레이브서버로부터 패킷을 수신할 경우, 페이로드패킷은 제 1 슬레이브서버에 대한 수신 쓰래드를 통하여 수신되고, 제어패킷이 제 2 슬레이브서버로의 송신을 지칭하고 있을 때, 제 2 슬레이브서버에 대한 송신 쓰래드를 통하여 상기 페이로드 패킷을 상기 제 2 슬레이브서버로 전달한다.In addition, each server includes a network packet processing thread for each of the other servers, and any one server processes a network packet processing thread (including a sending thread and a receiving thread) for the first slave server and a network packet processing thread for the second slave server. When a processing thread (including a sending thread and a receiving thread) is included, when any one of the above servers receives a packet from the first slave server, the payload packet is received through the receiving thread for the first slave server, and control When the packet indicates transmission to the second slave server, the payload packet is transferred to the second slave server through a transmission thread for the second slave server.

또한, 상기 클라이언트 장치 또는 호스트 장치는, 패킷의 무결성을 위해 패킷 전체를 MTU 단위의 프레임으로 분할하여 네트워크로 송신하고, 상기 패킷은 프레임의 번호, 패킷의 시작, 패킷의 종료 및 프레임의 크기를 포함하고, 상기 MTU 크기는 1,500바이트를 넘지 않는다.In addition, the client device or the host device divides the entire packet into frames in units of MTU and transmits the entire packet to the network for integrity of the packet, and the packet includes a frame number, a start of a packet, an end of a packet, and a size of the frame. and the MTU size does not exceed 1,500 bytes.

또한, 해당 패킷이 제어패킷과 페이로드패킷 중 어느 패킷인지에 대한 식별정보를 담은 정보는, 해당 패킷의 가장 앞에 배치된다.In addition, information containing identification information indicating whether the corresponding packet is a control packet or a payload packet is placed at the front of the corresponding packet.

또한, 클라이언트 장치 또는 호스트 장치는 상기 패킷을 수신하고 상기 패킷의 가장 앞의 구조만 분석하여도 제어 패킷 또는 페이로드 패킷인지 식별하고, 메인 쓰래드와 네트워크패킷처리 쓰래드 중 어느 쓰래드를 통하여 처리할 것인지 결정한다.In addition, the client device or the host device receives the packet and identifies whether it is a control packet or a payload packet by analyzing only the first structure of the packet, and determines which thread to process between the main thread and the network packet processing thread. do.

클라이언트 장치 등록 및 초저지연을 위한 대용량 네트워크 패킷 관리시스템에 있어서, 복수의 호스트 장치 및 복수의 클라이언트 장치를 포함하고, 상기 장치들은 대용량 네트워크 패킷 관리를 수행하는 방법을 실행하며, 상기 방법은 (a) 복수의 슬레이브서버와 마스터서버로 구성된 호스트 장치들 각각마다 복수의 클라이언트 장치가 등록되는 단계; (b) 상기 클라이언트 장치가 상기 호스트 장치로 클라이언트 역할 정보 및 처리해야할 네트워크 패킷 종류 정보를 전송하고, 상기 호스트 장치는 다른 호스트 장치들로 상기 클라이언트 역할 정보 및 네트워크 패킷 종류 정보를 공유하는 단계; (c) 상기 호스트 장치는 다른 호스트 장치로부터 전달받은 정보들 중, 클라이언트 역할 정보를 자신이 관리하고 있는 클라이언트 장치로 공유하는 단계; 및 (d) 상기 클라이언트 장치가 특정 패킷을 호스트 장치로 네트워크 패킷 종류 정보와 함께 전달할 경우, 상기 호스트 장치는 기 저장된 각 클라이언트 장치 별 네트워크 패킷 종류 정보를 참고하여, 상기 특정 패킷을 처리할 수 있는 클라이언트 장치와 연결된 다른 호스트 장치로 전달하여, 상기 특정 패킷이 타 클라이언트 장치에서 처리될 수 있도록 한다.A system for managing large-capacity network packets for client device registration and ultra-low latency, comprising a plurality of host devices and a plurality of client devices, wherein the devices execute a method for performing large-capacity network packet management, the method comprising (a) registering a plurality of client devices for each of the host devices composed of a plurality of slave servers and a master server; (b) the client device transmitting client role information and network packet type information to be processed to the host device, and the host device sharing the client role information and network packet type information with other host devices; (c) sharing, by the host device, client role information, among information received from other host devices, with a client device managed by the host device; and (d) when the client device forwards a specific packet to the host device along with network packet type information, the host device refers to previously stored network packet type information for each client device, and processes the specific packet. It is forwarded to another host device connected to the device so that the specific packet can be processed by another client device.

본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 복수의 서버들로 구성된 호스트 장치들간에 발생되는 네트워크 패킷 전송간의 지연 문제를 최소화 시키고, 대용량 네트워크 패킷이 발생해도 지연을 최소화 시키는 패킷 처리에 장점이 있다.The present invention is to solve the above-mentioned problems of the prior art, and to minimize the delay problem between network packet transmissions occurring between host devices composed of a plurality of servers, and to process packets that minimize delay even when large-capacity network packets occur There are advantages.

도 1은 본 발명의 일 실시예에 따르는 호스트 장치의 구조도이다.
도 2는 본 발명의 일 실시예에 따르는 복수개의 물리서버들이 클러스터링으로 호스트 장치가 되는 과정에 대한 순서도이다.
도 3a는 본 발명의 일 실시예에 따르는 호스트 장치의 마스터서버에 순단이 발생하였을 때 복원되는 과정을 나타내는 순서도이다.
도 3b는 본 발명의 일 실시예에 따르는 호스트 장치의 제 2 슬레이브서버에 순단이 발생하였을 때 복원되는 과정을 나타내는 순서도이다.
도 4a 내지 도 4c는 본 발명의 일 실시예에 따르는 복수개의 물리서버들이 클러스터링으로 호스트 장치가 되는 과정을 나타내는 예시도이다.
도 5a 내지 도 5d는 본 발명의 일 실시예에 따르는 호스트 장치의 마스터서버 또는 제 2 슬레이브서버에 순단이 발생하였을 때, 복원되는 과정을 나타내는 예시도이다.
도 6은 본 발명의 일 실시예에 따르는 클라이언트 장치가 호스트 장치를 통해 패킷을 전달하는 과정을 나타내는 순서도이다.
도 7은 본 발명의 일 실시예에 따르는 복수의 클라이언트 장치가 호스트 장치에 연결된 것을 나타내는 구조도이다.
도 8은 본 발명의 일 실시예에 따르는 쓰래드 분리를 통한 네트워크 패킷 제어를 나타내는 예시도이다.
도 9는 본 발명의 일 실시예에 따르는 MTU의 구성을 나타내는 예시도이다.
도 10은 본 발명의 일 실시예에 따르는 패킷 전달 지연 최소화를 나타내는 예시도이다.
1 is a structural diagram of a host device according to an embodiment of the present invention.
2 is a flowchart of a process in which a plurality of physical servers become host devices by clustering according to an embodiment of the present invention.
FIG. 3A is a flowchart illustrating a process of restoring a master server of a host device according to an embodiment of the present invention when a disruption occurs.
FIG. 3B is a flowchart illustrating a process of restoring when a second slave server of a host apparatus is interrupted according to an embodiment of the present invention.
4A to 4C are exemplary diagrams illustrating a process in which a plurality of physical servers become host devices through clustering according to an embodiment of the present invention.
5A to 5D are exemplary diagrams illustrating a restoration process when a interruption occurs in a master server or a second slave server of a host device according to an embodiment of the present invention.
6 is a flowchart illustrating a process in which a client device transmits a packet through a host device according to an embodiment of the present invention.
7 is a structural diagram illustrating a plurality of client devices connected to a host device according to an embodiment of the present invention.
8 is an exemplary diagram illustrating network packet control through thread separation according to an embodiment of the present invention.
9 is an exemplary diagram illustrating a configuration of an MTU according to an embodiment of the present invention.
10 is an exemplary diagram illustrating packet delivery delay minimization according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail so that those skilled in the art can easily practice the present invention with reference to the accompanying drawings. However, the present invention may be embodied in many different forms and is not limited to the embodiments described herein. And in order to clearly explain the present invention in the drawings, parts irrelevant to the description are omitted, and similar reference numerals are attached to similar parts throughout the specification.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is said to be "connected" to another part, this includes not only the case where it is "directly connected" but also the case where it is "electrically connected" with another element interposed therebetween. . In addition, when a certain component is said to "include", this means that it may further include other components without excluding other components unless otherwise stated.

본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다. 한편, '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, '~부'는 어드레싱 할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.In this specification, a "unit" includes a unit realized by hardware, a unit realized by software, and a unit realized using both. Further, one unit may be realized using two or more hardware, and two or more units may be realized by one hardware. On the other hand, '~ unit' is not limited to software or hardware, and '~ unit' may be configured to be in an addressable storage medium or configured to reproduce one or more processors. Therefore, as an example, '~unit' refers to components such as software components, object-oriented software components, class components, and task components, processes, functions, properties, and procedures. , subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays and variables. Functions provided within components and '~units' may be combined into smaller numbers of components and '~units' or further separated into additional components and '~units'. In addition, components and '~units' may be implemented to play one or more CPUs in a device or a secure multimedia card.

이하에서 언급되는 "사용자 단말"은 네트워크를 통해 서버나 타 단말에 접속할 수 있는 컴퓨터나 휴대용 단말기로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop), VR HMD(예를 들어, HTC VIVE, Oculus Rift, GearVR, DayDream, PSVR 등)등을 포함할 수 있다. 여기서, VR HMD 는 PC용 (예를 들어, HTC VIVE, Oculus Rift, FOVE, Deepon 등)과 모바일용(예를 들어, GearVR, DayDream, 폭풍마경, 구글 카드보드 등) 그리고 콘솔용(PSVR)과 독립적으로 구현되는 Stand Alone 모델(예를 들어, Deepon, PICO 등) 등을 모두 포함한다. 휴대용 단말기는 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, 스마트폰(smart phone), 태블릿 PC, 웨어러블 디바이스뿐만 아니라, 블루투스(BLE, Bluetooth Low Energy), NFC, RFID, 초음파(Ultrasonic), 적외선, 와이파이(WiFi), 라이파이(LiFi) 등의 통신 모듈을 탑재한 각종 디바이스를 포함할 수 있다. 또한, "네트워크"는 단말들 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 근거리 통신망(LAN: Local Area Network), 광역 통신망(WAN: Wide Area Network), 인터넷 (WWW: World Wide Web), 유무선 데이터 통신망, 전화망, 유무선 텔레비전 통신망 등을 포함한다. 무선 데이터 통신망의 일례에는 3G, 4G, 5G, 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), WIMAX(World Interoperability for Microwave Access), 와이파이(Wi-Fi), 블루투스 통신, 적외선 통신, 초음파 통신, 가시광 통신(VLC: Visible Light Communication), 라이파이(LiFi) 등이 포함되나 이에 한정되지는 않는다.A “user terminal” referred to below may be implemented as a computer or portable terminal capable of accessing a server or other terminals through a network. Here, the computer is, for example, a laptop, desktop, laptop, VR HMD (for example, HTC VIVE, Oculus Rift, GearVR, DayDream, PSVR, etc.) equipped with a web browser, etc. can include Here, the VR HMD is for PC (for example, HTC VIVE, Oculus Rift, FOVE, Deepon, etc.), for mobile (for example, GearVR, DayDream, Stormtrooper, Google Cardboard, etc.), and for console (PSVR) and It includes all independently implemented Stand Alone models (eg, Deepon, PICO, etc.). A portable terminal is, for example, a wireless communication device that ensures portability and mobility, and includes not only a smart phone, tablet PC, and wearable device, but also Bluetooth (BLE, Bluetooth Low Energy), NFC, RFID, and ultrasonic waves (Ultrasonic). , various devices equipped with communication modules such as infrared, Wi-Fi, and LiFi. In addition, "network" refers to a connection structure capable of exchanging information between nodes such as terminals and servers, such as a local area network (LAN), a wide area network (WAN), and the Internet. (WWW: World Wide Web), including wired and wireless data communications networks, telephone networks, and wired and wireless television communications networks. Examples of wireless data communication networks include 3G, 4G, 5G, 3rd Generation Partnership Project (3GPP), Long Term Evolution (LTE), World Interoperability for Microwave Access (WIMAX), Wi-Fi, Bluetooth communication, infrared communication, ultrasonic communication, visible light communication (VLC: Visible Light Communication), LiFi, and the like, but are not limited thereto.

먼저 도 1은 본 발명의 일 실시예에 따르는 호스트 장치의 구조도이다.First, FIG. 1 is a structural diagram of a host device according to an embodiment of the present invention.

도 1을 참조하면 본 발명의 호스트 장치는 마스터서버(100), 제 1 슬레이브서버(110), 제 2 슬레이브서버 및 제 3 슬레이브서버를 포함한다.Referring to FIG. 1, the host device of the present invention includes a master server 100, a first slave server 110, a second slave server, and a third slave server.

마스터서버(100)는 복수개의 슬레이브서버들의 접속을 관리하고 관리되는 복수개의 슬레이브서버들의 목록을 접속하는 슬레이브서버들에게 전달한다. 또한, 슬레이브서버들에게 클러스터넘버를 발급한다.The master server 100 manages access of a plurality of slave servers and delivers a list of managed slave servers to the connected slave servers. Also, cluster numbers are issued to slave servers.

슬레이브서버는 복수개의 서버 중 마스터서버(100)를 제외한 장치로 최초에 마스터서버(100)에 접속해서 접속해야 할 다른 슬레이브서버들의 목록을 받아와서 다른 슬레이브서버들에게 접속을 시도한다.The slave server is a device excluding the master server 100 among a plurality of servers, and first accesses the master server 100, receives a list of other slave servers to be connected, and tries to connect to the other slave servers.

이하 도 2를 참조하여 본 발명의 일 실시예에 따르는 복수개의 물리서버의 클러스터링 과정에 대하여 상세히 설명하도록 한다.Hereinafter, a clustering process of a plurality of physical servers according to an embodiment of the present invention will be described in detail with reference to FIG. 2 .

우선 제 1 슬레이브서버(110)가 마스터서버(100)에 접속 및 인증 패킷을 전달한다.(S201) 마스터서버(100)가 제 1 슬레이브서버(110)로 클러스터 넘버 및 접속가능한 다른 슬레이브서버들의 목록을 전달한다.(S202)First, the first slave server 110 transmits an access and authentication packet to the master server 100 (S201). The master server 100 sends the first slave server 110 a cluster number and a list of other accessible slave servers. is delivered. (S202)

상기의 S201 및 S202과정은 도 4a를 참조하여 설명하도록 한다. 서버가 구동되고, 마스터서버(100)와 제 1 슬레이브서버(110)만 존재하게 되면 제 1 슬레이브서버(110)는 마스터서버(100)에 접속하여 제 1 슬레이브서버(110)임을 인증하는 패킷을 전달한다. 마스터서버(100)는 제 1 슬레이브서버(110)의 접속을 확인하고, 고유한 제 1 클러스터넘버와 접속가능한 다른 슬레이브서버들의 목록을 전달한다. 이 때, 제 1 슬레이브서버(110)를 제외한 다른 슬레이브서버는 존재하지 않기 때문에 다른 슬레이브서버들의 목록은 비어 있는 목록일 수 있다.The above steps S201 and S202 will be described with reference to FIG. 4A. When the server is running and only the master server 100 and the first slave server 110 exist, the first slave server 110 accesses the master server 100 and sends a packet authenticating that it is the first slave server 110. convey The master server 100 checks the connection of the first slave server 110 and transmits a unique first cluster number and a list of other accessible slave servers. At this time, since other slave servers other than the first slave server 110 do not exist, the list of other slave servers may be empty.

위에서 언급한 클러스터넘버는 마스터서버(100)가 슬레이브서버들의 접속 및 인증 패킷을 전달하는 순서에 의해 겹치지 않도록 순차적으로 발급하는 고유번호이다. 클러스터넘버에 따라 각 슬레이브서버간 접속수락자 역할과 접속자 역할을 수행하게 된다. 이 때, 슬레이브서버의 마스터서버(100)로의 접속 및 인증 패킷을 전달한 시점이 빠른 슬레이브서버가 접속수락자 역할이 되고, 슬레이브서버의 마스터서버(100)로의 접속 및 인증 패킷을 전달한 시점이 늦은 슬레이브서버가 접속자 역할이 된다.The cluster number mentioned above is a unique number sequentially issued so that the master server 100 does not overlap with the order in which the connection and authentication packets of the slave servers are transmitted. Depending on the cluster number, it plays the role of connection acceptor and accessor between each slave server. At this time, the slave server at the earliest when the slave server connects to the master server 100 and delivers the authentication packet becomes the connection acceptor, and the slave server connects to the master server 100 and delivers the authentication packet later. The server becomes the accessor.

제 2 슬레이브서버가 마스터서버(100)에 접속 및 인증 패킷을 전달한다.(S203) 마스터서버(100)가 제 2 슬레이브서버로 클러스터 넘버 및 접속 가능한 다른 슬레이브서버들의 목록을 전달한다.(S204)The second slave server transfers access and authentication packets to the master server 100. (S203) The master server 100 transfers the cluster number and a list of other accessible slave servers to the second slave server. (S204)

S203과정 내지 S204과정은 이하 도 4b를 참조하여 설명하도록 한다. S202과정 이후에 추가로 제 2 슬레이브서버가 접속하면 제 2 슬레이브서버는 마스터서버(100)로 접속을 수행하여 제 2 슬레이브서버임을 인증하는 패킷을 전달한다. 마스터서버(100)는 제 2 슬레이브서버의 접속을 확인하고, 고유한 제 2 클러스터넘버와 접속 가능한 다른 슬레이브서버들의 목록을 전달한다. 이 때, 제 1 슬레이브서버(110)가 마스터서버(100)에 접속자로 접속해 있기 때문에 다른 슬레이브서버들의 목록에는 제 1 슬레이브서버(110)가 존재 할 수 있다.Steps S203 to S204 will be described below with reference to FIG. 4B. If the second slave server additionally accesses after step S202, the second slave server connects to the master server 100 and transmits a packet verifying that it is the second slave server. The master server 100 checks the connection of the second slave server and transmits a unique second cluster number and a list of other accessible slave servers. At this time, since the first slave server 110 is connected to the master server 100 as a visitor, the first slave server 110 may exist in the list of other slave servers.

마스터서버(100)에 후 순위로 접속한 제 2 슬레이브서버가 제 1 슬레이브서버(110)로 접속 및 인증패킷을 전달하고, 제 1 슬레이브서버(110)가 접속을 수락한다.(S205)The second slave server that accesses the master server 100 in the second priority transfers the access and authentication packet to the first slave server 110, and the first slave server 110 accepts the connection. (S205)

S205과정은 이하 도 4b를 참조하여 설명하도록 한다. S204과정에서 제 2 슬레이브서버는 마스터서버(100)로부터 다른 슬레이브서버들의 목록을 전달 받았고, 해당 목록에는 기 접속해 있던 제 1 슬레이브서버(110)가 있었다. 이에 제 2 슬레이브서버는 제 1 슬레이브서버(110)로 접속하여 제 2 슬레이브서버임을 인증하는 패킷을 전달한다. 제 1 슬레이브서버(110)는 제 2 슬레이브서버를 확인하고 접속을 수락한다. 그래서 제 1 슬레이브서버(110)는 접속수락자가 되고, 제 2 슬레이브서버는 접속자가 된다.Process S205 will be described with reference to FIG. 4B below. In step S204, the second slave server receives a list of other slave servers from the master server 100, and the previously connected first slave server 110 is included in the corresponding list. Accordingly, the second slave server accesses the first slave server 110 and transmits a packet verifying that it is the second slave server. The first slave server 110 checks the second slave server and accepts the connection. Thus, the first slave server 110 becomes an access acceptor, and the second slave server becomes an accessor.

제 3 슬레이브서버가 마스터서버(100)에 접속 및 인증 패킷을 전달하고, 마스터서버(100)가 제 3 슬레이브서버에 클러스터 넘버 및 접속가능한 다른 슬에이브서버들의 목록을 전달한다.(S206)The 3rd slave server transfers the access and authentication packet to the master server 100, and the master server 100 transfers the cluster number and the list of other accessible slave servers to the 3rd slave server. (S206)

S206과정은 이하 도 4c를 참조하여 설명하도록 한다. S205과정까지 제 1 슬레이브서버(110) 및 제 2 슬레이브서버가 마스터서버(100)를 통해 고유한 클러스터넘버를 발급받고, 클러스터링되었다. 이 후 제 3 슬레이브서버가 접속하면 제 3 슬레이브서버는 마스터서버(100)로 접속을 수행하여 제 3 슬레이브서버임을 인증하는 패킷을 전달한다. 마스터서버(100)는 제 3 슬레이브서버의 접속을 확인하고, 고유한 제 3 클러스터넘버와 접속 가능한 다른 슬레이브서버들의 목록을 전달한다. 이 때, 제 1 슬레이브서버(110) 및 제 2 슬레이브서버가 마스터서버(100)에 접속자로 접속해 있기 때문에 다른 슬레이브서버들의 목록에는 제 1 슬레이브서버(110) 및 제 2 슬레이브서버가 존재 할 수 있다.Process S206 will be described below with reference to FIG. 4C. Until step S205, the first slave server 110 and the second slave server were issued a unique cluster number through the master server 100 and clustered. Then, when the third slave server accesses, the third slave server connects to the master server 100 and transmits a packet verifying that it is the third slave server. The master server 100 checks the connection of the third slave server and transmits a unique third cluster number and a list of other accessible slave servers. At this time, since the first slave server 110 and the second slave server are connected to the master server 100 as visitors, the first slave server 110 and the second slave server may exist in the list of other slave servers. there is.

마스터서버(100)에 후 순위로 접속한 제 3 슬레이브서버가 제 1 슬레이브서버(110) 및 제 2 슬레이브서버로 접속 및 인증패킷을 전달하고, 제 1 슬레이브서버(110) 및 제 2 슬레이브서버가 접속을 수락한다.(S207)The third slave server, which accesses the master server 100 in the second order, transfers the connection and authentication packet to the first slave server 110 and the second slave server, and the first slave server 110 and the second slave server Access is accepted. (S207)

S207의 과정은 이하 도 4c를 참조하여 설명하도록 한다. S206과정에서 제 3 슬레이브서버는 마스터서버(100)로부터 다른 슬레이브서버들의 목록을 전달 받았고, 해당 목록에는 기 접속해 있던 제 1 슬레이브서버(110) 및 제 2 슬레이브서버가 있었다. 이에 제 3 슬레이브서버는 제 1 슬레이브서버(110) 및 제 2 슬레이브서버로 접속하여 제 3 슬레이브서버임을 인증하는 패킷을 전달한다. 제 1 슬레이브서버(110) 및 제 2 슬레이브서버는 제 3 슬레이브서버를 확인하고 접속을 수락한다. 그래서 제 1 슬레이브서버(110) 및 제 2 슬레이브서버는 접속수락자가 되고, 제 3 슬레이브서버는 제 1 슬레이브서버(110) 및 제 2 슬레이브서버에 대하여 접속자가 된다.The process of S207 will be described below with reference to FIG. 4C. In step S206, the third slave server receives a list of other slave servers from the master server 100, and the list includes the first slave server 110 and the second slave server that were already connected. Accordingly, the third slave server connects to the first slave server 110 and the second slave server and transmits a packet verifying that it is the third slave server. The first slave server 110 and the second slave server check the third slave server and accept the connection. Thus, the first slave server 110 and the second slave server become connection acceptors, and the third slave server becomes an accessor for the first slave server 110 and the second slave server.

이하 도 3a를 참조하여 본 발명의 일 실시예에 따르는 마스터서버(100)에 순단이 발생하였을 때 복원되는 과정에 대하여 상세히 설명하도록 한다.Hereinafter, with reference to FIG. 3A, a restoration process when a shutdown occurs in the master server 100 according to an embodiment of the present invention will be described in detail.

먼저 마스터서버(100)에 순단이 발생한다.(S301) 마스터서버(100)의 연결 복원까지 새로운 슬레이브서버 연결을 중단한다.(S302) 기 연결된 슬레이브서버들은 마스트서버의 연결 복원까지 재접속을 시도한다.(S303) 마스터서버(100)의 연결이 복원되면 각 슬레이브서버는 연결되는 순서대로 인증 패킷을 전달한다.(S304) 마스터서버(100)는 각 슬레이브서버에 갱신된 새 클러스터넘버를 전달한다.(S305)First, the master server 100 is disconnected. (S301) The connection to the new slave server is stopped until the master server 100 connection is restored. (S302) The previously connected slave servers try to reconnect until the master server 100 is restored. .(S303) When the connection of the master server 100 is restored, each slave server transmits authentication packets in the order of connection. (S304) The master server 100 transmits the updated new cluster number to each slave server. (S305)

S301과정 내지 S305과정은 이하 도 4c 및 도 5a를 참조하여 설명하도록 한다.Steps S301 to S305 will be described with reference to FIGS. 4C and 5A.

도 4c는 마스터서버(100), 제 1 슬레이브서버(110), 제 2 슬레이브서버 및 제 3 슬레이브서버를 포함하는 클러스터링 서버를 나타내는 예시도이다. 각 슬레이브서버는 마스터서버(100)로부터 제 1 클러스터넘버, 제 2 클러스터넘버 및 제 3 클러스터넘버를 전달받았다. 그리고 각 슬레이브서버는 마스터서버(100)에 접속자로 접속해있고, 제 2 슬레이브서버는 제 1 슬레이브서버(110)에 추가로 접속자로 접속해있으며, 제 3 슬레이브서버는 제 1 슬레이브서버(110) 및 제 2 슬레이브서버에 추가로 접속자로 접속해 있다.4C is an exemplary diagram illustrating a clustering server including a master server 100, a first slave server 110, a second slave server, and a third slave server. Each slave server receives the first cluster number, the second cluster number, and the third cluster number from the master server 100 . In addition, each slave server is connected to the master server 100 as a visitor, the second slave server is connected to the first slave server 110 as an additional visitor, and the third slave server is the first slave server 110 and is connected to the second slave server as an additional visitor.

이 후에 마스터서버(100)에 순단이 발생하면 마스터서버(100)가 복원될 때까지 새로운 슬레이브서버의 연결은 중단하고, 기존에 연결되어 있었던 제 1 슬레이브서버(110) 내지 제 3 슬레이브서버는 마스터서버(100)가 연결 복원될 때까지 재접속을 시도한다. 그리고 마스터서버(100)의 연결이 복원되면 제 1 슬레이브서버(110) 내지 제 3 슬레이브서버는 연결되는 순서대로 인증 패킷을 전달한다. 이 때, 기존과 달리 제 1 슬레이브서버(110), 제 3 슬레이브서버 및 제 2 슬레이브서버의 순서대로 마스터서버(100)에 연결될 수 있다. After this, if a shutdown occurs in the master server 100, the connection of the new slave server is suspended until the master server 100 is restored, and the first slave server 110 to the third slave server that was previously connected are connected to the master server 110. Reconnection is attempted until the server 100 restores the connection. When the connection of the master server 100 is restored, the first slave server 110 to the third slave server transmit authentication packets in the order of connection. At this time, unlike in the past, the first slave server 110, the third slave server, and the second slave server can be connected to the master server 100 in order.

그러면 마스터서버(100)는 제 1 슬레이브서버(110) 내지 제 3 슬레이브서버에 제 4 클러스터넘버 내지 제 6 클러스터넘버를 연결된 순서에 맞게 순차적으로 새롭게 전달한다. 이 과정을 통해 제 1 슬레이브서버(110)는 제 4 클러스터넘버를 전달받고, 제 3 슬레이브서버는 제 5 클러스터넘버를 전달받고, 제 2 슬레이브서버는 제 6 클러스터넘버를 전달받았으며, 이를 나타내는 예시도가 도 5a이다.Then, the master server 100 sequentially transmits the fourth to sixth cluster numbers to the first slave server 110 to the third slave server according to the connected order. Through this process, the first slave server 110 received the 4th cluster number, the 3rd slave server received the 5th cluster number, and the 2nd slave server received the 6th cluster number. is Figure 5a.

이하 도 3b를 참조하여 본 발명의 일 실시예에 따르는 제 2 슬레이브서버의 순단이 발생하였을 때 복원되는 과정을 상세히 설명하도록 한다.Hereinafter, with reference to FIG. 3B, a restoration process when a second slave server is disconnected according to an embodiment of the present invention will be described in detail.

제 2 슬레이브서버에 순단이 발생한다.(S311) 마스터서버(100)는 제 2 슬레이브서버의 순단 확인 후 슬레이브서버 목록에서 제 2 슬레이브서버를 제거한다.(S312) 제 2 슬레이브서버는 마스터서버(100)와 재접속을 시도하여 연결을 복원한다.(S313) 마스터서버(100)는 제 2 슬레이브서버에 새로운 클러스터넘버를 전달한다.(S314) 제 2 슬레이브서버는 제 1 슬레이브서버(110)와 재접속을 시동하여 연결을 복원한다.(S315) 제 3 슬레이브서버는 제 2 슬레이브서버로 재접속을 시도하여 연결을 복원한다.(S316)(S311) The master server 100 removes the second slave server from the slave server list after confirming the second slave server. (S312) The second slave server is the master server ( 100) and restores the connection. (S313) The master server 100 transmits a new cluster number to the second slave server. (S314) The second slave server reconnects to the first slave server 110. starts and restores the connection. (S315) The third slave server tries to reconnect to the second slave server and restores the connection. (S316)

S311과정 내지 S316과정에 대한 설명은 이하 도 4c 및 도 5b를 참조하여 설명하도록 한다.A description of steps S311 to S316 will be given with reference to FIGS. 4C and 5B.

도 4c에 대한 설명은 상기 S301과정 내지 S307과정에 대한 설명에서 언급하였기 때문에 생략하도록 한다.The description of FIG. 4c will be omitted since it has been mentioned in the description of steps S301 to S307.

제 2 슬레이브서버에 순단이 발생하면 마스터서버(100)는 제 2 슬레이브서버의 순단을 확인하고, 다른 슬레이브서버들의 목록에서 제 2 슬레이브서버를 제거한 후 새로 접속하는 슬레이브서버들에게 제 2 슬레이브서버가 제외된 목록을 전달 할 준비를 한다. 이 후에 제 n 슬레이브서버(n은 3보다 큰 자연수)가 접속하면 제 2 슬레이브서버가 제외된 슬레이브서버들의 목록을 전달한다.If the second slave server is interrupted, the master server 100 checks the second slave server's interruption, removes the second slave server from the list of other slave servers, and then sends the second slave server to newly connected slave servers. Prepare to pass the excluded list. Afterwards, when the nth slave server (n is a natural number greater than 3) accesses, the second slave server delivers a list of excluded slave servers.

제 2 슬레이브서버는 순단이 발생하면 마스터서버(100)와 재접속을 시도하여 접속을 복원하고, 마스터서버(100)는 제 2 슬레이브서버에게 새로운 클러스터넘버인 제 4 클러스터넘버를 전달한다. 제 2 슬레이브서버는 제 1 슬레이브서버(110)를 대상으로 접속 끊김이 확인되면 접속자 역할로 재접속을 시도하여 연결을 복원한다.When a disconnection occurs, the second slave server tries to reconnect with the master server 100 to restore the connection, and the master server 100 transfers the fourth cluster number, which is a new cluster number, to the second slave server. When the disconnection of the connection to the first slave server 110 is confirmed, the second slave server restores the connection by attempting reconnection in the role of a visitor.

제 3 슬레이브서버에 대해서는 접속수락자 역할로 재접속을 기다리고, 제 3 슬레이브서버는 제 2 슬레이브서버의 접속 끊김이 확인되면 접속자 역할로 재접속을 시도하여 연결을 복원한다. 이 때, 접속자와 접속수락자간의 역할 충돌이 발생하지 않았기 때문에 별도의 역할 변경을 발생하지 않는다. 이상의 과정에 대해 나타내는 것이 도 5b이다. 도 5b에서는 제 1 슬레이브서버(110)와 제 3 슬레이브서버는 클러스터넘버의 변경이 없지만, 제 2 슬레이브서버의 클러스터넘버 변경이 발생하였음을 확인 할 수 있다.As for the third slave server, it waits for reconnection as a connection acceptor, and when the disconnection of the second slave server is confirmed, the third slave server attempts reconnection as a visitor and restores the connection. At this time, no role conflict occurs between the accessor and the access acceptor, so a separate role change does not occur. 5B shows the above process. In FIG. 5B, it can be confirmed that the cluster number of the first slave server 110 and the third slave server has not changed, but the cluster number of the second slave server has changed.

상기에서 언급한 마스터서버(100) 및 제 2 슬레이브서버의 순단은 네트워크 문제로 연결이 잠시 끊기는 것을 의미한다. 그러나 이 외에도 슬레이브서버에서 발생할 수 있는 네트워크 끊김에 따르는 클러스터링 예외처리의 경우가 추가적으로 더 존재하며, 이하 도 5c 및 5d를 참조하여 상세히 설명하도록 한다.The aforementioned connection between the master server 100 and the second slave server means that the connection is temporarily disconnected due to a network problem. However, in addition to this, there are additional cases of clustering exception processing due to network disconnection that may occur in the slave server, which will be described in detail with reference to FIGS. 5C and 5D below.

도 5c는 본 발명의 일 실시예에 따르는 마스터서버(100) 또는 제 2 슬레이브서버에 네트워크 끊김이 발생하여 구동이 종료되었을 때의 예시도이다.FIG. 5C is an exemplary view when the master server 100 or the second slave server according to an embodiment of the present invention is terminated due to network disconnection.

도 4c와 같은 구성으로 클러스터링 서버가 구동되고 있을 때, 제 2 슬레이브서버의 네트워크 연결이 끊기고, 구동이 종료되는 경우, 마스터서버(100)는 제 2 슬레이브서버의 연결 끊김이 확인되면 슬레이브서버들의 목록에서 제 2 슬레이브서버를 제거하고, 새로 접속하는 제 n 슬레이브서버(n은 3보다 큰 자연수) 이후의 모든 슬레이브서버에게 제 2 슬레이브서버가 제외된 목록을 전달한다.When the clustering server is running with the configuration as shown in FIG. 4c, when the network connection of the second slave server is disconnected and the operation is terminated, the master server 100 lists the slave servers when the disconnection of the second slave server is confirmed. The second slave server is removed from , and the list from which the second slave server is excluded is transmitted to all slave servers after the nth slave server (n is a natural number greater than 3) that is newly connected.

제 1 슬레이브서버(110)는 제 2 슬레이브서버에 대하여 접속수락자 역할을 수행하였기 때문에 제 2 슬레이브서버의 접속 끊김이 확인되면 제 2 슬레이브서버에 대한 모든 정보를 제거한다.Since the first slave server 110 performed the role of an access acceptor for the second slave server, when disconnection of the second slave server is confirmed, all information on the second slave server is removed.

제 3 슬레이브서버는 제 2 슬레이브서버에 대하여 접속자 역할을 수행하였기 때문에 제 2 슬레이브서버의 접속 끊김이 확인되면 제 2 슬레이브서버로 재접속을 시도한다. 이 때, 제 2 슬레이브서버로 재접속이 실패하면 마스터서버(100)에게 갱신될 슬레이브서버들의 목록을 요청한다. 이 과정에서 제 3 슬레이브서버의 제 2 슬레이브서버와 제 3 슬레이브서버 사이의 접속만 끊긴 경우와 제 2 슬레이브서버가 마스터서버(100) 및 모든 슬레이브서버와 접속이 끊긴 경우로 구분하여 재접속을 하게 된다.Since the 3rd slave server performed the role of a visitor to the 2nd slave server, it tries to reconnect to the 2nd slave server when disconnection of the 2nd slave server is confirmed. At this time, if reconnection to the second slave server fails, the list of slave servers to be updated is requested from the master server 100 . In this process, reconnection is performed by dividing into a case where only the connection between the 2nd slave server and the 3rd slave server of the 3rd slave server is disconnected and a case where the 2nd slave server is disconnected from the master server 100 and all slave servers. .

제 2 슬레이브서버와 제 3 슬레이브서버 사이의 접속만 끊긴 경우, 제 3 슬레이브서버는 제 2 슬레이브서버로 재접속이 실패하면 마스터서버(100)에 제 2 슬레이브서버의 접속 확인을 요청하고, 마스터서버(100)는 제 2 슬레이브서버의 접속이 유지되고 있음을 제 3 슬레이브서버에게 알려준다. 제 2 슬레이브서버가 마스터서버(100)로의 접속이 유지 돼 있음을 확인한 제 3 슬레이브서버는 제 2 슬레이브서버로의 재접속 및 마스터서버(100)로 접속 확인 요청을 반복하여 시도한다.If only the connection between the second slave server and the third slave server is disconnected, the third slave server requests the master server 100 to confirm the connection of the second slave server when reconnection to the second slave server fails, and the master server ( 100) informs the third slave server that the connection of the second slave server is being maintained. After confirming that the connection to the master server 100 is maintained by the second slave server, the third slave server repeatedly tries to reconnect to the second slave server and request connection confirmation to the master server 100 .

제 2 슬레이브서버가 마스터서버(100) 및 모든 슬레이브서버와 접속이 끊긴 경우, 제 3 슬레이브서버는 제 2 슬레이브서버로 재접속이 실패하면 마스터서버(100)에 제 2 슬레이브서버의 접속 확인을 요청하고, 마스터서버(100)는 제 2 슬레이브서버의 접속이 끊김을 제 3 슬레이브서버에게 알려준다. 제 2 슬레이브서버가 마스터서버(100)로의 접속이 끊겼음을 확인한 제 3 슬레이브서버는 재접속을 중단하고 제 2 슬레이브서버에 대한 모든 정보를 제거한다.If the second slave server is disconnected from the master server 100 and all slave servers, and the third slave server fails to reconnect to the second slave server, it requests the master server 100 to confirm the connection of the second slave server, and , the master server 100 notifies the third slave server that the second slave server is disconnected. After confirming that the second slave server has disconnected from the master server 100, the third slave server suspends the reconnection and removes all information about the second slave server.

도 5d는 본 발명의 일 실시예에 따르는 마스터서버(100) 또는 제 2 슬레이브서버에 네트워크 끊김이 발생하여 재구동 되었을 때의 예시도이다.5D is an exemplary view when the master server 100 or the second slave server according to an embodiment of the present invention is restarted due to network disconnection.

도 5d를 설명함에 있어서 상기의 도 5c에 대한 설명과 동일한 내용은 생략하도록 한다.In the description of FIG. 5D, the same content as the description of FIG. 5C above will be omitted.

도 4c와 같은 구성으로 클러스터링 서버가 구동되고 있을 때, 제 2 슬레이브서버의 네트워크 연결이 끊기고, 재구동 된 경우, 마스터서버(100) 및 제 1 슬레이브서버(110)는 앞에서 도 5c를 설명하며 언급한 내용과 동일한 과정을 수행한다.When the clustering server is running with the configuration as shown in FIG. 4c, and the network connection of the second slave server is disconnected and restarted, the master server 100 and the first slave server 110, as mentioned in the previous description of FIG. 5c, Follow the same process as for

제 3 슬레이브서버는 제 2 슬레이브서버에 대하여 접속자 역할을 수행하였기 때문에 제 2 슬레이브서버의 접속 끊김이 확인되면 제 2 슬레이브서버로 재접속을 시도한다. 이 때, 재접속 과정은 제 2 슬레이브서버의 재구동 및 클러스터링이 완료되는 경우와 제 2 슬레이브서버의 재구동 또는 클러스터링이 완료되지 않은 두 가지 경우로 구분하여 설명할 수 있다.Since the 3rd slave server performed the role of a visitor to the 2nd slave server, it tries to reconnect to the 2nd slave server when disconnection of the 2nd slave server is confirmed. At this time, the reconnection process can be described by dividing into two cases: a case in which restarting and clustering of the second slave server are completed, and a case in which restarting or clustering of the second slave server is not completed.

제 2 슬레이브서버의 재구동 및 클러스터링이 완료된 경우, 제 2 슬레이브서버는 마스터서버(100)로부터 새로운 클러스터넘버인 제 4 클러스터넘버 및 다른 슬레이브서버들의 목록을 발급받고, 목록에 있는 다른 슬레이브서버들로 접속자 역할로 접속을 시도한다. 이 경우 기존 연결에서는 제 2 슬레이브서버가 제 3 슬레이브서버에 대하여 접속수락자 역할이었으나 재구동 후에는 접속자로 역할이 바뀌게 된다. 이 때, 제 3 슬레이브서버도 제 2 슬레이브서버에 대하여 접속자 역할을 유지할 수 있기 때문에 같은 접속자로 역할로 역할 충돌이 발생하게 된다. When the restarting and clustering of the second slave server are completed, the second slave server receives a new cluster number, the fourth cluster number, from the master server 100 and a list of other slave servers, and transfers them to other slave servers in the list. Attempts to connect in the role of accessor. In this case, in the existing connection, the second slave server played the role of access acceptor for the third slave server, but after the restart, the role changes to the accessor. At this time, since the third slave server can also maintain the role of an accessor with respect to the second slave server, a role conflict occurs with the same accessor.

그래서 제 2 슬레이브서버와 제 3 슬레이브서버는 서로의 클러스터넘버를 비교하고, 우선순위에 따라 제 2 슬레이브서버는 접속자 역할을 유지하고, 제 3 슬레이브서버는 접속수락자로 역할이 바뀌게 되어 접속자 역할로 접속했던 네트워크 연결을 해제한다.So, the 2nd slave server and the 3rd slave server compare each other's cluster numbers, and according to the priority, the 2nd slave server maintains the role of an accessor, and the 3rd slave server changes its role to an access acceptor and connects as an accessor role. Disconnect the network connection you had.

제 2 슬레이브서버의 재구동 또는 클러스터링이 완료되기 전에 제 3 슬레이브서버가 마스터서버(100)로부터 제 2 슬레이브서버와의 연결이 끊겼음을 확인한 경우, 제 3 슬레이브서버는 제 2 슬레이브서버와 재접속 시도를 중단하고, 제 2 슬레이브서버의 모든 정보를 제거한다. 이 후에 제 2 슬레이브서버가 재구동되면 마스터서버(100)로부터 새로운 클러스터넘버인 제 4 클러스터넘버 및 다른 슬레이브서버들의 목록을 발급 받는다. 그리고 제 3 슬레이브서버에 대하여 접속자 역할로 접속을 시도하게 되고, 제 3 슬레이브서버는 접속수락자 역할로 연결 및 등록을 완료한다.If the third slave server confirms that the connection with the second slave server is disconnected from the master server 100 before restarting or clustering of the second slave server is completed, the third slave server attempts reconnection with the second slave server. is stopped, and all information of the second slave server is removed. After that, when the second slave server is restarted, it receives a fourth cluster number, which is a new cluster number, and a list of other slave servers from the master server 100 . Then, an attempt is made to access the third slave server in the role of an accessor, and the third slave server completes connection and registration in the role of an access acceptor.

이하 도 6을 참조하여 본 발명의 일 실시예에 따르는 클라이언트 장치가 호스트 장치를 통해 패킷을 전달하는 과정을 상세히 설명하도록 한다.Hereinafter, referring to FIG. 6, a process in which a client device according to an embodiment of the present invention transmits a packet through a host device will be described in detail.

먼저 복수의 슬레이브서버와 마스터서버(100)로 호스트 장치들 간의 연결관계가 규정되는 단계가 진행된다.(S400) 이 과정은 상기 도 2를 참조하여 설명하였으므로 생략하도록 한다. 여기서 호스트 장치들이란 복수의 서버들을 의미하는 것으로서, 슬레이브서버와 마스터서버 모두를 포함하는 개념이다. First, a step of defining the connection relationship between the host devices with the plurality of slave servers and the master server 100 is performed (S400). Since this process has been described with reference to FIG. 2 above, it will be omitted. Here, the host devices mean a plurality of servers, and is a concept including both slave servers and master servers.

그 다음 복수의 클라이언트 장치가 호스트 장치들에 등록한다.(S410) S400과정에서 호스트 장치들이 연결되면 클라이언트 장치는 호스트 장치들 중 어느 하나에 접속하여 인증 패킷을 전달한다. 호스트 장치는 클라이언트 장치의 인증 패킷을 전달받은 후 해당 클라이언트 장치를 자신이 관리하는 클라이언트 장치들 중 하나로 등록한다. 이 때, 호스트 장치에서 관리되는 장치들은 클러스터링 된 호스트 장치들과 자신이 관리하는 클라이언트 장치들 두 종류로 구분한다.Then, a plurality of client devices are registered with the host devices (S410). When the host devices are connected in step S400, the client device accesses one of the host devices and transmits an authentication packet. After receiving the authentication packet of the client device, the host device registers the client device as one of the client devices it manages. At this time, the devices managed by the host device are classified into two types: clustered host devices and client devices managed by itself.

이렇게 복수의 클라이언트 장치가 호스트 장치들에 등록되어 연결된 것을 나타내는 도면이 도 7이다. 도 7에는 호스트 장치를 구성하는 마스터서버(100), 제 1 슬레이브서버(110), 제 2 슬레이브서버(120) 및 제 3 슬레이브서버(130) 각각에 복수개의 클라이언트 장치들(101, 102,??,132,133)이 연결된 것을 확인 할 수 있다.7 is a diagram illustrating that a plurality of client devices are registered and connected to host devices. 7 shows a plurality of client devices (101, 102, ? ?,132,133) are connected.

마스터서버(100)에는 제 1 클라이언트 장치(101), 제 2 클라이언트 장치(102) 및 제 3 클라이언트 장치(103)가 연결되고, 제 1 슬레이브서버(110)에는 제 1-1 클라이언트 장치(111), 제 1-2 클라이언트 장치(112) 및 제 1-3 클라이언트 장치(113)가 연결된다. 제 2 슬레이브서버에는 제 2-1 클라이언트 장치(121), 제 2-2 클라이언트 장치(122) 및 제 2-3 클라이언트 장치(123)가 연결되고, 제 3 슬레이브서버에는 제 3-1 클라이언트 장치(131), 제 3-2 클라이언트 장치(132) 및 제 3-3 클라이언트 장치(133)가 연결된다.The first client device 101, the second client device 102, and the third client device 103 are connected to the master server 100, and the 1-1 client device 111 is connected to the first slave server 110. , the 1-2nd client device 112 and the 1-3rd client device 113 are connected. The 2-1 client device 121, the 2-2 client device 122, and the 2-3 client device 123 are connected to the second slave server, and the 3-1 client device ( 131), the 3-2nd client device 132 and the 3-3rd client device 133 are connected.

그리고 클라이언트 장치가 호스트 장치로 역할 정보 및 패킷 종류 정보를 전송한다.(S420)Then, the client device transmits role information and packet type information to the host device (S420).

클라이언트 장치는 접속한 호스트 장치에게 클라이언트 역할 정보와 네트워크 패킷 종류 정보를 전송하는데, 클라이언트 역할 정보는 해당 클라이언트가 패킷발신자와 전달자 중 어떠한 역할인지 규정하는 정보이다. 이 때, 역할 정보와 네트워크 패킷 종류 정보는 1회 전송되고, 역할 정보나 네트워크 패킷 종류 정보가 바뀌기 전까지 추가로 전송되지 않는다. 예를 들어 a그룹을 처리하기 위한 패킷이 b그룹을 처리하기 위해서는 클라이언트 장치의 역할 정보나 네트워크 패킷 종류 정보를 b그룹을 처리하기 위한 것으로 바꾸어주어야 한다. 호스트 장치 운영자는 호스트장치를 독립적으로 운용하며, 이러한 클라우드 서비스를 이용하려는 각각의 사용자들은 자신만의 목적을 위해 해당 호스트장치를 사용하고자 할 것이다. 예를 들면, 교육영상을 제공하고자 하는 사용자들의 클라이언트장치에게 해당 호스트장치를 이용할 수 있도록 서비스해주었다가, 교육영상을 제공하는 이벤트가 종료된 이후에는, O2O플랫폼 서비스를 제공하고자 하는 사용자들의 클라이언트장치들에게 해당 호스트장치를 이용할 수 있도록 서비스해줄 수도 있다. 이러한 경우, 각각의 클라이언트 장치들의 역할 정보나 네트워크 패킷종류 정보가 바뀌게 되며, 이렇게 바뀌는 이벤트가 발생하는 경우에만 추가 전송을 하면되고, 한번 전송한 이후에는 재전송을 하지 않는다. The client device transmits client role information and network packet type information to the connected host device, and the client role information is information defining which role the corresponding client is between a packet sender and a forwarder. At this time, the role information and the network packet type information are transmitted once, and are not additionally transmitted until the role information or the network packet type information is changed. For example, in order for a packet for processing group a to process group b, role information or network packet type information of a client device must be changed to a packet for processing group b. The host device operator operates the host device independently, and each user who wants to use the cloud service will want to use the corresponding host device for his/her own purpose. For example, the service is provided to the client devices of users who want to provide educational videos so that they can use the corresponding host device, and after the event to provide educational videos ends, the client devices of users who want to provide O2O platform services. It is also possible to provide a service so that users can use the corresponding host device. In this case, role information or network packet type information of each client device is changed, and additional transmission is required only when an event such a change occurs, and retransmission is not performed after transmission once.

종래 기술에는 일정주기마다 역할 정보와 네트워크 패킷 종류 정보를 전송하지만, 일정주기마다 전송할 경우 전송하는 건 수에 따라서 부하가 커지게 된다. 클라이언트가 접속을 유지하고 있는지 여부만 확인 가능하면 역할 정보와 네트워크 패킷 종류 정보는 1회만 전송하고, 반복해서 보내지 않아도 된다. 그러나 새로운 클라이언트 장치가 클러스터링에 접속하면 해당 호스트 장치가 관리하고 있던 클라이언트 역할 정보들과 네트워크 패킷 종류 정보를 전달한다.In the prior art, role information and network packet type information are transmitted at regular intervals, but when they are transmitted at regular intervals, the load increases according to the number of transmissions. If it is possible to check whether the client is maintaining the connection, role information and network packet type information are transmitted only once and do not need to be transmitted repeatedly. However, when a new client device accesses the clustering, it transfers client role information and network packet type information managed by the corresponding host device.

본 발명에서 각각의 호스트 장치는 메인 쓰래드(210)(main thread)와 네트워크 패킷 처리 쓰래드(240)(network packet processing thread)를 포함한다. In the present invention, each host device includes a main thread 210 (main thread) and a network packet processing thread 240 (network packet processing thread).

메인 쓰래드(210)는 호스트 장치들이나 클라이언트 장치들을 관리하고, 자신에게 접속 해 오는 장치들의 등록 및 등록 해제 처리를 하면서, 호스트 장치들간의 통신 또는 호스트 장치와 클라이언트 장치들간의 패킷 흐름을 제어한다. 즉, 특정 네트워크 페이로드 패킷이 어느 호스트 장치 또는 어느 클라이언트 장치로 전달 돼야 하는지에 대한 타겟 장치 등록 및 등록 해제와 같은 흐름 제어를 한다.The main thread 210 manages host devices or client devices, registers and deregisters devices accessing it, and controls communication between host devices or packet flow between host devices and client devices. That is, flow control such as registration and deregistration of target devices regarding which host device or which client device a specific network payload packet should be delivered to is performed.

네트워크 패킷 처리 쓰래드(240)는 네트워크 페이로드 패킷 처리 쓰래드로도 불리며, 송신 쓰래드(222)와 수신 쓰래드(221)를 포함한다. 송신 쓰래드(222)와 수신 쓰래드(221)는 각각이 하나의 호스트 장치에 할당된다. 이는 특정 장치에서 발생하는 네트워크 통신간의 송신 문제 또는 수신 문제가 다른 장치의 통신에 영향을 주지 않게 하기 위해서이다. 특정 호스트 장치로부터 전달 받은 패킷은 수신 쓰래드(221)에 의해 처리 되고, 패킷 중 제어 패킷을 메인 쓰래드(210)로 전달하여 메인 쓰래드(210)에 의해 지정 된 타겟 장치의 송신 쓰래드(222)로 페이로드 패킷을 전달 한다. 이에 대한 설명은 도 8을 참조하여 설명하도록 한다. Network packet processing thread 240, also referred to as network payload packet processing thread, includes a transmit thread 222 and a receive thread 221. A transmitting thread 222 and a receiving thread 221 are each assigned to one host device. This is to ensure that a transmission problem or a reception problem between network communications occurring in a specific device does not affect the communication of other devices. A packet received from a specific host device is processed by the receiving thread 221, and among the packets, a control packet is transferred to the main thread 210, and the page is sent to the sending thread 222 of the target device designated by the main thread 210. Forward the load packet. A description thereof will be made with reference to FIG. 8 .

이하 도 8은 본 발명의 일 실시예에 따르는 제 n 슬레이브서버에서의 쓰래드 분리를 통한 네트워크 패킷 제어에 대한 예시도이다. 하기 설명에서는 도 8을 도시된 메인 쓰래드(210), 제 1 슬레이브서버에 대한 네트워크 패킷 처리 쓰래드(220) 및 제 2 슬레이브서버에 대한 네트워크 패킷 처리 쓰래드(230)를 포함하는 제 n 슬레이브서버로 설정하여 설명하도록 한다. 즉, 각각의 슬레이브서버는 다른 슬레이브서버에 대한 네트워크 패킷처리 쓰래드를 각각 포함하고 있다. 8 is an exemplary diagram for network packet control through thread separation in an nth slave server according to an embodiment of the present invention. In the following description, the main thread 210 shown in FIG. 8 is set as the n-th slave server including the network packet processing thread 220 for the first slave server and the network packet processing thread 230 for the second slave server. to explain. That is, each slave server includes a network packet processing thread for other slave servers.

제 1 슬레이브서버에서 제어 패킷과 페이로드 패킷을 포함한 패킷이 제 n 슬레이브서버로 전달되면, 그 패킷은 제 1 슬레이브서버에 대한 네트워크 패킷 처리 쓰래드(220)의 수신 쓰래드(221)로 전달된다. 수신 쓰래드(221)는 전달된 패킷 중 제어 패킷을 메인 쓰래드(210)에 전달한다. 메인 쓰래드(210)는 제어 패킷을 통해 페이로드 패킷이 어떤 호스트 장치로 가는 것인지 확인하고, 해당하는 타켓 호스트 장치가 제 2 슬레이브서버임을 인식한다. 그 다음, 제 1 슬레이브서버에 대한 네트워크 패킷 처리 쓰래드(220)는 수신 쓰래드(221)로 전달 받은 페이로드 패킷을 제 2 슬레이브서버에 대한 네트워크 패킷 처리 쓰래드(230)의 송신 쓰래드(222)로 전달한다. 페이로드 패킷을 전달 받은 제 2 슬레이브서버에 대한 네트워크 패킷 처리 쓰래드(230)의 송신 쓰래드(222)는 페이로드 패킷을 제 2 슬레이브서버로 전달한다. When a packet including a control packet and a payload packet is transferred from the first slave server to the nth slave server, the packet is transferred to the receiving thread 221 of the network packet processing thread 220 for the first slave server. The receiving thread 221 transfers a control packet among the transferred packets to the main thread 210 . The main thread 210 checks which host device the payload packet is going to through the control packet, and recognizes that the corresponding target host device is the second slave server. Next, the network packet processing thread 220 for the first slave server transfers the payload packet received through the reception thread 221 to the transmission thread 222 of the network packet processing thread 230 for the second slave server. do. The transmitting thread 222 of the network packet processing thread 230 for the second slave server that has received the payload packet transfers the payload packet to the second slave server.

상기 도 8에서 설명한 슬레이브서버간의 패킷 이동은 패킷의 무결성이 보장되어야 하며, 패킷 전달 시 지연도 최소화 하여야 한다. 패킷 무결성을 보장하기 위해서 패킷 전체를 MTU 단위의 프레임으로 나누어 네트워크로 전달하는데 이하 도 9를 참조하여 설명하도록 한다.Packet movement between slave servers described in FIG. 8 requires guaranteeing packet integrity and minimizing delay during packet transmission. In order to guarantee packet integrity, the entire packet is divided into MTU-unit frames and transmitted to the network, which will be described with reference to FIG. 9 below.

도 9는 본 발명의 일 실시예에 따르는 MTU의 구성을 나타내는 예시도이다. MTU는 패킷을 전달할 때, 최대 1500byte의 크기로 나누어 보낸다. 패킷 구성은 프레임 번호, 패킷의 시작, 패킷의 종료, 프레임 크기 및 프레임에 대한 정보를 포함한다. 도 9에서는 4000byte 크기의 프레임을 각각 1500byte, 1500byte 및 1000byte의 크기로 나누고 프레임 번호를 0, 1 및 2로 구분하였다.9 is an exemplary diagram illustrating a configuration of an MTU according to an embodiment of the present invention. When MTU transmits a packet, it divides it into a maximum size of 1500 bytes and sends it. Packet configuration includes frame number, start of packet, end of packet, frame size, and information about the frame. In FIG. 9, a frame of 4000 bytes is divided into 1500 bytes, 1500 bytes, and 1000 bytes, respectively, and frame numbers are divided into 0, 1, and 2.

호스트 장치가 다른 호스트 장치들로 클라이언트 역할 정보 및 패킷 종류 정보를 공유한다.(S430)The host device shares client role information and packet type information with other host devices (S430).

호스트 장치는 자신에게 접속한 클라이언트 장치로부터 받은 클라이언트 역할 정보와 네트워크 패킷 종류 정보를 관리하고, 자신이 관리하는 모든 클라이언트 역할과 네트워크 패킷 종류 정보를 클러스터링 돼 있는 다른 호스트 장치들에게 전달한다.A host device manages client role information and network packet type information received from client devices accessing it, and transmits all client role and network packet type information managed by itself to other clustered host devices.

호스트 장치는 다른 호스트 장치로부터 전달 받은 역할 정보를 자신이 관리하고 있는 클라이언트 장치로 공유한다.(S440)The host device shares the role information received from other host devices with the client devices it manages (S440).

호스트 장치는 다른 호스트 장치로부터 전달받은 클라이언트 장치들의 역할 정보들과 네트워크 패킷 종류 정보들 중 클라이언트 장치들의 역할 정보는 호스트 장치가 관리하고 있는 모든 클라이언트 장치들에게 전달한다. 클라이언트 역할 정보를 클라이언트 장치들에게 전달하면 클러스터링 서비스에 접속 해 있는 모든 클라이언트들 각각이 원하는 원격지의 클라이언트 장치를 직접 관리할 수 있다.The host device transmits the role information of client devices among the role information of client devices and network packet type information received from other host devices to all client devices managed by the host device. If client role information is delivered to client devices, all clients connected to the clustering service can directly manage the desired remote client device.

네트워크 패킷 종류 정보는 호스트 장치들간의 통신만으로 특정 네트워크 패킷을 특정 클라이언트 장치들에게 전달할 수 있기 때문에 네트워크 패킷 종류 정보는 클라이언트 장치들에게 전달하지 않고 호스트 장치 자신만이 관리한다. 즉 이 패킷이 어디로 가야 하는지 호스트 장치만 알고 있으면 된다.Since network packet type information can deliver specific network packets to specific client devices only through communication between host devices, the network packet type information is managed only by the host device itself without being transmitted to the client devices. That is, only the host device needs to know where this packet is going.

호스트 장치들로부터 전달받은 클라이언트 장치의 역할 정보는 특정 클라이언트 장치가 원하는 역할의 클라이언트 장치들을 관리 할 수 있다.The role information of the client device transmitted from the host devices can manage client devices having a role desired by a specific client device.

예를 들어 제 2 슬레이브서버에 등록 된 제 2-1 클라이언트 장치(121)의 역할을 제 1 슬레이브서버(110)에 등록 된 제 1-1 클라이언트 장치(111)가 등록해서 관리하다가 제 2-1 클라이언트 장치(121)의 구동이 종료되면 제 2 슬레이브서버는 제 1 슬레이브서버(110)에 제 2-1 클라이언트 장치(121)의 구동이 종료됨을 알리고, 제 1-1 클라이언트 장치(111)는 제 2-1 클라이언트 장치(121)의 구동이 종료로 인하여 관리 정보를 제거하고, 제 2-1 클라이언트 장치(121)가 진행중인 서비스를 동일한 역할 수행이 가능한 다른 클라이언트장치를 찾아서 통신하도록 한다.For example, the role of the 2-1st client device 121 registered in the 2nd slave server is registered and managed by the 1-1st client device 111 registered in the 1st slave server 110. When the driving of the client device 121 is terminated, the second slave server notifies the first slave server 110 that the driving of the 2-1 client device 121 is terminated, and the 1-1 client device 111 When the operation of the 2-1 client device 121 is terminated, the management information is removed, and the 2-1 client device 121 searches for and communicates with other client devices capable of performing the same role as the ongoing service.

클라이언트 장치가 특정 패킷을 호스트 장치로 패킷 종류 정보와 함께 전달한다.(S450) 호스트 장치는 기 저장된 각 클라이언트 장치 별 패킷 종류 정보를 참고하여 특정 패킷을 처리할 수 있는 클라이언트 장치와 연결된 다른 호스트 장치로 전달한다.(S460)The client device forwards the specific packet to the host device along with packet type information (S450). The host device refers to the pre-stored packet type information for each client device and sends it to another host device connected to the client device that can process the specific packet. Deliver. (S460)

예를 들면 제 2-1 클라이언트 장치(121)가 특정 종류의 패킷을 제 2 슬레이브서버에게 네트워크 패킷 종류 정보와 함께 전달한다. 그러면 제 2 슬레이브서버는 해당 종류의 패킷을 받아서 처리할 수 있는 클라이언트 장치를 등록 중인 호스트 장치들에게 전달하고, 전달 받은 호스트 장치들은 해당 종류의 패킷을 받아서 처리할 수 있는 클라이언트 장치를 찾아서 전달한다.For example, the 2-1 client device 121 transfers a specific type of packet to the second slave server along with network packet type information. Then, the second slave server transfers client devices capable of receiving and processing packets of the corresponding type to the registered host devices, and the received host devices find and deliver client devices capable of receiving and processing packets of the corresponding type.

클라이언트 장치 또는 호스트 장치는 패킷을 수신할 때, 패킷의 앞 구조를 분석하여 제어 패킷과 페이로드 패킷을 식별할 수 있고, 이를 통해 메인 쓰래드(210)와 네트워크 패킷 처리 쓰래드(240) 중 어느 쓰래드를 통하여 처리할 것인지 결정한다. 제어 패킷과 페이로드 패킷의 종류를 구분하는 것은 이하 도 10을 참조하여 설명하도록 한다.When a client device or a host device receives a packet, it can identify a control packet and a payload packet by analyzing the front structure of the packet, and through this, which thread among the main thread 210 and the network packet processing thread 240 decide whether to proceed through Classification of the types of control packets and payload packets will be described with reference to FIG. 10 below.

도 10은 본 발명의 일 실시예에 따르는 패킷의 종류를 구분하는 것을 나타내는 예시도이다.10 is an exemplary diagram illustrating classification of packet types according to an embodiment of the present invention.

각각의 패킷 데이터를 제어 패킷과 페이로드 패킷으로 구분할 때, 구분이 신속히 진행되어야 패킷 전달간의 지연이 최소화된다. 본 발명에서는 패킷의 종류를 구분 짓는 정보를 패킷 전체 중 가장 앞에 위치 시키며, 제어 패킷은 "0" 페이로드 패킷은 "1"로 구분하였다. 이를 통해 클라이언트 장치 또는 호스트 장치는 패킷을 수신하면 다른 정보의 분석 없이 패킷 맨 앞의 일부 데이터만 가지고 제어 패킷 또는 페이로드 패킷을 구분하여 패킷 분석간에 발생할 수 있는 지연을 최소화 시킬 수 있다.When each packet data is divided into a control packet and a payload packet, the delay between packet transmissions is minimized when the division proceeds quickly. In the present invention, information for classifying packet types is placed at the front of all packets, and control packets are classified as "0" and payload packets as "1". Through this, when a client device or a host device receives a packet, it can minimize a delay that may occur between packet analysis by distinguishing a control packet or a payload packet with only some data at the beginning of the packet without analyzing other information.

본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.An embodiment of the present invention may be implemented in the form of a recording medium including instructions executable by a computer, such as program modules executed by a computer. Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. Also, computer readable media may include all computer storage media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.

본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. An embodiment of the present invention may be implemented in the form of a recording medium including instructions executable by a computer, such as program modules executed by a computer. Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. Also, computer readable media may include all computer storage media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.

본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.Although the methods and systems of the present invention have been described with reference to specific embodiments, some or all of their components or operations may be implemented using a computer system having a general-purpose hardware architecture.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The above description of the present invention is for illustrative purposes, and those skilled in the art can understand that it can be easily modified into other specific forms without changing the technical spirit or essential features of the present invention. will be. Therefore, the embodiments described above should be understood as illustrative in all respects and not limiting. For example, each component described as a single type may be implemented in a distributed manner, and similarly, components described as distributed may be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is indicated by the following claims rather than the detailed description above, and all changes or modifications derived from the meaning and scope of the claims and equivalent concepts should be construed as being included in the scope of the present invention. do.

100: 마스터서버 101: 제 1 클라이언트 장치
102: 제 2 클라이언트 장치 103: 제 3 클라이언트 장치
110: 제 1 슬레이브서버 111: 제 1-1 클라이언트 장치
112: 제 1-2 클라이언트 장치 113: 제 1-3 클라이언트 장치
120: 제 2 슬레이브서버 121: 제 2-1 클라이언트 장치
122: 제 2-2 클라이언트 장치 123: 제 2-3 클라이언트 장치
130: 제 3 슬레이브서버 131: 제 3-1 클라이언트 장치
132: 제 3-2 클라이언트 장치 133: 제 3-3 클라이언트 장치
210: 메인 쓰래드 220: 제 1 슬레이브서버에 대한 네트워크 패킷 처리 쓰래드
221: 수신 쓰래드 230: 제 2 슬레이브서버에 대한 네트워크 패킷 처리 쓰래드
222: 송신 쓰래드 240: 네트워크 패킷 처리 쓰래드
100: master server 101: first client device
102: second client device 103: third client device
110: 1st slave server 111: 1-1st client device
112: 1st-2nd client device 113: 1st-3rd client device
120: second slave server 121: 2-1 client device
122: 2-2nd client device 123: 2-3rd client device
130: 3rd slave server 131: 3-1st client device
132: 3-2nd client device 133: 3-3rd client device
210: main thread 220: network packet processing thread for the first slave server
221: receiving thread 230: network packet processing thread for the second slave server
222: sending thread 240: network packet processing thread

Claims (14)

클라이언트 장치 등록 및 초저지연을 위한 대용량 네트워크 패킷 관리방법에 있어서,
(a) 호스트 장치들 각각마다 복수의 클라이언트 장치가 등록되는 단계;
(b) 상기 클라이언트 장치가 호스트 장치로 클라이언트 역할 정보 및 처리해야할 네트워크 패킷 종류 정보를 전송하고, 상기 호스트 장치는 다른 호스트 장치들로 상기 클라이언트 역할 정보 및 네트워크 패킷 종류 정보를 공유하는 단계;
(c) 상기 호스트 장치는 다른 호스트 장치들로부터 전달받은 정보들 중, 클라이언트 역할 정보를 자신이 관리하고 있는 클라이언트 장치로 공유하는 단계; 및
(d) 상기 클라이언트 장치가 특정 패킷을 호스트 장치로 네트워크 패킷 종류 정보와 함께 전달할 경우, 상기 호스트 장치는 기 저장된 각 클라이언트 장치 별 네트워크 패킷 종류 정보를 참고하여, 상기 특정 패킷을 처리할 수 있는 클라이언트 장치와 연결된 다른 호스트 장치로 전달하여, 상기 특정 패킷이 타 클라이언트 장치에서 처리될 수 있도록 하는 단계;
를 포함하되, 상기 호스트 장치들은 복수의 슬레이브서버와 마스터서버로 구성되며, 상기 (b) 내지 (d) 단계는, 각 호스트 장치마다 수행되는 것인,
클라이언트 장치 등록 및 초저지연을 위한 대용량 네트워크 패킷 관리방법.
In the large-capacity network packet management method for client device registration and ultra-low delay,
(a) registering a plurality of client devices for each of the host devices;
(b) the client device transmitting client role information and network packet type information to be processed to a host device, and the host device sharing the client role information and network packet type information with other host devices;
(c) sharing, by the host device, client role information among information received from other host devices with a client device managed by the host device; and
(d) When the client device forwards a specific packet to the host device along with network packet type information, the host device may process the specific packet by referring to pre-stored network packet type information for each client device. transferring the specific packet to another host device connected to the other client device so that the specific packet can be processed;
Including, wherein the host devices are composed of a plurality of slave servers and master servers, and the steps (b) to (d) are performed for each host device,
A large network packet management method for client device registration and ultra-low latency.
제 1항에 있어서,
상기 호스트 장치에서 관리되는 장치들은 클러스터링 된 상기 호스트 장치들과 상기 호스트 장치에게 인증 패킷을 전달한 상기 클라이언트 장치들 중 어느 하나에 해당하는 것인,
클라이언트 장치 등록 및 초저지연을 위한 대용량 네트워크 패킷 관리방법.
According to claim 1,
The devices managed by the host device correspond to any one of the clustered host devices and the client devices that delivered the authentication packet to the host device.
A large network packet management method for client device registration and ultra-low latency.
제 1항에 있어서,
상기 (b) 단계는, 상기 클라이언트 장치는 클라이언트 역할 정보 및 처리해야할 네트워크 패킷 종류 정보가 변경될 경우, 클라이언트 역할 정보 및 네트워크 패킷 종류 정보를 추가로 전달하는 것인,
클라이언트 장치 등록 및 초저지연을 위한 대용량 네트워크 패킷 관리방법.
According to claim 1,
In step (b), the client device additionally transmits client role information and network packet type information when the client role information and network packet type information to be processed are changed.
A large network packet management method for client device registration and ultra-low latency.
제 1 항에 있어서,
상기 (a) 단계 전에,
(a-1) 제 1 슬레이브서버 및 제 2 슬레이브서버가 상기 마스터서버로 접속 및 인증 패킷을 전달하는 단계;
(a-2) 상기 마스터서버가 상기 제 1 슬레이브서버 및 제 2 슬레이브서버로 클러스터 넘버 및 접속가능한 다른 슬레이브서버들의 목록을 전달하는 단계; 및
(a-3) 상기 제 1 슬레이브서버가 상기 제 2 슬레이브서버보다 상기 마스터서버에 먼저 접속한 경우, 상기 제 2 슬레이브서버가 상기 제 1 슬레이브서버로 접속 및 인증패킷을 전달하고, 상기 제 1 슬레이브서버가 접속을 수락하는 단계;
를 더 포함하고,
상기 클러스터 넘버는 상기 마스터서버가 상기 슬레이브서버의 접속 및 인증 패킷을 전달하는 순서에 의해 순차적으로 발급되는 것이고,
상기 슬레이브서버들 간의 접속에 있어, 상기 슬레이브서버의 상기 마스터서버로의 접속 및 인증 패킷을 전달한 시점이 빠른 상기 슬레이브서버가 접속수락자 역할이 되고, 상기 슬레이브서버의 상기 마스터서버로의 접속 및 인증 패킷을 전달한 시점이 늦은 상기 슬레이브서버가 접속자 역할이 되는 것인,
클라이언트 장치 등록 및 초저지연을 위한 대용량 네트워크 패킷 관리방법.
According to claim 1,
Before step (a),
(a-1) the first slave server and the second slave server transmitting access and authentication packets to the master server;
(a-2) transmitting, by the master server, a cluster number and a list of other accessible slave servers to the first slave server and the second slave server; and
(a-3) When the first slave server accesses the master server earlier than the second slave server, the second slave server transmits an access and authentication packet to the first slave server, and the first slave server the server accepting the connection;
Including more,
The cluster number is sequentially issued according to the order in which the master server transmits access and authentication packets of the slave server,
In the connection between the slave servers, the slave server at the point in time at which the slave server connects to the master server and transfers the authentication packet takes the role of an access acceptor, and the slave server connects to the master server and authenticates. The slave server at which the packet delivery time is late becomes the accessor,
A large network packet management method for client device registration and ultra-low latency.
제 1 항에 있어서,
상기 (a) 단계는,
클라이언트 장치가 클러스터링 된 복수의 슬레이브서버와 마스터서버로 구성된 호스트 장치들 중 어느 하나에 접속한 후 인증 패킷을 전달하는 단계; 및
상기 인증 패킷을 수신한 호스트 장치가 상기 클라이언트 장치를 자신이 관리하는 클라이언트 장치들 중 하나로 등록하는 단계;
를 포함하는 것인,
클라이언트 장치 등록 및 초저지연을 위한 대용량 네트워크 패킷 관리방법.
According to claim 1,
In step (a),
transmitting an authentication packet after a client device accesses any one of host devices composed of a plurality of clustered slave servers and master servers; and
registering, by the host device receiving the authentication packet, the client device as one of client devices managed by the host device;
Which includes,
A large network packet management method for client device registration and ultra-low latency.
제 1 항에 있어서,
상기 네트워크 패킷 종류 정보는
상기 호스트 장치들 간에 공유되나, 상기 클라이언트 장치들 간에 공유되지 않고,
상기 호스트 장치는 새로운 클라이언트 장치가 클러스터링 서버에 접속하면 상기 클라이언트 역할 정보를 전달하는 것인,
클라이언트 장치 등록 및 초저지연을 위한 대용량 네트워크 패킷 관리방법.
According to claim 1,
The network packet type information is
Shared between the host devices, but not shared among the client devices;
The host device transmits the client role information when a new client device accesses the clustering server.
A large network packet management method for client device registration and ultra-low latency.
제 1 항에 있어서,
상기 (d) 단계 이후,
제 2 슬레이브서버에 등록 돼 있는 제 2-1 클라이언트 장치의 역할을 제 1 슬레이브서버에 등록 돼 있는 제 1-1 클라이언트 장치가 저장하는 단계;
상기 제 2-1 클라이언트 장치의 구동이 종료되면 상기 제 2 슬레이브서버가 상기 제 1 슬레이브서버에 상기 제 2-1 클라이언트 장치의 구동 종료를 알리는 단계; 및
상기 제 1-1 클라이언트 장치는 상기 제 2-1 클라이언트 장치의 구동 종료에 따라 저장된 클라이언트 장치 리스트 내에서 관리 정보를 제거하고, 기 저장한 클라이언트 역할 정보를 참고하여 동일한 역할이 가능한 다른 상기 클라이언트 장치를 찾아서 통신요청 하는 단계;
를 포함하는 것인,
클라이언트 장치 등록 및 초저지연을 위한 대용량 네트워크 패킷 관리방법.
According to claim 1,
After step (d),
storing, by the 1-1st client device registered in the 1st slave server, the role of the 2-1st client device registered in the 2nd slave server;
notifying, by the second slave server, the end of driving of the 2-1 client device to the first slave server when the driving of the 2-1 client device is terminated; and
The 1-1 client device removes management information from the list of stored client devices according to the end of driving of the 2-1 client device, and selects another client device capable of the same role by referring to pre-stored client role information. Step of finding and requesting communication;
Which includes,
A large network packet management method for client device registration and ultra-low latency.
제 1 항에 있어서,
각 호스트 장치 및 각 클라이언트 장치는,
메인 쓰래드; 및
수신 쓰래드와 송신 쓰래드를 포함하는 네트워크 패킷처리 쓰래드;
를 포함하는 것인,
클라이언트 장치 등록 및 초저지연을 위한 대용량 네트워크 패킷 관리방법.
According to claim 1,
Each host device and each client device:
main thread; and
a network packet processing thread including a receiving thread and a sending thread;
Which includes,
A large network packet management method for client device registration and ultra-low latency.
제 8 항에 있어서,
페이로드패킷은 클라이언트 장치에서 발생되어 다른 클라이언트 장치에서 처리되기 위해 전달되어야 하는 패킷이고,
제어 패킷은 상기 페이로드패킷의 경로를 지정해주는 패킷인 것이고,
상기 각 호스트 장치 및 각 클라이언트 장치는,
제어 패킷을 수신할 경우, 메인 쓰래드를 통하여 처리하고,
페이로드패킷을 수신할 경우, 네트워크패킷처리 쓰래드를 통하여 처리하는 것인,
클라이언트 장치 등록 및 초저지연을 위한 대용량 네트워크 패킷 관리방법.
According to claim 8,
A payload packet is a packet generated by a client device and transmitted to be processed by another client device.
The control packet is a packet specifying a path of the payload packet,
Each host device and each client device,
When a control packet is received, it is processed through the main thread,
When a payload packet is received, it is processed through a network packet processing thread.
A large network packet management method for client device registration and ultra-low latency.
제 9 항에 있어서,
각 서버는 타 서버 각각에 대한 네트워크 패킷처리 쓰래드를 포함하고 있으며,
어느 한 서버가 제 1 슬레이브 서버에 대한 네트워크패킷처리 쓰래드(송신 쓰래드 및 수신 쓰래드 포함)와 제 2 슬레이브서버에 대한 네트워크패킷처리 쓰래드(송신 쓰래드 및 수신 쓰래드 포함)를 포함하고 있을 때,
상기 어느 한 서버가 제 1 슬레이브서버로부터 패킷을 수신할 경우, 페이로드패킷은 제 1 슬레이브서버에 대한 수신쓰래드를 통하여 수신되고,
제어패킷이 제 2 슬레이브서버로의 송신을 지칭하고 있을 때,
제 2 슬레이브서버에 대한 송신 쓰래드를 통하여 상기 페이로드 패킷을 상기 제 2 슬레이브서버로 전달하는 것인,
클라이언트 장치 등록 및 초저지연을 위한 대용량 네트워크 패킷 관리방법.
According to claim 9,
Each server includes a network packet processing thread for each of the other servers.
When a server includes a network packet processing thread (including a sending thread and a receiving thread) for the first slave server and a network packet processing thread (including a sending thread and a receiving thread) for the second slave server,
When any one of the servers receives a packet from the first slave server, the payload packet is received through a receiving thread for the first slave server,
When the control packet indicates transmission to the second slave server,
transferring the payload packet to the second slave server through a transmission thread for the second slave server;
A large network packet management method for client device registration and ultra-low latency.
제 9 항에 있어서,
상기 클라이언트 장치 또는 호스트 장치는, 패킷의 무결성을 위해
패킷 전체를 MTU 단위의 프레임으로 분할하여 네트워크로 송신하고,
상기 패킷은 프레임의 번호, 패킷의 시작, 패킷의 종료 및 프레임의 크기를 포함하고,
상기 MTU 크기는 1,500바이트를 넘지 않는 것인,
클라이언트 장치 등록 및 초저지연을 위한 대용량 네트워크 패킷 관리방법.
According to claim 9,
The client device or host device, for packet integrity
The entire packet is divided into frames in units of MTU and transmitted to the network,
The packet includes a number of frames, a start of a packet, an end of a packet, and a size of a frame,
The MTU size does not exceed 1,500 bytes,
A large network packet management method for client device registration and ultra-low latency.
제 11 항에 있어서,
해당 패킷이 제어패킷과 페이로드패킷 중 어느 패킷인지에 대한 식별정보를 담은 정보는, 해당 패킷의 가장 앞에 배치되는 것인,
클라이언트 장치 등록 및 초저지연을 위한 대용량 네트워크 패킷 관리방법.
According to claim 11,
Information containing identification information on whether the corresponding packet is a control packet or a payload packet is placed at the front of the corresponding packet,
A large network packet management method for client device registration and ultra-low latency.
제 9 항에 있어서,
클라이언트 장치 또는 호스트 장치는 상기 패킷을 수신하고 상기 패킷의 가장 앞의 구조만 분석하여도 제어 패킷 또는 페이로드 패킷인지 식별하고, 메인 쓰래드와 네트워크패킷처리 쓰래드 중 어느 쓰래드를 통하여 처리할 것인지 결정하는 것인,
클라이언트 장치 등록 및 초저지연을 위한 대용량 네트워크 패킷 관리방법.
According to claim 9,
The client device or the host device receives the packet, identifies whether it is a control packet or payload packet by analyzing only the first structure of the packet, and determines which thread to process through the main thread and the network packet processing thread. sign,
A large network packet management method for client device registration and ultra-low latency.
클라이언트 장치 등록 및 초저지연을 위한 대용량 네트워크 패킷 관리시스템에 있어서,
복수의 호스트 장치 및 복수의 클라이언트 장치를 포함하고,
상기 장치들은 대용량 네트워크 패킷 관리를 수행하는 방법을 실행하며,
상기 방법은
(a) 호스트 장치들 각각마다 복수의 클라이언트 장치가 등록되는 단계;
(b) 상기 클라이언트 장치가 호스트 장치로 클라이언트 역할 정보 및 처리해야할 네트워크 패킷 종류 정보를 전송하고, 상기 호스트 장치는 다른 호스트 장치들로 상기 클라이언트 역할 정보 및 네트워크 패킷 종류 정보를 공유하는 단계;
(c) 상기 호스트 장치는 다른 호스트 장치들로부터 전달받은 정보들 중, 클라이언트 역할 정보를 자신이 관리하고 있는 클라이언트 장치로 공유하는 단계; 및
(d) 상기 클라이언트 장치가 특정 패킷을 호스트 장치로 네트워크 패킷 종류 정보와 함께 전달할 경우, 상기 호스트 장치는 기 저장된 각 클라이언트 장치 별 네트워크 패킷 종류 정보를 참고하여, 상기 특정 패킷을 처리할 수 있는 클라이언트 장치와 연결된 다른 호스트 장치로 전달하여, 상기 특정 패킷이 타 클라이언트 장치에서 처리될 수 있도록 하는 단계;
를 포함하되, 상기 호스트 장치들은 복수의 슬레이브서버와 마스터서버로 구성되며, 상기 (b) 내지 (d) 단계는, 각 호스트 장치마다 수행되는 것인,
클라이언트 장치 등록 및 초저지연을 위한 대용량 네트워크 패킷 관리시스템.
In a large-capacity network packet management system for client device registration and ultra-low latency,
a plurality of host devices and a plurality of client devices;
The apparatus executes a method of performing bulk network packet management;
The above method
(a) registering a plurality of client devices for each of the host devices;
(b) the client device transmitting client role information and network packet type information to be processed to a host device, and the host device sharing the client role information and network packet type information with other host devices;
(c) sharing, by the host device, client role information among information received from other host devices with a client device managed by the host device; and
(d) When the client device forwards a specific packet to the host device along with network packet type information, the host device may process the specific packet by referring to pre-stored network packet type information for each client device. transferring the specific packet to another host device connected to the other client device so that the specific packet can be processed;
Including, wherein the host devices are composed of a plurality of slave servers and master servers, and the steps (b) to (d) are performed for each host device,
High-capacity network packet management system for client device registration and ultra-low latency.
KR1020220073171A 2022-06-16 2022-06-16 Method for client device registration and ultra-low latency large network packet management KR102481033B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220073171A KR102481033B1 (en) 2022-06-16 2022-06-16 Method for client device registration and ultra-low latency large network packet management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220073171A KR102481033B1 (en) 2022-06-16 2022-06-16 Method for client device registration and ultra-low latency large network packet management

Publications (1)

Publication Number Publication Date
KR102481033B1 true KR102481033B1 (en) 2022-12-27

Family

ID=84568053

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220073171A KR102481033B1 (en) 2022-06-16 2022-06-16 Method for client device registration and ultra-low latency large network packet management

Country Status (1)

Country Link
KR (1) KR102481033B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090126956A (en) * 2008-06-05 2009-12-09 주식회사 이루온 Apparatus and method for processing packet data in wireless packet data network
KR20130040098A (en) * 2011-10-13 2013-04-23 삼성전자주식회사 Apparatus and method for transmitting and receiving network flow control information in a communication system
KR20190072666A (en) * 2017-04-18 2019-06-25 미쓰비시덴키 가부시키가이샤 Data server unit and communication system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090126956A (en) * 2008-06-05 2009-12-09 주식회사 이루온 Apparatus and method for processing packet data in wireless packet data network
KR20130040098A (en) * 2011-10-13 2013-04-23 삼성전자주식회사 Apparatus and method for transmitting and receiving network flow control information in a communication system
KR20190072666A (en) * 2017-04-18 2019-06-25 미쓰비시덴키 가부시키가이샤 Data server unit and communication system

Similar Documents

Publication Publication Date Title
US9953612B2 (en) Systems and methods for facilitating communication between mobile devices and display devices
US9537786B2 (en) Method, device, and system for information processing based on distributed buses
EP1311122A2 (en) Using NAS appliance to build a non-conventional distributed video server
CN107547661B (en) Container load balancing implementation method
US9699276B2 (en) Data distribution method and system and data receiving apparatus
US9432452B2 (en) Systems and methods for dynamic networked peer-to-peer content distribution
US10331613B2 (en) Methods for enabling direct memory access (DMA) capable devices for remote DMA (RDMA) usage and devices therof
US20140082135A1 (en) Apparatus and method for providing content, and system for providing content with the said apparatus
US20130138737A1 (en) Managing a Message Subscription in a Publish/Subscribe Messaging System
CN103312605A (en) Gateway device identity setting method and management gateway device
CN112118315A (en) Data processing system, method, device, electronic equipment and storage medium
US10469593B2 (en) Method and system for sharded resource brokering
US11889133B2 (en) Burst traffic processing method, computer device and readable storage medium
US20140059152A1 (en) Support server for redirecting task results to a wake-up server
US20160381127A1 (en) Systems and methods for dynamic networked peer-to-peer content distribution
CN104010228A (en) Apparatus and method for level-based self-adjusting peer-to-peer media streaming
CN105373563B (en) Database switching method and device
CN110798495B (en) Method and server for end-to-end message push in cluster architecture mode
KR102481033B1 (en) Method for client device registration and ultra-low latency large network packet management
CN111131470B (en) Terminal device, data processing method thereof and data processing system
CN109831467B (en) Data transmission method, equipment and system
KR101066328B1 (en) Method for balancing load in mobile environment and mobile device implementing the same
CN114143569B (en) Webpage recording and live broadcasting method and system
CN114268631B (en) Low-delay network system, communication connection method thereof and readable storage medium
CN112788135B (en) Resource scheduling method, equipment and storage medium

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant