KR20030064732A - An efficient synchronization mechanism dynamically adapting to the network state for networked virtual environments - Google Patents

An efficient synchronization mechanism dynamically adapting to the network state for networked virtual environments Download PDF

Info

Publication number
KR20030064732A
KR20030064732A KR1020030050534A KR20030050534A KR20030064732A KR 20030064732 A KR20030064732 A KR 20030064732A KR 1020030050534 A KR1020030050534 A KR 1020030050534A KR 20030050534 A KR20030050534 A KR 20030050534A KR 20030064732 A KR20030064732 A KR 20030064732A
Authority
KR
South Korea
Prior art keywords
event
loss rate
network
participant
time
Prior art date
Application number
KR1020030050534A
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 KR1020030050534A priority Critical patent/KR20030064732A/en
Publication of KR20030064732A publication Critical patent/KR20030064732A/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/02Arrangements for optimising operational condition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W56/00Synchronisation arrangements
    • H04W56/001Synchronization between nodes

Abstract

PURPOSE: A synchronization method in consideration of a variable network state in a networked virtual environment is provided to synchronize an event execution and provide participants with the same view without degrading an interaction performance of a system. CONSTITUTION: A participant 'A' receives a piggyback event storing an event loss rate from other participants 'B' and 'C'. The participant 'A' calculates its event loss rate R(k), an average event loss rate, L(k), and a playout delay P(k+1) to be applied for the next time interval when kth time interval is terminated. When the participant 'A' generates a first event E(A) at a point T1, it sets the playout delay of E(A) as P(k+1) and adds its event loss rate R(k). The participants 'B' and 'C' receive the event the participant 'A' has generated, store it in a buffer until a prearranged playout time point of the event E(A), and execute the event E(A) together with the participant 'A' at a playout time(T1+P(k+1)).

Description

네트워크 가상 환경에서 가변적 네트워크 상태를 고려한 동기화 방법{AN EFFICIENT SYNCHRONIZATION MECHANISM DYNAMICALLY ADAPTING TO THE NETWORK STATE FOR NETWORKED VIRTUAL ENVIRONMENTS}Synchronization method considering variable network status in network virtual environment

본 발명은 네트워크 가상 환경에서의 동기화 방법에 관한 것으로, 특히 네트워크 가상 환경을 위한 가변적인 네트워크 상태를 고려하는 동기화 방법에 관한 것이다.The present invention relates to a synchronization method in a network virtual environment, and more particularly, to a synchronization method considering a variable network state for a network virtual environment.

네트워크 가상 환경(Networked Virtual Environments)은 지리적으로 서로 떨어져 있는 참가자들이 동일한 뷰(view)를 가지고 실시간으로 상호 작용하는 시스템을 말한다. 특히 지역적으로 참가자가 분산되어 있는 대규모 네트워크에서는 각 참가자 사이트에 가상 환경 정보를 복제함으로써 상호 작용 성능을 높일 수 있다. 이 경우 각 참가자 사이트에서 뷰 변화를 일으키는 이벤트가 발생하게 되면, 뷰 동기화를 위해 발생된 이벤트는 모든 참가자들에게 전송되어 동시에 실행되어야 한다.Networked Virtual Environments are systems in which geographically separated participants interact in real time with the same view. Especially in large networks with geographically distributed participants, interaction performance can be improved by replicating virtual environment information at each participant site. In this case, when an event causing a view change occurs at each participant site, the event generated for view synchronization should be transmitted to all participants and executed simultaneously.

그러나 참가자들이 포함된 네트워크의 규모가 커지면서 참가자들 간의 데이터 송수신률이 다양해지고, 기타 네트워크 서비스들로 인해 네트워크 상의 트래픽이 시간에 따라 다양하게 변화하므로, 데이터 전송 시간이 시간에 따라 변화하게 된다. 이로 인해 참가자들 중에 동일한 뷰를 유지하지 못하는 문제점이 있었다.However, as the size of the network including participants increases, data transmission and reception rates between participants vary, and traffic on the network varies according to time due to other network services, so that the data transmission time changes over time. This caused a problem of not maintaining the same view among the participants.

이를 위해 종래에는 네트워크 가상 환경 상에서 모든 참가자들에게 동일한뷰를 제공하기 위해 MiMaze에 의한 버킷 동기화와 추측 항법과 긍정적 접근 방법등이 제안되어 있다.To this end, in order to provide the same view to all participants in a network virtual environment, bucket synchronization, dead reckoning and a positive approach by MiMaze have been proposed.

이하 상기 종래 방법을 좀더 상세히 살펴보면, 먼저 MiMaze의 버킷 동기화(bucket synchronization)와 추측 항법(dead-reckoning)에서는, 이벤트 송신자가 이벤트를 발생시킨 때부터 수신자에서 이벤트가 실행될 때까지 걸리는 시간을 '재생 지연 시간(playout delay)'이라고 칭하고, 전송되는 모든 이벤트에 대해서 고정적인 재생 지연 시간을 설정한다. 설정된 재생 지연 시간을 이용하여 각 참가자가 수신된 이벤트의 재생 시점을 계산하고, 계산된 재생 시점에 해당 이벤트를 실행함으로써 모든 참가자들의 뷰가 동기화 된다. 각 참가자는 재생 시점 이후에 수신한 이벤트를 손실된 이벤트로 간주하고 재생 시점 이전에 수신한 이벤트는 재생 시점까지 버킷에 저장한다. 기본적으로 모든 사용자는 '광역 시계(global clock)'를 사용하기 때문에 같은 그룹에 속해 있는 모든 참가자들은 손실되지 않은 이벤트들에 대해서 동일한 시각에 동일한 이벤트를 실행하게 된다. 그리고 손실된 이벤트를 보상하기 위한 방법으로 추측 항법을 사용한다. 추측 항법은 기존의 위치 정보와 이동 방향 정보를 근거로 하여 수신자측에서 상대 아바타의 현재 위치 정보를 예측하는 방법이다.Looking at the above conventional method in more detail, first, in MiMaze's bucket synchronization and dead-reckoning, the time delay between the event sender's event generation and the event execution in the receiver is 'play delay'. Called playout delay ', a fixed playback delay time is set for all transmitted events. By using the set playback delay time, each participant calculates a playback time of the received event and executes the corresponding event at the calculated playback time to synchronize the views of all participants. Each participant considers an event received after the playback point as a lost event and stores the event received before the playback point in the bucket until the playback point. By default, all users use the 'global clock' so that all participants in the same group will run the same event at the same time for events that are not lost. We use dead reckoning as a way to compensate for lost events. The dead reckoning is a method of predicting the current position information of the opponent avatar based on the existing position information and the moving direction information.

다음으로, 긍정적 접근 방법에서는 동일한 뷰를 제공하기 위해 MiMaze의 버킷 동기화 기법과 비슷한 개념인 local lag 기법을 사용한다. 각 참가자는 local lag 시각이 될 때까지 수신한 이벤트를 저장하고 local lag 시각에 이벤트를 실행하게 된다. 긍정적 접근 방법에서도 광역 시계를 사용하여 참가자들이 동일한 시점에 이벤트를 실행할 것을 보장한다. 긍정적 접근에서는 늦게 도착한 이벤트를 처리하기 위해 수신한 이벤트와 현재 뷰의 관련성을 조사하여 늦게 도착한 이벤트 중 선택적으로 처리하는 '시간 왜곡(timewarp)' 기법을 사용한다. 시간 왜곡 기법을 사용하기 위해 모든 참가자는 일정 시간 동안의 뷰의 변화된 내역을 유지한다.Next, the positive approach uses the local lag technique, which is similar to MiMaze's bucket synchronization scheme, to provide the same view. Each participant stores the received event until the local lag time and executes the event at the local lag time. The positive approach also uses a wide field of view to ensure that participants run the event at the same time. The positive approach uses a 'timewarp' technique that examines the relationship between the received event and the current view to handle late arrival events and selectively handles late arrival events. To use the time warping technique, every participant maintains a changed history of the view over a period of time.

