KR100617326B1 - Device and method for packet transmission in client-server based networked virtual environment - Google Patents
Device and method for packet transmission in client-server based networked virtual environment Download PDFInfo
- Publication number
- KR100617326B1 KR100617326B1 KR1020050059715A KR20050059715A KR100617326B1 KR 100617326 B1 KR100617326 B1 KR 100617326B1 KR 1020050059715 A KR1020050059715 A KR 1020050059715A KR 20050059715 A KR20050059715 A KR 20050059715A KR 100617326 B1 KR100617326 B1 KR 100617326B1
- Authority
- KR
- South Korea
- Prior art keywords
- client
- packet
- timing signal
- interest
- update
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 클라이언트-서버 기반 네트워크 가상환경에서 효율적으로 패킷을 클라이언트에 전송하기 위한 서버장치, 방법 및 프로그램을 기록한 기록매체로서, 본 발명에 따르면, 대규모 사용자가 참여하는 네트워크 가상환경에서 관심영역 내의 클라이언트에게 타이머를 이용하여 패킷을 통합하고 전송함으로써 서버의 부하를 줄이고 대역폭을 효율적으로 이용할 수 있다.The present invention relates to a recording medium recording a server device, a method and a program for efficiently transmitting a packet to a client in a client-server based network virtual environment. According to the present invention, a client in a region of interest in a network virtual environment in which a large user participates. By integrating and sending packets using a timer, the server can reduce the load on the server and make efficient use of bandwidth.
클라이언트-서버 기반, 네트워크 가상환경, 패킷 전송, 패킷 통합, 관심영역, 대규모 사용자 온라인 게임 Client-server based, network virtual environment, packet transmission, packet integration, area of interest, large user online game
Description
도 1a는 네트워크 가상환경을 구현하는 일반적인 클라이언트-서버 기반의 시스템을 나타내는 블록도,1A is a block diagram illustrating a typical client-server based system for implementing a network virtual environment.
도 1b는 네트워크 가상환경에서의 관심영역을 설명하기 위한 구성도,1B is a block diagram illustrating a region of interest in a network virtual environment;
도 2는 관심영역 내의 클라이언트에게 패킷 전송을 수행하는 일반적인 서버장치의 동작을 순차적으로 나타낸 순서도,FIG. 2 is a flowchart sequentially illustrating an operation of a general server apparatus for performing packet transmission to a client in the ROI; FIG.
도 3은 관심영역 내의 클라이언트에게 패킷 전송을 수행하는 일반적인 서버장치의 동작을 나타낸 흐름도,3 is a flowchart illustrating an operation of a general server apparatus for performing packet transmission to a client in the ROI;
도 4는 본 발명에 의한 서버장치의 구성을 나타낸 블록도,4 is a block diagram showing the configuration of a server apparatus according to the present invention;
도 5는 본 발명에 따른 패킷전송 방법을 수행하는 과정을 순차적으로 나타낸 순서도,5 is a flowchart sequentially illustrating a process of performing a packet transmission method according to the present invention;
도 6은 본 발명에 따라 관심영역 내의 클라이언트에게 패킷 전송을 수행하는 서버장치의 동작을 나타낸 흐름도,6 is a flowchart illustrating an operation of a server apparatus for performing packet transmission to a client in a region of interest according to the present invention;
도 7a 내지 도 7c는 모두 동일한 관심영역내에 위치한 클라이언트들이 동시에 상태정보를 서버로 보내는 경우, 일반적인 방법 및 본 발명에 의한 방법에 따라 각각 서버장치가 패킷을 전송했을 때의 네트워크 트래픽을 비교하기 위한 도면이다.7A to 7C are diagrams for comparing network traffic when a server apparatus transmits a packet according to a general method and a method according to the present invention when clients located in the same ROI simultaneously send status information to a server. to be.
본 발명은 클라이언트-서버기반의 네트워크 가상환경에서의 효율적인 패킷 전송방법으로서, MMOG(Massively Multiplayer Online Game) 등과 같이 대규모 사용자가 참여하는 네트워크 가상환경에서 관심영역관리를 통하여 클라이언트와 서버간의 효율적인 패킷전송방법에 관한 것으로 일반적인 관심영역관리에 의한 패킷 송신을 좀 더 효율적으로 하고자 하는 것이다.The present invention is an efficient packet transmission method in a client-server based network virtual environment, and an efficient packet transmission method between a client and a server through a region of interest management in a network virtual environment in which a large user participates, such as Massively Multiplayer Online Game (MMOG). In this regard, the purpose of the present invention is to make packet transmission by general area of interest management more efficient.
네트워크 가상환경(Networked Virtual Environment)이란 네트워크를 통해 분산되어 있는 데이터들을 기반으로 하여 컴퓨터에 의해 시뮬레이션 되는 가상의 세계를 의미한다. 실제로는 멀리 떨어져 있는 클라이언트들이더라도 네트워크를 통해 구축된 가상환경 안에서는 서로 실시간으로 상호작용을 할 수가 있다. 이러한 기술은 군사 시뮬레이션, 공동설계, 사이버 교육 등 다양한 분야에 응용되고 있는데, 특히 최근 3D 온라인 게임 이용자가 폭발적으로 증가하며 이에 대한 다각적인 연구 개발이 이루어지고 있다.A networked virtual environment is a virtual world simulated by a computer based on data distributed over a network. In reality, even remote clients can interact with each other in real time in a virtual environment built over a network. These technologies are applied to various fields such as military simulation, co-design, cyber education, etc. In particular, 3D online game users have exploded in recent years and various researches and developments have been made.
3D온라인 게임과 같이 많은 이용자가 참여하는 가상환경을 구현하기 위해서는 하나의 서버가 수백 또는 수천의 클라이언트들에 대한 프로세스를 처리해야 하므로 과다한 네트워크 및 시스템 부하에 대한 해결이 요청되는데, 이에 대처하기 위한 방법들 중 대표적인 것이 데드레커닝(dead reckoning) 알고리즘과 관심영역관리(Area of Interest Management)이다. In order to implement a virtual environment with many users, such as 3D online games, one server needs to process processes for hundreds or thousands of clients. Therefore, it is required to solve excessive network and system loads. Representatives of these are dead reckoning algorithms and area of interest management.
일반적으로 서버는 클라이언트들에게 가상환경에서의 각 객체(아바타)들에 대한 상태갱신정보를 주기적으로 또는 비주기적으로 계속 샘플링해서 보낸다. 클라이언트들은 이 정보를 받아서 각 객체의 상태정보를 갱신하여 사용자에게 보여준다. 그러므로 클라이언트에서는 각 객체의 상태정보를 연속적으로 알 수 있는 것이 아니라 단지 일정한 주기로, 또는 불연속적으로 샘플링된 값만을 보게 된다. In general, the server continuously sends periodic or aperiodic sampling of status update information about each object (avatar) in the virtual environment to clients. Clients receive this information and update the state information for each object and show it to the user. Therefore, the client does not know the state information of each object continuously but only sees the sampled values at regular intervals or discontinuously.
그러나, 데드레커닝 알고리즘에서는 클라이언트들은 한 객체의 새로운 상태정보를 받을 때까지는 그 객체의 가장 최근에 받은 상태정보에서 상태값과 그것의 변화율을 가지고 예측을 하여 연속적으로 예측 값을 보여준다. 그러다가 새로운 상태정보가 들어오면 새롭게 갱신을 하고 이것으로부터 다시 예측을 하게 된다. 그리고 서버에서는 객체의 실제 상태값과 클라이언트에서의 예측된 상태값과의 차이(실제값과 예측값과의 차)가 문턱값 이상이 되었을 때만 상태갱신정보를 보낸다. 즉, 이러한 문턱값이 낮을수록 전송해야 하는 상태정보의 양이 많아지므로 네트워크 트래픽이 증가하게 된다. However, in the dead reckoning algorithm, the clients make predictions based on the state value and the rate of change from the state information of the object until the new state information is received. Then when new status information comes in, it is updated and predicted again. The server sends the status update information only when the difference between the actual state value of the object and the predicted state value on the client (the difference between the actual value and the predicted value) is greater than or equal to the threshold value. In other words, as the threshold is lower, the amount of state information to be transmitted increases, thereby increasing network traffic.
한편, 관심영역관리에서는 한 객체에 대한 상태갱신정보는 그것을 포함하는 일정영역(관심 영역)내에 있는 클라이언트들에게만 보내진다. 그러나 일반적인 관심영역관리에서의 패킷 전송은 한 객체의 상태가 변화할 때마다 관심영역 내의 모든 객체의 클라이언트에게 상태갱신정보가 전송되기 때문에, 특정 관심영역에 객체가 집중적으로 몰려 있을 경우 서버에 많은 부하가 걸리게 된다. 즉, 관심영역에 대규모의 사용자가 몰려있을 경우 각 객체들에 대한 상태정보가 동시에 갱신되면, 서버는 각 객체의 갱신된 상태정보를 관심영역 내의 모든 클라이언트에게 전송해야 하는데 이때 서버는 전송해야 할 대상인 클라이언트의 수 만큼 I/O처리와 네트워크 처리를 해야 하기 때문에 서버 시스템의 과부화현상과 이에 따르는 패킷 지연 및 패킷 손실을 가져올 수 있다. 또한 기존의 관심영역관리를 통한 전송기법에서는 네트워크의 패킷을 그 크기와 상관없이 전송하여, 클라이언트의 대역폭을 고려하지 않아 양질의 서비스를 제공할 수 없는 문제점이 있다.On the other hand, in the area of interest management, the status update information for an object is sent only to clients in a certain area (area of interest) that contains it. However, in the case of general area of interest management, the packet is sent to clients of all objects in the area of interest whenever the state of an object changes. Therefore, when the objects are concentrated in a specific area of interest, the server is heavily loaded. Will take. That is, when a large number of users are gathered in the region of interest, if the status information of each object is updated at the same time, the server should send updated status information of each object to all clients in the region of interest. Since I / O processing and network processing must be performed as many as the number of clients, the server system may be overloaded, resulting in packet delay and packet loss. In addition, there is a problem in the conventional transmission method through the management of the ROI, regardless of the size of the network, to provide a high quality service without considering the bandwidth of the client.
상기의 문제점을 해결하기 위한 본 발명은, 서버-클라이언트 기반 시스템으로 구현되는 네트워크 가상환경에서 관심영역관리를 통하여 각 객체들에게 보내지는 상태갱신정보에 대한 패킷을 보다 효율적으로 전송하기 위하여 갱신된 객체의 상태정보들을 클라이언트별로 통합하여 전송하는 서버장치와 방법 및 그 방법을 수행하는 프로그램을 기록한 기록매체를 제공하는 것을 그 목적으로 한다.The present invention for solving the above problems, the object updated in order to more efficiently transmit a packet for the status update information sent to each object through the ROI management in the network virtual environment implemented as a server-client based system It is an object of the present invention to provide a recording medium recording a server device and method for integrating and transmitting the status information of each client to a client and a program for performing the method.
상기의 목적을 달성하기 위한 본 발명은, 서버-클라이언트 기반의 시스템으로 구현되는 네트워크 가상환경에서의 관심영역에 기초하여 클라이언트에게 패킷을 전송하기 위한 서버장치에 있어서, 상기 클라이언트들로부터 수신한 새로운 상태정보를 저장하는 상태정보저장부; 상기 새로운 상태정보를 전송한 클라이언트의 관심영역 내에 존재하는 클라이언트 각각에게 상기 새로운 상태정보를 전송하도록 하는 갱신명령문을 클라이언트별로 저장하는 갱신명령문저장부; 패킷을 생성할 타이밍임 을 알리는 타이밍신호를 발생시키는 타이밍신호발생부; 상기 타이밍신호를 수신하면, 상기 갱신명령문에 따라 상기 상태정보 데이터베이스로부터 이전의 타이밍신호 발생 이후 축적된 상태정보를 추출 및 통합하여 상태갱신정보 패킷을 생성하는 패킷통합부; 및 각 상태정보에 대해 관심영역을 기초로 수신대상인 클라이언트를 결정하고, 결정된 클라이언트로 상기 상태갱신정보 패킷을 전송하는 제어부를 포함하는 것을 특징으로 한다.According to an aspect of the present invention, there is provided a server apparatus for transmitting a packet to a client based on a region of interest in a network virtual environment implemented as a server-client based system, the new state being received from the clients. A state information storage unit for storing information; An update instruction statement storage unit for storing, for each client, an update instruction statement for transmitting the new state information to each client existing in the ROI of the client that has transmitted the new state information; A timing signal generator for generating a timing signal informing that it is timing to generate a packet; A packet integrating unit configured to generate and update a state update information packet by extracting and integrating state information accumulated after a previous timing signal generation from the state information database in response to the timing signal; And a controller for determining the client to be received based on the ROI for each state information, and transmitting the state update packet to the determined client.
또한, 상기의 목적을 달성하기 위한 본 발명은, 서버-클라이언트 기반의 시스템으로 구현되는 네트워크 가상환경에서의 관심영역에 기초하여 클라이언트에게 패킷을 전송하는 방법에 있어서, 클라이언트로부터 상태정보를 수신하는 수신단계; 상기 상태정보를 전송한 클라이언트의 관심영역 내에 존재하는 클라이언트를 결정하는 관심영역 판단단계; 관심영역 판단단계에서 결정된 클라이언트인 상태정보 수신대상 클라이언트 모두에 대해 상기 상태정보를 전송하도록 하는 각각의 갱신명령문을 생성하여 클라이언트별로 저장하는 갱신명령문저장단계; 패킷을 생성할 타이밍임을 알리는 타이밍신호가 발생되면, 상기 클라이언트별로 저장된 갱신명령문에 따라 이전의 타이밍신호 발생 이후 축적된 상태정보를 통합하여 상태갱신정보 패킷을 생성하는 패킷생성단계; 및 상기 상태갱신정보 패킷을 상기 갱신명령문에서 지정하는 수신대상 클라이언트 모두에게 전송하는 패킷전송단계를 포함하는 것을 특징으로 한다. In addition, the present invention for achieving the above object, in the method for transmitting a packet to the client based on the region of interest in the network virtual environment implemented in a server-client based system, receiving the status information from the client step; A region of interest determination step of determining a client existing in the region of interest of the client that has transmitted the status information; An update command storing step of generating respective update command statements for transmitting the status information to all of the client receiving target status information, which is the client determined in the ROI determination step; A packet generation step of generating a state update information packet by integrating state information accumulated after generation of a previous timing signal according to an update instruction stored for each client, when a timing signal indicating a timing for generating a packet is generated; And a packet transmission step of transmitting the status update information packet to all of the receiving target clients specified in the update command.
또한, 상기의 목적을 달성하기 위한 본 발명은, 서버-클라이언트 기반의 시스템으로 구현되는 네트워크 가상환경에서의 관심영역에 기초하여 클라이언트에게 패킷을 전송하는 프로그램이 기록된 기록매체에 있어서, 클라이언트로부터 상태정보가 수신되면, 상기 상태정보를 전송한 클라이언트의 관심영역 내에 존재하는 클라이언트를 결정하는 관심영역 판단단계; 관심영역 판단단계에서 결정된 클라이언트인 상태정보 수신대상 클라이언트 모두에게 상기 상태정보를 전송하도록 하는 각각의 갱신명령문을 생성하여 클라이언트별로 저장하는 갱신명령문저장단계; 패킷을 생성할 타이밍임을 알리는 타이밍신호가 발생되면, 상기 클라이언트별로 저장된 갱신명령문에 따라 이전의 타이밍신호 발생 이후 축적된 상태정보를 통합하여 상태갱신정보 패킷을 생성하는 패킷생성단계; 및 상기 상태갱신정보 패킷을 상기 갱신명령문에서 지정하는 수신대상 클라이언트 모두에게 전송하는 패킷전송단계를 포함하는 패킷 전송방법을 수행한다.In addition, the present invention for achieving the above object, in the recording medium recording a program for transmitting a packet to the client based on the region of interest in the network virtual environment implemented in a server-client based system, the state from the client A region of interest determination step of determining a client present in the region of interest of the client that has transmitted the status information when the information is received; An update command storing step of generating respective update command statements for transmitting the state information to all of the target state receiving target clients, the client determined in the ROI determination step; A packet generation step of generating a state update information packet by integrating state information accumulated after generation of a previous timing signal according to an update instruction stored for each client, when a timing signal indicating a timing for generating a packet is generated; And a packet transmission step of transmitting the state update information packet to all of the receiving target clients specified in the update command.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 일실시예를 상세히 설명하도록 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1a는 네트워크 가상환경을 구현하는 일반적인 클라이언트-서버 기반의 시스템을 나타내는 블록도이며, 도 1b는 네트워크 가상환경에서의 관심영역을 설명하기 위한 구성도이다. 도 1a 및 도 1b를 참조하면, 클라이언트 컴퓨터 110,120,130,140,150은 네트워크를 통하여 서버 컴퓨터에 연결되어 있으며, 이들은 가상환경 내에서 각각 가상의 객체 111,121,131,141,151로 표현된다. 원형으로 표현된 관심영역은 클라이언트1(110)의 객체의 관심영역으로서 객체의 이동이나 상태변화 등의 이벤트를 발생하게 되면 관심영역내의 모든 클라이언트에게 이러한 새로운 상태정보를 서버를 통해 전송하게 된다. 각각의 객체는 각자의 관심영역을 가지 며, 관심영역 밖의 객체들, 즉 관심영역에 속하지 않는 객체를 가진 클라이언트들에게는 상태정보를 전송하지 않게 됨으로서 불필요한 패킷전송을 줄일 수 있게 된다. 즉, 클라이언트1(110)의 객체(111)에 있어서 해당 관심영역 내에는 클라이언트2,3,5의 객체들(121,131,151)이 위치해 있고 클라이언트4(140)의 객체(141)는 클라이언트1 객체(111)의 관심영역 밖에 있으므로 상태정보 패킷의 전송은 클라이언트2,3,5(120,130,150)에게만 하게 되고 클라이언트4(140)에게는 하지 않는다.FIG. 1A is a block diagram illustrating a general client-server based system for implementing a network virtual environment, and FIG. 1B is a block diagram illustrating a region of interest in a network virtual environment. 1A and 1B,
도 2는 관심영역 내의 클라이언트에게 패킷 전송을 수행하는 일반적인 서버장치의 동작을 순차적으로 나타낸 순서도이다. 서버는 상태변화 이벤트가 발생된 클라이언트로부터 상태정보 패킷을 수신하면(S210), 이벤트가 발생된 클라이언트의 객체를 중심으로 관심영역을 검사하여 그 관심영역 내에 위치한 다른 클라이언트의 객체들이 있는지 판단하고(S220), 네트워크 큐(queue)에 관심영역내의 클라이언트들에게 보낼 전송메시지 이벤트를 입력한 후(S230), 관심영역에 해당하는 모든 클라이언트들에게 패킷을 전송한다(S240).2 is a flowchart sequentially illustrating an operation of a general server apparatus that performs packet transmission to a client in the ROI. When the server receives the state information packet from the client where the state change event has occurred (S210), the server examines the region of interest centered on the object of the client where the event has occurred and determines whether there are objects of other clients located in the region of interest (S220). After inputting a transmission message event to be sent to clients in the region of interest in the network queue (S230), the packet is transmitted to all clients corresponding to the region of interest (S240).
도 3은 관심영역 내의 클라이언트에게 패킷 전송을 수행하는 일반적인 서버장치의 동작을 나타낸 흐름도이다. 서버가 클라이언트로부터 상태정보 패킷을 받게 되면(S310), 상태 이벤트를 발생하여(S320) 이벤트 큐에 넣게 된다(S330). 이벤트 큐에 쌓인 상태 이벤트를 바탕으로 서버는 상태정보 패킷을 전송한 해당 클라이언트의 관심영역을 검사하고(S340), 관심영역 내에 있는 각 클라이언트로 패킷을 보내기 위해 상태 메시지 이벤트를 발생하여(S350) 네트워크 큐에 패킷을 넣은 후(S360), 해당하는 클라이언트들에게 패킷을 전송하게 된다(S370).3 is a flowchart illustrating an operation of a general server apparatus that performs packet transmission to a client in the ROI. When the server receives the status information packet from the client (S310), it generates a status event (S320) and puts it in the event queue (S330). Based on the status events accumulated in the event queue, the server examines the region of interest of the client that sent the status information packet (S340), and generates a status message event to send the packet to each client in the region of interest (S350). After putting the packet in the queue (S360), the packet is transmitted to the corresponding clients (S370).
도 4는 본 발명의 일실시예에 따른 서버장치의 구성을 나타낸 블록도이다. 도시된 바와 같이, 서버장치는 제어부(410), 입출력부(420), 관심영역데이터베이스(430), 상태정보저장부(440), 패킷통합부(450), 타이밍신호발생부(460) 및 갱신명령문저장부(470)로 구성된다. 입출력부(420)는 클라이언트들과 데이터 패킷을 송수신하기 위한 수단으로서, 데이터통신이 가능한 모든 종류의 인터페이스를 포괄하는 넓은 의미로 해석되어야 하며, 유선은 물론 무선 인터페이스로 구현될 수도 있을 것이다. 상태정보저장부(440)는 입출력부(420)를 통해 클라이언트로부터 상태정보를 수신하면, 이를 저장하기 위한 수단이며, 수신한 상태정보와 관련된 데이터를 제어부(410)로 전달한다. 제어부(101)는 수신한 데이터를 바탕으로 각 상태정보에 대하여 상태갱신정보 패킷을 전송해야 할 상태정보 수신대상 클라이언트를 결정하고, 갱신명령문저장부(470)로 갱신명령문 생성을 요청하며, 상태갱신정보 패킷을 입출력부(420)를 통해 그 상태정보에 대한 수신대상 클라이언트로 전송하는 등 서버장치의 전체적인 동작을 제어한다. 관심영역데이터베이스(430)는 서버장치가 관리하는 모든 클라이언트들에 대한 관심영역정보를 저장하는 수단이다. 만약, 모든 클라이언트들에 대한 관심영역의 크기가 동일하다면, 관심영역데이터베이스(430)는 생략될 수 있을 것이다. 그러나, 서버장치의 운영자는 회원별 또는 각 객체의 특성별로 관심영역정보를 다르게 할 수도 있을 것인데, 그러한 경우 클라이언트의 상태변화에 따른 패킷의 전송시 각 객체들의 역관심영역도 고려해야 할 것이며, 이때 클라이언트의 역관심영역 정보는 관심영역데이터베이스(430)에 저장될 수 있을 것이다. 또한, 이러한 경우 제어부(410)는 수신대상 클라이언트를 결정할 때 관심영 역데이터베이스(430)를 참조해야 할 것이다. 한편, 상기 관심영역데이터베이스(103) 및 상태정보저장부(104)가 별개의 구성이 아닌 하나의 구성으로 구현될 수 있음은 당업자에게 자명할 것이다. 4 is a block diagram showing the configuration of a server apparatus according to an embodiment of the present invention. As shown, the server apparatus includes a
갱신명령문저장부(107)는 새로운 상태정보를 전송한 클라이언트의 관심영역 내에 존재하는 클라이언트들 모두에게 상기 새로운 상태정보를 전송하도록 하는 갱신명령문으로 구성된 클라이언트별 갱신명령문 큐를 생성하고 저장하기 위한 수단이다. 갱신명령문을 상태정보의 수신 순서에 따라 전송하기 위해 큐(queue)로 저장하는 것이 일반적이겠지만, 반드시 저장방식을 큐로 한정할 필요는 없을 것이다. 다만, 이하 실시예에서는 큐로 저장하는 것으로 한다. The update statement storage unit 107 is a means for generating and storing a client-specific update statement queue composed of update statements for transmitting the new status information to all clients existing in the ROI of the client that has transmitted the new status information. . Although it is common to store update commands in a queue for transmission in the order of receiving the status information, it is not necessary to limit the storage method to the queue. However, in the following embodiment, it is stored as a queue.
타이밍신호발생부(460)는 소정의 시간동안 상태정보저장부(440)에 축적되어 저장된 상태정보들을 통합하여 상태갱신정보 패킷을 생성할 타이밍임을 알리는 타이밍신호를 발생시키는 수단이다. 타이밍신호는 소정의 시간 간격을 두고 주기적으로 발생되며, 상기 시간 간격은 서버장치 운영자에 의해 가변적으로 설정될 수 있을 것이다. 즉, 이 시간 간격의 설정에 의해 패킷의 크기를 조절할 수 있게 되어, 서버장치의 운영자는 네트워크의 다변적인 상황에 탄력적으로 대응할 수 있을 것이다. 패킷통합부(450)는 타이밍신호발생부(460)가 발생시킨 타이밍신호를 수신하면, 클라이언트별로 저장된 갱신명령문에 따라 상태정보저장부(440)로부터 이전의 타이밍신호 발생 이후 축적된 상태정보를 추출 및 통합하여 상태갱신정보 패킷을 생성한다. The
도 5는 본 발명에 따른 패킷전송 방법을 수행하는 과정을 순차적으로 나타낸 순서도이다. 서버장치가 클라이언트로부터 상태 정보 패킷을 받게 되면(S510), 해당 객체의 관심영역 검사를 통해 관심영역 내의 클라이언트들을 검색한 뒤(S520), 각 객체에 대한 갱신 명령문을 생성한다(S530). 즉, 도 1의 경우를 예로 들면, 클라이언트1(110)의 객체(111)의 상태정보 패킷에 따라 관심영역 내에 있는 모든 클라이언트들(120,130,150)의 객체들(121,131,151)을 위한 명령문 큐를 각각 두어 갱신 명령문을 넣게 된다(S540). 이러한 일련의 과정을 타이머가 발생할 때 까지 계속하게 된다. 타이머가 타이밍신호를 발생하게 되면(S550), 서버는 명령문 큐에 쌓인 갱신 명령문에 따라 패킷을 생성하고 통합하여(S560) 관심영역에 해당하는 모든 클라이언트들에게 통합된 패킷을 전송하게 된다(S570).5 is a flowchart sequentially illustrating a process of performing a packet transmission method according to the present invention. When the server device receives the status information packet from the client (S510), after searching for the clients in the ROI through the ROI inspection of the corresponding object (S520), an update statement for each object is generated (S530). For example, in the case of FIG. 1, the statement queues for the
도 6은 본 발명에 따라 관심영역 내의 클라이언트에게 패킷 전송을 수행하는 서버장치의 동작을 나타낸 흐름도이다. 클라이언트로부터 상태정보 패킷을 받게 되면(S610), 서버는 상태 이벤트를 발생하여(S620) 이벤트 큐에 넣게 된다(S630). 이벤트 큐에 쌓인 상태 이벤트를 바탕으로 서버장치는 해당 클라이언트의 관심영역을 검사하게 되고(S640), 수신한 상태정보를 관심영역 내의 클라이언트에게 전송하도록 하는 갱신 명령문을 발생시켜(S650), 클라이언트별 명령문 큐에 입력한다(S660). 타이밍신호가 발생되면 명령문 큐에 쌓인 갱신 명령문들에 따라 패킷을 생성 및 통합하고(S680) 해당하는 클라이언트들에게 상태갱신정보 패킷을 전송하게 된다. 이때 패킷의 지연을 막기 위하여 타이밍신호의 발생주기는 수십에서 수백 msec 단위로 하는 것이 바람직하다.6 is a flowchart illustrating an operation of a server apparatus that performs packet transmission to a client in a region of interest according to the present invention. When receiving the status information packet from the client (S610), the server generates a status event (S620) and put it in the event queue (S630). Based on the state events accumulated in the event queue, the server device checks the region of interest of the client (S640), and generates an update statement for transmitting the received state information to the clients in the region of interest (S650). Input to the queue (S660). When the timing signal is generated, the packet is generated and merged according to the update statements accumulated in the statement queue (S680), and the state update information packet is transmitted to the corresponding clients. At this time, in order to prevent the delay of the packet, the generation period of the timing signal is preferably in the unit of tens to hundreds of msec.
도 7a 내지 도 7c는 모두 동일한 관심영역내에 위치한 클라이언트들이 모두 새로운 상태정보를 서버로 보낸 경우, 일반적인 방법 및 본 발명에 의한 방법에 따라 각각 서버장치가 패킷을 전송했을 때의 네트워크 부하를 비교하기 위한 도면이다. 여기서는 도 1에서와 달리, 클라이언트1,2,3,4,5(710,720,730,740,750)의 객체들이 모두 동일한 관심영역 내에 존재한다고 가정한다. 7A to 7C are diagrams for comparing network load when a server apparatus transmits a packet according to a general method and a method according to the present invention when all clients located in the same ROI send new status information to the server. Drawing. Here, unlike in FIG. 1, it is assumed that objects of
도 7a를 참조하면, 객체가 모두 동일한 관심영역 내에 있는 클라이언트들1,2,3,4,5(710,720,730,740,750)가 서버장치(700)에게 상태정보 패킷을 전송한다. 이때 도 7b에 도시된 바와 같이, 일반적인 관심영역 관리를 사용하는 서버장치(760)의 경우 각각의 패킷을 처리하여 관심영역내의 모든 클라이언트들에게 전송하게 된다. 예를 들어, 클라이언트1(710)이 '1'이라는 상태정보 패킷을 서버장치(760)에 전송하게 되면 서버는 관심영역내의 모든 클라이언트들(이 경우 클라이언트 720,730,740,750)에게 모두 전송하게 되고, 클라이언트2(720)가 '2'라는 상태정보 패킷을 서버장치(760)에 전송한 경우에도 마찬가지로 서버장치(760)는 이를 관심영역내의 모든 클라이언트들(710,730,740,750)에게 전송하게 된다. Referring to FIG. 7A,
하지만 도 7c의 경우처럼 본 발명에 따라 서버장치(770)가 타이밍신호발생부(460)를 사용하여 주기적으로 패킷을 통합한 후 전송하게 되면, 도시된 바와 같이 서버의 부하를 줄일 수 있으며 네트워크 사용량을 줄이는 동시에 효율적으로 패킷을 전송할 수 있게 된다. 이는 서버의 입장에서 n개의 클라이언트에 대해 패킷을 전송해야 하는 경우 일반적으로 n(n-1)회의 패킷전송이 필요한 반면 본 발명에 따른 방법을 사용하면 n회로 단축된다.However, as shown in FIG. 7C, when the
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플라피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산서버 환경에서 실행될 수 있으며, 이러한 경우, 다수의 서버에 의해 네트워크 트래픽을 분산함으로써 더욱 향상된 네트워크 가상환경을 구축할 수 있을 것이다.The invention can also be embodied as computer readable code on a computer readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like, which are also implemented in the form of a carrier wave (for example, transmission over the Internet). It also includes. In addition, the computer-readable recording medium may be distributed in a networked computer system and executed in a distributed server environment. In this case, a network virtual environment may be improved by distributing network traffic by a plurality of servers. will be.
이상 도면을 참조한 본 발명의 최적 실시예들이 개시되었다. 앞서 사용된 몇몇 특정 용어들은 단지 본 발명을 설명하기 위한 것이며, 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해해야 할 것이다. With reference to the drawings the best embodiments of the present invention have been disclosed. Some specific terms used above are merely intended to describe the present invention, but are not used to limit the scope of the present invention as defined in the meaning or claims. Therefore, those skilled in the art should understand that various modifications and equivalent other embodiments are possible from this.
상기와 같은 본 발명은 클라이언트-서버 기반 네트워크 가상환경에서 관심영역관리를 통하여 각 객체들의 상태정보를 갱신할 때 패킷통합과 타이머를 통하여 서버장치에서의 전송의 횟수를 줄이고 이에 따라 서버장치의 부하 및 네트워크의 트래픽을 줄임으로써 기존과 동일한 성능을 가지는 서버장치로 보다 많은 클라이언트에게 서비스를 제공할 수 있도록 하는 효과가 있다. 또한 타이머에 의한 타이밍신호 발생 주기를 조절함으로써 서버가 클라이언트에게 보낼 패킷의 양을 가변적으 로 설정할 수 있어, 클라이언트측의 대역폭을 고려한 패킷의 전송이 가능하다.As described above, the present invention reduces the number of transmissions from the server device through packet integration and timer when updating the state information of each object through the ROI management in a client-server based network virtual environment. By reducing network traffic, it is possible to provide services to more clients with server devices having the same performance as before. Also, by adjusting the timing signal generation period by the timer, the server can variably set the amount of packets to be sent to the client, allowing the packet transmission considering the client's bandwidth.
Claims (8)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20040102948 | 2004-12-08 | ||
KR1020040102948 | 2004-12-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060064488A KR20060064488A (en) | 2006-06-13 |
KR100617326B1 true KR100617326B1 (en) | 2006-08-30 |
Family
ID=37160040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050059715A KR100617326B1 (en) | 2004-12-08 | 2005-07-04 | Device and method for packet transmission in client-server based networked virtual environment |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100617326B1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020027432A (en) * | 2002-03-08 | 2002-04-13 | 김규천 | Management system and method for state information using short message |
US6381651B1 (en) * | 1996-12-18 | 2002-04-30 | Sony Corporation | Information processing apparatus and method enabling users to easily acquire information that occurs on a network and suits their favorites |
KR20040094236A (en) * | 2003-05-02 | 2004-11-09 | 에스케이 텔레콤주식회사 | Information providing system and method of dialogue type interface |
KR20050042602A (en) * | 2003-11-03 | 2005-05-10 | 이명곤 | Device and method for changing subscriber information |
-
2005
- 2005-07-04 KR KR1020050059715A patent/KR100617326B1/en not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6381651B1 (en) * | 1996-12-18 | 2002-04-30 | Sony Corporation | Information processing apparatus and method enabling users to easily acquire information that occurs on a network and suits their favorites |
KR20020027432A (en) * | 2002-03-08 | 2002-04-13 | 김규천 | Management system and method for state information using short message |
KR20040094236A (en) * | 2003-05-02 | 2004-11-09 | 에스케이 텔레콤주식회사 | Information providing system and method of dialogue type interface |
KR20050042602A (en) * | 2003-11-03 | 2005-05-10 | 이명곤 | Device and method for changing subscriber information |
Also Published As
Publication number | Publication date |
---|---|
KR20060064488A (en) | 2006-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230153124A1 (en) | Edge network computing system with deep reinforcement learning based task scheduling | |
Kiddle et al. | Hybrid packet/fluid flow network simulation | |
US20220210026A1 (en) | Network Parameter Configuration Method and Apparatus, Computer Device, and Storage Medium | |
CN116685985A (en) | Joint learning system and method with diversified feedback | |
CN111629380A (en) | Dynamic resource allocation method for high-concurrency multi-service industrial 5G network | |
WO2009113106A2 (en) | Network communication | |
US20240054354A1 (en) | Federated learning method and apparatus | |
CN111935025B (en) | Control method, device, equipment and medium for TCP transmission performance | |
CN109189596A (en) | The method and apparatus that large-size screen monitors are shown are realized based on Websocket | |
Ma et al. | An intelligent scheme for congestion control: When active queue management meets deep reinforcement learning | |
CN116909735A (en) | Calculation power scheduling method and device, server and storage medium | |
CN114389959B (en) | Network congestion control method, device, electronic equipment and storage medium | |
CN114915450B (en) | Stream mimicry judging device and method | |
CN115550233A (en) | Distributed route determination method, electronic device, and storage medium | |
Bhattacharyya et al. | QFlow: A learning approach to high QoE video streaming at the wireless edge | |
CN111632385B (en) | Game control method, game control device, computer equipment and storage medium | |
US20230060623A1 (en) | Network improvement with reinforcement learning | |
Xu et al. | PnP-DRL: A plug-and-play deep reinforcement learning approach for experience-driven networking | |
KR100617326B1 (en) | Device and method for packet transmission in client-server based networked virtual environment | |
CN116956028A (en) | User portrait updating method, device, equipment and storage medium | |
CN115580618B (en) | Load balancing method, device, equipment and medium | |
US20230231810A1 (en) | System and method for adapting transmission rate computation by a content transmitter | |
CN115695390B (en) | Mine safety monitoring system mass video data self-adaptive streaming method based on mobile edge calculation | |
CN115334010A (en) | Query information processing method and device, storage medium and electronic device | |
CN116764235A (en) | Data processing method and related device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20100802 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |