[go: up one dir, main page]

KR100223014B1 - Error control method in multiparty communication - Google Patents

Error control method in multiparty communication Download PDF

Info

Publication number
KR100223014B1
KR100223014B1 KR1019960061510A KR19960061510A KR100223014B1 KR 100223014 B1 KR100223014 B1 KR 100223014B1 KR 1019960061510 A KR1019960061510 A KR 1019960061510A KR 19960061510 A KR19960061510 A KR 19960061510A KR 100223014 B1 KR100223014 B1 KR 100223014B1
Authority
KR
South Korea
Prior art keywords
source
receiver
data
message
error
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
KR1019960061510A
Other languages
Korean (ko)
Other versions
KR19980043587A (en
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 KR1019960061510A priority Critical patent/KR100223014B1/en
Publication of KR19980043587A publication Critical patent/KR19980043587A/en
Application granted granted Critical
Publication of KR100223014B1 publication Critical patent/KR100223014B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

본 발명은 멀티미디어 컴퓨터 통신 전송 프로토콜의 에러 제어 방법에 관한 것으로, 하트비트를 수신자가 메시지의 마지막을 수신하였다는 것을 알리는 방안으로 소스에게 보내면 소스는 이를 이용하여 전 그룹 멤버인 수신자들의 상태 테이블을 작성함으로써 컴퓨터 통신의 전송 프로토콜에서 다자간에 신뢰성있는 멀티미디어 데이터 전송을 가능하게 하고 데이터의 손실을 최소화할수 있는 다자간 통신에서의 에러 제어 방법이 제시된다.The present invention relates to an error control method of a multimedia computer communication transmission protocol. When a heartbeat is sent to a source in a manner of notifying that a receiver has received the end of a message, the source uses the same to create a state table of all group members. Therefore, an error control method in a multi-party communication that enables reliable multi-media data transmission and minimizes data loss in a communication protocol of a computer communication is proposed.

Description

다자간 통신에서의 에러 제어 방법Error control method in multiparty communication

본 발명은 멀티미디어 컴퓨터 통신 전송 프로토콜의 에러 제어 방법에 관한 것으로, 특히 다자간 통신에서의 신뢰성있는 에러 제어 방법에 관한 것이다.The present invention relates to an error control method of a multimedia computer communication transmission protocol, and more particularly, to a reliable error control method in multiparty communication.

세계의 지구촌화를 추구하는 최근의 동향은 한 국가내의 많은 지역, 그리고 전세계의 국가 사이를 통신과 정보처리를 통해 상호 밀착화하고 있다. 이러한 요구 사항들은 기존의 통상적인 메일, 전화, 팩스를 통해서는 간단히 해결되지 않고, 원격 공동작업, 원격 강의, 원격 진료, 원격 화상회의와 같은 응용 서비스를 통해 얼굴과 얼굴을 맞대고 동시에 대화를 할 수 있는 그룹 공동작업을 지원하는 그룹웨어 등 다양한 멀티미디어 응용 서비스들을 요구하고 있다.The recent trend toward the globalization of the world is bringing close contact between many regions within a country and countries around the world through communication and information processing. These requirements are not simply solved through traditional mail, phone, or fax. Instead, face-to-face and face-to-face conversations can be achieved through application services such as remote collaboration, remote lecture, telemedicine, and teleconference. Various multimedia application services such as groupware supporting group collaboration are required.

고속화와 다양화를 추구하는 응용 서비스들은 공동으로 분할하여 사용하기 위한 한가지 접근 방법은 다수의 사용자를 위한 전송 프로토콜을 개발하는 것이다.One approach to jointly dividing and using application services seeking to speed up and diversify is to develop transport protocols for multiple users.

그러나 대부분의 경우 참가하는 사용자들에게 기존의 사용자와 시스템간 상호 작용만을 지원하는 싱글-유저를 공유하는 1 : 1 전송 프로토콜 방식이 대부분이었다.However, in most cases, the 1: 1 transport protocol method used to share a single-user that supports only the interaction between the existing user and the system.

이를 해결하려는 노력의 일환으로 최근의 통신망과 응용 서비스 분야는 전송 프로토콜을 중요한 연구영역으로 필요성을 부각시키고 있고, 고속 전송 프로토콜은 이기종 고속망에서의 멀티미디어 응용을 위한 새로운 연구 분야로 대두되고 있으며, 기존의 개방 시스템 상호 접속(Open System Interconnection; OSI) 전송 프로토콜(Transport Protocol; TP) 4 스택이나, 전송 제어 프로토콜(Transmission Control Protocol; TCP)/망간 프로토콜(Internet Protocol; IP)은 일반적인 텍스트 데이터를 전송하기 위해 제정된 프로토콜러서 멀티미디어 환경에서 요구되는 실시간 통신 및 다량의 데이터를 신뢰성 있게 처리하기 위한 통신을 제공하기에는 적합하지 않은 단점을 가지고 있다. 또, 다양한 컴퓨터 통신망의 증가, 통신 기술의 발달과 전송 장치의 개발에 따른 전송 속도의 증가, 컴퓨터 기술의 발달 그리고 다양한 멀티미디어를 포함한 새로운 응용 서비스 영역의 확장으로 이에 수반되는 요구사항들을 만족시킬 수 있는 통신 프로토콜로는 적합하지 않으며, 또한 이들은 망의 대역폭이 좁고 에러 발생율이 높으며, 시스템 자원이 부족하던 시기에 개발되었기 때문에 대역폭의 효율적 사용과 에러의 발견 및 회복을 효율적으로 수행하는 것이 주된 목표였다. 그러나 현재의 고속 통신망 환경은 기존 프로토콜의 구조적인 문제점으로 인하여 발생하는 성능 저하를 해결하기 위하여 기존 프로토콜의 기능을 변경하거나 확장하고, 프로토콜 처리시간을 최소화하는 방법과 현재의 고속망 환경에 알맞게 구조화된 새로운 프로토콜을 설계하는 방법 등이 동원되고 있다. 이중 기존 프로토콜의 확장은 장기적인 해결책이 못되므로 새로운 프로토콜 설계에 대한 연구가 최근에 활발하게 연구되고 있다.As part of efforts to solve this problem, the recent communication network and application service fields have highlighted the necessity of transport protocol as an important research area, and the high speed transport protocol is emerging as a new research field for multimedia application in heterogeneous high speed networks. The Open System Interconnection (OSI) Transport Protocol (TP) 4 stack, or the Transmission Control Protocol (TCP) / Internet Protocol (IP), is used to transfer common text data. As a protocol, it is not suitable to provide real-time communication required in a multimedia environment and communication to reliably process a large amount of data. In addition, due to the increase of various computer communication networks, the increase of transmission speed according to the development of communication technology and transmission device, the development of computer technology, and the expansion of new application service area including various multimedia, the requirements accompanying this can be satisfied. It was not suitable as a communication protocol, and since they were developed at a time when network bandwidth was narrow, error occurrence rate was high, and system resources were insufficient, the main goal was to efficiently use bandwidth and detect and recover errors. However, the current high speed network environment is a new structure structured for the current high speed network environment and the method of changing or extending the function of the existing protocol, minimizing the protocol processing time, and solving the performance degradation caused by the structural problem of the existing protocol. Methods of designing protocols are being mobilized. Since the extension of the existing protocol is not a long-term solution, the study of the new protocol design has been actively studied recently.

에러 제어는 멀티미디어 컴퓨터 통신의 다자간 전송 프로토콜 환경에서 협동 작업 등 멀티미디어 응용에 필요한 데이터 전송을 신뢰성있게 제공하게 하기 위한 것이다. 기존의 에러 제어 방식들을 지터, 지연 등 망의 상태가 불안전하고 속도 등의 성능이 열악하던 시기에 문서 위주의 텍스트 데이터들을 주대상으로 사용되어 왔기 때문에, 현재의 초고속화된 전송망을 기반으로 하는 초고속 정보통신 환경에서 요구하는 에러제어 방식으로 사용하기에는 많은 단점들이 나타나고 있다.Error control is intended to reliably provide data transmission for multimedia applications such as cooperative work in the multi-party transmission protocol environment of multimedia computer communication. Existing error control methods have been used mainly for document-oriented text data when the network conditions such as jitter and delay are unstable and the performance of speed is poor. Therefore, the high speed based on the current high speed transmission network Many shortcomings have emerged for use as the error control method required in the information communication environment.

기존의 송신자와 수신자가 1 : 1 연결을 설정하여 상호간에 데이터를 주고 받는 단-대-단(end-to-end) 통신에서는 신뢰성있게 데이터를 송수신하는 방법으로 송신자의 데이터를 수신자가 수신한 후, 수신한 데이터의 상태를 송신자에게 응답함으로서 이루어진다. 에러 제어는 이들 송수신자간의 데이터 전송시 발생하는 에러들을 발견하고 해결하는 기능이다. 송수신 과정에서 발생이 가능한 에러에는 전송된 패킷 내용의 변형, 패킷이 도착하는 순서와 변화, 중복된 패킷의 도착, 패킷의 손실등이다. 이러한 에러 제어 기능은 에러 검출, 에러 보고, 에러 복구(수정) 등의 3가지 기능으로 다음과 같은 연구가 선행되었다.In the end-to-end communication where an existing sender and a receiver establish a 1: 1 connection to exchange data with each other, the receiver receives the sender's data in a reliable manner. And responding to the sender the status of the received data. Error control is a function to find and solve errors that occur during data transmission between these transceivers. Errors that can occur during transmission and reception include modification of transmitted packet contents, order and change of packet arrival, arrival of duplicate packets, and packet loss. The error control function has three functions such as error detection, error reporting, and error recovery (correction).

가. 에러 검출 기능end. Error detection function

이 기능은 패킷들이 내용의 변형이 없이 전송된 순서대로 도착하는가를 검사하는 기능이다. 에러 검출을 위해서는 시퀀스 넘버, 패킷의 길이, 그리고 데이터 첵섬과 같은 정보를 이용하여 하나의 메시지를 받고 이를 검사한 후, 다음 순서의 메시지를 맏는 절차를 갖는다.This function checks whether packets arrive in the order in which they are sent without modification of the contents. In order to detect an error, a message is received using information such as sequence number, packet length, and data checksum, inspected, and followed by the next message.

나. 에러 보고 기능I. Error report function

에러 보고는 잘못된 패킷의 도착이나 손실된 패킷에 관한 정보를 송신측에 전달하는 기능으로서 패킷이 도착할 때만다 응답을 실시하는 확인(Acknowledge: 이하 ACK라 함)방식보다는, 에러가 발생한 패킷만을 선택하여 응답하는 소극적 확인(Negative Acknowledge: 이하 NACK라 함)방식이 잘 알려져 있고, 일반적으로 기존 프로토콜에서는 이러한 에러 보고 기능을 보유하지 않고 일정한 기간내에 수신자가 송신자에게 확실하게 응답을 실시하는 적극적 확인(Positive Acknowledge: 이하 PACK이라 함) 패킷의 도착여부로 에러를 수시로 검출하기 때문에 다-대-다(many-to-many) 통신의 경우 데이터 전송시 과부하의 원인이 되고 있다.Error reporting is a function that delivers information about the arrival of a wrong packet or a lost packet to the sender. Instead of acknowledgment (ACK), the packet is selected only when the packet arrives. Negative acknowledgment (NACK) is well known, and in general, the existing protocol does not have such an error reporting function and positive acknowledgment that the receiver reliably responds to the sender within a certain period of time. In the case of many-to-many communication, data transmission is a cause of overload because errors are frequently detected due to the arrival of packets.

다. 에러 복구 기능All. Error recovery function

에러 복구(수정) 기능은 보고된 에러를 재전송을 통하여 복구하는 기능으로서, 에러가 발생한 패킷 이후의 모든 패킷을 재전송하는 방식을 사용하며, 구현이 간단하여 에러율이 높은 통신망에 적용이 용이한 이유로 기존 프로토콜들에서 채택되어 사용되고 있으나, 현재의 신뢰성이 향상되고 짧은 시간에 다량의 데이터를 전송하는 초고속망 환경에서는 수정된 방법이 필요하다.Error recovery (correction) is a function to recover the reported error through retransmission. It uses the method of retransmitting all packets after the error packet, and it is easy to apply to the communication network with high error rate because it is simple to implement. Although it is adopted and used in protocols, there is a need for a modified method in a high speed network environment where current reliability is improved and a large amount of data is transmitted in a short time.

상기와 같은 기능들은 단순히 하나의 송신자와 하나의 수신자로 구성된 단-대-단(end-to-end) 통신에서 발생하는 에러제어 방식으로 멀티미디어 환경과 같이 다-대-다(many-to-many)의 다지점, 다자간 통신에서 하나 또는 몇 개의 송신자와 많은 수신자들 사이에서 동시 다발적으로 발생하는 에러들을 해결하는 데는 적합하지 않은 방법이다.The above functions are simply error-prone method that occurs in end-to-end communication consisting of one sender and one receiver, and many-to-many like a multimedia environment. In multi-point, multi-party communication, it is not suitable for solving errors that occur simultaneously between one or several senders and many receivers.

따라서, 본 발명은 멀티미디어 컴퓨터 통신 환경에 맞는 에러제어 방법들을 사용하여 데이터의 신뢰성있는 송수신을 향상시킴으로서 다지점, 다자간 통신 환경에서 여러 가지 멀티미디어 응용 서비스들을 위한 요구 조건을 만족시키는데 그 목적이 있다.Accordingly, an object of the present invention is to satisfy the requirements for various multimedia application services in a multi-point, multi-party communication environment by improving the reliable transmission and reception of data using error control methods suitable for a multimedia computer communication environment.

상술한 목적을 달성하기 위한 본 발명은 수신자의 계속적인 정보 유지를 위해 소스에서 수신자에게 멀티캐스트로 하트비트 메시지를 전송하는 단계와, 상기 소스로부터 하트비트 메시지를 수신한 수신자에게 마지막 메시지를 수신할 경우 소스에게 유니캐스트로 하트비트 메시지를 전송하는 단계와, 상기 수신자로부터 하트비트 메시지를 수신한 소스에서 상태 테이블을 작성하는 단계로 이루어진 것을 특징으로 한다.In order to achieve the above object, the present invention provides a method of transmitting a heartbeat message in a multicast form from a source to a receiver for continuous information retention of a receiver, and receiving a final message from a receiver receiving a heartbeat message from the source. In this case, the method comprises the steps of transmitting a heartbeat message to the source by unicast, and creating a state table at the source receiving the heartbeat message from the receiver.

제1도는 본 발명에 따른 에러 검출과 재전송 요청을 위한 상태 처리도.1 is a state diagram for error detection and retransmission request in accordance with the present invention.

제2도는 본 발명에 따른 에러 수정을 위한 상태 처리도.2 is a state processing diagram for error correction according to the present invention.

* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

11 : 수신 상태 12 : 대기 2 상태11: Received State 12: Standby 2 State

13 : 대기 3 상태 21 : 전송 상태13: Standby 3 state 21: Transmission state

22 : 수신 상태 23 : 대기 1 상태22: Receive state 23: Standby 1 state

24 : 송신 복구 상태 25 : 하트비트 상태24: Transmission recovery status 25: Heartbeat status

멀티미디어 컴퓨터 통신에서 다지점, 다자간에 신뢰성있는 메시지 전달을 위한 에러 제어 방법으로 메시지의 신뢰성있는 전달을 위해 1:1인 종래 방법에서는 에러가 발생한 부분부터 모두를 재전송하는 간단한 방법을 사용하였으나, 다-대-다(many-to-many) 환경에서는 저마다 에러가 발생하는 경우 이를 해결하는 방법으로 연결 설정시 네트워크의 상태가 제일 열악하거나 제일 원거리에 있는 수신자와의 왕복 통신에 걸리는 시간을 계산하여 제일 먼저 에러가 발생하였음을 보고하는 수신자의 NACK을 경정(listening)하고 있다가, 자신보다 먼저 NACK을 보낸 수신자가 있으면 그 부분부터 에러가 발생하였다고 인식하고 소스로부터 메시지를 재전송 받는다.In the multimedia computer communication, as a method of error control for reliable message delivery between multi-point and multi-party, the conventional method of 1: 1 for reliable message delivery uses a simple method of retransmitting all parts from an error occurrence. In a many-to-many environment, if each error occurs, the solution is to calculate the time taken for round-trip communication with the receiver with the worst or farthest network conditions when establishing a connection. While listening to the NACK of the receiver reporting that an error has occurred, if there is a receiver that sent the NACK earlier than itself, the receiver recognizes that an error has occurred and retransmits the message from the source.

소스와 다수의 수신자들간 비연결 구조에 의한 상호 동작상태 점검을 위한 하트비트 발송 방법은 기존의 방법에서는 상대의 동작상태에 대한 ACK을 매번 받아 확인하는 과정이 필요하여 오버헤드가 많았으나, 현재의 방법은 다수의 수신자들에 이러한 것을 일일이 받을 경우 많은 오버헤드가 발생한다. 때문에 소스는 데이터를 일정한 기간동안 송신하지 않을 경우 데이터 대신 하트비트 메시지를 보내어 소스와 수신자들 사이의 묵시적인 연결 상태를 계속 유지하도록 한다. 즉, 하트비트 메시지는 소스와 수신자가 데이터를 송수신하는 동안 데이터 전송이 중지되는 경우에 데이터 전송의 신뢰성을 보장하기 위해서 상호간에 자신의 상태를 알리기 위해 사용되는 제어 메시지이다. 하트비트 메시지에는 하트비트 메시지가 생성된 시간, 사용자 데이터 순서 번호 수신자 식별자 및 포트 번호 등이 포함되는데, 사용자 데이터 순서 번호는 소스가 마지막으로 보낸 사용자 데이터 패킷의 순서 번호이고, 수신자 식별자는 하트비트 메시지를 수신해야 하는 목적지 주소이며, 포트 번호는 연결을 식별하기 위한 식별 번호이다.In the conventional method, the heartbeat sending method for checking the interoperation state by the connectionless structure between the source and the plurality of receivers requires a process of receiving an acknowledgment of the opposing operation state every time. The method incurs a lot of overhead if this is received by a large number of recipients. Therefore, if the source does not transmit data for a certain period of time, it sends a heartbeat message instead of the data to maintain an implicit connection between the source and the receiver. That is, the heartbeat message is a control message used to inform each other of its own state in order to ensure the reliability of data transmission when data transmission is stopped while the source and the receiver are transmitting and receiving data. Heartbeat messages include the time the heartbeat message was generated, the user data sequence number recipient identifier, and the port number. The user data sequence number is the sequence number of the last user data packet sent by the source, and the receiver identifier is the heartbeat message. Is the destination address where it should be received, and the port number is the identification number for identifying the connection.

소스와 대리 호스트가 재전송을 위한 과정은 1:1과 같은 기존 방법의 경우에는 송신자와 수신자만으로 송수신을 하기 때문에 수신자의 데이터 재전송 요구는 당연히 송신자의 역할이었으나, 다-대-다(many-to-many)의 환경에서는 모든 수신자들의 재전송 요구를 송신자가 단독으로 응답할 경우 송신자는 이를 처리하기 위하여 많은 오버헤드를 갖게 된다. 이를 해결하기 위해 소스가 수신자들의 재전송에 응답할 수 없는 경우에는 대리 호스트를 정해 수신자들의 재전송 요구에 대한 응답을 실시한다.Since the process for retransmission by the source and the surrogate host is transmitted and received only by the sender and the receiver in the conventional method such as 1: 1, the request of data retransmission of the receiver was of course the role of the sender, but many-to-many. In many environments, the sender has a lot of overhead to deal with the retransmission request of all receivers alone. To solve this problem, if the source cannot respond to the retransmissions of the receivers, a surrogate host is assigned to respond to the retransmission requests of the receivers.

통신에 참여하는 사용자는 몇 개의 소스(Source; 이하 소스라 함)와 다수의 리시버(Receivers; 이하 수신자들이라 함)로 구성하며, 이들간에 연결을 설정하여 데이터를 송수신하게 된다. 데이터 전송중에는 전송 메시지를 손실(파손 및 분실)하는 경우와 네트워크 트래픽 폭주 및 고장과 시스템 다운 등 양단말간에 설정된 시스템간의 갑작스러운 환경변화로 인한 에러가 발생하게 되어 이를 검출하고 수정, 보완하는 과정이 필요하다. 본 발명에서는 이들 과정을 다음과 같이 에러 검출 방식과 에러 수정 방식으로 분류한다.A user who participates in communication consists of several sources (hereinafter referred to as sources) and a plurality of receivers (hereinafter referred to as receivers), and establishes a connection therebetween to transmit and receive data. During data transmission, an error occurs due to the loss of the transmission message (corruption or loss) and the sudden change of environment between the systems set between both terminals such as congestion and failure of network traffic and system down. need. In the present invention, these processes are classified into an error detection method and an error correction method as follows.

1. 에러 검출 방식1. Error detection method

가. 메시지 실패(Message failure) 에러 제어 방법end. How to control message failure errors

이 방법은 소스와 수신자들간에 전송된 메시지에 대한 에러만을 취급한다. 소스와 수신자는 메시지 시퀀스 넘버를 사용하여 송수신한 데이터를 인식한다. 시퀀스 넘버는 숫자로 시작, 각 데이터 패킷마다 식별을 위해 순차적으로 증가하며, 스퀸스 넘버는 각 소스가 독립적으로 유지하도록 한다. 수신자는 시퀀스 넘버간의 간격(gap)을 찾는 방법으로 분실을 검출하고 데이터 패킷의 첵섬 값으로 패킷의 파손을 발견한다.This method only handles errors for messages sent between sources and recipients. The source and receiver use the message sequence number to recognize the data sent and received. The sequence number starts with a number and increases sequentially for each data packet for identification, and the sequence number keeps each source independent. The receiver detects the loss by finding the gap between the sequence numbers and detects the packet corruption by the checksum value of the data packet.

하트비트 메시지는 소스 호스트의 존재와 상태표시에 사용한다. 통신을 시작하고 최초로 보내는 하트비트 메시지는 소스 호스트만이 전송하며, 마지막 패킷의 시퀀스 넘버에 포함된다. 하트비트를 발생하는 경우는 다음과 같다. 하트비트는 소스가 데이터를 전송하지 않을 때 발생하며, 목적은 소스의 데이터 손실 발생을 수신자가 인식하게 하고, 소스의 정지시간, 소스의 활동 사항 등을 나타낸다. 수행은 어떤 소스가 일정기간 동안 잠시 정지시에 사용한다. 소스가 일정 기간동안 전송 중지시에는 정상으로 전송될때까지 하트비트를 규칙적으로 발송한다.Heartbeat messages are used to indicate the presence and status of the source host. The originating heartbeat message is sent only by the source host and is included in the sequence number of the last packet. The heartbeat is generated as follows. Heartbeats occur when a source does not transmit data, and the purpose is to allow the receiver to recognize the source's loss of data, to indicate the source's downtime, source's activity, and so on. Perform is used when a source pauses for a period of time. If the source stops sending for a period of time, it will send heartbeats regularly until it is sent normally.

수신자의 하트비트 이용 수단은, 송신자의 하트비트 송신에 대해 수신자는 이 소스의 하트비트 메시지를 임의의 요청(request)에 대한 응답을 하는 지시(indication)로 사용한다. 소스, 수신자들간 연결이 단절되지 않고 여전히 설정되어 있지만, 어떤 이유로 인해 소스가 데이터 전송을 억제하는 경우에는 일정기간 경과후(하트비트 메시지 시작 전)에 NACK의 양, 흐름 제어(flow control) 파라미터, 왕복 배달에 걸리는 시간 등의 상수들을 계산한다.The recipient's heartbeat utilization means uses the receiver's heartbeat message as an indication to respond to any request for the sender's heartbeat transmission. Although the connection between the source and the receiver is still established without being disconnected, if for some reason the source inhibits data transmission, the amount of NACK, flow control parameters, Calculate constants such as the time it takes for round trip delivery.

회의 참가자들은 대부분 소량씩 메시지를 소량씩 메시지를 전송하게 되며, 실제로 멀티케스트세션 기간중 가끔씩 전송을 실시하게 되는데, 이때는 하트비트 전송시간을 제한한다. 이들 소스는 특정 시간 동안만 5개의 메시지를 송신한 후에는 더 이상 소스가 아님을 선언한다.Most participants in the conference will send small messages in small quantities, and in practice, they will occasionally transmit during the multicast session, limiting the heartbeat transmission time. These sources declare that they are no longer sources after sending five messages only for a certain time.

수신자들은 소스의 기본 상태(source reference state)를 내부적으로 참조하게 되며, 만약 수신자가 이들 메시지를 얻는데 실패하고, 소스에게 상태 개선을 요청하면 소스는 그 정보를 다시 반복한다. 일정 시간 경과후 호스트는 소스에게 수신자로 전이하는데, 수신자의 데이터 동기는 세션과 응용 계층의 책임이며, 소스는 더 이상 하트비트 메시지를 전송하지 않는다.The receivers refer internally to the source reference state of the source, and if the receiver fails to get these messages and asks the source to improve its status, the source repeats the information again. After a certain period of time, the host transitions from source to receiver, whose data synchronization is the responsibility of the session and application layers, and the source no longer sends heartbeat messages.

소스는 그룹에서 수신자에 대한 모든 정보를 유지하며, 수신자는 소스에 대한 상태 관련 정보를 계속 유지한다.The source keeps all the information about the receiver in the group, and the receiver keeps the status related information about the source.

소스는 수신자에 관한 정보 유지를 위해 하트비트 메시지를 멀티캐스트(Multicast)로 전송하며, 수신자도 소스에게 주기적으로 하트비트 메시지를 송신하여 수신자가 수신한 마지막 메시지를 알리도록 한다.The source sends a multicast heartbeat message to maintain information about the receiver, and the receiver also periodically sends a heartbeat message to the source to inform the receiver of the last message received.

수신자가 보내는 하트비트 정보는 소스만이 받을 수 있고 다른 수신자는 할수 없으며, 수신자는 소스에게 하트비트를 유니캐스트(Unicast)로 전송한다. 이 하트비트에는 수신자 식별자(ID)와 콘넥션의 포트(port) 넘버를 포함하며, 수신자가 수신한 마지막 메시지의 시퀀스 넘버도 포함한다.The heartbeat information sent by the receiver can only be received by the source, not by other recipients, and the receiver sends the heartbeat to the source as unicast. This heartbeat contains the receiver identifier (ID) and the port number of the connection, as well as the sequence number of the last message received by the receiver.

소스는 여러 수신자에게서 오는 하트비트 폭주를 피하기 위한 방법으로 주기적으로 하나의 수신자만 선택하는 무작위(Randomized) 방법을 사용한다.The source uses a randomized method that periodically selects only one receiver to avoid heartbeat congestion from multiple receivers.

소스는 수신자가 보내는 하트비트를 수신자의 상태 추적을 유지하는데 사용하며, 소스는 여러 다른 수신자로부터도 무작위(Randomized) 방법에 의해 오버헤드를 줄여 수신한 하트비트로 수신자의 상태 정보를 수집하고, 자신의 상태 테이블에 그룹 멤버들의 리스트를 만든다. 그리고, 그룹내의 모든 수신자들은 소스가 보낸 첫 번째 하트비트 메시지를 이용하여 수신자 자신들도 소스에 대한 상태 테이블을 설치한다.The source uses the heartbeats sent by the receiver to keep track of the receiver's status, and the source collects the receiver's status information with the heartbeats received by reducing the overhead by randomized methods from several other receivers. Make a list of group members in the state table. And all the recipients in the group use the first heartbeat message sent by the source to set up a status table for the source themselves.

이렇게 하여 얻은 상태에 관한 정보들은 상위 계층에게 통보한다. 소스는 상태 테이블(state tables)을 유지하며, 이는 가입 절차, 탈퇴 절차, 흐름 제어, 에러 제어 등 통신 전반에 걸친 신뢰성을 보장하기 위한 기반이 된다. 소스는 수신자가 대화를 중단하면 응용 계층에게 이를 알린다. 수신자가 떠났다고 소스가 한 번 결정하면, 수신자 리스트에서 수신자를 제거하고, 변경을 응용 계층에게 통보한다.Information about the state thus obtained is notified to higher layers. The source maintains state tables, which are the basis for ensuring reliability across communications, including subscription procedures, withdrawal procedures, flow control, and error control. The source notifies the application layer when the receiver stops talking. Once the source determines that the recipient has left, it removes the recipient from the recipient list and notifies the application layer of the change.

여기서, 상태 테이블은 소스와 수신자별로 관리하는데, 소스측의 상태 테이블은 소스가 전송하는 패킷을 수신하는 수신자들의 리스트로 구성되며, 각 수신자별로 소스의 데이터를 수신하는 수신측 주소와 수신자가 마지막으로 올바르게 수신한 패킷순서 번호를 유지한다. 또한, 수신자측의 상태 테이블은 수신자가 수신하는 패킷을 전송하는 소스의 리스트들로 구성되며, 각 소스별로 수신자가 수신하는 패킷을 전송하는 소스의 주소와 소스가 마지막으로 전송한 패킷의 순서 번호를 유지한다.Here, the state table is managed by the source and the receiver. The state table on the source side is composed of a list of receivers that receive the packet transmitted by the source. Maintain correctly received packet sequence number. In addition, the status table on the receiver side is composed of lists of sources that transmit packets received by the receiver. Keep it.

소스의 하트비트에는 소스 ID와 마지막 메시지의 시퀀스 넘버, 포트(Port) 넘버를 포함한다. 수신자는 소스가 보낸 메시지를 트랙하기 위해 첫 번째 데이터 패킷의 시퀀스 넘버를 사용한다. 수신자는 소스에서 온 첫 번째 메시지에 응답하기 위해 소스에게 유니캐스트(Unicast) 어드레스로 하트비트 메시지를 전송한다. 이 하트비트 메시지는 주기적으로 반복되며, 이는 하트비트 이외에는 소스의 확실한 ACK가 없기 때문이다. 소스는 보낼 데이터 패킷이 없을 때는 이 하트비트를 전송하며, 수신자에게 하트비트 기간내에 응답을 보내도록 요구한다.The heartbeat of the source contains the source ID, the sequence number of the last message, and the port number. The receiver uses the sequence number of the first data packet to track the message sent by the source. The receiver sends a heartbeat message to the source at the unicast address to respond to the first message from the source. This heartbeat message is repeated periodically because there is no reliable ACK of the source other than the heartbeat. The source sends this heartbeat when there are no data packets to send and requests the receiver to send a response within the heartbeat period.

소스의 첫 번째 데이터 접수후, 수신자의 하트비트 메시지 사용은 응용 계층에게 신뢰성 제공과 수신자 상태 유지를 위한 상태 테이블(State Table) 작성에 필요하다.After receiving the first data from the source, the receiver's use of the heartbeat message is necessary to create a state table to provide reliability to the application layer and maintain receiver status.

종합적으로 요약을 하면 소스가 수신하는 수신자 하트비트는 전체 수신자가 보내는 하트비트들이 네트워크에서 포화되는 것을 피하기 위해 소스에서 랜덤화하여 수신한다.In summary, the receiver heartbeats received by the source are randomly received at the source to avoid saturation of the heartbeats sent by the entire receiver.

수신자의 하트비트는 소스에게 유니캐스트(Unicast)로 전송되며, 소스가 보낸 마지막 메시지에 대한 통보 뿐만 아니라 이를 이용하여 소스가 전체 수신자들의 그룹 멤버쉽을 관리하게 하는 정보를 제공한다. 수신자에게 소스로의 하트비트 메시지 전송은 소스에 의해 상태 테이블로 작성되며, 이는 소스가 수신자의 수신상태 및 과정들을 추적하기 위해 사용하며, 멀티캐스트(Muliticast)로 전체의 수신자들에게 전송되며 소스는 모든 수신자가 데이터를 수신했다고 인식되면, 자신의 버퍼에서 전송한 데이터를 삭제한다.The recipient's heartbeats are sent to the source in unicast, providing not only notification of the last message sent by the source, but also information that allows the source to manage group membership of all recipients. The sending of heartbeat messages to the receiver to the source is made by the source into a state table, which the source uses to keep track of the receiver's reception and progress, and is sent to all recipients in multicast. When all receivers have recognized that they have received the data, it deletes the data sent from its buffer.

제1도는 본 발명에 따른 에러 검출과 재전송 요청을 위한 상태 처리도이다.1 is a state processing diagram for error detection and retransmission request according to the present invention.

수신(Receiving)(11) 상태에서 수신자는 패킷의 첵섬 값을 검사하여 패킷 파손을 검출하고, 패킷 시퀀스 넘버를 추적하여 분실된 패킷을 검출하며 일단 데이터가 전송되었지만 수신하지 못하였다는 사실을 알게되면 수신자는 타이머를 호출한다. 타이머 종료후에 수신자는 대기 2(Wait_2)(12) 상태로 간다. 이 상태에서 수신자는 에러를 검출하여 멀티캐스트 그룹에게 NACK를 보낸다. NACK 수를 줄이는 댐핑(damping)을 위해 수신자가 이 상태에서 대기하면 멀티캐스트 그룹내의 다른 호스트가 NACKs을 경청(listen)한다. 수신자는 다른 호스트가 에러를 검출하면, 대기 3(wait_3)(13) 상태로 이동하여 에러 메시지의 응답을 기다리고, 수정 데이터를 수신시 정상적인 수시(Receiving)(11) 상태로 간다. 대기 2(wait_2)(12)상태에서 타이머가 소멸되면 수신자는 에러 메시지를 발생하여 멀티캐스트 그룹에 보내고 대기 3(Wait_3)(13) 상태로 이동한다. 다른 호스트(소스 또는 다른 수신자)로부터 에러 메시지에 대한 응답이 없으면, 수신자는 대기 2(wait_2)(12)상태로 되돌아가며 에러 메시지를 다시 발생한다. 대기 2(wait_2)(12)와 대기 3(Wait_3)(13)간의 이러한 진퇴(back-and-forth) 천이는 오직 5번만 실시한다. 호스트는 5번의 타이머가 종료된 후에도 진전이 없으면, 소스와 수신자간의 연결 설정에 이상이 발생한 것으로 가정하고 응용 계층에 에러가 발생하였음을 통보한다.In the Receiving 11 state, the receiver examines the checksum value of the packet to detect packet corruption, traces the packet sequence number to detect the lost packet, and once it knows that the data has been transmitted but not received. The receiver calls a timer. After the timer expires, the receiver goes to Wait2 (12) state. In this state, the receiver detects an error and sends a NACK to the multicast group. When the receiver waits in this state for damping to reduce the number of NACKs, other hosts in the multicast group listen to the NACKs. When the other host detects an error, the receiver moves to wait 3 (13) state, waits for a response of the error message, and returns to normal Receiving 11 state upon receiving corrected data. When the timer expires in wait 2 (wait_2) 12 state, the receiver generates an error message, sends it to the multicast group, and moves to wait 3 (Wait_3) 13 state. If there is no response from the other host (source or other receiver) to the error message, the receiver returns to wait 2 (12) state and generates the error message again. This back-and-forth transition between wait_2 12 and wait_3 13 only takes place five times. If no progress is made after the five timers have expired, the host assumes that an error has occurred in establishing a connection between the source and the receiver and notifies the application layer that an error has occurred.

나. 동작 실패(Site failure) 에러 제어 방법I. Site failure error control method

이 방법은 소스와 수신자들의 상태에 대한 에러 제어 방법이다. 수신자는 소스의 하트비트 메시지를 포함한 데이터의 수신이 중단된 경우, 소스의 상태를 파악하기 위해 소스에게 특정 메시지를 보내야 하는데, 멀티캐스트 그룹 또는 호스트에 직접 메시지를 전송한다. 장점은 멀티캐스트 트리를 사용하기 때문에 다른 호스트들은 계속 동작이 가능하다.This method is an error control method for the status of source and receiver. When the receiver stops receiving data, including the heartbeat message from the source, the receiver must send a specific message to the source to determine the source's status, sending the message directly to the multicast group or host. The advantage is that it uses a multicast tree so other hosts can continue to work.

소스가 특정기간 동안 재전송 요구를 감지 못할 경우, 수신자들과의 절단인지, 경청(listening)하는 수신자들이 더 이상 없는지를 확인할 필요가 있다. 따라서 소스는 수신자들에게 상태 요청을 전송한다. 수신자들 중 하나는 그 상태 요청에 대한 응답을 실시하며, 그 응답을 멀티캐스트 어드레스상의 전 그룹에게 멀티캐스트 하면, 다른 수신자들은 자신들의 응답을 취소한다. 소스는 그 상태 요청 응답을 한 번 수신하면 적어도 하나의 수신자가 존재하여 데이터를 계속 수신한다는 것을 알 수 있다. 소스가 아무런 응답도 듣지 못한 경우 수신자의 응답을 분실했거나 그룹에 수신자가 없다고 가정한다.If the source does not detect a retransmission request for a certain period of time, it needs to check whether it is disconnected with the receivers and there are no more listeners listening. Thus, the source sends a status request to the recipients. One of the recipients responds to the status request, and if the response is multicasted to all groups on the multicast address, the other receivers cancel their response. The source may know that once it receives the status request response, there is at least one recipient present to continue receiving data. If the source does not hear any response, it is assumed that the receiver's response is lost or that there are no recipients in the group.

메시지의 분실 가능성을 제거하기 위해 소스는 그룹에 수신자가 없다고 결론을 내리기 전에 이러한 상태요구(status request)를 몇 번 반복해야 한다.To eliminate the possibility of losing a message, the source must repeat this status request several times before concluding that there are no recipients in the group.

소스가 사이트의 동작 실패(site failure)로부터 회복하는 경우 소스는 새로운 시퀀스 넘버, 수신자는 낡은 시퀀스 넘버를 갖게 되어 제동기가 필요하다. 소스가 새로운 시퀀스 넘버를 가진 새로운 시작(start) 메시지를 보내면 수신자는 새로운 시작(start) 메시지를 받아 강제로 제동기를 실시한다. 소스는 데이터 전송시에 시작(start)을 3번 반복하여 전체의 수신자가 시작(start)을 수신하도록 한다. 수신자들은 헤더(header)의 시작(start) 메시지를 살피고, 시작(start) 메시지를 손실시에는 에러가 발생하였음을 소스에게 NACK으로 알린다.When the source recovers from site failure of the site, the source will have a new sequence number and the receiver will have an old sequence number, requiring a brake. When the source sends a new start message with a new sequence number, the receiver receives the new start message and forces the brake. The source repeats the start three times in the data transfer so that the entire receiver receives the start. Recipients look at the header start message and inform the source with an NACK that an error has occurred if the start message is lost.

2. 에러 수정 방식2. Error Correction Method

전송 프로토콜은 신뢰성 보장을 위해 데이터 전송중에 발생하는 에러를 검출, 수정한다. 이는 각 참가자에게 신뢰성있는 데이터 배달을 보장하며, 각 수신자는 각자 자신이 데이터의 분실 파손에 대한 것을 예측 책임진다.The transport protocol detects and corrects errors that occur during data transmission to ensure reliability. This ensures reliable data delivery to each participant, and each recipient is responsible for predicting his or her own loss of data.

소스는 수신자로부터 아무런 NACK이나 하트비트가 없다면 수신자의 데이터 수신에 이상이 없다고 판단한다. 수신자의 연결 단절시에는 소스가 재전송 방법이 있어도 에러 수정을 위한 아무런 조치를 취할수 없다. 이에 대한 대책은 수신자가 그룹에 "연결(connectivity)"을 재 설정하여 데이터를 재전송 받아야 한다. 소스는 수신자의 손실 데이터 요청시에만 손실 데이터를 인식하기 때문에 에러 검출은 수신자가 전적으로 책임을 담당한다.The source determines that there is nothing wrong with the receiver's data reception if there is no NACK or heartbeat from the receiver. When the receiver is disconnected, even if the source has a retransmission method, no action can be taken to correct the error. As a countermeasure, the receiver must re-establish "connectivity" for the group and retransmit the data. Error detection is entirely the responsibility of the receiver, since the source only recognizes the lost data upon request of the receiver's lost data.

수신자는 메시지에서 하나 또는 그 이상의 파손된 데이터를 발견 확인하면 필요한 데이터에 대한 재전송을 요청할 수 있으며 여기에는 NACK을 사용한다.If the receiver finds and confirms one or more corrupted data in the message, it can request retransmission of the required data, which uses NACK.

NACK은 IP-멀티캐스트(Multicast) 그룹을 통해 송신하며 다른 호스트는 그 요청을 보고 댐핑(damping) 기술을 이용하여 동일한 요청에 대한 전송을 예방한다.The NACK is sent through an IP-Multicast group and other hosts see the request and use damping techniques to prevent transmission of the same request.

소스가 재전송을 할 수 없는 경우에는 다른 호스트가 데이터를 재전송 하도록 한다. 재전송이 가능한 호스트는 재전송 처리를 실시할 수 있도록 데이터용 버퍼가 충분해야 한다.If the source cannot retransmit, have another host resend the data. Hosts capable of retransmission must have sufficient buffers for data to be able to perform retransmission processing.

소스는 데이터 재전송 요구를 만족할 수 있는 커다란 버퍼를 갖으며, 데이터는 일단 폐기되면 버퍼에서 제거한다. 그리고 새로운 데이터용 버퍼로 사용하기 때문에 더 보관할 수 없다. 이러한 구조는 버퍼 관리를 효율적으로 사용하기 위해 일예로 사용하는 모델이다.The source has a large buffer that can meet the data retransmission requirements, and once the data is discarded, it is removed from the buffer. And since it is used as a buffer for new data, it can't be stored anymore. This structure is an example of a model used to efficiently use buffer management.

댐핑(damping) 기술의 사용은 많은 수신자가 동시에 응답함으로서 발생하는 메시지 폭주 가능성을 감소시키고, 폭주를 줄이기 위해 수신자는 손실 데이터 검출시 즉시 NACK를 송신하고, 다른 수신자들은 NACK을 경청(listen)한다. 다른 수신자들은 NACK을 감지한 경우는(재전송 요구) 자신의 NACK을 보낼 필요가 없다. 그러나, 다른 NACK을 받지 못했거나, 손실 데이터 보완이 충분하지 못하면, 그 로컬 수신자는 자신이 NACK을 송신할 필요가 있다. 모든 수신자가 동일한 기간동안 기다리게 디면 댐핑(damping) 기술은 무의미한다. 수신자들이 기다리는 시간 간격은 일반적으로 제각기 다르다. 각 수신자는 재전송 요구 수행전에 경청(listen)을 위한 랜덤 타임값을 계산한다. 댐핑(damping) 기술의 이점은 반복을 줄이고, 소스와 네트워크의 패킷 포화를 제한한다.The use of damping techniques reduces the likelihood of message congestion caused by many recipients responding at the same time, in order to reduce congestion, the receiver immediately sends a NACK upon detection of lost data, and other recipients listen to the NACK. Other receivers do not need to send their own NACK if they detect a NACK (retransmission request). However, if no other NACK has been received, or if missing data replenishment is not sufficient, the local receiver needs to send a NACK by itself. Damping techniques are meaningless if all recipients wait for the same period. The time intervals that receivers wait for are usually different. Each receiver computes a random time value for listen before performing the retransmission request. The benefits of damping techniques reduce repetition and limit packet saturation at the source and network.

데이터 전송 처리시 데이터의 부분적인 손실, 파손이 발생하게 된다. 수신자는 이들에 대한 재전송을 요구하며, 소스 또는 대리 호스트(peer-hosts)중 하나가 이를 재전송한다. 소스가 일정시간 동안 데이터를 송신하지 않을 때 하트비트 메시지를 대신 송신한다.In the data transfer process, partial loss or damage of data occurs. The receiver requests retransmissions to them, either of which are resent by the source or peer-hosts. When the source has not sent data for some time, it sends a heartbeat message instead.

데이터 재전송시의 2가지 모델은 다음과 같다.The two models for data retransmission are as follows.

가. 소스가 재전송에 대한 책임을 담당하는 방법 :end. How the source is responsible for resend:

데이터의 모든 재전송에 대해 응답한다. 어떤 이유에서 소스가 재전송할 수 없으면 대리 호스트(peer-hosts)가 재전송에 대한 책임을 진다.Respond to all retransmissions of data. If for some reason the source cannot retransmit, the peer-hosts are responsible for the retransmission.

나. 모든 호스트가 재전송에 대한 책임을 담당하는 방법 :I. How all hosts are responsible for retransmissions:

호스트들은 소스를 경청(listening : 소스 자신을 포함)하여 재전송에 대한 책임을 진다.Hosts are responsible for retransmission by listening to the source (including the source itself).

과도한 재전송 응답은 두가지의 해결방안이 있다.Excessive retransmission response has two solutions.

첫 번째 방안은 소스 자신이 실시하는 것으로, 단순하지만 호스트는 재전송 요구에 대한 책임을 지며 대리 호스트(peer host)는 응답하지 않는다. 그러나, 이 방법은 선택적으로 사용하여야 한다. 예를 들면, 소스 호스트가 다른 일들로 과부하이면 제시간내에 재전송 배달이 불가능하기 때문에 선택적으로 사용하여야 한다.The first approach is done by the source itself, which is simple but the host is responsible for the retransmission request and the peer host does not respond. However, this method should be used selectively. For example, if the source host is overloaded with other things, retransmission delivery in time is not possible and should be used selectively.

두 번째 방법은 소스의 대리인이 실시하는 것으로 이 방법은 재전송 처리가 늦고, 소스가 연결(connectivity) 문제를 내포하고 있는 경우에는 대리 호스트(peer-hosts)의 재전송 응답이 지연된다. 모든 호스트가 잠재적인 재전송 포인트를 갖는 경우의 장점은 소스의 과부하 감소 처리가 가능하다. 이 방법은 빠른 응답이 가능한 다른 호스트(응답을 취급하는)에게 효율을 줄 수 있다. 과부하에 걸린 다른 호스트는 방법이 없다. 호스트가 수행하는 재전송은 소스가 호스트보다 더 과부하 상태인 경우이다.The second method is performed by the source's agent, which slows down the retransmission process and delays the retransmission response of the peer-hosts when the source contains a connectivity problem. The advantage of having all hosts with potential retransmission points is that the source can be overloaded. This method can be efficient for other hosts (handles the response) that can respond quickly. Other hosts that are overloaded don't have a way. The retransmission performed by the host is when the source is more overloaded than the host.

소스 우선적인 모델을 사용하는 경우와 소스의 재전송 여력이 못 미치는 경우에도 재전송에 대한 요구는 만족된다. 오버헤드 때문에 소스 대신 다른 호스트가 재전송을 대신하는 경우, 우선 이 호스트는 이 기능을 수행하기 위해 소스 데이터의 수신자가 되어야 하며, 이 호스트는 소스 호스트로서 같은 방법으로 재전송 요구에 응답할 수 있다. 소스는 그 데이터의 재전송에 대한 응답을 피할 수 없기 때문에 먼저 재전송에 대한 응답을 한다. 소스가 재전송 요구에 응답할 수 없는 경우에는 대리 호스트가 실시한다. 경우에 따라서는 재전송 취급에 대리 호스트가 소스보다 좋게 해결할 수 있으며, 대리 재전송 요구에 응답할 충분한 시간을 결정할 수 있다. 이은 타이머 또는 재전송 요구에 특정 넘버를 이용하여 수행할 수 있다.The requirement for retransmission is satisfied even when using the source-priority model and when the retransmission capacity of the source is insufficient. If another host replaces the retransmission because of the overhead, the host must first be the receiver of the source data to perform this function, and the host can respond to the retransmission request in the same way as the source host. The source responds to the retransmission first because the source cannot avoid the response to the retransmission of the data. If the source is unable to respond to the retransmission request, the proxy host does it. In some cases, the surrogate host can resolve better than the source in handling retransmissions, and can decide enough time to respond to a surrogate retransmission request. This can be done using a specific number for the timer or retransmission request.

대리 호스트(peer-hosts)가 요청된 데이터를 재전송한 후에도 많은 요청 응답을 대리 호스트(peer-hosts)가 막을 수 있는 방법은 댐핑 기술을 사용하여 해결할 수 있다. 재전송 요구 응답을 기도하는 모든 대리 호스트(peer-hosts)는 다른 호스트로부터의 요청에 응답하기 위해 경청(Listening)하는 일정시간 동안을 기다린다.The way that the peer-hosts can prevent many request responses even after the peer-hosts retransmit the requested data can be solved by using a damping technique. All peer-hosts praying for a retransmission request response wait for a period of time listening to respond to a request from another host.

특수한 상황으로 소스 또는 수신자가 절차외의 방법을 사용하는 경우로는 수신자가 5번 시도후에도 재전송을 받지 못하고, 그 기간동안 소스로부터 하트비트도 듣지 못하면 수신자는 소스 호스트가 더 이상 가용하지 않다고 판단한다. 즉, 소스가 그룹에서 이미 탈퇴(leave)한 것으로 간주한다. 그룹을 탈퇴(leave)하는 소스의 상태를 수신자가 모르거나, 소스와의 연결이 손실된 두가지 경우 모두 재전송 요구를 만족하는 대리 수신자가 없거나 피어 수신자들에도 원하는 데이터가 없는 경우이다. 이때는 전송 프로토콜은 응용 계층에게 에러 발생을 통지한다. 응용 계층은 이를 보고 응용 계층의 상황에 맞추어 다음 행동을 결정한다. 수신자는 소스의 탈퇴를 주목하지 않는다. 즉, 수신자는 소스로부터 규칙적으로 데이터나 하트비트를 수신하도록 되어 있다.In special circumstances, if the source or receiver uses an out-of-procedure method, if the receiver does not receive a retransmission after five attempts and does not hear a heartbeat from the source during that period, the receiver determines that the source host is no longer available. That is, the source is considered to have already left the group. In either case, the receiver does not know the status of the source leaving the group, or the connection to the source is lost, either because there is no surrogate receiver that satisfies the retransmission request or the peer receiver does not have the desired data. In this case, the transport protocol notifies the application layer of an error occurrence. The application layer sees this and decides what to do next based on the context of the application layer. The recipient does not notice the withdrawal of the source. That is, the receiver is supposed to receive data or heartbeats regularly from the source.

특정시간 동안 소스로부터 어떤 메시지도 받지 못하는 경우 수신자는 소스의 상태를 결정한다. 이는 중요한 사항으로 수신자는 소스로부터 마지막 경청한 순간 개선(up-to-date)하기 때문이다. 그 시점에서 소스가 다른 데이터의 전송 여부는 알 수 없다.If no message is received from the source for a certain amount of time, the receiver determines the status of the source. This is important because the receiver up-to-date the last listening from the source. At that time, it is unknown whether the source transmits other data.

소스의 상태는 수신자가 명확한 요청(explicit request)을 통해 얻는다. 소스가 여전히 멀티캐스트 그룹내에 있으나 수신자이면 전번 소스 호스트는 더 이상 소스가 아님을 알린다.The status of the source is obtained by the receiver through an explicit request. If the source is still in the multicast group but is the receiver, the previous source host indicates that it is no longer the source.

과거의 소스는 데이터의 마지막 세그먼트를 더 이상 보유할 수 없고, 마지막 패킷의 시퀀스 넘버를 명시하여 소스에게 전송한다. 수신자는 이것으로 손실된 데이터 유무를 결정한다. 수신자가 응용 계층에게 통지하면 소스 천이에 의한 처리는 소스의 데이터가 더 이상 유효하지 않을 때 완료되고, 데이터가 모든 수신자들에게서 폐기된다.Past sources can no longer hold the last segment of data, and specify the sequence number of the last packet and send it to the source. The receiver then determines if there is any data lost. If the receiver notifies the application layer, the process by source transition is complete when the data at the source is no longer valid and the data is discarded from all recipients.

소스가 더 이상 멀티캐스트 그룹이 아닌 경우(탈퇴시)에는, 수신자들(status requester)은 대리 호스트에게 응답, 이는 대리 호스트들이 아직도 소스에 관한 정보를 보유하였다고 판단한다.If the source is no longer a multicast group (on leaving), the status requester responds to the surrogate host, which determines that the surrogate hosts still have information about the source.

소스의 데이터와 하트비트 메시지를 가진 수진자는 재전송 종료 요청을 하지 못한다. 이는 소스로의 경로가 자신에게로 리턴된 네트워크 에러 때문이다. 이 경우 대리 수신자는 소스 입장에서 재전송을 수행할 수 있다. 재전송 요청을 경청(listening)하는 대리 수신자가 없다면 에러 상태를 종료하고 이를 응용 계층에게 통보한다.Recipients with data from the source and heartbeat messages will not be able to request re-transmission termination. This is due to a network error in which the path to the source returned to it. In this case, the surrogate receiver may perform retransmission from the source's point of view. If there is no surrogate receiver listening for the retransmission request, it terminates the error condition and notifies the application layer of this.

제2도는 본 발명에 따른 에러 수정을 위한 상태 처리도이다. 도시된 바와 같이 송신(SENDING)(21) 또는 수신(RECEIVING)(22) 상태에 있는 호스트는 다른 대리 호스트를 통해 에러 요청에 응답한다. 에러 메시지 수신시 호스트는 대기 1(wait_1)(23) 상태로 들어가서 에러 메시지에 응대하고 올바른 수정 데이터를 제공한다. 대기 1(wait_1)(23) 상태는 대리 호스트가 에러 메시지를 응답하기 위한 댐핑에 사용한다. 호스트는 수정 데이터를 발생하고, 타이머를 가동한 다음 다른 대리 호스트가 수정 데이터에 응답하는가 기다리는 타이머 기간 끝에 호스트는 송신 복구(SEND_REPAIR)(24) 상태로 이동 후, 멀티캐스트 그룹에 수정 데이터를 송신한다. 그러나, 다른 대리 호스트가 수정 데이터에 응답한 경우에는 호스트는 원래의 송신(SENDING)(21) 상태 또는 수신(RECEIVING)(22) 상태로 되돌아 온다.2 is a state processing diagram for error correction according to the present invention. As shown, a host in SENDING 21 or RECEIVING 22 state responds to an error request through another surrogate host. Upon receiving the error message, the host enters wait_1 (23) state to respond to the error message and provide correct correct data. The wait_1 (23) state is used for damping the surrogate host to respond to an error message. The host generates the modified data, starts the timer, and then sends the modified data to the multicast group after moving to the SEND_REPAIR 24 state at the end of the timer period waiting for another surrogate host to respond to the modified data. . However, if another surrogate host responds to the modified data, the host returns to the original SENDING 21 state or the RECEIVING 22 state.

하트비트 메시지는 소스 호스트의 존재와 상태 표시에 사용한다. 최초로 보내는 하트비트 메시지는 소스 호스트만이 전송하며, 마지막 패킷의 시퀀스 넘버에 포함된다. 하트비트는 응용 계층에서 회의중 잠시 의견 교환 중단 또는 소스가 데이터를 전송하지 않는 유휴(idle) 상태에서 발생하며, 목적은 현재 소스가 데이터를 전송하지 않고 있다는 의도를 수신자가 인식하게끔 하고, 소스의 정지 시간, 활동 상태 등을 나타낸다. 소스가 일정 기간동안 전송 중지시에는 정상으로 전송될 때 까지 하트비트를 규칙적으로 발송한다. 소스가 데이터 전송을 하지 않는 경우 일정한 기간이 경과후에는 NACK의 양, 흐름 제어(flow control) 파라미터, 상수 등의 왕복 배달에 걸리는 시간을 계산한 다.Heartbeat messages are used to indicate the presence and status of the source host. The first heartbeat message is sent only by the source host and is included in the sequence number of the last packet. Heartbeats occur briefly during a meeting at the application layer or during an idle state where the source is not transmitting data.The purpose is to allow the recipient to recognize the intent that the source is not currently transmitting data, Indicate stop time, activity status, etc. If the source stops sending for a period of time, it will send heartbeats regularly until it is sent normally. If the source does not transmit data, after a certain period of time, the time required for round-trip delivery of the amount of NACK, flow control parameters, and constants is calculated.

수신자도 소스에게 주기적으로 하트비트 메시지를 송신하여 수신자가 수신한 마지막 메시지(FINAL)를 일리도록 한다. 수신자가 보내는 하트비트 정보는 소스만이 요구할 수 있고 다른 수신자는 할 수 없으며, 수신자는 소스에게 하트비트를 유니캐스트(Unicast)로 전송한다. 이 하트비트에는 수신자 ID와 콘넥션의 포트(port) 넘버를 포함하며, 수신자가 수신한 마지막 메시지의 시퀀스 넘버도 포함한다. 소스는 여러 수신자에게서 오는 하트비트 폭주를 파하기 위한 방법으로 주기적으로 하나의 수신자를 선택하는 무작위(Randomized) 방법을 사용한다.The receiver also periodically sends a heartbeat message to the source to signal the last message (FINAL) received by the receiver. The heartbeat information sent by the receiver can only be requested by the source, not by other receivers, and the receiver sends the heartbeat to the source in unicast. This heartbeat contains the receiver ID and the port number of the connection, as well as the sequence number of the last message received by the receiver. The source uses a randomized method that periodically selects one receiver as a way to detect heartbeat congestion from multiple receivers.

상술한 바와 같이 본 발명에 의하면 컴퓨터 통신의 전송 프로토콜에서 다자간에 신뢰성있는 멀티미디어 데이터 전송을 가능하게 하고 데이터의 손실을 최소화하는 효과가 있다.As described above, according to the present invention, there is an effect of enabling reliable multi-media data transmission and minimizing data loss in a transmission protocol of computer communication.

Claims (2)

수신자의 계속적인 정보 유지를 위해 소스에서 수신자에게 멀티캐스트 하트비트 메시지를 전송하는 단계와, 상기 소스로부터 하트비트 메시지를 수신한 수신자에게 마지막 메시지를 수신할 경우 소스에게 유니캐스트로 하트비트 메시지를 전송하는 단계와, 상기 수신자로부터 하트비트 메시지를 수신한 소스에서 상태 테이블을 작성하는 단계로 이루어진 것을 특징으로 하는 다자간 통신에서의 에러 제어 방법.Sending a multicast heartbeat message from the source to the receiver to maintain the receiver's ongoing information; and sending a heartbeat message to the source in unicast upon receipt of the last message to the receiver receiving the heartbeat message from the source. And creating a state table at a source that has received a heartbeat message from the receiver. 제1항에 있어서, 상기 수신자에서 소스로 전송하는 하트비트 메시지는 수신자 식별자, 콘넥션의 포트 넘버 및 수신자가 수신한 마지막 메시지의 시퀀스 넘버를 포함하는 것을 특징으로 하는 다자간 통신에서의 에러 제어 방법.The method of claim 1, wherein the heartbeat message transmitted from the receiver to the source comprises a receiver identifier, a port number of a connection, and a sequence number of the last message received by the receiver.
KR1019960061510A 1996-12-04 1996-12-04 Error control method in multiparty communication Expired - Fee Related KR100223014B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960061510A KR100223014B1 (en) 1996-12-04 1996-12-04 Error control method in multiparty communication

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960061510A KR100223014B1 (en) 1996-12-04 1996-12-04 Error control method in multiparty communication

Publications (2)

Publication Number Publication Date
KR19980043587A KR19980043587A (en) 1998-09-05
KR100223014B1 true KR100223014B1 (en) 1999-10-01

Family

ID=19485636

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960061510A Expired - Fee Related KR100223014B1 (en) 1996-12-04 1996-12-04 Error control method in multiparty communication

Country Status (1)

Country Link
KR (1) KR100223014B1 (en)

Also Published As

Publication number Publication date
KR19980043587A (en) 1998-09-05

Similar Documents

Publication Publication Date Title
KR100248080B1 (en) Method of error control for multiparty multimedia communications
Obraczka Multicast transport protocols: a survey and taxonomy
KR101032512B1 (en) How to Join a Multicast Conference Session and Computer-readable Recording Media
Pejhan et al. Error control using retransmission schemes in multicast transport protocols for real-time media
US7970828B2 (en) Liveness monitoring in a publish/subscribe messaging system
Xu et al. Resilient multicast support for continuous-media applications
EP1747644B1 (en) Method and apparatus for group communication with end-to-end reliability
US20030031175A1 (en) Method of multicasting
Delgrossi et al. Internet stream protocol version 2 (ST2) protocol specification-version ST2+
US6507562B1 (en) Dynamic optimization for receivers using distance between a repair head and a member station in a repair group for receivers having a closely knit topological arrangement to locate repair heads near the member stations which they serve in tree based repair in reliable multicast protocol
US6505253B1 (en) Multiple ACK windows providing congestion control in reliable multicast protocol
JPH05207023A (en) Mass data transmission method
Sabata et al. Transport protocol for reliable multicast: TRM
Tachikawa et al. Group communication protocol for real-time applications
JP2001308900A (en) Network and protocol for group multi-casting
US20070263626A1 (en) A System for Session-Oriented Reliable Multicast Transmission.
KR100223014B1 (en) Error control method in multiparty communication
KR100204598B1 (en) Error detecting and correcting method
CN116170055A (en) A low-orbit satellite inter-satellite routing topology management method and system
KR100240651B1 (en) Method for controlling the connection between source and receiver in multiparty multimedia communication
Gumbold Software distribution by reliable multicast
KR100204587B1 (en) How to Control Source and Receiver Connections in Transport Protocol
Mane WAIT, Selective Loss Recovery for Multimedia Multicast
Yamamoto et al. Performance evaluation of reliable multicast communication protocol with network support
Yoon et al. Tree-based reliable multicast in combined fixed/mobile IP networks

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

R17-X000 Change to representative recorded

St.27 status event code: A-3-3-R10-R17-oth-X000

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 7

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 8

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 9

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 10

R17-X000 Change to representative recorded

St.27 status event code: A-5-5-R10-R17-oth-X000

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 11

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

FPAY Annual fee payment

Payment date: 20100701

Year of fee payment: 12

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 12

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20110708

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20110708

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000