이때, 상기 MiMaze와 긍정적 접근 방법(Optimistic approach)에서는 이벤트 실행의 동기화를 위해 모든 참가자가 공통으로 사용하는 재생 시점을 계산하며, 수신자들은 재생 시점이 지난 후 수신된 이벤트들은 손실된 이벤트로 간주하고 재생 시점 전에 수신된 이벤트들은 재생 시점까지 자신의 시스템에 저장한다.In this case, the MiMaze and the Optimalistic approach calculate the playback time that all participants commonly use for synchronization of event execution, and the receivers regard the events received after the playback time as lost events and play back. Events received before the time are stored in the system until the time of playback.

그러나 상기한 종래 MiMaze와 긍정적 접근 방법(Optimistic approach)에서는 재생 지연 시간을 고정 값으로 정하고 있기 때문에 네트워크 상태의 변화에 따라 재생 지연 시간을 효율적으로 변경하지 못하게 되는 문제점이 있었다. 즉, 네트워크 트래픽이 감소하여 전송 지연 시간이 짧아져서 대부분의 이벤트가 재생 시점보다 이전에 도착하는 경우, 이벤트들을 재생 시점까지 저장하기 위한 시스템 자원을 추가적으로 사용하게 될 뿐만 아니라 정해진 재생 시점보다 빨리 수행하여 시스템의 상호 작용 성능을 향상시킬 수 있는 기회를 놓치게 된다. 반대로 네트워크 상에 트래픽이 많아져 전송 지연 시간이 길어지면, 재생 시각 후에 전달되어 실행되지 못하고 버려지는 이벤트가 많아져 참가자들에게 서로 일치하는 뷰를 제공하기 어렵게 되는 문제점이 있었다.However, in the conventional MiMaze and the positive approach, since the playback delay time is set to a fixed value, there is a problem in that the playback delay time cannot be efficiently changed in accordance with the change of the network state. That is, when network traffic is reduced and transmission delay time is shortened so that most events arrive before playback time, the system resource is additionally used to store the events until playback time, and is performed faster than the predetermined playback time. You will miss the opportunity to improve the system's interaction performance. On the contrary, when the traffic delay on the network increases and the transmission delay time increases, it is difficult to provide a matched view to the participants because many events are delivered and not executed after the playback time.

따라서, 본 발명의 목적은 가상 환경에 있는 참가자들에게 동일한 뷰를 제공하기 위해 시스템의 상호 작용 성능을 저하시키지 않으면서 가변적인 네트워크 트래픽 상태를 고려하여 이벤트 실행을 동기화할 수 있도록 하는 네트워크 가상 환경을 위한 가변적인 네트웍 상태를 고려하는 동기화 방법을 제공함에 있다.Accordingly, an object of the present invention is to provide a network virtual environment that enables synchronization of event execution in consideration of variable network traffic conditions without compromising the system's interaction performance to provide the same view to participants in the virtual environment. The present invention provides a synchronization method that considers a variable network condition.

상술한 목적을 달성하기 위한 본 발명은 네트워크 가상 환경에서 가변적인 네트웍 상태를 고려하는 동기화 방법으로서, (a)가상 환경 네트워크내 참가자는 일정 시간 간격마다 수신 이벤트에 대한 손실률을 계산하고, 이를 자신이 발생시킨 이벤트에 포함하여 타 참가자들에게 알리는 단계와; (b)상기 네트워크내 각 참가자들은 타 참가자들로부터 전송된 피기백 이벤트에서 송신 참가자의 이벤트 손실률 정보를 추출하는 단계와; (c)상기 타 참가자들의 손실률 정보를 이용하여 평균 이벤트 손실률을 계산하는 단계와; (d)각 참가자는 네트워크 트래픽 상태 판단을 위해 미리 설정된 기준값과 상기 평균 이벤트 손실률을 비교하여 네트워크 트래픽 상태를 판단하는 단계와; (e)상기 네트워크 트래픽 상태에 따라 자신이 전송하는 이벤트가 적용될 재생 지연 시간을 적응적으로 변경 설정시키는 단계;를 포함하는 것을 특징으로 한다.The present invention for achieving the above object is a synchronization method that takes into account the variable network conditions in the network virtual environment, (a) the participants in the virtual environment network calculates the loss rate for the received event at regular intervals, Notifying other participants by including the generated event; (b) extracting, by each participant in the network, event loss rate information of a transmitting participant from a piggyback event transmitted from other participants; (c) calculating an average event loss rate using the loss rate information of the other participants; (d) determining each network participant by comparing the average event loss rate with a predetermined reference value for determining a network traffic condition; and (e) adaptively changing and setting a reproduction delay time to which an event transmitted by the user transmits the event according to the network traffic state.

도 1은 본 발명의 실시 예에 따른 가변적 네트워크 상태에 적응적인 동기화 처리 개념도,1 is a conceptual diagram of synchronization processing adaptive to a variable network state according to an embodiment of the present invention;

도 2는 본 발명의 실시 예에 따른 동기화 방법이 적용되는 ATLAS 소프트웨어 모듈 구성도,2 is a block diagram of an ATLAS software module to which a synchronization method is applied according to an embodiment of the present invention;

도 3은 본 발명의 실시 예에 따른 이벤트 관리자와 동기화 관리자간 이벤트 처리 흐름도,3 is an event processing flowchart between an event manager and a synchronization manager according to an embodiment of the present invention;

도 4는 본 발명의 실시 예에 따른 동기화 방법을 구현하기 위해 정의되는 확장된 ATLAS 이벤트 메시지 포맷도,4 is an extended ATLAS event message format defined for implementing a synchronization method according to an embodiment of the present invention;

도 5는 본 발명의 실시 예에 따른 동기화 방법이 적용되는 48개 노드의 네트워크 구조도,5 is a network structure diagram of 48 nodes to which a synchronization method according to an embodiment of the present invention is applied;

도 6은 본 발명의 실시 예에 따른 네트워크상 트래픽양의 변화 상태 판단을 위한 평균 전송 지연 시간 그래프 예시도,6 is an exemplary graph of an average transmission delay time for determining a change state of the amount of traffic on a network according to an embodiment of the present invention;

도 7은 본 발명의 실시 예에 따른 가변적인 재생 지연시간 적용시 이벤트 손실률 그래프 예시도,7 is a diagram illustrating an event loss rate graph when a variable playback delay time is applied according to an embodiment of the present invention;

도 8은 본 발명의 실시 예에 따른 가변적인 재생 지연 시간 그래프 예시도,8 is a view illustrating a variable playback delay time graph according to an embodiment of the present invention;

도 9는 본 발명의 실시 예에 따른 동기화 방법이 적용된 어플리케이션 실행 화면 예시도.9 illustrates an application execution screen to which a synchronization method is applied according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예의 동작을 상세하게 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail the operation of the preferred embodiment according to the present invention.

먼저 본 발명의 동기화 방법에서는 가변적인 네트워크 상태를 고려하기 위해 상호 작용 성능과 뷰 일관성의 관계, 네트워크 트래픽 상태 측정 및 오버헤드, 시각 동기화 측면을 고려한다.First, the synchronization method of the present invention considers the relationship between interaction performance and view coherence, network traffic state measurement and overhead, and visual synchronization in order to consider variable network conditions.

