KR20060048144A - 피어-투-피어 컴퓨터 네트워크에서의 효율적인 일대다콘텐츠 배포 방법 - Google Patents

피어-투-피어 컴퓨터 네트워크에서의 효율적인 일대다콘텐츠 배포 방법 Download PDF

Info

Publication number
KR20060048144A
KR20060048144A KR1020050044990A KR20050044990A KR20060048144A KR 20060048144 A KR20060048144 A KR 20060048144A KR 1020050044990 A KR1020050044990 A KR 1020050044990A KR 20050044990 A KR20050044990 A KR 20050044990A KR 20060048144 A KR20060048144 A KR 20060048144A
Authority
KR
South Korea
Prior art keywords
content
node
peer
nodes
blocks
Prior art date
Application number
KR1020050044990A
Other languages
English (en)
Other versions
KR101109246B1 (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 KR20060048144A publication Critical patent/KR20060048144A/ko
Application granted granted Critical
Publication of KR101109246B1 publication Critical patent/KR101109246B1/ko

Links

Images

Classifications

    • 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/1877Measures taken prior to transmission
    • 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
    • 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
    • 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/1854Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
    • 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
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1076Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/165Combined use of TCP and UDP protocols; selection criteria therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Telephonic Communication Services (AREA)

Abstract

피어-투-피어 네트워크를 통해 콘텐츠를 배포하여 네트워크의 잠재적인 최대 처리량을 달성하는 콘텐츠 배포 방법 및 시스템. 콘텐츠 배포 방법은 배포할 콘텐츠를 다수의 작은 블럭들로 분할한다. 콘텐츠 블럭들 각각은 콘텐츠-요청 노드, 콘텐츠-비요청 노드, 또는 소스 노드가 될 수 있는 임의의 노드에 할당된다. 콘텐츠는 더 많은 용량을 가진 노드들은 더 많은 개수의 콘텐츠 블럭들을 할당받고, 더 적은 용량을 가진 노드들은 더 적은 개수의 콘텐츠 블럭들을 할당받게 되는 노드의 용량에 기반하여 할당된다. 용량은 일반적으로 노드의 업로드 대역폭에 의하여 정의된다. 재배포 큐들은 배포 처리량을 제어하는데 활용된다. 이런 대역폭 제어 전략은 패킷 손실 및 전송 지터들과 같은 네트워크 장애가 발생할 때도 피어 및 소스 노드들의 업로드 대역폭들이 최대로 이용되도록 보장한다.
일대다 콘텐츠 배포, 컴퓨터 네트워크, 처리량

Description

피어-투-피어 컴퓨터 네트워크에서의 효율적인 일대다 콘텐츠 배포 방법{EFFICIENT ONE-TO-MANY CONTENT DISTRIBUTION IN A PEER-TO-PEER COMPUTER NETWORK}
도 1은 일대다 콘텐츠 배포 문제를 예시하는 블럭도.
도 2는 단일 배포 트리를 사용하는 콘텐츠 배포 기술들을 예시하는 블럭도.
도 3은 2가지 애플리케이션 레벨 멀티캐스트 트리 구성을 예시하는 블럭도.
도 4는 3개의 피어 노드의 구성을 실례로서 예시하는 블럭도.
도 5는 본건에 기재된 콘텐츠 배포 시스템 및 방법의 구현을 실례로서 예시하는 블럭도.
도 6은 도 5에 나타난 콘텐츠 배포 시스템 및 방법의 전반적인 동작을 예시하는 흐름도.
도 7은 (콘텐츠-요청 및 콘텐츠-비요청) 피어 노드의 순방향 링크 쓰레드의 동작을 예시하는 상세 흐름도.
도 8은 콘텐츠-수신 피어 노드의 전송 링크 쓰레드의 동작을 예시하는 상세 흐름도.
도 9는 본건에 기재된 콘텐츠 배포 방법에 따른 소스 노드의 동작을 예시하는 상세 흐름도.
도 10은 도 5에 나타난 콘텐츠 배포 방법 및 시스템이 구현될 수 있는 적합한 컴퓨팅 시스템 환경을 실례로서 예시하는 도면.
도 11은 최대 브로드캐스트 용량을 멀티캐스트 라우팅을 사용하여 달성할 수 없음을 예시하는 블럭도.
<도면의 주요 부분에 대한 부호의 설명>
310, 410: 스트립 1
320, 420: 스트립 2
430: 스트립 3
500: 피어-투-피어 네트워크
1030: 시스템 메모리
1031: ROM
1032: RAM
1034, 1044: 운영 체제
1035, 1045: 애플리케이션 프로그램들
1036, 1046: 기타 프로그램 모듈들
1037, 1047: 프로그램 데이터
본 발명은 일반적으로 컴퓨터 네트워킹에 관한 것이며, 특히 전송 처리량을 최대화하는 피어-투-피어 네트워크를 통해 콘텐츠를 배포하는 효율적인 방법 및 시스템에 관한 것이다.
많은 응용에서는, 컴퓨터 네트워크에 있는 임의의 한 컴퓨터가 그 네트워크 상의 수 개의 다른 컴퓨터에게 콘텐츠를 전송하는 일대다 콘텐츠 배포를 요구한다. 이런 응용의 한 예로서, 소프트웨어 배포, 인터넷 TV/비디오 스트리밍, 비디오 회의, 개인용 미디어 배포, 피어-투-피어(P2P) 웹 콘텐츠 복제를 포함한다. P2P 네트워크란 개별 컴퓨터가 동등한 용량과 책임을 갖는 네트워크의 한 유형이다.
도 1은 일대다 콘텐츠 배포 문제를 예시하는 블럭도이다. 네트워크(100)는 배포할 콘텐츠를 소유한 소스 노드 s, 및 콘텐츠 복제를 요청할 수도 않을 수도 있는 다수의 피어 노드들 ti,i = 1,2,...,N 을 포함한다. 소스 노드와 피어 노드들은 모두 최종 사용자 노드들이다. 그들은 통상적으로 비대칭 디지털 가입자 회선(ADSL), 케이블 모뎀, 캠퍼스(campus) 또는 기업(corporate) 네트워크 링크를 사용해 인터넷 서비스 제공자(ISP)를 통해 인터넷에 접속된 컴퓨터들이다. 도 1에 나타난 설정에서 임의의 소스 노드가 콘텐츠를 배포하는 가장 간단한 접근 방법은 소스 노드가 목적지 노드들로 콘텐츠를 직접 전송하게 하는 것이다. 비록 직접 전송을 행하더라도, 콘텐츠 배포의 처리량은 그 소스 노드의 업로드 대역폭에 의해 한정되며, 이는 통상적으로 상당히 제한적이다.
도 1에 보여진 바와 같은 그런 콘텐츠 배포 문제를 해결할 수 있는 한 가지 네트워크 레벨의 해법은 IP 멀티캐스트이다. IP 멀티캐스트에서, 임의의 소스로부터 전송된 임의의 단일 패킷은 소스에서 뻗어나간 임의의 분산 트리에 걸쳐 있는 라우터들에서 복제된다. 이런 방법으로, 콘텐츠는 임의의 다수의 수신자에게 전송된다. IP 멀티캐스트가 효율적인 해법이 될지라도, 이것의 이용은 도메인간(inter-domain) 라우팅 프로토콜, 인터넷 서비스 제공자(ISP) 비지니스 모델, 분산 트리에 걸쳐 있는 혼잡 제어 등과 같은 논점들과 문제들로 인해, 현실 세계에서 활발하지 못했다. 네트워크 레벨의 멀티캐스트 서비스를 활용함에 있어서의 이런 문제들 때문에, 오늘날 인터넷 트래픽의 대부분은 두 컴퓨터가 서로 직접 대화하는 유니캐스트를 기반으로 하고 있다.
이런 네트워크 레벨의 해법은 주어진 이유들로 하여 일반적으로 실행불가능하기 때문에, 다양한 다른 접근 방법들이 개발되어 라우터들 대신에 P2P 컴퓨터들이 소스로부터 콘텐츠를 배포하는 것이 가능하게 되었다. 일반적으로, 가장 전도 유망한 접근 방법은 응용 레벨의 멀티캐스트(ALM:application-level multicast)이다. ALM에서, 임의의 멀티캐스트 분산 트리는 기존의 네트워크 위에 형성되거나 그 위에 오버레이(overlaid)될 수 있다. 멀티캐스트를 프로토콜을 사용하는 것 대신에, 분산 트리에 있는 각각의 피어 컴퓨터는 유니캐스트 프로토콜을 사용하여 오버레이된 네트워크 상에서 패킷 복제, 회원 자격 관리, 콘텐츠 전송을 포함하여 모든 멀티캐스트 관련 기능들을 실행한다.
ALM 시스템의 몇 가지 실례로서 2000년 8월 버클리 소재의 캘리포니아 대학 박사학위 논문인 Y. Chawathe에 의한 "스캐터캐스트(Scattercast): 기반구조(infrastructure) 서비스로서 인터넷 브로드캐스트 배포를 위한 아키텍처"란 제목의 논문에서 기술된 스캐터캐스트와, 2000년 10월 제4차 운영 체제 설계 및 구현에 관한 심포지엄에서 J.Jannotti, D.K.Gifford, K.L.Johnson, M.F. Kaashoek, 및 J.W.O'Toole Jr에 의한 "오버캐스트: 오버레이 네트워크를 갖는 신뢰성있는 멀티캐스팅"이란 제목의 논문에서 기술된 오버캐스트(Overcast)를 포함한다. 스캐터캐스트 및 오버캐스트 모두는 콘텐츠를 배포하는 위해 단일 트리를 사용한다.
도 2는 스캐터캐스트와 오버캐스트에 사용되는 단일 분산 트리(200)를 이용한 콘텐츠 배포 기술들을 예시한 블럭도이다. 이런 구성에서, 소스 노드 s는 노드 t1에 데이터를 전송하고, 노드 t1은 노드 t2와 t3에게 그 데이터를 전달한다. ALM 분산 트리(200)는 중간 노드 t1의 업로드 대역폭을 이용하는 반면, 종단 노드 t2및 t3 의 업로드 대역폭은 이용하지 않는다. 소스 노드가 자신의 콘텐츠를 모든 다른 클라이언트들에게 직접 전송하게 것과 비교해보면, 도 2에 나타난 분산 트리 접근 방법은 소스의 네트워크 부하를 감소시켜서 더욱 효율적인 콘텐츠 배포를 달성하게 한다.
그러나, 스캐터캐스트와 오버캐스트가 갖는 한 가지 문제점은 그것들이 콘텐츠 배포에 있어서 비효율적이다 라는 점이다. 구체적으로 말하면, 분산 트리에서 중간 노드들은 콘텐츠를 재배포하고, 반면에 종단 노드들은 그 콘텐츠를 수신하기만 한다. 이것은 종단 노드들의 업로드 대역폭이 콘텐츠 배포에 이용않고 있다는 것을 의미한다.
이런 비효율성을 극복하기 위해 다수의 시도들이 행해졌다. 이런 기술들은 2002년 3월 USA 메사추세스주(MA) 캠브리지에서 열린 제1회 피어-투-피어 시스템에 관한 국제 워크샵(IPTPS)에서 V. N. Padmanabhan, K. Sripanidkulchai에 의한 "협력적인 네트워킹론"이란 제목의 논문과, 2003년 11월 USA 조지아주(GA) 아틀란타에서 열린 네트워크 프로토콜에 관한 IEEE 국제 컨퍼런스(ICNP)에서 V. N. Padmanabhan, H. J. Wang,및 P. A. Chou에 의한 "복원력있는 피어-투-피어 스트리밍"이란 제목의 논문에 기술된 코프넷(CoopNet)이라 불리는 기술을 포함하고, 2003년 2월 캘리포니아주(CA) 버클리에서 열린 피어-투-피어 시스템에 관한 국제 워크샵에서 M. Castro, P. Druschel, A-M. Kermarrec, A. Nandi, A. Rowstron 및 A. Singh에 의한 "스플릿스트림(SplitStream): 협력적인 환경에서의 고대역폭 콘텐츠 배포"란 제목의 논문에 기술된 스플릿스트림이라 불리는 기술을 포함한다. 이런 기술들 각각은 콘텐츠를 다수의 스트립들로 분할하고, 그 스트립들을 디스조인트(disjoint) 내부 노드를 갖는 분리된 멀티캐스트 트리들에 걸쳐 배포한다. 임의의 피어 컴퓨터는 멀티캐스트 트리들 중 한 트리의 내부 노드가 될 수 있고, 콘텐츠를 전달하는데 기여할 수 있다.
코프넷은 중앙집중식 트리 관리 계획을 이용하는데, 반면에 스플릿스트림은 분산 트리를 유지하는 패스트리(Pastry)에 의존한다. 패스트리는 2001년 11월 독일 하이델베르크(Heidelberg) 분산 시스템 플랫폼(미들웨어)에 관한 IFIP/ACM 국제 컨퍼런스의 329쪽 - 350쪽에서, A. Rowstron 및 P. Druschel 에 의한 "패스트리: 대규모의 피어-투-피어 시스템을 위한 확장가능한 분산 객체 위치 선정 및 경로 설정"이란 제목의 논문에 기술되었다. 코프넷은 패킷 손실과 노드 장애를 방지하기 위해, 다중 기술 부호화(MDC:Multiple Description Conding)와 순방향 오류 정정(FEC:Forward Error Correction)을 또한 이용한다.
도 3은 코프넷과 스플릿스펙트럼에서 사용되는 두 가지 애플리케이션 레벨의 멀티캐스트 트리 구성(300)을 예시한 블럭도이다. 콘텐츠는 두개의 동등한 스트립으로 분할된다. 스트립 1(310)은 노드 t1에 전송되고, 노드 t1은 그 스트립을 노드 t2와 노드 t3에게 전달한다. 스트립 2(320)는 노드 t2 전송되고, 노드 t2는 그 스트립을 노드 t1과 노드 t3에 전송한다. 도 3에서 스트립 1의 배포 경로는 실선으로 표시되고, 스트립 2의 배포 경로는 대시선으로 표시된다는 점에 유의해야 한다. 이것은 이런 링크 상에서 전달되는 콘텐츠가 다르다는 것을 의미한다. 이런 구성의 한 가지 문제점은 시스템(300)이 노드 t1과 노드 t2의 업로드 대역폭은 이용하나 노드 t3의 업로드 대역폭은 이용하지 못하므로 효율을 감소시킨다는 점이다.
이런 비효율성을 극복하기 위해 시도한 다른 기술들은 2003년 3월 26일 ~ 28일 워싱턴 시애틀에서 열린 제4차 인터넷 기술 및 시스템에 관한 USENIX 심포지움에서 L. Cherkasova 와 J. Lee에 의한 "패스트리플리카(FastReplica): 콘텐츠 전송 네트워크 내에서 대용량 파일의 효율적인 배포"란 제목의 논문에서 논의된 패스트리플리카라 불리는 기술과, 2003년 10월 19일 ~ 22일 뉴욕 새그모어에서 열린 제19 차 운영 체제 원리에 관한 ACM 심포지움에서 D. Kostic, A. Rodriguez, J. Albrecht, A. Vahdat에 의한 "불릿(Bullet): 오버레이 메쉬를 사용한 고대역폭 데이터 전송"이란 제목의 논문에서 논의된 불릿이라 불리는 기술을 포함한다. 이런 기술들 모두는 대용량 파일의 효율적이고 신뢰성있는 복제에 관한 쟁점들을 조사하였다. n 개의 노드가 존재할 경우, 패스트리플리카는 먼저 그 파일을 n 개의 동등한 크기의 서브 파일로 분할한다. 그 다음에, 각각의 서브 파일은 그룹 내의 개별 피어들에게 전송되고, 이것은 계속적으로 복제되어 나머지 피어들에게 전송된다. 불릿에서, 피어 노드들은 오버레이 트리로 체계화되어 있다. 각각의 노드는 부모로부터 수신된 콘텐츠를 디스조인트 블럭 집합으로 분할하여, 각 집합을 개별 자식 노드에게 전송하게 된다. 그 다음에 자식 노드들은 사라진 블럭들과 사라진 블럭을 갖고 있는 노드들을 발견해내고, 사라진 블럭들을 회복하기 위한 요청을 전송한다.
패스트리플리카 기술을 자세히 살펴보면서, 이 기술이 구체적으로 말하면 파일 다운로드 용으로 설계되었음에 유의해야 한다. N 노드 P2P 네트워크의 경우, 패스트리플리카는 중간 차수 N-1을 가진 N 높이-2 멀티캐스트 트리들에 파일을 배포한다. 도 4는 한 실례로서 3개의 피어 노드를 가진 패스트리플리카 구성을 한 실례로서 예시한 블럭도이다. 패스트리플리카는 두 단계, 즉 배포 단계와 수집 단계로 파일을 배포한다. 배포 단계에서, 파일은 3개의 서브 파일로 분할되고, (실선, 대시선, 점선을 따라) 노드 t1, t2, 및 t3에 각각 전송된다. 특히, 3개의 서브 파일은 스트립 1(410), 스트립 2(420), 스트립 3(430)을 따라 전송된다. 배포 단계 이후에, 수집 단계가 실행된다. 각 피어 노드는 자신의 서브파일을 다른 피어 노드들에게 전달한다. 도 4에 나타난 바와 같이, 피어 노드들 각각은 패스트리플리카의 콘텐츠 배포에 종사한다.
실제 P2P 콘텐츠 배포 시스템은 비트토런트(BitTorrent)라는 기술을 사용하여 구현되었다. 비트토런트는 B.Cohen에 의한 "동기들이 비트토런트의 강인함을 구축한다"이란 제목의 논문에 기술되어 있으며, 웹 사이트 http://bitconjurer.org/BitTorrent/bittorrentecon.pdf에서 이용가능하다. 비트토런트는 피어들이 콘텐츠의 업로드를 많이 하면 할수록 그 피어들로부터 보다 많은 콘텐츠를 다운로드할 수 있기 때문에 피어들이 기꺼이 콘텐츠를 배포하려고 하는 동기(incentive)를 공유하는 것을 포함한다. 이런 것들은 응용 레벨 멀티캐스트를 위한 많은 최근의 계획들 중 몇 가지 예이다.
상기의 ALM 배포 전략들이 소스로부터 피어들에게 콘텐츠를 직접 전송하는 것보다 더욱 효율적일 수 있을지라도, 그것들은 네트워크에서의 가장 효율적인 콘텐츠 배포를 달성하지는 못한다. 구체적으로 말하면, 상기의 기술 중 어떤 것도 피어 노드들 사이의 대역폭 차이를 적절히 고려하지 않았다. 또한, 각 기술들은 콘텐츠를 배포하기 위해 모든 피어 노드들의 대역폭 자원을 완전히 이용하지 못한다.
상기의 일대다 콘텐츠 배포 접근 방법들 모두는 적절한 네트워크 토폴로지를 구축함으로써 피어 노드들의 용량(피어 노드들의 업로드/다운로드 대역폭)에 적응 하기에 관해 논의하였다. 고대역폭을 가진 노드는 분산 네트워크 중심에 위치하여 더 많은 콘텐츠 배포의 책임을 지게 된다. 일단 네트워크 토폴로지가 구축되면, 콘텐츠는 구축된 네트워크를 통해 고정된 스트립들로 배포된다. 이런 배포 전략들이 갖는 문제점은 분산 네트워크가 (임의의 노드들/링크들에서의 혼잡과 같은) 네트워크 상태 변화에 융통성 있게 적응하기 어렵다란 점이다. 이것은 콘텐츠 배포의 효율을 상당히 감소시킬 수 있다. 그러므로, 컴퓨터 네트워크로부터 최대 잠재력을 실현하기 위해서 가능한 가장 효율적인 방법으로 콘텐츠를 배포하는 일대다 콘텐츠 배포 기술이 필요하다.
본건에 기재된 발명은 피어-투-피어 네트워크를 통해 콘텐츠을 효율적으로 배포하여 전송 처리량을 최대화하는 콘텐츠 배포 방법 및 시스템을 포함한다. 콘텐츠 배포 방법 및 시스템은 현재 일대다 배포 기술들의, 상기 언급한 결함들을 극복한다. 기존의 접근 방법과는 대조적으로, 본 발명의 콘텐츠 배포 방법 및 시스템은 가능한 많은 노드를 콘텐츠를 배포하는 것에 종사시키고, 각 노드의 이용가능한 업로드 대역폭을 완전히 이용함으로써, 그 콘텐츠에 대한 가능한 최대 처리량을 달성한다. 더욱이, 본 발명의 콘텐츠 배포 방법 및 시스템은 일반적인 네트워크 상태에서도 최대 처리량에 부합하도록 콘텐츠 전송 속도를 동적으로 조절할 수 있다.
본 발명의 콘텐츠 배포 방법 및 시스템은 적어도 3가지 독특한 특징들을 포함한다. 첫번째, 본 발명의 콘텐츠 배포 방법 및 시스템은 파일 또는 미디어 스트림인 배포할 콘텐츠를 다수의 작은 블럭들로 분할한다. 그러므로, 임의의 노드에 의해 재배포될 블럭들의 개수는 예를 들어, 노드의 자원(업로드 대역폭)에 비례하게 된다. 업로드 대역폭이 큰 노드가 더 많은 블럭들을 재배포할 수 있고, 업로드 대역폭이 작은 노드가 더 적은 블럭들을 재배포할 수 있다. 둘째로, 본 발명의 콘텐츠 배포 방법 및 시스템에 있어서, 각 콘텐츠 블럭은 재전송을 위해 단일 노드에 할당된다. 재전송에 대한 책임이 있는 노드는 콘텐츠-요청 피어 노드, 콘텐츠-비요청 피어 노드, 또는 심지어 소스 노드 그 자신일 수 있다. 세째로, 노드들 사이의 재배포 큐들을 활용함으로써, 본 발명의 콘텐츠 배포 방법 및 시스템은 네트워크 상태의 동적 변화에 효율적으로 대처할 수 있다. 이로써 본 발명의 콘텐츠 배포 방법 및 시스템은 네트워크에서의 각 로드의 업로드 대역폭, 패킷 손실 및 패킷 지터의 변화에 지속적으로 효율적으로 대응하게 된다.
본 발명의 콘텐츠 배포 방법은 콘텐츠를 다수의 블럭들로 분할하는 단계와, 더 많은 용량을 가진 노드는 더 많은 블럭들을 할당받고 더 적은 용량을 가진 노드는 더 적은 블럭들을 할당받는, 다수의 블럭들 각각을 노드의 용량에 비례하여 노드에게 할당하는 단계를 포함한다. 노드의 용량은 노드의 대역폭, 업로드 대역폭에 의하여 정의될 수 있다. 또는, 노드의 용량은 다른 측정치, 예를 들면, 임계 지연(margin delay), 용량에서 패킷 손실을 제한 값 등을 사용하여 정의될 수 있다. 네트워크는 피어-투-피어 컴퓨터 네트워크가 될 수 있다.
콘텐츠 블럭들의 크기는 컴퓨터 네트워크의 최대 전송 단위(MTU)보다 작을 수 있는데, 어떤 경우에 대략 1 킬로바이트(KB)일 수 있다. 콘텐츠 블럭 크기는 블럭들을 식별하는데 요구되는 오버헤드와 배포의 입도(granularity) 사이의 절충 치가 된다.
본 발명의 이 방법은 노드의 용량 변화에 기반한 블럭들의 동적 재배포를 가능하게 하는 대역폭 제어 전략을 사용한다. 대역폭 제어 전략은 네트워크의 각 노드들 사이에서 재배포 큐들을 이용한다. 큐들은 전송 제어 프로토콜(TCP) 전송 및 수신 버퍼들이거나, 사용자 데이터그램 프로토콜(UDP) 위에 구현된 애플리케이션 버퍼들일 수 있다. TCP와는 다르게, UDP는 버퍼들을 갖지 않는다. 이것은 UDP가 사용될 때, 사용자가 재배포 큐로서 동작하는 부가적인 버퍼들을 구현할 필요가 없다는 것을 의미한다. 본 발명의 방법은 순방향 링크가 콘텐츠 블럭들을 더 이상 재배포시키는 연결(connection)로서 정의되는 노드들 사이의 연결을 더 포함한다. 마찬가지로, 전송 링크는 콘텐츠 블럭들을 더 이상 재배포시키지 않는 연결로서 정의된다.
본 발명을 본 발명의 양상을 예시하는 하기의 설명과 첨부된 도면을 참고로 하여 더 이해할 수 있다. 기타 특징 및 장점은 이것은 실시예로서 본 발명의 원리를 예시한 첨부된 도면과 함께 거론한 하기의 본 발명의 상세한 설명으로부터 분명해질 것이다.
본 발명에 대한 하기의 설명에서, 본 발명이 실행될 수 있는 특정 예를 예시하거나, 본 발명의 일부분을 형성하고 있는 첨부된 도면을 참조한다. 다른 실시예가 이용될 수 있으며, 구조적인 변경도 본 발명의 범위를 벗어나지 않는 한 실시될 수 있다는 것을 이해해야 한다.
1. 도입부
피어-투-피어(P2P) 컴퓨터 네트워크의 현재의 일대다 배포 기술들이 콘텐츠를 소스에서 피어 노드들로 직접 전송하는 것보다 더욱 효율적일지라도, 이런 기술들은 네트워크에서 가장 효율적인 콘텐츠 배포를 달성하지 못한다. 이것은 여러 요인들 때문이다. 한 가지 요인은 이런 현재 기술들 중 어떤 것도 피어 노드들 사이의 대역폭 차이를 적절히 계산하여 이에 적응하지 못하기 때문이다. 다른 요인은 이런 기술들이 콘텐츠를 배포할 때 네트워크 상의 모든 피어 노드들의 대역폭 용량을 완전히 이용하지 못하기 때문이다.
본건에 기재된 콘텐츠 배포 방법 및 시스템은 특히 피어-투-피어 네트에서의 일대다 콘텐츠 배포를 위한 새로운 유형의 전송 메커니즘이다. 이전의 일대다 콘텐츠 배포 접근 방법들과 비교해보면, 본건에 기재된 콘텐츠 배포 방법 및 시스템은 배포할 콘텐츠를 다수의 작은 블럭들로 분할한다. 이로써 더 많은 용량(업로드 대역폭과 같음)을 가진 노드는 더 많은 블럭들을 재배포하게 되고, 더 적은 용량을 가진 노드들은 더 적은 블럭들을 재배포하게 된다. 각 콘텐츠 블럭은 배포를 위해 단일 노드에 할당되고, 책임진 노드는 콘텐츠-요청 피어 노드, 콘텐츠-비요청 피어 노드, 또는 심지어는 소스 노드가 될 수 있다.
배포 처리량은 소스와 피어 노드들 사이의 재배포 큐들에 의해 제어된다. 콘텐츠 배포 방법 및 시스템은 모든 피어 노드들의 업로드 대역폭을 완전히 이용하고, 이로써 전송 처리량을 최대화시킨다. 더욱이, 본 발명의 콘텐츠 배포 방법 및 시스템은 단순하고 융통성이 있다. 이것은 P2P 네트워크에서의 파일/소프트웨어 다운로딩, 미디어 스트리밍, 및 삭제 부호화된 파일 배포에 적용될 수 있다.
2. 총괄 개요
도 5는 본건에 기재된 콘텐츠 배포 시스템 및 방법을 실례로서 예시하는 블럭도이다. 도 5는 단지 콘텐츠 배포 시스템 및 방법이 실행되거나 사용될 수 있는 다수의 방법들 중 임의의 한 방법임에 유의해야 한다.
도 5를 참조하면, 피어-투-피어(P2P) 네트워크(500)가 이런 구현의 실례로서 나타나 있다. 네트워크(500)는 하나의 소스 노드 s와 4개의 피어 노드 t1, t2, t3,및 t4를 포함한다. 피어 노드들 중에서, 노드들 t1, t2, 및 t3는 소스 노드 s로부터 콘텐츠 복제를 요청하여, 콘텐츠-요청 피어 노드로 불린다. 노드 t4는 콘텐츠 복제를 요청하지 않아, 콘텐츠-비요청 피어 노드로 불린다. 본건에 기재된 콘텐츠 배포 시스템 및 방법에 따르면, 피어 노드 t4가 콘텐츠를 요청하지 않을지라도, 이것은 다른 피어 노드들에게 콘텐츠를 배포하는 것을 돕기 위해 그 업로드 대역폭을 계속해서 기여한다는 점에 유의해야 한다.
배포할 콘텐츠는 소스 노드 s에 포함되어 있으며, 다수의 작은 블럭들로 분할되거나 분리된다. 콘텐츠는 파일 또는 미디어 스트림을 포함할 수 있다. 그 다음에, 각 블럭은 재전송을 위한 노드들 중 한 노드에 할당된다. 각 블럭은 단일 노드에만 할당된다. 도 5에 나타나 있는 블럭 1, 2, 3, 및 4와 같은 임의의 블럭 이 재배포를 위한 콘텐츠-수신 피어 노드 t1, t2, 및 t3에 할당될 경우, 그 블럭은 먼저 소스 노드 s에 의해, 할당된 피어 노드(또는 재전송을 책임지고 있는 피어 노드)로 전송된다. 그 다음에 할당된 피어 노드는 그 블럭을 나머지 2개의 피어 노드들에게 전달한다. 실례로서, 도 5에 나타난 블럭 1이 피어 노드 t1에 할당될 경우, 그 다음에 블럭 1은 소스 노드 s에 의해 피어 노드 t1으로 전송되고, 그 다음에 피어 노드 t1은 그 블럭 1을 피어 노드 t2와 t3에 전달한다.
도 5에 나타난 블럭 5, 6,및 7과 같은 임의의 블럭이 재배포를 위해 콘텐츠-비수신 피어 노드 t4에 할당될 경우, 그 블럭은 먼저 소스 노드 s에 의해 피어 노드 t4로 전송된다. 그 다음에 콘텐츠-비수신 피어 노드 t4는 그 블럭을 네트워크(500) 상의 나머지 3개의 피어 노드 t1, t2, 및 t3에게 전달한다. 예를 들면, 도 5에 나타난 블럭 5가 콘텐츠-비수신 피어 노드 t4에 할당된다면, 그 다음에 블럭 5는 소스 노드 s에 의해 피어 노드 t4로 전송되고, 피어 노드 t4는 그 블럭 5를 피어 노드들 t1, t2, 및 t3에 전달한다.
소스 노드 s가 블럭을 직접 배포하는 것을 선택할 수도 있다. 실례로서, 도 5에 나나난 바와 같은 블럭 8은 소스 노드 s에 의해 콘텐츠-요청 피어 노드 t1, t2, 및 t3에 배포된다. 이런 상황에서, 블럭 8은 소스 노드 s에 의해 콘텐츠-요청 피어 노드 t1, t2, 및 t3로 직접 전송된다.
본건에 기재된 콘텐츠 배포 시스템 및 방법은 네트워크(500)의 각각의 노드쌍 사이에 재배포 큐들을 구축한다. 하기에 기술한 바와 같이, 이런 재배포 큐들로 인해 콘텐츠 배포 시스템 및 방법은 대역폭, 패킷 손실, 및 패킷 지터의 변화와 같은 네트워크(500) 상태의 동적 변화에 대처할 수 있게 된다. 재배포 큐는 도 5에서 실선들과 대시선들로 나타나 있다. 노드들 사이의 실선들은 순방향 링크들를 나타내며, 반면에 노드들 사이의 대시선들은 전송 링크들을 나타낸다. 순방향 링크는 재배포할 블럭들을 운반하는 임의의 연결이다. 전송 링크는 블럭들을 더 이상 재배포시키지 않을 연결이다.
3. 동작 개요
도 5에 나타난 콘텐츠 배포 시스템 및 방법의 동작을 이제 논의할 것이다. 도 6은 도 5에 나타난 콘텐츠 배포 시스템 및 방법의 전반적 동작을 예시하는 전체 흐름도이다. 콘텐츠 배포 방법은 배포할 콘텐츠를 입력함으로써 시작된다(박스 600). 상기 인식한 바와 같이, 이런 콘텐츠는 파일 또는 미디어 스트림을 포함할 수 있다. 다음에, 콘텐츠는 다수의 작은 블럭들(박스 610)로 분할되거나 분리된다. 콘텐츠를 다수의 블럭들로 분할하는 단계는 다른 노드들이 다른 수 개의 블럭들을 재배포하게 한다. 그러므로, 임의의 노드에 의해 재배포되는 블럭들 개수는 노드의 용량(업로드 대역폭과 같음)에 비례할 수 있다. 예를 들면, 업로드 대역폭이 큰 노드가 더 많은 수의 블럭들을 재배포할 수 있으며, 반면에 업로드 대역폭이 작은 노드가 더 적은 수의 블럭들을 재배포할 수 있다.
그 다음에, 콘텐츠의 각 블럭은 재전송을 위해 단일 노드에 할당된다(박스 620). 상기의 기술된 바와 같이, 재전송할 책임이 있는 노드는 콘텐츠-요청 피어 노드, 콘텐츠-비요청 피어 노드, 또는 심지어는 소스 노드 그 자신이 될 수 있다. 그 다음에, 노드들 사이의 재배포 큐들이 네트워크의 동적 변화에 대처하기 위해 활용된다(박스 630). 노드들 사이의 이런 재배포 큐들을 활용함으로써, 콘텐츠 배포 방법은 네트워크 상태의 동적 변화를 효율적으로 처리할 수 있다. 실례로서, 네트워크에서의 각 노드의 업로드 대역폭, 패킷 손실 및 패킷 지터의 변동과 같은, 네트워크 상태의 변화를 지속적으로 처리하므로, 만약 노드가 용량 저하를 경험하면 재전송을 위해 그 노드에 할당되었던 콘텐츠 블럭들의 개수가 비례적으로 감소하게 된다.
4. 동작 상세화 및 작동 예시
도 6에 나타난 콘텐츠 배포 방법의 동작에 대해 이제 상세하게 논의할 것이다. 콘텐츠 배포 방법의 기본 배포 프레임워크는 다음과 같다. 배포될 콘텐츠는 블럭들 Bj, j= 1,2,...,M 으로 분할된다. 각 블럭 Bj에 대해 하나의 유일한 노드가 그 콘텐츠 블럭을 나머지 피어 노드들에게 배포하기 위해 할당된다. 이런 유일한 노드는 그 블럭을 재배포할 책임이 있는 노드이다. 빈번히, 블럭 Bj를 재배포할 책임이 있는 노드는 피어 노드 tj이다. 이런 경우, 소스 노드는 그 블럭 Bj의 임의의 한 복제본을 피어 노드 tj에게 전송하고, 그 다음에 피어 노드 tj는 그 블럭의 복제 본을 나머지 피어 노드들에게 전송함으로써 그 블럭 Bj를 재배포한다. 그러나, 소스 노드가 여분의 대역폭 자원을 가지고 있는 경우, 그 블럭 Bj를 재배포할 책임이 있는 노드는 소스 노드 s 그 자신이 될 수 있다. 이 경우에, 소스 노드는 블럭 Bj의 임의의 한 복제본을 각각의 피어 노드 tj에게 직접 전송할 것이다.
콘텐츠 분할
도 6에 관련하여 상기의 인식된 바와 같이, 콘텐츠 배포 방법은 초기에 배포할 콘텐츠를 다수의 작은 블럭들로 분할한다. 노드에 의해 재배포될 블럭의 개수는 그 노드의 용량(또는 자원)에 비례한다. 바람직한 실시예에서, 그 용량은 노드의 업로드 대역폭에 의하여 정의되거나 평가된다. 업로드 대역폭이 큰 노드가 재배포를 위해 콘텐츠 블럭들을 더 많이 부여받을 수 있다. 유사하게, 업로드 대역폭이 작은 노드가 재배포를 위해 콘텐츠 블럭들을 더 적게 부여받을 수 있다.
콘텐츠 배포 방법은 배포를 위해 콘텐츠를 더 많은 수의 더 작은 블럭들로 분할한다. 콘텐츠 블럭의 크기는 배포 입도와 블럭을 식별하는데 요구되는 오버헤드의 절충값이 된다. 소정의 실험적인 실시예에서, 바람직한 콘텐츠 블럭의 크기는 네트워크의 최대 전송 단위(MTU) 보다 약간 작다. 이로써 콘텐츠 블럭이 네트워크를 통해 단일 패킷으로서 전송 가능하다. 이런 실험적인 실시예에서, 콘텐츠 블럭 크기는 1 킬로바이트(KB)로 설정되었다.
배포 경로들
콘텐츠 배포 동안에 각 콘텐츠 블럭은 재배포를 위해 임의의 노드에 할당된다. 피어 노드에 할당된 콘텐츠 블럭들의 개수는 그 용량에 비례하고, 소정의 실험적인 실시예에서는 그 업로드 대역폭에 의해 평가된다. 왜냐하면 네트워크에 대한 피어 노드의 기여도면에서 보면, 피어 노드의 업로드 대역폭이 중요하기 때문에, 업로드 대역폭이 사용된다. 그러므로, P2P 네트워크에서 콘텐츠를 효율적으로 배포하기 위해, 콘텐츠 배포 방법은 피어 노드들의 업로드 대역폭을 가능한 많이 이용해야 한다.
그에 더하여, 콘텐츠 블럭 배포를 위한 배포 속도를 관리하는 일차적인 파라미터는 네트워크 링크의 처리량이다. 클라이언트가 다수의 서버들 중에서 파일을 수신받을 수 있는 서버를 선택할 수 있다면, 둘 사이에서 가장 빠른 네트워크 처리량을 제공하는 서버를 선택할 것이다. 라운드 트립 시간(RTT), 패킷 손실율, 네트워크 지터와 같은 다른 네트워크 파라미터들은 네트워크 링크의 처리량 보다는 관련이 적다. 최종 사용자 노드들로 구성된 네트워크에서, 네트워크는 각 노드에 대한 업로드 대역폭 제한을, 각 노드에 대한 다운로드 대역폭 제한을, 임의의 두 노드들 또는 노드 그룹들 사이에 링크 대역폭 제한을 지정함으로써 특성을 갖을 수 있다. 그러나, 병목 현상이 일반적으로 노드들의 업로드 대역폭에 존재한다.
여기에 기술된 콘텐츠 배포 방법에서, 피어 노드는 다수의 목적지에 콘텐츠를 전송한다. 그러므로, 피어 노드의 출력은 다수의 수신자들 사이에 분할되어 있다. 결과적으로, 두 피어 노드들 사이에 요구되는 링크 대역폭은 전송 노드의 업 로드 대역폭의 일부분일 뿐이므로, 이것이 일반적으로 병목 현상을 일으키지는 않는다. 콘텐츠를 수신하는 노드에 요구되는 다운로드 대역폭은 네트워크의 모든 노드들의 총 이용가능한 업로드 대역폭을 총 수신 노드 개수로 나눈 값보다 항상 작다. 더욱더 일반적인 네트워크에서, 최종 사용자 노드들의 총 업로드 대역폭은 총 다운로드 대역폭보다 훨씬 작다. 이것은 특히 케이블 모뎀이나 ADSL 네트워크 상의 최종 사용자 노드들에 있어서 그러하다. 심지어는 캠퍼스 네트워크 또는 기업 네트워크 상의 사용자 노드들에서도, 다운로드 대역폭은 이용가능한 업로드 대역폭보다 여전히 훨씬 클 수 있는데, 그 이유는 사용자들이 P2P 네트워크 활동에 참가하는 것을 제한하기 위해 업로드 대역폭의 상한선을 정할 수 있기 때문이다. 하기의 논의에서, 수신 노드들은 콘텐츠 배포 방법으로부터 콘텐츠를 수신하기 위해 다운로드 및 링크 대역폭을 충분히 갖는 것으로 한다.
도 5를 다시 참조하면, 피어 노드 t1 및 t2의 업로드 대역폭을 B라 가정하고, 피어 노드 t3의 대역폭을 2B라 하고, 피어 노드 t4의 대역폭을 3B라 하고, 소스 노드의 대역폭을 4B라 하고, 여기서 B는 대역폭 단위라고 가정한다. 소스 노드 및 피어 노드들의 업로드 대역폭을 완전히 이용하는 최적화된 전략이 표 1에 나타나 있다.1
Figure 112005028167294-PAT00001
네트워크가 소스 노드, N1 콘텐츠-요청 피어 노드들(N1 > 1인데, 그렇지 않더라도 별 문제는 없음) 및 N2 콘텐츠-비요청(그러나 참가를 원하는) 피어 노드들을 포함하는 경우, 콘텐츠 배포 방법을 사용하는 네트워크는 중간 차수 N1 - 1의 노드를 갖는 N1 높이-2 트리들(이 중간 노드는 콘텐츠-요청 노드들 중 하나임), 중간 차수 N1 노드를 갖는 N2 높이-2 트리들(이 중간 노드는 콘텐츠-비요청 노드들 중 하나임), 및 모두 소스 노드에 뿌리 내린 차수 N1 노드를 갖는 1 높이-1 트리를 통해 콘텐츠를 배포할 것이다.
콘텐츠 배포 방법 및 시스템에 의해 활용된 이런 네트워크 토폴로지는 상기의 기술한 패스트리플리카 기술과 구별되는 다수의 특징을 가지고 있음에 유의해야 한다. 첫째로, 콘텐츠 배포 방법 및 시스템은 배포 단계 및 수집 단계를 분리하지 않는다. 대신에, 콘텐츠 블럭들은 소스 및 피어 노드들에 의해 계속적으로 배포된다. 둘째로, 콘텐츠 배포 방법에 있어서, 특정 피어 노드들에 의해 재배포될 콘텐츠의 양이 고정되지 않고, 피어 노드들의 용량(업로드 대역폭과 같음)에 따라 가변적이다. 마지막으로, 콘텐츠 배포 방법 및 시스템은 콘텐츠의 재배포에 소스 노드, 및 콘텐츠-요청 피어 노드들을 포함할 수 있다.
콘텐츠 배포 방법은 3가지 경로들을 통해, 즉 1) 콘텐츠-요청 피어 노드들을 통해, 2) 콘텐츠-비요청 피어 노드들을 통해, 3) 소스 노드로부터 직접 콘텐츠를 배포한다. 각 배포 방법은 참가한 노드들로부터 서로 다른 양의 네트워크 자원을 요구한다. 다시, 중요한 고려 사항인 네트워크 자원은 소비되는 업로드 대역폭이다. 콘텐츠 배포 방법을 이용하는 N1 콘텐츠-요청 피어 노드들의 네트워크에서 대역폭 B를 갖는 콘텐츠의 일부분을 배포하기 위해, 첫번째 배포 경로는 소스 노드로부터 업로드 대역폭 B, 각각의 콘텐츠-요청 피어 노드로부터 업로드 대역폭 (N1-1)B 를 요구한다. 두번째 배포 경로는 소스 노드로부터 업로드 대역폭 B, 각각의 콘텐츠-비요청 피어 노드로부터 업로드 대역폭 N1-B 를 요구한다. 세번째 배포 경로는 소스 노드로부터 업로드 대역폭 N1-B 를 요구한다. 그러므로, 콘텐츠 배포 방법은 소스 노드의 업로드 대역폭 부담을 경감시키기 위해 (콘텐츠-요청 피어 노드들 및 콘텐츠-비요청 피어 노드들을 포함한) 피어 노드들의 업로드 대역폭을 이용한다. 이것은 콘텐츠 배포를 최대 속도까지 향상시키는 효과를 갖는다.
동일한 경로의 경우, 네트워크 자원의 소비량은 각 피어 노드의 개별적인 업로드 대역폭에 독립적이다란 점에 유의해야 한다. 그러므로, 대역폭 할당 문제를 각 피어 노드 대신에 각 경로 카테고리에 대하여 고려할 수 있다.
대역폭 할당
콘텐츠 배포 방법 및 시스템을 사용하는 네트워크에서, 가장 소중한 자원은 콘텐츠가 생성되는 소스 노드의 업로드 대역폭이다. 소스 노드의 업로드 대역폭이 모두 사용된 경우, 이용가능한 업로드 대역폭을 가지고 있는 피어 노드들이 존재할지라도 심지어 여전히 콘텐츠 배포는 더 이상 가속될 수 없다. 소스 노드가 전송 링크를 통해 콘텐츠 블럭들을 속도 B로 모든 N1 콘텐츠-요청 피어 노드들에게 전송한다면, 소스의 업로드 대역폭을 N1-B 만큼 소비할 것이 분명하다. 다른 한편으론, 소스 노드가 콘텐츠 블럭들을 속도 B로 임의의 피어 노드 ti에 전송하고, 이 피어 노드가 교대로 그 블럭들을 나머지 콘텐츠-요청 피어 노드들에게 배포하는 경우, 소스 노드의 업로드 대역폭은 B만큼만 필요하다. 분명하게, 하나 이상의 콘텐츠-요청 피어가 있는 한, 소스 노드는 재전송을 위해 가능한 많은 콘텐츠 블럭들을 피어 노드들에게 전달해야 한다. 콘텐츠-요청 피어 노드들과 콘텐츠-비요청 피어 노드들 사이에 콘텐츠-요청 피어 노드들이 효율적인 작은 간선(edge)을 가지므로, 순방향 링크들에 있는 노드들에게 전송된 콘텐츠 블럭들이 낭비되지 않는다. 결과적으로, 상기 개괄적인 3가지 배포 경로들 중에, 가장 선호되는 경로는 (콘텐츠-요청 피어 노드들을 통한) 경로 1이며, (콘텐츠-비요청 피어 노드들을 통한) 경로 2가 그 다음이다. 오직 소스 노드가 여전히 여분의 업로드 대역폭을 갖고 있는 경우에만, 이것은 경로 3을 피어 노드들에게 콘텐츠를 직접 배포하기 위해 선택할 수 있다.
콘텐츠 배포 방법 및 시스템을 사용하는 네트워크는 업로드 대역폭 BS의 소스 노드, 평균 대역폭 B1을 갖는 N1(N1 > 1) 콘텐츠-요청 피어 노드들, 평균 대역폭 B2를 갖는 N2 콘텐츠-비요청 피어 노드들을 포함한다고 가정하라. 상기의 논의된 배포 경로 선택 전략을 적용함으로써, 콘텐츠 배포 방법 및 시스템의 배포 처리량은 초당 콘텐츠-요청 피어 노드들에게 멀티캐스트되는 콘텐츠 양으로 정의되며 다음과 같다.
Figure 112005028167294-PAT00002
수학식(1)은 모든 피어 노드들의 업로드 대역폭이 고갈되기 이전에, 배포 처리량은 소스 노드의 업로드 대역폭까지로 제한된다는 것을 보여주고 있다. 모든 N1 콘텐츠-요청 피어 노드들은 소스 노드의 업로드 대역폭 속도로 콘텐츠를 수신한다. 모든 피어 노드들의 업로드 대역폭이 고갈된 이후에, 배포 처리량은 네트워크의 업로드 대역폭의 합(N1B1+N2B2+BS)에서 콘텐츠-비요청 피어 노드들을 통한 배포에서 낭 비되는 작은 부분(N2B2/N1)을 제한 값의 (1/N1)th 이 된다.
재배포 큐를 통한 배포 경로 선택
배포 경로 우선순위가 상기에서 개략적으로 기술될 바와 같이 구현됨으로서, 소스 및 모든 피어 노드들의 이용가능한 업로드 대역폭을 알 수 있으므로, 임의의 두 피어 노드 사이에 할당된 대역폭을 명확히 계산할 수 있는 것으로 여겨진다. 따라서, 이것은 콘텐츠 블럭들이 배포될 수 있는 방향을 제공한다. 그러나, 배포 양식에 있어서 실시될 수 있는 더욱 단순한 방법도 있다. 큐를 이용하여 임의의 연결 링크의 대역폭을 계산하고, 큐들의 상태에 기반하여 콘텐츠 블럭들의 배포 경로를 선택하는 것을 관리할 수 있다. 이것은 네트워크의 대역폭을 알 수 없는 경우 명확한 대역폭 할당을 달성하게 한다.
콘텐츠 배포 방법의 대역폭 제어 전략은 임의의 한 노드에서 다른 노드로 전송될 콘텐츠를 버퍼링하는 큐를 구축하는 단계를 포함한다. 큐는 임의의 두 노드들 사이의 배포 속도를 제어하는데 사용된다. 콘텐츠 배포 방법의 실험적인 실시예에서, 노드들 간의 링크는 TCP 연결을 통해 구축된다. 그러므로, 재배포 큐들은 TCP 전송 및 수신 버퍼들이다. TCP 사용의 부가적인 장점은 흐름 제어, 신뢰성 있는 데이터 전송, 노드 해제(leave) 이벤트 모두가 TCP에 의해 자동으로 처리된다는 점이다.
재배포될 블럭들을 운반하는 TCP 연결은 순방향 링크로서 불리며, 반면에 더 이상 재배포되지 않을 블럭들을 운반하는 TCP 연결은 전송 링크로 불린다. 하나의 TCP 연결(전송 링크)이 각 피어 노드로부터 모든 다른 콘텐츠-요청 피어 노드로 설정된다. 더욱, 하나의 TCP 연결(순방향 링크)이 소스 노드로부터 모든 콘텐츠-비요청 피어 노드로 설정되고, 두개의 TCP 연결(순방향 링크와 전송 링크)이 소스 노드로부터 모든 콘텐츠-요청 피어 노드들로 설정된다. 그 다음에, 배포 경로를 선택하는 것은 TCP 연결들에서 이용가능한 슬롯들을 찾는 것이 된다.
이제 재전송 프로세스를 소스 및 피어 노드들 관점에서 상세히 논의하겠다. 각 콘텐츠-요청 피어 노드는 적어도 2개의 쓰레드를 포함한다. 한 쓰레드("전송 링크" 쓰레드)는 전송 링크로부터 콘텐츠 블럭들을 수신하고, 반면에 두 번째 쓰레드("순방향 링크" 쓰레드)는 순방향 링크로부터 콘텐츠 블럭들을 수신하여 그것들을 그들의 전송 링크들을 통해 나머지 콘텐츠-비요청 피어 노드들에게 재배포한다. 콘텐츠-비요청 피어 노드들의 경우, 순방향 링크 쓰레드만 동작한다.
도 7은 피어 노드(콘텐츠-요청 피어 노드와 콘텐츠-비요청 피어 노드 둘다 포함)의 순방향 링크 쓰레드의 동작을 예시하는 흐름도이다. 순방향 링크 쓰레드의 반복 루프 마다, 입력 순방향 링크 큐가 비어있는지를 판정한다(박스 700). 만약 비어있다면, 그 다음에 프로세스는 대기한다(박스 710). 그렇지 않다면, 피어 노드는 입력 순방향 링크 큐로부터 하나의 콘텐츠 블럭을 삭제한다(박스 720). 다음에, 노드는 그 콘텐츠 블럭을 모든 다른 콘텐츠-요청 피어 노드들에 관한 출력 전송 링크 큐들에 복제한다(박스 730). 그 다음에, 그 콘텐츠 블럭이 모든 피어 노드들에 대한 큐들에 성공적으로 삽입되었는지 판정한다(박스 740). 그렇지 않으면, 그 다음에 프로세스는 대기하고(박스 750), 그 다음에 실패한 콘텐츠-요청 노 드들에 대해 재시도한다. 성공적으로 삽입되었으면, 반복 과정이 다시 시작된다.
순방향 링크 쓰레드는 이것이 성공적으로 마지막 콘텐츠 블럭을 모든 출력 전송 링크 큐들에 복제할 때까지, 입력 순방향 링크 큐로부터 또 다른 콘텐츠 블럭을 제거하지 않는다는 점에 유의해야 한다. 이런 방법은 가능하게는 피어 노드의 업로드 대역폭 제한치에 도달하여 출력 전송 링크가 차단되는 경우, 피어 노드는 입력 순방향 링크 큐로부터 콘텐츠 블럭을 제거하는 것을 중지한다. 이로써 순방향 링크의 수신 속도를 피어 노드의 업로드 대역폭의 1/Mth 로 효율적으로 규제하는데, 여기서 M은 콘텐츠 블럭이 재배포될 노드 개수를 의미하며, 콘텐츠-요청 피어 노드의 경우 N1-1, 콘텐츠-비요청 피어 노드의 경우 N1이 된다.
도 8은 콘텐츠-수신 피어 노드의 전송 링크 쓰레드의 동작을 예시하는 상세 흐름도이다. 초기에, 도달한 콘텐츠 블럭들이 소스 노드로부터 온 것인지에 대해 판정한다(박스 800). 소스 노드 이외의 노드들로부터 전송 링크를 통해 도달한 콘텐츠 블럭들에 대해, 도달하자 마자 입력 전송 링크 큐로부터 콘텐츠 블럭들을 제거하는 동작을 한다. 첫째로, 입력 전송 링크 큐가 비어있는지에 대해 판정한다(박스 810). 만약 비어있지 않다면, 그 다음에 콘텐츠 블럭은 입력 전송 링크 큐로부터 제거된다(박스 820). 비어있다면, 다음 노드로부터의 콘텐츠가 검사된다(박스 830).
소스 노드로부터의 전송 링크를 통해 도달한 콘텐츠 블럭들의 경우, 순방향 링크의 수신 버퍼가 조사된다(박스 840). 부가적 제한 사항은 동일한 소스 노드로 부터의 순방향 링크의 수신 버퍼 길이가 상기 임의의 한계치를 넘는 경우에만, 콘텐츠 블럭들이 전송 링크 큐로부터 삭제된다는 점이다(박스 850). 그러므로, 버퍼 길이가 상기 한계치를 넘지 않으면, 소스 노드로부터의 전송 링크를 통해 도달한 콘텐츠 블럭은 삭제되지 않는다. 대신에, 다음 노드의 전송 링크가 검사된다(박스 830). 만약 한계치를 넘으면, 전송 링크가 비어있는지에 대해 판정하고(박스 810), 비어있지 않으면 전송 링크로부터 콘텐츠 블럭이 삭제된다(박스 820).
이론적 근거는 전송 링크 및 순방향 링크가 소스 노드로부터 피어 노드로 동일한 네트워크 경로를 공유하는 두 개의 분리된 TCP 연결이라는 점에 두고 있다. 순방향 링크를 통해 전송된 콘텐츠 블럭들은, 그것들이 다른 콘텐츠 수신 피어들에게 재전송될 경우에 높은 우선순위를 가진다. 수신 버퍼 길이 정책은 소스 노드로부터 피어 노드로의 전송 링크가 활성화되기 이전에, 순방향 링크의 대역폭이 적어도 업로드 대역폭의 1/Mth일 것이란 점을 보장한다.
도 9는 본건에 기재된 콘텐츠 배포 방법에 따른 소스 노드의 동작을 예시하는 상세 흐름도이다. 일반적으로, 각 콘텐츠 블럭들 마다, 소스 노드는 재배포 큐의 상태에 기반하여 배포 경로들 중 하나를 선택한다. 경로 선택은 다음의 우선 순위에 기반하여 내려진다. 콘텐츠-요청 피어 노드에 의한 재배포는 가장 높은 우선 순위를 갖는다. 콘텐츠-비요청 피어 노드에 의해 재배포가 두 번째로 높은 우선 순위를 갖는다. 소스 노드로부터 모든 콘텐츠-요청 피어 노드들로 직접 재배포하는 것은 제일 낮은 우선 순위를 갖는다.
특히, 도 9에 나타난 바와 같이, 프로세스는 다음 콘텐츠 블럭에서 시작되고(박스 900), 다음 콘텐츠-요청 피어 노드에서 시작된다(박스 905). 그 다음에 피어 노드의 순방향 링크가 검사된다(박스 910). 소스 노드는 소스 노드로부터 콘텐츠-요청 피어 노드로의 임의의 순방향 링크 TCP 연결에서 그 콘텐츠 블럭을 위한 이용가능한 공간이 있는지를 판정하기 위해 검사한다(박스 915). TCP 연결 중 임의의 한 전송 버퍼가 꽉 차있지 않고, 하나의 완전한 콘텐츠 블럭을 가질 수 있다면, 콘텐츠 블럭은 대응하는 콘텐츠-요청 피어 노드들에게 전송되기 위해 그 TCP 버퍼에 삽입되고, 그 다음에 대응하는 전송 링크들을 통해 다른 콘텐츠-요청 피어 노드들에게 그 콘텐츠 블럭을 재배포한다(박스 920). 콘텐츠-요청 피어 노드로의 순방향 링크에서 공간을 발견할 수 없다면, 소스 노드는 모든 콘텐츠-요청 피어 노드들이 검사될 것인지 판정하고(박스 925), 그 다음에 콘텐츠-비요청 피어 노드들을 검사하고(박스 930), 그들의 순방향 링크들을 검사한다(박스 935).
링크 상에 이용가능한 공간이 발견되면(박스 940), 콘텐츠 블럭은 대응하는 링크를 위한 TCP 버퍼에 삽입된다(박스 945). 모든 피어들이 검사되고(박스 950), 콘텐츠-비요청 피어 노드들에 대한 링크에서도 여전히 이용 가능한 공간이 없다면, 소스 노드는 마지막 배포 경로를 선택하게 된다. 이런 마지막 배포 경로는 모든 콘텐츠-요청 피어 노드들에 대한 전송 링크들을 검사하고(박스 955), 모든 콘텐츠-요청 피어 노드들에서 하나의 블럭 공간이 있는지 판정한다(박스 960). 도 8에 나타난 수신 버퍼 길이 정책과 결합되어, 순방향 링크의 대역폭이 순방향 링크의 트래픽에 의해 압박당하지 않는다는 것을 확신한다. 공간이 발견되면, 콘텐츠 블럭 은 복제되고 콘텐츠-요청 피어 노드 각각에 대한 전송 링크에 삽입된다(박스 965). 배포 경로들 중에 공간이 존재하지 않으면, 소스 노드는 콘텐츠 블럭을 위한 이용가능한 경로를 발견하려고 다시 재시도하기 전에 소정의 짧은 시간 동안 대기할 것이다(박스 970).
재배포 큐의 역할
재배포 큐들과 피어 및 소스 노드들을 위한 상기의 기능적인 전략을 사용하는 콘텐츠 배포 방법은 소스 및 피어 노드들의 업로드 대역폭 자원을 완전히 이용하여 최대 콘텐츠 배포 처리량을 달성하기 위해 노드들의 업로드 대역폭을 조절함으로써 콘텐츠 배포 동안 패킷 손실과 네트워크 혼잡과 같은 장애들을 처리하게 된다. 콘텐츠 배포 방법 및 시스템을 최적화에 대해 이제 더 상세히 기술할 것이다.
임의의 두 노드들 사이에서 콘텐츠 블럭들은 실험적인 실시예에서, 임의의 크기의 전송 및 수신 버퍼를 갖는 TCP 연결인 재배포 큐를 통해 배포된다. 상기의 "재배포 큐를 통한 배포 경로 선택" 부분에서 지적한 바와 같이, 콘텐츠 배포 방법 및 시스템의 소스 및 피어 노드들은 TCP 전송 버퍼가 가득찰 때까지 가능한 많은 콘텐츠를 TCP 연결들로 삽입한다. TCP 연결의 전송 버퍼에서 기다리고 있는 콘텐츠 블럭들은 심지어 패킷 손실 및 네트워크 혼잡과 같은 네트워크 장애들을 고려하더라도, 임의의 두 피어 노드들 사이의 네트워크 경로가 완전히 이용될 것을 확신한다. 패킷 손실이 없는 경우, 새로운 콘텐츠 블럭들이 TCP 연결을 통해 목적지 피어 노드들에게 전송될 것이다. 패킷 손실이 있거나 기타 네트워크 장애들이 존 재할 경우, TCP는 재전송을 통해 네트워크 에러를 회복하려고 노력하며, TCP 전송 버퍼에서 대기하고 있는 콘텐츠 블럭들을 전송하지 않을 것이다. 순방향 링크의 TCP 수신 버퍼에 대기하고 있는 콘텐츠 블럭들은 대응하는 피어 노드의 업로드 대역폭이 완전히 이용될 것으로 확신한다. 피어 노드가 마지막 콘텐츠 블럭을 전송 링크의 TCP 전송 버퍼에 삽입한 이후에, TCP 수신 버퍼에 대기하고 있는 콘텐츠 블럭을 가져올 것이다. 그러므로, 전송 링크에 블럭을 삽입하는 동작이 계속될 수 있어, 업로드 대역폭이 낭비되지 않는다.
그에 더하여, 도 7 - 도 9에서 나타난 바와 같이, 콘텐츠 배포 방법은 소스 노드 및 피어 노드들의 업로드 대역폭이 완전히 이용될 것으로 확신한다. 이것은 콘텐츠 배포 경로들이 콘텐츠-요청 피어 노드들을 통해 배포되기 위해, 그 다음에 콘텐츠-비요청 피어 노드들을 통해 배포되기 위해, 마지막으로 소스 노드로부터 직접 배포되기 위해 선택된다는 것을 확신함으로써 달성된다.
N1 콘텐츠-요청 피어 노드들에 콘텐츠를 배포하는 콘텐츠 배포 방법을 사용할 때, 소스 노드의 업로드 대역폭은 낮고, 소스로부터 피어 노드들로의 전송 링크들인 활성화되지 않는 다면, 콘텐츠 배포 방법의 콘텐츠 배포 처리량은 소스 노드의 업로드 대역폭 BS가 될 것이다. 이런 경우에, 콘텐츠는 속도 BS로 소스 노드로부터 전송되는데, 여기서 피어 노드들은 모든 콘텐츠-요청 피어 노드들에게 콘텐츠를 전송하기 위한 충분한 업로드 대역폭을 갖는다. 마치 소스 노드만이 홀로 콘텐츠-요청 피어 노드에 콘텐츠를 전송하는 것처럼, 각 콘텐츠-요청 피어 노드가 속도 BS로 그 콘텐츠를 수신한다. 소스 노드의 업로드 대역폭이 높고, 소스 노드로부터 콘텐츠-요청 피어 노드로의 전송 링크들이 활성화 된다면, 그 다음에 콘텐츠 배포 방법의 콘텐츠 배포 처리량은 소스 및 피어 노드들의 업로드 대역폭의 합에서 재전송을 위해 콘텐츠-비요청 피어 노드들에게 콘텐츠 블럭을 전송함으로써 낭비되는 대역폭의 일부분을 제한 값 모두를 N1 콘텐츠-요청 노드의 개수로 나눈 값이 될 것이다. 결과적으로, 콘텐츠 배포 방법은 (1)네트워크의 네트워크 자원 및 용량(업로드 대역폭과 같음) 구성이 어떻든지 간에, 수학식(1)에 의해 계산된 최대 콘텐츠 배포 처리량을 달성할 것이다. 또한 콘텐츠 배포 방법은 TCP 링크들의 재배포 큐들을 통해 네트워크 대역폭의 변화에 쉽게 적응한다. 임의의 피어 노드의 속도가 저하되면, 그 전송 링크에 있는 콘텐츠 블럭들은 천천히 이동할 것이며, 피어 노드가 그 순방향 링크로부터 콘텐츠 블럭을 더 적게 가져올 것을 촉구할 것이다. 이는 다음에는 교대로 소스 노드가 이런 현재 감속된 피어 노드에게 더 적은 콘텐츠 블럭을 전송하게끔 한다. 또는, 임의의 피어 노드의 속도가 가속되면(예를 들면, 업로드 대역폭이 증가하는 경우), 그럴 경우에 콘텐츠 배포 방법은 더 많은 콘텐츠 블럭을 그 피어 노드에게 전송함으로써 조절된다.
동작 실시예
본건에 기재된 콘텐츠 배포 방법 및 시스템을 더욱 완전히 이해하기 위해서, 예시된 동작 실시예의 동작에 대한 상세한 설명이 제공된다. 이런 동작 실시예는 단지 콘텐츠 배포 방법 및 시스템이 구현될 수 있는 임의의 방법 중 하나에 불과하다는 것에 유의해야 한다.
이런 실시예에서, 콘텐츠 배포 방법 및 시스템은 소스 노드에 의해 실행되는 전송자 모듈과 피어 노드들 각각에 의해 실행되는 수신자 모듈을 포함하였다. 콘텐츠 배포 방법 및 시스템의 성능을 검증하기 위해, 콘텐츠 전송 P2P 네트워크는 4개의 콘텐츠-수신 피어 노드와 1개의 소스 노드를 가지고 구성되었다. 약 1MB 크기의 미디어 파일이 소스 노드로부터 모든 피어 노드들에게 배포되었다. 실제 처리량은 배포 파일의 크기를 콘텐츠 배포 방법 및 시스템이 파일을 배포하는데 소요된 시간으로 나누어 측정되었다. 그 다음에 이것은 콘텐츠 배포 방법을 사용하는 네트워크의 이론적인 브로드캐스트 용량과, 소스 노드 및 피어 노드들의 다양한 업로드 대역폭 구성에 의한 실제 처리량을 대비하였다. 그 결과는 표 2에 나타나 있으며, 반면에 이론적인 브로드캐스트 용량은 아래에 기재되어 있다.
도 7 - 도 9에 나타난 콘텐츠 배포 방법 및 시스템의 전송자 및 수신자 컴포넌트를 이용하여, 콘텐츠 배포 방법 및 시스템을 사용한 네트의 실제 처리량은 피어-투-피어 네트워크의 분석적인 브로드캐스트 용량에 상당히 근접한다.
Figure 112005028167294-PAT00003
5. 예시적인 동작 환경
콘텐츠 배포 방법 및 시스템은 컴퓨팅 환경 및 컴퓨팅 장치에서 동작되도록 설계되었다. 콘텐츠 배포 방법 및 시스템이 동작하는 컴퓨팅 환경을 이제 논의할 것이다. 하기의 논의는 콘텐츠 배포 방법 및 시스템이 구현될 수 있는 적합한 컴퓨팅 환경에 대한 간단하고 일반적인 설명을 제공하기 위함이다.
도 10은 도 5에 나타난 콘텐츠 배포 방법 및 시스템이 구현될 수 있는 적합한 컴퓨팅 시스템 환경의 실시예를 예시한다. 컴퓨팅 시스템 환경(1000)은 적합한 컴퓨팅 환경의 실시예 중에 임의의 하나일 뿐이며, 본 발명의 사용과 기능을 제한하는 범위로서 제시된 것은 아니다. 컴퓨팅 환경(1000)이 예시적인 동작 환경(1000)에서 도시된 컴포넌트들 중 임의의 하나에 관련된 임의의 요구사항이나 종속성을 갖는 것으로 해석되어서는 안된다.
콘텐츠 배포 방법 및 시스템은 많은 기타 범용 또는 전용 컴퓨팅 시스템 환경 또는 구성에서 동작된다. 경사도-정정 선형 보간법(gradient-corrected interpolation method) 및 시스템에 적합하게 사용되는 공지된 컴퓨팅 시스템, 환경, 및/또는 구성에 대한 실례들로서, 개인용 컴퓨터, 서버 컴퓨터, 휴대형, 랩탑 또는 무선 컴퓨터 또는 휴대전화기 PDA와 같은 통신 장치, 멀티프로세서 시스템, 마이크로프로세서 기반의 시스템, 셋탑 박스, 프로그램가능한 소비자 전자기기, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템과 장치들 중 임의의 하나를 포함하고 있는 분산 컴퓨팅 환경 등을 들수 있다.
콘텐츠 배포 방법 및 시스템은 컴퓨터에 의해 실행되는 프로그램 모듈들과 같은 컴퓨터-실행가능 명령어들의 일반적인 관점에서 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 작업들 또는 특정 추상화 데이터 타입을 실행하는 루틴, 프로그램, 데이터 구조 등을 포함한다. 콘텐츠 배포 방법 및 시스템은 작업이 통신 네트워크를 통해 링크된 원격 프로세싱 장치에 의해 실행되는 분산 컴퓨팅 환경에서 또한 실행가능하다. 분산 컴퓨팅 환경에서, 프로그램 모듈이 메모리 저장 장치를 포함한 로컬 및 원격 컴퓨터 저장 매체에 위치할 수 있다. 도 10을 참조하면, 콘텐츠 배포 방법 및 시스템을 구현한 예시적인 시스템은 임의의 컴퓨터(1010)의 형태인 범용 컴퓨팅 장치를 포함한다.
컴퓨터(1010)의 컴포넌트들은 프로세싱 유닛(1020), 시스템 메모리(1030), 및 시스템 메모리를 포함해서 다양한 시스템 컴포넌트들을 프로세싱 유닛(1020)에 결합시키는 시스템 버스(1021)를 포함하나, 이에만 국한되지 않는다. 시스템 버스는 메모리 버스 또는 메모리 제어기, 주변 장치 버스, 다양한 종래의 버스 아키텍처 중 임의의 것을 사용하는 로컬 버스를 포함하여 여러 형태의 버스 구조들 중 임의의 것일 수 있다. 예로서, 이런 아키텍처는 업계 표준 구조(ISA) 버스, 마이크로 채널 구조(MCA) 버스, Enhanced ISA 버스(EISA), 비디오 전자 공학 표준 협회(VESA) 로컬 버스, 및 메자닌 버스라고 알려진 주변 장치 상호 연결(PCI) 버스를 또한 포함하나, 이에만 국한되지 않는다.
컴퓨터(1010)는 전형적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(1010)에 의해 액세스될 수 있는 임의의 것이며, 휘발성 혹은 비휘발성 매체, 분리형 혹은 비분리형 매체 모두를 포함한다. 실례로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체와 통신 매체를 포함하며, 이에만 국한되지 않는다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어들, 데이터 구조, 프로그램 모듈, 기타 데이터와 같은 정보를 저장하는 임의의 방법 및 기술이 구현될 수 있는 휘발성 및 비휘발성 분리형 및 비분리형 매체를 포함한다.
컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD, 또는 기타 광디스크 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치, 또는 기타 자기 저장 장치, 또는 컴퓨터(1010)에 의해 액세스될 수 있는 원하는 정보를 저장하는데 사용될수 있는 기타 다른 매체들을 포함하나, 이에만 국한되지 않는다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어들, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호에 실린 기타 데이터, 또는 기타 전송 메커니즘을 포함하고, 임의의 정보 전송 매체도 포함한다.
"변조된 데이터 신호"란 용어는 하나 이상의 특징을 가진 신호, 신호에 있는 정보를 부호화하는 방식으로 변형된 신호를 의미함에 유의해야 한다. 실례로서, 통신 매체는 유선 네트워크, 유선에 의한 직접 연결과 같은 유선 매체와, 음파, RF, 적외선 같은 무선 매체, 기타 무선 매체를 포함하나, 이에만 국한되지 않는다. 상기의 임의의 것들을 조합한 것도 컴퓨터 판독가능 매체 범위에 포함되어야 한다.
시스템 메모리(1030)는 판독 전용 메모리(ROM:1030) 및 임의 접근 메모리(RAM:1032)와 같은 휘발성 및/또는 비휘발성을 지닌 컴퓨터 저장 매체를 포함한다. 시작할 때 등에 컴퓨터(1010) 내의 구성 요소들 사이의 정보 전달을 돕는 기본적인 루틴들을 포함하는 기본 입력/출력 시스템(BIOS)은 전형적으로 ROM(1031)에 저장된다. RAM(1032)은 전형적으로 프로세싱 유닛(1020)에 의해/상에서 현재 동작하는 즉시 액세스 가능한 프로그램 모듈 및/또는 데이터를 포함한다. 실례로서, 도 10은 운영 체제(1034), 애플리케이션 프로그램(1035), 기타 프로그램 모듈(1036), 및 프로그램 데이터(1037)을 예시하나, 이에만 국한되지 않는다.
컴퓨터(1010)는 또한 기타 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 단지 실례로서, 도 10은 비분리형 비휘발성 자기 매체로부터 판독하거나 기입하는 하드 디스크 드라이브(1041), 분리형 비휘발성 자기 디스크(1052)로부터 판독하거나 기입하는 자기 디스크 드라이브(1051), 및 CD-ROM 디스크 또는 기타 광학 매체와 같은 분리형 비휘발성 광디스크(1056)로부터 판독하거나 기입하는 광디스크 드라이브(1055)를 예시한다.
예시적인 동작 환경에서 사용될 수 있는 기타 분리형/비분리형, 휘발성/비휘발상 컴퓨터 저장 매체는 자기 테입 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테입, 고체 상태 RAM, 고체 상태 ROM 등이 될 수 있으나, 이에만 국한되지 않는다. 하드 디스크 드라이브(1041)는 인터페이스(1040)과 같은 비분리형 메모리 인터페이스를 통해 시스템 버스(1021)에 전형적으로 연결되고, 자기 디스크 드라이브(1051) 및 광디스크 드라이브(1055)는 인터페이스(1050)과 같은 분리형 메모리 인터페이스에 의해 시스템 버스(1021)에 전형적으로 연결된다.
상기 도 10에서 예시되어 논의된 드라이브들 및 관련 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 기타 데이터를 컴퓨터(1010)에 제공한다. 도 10에서, 예를 들면 하드 디스크 드라이브(1041)는 운영 체제(1044), 애플리케이션 프로그램들(1045), 기타 프로그램 모듈들(1046), 및 프로그램 데이터(1047)을 저장하는 것으로 도시된다. 이런 컴포넌트들은 운영 체제(1034), 애플리케이션 프로그램들(1045), 기타 프로그램 모듈들(1046), 및 프로그램 데이터(1047)와 동일하거나 또는 다를 수 있음에 유의해야 한다. 운영 체제(1044), 애플리케이션 프로그램(1045), 기타 프로그램 모듈(1046), 및 프로그램 데이터(1047)은 최소한 그것들이 다른 복제본이라는 것을 예시하기 위해 여기서 다른 개수로 주어진다. 사용자는 키보드(1062) 및 주로 마우스나 트랙볼 또는 터치 패드로 지칭되는 포인팅 장치(1061) 같은, 입력 장치를 통해 명령어와 정보를 컴퓨터(1010)에 입력할 수 있다.
기타 입력 장치(도시되지 않음)는 마이크로폰, 조이스틱, 게임 패드, 위성 접시형 안테나, 스캐너, 라디오 수신기, 텔레비전, 브로드캐스트 비디오 수신기 등을 포함할 수 있다. 이러한 장치들과 기타 입력 장치들은 종종 시스템 버스(1021)에 결합된 사용자 입력 인터페이스(1060)을 통해 프로세싱 유닛(1020)에 연결되는데, 예를 들면, 병렬 포트, 게임 포트, 또는 범용 직렬 버스(USB)와 같은 버스 구조 및 기타 인터페이스에 의해 연결될 수 있다. 모니터 이외에 컴퓨터는 출력 장치 인터페이스(1095)를 통해 연결될 수 있는 스피커(1097)와 프린터(1096) 같은 기타 주변 출력 장치들도 전형적으로 포함한다.
컴퓨터(1010)는 원격 컴퓨터(1080)와 같은 하나 이상의 원격 컴퓨터들로의 논리적 연결을 사용하는 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(1080)는 개인용 컴퓨터, 서버, 네트워크 PC, 피어 장치, 또는 기타 공통 네트워크 노드일 수 있으며, 메모리 저장 장치(1081)만이 도 10에 예시되었을 지라도 전형적으로 컴퓨터(1010)와 관련되어 상기의 기술된 구성요소들 중 다수 혹은 모두를 포함한다. 도 10에 도시된 논리적 연결들은 근거리 통신망(LAN:1071)과 광역 통신망(WAN:1073)을 포함하나, 기타 네트워크들도 포함할 수 있다. 그러한 네트워킹 환경들은 사무실, 기업 규모 컴퓨터 네트워크, 인트라넷 및 인터넷에서 흔한 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(1010)는 네트워크 인터페이스나 어댑터(1070)를 통해 LAN(1071)으로 연결된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(1010)는 전형적으로 인터넷과 같은 WAN(1073)을 거쳐 통신을 설정하기 위한 모뎀(1072) 또는 기타 수단을 포함한다. 내장 또는 외장 모뎀(1072)은 직렬 포트 인터페이스(1060)를 통해 시스템 버스(1021)로 연결된다. 네트워크 환경에서, 컴퓨터(1010)와 관련되어 도시된 프로그램 모듈이나 그들의 일부는 원격 메모리 저장 장치에 저장될 수 있다. 실례로서, 도 10은 메모리 장치(1081)에 상주하는 원격 애플리케이션 프로그램(1085)를 예시하나, 이에만 국한되지 않는다. 도시된 네트워크 연결들은 예시적이며, 컴퓨팅 장치들 사이에 통신 링크를 설정하기 위한 기타 수단들이 사용될 수 있다는 것음을 인식할 것이다.
6. 콘텐츠 배포 처리량 최대화에 관한 이론적인 분석
이 부분에서, 우리는 콘텐츠 배포 방법 및 시스템이 제한된 업로드 대역폭을 갖는 피어-투-피어 네트워크에 대해 최적화된다는 사실을 증명할 것이다. 콘텐츠 배포 방법 및 시스템은 이런 네트워크에서 최대 가능한 처리량을 달성하며, 어떤 다른 시스템도 더 나을 수 없다는 것을 이후에 증명할 것이다.
그래프(V,E)는 네트워크를 나타내는 것으로 하며, 여기서 V는 노드 집합이며 E는 링크 집합(유향성 간선들)이다. V 중 s는 소스 노드를 나타내며, T는 콘텐츠-요청 노드들의 E에서의 부분집합을 나타내는 것으로 한다. 나머지 노드들은 콘텐츠-비요청 노드들이라 하자. 두 가지 종류의 용량을 고려하자. c(e)는 E에 있는 각 간선 e의 용량이라 하고, Cout(v)는 V에 있는 각 노드 v의 업로드 대역폭(출력 용량)이라 하면, 그 결과 각 노드 v에 대해, v를 출발하는 간선의 용량들의 합은 많아야 Cout(v)가 된다.
V에 있는 두 노드 v1, v2 사이의 임의의 컷(cut)은 두 집합 V1, V2로 분할되는 V의 일부분이며, vi는 Vi, i = 1,2 내부에 있다. 컷의 값(value)은 V1 에서 V2로의 간선들 e 에서의 용량 c(e)의 합이 된다.
s와 T에 있는 임의의 싱크 v 사이의 최대 흐름이 s와 t 사이의 모든 컷들에 걸쳐 최소값을 달성한다는 점은 잘 알려져 있다. Ct를 s와 t 사이의 최대 흐름(맥스플로어:maxflow)이라 하자. Ct = Ct(c)는 간선 용량 함수, 즉 c:E -> [0,
Figure 112005028167294-PAT00004
)에 의존하고 있다는 점에 유의해야 한다.
정의 : s와 T 사이의 브로드캐스트 용량은 s와 T에 있는 임의의 t 사이의 최소 맥스플로어이며, 즉 C = mint Ct 이다. Ct와 같이, C = C(c)는 간선 용량 함수 c에 의존한다.
분명하게, 브로드캐스트 용량 C는 공통 정보가 s로부터 T에 있는 모든 노드들에게 브로드캐스트될 수 있는 최대 속도에 대한 상위 한계값이다. 불행히도, C는 일반적으로 멀티캐스트 라우팅을 사용하여 달성될 수 없다. 도 11은 멀티캐스트 라우팅(1100)을 사용하여 브로드캐스트 용량 C 가 달성될 수 없음을 예시하는 블럭도이다. 비록 C가 항상 네트워크 코딩을 사용하여 달성될 수 있을지라도, 이것은 중간 노드들이 출력 패킷들을 제공하기 위해 그 입력 패킷들을 단순히 라우팅하는 것이 아니라 코딩할 것을 요구한다. 라우팅만 사용된다면, 다중 멀티캐스트 트리를 통한 s로부터 T로의 최대 처리량 C0 은 C 보다 작은 log N의 팩터(factor)가 될 수 있다. 더우기, (C0를 달성한) 멀티캐스트 트리의 최적화된 수집을 판정하는 단계는 NP-hard이며, 반면에 시간 다항식에서 달성될 수 있는 C0와 처리량 C00
Figure 112005028167294-PAT00005
C0 사이의 갭에 있어 가장 근접하게 알려진 경계는 상대적으로 느슨하다. 다른 한편으로, 네트워크에 슈타이너(Steiner) 노드(슈타이너 노드는 Cv < C를 만족하는 노드 v 임)가 있지 않는 경우, 브로드캐스트 용량 C는 에드몬드의 이론(Edmonds' theorem)에 의해 나타난 바와 같이 다중 멀티캐스트 트리를 심하게 패키지화함으로써 단순히 달성될 수 있다.
다중 멀티캐스트 트리의 특히 구조화된 수집이기도 한 콘텐츠 배포 방법 및 시스템은 임의의 간선 용량 함수 c(e)에 대해 브로드캐스트 용량 C = C(c)를 달성한다. 더욱이, 이것은 하기에 이론이 보여주는 바와 같은 이런 브로드캐스트 용량의 최대값을 달성한다.
이론 : 콘텐츠 배포 방법 및 시스템 처리량 θ는 노드 출력 용량 제한을 받는 한도에서, 가능한 최대 브로드캐스트 용량을 달성한다. 즉, 모든 간선 용량 함수 c:E -> [0,
Figure 112005028167294-PAT00006
)에 걸쳐 θ = maxc C(c)가 되어서, 모든 노드들 v에 대해, v를 출발하는 모든 간선들 e의 c(e)의 합은 많아야 Cout(v)가 된다.
증명 : 다음은 BS
Figure 112005028167294-PAT00007
BS1 + BS2인 네트워크 및 BS
Figure 112005028167294-PAT00008
BS1 + BS2인 네트워크로 분리하여 증명한다. 전자는 V-s로부터 s를 분리하는 하나의 컷을 가지고 증명하고, 후자는 t로부터 V-t를 분리하는 컷들을 가지고 증명한다.
먼저, BS
Figure 112005028167294-PAT00009
BS1 + BS2를 가정한다. 간선 용량 함수 c를 위해, 브로드캐스트 용량 C(c)는 많아야 V-s로부터 s를 분리하는 컷값과 같을 수 있다. 이것은 많아야 BS
Figure 112005028167294-PAT00010
Cout(s)가 되므로, 이것은 maxc C(c)
Figure 112005028167294-PAT00011
BS 를 제공한다. 물론 처리량 θ는 θ
Figure 112005028167294-PAT00012
maxc C(c)를 만족시켜야 한다. 다른 한편으로, 수학식(1)에 따라, 콘텐츠 배포 방법 및 시스템은 처리량 θ = BS 를 달성한다. 그러므로, θ = maxc C(c) = BS가 된다.
이제, BS
Figure 112005028167294-PAT00013
BS1 + BS2 를 가정해라. 간선 용량 함수 c를 위해, T에 있는 노드들로 입력되는 모든 간선들에 걸쳐 c(e)의 합이 최소한 N1배의 브로드캐스트 용량 C(c)이 되어야 한다. 그러므로, 콘텐츠-비수신 노드로서 U = V-T-s라 나타내면 다음과 같다.
Figure 112005028167294-PAT00014
다른 한편으로, 수학식(1)은 (Bv = Cout(v)를 나타냄)를 제공한다.
Figure 112005028167294-PAT00015
그러므로,
Figure 112005028167294-PAT00016
물론, θ
Figure 112005028167294-PAT00017
maxc C(c) 이므로, N1θ
Figure 112005028167294-PAT00018
N1 maxc C(c)=N1C(c*), 여기서 c*는 최적화된 용량 함수이다. 그러므로,
Figure 112005028167294-PAT00019
부등식이 등식과 성립하면, 증명이 완성된다. U가 비어있다면, 이것은 분명히 사실이다. U가 비어있지 않을 경우를 보여주려면, U에 있는 각 u에 대해 이것을 논의해야 한다.
Figure 112005028167294-PAT00020
그렇지 않으면, u를 통한 N1 콘텐츠 수신 노드들로의 임의의 흐름은 업로드 대역폭 Bu를 완전히 사용하는데 불충분할 것이다. s와 T사이의 간선들로부터의 임의의 용량을 s와 U사이의 간선들에 재할당함으로써 높은 처리량을 달성할 수 있다.
추론 : 파일 다운로드 시나리오에서, 콘텐츠 배포 방법 및 시스템은 임의의 콘텐츠 수신 피어 노드가 경험하는 최대 다운로드 시간을 최소화한다. 스트리밍 매체 시리오에서, 콘텐츠 배포 방법 및 시스템은 임의의 콘텐츠 수신 피어 노드가 경험하는 최소한의 품질을 최대화한다. 그러므로, 콘텐츠 배포 방법 및 시스템은 분산된 동료 그룹들이 동일한 품질로 동시에 콘텐츠를 다운로드 하고 스트리밍하길 원하는 환경에 있어서 이상적이다.
다운로드 대역폭 또는 링크 대역폭 제한을 받는 처리량
상기 논의는 콘텐츠 배포 방법 및 시스템에서의 병목 현상이 피어 노드들의 업로드 대역폭에만 있다고 가정한다. 이 세션에서는, 링크 대역폭 또는 다운로드 대역폭 제한을 받는 콘텐츠 배포 방법 및 시스템에 관한 간단한 논의를 제공하겠다.
업로드 대역폭 Bu j을 갖는 피어 노드 i를 고려해 본다. 콘텐츠 수신 피어 노드 j에 대한 그 링크 대역폭을 Bl ij, j=0,...,M-1, 여기서 M은 자신을 제외한 콘텐츠 수신 노드 개수이다. 노드 i와 j 사이의 링크 대여폭에 이후 식에 성립하는 한 병목 현상이 있지 않을 것이다.
Figure 112005028167294-PAT00021
상기 부등식이 만족되지 않는 다면, 노드 i의 업로드 대역폭은 콘텐츠 배포 방법에서 완전히 이용될 수 없다. 노드 j의 효율적인 업로드 대역폭 다음과 같다.
Figure 112005028167294-PAT00022
이런 효율적인 업로드 대역폭은 콘텐츠 배포 방법 및 시스템의 새로운 처리량을 얻어내기 위해 수학식(1)에 사용될 수 있다.
콘텐츠 수신 피어 노드들이 수학식(1)(이것은 업로드 대역폭에만 기반함)에서 주어진 처리량보다 낮은 다운로드 대역폭을 갖는 경우, 이런 임의의 노드는 콘텐츠 배포 방법 및 시스템의 병목 현상을 경험할 것이다. 이런 시나리오에서, 총 처리량은 모든 콘텐츠 수신 피어 노드들의 최소 다운로드 대역폭이 될 것이다. 그 이유는 모든 노드들이 전송을 재개할 수 있기 전에 가장 느린 노드가 종료되기를 기다려야 하기 때문이다.
콘텐츠 배포 방법 및 시스템의 이런 구현에 관한 대안적인 전략은 느린 피어 노드가 임의의 콘텐츠 블럭들을 건너뛰므로, 남아있는 피어 노드의 수신 동작 속도를 감소시키지 않는 것이다. 이로써, 피어 노드들은 최대 속도로 여전히 처리를 계속할 수 있다. 파일 다운로드 시나리오에서, 느린 피어 노드들은 모든 남아있는 노드들이 다운로드를 종료한 이후에 건너뛴 콘텐츠들을 수신할 수 있다. 스트리밍 미디어 시나리오에서, 느린 피어 노드들은 계층화된 매체 코딩인 사용될 경우, 낮은 품질의 콘텐츠를 수신할 수 있다. 이런 대안적이 접근 방법에 비견하여, 콘텐츠 배포 방법 및 시스템의 실험적인 실시예는 모든 콘텐츠 수신 피어 노드들에 대해 공통 정보의 처리량을 최대화한다. 이것은 스트리밍 미디어 시나리오에서 임의의 콘텐츠 수신 피어 노드가 경험하는 최소한의 품질을 최대화하거나, 파일 다운로드 시나리오(예를 들면, 분산된 동료 그룹이 동일한 품질로 동시에 콘텐츠를 다운로드 하고 스트리밍하길 원하는 경우)에서 임의의 콘텐츠 수신 피어 노드가 경험하는 최대 다운로드 시간을 최소화한다. 이것이 객관적이지 않지만, 다소 빠른 노드가 느린 노드 보다 높은 처리량을 갖는 것을 허용한다면, 그 다음에 대안적인 실시예가 실험적인 실시예보다 더욱 바람직할 수 있다.
본 발명에 대한 상기의 기술된 내용은 예시적으로 설명하기 위해서 제시되었다. 이것은 소모적이거나, 본 발명을 기재된 세밀한 형태로 제한하기 위함이 아니다. 많은 다른 변경 및 수정이 상기의 지식의 관점에서 가능하다. 본 발명의 범위는 본 발명의 상세한 설명에 의해 제한되지 않으며, 다소 이것에 대해 첨부된 청구항에 의해 제한된다.
콘텐츠는 더 많은 용량을 가진 노드들은 더 많은 개수의 콘텐츠 블럭들을 할당받고, 더 적은 용량을 가진 노드들은 더 적은 개수의 콘텐츠 블럭들을 할당받게 되는 노드의 용량에 기반하여 할당되는 전송 처리량을 최대화하는 피어-투-피어 네트워크를 통해 콘텐츠를 배포하는 효율적인 방법 및 시스템을 제공하여, 패킷 손실 및 전송 지터 등와 같은 네트워크 장애가 발생할 때도 피어 및 소스 노드들의 업로드 대역폭들이 최대로 이용되도록 보장하는 효과가 있다.

Claims (40)

  1. 컴퓨터 네트워크 상의 다수의 노드들에게 콘텐츠를 배포하는 방법에 있어서,
    상기 콘텐츠를 다수의 블럭들로 분할하는 단계,
    더 많은 용량을 가진 노드는 더 많은 블럭들을 할당받고, 더 적은 용량을 가진 노드는 더 적은 블럭들을 할당받도록, 상기 다수의 블럭들 각각을 임의의 노드에 상기 노드의 용량에 비례하여 할당하는 단계,
    상기 다수의 블럭들 각각을 소스 노드로부터 상기 소스 노드의 지정된 노드로 재전송을 위해 전송하는 단계 - 상기 지정된 노드가 소스 노드가 아닐 경우 -,
    상기 블럭을 상기 지정된 노드에 의해 나머지 콘텐츠-요청 노드들로 재전송하는 단계
    를 포함하는 방법.
  2. 제 1항에 있어서,
    상기 노드의 대역폭에 의해서 상기 노드의 용량을 정의하는 단계를 더 포함하는 방법.
  3. 제 2항에 있어서,
    상기 대역폭은 상기 노드의 업로드 대역폭인 방법.
  4. 제 1항에 있어서,
    상기 다수의 블럭들 각각의 크기는 컴퓨터 네트워크의 최대 전송 단위(MTU) 보다 작은 방법.
  5. 제 4항에 있어서,
    상기 콘텐츠 블럭 크기는 거의 1 킬로바이트인 방법.
  6. 제 1항에 있어서,
    상기 다수의 블럭들 각각의 크기는 배포 입도와 상기 블럭들을 식별하는데 요구되는 오버헤드 사이의 절충값인 방법.
  7. 제 1항에 있어서,
    상기 지정된 노드는 상기 콘텐츠의 복제를 요청하는 콘텐츠 요청 피어 노드인 방법.
  8. 제 1항에 있어서,
    상기 지정된 노드는 상기 콘텐츠의 복제를 요청하지 않는 콘텐츠 비요청 피어 노드인 방법.
  9. 제 1항에 있어서,
    상기 지정된 노드는 소스 노드인 방법.
  10. 제 1항에 있어서,
    상기 노드의 용량 변화에 기반하여 상기 블럭들의 동적 재배포를 가능하게 하는 대역폭 제어 전략을 사용하는 단계를 더 포함하는 방법.
  11. 제 10항에 있어서,
    상기 대역폭 제어 전략은 상기 네트워크의 각각의 노드 쌍 사이의 재배포 큐들을 활용하는 것을 더 포함하는 방법.
  12. 제 11항에 있어서,
    전송 제어 프로토콜(TCP)를 사용하여 재배포 큐들을 구성하는 단계를 더 포함하는 방법.
  13. 제 12항에 있어서,
    상기 재배포 큐들은 TCP 전송 및 수신 버퍼들인 방법.
  14. 제 11항에 있어서,
    사용자 데이터그램 프로토콜(UCP) 상에서 구현되는 애플리케이션 버퍼들을 사용하여 재배포 큐들을 구성하는 단계를 더 포함하는 방법.
  15. 제 1항에 있어서,
    상기 소스 노드와 상기 지정된 노드 사이의 연결로서 순방향 링크를 정의하는 단계 - 상기 연결로 전송되는 상기 콘텐츠 블럭들은 더 이상 재배포됨 -
    를 더 포함하는 방법.
  16. 제 1항에 있어서,
    상기 지정된 노드와 또 다른 콘텐츠 요청 피어 노드 사이의 연결로서 전송 링크를 정의하는 단계 - 상기 연결로 전송되는 상기 콘텐츠 블럭들은 더 이상 재배포되지 않음 -
    를 더 포함하는 방법.
  17. 제 1 항에 있어서,
    상기 컴퓨터 네트워크는 피어-투-피어 네트워크인 방법
  18. 제 1 항 기재의 방법을 수행하기 위한 컴퓨터-실행가능 명령어를 갖는 컴퓨터 판독가능 매체.
  19. 컴퓨터 네트워크 상의 소스 노드로부터 다수의 콘텐츠 요청 노드들로 콘텐츠를 전송하는 컴퓨터-구현 방법에 있어서,
    전송할 상기 콘텐츠를 다수의 작은 콘텐츠 블럭들로 분할하는 단계,
    상기 콘텐츠 블럭들 각각을 임의의 노드에 재전송을 위해 할당하는 단계,
    상기 소스 노드로부터의 상기 콘텐츠 블럭들 각각을 그 지정된 노드로 전송하는 단계 - 상기 지정된 노드가 상기 소스 노드가 아닌 경우 -, 및
    상기 지정된 노드로부터의 상기 콘텐츠 블럭들을 나머지 콘텐츠 요청 피어 노드들로 재배포하는 단계
    를 포함하는 방법.
  20. 제 19항에 있어서,
    상기 컴퓨터 네트워크의 동적 변화를 효율적으로 관리하기 위해 상기 컴퓨터 네트워크의 노드들 사이의 재배포 큐들을 활용하는 단계를 더 포함하는 방법.
  21. 제 19항에 있어서,
    상기 컴퓨터 네트워크는 피어-투-피어 네트워크인 방법.
  22. 제 21항에 있어서,
    상기 지정된 노드는 상기 콘텐츠-요청 피어 노드인 방법.
  23. 제 21항에 있어서,
    상기 지정된 노드는 상기 콘텐츠를 요청하지 않는 콘텐츠-비요청 피어 노드 인 방법.
  24. 제 19항에 있어서,
    임의의 노드에 의해 재배포될 콘텐츠량이 가변적이도록, 상기 노드에 할당된 콘텐츠 블럭들의 개수를 가변화하는 단계를 더 포함하는 방법.
  25. 제 24항에 있어서,
    상기 노드에 할당된 상기 콘텐츠 블럭들의 개수를 상기 노드의 용량에 기반하여 가변화하는 단계를 더 포함하는 방법.
  26. 제 25항에 있어서,
    상기 노드의 업로드 대역폭에 의해서 상기 노드의 용량을 정의하는 단계를 더 포함하는 방법.
  27. 제 19항 기재의 컴퓨터-구현 방법을 수행하기 위한 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체.
  28. 피어-투-피어 컴퓨터 네트워크의 노드들 사이에 콘텐츠를 배포하는 방법에 있어서,
    상기 콘텐츠를 다수의 작은 콘텐츠 블럭들로 분할하는 단계,
    상기 콘텐츠 블럭들 각각을 상기 노드들 중 임의의 하나에 전송을 위해 할당하는 단계 - 할당된 콘텐츠 블럭들의 개수는 상기 지정된 노드의 업로드 대역폭에 의존하여 가변적이 될 수 있음 -,
    상기 노드들 사이의 재배포 큐들을 활용하는 단계,
    상기 재배포 큐들을 이용하여 상기 콘텐츠 블럭들을 재할당하는 단계 - 상기 지정된 노드의 업로드 대역폭의 임의의 변화가 재배포를 위해 해당 노드에 할당된 블럭들의 개수의 변화를 초래하게 됨 -
    를 포함하는 방법.
  29. 제 28항에 있어서,
    상기 재배포 큐들은 전송 제어 프로토콜(TCP) 전송 및 수신 버퍼들인 방법.
  30. 제 28항에 있어서,
    사용자 데이터그램 프로토콜(UDP) 상에서 구현되는 애플리케이션 버퍼들을 사용하여 재배포 큐들을 생성하는 단계를 더 포함하는 방법.
  31. 제 28항에 있어서,
    더 이상 재배포될 콘텐츠 블럭들을 가진 노드들 사이의 임의의 연결로서 순방향 링크를 정의하는 단계를 더 포함하는 방법.
  32. 제 31항에 있어서,
    입력 순방향 링크로부터 하나의 콘텐츠 블럭을 제거하고, 그것을 현재 콘텐츠 블럭으로 정의하는 단계, 및
    상기 현재 콘텐츠 블럭을 모든 콘텐츠-요청 피어 노드들의 출력 전송 링크들로 복제하는 단계
    를 더 포함하는 방법.
  33. 제 32항에 있어서,
    상기 현재 콘텐츠 블럭이 상기 출력 전송 링크들 각각으로 복제될 때까지, 상기 입력 순방향 링크로부터 또 다른 콘텐츠 블럭을 제거하기 위해 대기하는 단계를 더 포함하는 방법.
  34. 제 31항에 있어서,
    더 이상 재배포되지 않을 콘텐츠 블럭들을 가진 노드들 사이의 임의의 연결로서 전송 링크를 정의하는 단계를 더 포함하는 방법.
  35. 제 34항에 있어서,
    도달한 콘텐츠 블럭이 (a) 콘텐츠-요청 노드, (b) 콘텐츠-비요청 노드 중 임의의 하나에 의해 전송되었음을 판정하는 단계, 및
    상기 도달한 콘텐츠 블럭이 도달하자 마자 상기 전송 링크로부터 상기 도달 한 콘텐츠 블럭을 제거하는 단계
    를 더 포함하는 방법.
  36. 제 34항에 있어서,
    상기 도달한 콘텐츠 블럭이 소스 노드에 의해 전송되었음을 판정하는 단계, 및
    상기 소스 노드로부터의 순방향 링크의 수신 버퍼 길이가 한계값을 넘는 경우에만, 상기 전송 링크로부터 도달한 콘텐츠 블럭을 제거하는 단계
    를 더 포함하는 방법.
  37. 제 34항에 있어서,
    상기 소스 노드로부터 상기 콘텐츠-요청 노드로의 순방향 링크에 하나의 콘텐츠 블럭을 위한 이용 가능한 공간이 있는지 판정하는 단계,
    상기 콘텐츠 블럭을, 대응하는 콘텐츠-요청 노드로 전송시키기 위해 임의의 버퍼에 위치시키는 단계, 및
    상기 콘텐츠 블럭을, 대응하는 전송 링크를 통해 또 다른 콘텐츠-요청 피어 노드들에게 재배포하는 단계
    를 더 포함하는 방법.
  38. 제 37항에 있어서,
    상기 소스 노드로부터 상기 콘텐츠-요청 노드로의 순방향 링크에 하나의 콘텐츠 블럭을 위한 이용 가능한 공간이 없음을 판정하는 단계,
    콘텐츠-비요청 피어 노드들로의 순방향 링크들에 이용 가능한 공간이 있는지 판정하는 단계, 및
    이용 가능한 공간이 있으면, 상기 콘텐츠 블럭을, 대응하는 콘텐츠-비요청 노드로 전송시키기 위해 임의의 버퍼에 위치시키는 단계, 및
    상기 콘텐츠 블럭을, 대응하는 전송 링크들을 통해 또 다른 콘텐츠-요청 피어 노드들에게 재배포하는 단계
    를 더 포함하는 방법.
  39. 제 38항에 있어서,
    상기 소스 노드로부터 상기 콘텐츠-요청 및 콘텐츠-비요청 노드로의 순방향 링크에 콘텐츠 블럭을 위한 이용 가능한 공간이 없는 것으로 판정하는 단계,
    상기 소스 노드로부터 모든 콘텐츠-요청 피어 노드들로의 모든 전송 링크들에 이용 가능한 공간이 있는지 판정하는 단계, 및
    이용 가능한 공간이 있으면, 상기 콘텐츠 블럭을, 상기 소스 노드로부터 모든 콘텐츠-요청 피어 노드들로의 모든 전송 링크들의 버퍼들에 위치시키는 단계
    를 더 포함하는 방법.
  40. 제 39항에 있어서,
    상기 소스 노드로부터 상기 콘텐츠-요청 및 콘텐츠-비요청 노드로의 순방향 링크에 콘텐츠 블럭을 위한 이용 가능한 공간이 없으며, 상기 소스 노드로부터 상기 콘텐츠-요청 피어 노드들로의 임의의 전송 링크 중 하나에 이용 가능한 공간이 없는 것으로 판정하는 단계, 및
    이용 가능한 공간이 없으면, 잠시간 대기하였다가 재시도하는 단계
    를 더 포함하는 방법.
KR1020050044990A 2004-07-07 2005-05-27 피어-투-피어 컴퓨터 네트워크에서의 효율적인 일대다콘텐츠 배포 방법 KR101109246B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/887,406 US7593333B2 (en) 2004-07-07 2004-07-07 Efficient one-to-many content distribution in a peer-to-peer computer network
US10/887,406 2004-07-07

Publications (2)

Publication Number Publication Date
KR20060048144A true KR20060048144A (ko) 2006-05-18
KR101109246B1 KR101109246B1 (ko) 2012-01-30

Family

ID=34940253

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050044990A KR101109246B1 (ko) 2004-07-07 2005-05-27 피어-투-피어 컴퓨터 네트워크에서의 효율적인 일대다콘텐츠 배포 방법

Country Status (7)

Country Link
US (1) US7593333B2 (ko)
EP (1) EP1615403B1 (ko)
JP (1) JP4738900B2 (ko)
KR (1) KR101109246B1 (ko)
CN (1) CN1719833B (ko)
AT (1) ATE369007T1 (ko)
DE (1) DE602005001815T2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100947317B1 (ko) * 2006-11-20 2010-03-16 주식회사 알티캐스트 주문형 콘텐츠 시스템의 효율적인 운영방법

Families Citing this family (127)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7408938B1 (en) * 2003-10-15 2008-08-05 Microsoft Coporation System and method for efficient broadcast of information over a network
US8059629B1 (en) 2004-03-27 2011-11-15 Dust Networks, Inc. Digraph network timing synchronization
US8194655B2 (en) * 2004-08-05 2012-06-05 Dust Networks, Inc. Digraph based mesh communication network
US7961664B1 (en) 2004-03-27 2011-06-14 Dust Networks, Inc. Digraph network subnetworks
US8868772B2 (en) 2004-04-30 2014-10-21 Echostar Technologies L.L.C. Apparatus, system, and method for adaptive-rate shifting of streaming content
US7818444B2 (en) 2004-04-30 2010-10-19 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
US10862994B1 (en) 2006-11-15 2020-12-08 Conviva Inc. Facilitating client decisions
US9549043B1 (en) 2004-07-20 2017-01-17 Conviva Inc. Allocating resources in a content delivery environment
US11734393B2 (en) 2004-09-20 2023-08-22 Warner Bros. Entertainment Inc. Content distribution with renewable content protection
US20060064386A1 (en) * 2004-09-20 2006-03-23 Aaron Marking Media on demand via peering
US8102837B2 (en) * 2004-12-30 2012-01-24 Massachusetts Institute Of Technology Network coding approach to rapid information dissemination
US8046426B2 (en) * 2004-12-30 2011-10-25 Massachusetts Institute Of Technology Random linear coding approach to distributed data storage
US7633887B2 (en) * 2005-01-21 2009-12-15 Panwar Shivendra S On demand peer-to-peer video streaming with multiple description coding
US8370514B2 (en) 2005-04-28 2013-02-05 DISH Digital L.L.C. System and method of minimizing network bandwidth retrieved from an external network
US8683066B2 (en) 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
US7539219B2 (en) 2005-05-12 2009-05-26 Radioshack Corporation Method and apparatus for synchronization of digital multimedia packets
US20070076693A1 (en) * 2005-09-30 2007-04-05 Dilip Krishnaswamy Scheduling variable bit rate multimedia traffic over a multi-hop wireless network
DE102006014592A1 (de) * 2006-03-29 2007-10-04 Siemens Ag Verfahren zur Übertragung von Daten in einem Datennetz
US20070244585A1 (en) * 2006-04-17 2007-10-18 900Seconds, Inc. Automated administration of network-based contests
WO2007121610A1 (fr) * 2006-04-21 2007-11-01 Yongmin Zhang Procédé de transmission de contenu d'un réseau poste à poste et appareil de localisation et de lecture
WO2007121611A1 (fr) * 2006-04-21 2007-11-01 Yongmin Zhang Procédé et dispositif de transmission de contenu dans un réseau poste à poste
US7706260B2 (en) 2006-04-26 2010-04-27 Bittorrent, Inc. End-system dynamic rate limiting of background traffic
US8738778B2 (en) * 2006-04-26 2014-05-27 Bittorrent, Inc. Peer-to-peer download and seed policy management
EP1858226B1 (en) * 2006-05-19 2010-09-22 Microsoft Corporation Content management in peer-to-peer content distribution clouds
US8605721B1 (en) * 2006-05-25 2013-12-10 The Hong Kong University Of Science And Technology Scalable island multicast for peer-to-peer media delivery
US7945689B2 (en) * 2007-03-23 2011-05-17 Sony Corporation Method and apparatus for transferring files to clients using a peer-to-peer file transfer model and a client-server transfer model
BRPI0621786A2 (pt) * 2006-06-27 2011-12-20 Thomson Licensing solicitação de conteúdo entre parcerias com desempenho monitorado
JP4680860B2 (ja) * 2006-09-29 2011-05-11 富士通株式会社 データ通信方法
US20080091740A1 (en) 2006-10-12 2008-04-17 France Telecom Method for managing a partitioned database in a communication network
US8751605B1 (en) * 2006-11-15 2014-06-10 Conviva Inc. Accounting for network traffic
US8874725B1 (en) 2006-11-15 2014-10-28 Conviva Inc. Monitoring the performance of a content player
US8566436B1 (en) 2006-11-15 2013-10-22 Conviva Inc. Data client
US9264780B1 (en) 2006-11-15 2016-02-16 Conviva Inc. Managing synchronized data requests in a content delivery network
US8898232B2 (en) * 2006-11-29 2014-11-25 Thomson Licensing Contribution aware peer-to-peer live streaming service
US9094416B2 (en) * 2006-11-29 2015-07-28 Thomson Licensing Contribution aware peer-to-peer live streaming service
EP1931108B1 (en) * 2006-12-08 2011-02-09 Deutsche Telekom AG Method and system for peer-to-peer content dissemination
US7903652B2 (en) * 2006-12-14 2011-03-08 At&T Intellectual Property I, L.P. System and method for peer to peer video streaming
EP1936497A3 (en) * 2006-12-20 2009-04-08 NCR Corporation Automated wide area software distribution with reduced network bandwidth requirements
KR101112446B1 (ko) * 2006-12-23 2012-02-20 주식회사 엘지화학 과충전 안전성이 향상된 이차전지
JP4809256B2 (ja) * 2007-01-31 2011-11-09 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. データストリーミング方法
US20080201752A1 (en) * 2007-02-16 2008-08-21 At&T Knowledge Ventures, L.P. Multicast data packet recovery system
CN101267379B (zh) * 2007-03-14 2011-07-27 中国电信股份有限公司 基于p2p和cdn的统一内容承载和调度系统
JP5319072B2 (ja) * 2007-03-16 2013-10-16 ソフトバンクBb株式会社 データ転送システム及びデータ転送方法
CN101637007B (zh) * 2007-03-20 2014-09-24 汤姆森特许公司 分层结簇的p2p流系统
CN101026543A (zh) * 2007-03-28 2007-08-29 华为技术有限公司 点到点p2p内容共享的方法及系统
WO2008120353A1 (ja) * 2007-03-29 2008-10-09 Pioneer Corporation コンテンツ配信装置、コンテンツ配信方法、及びコンテンツ配信プログラム
JP4861472B2 (ja) * 2007-03-29 2012-01-25 パイオニア株式会社 コンテンツ配信装置、コンテンツ配信方法、及びコンテンツ配信プログラム
US8024723B2 (en) * 2007-05-18 2011-09-20 Samsung Electronics Co., Ltd. System and method for peer-to-peer datacasting in a broadcasting network
US20080294788A1 (en) * 2007-05-21 2008-11-27 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Systems and methods for p2p streaming
US7843861B2 (en) * 2007-05-31 2010-11-30 International Business Machines Corporation Coalition formation and service provisioning of bandwidth sharing AD HOC networks
US8040863B2 (en) * 2007-05-31 2011-10-18 International Business Machines Corporation Demand pull and supply push communication methodologies
US8520535B2 (en) 2007-05-31 2013-08-27 International Business Machines Corporation Optimization process and system for a heterogeneous ad hoc Network
US7860081B2 (en) * 2007-05-31 2010-12-28 International Business Machines Corporation Optimization process and system for multiplexed gateway architecture
US7873019B2 (en) * 2007-05-31 2011-01-18 International Business Machines Corporation Systems and methods for establishing gateway bandwidth sharing ad-hoc networks
US10623998B2 (en) 2007-05-31 2020-04-14 International Business Machines Corporation Price offerings for bandwidth-sharing ad hoc networks
US7979311B2 (en) * 2007-05-31 2011-07-12 International Business Machines Corporation Payment transfer strategies for bandwidth sharing in ad hoc networks
US8620784B2 (en) * 2007-05-31 2013-12-31 International Business Machines Corporation Formation and rearrangement of ad hoc networks
US7898993B2 (en) * 2007-05-31 2011-03-01 International Business Machines Corporation Efficiency and resiliency enhancements for transition states in ad hoc networks
US8249984B2 (en) * 2007-05-31 2012-08-21 International Business Machines Corporation System and method for fair-sharing in bandwidth sharing ad-hoc networks
US10419360B2 (en) * 2007-05-31 2019-09-17 International Business Machines Corporation Market-driven variable price offerings for bandwidth-sharing ad hoc networks
US8320414B2 (en) 2007-05-31 2012-11-27 International Business Machines Corporation Formation and rearrangement of lender devices that perform multiplexing functions
US7817623B2 (en) * 2007-05-31 2010-10-19 International Business Machines Corporation Optimization process and system for non-multiplexed peer-to-peer architecture
GB2450473A (en) * 2007-06-04 2008-12-31 Sony Comp Entertainment Europe A Server in a Peer to Peer system selecting and notifying a device that it is to become a member of a peer group
US9578288B2 (en) * 2007-06-08 2017-02-21 At&T Intellectual Property I, L.P. Peer-to-peer distributed storage for internet protocol television
CN101345628B (zh) * 2007-07-13 2011-06-22 中兴通讯股份有限公司 源节点选择方法
WO2009036461A2 (en) * 2007-09-13 2009-03-19 Lightspeed Audio Labs, Inc. System and method for streamed-media distribution using a multicast, peer-to-peer network
US20090122753A1 (en) * 2007-10-01 2009-05-14 Hughes Timothy J Dynamic data link segmentation and reassembly
US7636789B2 (en) * 2007-11-27 2009-12-22 Microsoft Corporation Rate-controllable peer-to-peer data stream routing
EP2235907B1 (en) * 2007-12-03 2019-08-28 Sound View Innovations, LLC A method and apparatus for the delivery of digital data
JP4864868B2 (ja) 2007-12-27 2012-02-01 富士通株式会社 データ配信システム
TWI342715B (en) * 2007-12-28 2011-05-21 Ind Tech Res Inst System and method for multi-participant conference without multipoint conferencing unit
US8260952B2 (en) * 2008-01-31 2012-09-04 Microsoft Corporation Multi-rate peer-assisted data streaming
WO2010077379A1 (en) 2008-05-23 2010-07-08 Jason Nieh Systems and methods for peer-to-peer bandwidth allocation
WO2009145748A1 (en) * 2008-05-28 2009-12-03 Thomson Licensing Multi-head hierarchically clustered peer-to-peer live streaming system
JP4982434B2 (ja) * 2008-06-11 2012-07-25 Kddi株式会社 通信システムおよび復号化装置
CN101291300B (zh) * 2008-06-12 2011-04-20 华为技术有限公司 消息业务中文件传输的实现方法、装置和用户设备
JP5223480B2 (ja) * 2008-06-13 2013-06-26 富士通株式会社 コンテンツ配信方法及び通信端末装置
US8594089B2 (en) 2008-09-30 2013-11-26 France Telecom Method of broadcasting data by a multicast source with broadcasting of an identifier of the broadcasting strategy in a multicast signalling channel
US8650301B2 (en) 2008-10-02 2014-02-11 Ray-V Technologies, Ltd. Adaptive data rate streaming in a peer-to-peer network delivering video content
US7996546B2 (en) 2008-10-02 2011-08-09 Ray-V Technologies, Ltd. Dynamic allocation of a quota of consumer nodes connecting to a resource node of a peer-to-peer network
US7738406B2 (en) * 2008-10-08 2010-06-15 Microsoft Corporation Models for routing tree selection in peer-to-peer communications
US7848355B2 (en) * 2008-10-30 2010-12-07 International Business Machines Corporation Resource allocation in peer-to-peer streaming
US8402494B1 (en) 2009-03-23 2013-03-19 Conviva Inc. Switching content
JP2010239212A (ja) * 2009-03-30 2010-10-21 Toshiba Corp 通信装置
JP5233799B2 (ja) * 2009-03-31 2013-07-10 ブラザー工業株式会社 コンテンツ配信システム、ノード装置、コンテンツ配信方法及びコンテンツ取得処理プログラム
BRPI0924650A2 (pt) * 2009-05-05 2016-01-26 Ericsson Telefon Ab L M método e arranjo para arranjar uma árvore de distribuição em um sistema de transmissão contínua não hierárquica, nó controlado por operador, e, artigo de fabricação.
US11064023B2 (en) 2009-05-27 2021-07-13 Verizon Media Inc. Method for actively sharing available bandwidth to consumer nodes in a peer-to-peer network for delivery of video streams
US8326992B2 (en) * 2009-05-27 2012-12-04 Ray-V Technologies, Ltd. Controlling the provision of resources for streaming of video swarms in a peer-to-peer network
US8750103B2 (en) * 2009-06-15 2014-06-10 Panasonic Corporation Application layer multicast (ALM) tree constructing apparatus, ALM tree constructing method, program, and integrated circuit
CN101938406B (zh) * 2009-07-02 2012-07-04 华为技术有限公司 微波多通道报文发送方法和装置及传送系统
US9100288B1 (en) 2009-07-20 2015-08-04 Conviva Inc. Augmenting the functionality of a content player
CN102055655A (zh) * 2009-11-06 2011-05-11 中兴通讯股份有限公司 一种结构化对等网络中消息的广播系统及方法
US9510029B2 (en) 2010-02-11 2016-11-29 Echostar Advanced Technologies L.L.C. Systems and methods to provide trick play during streaming playback
KR101089562B1 (ko) * 2010-04-27 2011-12-05 주식회사 나우콤 고화질 미디어 방송을 위한 피투피 라이브 스트리밍 시스템 및 방법
US8824470B2 (en) * 2010-06-02 2014-09-02 Microsoft Corporation Multiparty real time content delivery
US20120011200A1 (en) * 2010-07-06 2012-01-12 Roxbeam Media Network Corporation Method and apparatus for data storage in a peer-to-peer network
US9444876B2 (en) 2010-11-08 2016-09-13 Microsoft Technology Licensing, Llc Content distribution system
US9571571B2 (en) 2011-02-28 2017-02-14 Bittorrent, Inc. Peer-to-peer live streaming
WO2012154287A2 (en) 2011-02-28 2012-11-15 Bittorrent, Inc. Peer-to-peer live streaming
US8745122B2 (en) 2011-06-14 2014-06-03 At&T Intellectual Property I, L.P. System and method for providing an adjunct device in a content delivery network
US8443086B2 (en) 2011-06-22 2013-05-14 National Chiao Tung University Decentralized structured peer-to-peer network and load balancing methods thereof
US9680929B2 (en) * 2011-06-24 2017-06-13 Facebook, Inc. Concurrently uploading multimedia objects and associating metadata with the multimedia objects
US9160697B2 (en) * 2012-01-01 2015-10-13 Qualcomm Incorporated Data delivery optimization
US9613042B1 (en) 2012-04-09 2017-04-04 Conviva Inc. Dynamic generation of video manifest files
US8948081B2 (en) 2012-04-13 2015-02-03 Intel Corporation Device, system and method of multiple-stream wireless communication
US8745267B2 (en) * 2012-08-19 2014-06-03 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
CN102869003A (zh) * 2012-08-28 2013-01-09 中兴通讯股份有限公司 一种异构网络下业务内容分发的方法、业务管理平台
US9246965B1 (en) 2012-09-05 2016-01-26 Conviva Inc. Source assignment based on network partitioning
US10182096B1 (en) 2012-09-05 2019-01-15 Conviva Inc. Virtual resource locator
CN102970179B (zh) * 2012-11-01 2015-04-15 合一网络技术(北京)有限公司 一种基于点对点数据传输的媒体播放器测试方法及系统
US9363303B2 (en) 2013-03-15 2016-06-07 Microsoft Technology Licensing, Llc Network routing modifications for distribution of data
KR102240526B1 (ko) * 2013-12-11 2021-04-16 삼성전자주식회사 전자 장치의 컨텐츠 다운로드 방법 및 그 전자 장치
US9967336B2 (en) 2013-12-19 2018-05-08 Hive Streaming Ab Distributing content data to resource constrained devices in a segment of a P2P network
EP3085057B1 (en) * 2013-12-19 2017-05-17 Hive Streaming AB Distributing content data to resource constrained devices in a segment of a p2p network
US10116740B2 (en) * 2013-12-27 2018-10-30 Microsoft Technology Licensing, Llc Peer-to-peer network prioritizing propagation of objects through the network
JP6131907B2 (ja) * 2014-04-24 2017-05-24 カシオ計算機株式会社 分散データベース、データ共有方法、プログラム、装置
CN104320627B (zh) * 2014-11-10 2017-12-12 武汉市中心医院 一种医院病房视频监视的方法以及相关应用服务系统
US10305955B1 (en) 2014-12-08 2019-05-28 Conviva Inc. Streaming decision in the cloud
US10178043B1 (en) 2014-12-08 2019-01-08 Conviva Inc. Dynamic bitrate range selection in the cloud for optimized video streaming
US20180062935A1 (en) * 2016-08-25 2018-03-01 Futurewei Technologies, Inc. Hybrid approach with classification for name resolution and producer selection in icn
US10922646B1 (en) * 2017-09-26 2021-02-16 Amazon Technologies, Inc. Multi-echelon inventory planning under dynamic fulfillment policies
CN110519553B (zh) * 2018-05-22 2021-02-26 杭州海康威视数字技术股份有限公司 视频流转发控制方法、装置、电子设备及可读存储介质
US11019123B2 (en) 2018-06-22 2021-05-25 International Business Machines Corporation Multi-bitrate component sharding
CN109347968B (zh) * 2018-11-07 2021-09-24 网宿科技股份有限公司 一种下载资源文件的数据块的方法、设备和系统
CN111130814B (zh) * 2019-12-11 2021-05-18 深圳市高德信通信股份有限公司 一种基于用户需求的网络广播系统
US11102272B2 (en) * 2019-12-19 2021-08-24 Wangsu Science and Technology Co., Ltd. Method and device for downloading resource file
CN112100414B (zh) * 2020-09-11 2024-02-23 深圳力维智联技术有限公司 数据处理方法、装置、系统与计算机可读存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1168744A (ja) 1997-08-26 1999-03-09 P I Ii:Kk 情報配信システムの制御方法および情報配信システム
US6970939B2 (en) * 2000-10-26 2005-11-29 Intel Corporation Method and apparatus for large payload distribution in a network
US20020085493A1 (en) * 2000-12-19 2002-07-04 Rick Pekkala Method and apparatus for over-advertising infiniband buffering resources
US7305697B2 (en) * 2001-02-02 2007-12-04 Opentv, Inc. Service gateway for interactive television
US20020162109A1 (en) * 2001-04-26 2002-10-31 Koninklijke Philips Electronics N.V. Distributed storage on a P2P network architecture
US7117242B2 (en) * 2001-06-20 2006-10-03 Hewlett-Packard Development Company, L.P. System and method for workload-aware request distribution in cluster-based network servers
US7088684B2 (en) * 2001-07-16 2006-08-08 International Business Machines Corporation Methods and arrangements for dynamically modifying subsource address multicast data distribution trees
TWI265697B (en) * 2002-06-06 2006-11-01 Ibm Digital contents distribution system, digital contents distribution method, computer readable recording medium storing the program therein, and server and client therefor
JP2004070712A (ja) * 2002-08-07 2004-03-04 Nippon Telegr & Teleph Corp <Ntt> データ配信方法,データ配信システム,分割配信データ受信方法,分割配信データ受信装置および分割配信データ受信プログラム
JP2004080145A (ja) * 2002-08-12 2004-03-11 Canon Inc 映像サーバシステム及びその映像再生方法
KR20020079677A (ko) * 2002-09-14 2002-10-19 김정훈 접속단절의 내성을 가진 상호작용 이진 전송구조를 이용한 분산처리 시스템
US20050086469A1 (en) * 2003-10-17 2005-04-21 Microsoft Corporation Scalable, fault tolerant notification method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100947317B1 (ko) * 2006-11-20 2010-03-16 주식회사 알티캐스트 주문형 콘텐츠 시스템의 효율적인 운영방법

Also Published As

Publication number Publication date
EP1615403A1 (en) 2006-01-11
EP1615403B1 (en) 2007-08-01
US20060007947A1 (en) 2006-01-12
US7593333B2 (en) 2009-09-22
DE602005001815D1 (de) 2007-09-13
JP4738900B2 (ja) 2011-08-03
CN1719833B (zh) 2011-11-02
KR101109246B1 (ko) 2012-01-30
DE602005001815T2 (de) 2007-12-06
ATE369007T1 (de) 2007-08-15
JP2006025408A (ja) 2006-01-26
CN1719833A (zh) 2006-01-11

Similar Documents

Publication Publication Date Title
KR101109246B1 (ko) 피어-투-피어 컴퓨터 네트워크에서의 효율적인 일대다콘텐츠 배포 방법
Li et al. Mutualcast: An efficient mechanism for one-to-many content distribution
Deshpande et al. Streaming live media over a peer-to-peer network
Li et al. Mutualcast: An efficient mechanism for content distribution in a peer-to-peer (P2P) network
EP1633111B1 (en) A system and method for distributed streaming of scalable media
Kostić et al. Bullet: High bandwidth data dissemination using an overlay mesh
KR101183430B1 (ko) 피어-투-피어 네트워크에서의 수신자 구동형 스트리밍을위한 시스템 및 방법
KR101176648B1 (ko) 스트리밍 미디어의 삭제 코딩을 위한 시스템 및 방법
US8619775B2 (en) Scalable flow transport and delivery network and associated methods and systems
US20050015511A1 (en) Accelerated large data distribution in overlay networks
US20140079059A1 (en) System and method that routes flows via multicast flow transport for groups
US20110243131A1 (en) System and method that routes flows via multicast flow transport for groups
Birrer et al. FatNemo: Building a resilient multi-source multicast fat-tree
He et al. A performance evaluation of scalable live video streaming with nano data centers
WO2010011668A1 (en) A scalable flow transport and delivery network and associated methods and systems
JP2023033600A (ja) コンテンツ配信システム、ユニキャストマルチキャスト変換装置、コンテンツ配信方法及びコンテンツ配信プログラム
Ju et al. On building a low latency network for future internet services
Buskens et al. Reliable multicasting of continuous data streams
Mirkin Reliable real-time stream distribution using an Internet multicast overlay
Ashok Kumar et al. M-chaining scheme for VoD application on cluster-based Markov process
Xu et al. A low-time-delay scheduling algorithm for video on demand service over P2P networks
Raman et al. An Application-Controlled Framework for Reliable Multicast Transport
Sianati et al. Head-tail Video Streaming Over Peer to Peer Systems
Huang et al. Adaptive peer-to-peer streaming with MutualCast
Li et al. Fast scheduling on P2P streaming overlay

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151217

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161220

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee