KR20110026215A - 스트리밍 서비스의 지연 감소를 위한 단말기, 시드 서버 및 트랙커 서버 - Google Patents

스트리밍 서비스의 지연 감소를 위한 단말기, 시드 서버 및 트랙커 서버 Download PDF

Info

Publication number
KR20110026215A
KR20110026215A KR20090084016A KR20090084016A KR20110026215A KR 20110026215 A KR20110026215 A KR 20110026215A KR 20090084016 A KR20090084016 A KR 20090084016A KR 20090084016 A KR20090084016 A KR 20090084016A KR 20110026215 A KR20110026215 A KR 20110026215A
Authority
KR
South Korea
Prior art keywords
network
message
server
distance
seed server
Prior art date
Application number
KR20090084016A
Other languages
English (en)
Other versions
KR101562974B1 (ko
Inventor
조준호
조성호
신성재
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020090084016A priority Critical patent/KR101562974B1/ko
Priority to US12/845,318 priority patent/US9130958B2/en
Publication of KR20110026215A publication Critical patent/KR20110026215A/ko
Application granted granted Critical
Publication of KR101562974B1 publication Critical patent/KR101562974B1/ko

Links

Images

Classifications

    • 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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • 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
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

P2P 네트워크에서의 스트리밍에서 지연을 단축하기 위한 P2P 네트워크 시스템이 개시된다. P2P 네트워크 시스템은 적어도 하나의 피어와, 시드 서버와, 네트워크를 관리하는 트랙커 서버를 포함할 수 있다. 시드 서버는 적어도 하나의 피어에 콘텐츠를 제공한다. 피어, 시드 서버 및 트랙커 서버는 각각 P2P 네트워크가 적어도 하나의 피어들 각각이 자신이 연결을 맺고 있는 시드 서버로부터의 거리 정보에 따라 운영되도록 동작한다.
P2P 네트워크 시스템, 시드 서버, 피어, 스트리밍, 전송 지연

Description

스트리밍 서비스의 지연 감소를 위한 단말기, 시드 서버 및 트랙커 서버{Terminal, seed server and tracker server for reducing delay in streaming service}
하나 이상의 양상은 P2P 네트워크에서의 스트리밍 기술에 관한 것으로, 더욱 상세하게는 P2P 네트워크에서의 스트리밍에서 지연을 단축하기 위한 시스템에 관한 것이다.
스트리밍 기술은 인터넷에서 영상이나 음향, 애니메이션 등의 파일을 하드디스크 드라이브에 완전히 다운로드받아 재생하던 것을 실시간으로 재생해 주는 기법이다. 파일이 모두 전송되기 전이라도 사용자의 브라우저 또는 플러그인이 데이터의 표현을 시작하게 되어 있다. 따라서, 재생 시간이 단축되며 하드디스크 드라이브의 용량도 영향을 거의 받지 않는다.
한편, P2P(Peer-to-Peer) 기술이 발전함에 따라, PPLive 및 PPStream과 같은 P2P 기반 스트리밍 서비스가 제공되고 있다. 스트리밍 서비스에 적용되는 P2P 네트워크에서 사용자 노드는 콘텐츠를 제공하고 서버의 로드를 공유하는 서버로 동작할 수 있으므로 서버의 리소스 부담을 덜어준다. 또한, 국가 간 스포츠 경기나 대 통령 취임식과 같은 방송이 스트리밍 서비스로 제공되는 경우, 많은 사용자들이 한꺼번에 동일한 시간대에 몰리더라도 시스템의 증설 없이 충분히 스트리밍 서비스를 제공할 수 있다. 즉, P2P를 이용한 스트리밍 서비스는 서비스 업체측에는 비용 절감의 효과가 있으며 사용자측에서는 낮은 서비스 이용료와 높은 QoE(Quality of Experience)를 제공할 수 있다.
그러나, P2P 기술을 응용한 스트리밍 서비스는 서비스 품질을 보장하지 못한다. 그 중에서도 라이브 방송에서 중요한 실시간성에 큰 영향을 미치는 전송의 지연 문제는 P2P 스트리밍 기술에서 개선되어야 하는 부분이다. 사용자가 콘텐츠의 특정 위치를 재생하는 시각은 서버에서 해당 위치의 콘텐츠 부분을 내보내는 시각에 전송에 걸린 시간을 더해야 한다. 이렇게 전송으로 인한 재생의 시간적 격차를 전송으로 인한 지연 시간이라고 한다. P2P 스트리밍 기술에서 전송 지연 문제가 심각한 이유는 서버에서 콘텐츠를 직접 받아 이용하는 서버-클라이언트 모델에 비하여 P2P 네트워크에서는 여러 홉(hop)을 거쳐서 반복적으로 콘텐츠 패킷을 저장하고 전달하게 되므로 지연 시간이 늘어나게 되는 구조를 가지고 있기 때문이다.
P2P 스트리밍 서비스에서 지연 시간을 단축하기 위한 P2P 네트워크 시스템 이 제공된다.
일 측면에 따른 단말기는 거리 처리부와, 메시지 생성부와, 메시지 전송부 와, 메시지 수신부를 포함한다. 거리 처리부는 네트워크를 통해 콘텐츠를 제공하는 시드 서버로부터의 거리를 측정한다. 메시지 생성부는 네트워크 가입 요청 메시지 및 시드 서버로부터의 거리 정보를 포함하는 피어 리포트 메시지를 생성한다. 메시지 전송부는 가입 요청 메시지를 시드 서버로 전송하고, 피어 리포트 메시지를 시드 서버 또는 네트워크를 관리하는 트랙커 서버로 전송한다. 메시지 수신부는 시드 서버로부터 미리 설정된 제한 거리 정보를 포함하는 가입 응답 메시지를 수신 및 처리한다.
다른 측면에 따른 시드 서버는 메시지 수신부와, 토폴로지 관리부와, 메시지 전송부를 포함한다. 메시지 수신부는 적어도 하나의 단말기와의 거리 정보를 포함하는 피어 리포트 메시지를 수집한다. 토폴로지 관리부는 거리 정보에 따라서 네트워크 관리 메시지를 생성한다. 메시지 전송부는 네트워크 관리 메시지를 적어도 하나의 단말기로 전송한다.
또 다른 측면에 따른 트랙커 서버는 피어 리스트 관리부와, 메시지 수신부와, 토폴로지 관리부와, 메시지 전송부를 포함한다. 피어 리스트 관리부는 피어 리스트를 관리한다. 메시지 수신부는 피어 리스트에 포함된 적어도 하나의 단말기로부터 현재의 거리 정보 및 업링크 채널의 용량 정보를 포함하는 피어 리포트 메시지를 수신한다. 토폴로지 관리부는 수신된 피어 리포트 메시지를 수집하고, 수집된 적어도 하나의 단말기의 현재의 거리 정보 및 업링크 채널의 용량 정보를 이용하여 네트워크 관리 메시지를 생성한다. 메시지 전송부는 생성된 메시지를 전송한다.
스트리밍 서비스를 제공하는 P2P 네트워크 시스템에서 최대 지연 시간과 평균 지연 시간을 감소시킬 수 있다. 또한, P2P 네트워크 시스템에서 최소의 시드 서버를 이용하여 최대 지연 시간 및 평균 지연 시간을 감소시킬 수 있도록 P2P 네트워크 시스템을 운용할 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 일 실시예를 상세하게 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 P2P 네트워크 시스템 구성의 일 예를 나타내는 도면이다.
일 실시예에 따른 P2P 네트워크 시스템(100)은 웹 포털(110), 오리지널 콘텐츠 서버 그룹(115), CDN 에지 서버 그룹(120), 트랙커 서버(140), 모니터 서버(150), 적어도 하나의 피어들(10, 20, 30)을 포함할 수 있다. 적어도 하나의 피어들(10, 20, 30)은 콘텐츠를 소비하는 단말기를 나타낸다.
P2P 네트워크 시스템(100)에서 오리지널 콘텐츠 서버 그룹(115) 또는 CDN 에지 서버 그룹(120)과 적어도 하나의 피어들(10, 20)은 P2P 네트워크(170)를 형성한 뒤, 각각의 피어들(10, 20, 30)이 오리지널 콘텐츠 서버 그룹(115) 또는 CDN 에지 서버 그룹(120)으로부터 데이터를 얻거나 피어들(10, 20) 상호 간의 데이터 교환을 통해 주어진 시간 내에 각 피어들(10, 20)이 콘텐츠를 획득할 수 있다.
CDN 에지 서버 그룹(120)은 오리지널 콘텐츠 서버 그룹(115)으로부터 콘텐츠를 전달받아, CDN 에지 서버 그룹(120) 근처의 피어들에게 스트리밍 서비스를 제공하기 위한 서버로서 선택적으로 이용될 수 있다. CDN 에지 서버 그룹(120)의 도입으로 스트리밍 서비스 제공시에 서비스 품질(QoS)을 높이고, 오리지널 콘텐츠 서버 그룹(115)의 부하가 경감될 수 있다.
CDN 에지 서버 그룹(120)은 콘텐츠의 소스가 되는 서버의 그룹으로 적어도 하나의 시드 서버를 포함할 수 있다. CDN 에지 서버 그룹(120)은 적어도 하나의 시드 서버로 구성되며, 도 1에 도시된 바와 같이, 프론트 엔드 서버인 로드 밸런스 서버(load balance server; 121)와 백엔드 서버인 서버 1(122) 및 서버 2(123)를 포함할 수 있다. 로드 밸런스 서버(121)는 피어들(10, 20, 30)로부터 가입(join) 요청을 수신받고, 실제로는 피어들(10, 20, 30)이 서버 1(122) 또는 서버 2(123)와 같은 백엔드 서버와 연결을 맺도록 지원할 수 있다. 또는, 로드 밸런스 서버(121)도 백엔드 서버(122, 123)와 같이 콘텐츠를 제공하는 시드 서버로서 동작할 수 있다. 도 1에는 하나의 로드 밸런스 서버(121), 및 2 개의 백엔드 서버(122)가 도시되어 있으나, CDN 에지 서버 그룹(120)에 포함되는 서버의 종류 및 개수에 제한되지 않는다.
로드 밸런스 서버(121)는 백 엔드 서버들(122, 123)에게 로드를 분산해서 배분할 수 있다. 로드의 증가로 QoS를 보장하기 어렵다고 결정되면, 로드 밸런스 서 버(121)는 백 엔드 서버(122, 123)의 개수를 증가시킬 수 있고, 로드가 감소하면 비용 절감을 위하여 백 엔드 서버(122, 123)의 개수를 감소시킬 수 있다. 이하에서는, 설명의 편의상 시드 서버 중 서버 1(122)이 로드 밸런스 서버의 역할을 하면서 콘텐츠를 제공하는 것으로 설명한다.
웹 포털(110)은 피어들(10, 20, 30)이 P2P 스트리밍 서비스를 제공하는 시드 서버 예를 들어, 서버 1(122)을 검색하기 위하여 이용될 수 있다. 따라서, 피어들(10, 20, 30)이 P2P 스트리밍 서비스를 제공하는 서버 1(122)의 IP 주소를 알고 있는 경우에는 피어들(10, 20, 30)은 웹 포털(110)을 거칠 필요없이 서버 1(122)에 접속할 수 있다.
트랙커 서버(140)는 P2P 네트워크(170)가 트랙커 기반으로 동작될 때 P2P 네트워크 관리를 위해 이용되는 서버로서 시스템에 따라 선택적으로 이용될 수 있다. 트랙커 서버(140)는 각각의 콘텐츠별로 스트리밍 협력에 가입하고 있는 피어들의 목록을 가지고 있다. 따라서, 트랙커 서버(140)는 새로운 피어(30)가 가입했을 때 랜덤한 피어 목록을 알려주어 새로운 피어(30)가 스트리밍 서비스에 가입하고 있는 P2P 네트워크(170)에 연결될 수 있도록 도와준다.
모니터 서버(150)는 P2P 네트워크 시스템(100)에 가입하고 있는 피어들(201, 202)과 네트워크의 전반적인 상태를 모니터링하는 역할을 한다. 모니터 서버(150)는 시스템에 따라 선택적으로 이용될 수 있다. 설명의 편의상 트랙커 서버(140)가 모니터 서버(150)을 역할을 할 수 있는 것으로, 트랙커 서버(140)에는 모니터 서버(150)가 포함되는 것으로 설명한다.
도 1에서 피어 P1(10) 및 피어 P2(20)가 시드 서버인 서버 1(122)과 연결을 맺어서 스트리밍 서비스를 제공받고 있으며, 피어 P3(30)가 P2P 네트워크(170)에 가입하고자 한다고 가정하고 설명한다.
P2P 네트워크 시스템(100)에 가입한 피어들은 콘텐츠 조각을 서버 1(121)과 같은 시드 서버로부터 직접 받거나 다른 피어들로부터 받을 수 있다. 서버 1(121)로부터 콘텐츠 조각을 받는 경우는 서버 1(122)과 직접 연결을 맺고 있는 피어들(10, 20)이거나, 서버 1(122)과 직접 연결은 없지만 긴급한 즉, 곧 재생되어야 하는 콘텐츠 조각으로 다른 피어들로부터 구할 수 없는 경우일 수 있다. 그 외의 경우에는, 피어들(10, 20)끼리 가지고 있는 콘텐츠의 조각을 상호 교환하면서 콘텐츠가 확산될 수 있다.
현재 대부분의 서비스에서 피어들이 형성하는 P2P 네트워크(170)는 비구조적인 메쉬 형태(Unstructured P2P)를 이용한다. 새로운 피어 P3(30)가 P2P 네트워크(170)에 가입하기 위해서는 CDN 에지 서버 그룹(120) 중 하나의 시드 서버 예를 들어, 서버 1(122)에 접속하여 가입을 요청할 수 있다. 새로운 피어 P3(30)가 P2P 네트워크(170)에 가입하는 과정은 기존의 P2P 네트워크에서와 같이 수행될 수 있다. 서버 1(122)은 새롭게 가입한 피어(30)에 이미 P2P 네트워크(170)에 가입하고 있는 일부 다른 피어들(10, 20)의 리스트를 알려 주어야 한다.
이 과정에서 크게 2 가지 방법 즉, 트랙커(tracker) 기반 방식과 가십 프로토콜(gossip protocol) 기반 방식이 있다.
트랙커 기반한 방식에서는 서버 1(122)이 새롭게 가입한 피어 P3(30)에게 트 랙커 서버(140)의 주소를 알려준다. 피어 P3(30)는 트랙커 서버(140)의 주소를 가지고 트랙커 서버(140)에게 자신을 등록하고 피어 목록을 요청한다. 트랙커 서버(140)는 해당 콘텐츠의 스트리밍에 가입한 모든 피어들을 알고 있기 때문에 그 중에 일정 개수의 피어를 랜덤하게 선택하여 알려준다.
한편, 가십 프로토콜 기반의 방식에서는 서버 1(122)이 일부 피어의 주소를 알고 있어서 그 중 하나의 피어 예를 들어, 피어 P2(20)를 랜덤하게 대리자(deputy)로 선택하여 새롭게 가입한 피어(30)에게 대리자 피어 P2(20)를 알려준다. 새롭게 가입한 피어 P3(30)는 대리자 피어 P2(20)를 시작으로 가십 프로토콜을 운용하여 P2P 네트워크(170)에 가입하고 있는 임의의 일부 노드들 예를 들어, 피어 P1(10)에 대한 정보를 획득할 수 있다.
일부 서비스에서는 트랙커와 가십 프로토콜을 혼합하여 사용하는 경우도 있는데, 이 경우에는 트랙커가 P2P 네트워크에 가입하고 있는 모든 노드들을 알고 있는 것이 아니라 일부를 알고 있다. 따라서, 트랙커는 일부의 피어들만 알려줄 수 있고, 나머지 피어들은 가십 프로토콜을 통해 피어들이 개별적으로 정보를 획득하여야 한다. 이러한 방식은 트랙커를 사용하고는 있지만, 완전한 중앙 집중형 방식이 아니라는 점에서 순수한 가십 기반 방식과 동일하게 봐도 무방하다. 그러므로, 이하에서는 이러한 트랙커와 가십 프로토콜을 혼합하여 사용하는 경우는 편의상 가십 기반 방식의 설명에 통합하여 설명한다.
새롭게 가입한 피어 P3(30)은 트랙커 기반 방식 또는 가십 프로토콜 기반 방식으로 획득한 피어 목록을 가지고 목록에 있는 다른 피어들(10, 20)과 멤버쉽을 맺는다. 멤버쉽은 트랙커 서버(140)를 이용하여 또는 가십을 통해 주기적으로 갱신될 수 있다.
멤버쉽을 맺은 피어들 중에서 일부 피어들과는 파트너쉽을 맺는데, 랜덤하게 선택되거나 특정한 피어 선택 알고리즘에 의해 선택된 피어들과 파트너쉽을 맺을 수 있다. 멤버쉽을 맺은 다른 피어들은 이웃 피어 또는 이웃 단말기라고 부를 수 있다. 이렇게 하여 피어 P3(30)는 기존의 P2P 네트워크(170)에 새롭게 가입할 수 있고 다른 피어들(10, 20)과 멤버쉽 및/또는 파트너쉽 관계를 맺으며 비구조적으로 연결될 수 있다.
파트너쉽을 맺은 피어들 간에는 주기적으로 버퍼 맵(buffer map)을 교환한다. 스트리밍 콘텐츠는 여러 개의 데이터 청크(Data chunk)로 나누어질 수 있다. 버퍼 맵은 하나의 피어가 가지고 있는 컨텐츠 조각들에 대한 소유 정보를 표현한 정보이다. 라이브 스트리밍의 경우에는 네트워크에 참여하고 있는 모든 피어가 거의 동일한 시간대의 데이터 청크를 재생하는 것이 일반적이다. 따라서, 버퍼 맵에는 현재 재생 위치를 중심으로 단지 몇 분 내의 데이터 청크 정보만 표시하는 것이 일반적이다.
파트너쉽을 맺은 피어들 간에 버퍼 맵을 교환함으로써 피어들은 파트너쉽을 맺은 피어들이 어떠한 데이터 청크를 가지고 있는지 파악할 수 있다. 만일 자신이 가지고 있지 않은 데이터 청크를 파트너쉽을 맺은 피어들 중에 누군가가 가지고 있다면 이를 요청하여 버퍼를 채우게 된다.
도 2는 버퍼맵을 이용한 데이터 청크 검색 동작의 일 예를 나타내는 도면이 다.
도 2를 참조하면, 버퍼 맵들(210, 220, 230, 240, 250)은 현재 재생 위치를 표시하는 부분(seq_num)과 재생 위치 이후의 데이터 청크에 대한 확보 여부를 표시하는 부분(segments flag)로 구성될 수 있다. 여기에서, 하나의 비트(bit)는 순서대로 각 데이터 청크의 확보 여부를 나타낸다. '1'은 데이터 청크가 확보되었음을 나타내고, '0'은 데이터 청크가 확보되지 않았음을 나타낸다.
피어 P1의 버퍼 맵(210)을 참조하면, 피어 P1은 현재 1250번째 데이터 청크를 재생중에 있으며, 1251번, 1254번, 1257번 청크가 확보되지 않은 상황이다.
피어 P2, 피어 P3, 피어 P5, 피어 P7은 피어 P1과 파트너쉽을 맺고 있는 피어들로서 각각 조금씩 다른 재생 시간 위치를 가지고 있음을 알 수 있다. 피어 P1는 파트너쉽을 맵은 피어들의 버퍼맵(220, 230, 240, 250)을 참조하여 긴급히 필요한 1251번의 데이터 청크는 피어 P5에서 가지고 있음을 알 수 있다. 따라서, 피어 P1은 피어 P5에게 1251번의 데이터 청크를 요청하여 가져올 수 있다.
한편, 일부 P2P 라이브 스트리밍 시스템에서는 QoS 보장을 위해서 긴급한 영역(emergent area)의 미확보한 데이터 청크를 시드 서버 예를 들어, 서버 1(122)로부터 직접 가지고 오기도 한다. 예를 들어, 피어 P1이 긴급히 필요한 1251번의 데이터 청크를 긴급한 영역으로 설정하였으나, 파트너쉽을 맺은 다른 피어들이 해당 데이터 청크를 가지고 있지 않은 경우, 서버 1(122)에 직접 요청하여 긴급한 영역에 해당하는 데이터 청크를 직접 요청하여 가져올 수 있다.
다시 도 1을 참조하면, P2P 네트워크 시스템(100)은 현재 PC 기반의 동영상 스트리밍 서비스에서 사용되고 있으며, 향후에 TV나 셋톱 박스와 같은 CE향 방송 스트리밍 기술로 사용될 수 있다. 특히, IP 기반 오픈 인터넷 환경에서 콘텐츠를 스트리밍할 때 고화질의 콘텐츠를 신뢰성있게 전달하면서도 전송 비용을 절감할 수 있는 전송 기술 중 하나로 이용될 수 있다.
일 실시예에 따르면, 적어도 하나의 피어들이 연결되어 형성된 P2P 네트워크(170)가 적어도 하나의 피어들 각각(10, 20)은 자신이 연결을 맺고 있는 서버 1(122)과의 거리 정보를 이용하여 관리된다.
또한, P2P 네트워크(170)는 상대적으로 큰 업링크 채널의 용량(업링크 채널의 대역폭이라고도 함)을 가진 적어도 하나의 피어들이 시드 서버로부터의 거리 정보를 이용하여 시드 서버에 가깝게 위치되도록 관리된다. 상대적으로 큰 업링크 채널의 용량을 가진 피어는 다른 피어에 비하여 상대적으로 많은 멤버쉽 및 파트너쉽을 맺을 수 있기 때문에 상대적으로 큰 업링크 채널의 용량을 가진 피어들이 시드 서버에 가까이 위치되도록 관리됨으로써, P2P 네트워크 시스템(100)은 모든 사용자 노드(클라이언트 또는 피어)들에 대한 평균적인 지연시간을 단축할 수 있다.
또한, P2P 네트워크(170)는 적어도 하나의 피어 각각이 자신이 연결을 맺고 있는 시드 서버로부터의 거리 중 최대 거리가 미리 설정된 제한 거리 이하가 되도록 관리된다. 이를 통하여, 일부 사용자 노드들에 일어나는 최대 지연 시간을 단축할 수 있다. 최대 지연 시간을 고려하는 이유는, 콘텐츠를 소비하는 피어 즉, 사용자(또는 클라이언트)의 입장에서는 평균적인 지연 시간뿐만 아니라 지연이 어느 정도 이상 발생되지 않는 보장이 중요할 수 있기 때문이다.
P2P 네트워크(170)에서 시드 서버와 적어도 하나의 피어 각각 사이의 거리 중 최대 거리를 반경(radius)이라고 부를 수 있다. P2P 네트워크(170)의 반경을 미리 설정된 제한 거리 이하로 제한하는 것은 데이터 청크(data chunk), 또는 적어도 하나의 데이터 청크의 시퀀스인 서브 스트림(substream)의 이동 거리를 제한하는 것을 의미한다. 이동 거리는 다양한 방법으로 측정될 수 있는데 대표적으로 홉 수(hop count), 지연 시간(delay)이 가능하다.
반경을 넘어서는 시점에 새로운 피어들이 P2P 네트워크(170)에 가입하고자 한다면, P2P 네트워크(170)에 새로운 시드 서버가 할당되어 전체 P2P 네트워크(170)의 개수를 증가시킬 수 있다. 그런 다음, 새롭게 생성된 네트워크과 예전의 네트워크 사이에 피어 수를 균등하게 하기 위하여 피어의 재분배 과정이 수행될 수 있다.
P2P 네트워크(170)의 개수를 증가시키는 것과 반대로 P2P 네트워크(170)의 개수를 감소시킬 수도 있다. 예를 들어, 2개의 시드 서버가 각각 일정한 기준 이하의 적은 피어 수를 가지고 있다면, 2개의 시드 서버 중 하나의 서버를 중단하고 나머지 하나의 시드 서버가 포함된 P2P 네트워크에 가입시킴으로써 연결된 모든 피어를 합병함으로써 사용되는 시드 서버의 수를 줄일 수 있다.
P2P 네트워크(170)의 관리 및 운영에 이용되는 시드 서버로부터의 각 피어까지의 거리 정보는 다양한 타입 또는 척도로 측정될 수 있다. 예를 들어, 거리 정보는 홉 수(hop count) 또는 지연 시간(delay)으로 측정될 수 있다.
거리 정보는 각 피어들이 파트너쉽은 맺은 피어들의 거리 값에 자기 자신과 파트너쉽을 맺은 피어 사이의 거리를 더하는 방법으로 계산될 수 있다. 예를 들어, 거리 값의 타입이 홉 수라면, 소정의 피어의 홉수는 기본적으로 주변 피어들의 홉 수에 1홉을 더하여 계산될 수 있다. 거리 값의 타입이 지연 시간이라면 소정의 피어의 지연 시간은 주변 피어들의 지연 시간에 주변 피어들로부터 자신까지 측정된 지연 시간을 더하여 계산될 수 있다.
도 3a 및 도 3b는 시드 서버로부터의 거리를 나타내는 방법의 일 예를 나타내는 도면이다.
도 3a를 참조하면, 피어 P1(10)는 주변 피어들 즉, 피어 P2(20), 피어 P3(30), 피어 P4(40) 및 피어 P5(50)로부터 거리 정보를 수집한다. 여기에서 거리를 나타내는 타입으로 홉 수가 사용될 수 있다. 도 3a에 도시된 바와 같이, 피어 P2(20)의 거리 값은 4홉이고, 피어 P3(30)의 거리 값은 4홉, 피어 P4(40)의 거리 값은 3홉이고, 피어 P5(50)의 거리 값은 5홉이라고 가정한다. 피어 P1(10)은 수집된 정보를 가지고 자신의 거리를 계산해낼 수 있다.
거리 값의 계산 및 표현 방법 또한 여러가지가 있을 수 있다. 일 실시예에 따르면, 거리 값의 계산 및 표현 방법으로는 모든 피어들의 홉 수에 1을 더한 값을 나열하는 'All' 방식, 최소의 홉수를 가진 피어의 값에다 1을 더한 'Min' 방식, 최대의 홉 수를 가진 피어의 값에다 1을 더한 'Max' 방식, 모든 피어들의 홉 수에 1을 더한 값을 평균 낸 'Avg' 방식이 있을 수 있다.
도 3a에서 상술한 4가지 방식으로 피어 P1(10)의 홉 수를 계산하면, 도 3b의 테이블에 도시된 바와 같이, 피어 P1(10)의 홉 수는 All 방식의 경우 {4, 5, 5, 6} 로 나타낼 수 있고, Min 방식의 경우 4로 나타낼 수 있으며, Max 방식의 경우 6으로 나타낼 수 있고, Avg 방식의 경우 5로 나타낼 수 있다.
이들 거리 값의 타입들은 거리 값을 나타낼 때 함께 사용될 수 있다. 이와 같이 피어와 시드 서버 사이의 거리 값은 P2P 네트워크(170)의 반경을 제한하는데 이용되며, 피어들이 파트너쉽 교체를 통하여 P2P 네트워크(170)에서 효율적으로 배치되는데 이용되는 참고 값으로 이용될 수 있다.
도 4는 P2P 네트워크의 지연을 감소시키기 위한 피어의 효율적인 배치 동작을 나타내는 도면이다.
일 실시예에 따르면, 파트너쉽 교체(partnership replacement)를 통하여 P2P 네트워크(410)에서 피어들의 위치를 변경함으로써 스트리밍의 지연을 감소시킬 수 있다. 피어는 다른 피어로부터 데이터 청크를 받기도 하지만, 자신이 가지고 있는 데이터 청크를 주는 역할을 한다. 그러나, 동시적으로 다른 피어에게 데이터 청크를 줄 수 있는 능력(업링크 채널의 용량, Uplink Capacity)은 개개의 피어마다 다르고, 같은 피어의 경우에도 시간과 상황에 따라 계속해서 달라질 수 있다.
예를 들면, VDSL(very high-data rate digital subscriber line), ADSL(Assymmetric Digital Subscriber Line), 모뎀(modem)과 같이, 가정에 공급되는 네트워크 인프라의 용량이 다를 수 있다. 또한, 가정이나 회사와 같이 네트워크에 P2P 네트워크를 위한 디바이스만 존재하는 것도 아니다. 예를 들어, 가정에서 사용자는 IP기반의 콘텐츠를 제공하는 TV를 시청하면서 인터넷 검색을 위해 PC를 사용할 수도 있다. 즉, 하나의 디바이스가 사용가능한 업링크 채널의 용량은 다른 디바이스의 사용 여부에 따라서 계속해서 영향을 받을 수 있다. 네트워크 용량 뿐만 아니라 디바이스의 프로세싱 능력도 업링크 채널의 용량에 영향을 미치는 데 이 역시 디바이스마다 제각각일 수 있다. 이와 같은 여러 가지 이유 때문에 결국 모든 피어의 업링크 채널의 용량은 서로 다르며 시시각각 변할 수 있다.
피어의 업링크 채널의 용량이 각기 다르다고 가정한다면, 피어들을 시드 서버로부터 어떤 거리에 배치하느냐에 따라 네트워크의 전체적인 지연 시간에 영향을 미칠 수 있다.
도 4에서와 같이, 단순한 트리 구조의 예를 통해 살펴보면, P2P 네트워크(410)에서 업링크 채널의 용량이 많은 피어(401)가 이동하여 P2P 네트워크(420)에서와 같이 시드 서버(여기에서, 서버 1(122)) 가까이 배치되면, 같은 반경 또는 같은 트리의 높이에 더 많은 피어가 존재할 수 있게 된다. 즉, 업링크 채널의 용량이 많은 피어일수록 서버 가까이에 배치하면 이는 네트워크 전체의 반경을 줄이는 효과를 가져오기 때문에, 네트워크 전체의 지연시간 또는 피어의 평균 지연 시간을 줄일 수 있게 된다.
이와 함께, 업링크 채널의 용량이 크다는 것은 그만큼 P2P 네트워크에서 기여를 많이 하는 것이고, 기여를 많이 하는 노드일수록 서버 1(122)에 가까이 배치되어 작은 지연 시간을 가지게 된다. 이러한 방식은 사용자로 하여금 지연 시간을 줄이기 위해 기여를 많이 하게 만드는 인센티브가 될 수 있다.
업링크 채널의 용량이 큰 피어를 서버 가까이에 배치시키기 위해서 2 단계의 동작이 수행될 수 있다. 우선, 첫 단계는 피어의 현재 업링크 채널의 용량에 부합 하는 목표 거리를 알아내는 단계로 피어 레벨링이라고 부를 수 있다. 다음 단계는 목표 거리에 도달하기 위해 네트워크 내에서 피어의 상대적인 위치를 변경하는 것이다.
도 5는 피어 레벨링 동작의 일 예를 나타내는 도면이다.
피어 레벨링은 업링크 채널의 용량의 관점에서 전체 노드에 대해 특정 피어의 상대적 순위 또는 레벨을 구하는 과정이다. 이러한 레벨 값을 통해서 해당 피어가 위치해야 할 적정한 거리 값(목표 거리 값)을 구할 수 있다.
피어 레벨링은 트랙커 서버(140)가 존재하는 경우나 존재하지 않는 경우에 따라 피어 레벨링의 상세 동작이 구별될 수 있다.
P2P 네트워크(170)가 트랙커 기반 방식에 따라 운영되어, 트랙커 서버(140)가 존재하는 경우, 트랙커 서버(140)는 피어로부터 주기적으로 정보를 수집하여 네트워크 전체의 상황을 파악할 수 있다. 즉, 트랙커 서버(140)는 내부적으로 피어의 레벨과 목표 거리 값을 구할 수 있고, 이를 네트워크의 각 피어에게 알려줄 수 있다.
상세하게는, 트랙커 서버(140)가 존재하는 경우에 도 10a에 도시된 바와 같이, 모든 피어들은 주기적으로 피어 리포트 메시지를 트랙커 서버(140)에게 보고한다. 피어 리포트 메시지는 피어들이 전송하는 메시지로, 피어의 업링크 채널의 용량(uplink capacitor)과 현재의 거리 정보 등을 포함할 수 있다. 피어 리포트 메시지의 상세에 대해서는 도 10a 내지 10c 및 도 16a 내지 도 16c를 참조하여 후술한다. 모든 피어들로부터 피어 리포트 메시지를 받은 트랙커 서버(140)는 모든 피 어의 레벨과 레벨에 적합한 목표 거리 값을 계산할 수 있다.
따라서, 트랙커 서버(140)는 적어도 하나의 피어들로부터 수신된 피어 리포트 메시지를 분석하여 모든 피어들에게 네트워크의 요약 정보인 요약 리포트(summery report) 메시지를 제공할 수 있다. 요약 리포트 메시지에는 전체 피어의 수, 평균 업링크 채널의 용량 등과 같은 네트워크에 대한 요약 정보와 함께 업링크 채널의 용량 측면에서 본 특정 피어의 백분위 값, 적합한 목표 거리와 같은 정보들이 포함될 수 있다. 요약 리포트 메시지는 피어 리포트 메시지에 대한 응답 형식으로 피어 리포트 메시지를 전송한 피어에게 제공될 수 있고, 또는 주기적으로 모든 피어들에게 제공될 수도 있다.
한편, 트랙커 서버(140)가 존재하지 않는 경우에는, 가십 기반의 멤버쉽 프로토콜을 이용하여 피어 레벨링이 수행될 수 있다. 도 6a 및 도 6b에 도시된 바와 같이, 멤버쉽 프로토콜은 피어가 P2P 네트워크에 처음 가입하였을 때와 주기적으로 멤버쉽을 교체할 때 사용되는 프로토콜이다. 이 프로토콜을 사용하여 네트워크에 존재하는 임의의 피어에 대한 정보를 얻고 멤버쉽을 맺는 것이다. 이때, 각각의 피어들은 수집된 다른 피어들의 정보를 이용하여 네트워크의 전체적인 정보를 유추하는 방식으로 피어 레벨링을 수행할 수 있다.
도 6a 내지 도 6c는 멤버쉽 과정이 수행되는 경우의 일 예를 나타내는 도면이다.
멤버쉽 과정은 피어들 간에 멤버쉽 메시지를 송수신함으로써 수행된다. 멤버쉽 메시지는 2가지 종류인데, 멤버쉽 요청 메시지와 멤버쉽 요청 메시지에 대한 멤 버쉽 응답 메시지이다.
멤버쉽 과정은 가입 과정이 끝난 다음 수행될 수 있다. 예를 들어, 도 6a에 도시된 바와 같이 P2P 네트워크에 가입하고자 하는 피어 P3(40)가 서버 1(122)에 가입 요청 메시지를 보내고, 서버 1(122)로부터 가입 응답 메시지를 수신하면, 피어 P3(30)는 P2P 네트워크에 가입한 P2(20)에 멤버쉽 요청 메시지를 전송할 수 있다. 피어 P3(30)은 피어 P2(20)로부터 멤버쉽 응답 메시지를 수신함으로써 멤버쉽을 맺을 수 있다.
또한, 멤버쉽 과정은 도 6b에 도시된 바와 같이 멤버쉽을 교체하기 위하여 수행될 수 있다. 멤버쉽의 교체는 특별히 교체의 필요가 발생할 때 또는 주기적으로 수행될 수 있다. 예를 들어, 도 6b에서 피어 P3(30)가 피어 P2(20)에서 P4(40)로 멤버쉽을 교체하고자 하는 경우, 피어 P3(30)는 피어 P4(40)에 멤버쉽 요청 메시지를 전송하고, 피어 P4(40)로부터 멤버쉽 응답 메시지를 수신함으로써 P4(40)와 멤버쉽을 맺을 수 있다.
트랙커 기반일 때 멤버쉽 요청 메시지는 트랙커 서버(140)가 알려준 피어 목록에 존재하는 피어들에게 보내어진다. 반면 가십 프로토콜 기반일 때에는 가십 프로토콜을 이용하여 주변 피어 노드에서부터 전파된다.
도 6c는 멤버쉽 프로토콜에 이용되는 멤버쉽 요청 메시지 및 멤버쉽 응답 메시지에 추가적으로 포함될 수 있는 정보의 일 예를 나타낸다. 멤버쉽 프로토콜에 이용되는 메시지에는 피어의 현재 거리 정보 및 업링크 채널의 용량 정보가 기존의 멤버쉽 메시지에 추가될 수 있다. 현재 거리 정보는 거리 타입(Dist type), 거리 값 타입(Dist value type) 및 거리 값(Dist value)를 포함할 수 있다.
현재 거리 정보를 이용하여 각 피어들은 자신이 시드 서버와 얼마나 떨어져 있는지 계산할 수 있다. 거리 값의 타입이 홉 수(hop count)이면 기본적으로 주변 피어들의 홉수에 1홉을 더한 것이 자신의 홉수이다. 거리 값의 타입이 지연시간이라면 기본적으로 주변 피어들의 지연시간 값에 주변 피어들과 자신에게서 측정된 지연 시간 값을 더하면 된다.
또한, 멤버쉽 프로토콜을 통해 획득된 다른 피어들의 정보를 가지고, 각 피어들은 회귀 분석(Regression)과 같은 추정(estimation) 기법들을 사용하여 전체 네트워크의 정보 및 자신의 목표 거리 정보를 추정해나갈 수 있다. 전체 네트워크의 정보는 전체 피어 수(Est. Num of Peers) 및 전체 업링크 채널의 용량(Est. Avg. Up)을 포함할 수 있으며, 목표 거리 정보는 목표 거리 타입(Target dist type), 목표 거리 값 타입(Target dist value type) 및 목표 거리 값(Target dist value)을 포함할 수 있다.
멤버쉽 프로토콜은 지속적으로 이루어지기 때문에 시간이 지날수록 다른 피어들로부터 수집된 정보가 누적될 것이다. 따라서, 추정의 결과는 점점 나아질 수 있다. 추정의 정확도를 높이기 위해서 전술한 정보 외에도 각 피어들은 피어들 각각이 추정한 추정 값을 서로 주고 받을 수 있다. 다른 피어로부터 추정 값을 수신한 피어는 수신된 추정 값을 자신의 추정 과정에 반영할 수 있다.
전술한 바와 같이, 피어 거리의 목표 거리의 결정 또는 추정으로, 도 5에 도시된 바와 같이, 피어 P7(70)은 서버 1(122)과의 목표 거리는 2홉이며, 현재 거리 는 3홉으로 결정할 수 있다.
피어 레벨링이 이루어진 다음 단계로서 피어들은 목표 거리 값에 도달하기 위해 파트너쉽을 교체한다. 기존의 P2P 네트워크에서도 피어들은 필요에 따라서 또는 주기적으로 파트너쉽을 교체한다. 그러나, 이러한 교체는 랜덤한 방식으로 이루어지는 경우가 대부분이어서 파트너쉽 교체를 위한 특별한 규칙이 없다.
그러나, 일 실시예에 따른 파트너쉽 교체는 피어가 목표 값에 가깝게 도달하기 위한 방법으로 사용되므로, 목표 거리 값과 현재의 거리 값이 다를 경우, 멤버쉽을 맺고 있는 피어들 중에서 가장 적합한 피어들을 선택하여 파트너쉽을 맺는 알고리즘이 이용될 수 있다. 이 과정에서, 기존의 파트너쉽을 맺은 피어들 중에 불필요한 피어들은 새로운 파트너들로 교체된다.
도 7은 파트너쉽 교체를 통한 피어의 재배치 동작의 일 예를 나타내는 도면이다.
도 7의 네트워크(710)에서 피어 P1(10)의 목표 거리 값은 3.5 홉인데 반해 현재 거리는 5홉이다. 따라서, 피어 P1(10)는 서버 (122)로부터 거리가 가까운 피어로 파트너쉽을 교체한다.
네트워크(720)를 참조하면, 피어 P1(10)는 파트너인 피어 P4(40)를 새로운 파트너인 피어 P5(50)로 교체하였다. 피어 P4(40)의 거리가 7홉이고, 피어 P5(50)의 거리가 2홉이므로, 파트너쉽 교체로 인해, 피어 P1(10)의 거리는 3.8홉이 되어 목표 거리보다 근접하게 된다. 이러한 과정은 멤버쉽 리스트에 존재하는 피어들 중에서 가장 목표 거리 값과 일정 거리 이하 이내로 근접하게 될 수 있도록 파트너 피어들을 선택해 나가는 과정이라고 할 수 있다. 여기에서, 일정 거리는 실제 네트워크 구현에 따라 결정되고 변경될 수 있다. 파트너쉽 교체를 통해 목표 거리 값에 일정 범위 이내로 근접하게 되지 않는다면, 멤버쉽 교체를 통해 이를 개선할 수 있다.
멤버쉽 교체시에는 기존 파트너들이 제외될 수 있다. 새롭게 멤버쉽이 된 피어들 중에는 목표 거리 값에 보다 근접하게 할 수 있게 만드는 피어가 존재할 가능성이 있다. 따라서, 이러한 과정을 반복하다 보면 피어는 점점 목표 거리 값에 근접하게 될 수 있다.
이상에서는, 피어의 현재 거리가 목표 거리보다 먼 경우, 피어가 현재 거리와 목표 거리 사이의 차이가 소정의 거리 이하가 되도록 파트너쉽 및/또는 멤버쉽을 교체하는 동작을 주로 설명하였으나, 피어의 현재 거리가 목표 거리보다 가까운 경우에도 피어는 현재 거리와 목표 거리의 차이가 소정의 거리 이하가 되도록 파트너쉽 및/또는 멤버쉽을 교체하는 동작을 수행할 수 있다. 즉, 피어들의 이동에 대한 밸런싱을 위하여 피어들은 현재 거리가 목표 거리에 근접하도록 이동하여 시드 서버와 가까워질 수 있으며, 시드 서버와 멀어질 수도 있다.
목표 거리 값에 근접하게 되었다 하더라도 피어는 다른 이유에 의해 파트너를 변경해야 할 경우가 있다. 예를 들어, 현재 파트너들 중에는 필요한 데이터 청크가 존재하지 않을 경우에는 파트너들 중에 일부를 교체하여야 한다. 이 경우에도 마찬가지로 목표 거리 값과 현재 거리 값의 차이가 가장 적게 나는 파트너들이 우선적으로 선택될 수 있다.
다음으로, 반경을 제한하는 비구조적인 P2P 네트워크의 구성과 동적인 스케일링에 따른 네트워크의 재구성 방법에 대해 설명한다.
전술한 바와 같이, P2P 네트워크의 반경을 제한하는 것은 피어를 통해 전달되는 데이터 청크, 또는 서브 스트림의 이동 거리를 제한하는 효과를 가져온다. P2P 네트워크의 반경에 제한된 값에 도달했을 때 새로운 피어가 가입한다면 새로운 시드 서버를 할당하여 P2P 네트워크의 개수를 증가시키게 된다. 그러한, 이와 같이 하면, P2P 네트워크들 사이에 불균형이 발생할 수 있는데, 이러한 불균형을 해소하기 위하여 새롭게 생성된 P2P 네트워크와 예전의 P2P 네트워크 사이에 피어 수를 조절하기 위한 피어 재분배를 실시할 수 있다. 이러한 과정을 네트워크의 분할(split)이라고 한다.
도 8a 내지 도 8c는 P2P 네트워크 분할 동작의 일 예를 나타내는 도면이다.
P2P 네트워크의 분할은 P2P 네트워크의 반경이 미리 설정된 제한 거리에 도달하거나 초과될 때 서버의 개수를 늘이고 피어들을 재구성하는 과정을 말한다. 서버를 늘리는 시점에 명시적으로 네트워크를 재구성하기 위하여 기존 네트워크의 일부 피어들을 새로 구성된 네트워크로 이동(migration)시킬 수 있다. 도 8a 내지 도 8c를 참조하면, 네트워크의 분할을 통해서 시드 서버의 부하를 균형있게 맞출 수 있을 뿐만 아니라 네트워크에 존재하는 피어들의 평균 거리를 단축시킬 수 있음을 알 수 있다.
도 8a에 도시된 바와 같이, P2P 네트워크(810)의 경우 제한되는 반경은 2홉인 경우, 피어 P4(40), 피어 P5(50) 및 피어 P6(60)이 P2P 네트워크에 가입하게 되 면, P2P 네트워크는 도 8b에 도시된 바와 같이 구성될 수 있다.
도 8b에 도시된 바와 같이 하나의 서버 1(122)이 콘텐츠를 제공하는 상황에서 평균적인 홉수가 2.1이고, 최대 홉수가 4가 되어, 제한된 반경을 벗어나게 되므로 도 8c에 도시된 바와 같이, P2P 네트워크의 분할이 수행될 수 있다. 도 8c에 도시된 바와 같이, 새로운 서버 2(123)가 투입됨으로써 평균 홉 수가 1.3이고, 최대 홉수가 2인 P2P 네트워크(810)로 네트워크가 분할되어 재구성될 수 있다. P2P 네트워크의 분할 방식은 여러 가지가 있을 수 있다.
도 9a 내지 도 9c는 P2P 네트워크 분할의 3가지 유형을 나타내는 도면이다.
도 9a는 분할 방식 중 분할된 P2P 네트워크에 있는 피어들이 완전히 분리된 형태를 나타낸다. 도 9a의 P2P 네트워크(910)에서, 피어 P1(10), 피어 P2(20), 피어 P3(30), 피어 P4(40) 및 피어 P5(50)는 시드 서버들 중 서버 1(122)과 연결을 맺고 있으며, 서로 멤버쉽 또는 파트너쉽을 맺고 있다. 그러나, 서버 1(122)과 연결을 맺고 있는 피어들(10, 20, 30, 40 및 50)은 서버 2(123)와 연결된 피어들(60, 70, 80, 90)과는 멤버쉽을 맺고 있지 않다. 마찬가지로, 서버 2(123)와 연결을 맺고 있는 피어들(60, 70, 80, 90)은 서로 멤버쉽 또는 파트너쉽을 맺고 있으나, 서버 1(122)과 연결을 맺고 있는 피어들(10, 20, 30, 40 및 50)과는 멤버쉽을 맺고 있지 않다.
이러한 P2P 네트워크의 완전한 분리는 가장 간단하게는 새롭게 가입하는 피어들을 새로운 시드 서버 예를 들어 서버 2(20)에 배정함으로써 구현할 수 있다. 이러한 방식의 장점은 네트워크의 재구성에 따른 오버헤드가 없다는 점이다. 그러 나, 이 경우에는 2개의 P2P 네트워크의 크기가 불균형해질 수 있기 때문에, 시드 서버들(122, 123)이 비효율적으로 운용될 수 있다. 즉, 크기가 큰 쪽의 P2P 네트워크에 존재하는 피어들은 불필요하게 평균 지연 시간과 최대 지연 시간이 크게 된다. 서버 간의 불균형을 방지하기 위하여, 일부 피어들이 기존 P2P 네트워크에서 완전히 탈퇴(Leave)를 하고, 새로운 시드 서버에 가입할 수 있다.
다음으로, 도 9b 및 도 9c에 도시된 바와 같이, 피어들간의 연결이 시드 서버와 상관없이 혼합된 형태가 있을 수 있다. 이 경우, 적어도 하나의 피어의 일부가 기존의 시드 서버와의 연결을 중단하고, 새로운 시드 서버가 포함된 새로운 네트워크로 이동하지만, 기존의 네트워크에 속한 피어들 및 새로운 네트워크에 속한 피어들과 멤버쉽이 미리 설정된 비율로 구성하게 된다.
도 9b에 도시된 바와 같이, 완전한 혼합의 경우에는 피어는 기존의 네트워크에 속한 피어들 및 새로 구성된 네트워크에 속한 피어들과 멤버쉽을 동일한 비율로 구성한다.
상세하게는, 도 9b에 도시된 P2P 네트워크(920)에서 피어들(10, 20, 30, 40, 50)는 서버 1(122)과 연결을 맺고 있으나, 각각의 멤버쉽 리스트에는 피어들(10, 20, 30, 40, 50)의 목록과 서버 2(123)에 연결을 맺고 있는 피어들(60, 70, 80, 90)의 목록이 반절씩 포함될 수 있다.
마지막으로, 도 9c에 도시된 바와 같이, 완전한 분리와 완전한 혼합의 중간 과정이 있을 수 있다. 이 경우에는 완전한 혼합의 경우와 같이, 양쪽의 피어 모드를 대상으로 멤버쉽을 맺는다. 그러나, 동일한 비율이 아니라, 기존의 네트워크에 속한 피어들 및 새로운 네트워크에 속한 피어들과 멤버쉽을 차등적 비율로 구성한다. 즉, 각 P2P 네트워크 내부의 연결은 보다 강화하면서 P2P 네트워크 사이의 연결은 상대적으로 적게 유지한다. 이러한 비율은 네트워크의 분할시에 서버에 의해 결정되고 이동해야 하는 피어들에게 명시적으로 알려진다.
예를 들어, 도 9c에 도시된 P2P 네트워크(930)에서 피어들(10, 20, 30, 40, 50)는 서버 1(122)과 연결을 맺고 있으나, 각각의 멤버쉽 리스트에는 피어들(10, 20, 30, 40, 50)의 목록과 서버 2(123)에 연결을 맺고 있는 피어들(60, 70, 80, 90)의 목록이 7:3의 비율로 포함될 수 있다. 마찬가지로, 피어들(60, 70, 80, 90)은 서버 2(123)와 연결을 맺고 있으나, 각각의 멤버쉽 리스트에는 피어들(60, 70, 80, 90)의 목록과 서버 1(122)과 연결을 맺고 있는 피어들(10, 20, 30, 40, 50)의 목록이 7:3의 비율로 포함될 수 있다.
도 9b나 도 9c에 도시된 방법으로 재구성 과정을 거치게 되면 한 쪽의 시드 서버 예를 들어, 서버 1(122)이 갑자기 예기치 못하게 서비스를 중단해야 하는 상황이 발생했을 때에도 피어들(10, 20, 30, 40, 50)은 서버 2(123)와 연결을 맺고 있는 피어들(60, 70, 80, 90)의 일부와 멤버쉽을 맺고 있으므로, 서비스가 강건하게 유지되고, 데이터의 가용성(data availibility) 측면도 좋아질 수 있다.
이하에서는, 피어 리포트 메시지의 전달에 대한 도 10a 및 도 10b와, 분할 통지 메시지의 전달에 대한 도 11a 및 도 11b를 참조하여 P2P 네트워크의 분할 과정에 대하여 더욱 상세하게 설명한다.
도 10a 내지 도 10c는 피어 리포트 메시지 전달의 일 예를 나타내는 도면이 다.
도 10a 및 도 10b에서 각각 P2P 네트워크(1010, 1020)가 반경이 넘어서는 시점이라고 가정한다. 이러한 상황에서, 일부 피어는 자신의 거리 값이 제한된 반경 값을 벗어나고 있음을 알 수 있다. 이는 새로운 피어가 네트워크에 가입하는 경우에 알 수도 있고, 기존의 피어들이 멤버쉽과 파트너쉽을 변경해가다가 목표 거리 값이나 현재 거리 값이 제한된 반경보다 크다는 것을 알게 될 수도 있다.
도 10a에 도시된 바와 같이, 트랙커 서버(140)가 존재하는 P2P 네트워크(1010)에서 트랙커 서버(140)는 평소에도 피어 레벨링을 하기 위하여 피어들(10, 20, 30, 40, 50, 60)로부터 피어 리포트 메시지를 주기적으로 수집할 수 있다. 트랙커 서버(140)는 피어 리포트 메시지의 수집에 의해 네트워크의 반경을 명확하게 알고 있기 때문에 네트워크가 반경의 제한을 벗어난다는 것을 확정적으로 알 수 있다.
한편, 도 10b에 도시된 바와 같이, 트랙커 서버(140)가 없는 네트워크(1020)에서, 목표 거리 값을 피어가 유추하는 경우는 피어들(10, 20, 30, 40, 50, 60) 중 일부, 예를 들어, 피어 P6(60)가 자신이 반경 제한을 벗어난다는 사실을 유추할 수 있다. 따라서, 피어 P6(60)는 자신의 거리 값이 제한된 반경을 넘어선다는 것을 알게 되는 경우에 곧바로 이를 보고할 수 있다. 또는, 피어 P6(60)는 자신의 거리 값이 제한된 반경을 넘어선다는 것을 알게 된 후 일정 시점이 지난 다음에 피어 리포트 메시지를 서버 1(122)에 보고할 수도 있다.
예를 들어, 피어 P6(60)은 기존의 멤버쉽을 서버 1(122)과의 거리가 더 가까 운 피어로 교체하여 서버 1(122)과의 거리를 줄일 수 있다. 이러한 멤버쉽 교체를 통해 서버 1(122)과의 거리를 P2P 네트워크의 미리 설정된 제한 반경 내로 줄이도록 시도하고, 거리 정보를 더 수집했음에도 불구하고 계속해서 현재 거리 값이 목표 거리 값이나 제한된 반경보다 큰 경우, 피어 리포트 메시지를 통해 이러한 사실을 서버 1(122)에 보고할 수 있다.
도 10c는 도 10a에서 트랙커 서버(140)가 수집하거나, 도 10b에서 서버 1(122)에 보고되는 피어 리포트 메시지(1030)의 일 예를 나타낸다. 도 10c에 도시된 바와 같이, 피어 리포트 메시지에는 시드 ID, 피어 IP, 거리 타입(Dist type), 거리 값 타입(Dist value type), 거리 값(Dist value), 업링크 채널의 용량(Up capacity)이 포함될 수 있다.
피어 리포트 메시지의 수집 결과 트랙커 서버(140)에 의해 네트워크의 반경이 벗어났다고 판단된 경우, 네트워크 분할이 수행될 수 있다. 또한, 트랙커 서버(140)가 없을 경우에 여러 피어로부터 시드 서버 예를 들어, 서버 1(122)에게 보고된 시드 서버로부터의 거리가 미리 설정된 제한 거리를 넘는 피어로부터 수신된 피어 리포트 메시지의 개수가 일정 수준을 넘어섰을 때 네트워크의 분할이 동작할 수 있다. 네트워크를 분할하기 위해서, 먼저 시드 서버를 늘이고, 기존 시드 서버에 포함된 P2P 네트워크의 멤버들 중 일부에게 분할 통지 메시지를 보낸다.
분할의 형태가 도 9a에 도시된 바와 같이, 완전한 분리의 형태이고 명시적인 재구성이 없는 경우에는 새롭게 가입하는 피어들에게 새로운 시드 서버를 알려주는 것으로 충분하기 때문에 분할 통지 메시지들이 이용되지 않을 수도 있다. 그 외의 완전한 분리 형태이지만 P2P 네트워크들 간의 균형을 위하여 네트워크 재구성이 수행되거나, 도 9b 및 9c에 도시된 바와 같이, 혼합 형태의 분할의 경우에는 분할 통지 메시지가 이용될 것이다.
도 11a는 트랙커 기반의 방식에서 분할 통지 메시지를 전달하는 동작을 나타내고, 도 11b는 가십 기반의 방식에서 분할 통지 메시지를 전달하는 동작을 나타내는 도면이다.
도 11a에 도시된 바와 같이, 트랙커 기반의 방식의 P2P 네트워크에서(1110)에서, 트랙커 서버(140)가 임의로 선정한 일부 피어들에게 서버가 분할 통지 메시지를 일일이 보낸다. 몇 개의 피어에게 메시지를 보낼 것인가는 새롭게 구성되는 P2P 네트워크의 제한 반경에 따라 달라질 수 있다. 새롭게 구성되는 P2P 네트워크의 반경 제한이 기존의 P2P 네트워크의 반경 제한과 동일한 경우에는, 트랙커 서버(140)는 기존의 P2P 네트워크에 가입하고 있는 절반의 피어들에게 분할 통지 메시지를 보낼 수 있다.
도 11a에 도시된 바와 같이, 트랙커 기반의 P2P 네트워크(1110)에서, 트랙커 서버(140)는 피어 P1(10), 피어 P5(50), 및 피어 P6(60)에 분할 통지 메시지(1120)를 전달할 수 있으며, 트랙커 기반의 분할 통지 메시지(1120)를 받은 피어들(10, 50, 60)은 분할 통지 메시지(1120)에 포함된 정보에 따라 새로운 시드 서버에 가입하는 과정을 거친다.
피어들(10, 50, 60)은 새로운 네트워크로 이동한 뒤 멤버쉽을 맺는데, 네트워크의 분할 형태에 따라 양측 네트워크에 소속된 피어들의 멤버쉽을 맵는 비 율(Split Ratio)이 달라질 수 있다. 이러한 비율도 분할 통지 메시지(1120)를 통해 알려 주어야 한다. 예를 들어, 완전한 분리의 형태라면 분할 비율은 1이 되고, 완전한 혼합의 형태라면 분할 비율은 0.5가 된다. 느슨한 형태의 분리라면 분할 비율의 값은 0.5를 제외한 0과 1 사이의 값이 될 것이다.
분할 통지 메시지(1120)에는 기존 시드 서버의 ID(Old Seed ID), 새로운 시드 서버의 ID(New Seed ID), 새로운 시드 서버의 IP 주소(New Seed IP) 및 분할 비율(Split Ratio)이 포함될 수 있다.
도 11b에 도시된 바와 같이, 가십 프로토콜 기반의 P2P 네트워크(1130)에서, 분할 통지 메시지가 가십 프토토콜을 이용해서 전파(flooding)된다. 가십 프로토콜 기반의 분할 통지 메시지(1140)에는 트랙커 기반의 분할 통지 메시지에 비하여 이동 비율(Move Ration)이 더 포함될 수 있다. 이동 비율은 얼마나 많은 피어들이 새로운 시드 서버로 이동해야 할 것인지를 알려주기 위한 정보이다. 일반적인 경우, 이동 비율은 0.5로 설정될 수 있다. 이동 비율이 0.5라는 것은 메시지를 받은 피어들 중에서 50%의 확률로 이동을 실행에 옮기라는 것을 의미한다.
가십 프로토콜 기반에서는 분할 통지 메시지(1140)에 포함된 이동 비율에 따라서 받은 노드들 중 일부가 새로운 시드 서버에 가입하는 과정을 진행한다. 새로운 시드 서버로 이동할 것인지는 각 피어들이 자신의 목표 거리 및 현재 거리에 대한 정보를 이용하여 결정할 수 있다. 일반적으로, 현재 거리가 목표 거리보다 먼 피어들이 새로운 시드 서버로 이동을 시도할 것이다.
이상에서는 P2P 네트워크 분할 과정을 통해 P2P 네트워크 개수를 증가시킴으 로써 스트리밍 서비스의 지연 시간을 감소시키는 방안에 대하여 주로 설명하였다. 다음으로, P2P네트워크의 개수를 감소시킴으로써 자원을 효율적으로 이용할 수 있는 방안에 대하여 설명한다.
스트리밍 서비스 도중 피어들이 하나 둘씩 네트워크을 떠나게 되면, 각 시드 서버에 각각 미리 설정된 최소 개수 이하의 피어들에게 서비스를 하게 되는 경우가 발생될 수 있다. 이와 같이, P2P 네트워크의 반경이 일정 수준 이하가 되면 하나의 서버를 중단하고, 거기에 연결된 모든 피어들을 다른 시드 서버가 포함된 P2P네트워크에 가입시킬 수 있다. 이러한 과정을 네트워크의 합병(Merge)이라고 한다.
도 12은 P2P 네트워크의 합병 동작의 일 예를 나타내는 도면이다.
지연 시간이 보장이 되는 범위 내에서는 서버의 운용 비용을 줄이는 것이 필요하다. 따라서, 서버의 효율적인 운용을 위해서는 사용량이 적은 시드 서버들에 대해 네트워크을 통합하는 것이 필요하다. 이를 위하여 일 실시예에 따른 P2P 네트워크 시스템은 P2P 네트워크가 제한 반경(radius)에 미달되고 이러한 P2P 네트워크가 2개 이상이 될 때 서버의 개수를 줄이고 네트워크를 통합하여 재구성하는 합병 동작을 수행한다.
도 12에 도시된 바와 같이, 제한 거리가 2홉인 경우, P2P 네트워크의 합병을 통해서 P2P 네트워크(1210)에서 P2P 네트워크(1220)로 네트워크가 재구성되면, 피어들(10, 20, 30, 40)의 평균 거리가 1에서 1.3으로 조금 증가하지만, 서버 2(123)를 P2P 네트워크에서 제외시킴으로써 제한 거리를 넘지 않는 범위 내에서 서버의 개수가 2개에서 1개로 줄어들 수 있다.
합병을 해야 하는 시점을 판단하는 것은 여러 가지 방법이 있을 수 있다.
트랙커 기반일 때에는, 도 10a를 참조하여 설명한 바와 같이, 트랙커 서버(140)가 P2P 네트워크에서 동작하고 있는 피어들의 개수를 관리하고 있으므로, 피어들의 개수가 기준 이하로 떨어지는 것을 판단하여, 합병을 결정할 수 있다.
트랙커 서버(140)가 없는 경우라면, 도 10b를 참조하여 설명한 바와 마찬가지로, 피어들 스스로가 네트워크의 반경이 기준 이하로 작다는 것을 추정할 수 있다. 분할 때와 마찬가지로 피어들이 일정 정도 추정을 반복한 결과, 네트워크의 반경이 기준 이하로 작다고 판단하면, 피어 리포트 메시지를 시드 서버에 보낼 수 있다. 시드 서버는 시드 서버로부터의 거리가 미리 설정된 최소 거리 이하인 피어로부터 수신된 피어 리포트 메시지의 개수가 소정의 개수 이상 누적되는 경우, 네트워크 합병을 결정할 수 있다.
도 13a 및 도 13b는 합병 통지 메시지 전달 동작의 일 예를 나타내는 도면이다.
도 13a에 도시된 바와 같이, 트랙커 기반의 P2P 네트워크(1310)에서는 트랙커 서버(140)에 등록되어 있는 모든 피어들에게 서버가 합병 통지 메시지(1320)를 일일이 보낸다. 합병 통지 메시지(1320)는 기존 시드 서버의 ID(Old Seed ID), 새로운 시드 서버의 ID(New Seed ID), 새로운 시드 서버의 IP(New Seed IP) 및 데드 라인(Deadline)을 포함할 수 있다.
도 13b에 도시된 바와 같이, 가십 프로토콜 기반의 P2P 네트워크(1330)에서는 가십 프로토콜을 이용해서 서버 1(122) 및 서버 2(123)는 각각 대리자 피어 예 를 들어, 피어 P1(10) 및 피어 P2(20)에 합병 통지 메시지(1340)를 전달하고, 피어 P1(10) 및 피어 P2(20)에서 나머지 피어들(30, 40)로 합병 통지 메시지(1330)가 전파(flooding)될 수 있다. 가십 프로토콜 기반에서도 합병 통지 메시지(1330)는 트랙커 기반의 방식에서의 합병 통지 메시지(1320)와 동일할 수 있다. 합병 통지 메시지(1320, 1340)를 수신한 피어들 중 이동해야할 피어들은 새로운 시드 서버에 가입을 하여 멤버쉽을 획득하고, 기존 네트워크에서 완전히 탈퇴한다.
합병의 방법은 도 9a 내지 도 9c에서 나오는 분할된 구조에 따라 각기 다르다. 도 9a를 참조하여 전술한 바와 같이, 완전한 분리 형태의 분할 구조에서는 이동해야할 피어들이 새로운 시드 서버에 가입을 하여 멤버쉽을 획득하고 예전 P2P 네트워크에서는 완전히 탈퇴하여야 한다.
도 9b 및 도 9c를 참조하여 전술한 바와 같이, 완전한 혼합 형태나 느슨한 혼합 형태의 경우에는 예전 망에 속한 피어들과의 멤버쉽은 버리고, 새로운 네트워크에 포함된 피어들과의 기존 멤버쉽 관계는 그대로 유지하고 추가적으로 새로운 네트워크에 속한 피어들과의 새로운 멤버쉽을 획득한다.
전술한 바와 같이, 일 실시예에 따른 P2P 네트워크 운용 방법이 수행되기 위해서는 기존의 일부 P2P 메시지들이 변경되어야 하고, 새로운 메시지들도 추가되어야 한다. 이하에서는, 변경되어야 하는 기존 메시지에서 추가되어야 하는 정보와 새로 추가되는 메시지의 포맷에 대하여 설명한다.
도 14a 내지 도 14c는 가입 응답 메시지에 포함되는 정보의 일 예를 나타내는 도면이다.
전술한 바와 같이, 가입(join) 과정은 기존의 P2P 네트워크에서의 가입 과정과 동일하고 가입 요청 메시지의 내용도 동일하다.
다만, 가입 응답 메시지에는 14a에 도시된 바와 같이, 가입 응답 메시지에는 메시지 식별 정보, 메시지 길이 정보, CRC 정보 등의 통상적으로 네트워크 메시지에 포함되는 정보 이외에 시드 서버의 ID(Seed ID), 시드 서버의 IP 어드레스(Seed IP), 거리 값의 타입(예를 들어, 홉수, 지연시간)(Distance Type), 거리 값의 제한 값(예를 들어, 반경 값)(Radius limit Value)이 포함될 수 있다.
시드 서버의 ID(Seed ID)는 피어가 어떤 시드로부터 거리를 계산하고 있는지를 알기 위한 시드 서버의 식별자이다. 시드 서버의 IP 어드레스(Seed IP)는 피어가 긴급한 영역의 데이터 청크를 서버에게 요청할 경우에 필요한 정보이다. 거리값의 타입(Distance Type)은 시드 서버로부터의 거리를 어떤 단위로 측정할 것인지에 대한 정보이다. 거리의 제한 값 또는 반경 값(Radius limit Value)은 최대 지연을 보장하기 위해서 서버에서 설정한 값이다.
도 14b는 비인코딩(bencoding) 방식으로 표현된 가입 응답 메시지의 일 예를 나타내고, 도 14c는 XML 방식으로 표현된 가입 응답 메시지의 일 예를 나타내는 도면이다. 도 14b 및 도 14c에서는 가입 응답 메시지를 비인코딩 방식과 XML 방식으로 나타내었으나 그 외 다양한 형태로 작성될 수 있다.
도 15a 내지 도 15c는 멤버쉽 메시지에 포함되는 정보의 일 예를 나타내는 도면이다.
멤버쉽 메시지에는 멤버쉽 요청 메시지와 멤버쉽 요청 메시지에 응답하기 위 한 멤버쉽 응답 메시지가 있다. 트랙커 기반의 P2P 네트워크에서 멤버쉽 요청 메시지는 트랙커 서버(140)가 알려준 피어 목록에 존재하는 피어들에게 보내진다. 가십 기반의 P2P 네트워크에서는 가십 프로토콜을 이용하여 멤버쉽 요청 메시지가 주변 노드에서부터 전파된다.
멤버쉽 요청 메시지 및 멤버쉽 응답 메시지에는 기존에 포함된 정보 이외에 각각 도 15a에 도시된 바와 같이, 시드 서버의 ID(Seed ID), 피어의 IP 어드레스(Peer IP), 현재 거리 정보, 목표 거리 정보 및 피어의 업링크 채널의 용량(Uplink capacity) 및 전체 망에 대한 예측 정보가 추가될 수 있다. 현재 거리 정보는 현재 거리 값의 타입(예를 들어, 홉수, 지연 시간)(Distance Type), 현재 거리 값의 표현 방법(예를 들어, All, Min, Max, Avg)(Distance value Type), 현재 피어의 거리 값(Distance value)를 포함할 수 있다. 목표 거리 정보는 목표 거리 타입(Target distance type), 목표 거리의 표현 방법(Target distance value type), 목표 거리 값(Target distance value)을 포함할 수 있다.
시드 서버의 ID(Seed ID)는 피어가 어떤 시드로부터 거리를 계산하고 있는지를 알기 위한 시드 서버의 식별자이다. 피어의 IP 어드레스(Peer IP)는 피어에 대한 식별자로 사용된다. 현재 거리 값의 타입(예를 들어, 홉수, 지연 시간)(Distance Type)은 현재 피어의 거리가 어떤 단위로 측정된 것인지를 나타내고, 현재 거리 값의 표현 방법(예를 들어, All, Min, Max, Avg)(Distance value Type)은 현재 피어의 거리가 어떤 방식으로 측정된 것인지를 나타내고, 현재 피어의 거리 값(Distance value)은 현재 거리 값의 표현 방법에 따른 현재 피어의 거리 값을 나타낸다. 목표 거리 타입(Target distance type)은 목표 거리가 어떤 단위로 측정된 것인지를 나타내고, 목표 거리의 표현 방법(Target distance value type)은 목표 거리가 어떤 단위로 측정된 것인지를 나타내고, 목표 거리 값(Target distance value)은 목표 거리 표현 방법에 따른 목표 거리의 값을 나타낸다.
또한, 멤버쉽 프로토콜은 피어들 상호간에 네트워크에 대한 예측 정보를 주고 받는데 이용되므로, 전체 네트워크에 대한 예측 정보로서 전체 피어의 수(Est. Num of Peer), 전체 평균 업링크 채널의 용량(Est. Avg. Up capacity)이 포함될 수 있다.
도 15b는 비인코딩 방식으로 표현된 멤버쉽 요청 메시지의 일 예를 나타내고, 도 15c는 XML 방식으로 표현된 멤버쉽 요청 메시지의 일 예를 나타낸다. 여기에서는 비인코딩 방식과 XML 방식으로 나타내었으나, 메시지의 표현은 그 외의 다양한 표현으로 작성될 수 있다.
도 16a 내지 도 16c는 피어 리포트 메시지에 포함되는 정보의 일 예를 나타내는 도면이다.
도 16a에 도시된 바와 같이, 피어 리포트 메시지에는 시드 서버의 ID(Seed ID), 피어의 IP 어드레스(Peer IP), 피어의 현재 거리 정보 및 피어의 업링크 채널의 용량(Uplink capacity)이 포함될 수 있다. 피어의 현재 거리 정보는 거리 값의 타입(Distance Type), 거리 값의 표현 방법(Distance value type), 거리 값(Distance Value(s))를 포함할 수 있다.
시드 서버의 ID(Seed ID)는 피어가 어떤 시드 서버로부터 거리를 계산하고 있는지를 알기 위한 시드 서버의 식별자이다. 피어의 IP 어드레스(Peer IP)는 피어에 대한 식별자로 사용된다. 거리 값의 타입(Distance Type)은 거리를 어떤 단위로 측정한 것인지에 대한 정보이다. 거리 값의 표현 방법(Distance value type)은 측정된 거리 값을 계산 및 표현하기 위한 방법이다. 피어의 업링크 채널의 용량(Uplink capacity)은 현재 피어의 가용한 업링크 채널의 용량을 나타낸다.
도 16b는 비인코딩 방식으로 표현된 피어 리포트 메시지의 일 예이고, 도 16c는 XML 방식으로 표현된 피어 리포트 메시지의 일 예이다. 여기에서는 비인코딩 방식과 XML 방식으로 나타내었으나, 메시지의 표현은 그 외에 다양한 형태로 작성될 수 있다.
도 17a 내지 도 17c는 요약 리포트 메시지에 포함되는 정보의 일 예를 나타내는 도면이다.
요약 리포트 메시지에는 전체 네트워크의 요약 정보, 특정 피어의 백분위(Percentile rank) 및 특정 피어의 목표 거리 값이 포함될 수 있다. 전체 네트워크의 요약 정보는 예를 들어, 전체 피어수(Num of Peers) 및 피어들의 평균 업링크 채널의 용량(Avg. Up Capacity)에 대한 정보일 수 있다. 특정 피어의 백분위(Percentile Rank)는 요약 리포트를 받은 피어에 대한 업링크 채널의 용량 관점에서의 랭킹 정보이다. 특정 피어의 목표 거리 값(Distance value)은 거리 값의 타입(Distance type)과 거리 값의 표현 방법(Distance value type)과 함께 제공될 수 있다.
도 17b는 비인코딩 방식으로 표현된 요약 리포트 메시지의 일 예이고, 도 17c는 XML 방식으로 표현된 요약 리포트 메시지의 일 예이다. 여기에서는 비인코딩 방식과 XML 방식으로 나타내었으나, 메시지의 표현은 그 외에 다양한 형태로 작성될 수 있다.
도 18a 내지 도 18f는 분할 통지 메시지에 포함되는 정보의 일 예를 나타내는 도면이다.
앞서 설명한 바와 같이 분할 통지 메시지는 트랙커 기반일 때와 가십 프로토콜 기반일 때 조금 다를 수 있다.
도 18a에 도시된 바와 같이, 트랙커 기반일 때 분할 통지 메시지의 정보에는 기존 시드 서버의 ID(Old Seed ID), 새로운 시드 서버의 ID(New Seed ID) 및 새로운 시드 서버의 IP 어드레스(New Seed IP) 및 기존의 네트워크와 새로운 네트워크에서의 멤버쉽 피어의 비율(Split Ratio)이 포함될 수 있다.
기존 시드 서버의 ID(Old Seed ID)는 현재 피어가 속해 있는 시드 서버의 식별자이다. 새로운 시드 서버 ID(New Seed ID)는 이동해야할 시드 서버에 대한 식별자이다. 새로운 시드 서버의 IP 어드레스 정보(New Seed IP)는 옮겨갈 피어들에게 가입 요청, 긴급한 영역의 데이터 요청시 사용된다. 기존의 네트워크와 새로운 네트워크에서의 멤버쉽 피어의 비율(Split Ratio)은 분할의 형태를 좌우하는 값으로, 이 값에 따라 멤버쉽 피어를 어떤 비율로 기존의 네트워크와 새로운 네트워크에서 선택할 것인지가 결정된다.
도 18b는 트랙커 기반일 때의 비인코딩 방식으로 표현된 분할 통지 메시지의 일 예를 나타내고, 도 18c는 트랙커 기반일 때의 XML 방식으로 표현된 분할 통지 메시지의 일 예를 나타낸다. 여기에서는 비인코딩 방식과 XML 방식으로 나타내었으나, 메시지의 표현은 그 외에 다양한 형태로 작성될 수 있다.
가십 프로토콜 기반일 때에 분할 통지 메시지는 도 18d에 도시된 바와 같이, 기존 시드 서버의 ID(Old Seed ID), 새로운 시드 서버의 ID(New Seed ID), 새로운 시드 서버의 IP 어드레스(New Seed IP), 이동 대상 피어의 비율(Move Ratio) 및 기존의 네트워크와 새로운 네트워크에서의 멤버쉽 피어의 비율(Split Ratio)이 포함될 수 있다. 트랙커 기반의 분할 통지 메시지에 비하여, 가십 프토토콜 기반의 분할 통지 메시지에는 전술한 바와 같이 가십 프로토콜 기반일 때 분할 통지 메시지를 받은 피어들 중 얼마만큼의 비율이 이동을 해야 하는 가에 대한 설정 값인 이동 대상 피어의 비율(Move Ratio)이 추가된다.
도 18e는 가십 프로토콜 기반일 때의 비인코딩 방식으로 표현된 분할 통지 메시지의 일 예를 나타내고, 도 18f는 가십 프로토콜 기반일 때의 XML 방식으로 표현된 분할 통지 메시지의 일 예를 나타낸다. 여기에서는 비인코딩 방식과 XML 방식으로 나타내었으나, 메시지의 표현은 그 외에 다양한 형태로 작성될 수 있다.
도 19a 내지 도 19c는 합병 통지 메시지에 포함되는 정보의 일 예를 나타내는 도면이다.
도 19a에 도시된 바와 같이, 합병 통지 메시지에는 기존 시드 서버의 ID(Old Seed ID), 새로운 시드 서버의 ID(New Seed ID), 새로운 시드 서버의 IP 어드레스(New Seed IP), 및 제한 시간(Deadline)이 포함될 수 있다.
기존 시드 서버의 ID(Old Seed ID)는 현재 피어가 속해있는 시드 서버의 식 별자이다. 새로운 시드 서버의 ID(New Seed ID)는 이동해야할 시드 서버에 대한 정보이다. 새로운 시드 서버의 IP 어드레스(New Seed IP)는 옮겨갈 피어들이 가입 요청, 긴급한 영역의 데이터를 요청할 때 사용된다. 제한 시간(Deadline)은 합병 과정이 언제까지 종료되어야 하는 가에 대한 기준이 된다. 이 시간 이후에는 예전 서버가 정상적으로 동작하는 지에 대하여 보장할 수 없다.
도 19b는 가십 프로토콜 기반일 때의 비인코딩 방식으로 표현된 분할 통지 메시지의 일 예를 나타내고, 도 19c는 가십 프로토콜 기반일 때의 XML 방식으로 표현된 분할 통지 메시지의 일 예를 나타낸다. 여기에서는 비인코딩 방식과 XML 방식으로 나타내었으나, 메시지의 표현은 그 외에 다양한 형태로 작성될 수 있다.
도 20은 P2P 네트워크 시스템에 가입하여 스트리밍 서비스를 제공받는 단말기의 구성의 일 예를 나타내는 도면이다.
단말기(2000)는 피어를 나타내는 장치로서 데이터 처리부(2010) 및 제어부(2020)을 포함할 수 있다. 데이터 처리부(2010)는 스트리밍 콘텐츠의 데이터 청크와 관련된 동작을 수행하며, 재생부(2011), 청크 버퍼(2012), 청크 전송부(2013) 및 청크 수신부(2014)를 포함할 수 있다.
재생부(2011)은 수신된 데이터 청크들을 재생하여 사용자에게 제공한다. 청크 버퍼(2012)는 재생부(2011)에서 데이터 청크들을 저장한다. 청크 전송부(2013)는 다른 피어들의 요청에 따라 가지고 있는 데이터 청크를 전송하고, 청크 수신부(2014)는 다른 피어 또는 시드 서버로부터 재생되어야할 데이터 청크를 수신한다.
제어부(2020)는 청크 스케줄링부(2021), 버퍼 맵 교환부(2022), 파트너쉽 관리부(2023), 멤버쉽 관리부(2024), 거리 처리부(2025), 업링크 채널 측정부(2026), 메시지 생성부(2027), 메시지 수신부(2028) 및 메시지 전송부(2029)를 포함할 수 있다.
청크 스케줄링부(2021)는 버퍼 맵을 참조하여, 데이터 청크를 스케줄링하고, 재생되어야할 데이터 청크를 가지고 있지 않은 경우, 다른 피어 또는 시드 서버에 데이터 청크를 요청하는 메시지를 생성하도록 메시지 생성부(2027)를 제어할 수 있다. 버퍼 맵 교환부(2022)는 시드 서버 또는 다른 피어들과 버퍼 맵을 교환하여, 청크 스케줄링부(2021)가 필요한 데이터 청크를 어느 피어가 가지고 있는지를 판단할 수 있도록 한다.
파트너쉽 관리부(2023)는 다른 피어들과 파트너쉽을 맺고 변경하는 동작을 수행한다. 멤버쉽 관리부(2024)는 피어 리스트를 관리하고, 피어 리스트를 주기적으로 업데이트한다. 멤버쉽 관리부(2024)는 트랙커 서버로부터 트랙커 기반 프로토콜을 통해서 또는 가십 프로토콜을 통해서 주기적으로 피어 리스트를 업데이트할 수 있다.
거리 처리부(2025)는 단말기(2000)의 시드 서버로부터의 거리와 관련된 동작을 수행한다. 거리 처리부(2025)는 시드 서버로부터의 현재 거리를 측정한다. 거리 처리부(2025)는 파트너들의 거리 값에 자기 자신과 파트너 사이의 거리를 더하는 방법으로 계산할 수 있다. 예를 들어, 거리 값의 타입이 홉 수라면, 소정의 피어의 홉수는 기본적으로 주변 피어들의 홉 수에 1홉을 더하여 계산될 수 있다. 거 리 값의 타입이 지연 시간이라면 거리 처리부(2025)는 소정의 피어의 지연 시간은 주변 피어들의 지연 시간에 주변 피어들로부터 자신까지 측정된 지연 시간을 더하여 계산할 수 있다.
또한, 거리 처리부(2025)는 P2P 네트워크가 가십 기반 프로토콜에 따라 운영될 때 단말기(2000)가 다른 피어들(또는 단말기들)로부터 수신한 멤버쉽 응답 메시지에 포함된 정보를 이용하여 단말기(2000)의 목표 거리를 유추하는 동작을 수행할 수 있다. 유추된 목표 거리는 멤버쉽 요청 메시지에 포함되어 다른 피어들에 전달될 수 있다.
피어의 시드 서버로부터의 현재 거리가 목표 거리와 상이한 경우에, 거리 처리부(2025)는 목표 거리에 도달하도록 최적의 파트너쉽을 유지하도록 하기 위하여 파트너쉽 교체를 수행하도록 파트너쉽 관리부(2023)를 제어한다. 파트너쉽 관리부(2023)는 현재 거리가 목표 거리보다 먼 경우 현재 파트너쉽을 맺고 있는 적어도 하나의 피어(또는 단말기)보다 시드 서버로부터의 가까운 거리에 위치하는 적어도 하나의 피어로 파트너쉽을 교체할 수 있다. 반대로, 파트너쉽 관리부(2023)는 현재 거리가 목표 거리보다 가까운 경우, 현재 파트너쉽을 맺고 있는 적어도 하나의 피어보다 시드 서버로부터 먼 거리에 위치하는 적어도 하나의 피어로 파트너쉽을 교체할 수 있다.
파트너쉽의 교체에도 현재 거리가 목표 거리에 도달하지 않는 경우, 거리 처리부(2025)는 멤버쉽 관리부(2024)에 멤버쉽 교체를 요청한다. 멤버쉽 관리부(2024)는 파트너쉽 관리부(2023)에 의해 멤버쉽 교체 요청이 있는 경우, 현재 거 리가 목표 거리와 일정 거리 이하로 근접해지도록 현재 멤버쉽을 맺고 있는 적어도 하나의 피어(또는 단말기)보다 시드 서버로부터 가까운 거리 또는 먼 거리에 위치하는 적어도 하나의 피어로 멤버쉽 교체 동작을 수행할 수 있다.
업링크 채널 측정부(2026)는 현재 스트리밍 서비스를 위한 P2P 네트워크에서 가용한 업링크 채널의 용량을 측정하고 모니터링한다.
메시지 생성부(2027)는 P2P 네트워크에서 이용되는 각종 메시지를 생성하고, 메시지 수신부(2028)는 다른 피어, 트랙커 서버 또는 시드 서버로부터 수신되는 네트워크 관리 메시지를 수신 및 처리하고, 메시지 전송부(2029)는 다른 피어, 트랙커 서버 또는 시드 서버로 메시지 생성부(2027)에서 생성된 메시지를 전송한다.
피어가 새롭게 P2P 네트워크에 가입하고자 하는 경우, 메시지 전송부(2029)는 메시지 생성부(2027)에서 생성된 가입 요청 메시지를 시드 서버에 보내고, 메시지 수신부(2028)는 시드 서버로부터 가입 응답 메시지를 수신한다. 메시지 수신부(2028)는 가입 응답 메시지로부터 P2P 네트워크의 미리 설정된 제한 거리를 나타내는 정보를 획득하여 거리 처리부(2025)에 전달한다. 시드 서버로부터의 거리가 미리 설정된 제한 거리는 넘는 경우, 거리 처리부(2025)는 멤버쉽 관리부(2024)가 시드 서버로부터의 거리를 줄이기 위하여 기존의 멤버쉽을 맺고 있던 적어도 하나의 서버를 시드 서버와 거리가 가까운 적어도 하나의 피어로 교체하도록 제어할 수 있다.
또한, 메시지 생성부(2027)는 전술한 바와 같이, 현재 거리 정보 및 업링크 채널의 용량을 포함하는 피어 리포트 메시지를 생성하고, 메시지 전송부(2029)는 네트워크 운영 프로토콜에 따라서 시드 서버 또는 트랙커 서버에 전달할 수 있다. 메시지 전송부(2029)는 주기적으로 또는 단말기(2000)가 미리 설정된 제한 거리를 넘는 위치에 있다고 결정되는 경우 피어 리포트 메시지를 시드 서버 또는 트랙커 서버에 전송할 수 있다.
메시지 생성부(2027)는 멤버쉽 요청 메시지를 생성하면, 메시지 전송부(2029)는 생성된 멤버쉽 요청 메시지를 다른 피어에 전송할 수 있다. 메시지 수신부(2028)는 다른 피어로부터 멤버쉽 응답 메시지를 수신하여 처리할 수 있다.
또한, 메시지 수신부(2028)는 트랙커 서버로부터 네트워크 관리 메시지로서 네트워크 전반의 요약 정보를 담은 요약 리포트 메시지를 수신하여 처리한다. 이에 따라, 거리 처리부(2025)는 요약 리포트 메시지에 포함된 목표 거리 정보를 획득할 수 있다.
메시지 수신부(2028)는 네트워크 운영 프로토콜에 따라서 시드 서버 또는 트랙커 서버로부터 네트워크 관리 메시지로서 분할 통지 메시지를 수신하여 처리한다. 분할 통지 메시지의 정보는 파트너쉽 관리부(2023) 및 멤버쉽 관리부(2024)에 전달되고, 파트너쉽 관리부(2023) 및 멤버쉽 관리부(2024)의 제어에 따라 단말기(2000)는 기존 시드 서버와의 연결을 중단하고, 새로운 시드 서버가 포함된 네트워크로 이동한다. 분할 통지 메시지가 가십 프로토콜을 통해 수신되는 경우에는, 파트너쉽 관리부(2023) 및 멤버쉽 관리부(2024)는 현재 거리 정보를 이용하여 새로운 시드 서버가 포함된 네트워크로 이동할 것인지를 결정하고, 결정에 따라 동작할 수 있다.
또한, 메시지 수신부(2028)는 네트워크 운영 프로토콜에 따라서 시드 서버 또는 트랙커 서버로부터 네트워크 관리 메시지로서 합병 통지 메시지를 수신하여 처리한다. 메시지 수신부(2028)는 합병 통지 메시지를 수신하면, 파트너쉽 관리부(2023) 및 멤버쉽 관리부(2024)에 합병 통지 메시지의 정보를 전달하여, 단말기(2000)가 새로운 시드 서버가 포함된 네트워크로 이동하는 동작이 수행될 수 있다.
도 21은 P2P 네트워크 시스템에서 단말기에 스트리밍 서비스를 제공하는 시드 서버 구성의 일 예를 나타내는 도면이다.
시드 서버(2100)는 데이터 처리부(2110) 및 제어부(2120)를 포함할 수 있다.
데이터 처리부(2110)는 P2P 네트워크에 가입된 적어도 하나의 피어(또는 단말기)에 콘텐츠 데이터를 제공하며, 청크 버퍼(2111) 및 청크 전송부(2112)를 포함할 수 있다. 청크 버퍼(2111)는 전송될 데이터 청크들을 임시 저장한다. 청크 전송부(212)는 시드 서버(2100)에 직접 연결되는 피어들에 데이터 청크를 전송하고, 다른 피어들의 요청에 따라 다른 피어들에 데이터 청크를 전송할 수 있다.
제어부(2120)는 청크 전송 스케줄링부(2121), 버퍼 맵 교환부(2122), 토폴로지 관리부(2123), 관리 보고 서비스 제공부(2124), 메시지 수신부(2125) 및 메시지 전송부(2126)를 포함할 수 있다.
청크 전송 스케줄링부(2121)는 버퍼 맵을 참조하여 피어에 전송할 데이터 청크 전송을 스케줄링한다.
버퍼 맵 교환부(2122)는 피어들에 버퍼 맵을 제공하고, 피어들로부터 버퍼 맵을 수신하여 어느 피어가 어떤 데이터를 필요로 하는지 파악할 수 있다.
토폴로지 관리부(2123)는 P2P 네트워크에 트랙커 서버가 존재하지 않는 경우, 메시지 수신부(2125)가 피어들로부터 수신받은 피어 리포트 메시지에 포함된 정보를 수집하여 수집된 피어 리포트 메시지에 포함된 정보를 기초로 네트워크를 모니터링하고 네트워크 관리 메시지를 생성할 수 있다.
메시지 수신부(2125)는 네트워크로부터 수신된 각종 메시지를 수신 및 처리한다. 메시지 수신부(2125)가 피어로부터 P2P 네트워크에 가입하기를 요청하는 가입 요청 메시지를 수신하면, 토폴로지 관리부(2123)는 수신된 가입 요청 메시지에 응답하기 위한 가입 응답 메시지를 생성한다. 가입 응답 메시지에는 네트워크의 미리 설정된 제한 거리가 포함된다. 메시지 전송부(2126)는 생성된 가입 응답 메시지를 피어에 전송한다.
토폴로지 관리부(2123)는 새로운 시드 서버를 P2P 네트워크에 투입하고 새롭게 참여하는 피어를 새로운 시드 서버에 가입시키거나 이미 가입되어 있는 피어 중 일부를 새로운 시드 서버를 포함하는 네트워크에 가입시키는 네트워크 분할을 결정할 수 있다. 네트워크 분할 결정은 시드 서버로부터의 거리가 미리 설정된 제한 거리를 넘는 피어로부터 수신된 피어 리포트 메시지가 소정 개수 이상 누적되는 경우 수행될 수 있다.
P2P 네트워크가 가십 기반 프로토콜에 따라 운영되는 경우, 토폴로지 관리부(2123)는 피어 리포트 메시지 정보를 참조하여 P2P 네트워크의 분할을 결정하면, 네트워크 관리 메시지로서 분할 통지 메시지를 생성한다. 메시지 전송부(2126)는 생성된 분할 통지 메시지를 피어들에 가십 프로토콜에 따라 전파할 수 있다.
한편, 토폴로지 관리부(2123)는 적어도 하나의 시드 서버가 P2P 네트워크로부터 제외되고, 제외된 시드 서버를 포함하는 P2P 네트워크에 가입하고 있던 모든 피어를 제외되지 않고 남은 다른 시드 서버를 포함하는 P2P 네트워크에 가입시키는 네트워크 합병을 결정할 수 있다. 네트워크 합병 결정은 시드 서버로부터의 거리가 미리 설정된 최소 거리 이하인 피어로부터 수신된 피어 리포트 메시지가 소정의 개수 이상 누적되는 경우 수행될 수 있다.
토폴로지 관리부(2123)는 P2P 네트워크가 가십 기반 프로토콜에 따라 운영되는 경우, 피어 리포트 메시지 정보를 참조하여 P2P 네트워크의 합병이 결정되면, 네트워크 관리 메시지로서 합병 통지 메시지를 생성한다. 메시지 전송부(2126)는 생성된 합병 통지 메시지를 피어들에 가십 프로토콜에 따라 전파할 수 있다.
관리 보고 서비스 제공부(2124)는 P2P 네트워크의 반경이 상위 제한 거리 또는 하위 제한 거리를 넘을 경우 실제 시드 서버를 투입하거나 제외시키는 동작을 수행할 수 있는 서버 예를 들어, 로드 밸런스 서버(도시되지 않음)에 네트워크 분할 또는 합병을 요청할 수 있다. 시드 서버(2000)가 로드 밸런스 서버의 역할을 수행하는 경우에는 관리 보고 서비스 제공부(2124)는 포함되지 않을 수 있다. 또한, 관리 보고 서비스 제공부(2124)는 트랙픽 부하가 과다하거나 과소한 경우에도 로드 밸런스 서버에 네트워크 분할 또는 합병을 요청할 수 있다.
도 22는 P2P 네트워크가 트랙커 기반 프로토콜에 의해 운영되는 경우 이용되는 트랙커 서버 구성의 일 예를 나타내는 도면이다.
트랙커 서버(2200)는 피어 리스트 관리부(2210), 토폴로지 관리부(2220), 메시지 수신부(2230) 및 메시지 전송부(2240)를 포함할 수 있다.
피어 리스트 관리부(2210)는 피어 리스트를 관리하고, 피어 멤버쉽에 관여한다. 메시지 수신부(2230)는 피어 리스트에 포함된 적어도 하나의 피어로부터 현재의 거리 정보 및 업링크 채널의 용량 정보를 포함하는 피어 리포트 메시지를 수신하여 토폴로지 관리부(2220)에 전달한다.
토폴로지 관리부(2220)는 전달된 피어 리포트 메시지를 수집하고, 수집된 적어도 하나의 피어의 현재의 거리 정보 및 업링크 채널의 용량 정보를 이용하여 P2P 네트워크를 관리하기 위한 네트워크 관리 메시지를 생성한다. 메시지 전송부(2240)는 생성된 네트워크 관리 메시지를 피어 리스트에 포함된 피어들에 전송한다.
토폴로지 관리부(2220)는 피어 리포트 메시지에 포함된 피어들의 현재 거리 및 업링크 채널의 용량 정보를 수집하여, 각 피어들의 목표 거리 및 네트워크 전반의 상태 정보를 측정한다. 토폴로지 관리부(2220)는 측정된 정보를 포함하는 네트워크 관리 메시지로서 요약 리포트 메시지를 생성하고, 메시지 전송부(2240)는 생성된 요약 메시지를 각 피어들에 전달할 수 있다.
토폴로지 관리부(2220)는 피어 리포트 메시지 정보를 참조하여 P2P 네트워크의 분할이 결정되면, 네트워크 관리 메시지로서 분할 통지 메시지를 생성한다. 메시지 전송부(2240)는 기존의 네트워크와의 연결을 중단하고 다른 네트워크로 이동되어야할 모든 피어들에 분할 통지 메시지를 전달한다.
토폴로지 관리부(2220)는 피어 리포트 메시지 정보를 참조하여 P2P 네트워크의 합병이 결정되면, 네트워크 관리 메시지로서 합병 통지 메시지를 생성한다. 토폴로지 관리부(2220)는 관리하고 있는 피어 개수가 미리 설정된 개수가 이하가 되는 경우 등을 파악하여 네트워크 합병을 결정할 수 있다. 메시지 전송부(2240)는 기존의 네트워크와의 연결을 중단하고 다른 네트워크로 이동되어야할 모든 피어들에 합병 통지 메시지를 전달한다.
스트리밍 서비스를 제공하는 P2P 네트워크 시스템에서 최대 지연 시간과 평균 지연 시간을 감소시킬 수 있다. 또한, P2P 네트워크 시스템에서 최소의 시드 서버를 이용하여 최대 지연 시간 및 평균 지연 시간을 감소시킬 수 있도록 P2P 네트워크 시스템을 운용할 수 있다.
본 발명의 일 양상은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있다. 상기의 프로그램을 구현하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 디스크 등을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
이상의 설명은 본 발명의 일 실시예에 불과할 뿐, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적 특성에서 벗어나지 않는 범위에 서 변형된 형태로 구현할 수 있을 것이다. 따라서, 본 발명의 범위는 전술한 실시예에 한정되지 않고 특허 청구범위에 기재된 내용과 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.
도 1은 P2P 네트워크 시스템 구성의 일 예를 나타내는 도면이다.
도 2는 버퍼맵을 이용한 데이터 청크 검색 동작의 일 예를 나타내는 도면이다.
도 3a 및 도 3b는 시드 서버로부터의 거리를 나타내는 방법의 일 예를 나타내는 도면이다.
도 4는 P2P 네트워크의 지연을 감소시키기 위한 피어의 효율적인 배치 동작을 나타내는 도면이다.
도 5는 피어 레벨링 동작의 일 예를 나타내는 도면이다.
도 6a 내지 도 6c는 멤버쉽 과정이 수행되는 경우의 일 예를 나타내는 도면이다.
도 7은 파트너쉽 교체를 통한 피어의 재배치 동작의 일 예를 나타내는 도면이다.
도 8a 내지 도 8c는 P2P 네트워크 분할 동작의 일 예를 나타내는 도면이다.
도 9a 내지 도 9c는 P2P 네트워크 분할의 3가지 유형을 나타내는 도면이다.
도 10a 및 도 10b는 피어 리포트 메시지 전달의 일 예를 나타내는 도면이다.
도 11a는 트랙커 기반의 방식에서 분할 통지 메시지를 전달하는 동작을 나타내고, 도 11b는 가십 기반의 방식에서 분할 통지 메시지를 전달하는 동작을 나타내는 도면이다.
도 12은 P2P 네트워크의 합병 동작의 일 예를 나타내는 도면이다.
도 13a 및 도 13b는 합병 통지 메시지 전달 동작의 일 예를 나타내는 도면이다.
도 14a 내지 도 14c는 가입 응답 메시지에 포함되는 정보의 일 예를 나타내는 도면이다.
도 15a 내지 도 15c는 멤버쉽 메시지에 포함되는 정보의 일 예를 나타내는 도면이다.
도 16a 내지 도 16c는 피어 리포트 메시지에 포함되는 정보의 일 예를 나타내는 도면이다.
도 17a 내지 도 17c는 요약 리포트 메시지에 포함되는 정보의 일 예를 나타내는 도면이다.
도 18a 내지 도 18f는 분할 통지 메시지에 포함되는 정보의 일 예이다.
도 19a 내지 도 19c는 합병 통지 메시지에 포함되는 정보의 일 예를 나타내는 도면이다.
도 20은 P2P 네트워크 시스템에 가입하여 스트리밍 서비스를 제공받는 단말기의 구성의 일 예를 나타내는 도면이다.
도 21은 P2P 네트워크 시스템에서 단말기에 스트리밍 서비스를 제공하는 시드 서버 구성의 일 예를 나타내는 도면이다.
도 22는 P2P 네트워크가 트랙커 기반 프로토콜에 의해 운영되는 경우 이용되는 트랙커 서버 구성의 일 예를 나타내는 도면이다.

Claims (32)

  1. 네트워크를 통해 콘텐츠를 제공하는 시드 서버로부터의 거리를 측정하는 거리 처리부;
    네트워크 가입 요청 메시지 및 상기 시드 서버로부터의 거리 정보를 포함하는 피어 리포트 메시지를 생성하는 메시지 생성부;
    상기 가입 요청 메시지를 상기 시드 서버로 전송하고, 상기 피어 리포트 메시지를 상기 시드 서버 또는 상기 네트워크를 관리하는 트랙커 서버로 전송하는 메시지 전송부; 및
    상기 시드 서버로부터 상기 네트워크에 대한 미리 설정된 제한 거리 정보를 포함하는 가입 응답 메시지를 수신 및 처리하는 메시지 수신부를 포함하는 단말기.
  2. 제1항에 있어서,
    상기 메시지 생성부는 주기적으로 또는 상기 시드 서버와의 거리가 상기 제한 거리를 넘은 경우 상기 시드 서버로부터의 상기 거리 정보를 포함하는 피어 리포트 메시지를 생성하고, 상기 피어 리포트 메시지가 전달되도록 상기 메시지 전송부를 제어하는 단말기.
  3. 제1항에 있어서,
    상기 단말기의 가용한 업링크 채널의 용량을 측정하는 업링크 채널 측정부를 더 포함하고,
    상기 메시지 생성부는 상기 측정된 업링크 채널의 용량에 대한 정보가 더 포함되도록 상기 피어 리포트 메시지를 생성하는 단말기.
  4. 제1항에 있어서,
    피어 리스트를 관리하는 멤버쉽 관리부; 및
    상기 피어 리스트에 포함된 단말기들 중 일부 단말기와 맺은 파트너쉽을 관리하는 파트너쉽 관리부를 더 포함하는 단말기.
  5. 제4항에 있어서,
    상기 거리 처리부는 상기 트랙커 서버로부터 상기 피어 리포트 메시지의 수집에 의해 결정된 목표 거리를 획득하고, 상기 시드 서버로부터의 현재 거리와 상기 목표 거리를 비교한 결과, 상기 현재 거리가 상기 목표 거리와 상이한 경우에, 상기 파트너쉽 관리부를 제어하여 상기 현재 거리와 상기 목표 거리 사이의 차이가 소정의 거리 이하가 되도록 파트너쉽을 교체하는 단말기.
  6. 제5항에 있어서,
    파트너쉽을 교체하여 상기 현재 거리와 상기 목표 거리 사이의 차이가 소정의 거리 이하가 되지 않는 경우, 상기 거리 처리부는 상기 멤버쉽 관리부를 제어하여 상기 현재 거리와 상기 목표 거리 사이의 차이가 소정의 거리 이하가 되도록 멤 버쉽을 교체하는 단말기.
  7. 제4항에 있어서,
    상기 메시지 생성부는 상기 멤버쉽 관리부의 제어에 따라 적어도 하나의 다른 단말기와 멤버쉽을 맺기 위하여 멤버쉽 요청 메시지를 생성하고, 상기 메시지 수신부는 상기 다른 단말기로부터 수신된 멤버쉽 응답 메시지를 수신 및 처리하고,
    상기 멤버쉽 요청 메시지 및 상기 멤버쉽 응답 메시지는 상기 시드 서버의 ID, 자신의 IP 어드레스, 현재 거리 정보, 목표 거리 정보 및 전체 네트워크 예상 정보 중 적어도 하나를 포함하는 단말기.
  8. 제7항에 있어서,
    상기 현재 거리 정보는 현재 거리 타입, 현재 거리의 표현 방법 및 현재 거리 값 중 적어도 하나를 포함하고, 상기 목표 거리 정보는 목표 거리 타입, 목표 거리의 표현 방법 및 목표 거리 값 중 적어도 하나를 포함하고, 상기 전체 네트워크 예상 정보는 네트워크에 가입하고 있는 단말기의 개수 및 네트워크 전체의 평균 업링크 채널의 용량 중 적어도 하나를 포함하는 단말기.
  9. 제7항에 있어서,
    상기 네트워크가 가십 기반 프로토콜에 따라 운영되는 경우, 상기 거리 처리부는 상기 멤버쉽 응답 메시지에 포함된 정보를 이용하여 상기 시드 서버로부터의 목표 거리를 유추하여 획득하고, 상기 시드 서버로부터의 현재 거리와 상기 목표 거리를 비교한 결과, 상기 현재 거리가 상기 목표 거리와 상이한 경우에, 상기 파트너쉽 관리부를 제어하여 상기 현재 거리와 상기 목표 거리 사이의 차이가 소정의 거리 이하가 되도록 파트너쉽을 교체하는 단말기.
  10. 제9항에 있어서,
    상기 파트너쉽을 교체하여 상기 현재 거리와 상기 목표 거리 사이의 차이가 소정의 거리 이하가 되지 않는 경우, 상기 거리 처리부는 상기 멤버쉽 관리부를 제어하여 상기 현재 거리와 상기 목표 거리 사이의 차이가 소정의 거리 이하가 되도록 멤버쉽을 교체하는 단말기.
  11. 제4항에 있어서,
    상기 단말기의 상기 시드 서버로부터의 거리가 상기 미리 설정된 제한 거리를 넘으면, 상기 거리 처리부는 멤버쉽을 맺고 있던 적어도 하나의 이웃 단말기를 상기 시드 서버로부터 거리가 가까운 적어도 하나의 단말기로 교체하여 멤버쉽 변경하도록 상기 멤버쉽 관리부를 제어하는 단말기.
  12. 제1항에 있어서,
    상기 메시지 수신부는 상기 트랙커 서버로부터 기존 시드 서버의 ID, 새로운 시드 서버의 ID 및 새로운 시드 서버의 IP 어드레스 및 기존의 네트워크와 새로운 네트워크에서의 멤버쉽 단말기의 비율 중 적어도하나를 포함하는 분할 통지 메시지를 수신하고 처리하는 단말기.
  13. 제12항에 있어서,
    상기 거리 처리부는 상기 단말기가 상기 분할 통지 메시지에 포함된 정보를 이용하여 기존 시드 서버와의 연결을 중단하고 상기 새로운 시드 서버가 포함된 네트워크로 이동하도록 동작하는 단말기.
  14. 제1항에 있어서,
    상기 메시지 수신부는 가십 프로토콜을 통해서 기존 시드 서버의 ID, 새로운 시드 서버의 ID, 새로운 시드 서버의 IP 어드레스, 이동해야할 단말기의 비율 및 분할 비율 중 적어도 하나를 포함하는 분할 통지 메시지를 수신하는 단말기.
  15. 제14항에 있어서,
    상기 거리 처리부는 상기 분할 통지 메시지에 포함된 정보를 이용하여 상기 새로운 시드 서버가 포함된 네트워크로 이동할 것인지 결정하고, 상기 결정에 따라 상기 단말기가 상기 새로운 시드 서버가 포함된 네트워크로 이동하도록 동작하는 단말기.
  16. 제1항에 있어서,
    상기 메시지 수신부는 상기 트랙커 서버로부터 또는 가십 프로토콜을 통해서 다른 단말기로부터 기존 시드 서버의 ID, 새로운 시드 서버의 ID, 새로운 시드 서버의 IP 및 제한 시간 중 적어도 하나를 포함하는 합병 통지 메시지를 수신하는 단말기.
  17. 제16항에 있어서,
    상기 거리 처리부는 상기 합병 통지 메시지에 포함된 정보를 이용하여 상기 단말기가 상기 기존 시드 서버와의 연결을 중단하고 상기 새로운 시드 서버가 포함된 네트워크로 이동하도록 동작하는 단말기.
  18. 적어도 하나의 단말기와의 거리 정보를 포함하는 피어 리포트 메시지를 수집하는 메시지 수신부;
    상기 거리 정보에 따라서 네트워크 관리 메시지를 생성하는 토폴로지 관리부; 및
    상기 네트워크 관리 메시지를 상기 적어도 하나의 단말기로 전송하는 메시지 전송부를 포함하는 시드 서버.
  19. 제18항에 있어서,
    상기 메시지 생성부는 새로운 단말기로부터 수신된 상기 시드 서버를 포함하는 네트워크에 대한 가입 요청에 응답하여, 가입 응답 메시지를 생성하되,
    상기 생성된 가입 응답 메시지는 상기 메시지 전송부를 통해 상기 새로운 단말기에 전달되는 것을 특징으로 하고,
    상기 가입 응답 메시지는 상기 시드 서버의 ID, 상기 시드 서버의 IP 어드레스, 거리 값의 타입, 제한 거리 정보 중 적어도 하나를 포함하는 시드 서버.
  20. 제18항에 있어서,
    상기 토폴로지 관리부는 새로운 시드 서버를 네트워크에 투입하고 새롭게 참여하는 단말기를 상기 새로운 시드 서버에 가입시키거나 상기 적어도 하나의 단말기 중 일부를 상기 새로운 시드 서버를 포함하는 네트워크에 가입시키는 네트워크 분할을 결정하는 시드 서버.
  21. 제20항에 있어서,
    상기 토폴로지 관리부는,
    상기 적어도 하나의 단말기 중 일부가 기존의 시드 서버와의 연결 및 멤버쉽을 맺고 있던 적어도 하나의 다른 단말기와의 멤버쉽을 중단하고 새로운 시드 서버가 포함된 새로운 네트워크로 이동하도록 하는 완전한 분리 동작; 및
    상기 적어도 하나의 단말기의 일부가 기존의 시드 서버와의 연결을 중단하고 새로운 시드 서버가 포함된 새로운 네트워크로 이동하지만, 기존의 네트워크에 속한 단말기들 및 새로운 네트워크에 속한 단말기들과 멤버쉽을 미리 설정된 비율로 구성하도록 하는 혼합 분리 동작 중 하나의 네트워크 분할 동작을 수행하는 시드 서버.
  22. 제20항에 있어서,
    상기 시드 서버로부터의 거리가 상기 제한 거리를 넘는 단말기로부터 수신된 피어 리포트 메시지가 소정의 개수 이상 누적되는 경우, 상기 토폴로지 관리부는 상기 네트워크 분할을 결정하는 시드 서버.
  23. 제20항에 있어서,
    상기 토폴로지 관리부는 상기 네트워크 분할을 수행하기 위하여 상기 네트워크 관리 메시지로서 분할 통지 메시지가 가십 프로토콜을 통하여 다른 단말기들에 전파되도록 상기 메시지 전송부를 제어하고,
    상기 분할 통지 메시지는 기존 시드 서버의 ID, 새로운 시드 서버의 ID, 새로운 시드 서버의 IP 어드레스, 분할 비율 및 이동해야 할 단말기의 비율 중 적어도 하나를 포함하는 시드 서버.
  24. 제18항에 있어서,
    상기 토폴로지 관리부는 적어도 하나의 시드 서버가 상기 네트워크로부터 제외되고, 상기 제외된 시드 서버를 포함하는 네트워크에 가입하고 있던 모든 단말기를 제외되지 않고 남은 다른 시드 서버를 포함하는 네트워크에 가입시키는 네트워크 합병을 결정하는 시드 서버.
  25. 제24항에 있어서,
    상기 시드 서버로부터의 거리가 미리 설정된 최소 거리 이하인 단말기로부터 수신된 피어 리포트 메시지가 소정의 개수 이상 누적되는 경우, 상기 토폴로지 관리부는 상기 네트워크 합병의 수행을 결정하는 시드 서버.
  26. 제25항에 있어서,
    상기 토폴로지 관리부는 상기 네트워크 합병을 수행하기 위하여 상기 네트워크 관리 메시지로서 합병 통지 메시지를 가십 프로토콜을 통하여 다른 단말기들에 전파하도록 상기 메시지 전송부를 제어하고,
    상기 합병 통지 메시지는 기존 시드 서버의 ID, 새로운 시드 서버의 ID, 새로운 시드 서버의 IP 및 제한 시간 중 적어도 하나를 포함하는 시드 서버.
  27. 피어 리스트를 관리하는 피어 리스트 관리부;
    상기 피어 리스트에 포함된 적어도 하나의 단말기로부터 현재의 거리 정보 및 업링크 채널의 용량 정보를 포함하는 피어 리포트 메시지를 수신하는 메시지 수신부;
    상기 수신된 피어 리포트 메시지를 수집하고, 상기 수집된 적어도 하나의 단말기의 현재의 거리 정보 및 업링크 채널의 용량 정보를 이용하여 네트워크 관리 메시지를 생성하는 토폴로지 관리부; 및
    상기 생성된 메시지를 전송하는 메시지 전송부를 포함하는 트랙커 서버.
  28. 제27항에 있어서,
    상기 토폴로지 관리부는 상기 수집된 피어 리포트 메시지에 포함된 정보를 이용하여 상기 네트워크 관리 메시지로서 요약 리포트 메시지를 생성하고, 상기 메시지 전송부를 제어하여 상기 생성된 요약 메시지를 각각의 단말기에게 전달하고,
    상기 요약 리포트 메시지는 전체 네트워크의 요약 정보, 특정 단말기의 업링크 채널의 용량을 기준으로 한 백분위, 특정 단말기의 목표 거리 값 중 적어도 하나를 포함하는 트랙커 서버.
  29. 제27항에 있어서,
    상기 토폴로지 관리부는 새로운 시드 서버를 네트워크에 투입하고 새롭게 참여하는 단말기를 새로운 시드 서버에 가입시키거나 상기 적어도 하나의 단말기 중 일부를 상기 새로운 시드 서버를 포함하는 네트워크에 가입시키는 네트워크 분할을 결정하는 트랙커 서버.
  30. 제29항에 있어서,
    상기 토폴로지 관리부는 상기 네트워크 분할이 결정되면 상기 네트워크 관리 메시지로서 분할 통지 메시지를 생성하고, 상기 메시지 전송부를 제어하여 상기 생성된 분할 통지 메시지를 새롭게 구성되는 네트워크에 이동시킬 모든 단말기에 각 각 전송하고,
    상기 분할 통지 메시지는 기존 시드 서버의 ID, 새로운 시드 서버의 ID, 새로운 시드 서버의 IP 어드레스 및 분할 비율 중 적어도 하나를 포함하는 트랙커 서버.
  31. 제27항에 있어서,
    상기 토폴로지 관리부는 적어도 하나의 시드 서버가 상기 네트워크로부터 제외되고, 상기 제외된 시드 서버를 포함하는 네트워크에 가입하고 있던 모든 단말기를 제외되지 않고 남은 다른 시드 서버를 포함하는 네트워크에 가입시키는 네트워크 합병을 결정하는 트랙커 서버.
  32. 제31항에 있어서,
    상기 토폴로지 관리부는 네트워크 합병이 결정되면 상기 네트워크 관리 메시지로서 합병 통지 메시지를 생성하고, 상기 메시지 전송부를 제어하여 상기 제외된 시드 서버를 포함하는 네트워크에 가입하고 있던 모든 단말기에 각각 전송하고,
    상기 합병 통지 메시지는 기존 시드 서버의 ID, 새로운 시드 서버의 ID, 새로운 시드 서버의 IP 및 제한 시간 중 적어도 하나를 포함하는 트랙커 서버.
KR1020090084016A 2009-09-07 2009-09-07 스트리밍 서비스의 지연 감소를 위한 단말기, 시드 서버 및 트랙커 서버 KR101562974B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090084016A KR101562974B1 (ko) 2009-09-07 2009-09-07 스트리밍 서비스의 지연 감소를 위한 단말기, 시드 서버 및 트랙커 서버
US12/845,318 US9130958B2 (en) 2009-09-07 2010-07-28 Terminal, seed server, and tracker server for reducing delay in streaming service

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090084016A KR101562974B1 (ko) 2009-09-07 2009-09-07 스트리밍 서비스의 지연 감소를 위한 단말기, 시드 서버 및 트랙커 서버

Publications (2)

Publication Number Publication Date
KR20110026215A true KR20110026215A (ko) 2011-03-15
KR101562974B1 KR101562974B1 (ko) 2015-10-30

Family

ID=43648511

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090084016A KR101562974B1 (ko) 2009-09-07 2009-09-07 스트리밍 서비스의 지연 감소를 위한 단말기, 시드 서버 및 트랙커 서버

Country Status (2)

Country Link
US (1) US9130958B2 (ko)
KR (1) KR101562974B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8914533B2 (en) 2010-03-05 2014-12-16 Samsung Electronics Co., Ltd. Apparatus and method for providing streaming service in a data communication network
KR20150041089A (ko) * 2012-08-06 2015-04-15 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 브라우저 공격에 대한 방어
KR20150045693A (ko) * 2013-10-21 2015-04-29 에스케이텔레콤 주식회사 컨텐츠 전송 방법 및 이를 위한 장치
KR101590099B1 (ko) * 2015-01-27 2016-01-29 홍익대학교 산학협력단 이웃피어 선정 장치 및 방법

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2011220490A1 (en) * 2010-02-26 2012-09-13 Interdigital Patent Holdings, Inc Mobility in peer-to-peer communications
CN101795297B (zh) * 2010-03-19 2012-10-31 北京天天宽广网络科技有限公司 基于p2p技术的直播时移系统及其方法
WO2011157295A1 (en) * 2010-06-17 2011-12-22 Nokia Siemens Networks Oy Improved peer-to-peer system
US8626854B2 (en) * 2011-01-17 2014-01-07 Alcatel Lucent Traffic localization in peer-to-peer networks
US9270784B2 (en) * 2011-02-16 2016-02-23 Masque Publishing, Inc. Peer-to-peer communications
US8838722B2 (en) 2011-02-16 2014-09-16 Masque Publishing, Inc. Communications adaptable to mobile devices
US9571571B2 (en) 2011-02-28 2017-02-14 Bittorrent, Inc. Peer-to-peer live streaming
US9094263B2 (en) * 2011-02-28 2015-07-28 Bittorrent, Inc. Peer-to-peer live streaming
JP2014522594A (ja) * 2011-05-31 2014-09-04 トムソン ライセンシング マルチメディア・コンテンツをストリーミングする方法および装置
US9106476B2 (en) * 2011-10-07 2015-08-11 Verizon Patent And Licensing Inc. Optimizing selection of a network for video streaming
US9055136B2 (en) 2011-10-13 2015-06-09 Qualcomm Incorporated Controlling streaming delay in networks
US9160697B2 (en) * 2012-01-01 2015-10-13 Qualcomm Incorporated Data delivery optimization
US10637918B2 (en) 2012-02-27 2020-04-28 Red Hat, Inc. Load balancing content delivery servers
EP2847971B1 (en) * 2012-05-08 2018-12-26 Cirrus Logic International Semiconductor Ltd. System and method for forming media networks from loosely coordinated media rendering devices.
US9716749B2 (en) 2012-12-14 2017-07-25 Microsoft Technology Licensing, Llc Centralized management of a P2P network
US10391387B2 (en) 2012-12-14 2019-08-27 Microsoft Technology Licensing, Llc Presenting digital content item with tiered functionality
US9413846B2 (en) 2012-12-14 2016-08-09 Microsoft Technology Licensing, Llc Content-acquisition source selection and management
US9413823B2 (en) * 2013-03-15 2016-08-09 Hive Streaming Ab Method and device for peer arrangement in multiple substream upload P2P overlay networks
US10432753B2 (en) * 2013-08-16 2019-10-01 Fujitsu Limited Demand response event dissemination system and method
US10116740B2 (en) 2013-12-27 2018-10-30 Microsoft Technology Licensing, Llc Peer-to-peer network prioritizing propagation of objects through the network
US20170180470A1 (en) * 2015-12-21 2017-06-22 Le Holdings (Beijing) Co., Ltd. Method and electronic device for sending CDN address
CN105812455B (zh) * 2016-03-07 2018-11-06 北京邮电大学 一种移动Ad hoc网络中协同下载的方法和装置
US11496588B2 (en) * 2016-06-21 2022-11-08 Micro Focus Llc Clustering layers in multi-node clusters
US10880201B2 (en) * 2016-10-17 2020-12-29 University Of New Hampshire Geographic positioning of data storage for efficient data flow across communication networks
US10771524B1 (en) * 2019-07-31 2020-09-08 Theta Labs, Inc. Methods and systems for a decentralized data streaming and delivery network
CN114327316B (zh) * 2020-09-30 2024-04-19 伊姆西Ip控股有限责任公司 获取视觉内容的方法、设备和计算机程序产品

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7627678B2 (en) 2003-10-20 2009-12-01 Sony Computer Entertainment America Inc. Connecting a peer in a peer-to-peer relay network
US20080133767A1 (en) * 2006-11-22 2008-06-05 Metis Enterprise Technologies Llc Real-time multicast peer-to-peer video streaming platform
CN101005606B (zh) 2006-12-31 2012-07-04 华为技术有限公司 一种减少媒体播放延时的方法和装置
KR101409991B1 (ko) 2007-04-16 2014-06-20 삼성전자주식회사 P2p 통신 환경에서의 데이터 전송 방법 및 장치
KR20080094174A (ko) 2007-04-19 2008-10-23 연세대학교 산학협력단 리얼타임 릴레이 케스트 스트리밍 프로토콜
US8429260B2 (en) * 2007-12-20 2013-04-23 At&T Intellectual Property Ii, L.P. Methods and apparatus for user persona management
US20090172172A1 (en) * 2007-12-21 2009-07-02 Erik Lambert Graham Systems and methods for enabling peer-to-peer communication among visitors to a common website

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8914533B2 (en) 2010-03-05 2014-12-16 Samsung Electronics Co., Ltd. Apparatus and method for providing streaming service in a data communication network
US9253236B2 (en) 2010-03-05 2016-02-02 Samsung Electronics Co., Ltd Apparatus and method for providing streaming service in a data communication network
KR20150041089A (ko) * 2012-08-06 2015-04-15 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 브라우저 공격에 대한 방어
KR20150045693A (ko) * 2013-10-21 2015-04-29 에스케이텔레콤 주식회사 컨텐츠 전송 방법 및 이를 위한 장치
KR101590099B1 (ko) * 2015-01-27 2016-01-29 홍익대학교 산학협력단 이웃피어 선정 장치 및 방법

Also Published As

Publication number Publication date
KR101562974B1 (ko) 2015-10-30
US9130958B2 (en) 2015-09-08
US20110060798A1 (en) 2011-03-10

Similar Documents

Publication Publication Date Title
KR101562974B1 (ko) 스트리밍 서비스의 지연 감소를 위한 단말기, 시드 서버 및 트랙커 서버
US10356144B1 (en) Reassigning source peers
US8612621B2 (en) Method for constructing network topology, and streaming delivery system
CN107223325B (zh) 用于数字内容的自适应虚拟广播的方法和系统
Shen et al. Peer-to-peer media streaming: Insights and new developments
US8112479B2 (en) Method, system and device for establishing a peer to peer connection in a P2P network
US20140222973A1 (en) Network-optimized content delivery for high demand non-live contents
Sweha et al. Angelcast: cloud-based peer-assisted live streaming using optimized multi-tree construction
MX2011000476A (es) Metodo y aparato para flujo par a par.
US9173006B2 (en) Method for live broadcasting in a distributed network and apparatus for the same
EP2404431B1 (en) Methods and arrangements for prioritization in a peer-to-peer network
JP5724139B2 (ja) セッション数によりp2pのツリー構造を形成するp2p方式のインターネットライブ放送サービスシステム及び方法
JP5011433B2 (ja) 他のペアの近傍にあるペアグループを決定する方法、関連するサーバ及び解析装置
US20130275602A1 (en) Hop-By-Hop Bandwidth Consumption Measurements Control Cooperation Between Clients on a Data Network
KR20120064969A (ko) 비디오 청크 분포에 적응적인 푸쉬-풀 혼성 스트리밍 방법 및 장치
CN107659853B (zh) 一种自适应流媒体直播控制系统
Sayit et al. Adaptive, incentive and scalable dynamic tree overlay for P2P live video streaming
US20220182444A1 (en) Peer-managed content distribution network
KR101418570B1 (ko) P2p 제어 장치 및 전송 오버레이 제어 방법
Mello et al. A Hybrid Peer-to-Peer and Client-Server Strategy for Multimedia Streaming
Rodrigues et al. On traffic locality and QoE in hybrid CDN-P2P networks
Ketmaneechairat et al. The Mathematical Models for Different Start Video Broadcasting
Miers et al. An architecture for P2P locality in managed networks using hierarchical trackers
JPWO2012011378A1 (ja) コンテンツ配信システム、コンテンツ配信装置、コンテンツ配信方法およびプログラム
Sweha Optimizing on-demand resource deployment for peer-assisted content delivery

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190910

Year of fee payment: 5