네트워크 게임과 같은 실시간 상호 작용 시스템은 참가자들 간의 동일한 뷰를 제공할 수 있어야 하며 동시에 참가자가 만족할 만한 상호 작용 성능을 제공해야 한다. 하지만 이러한 두 가지 고려 사항은 서로 상충적인 성격을 가진다. 재생 지연 시간을 짧게 설정하는 경우는 상호 작용 성능의 향상은 있으나 재생 시각 후에 전달되어 손실되는 이벤트 수의 증가를 초래하고, 이와 반대로 재생 지연 시간이 길게 설정되면, 대부분의 사용들 간의 뷰 동기화를 이룰 수 있지만 이벤트 저장을 위한 추가적인 자원의 소모와 함께 상대적으로 낮은 상호 작용 성능을 보이게 된다.Real-time interaction systems, such as network games, must be able to provide the same view between participants and at the same time provide a satisfactory interaction performance. However, these two considerations are in conflict with each other. Setting a short playback delay improves interaction performance, but results in an increase in the number of events delivered after the playback time and, conversely, a long playback delay allows view synchronization between most uses. However, it shows relatively low interaction performance with the consumption of additional resources for storing events.

따라서 뷰 동기화 방법은 상호 작용 성능을 저하시키지 않으면서 네트워크 트래픽 상태에 맞도록 재생 지연 시간을 조절할 수 있어야 한다.Therefore, the view synchronization method should be able to adjust the playback delay time to match the network traffic conditions without degrading the interaction performance.

네트워크 트래픽 상태는 여러 가지 방법으로 측정될 수 있는데, 제안하는 기법에서는 네트워크 트래픽에 반비례하여 이벤트 손실률이 달라지기 때문에 이벤트 손실률을 네트워크 트래픽 상태를 판단하는 기준으로 사용한다. 이벤트 손실률은 송신자 기반(sender-driven) 방식과 수신자 기반(receiver-driven) 방식으로 계산될 수 있다. '송신자 기반 방식'에서는, 송신자가 모든 수신자들에게 이벤트 손실률 정보를 요청하여 이에 대한 응답으로 이벤트 손실률 정보를 수신한다. 즉, 이벤트 손실률 정보를 획득하기 위해 세션에 속한 참가자 수의 두 배에 해당하는 메시지 교환이 추가로 필요하다. 그러므로, 대규모 가상 환경에서 확장성을 제공해 주지 못한다는 단점이 있다.The network traffic state can be measured in various ways. The proposed method uses the event loss rate as a criterion for determining the network traffic state because the event loss rate varies in inverse proportion to the network traffic. The event loss rate can be calculated in a sender-driven and receiver-driven manner. In the 'sender-based scheme', the sender requests event loss rate information from all receivers and receives the event loss rate information in response. That is, in order to obtain event loss rate information, a message exchange corresponding to twice the number of participants in a session is additionally required. Therefore, it does not provide scalability in a large virtual environment.

따라서 제안하는 기법에서는, 참가자들이 외부적인 요청 없이 주기적으로 자신이 측정한 이벤트 손실률을 자발적으로 알리는 '수신자 기반 방식'을 사용한다. 이벤트가 동일한 시각에 실행되는 것을 보장하기 위해 모든 참가자들의 시스템 시간이 동기화 되어야 한다. 그렇지 않으면 동일한 재생 시각을 갖는 이벤트들이라도 참가자에 따라 서로 다른 시점에 실행되게 된다. 대규모 분산 시스템에서는 시각 동기화를 제공하기 위해 Network Time Protocol (NTP), GPS 수신자 기법, 응답 시간을 이용한 NTP 유사 알고리즘, 그리고 32 비트 혹은 짝수 16 비트 설정키(timestamps) 등의 방식 등을 사용한다.Therefore, the proposed technique uses a 'recipient-based approach' in which participants voluntarily announce their event loss rate periodically without external requests. The system time of all participants must be synchronized to ensure that the event runs at the same time. Otherwise, events having the same playback time will be executed at different times depending on the participant. Large distributed systems use Network Time Protocol (NTP), GPS receiver techniques, NTP-like algorithms using response time, and 32-bit or even 16-bit timestamps to provide time synchronization.

한편, 모든 참가자들은 네트워크 트래픽 상태에 따라 재생 지연 시간을 조정하기 위해 일정한 시간 간격마다 네트워크 트래픽 상태를 측정한다. 송신자는 아래의 [수학식 1]을 이용하여 k번째 시간 간격 동안 자신이 수신한 이벤트에 대한 손실률 R(k)를 계산하고 이를 자신이 발생시킨 이벤트에 포함하여 타 참가자들에게 알린다. 이렇게 손실률 정보를 포함한 이벤트를 '피기백 이벤트'라 한다.On the other hand, all participants measure network traffic conditions at regular time intervals to adjust the playback delay time according to the network traffic conditions. The sender uses Equation 1 below to calculate the loss rate R (k) for the event received during the k-th time interval and notify the other participants by including it in the event generated by the sender. This event including loss rate information is called a 'piggyback event'.

Ntotal(k) = Nsuccess(k) + Nlate(k) + Nlost(k), 단, k=1, 2, 3, . . . 이고,N total (k) = N success (k) + N late (k) + N lost (k), with k = 1, 2, 3 ,. . . ego,

R(0)=0 이다.R (0) = 0.

상기 [수학식 1]에서 Nsuccess(k), Nlost(k), Nlate(k)는 k번째 시간 간격 동안재생 시각 전에 수신한 이벤트의 수, 네트워크 상에서 손실된 이벤트의 수, 재생 시각이 지난 후 수신된 이벤트의 수를 각각 의미한다. 전송 계층에서 신뢰적 전송을 보장하는 것으로 가정하는 경우에는 상기 [수학식 1]의 상단값의 대부분은 재생 시점이 지나서 수신된 이벤트들이 차지하게 된다. Ntotal(k)는 k번째 시간 간격 동안 측정된 Nsuccess(k)와 Nlost(k), Nlate(k)의 합이다. 전송 계층에서의 신뢰적 전송을 가정하더라도, 네트워크 상에서 발생할 수 있는 이벤트 손실을 완전히 배제할 수 없으므로 연속적으로 두 개의 피기백 이벤트를 전송한다.In Equation 1, N success (k), N lost (k), and N late (k) are the number of events received before the play time during the kth time interval, the number of events lost on the network, and the play time. It means the number of events received since the past If it is assumed that the transport layer guarantees reliable transmission, most of the upper values of Equation 1 are occupied by events received after the reproduction time. N total (k) is the sum of N success (k), N lost (k) and N late (k) measured during the kth time interval. Even assuming reliable transmission at the transport layer, two piggyback events are transmitted in succession because the event loss that can occur on the network cannot be completely excluded.

각 참가자들은 타 참가자들로부터 전달된 피기백 이벤트에서 송신 참가자의 이벤트 손실률 정보를 추출한다. 이렇게 해서 수집된 손실률 정보를 사용하여 평균 이벤트 손실률을 계산한다. 개별 수신자들이 k번째 시간 간격에서 계산하는 평균 이벤트 손실률 L(k)는 아래의 [수학식 2]에서와 같다.Each participant extracts event loss rate information of the transmitting participant from the piggyback event delivered from other participants. The loss rate information collected is then used to calculate the average event loss rate. The average event loss rate L (k) calculated by individual receivers at the kth time interval is shown in Equation 2 below.

