KR100858472B1 - 데이터 통신 방법 - Google Patents

데이터 통신 방법 Download PDF

Info

Publication number
KR100858472B1
KR100858472B1 KR20070020658A KR20070020658A KR100858472B1 KR 100858472 B1 KR100858472 B1 KR 100858472B1 KR 20070020658 A KR20070020658 A KR 20070020658A KR 20070020658 A KR20070020658 A KR 20070020658A KR 100858472 B1 KR100858472 B1 KR 100858472B1
Authority
KR
South Korea
Prior art keywords
data
client
block data
server
block
Prior art date
Application number
KR20070020658A
Other languages
English (en)
Other versions
KR20080030439A (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 후지쯔 가부시끼가이샤
Publication of KR20080030439A publication Critical patent/KR20080030439A/ko
Application granted granted Critical
Publication of KR100858472B1 publication Critical patent/KR100858472B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1887Scheduling and prioritising arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • H04L12/1868Measures taken after transmission, e.g. acknowledgments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0093Point-to-multipoint

Abstract

본 발명은 서버로부터 복수의 클라이언트에 대용량의 데이터를 복수의 블록 데이터로 분할하여 멀티캐스트 통신에 의해 확실하게 송신하는 것을 목적으로 한다.
서버(1)가 복수의 블록 데이터의 각각에 대한 대표 클라이언트를 복수의 클라이언트(2)에 예컨대 라운드 로빈에 의해 할당한다. 서버(1)가 블록 데이터와 이것에 할당된 대표 클라이언트(2)를 나타내는 정보를 멀티캐스트 통신에 의해 복수의 클라이언트(2)에 송신한다. 대표 클라이언트(2)가 응답 확인을 서버(1)에 송신한다. 서버(1)가 응답 확인을 수신한 경우, 상기 블록 데이터의 후속 블록 데이터와 이것에 할당된 새로운 대표 클라이언트를 나타내는 정보를 멀티캐스트 통신에 의해 복수의 클라이언트(2)에 송신한다.
Figure R1020070020658
대표 클라이언트, 멀티캐스트, 유니캐스트, 응답 확인

Description

데이터 통신 방법{THE METHOD OF DATA COMMUNICATION}
도 1은 본 발명의 테이터 통신 시스템의 구성의 일례를 도시한 구성도.
도 2는 본 발명의 테이터 통신 시스템의 구성을 설명한 설명도.
도 3은 본 발명의 테이터 통신 시스템에 있어서의 데이터 통신의 설명도.
도 4는 본 발명의 테이터 통신 시스템에 있어서의 데이터 통신의 설명도.
도 5는 본 발명의 테이터 통신 시스템에 있어서의 데이터 통신의 설명도.
도 6은 본 발명의 테이터 통신 시스템에 있어서의 데이터 통신의 설명도.
도 7은 본 발명의 테이터 통신 시스템에 있어서의 데이터의 상태의 설명도.
도 8은 본 발명의 테이터 통신 시스템에 있어서의 데이터의 상태의 설명도.
도 9는 본 발명의 테이터 통신 시스템에 있어서의 서버와 클라이언트 사이의 협의 처리 흐름도.
도 10은 본 발명의 테이터 통신 시스템에 있어서의 서버가 실행하는 송신 처리 흐름도.
도 11은 본 발명의 테이터 통신 시스템에 있어서의 클라이언트가 실행하는 수신 처리 흐름도.
도 12는 본 발명의 테이터 통신 시스템에 있어서의 클라이언트가 실행하는 종료 처리 흐름도.
도 13은 본 발명의 배경이 된 테이터 통신 시스템의 구성을 도시한 구성도.
<도면의 주요 부분에 대한 부호의 설명>
1 : 서버
2(21∼23) : 클라이언트
3 : 네트워크
11 : 협의 처리부
12 : 응답 클라이언트 결정 처리부
13 : 송수신 처리부
14 : 클라이언트 리스트
15 : 데이터 버퍼
211 : 접속 요구 처리부
212 : 응답 확인 처리부
213 : 송수신 처리부
214 : 데이터 캐시
본 발명은 데이터 통신 방법에 관한 것으로서, 특히, 서버로부터 복수의 클라이언트에, 대용량의 데이터를 복수의 블록 데이터로 분할하여 멀티캐스트 통신에 의해 송신하는 데이터 통신 방법에 관한 것이다.
서버 클라이언트 시스템에 있어서, 대용량의 데이터를 서버로부터 클라이언트로 송신하는 경우, 클라이언트의 하드웨어의 제한으로부터 1개의 데이터가 복수의 블록(블록 데이터)으로 분할되어 송신된다.
이러한 서버 클라이언트 시스템에 있어서는, 서버의 부담을 경감시키고, 네트워크의 부하를 경감시키기 위해서 효율적인 시스템을 구축하는 것이 제안되어 있다(특허문헌 1 및 2 참조). 즉, 서버는 각각의 블록 데이터를 멀티캐스트 통신에 의해 송신한다. 소정의 클라이언트는 수신한 블록 데이터를 캐시(보존)하여 다른 클라이언트로부터의 요구에 따라 캐시한 블록 데이터를 이 다른 클라이언트에 제공한다.
[특허문헌 1] 일본 특허 공표 제2005-518120호 공보
[특허문헌 2] 일본 특허 공개 제2000-089996호 공보
본 발명자의 검토에 따르면, 서버로부터 멀티캐스트 통신에 의해 송신된 블록 데이터를 수신하는 경우, 클라이언트의 성능 차에 기인하여 클라이언트에서의 블록 데이터의 처리 시간이 달라, 블록 데이터의 수신에서의 어긋남이 발생한다. 따라서, 전 클라이언트를 동기시키기 위해서, 도 13(a)에 도시된 바와 같이, 블록 데이터의 수신 처리를 종료할 때마다 각각의 클라이언트(121∼123)로부터 서버(101)로 응답 확인(Ack 또는 Nack)을 송신할 필요가 있다. 그러나, 이 경우, 1개의 서버(101)가 전 클라이언트(121∼123)로부터의 응답 확인을 처리하기 때문에, 서버(101)에서의 처리 지연이 발생한다. 또한, 클라이언트(121∼123)에 있어서의 처리 지연을 고려하여 서버(101)가 송신한 데이터를 캐시(보존)해 둘 필요가 있다. 그러나, 이 경우, 서버(101)가 현재 송신하고 있는 블록 데이터를 캐시함으로써, 모든 클라이언트(121∼123)에 대한 재송 처리를 행할 수 있지만, 서버(101)의 퍼포먼스는 저하된다. 또한, 클라이언트의 수가 많은 경우, 서버(101)의 수신 성능에도 의존은 하지만, 서버(101)의 퍼포먼스는 저하된다.
그래서, 모든 클라이언트(121∼123)와의 사이에서 응답 확인을 행하는 것이 아니라, 도 13(b)에 도시된 바와 같이, 모든 클라이언트(121∼123)를 대표하는 1개의 클라이언트(대표 클라이언트)(121)만으로 응답 확인하는 것을 생각할 수 있다. 그러나, 이 경우, 1개의 대표 클라이언트(121)에 응답 확인 처리가 집중한다. 또한, 응답 확인을 행하여도 대표 클라이언트(121) 이외의 클라이언트(122, 123)가 데이터 처리를 종료했다는 보증이 없다. 또한, 이 때문에, 지연이 발생한 클라이언트에 대응하기 위해서 서버(101)가 모든 블록 데이터를 보존할 필요가 있고, 모든 블록 데이터에 대응하는 수의 데이터 버퍼(115)를 구비해야만 한다.
본 발명은 테이터 통신 시스템의 퍼포먼스를 저하시키지 않고, 서버로부터 복수의 클라이언트에 대용량의 데이터를 복수의 블록 데이터로 분할하여 멀티캐스트 통신에 의해 확실하게 송신할 수 있는 데이터 통신 방법을 제공하는 것을 목적으로 한다.
본 발명의 데이터 통신 방법은 서버가 복수의 클라이언트에 대하여 멀티캐스트 통신에 의해 복수의 블록 데이터로 이루어진 데이터를 송신하는 데이터 통신 방 법이다. 본 발명의 데이터 통신 방법에 있어서, 상기 서버가 상기 복수의 블록 데이터 각각에 대하여 이 블록 데이터를 수신했을 때에 응답 확인을 송신하는 대표 클라이언트를 상기 복수의 클라이언트에 소정의 순서로 할당한다. 상기 서버가 상기 복수의 블록 데이터 중의 블록 데이터를, 이것에 할당된 상기 복수의 클라이언트 중의 대표 클라이언트를 나타내는 정보와 함께, 멀티캐스트 통신에 의해 상기 복수의 클라이언트에 송신한다. 상기 대표 클라이언트가 상기 응답 확인을 상기 서버에 송신한다. 상기 서버가 상기 대표 클라이언트로부터의 응답 확인을 수신한 경우에 상기 복수의 블록 데이터 중의 상기 블록 데이터의 후속 블록 데이터를, 이것에 할당된 상기 복수의 클라이언트 중의 새로운 대표 클라이언트를 나타내는 정보와 함께 멀티캐스트 통신에 의해 상기 복수의 클라이언트에 송신한다.
바람직하게는, 본 발명의 일 실시 형태에 있어서, 상기 서버가 상기 데이터 송신의 개시에 앞서 상기 복수의 클라이언트와의 통신에 기초하여 상기 데이터를 수신하는 상기 복수의 클라이언트를 등록하는 클라이언트 리스트를 작성한다. 상기 서버가 상기 복수의 블록 데이터 각각에 대하여 상기 대표 클라이언트를 상기 클라이언트 리스트에 기초하여 그 등록 순서대로 라운드 로빈에 의해 할당한다.
바람직하게는, 본 발명의 일 실시 형태에 있어서, 상기 대표 클라이언트가, 자기가 대응하는 블록 데이터를, 다른 클라이언트에 재송신하기 위해서 캐시한다.
바람직하게는, 본 발명의 일 실시 형태에 있어서, 상기 대표 클라이언트가, 상기 캐시한 블록 데이터를, 상기 대표 클라이언트가 재차 대표 클라이언트인 것을 나타내는 정보를 수신한 후에 폐기한다.
바람직하게는, 본 발명의 일 실시 형태에 있어서, 상기 대표 클라이언트가 상기 복수의 블록 데이터 중의 상기 블록 데이터에 선행하는 블록 데이터의 전부에 대하여, 이 대표 클라이언트가 정상적으로 수신하고 있는 것을 확인하고, 이것에 기초하여 상기 응답 확인을 상기 서버에 송신한다.
도 1은 본 발명의 테이터 통신 시스템의 일례를 나타낸 구성도이고, 도 2는 본 발명의 테이터 통신 시스템의 구성을 설명한 설명도이다.
도 1의 테이터 통신 시스템은 서버 클라이언트 모델에 의한 컴퓨터 시스템(서버 클라이언트 시스템)으로서, 서버(1)와, 복수의 클라이언트(2)(21∼23)와, 이들 사이를 접속하는 네트워크(3)로 이루어진다. 네트워크(3)는 예컨대 인터넷, LAN(Local Area Network) 등으로 이루어지고, 멀티캐스트 통신 또는 유니캐스트 통신을 행한다.
서버(1)는, 멀티캐스트 통신에 의해 데이터를 송신하는 데이터 송신원 서버(컴퓨터)이다. 서버(1)는 필요에 따라 유니캐스트 통신을 행한다. 서버(1)는 협의(negotiation) 처리부(11)와, 응답 클라이언트 결정 처리부(12)와, 송수신 처리부(13)와, 클라이언트 리스트(14)와, 데이터 버퍼(15)를 구비한다.
클라이언트(21)는, 멀티캐스트 통신에 의해 데이터를 수신하는 데이터 수신 클라이언트(컴퓨터)이다. 클라이언트(21)는 필요에 따라 유니캐스트 통신을 행한다. 클라이언트(21)는 접속 요구 처리부(211)와, 응답 확인 처리부(212)와, 송수신 처리부(213)와, 데이터 캐시(214)를 구비한다. 다른 복수의 클라이언트(22, 23)도 클라이언트(21)와 동일하다.
이상의 각 처리부(11∼13, 211∼213)는 각각 서버(1) 또는 클라이언트(2)인 컴퓨터에 있어서, 그 주메모리(도시하지 않음) 상에 존재하는 이 처리 프로그램을 그 CPU(도시하지 않음)에서 실행함으로써 실현된다.
서버(1)에 있어서, 협의 처리부(11)는 데이터 송신의 개시에 앞서 협의 처리를 행한다. 협의 처리는, 서버(1)로부터 멀티캐스트 통신에 의해 데이터를 수신하는 클라이언트(2)를 미리 서버(1)에 등록하는 처리이다.
구체적으로는, 협의 처리부(11)는 데이터 전송 개시가 지시될 때까지 도 2(a)에 도시된 바와 같이 멀티캐스트 통신에 대한 클라이언트(2)의 접속 요구 처리부(211)로부터의 접속 요구를 접수한다. 이 데이터를 수신하고자 하는 클라이언트(2)는 접속 요구 처리부(211)에 의해 이 접속 요구를 서버(1)에 송신한다. 협의 처리부(11)는 접속 요구를 수신한 모든 클라이언트(2)와의 통신에 기초하여 이들에 대한 클라이언트 리스트(14)를 작성한다.
클라이언트 리스트(14)는, 도 2(b)에 도시된 바와 같이, 멀티캐스트 통신에 의한 데이터를 수신하는 복수의 클라이언트(2)를 등록하는 리스트이다. 클라이언트 리스트(14)는 예컨대 클라이언트(이름)마다 이 클라이언트(이름)에 대응하여 그 IP 어드레스 등을 저장(등록)한다. 등록 순서는 서버(1)로의 상기 접속 요구가 접수된 순서이다.
송수신 처리부(13)는, 데이터 송신의 개시에 앞서, 도 2(c)에 도시된 바와 같이, 이 송신 대상인 데이터를 복수의 블록 데이터로 분할한다. 블록 데이터의 크기는 예컨대 고정 길이가 된다. 예컨대, 1개의 데이터(본래의 데이터)가 이 데이터 내에서 고유한 블록 데이터 번호(이하, 블록 번호) 1∼Z까지의 블록 데이터로 분할된다. 블록 번호 (N-1)의 블록 데이터를 블록 데이터 (N-1)이라고 한다. 블록 데이터 (N-1)을 단순히 블록 (N-1)로 표시한다.
또한, 블록 데이터도 사이즈가 보다 작은 복수의 데이터(이하, 단위 데이터)로 분할된다. 실제의 송신은 이 단위 데이터마다 행해진다. 단위 데이터에는 이 블록 데이터 내에서 고유한 데이터 번호가 부여된다.
1개의 데이터는 예컨대 메모리(도시하지 않음)에 저장된다. 송수신 처리부(13)는, 도 2(c)에 도시된 바와 같이, 이 데이터가 송신해야 할 1개의 블록 데이터를 메모리로부터 꺼내어 데이터 버퍼(15)에 저장한다. 따라서, 데이터 버퍼(15)는 송수신 처리부(13)가 현재 송신중인 블록 데이터만을 저장한다. 이에 따라, 서버(1)는 현재 송신중인 블록 데이터만을 캐시하면 되기 때문에, 데이터 버퍼(15)는 1개만으로 충분하며, 그 사이즈도 작아도 된다.
응답 클라이언트 결정 처리부(이하, 결정 처리부)(12)는, 데이터 송신의 개시에 앞서, 상기 데이터의 분할에 기초하여 복수의 블록 데이터 각각에 대하여 대표 클라이언트(2)(로서의 처리)를 할당한다. 이에 따라, 대표 클라이언트(2)가 블록 데이터마다 변경된다. 대표 클라이언트(2)는, 이 블록 데이터를 수신했을 때에 응답 확인 Ack를 송신하는 클라이언트(응답 확인 클라이언트)이다.
대표 클라이언트(2)는 복수의 클라이언트(2)에 대하여 소정의 순서로 할당된다. 이 할당 순서는 1개의 데이터를 송신하는 동안(1회의 세션 동안)은 고정이 된다. 이 할당 순서는 세션마다 할당해야 할 클라이언트의 수가 변화되고, 데이터마 다 블록 데이터의 수가 변화되기 때문에, 세션마다 및 데이터마다 변경된다.
구체적으로는, 결정 처리부(12)는, 복수의 블록 데이터 각각에 대하여, 대표 클라이언트(2)를, 클라이언트 리스트(14)에 기초하여, 그 등록 순서대로 라운드 로빈에 의해 할당한다. 여기서, 라운드 로빈이란 소정의 순서로 반복하여(주기적으로)순서를 할당하는 것을 말한다.
예컨대, 도 2(b)의 클라이언트 리스트(14)에 기초하여 등록 순서가 제1 위인 클라이언트 #1인 클라이언트(21)에 블록 (N-1)에 대한 대표 클라이언트(2)가 할당된다고 하자. 이 경우, 라운드 로빈에 의해 클라이언트 #2인 클라이언트(22)에는 블록 (N)이 할당되고, 클라이언트 #3인 클라이언트(23)에는 블록 (N+1)이 할당된다. 이와 같이 대표 클라이언트(2)의 할당이 일주하면(라운딩하면), 재차, 클라이언트 #1인 클라이언트(21)에 블록 (N+2)에 대한 대표 클라이언트가 할당된다(도 3 내지 도 6 참조). 이에 따라, 복수의 클라이언트(2)에 대하여 대표 클라이언트(2)가 균등하게 또한 고정적인 순서로 할당되고, 블록 데이터마다 정해진 순서로[클라이언트 리스트(14)에 따라서] 라운드 로빈에 의해 변경된다.
송수신 처리부(13)는, 복수의 클라이언트(2)에 대하여, 멀티캐스트 통신에 의해 복수의 블록 데이터로 이루어진 데이터를 송신한다. 실제로는 송수신 처리부(13)는 이 블록 데이터를 멀티캐스트 IP에 송신한다. 복수의 클라이언트(2)는 클라이언트 리스트(14)에 미리 등록된 클라이언트(2)에 한정된다. 구체적으로는, 송수신 처리부(13)는 복수의 블록 데이터 중의 1개의 블록 데이터(제1 또는 선행 블록 데이터)를, 복수의 클라이언트 중의 이 블록 데이터에 할당된 대표 클라이언트 (제1 대표 클라이언트)(2)를 나타내는 정보와 함께 송신한다. 대표 클라이언트(2)를 나타내는 정보는 이 블록 데이터를 포함하는 패킷(데이터 패킷) 헤더에 있어서, 소정의 위치에 저장된다.
한편, 클라이언트(2)에 있어서, 송수신 처리부(213)는 멀티캐스트 통신에 의해 송신된 블록 데이터를 수신한다. 실제로는 송수신 처리부(213)는 멀티캐스트 IP로 송신된 블록 데이터(의 패킷, 이하 동일함)를 수신하여 해석하고, 이것이 멀티캐스트 IP용 패킷인 것을 알 수 있으며, 예컨대 메모리(도시하지 않음)에 저장한다.
송수신 처리부(213)는 이 블록 데이터를 정상적으로 수신했는지의 여부를 검사하여 수신에 실패한 경우, 재송 요구 Resend(를 포함하는 패킷, 이하 동일함)를 송신한다. 이 재송 요구 Resend는 멀티캐스트 통신에 의해 송신된다. 재송 요구 Resend는, 응답 확인 Ack와는 달리, 예컨대, 블록 데이터 중의 단위 데이터의 수신에 실패한 경우(예컨대, 누락된 경우 또는 에러를 포함하는 경우)에 송신된다.
재송 요구 Resend는 반드시 멀티캐스트 통신에 의해 송신된다. 이것은, 클라이언트(2)는 이 재송 요구 Resend의 대상인 블록 데이터를 다른 어떤 클라이언트(2)가 유지하고 있는지를 알 수 없기 때문이다.
서버(1)에 있어서, 송수신 처리부(13)는 현재 송신중인 블록 데이터에 대한 재송 요구 Resend를 클라이언트(2)로부터 수신한다. 이 시점에서는, 이 블록 데이터는 서버(1)의 데이터 버퍼(15)에 캐시되어 있다. 따라서, 송수신 처리부(13)는 현재 송신중인 블록 데이터에 대하여 재송 데이터를 멀티캐스트 통신에 의해 재송 신한다. 서버(1)가 재송신하는 것은 현재 송신중인 블록 데이터에 대하여만이다. 재송 데이터는 재송 요구 Resend에 대한 응답 ResendData(를 포함하는 패킷, 이하 동일함)로서 송신된다.
응답 ResendData는 멀티캐스트 통신에 의해 송신된다. 이것은, 이 블록 데이터에 대한 재송 요구 Resend가 중복된 경우, 응답 ResendData의 송신을 1회만으로 할 수 있기 때문이다. 또한, 응답 ResendData를 유니캐스트 통신에 의해 송신하도록 하여도 좋다.
한편, 서버(1)[송수신 처리부(13)]가 이미 송신을 완료한 블록 데이터에 대하여는, 복수의 클라이언트(2) 중 어느 하나로부터 재송 데이터가 멀티캐스트 통신에 의해 재송신된다. 서버(1)가 이 블록 데이터를 재송신하는 일은 없다. 이 시점에서는, 이 블록 데이터는 서버(1)의 데이터 버퍼(15)에는 존재하지 않는다.
서버(1)에 있어서, 송수신 처리부(13)는 1개의 블록 데이터의 송신을 종료하면, 이 블록 데이터에 대응하는 대표 클라이언트(2)와의 사이에서 응답 확인 Ack 또는 Nack(이하, 단순히 응답 확인 Ack)의 송수신을 행한다. 응답 확인 Ack 또는 Nack는 각각 이 데이터(블록 데이터)의 수신에 성공한(정상적으로 수신한) 것 또는 수신에 실패한 것을 나타내는 정보(를 포함하는 패킷, 이하 동일함)이다. 대표 클라이언트(2)로부터 이 블록 데이터에 대한 응답 확인 Ack를 수신하면, 송수신 처리부(13)는 이 블록 데이터의 송신을 종료하고, 다음 블록 데이터의 송신을 행한다. 응답 확인 Nack를 수신하면, 송수신 처리부(13)는 이 블록 데이터를 응답 확인 Nack에 기재된 블록 내의 데이터 번호로부터 재송신한다.
이 클라이언트(2)가 대표 클라이언트(2)인 경우, 그 응답 확인 처리부(212)는 이 대표 클라이언트(2)가 대응하는(응답 확인해야 할) 블록 데이터에 선행하는 블록 데이터(선행 블록 데이터)에 대하여, 이 대표 클라이언트(2)가 정상적으로 수신하고 있는 것을 확인하고, 이것에 기초하여 응답 확인 Ack를 서버(1)에 송신한다. 이에 따라, 서버(1)로부터 송신된 블록 데이터는 대표 클라이언트(2)에 있어서는 확실하게 수신되고 있는 것이 보증된다.
응답 확인 Ack는 클라이언트(2)가 서버(1)의 IP 어드레스를 알고 있기 때문에, 서버(1)로의 유니캐스트 통신에 의해 송신된다. 이에 따라, 서버(1)에 응답 확인 Ack가 확실하게 송신된다. 또한, 응답 확인 Ack를 멀티캐스트 통신에 의해 송신하도록 하여도 좋다.
서버(1)에 있어서, 송수신 처리부(13)가 대표 클라이언트(2)로부터의 응답 확인 Ack를 수신한 경우, 이 대표 클라이언트(2)의 대응하는 블록 데이터에 계속되는(의 후속) 블록 데이터(제2 또는 후속 블록 데이터)를, 이것에 할당된 대표 클라이언트(제2 대표 클라이언트)(2)를 나타내는 정보와 함께 멀티캐스트 통신에 의해 복수의 클라이언트(2)에 송신한다.
대표 클라이언트(2)는 재송신용 데이터 캐시(214)를 구비하며, 자기가 대응하는 블록 데이터를, 다른 클라이언트(2)에 재송신하기 위해서 캐시한다. 즉, 이 클라이언트(2)가 대표 클라이언트(2)인 경우, 그 송수신 처리부(213)는 그 데이터 캐시(214)에 이 클라이언트(21)가 캐시(유지)해야 할 블록 데이터를 저장한다. 데이터 캐시(214)가 저장하는 블록 데이터는 이 클라이언트(21)가 응답 확인 Ack를 서버(1)에 송신해야 할 블록 데이터이다. 따라서, 서버(1)는 데이터의 캐시를 가질 필요가 없고, 또한, 현재 송신중인 대표 클라이언트(2)에 대하여만 재송하는 것만으로 시스템 전체의 데이터가 보증된다. 대표 클라이언트(2)는, 상기 캐시한 블록 데이터를, 이 대표 클라이언트(2)가 재차 대표 클라이언트(2)인 것을 나타내는 정보를 수신한 후에 폐기한다.
대표 클라이언트(2)에 있어서, 송수신 처리부(213)는, 응답 확인 Ack의 송신에 앞서 복수의 클라이언트(2)에서의 다른 클라이언트(2)에 대하여 이 블록 데이터에 선행하는 블록 데이터 중에서 정상적으로 수신되지 않는 블록 데이터에 대한 재송 요구 Resend를 송신하고, 상기 다른 클라이언트(2)로부터 상기 정상적으로 수신되지 않는 블록 데이터를 수신한다.
한편, (대표)클라이언트(2)가 복수의 클라이언트(2)에서의 다른 클라이언트(2)로부터 상기 캐시한 블록 데이터에 대한 재송 요구 Resend를 수신한 경우, 이 블록 데이터를 멀티캐스트 통신에 의해 또는 유니캐스트 통신에 의해 송신한다. 즉, 클라이언트(2)는 수신한 패킷이 재송 요구 Resend이면서 자기가 대표 클라이언트(2)로서 응답 확인 Ack의 송수신을 행한 블록 데이터인 경우, 그 재송 요구 Resend에 대한 응답을 행한다.
서버(1)에 있어서, 송수신 처리부(13)가, 모든 블록 데이터의 송신을 종료한 후에, 데이터 송신의 종료를 나타내는 데이터 전송 종료를 멀티캐스트 통신에 의해 복수의 클라이언트(2)에 송신한다. 실제로는, 도 2(c)에 도시된 바와 같이, 데이터 전송 종료의 패킷이 송신된다. 또한, 이 송신은 임의의 블록 데이터의 송신이 종료 된 시점에서 행할 수 있다.
데이터 전송 종료의 패킷을 수신한 복수의 클라이언트(2)는, 각각, 복수의 블록 데이터의 전부에 대하여 정상적으로 수신하고 있는 것을 확인하여, 데이터 전송 종료에 대한 응답 확인 Ack를 서버(1)에 송신한다. 즉, 모든 블록 데이터 번호의 데이터 수신이 종료되고 있는 경우는, 서버(1)에 대하여 응답 확인 Ack를 송신한다. 데이터 전송 종료에 대한 응답 확인 Ack는 모든 클라이언트(2)가 멀티캐스트 통신에 의해 또는 유니캐스트 통신에 의해 행한다. 모든 블록 번호의 블록 데이터의 수신을 종료하지 않는 경우, 멀티캐스트 통신에 의해 재송 요구 Resend를 송신한다.
송수신 처리부(13)는 모든 클라이언트(2)로부터 데이터 전송 종료에 대한 응답 확인 Ack를 수신한 경우, 또한, 이 통신 종료를 나타내는 통신 종료(의 패킷)를 모든(복수의) 클라이언트(2)에 송신한다. 모든 클라이언트(2)는 각각 통신 종료의 패킷을 수신할 때까지 통신(세션)을 유지하여 다른 클라이언트(2)로부터의 재송 요구 Resend의 수신에 대비한다.
이상과 같이, 모든 클라이언트(2)가 서버(1)와의 응답 확인 Ack의 송수신을 행하고, 그 후 서버(1)로부터의 지시에 의해 통신을 종료한다. 즉, 대표 클라이언트(2)와의 사이에서만 실행하고 있었던 응답 확인 Ack가, 데이터 전송 종료에 대하여만, 전 클라이언트(2)와의 사이에서 행해진다. 이에 따라, 모든 클라이언트(2)에 있어서, 모든 블록 데이터의 수신 및 정합성을 보증할 수 있다.
이하, 도 3 내지 도 8을 참조하여, 본 발명의 테이터 통신 시스템에서의 데 이터 송신에 대하여 구체적으로 설명한다. 도 3, 도 4, 도 5 및 도 6은 본 발명의 테이터 통신 시스템에서의 데이터 통신의 설명도로서, 각각 블록 (N-1), 블록 (N), 블록 (N+1) 및 블록 (N+2)의 송신에 대하여 도시한다. 도 7 및 도 8은 본 발명의 테이터 통신 시스템에 있어서의 데이터의 상태의 설명도이다.
도 3에 도시된 바와 같이, 이 테이터 통신 시스템에 있어서, 1개의 서버(1)와 3개의 클라이언트(21∼23)가 네트워크(3)에 접속되어 있다. 서버(1)가 IP 어드레스 「A. B. C. D」를 가지며, 클라이언트(21, 22, 23)가 각각 IP 어드레스「A. B. C. E」 「A. B. C. F」 및 「A. B. C. G」를 갖는다. 네트워크(3)는 멀티캐스트 IP 어드레스를 갖는다.
3개의 클라이언트(21, 22, 23)는 서버(1)의 클라이언트 리스트(14)에 이러한 순서로 등록되어 있다. 따라서, 3개의 클라이언트(21, 22, 23)는 각각 클라이언트 번호 #1, #2 및 #3을 할당받고, 따라서, 이러한 순서로 대표 클라이언트로서 동작한다.
멀티캐스트 통신에 의해 송신해야 할 데이터가, 전술한 도 2(c)에 도시된 바와 같이, 블록 번호 1∼Z까지의 블록 데이터로 분할된다. 서버(1)는 현재 블록 (N-1)을 멀티캐스트 통신에 의해 송신중이다(멀티캐스트 IP 어드레스에 송신하고 있음). 블록 (N-1)에 대한 (즉, 현시점에서의) 대표 클라이언트는 클라이언트 #1이다.
도 3에 있어서, 현시점에서의 대표 클라이언트 #1은 자기가 응답 확인 Ack를 송신해야 할 블록 (N-1)의 캐시를 행한다. 이에 따라, 블록 (N-1)이 대표 클라이언 트 #1에 보존된다. 그 때, 대표 클라이언트 #1은 자기가 응답 확인 Ack를 송신해야 할 블록 (N-1)까지의 블록 데이터는 이 대표 클라이언트 #1에 있어서, 전부 정상적으로 수신하고 있는 것을 확인한다.
서버(1)는, 1개의 대표 클라이언트 #1에만 데이터를 전송하고 있는 것과 같이, 응답 확인 Ack도 1개의 대표 클라이언트 #1로부터만 취득한다(도 4 내지 도 6에 있어서도 동일함). 응답 확인 Ack의 수신에 의해 서버(1)는 이 시점에서의 송신 대상인 블록 (N-1)의 송신을 종료한다. 클라이언트 #1 내지 #3은 각각 블록 (N-1)을 수신한다.
클라이언트 #1은, 블록 (N-1)의 처리를 한 후, 다음 번에 자기가 재차 대표 클라이언트가 될 때까지, 블록 (N-1)에 대한 다른 클라이언트 #2 또는 #3으로부터의 재송 처리 Resend에 응답하여 이 데이터를 송부한다. 클라이언트 #1에서는, 블록 (N-1)이 확실하게 수신되고 있는 것이 보증된다.
다음에, 도 3의 처리에 이어서 도 4에 도시된 바와 같이, 서버(1)는, 송신 대상인 블록 데이터를 변경한다. 즉, 블록 (N-1) 대신에 새롭게 블록 (N)이 멀티캐스트 통신에 의해 송신된다. 서버(1)는 블록 데이터의 변경에 따라 대표 클라이언트도 변경한다. 즉, 클라이언트 #1 대신에 새롭게 클라이언트 #2가 대표 클라이언트가 된다.
도 4에 있어서, 대표 클라이언트(2)를 클라이언트 #2로 변경하여 송신 처리가 행해진다. 클라이언트 #2도, 클라이언트 #1과 마찬가지로, 블록 (N)의 캐시를 행한다. 클라이언트 #3에서 블록 (N-1)의 수신 실패가 발생한 경우, 클라이언트 #1 에 대하여(정확하게는, 멀티캐스트 IP에 대하여) 데이터의 재송을 요구한다. 클라이언트 #1은 블록 (N-1)을 유지하고 있기 때문에, 재송할 수 있다.
이 때, 클라이언트 #3에서 블록 (N-1) 중의 수신에 실패한 경우, 클라이언트 #3은 멀티캐스트 IP에 대하여 블록 (N-1)의 재송 요구 Resend를 송신한다. 블록 (N-1)은 클라이언트 #1이 유지하고 있기 때문에, 클라이언트 #1은 재송 요구 Resend에 대한 응답 ResendData로서 블록 (N-1)을 클라이언트 #3에 송신한다. 이에 따라, 클라이언트 #3에 있어서의 수신 실패를 회복할 수 있다. 이 때, 서버(1)는 클라이언트 #3으로부터의 재송 요구 Resend에 대응하지 않는다. 한편, 클라이언트 #2는 서버(1)에 대하여 응답 확인 Ack를 송신한다. 이에 따라, 클라이언트 #2에 의해 블록 (N)까지의 데이터를 확실하게 수신하고 있는 것이 보증된다.
이상과 같이, 서버(1)는 이 시점에서의 송신 대상인 블록 (N)의 멀티캐스트 통신에 의한 송신을 종료한다. 클라이언트 #1∼#3은 각각 블록 (N)을 수신한다. 대표 클라이언트 #2는 자기가 응답 확인 Ack를 송신해야 할 블록 (N)까지의 정상적인 수신을 확인하고, 그 후, 서버(1)에 블록 (N)의 응답 확인 Ack를 송신한다.
다음에, 도 4의 처리에 이어서 도 5에 도시된 바와 같이 서버(1)는 송신 대상인 블록 데이터를 변경한다. 즉, 블록 (N) 대신에 새롭게 블록 (N+1)이 멀티캐스트 통신에 의해 송신된다. 서버(1)는 블록 데이터의 변경에 따라 대표 클라이언트도 변경한다. 즉, 클라이언트 #2 대신에 새롭게 클라이언트 #3이 대표 클라이언트가 된다.
도 5에 있어서, 대표 클라이언트를 클라이언트 #3으로 변경하여 송신 처리가 행해진다. 클라이언트 #3도 클라이언트 #1 및 #2와 마찬가지로 블록 (N+1)의 캐시를 행한다.
이 때, 클라이언트 #1에서 블록 (N)의 수신을 실패한 경우, 클라이언트 #1은 멀티캐스트 IP에 대하여 블록 (N)의 재송 요구 Resend를 송부한다. 블록 (N)은 클라이언트 #2에 의해 캐시되어 있기 때문에, 클라이언트 #2는 블록 (N)을 재송한다. 이에 따라, 클라이언트 #1은 블록 (N)의 수신 실패를 회복할 수 있다.
또한, 클라이언트 #3이 블록 (N+1)의 응답 확인 Ack의 송수신을 행함으로써 클라이언트 #3에 블록 (N+1)까지의 블록 데이터가 확실하게 유지되어 있는 것이 보증된다.
이상과 같이, 서버(1)는 이 시점에서의 송신 대상인 블록 (N+1)의 멀티캐스트 통신에 의한 송신을 종료한다. 클라이언트 #1∼#3은 각각 블록 (N+1)을 수신한다. 대표 클라이언트 #3은 자기가 응답 확인 Ack를 송신해야 할 블록 (N+1)까지의 정상적인 수신을 확인하고, 그 후, 서버(1)에 블록 (N+1)의 응답 확인 Ack를 송신한다.
다음에, 도 5의 처리에 이어서 도 6에 도시된 바와 같이 서버(1)는 송신 대상인 블록 데이터를 변경한다. 즉, 블록 (N+1) 대신에 새롭게 블록 (N+2)가 멀티캐스트 통신에 의해 송신된다. 서버(1)는 블록 데이터의 변경에 따라 대표 클라이언트도 변경한다. 즉, 클라이언트 #3 대신에 새롭게 클라이언트 #1이 재차 대표 클라이언트가 된다.
도 6에 있어서, 블록 (N+2)는 클라이언트 리스트(14)에 있어서의 라운드 로 빈에 따라 재차 클라이언트 #1에 의해 응답 확인되고, 캐시된다. 클라이언트 #1은 전술한 경우와 마찬가지로 블록 (N+2)에 대한 처리를 실행한다.
클라이언트 #1이 블록 (N+2)를 송신하고 있다는 것은 이것에 앞서 서버(1)가 블록 (N+1)의 응답 확인 Ack를 반드시 수신하고 있는 것을 말한다. 따라서, 그 시점에서, 다른 클라이언트 #2 및 #3은 블록 (N-1)로부터 블록 (N+1)까지의 모든 블록 데이터를 확실하게 수신하고 있다. 따라서, 클라이언트 #1은 이전의 응답 확인 Ack의 대상이었던 블록 (N-1)을 파기할 수 있다.
즉, 클라이언트 #2 및 클라이언트 #3은 블록 (N) 및 블록 (N+1)의 응답 확인 Ack를 송신하고 있기 때문에, 반드시 블록 (N-1)을 수신하고 있는 것이 보증되어 있다. 따라서, 클라이언트 #1은 블록 (N-1)을 파기할 수 있다. 따라서, 엄밀하게는, 이 시점에서 블록 (N-1)의 처리가 전부 종료하게 된다. 이와 같이, 대표 클라이언트(2)가 일주한(라운딩한) 경우, 이 일주한 범위 내에서 클라이언트(2)가 수신하고 있는 블록 데이터 (N-1), (N) 및 (N+1)에 대하여는 모든 클라이언트(2)에 데이터가 수신되어 있다.
이상을 정리하면, 도 7 및 도 8에 도시된 바와 같이 된다. 즉, 도 7에 있어서, 서버(1)는 현재 블록 (N+1)을 송신중이며, 클라이언트(23)가 대표 클라이언트(2)이다. 다른 클라이언트(21, 22)는 멀티캐스트에 의해 동일한 블록 (N+1)을 수신중(취득중)이다. 서버(1)가 블록 (N+1)을 송신하고 있기 때문에, 이것에 앞서 서버(1)는 블록 (N)에 대한 응답 확인 Ack를 수신하고 있다. 다른 블록 데이터에 대하여도 동일하다. 따라서, 블록 (N)까지의 블록 데이터는 반드시 어느 하나의 클라 이언트(2)에 정상적으로 수신되며, 존재하는 것이 보증되어 있다.
다음에, 도 8에 있어서, 서버(1)가 블록 (N+2)를 송신한다. 이것에 따라, 대표 클라이언트(2)가 클라이언트(21)가 된다. 대표 클라이언트(21)는 대표 클라이언트(2)가 일주할 때까지 동안의 데이터를 정상적으로 수신하고 있다. 따라서, 대표 클라이언트(21)는 블록 (N-1)로부터 블록 (N+1)까지의 블록 데이터를 확실하게 수신하고 있다. 이와 같이, 대표 클라이언트(2)가 일주한(라운딩한) 경우, 일주한 범위 내에 송신된 블록 데이터는 모든 클라이언트(2)에 있어서 수신되고 있는 것을 보증할 수 있다.
이 상태에서, 대표 클라이언트(21)가 블록 (N+2)의 수신에 실패하면, 그 재송 요구 Resend를 수신한 서버(1)가 블록 (N+2)를 재송신한다. 다른 클라이언트(22, 23)가 블록 (N+2)의 수신에 실패하면, 재송 요구 Resend를 수신한 대표 클라이언트(21)가 블록 (N+2)를 재송신한다.
또한, 예컨대, 클라이언트(21)가 블록 (N)의 수신에 실패하였다고 하자. 이 경우, 클라이언트(21)는 블록 (N)의 재송 요구 Resend를 송신한다. 이것을 수신한 블록 (N)에 대한 대표 클라이언트(22)가 블록 (N)을 재송신한다. 즉, 응답 ResendData를 송신한다.
이와 같이, 대표 클라이언트(2)가 데이터의 캐시를 행하고, 그 대표 클라이언트(2)를 라운드 로빈에 의해 순차적으로 교대시킴으로써, 서버(1)에 캐시를 갖지 않고 처리를 확실하게 행하는 것이 가능해진다. 또한, 클라이언트(2)에 있어서의 데이터 수신의 실패에 대응할 수 있고, 클라이언트(2)의 수가 수백∼수천이라도 멀 티캐스트 통신에 의해 동시에 행할 수 있어 시스템의 퍼포먼스 저하를 초래하는 일이 없다.
도 9는 본 발명의 테이터 통신 시스템에 있어서의 서버(1)와 클라이언트 사이의 협의 처리 흐름을 도시한 도면이다.
서버(1)가 클라이언트(2)로부터의 접속 요구 대기의 상태에 있다(단계 S11). 이 상태의 서버(1)에 대하여 클라이언트(2)가 접속 요구를 송신하고(단계 S12), 데이터의 전송 대기 상태가 된다(단계 S13). 서버(1)는 데이터의 전송을 시작하는 지시가 입력되면(단계 S14), 그 시점에서, 클라이언트(2)로부터의 접속 요구의 수신을 종료하여 클라이언트 리스트(14)를 작성하고, 이것에 기초하여 대표 클라이언트(2)를 결정하며, 이 데이터의 전송을 시작한다(단계 S15).
도 10은 본 발명의 테이터 통신 시스템에 있어서의 서버(1)가 실행하는 송신 처리 흐름이다.
서버(1)는 도 9의 처리에 이어서 블록 데이터의 송신을 시작하고, 송신해야 할 이 블록 데이터 내의 데이터 번호를 판단(확인)하여(단계 S21), 이 데이터 번호의 데이터를 포함하는 패킷(데이터 패킷)을 멀티캐스트 통신에 의해 송신한다(단계 S22). 이 송신중에 서버(1)는 클라이언트(2)로부터의 패킷을 수신하면(단계 S23), 이 패킷이 블록 데이터의 종료를 나타내는 패킷(전송 종료 패킷)인지의 여부를 조사한다(단계 S24). 이 패킷이 전송 종료 패킷이 아닌(재송 요구 Resend를 포함하는 패킷인) 경우, 서버(1)는 단계 S21 이하를 반복한다.
이 패킷이 종료 패킷인 경우, 서버(1)는 대표 클라이언트(2)와의 사이에서의 응답 확인 Ack의 송수신을 행하고, 이것에 기초하여 대표 클라이언트(2)로의 이 블록 데이터의 재송이 필요한지의 여부를 조사한다(단계 S25). 재송이 필요한 경우, 서버(1)는 단계 S21 이하를 반복한다. 재송이 필요하지 않은 경우, 서버(1)는 이 블록 데이터의 송신을 종료한다.
도 11은 본 발명의 테이터 통신 시스템에 있어서의 클라이언트가 실행하는 수신 처리 흐름이다. 도 11은 서버가 실행하는 도 10의 처리에 대응하는 클라이언트가 실행하는 처리이다.
블록 데이터의 수신을 시작한 클라이언트(2)는 서버(1)로부터의 패킷을 수신하면(단계 S31), 이 패킷이 재송 요구 패킷인지 데이터 패킷인지의 여부를 조사한다(단계 S32). 이 패킷이 재송 요구 패킷인 경우, 클라이언트(2)는 자기가 취득하고 있는 블록 데이터를 재송하고(단계 S33), 단계 S31 이하를 반복한다.
이 패킷이 데이터 패킷인 경우, 클라이언트(2)는 이 취득중인 블록 데이터의 확인을 행하여(단계 S34) 처리를 계속하는지 재송이 필요한지 또는 블록 데이터의 종료인지의 여부를 조사한다(단계 S35). 처리를 계속하는 경우, 클라이언트(2)는 단계 S31 이하를 반복한다. 재송이 필요한 경우, 클라이언트(2)는 재송 요구 Resend를 송신하고(단계 S36), 단계 S31 이하를 반복한다. 블록 데이터의 종료인 경우, 클라이언트(2)는 자기가 대표 클라이언트인 경우, 서버(1)와의 사이에서 응답 확인 Ack의 송수신을 행하여(단계 S37) 블록 데이터의 수신을 종료한다. 또한, 이 클라이언트(2)가 대표 클라이언트가 아닌 경우, 단계 S37은 생략된다.
도 12는 본 발명의 테이터 통신 시스템에 있어서의 클라이언트가 실행하는 종료 처리 흐름이다.
블록 데이터의 수신을 시작한 클라이언트(2)는 서버(1)로부터의 패킷을 수신하면(단계 S41), 이 패킷이 재송 요구 패킷, 데이터 전송 종료 패킷 또는 통신 종료 패킷 중 어느 하나인지를 조사한다(단계 S42). 이 패킷이 재송 요구 패킷인 경우, 클라이언트(2)는 자기가 취득하고 있는 블록 데이터를 재송하고(단계 S43), 단계 S41 이하를 반복한다.
이 패킷이 데이터 전송 종료 패킷인 경우, 클라이언트(2)는 이 취득중인 블록 데이터의 확인을 행하여(단계 S44) 재송이 필요한지 또는 블록 데이터의 종료 중 어느 것인지를 조사한다(단계 S45). 처리를 계속하는 경우, 클라이언트(2)는 단계 S41 이하를 반복한다. 재송이 필요한 경우, 클라이언트(2)는 재송 요구 Resend를 송신하고(단계 S46), 단계 S41 이하를 반복한다. 데이터 전송 종료 패킷인 경우, 클라이언트(2)는 자기가 대표 클라이언트인지 여부에 상관없이 서버(1)와의 사이에서 응답 확인 Ack의 송수신을 행하여(단계 S47) 단계 S41 이하를 반복한다. 따라서, 이 응답 확인 Ack는 모든 클라이언트(2)가 실행한다.
단계 S42에 있어서, 이 패킷이 통신 종료 패킷인 경우, 클라이언트(2)는 블록 데이터의 수신을 위한 멀티캐스트 통신을 종료한다.
클라이언트(2)가 실행하는 도 12의 처리에 대응하는 서버(1)가 실행하는 처리는 그 도시를 생략한다. 간단히 설명하면, 도 12로부터 알 수 있는 바와 같이, 서버(1)는 최후의 블록 데이터의 송신 후에 데이터 전송 종료 패킷을 멀티캐스트 통신에 의해 송신하고, 이 데이터 전송 종료 패킷에 대한 응답 확인 Ack를 모든 클 라이언트와의 사이에서 행한 후, 통신 종료 패킷을 멀티캐스트 통신에 의해 송신한다.
이상으로부터 알 수 있는 바와 같이, 본 발명의 실시 형태의 특징을 이하와 같이 파악할 수 있다.
(부기 1)
서버가 복수의 클라이언트에 대하여 멀티캐스트 통신에 의해 복수의 블록 데이터로 이루어진 데이터를 송신하는 데이터 통신 방법에 있어서,
상기 서버가 상기 복수의 블록 데이터 각각에 대하여 이 블록 데이터를 수신했을 때에 응답 확인을 송신하는 대표 클라이언트를 상기 복수의 클라이언트에 소정의 순서로 할당하고,
상기 서버가 상기 복수의 블록 데이터 중의 블록 데이터를 이것에 할당된 상기 복수의 클라이언트 중의 대표 클라이언트를 나타내는 정보와 함께 멀티캐스트 통신에 의해 상기 복수의 클라이언트에 송신하며,
상기 대표 클라이언트가 상기 응답 확인을 상기 서버에 송신하고,
상기 서버가 상기 대표 클라이언트로부터의 응답 확인을 수신한 경우에, 상기 복수의 블록 데이터 중의 상기 블록 데이터의 후속 블록 데이터를 이것에 할당된 상기 복수의 클라이언트 중의 새로운 대표 클라이언트를 나타내는 정보와 함께 멀티캐스트 통신에 의해 상기 복수의 클라이언트에 송신하는 것을 특징으로 하는 데이터 통신 방법.
(부기 2)
상기 대표 클라이언트가 멀티캐스트 통신에 의해 또는 유니캐스트 통신에 의해 상기 응답 확인을 상기 서버에 송신하는 것을 특징으로 하는 부기 1에 기재한 데이터 통신 방법.
(부기 3)
상기 서버가 상기 데이터 송신의 개시에 앞서 상기 데이터를 상기 복수의 블록 데이터로 분할하고, 이것에 기초하여 상기 복수의 블록 데이터의 각각에 상기 대표 클라이언트를 할당하는 것을 특징으로 하는 부기 1에 기재한 데이터 통신 방법.
(부기 4)
상기 서버가 상기 데이터 송신의 개시에 앞서 상기 복수의 클라이언트와의 통신에 기초하여 상기 데이터를 수신하는 상기 복수의 클라이언트를 등록하는 클라이언트 리스트를 작성하고,
상기 서버가 상기 복수의 블록 데이터 각각에 대하여 상기 대표 클라이언트를 상기 클라이언트 리스트에 기초하여 그 등록 순서대로 라운드 로빈에 의해 할당하는 것을 특징으로 하는 부기 1에 기재한 데이터 통신 방법.
(부기 5)
상기 대표 클라이언트가 자기가 대응하는 블록 데이터를 다른 클라이언트로의 재송신을 위해 캐시하는 것을 특징으로 하는 부기 4에 기재한 데이터 통신 방법.
(부기 6)
상기 대표 클라이언트가 상기 캐시한 블록 데이터를 이 대표 클라이언트가 재차 대표 클라이언트인 것을 나타내는 정보를 수신한 후에 폐기하는 것을 특징으로 하는 부기 5에 기재한 데이터 통신 방법.
(부기 7)
상기 대표 클라이언트가 상기 복수의 클라이언트 중의 다른 클라이언트로부터 상기 캐시한 블록 데이터에 대한 재송 요구를 수신한 경우, 상기 블록 데이터를 멀티캐스트 통신에 의해 또는 유니캐스트 통신에 의해 송신하는 것을 특징으로 하는 부기 6에 기재한 데이터 통신 방법.
(부기 8)
상기 대표 클라이언트가 상기 복수의 블록 데이터 중의 상기 블록 데이터에 선행하는 블록 데이터의 전부에 대하여, 이 대표 클라이언트가 정상적으로 수신하고 있는 것을 확인하고, 이것에 기초하여 상기 응답 확인을 상기 서버에 송신하는 것을 특징으로 하는 부기 5에 기재한 데이터 통신 방법.
(부기 9)
상기 대표 클라이언트가 상기 응답 확인의 송신에 앞서 상기 복수의 클라이언트 중의 다른 클라이언트에 대하여 상기 블록 데이터에 선행하는 블록 데이터 중에서 정상적으로 수신하지 않는 블록 데이터에 대한 재송 요구를 송신하고, 상기 다른 클라이언트로부터 상기 정상적으로 수신하지 않는 블록 데이터를 수신하는 것을 특징으로 하는 부기 5에 기재한 데이터 통신 방법.
(부기 10)
상기 대표 클라이언트가 상기 재송 요구를 멀티캐스트 통신에 의해 송신하는 것을 특징으로 하는 부기 9에 기재한 데이터 통신 방법.
(부기 11)
상기 다른 클라이언트가 상기 정상적으로 수신하지 않는 블록 데이터를 멀티캐스트 통신에 의해 또는 유니캐스트 통신에 의해 송신하는 것을 특징으로 하는 부기 10에 기재한 데이터 통신 방법.
(부기 12)
상기 서버가 상기 복수의 블록 데이터의 송신을 종료한 후에 상기 데이터 송신의 종료를 나타내는 데이터 전송 종료를 상기 복수의 클라이언트에 송신하고,
상기 복수의 클라이언트가 각각 상기 복수의 블록 데이터의 전부에 대하여 정상적으로 수신하고 있는 것을 확인하여 멀티캐스트 통신에 의해 또는 유니캐스트 통신에 의해 상기 데이터 전송 종료에 대한 응답 확인을 상기 서버에 송신하는 것을 특징으로 하는 부기 1에 기재한 데이터 통신 방법.
(부기 13)
상기 서버가 상기 복수의 클라이언트로부터 상기 데이터 전송 종료에 대한 응답 확인을 수신한 경우, 이 통신의 종료를 나타내는 통신 종료를 상기 복수의 클라이언트에 송신하는 것을 특징으로 하는 부기 12에 기재한 데이터 통신 방법.
(부기 14)
데이터를 구성하는 복수의 블록 데이터의 각각에 대하여 이 블록 데이터를 수신했을 때에 응답 확인을 송신하는 대표 클라이언트를 라운드 로빈에 의해 할당 하는 응답 클라이언트 결정 처리부와,
블록 데이터를 이것에 할당된 상기 복수의 클라이언트 중의 대표 클라이언트를 나타내는 정보와 함께 멀티캐스트 통신에 의해 상기 복수의 클라이언트에 송신하고, 상기 대표 클라이언트로부터의 상기 응답 확인을 수신한 경우에, 상기 블록 데이터의 후속 블록 데이터를 이것에 할당된 상기 복수의 클라이언트 중의 새로운 대표 클라이언트를 나타내는 정보와 함께 멀티캐스트 통신에 의해 상기 복수의 클라이언트에 송신하는 송수신 처리부를 구비하는 것을 특징으로 하는 데이터 통신 장치.
(부기 15)
서버와, 복수의 클라이언트와, 이들 사이를 접속하는 네트워크로 이루어진 테이터 통신 시스템에 있어서의 상기 서버를 실현하는 프로그램으로서,
데이터를 구성하는 복수의 블록 데이터 각각에 대하여 이 블록 데이터를 수신했을 때에 응답 확인을 송신하는 대표 클라이언트를 라운드 로빈에 의해 할당하는 처리 순서와,
블록 데이터를 이것에 할당된 상기 복수의 클라이언트 중의 대표 클라이언트를 나타내는 정보와 함께 멀티캐스트 통신에 의해 상기 복수의 클라이언트에 송신하는 처리 순서와,
상기 대표 클라이언트로부터의 상기 응답 확인을 수신한 경우에, 상기 블록 데이터의 후속 블록 데이터를 이것에 할당된 상기 복수의 클라이언트 중의 새로운 대표 클라이언트를 나타내는 정보와 함께 멀티캐스트 통신에 의해 상기 복수의 클 라이언트에 송신하는 처리 순서를 컴퓨터에 실행시키는 것을 특징으로 하는 프로그램.
(부기 16)
복수의 클라이언트에 대하여 멀티캐스트 통신에 의해 복수의 블록 데이터로 이루어진 데이터를 송신하는 서버에 있어서의 데이터 통신 방법에 있어서,
상기 복수의 블록 데이터 각각에 대하여 이 블록 데이터를 수신했을 때에 응답 확인을 상기 서버에 대하여 송신하는 대표 클라이언트를 상기 복수의 클라이언트에 소정의 순서로 할당하고,
상기 블록 데이터 중 어느 하나에 할당된 대표 클라이언트를 나타내는 정보를 상기 블록 데이터에 부가하여 멀티캐스트 통신에 의해 상기 복수의 클라이언트에 송신하며,
상기 대표 클라이언트로부터의 응답 확인을 수신한 경우에, 이 응답 확인에 대응하는 블록 데이터의 후속 블록 데이터를 이것에 할당된 새로운 대표 클라이언트를 나타내는 정보와 함께 멀티캐스트 통신에 의해 상기 복수의 클라이언트에 송신하는 것을 특징으로 하는 데이터 통신 방법.
(부기 17)
서버로부터 멀티캐스트 통신에 의해 블록 데이터를 수신하는 클라이언트에 있어서의 데이터 통신 방법에 있어서,
상기 서버가 상기 복수의 블록 데이터 각각에 대하여 이 블록 데이터를 수신했을 때에 응답 확인을 송신하는 대표 클라이언트를 상기 복수의 클라이언트에 소 정의 순서로 할당하고,
상기 서버로부터 수신한 블록 데이터 중에 자신을 식별하는 정보가 부가되어 있는지의 여부를 판정하며,
상기 블록 데이터 중에 자신을 식별하는 정보가 부가되어 있는 경우에는, 상기 수신한 블록 데이터에 대한 응답 확인을 상기 서버에 송신하는 것을 특징으로 하는 데이터 통신 방법.
이상, 설명한 바와 같이, 본 발명에 따르면, 데이터 통신 방법에 있어서, 1개의 대표 클라이언트에 응답 확인의 처리가 집중하는 것을 방지하고, 복수의 블록 데이터가 복수의 대표 클라이언트 중 어느 하나에 존재하는 것을 보증할 수 있다. 따라서, 복수의 클라이언트에 소정의 순서로 고정적이면서 균등하게 대표 클라이언트를 할당할 수 있다. 또한, 대표 클라이언트가 선두의 블록 데이터로부터 자기가 유지해야 할 블록 데이터까지의 블록 데이터를 반드시 유지하고 있는 것을 보증할 수 있다. 또한, 대표 클라이언트가 이 유지한 블록 데이터에 대하여 다른 클라이언트로부터의 재송 요구를 처리할 수 있고, 또한, 재송 처리의 부담을 복수의 클라이언트에 균등하게 분산시킬 수 있다.
한편, 서버는 송신중인 블록 데이터만을 캐시해 두는 것 만으로 충분하고, 모든 블록 데이터를 캐시해 둘 필요가 없기 때문에, 이것에 대한 서버의 부담을 없앨 수 있다. 또한, 서버는 송신을 완료한 블록 데이터에 대하여는 재송 처리를 할 필요가 없기 때문에, 이것에 대한 서버의 부담을 없앨 수 있다.
또한, 이상으로부터 클라이언트의 수가 증가한 경우에도, 이에 따라 통신 속 도가 저하되는 것을 방지할 수 있다. 또한, 서버(1)가 복수의 통신 세션을 실행한 경우에도, 이에 따라 통신 속도가 저하되는 것을 방지할 수 있다. 이에 따라, 고속이면서 신뢰성이 높은 대규모 데이터 통신을 실현할 수 있다.
본 발명의 데이터 통신 방법에 따르면, 서버가 복수의 블록 데이터의 각각에 대한 대표 클라이언트(응답 확인 클라이언트)를 복수의 클라이언트에 소정의 순서로 할당한다. 이 후, 서버가 블록 데이터와 이것에 할당된 대표 클라이언트를 나타내는 정보를 멀티캐스트 통신에 의해 복수의 클라이언트에 송신하고, 대표 클라이언트로부터의 응답 확인을 수신한 경우에, 후속 블록 데이터와 이것에 할당된 대표 클라이언트를 나타내는 정보를 멀티캐스트 통신에 의해 복수의 클라이언트에 송신한다. 이에 따라, 블록 데이터마다 대표 클라이언트가 변경되기 때문에, 1개의 대표 클라이언트에 응답 확인의 처리가 집중하는 것을 방지할 수 있다. 또한, 대표 클라이언트는 할당된 블록 데이터를 반드시 수신하고 있기 때문에, 블록 데이터마다 대표 클라이언트를 변경하는 것과 함께 복수의 블록 데이터가 복수의 대표 클라이언트 중 어느 하나에 존재하는 것을 보증할 수 있다. 따라서, 서버가 모든 블록 데이터를 캐시해 둘 필요가 없기 때문에, 서버의 부담을 없앨 수 있다.
본 발명의 일 실시 형태에 따르면, 복수의 블록 데이터 각각에 대하여 대표 클라이언트를 복수의 클라이언트를 등록하는 클라이언트 리스트의 등록 순서대로 라운드 로빈에 의해 할당한다. 이에 따라, 복수의 클라이언트에 소정의 순서로 고정적이면서 균등하게 대표 클라이언트를 할당할 수 있다.
본 발명의 일 실시 형태에 따르면, 대표 클라이언트가 자기가 대응하는 블록 데이터를 유지한다. 이에 따라, 대표 클라이언트가 소정의 블록 데이터를 유지하는 것을 보증할 수 있다. 또한, 복수의 블록 데이터가 복수의 클라이언트에 균등하게 존재하도록 할 수 있다.
본 발명의 일 실시 형태에 따르면, 대표 클라이언트가 캐시한 블록 데이터를 자기가 대표 클라이언트인 것을 나타내는 정보를 재차 수신한 후에 폐기한다. 이에 따라, 대표 클라이언트가 이 유지한 블록 데이터에 대하여 다른 클라이언트로부터의 재송 요구를 처리할 수 있어, 재송 처리의 부담을 균등하게 분산시킬 수 있다.
본 발명의 일 실시 형태에 따르면, 대표 클라이언트가 자기가 유지해야 할 블록 데이터에 선행하는 블록 데이터의 전부에 대하여 정상적으로 수신하고 있는 것을 확인한 후에 응답 확인을 서버에 송신한다. 이에 따라, 대표 클라이언트가 선두의 블록 데이터로부터 자기가 유지해야 할 블록 데이터까지의 블록 데이터를 반드시 유지하고 있는 것을 보증할 수 있다. 따라서, 이 대표 클라이언트가 다른 클라이언트로부터의 재송 요구를 처리할 수 있다.

Claims (5)

  1. 서버가 복수의 클라이언트에 대하여 멀티캐스트 통신에 의해 복수의 블록 데이터로 이루어진 데이터를 송신하는 데이터 통신 방법에 있어서,
    상기 서버가, 상기 복수의 블록 데이터 각각에 대하여, 이 블록 데이터를 수신했을 때에 응답 확인을 송신하는 대표 클라이언트를, 상기 복수의 클라이언트에 소정의 순서로 할당하고,
    상기 서버가, 상기 복수의 블록 데이터 중의 하나의 블록 데이터를, 상기 하나의 블록 데이터에 할당된 상기 복수의 클라이언트 중의 대표 클라이언트를 나타내는 정보와 함께, 멀티캐스트 통신에 의해 상기 복수의 클라이언트에 송신하며,
    상기 대표 클라이언트가 상기 응답 확인을 상기 서버에 송신하고,
    상기 서버가 상기 대표 클라이언트로부터의 응답 확인을 수신한 경우에, 상기 복수의 블록 데이터 중의 상기 하나의 블록 데이터의 후속 블록 데이터를, 상기 후속 블록 데이터에 할당된 상기 복수의 클라이언트 중의 새로운 대표 클라이언트를 나타내는 정보와 함께, 멀티캐스트 통신에 의해 상기 복수의 클라이언트에 송신하는 것을 특징으로 하는 데이터 통신 방법.
  2. 제1항에 있어서, 상기 서버가, 상기 데이터 송신의 개시에 앞서, 상기 복수의 클라이언트와의 통신에 기초하여, 상기 데이터를 수신하는 상기 복수의 클라이언트를 등록하는 클라이언트 리스트를 작성하고,
    상기 서버가, 상기 복수의 블록 데이터 각각에 대하여, 상기 대표 클라이언트를, 상기 클라이언트 리스트에 기초하여, 그 등록 순서대로 라운드 로빈에 의해 할당하는 것을 특징으로 하는 데이터 통신 방법.
  3. 제2항에 있어서, 상기 대표 클라이언트가, 자기가 대응하는 블록 데이터를 다른 클라이언트로 재송신하기 위해 캐시하는 것을 특징으로 하는 데이터 통신 방법.
  4. 제3항에 있어서, 상기 대표 클라이언트가, 상기 캐시한 블록 데이터를, 상기 대표 클라이언트가 재차 대표 클라이언트인 것을 나타내는 정보를 수신한 후에, 폐기하는 것을 특징으로 하는 데이터 통신 방법.
  5. 제3항에 있어서, 상기 대표 클라이언트가, 상기 복수의 블록 데이터 중의 상기 하나의 블록 데이터에 선행하는 블록 데이터의 전부에 대하여, 상기 대표 클라이언트가 정상적으로 수신하고 있는 것을 확인하고, 이것에 기초하여, 상기 응답 확인을 상기 서버에 송신하는 것을 특징으로 하는 데이터 통신 방법.
KR20070020658A 2006-09-29 2007-02-28 데이터 통신 방법 KR100858472B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006266332A JP4680860B2 (ja) 2006-09-29 2006-09-29 データ通信方法
JPJP-P-2006-00266332 2006-09-29

Publications (2)

Publication Number Publication Date
KR20080030439A KR20080030439A (ko) 2008-04-04
KR100858472B1 true KR100858472B1 (ko) 2008-09-16

Family

ID=39256587

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20070020658A KR100858472B1 (ko) 2006-09-29 2007-02-28 데이터 통신 방법

Country Status (5)

Country Link
US (1) US8296460B2 (ko)
EP (1) EP1926244A1 (ko)
JP (1) JP4680860B2 (ko)
KR (1) KR100858472B1 (ko)
CN (1) CN101155144B (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010154154A (ja) * 2008-12-25 2010-07-08 Silex Technology Inc 同報通信システム及び同報通信装置
US20100179984A1 (en) * 2009-01-13 2010-07-15 Viasat, Inc. Return-link optimization for file-sharing traffic
JP5385847B2 (ja) * 2010-05-06 2014-01-08 富士フイルム株式会社 中継サーバ,その動作制御方法およびその動作制御プログラム
US9007978B2 (en) * 2010-12-07 2015-04-14 Alcatel Lucent Method and apparatus for improved multicast service
EP3633918B1 (en) 2011-06-14 2021-12-08 ViaSat, Inc. Transport protocol for anticipatory content
US9307059B2 (en) * 2012-11-09 2016-04-05 Sap Se Retry mechanism for data loading from on-premise datasource to cloud
US8930311B1 (en) * 2012-12-14 2015-01-06 Netapp, Inc. Push-based piggyback system for source-driven logical replication in a storage environment
CN103905145B (zh) * 2012-12-27 2018-05-15 北京新媒传信科技有限公司 基于数据分块的数据传输方法和装置
US10019718B2 (en) 2015-05-12 2018-07-10 Bank Of America Corporation Customer-based associate interfaces
KR101727272B1 (ko) * 2016-01-19 2017-04-17 쉬프트정보통신 주식회사 자바스크립트 언어 기반의 비동기 통신 환경에서 클라이언트와 서버 사이의 대용량 데이터 분할 전송 및 처리 방법
WO2017124297A1 (zh) * 2016-01-19 2017-07-27 华为技术有限公司 一种针对上行信道的反馈方法及装置
US10742512B2 (en) * 2017-07-24 2020-08-11 Singlewire Software, LLC System and method for multicast mapping

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09130779A (ja) * 1995-09-12 1997-05-16 Internatl Business Mach Corp <Ibm> データストリームの送信を制御する方法及びメモリ
KR20050093389A (ko) * 2004-03-19 2005-09-23 주식회사 대우일렉트로닉스 무선랜기반 멀티캐스팅 시스템의 멀티미디어 데이터 처리방법
KR20060003764A (ko) * 2004-07-07 2006-01-11 삼성전자주식회사 이동통신시스템에서의 동기 재전송 방법
KR100559979B1 (ko) 2003-04-03 2006-03-13 엘지전자 주식회사 이동통신 시스템에서의 메시지 전송방법
JP2006295339A (ja) 2005-04-06 2006-10-26 Ntt Communications Kk ゲートウェイ装置及びそのプログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4725834A (en) * 1984-02-27 1988-02-16 American Telephone And Telegraph Company, At&T Bell Laboratories Reliable broadcast protocol for a token passing bus network
GB8916489D0 (en) * 1989-07-19 1989-09-06 British Telecomm Data communication method and system
US5541927A (en) 1994-08-24 1996-07-30 At&T Corp. Method of multicasting
US5553083B1 (en) * 1995-01-19 2000-05-16 Starburst Comm Corp Method for quickly and reliably transmitting frames of data over communications links
US6507562B1 (en) * 1998-06-30 2003-01-14 Sun Microsystems, Inc. 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
JP2000089996A (ja) 1998-09-16 2000-03-31 Nec Corp 情報処理装置およびデータベースシステム
JP2000183873A (ja) * 1998-12-11 2000-06-30 Fujitsu Ltd データ転送方法
US7043524B2 (en) * 2000-11-06 2006-05-09 Omnishift Technologies, Inc. Network caching system for streamed applications
JP2002359641A (ja) * 2001-05-31 2002-12-13 Matsushita Electric Ind Co Ltd ファイル配信システム、ファイル配信サーバ装置、及び受信クライアント装置
JP2003224601A (ja) * 2002-01-30 2003-08-08 Pfu Ltd 同報通信装置、方法、システム及びそのプログラム、プログラム記録媒体
SE524679C2 (sv) 2002-02-15 2004-09-14 Ericsson Telefon Ab L M System för broadcast/multicast-utsändning av datainformation emot en lokal del av ett trådlöst nät
US7577750B2 (en) * 2003-05-23 2009-08-18 Microsoft Corporation Systems and methods for peer-to-peer collaboration to enhance multimedia streaming
US20050086469A1 (en) * 2003-10-17 2005-04-21 Microsoft Corporation Scalable, fault tolerant notification method
US7593333B2 (en) * 2004-07-07 2009-09-22 Microsoft Corporation Efficient one-to-many content distribution in a peer-to-peer computer network
US7925781B1 (en) * 2006-05-26 2011-04-12 The Hong Kong University Of Science And Technology Distributed storage to support user interactivity in peer-to-peer video streaming

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09130779A (ja) * 1995-09-12 1997-05-16 Internatl Business Mach Corp <Ibm> データストリームの送信を制御する方法及びメモリ
KR100559979B1 (ko) 2003-04-03 2006-03-13 엘지전자 주식회사 이동통신 시스템에서의 메시지 전송방법
KR20050093389A (ko) * 2004-03-19 2005-09-23 주식회사 대우일렉트로닉스 무선랜기반 멀티캐스팅 시스템의 멀티미디어 데이터 처리방법
KR20060003764A (ko) * 2004-07-07 2006-01-11 삼성전자주식회사 이동통신시스템에서의 동기 재전송 방법
JP2006295339A (ja) 2005-04-06 2006-10-26 Ntt Communications Kk ゲートウェイ装置及びそのプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
M. Jiang 외 1명, Family ACK tree (FAT): a new reliable multicast protocol for mobile ad hoc networks, IEEE International Conference on Communications, 2002, Vol.5, pp.3393-3397 (2002)

Also Published As

Publication number Publication date
JP2008085932A (ja) 2008-04-10
US20080082632A1 (en) 2008-04-03
EP1926244A1 (en) 2008-05-28
JP4680860B2 (ja) 2011-05-11
CN101155144B (zh) 2011-04-13
US8296460B2 (en) 2012-10-23
CN101155144A (zh) 2008-04-02
KR20080030439A (ko) 2008-04-04

Similar Documents

Publication Publication Date Title
KR100858472B1 (ko) 데이터 통신 방법
CN110995697B (zh) 一种大数据传输方法及系统
CN102368700B (zh) 一种分布式系统中消息的传递方法
US9532372B2 (en) Systems and methods for transmitting radio link control (RLC) data blocks
JP5034081B2 (ja) Lteシステムにおけるエリア切替時にデータ再送信を指定するための方法及び装置
US7487424B2 (en) Bitmap manager, method of allocating a bitmap memory, method of generating an acknowledgement between network entities, and network entity implementing the same
EP3531631A1 (en) Data transmission method and apparatus
CN101536417B (zh) 消除冗余连接的方法
US20190312938A1 (en) Data Transmission Method And Apparatus
US8218549B2 (en) Synchronization of message stream in a multi-tier messaging system
JP2002529010A (ja) 自動再送要求を行うデータ・ネットワークにおけるパケット破棄方法及びパケット破棄装置
WO2016000138A1 (zh) 一种数据传输方法、终端和服务器
EP2341653A2 (en) Apparatus and method for generating MAC protocol data unit in wireless communication system
US7000024B1 (en) Systems and methods for providing transmission control protocol communications
CN109951832B (zh) 用于在蓝牙Mesh网络中进行启动配置的方法
JP2006191368A (ja) ネットワーク伝送装置
EP1427127A2 (en) Communication control method, communication system and communication apparatus that can improve throughput
EP2458780A1 (en) Cyclic data delivery using a multicast scheme
KR100981541B1 (ko) 이동통신시스템에서 패킷 수신 결과 보고방법
CN109688085B (zh) 传输控制协议代理方法、存储介质及服务器
US9591058B2 (en) Rapid recovery method for incomplete file transfer from sender to recipient
JP2002169738A (ja) ファイル配信方法
CN116743324B (zh) 数据传输方法、装置、接收端、存储介质、系统及服务器
KR20060096623A (ko) 통신시스템에서 데이터그램 프로토콜을 이용하여 실시간 데이터의 신뢰성을 보장하기 위한 방법
JPH10257052A (ja) インターネット上のリアルタイム放送システム及び装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120821

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130822

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140825

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee