KR101412422B1 - 감소된 네트워크 오버헤드로 일대다 데이터 송신들을 용이하게 하기 위한 방법 및 시스템 - Google Patents

감소된 네트워크 오버헤드로 일대다 데이터 송신들을 용이하게 하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR101412422B1
KR101412422B1 KR1020127012491A KR20127012491A KR101412422B1 KR 101412422 B1 KR101412422 B1 KR 101412422B1 KR 1020127012491 A KR1020127012491 A KR 1020127012491A KR 20127012491 A KR20127012491 A KR 20127012491A KR 101412422 B1 KR101412422 B1 KR 101412422B1
Authority
KR
South Korea
Prior art keywords
data blocks
list
computing device
round
lost data
Prior art date
Application number
KR1020127012491A
Other languages
English (en)
Other versions
KR20120083457A (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 KR20120083457A publication Critical patent/KR20120083457A/ko
Application granted granted Critical
Publication of KR101412422B1 publication Critical patent/KR101412422B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
    • 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/1607Details of the supervisory signal
    • H04L1/1628List acknowledgements, i.e. the acknowledgement message consisting of a list of identifiers, e.g. of sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/04Error control
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/15Flow control; Congestion control in relation to multipoint traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

감소된 네트워크 오버헤드로 일대다 데이터 송신들을 용이하게 하기 위한 방법 및 시스템은 소스 컴퓨팅 디바이스로부터 복수의 컴퓨팅 디바이스들로의 데이터 송신들의 라운드를 실행하는 단계를 포함한다. 싱크 컴퓨팅 디바이스들 각각은 데이터 송신들의 라운드 동안 손실된 데이터 블록들의 버킷 리스트를 생성하고 버킷 리스트를 소스 컴퓨팅 디바이스에 송신한다. 소스 컴퓨팅 디바이스는 버킷 리스트들에 기초하여 데이터 송신들의 다음 라운드를 실행한다. 각각의 싱크 컴퓨팅 디바이스의 버킷 리스트가 빌 때까지, 하나의 또는 그 이상의 추가 다음 라운드들이 실행될 수 있다.

Description

감소된 네트워크 오버헤드로 일대다 데이터 송신들을 용이하게 하기 위한 방법 및 시스템{METHOD AND SYSTEM FOR FACILITATING ONE-TO-MANY DATA TRANSMISSIONS WITH REDUCED NETWORK OVERHEAD}
공동 컴퓨팅 환경들은 종종 한 소스 컴퓨팅 디바이스로부터 다수의 행선 또는 싱크 컴퓨팅 디바이스들로의 데이터 전송에 좌우된다. 예를 들면, 교육 환경들에서, "교실 공동 작업(classroom collaboration)"은 선생님의 컴퓨팅 디바이스로부터 각각의 학생의 컴퓨팅 디바이스로의 파일들, 비디오, 및 다른 데이터의 전송에 좌우된다. 또한, 싱크 컴퓨팅 디바이스들(예를 들면, 학생의 컴퓨팅 디바이스들)의 관리는 갱신들, 새로운 애플리케이션들, 또는 다른 관리 소프트웨어 또는 서비스들이 각각의 행선 또는 싱크 컴퓨팅 디바이스에 송신될 것을 요구할 수 있다. 통상, 멀티캐스트, 브로드캐스트, 또는 다른 일대다 데이터 송신들이 다수의 싱크 컴퓨팅 디바이스들로의 이러한 데이터의 전송을 달성하는데 사용된다.
멀티캐스트 및 브로드캐스트 등의 전형적인 일대다 데이터 송신 기술들은 행선 또는 싱크 컴퓨팅 디바이스들 각각으로부터의 확인응답(acknowledgement) 피드백에 좌우된다. 이러한 확인응답들은 손상 없이 데이터 패킷 또는 블록이 수신되었음을 소스 컴퓨팅 디바이스에 알려주기 위해 각각의 싱크 컴퓨팅 디바이스로부터 소스 컴퓨팅 디바이스로 송신된 유니캐스트 데이터 송신들로서 종종 구현된다. 이와 같이 하여, 다수의 행선 또는 싱크 컴퓨팅 디바이스들을 포함하는 네트워크들에서(예를 들면, 교실 공동 작업 환경들이 60명의 또는 그 이상의 학생들을 포함할 수 있음), 다수의 확인응답 송신들이 생성될 수 있다. 행선 컴퓨팅 디바이스들이 확인응답들을 거의 동시에 송신하고자 하는 경우, 다수의 개별 유니캐스트 확인응답 송신들은 네트워크 "폭주(implosion)"를 야기할 수 있다. 일부 네트워크들이 네트워크 폭주를 방지하거나 감소시키기 위해 "백-오프(back-off)" 메커니즘을 포함할 수 있지만, 이러한 메커니즘들은 네트워크에서 다른 통신 지연을 추가할 수 있다. 또한, 행선 컴퓨터들에 의해 사용되는 유니캐스트 통신 기술(예를 들면, 사용자 데이터그램 프로토콜(UDP) 또는 송신 제어 프로토콜(TCP))은 소스 컴퓨팅 디바이스로부터의 추가의 링크 층 확인응답을 요구할 수 있다. 이러한 여기저기의 확인응답들 및 네트워크 지연들은 네트워크에서 서로 동시에 발생할 수 있으며, 이는 네트워크의 오버헤드를 증가시키는 경향이 있다.
본 명세서에 기술된 시스템들, 디바이스들, 및 방법들은 첨부 도면들에서 한정이 아니라 일례로서 도시된 것이다. 도면의 간결성 및 명료성을 위해, 도면들에도시된 요소들은 반드시 일정한 비율로 그려진 것은 아니다. 예를 들면, 명료성을 위해 일부 요소들의 치수들은 다른 요소들에 비해 과장될 수 있다. 또한, 적절하다고 생각되는 경우, 대응 또는 유사한 요소들을 나타내기 위해 도면들에서 참조 부호들이 반복되었다.
도 1은 감소된 네트워크 오버헤드로 하나의 또는 그 이상의 컴퓨팅 디바이스들로의 데이터 송신들을 용이하게 하기 위한 시스템의 일 실시예의 간소화된 블록도이다.
도 2는 도 1의 시스템의 컴퓨팅 디바이스의 일 실시예의 간소화된 블록도이다.
도 3은 도 1의 시스템의 소스 컴퓨팅 디바이스에 의해 실행되는 복수의 컴퓨팅 디바이스들로 데이터를 송신하는 방법의 일 실시예의 간소화된 흐름도이다.
도 4는 도 1의 시스템의 복수의 컴퓨팅 디바이스들에 의해 실행되는 소스 컴퓨팅 디바이스로부터 데이터를 수신하는 방법의 일 실시예의 간소화된 흐름도이다.
도 5는 소스 컴퓨팅 디바이스에 버킷 리스트를 송신하는 방법의 일 실시예의 간소화된 흐름도이다.
도 6은 소스 컴퓨팅 디바이스에 버킷 리스트를 송신하는 방법의 다른 실시예의 간소화된 흐름도이다.
도 7은 도 5의 방법 중에 복수의 컴퓨팅 디바이스들로의 데이터 송신의 제1 라운드를 도시한 간소화된 도면이다.
도 8은 도 7에 도시된 데이터 송신 후의 복수의 컴퓨팅 디바이스들의 버킷 리스트를 도시한 간소화된 도면이다.
도 9는 도 5의 방법 중에 복수의 컴퓨팅 디바이스들로의 데이터 송신의 제2 라운드를 도시한 간소화된 도면이다.
본 발명의 개념들이 각종 변경들 및 대안의 형태들을 허용할 수 있지만, 그 특정 일례의 실시예들은 도면들에 일례로서 도시되었으며, 본 명세서에서 상세히 기술될 것이다. 그러나, 본 발명의 개념들을 기술된 특정 형태들로 한정하려는 의도는 아니며, 그 반대로, 첨부된 청구항들에 의해 정의된 본 발명의 원리 및 범위 내에 속한 모든 변경들, 동등물들, 및 대안물들을 포함하는 것으로 의도됨을 이해해야만 한다.
이하의 설명에서, 논리 구현들, 연산 코드들 등의 다수의 특정 세부 사항들은, 피연산자들, 리소스 분할/공유/복제 구현들, 시스템 컴포넌트들의 타입들 및 상호 관계들을 의미하며, 논리 분할/통합 선택들은 본 발명의 더 철저한 이해를 제공하기 위해 기재될 수 있다. 그러나, 본 발명의 실시예들이 이러한 특정 세부 사항들 없이 구현될 수 있음을 당업자는 알 것이다. 다른 실례들에서, 제어 구조들, 게이트 레벨 회로들 및 총 소프트웨어 명령 시퀀스들은 본 설명을 모호하게 하지 않기 위해 상세히 도시되지 않았을 수도 있다. 포함된 설명들과 함께, 당업자는 과도한 실험 없이 적합한 기능을 구현할 수 있을 것이다.
본 명세서에서 "일 실시예(one embodiment, an embodiment)", "일례의 실시예(an example embodiment)" 등의 언급은, 기술된 실시예가 특정 피처, 구조, 또는 특징을 포함할 수 있지만, 모든 실시예가 반드시 특정 피처, 구조, 또는 특징을 포함하지는 안하도 된다는 것을 나타낸다. 게다가, 이러한 구절들은 반드시 동일한 실시예를 언급하는 것이 아니다. 또한, 특정 피처, 구조, 또는 특징이 일 실시예와 관련해서 기술될 때, 명백히 기술되던 되지 않던 간에 다른 실시예들과 함께 이러한 피처, 구조, 또는 특징을 달성하는 것이 당업자의 지식 내에 있다고 진술된다.
본 발명의 일부 실시예들은 하드웨어, 펌웨어, 소프트웨어, 또는 그 임의의 조합물로 구현될 수 있다. 컴퓨터 시스템에서 구현된 본 발명의 실시예들은 컴포넌트들 간의 하나의 또는 그 이상의 버스-기반 인터커넥트들 및/또는 컴포넌트들 간의 하나의 또는 그 이상의 지점간 인터커넥트들을 포함할 수 있다. 본 발명의 실시예들은, 또한, 하나의 또는 그 이상의 프로세서들에 의해 판독 및 실행될 수 있는, 기계 판독 가능 유형 매체에 저장된 명령들로서 구현될 수 있다. 기계 판독 가능 유형 매체는 기계(예를 들면, 컴퓨팅 디바이스)에 의해 판독 가능한 형태로 정보를 저장 또는 송신하기 위한 임의의 유형 메카니즘을 포함할 수 있다. 예를 들면, 기계 판독 가능 유형 매체는 판독 전용 메모리(ROM); 랜덤 액세스 메모리(RAM); 자기 디스크 기억 매체; 광 기억 매체; 플래시 메모리 디바이스들; 및 다른 유형 매체들을 포함할 수 있다.
이제 도 1을 참조하면, 감소된 네트워크 오버헤드를 가진 복수의 컴퓨팅 디바이스들로의 데이터 송신들을 용이하게 하기 위한 시스템(100)은 소스 또는 서버 컴퓨팅 디바이스(102) 및 수신 또는 클라이언트 컴퓨팅 디바이스 그룹(104)을 포함한다. 컴퓨팅 디바이스들(102, 104)은 액세스 포인트(108)를 통해 네트워크(106)를 통해 서로 통신 가능하게 연결된다. 소스 컴퓨팅 디바이스(102)는 본 명세서에 기술된 기능들을 실행할 수 있는 임의의 타입의 컴퓨팅 디바이스로서 구현될 수 있다. 예를 들면, 일부 실시예들에서, 소스 컴퓨팅 디바이스(102)는 데스크탑 컴퓨터, 랩탑 컴퓨터, 이동 인터넷 디바이스(MID), 또는 다른 네트워크-인에이블 컴퓨팅 디바이스로서 구현될 수 있다.
컴퓨팅 디바이스 그룹(104)은 하나의 또는 그 이상의 행선 또는 싱크 컴퓨팅 디바이스들(110)을 포함한다. 소스 컴퓨팅 디바이스(102)와 유사하게, 싱크 컴퓨팅 디바이스들(110) 각각은 본 명세서에 기술된 기능들을 실행할 수 있는 임의의 타입의 컴퓨팅 디바이스로서 구현될 수 있다. 예를 들면, 싱크 컴퓨팅 디바이스들(110) 각각은 데스크탑 컴퓨터, 랩탑 컴퓨터, 이동 인터넷 디바이스(MID), 또는 다른 네트워크-인에이블 컴퓨팅 디바이스로서 구현될 수 있다.
액세스 포인트(108)는 컴퓨팅 디바이스들(102, 110) 간의 통신을 용이하게 한다. 액세스 포인트(108)는 컴퓨팅 디바이스들(102, 110)을 통신 가능하게 연결할 수 있는 유선 또는 무선 라우터, 스위치, 허브, 또는 다른 네트워크 통신 디바이스 등의 임의의 타입의 유선 또는 무선 네트워크 통신 라우팅 디바이스들로서 구현될 수 있다. 일부 실시예들에서, 액세스 포인트(108)는 통신 링크(124)를 통해 외부 네트워크(130)에 또한 통신 가능하게 연결된다. 네트워크(130)는 근거리 통신망, 광역 통신망, 공개적으로 사용될 수 있는 글로벌 네트워크(예를 들면, 인터넷), 또는 다른 네트워크 등의 임의의 타입의 유선 및/또는 무선 네트워크로서 구현될 수 있다. 유사하게, 통신 링크(124)는, 예를 들면, 임의의 수의 무선 또는 물리적 커넥션들, 유선들, 케이블들, 및/또는 다른 상호 연결 링크들 또는 경로들 등의 액세스 포인트(108) 및 외부 네트워크(130) 간의 통신을 용이하게 할 수 있는 임의의 타입의 유선 또는 무선 통신 링크로서 구현될 수 있다. 또한, 네트워크(130)는 컴퓨팅 디바이스들(102, 110) 및 원격 컴퓨팅 디바이스들 간의 통신을 용이하게 하기 위해 라우터들, 스위치들, 중간 컴퓨터들 등의 임의의 수의 추가 디바이스들을 포함할 수 있다.
일부 실시예들에서, 소스 컴퓨팅 디바이스(102) 및 컴퓨팅 디바이스 그룹(104)은 싱글룸에 위치하거나 또는 서로 가깝게 위치한다. 예를 들면, 일 특정 실시예에서, 시스템(100)은 한 교실에 포함된다. 이러한 실시예들에서, 소스 컴퓨팅 디바이스(102)는 선생님 또는 강사의 컴퓨팅 디바이스로서 구현될 수 있으며, 싱크 컴퓨팅 디바이스들(110)은 학생 컴퓨팅 디바이스들로서 구현될 수 있다. 물론, 시스템(100)은 일대다 데이터 송신들이 요구되는 다른 환경들 또는 구현들에서도 또한 사용될 수 있다.
사용시, 소스 컴퓨팅 디바이스(102)는 복수의 데이터 블록들이 싱크 컴퓨팅 디바이스들(110)로 송신되는 데이터 송신들의 다수의 라운드들을 실행함으로써 싱크 컴퓨팅 디바이스들(110) 각각에 파일들, 비디오, 이미지들, 텍스트, 및/또는 다른 데이터 등의 데이터를 송신하도록 구성된다. 데이터 송신들의 각각의 라운드 중에, 싱크 컴퓨팅 디바이스들(110)은 수신되지 않았거나 또는 손상된 상태로 수신된 데이터 블록들을 손실된 데이터 블록들의 버킷 리스트로서 기록한다. 데이터 송신들의 각각의 라운드를 완료한 후에, 싱크 컴퓨팅 디바이스들(110)은 소스 컴퓨팅 디바이스(102)에 개별 버킷 리스트를 송신한다. 일부 실시예들에서, 더 상세히 후술되는 바와 같이, 싱크 컴퓨팅 디바이스들(110)은 각자의 버킷 리스트의 크기(즉, 버킷 리스트의 데이터 블록들의 수) 또는 지연 기간 등의 일부 기준들에 기초하여 그들의 버킷 리스트들을 송신할 수 있다. 소스 컴퓨팅 디바이스(102)는 각각의 싱크 컴퓨팅 디바이스(110)로부터 수신된 버킷 리스트들을 종합하고, 종합 버킷 리스트 내의 식별된 데이터 블록들이 싱크 컴퓨팅 디바이스들(110)에 재송신되는 데이터 송신들의 다음 라운드를 실행한다. 하나의 또는 그 이상의 다음 라운드들은, 각각의 싱크 컴퓨팅 디바이스(110)의 버킷 리스트가 빌 때까지, 싱크 컴퓨팅 디바이스들(110)이 계속해서 임의의 손실된 데이터 블록들을 소스 컴퓨팅 디바이스(102)에 보고하는 방식으로 실행될 수 있다.
일 특정 실시예에서, 싱크 컴퓨팅 디바이스들(110)은 소스 컴퓨팅 디바이스(102)로부터 데이터 블록을 수신한 후에 어떠한 확인응답 송신도 송신하지 않도록 구성된다. 이러한 실시예들에서, 마찬가지로 소스 컴퓨팅 디바이스(102)는 데이터 블록들의 송신들 간에 컴퓨팅 디바이스들(110)로부터의 그러한 확인응답 송신들을 기다리지 않도록 구성된다. 이러한 방법으로, 증가된 네트워크 트래픽으로 인해 야기되는 전체 네트워크 트래픽, 및 손상들 및 지연들의 양이 감소될 수 있다.
이제 도 2를 참조하면, 일 실시예에서, 컴퓨팅 디바이스들(102, 110) 각각은 프로세서(200), 칩셋(204), 및 메모리(202)를 포함한다. 컴퓨팅 디바이스들(102, 110)은 본 명세서에 기술된 각자의 기능들을 실행할 수 있는 임의의 타입의 컴퓨팅 디바이스들로서 구현될 수 있다. 예를 들면, 상술된 바와 같이, 컴퓨팅 디바이스들(102, 110)은 데스크탑 컴퓨터들, 랩탑 컴퓨터들, 이동 인터넷 디바이스들(MID), 또는 다른 네트워크-인에이블 컴퓨팅 디바이스들로서 구현될 수 있다.
프로세서(200)는 실례로서 프로세서 코어(206)를 가진 싱글 코어 프로세서로서 구현된다. 그러나, 다른 실시예들에서, 프로세서(200)는 다수의 프로세서 코어들(206)을 가진 멀티-코어 프로세서로서 구현될 수 있다. 또한, 컴퓨팅 디바이스들(102, 110)은 하나의 또는 그 이상의 프로세서 코어들(206)을 가진 추가의 프로세서들(200)을 포함할 수 있다. 프로세서(200)는 다수의 신호 경로들(208)을 통해 칩셋(204)에 통신 가능하게 연결된다. 신호 경로들(208)은 프로세서(200) 및 칩셋(204) 간의 통신을 용이하게 할 수 있는 임의의 타입의 신호 경로들로서 구현될 수 있다. 예를 들면, 신호 경로들(208)은 임의의 수의 버스 경로들, 인쇄 회로 기판 트레이스들, 유선들, 바이어스들, 중간 디바이스들, 및/또는 다른 인터커넥트들로서 구현될 수 있다.
메모리(202)는, 예를 들면, 동적 랜덤 액세스 메모리 디바이스들(DRAM), 동기 동적 랜덤 액세스 메모리디바이스들(SDRAM), 더블 데이터 레이트 동적 랜덤 액세스 메모리 디바이스(DDR SDRAM), 및/또는 다른 휘발성 메모리 디바이스들을 포함하는 하나의 또는 그 이상의 메모리 디바이스들 또는 데이터 기억 로케이션들로서 구현될 수 있다. 또한, 오직 하나의 싱글 메모리 디바이스(202)가 도 2에 도시되어 있지만, 다른 실시예들에서, 컴퓨팅 디바이스들(102, 110)은 추가의 메모리 디바이스들을 포함할 수 있다.
칩셋(204)은 메모리 컨트롤러 허브(MCH) 또는 노스브리지, 입력/출력 컨트롤러 허브(ICH) 또는 사우스브리지, 및 펌웨어 디바이스를 포함할 수 있다. 이러한 실시예들에서, 펌웨어 디바이스는 기본 입출력 시스템(BIOS) 데이터 및/또는 명령들 및/또는 다른 정보를 저장하기 위한 메모리 기억 장치로서 구현될 수 있다. 칩셋(204)은 다수의 신호 경로들(210)을 통해 메모리(202)에 통신 가능하게 연결된다. 신호 경로들(208)과 유사하게, 신호 경로들(210)은, 예를 들면, 임의의 수의 버스 경로들, 인쇄 회로 기판 트레이스들, 유선들, 바이어스들, 중간 디바이스들, 및/또는 다른 인터커넥트들 등의, 칩셋(204) 및 메모리 디바이스(202) 간의 통신을 용이하게 할 수 있는 임의의 타입의 신호 경로들로서 구현될 수 있다.
다른 실시예들에서, 칩셋(204)은 플랫폼 컨트롤러 허브(PCH)로서 구현될 수 있다. 이러한 실시예들에서, 메모리 컨트롤러 허브(MCH)는 프로세서(200) 내에 포함되거나 또는 달리 프로세서(200)와 연관될 수 있다. 또한, 이러한 실시예들에서, 메모리 디바이스(202)는, 다수의 신호 경로들(212)을 통해, 칩셋(204)(즉, 플랫폼 컨트롤러 허브)이 아닌, 프로세서(200)에 통신 가능하게 연결될 수 있다. 신호 경로들(208)과 유사하게, 신호 경로들(212)은, 예를 들면, 임의의 수의 버스 경로들, 인쇄 회로 기판 트레이스들, 유선들, 바이어스들, 중간 디바이스들, 및/또는 다른 인터커넥트들 등의, 메모리 디바이스(202) 및 프로세서(200) 간의 통신을 용이하게 할 수 있는 임의의 타입의 신호 경로들로서 구현될 수 있다.
컴퓨팅 디바이스들(102, 110)은 또한 네트워크(106)를 통해 서로 통신하기 위한 통신 회로(220)를 포함한다. 통신 회로(220)는 컴퓨팅 디바이스들(102, 110) 간의 통신을 가능케 하기 위한 임의의 수의 디바이스들 및 회로로서 구현될 수 있다. 예를 들면, 통신 회로(220)는 액세스 포인트(108)를 통해 다른 컴퓨팅 디바이스들(102, 110)과 통신하기 위한 하나의 또는 그 이상의 유선 또는 무선 네트워크 인터페이스 카드들(NICs) 또는 다른 네트워크 통신 카드들, 모듈들, 또는 회로들로서 구현될 수 있다.
컴퓨팅 디바이스들(102, 110)은 또한 데이터 저장소(222), 디스플레이 디바이스(224), 및 다른 주변 장치들(226) 등의 추가의 주변 장치들을 포함할 수 있다. 통신 회로(220), 데이터 저장소(222), 디스플레이 디바이스(224), 및 다른 주변 장치들(226) 각각은 신호 경로들(230)을 통해 칩셋(204)에 통신 가능하게 연결된다. 또한, 신호 경로들(208)과 유사하게, 신호 경로들(230)은 예를 들면, 임의의 수의 버스 경로들, 인쇄 회로 기판 트레이스들, 유선들, 바이어스들, 중간 디바이스들, 및/또는 다른 인터커넥트들 등의, 칩셋(204) 및 통신 회로(220), 데이터 저장소(222), 디스플레이 디바이스(224), 및 다른 주변 장치들(226) 간의 통신을 용이하게 할 수 있는 임의의 타입의 신호 경로들로서 구현될 수 있다.
데이터 저장소 디바이스(들)(222)는, 예를 들면, 메모리 디바이스들 및 회로들, 메모리 카드들, 하드 디스크 드라이브들, 고체 상태 드라이브들, 또는 다른 데이터 저장소들 등의 단기 또는 장기 기억 데이터를 위해 구성된 임의의 타입의 디바이스로서 구현될 수 있다. 디스플레이 디바이스(224)는, 예를 들면, 액정 디스플레이(LCD), 음극선관(CRT) 디스플레이, 발광 다이오드(LCD) 디스플레이, 또는 다른 디스플레이 디바이스들 등의, 컴퓨팅 디바이스들(102, 110)의 사용자에게 데이터를 디스플레이하기 위한 임의의 타입의 디스플레이 디바이스로서 구현될 수 있다. 예를 들어, 주변 장치들(226)은 입력 디바이스들, 출력 디바이스들, 및 다른 인터페이스 디바이스들을 포함하는 임의의 수의 추가 주변 장치들을 포함할 수 있다. 주변 장치들(226)은 컴퓨팅 디바이스(102, 110)에 입력을 제공하기 위한 키보드 및/또는 마우스를 포함할 수 있다. 주변 장치들(226)에 포함되는 디바이스들의 특정 수 및 타입은, 예를 들면, 컴퓨팅 디바이스(102, 110)의 의도된 용도에 좌우될 수 있다.
이제 도 3을 참조하면, 복수의 컴퓨팅 디바이스들(110)에 데이터를 송신하기 위한 방법(300)은 소스 컴퓨팅 디바이스(102)가 데이터 송신들의 한 세션을 초기화하는 블록(302)으로 시작한다. 블록(302) 중에, 소스 컴퓨팅 디바이스(102)는 임의의 수의 교정 및 초기화 프로시져들을 실행할 수 있다. 또한, 일부 실시예들에서, 소스 컴퓨팅 디바이스(102)는 블록(304)에서 싱크 컴퓨팅 디바이스들(110) 각각과 핸드셰이크한다. 이러한 핸드셰이킹은 싱크 컴퓨팅 디바이스들(110)에 데이터를 송신 및/또는 싱크 컴퓨팅 디바이스들(110)이 데이터 송신들을 수신하도록 준비시키기 위한 다른 정보 또는 데이터를 송신하는데 사용될 통신 프로토콜들을 설정할 수 있다. 예를 들면, 일 실시예에서, 소스 컴퓨팅 디바이스(102)는 디바이스들(110)에 송신될 데이터 파일에 대해 싱크 컴퓨팅 디바이스들(110)에게 알려준다. 이러한 정보(예를 들면, 싱크 컴퓨팅 디바이스들(110)이 수신할 것으로 예상하는 데이터 블록들의 수)는 싱크 컴퓨팅 디바이스들(110)이 손실된 데이터 블록들(즉, 수신되지 않았거나 또는 손상된 상태로 수신된 데이터 블록들)을 결정하는데 사용될 수 있다.
상술된 바와 같이, 소스 컴퓨팅 디바이스(102)는 데이터 송신들의 하나의 또는 그 이상의 라운드들을 사용해서 싱크 컴퓨팅 디바이스들(110)에 데이터 파일 또는 다른 데이터를 송신하도록 구성된다. 제1 라운드 다음의 데이터 송신 라운드들은 싱크 컴퓨팅 디바이스들(110)로부터의 피드백에 기초한다. 소스 컴퓨팅 디바이스(102)는 싱크 컴퓨팅 디바이스들(110)에 데이터 파일 또는 다른 데이터를 성공적으로 전송하는데 필요한 수만큼의 데이터 송신 라운드들을 실행할 수 있다. 따라서, 블록(306)에서, 소스 컴퓨팅 디바이스는 데이터 송신들의 다음 라운드를 개시한다. 예를 들면, 방법(300)의 제1 반복 중에, 소스 컴퓨팅 디바이스(102)는 싱크 컴퓨팅 디바이스들(110)로의 데이터 송신들의 제1 라운드(즉, X = 1)를 개시한다. 블록(306)에서, 소스 컴퓨팅 디바이스(102)는, 예를 들면, 데이터 송신들의 현재 라운드가 시작하고 있다는 통지를 싱크 컴퓨팅 디바이스들(110)에 송신할 수 있다. 일부 실시예들에서, 디바이스들(110)이 어느 데이터 블록들이 손실되었는 지를 결정할 수 있도록, 소스 컴퓨팅 디바이스(102)는 싱크 컴퓨팅 디바이스들(110)에, 예상 데이터 블록들의 수 등의, 데이터 송신들의 특정 라운드에 관한 데이터를 송신할 수 있다.
소스 컴퓨팅 디바이스(102)가 데이터 송신들의 현재 라운드를 개시한 후에, 소스 컴퓨팅 디바이스(102)는 블록(308)에서 싱크 컴퓨팅 디바이스들(110)에 데이터 송신의 현재 라운드 동안 데이터 블록들을 송신한다. 데이터 송신의 제1 라운드에서, 싱크 컴퓨팅 디바이스들(110)에 송신될 데이터 파일 또는 다른 데이터를 포함하는 모든 데이터 블록은 디바이스들(110)에 송신된다. 그러나, 더 상세히 후술되는 바와 같이, 하나의 또는 그 이상의 싱크 컴퓨팅 디바이스들에 의해 손실된 것으로 식별된 데이터 블록들만이 데이터 송신의 다음 라운드들에서 송신된다. 이와 같이 하여, 임의의 수의 데이터 블록들이 블록(308)에서 예를 들면, 송신될 데이터 파일의 크기, 데이터 송신들의 이전 라운드들, 더 상세히 후술되는 싱크 컴퓨팅 디바이스들(110)로부터의 피드백, 및/또는 다른 기준들에 따라 송신될 수 있다.
소스 컴퓨팅 디바이스(102)는 임의의 적합한 네트워크 통신 기술을 사용해서 싱크 컴퓨팅 디바이스들(110)에 데이터 블록들을 전송할 수 있다. 예를 들면, 일부 실시예들에서, 소스 컴퓨팅 디바이스(102)는 멀티캐스트 데이터 송신들 또는 브로드캐스트 데이터 송신들을 사용해서 싱크 컴퓨팅 디바이스들(110)에 데이터 블록들을 전송할 수 있다. 대안으로, 일 특정 실시예에서, 소스 컴퓨팅 디바이스(102)는 2009년 12월 XX일에 출원된, 져스틴 립맨(Justin Lipman)에 의한 "복수의 컴퓨팅 디바이스들로의 일대다 데이터 송신을 용이하게 하기 위한 방법 및 시스템(METHOD AND SYSTEM FOR FACILITATING ONE-TO-MANY DATA TRANSMISSION TO A PLURALITY OF COMPUTING DEVICES)"라는 제목의, 미국 특허 출원 제XX/XXXXXX호에 기술된 일대다 데이터 송신을 사용하도록 구성된다. 이러한 실시예들에서, 소스 컴퓨팅 디바이스(102)는 컴퓨팅 디바이스들(110) 중 하나를 "싱크" 컴퓨팅 디바이스로서 선택하도록 구성된다. 나머지 컴퓨팅 디바이스들(110)은 잡다한 통신 모드로 구성된다. 소스 컴퓨팅 디바이스(102)는 선택된 싱크 컴퓨팅 디바이스(110)에 유니캐스트 데이터 송신을 송신함으로써 선택된 싱크 컴퓨팅 디바이스(110)에 데이터 블록들을 전송한다. 그러나, 유니캐스트 데이터 송신이 선택된 싱크 컴퓨팅 디바이스(110)에 어드레싱되더라도, 유니캐스트 데이터 송신은 또한 선택되지 않은 다른 컴퓨팅 디바이스들(110) 각각에 의해서도 수신된다. 선택되지 않은 컴퓨팅 디바이스들(110)이 잡다한 통신 모드로 구성되기 때문에, 선택되지 않은 컴퓨팅 디바이스들(110)은 또한 유니캐스트 데이터 송신을 필터링 및 처리한다. 이러한 방법으로, 일대다 데이터 송신은 유니캐스트 데이터 송신을 사용해서 달성된다.
소스 컴퓨팅 디바이스(102)가 데이터 송신들의 현재 라운드 동안 데이터 블록들을 전송한 후에, 소스 컴퓨팅 디바이스(102)는 데이터 송신들의 현재 라운드가 완료했음을 디바이스들(110)에게 알려주는 통지를 각각의 싱크 컴퓨팅 디바이스(110)에 송신한다(블록(310)). 다음으로, 블록(312)에서, 소스 컴퓨팅 디바이스(102)는 싱크 컴퓨팅 디바이스들(110)에 의해 송신된 임의의 버킷 리스트들을 수신한다. 더 상세히 후술되는 바와 같이, 버킷 리스트들은 각각의 보고 싱크 컴퓨팅 디바이스(110)에 의해 손실된 데이터 블록들을 현재 라운드로부터 식별한다.
블록(312)에서 특정 싱크 컴퓨팅 디바이스(110)가 소스 컴퓨팅 디바이스(102)에 버킷 리스트를 송신하는 지의 여부는 하나의 또는 그 이상의 기준에 기초하여 결정된다. 예를 들면, 일 실시예에서, 각각의 버킷 리스트들에서 적어도 하나의 손실된 데이터 블록을 가진 모든 싱크 컴퓨팅 디바이스(110)는 현재 라운드가 종료했다는 통지를 수신할 때 또는 수신한 후에 블록(312)에서 소스 컴퓨팅 디바이스에 버킷 리스트를 송신한다. 그러나, 다른 실시예들에서, 싱크 컴퓨팅 디바이스들(110)은 현재 라운드가 종료했다는 통지를 수신한 후의 지연 기간에 기초하여 그들 각자의 버킷 리스트들을 송신하도록 구성될 수 있다. 이러한 실시예들에서, 소스 컴퓨팅 디바이스(102)는 블록(314)에서 각각의 싱크 컴퓨팅 디바이스들(110)에 디폴트 지연 값을 송신하도록 구성된다. 싱크 컴퓨팅 디바이스들(110)은 더 상세히 후술되는 바와 같이 디폴트 지연 값에 기초하여 라운드 종료 통지 후의 그들 각자의 지연 기간을 결정한다. 대안으로, 또는 추가로, 다른 실시예들에서, 싱크 컴퓨팅 디바이스들(110)은 그들 각자의 버킷 리스트들의 크기에 기초하여 그들의 버킷 리스트들을 송신하도록 구성될 수 있다. 이러한 실시예들에서, 소스 컴퓨팅 디바이스(102)는 블록(316)에서 각각의 싱크 컴퓨팅 디바이스(110)에 미리 결정된 버킷 리스트 크기 임계값을 송신하도록 구성된다. 싱크 컴퓨팅 디바이스들(110)은 더 상세히 후술되는 바와 같이 임계값에 기초하여 그들의 버킷 리스트를 송신할 지의 여부를 결정한다.
소스 컴퓨팅 디바이스(102)가 싱크 컴퓨팅 디바이스들(110)로부터 현재 라운드 동안 버킷 리스트들을 수신한 후에, 소스 컴퓨팅 디바이스(102)는 블록(318)에서 버킷 리스트들을 종합해서 마스터 버킷 리스트를 생성한다. 마스터 버킷 리스트는 데이터 송신의 해당 라운드 동안 손실된 것으로 하나의 또는 그 이상의 싱크 컴퓨팅 디바이스들(110)에 의해 보고된 각각의 데이터 블록의 표시 또는 식별을 포함한다. 마스터 버킷 리스트가 블록(320)에서 빈 것으로 결정되면(즉, 적어도 하나의 데이터 블록을 가진 버킷 리스트를 송신한 싱크 컴퓨팅 디바이스(110)가 없으면), 소스 컴퓨팅 디바이스(102)는 블록(322)에서 데이터 송신 세션이 완료했다는 통지를 각각의 싱크 컴퓨팅 디바이스(110)에 송신한다.
그러나, 소스 컴퓨팅 디바이스(102)가 블록(316)에서 싱크 컴퓨팅 디바이스들(110)에 버킷 리스트 크기 임계값을 송신하는 실시예들에서, 버킷 리스트가 싱크 컴퓨팅 디바이스들(110)로부터 수신되지 않은 경우, 소스 컴퓨팅 디바이스(102)는 임계값을 미리 결정된 양만큼 감소하여 상기 임계값을 싱크 컴퓨팅 디바이스들(110)에 재송신하도록 구성될 수 있음을 알아야만 한다. 이러한 방법으로, 소스 컴퓨팅 디바이스(102)는 임계값이 0과 동일할 때까지 각각의 라운드마다 임계값을 계속해서 감소시킬 수 있다.
다시 블록(320)를 참조하면, 마스터 버킷 리스트가 비어 있지 않으면, 방법(300)은 데이터 송신들의 다음 라운드가 개시되는 블록(306)으로 다시 돌아간다. 다음 라운드에서, 마스터 버킷 리스트 내의 식별된 데이터 블록들은 상술된 바와 같이 싱크 컴퓨팅 디바이스들(110)에 재송신된다. 이러한 방법으로, 소스 컴퓨팅 디바이스(102)는 싱크 컴퓨팅 디바이스들(110)에 데이터 파일 또는 다른 데이터를 송신하기 위해 데이터 송신들의 하나의 또는 그 이상의 라운드들을 실행한다. 일반적으로, 데이터 송신의 각각의 연속 라운드는 소스 컴퓨팅 디바이스(102)에 의해 재송신될 더 적은 수의 데이터 블록들을 포함할 것이다.
이제 도 4를 참조하면, 소스 컴퓨팅 디바이스(102)로부터 데이터를 수신하기 위한 방법은, 각각의 싱크 컴퓨팅 디바이스(110)가 소스 컴퓨팅 디바이스(102)와 핸드셰이크하는 블록(402)으로 시작한다. 블록(402)에서, 상술된 바와 같이, 컴퓨팅 디바이스들(102, 110)은 싱크 컴퓨팅 디바이스들(110)에 데이터를 송신 및/또는 싱크 컴퓨팅 디바이스들(110)이 데이터 송신들을 수신하도록 준비시키기 위한 다른 정보 또는 데이터를 송신하는데 사용될 통신 프로토콜들을 설정할 수 있다. 예를 들면, 일부 실시예들에서, 싱크 컴퓨팅 디바이스들(110)은, 예를 들면, 각각의 싱크 컴퓨팅 디바이스(110)에 의해 수신되어야 할 데이터 블록들의 수 등의, 소스 컴퓨팅 디바이스(102)에 의해 송신될 데이터 파일에 대한 정보를 수신할 수 있다.
블록(404)에서, 싱크 컴퓨팅 디바이스는 데이터 송신들의 현재 라운드가 시작되었는 지를 결정한다. 방법(300)과 관련해서 상술된 바와 같이, 소스 컴퓨팅 디바이스(102)는 데이터 송신들의 한 라운드의 시작을 나타내는 통지 및/또는 다른 데이터, 및 일부 실시예들에서, 예를 들면, 해당 라운드에서 송신될 데이터 블록들의 수 등의 데이터 송신들의 현재 라운드에 관한 데이터를 싱크 컴퓨터들(110)에 송신할 수 있다.
복수의 싱크 컴퓨팅 디바이스들(110)은 블록(406)에서 소스 컴퓨팅 디바이스(102)에 의해 송신된 데이터 블록들을 수신하고, 블록(408)에서 손실된 데이터 블록들의 각각의 버킷 리스트들을 갱신한다. 각각의 싱크 컴퓨팅 디바이스(110)는 현재 라운드 동안 소스 컴퓨팅 디바이스(102)에 의해 송신되었지만 싱크 컴퓨팅 디바이스(110)에 의해 수신되지 않았거나 또는 손상된 상태로 수신된 데이터 블록들의 리스트, 또는 그 표시를 생성 및/또는 갱신하여, 싱크 컴퓨팅 디바이스(110)에 재송신되어야만 하도록 구성된다. 싱크 컴퓨팅 디바이스들(110)은 그들 각자의 메모리(202) 및/또는 데이터 저장소(222)에 버킷 리스트를 저장할 수 있다. 개별 버킷 리스트들은 서로 다양할 수 있으며, 데이터 송신들의 현재 라운드에 기초하여 데이터 블록을 전혀 포함하지 않거나, 또는 하나의 또는 그 이상의 데이터 블록들을 포함할 수 있다. 손실된 데이터 블록들을 나타내기 위해 데이터 블록들에 저장된 특정 데이터는 특정 실시예 및 구현에 따라 변할 수 있다. 예를 들면, 일 실시예에서, 싱크 컴퓨팅 디바이스들(110)은 현재 라운드 동안 손실된 것으로 결정된 각각의 데이터 블록의 패킷 식별 번호를 저장하도록 구성된다.
블록(410)에서, 싱크 컴퓨팅 디바이스들(110)은 라운드가 완료되었는 지를 결정한다. 완료되지 않았으면, 방법(400)은 각각의 싱크 컴퓨팅 디바이스(110)가 소스 컴퓨팅 디바이스(102)로부터 데이터 블록들을 계속해서 수신하거나 또는 달리 수신을 기다리고, 손실된 데이터 블록들의 버킷 리스트를 그에 따라 갱신하는 블록들(406 및 408)로 다시 돌아간다. 그러나, 싱크 컴퓨팅 디바이스들(110)이 소스 컴퓨팅 디바이스(102)로부터 라운드 종료 통지를 수신하면, 방법(400)은 블록(412)으로 진행해서, 각각의 싱크 컴퓨팅 디바이스들(110)은 그의 버킷 리스트가 비어 있는 지를(즉, 현재 데이터 송신 세션 동안 모든 데이터 블록을 수신했는 지를) 결정한다. 그렇다면, 특정 싱크 컴퓨팅 디바이스(110)는 블록(414)에서 소스 컴퓨팅 디바이스(102)로부터의 세션 종료 통지를 기다린다. 그러나, 싱크 컴퓨팅 디바이스(110)가 손실된 데이터 블록들의 버킷 리스트 내의 식별된 적어도 하나의 손실된 데이터 블록을 가지면, 방법(400)은 블록(416)으로 진행하여, 싱크 컴퓨팅 디바이스(110)는 특정 기준들에 기초하여 소스 컴퓨팅 디바이스에 손실된 데이터 블록들의 버킷 리스트를 송신하도록 구성된다.
상술된 바와 같이, 일부 실시예들에서, 싱크 컴퓨팅 디바이스(110)는 소스 컴퓨팅 디바이스(102)로부터 라운드 종료 통지를 수신할 때, 또는 수신한 후에 버킷 리스트를 송신하도록 구성될 수 있다. 그러나, 다른 실시예들에서, 싱크 컴퓨팅 디바이스(110)는 블록(418)에서 디폴트 지연 값에 기초하여 손실된 데이터 블록들의 버킷 리스트를 송신하도록 구성될 수 있다. 이를 위해, 싱크 컴퓨팅 디바이스(110)는 도 5에 도시된 바와 같이 버킷 리스트를 송신하기 위한 방법(500)을 실행할 수 있다. 방법(500)은 싱크 컴퓨팅 디바이스(110)가 소스 컴퓨팅 디바이스(102)로부터 디폴트 지연 값을 수신하는 블록(502)으로 시작한다. 디폴트 지연 값은 싱크 컴퓨팅 디바이스(110)가 그들 각자의 버킷 리스트를 송신한 후에 현재 라운드의 완료 후(예를 들면, 라운드 종료 통지를 수신한 후)의 디폴트 시간 기간을 정의한다. 디폴트 지연 값은 다수의 마이크로초들, 초들, 분들, 또는 다른 시간 측정값으로서 구현될 수 있다. 블록(504)에서, 싱크 컴퓨팅 디바이스(110)는 그것의 특정 버킷 리스트의 크기에 기초하여 그것의 특정 지연 기간을 결정한다. 예를 들면, 일 특정 실시예에서, 각각의 싱크 컴퓨팅 디바이스(110)에 대한 지연 기간이 각자의 버킷 리스트의 크기(예를 들면, 버킷 리스트 내의 식별된 데이터 블록들의 수)로 디폴트 지연 값을 나눔으로써 계산된다. 다음으로, 싱크 컴퓨팅 디바이스(110)는 계산된 지연 기간이 만료할 때 또는 만료한 후에 각자의 버킷 리스트를 송신한다. 이러한 방법으로, 더 큰 버킷 리스트들을 가진 싱크 컴퓨팅 디바이스들이 더 적은 버킷 리스트들을 가진 싱크 컴퓨팅 디바이스들 보다 먼저 그들의 버킷 리스트들을 송신한다. 또한, 싱크 컴퓨팅 디바이스들(110)의 송신 기간들을 분산함으로써, 네트워크 "폭주" 가능성 및 총 지연이 감소될 수 있다.
다시 방법(400)의 블록(416)를 참조하면, 다른 실시예들에서, 싱크 컴퓨팅 디바이스는 블록(420)에서 버킷 리스트의 크기에 기초하여 그의 특정 버킷 리스트를 송신하도록 구성될 수 있다. 이를 위해, 싱크 컴퓨팅 디바이스(110)는 도 6에 도시된 바와 같이 버킷 리스트를 송신하기 위한 방법(600)을 실행할 수 있다. 방법(600)은 싱크 컴퓨팅 디바이스(110)가 미리 결정된 버킷 리스트 크기 임계값을 수신하는 블록(602)으로 시작한다. 상술된 바와 같이, 미리 결정된 임계값은 데이터 블록들의 최소수를 정의할 수 있다. 블록(604)에서, 싱크 컴퓨팅 디바이스(110)는 그의 특정 버킷 리스트가 임계값에 대해 미리 결정된 관계를 가지는 지를 결정한다. 예를 들면, 도 6의 일례의 실시예에서, 싱크 컴퓨팅 디바이스(110)는 그의 특정 버킷 리스트가 임계값 보다 더 큰 지를 결정한다. 그러나, 다른 실시예들에서, 싱크 컴퓨팅 디바이스(110)는 블록(604)에서 그의 특정 버킷 리스트가 임계값과 동일한지 또는 임계값 보다 더 작은 지를 결정하도록 구성될 수 있다. 일례의 실시예에서, 싱크 컴퓨팅 디바이스(110)의 버킷 리스트 크기가 임계값 보다 더 크면, 싱크 컴퓨팅 디바이스(110)는 블록(606)에서 소스 컴퓨팅 디바이스(102)에 그의 버킷 리스트를 송신한다. 그러나, 싱크 컴퓨팅 디바이스(110)의 버킷 리스트가 임계값 보다 더 크지 않으면, 싱크 컴퓨팅 디바이스(110)는 현재 라운드 동안 그의 버킷 리스트를 송신하지 않는다. 오히려, 싱크 컴퓨팅 디바이스(110)는 식별된 손실된 데이터 블록들을 그의 버킷 리스트에 보유하고 데이터 송신들의 다음 라운드 동안 그것을 갱신한다. 이러한 방법으로, 임계값 보다 더 큰 버킷 리스트들을 가진 싱크 컴퓨팅 디바이스들(110)만이 그들 각자의 버킷 리스트들을 송신한다. 따라서, 싱크 컴퓨팅 디바이스들(110)에 의한 버킷 리스트들의 송신은 분산되거나 또는 각각의 라운드마다 감소되어서, 네트워크 "폭주 가능성 및 총 지연이 감소될 수 있다.
이제 도 7-9를 참조하면, 소스 컴퓨팅 디바이스(102)로부터 4개의 싱크 컴퓨팅 디바이스들(110)로의 데이터 송신들의 일례의 제1 및 제2 라운드가 도시된다. 도 7에서, 소스 컴퓨팅 디바이스(102)는 복수의 데이터 블록들, B1 내지 Bn으로 구체화된 싱크 컴퓨팅 디바이스(110)에 데이터 파일을 송신한다. 데이터 송신들의 제1 라운드 동안, 제1 싱크 컴퓨팅 디바이스(110)는 데이터 블록들 B1 및 B2를 수신했지만, 데이터 블록들 B3, B4, 및 B5는 수신하지 않았거나 또는 손상된 상태로 수신했다. 이 블록들은 도 7에서 각각 데이터 블록들 X3, X4, 및 X5로 도시되어서, 이들이 제1 싱크 컴퓨팅 디바이스(110)에 대해 손실된 데이터 블록들임을 나타낸다. 제2 싱크 컴퓨팅 디바이스(110)는 데이터 블록들 B1, B2, B4, 및 B5를 수신했지만, 데이터 블록 B3은 손실되었다. 제3 싱크 컴퓨팅 디바이스(110)는 데이터 블록들 B2, B3, 및 B5를 수신했지만, 데이터 블록들 B1 및 B4가 손실되었다. 또한, 제4 싱크 컴퓨팅 디바이스(110)는 데이터 송신들의 제1 라운드 동안 모든 데이터 블록들을 수신했다.
데이터 송신들의 제1 라운드 후의 싱크 컴퓨팅 디바이스들(110) 각각에 대한 각자의 버킷 리스트들이 도 8에 도시되어 있다. 제1 컴퓨팅 디바이스(110)의 버킷 리스트(801)는, 데이터 송신들의 제1 라운드 중에 손실된 것으로 제1 컴퓨팅 디바이스(110)가 결정한, 데이터 블록들 B3 (X3), B4 (X4), B5 (X5), 및 임의의 추가 데이터 블록들, Xn의 표시 또는 식별을 포함한다. 유사하게, 제2 컴퓨팅 디바이스의 버킷 리스트(802)는 제2 싱크 컴퓨팅 디바이스(110)에 의해 손실된 것으로 결정된 데이터 블록 B3 및 임의의 추가 데이터 블록들의 표시 또는 식별을 포함한다. 제3 싱크 컴퓨팅 디바이스(110)의 버킷 리스트(803)는 제3 싱크 컴퓨팅 디바이스(110)에 의해 손실된 것으로 결정된 데이터 블록들 B1 및 B4 및 임의의 추가 데이터 블록들의 표시 또는 식별을 포함한다. 제4 컴퓨팅 디바이스(110)의 버킷 리스트(804)는 비어 있다. 비어 있지 않은 버킷 리스트를 가진 각각의 컴퓨팅 디바이스(110)는 상술된 하나의 또는 그 이상의 기준들(예를 들면, 라운드 종료 통지의 수신, 디폴트 지연 값, 버킷 리스트의 크기 등)에 기초하여 소스 컴퓨팅 디바이스(102)에 각자의 버킷 리스트를 송신한다.
다음으로, 도 9에 도시된 바와 같이, 소스 컴퓨팅 디바이스(102)는 컴퓨팅 디바이스들(110)로부터 수신된 버킷 리스트들을 종합해서 데이터 송신들의 제2 라운드를 개시한다. 데이터 송신들의 제2 라운드는 종합 버킷 리스트들에 기초한다. 예를 들면, 일례의 실시예에서, 소스 컴퓨팅 디바이스(102)는 데이터 블록들 B1, B3, B4, B5 등을 재송신한다. 이와 같이 하여, 소스 컴퓨팅 디바이스(102)는 보고 싱크 컴퓨팅 디바이스들(110) 중 하나 또는 그 이상에 의해 손실된 것으로 식별된 데이터 블록들만을 재송신한다. 재송신된 데이터 블록들은 싱크 컴퓨팅 디바이스들(110)에 의해 수신되고, 싱크 컴퓨팅 디바이스들(110)은 특정 데이터 블록들을 수신했는지 또는 수신하지 않았는 지에 기초하여 그들 각자의 버킷 리스트들을 갱신한다. 각각의 싱크 컴퓨팅 디바이스(110)가 데이터 파일이 싱크 컴퓨팅 디바이스들(110) 각각에 성공적으로 송신되었음을 나타내는 유효 데이터 블록들의 전체 집합을 가질 때까지, 소스 컴퓨팅 디바이스(102)는 데이터 송신의 연속 라운드들을 실행할 수 있다.
본 발명이 도면들 및 상술된 설명에서 상세히 도시 및 기술되었지만, 이러한 도시 및 기술은 특징상 한정이 아닌 예시적인 것으로 생각되어야 하며, 오직 일례의 실시예들만이 도시 및 기술되었고 본 발명의 원리 내에 속한 모든 변화들 및 변경들이 보호되는 것이 바람직함을 알 것이다. 예를 들면, 시스템(100)이 일반적으로 "일대다" 데이터 통신에서 사용되기 위한 것으로 상술되었지만, 상술된 시스템, 디바이스들, 및 방법들은 "일대일 데이터" 통신들에도 동일하게 적용될 수 있음을 알아야만 한다. 이러한 실시예들에서, 컴퓨팅 디바이스 그룹(104)은 본 명세서에 기술된 방법들 및 디바이스들을 사용해서 소스 컴퓨팅 디바이스(102)로부터 "일대일" 데이터 통신들을 수신하는, 단일 싱크 컴퓨팅 디바이스(110)를 포함할 수 있다.

Claims (25)

  1. 소스 컴퓨팅 디바이스로부터 복수의 싱크(sink) 컴퓨팅 디바이스들로의 데이터 송신들의 제1 라운드를 개시해서, 복수의 데이터 블록들을 상기 싱크 컴퓨팅 디바이스들에 송신하는 단계;
    각각의 싱크 컴퓨팅 디바이스에서, 각각의 싱크 컴퓨팅 디바이스에 대한 상기 복수의 데이터 블록들 중 손실된 데이터 블록들의 리스트를 생성하는 단계;
    상기 데이터 송신들의 제1 라운드의 완료 후에 상기 손실된 데이터 블록들의 리스트를 각각의 싱크 컴퓨팅 디바이스로부터 상기 소스 컴퓨팅 디바이스에 송신하는 단계 - 상기 손실된 데이터 블록들의 리스트를 송신하는 단계는, 손실된 데이터 블록들의 더 작은 리스트를 갖는 제2 싱크 컴퓨팅 디바이스로부터의 손실된 데이터 블록들의 리스트를 송신하기 전에 먼저 손실된 데이터 블록들의 더 큰 리스트를 갖는 제1 싱크 컴퓨팅 디바이스로부터의 손실된 데이터 블록들의 리스트를 송신하는 단계를 포함함 -; 및
    상기 소스 컴퓨팅 디바이스로부터 상기 복수의 싱크 컴퓨팅 디바이스들로의 데이터 송신들의 제2 라운드를 개시해서, 상기 싱크 컴퓨팅 디바이스들로부터 수신된 상기 손실된 데이터 블록들의 리스트에 의해 식별된 데이터 블록들을 재송신하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 손실된 데이터 블록들의 리스트를 생성하는 단계는 상기 복수의 데이터 블록들 중 상기 각각의 싱크 컴퓨팅 디바이스에 의해 수신되지 않았거나 또는 상기 각각의 싱크 컴퓨팅 디바이스에 의해 손상된 상태로 수신된 데이터 블록들의 식별의 표시를 포함하는 리스트를 생성하는 단계를 포함하는 방법.
  3. 제1항에 있어서,
    상기 손실된 데이터 블록들의 리스트를 송신하는 단계는 상기 손실된 데이터 블록들의 리스트가 비어 있지 않은 경우에만 상기 손실된 데이터 블록들의 리스트를 송신하는 단계를 포함하는 방법.
  4. 제1항에 있어서,
    상기 손실된 데이터 블록들의 리스트를 송신하는 단계는 데이터 송신들의 한 라운드의 완료 후의 지연 기간에 기초하여 상기 손실된 데이터 블록들의 리스트를 송신하는 단계를 포함하는 방법.
  5. 제4항에 있어서,
    상기 소스 컴퓨팅 디바이스로부터 각각의 싱크 컴퓨팅 디바이스에 디폴트 지연 값을 송신하는 단계를 더 포함하는 방법.
  6. 소스 컴퓨팅 디바이스로부터 복수의 싱크(sink) 컴퓨팅 디바이스들로의 데이터 송신들의 제1 라운드를 개시해서, 복수의 데이터 블록들을 상기 싱크 컴퓨팅 디바이스들에 송신하는 단계;
    각각의 싱크 컴퓨팅 디바이스에서, 각각의 싱크 컴퓨팅 디바이스에 대한 상기 복수의 데이터 블록들 중 손실된 데이터 블록들의 리스트를 생성하는 단계;
    상기 소스 컴퓨팅 디바이스로부터 각각의 싱크 컴퓨팅 디바이스에 디폴트 지연 값을 송신하는 단계;
    각각의 싱크 컴퓨팅 디바이스에서, 상기 디폴트 지연 값에 기초하여 상기 각각의 싱크 컴퓨팅 디바이스에 대한 지연 기간을 결정하는 단계;
    상기 데이터 송신들의 제1 라운드의 완료 후의 상기 지연 기간에 기초하여 상기 손실된 데이터 블록들의 리스트를 각각의 싱크 컴퓨팅 디바이스로부터 상기 소스 컴퓨팅 디바이스에 송신하는 단계; 및
    상기 소스 컴퓨팅 디바이스로부터 상기 복수의 싱크 컴퓨팅 디바이스들로의 데이터 송신들의 제2 라운드를 개시해서, 상기 싱크 컴퓨팅 디바이스들로부터 수신된 상기 손실된 데이터 블록들의 리스트에 의해 식별된 데이터 블록들을 재송신하는 단계
    를 포함하는 방법.
  7. 제6항에 있어서,
    상기 지연 기간은 상기 각각의 싱크 컴퓨팅 디바이스의 상기 손실된 데이터 블록들의 리스트 내의 데이터 블록들의 수에 의해 나누어진 디폴트 지연 값과 동일한 방법.
  8. 제1항에 있어서,
    상기 손실된 데이터 블록들의 리스트를 송신하는 단계는 상기 각각의 싱크 컴퓨팅 디바이스의 상기 손실된 데이터 블록들의 리스트 내의 식별된 데이터 블록들의 수에 기초하여 상기 손실된 데이터 블록들의 리스트를 송신하는 단계를 포함하는 방법.
  9. 제8항에 있어서,
    상기 소스 컴퓨팅 디바이스로부터 각각의 싱크 컴퓨팅 디바이스에 임계값을 송신하는 단계를 더 포함하고, 상기 임계값은 미리 결정된 최소 리스트 크기를 정의하는 방법.
  10. 제9항에 있어서,
    상기 손실된 데이터 블록들의 리스트를 송신하는 단계는 상기 각각의 리스트내의 식별된 데이터 블록들의 수가 상기 임계값보다 더 큰 경우에만 각각의 싱크 컴퓨팅 디바이스로부터의 상기 손실된 데이터 블록들의 리스트를 송신하는 단계를 포함하는 방법.
  11. 제1항에 있어서,
    상기 데이터 송신들의 제1 라운드의 완료시에 상기 소스 컴퓨팅 디바이스로부터 각각의 싱크 컴퓨팅 디바이스에 라운드 종료 통지를 송신하는 단계를 더 포함하는 방법.
  12. 제1항에 있어서,
    상기 복수의 싱크 컴퓨팅 디바이스들 중 제1 싱크 컴퓨팅 디바이스를 이용하여 상기 복수의 데이터 블록들 중 적어도 하나의 데이터 블록을 수신하는 단계를 더 포함하고,
    상기 손실된 데이터 블록들의 리스트를 생성하는 단계는, 상기 제1 싱크 컴퓨팅 디바이스에서, 상기 적어도 하나의 데이터 블록에 기초하여 상기 손실된 데이터 블록들의 리스트를 갱신하는 단계를 포함하는 방법.
  13. 제1항에 있어서,
    상기 소스 컴퓨팅 디바이스에서, 상기 싱크 컴퓨팅 디바이스들로부터 수신된 상기 손실된 데이터 블록들의 리스트들을 종합함으로써 손실된 데이터 블록들의 주 리스트(master list)를 생성하는 단계를 더 포함하는 방법.
  14. 제1항에 있어서,
    각각의 싱크 컴퓨팅 디바이스에 대한 상기 손실된 데이터 블록들의 리스트가 빌(empty) 때까지
    상기 싱크 컴퓨팅 디바이스들에서, 상기 각각의 싱크 컴퓨팅 디바이스에 대한 상기 복수의 데이터 블록들 중 손실된 데이터 블록들의 새로운 리스트를 생성하는 단계;
    각각의 새로운 리스트가 비어 있지 않은 경우 상기 싱크 컴퓨팅 디바이스들로부터의 손실된 데이터 블록들의 각각의 새로운 리스트를 송신하는 단계; 및
    상기 소스 컴퓨팅 디바이스로부터 상기 복수의 싱크 컴퓨팅 디바이스로의 데이터 송신들의 새로운 라운드를 개시해서 상기 손실된 데이터 블록들의 새로운 리스트에 의해 식별된 데이터 블록들을 재송신하는 단계
    를 반복하는 단계를 더 포함하는 방법.
  15. 컴퓨팅 디바이스로서,
    프로세서; 및
    상기 프로세서에 의해 실행될 때, 상기 프로세서가
    소스 컴퓨팅 디바이스로부터의 데이터 송신들의 제1 라운드의 통지를 수신하고;
    상기 데이터 송신들의 제1 라운드에 기초하여 손실된 데이터 블록들의 리스트를 생성하며 - 상기 손실된 데이터 블록들의 리스트는 상기 데이터 송신들의 제1 라운드 중에 상기 컴퓨팅 디바이스에 의해 수신되지 않았거나 또는 손상된 상태로 수신된, 상기 소스 컴퓨팅 디바이스에 의해 송신된 데이터 블록들을 식별함 - ;
    상기 데이터 송신들의 제1 라운드가 완료했다는 통지의 수신에 응답해서 상기 소스 컴퓨팅 디바이스에 상기 손실된 데이터 블록들의 리스트를 송신하고 - 상기 손실된 데이터 블록들의 리스트를 송신하는 것은, 손실된 데이터 블록들의 더 작은 리스트를 갖는 다른 컴퓨팅 디바이스보다 먼저 상기 컴퓨팅 디바이스가 상기 손실된 데이터 블록들의 리스트를 송신하도록, 상기 손실된 데이터 블록들의 리스트의 크기에 기초하여 상기 손실된 데이터 블록들의 리스트를 송신하는 것을 포함함 -;
    상기 소스 컴퓨팅 디바이스로부터의 데이터 송신의 제2 라운드의 통지를 수신하게 - 상기 데이터 송신들의 제2 라운드는 상기 손실된 데이터 블록들의 리스트에 기초함 -
    하는 복수의 명령들을 저장한 메모리 디바이스
    를 포함하는 컴퓨팅 디바이스.
  16. 제15항에 있어서,
    상기 복수의 명령들은 또한 상기 프로세서가
    상기 데이터 송신들의 제1 라운드 중에 송신된 제1 데이터 블록을 수신하고;
    상기 제1 데이터 블록의 수신에 응답해서 상기 소스 컴퓨팅 디바이스에 확인응답 송신을 보내지 않고 상기 데이터 송신들의 제1 라운드 중에 송신된 제2 데이터 블록을 수신하게
    하는 컴퓨팅 디바이스.
  17. 제15항에 있어서,
    상기 손실된 데이터 블록들의 리스트의 송신은 상기 데이터 송신들의 제1 라운드가 완료했다는 통지의 수신 후에 개시된 지연 기간의 만료 후의 상기 손실된 데이터 블록들의 리스트의 송신을 포함하는 컴퓨팅 디바이스.
  18. 컴퓨팅 디바이스로서,
    프로세서; 및
    상기 프로세서에 의해 실행될 때, 상기 프로세서가
    소스 컴퓨팅 디바이스로부터의 데이터 송신들의 제1 라운드의 통지를 수신하고;
    상기 소스 컴퓨팅 디바이스로부터 디폴트 지연 값을 수신하고;
    상기 데이터 송신들의 제1 라운드에 기초하여 손실된 데이터 블록들의 리스트를 생성하며 - 상기 손실된 데이터 블록들의 리스트는 상기 데이터 송신들의 제1 라운드 중에 상기 컴퓨팅 디바이스에 의해 수신되지 않았거나 또는 손상된 상태로 수신된, 상기 소스 컴퓨팅 디바이스에 의해 송신된 데이터 블록들을 식별함 - ;
    상기 손실된 데이터 블록들의 리스트 내의 데이터 블록들의 수로 상기 디폴트 지연 값을 나눔으로써 지연 기간을 계산하고;
    상기 데이터 송신들의 제1 라운드가 완료했다는 통지의 수신에 응답해서, 그리고 상기 데이터 송신들의 제1 라운드가 완료했다는 통지를 수신한 후에 개시된 상기 지연 기간의 만료 후에, 상기 소스 컴퓨팅 디바이스에 상기 손실된 데이터 블록들의 리스트를 송신하고;
    상기 소스 컴퓨팅 디바이스로부터의 데이터 송신의 제2 라운드의 통지를 수신하게 - 상기 데이터 송신들의 제2 라운드는 상기 손실된 데이터 블록들의 리스트에 기초함 -
    하는 복수의 명령들을 저장한 메모리 디바이스
    를 포함하는 컴퓨팅 디바이스.
  19. 제15항에 있어서,
    상기 손실된 데이터 블록들의 리스트의 송신은 상기 데이터 블록들의 리스트 내의 데이터 블록들의 수에 기초한 상기 손실된 데이터 블록들의 리스트의 송신을 포함하는 컴퓨팅 디바이스.
  20. 제19항에 있어서,
    상기 복수의 명령들은 또한 상기 프로세서가
    상기 소스 컴퓨팅 디바이스로부터 임계값을 수신하게 하고, 상기 임계값은 데이터 블록들의 최소 수를 정의하며;
    상기 손실된 데이터 블록들의 리스트의 송신은 상기 손실된 데이터 블록들의 리스트 내의 데이터 블록들의 수가 상기 임계값과 미리 결정된 관계를 가지는 경우에만 상기 손실된 데이터 블록들의 리스트를 송신하는 것을 포함하는 컴퓨팅 디바이스.
  21. 복수의 명령들을 포함하는 기계 판독 가능 유형 매체로서,
    상기 복수의 명령들은, 실행에 응답해서, 컴퓨팅 디바이스가
    소스 컴퓨팅 디바이스에 확인응답 송신을 보내지 않고 상기 소스 컴퓨팅 디바이스로부터의 데이터 송신들의 제1 라운드에 기초하여 손실된 데이터 블록들의 리스트를 생성하고 - 상기 손실된 데이터 블록들의 리스트는 상기 컴퓨팅 디바이스에 의해 수신되지 않았거나 또는 손상된 상태로 수신된 데이터 송신들의 라운드 중에 상기 소스 컴퓨팅 디바이스에 의해 송신된 데이터 블록들을 식별함 - ;
    상기 데이터 송신의 라운드의 완료 후에 상기 소스 컴퓨팅 디바이스에 상기 손실된 데이터 블록들의 리스트를 송신해서, 상기 소스 컴퓨팅 디바이스가 상기 손실된 데이터 블록들의 리스트 내의 식별된 데이터 블록들을 재송신하게
    하는 기계 판독 가능 유형 매체.
  22. 제21항에 있어서,
    상기 손실된 데이터 블록들의 리스트의 송신은 상기 데이터 송신의 라운드의 완료 후의 계산된 지연 기간에 기초한 상기 손실된 데이터 블록들의 리스트의 송신을 포함하는 기계 판독 가능 유형 매체.
  23. 제21항에 있어서,
    상기 손실된 데이터 블록들의 리스트의 송신은 미리 결정된 최소 임계값 보다 더 큰 상기 손실된 데이터 블록들의 리스트 내의 데이터 블록들의 수에 응답해서 상기 손실된 데이터 블록들의 리스트를 송신하는 것을 포함하는 기계 판독 가능 유형 매체.
  24. 싱크 컴퓨팅 디바이스에서, 소스 컴퓨팅 디바이스로부터의 데이터 송신들의 제1 라운드를 수신하는 단계 - 상기 데이터 송신들의 제1 라운드는 복수의 데이터 블록들을 포함함 - ;
    상기 싱크 컴퓨팅 디바이스에서, 상기 복수의 데이터 블록들에 기초하여 손실된 데이터 블록들의 리스트를 생성하는 단계;
    상기 데이터 송신들의 제1 라운드의 완료 후에 상기 소스 컴퓨팅 디바이스에 상기 손실된 데이터 블록들의 리스트를 송신하는 단계 - 상기 손실된 데이터 블록들의 리스트를 송신하는 단계는, 손실된 데이터 블록들의 더 작은 리스트를 갖는 다른 컴퓨팅 디바이스보다 먼저 상기 컴퓨팅 디바이스가 상기 손실된 데이터 블록들의 리스트를 송신하도록, 상기 손실된 데이터 블록들의 리스트의 크기에 기초하여 상기 손실된 데이터 블록들의 리스트를 상기 소스 컴퓨팅 디바이스에 송신하는 단계를 포함함 -; 및
    상기 싱크 컴퓨팅 디바이스에서, 상기 소스 컴퓨팅 디바이스로부터의 데이터 송신들의 제2 라운드를 수신하는 단계 - 상기 데이터 송신들의 제2 라운드는 상기 손실된 데이터 블록들의 리스트에 적어도 부분적으로 기초함 -
    를 포함하는 방법.
  25. 제24항에 있어서,
    상기 손실된 데이터 블록들의 리스트를 송신하는 단계는 상기 데이터 블록들의 리스트 내의 식별된 데이터 블록들의 수에 기초하여 상기 손실된 데이터 블록들의 리스트를 송신하는 단계를 포함하는 방법.
KR1020127012491A 2009-12-17 2009-12-17 감소된 네트워크 오버헤드로 일대다 데이터 송신들을 용이하게 하기 위한 방법 및 시스템 KR101412422B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2009/001479 WO2011072422A1 (en) 2009-12-17 2009-12-17 Method and system for facilitating one-to-many data transmissions with reduced network overhead

Publications (2)

Publication Number Publication Date
KR20120083457A KR20120083457A (ko) 2012-07-25
KR101412422B1 true KR101412422B1 (ko) 2014-06-25

Family

ID=44166706

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127012491A KR101412422B1 (ko) 2009-12-17 2009-12-17 감소된 네트워크 오버헤드로 일대다 데이터 송신들을 용이하게 하기 위한 방법 및 시스템

Country Status (6)

Country Link
US (2) US8977772B2 (ko)
EP (2) EP3096496B1 (ko)
JP (1) JP5709320B2 (ko)
KR (1) KR101412422B1 (ko)
CN (1) CN102652411A (ko)
WO (1) WO2011072422A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160234031A1 (en) * 2015-02-05 2016-08-11 Qualcomm Incorporated Centralized Application Level Multicasting with Peer-Assisted Application Level Feedback for Scalable Multimedia Data Distribution in WiFi Miracast
CN105045224B (zh) * 2015-05-29 2017-10-03 珠海格力电器股份有限公司 数据传输的方法和装置
US9823984B2 (en) * 2015-06-25 2017-11-21 Intel Corporation Remapping of memory in memory control architectures
WO2018045512A1 (zh) * 2016-09-07 2018-03-15 海能达通信股份有限公司 一种数据组呼方法、装置及系统
TWI635396B (zh) * 2016-12-23 2018-09-11 英業達股份有限公司 使用兩階記憶體處理封包資料之資料傳輸系統、資料接收方法、及資料傳送方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060120248A (ko) * 2004-02-13 2006-11-24 노키아 코포레이션 손실 부분들의 식별 및 재전송
KR20070010037A (ko) * 2004-03-29 2007-01-19 노키아 코포레이션 멀티캐스트/브로드캐스트 데이터 배포를 위한 데이터 복구강화

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3831202B2 (ja) 2000-06-05 2006-10-11 三菱電機株式会社 無線通信システム、無線基地局、無線端末、および無線マルチキャスト通信制御方法
JP2002124992A (ja) * 2000-08-10 2002-04-26 Kddi Corp マルチキャストによるデータファイル配信方法
US7047309B2 (en) * 2000-08-23 2006-05-16 International Business Machines Corporation Load balancing and dynamic control of multiple data streams in a network
US20020099838A1 (en) 2001-01-22 2002-07-25 Donia Sebastian Method for allocating receive buffers to accommodate retransmission scheme in wireless computer networks
US6807578B2 (en) * 2001-03-14 2004-10-19 International Business Machines Corporation Nack suppression for multicast protocols in mostly one-way networks
US20040165596A1 (en) * 2001-08-01 2004-08-26 Garcia Javier Romero Apparatus and method for flow scheduling based on priorities in a mobile network
US7100078B1 (en) * 2001-11-15 2006-08-29 Network Appliance, Inc. Method and apparatus for restoration of lost blocks in a multicast data transmission
US7546380B2 (en) 2002-10-28 2009-06-09 Cisco Technology, Inc. RPF multi-party reliable transport
CN100417251C (zh) 2002-11-08 2008-09-03 中兴通讯股份有限公司 基于随路控制命令的数据下载方法
US20070115814A1 (en) * 2003-03-29 2007-05-24 Regents Of The University Of California, The Method and apparatus for improved data transmission
CN1277374C (zh) 2003-09-29 2006-09-27 中兴通讯股份有限公司 通信系统中基站与服务器数据库实时同步方法
US20050249231A1 (en) 2003-11-25 2005-11-10 Asif Khan Methods and systems for reliable distribution of media over a network
US7296205B2 (en) * 2004-02-18 2007-11-13 Nokia Corporation Data repair
US7536622B2 (en) * 2004-03-29 2009-05-19 Nokia Corporation Data repair enhancements for multicast/broadcast data distribution
JP2006060408A (ja) * 2004-08-18 2006-03-02 Nippon Telegr & Teleph Corp <Ntt> 無線パケット通信方法および無線局
US20060146822A1 (en) * 2004-12-30 2006-07-06 Mikolaj Kolakowski System, protocol and associated methods for wireless multimedia distribution
MX2007013829A (es) * 2005-05-03 2008-02-05 Nokia Corp Retroalimentacion de planeacion de cliente durante sesiones de transferencia de flujo.
JP2009515401A (ja) * 2005-11-04 2009-04-09 ノキア コーポレイション マルチキャスト及び/又は同報肯定応答機構
US7636767B2 (en) * 2005-11-29 2009-12-22 Cisco Technology, Inc. Method and apparatus for reducing network traffic over low bandwidth links
CN1937553B (zh) 2006-05-11 2010-05-12 蓝汛网络科技(北京)有限公司 基于流媒体数据帧的对等网络数据调度方法
WO2008029793A1 (fr) 2006-09-05 2008-03-13 Nec Corporation Procédé de récupération de paquets, système de communication, dispositif de traitement d'informations et programme
US20080056263A1 (en) * 2006-09-06 2008-03-06 Vinit Jain Efficient transport layer processing of incoming packets
JP4859987B2 (ja) * 2007-03-06 2012-01-25 トムソン ライセンシング 適応的でスケーラブルなパケット誤り訂正装置及び方法
US8018933B2 (en) * 2007-06-27 2011-09-13 Microsoft Corporation Reliable multicast with automatic session startup and client backfil support
CN101127702A (zh) 2007-08-02 2008-02-20 北京航空航天大学 用于平面结构网络的多对多可靠组播错误恢复方法
FR2921529B1 (fr) * 2007-09-21 2009-11-13 Alcatel Lucent Procede de transmission de donnees depuis une infrastructure d'un reseau de radiocommunication vers des equipements utilisateur, et equipements pour la mise en oeuvre du procede
JP4936469B2 (ja) * 2008-01-24 2012-05-23 パナソニック株式会社 通信システム
EP2484040B1 (en) * 2009-10-02 2018-03-07 Telefonaktiebolaget LM Ericsson (publ) Method for retransmission using checksums for identifying lost data packets
US9461835B2 (en) * 2011-04-08 2016-10-04 International Business Machines Corporation Multicast bulk transfer system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060120248A (ko) * 2004-02-13 2006-11-24 노키아 코포레이션 손실 부분들의 식별 및 재전송
KR20070010037A (ko) * 2004-03-29 2007-01-19 노키아 코포레이션 멀티캐스트/브로드캐스트 데이터 배포를 위한 데이터 복구강화

Also Published As

Publication number Publication date
CN102652411A (zh) 2012-08-29
EP3096496A1 (en) 2016-11-23
US20120210016A1 (en) 2012-08-16
US8977772B2 (en) 2015-03-10
EP2514144B1 (en) 2018-06-27
WO2011072422A1 (en) 2011-06-23
JP2013512628A (ja) 2013-04-11
JP5709320B2 (ja) 2015-04-30
EP3096496B1 (en) 2018-03-14
EP2514144A4 (en) 2014-09-24
KR20120083457A (ko) 2012-07-25
US10503599B2 (en) 2019-12-10
US20150220399A1 (en) 2015-08-06
EP2514144A1 (en) 2012-10-24

Similar Documents

Publication Publication Date Title
US11934340B2 (en) Multi-path RDMA transmission
US10891253B2 (en) Multicast apparatuses and methods for distributing data to multiple receivers in high-performance computing and cloud-based networks
US20200358857A1 (en) Data transmission method, system and proxy server
US10503599B2 (en) Method and system for facilitating one-to-many data transmissions with reduced network overhead
US20090113082A1 (en) Device, System, and Method of Speculative Packet Transmission
JP5357339B2 (ja) アクセス・ポイントの輻輳検出及び低減のための方法及びシステム
JP5331898B2 (ja) 並列計算用の通信方法、情報処理装置およびプログラム
US20190173960A1 (en) Method, device and computer program product for protocol selection
CN104247322A (zh) 减少存在通信错误时的总线争用的可变确认率
CN103763217A (zh) 多路径tcp的分组调度方法和装置
JP4644253B2 (ja) モバイルスケーラブルリンク(msl)アーキテクチャのための転送肯定応答
US8630837B2 (en) Multicast emulation
CN109586931B (zh) 组播方法及终端设备
TWI667902B (zh) 傳輸資源的指示方法、裝置及存儲媒介
CN106130699B (zh) 有助于具有降低网络开销的一对多数据传输的方法和系统
CN109831485A (zh) 一种激光雷达的数据通信与解析方法
WO2024120344A1 (zh) 一种有线串行总线数据传输方法、系统及相关装置
JP5775123B2 (ja) アクセス・ポイントの輻輳検出及び低減のための記憶媒体及びシステム
WO2024032599A1 (zh) 会话绑定方法及功能、存储介质及电子设备
KR950013138B1 (ko) 교실망에서의 프로그램 전송방법

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: 20170601

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180529

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190530

Year of fee payment: 6