상기 [수학식 2]에서 S는 세션 참가자의 집합을 나타내고, 따라서 |S|는 참가자들의 수이다. Rj(k-1)은 (k-1)번째 시간 간격에서 참가자 j가 보고한 이벤트 손실률이다. 이 때, 참가자 j로부터 보고된 이벤트 손실률이 없으면, 이전 시간 간격에서 사용된 이벤트 손실률을 사용한다. 각 참가자는 어플리케이션에서 정해진 기준값 Lc와 평균 이벤트 손실률을 비교하여 세션 참가자들의 네트워크 트래픽 상태를 판단한다. 두 값을 비교하여 이벤트 손실률이 Lc보다 작은 경우에는 네트워크 상태를 '저부하(lightly loaded) 상태'라 판단한다. 네트워크 트래픽이 적어서 이벤트의 전송 지연 시간이 짧고 이로 인해 재생 시점 이전에 도착한 것이라고 가정하기 때문이다. 반대의 경우, 즉, 이벤트 손실률이 Lc보다 크거나 같은 경우에는 네트워크 상태를 '고부하(heavily loaded) 상태'라 판단한다. 이벤트 손실률이 높아진 이유가, 저부하 상태와는 반대로, 네트워크 트래픽이 많아서 이벤트 전송 지연 시간이 길고 이로 인해 재생 시점 이전에 도착하지 못했다고 가정하기 때문이다.In Equation 2, S represents a set of session participants, and | S | is a number of participants. R j (k-1) is the event loss rate reported by participant j in the (k-1) th time interval. At this time, if there is no event loss rate reported from participant j, the event loss rate used in the previous time interval is used. Each participant determines the network traffic status of the session participants by comparing the average event loss rate with the reference value L c determined in the application. Comparing the two values, if the event loss rate is less than L c , the network state is determined as a 'lightly loaded state'. This is because the network traffic is low, and the transmission delay time of the event is assumed to be short, which means that it arrives before the playback time. In the opposite case, that is, when the event loss rate is greater than or equal to L c , the network state is determined as a 'heavily loaded state'. The reason for the high event loss rate is that, contrary to the low load state, it is assumed that there is a lot of network traffic, so that the event transmission delay time is long and thus did not arrive before the time of reproduction.

이때, 어플리케이션에서 기준값 Lc를 작은 값으로 정한다면, 대부분의 경우 네트워크 상태를 고부하 상태라고 판단하게 되어 재생 지연 시간을 길게 유지할 것이므로, 세션의 일관성은 향상되지만 상호 작용 성능은 상대적으로 저하된다. 반대로 Lc값을 크게 정한다면, 대부분의 경우 네트워크 상태를 저부하 상태로 판단하게 되어 재생 지연 시간을 짧게 유지할 것이므로, 상호 작용 성능은 향상되지만 세션 참가자들의 뷰 일관성 정도는 떨어지게 될 것이다.In this case, if the reference value L c is set to a small value in the application, in most cases, the network state is determined to be a high load state, and thus the playback delay time is kept long, so that the session consistency is improved but the interaction performance is relatively decreased. Conversely, if you set a large L c value, in most cases, the network state will be judged as a low load state, and the playback delay time will be kept short, so that the interaction performance will be improved but the view consistency of session participants will be reduced.

각 참가자들은 네트워크 트래픽 상태를 판단하고, 판단된 결과에 따라 자신이 전송하는 이벤트에 적용할 재생 지연 시간을 결정한다. 여기서의 재생 지연 시간은 MiMaze에서와 동일한 개념이다. 네트워크 트래픽이 고부하 상태이면, 재생 지연 시간을 늘리고 네트워크 트래픽이 저부하 상태이면, 재생 지연 시간을 줄이도록한다. 재생 지연 시간의 증감은 TCP에서 사용하는 AIMD(Additive Increase Multiplicative Decrease) 방식과 유사하게 재생 지연 시간 감소량과 증가량을 다르게 한다. 송신자 A가 (k+1) 번째 시간 간격에서 적용할 재생 지연 시간 P(k+1)의 계산은 아래의 [수학식 3]과 같다.Each participant determines the network traffic condition and determines the playback delay time to be applied to the event transmitted by the participants. The playback delay time here is the same concept as in MiMaze. If the network traffic is under high load, increase the reproduction delay time, and if the network traffic is under low load, reduce the reproduction delay time. The increase and decrease of the play delay time differs from the decrease and increase of the play delay time similarly to the Additive Increase Multiplicative Decrease (AIMD) method used in TCP. The calculation of the reproduction delay time P (k + 1) to be applied by the sender A in the (k + 1) th time interval is shown in Equation 3 below.

, ,

단, k=1,2,3 ...Where k = 1,2,3 ...

이때 상기 Lc값을 이용하여 서로 상충 관계인 일관성과 상호 작용 성능 중 다른 하나의 성질을 부각시킬 수 있기 때문에 Lc값은 어플리케이션의 특성에 따라 달라질 수 있다.는 상수 값으로 실험을 통해 보다 효과적인 값으로 정한다. 재생 지연 시간은 해당 어플리케이션에서 정한 최대값 (Pmax)과 최소값(Pmin)에 의해 제한된다. P(k+1)의 값이 Pmax보다 큰 경우, P(k+1)를 Pmax으로 대체하고 P(k+1)이 Pmin보다 작은 경우 P(k+1) 대신 Pmin을 사용한다.In this case, the L c value may vary depending on the characteristics of the application because the L c value may highlight a different property of consistency and interaction performance that are in conflict with each other. and Is a constant value and is determined to be more effective through experimentation. The playback delay time is limited by the maximum value (P max ) and minimum value (P min ) determined by the application. P, if the value of (k + 1) is greater than P max, P (k + 1), if replaced by P max and P (k + 1) is less than P min instead of P (k + 1) using a P min do.

도 1은 본 발명의 실시 예에 따른 네트워크상에서 가변적으로 변하는 네트웍 상태를 고려한 동기화 처리 개념을 도시한 것이다.1 is a diagram illustrating a concept of a synchronization process considering a variable network state in a network according to an exemplary embodiment of the present invention.

상기 도 1을 참조하면, 참가자 A, B, C 사이의 상호 작용에 대한 예를 보이고 있다. 참가자 A는 다른 참가자 B와 C로부터 이벤트 손실률을 저장하고 있는 피기백 이벤트를 받는다. 참가자 A는 k번째 시간 간격이 끝날 때 자신의 이벤트 손실률, R(k), 평균 이벤트 손실률, L(k), 그리고 다음 시간 간격 동안 적용할 재생 지연 시간 P(k+1)을 계산한다. 참가자 A가 시각 T1에서 첫 번째 이벤트 E(A)를 발생시킬 때 E(A)의 재생 지연 시간을 P(k+1)로 설정하고 자신의 이벤트 손실률 R(k)를 첨부한다. 참가자 B와 C는 참가자 A가 발생시킨 이벤트를 받아 이벤트 E(A)의 예정 재생 시점까지 버퍼에 저장하고 재생 시각인 (T1+P(k+1))에 참가자 A와 동시에 이벤트 E(A)를 실행시킨다.Referring to FIG. 1, an example of interaction between participants A, B, and C is shown. Participant A receives a piggyback event that stores the event loss rate from other participants B and C. Participant A calculates his event loss rate, R (k), average event loss rate, L (k), and the playback delay time P (k + 1) to be applied during the next time interval. When participant A generates the first event E (A) at time T 1 , set the playback delay time of E (A) to P (k + 1) and attach his event loss rate R (k). Participants B and C receive the event generated by Participant A and store it in the buffer until the scheduled playback time of Event E (A), and at the same time (T 1 + P (k + 1)), Participant A and Event E (A ).

도 2는 상기 동기화 방법을 적용한 네트워크 가상 환경 프레임웍 ATLAS의 소프트웨어 모듈 구성을 도시한 것이고, 도 3은 동기화 방법 라이브러리 내부 흐름도를 도시한 것이다.2 illustrates a software module configuration of the network virtual environment framework ATLAS to which the above synchronization method is applied, and FIG. 3 illustrates an internal flowchart of the synchronization method library.

