KR100485974B1 - 컨텐츠 제공 방법 및 시스템 - Google Patents

컨텐츠 제공 방법 및 시스템 Download PDF

Info

Publication number
KR100485974B1
KR100485974B1 KR10-2002-0061725A KR20020061725A KR100485974B1 KR 100485974 B1 KR100485974 B1 KR 100485974B1 KR 20020061725 A KR20020061725 A KR 20020061725A KR 100485974 B1 KR100485974 B1 KR 100485974B1
Authority
KR
South Korea
Prior art keywords
content
user
information
user client
connection
Prior art date
Application number
KR10-2002-0061725A
Other languages
English (en)
Other versions
KR20040032536A (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 KR10-2002-0061725A priority Critical patent/KR100485974B1/ko
Priority to CNB028297350A priority patent/CN100382072C/zh
Priority to PCT/KR2002/002178 priority patent/WO2004034275A1/en
Priority to AU2002353629A priority patent/AU2002353629A1/en
Priority to JP2003004644A priority patent/JP3990987B2/ja
Publication of KR20040032536A publication Critical patent/KR20040032536A/ko
Priority to US11/103,390 priority patent/US7640246B2/en
Application granted granted Critical
Publication of KR100485974B1 publication Critical patent/KR100485974B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/48Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/14Multichannel or multilink protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Library & Information Science (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 컨텐츠 제공 방법 및 시스템에 관한 것으로서, 더욱 상세하게는 대용량의 멀티미디어 컨텐츠 데이터를 고속으로 제공할 수 있는 방법 및 시스템에 관한 것이다. 본 발명에 따르면, 컨텐츠를 요청하는 복수의 사용자 클라이언트들은 메쉬 방식으로 연결되어 있으며, 컨텐츠를 저장하고 있는 컨텐츠 서버 또는 다른 사용자 클라이언트로부터 컨텐츠를 수신한다. 컨텐츠를 요청하는 사용자 클라이언트는 복수의 노드에 컨텐츠를 요청하며, 병렬/분산 방식으로 데이터를 수신하여 보다 안정적인 데이터 수신이 가능하다. 본 발명에 따르면, 컨텐츠를 요청하는 사용자가 많아지더라도 컨텐츠 서버와 사용자 클라이언트가 분담하여 데이터를 전송하기 때문에 서버의 부담이 경감되는 장점이 있다.

Description

컨텐츠 제공 방법 및 시스템{Method and System for Providing Contents}
본 발명은 컨텐츠 제공 방법 및 시스템에 관한 것으로서, 더욱 상세하게는 영화나 애니메이션과 같은 대용량의 컨텐츠를 인터넷과 같은 네트워크를 통해 보다 빠른 속도로 전송하는 방법 및 시스템에 관한 것이다.
인터넷은 초기에 정보의 공유 내지는 정보 제공의 수단으로서 활용되었으나, 인터넷이 근래에 들어 급속히 보급됨에 따라, 이러한 용도에 국한되지 않고 컨텐츠 제공, 전자 상거래, 광고 등 다양한 용도로 활용되어 가고 있으며, 인터넷을 이용한 비즈니스가 오프라인 못지 않게 중요한 비즈니스로 자리잡아 가고 있다.
초기에 인터넷을 통해 제공되는 컨텐츠는 문서와 그림과 같은 저용량의 데이터가 대부분이었으나, 데이터 전송 기술 및 장비가 발전함에 따라 멀티미디어 컨텐츠의 제공도 활발히 이루어지고 있다.
도 1a는 종래의 컨텐츠 전송 시스템의 일례를 도시한 도면이다.
도 1a에 도시된 바와 같이, 종래의 컨텐츠 전송 시스템에서는 하나의 컨텐츠 서버에 모든 사용자 클라이언트가 접속하여 컨텐츠가 전송되었다.
도 1a의 시스템에서, 컨텐츠 서버가 사용할 수 있는 대역폭은 한계가 있기 때문에, 많은 사용자 클라이언트가 컨텐츠 서버에 접속하여 컨텐츠를 요청할 경우 컨텐츠를 제공할 수 없는 문제점이 있었다.
또한, 사용자 클라이언트와 컨텐츠 서버사이의 데이터 전송 경로가 복잡한 경우 데이터의 손실이 생기는 문제점이 있었다.
따라서, 도 1a와 같은 컨텐츠 전송 시스템은 고속의 데이터 전송을 요하는 멀티미디어 데이터를 전송하기에는 부적합했다.
도 1a와 같은 시스템에서 데이터 전송 경로를 효율적으로 개선하기 위해, 사용자 클라이언트와 컨텐츠 서버 사이에 프록시 서버, 캐쉬 서버, 로드 밸런싱 서버 등을 두어 데이터의 손실을 최소화하는 방법이 개발되었다.
그러나 위의 방법은 서버의 부하로 인한 컨텐츠 전송 실패라는 문제점을 여전히 극복할 수 없는 한계가 있었다.
도 1b는 또 다른 종래의 컨텐츠 전송 시스템의 구성을 도시한 도면이다.
도 1b에 도시한 시스템은 컨텐츠 서버 외에 복수의 멀티캐스트 라우터를 구비하고 있다.
도 1b에 도시된 시스템에서, 컨텐츠 서버는 복수의 멀티캐스트 라우터에 컨텐츠를 제공하고, 멀티캐스트 라우터는 서버로부터 제공되는 컨텐츠를 사용자에게 제공하며, 사용자는 서버 또는 멀티캐스트 라우터부터 컨텐츠를 수신하므로 서버의 부담이 도 1a에 도시된 시스템에 비해 경감될 수 있다.
그러나, 도 1b에 도시된 시스템은 복수의 사용자가 동일한 컨텐츠를 요구하는 인터넷 생방송의 경우에만 적용될 수 있으며, 서로 다른 컨텐츠를 요구하는 온-디맨드(On-Demand)방식에는 적용될 수 없는 시스템이다.
아울러, 멀티캐스터 라우터의 설치에 많은 비용이 소요되며, 기존의 네트워크를 구성하는 라우터를 멀티캐스트 라우터로 일일이 교체하여야 하는 문제점이 있다.
도 1c는 종래의 CDN 컨텐츠 전송 시스템의 구성을 도시한 도면이다.
CDN(Contents Deliverly Network) 시스템은 복수의 에지 서버를 구비하여 복수의 에지 서버가 근접한 사용자들에게 컨텐츠를 제공하는 시스템이다.
CDN 시스템에 따르면, 종래의 하나의 서버에 사용자가 접속하였던 것과는 달리 복수의 에지 서버에 분산되어 사용자가 접속하므로 서버의 부하를 경감할 수는 있다. 그러나, CDN 시스템은 복수의 에지 서버를 두어야 하므로 많은 비용이 소모되고, 따라서 광범위한 지역에 서비스를 제공할 수 없는 문제점이 있다.
또한, 사용자가 많아지면 많아질수록 분산된 에지 서버에도 부하가 생기므로, 여전히 서버의 부하라는 근본적인 문제점을 해결한 시스템이라고 할 수는 없다.
본 발명에서는 상기한 바와 같은 종래 기술의 문제점을 해결하기 위해, 많은 사용자가 컨텐츠를 요청하더라도 서버의 부하 없이 컨텐츠를 효과적으로 전송할 수 있는 방법 및 시스템을 제안하고자 한다.
본 발명의 또 다른 목적은 많은 사용자가 컨텐츠를 요청할수록 더 빠르게 컨텐츠를 제공할 수 있는 방법 및 시스템을 제안하는 것이다.
본 발명의 또 다른 목적은 메쉬 구조로 연결된 사용자 클라이언트들간의 통신을 통해 사용자가 요청한 컨텐츠를 제공하도록 하는 방법 및 시스템을 제안하는 것이다.
본 발명의 또 다른 목적은 병렬/분산 방식으로 컨텐츠를 수신하여 보다 안정적으로 컨텐츠를 수신할 수 있는 컨텐츠 제공 방법 및 시스템을 제안하는 것이다.
상기한 바와 같은 목적들을 달성하기 위해, 본 발명의 일 실시예에 따르면, 컨텐츠 서버 및 복수의 사용자 클라이언트가 네트워크를 통해 연결되어 있고, 상기 복수의 사용자 클라이언트에는 다른 사용자 클라이언트들 또는 컨텐츠 서버와 통신하기 위한 통신 에이전트가 설치되어 있는 시스템에서 컨텐츠를 사용자 클라이언트에 제공하는 방법에 있어서, 컨텐츠 서버에 접속되어 있는 복수의 사용자 클라이언트들로부터 각 사용자 클라이언트가 저장하고 있는 컨텐츠 정보를 수신하는 단계(a); 사용자 클라이언트로부터 컨텐츠 전송 요청 신호를 수신하는 단계(b); 및 상기 단계(a)에서 수신한 정보를 이용하여 상기 컨텐츠를 요청한 사용자 클라이언트에 요청한 컨텐츠를 저장하고 있는 노드 정보를 제공하는 단계(c)를 포함하며, 상기 사용자 클라이언트에 설치된 통신 에이전트는 상기 제공된 노드 정보를 이용하여 복수의 노드에 연결을 설정하며, 연결이 설정된 노드들로부터 병렬/분산 방식으로 컨텐츠를 수신하도록 상기 사용자 클라이언트를 제어하는 컨텐츠 제공 방법이 제공된다.
한편, 본 발명에 따르면, 상기 사용자 클라이언트에 전송하는 컨텐츠의 실행에 필요한 정보-컨텐츠의 메타 정보를 포함함-를 제공하는 단계를 더 포함할 수 있다.
상기 컨텐츠 서버 및 상기 복수의 사용자 클라이언트에 저장되는 컨텐츠는 총 컨텐츠 데이터를 미리 설정된 단위로 나눈 복수의 블록으로 구성되며, 상기 블록은 이를 미리 설정된 단위로 나눈 복수의 서브 블록으로 구성될 수 있다.
상기 통신 에이전트는, 상기 컨텐츠 서버에 사용자 클라이언트에 저장하고 있는 컨텐츠 정보 및 사용자 클라이언트 식별 정보를 제공하고, 사용자가 컨텐츠를 요청할 경우 컨텐츠 요청 정보를 상기 컨텐츠 서버에 전송하는 에이전트 관리 모듈; 사용자 클라이언트에 저장되어 있는 컨텐츠 정보를 관리하는 캐쉬 관리 모듈; 사용자가 전송을 요청한 컨텐츠를 저장하고 있는 노드에 연결을 설정하여 병렬/분산 방식으로 요청한 컨텐츠를 수신하는 메쉬 관리 모듈;사용자의 컨텐츠 요청 정보를 상기 에이전트 관리 모듈에 제공하고, 수신한 컨텐츠를 컨텐츠 플레이어에 제공하는 플레이어 제어 모듈을 포함할 수 있다.
상기 메쉬 관리 모듈은, 상기 단계(b)에 의해 상기 컨텐츠 서버로부터 수신되는 요청한 컨텐츠를 저장하고 있는 노드 정보를 관리하는 노드 관리 모듈; 상기 단계(b)에 의해 수신한 노드 정보를 이용하여 요청한 컨텐츠를 저장하고 있는 노드들 중 미리 설정된 수의 노드에 연결을 설정하고, 연결이 설정된 노드들로부터 각각 다른 서브 블록 데이터를 수신하는 연결 제어 모듈; 하나의 블록을 구성하는 모든 서브 블록 데이터가 수신되는지 여부를 판단하는 서브 블록 관리 모듈; 하나의 블록을 구성하는 모든 서브 블록데이터가 수신될 경우, 모든 서브 블록이 수신된 블록 데이터를 상기 플레이어 제어 모듈에 제공하는 블록 관리 모듈을 포함할 수 있다.
상기 연결 제어 모듈은, 연결이 설정된 노드들 중 일부의 노드에서 서브 블록 데이터 수신 오류가 있을 경우, 연결이 설정된 노드들 중 서브 블록 데이터 송신이 완료된 노드가 있는지 여부를 판단하는 모듈; 연결이 설정된 노드들 중 서브 블록 데이터 송신이 완료된 노드가 있을 경우, 해당 노드에 수신 오류가 있는 서브 블록 데이터를 요청하는 모듈; 연결이 설정된 노드들 중 서브 블록 데이터 송신이 완료된 노드가 없을 경우, 상기 단계(b)에 의해 제공된 노드 정보를 이용하여 연결이 설정되지 않은 노드에 대해 연결을 설정하여 수신 오류가 있는 서브 블록 데이터를 수신하는 모듈을 포함할 수 있다.
상기 수신되는 서브 블록 데이터는 사용자가 요청한 컨텐츠의 리소스 식별자, 블록 번호, 서브 블록 번호를 포함하는 헤더 정보와 상기 헤더 정보에 상응하는 서브 블록 데이터를 포함할 수 있다.
또한, 본 발명에 따르면, 사용자 클라이언트로부터 컨텐츠 예약 요청 정보를 수신하는 단계; 및 상기 예약을 요청한 컨텐츠를 저장하고 있는 노드 정보를 컨텐츠 예약 요청 정보를 전송한 사용자 클라이언트에 제공하는 단계를 더 포함할 수 있다.
상기 컨텐츠 실행에 필요한 정보를 제공하는 단계는, 상기 사용자 클라이언트로부터 인증 요청 신호를 수신하는 단계; 사용자 인증 요청에 대한 응답 신호를 상기 사용자 클라이언트에 전송하는 단계; 사용자가 인증될 경우, 상기 사용자 클라이언트로부터 메타 데이터 요청 신호를 수신하는 단계; 및 사용자가 요청한 메타 데이터를 상기 사용자 클라이언트에 전송하는 단계를 포함할 수 있다.
상기 통신 에이전트는 상기 컨텐츠 서버에 예약 요청 정보를 전송하고 수신되는 예약 컨텐츠 정보를 관리하는 예약 관리 모듈을 더 포함할 수 있다.
이하에서, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 따른 컨텐츠 제공 시스템 및 방법의 바람직한 실시예를 상세하게 설명한다.
도 2는 본 발명의 바람직한 일 실시예에 컨텐츠 전송 시스템의 망 구성도를 도시한 도면이다.
도 2에 도시된 바와 같이, 본 발명의 바람직한 실시예에 따른 컨텐츠 전송 시스템은 컨텐츠 서버(200)와 메쉬 방식으로 연결되어 있는 복수의 사용자 클라이언트(202~216))를 포함하며, 각각의 사용자 클라이언트에는 통신 에이전트(218)가 설치되어 있다.
본 실시예에서는 전송되는 컨텐츠가 영화, 애니메이션과 같은 동영상 컨텐츠일 경우에 대해 설명할 것이나, 동영상 컨텐츠 이외의 컨텐츠라도 본 발명에 적용될 수 있다는 것은 당업자에게 있어 자명할 것이다.
본 발명에 따르면, 오버레이 멀티캐스팅 방법에 따라 사용자 클라이언트로 사용자가 요청한 컨텐츠가 전송된다. 따라서, 사용자가 특정 컨텐츠의 전송을 요청할 경우, 요청한 컨텐츠는 컨텐츠 서버(200)로부터 사용자 클라이언트로 직접 전송될 수도 있으며, 사용자가 요청한 컨텐츠를 저장하고 있는 다른 사용자 클라이언트로부터 요청한 사용자 클라이언트로 전송될 수 있다.
컨텐츠 서버(200)는 사용자들이 요청한 컨텐츠를 제공하며, 컨텐츠를 요청한 사용자가 해당 컨텐츠를 저장하고 있는 다른 사용자 클라이언트로부터 수신할 수 있도록 해당 컨텐츠를 저장하고 있는 사용자 클라이언트에 대한 정보를 제공한다.
예를 들어, 도 2에 도시된 사용자(202~216) 중 어느 한 사용자(204)가 특정 컨텐츠의 전송을 컨텐츠 서버(200)에 요청할 경우, 컨텐츠 서버(200)는 요청한 컨텐츠를 사용자(204)에게 직접 제공하거나 또는 요청한 컨텐츠를 저장하고 있는 다른 사용자 클라이언트에 대한 정보를 제공한다.
통신 에이전트(218)는 컨텐츠의 수신 및 송신을 위해 각각의 사용자 클라이언트에 설치되는 프로그램이다. 본 실시예에서는 통신 에이전트가 컴퓨터 소프트웨어인 경우에 대하여 설명할 것이나 통신 에이전트가 소프트웨어 이외의 별도의 장치나 카드의 형태로 구현되어 사용자 클라이언트에 설치될 수 있다는 것은 당업자에게 있어 자명할 것이다.
사용자들은 통신 에이전트(218)를 컨텐츠 서버(200) 또는 다른 인터넷상의 정보 제공 서버로부터 다운로드하여 설치할 수 있다.
상기 컨텐츠를 요청한 한 사용자(204)가 컨텐츠 서버(200)로부터 요청한 컨텐츠를 저장하고 있는 사용자 클라이언트 정보(206, 208, 210, 212)를 수신한 경우, 사용자 클라이언트에 설치된 통신 에이전트(218)는 해당 컨텐츠를 저장하고 있는 사용자 클라이언트(206, 208, 210, 212)의 전부 또는 일부에 해당 컨텐츠의 전송을 요청한다.
본 발명의 바람직한 실시예에 따르면, 컨텐츠를 요청한 사용자 클라이언트(204)는 병렬/분산 방식에 의해 요청한 컨텐츠를 수신한다. 즉, 컨텐츠를 요청한 사용자 클라이언트(204)는 요청한 컨텐츠를 저장하고 있는 어느 한 사용자 클라이언트로부터만 컨텐츠를 수신하지 않고, 복수의 사용자 클라이언트로부터 컨텐츠를 수신한다. 예를 들어, 사용자 클라이언트(204)는 요청한 컨텐츠를 저장하고 있는 사용자 클라이언트들(206, 208, 210, 212) 중 일부의 사용자 클라이언트(206, 210, 212)로부터 요청한 컨텐츠를 수신할 수도 있다. 컨텐츠를 수신한 사용자 클라이언트(204)에는 수신한 컨텐츠를 다른 사용자 클라이언트에도 전송할 수 있도록 수신한 컨텐츠가 저장된다.
본 발명과 같이 다른 사용자 클라이언트들로부터 컨텐츠를 수신할 경우, 컨텐츠를 제공하는 사용자 클라이언트가 꺼지거나 연결 상태가 불안해질 경우 컨텐츠 수신에 오류가 발생할 경우가 많으므로, 복수의 사용자 클라이언트와 연결 상태를 유지하여 컨텐츠를 수신하도록 한다. 컨텐츠를 병렬/분산 방식으로 수신하는 방법에 대해서는 후에 별도의 도면을 통해 상세히 설명하기로 한다.
도 2와 같이 시스템이 구성될 경우, 컨텐츠를 요청한 사용자 클라이언트는 컨텐츠 서버(200) 또는 요청한 컨텐츠를 저장하고 있는 다른 사용자 클라이언트들로부터 컨텐츠를 수신하기 때문에 많은 사용자가 컨텐츠를 요청하더라도 서버에 부담이 가지 않는다. 특히, 실시간 동영상 방송의 경우, 복수의 사용자가 같은 동영상 데이터를 수신하고 있으므로, 많은 사용자가 컨텐츠를 요청할수록 더 빠른 속도로 컨텐츠를 제공할 수 있게 된다.
도 3은 본 발명의 바람직한 일 실시예에 따른 컨텐츠 서버의 모듈 구성 및 컨텐츠 서버와 결합된 데이터베이스를 도시한 도면이다.
도 3에 도시된 바와 같이, 본 발명의 바람직한 일 실시예에 따른 컨텐츠 서버(200)는 메쉬 제어 모듈(300), 컨텐츠 전송 모듈(302), FEC 엔코딩 모듈(304) 및 인증 모듈(306)을 포함할 수 있으며, 컨텐츠 서버에는 사용자 데이터 베이스(308), 메타 정보 데이터베이스(310), 메쉬 정보 데이터베이스(312) 및 컨텐츠 데이터베이스(314)가 결합되어 있다. 도 3에서는 데이터베이스들이 별도로 구성되는 경우를 도시하였으나, 서버에 포함될 수도 있다는 것은 당업자에게 있어 자명할 것이다.
도 3에서, 메쉬 제어 모듈(300)은 통신 에이전트(218)를 통해 컨텐츠 서버와 접속되어 있는 사용자 클라이언트들의 정보를 관리하는 기능을 한다. 통신 에이전트(218)를 설치하고 있는 사용자 클라이언트가 켜질 경우, 사용자 클라이언트는 저장하고 있는 컨텐츠 정보를 컨텐츠 서버(200)에 전송하며, 메쉬 제어 모듈(300)은 전송된 컨텐츠 정보를 수신하여 메쉬 정보 데이터베이스(312)에 저장한다.
또한, 메쉬 제어 모듈(300)은 사용자가 특정 컨텐츠의 전송을 요청할 경우, 해당 컨텐츠를 저장하고 있는 사용자 클라이언트들에 대한 정보를 메쉬 정보 데이터베이스(312)를 조회하여 추출하고 이를 컨텐츠 전송을 요청한 사용자 클라이언트에 제공한다.
컨텐츠 전송 모듈(302)은 사용자가 요청한 컨텐츠를 사용자 클라이언트로 전송하는 기능을 한다. 컨텐츠 전송 모듈(302)은 컨텐츠 데이터베이스(314)를 조회하여 사용자가 요청한 컨텐츠를 제공한다.
FEC 엔코딩 모듈(304)은 컨텐츠 데이터베이스에 저장되어 있는 컨텐츠 정보를 FEC 엔코딩하여 컨텐츠 전송 모듈(302)에 제공한다. FEC 엔코딩은 이미 널리 알려진 공지의 기술이므로 이에 대한 상세한 설명은 생략하기로 한다. FEC 엔코딩 모듈은 본 발명의 필수적인 구성 요소는 아니며 전송상의 효율을 위해 사용될 수도 있고 그렇지 않을 수도 있다. 따라서, FEC 인코딩이 사용될 경우 컨텐츠 데이터베이스에 저장된 컨텐츠는 FEC 엔코딩 모듈에 의해 엔코딩되어 컨텐츠 전송 모듈에 제공되며, ,FEC 엔코딩이 사용되지 않는 경우에는 컨텐츠 데이터베이스의 컨텐츠가 직접 컨텐츠 전송 모듈에 제공된다.
FEC 엔코딩이 사용될 경우, 병렬/분산 전송에 오류가 있을 경우 이를 쉽게 해결할 수 있는 장점이 있으나, FEC 엔코딩 및 디코딩을 위해 CPU에 부담이 갈 수 있는 단점이 있다.
컨텐츠 전송 모듈(302)에서 전송되는 컨텐츠 데이터의 포맷 및 전송 방법에 대해서는 별도의 도면을 통해 후에 상세히 설명하기로 한다.
인증 모듈(306)은 컨텐츠를 요청하는 사용자를 인증하고 과금 정보를 처리하는 기능을 한다. 사용자가 컨텐츠를 요청할 경우, 사용자 아이디 및 비밀 번호를 포함하는 인증키 정보가 컨텐츠 서버(200)로 전송되며, 인증 모듈(306)은 메쉬 제어 모듈(300)과의 통신을 통해 등록된 사용자인지 여부를 판단한다. 또한 인증 모듈(306)은 외부 과금 서버(미도시)와 연계되어 컨텐츠를 요청한 사용자가 컨텐츠 요청에 따른 금액을 지불하였는지 여부를 판단한다.
사용자 데이터베이스(308)에는 등록된 사용자들의 아이디, 비밀번호, 신상 정보 등이 저장되며, 컨텐츠 데이터베이스(310)에는 제공하는 컨텐츠가 저장된다.
메타 정보 데이터베이스(310)에는 컨텐츠의 코딩 방식, 저작자 등에 대한 정보가 저장된다. 컨텐츠를 요청한 사용자가 인증되면, 메쉬 제어 모듈(300)은 컨텐츠를 요청한 사용자에게 요청한 컨텐츠의 메타 정보를 제공한다. 메타 정보는 동영상 컨텐츠의 재생을 위해 반드시 필요한 정보로서, 컨텐츠의 데이터 파일이 있다고 하더라도 메타 정보가 없으면 컨텐츠를 재생할 수 없다.
메쉬 정보 데이터베이스(312)에는 컨텐츠 서버(200)에 접속되어 있는 사용자 클라이언트 및 사용자 클라이언트에 저장되어 있는 컨텐츠 정보가 저장된다. 또한 사용자가 실시간 생방송을 시청하고 있는 경우, 이러한 정보 역시 메쉬 정보 데이터베이스(312)에 저장된다.
도 4는 본 발명의 바람직한 실시예에 따른 통신 에이전트의 모듈 구성을 도시한 블록도이다.
도 4에 도시된 바와 같이, 본 발명의 바람직한 실시예에 따른 통신 에이전트(218)는 에이전트 관리 모듈(400), 캐쉬 관리 모듈(402), 메쉬 관리 모듈(404), 플레이어 제어 모듈(406), 예약 관리 모듈(408) 및 FEC 디코딩 모듈(410)을 포함할 수 있으며, 메쉬 관리 모듈(404)은 연결 제어 모듈(412), 노드 관리 모듈(414), 블록 관리 모듈(416) 및 서브 블록 관리 모듈(418)을 포함할 수 있다.
도 4에서, 에이전트 관리 모듈(400)은 컨텐츠 서버(200)의 메쉬 제어 모듈(300)과의 통신을 담당하며, 사용자 클라이언트가 켜지거나 통신 에이전트가 실행될 경우, 사용자 클라이언트의 IP 및 포트 번호를 포함하는 사용자 클라이언트 정보와 사용자 클라이언트에 저장되어 있는 컨텐츠 정보를 메쉬 제어 모듈(300)에 제공하는 기능을 한다.
또한, 에이전트 관리 모듈(400)은 사용자가 컨텐츠 전송을 요청할 경우, 컨텐츠 요청 정보를 컨텐츠 서버의 메쉬 제어 모듈(300)에 전송하며, 요청한 컨텐츠에 대한 메타 정보를 컨텐츠를 실행할 플레이어에 제공한다.
캐쉬 관리 모듈(402)은 컨텐츠 서버(200) 또는 다른 사용자 클라이언트로부터 수신한 컨텐츠를 관리하는 모듈이다. 캐쉬 관리 모듈은 현재 남아있는 캐쉬의 용량, 저장되어 있는 컨텐츠의 정보를 저장하고 있으며, 사용자 클라이언트가 켜지거나 통신 에이전트가 실행되었을 때 상기 저장하고 있는 정보를 에이전트 관리 모듈(400)에 제공한다. 또한, 캐쉬 관리 모듈(402)은 컨텐츠 데이터의 재생 시 캐쉬에 저장하고 있는 데이터를 제공한다.
메쉬 관리 모듈(404)은 사용자가 요청하는 컨텐츠 데이터를 컨텐츠 서버(200) 또는 다른 사용자 클라이언트들에 요청하여 병렬/분산 방식으로 수신하는 기능을 한다.
메쉬 관리 모듈(404)에서 연결 제어 모듈(412)은 사용자가 요청한 컨텐츠를 저장하고 있는 사용자 클라이언트들(이하 "노드"라 함) 또는 컨텐츠 서버(200)에 연결을 설정하는 기능을 한다. 전술한 바와 같이, 노드 정보는 컨텐츠 서버(200)의 메쉬 제어 모듈(300)이 메쉬 정보 데이터베이스(312)를 조회하여 통신 에이전트에 제공한다.
병렬/분산 방식으로 컨텐츠 데이터를 수신하기 위해, 연결 제어 모듈(412)은 복수의 노드에 컨텐츠 데이터를 요청한다. 이때 연결 제어 모듈(412)은 복수의 노드들에 각각 다른 데이터를 요청하며, 복수의 경로를 통해 각각 다른 데이터를 수신한다.
도 6은 컨텐츠 서버와 컨텐츠를 요청한 클라이언트 또는 노드와 컨텐츠를 요청한 클라이언트 사이에 송·수신되는 컨텐츠 데이터의 포맷을 도시한 도면이다.
도 6에 도시된 바와 같이, 본 발명의 바람직한 실시예에 따른 컨텐츠 데이터의 포맷은 리소스 식별자(600), 블록 번호(602), 서브 블록 번호(604), 서브 블록 데이터(606)로 구성될 수 있다.
본 발명에 따르면, 컨텐츠 데이터의 분산 전송을 위해 컨텐츠 데이터는 블록과 서브 블록으로 구성된다. 다시 말해, 총 컨텐츠 데이터는 복수개의 블록으로 구성되며, 각각의 블록은 복수의 서브 블록으로 구성되며, 실제로 전송되는 데이터는 서브 블록 단위로 전송된다.
도 6에서, 리소스 식별자(600)는 사용자가 요청한 컨텐츠의 식별 번호이다. 예를 들어, 제공하는 컨텐츠가 영화일 경우, 각 영화의 식별번호에 대한 정보가 리소스 식별자에 기록된다.
블록 번호(602)는 전송되는 컨텐츠 데이터가 총 컨텐츠 데이터 중 몇 번째 블록에 해당하는 컨텐츠인지를 나타내는 헤더 정보이다.
서브 블록 번호(604)는 전송되는 컨텐츠 데이터가 해당 블록의 몇 번째 서브 블록에 해당하는지를 나타내는 헤더 정보이다.
도 5는 연결 제어 모듈에서 병렬/분산 방식으로 컨텐츠 데이터를 수신하는 방법을 나타낸 개념도이다.
도 5에 도시된 바와 같이, 복수의 노드(500, 502, 504)에 서브 블록 데이터를 요청하며, 각각의 노드에 서로 다른 서브 블록 데이터를 요청한다. 도 4에서는 세 개의 노드로부터 세 개의 서브 블록을 동시에 수신하는 경우가 도시되어 있으나, 분산 요청을 하는 노드 및 서브 블록의 개수가 설정에 따라 변경될 수 있다는 것은 당업자에게 있어 자명할 것이다.
또한, 연결 설정을 한 노드 중 특정 노드의 전송 속도가 빠를 경우에는 다른 노드보다 더 많은 서브 블록을 요청할 수도 있다. 예를 들어, 노드1(500)의 속도가 다른 노드들(502, 504)보다 빠르다고 판단될 경우, 노드1(500)에 제1 서브블록(506)이외의 다른 서브 블록을 더 요청할 수도 있는 것이다.
도 5와 같이 병렬/분산 방식을 이용할 경우, 어느 하나의 노드와 접속이 끊어질 경우, 데이터 수신에 오류가 발생할 수 있는 바, 이를 해결하기 위한 연결 제어 모듈의 알고리즘에 대해서는 별도의 도면을 통해 후술하기로 한다.
노드 관리 모듈(414)은 컨텐츠 서버(200)의 메쉬 제어 모듈(300)로부터 제공되는 노드 정보를 연결 제어 모듈(412)에 제공하는 기능을 한다. 노드 정보에는 노드의 아이피(IP) 주소와 포트 번호 및 저장하고 있는 컨텐츠 정보가 포함될 수 있을 것이다. 사용자의 컨텐츠 요청 시 에이전트 관리 모듈(400)은 사용자가 요청한 컨텐츠를 저장하고 있는 노드 정보를 컨텐츠 서버의 메쉬 제어 모듈(300)에 요청하며, 노드 정보를 수신하여 노드 관리 모듈(414)에 제공한다. 컨텐츠를 저장하고 있는 다른 사용자 클라이언트의 전원이 꺼지거나 연결이 불안해질 수 있으므로, 노드 정보는 계속적으로 갱신된다.
블록 관리 모듈(416)은 컨텐츠 데이터의 블록을 플레이어를 포함하는 재생 장치에 제공하는 기능을 한다. 플레이어 관리 모듈(408)로부터 특정 블록의 전송 요청이 있을 경우, 블록 관리 모듈(416)은 캐쉬 관리 모듈(402)에 해당 블록을 제공할 것을 요청한다. 요청한 블록이 캐쉬에 저장되어 있을 경우, 블록 관리 모듈(416)은 이를 플레이어 관리 모듈(408)에 제공하며, 캐쉬에 요청한 블록이 저장되어 있지 않을 경우, 블록 관리 모듈(416)은 연결 제어 모듈(412)에 해당 블록을 수신할 것을 요청한다.
서브 블록 관리 모듈(418)은 노드들로부터 서브 블록을 수신하고, 특정 블록에 포함되는 모든 서브 블록이 수신되었는지를 판단하여 이를 캐쉬 관리 모듈(402) 또는 블록 관리 모듈(416)에 제공하는 기능을 한다.
플레이어 제어 모듈(406)은 사용자가 특정 컨텐츠의 재생을 요청하며 플레이어를 실행하였을 경우, 플레이어의 실행 및 요청한 컨텐츠 정보를 에이전트 관리 모듈(400)에 제공하며, 블록 관리 모듈(418)로부터 요청한 컨텐츠의 블록 데이터를 수신하여 플레이어에 제공하는 기능을 한다.
예약 관리 모듈(408)은 컨텐츠를 미리 예약하여 수신하는 기능을 하는 모듈이다. 예약 관리 모듈(408)은 본 발명의 필수적인 구성요소는 아니며, 사용자의 네트워크 접속 환경이 컨텐츠 전송 속도를 지원할 수 없는 경우에 유용하게 사용될 수 있는 모듈이다.
본 발명에 따르면, 대역폭이 한정되어 있더라도 컨텐츠 데이터의 전송이 서버와 사용자 클라이언트에서 함께 이루어지므로, 빠른 속도로 컨텐츠를 제공할 수 있다. 예를 들어, 제공하는 컨텐츠가 영화 컨텐츠일 경우, 초당 2메가 이상의 속도로 컨텐츠를 전송할 수 있을 것이다. 그러나, 사용자의 인터넷 접속 환경이 이러한 전송 속도를 따라올 수 없는 경우가 있다. 따라서, 이러한 경우에는 영화를 직접 재생시키기 전에 예약을 하여 영화 데이터를 미리 캐쉬에 저장시키도록 하며, 예약 관리 모듈(308)은 이러한 예약을 위한 처리 과정을 수행한다.
예약 관리 모듈(408)은 사용자가 예약을 요청한 컨텐츠 정보 및 요청한 컨텐츠를 수신하였는지에 대한 정보를 관리하며, 요청한 컨텐츠가 모두 수신될 때까지 연결 제어 모듈(412)을 통해 필요한 데이터를 요청한다.
FEC 디코딩 모듈(410)은 컨텐트 서버(200)또는 노드들로부터 수신되는 정보가 FEC 엔코딩되어있을 경우, 이를 디코딩하는 기능을 한다. 전술한 바와 같이, FEC 엔코딩 및 디코딩이 본 발명의 필수적인 요소는 아니다.
도 7은 통신 에이전트의 연결 제어 모듈이 병렬/분산 방식의 데이터 수신을 제어하는 과정을 나타낸 순서도이다.
도 7에 도시된 바와 같이, 우선 연결 제어 모듈(412)은 노드 관리 모듈(414)로부터 사용자가 요청한 컨텐츠 데이터를 저장하고 있는 노드 정보를 수신한다(S700).
노드 정보를 수신한 후, 연결 제어 모듈(412)은 수신한 노드들 중 미리 설정된 N개의 노드에 연결을 설정한다(S702). 단계(S700)에서 수신하는 노드 정보는 상기 N개 이상의 노드 정보이며, 연결 제어 모듈(412)은 이 중의 일부를 선택하여 연결을 설정한다. 연결 설정을 위한 통신 에이전트 사이의 통신은 에이전트 관리 모듈(400)에서 이루어질 수도 있으며, 연결 제어 모듈(412)에서 직접 수행할 수도 있다. 연결 설정을 하는 상세한 과정에 대해서는 별도의 도면을 통해 후술하기로 한다.
복수의 노드와의 연결이 설정되면, 연결 제어 모듈(412)은 각각의 노드에 사용자가 요청한 컨텐츠의 서브 블록(각 노드마다 다른 서브 블록을 요청한다는 것은 이미 설명하였다)을 요청하여 이를 수신한다(S704).
서브 블록 관리 모듈(416)은 특정 블록에 포함되는 모든 서브 블록이 올바로 수신되는지 여부를 판단한다(S706).
설정된 N개의 경로 중, 일부 경로에서 서브 블록 수신에 오류가 발생한 경우, 연결 제어 모듈은 오류가 발생하지 않은 다른 경로 중 서브 블록 수신이 완료된 경로가 존재하는지 여부를 판단한다(S708).
서브 블록 수신이 완료된 경로가 존재할 경우, 연결 제어 모듈은 수신이 완료된 경로로부터 수신 오류가 있는 서브 블록을 요청하여 수신한다(S710). 이미 서브 블록의 수신이 완료되었다면, 연결 상태가 좋다고 판단할 수 있으므로, 연결 제어 모듈은 수신 오류가 있는 경우에 수신이 완료된 경로에 수신 오류가 있는 서브 블록을 요청하는 것이다.
수신 오류가 발생하지 않은 다른 경로 중 서브 블록 수신이 완료된 경로가 존재하지 않는 경우, 연결 제어 모듈은 상기 단계(S700)에서 수신한 노드 정보를 이용하여 새로운 노드에 대해 연결을 설정한다(S712).
연결 설정이 완료되면, 새로이 설정된 경로로부터 수신 오류가 있는 서브 블록을 수신한다(S714).
도 8은 본 발명의 바람직한 일 실시예에 따른 사용자 클라이언트의 전원이 켜졌을 때 통신 에이전트가 컨텐츠 서버에 사용자 클라이언트를 등록하는 과정을 나타낸 순서도이다.
도 8에 도시된 바와 같이, 우선 사용자 클라이언트의 전원이 켜지면, 통신 에이전트의 에이전트 관리 모듈(400)은 컨텐츠 서버(200)에 TCP 접속을 수행한다(S800).
컨텐츠 서버(200)로의 TCP 접속이 완료되면, 통신 에이전트의 에이전트 관리 모듈(400)은 노드 정보 등록 요청 메시지를 컨텐츠 서버(200)로 전송한다(S802).
노드 정보 등록 요청 메시지에는 사용자 클라이언트의 IP 주소, 사용자 클라이언트의 포트 번호, 사용자 클라이언트의 캐쉬 정보가 포함되며. 상기 캐쉬 정보에는 캐쉬에 저장되어 있는 컨텐츠의 식별 번호가 포함된다.
컨텐츠 서버(200)의 메쉬 제어 모듈(300)은 노드 정보 등록 요청 메시지를 수신한 후 메쉬 정보 데이터베이스에 노드 정보 등록 요청 메시지에 포함된 사용자 클라이언트의 IP 정보, 포트 번호 및 캐쉬 정보 등을 저장한다.
따라서, 사용자 클라이언트의 전원이 켜지면, 컨텐츠 서버(200)는 사용자 클라이언트의 IP와 저장하고 있는 컨텐츠 정보를 파악할 수 있다.
노드 정보 등록 요청 메시지를 수신한 컨텐츠 서버(200)는 사용자 클라이언트에 TCP 접속을 수행한다(S804).
TCP 접속이 성공적으로 완료되면, 컨텐츠 서버는 노드 타입 체크 신호를 사용자 클라이언트에 전송한다(S806). 노드 타입 체크 신호에는 노드 식별 번호가 포함되며, 노드 타입 체크 신호를 수신한 사용자 클라이언트는 노드 타입 체크 응답 신호를 컨텐츠 서버(200)에 전송한다(S808).
노드 타입 체크 응답 신호를 수신한 컨텐츠 서버는 노드 등록 절차가 완료되었다고 판단하고 사용자 클라이언트와의 TCP 접속을 해제한다(S810).
도 9는 본 발명의 바람직한 실시예에 따른 사용자가 플레이어를 실행하면서 컨텐츠를 요청하였을 경우 플레이어 제어 모듈, 에이전트 관리 모듈 및 컨텐츠 서버 사이의 통신 과정을 나타낸 순서도이다.
사용자가 컨텐츠의 전송을 요청하면, 플레이어 제어 모듈(306)은 플레이어 오픈 요청 신호를 에이전트 관리 모듈(400)에 전송한다(S900). 플레이어 오픈 요청 신호에는 사용자가 수신하고자 하는 컨텐츠 식별 정보, 사용자 아이디 및 인증키 정보가 포함된다.
플레이어 오픈 요청 신호를 수신한 에이전트 관리 모듈(400)은 컨텐츠 서버에 인증 요청 신호를 전송한다(S902). 상기 인증 요청 신호에는 사용자의 아이디 및 인증키 정보가 포함된다.
인증 요청 신호를 수신한 컨텐츠 서버(200)의 인증 모듈은 수신한 사용자 아이디 및 인증키 정보를 통해 등록된 사용자이고 컨텐츠 수신에 따른 비용을 지불하였는지 여부를 판단하고 인증 응답 신호를 에이전트 관리 모듈에 전송한다(S904).
인증이 성공적으로 이루어진 경우, 에이전트 관리 모듈(400)에 인증 완료 신호를 전송하여 인증이 성공적으로 이루어졌음을 알린다(S906).
에이전트 관리 모듈은 사용자가 전송을 요청한 컨텐츠에 대한 메타 데이터를 요청하는 메타 데이터 요청 신호를 컨텐츠 서버에 전송한다(S908). 메타 데이터 요청 신호에는 사용자 클라이언트의 식별 번호와 요청하는 컨텐츠의 식별 번호가 포함된다.
메타 데이터 요청 신호를 수신한 컨텐츠 서버의 메쉬 제어 모듈(300)은 메타 정보 데이터베이스를 조회하여 사용자가 요청한 컨텐츠의 메타 데이터를 추출하고, 추출한 메타 데이터를 에이전트 관리 모듈에 전송한다(S910).
메타 데이터를 수신한 에이전트 관리 모듈(400)은 플레이어 제어 모듈(406)에 플레이어를 오픈할 준비가 완료되었음을 알리는 플레이어 오픈 완료 신호를 전송한다(S912).
도 10은 본 발명의 바람직한 일 실시예에 따른 컨텐츠 서버로부터 노드 정보를 수신하여 연결을 설정하는 과정을 나타낸 순서도이다.
사용자 클라이언트의 캐쉬에 사용자가 요청한 컨텐츠 데이터가 저장되어 있지 않는 경우, 통신 에이전트는 컨텐츠 서버에 노드 리스트 요청 신호를 전송한다(S1000). 노드 리스트 요청 신호에는 요청한 컨텐츠의 식별 번호 및 수신하고자 하는 블록의 블록 번호가 포함되어 있다.
노드 리스트 요청 정보를 수신한 컨텐츠 서버는 메쉬 정보 데이터베이스를 조회하여 요청한 블록을 저장하고 있는 노드의 리스트를 추출한다(S1002).
컨텐츠 서버는 상기 추출한 노드 리스트를 이용하여 노드 리스트 셋을 생성한다(S904). 노드 리스트 셋에는 컨텐츠 식별 번호, 제공하는 노드의 개수 및 각 노드의 아이피 주소, 포트 번호 및 노드 타입에 대한 정보가 포함된다.
생성된 노드 리스트 셋은 컨텐츠 서버에서 사용자 클라이언트의 통신 에이전트로 전송된다(S1006).
노드 리스트 셋을 수신한 통신 에이전트는 수신한 노드 리스트 중 미리 설정된 수의 노드와 연결을 설정한다(S1008). 전술한 바와 같이, 연결 제어 모듈이 각 노드와 연결을 설정하는 작업을 수행한다.
통신 에이전트는 미리 설정된 수의 모든 노드와 연결이 설정되었는지 여부를 판단하고(S1010), 연결 설정이 완료되면 노드들로부터 요청한 블록에 포함되는 서브 블록 데이터를 병렬/분산 방식으로 수신한다(S1014).
미리 설정된 수의 모든 노드와 연결이 설정되지 않으면, 수신한 노드 리스트 정보 중 연결 설정을 시도하지 않은 다른 노드와 연결을 설정하고(S1012), 연결 설정이 완료되면 요청한 블록에 포함되는 서브 블록 데이터를 병렬/분산 방식으로 수신한다(S1014).
도 11은 본 발명의 바람직한 일 실시예에 따른 컨텐츠를 수신하는 사용자 클라이언트가 노드에 연결을 설정하는 과정을 나타낸 순서도이다.
도 11에 도시된 바와 같이, 우선 사용자 클라이언트의 통신 에이전트는 노드에 TCP 접속을 수행한다(S1100).
TCP 접속이 완료되면, 사용자 클라이언트의 통신 에이전트는 수신자 등록 요청 신호를 전송한다(S1102). 수신자 등록 요청 신호에는 노드에 접속 요청을 하는 사용자 클라이언트의 아이피 주소, 포트 번호, 노드에 요청하려는 컨텐츠 정보가 포함된다.
수신자 등록 요청 신호를 수신한 노드는 요청하는 컨텐츠를 저장하고 있는지 및 접속을 요청하는 사용자 클라이언트와 연결을 설정할 수 있는 상태(예를 들어, 미리 설정된 수 이상의 사용자 클라이언트가 접속을 요청할 경우 접속을 거부함)인지 여부를 판단하다.
판단 결과, 요청한 컨텐츠를 저장하고 있고 연결을 설정할 수 있으면, 수신자 등록을 완료하고 수신자 등록 완료 신호를 사용자 클라이언트에 전송한다(S1104).
도 12는 컨텐츠 재생에 필요한 블록 데이터가 플레이어 제어 모듈에 제공되는 과정을 도시한 순서도이다.
우선, 플레이어 제어 모듈(406)은 컨텐츠 재생에 필요한 블록 데이터를 에이전트 관리 모듈(400)에 요청한다(S1200). 플레이어 제어 모듈(406)이 에이전트 관리 모듈(400)에 요청하는 신호에는 블록 번호 정보가 포함된다.
플레이어 제어 모듈(406)로부터 블록 요청을 받은 에이전트 관리 모듈(400)은 블록 관리 모듈(416)에 해당 블록을 요청한다(S1202).
에이전트 관리 모듈(400)로부터 요청을 받은 블록 관리 모듈(406)은 캐쉬 관리 모듈(402)에 해당 블록을 요청한다(S1204).
캐쉬 관리 모듈(402)은 블록 관리 모듈(406)이 요청한 블록 데이터가 캐쉬에 저장되어 있는지 여부를 판단한다(S1206).
블록 관리 모듈(406)이 요청한 블록 데이터가 캐쉬에 저장되어 있을 경우, 캐쉬 관리 모듈(402)은 해당 블록을 블록 관리 모듈(406)에 제공한다(S1208).
블록 관리 모듈(406)이 요청한 블록 데이터가 캐쉬에 저장되어 있지 않는 경우, 캐쉬 관리 모듈(402)은 연결 제어 모듈(412)에 해당 블록을 수신할 것을 요청한다(S1210).
연결 제어 모듈(412)은 노드 관리 모듈(414)과 통신하여 해당 블록을 저장하고 있는 노드 정보를 수신한다(S1210). 노드 관리 모듈(414)이 노드 정보를 수신하는 상세한 과정에 대해서는 앞에서 설명하였으므로, 여기서는 설명을 생략하기로 한다.
노드 관리 모듈(414)로부터 노드 정보를 수신한 연결 제어 모듈(312)은 제공된 노드 중 미리 설정된 N개의 노드와 연결을 설정하고, 병렬/분산 방식으로 해당 블록의 서브 블록 데이터를 수신한다(S1214).
서브 블록 관리 모듈(418)은 복수의 노드들로부터 요청한 블록의 모든 서브 블록이 수신되는지 여부를 판단한다(S1216).
서브 블록 수신에 오류가 있는 경우, 연결 제어 모듈(412)은, 전술한 바와 같이, 새로운 경로를 설정하거나 서브 블록 수신이 완료된 다른 노드로부터 수신에 오류가 있는 서브 블록을 재수신한다(S1218).
요청한 블록에 포함되는 모든 서브 블록이 수신되면, 서브 블록 관리 모듈(418)은 수신한 서브 블록을 캐쉬 관리 모듈(402)에 제공하고 캐쉬 관리 모듈(402)은 이를 캐쉬에 저장한다(S1220). 본 발명의 바람직한 실시예에 따르면, 캐쉬에 저장되는 컨텐츠 데이터는 스크램블링(scrambling)된 상태로 저장되는 것이 바람직하다.
캐쉬 관리 모듈은 모든 서브 블록이 수신된 블록 데이터를 블록 관리 모듈(416)에 제공한다(S1222). 도 12에는 서브 블록 관리 모듈(418)이 수신한 서브 블록을 캐쉬 관리 모듈(402)에 제공하고, 캐쉬 관리 모듈(402)이 이를 블록 관리 모듈(416)에 제공하는 것으로 도시되어 있으나, 서브 블록 관리 모듈(418)이 블록 관리 모듈(416)에 직접 서브 블록을 제공할 수 있다는 것은 당업자에게 있어 자명할 것이며, 이 외에도 각 프로세스를 처리하는 모듈이 운영자의 설정에 따라 변경될 수 있으며, 이러한 변경이 본 발명의 범주에 속한다는 것은 당업자에게 있어 자명할 것이다.
도 13은 본 발명의 바람직한 일 실시예에 따른 컨텐츠 예약 과정을 도시한 순서도이다.
사용자가 컨텐츠의 예약을 요청하면, 예약 관리 모듈(408)은 사용자의 예약 요청 정보를 에이전트 관리 모듈(400)에 제공한다(S1300)
에이전트 관리 모듈(400)은 컨텐츠 서버에 예약 요청 신호를 전송한다(S1302). 예약 요청 정보에는 예약을 요청하는 사용자 클라이언트의 정보 및 예약하고자 하는 컨텐츠 식별 번호가 포함된다.
예약 요청 신호를 수신한 컨텐츠 서버(200)는 예약 정보 셋을 예약을 요청한 사용자 클라이언트의 에이전트 관리 모듈(400)로 전송한다(S1304). 예약 정보 셋에는 예약을 요청한 컨텐츠 식별 번호, 컨텐츠의 총 블록 수, 필요한 대역폭, 예약 링크의 크기에 대한 정보가 포함된다.
예약 정보 셋을 수신한 에이전트 관리 모듈(400)은 예약 관리 모듈(408)에 예약 정보 셋을 제공한다(S1306).
예약 관리 모듈(408)은 플레이어 제어 모듈(406)로 예약한 컨텐츠에 대한 정보를 제공한다(S1308).
플레이어 제어 모듈(406)은 앞서 설명한 컨텐츠 전송 절차와 같이 에이전트 관리 모듈에 블록 정보를 요청하고, 연결 제어 모듈(412)이 필요한 블록을 저장하고 있는 노드에 연결을 설정하며, 병렬/분산 방식에 의해 서브 블록을 수신하는 절차가 진행된다(S1310).
컨텐츠 전송 절차는 예약을 요청한 컨텐츠의 모든 블록 데이터가 수신될 때까지 자동적으로 수행되며, 수신되는 블록 데이터는 캐쉬에 저장된다(S1312).
상기한 본 발명의 바람직한 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대해 통상의 지식을 가진 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다.
이상에서 설명한 바와 같이, 본 발명에 따른 컨텐츠 제공 방법 및 시스템에 따르면, 많은 사용자 클라이언트가 서버에 컨텐츠를 요청하더라도 서버의 부하 없이 컨텐츠를 효과적으로 전송할 수 있는 장점이 있다.
또한, 본 발명에 따르면, 오히려 컨텐츠를 요청하는 사용자가 많아질수록 더 빠른 속도로 컨텐츠를 제공할 수 있는 장점이 있다.
아울러, 병렬/분산 방식으로 컨텐츠가 제공되기 때문에 어느 한 노드와의 접속이 끊어지더라도 안정적으로 컨텐츠를 제공할 수 있는 장점이 있다.
도 1a는 종래의 컨텐츠 전송 시스템의 일례를 도시한 도면.
도 1b는 또 다른 종래의 컨텐츠 전송 시스템의 구성을 도시한 도면.
도 1c는 종래의 CDN 컨텐츠 전송 시스템의 구성을 도시한 도면.
도 2는 본 발명의 바람직한 일 실시예에 컨텐츠 전송 시스템의 망 구성도를 도시한 도면.
도 3은 본 발명의 바람직한 일 실시예에 따른 컨텐츠 서버의 모듈 구성 및 컨텐츠 서버와 결합된 데이터베이스를 도시한 도면.
도 4는 본 발명의 바람직한 실시예에 따른 통신 에이전트의 모듈 구성을 도시한 블록도.
도 5는 연결 제어 모듈에서 병렬/분산 방식으로 컨텐츠 데이터를 수신하는 방법을 나타낸 개념도.
도 6은 컨텐츠 서버와 컨텐츠를 요청한 클라이언트 또는 노드와 컨텐츠를 요청한 클라이언트 사이에 송·수신되는 컨텐츠 데이터의 포맷을 도시한 도면.
도 7은 통신 에이전트의 연결 제어 모듈이 병렬/분산 방식의 데이터 수신을 제어하는 과정을 나타낸 순서도.
도 8은 본 발명의 바람직한 일 실시예에 따른 사용자 클라이언트의 전원이 켜졌을 때 통신 에이전트가 컨텐츠 서버에 사용자 클라이언트를 등록하는 과정을 나타낸 순서도.
도 9는 본 발명의 바람직한 실시예에 따른 사용자가 플레이어를 실행하면서 컨텐츠를 요청하였을 경우 플레이어 제어 모듈, 에이전트 관리 모듈 및 컨텐츠 서버 사이의 통신 과정을 나타낸 순서도.
도 10은 본 발명의 바람직한 일 실시예에 따른 컨텐츠 서버로부터 노드 정보를 수신하여 연결을 설정하는 과정을 나타낸 순서도.
도 11은 본 발명의 바람직한 일 실시예에 따른 컨텐츠를 수신하는 사용자 클라이언트가 노드에 연결을 설정하는 과정을 나타낸 순서도.
도 12는 컨텐츠 재생에 필요한 블록 데이터가 플레이어 제어 모듈에 제공되는 과정을 도시한 순서도.
도 13은 본 발명의 바람직한 일 실시예에 따른 컨텐츠 예약 과정을 도시한 순서도.

Claims (23)

  1. 컨텐츠 서버 및 복수의 사용자 클라이언트가 네트워크를 통해 연결되어 있고, 상기 복수의 사용자 클라이언트에는 다른 사용자 클라이어트들 또는 컨텐츠 서버와 통신하기 위한 통신 에이전트가 설치되어 있는 시스템에서 컨텐츠 스트리밍 데이터를 사용자 클라이언트에 제공하는 방법으로서,
    상기 통신 에이전트 프로그램에 의해 제어되는 사용자 클라이언트들로부터 연결 설정 요청 정보를 수신하여 연결을 설정하고 연결 설정한 클라이언트의 주소 정보를 수신하는 단계(a);
    상기 통신 에이전트 프로그램의 사용자 클라이언트 제어를 통해 상기 단계(a)에서 연결이 설정된 복수의 사용자 클라이언트들로부터 각 사용자 클라이언트가 저장하고 있는 컨텐츠 정보를 수신하여 각 클라이언트의 컨텐츠 저장 정보를 관리하는 단계(b);
    사용자 클라이언트로부터 특정 컨텐츠에 대한 전송 요청 신호를 수신하는 단계(c); 및
    상기 단계(b)의 관리 정보를 이용하여 상기 컨텐츠를 요청한 사용자 클라이언트에 요청한 컨텐츠를 저장하고 있는 노드 정보를 제공하는 단계(c)- 상기 노드는 컨텐츠를 저장하고 있는 서버 또는 다른 클라이언트들을 모두 포함하며, 상기 노드 정보는 해당 컨텐츠를 저장하고 있는 서버 또는 사용자 클라이언트의 주소 정보임-를 포함하며,
    상기 컨텐츠를 요청한 사용자 클라이언트에 설치된 통신 에이전트는 상기 제공된 노드 정보를 이용하여 복수의 노드에 연결을 설정하며, 연결이 설정된 노드들로부터 병렬/분산 방식으로 컨텐츠 스트리밍 데이터를 수신하며, 다른 사용자 클라이언트로부터 저장된 컨텐츠에 대한 전송 요청을 받을 경우, 요청된 컨텐츠 스트리밍 데이터를 상기 다른 사용자 클라이언트에 전송하도록 상기 사용자 클라이언트를 제어하는 것을 특징으로 하는 컨텐츠 제공 방법
  2. 제1항에 있어서,
    상기 사용자 클라이언트에 전송하는 컨텐츠의 실행에 필요한 정보-컨텐츠의 메타 정보를 포함함-를 제공하는 단계를 더 포함하는 것을 특징으로 하는 컨텐츠 제공 방법.
  3. 제1항에 있어서,
    상기 컨텐츠 서버 및 상기 복수의 사용자 클라이언트에 저장되는 컨텐츠는 총 컨텐츠 데이터를 미리 설정된 단위로 나눈 복수의 블록으로 구성되며, 상기 블록은 이를 미리 설정된 단위로 나눈 복수의 서브 블록으로 구성되는 것을 특징으로 하는 컨텐츠 제공 방법.
  4. 제1항에 있어서,
    상기 통신 에이전트는,
    상기 컨텐츠 서버에 사용자 클라이언트에 저장하고 있는 컨텐츠 정보 및 사용자 클라이언트 식별 정보를 제공하고, 사용자가 컨텐츠를 요청할 경우 컨텐츠 요청 정보를 상기 컨텐츠 서버에 전송하는 에이전트 관리 모듈;
    사용자 클라이언트에 저장되어 있는 컨텐츠 정보를 관리하는 캐쉬 관리 모듈;
    사용자가 전송을 요청한 컨텐츠를 저장하고 있는 노드에 연결을 설정하여 병렬/분산 방식으로 요청한 컨텐츠를 수신하는 메쉬 관리 모듈;
    사용자의 컨텐츠 요청 정보를 상기 에이전트 관리 모듈에 제공하고, 수신한 컨텐츠를 컨텐츠 플레이어에 제공하는 플레이어 제어 모듈을 포함하는 것을 특징으로 하는 컨텐츠 제공 방법.
  5. 제3항 또는 제4항에 있어서,
    상기 메쉬 관리 모듈은,
    상기 단계(b)에 의해 상기 컨텐츠 서버로부터 수신되는 요청한 컨텐츠를 저장하고 있는 노드 정보를 관리하는 노드 관리 모듈;
    상기 단계(b)에 의해 수신한 노드 정보를 이용하여 요청한 컨텐츠를 저장하고 있는 노드들 중 미리 설정된 수의 노드에 연결을 설정하고, 연결이 설정된 노드들로부터 각각 다른 서브 블록 데이터를 수신하는 연결 제어 모듈;
    하나의 블록을 구성하는 모든 서브 블록 데이터가 수신되는지 여부를 판단하는 서브 블록 관리 모듈;
    하나의 블록을 구성하는 모든 서브 블록데이터가 수신될 경우, 모든 서브 블록이 수신된 블록 데이터를 상기 플레이어 제어 모듈에 제공하는 블록 관리 모듈을 포함하는 것을 특징으로 하는 컨텐츠 제공 방법.
  6. 제5항에 있어서,
    상기 연결 제어 모듈은,
    연결이 설정된 노드들 중 일부의 노드에서 서브 블록 데이터 수신 오류가 있을 경우, 연결이 설정된 노드들 중 서브 블록 데이터 송신이 완료된 노드가 있는지 여부를 판단하는 모듈;
    연결이 설정된 노드들 중 서브 블록 데이터 송신이 완료된 노드가 있을 경우, 해당 노드에 수신 오류가 있는 서브 블록 데이터를 요청하는 모듈;
    연결이 설정된 노드들 중 서브 블록 데이터 송신이 완료된 노드가 없을 경우, 상기 단계(b)에 의해 제공된 노드 정보를 이용하여 연결이 설정되지 않은 노드에 대해 연결을 설정하여 수신 오류가 있는 서브 블록 데이터를 수신하는 모듈을 포함하는 것을 특징으로 하는 컨텐츠 제공 방법.
  7. 제5항에 있어서,
    상기 수신되는 서브 블록 데이터는 사용자가 요청한 컨텐츠의 리소스 식별자, 블록 번호, 서브 블록 번호를 포함하는 헤더 정보와 상기 헤더 정보에 상응하는 서브 블록 데이터를 포함하는 것을 특징으로 하는 컨텐츠 제공 방법.
  8. 제1항에 있어서,
    사용자 클라이언트로부터 컨텐츠 예약 요청 정보를 수신하는 단계;
    상기 예약을 요청한 컨텐츠를 저장하고 있는 노드 정보를 컨텐츠 예약 요청 정보를 전송한 사용자 클라이언트에 제공하는 단계를 더 포함하는 것을 특징으로 하는 컨텐츠 제공 방법.
  9. 제2항에 있어서,
    상기 컨텐츠 실행에 필요한 정보를 제공하는 단계는,
    상기 사용자 클라이언트로부터 인증 요청 신호를 수신하는 단계;
    사용자 인증 요청에 대한 응답 신호를 상기 사용자 클라이언트에 전송하는 단계;
    사용자가 인증될 경우, 상기 사용자 클라이언트로부터 메타 데이터 요청 신호를 수신하는 단계; 및
    사용자가 요청한 메타 데이터를 상기 사용자 클라이언트에 전송하는 단계를 포함하는 것을 특징으로 하는 컨텐츠 제공 방법.
  10. 제4항 또는 제8항에 있어서,
    상기 통신 에이전트는 상기 컨텐츠 서버에 예약 요청 정보를 전송하고 수신되는 예약 컨텐츠 정보를 관리하는 예약 관리 모듈을 더 포함하는 것을 특징으로 하는 컨텐츠 제공 방법.
  11. 제1항에 있어서,
    상기 통신 에이전트는,
    상기 컨텐츠 서버로 상기 사용자 클라이언트의 접속 요청 정보 및 상기 접속 요청을 하는 사용자 클라이언트에 저장된 컨텐츠 정보를 전송하는 단계;
    상기 컨텐츠 서버로 컨텐츠 요청 신호를 전송하는 단계;
    상기 컨텐츠 서버로부터 요청한 컨텐츠를 저장하고 있는 노드 정보를 수신하는 단계; 및
    상기 수신한 노드 정보를 이용하여 컨텐츠를 수신하고자 하는 복수의 노드에 연결을 설정하는 단계;
    연결을 설정한 노드로부터 요청한 컨텐츠를 병렬/분산 방식으로 수신하는 단계를 상기 사용자 클라이언트가 수행하도록 제어하는 것을 특징으로 하는 컨텐츠 전송 방법.
  12. 제11항에 있어서,
    상기 통신 에이전트는 상기 병렬/분산 방식으로 수신하는 컨텐츠를 상기 사용자 클라이언트의 캐쉬에 저장하는 단계를 더 수행하도록 상기 사용자 클라이언트를 제어하는 것을 특징으로 하는 컨텐츠 전송 방법.
  13. 제3항 또는 제11항에 있어서,
    상기 통신 에이전트는,
    연결이 설정된 노드들 중 일부의 노드에서 서브 블록 데이터 수신 오류가 있을 경우, 연결이 설정된 노드들 중 서브 블록 데이터 송신이 완료된 노드가 있는지 여부를 판단하는 단계;
    연결이 설정된 노드들 중 서브 블록 데이터 송신이 완료된 노드가 있을 경우, 해당 노드에 수신 오류가 있는 서브 블록 데이터를 요청하는 단계;
    연결이 설정된 노드들 중 서브 블록 데이터 송신이 완료된 노드가 없을 경우, 상기 단계(b)에 의해 제공된 노드 정보를 이용하여 연결이 설정되지 않은 노드에 대해 연결을 설정하여 수신 오류가 있는 서브 블록 데이터를 수신하는 단계를 더 수행하도록 상기 사용자 클라이언트를 제어하는 것을 특징으로 하는 컨텐츠 전송 방법.
  14. 다른 노드와의 통신을 위한 통신 에이전트가 설치되어 있는 복수의 사용자 클라이언트와 네트워크를 통해 연결되어 있는 컨텐츠 스트리밍 데이터 제공 서버에 있어서,
    상기 통신 에이전트 프로그램에 의해 제어되는 사용자 클라이언트들로부터 연결 설정 요청 정보를 수신하여 연결을 설정하는 연결 설정 모듈;
    연결이 설정된 복수의 사용자 클라이언트들로부터 각 사용자 클라이언트가 저장하고 있는 컨텐츠 정보를 수신하여 각 사용자 클라이언트의 컨텐츠 저장 정보를 관리하고, 특정 컨텐츠 전송을 요청하는 사용자 클라이언트에 요청한 컨텐츠를 저장하고 있는 노드 정보를 제공하는 메쉬 제어 모듈-상기 노드는 컨텐츠를 저장하고 있는 서버 또는 다른 클라이언트들을 모두 포함하며, 상기 노드 정보는 해당 컨텐츠를 저장하고 있는 서버 또는 사용자 클라이언트의 주소 정보임-;
    사용자 클라이언트가 요청하는 컨텐츠를 전송하는 컨텐츠 전송 모듈; 및
    상기 메쉬 제어 모듈에서 수신하는 각 사용자 클라이언트가 저장하고 있는 컨텐츠 정보를 저장하는 메쉬 정보 데이터베이스를 포함하되,
    상기 컨텐츠를 요청한 사용자 클라이언트에 설치된 통신 에이전트는 상기 제공된 노드 정보를 이용하여 복수의 노드에 연결을 설정하며, 연결이 설정된 노드들로부터 병렬/분산 방식으로 컨텐츠 스트리밍 데이터를 수신하며, 다른 사용자 클라이언트로부터 저장된 컨텐츠에 대한 전송 요청을 받을 경우, 요청된 컨텐츠 스트리밍 데이터를 상기 다른 사용자 클라이언트에 전송하도록 상기 사용자 클라이언트를 제어하는 것을 특징으로 하는 컨텐츠 제공 서버.
  15. 제14항에 있어서,
    상기 요청하는 컨텐츠의 실행에 필요한 메타 정보를 저장하는 메타 정보 데이터베이스를 더 포함하는 것을 특징으로 하는 컨텐츠 제공 서버.
  16. 제14항에 있어서,
    상기 통신 에이전트는,
    상기 컨텐츠 서버에 사용자 클라이언트에 저장되어 있는 컨텐츠 정보 및 사용자 클라이언트 식별 정보를 제공하고, 사용자가 컨텐츠를 요청할 경우 컨텐츠 요청 정보를 상기 컨텐츠 서버에 전송하는 에이전트 관리 모듈;
    사용자 클라이언트에 저장되어 있는 컨텐츠 정보를 관리하는 캐쉬 관리 모듈;
    사용자가 전송을 요청한 컨텐츠를 저장하고 있는 노드에 연결을 설정하여 병렬/분산 방식으로 요청한 컨텐츠를 수신하는 메쉬 관리 모듈;
    사용자의 컨텐츠 요청 정보를 상기 에이전트 관리 모듈에 제공하고, 수신한 컨텐츠를 컨텐츠 플레이어에 제공하는 플레이어 제어 모듈을 포함하는 것을 특징으로 하는 컨텐츠 제공 서버.
  17. 제14항에 있어서,
    상기 복수의 사용자 클라이언트에 저장되는 컨텐츠는 총 컨텐츠 데이터를 미리 설정된 단위로 나눈 복수의 블록으로 구성되며, 상기 블록은 이를 미리 설정된 단위로 나눈 복수의 서브 블록으로 구성되는 것을 특징으로 하는 컨텐츠 제공 서버.
  18. 제14항에 있어서,
    연결이 설정된 노드들 중 일부의 노드에서 서브 블록 데이터 수신 오류가 있을 경우, 연결이 설정된 노드들 중 서브 블록 데이터 송신이 완료된 노드가 있는지 여부를 판단하는 모듈;
    연결이 설정된 노드들 중 서브 블록 데이터 송신이 완료된 노드가 있을 경우, 해당 노드에 수신 오류가 있는 서브 블록 데이터를 요청하는 모듈;
    연결이 설정된 노드들 중 서브 블록 데이터 송신이 완료된 노드가 없을 경우, 상기 단계(b)에 의해 제공된 노드 정보를 이용하여 연결이 설정되지 않은 노드에 대해 연결을 설정하여 수신 오류가 있는 서브 블록 데이터를 수신하는 모듈을 포함하는 것을 특징으로 하는 컨텐츠 제공 서버.
  19. 컨텐츠 서버 및 복수의 사용자 클라이언트가 네트워크를 통해 연결되어 있는 시스템에서 상기 복수의 사용자 클라이언트에 설치되어 사용자 클라이언트의 동작을 제어하는 통신 에이전트 시스템으로서,
    사용자 클라이언트의 전원이 켜지거나 통신 에이전트 시스템의 실행 시 상기 컨텐츠 서버에 연결 설정을 요청하여 연결을 설정하는 연결 설정 모듈;
    상기 컨텐츠 서버에 연결 설정을 완료한 후, 사용자 클라이언트에 저장되어 있는 컨텐츠 정보 및 사용자 클라이언트 식별 정보를 제공하고, 사용자가 컨텐츠를 요청할 경우 컨텐츠 요청 정보를 상기 컨텐츠 서버에 전송하며, 사용자가 요청한 컨텐츠를 저장하고 있는 노드 정보를 수신하는 에이전트 관리 모듈-상기 노드는 컨텐츠를 저장하고 있는 서버 또는 다른 클라이언트들을 모두 포함하며, 상기 노드 정보는 해당 컨텐츠를 저장하고 있는 서버 또는 사용자 클라이언트의 주소 정보임- ;
    사용자 클라이언트에 저장되어 있는 컨텐츠 정보를 관리하는 캐쉬 관리 모듈;
    사용자가 전송을 요청한 컨텐츠를 저장하고 있는 노드에 연결을 설정하여 병렬/분산 방식으로 컨텐츠 스트리밍 데이터를 수신하고, 다른 사용자 클라이언트로부터 저장된 컨텐츠에 대한 전송 요청을 받을 경우, 요청된 컨텐츠 스트리밍 데이터를 상기 다른 사용자 클라이언트에 전송하는 메쉬 관리 모듈;
    사용자의 컨텐츠 요청 정보를 상기 에이전트 관리 모듈에 제공하고, 수신한 컨텐츠 스트리밍 데이터를 컨텐츠 플레이어에 제공하는 플레이어 제어 모듈을 포함하는 것을 특징으로 하는 통신 에이전트 시스템.
  20. 제19항에 있어서,
    상기 수신하는 컨텐츠는 총 컨텐츠 데이터를 미리 설정된 단위로 나눈 복수의 블록으로 구성되고, 상기 블록은 이를 미리 설정된 단위로 나눈 복수의 서브 블록으로 구성되며,
    상기 메쉬 관리 모듈은,
    상기 컨텐츠 서버로부터 수신되는 요청한 컨텐츠를 저장하고 있는 노드 정보를 관리하는 노드 관리 모듈;
    수신한 노드 정보를 이용하여 요청한 컨텐츠를 저장하고 있는 노드들 중 미리 설정된 수의 노드에 연결을 설정하고, 연결이 설정된 노드들로부터 각각 다른 서브 블록 데이터를 수신하는 연결 제어 모듈;
    하나의 블록을 구성하는 모든 서브 블록 데이터가 수신되는지 여부를 판단하는 서브 블록 관리 모듈;
    하나의 블록을 구성하는 모든 서브 블록데이터가 수신될 경우, 모든 서브 블록이 수신된 블록 데이터를 상기 플레이어 제어 모듈에 제공하는 블록 관리 모듈을 포함하는 것을 특징으로 하는 통신 에이전트 시스템.
  21. 컨텐츠 서버 및 복수의 사용자 클라이언트가 네트워크를 통해 연결되어 있고, 상기 복수의 사용자 클라이언트에는 다른 사용자 클라이언트들 또는 상기 컨텐츠 서버와 통신하기 위한 통신 에이전트가 설치되어 있으며, 상기 컨텐츠 서버에서 인터넷 방송 서비스를 제공하는 방법에 있어서,
    상기 통신 에이전트 프로그램에 의해 제어되는 사용자 클라이언트들로부터 연결 설정 요청 정보를 수신하여 연결을 설정하는 단계(a);
    사용자 클라이언트로부터 방송 전송 요청 신호를 수신하는 단계(b);
    상기 컨텐츠 서버에 접속하여 방송을 시청하고 있는 다른 사용자 클라이언트들의 주소 정보를 상기 단계(b)에서 방송 전송 요청 신호를 송신한 사용자 클라이언트에 제공하는 단계(c)를 포함하되,
    상기 방송 전송을 요청한 사용자 클라이언트에 설치된 통신 에이전트는 상기 단계(c)에서 제공된 정보를 이용하여 방송을 시청하고 있는 다른 사용자 클라이언트들 중 복수의 사용자 클라이언트에 연결을 설정하며, 연결이 설정된 사용자 클라이언트로부터 방송 정보를 수신하며, 다른 사용자 클라이언트로부터 방송 정보의 전송을 요청받을 경우, 상기 다른 사용자 클라이언트에 수신하는 방송 정보를 전달하도록 상기 사용자 클라이언트를 제어하는 것을 특징으로 하는 방송 컨텐츠 제공 방법.
  22. 제22항에 있어서,
    상기 통신 에이전트는 병렬/분산 방식으로 방송 정보를 수신하도록 상기 사용자 클라이언트를 제어하는 것을 특징으로 하는 방송 컨텐츠 제공 방법.
  23. 컨텐츠 서버 및 복수의 사용자 클라이언트가 네트워크를 통해 연결되어 있는 시스템에서 사용자 클라이언트가 컨텐츠를 수신하는 방법에 있어서,
    클라이언트의 전원이 켜지거나 컨텐츠 수신용 에이전트 프로그램이 실행될 경우 상기 에이전트 프로그램의 제어에 의해 상기 컨텐츠 서버에 연결 설정을 요청하고 주소 정보를 제공하는 단계(a);
    상기 연결 설정된 컨텐츠 서버에 현재 저장하고 있는 컨텐츠 정보를 전송하는 단계(b);
    상기 컨텐츠 서버에 컨텐츠 전송 요청 신호를 전송하는 단계(c);
    상기 컨텐츠 서버로부터 요청한 컨텐츠를 저장하고 있는 노드 정보를 수신하는 단계(d)-상기 노드는 컨텐츠를 저장하고 있는 서버 또는 다른 클라이언트들을 모두 포함하며, 상기 노드 정보는 해당 컨텐츠를 저장하고 있는 서버 또는 사용자 클라이언트의 주소 정보임-;
    상기 단계(c)에서 수신한 노드 정보를 이용하여 복수의 노드에 연결을 설정하는 단계(e);
    상기 단계(d)에서 연결이 설정된 복수의 노드들로부터 요청한 컨텐츠 스트리밍 데이터를 병렬/분산 방식으로 수신하는 단계(f); 및
    다른 사용자 클라이언트로부터 저장된 컨텐츠에 대한 전송 요청을 받을 경우, 요청된 컨텐츠 스트리밍 데이터를 상기 다른 사용자 클라이언트에 전송하는 단계(g)를 포함하는 것을 특징으로 하는 컨텐츠 수신 방법
KR10-2002-0061725A 2002-10-10 2002-10-10 컨텐츠 제공 방법 및 시스템 KR100485974B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR10-2002-0061725A KR100485974B1 (ko) 2002-10-10 2002-10-10 컨텐츠 제공 방법 및 시스템
CNB028297350A CN100382072C (zh) 2002-10-10 2002-11-21 用于提供内容的方法和系统
PCT/KR2002/002178 WO2004034275A1 (en) 2002-10-10 2002-11-21 Method and system for providing contents
AU2002353629A AU2002353629A1 (en) 2002-10-10 2002-11-21 Method and system for providing contents
JP2003004644A JP3990987B2 (ja) 2002-10-10 2003-01-10 コンテンツ提供方法及びシステム
US11/103,390 US7640246B2 (en) 2002-10-10 2005-04-11 Method and system for providing content

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0061725A KR100485974B1 (ko) 2002-10-10 2002-10-10 컨텐츠 제공 방법 및 시스템

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020040000251A Division KR20040032827A (ko) 2004-01-05 2004-01-05 컨텐츠 제공 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20040032536A KR20040032536A (ko) 2004-04-17
KR100485974B1 true KR100485974B1 (ko) 2005-05-03

Family

ID=32089695

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0061725A KR100485974B1 (ko) 2002-10-10 2002-10-10 컨텐츠 제공 방법 및 시스템

Country Status (6)

Country Link
US (1) US7640246B2 (ko)
JP (1) JP3990987B2 (ko)
KR (1) KR100485974B1 (ko)
CN (1) CN100382072C (ko)
AU (1) AU2002353629A1 (ko)
WO (1) WO2004034275A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102291467A (zh) * 2011-09-15 2011-12-21 电子科技大学 一种适应私有云环境的通信平台和通信方法
KR101381199B1 (ko) 2011-09-22 2014-04-18 서울대학교산학협력단 컨텐츠 전달 및 캐싱 방법과 이를 위한 시스템
KR20150082741A (ko) 2014-01-07 2015-07-16 명지대학교 산학협력단 사용자 단말기를 이용한 파일 공유 시스템 및 방법
KR20200054926A (ko) * 2020-05-11 2020-05-20 에스케이텔레콤 주식회사 콘텐츠 동기화 방법 및 이를 위한 장치

Families Citing this family (152)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7305700B2 (en) 2002-01-08 2007-12-04 Seven Networks, Inc. Secure transport for mobile communication network
US8468126B2 (en) 2005-08-01 2013-06-18 Seven Networks, Inc. Publishing data in an information community
US7853563B2 (en) 2005-08-01 2010-12-14 Seven Networks, Inc. Universal data aggregation
US7917468B2 (en) 2005-08-01 2011-03-29 Seven Networks, Inc. Linking of personal information management data
JP4129449B2 (ja) 2004-10-19 2008-08-06 インターナショナル・ビジネス・マシーンズ・コーポレーション ストリームデータ配信方法とそのシステム
US8281014B2 (en) * 2004-12-28 2012-10-02 Sap Ag Session lifecycle management within a multi-tiered enterprise network
US8370448B2 (en) * 2004-12-28 2013-02-05 Sap Ag API for worker node retrieval of session request
US7694065B2 (en) 2004-12-28 2010-04-06 Sap Ag Distributed cache architecture
US7672949B2 (en) * 2004-12-28 2010-03-02 Sap Ag Connection manager having a common dispatcher for heterogeneous software suites
US20060143256A1 (en) 2004-12-28 2006-06-29 Galin Galchev Cache region concept
US8204931B2 (en) 2004-12-28 2012-06-19 Sap Ag Session management within a multi-tiered enterprise network
JP2006227843A (ja) * 2005-02-16 2006-08-31 Sony Corp コンテンツ情報管理システム、コンテンツ情報管理装置及びコンテンツ情報管理方法、並びにコンピュータ・プログラム
US7752633B1 (en) 2005-03-14 2010-07-06 Seven Networks, Inc. Cross-platform event engine
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
US7761435B2 (en) * 2005-04-29 2010-07-20 Sap Ag External persistence of session state information
US8589562B2 (en) 2005-04-29 2013-11-19 Sap Ag Flexible failover configuration
US7853698B2 (en) * 2005-04-29 2010-12-14 Sap Ag Internal persistence of session state information
US8762547B2 (en) 2005-04-29 2014-06-24 Sap Ag Shared memory implementations for session data within a multi-tiered enterprise network
US8024566B2 (en) 2005-04-29 2011-09-20 Sap Ag Persistent storage implementations for session data within a multi-tiered enterprise network
US20060248283A1 (en) * 2005-04-29 2006-11-02 Galin Galchev System and method for monitoring threads in a clustered server architecture
US7689660B2 (en) * 2005-06-09 2010-03-30 Sap Ag Application server architecture
WO2006136660A1 (en) 2005-06-21 2006-12-28 Seven Networks International Oy Maintaining an ip connection in a mobile network
US8707323B2 (en) 2005-12-30 2014-04-22 Sap Ag Load balancing algorithm for servicing client requests
US20070156907A1 (en) * 2005-12-30 2007-07-05 Galin Galchev Session handling based on shared session information
US7769395B2 (en) 2006-06-20 2010-08-03 Seven Networks, Inc. Location-based operations and messaging
US7970835B2 (en) * 2006-04-04 2011-06-28 Xerox Corporation Peer-to-peer file sharing system and method using downloadable data segments
KR100869946B1 (ko) * 2006-04-06 2008-11-24 삼성전자주식회사 컨텐츠 관리 서버 및 그의 컨텐츠 관리방법
JP2008160391A (ja) * 2006-12-22 2008-07-10 Dideonet Co Ltd Tcpを利用してストリームデータをマルチパスを介して伝播する方法及びシステム、並びにその方法を実現するプログラムを記録した、コンピュータで読み出すことのできる記録媒体
CN101262488B (zh) * 2007-03-09 2012-05-09 中兴通讯股份有限公司 一种内容分发网络系统及方法
US8805425B2 (en) 2007-06-01 2014-08-12 Seven Networks, Inc. Integrated messaging
US8693494B2 (en) 2007-06-01 2014-04-08 Seven Networks, Inc. Polling
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
JP2011508916A (ja) * 2007-12-03 2011-03-17 ベロシツクス・リミテツド デジタルデータを配信するための方法および装置
US8364181B2 (en) 2007-12-10 2013-01-29 Seven Networks, Inc. Electronic-mail filtering for mobile devices
US9002828B2 (en) 2007-12-13 2015-04-07 Seven Networks, Inc. Predictive content delivery
US8107921B2 (en) 2008-01-11 2012-01-31 Seven Networks, Inc. Mobile virtual network operator
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US20090193338A1 (en) 2008-01-28 2009-07-30 Trevor Fiatal Reducing network and battery consumption during content delivery and playback
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US8533293B1 (en) 2008-03-31 2013-09-10 Amazon Technologies, Inc. Client side cache management
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US8787947B2 (en) 2008-06-18 2014-07-22 Seven Networks, Inc. Application discovery on mobile devices
CN101309162B (zh) * 2008-06-23 2011-12-21 华为技术有限公司 实现多媒体信息交互的方法、系统、设备及用户终端
US8078158B2 (en) 2008-06-26 2011-12-13 Seven Networks, Inc. Provisioning applications for a mobile device
US9912740B2 (en) 2008-06-30 2018-03-06 Amazon Technologies, Inc. Latency measurement in resource requests
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US7925782B2 (en) 2008-06-30 2011-04-12 Amazon Technologies, Inc. Request routing using network computing components
US8909759B2 (en) 2008-10-10 2014-12-09 Seven Networks, Inc. Bandwidth measurement
CN101729442B (zh) * 2008-10-23 2013-03-20 华为技术有限公司 一种实现内容共享的方法和装置
KR101066872B1 (ko) * 2008-10-30 2011-09-26 에스케이텔레콤 주식회사 캐시서버를 이용한 컨텐츠 전송시스템 및 방법, 그 캐시서버
US8122098B1 (en) 2008-11-17 2012-02-21 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US8073940B1 (en) 2008-11-17 2011-12-06 Amazon Technologies, Inc. Managing content delivery network service providers
US8521880B1 (en) 2008-11-17 2013-08-27 Amazon Technologies, Inc. Managing content delivery network service providers
US8732309B1 (en) 2008-11-17 2014-05-20 Amazon Technologies, Inc. Request routing utilizing cost information
US8521851B1 (en) 2009-03-27 2013-08-27 Amazon Technologies, Inc. DNS query processing using resource identifiers specifying an application broker
US8412823B1 (en) 2009-03-27 2013-04-02 Amazon Technologies, Inc. Managing tracking information entries in resource cache components
US8688837B1 (en) 2009-03-27 2014-04-01 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US8756341B1 (en) 2009-03-27 2014-06-17 Amazon Technologies, Inc. Request routing utilizing popularity information
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
US8433771B1 (en) 2009-10-02 2013-04-30 Amazon Technologies, Inc. Distribution network with forward resource propagation
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US8503934B2 (en) * 2010-07-22 2013-08-06 Harris Corporation Multi-mode communications system
PL3407673T3 (pl) 2010-07-26 2020-05-18 Seven Networks, Llc Koordynacja ruchu w sieci komórkowej pomiędzy różnymi aplikacjami
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US10097398B1 (en) 2010-09-28 2018-10-09 Amazon Technologies, Inc. Point of presence management in request routing
US8819283B2 (en) 2010-09-28 2014-08-26 Amazon Technologies, Inc. Request routing in a networked environment
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US8577992B1 (en) 2010-09-28 2013-11-05 Amazon Technologies, Inc. Request routing management based on network components
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
WO2012060995A2 (en) 2010-11-01 2012-05-10 Michael Luna Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US8484314B2 (en) 2010-11-01 2013-07-09 Seven Networks, Inc. Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
CN103404193B (zh) 2010-11-22 2018-06-05 七网络有限责任公司 调校数据传输以优化为通过无线网络的传输建立的连接
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
WO2012071384A2 (en) 2010-11-22 2012-05-31 Michael Luna Optimization of resource polling intervals to satisfy mobile device requests
WO2012094675A2 (en) 2011-01-07 2012-07-12 Seven Networks, Inc. System and method for reduction of mobile network traffic used for domain name system (dns) queries
WO2012145544A2 (en) * 2011-04-19 2012-10-26 Seven Networks, Inc. Device resource sharing for network resource conservation
WO2012149216A2 (en) 2011-04-27 2012-11-01 Seven Networks, Inc. Mobile device which offloads requests made by a mobile application to a remote entity for conservation of mobile device and network resources and methods therefor
EP2702500B1 (en) 2011-04-27 2017-07-19 Seven Networks, LLC Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
WO2013015995A1 (en) 2011-07-27 2013-01-31 Seven Networks, Inc. Automatic generation and distribution of policy information regarding malicious mobile traffic in a wireless network
WO2013086214A1 (en) 2011-12-06 2013-06-13 Seven Networks, Inc. A system of redundantly clustered machines to provide failover mechanisms for mobile traffic management and network resource conservation
US8934414B2 (en) 2011-12-06 2015-01-13 Seven Networks, Inc. Cellular or WiFi mobile traffic optimization based on public or private network destination
WO2013086447A1 (en) 2011-12-07 2013-06-13 Seven Networks, Inc. Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
US9009250B2 (en) 2011-12-07 2015-04-14 Seven Networks, Inc. Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation
US9832095B2 (en) 2011-12-14 2017-11-28 Seven Networks, Llc Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic
US8861354B2 (en) 2011-12-14 2014-10-14 Seven Networks, Inc. Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization
US20130159511A1 (en) 2011-12-14 2013-06-20 Seven Networks, Inc. System and method for generating a report to a network operator by distributing aggregation of data
GB2499306B (en) 2012-01-05 2014-10-22 Seven Networks Inc Managing user interaction with an application on a mobile device
US9203864B2 (en) 2012-02-02 2015-12-01 Seven Networks, Llc Dynamic categorization of applications for network access in a mobile network
WO2013116852A1 (en) 2012-02-03 2013-08-08 Seven Networks, Inc. User as an end point for profiling and optimizing the delivery of content and data in a wireless network
US8904009B1 (en) 2012-02-10 2014-12-02 Amazon Technologies, Inc. Dynamic content delivery
US10021179B1 (en) 2012-02-21 2018-07-10 Amazon Technologies, Inc. Local resource delivery network
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
US8812695B2 (en) 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
US10263899B2 (en) 2012-04-10 2019-04-16 Seven Networks, Llc Enhanced customer service for mobile carriers using real-time and historical mobile application and traffic or optimization data associated with mobile devices in a mobile network
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
WO2014011216A1 (en) 2012-07-13 2014-01-16 Seven Networks, Inc. Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
US9525659B1 (en) 2012-09-04 2016-12-20 Amazon Technologies, Inc. Request routing utilizing point of presence load information
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US9161258B2 (en) 2012-10-24 2015-10-13 Seven Networks, Llc Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US9307493B2 (en) 2012-12-20 2016-04-05 Seven Networks, Llc Systems and methods for application management of mobile device radio state promotion and demotion
US9241314B2 (en) 2013-01-23 2016-01-19 Seven Networks, Llc Mobile device with application or context aware fast dormancy
US8874761B2 (en) 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US9326185B2 (en) 2013-03-11 2016-04-26 Seven Networks, Llc Mobile network congestion recognition for optimization of mobile traffic
US9294391B1 (en) 2013-06-04 2016-03-22 Amazon Technologies, Inc. Managing network computing components utilizing request routing
US9065765B2 (en) 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
KR102111573B1 (ko) * 2013-10-07 2020-05-15 에스케이텔레콤 주식회사 콘텐츠 동기화 방법 및 이를 위한 장치
US10033627B1 (en) 2014-12-18 2018-07-24 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10091096B1 (en) 2014-12-18 2018-10-02 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US9887931B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9819567B1 (en) 2015-03-30 2017-11-14 Amazon Technologies, Inc. Traffic surge management for points of presence
US9887932B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
US10097566B1 (en) 2015-07-31 2018-10-09 Amazon Technologies, Inc. Identifying targets of network attacks
US9774619B1 (en) 2015-09-24 2017-09-26 Amazon Technologies, Inc. Mitigating network attacks
US9742795B1 (en) 2015-09-24 2017-08-22 Amazon Technologies, Inc. Mitigating network attacks
US9794281B1 (en) 2015-09-24 2017-10-17 Amazon Technologies, Inc. Identifying sources of network attacks
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10049051B1 (en) 2015-12-11 2018-08-14 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10257307B1 (en) 2015-12-11 2019-04-09 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10348639B2 (en) 2015-12-18 2019-07-09 Amazon Technologies, Inc. Use of virtual endpoints to improve data transmission rates
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10033691B1 (en) 2016-08-24 2018-07-24 Amazon Technologies, Inc. Adaptive resolution of domain name requests in virtual private cloud network environments
US10505961B2 (en) 2016-10-05 2019-12-10 Amazon Technologies, Inc. Digitally signed network address
US10372499B1 (en) 2016-12-27 2019-08-06 Amazon Technologies, Inc. Efficient region selection system for executing request-driven code
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
JP6896449B2 (ja) * 2017-02-16 2021-06-30 キヤノン株式会社 ネットワーク機器とその方法
CN106878826B (zh) * 2017-03-30 2020-04-10 河北上元智能科技股份有限公司 一种类p2p实时视频转发的方法
US10503613B1 (en) 2017-04-21 2019-12-10 Amazon Technologies, Inc. Efficient serving of resources during server unavailability
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US10447648B2 (en) 2017-06-19 2019-10-15 Amazon Technologies, Inc. Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
CN110830522A (zh) * 2018-08-07 2020-02-21 石悌君 一种共享存储系统
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
US10880583B2 (en) * 2019-04-26 2020-12-29 Advanced New Technologies Co., Ltd. Method, apparatus, terminal, and readable storage medium for offline caching

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3072786B2 (ja) * 1991-06-04 2000-08-07 キヤノン株式会社 画像データ処理装置
JP2967897B2 (ja) * 1993-07-22 1999-10-25 エヌ・ティ・ティ移動通信網株式会社 自動再送要求データ伝送方法
JPH08205140A (ja) * 1995-01-31 1996-08-09 Canon Inc 画像圧縮装置
US7171480B2 (en) * 2001-01-29 2007-01-30 Sony Computer Entertainment America Inc. Method and system for providing auxiliary content located on local storage during download/access of primary content over a network
JPH1153326A (ja) * 1997-07-30 1999-02-26 Internatl Business Mach Corp <Ibm> 分散処理システム、クライアントノード、サーバノードおよび分散処理方法
US6085193A (en) * 1997-09-29 2000-07-04 International Business Machines Corporation Method and system for dynamically prefetching information via a server hierarchy
US6377972B1 (en) * 1999-01-19 2002-04-23 Lucent Technologies Inc. High quality streaming multimedia
CN1111804C (zh) * 1999-10-20 2003-06-18 无敌科技(西安)有限公司 通过网络取得网络资源的方法与装置
US6708213B1 (en) * 1999-12-06 2004-03-16 Lucent Technologies Inc. Method for streaming multimedia information over public networks
KR20010068478A (ko) 2000-01-06 2001-07-23 장성익 분산화된 개별 컨텐츠 제공자를 기반으로 하는 인터넷서비스 방법
US7093026B2 (en) * 2000-02-14 2006-08-15 Matsushita Electric Industrial, Co. Ltd Data transmission system
KR100358531B1 (ko) * 2000-06-09 2002-10-25 (주) 이모션 멀티미디어 파일에 확장 컨텐츠를 삽입·재생하는 방법
JP2002251494A (ja) * 2000-12-20 2002-09-06 Victor Co Of Japan Ltd デジタルコンテンツデータ配信システム
US7069295B2 (en) * 2001-02-14 2006-06-27 The Escher Group, Ltd. Peer-to-peer enterprise storage
US20040268344A1 (en) * 2001-03-08 2004-12-30 Sridhar Obilisetty Centrally managed and distributed applications
KR100521361B1 (ko) 2001-09-14 2005-10-14 박영찬 네트워크 환경에서의 파일 공동 전송 방법
WO2003029916A2 (en) * 2001-09-28 2003-04-10 Bluesocket, Inc. Method and system for managing data traffic in wireless networks

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102291467A (zh) * 2011-09-15 2011-12-21 电子科技大学 一种适应私有云环境的通信平台和通信方法
CN102291467B (zh) * 2011-09-15 2014-04-09 电子科技大学 一种适应私有云环境的通信平台和通信方法
KR101381199B1 (ko) 2011-09-22 2014-04-18 서울대학교산학협력단 컨텐츠 전달 및 캐싱 방법과 이를 위한 시스템
KR20150082741A (ko) 2014-01-07 2015-07-16 명지대학교 산학협력단 사용자 단말기를 이용한 파일 공유 시스템 및 방법
KR20200054926A (ko) * 2020-05-11 2020-05-20 에스케이텔레콤 주식회사 콘텐츠 동기화 방법 및 이를 위한 장치
KR102210410B1 (ko) * 2020-05-11 2021-01-29 에스케이텔레콤 주식회사 콘텐츠 동기화 방법 및 이를 위한 장치

Also Published As

Publication number Publication date
JP3990987B2 (ja) 2007-10-17
US7640246B2 (en) 2009-12-29
KR20040032536A (ko) 2004-04-17
AU2002353629A1 (en) 2004-05-04
US20050256880A1 (en) 2005-11-17
WO2004034275A1 (en) 2004-04-22
JP2004133877A (ja) 2004-04-30
CN1685334A (zh) 2005-10-19
AU2002353629A8 (en) 2004-05-04
CN100382072C (zh) 2008-04-16

Similar Documents

Publication Publication Date Title
KR100485974B1 (ko) 컨텐츠 제공 방법 및 시스템
KR100427143B1 (ko) 스트리밍 데이터 전송 및 다운로드 방법
DK2323333T3 (en) Method for multi casting and device thereof
US9584590B2 (en) Method and apparatus for assisting with playback of remotely stored media files
US9124607B2 (en) Methods and systems for playing media
KR101512321B1 (ko) 복수의 서비스 제공자의 서비스를 제공/수신하기 위한 방법및 장치
US20060064500A1 (en) Caching control for streaming media
JP2008516475A (ja) マルチメディアデータを放送する方法及びシステム
US20050268102A1 (en) Method and system for secure distribution of content over a communications network
JP4306365B2 (ja) サーバ及びコンテンツ受信装置
CA2442546A1 (en) System and method for responding to resource requests in distributed computer networks
KR20000033213A (ko) 메타데이터를 이용한 멀티미디어 컨텐츠 전달방법
CN113015164B (zh) 应用程序认证方法及装置
KR20040032827A (ko) 컨텐츠 제공 방법 및 시스템
KR20030046817A (ko) 예약분산전송을 통한 멀티미디어 데이터 전송방법
KR100810760B1 (ko) 스트리밍 데이터 전송 및 다운로드 방법
JPH1074178A (ja) 情報提供システム
JP4675040B2 (ja) コンテンツ配信システム、コンテンツ配信方法及びクライアント機器
KR20220090671A (ko) 하이브리드 ip―tv 서비스 제공 시스템 및 방법
CA2614654C (en) Methods and systems for playing media
JP2006246240A (ja) 階層符号化データ転送方法
KR20150000803A (ko) 콘텐츠 중심 네트워크에서 콘텐츠의 수신 방법

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
A107 Divisional application of patent
A302 Request for accelerated examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
E902 Notification of reason for refusal
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20100331

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20120329

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160329

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20170328

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20190401

Year of fee payment: 15