먼저 상기 도 2을 참조하면, ATLAS는 가상환경을 위한 확장성 있는 네트워크 프레임웍으로 세션 관리자(Session Manager)(200), 영역 관리자(Region Manager)(202), 이벤트 관리자(Event Manager)(204), 통신 관리자(Communication Manager)(206), 동기화 관리자(Synchronization Manager)(208) 모듈로 이루어진다. 통신 관리자(206)는 참가자들 간 통신 채널의 생성, 삭제 등을 수행하며 시스템 구조에 따라 클라이언트-서버, 피어-피어, 혹은 피어-서버 구조를 지원한다. 이벤트 관리자(204)는 통신 관리자(206)로부터 네트워크 메시지를 받아 ATLAS 이벤트 메시지로 변환하여 상위 레벨로 전달하거나 상위 레벨로부터 ATLAS 이벤트 메시지를 받아 네트워크 메시지로 변환하여 통신 관리자(206)에게 전달한다.First, referring to FIG. 2, ATLAS is a scalable network framework for a virtual environment, including a session manager 200, a region manager 202, an event manager 204, It consists of a Communication Manager 206 and a Synchronization Manager 208 module. The communication manager 206 creates, deletes, and performs a communication channel between participants, and supports a client-server, peer-peer, or peer-server structure according to the system structure. The event manager 204 receives a network message from the communication manager 206 and converts it into an ATLAS event message and delivers it to a higher level or receives an ATLAS event message from a higher level and converts it into a network message and delivers it to the communication manager 206.

다음으로 상기 도 3을 참조하면, 이벤트 관리자 init()(300)는 이벤트 관리자(204)를 초기화시키는 메소드(Method)이며, 동기화 관리자 init()(302)는 동기화 관리자(208)를 초기화시키는 메소드이다. 스레드 update_playout()(304)는 주기적으로 재생 지연 시간을 계산하여 재생 지연 시간을 갱신하는 스레드이고, 스레드 schedule_event()(306)는 주기적으로 pop_buffer()(308)를 호출하는 스레드이다.Next, referring to FIG. 3, the event manager init () 300 is a method for initializing the event manager 204, and the synchronization manager init () 302 is a method for initializing the synchronization manager 208. to be. Thread update_playout () 304 is a thread that periodically calculates a play delay time to update the play delay time, and thread schedule_event () 306 is a thread that periodically calls pop_buffer () 308.

동기화 관리자 pop_buffer()(308)는 schedule_event()(306)에 의해 호출되며 이벤트 버퍼(210)에 저장되어 있는 이벤트 중 재생 시점이 된 이벤트를 어플리케이션으로 전달한다. 동기화 관리자 compare_time()(310)는 재생 시점과 현재 시점을 입력 받아 두 값을 비교하여 재생 시점이 현재 시점보다 빠르면 0을 반환하고 재생 시점이 늦으면 1을 반환하여 이벤트가 재생 시점 이전에 수신되었는지에 대한 여부를 알려주는 메소드이다. 동기화 관리자 process_event()(312)는 동기화 관리자(208)에서 받은 이벤트를 처리하는 곳으로 compare_time()(310)을 이용하여 해당 이벤트의 재생 시점이 현재 시점보다 빠른 경우 손실된 이벤트로 처리하고 아닌 경우 insert_buffer()(314)를 호출한다.The synchronization manager pop_buffer () 308 is called by the schedule_event () 306 and delivers the event, which is the playback time, among the events stored in the event buffer 210 to the application. The synchronization manager compare_time () 310 takes the playback time point and the current time point, compares the two values, returns 0 if the playback point is earlier than the current point of time, and returns 1 if the playback point is later, indicating whether the event was received before the playback point. Method that tells whether or not When the synchronization manager process_event () 312 processes the event received from the synchronization manager 208, the compare_time () 310 is used to process the lost event when the playback time of the corresponding event is earlier than the current time. Invoke insert_buffer () (314).

동기화 관리자 insert_buffer()(314)는 받은 이벤트를 이벤트 버퍼(210)에 저장하는 메소드이며, 동기화 관리자 find_position()(316)는 이벤트 버퍼(210)에서 비어 있는 곳의 index를 반환하는 메소드이다. 이벤트 관리자 receive_event()(318)는 네트워크로부터 이벤트를 받는 메소드이다.The synchronization manager insert_buffer () 314 is a method for storing the received event in the event buffer 210, and the synchronization manager find_position () 316 is a method for returning an empty index in the event buffer 210. The event manager receive_event () 318 is a method for receiving events from the network.

본 발명의 실시 예에서는 제안한 기법을 지원하기 위해 동기화 관리자(208)를 ATLAS에 추가하였다. 동기화 관리자(208)는 이벤트 관리자(204)로부터 메시지를 받아 이벤트 버퍼(210)에 저장한 후, 재생 시점이 되면 상위 레벨, 즉 ATLAS 응용계층에 전달한다.In an embodiment of the present invention, a synchronization manager 208 is added to ATLAS to support the proposed scheme. The synchronization manager 208 receives the message from the event manager 204, stores the message in the event buffer 210, and delivers the message to a higher level, that is, the ATLAS application layer, when the playback time is reached.

이벤트 관리자(204)가 초기화될 때 동기화 관리자(208)를 생성하며 생성된 동기화 관리자(208)는 재생 지연 시간을 갱신하기 위한 스레드(update_playout())(304)와 이벤트 버퍼(210)에 저장된 이벤트를 어플리케이션으로 주기 위한 스레드(schedule_event())(306)를 동작시킨다. 이벤트 관리자(204)는 네트워크 메시지를 ATLAS 이벤트 메시지로 변환하여 동기화 관리자(208)에게 전달한다. 동기화 관리자(208)는 확장된 ATLAS 이벤트 헤더를 점검하여 해당 이벤트가 피기백 이벤트인지 확인하여 피기백 이벤트일 경우 이벤트 손실률을 추출하여 저장한다. 그리고, 이벤트 헤더에 포함되어 있는 재생 지연 시간과 이벤트 발생 시각을 이용하여 해당 이벤트의 재생 시점을 계산한다. 현재 시각이 재생 시점 이후이면 해당 이벤트를 버리고, 그렇지 않으면, 해당 이벤트는 이벤트 버퍼(210)에 저장한다.When the event manager 204 is initialized, it creates a synchronization manager 208, and the generated synchronization manager 208 generates an event stored in the event buffer 210 and a thread (update_playout ()) 304 for updating the playback delay time. A thread (schedule_event ()) 306 to give a to an application is operated. The event manager 204 converts the network message into an ATLAS event message and forwards it to the synchronization manager 208. The synchronization manager 208 checks the extended ATLAS event header to determine whether the corresponding event is a piggyback event, and extracts and stores an event loss rate in the case of a piggyback event. The playback time of the corresponding event is calculated using the playback delay time and the event occurrence time included in the event header. If the current time is after the playback time, the event is discarded. Otherwise, the event is stored in the event buffer 210.

상기에서 ATLAS 이벤트 메시지는 81 바이트의 고정된 헤더 부분과 가변적인 데이타 부분으로 이루어지며, 도 4는 ATLAS 이벤트 메시지의 형식을 보이고 있다. Bytes of Event 필드는 ATLAS 이벤트 메시지의 바이트 수를 나타내며 메시지에 포함된 ATLAS 이벤트를 식별하기 위해 Event Type과 Event ID 필드가 사용된다. 그리고, Handler 필드는 서로 다른 타입의 이벤트를 처리하기 위한 이벤트 핸들러를 나타낸다. 본 발명에서 제안하는 이벤트 동기화 방법을 위해 RF, Playout Delay, Drop Rate, 그리고 Generation Time 필드를 추가하였다. RF 필드는 해당 이벤트가 피기백 이벤트인지 아닌지를 표시하는 플래그로 사용된다. 피기백 이벤트의 경우에는, RF 필드를 1로 설정하고, Drop Rate 필드에 이벤트 송신자가 측정한 이벤트 손실률을 기록한다. 이벤트 전송자는 해당 이벤트의 재생 지연 시간을 Playout Delay 필드에 기록하고, 수신자가 이벤트를 수신하였을 때 해당 이벤트의 예정 재생 시각을 계산할 수 있도록 Generation Time 필드에 해당 이벤트가 발생한 시각을 기록한다. Sender는 송신자의 주소를 포함하며, Destination은 수신자의 주소를 포함한다.The ATLAS event message is composed of a fixed header part and a variable data part of 81 bytes, and FIG. 4 shows a format of an ATLAS event message. The Bytes of Event field indicates the number of bytes in the ATLAS event message, and the Event Type and Event ID fields are used to identify the ATLAS event included in the message. The Handler field represents an event handler for processing different types of events. RF, Playout Delay, Drop Rate, and Generation Time fields are added for the event synchronization method proposed in the present invention. The RF field is used as a flag to indicate whether the event is a piggyback event or not. For piggyback events, set the RF field to 1 and record the event loss rate as measured by the event sender in the Drop Rate field. The event sender records the play delay time of the event in the Playout Delay field and records the time when the event occurs in the Generation Time field so that the receiver can calculate the scheduled play time of the event when the receiver receives the event. Sender contains the address of the sender, and Destination contains the address of the receiver.

도 5는 본 발명의 실시 예에 따른 동기화 기법을 적용한 네트워크 토폴로지를 도시한 것이다.5 illustrates a network topology to which a synchronization scheme according to an embodiment of the present invention is applied.

본 발명에서는 네트워크 시뮬레이터인 ns-2를 이용하여 제안하는 동기화 기법이 네트워크 상태에 적응하도록 재생 지연 시간을 조정하는지 시험하였다. GT-ITM을 사용하여 48 개의 노드를 갖는 네트워크 토폴로지를 생성하였고, 각 말단 노드에 동기화 기법을 구현한 참가자 모듈이 동작하도록 설정하였다. 300 초 동안 지속되는 세션을 10 번 시행하였으며, 상기 [수학식 3]에서 정의된 alpha_1은 0.2로, alpha_2는 0.5로 설정하고 기준 이벤트 손실률 Lc를 5(%)로 설정하였다. 재생 지연 시간의 최대값을 200 ms로, 최소값을 110 ms으로 설정하였으며, 초기 재생 지연 시간은 MiMaze에서 사용하고 있는 고정 재생 지연 시간과 동일한 150 ms로 설정하였다. 네트워크 트래픽 상태를 가변적으로 만들기 위해서 노드 0, 1, 2에서 간헐적으로 UDP 세션을 실행시켰다. 모든 참가자 모듈은 임의의 시간 간격을 두고 이벤트를 발생시키되 초당 평균 10개의 이벤트를 유지하도록 하였으며, 이벤트 버퍼의 크기는 무한하다고 가정하였다.In the present invention, we tested whether the proposed synchronization scheme adjusts the playback delay time to adapt to network conditions using ns-2, a network simulator. A network topology with 48 nodes was created using GT-ITM, and the participant module implementing the synchronization scheme at each end node was set to operate. Ten sessions lasting 300 seconds were performed 10 times, and alpha_1 was set to 0.2, alpha_2 was set to 0.5, and the reference event loss rate L c was set to 5 (%). The maximum value of the playback delay time was set to 200 ms and the minimum value to 110 ms. The initial playback delay time was set to 150 ms, which is the same as the fixed playback delay time used by MiMaze. Nodes 0, 1, and 2 intermittently ran UDP sessions to make the network traffic state variable. All participant modules generated events at random time intervals, but maintained an average of 10 events per second. It was assumed that the size of the event buffer was infinite.

네트워크에 트래픽이 증가하면 네트워크 상의 노드들에서 트래픽을 전달하는데 필요한 시간이 증가하게 되어 이벤트의 전송 지연 시간이 증가하고, 트래픽이 감소하면 이벤트의 전송 지연 시간이 감소하게 된다. 이런 관찰을 근거로, 본 실험에서 발생한 네트워크 트래픽의 변화를 보이기 위해, 주기적으로 모든 참가자에서 관측한 수신 이벤트들의 전송 지연 시간을 평균하여 도 6에서와 같은 결과를 얻었다. 상기 도 6에서 가로축은 실험 시간을 나타내고 그 단위는 초(second)이며, 세로축은 전송 지연 시간을 의미하며 단위는 ms이다. 네트워크 상에 트래픽이 증가할수록 세션 참가자들이 상호 작용하면서 전달한 메시지를 다른 참가자들이 수신하는데 걸리는 시간이 증가하므로 도 6에서 평균 전송 지연 시간의 변화는 네트워크 상태의 변화를 의미한다고 할 수 있다.Increasing traffic on the network increases the time required to deliver traffic from nodes on the network, increasing the transmission delay of the event, and decreasing the transmission delay of the event when the traffic decreases. Based on this observation, in order to show the change of network traffic generated in this experiment, the transmission delay time of reception events observed in all participants was periodically averaged to obtain the result as shown in FIG. 6. In FIG. 6, the horizontal axis represents the experiment time, and the unit is second, the vertical axis represents the transmission delay time, and the unit is ms. As the traffic on the network increases, the time it takes for other participants to receive the message delivered while the session participants interact with each other increases the average transmission delay time in FIG. 6.

도 7은 고정적 재생 지연 시간을 적용하는 경우와 가변적 재생 지연 시간을 적용하는 경우에 대하여, 모든 참가자들의 평균 이벤트 손실률의 평균값을 표시한 그래프들을 도시한 것이다. 여기서의 이벤트 손실률은 상기 [수학식 2]에서 정의한 바와 같다. 평균 이벤트 손실률을 이용하여 참가자들이 정한 재생 지연 시간은 도 8에서와 같다. 제안하는 기법을 사용하는 경우, 약 30 초 부근에서 전송 지연 시간이 크게 증가함에 따라 손실 이벤트의 수가 증가하여 약 5% 이상의 이벤트 손실률을 보이나, 곧 네트워크 트래픽의 상태가 고부하 상태인 것으로 판단하여 재생 지연 시간을 증가시켜 45 초 이후로는 이벤트 손실률이 5% 이하로 유지된다. 하지만 고정적 재생 지연 시간을 적용하는 경우는 30 초부터 75 초까지 약 5% 이상의 이벤트 손실률이 지속된다. 130 초에서 155 초에 이르는 구간에서도 트래픽이 급증하여 이벤트 손실이 10% 이상 발생하지만 제안된 기법에서는 역시 네트워크 트래픽 증가를 인지하여 재생 지연 시간을 조정함으로써 155 초 이후로는 이벤트 손실률을 낮추게 된다. 따라서 도 8에서 보는 바와 같이 재생 지연 시간 역시 트래픽이 증가하거나 감소하는 변화 양상에 따라 그 값이 변화한다.FIG. 7 is a graph showing average values of average event loss rates of all participants for a case of applying a fixed play delay time and a case of applying a variable play delay time. The event loss rate is as defined in Equation 2 above. The playback delay time determined by the participants using the average event loss rate is shown in FIG. 8. In case of using the proposed technique, the number of lost events increases as the transmission delay time increases about 30 seconds, resulting in an event loss rate of about 5% or more. By increasing the time, the event loss rate is kept below 5% after 45 seconds. However, with fixed playback latency, event loss rates of about 5% or more persist between 30 and 75 seconds. Even in the period from 130 seconds to 155 seconds, the traffic suddenly increases, resulting in more than 10% of event loss. However, the proposed technique also reduces the event loss rate after 155 seconds by adjusting the playback delay time to recognize the increase in network traffic. Accordingly, as shown in FIG. 8, the reproduction delay time also changes according to a change pattern in which traffic increases or decreases.

특히, 고정 재생 지연 시간을 사용하는 기법과 비교할 때, 네트워크가 고부하 상태인 50 초에서 80 초 구간에서 고정 재생 지연 시간보다 긴 재생 지연 시간을 사용하므로 이벤트 손실률을 줄일 수 있고, 네트워크가 저부하 상태인 100 초에서 130 초 구간, 160 초에서 200 초 구간 등에서는 고정 재생 지연 시간보다 짧은 재생 지연을 사용하게 되므로 상호 작용 성능을 향상시킬 수 있다.In particular, when compared to the technique using fixed refresh delay, the network uses a play delay longer than the fixed play delay in the 50 to 80 second period when the network is in a high load state, thereby reducing the event loss rate and the network being in a low load state. In the 100 second to 130 second intervals, and the 160 second to 200 second intervals, a playback delay shorter than the fixed playback delay time is used, thereby improving interaction performance.

본 발명을 실제 시스템에 반영하여 효용성을 평가하기 위해 (주)가시오페아에서 개발한 3차원 사이버 마라톤 게임인 CyRun에 적용한 예를 도시하였다. CyRun은 클라이언트/서버 구조를 기반으로 구현된 3차원 사이버 마라톤 시스템이다. 마라톤 대회에서는 경기 내내 참가자의 순위가 중요하게 여겨지므로, 사이버 마라톤 시스템에서도 참가자들 간의 동기화가 효율적으로 이루어져야 한다. 사이버 마라톤 시스템의 전체 구조는 크게 ATLAS-중계 서버, ATLAS-센터 서버, ATLAS-트레드밀로 구성된다. 중계 서버와 센터 서버는 ATLAS 서버와 연결되며 인터넷을 통하여 사이버 마라톤에 참가하는 사용자들과 각 센터 내에 있는 참가자들을 관리하고 트레드밀 장비에는 ATLAS-트레드밀 프로그램이 설치되어 각 참가자에게 3차원 사이버 마라톤 대회의 뷰를 제공한다. 도 9는 CyRun의 실행 화면으로 화면의 오른쪽 아래에평균 재생 지연 시간(왼쪽)과 이벤트 손실률(오른쪽)을 측정한 결과를 그래프의 형태로 보이고 있다. 화면의 그래프에서 보는 것과 같이 실험 당시에는 100Mbps LAN 상에서 실험이 이루어져서 전송 지연 시간 증가가 발생하지 않았다. 낮은 전송 지연 시간으로 인하여 이벤트 손실이 발생하지 않고 결과적으로 재생 지연 시간이 초기 재생 지연 시간으로부터 시작하여 계속하여 감소하는 결과를 보였다.An example of applying the present invention to CyRun, a three-dimensional cyber marathon game developed by Gaseapea Co., Ltd. in order to evaluate the effectiveness of the present invention is illustrated. CyRun is a 3D cyber marathon system based on client / server architecture. Participants' rankings are important throughout the race in a marathon, so even in a cyber marathon system, synchronization between participants should be done efficiently. The overall structure of the cyber marathon system consists of ATLAS relay server, ATLAS center server and ATLAS treadmill. The relay server and the center server are connected to the ATLAS server and manage the users who participate in the cyber marathon and the participants in each center through the Internet, and the ATLAS-Treadmill program is installed on the treadmill equipment so that each participant can view the 3D cyber marathon competition. To provide. FIG. 9 is an execution screen of CyRun, and shows a result of measuring average playback delay time (left) and event loss rate (right) at the bottom right of the screen in the form of a graph. As shown in the graph on the screen, the experiment was performed on 100Mbps LAN at the time of the experiment, so that no increase in transmission delay time occurred. Due to the low transmission delay, no event loss occurs, and as a result, the playback delay time starts from the initial playback delay and continues to decrease.

한편 상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 따라서 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.Meanwhile, in the above description of the present invention, specific embodiments have been described, but various modifications may be made without departing from the scope of the present invention. Therefore, the scope of the invention should be determined by the claims rather than by the described embodiments.

이상에서 설명한 바와 같이, 본 발명은 네트워크 트래픽 상태를 반영하여 재생 지연 시간을 동적으로 결정하는 동기화 방법을 구현한다. 이에 따라 네트워크 트래픽이 적어서 전송 지연 시간이 짧을 경우 짧은 재생 지연 시간을 적용하여 상호 작용 성능을 높여주고, 트래픽이 많은 경우에는 재생 지연 시간을 늘림으로써 상호 작용 성능을 해치지 않는 범위에서 이벤트 손실률을 줄일 수 있는 이점이 있다. 또한 그 결과 상기 동기화 방법을 통해 고부하(heavily loaded) 네트워크 상태가 지속되는 동안 기존 기법에 비해 참가자들에게 일치된 뷰를 제공할 수 있고, 저부하(lightly loaded) 네트워크 상태에서는 상호 작용 성능을 향상시킬 수 있도록 하는 이점이 있다.As described above, the present invention implements a synchronization method for dynamically determining a reproduction delay time by reflecting network traffic conditions. As a result, when the transmission delay is low due to low network traffic, a short playback delay is applied to increase the interaction performance, and when the traffic is heavy, the playback delay can be increased to reduce the event loss rate without harming the interaction performance. There is an advantage to that. As a result, the synchronization method can provide participants with a consistent view as compared to the conventional techniques while maintaining a heavily loaded network, and improve interaction performance in a lightly loaded network. There is an advantage to this.

Claims (7)

네트워크 가상 환경에서 가변적인 네트웍 상태를 고려하는 동기화 방법으로서,Synchronization method that considers variable network status in network virtual environment, (a)가상 환경 네트워크내 참가자는 일정 시간 간격마다 수신 이벤트에 대한 손실률을 계산하고, 이를 자신이 발생시킨 이벤트에 포함하여 타 참가자들에게 알리는 단계와,(a) a participant in the virtual environment network calculates a loss rate for the received event at regular time intervals, and includes the same in the event generated by the participant to notify other participants; (b)상기 네트워크내 각 참가자들은 타 참가자들로부터 전송된 피기백 이벤트에서 송신 참가자의 이벤트 손실률 정보를 추출하는 단계와,(b) each participant in the network extracting event loss rate information of a transmitting participant from a piggyback event transmitted from other participants; (c)상기 타 참가자들의 손실률 정보를 이용하여 평균 이벤트 손실률을 계산하는 단계와,(c) calculating an average event loss rate using the loss rate information of the other participants; (d)각 참가자는 네트워크 트래픽 상태 판단을 위해 미리 설정된 기준값과 상기 평균 이벤트 손실률을 비교하여 네트워크 트래픽 상태를 판단하는 단계와,(d) determining each network participant by comparing the average event loss rate with a predetermined reference value for determining network traffic condition; (e)상기 네트워크 트래픽 상태에 따라 자신이 전송하는 이벤트가 적용될 재생 지연 시간을 적응적으로 변경 설정시키는 단계,(e) adaptively changing and setting a playback delay time to which an event transmitted by the user transmits according to the network traffic state; 를 포함하는 동기화 방법.Synchronization method comprising a. 제1항에 있어서,The method of claim 1, 상기 (a)단계에서, 상기 손실률 R(k)는, 아래의 수학식에서와 같이 산출되는 것을 특징으로 하는 동기화 방법.In step (a), the loss ratio R (k) is calculated as in the following equation. [수학식][Equation] R(k): k번째 시간 간격 동안 자신이 수신한 이벤트에 대한 손실률R (k): Loss rate for events received by itself during the kth time interval Nlate(k): k번째 시간 간격 동안 재생 시각이 지난 후 수신된 이벤트의 수N late (k): Number of events received after playback time passed during kth time interval Nlost(k): k번째 시간 간격 동안 네트워크 상에서 손실된 이벤트의 수N lost (k): Number of events lost on network during kth time interval Ntotal(k): k번째 시간 간격 동안 재생 시각 전에 수신한 이벤트의 수, 네트워크 상에서 손실된 이벤트의 수, 재생 시각이 지난 후 수신된 이벤트 수의 합N total (k): Sum of the number of events received before the playback time during the kth time interval, the number of events lost on the network, and the number of events received after the playback time. 제1항에 있어서,The method of claim 1, 상기 (b)단계에서, 상기 피기백 이벤트는, 이벤트 손실 방지를 위해 두 개로 전송되는 것을 특징으로 하는 동기화 방법.In the step (b), the piggyback event, characterized in that the transmission in two to prevent the event loss. 제1항에 있어서,The method of claim 1, 상기 (c)단계에서, 상기 평균 이벤트 손실률 L(k)은, 아래의 수학식에서와 같이 산출되는 것을 특징으로 하는 동기화 방법.In the step (c), the average event loss rate L (k), it is calculated as in the following equation. [수학식][Equation] L(k): 개별 수신자들이 k번째 시간간격 끝에서 계산하는 평균 이벤트 손실률L (k): Average event loss rate calculated by individual receivers at the end of the kth time interval j: 참가자j: participant S: 세션 참가자들의 집합S: set of session participants Rj(k-1): (k-1)번째 시간 간격에서 참가자 j가 보고한 이벤트 손실률R j (k-1): Event loss rate reported by participant j in the (k-1) th time interval 제1항에 있어서,The method of claim 1, 상기 (d)단계는,In step (d), (d1)상기 비교결과 상기 평균 이벤트 손실률이 기준값보다 작으면 네트워크의 트래픽 상태를 저부하 상태로 판단하는 단계와,(d1) if the average event loss rate is less than a reference value, determining the traffic state of the network as a low load state; (d2)상기 비교결과 상기 평균 이벤트 손실률이 기준값보다 크면 네트워크의 트래픽 상태를 고부하 상태로 판단하는 단계,(d2) determining the traffic state of the network as a high load state if the average event loss rate is greater than a reference value as a result of the comparison; 를 포함하는 것을 특징으로 하는 동기화 방법.Synchronization method comprising a. 제1항에 있어서,The method of claim 1, 상기 (e)단계에서, 상기 재생 지연 시간 P(k+1)은, 아래의 수학식에서와 같이 산출되는 것을 특징으로 하는 동기화 방법.In step (e), the reproduction delay time P (k + 1) is calculated as in the following equation. [수학식][Equation] P(k+1): 송신자가 (k+1)번째 시간 간격에서 적용할 재생 지연 시간P (k + 1): The playback delay time the sender will apply in the (k + 1) th time interval. P(k): 송신자가 k번째 시간 간격에서 적용한 재생 지연 시간P (k): The playback delay time applied by the sender in the kth time interval : 저부하 상태인 경우 재생 지연 시간의 감소시키는 정도를 결정하는 parameter : A parameter that determines the degree of reduction of the playback delay time at low load. : 고부하 상태인 경우 재생 지연 시간의 증가시키는 정도를 결정하는 parameter : A parameter that determines the degree of increase of the playback delay time under high load conditions. LC: 어플리케이션에서 정한 허용 가능한 이벤트 손실률L C : Permissible event loss rate determined by the application 제1항에 있어서,The method of claim 1, 상기 (e)단계는,In step (e), (e1)상기 네트워크 트래픽 상태가 저부하 상태인 경우 이벤트가 적용될 재생 지연 시간을 늘리는 단계와,(e1) increasing the reproduction delay time to which an event is applied when the network traffic state is a low load state; (e2)상기 네트워크 트래픽 상태가 고부하 상태인 경우 이벤트가 적용될 재생 지연 시간을 줄이는 단계,(e2) reducing the play delay time to which an event is applied when the network traffic state is a high load state, 를 포함하는 것을 특징으로 하는 동기화 방법.Synchronization method comprising a.
KR1020030050534A 2003-07-23 2003-07-23 An efficient synchronization mechanism dynamically adapting to the network state for networked virtual environments KR20030064732A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030050534A KR20030064732A (en) 2003-07-23 2003-07-23 An efficient synchronization mechanism dynamically adapting to the network state for networked virtual environments

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030050534A KR20030064732A (en) 2003-07-23 2003-07-23 An efficient synchronization mechanism dynamically adapting to the network state for networked virtual environments

Publications (1)

Publication Number Publication Date
KR20030064732A true KR20030064732A (en) 2003-08-02

Family

ID=32227343

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030050534A KR20030064732A (en) 2003-07-23 2003-07-23 An efficient synchronization mechanism dynamically adapting to the network state for networked virtual environments

Country Status (1)

Country Link
KR (1) KR20030064732A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112511256A (en) * 2020-11-24 2021-03-16 高小翎 Robust synchronization method for dynamic delay optimization in online game
CN112532606A (en) * 2020-11-24 2021-03-19 扆亮海 Time Warp online game synchronization method based on message type improvement

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112511256A (en) * 2020-11-24 2021-03-16 高小翎 Robust synchronization method for dynamic delay optimization in online game
CN112532606A (en) * 2020-11-24 2021-03-19 扆亮海 Time Warp online game synchronization method based on message type improvement

Similar Documents

Publication Publication Date Title
Zhang et al. Improving cloud gaming experience through mobile edge computing
US9866791B2 (en) Efficiently distributing video content using a combination of a peer-to-peer network and a content distribution network
Diot et al. A distributed architecture for multiplayer interactive applications on the internet
US7584248B2 (en) Apparatus and method for fair message exchanges in distributed multi-player games
Lin et al. Sync-MS: Synchronized messaging service for real-time multi-player distributed games
US20090199198A1 (en) Multinode server system, load distribution method, resource management server, and program product
Miller et al. The near-term feasibility of P2P MMOG's
CN111400001A (en) Online computing task unloading scheduling method facing edge computing environment
JP2003249960A (en) Peer-to-peer method of quality of service probing and analysis and infrastructure employing same
WO2008104221A1 (en) Method and apparatus for use in multiplayer server-based gaming
Palazzi et al. On maintaining interactivity in event delivery synchronization for mirrored game architectures
IL146348A (en) Server unit, client unit and communications network for multi-user applications
Zhang et al. Congestion control and packet scheduling for multipath real time video streaming
de Morais et al. Application of active queue management for real-time adaptive video streaming
CN109525627A (en) Data transmission method, device, storage medium and electronic device
Guo et al. A fair message exchange framework for distributed multi-player games
Sasabe et al. Scalable and continuous media streaming on peer-to-peer networks
Lety et al. Mimaze, a 3d multi-player game on the internet
KR20030064732A (en) An efficient synchronization mechanism dynamically adapting to the network state for networked virtual environments
Marshall et al. Optimizing consistency by maximizing bandwidth usage in distributed interactive applications
CN116764235A (en) Data processing method and related device
Jonglez End-to-end mechanisms to improve latency in communication networks
WO2012158161A1 (en) Efficiently distributing video content using a combination of a peer-to-peer network and a content distribution network
Ahn et al. A multiplayer real-time game protocol architecture for reducing network latency
Yusen et al. Fairness-aware update schedules for improving consistency in multi-server distributed virtual environments

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application