KR100485974B1 - 컨텐츠 제공 방법 및 시스템 - Google Patents
컨텐츠 제공 방법 및 시스템 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000007726 management method Methods 0.000 claims description 118
- 230000006854 communication Effects 0.000 claims description 57
- 238000004891 communication Methods 0.000 claims description 55
- 230000005540 biological transmission Effects 0.000 claims description 46
- 230000004044 response Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 15
- 230000008901 benefit Effects 0.000 description 4
- 238000007792 addition Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/48—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel 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
본 발명은 컨텐츠 제공 방법 및 시스템에 관한 것으로서, 더욱 상세하게는 영화나 애니메이션과 같은 대용량의 컨텐츠를 인터넷과 같은 네트워크를 통해 보다 빠른 속도로 전송하는 방법 및 시스템에 관한 것이다.
인터넷은 초기에 정보의 공유 내지는 정보 제공의 수단으로서 활용되었으나, 인터넷이 근래에 들어 급속히 보급됨에 따라, 이러한 용도에 국한되지 않고 컨텐츠 제공, 전자 상거래, 광고 등 다양한 용도로 활용되어 가고 있으며, 인터넷을 이용한 비즈니스가 오프라인 못지 않게 중요한 비즈니스로 자리잡아 가고 있다.
초기에 인터넷을 통해 제공되는 컨텐츠는 문서와 그림과 같은 저용량의 데이터가 대부분이었으나, 데이터 전송 기술 및 장비가 발전함에 따라 멀티미디어 컨텐츠의 제공도 활발히 이루어지고 있다.
도 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)
- 컨텐츠 서버 및 복수의 사용자 클라이언트가 네트워크를 통해 연결되어 있고, 상기 복수의 사용자 클라이언트에는 다른 사용자 클라이어트들 또는 컨텐츠 서버와 통신하기 위한 통신 에이전트가 설치되어 있는 시스템에서 컨텐츠 스트리밍 데이터를 사용자 클라이언트에 제공하는 방법으로서,상기 통신 에이전트 프로그램에 의해 제어되는 사용자 클라이언트들로부터 연결 설정 요청 정보를 수신하여 연결을 설정하고 연결 설정한 클라이언트의 주소 정보를 수신하는 단계(a);상기 통신 에이전트 프로그램의 사용자 클라이언트 제어를 통해 상기 단계(a)에서 연결이 설정된 복수의 사용자 클라이언트들로부터 각 사용자 클라이언트가 저장하고 있는 컨텐츠 정보를 수신하여 각 클라이언트의 컨텐츠 저장 정보를 관리하는 단계(b);사용자 클라이언트로부터 특정 컨텐츠에 대한 전송 요청 신호를 수신하는 단계(c); 및상기 단계(b)의 관리 정보를 이용하여 상기 컨텐츠를 요청한 사용자 클라이언트에 요청한 컨텐츠를 저장하고 있는 노드 정보를 제공하는 단계(c)- 상기 노드는 컨텐츠를 저장하고 있는 서버 또는 다른 클라이언트들을 모두 포함하며, 상기 노드 정보는 해당 컨텐츠를 저장하고 있는 서버 또는 사용자 클라이언트의 주소 정보임-를 포함하며,상기 컨텐츠를 요청한 사용자 클라이언트에 설치된 통신 에이전트는 상기 제공된 노드 정보를 이용하여 복수의 노드에 연결을 설정하며, 연결이 설정된 노드들로부터 병렬/분산 방식으로 컨텐츠 스트리밍 데이터를 수신하며, 다른 사용자 클라이언트로부터 저장된 컨텐츠에 대한 전송 요청을 받을 경우, 요청된 컨텐츠 스트리밍 데이터를 상기 다른 사용자 클라이언트에 전송하도록 상기 사용자 클라이언트를 제어하는 것을 특징으로 하는 컨텐츠 제공 방법
- 제1항에 있어서,상기 사용자 클라이언트에 전송하는 컨텐츠의 실행에 필요한 정보-컨텐츠의 메타 정보를 포함함-를 제공하는 단계를 더 포함하는 것을 특징으로 하는 컨텐츠 제공 방법.
- 제1항에 있어서,상기 컨텐츠 서버 및 상기 복수의 사용자 클라이언트에 저장되는 컨텐츠는 총 컨텐츠 데이터를 미리 설정된 단위로 나눈 복수의 블록으로 구성되며, 상기 블록은 이를 미리 설정된 단위로 나눈 복수의 서브 블록으로 구성되는 것을 특징으로 하는 컨텐츠 제공 방법.
- 제1항에 있어서,상기 통신 에이전트는,상기 컨텐츠 서버에 사용자 클라이언트에 저장하고 있는 컨텐츠 정보 및 사용자 클라이언트 식별 정보를 제공하고, 사용자가 컨텐츠를 요청할 경우 컨텐츠 요청 정보를 상기 컨텐츠 서버에 전송하는 에이전트 관리 모듈;사용자 클라이언트에 저장되어 있는 컨텐츠 정보를 관리하는 캐쉬 관리 모듈;사용자가 전송을 요청한 컨텐츠를 저장하고 있는 노드에 연결을 설정하여 병렬/분산 방식으로 요청한 컨텐츠를 수신하는 메쉬 관리 모듈;사용자의 컨텐츠 요청 정보를 상기 에이전트 관리 모듈에 제공하고, 수신한 컨텐츠를 컨텐츠 플레이어에 제공하는 플레이어 제어 모듈을 포함하는 것을 특징으로 하는 컨텐츠 제공 방법.
- 제3항 또는 제4항에 있어서,상기 메쉬 관리 모듈은,상기 단계(b)에 의해 상기 컨텐츠 서버로부터 수신되는 요청한 컨텐츠를 저장하고 있는 노드 정보를 관리하는 노드 관리 모듈;상기 단계(b)에 의해 수신한 노드 정보를 이용하여 요청한 컨텐츠를 저장하고 있는 노드들 중 미리 설정된 수의 노드에 연결을 설정하고, 연결이 설정된 노드들로부터 각각 다른 서브 블록 데이터를 수신하는 연결 제어 모듈;하나의 블록을 구성하는 모든 서브 블록 데이터가 수신되는지 여부를 판단하는 서브 블록 관리 모듈;하나의 블록을 구성하는 모든 서브 블록데이터가 수신될 경우, 모든 서브 블록이 수신된 블록 데이터를 상기 플레이어 제어 모듈에 제공하는 블록 관리 모듈을 포함하는 것을 특징으로 하는 컨텐츠 제공 방법.
- 제5항에 있어서,상기 연결 제어 모듈은,연결이 설정된 노드들 중 일부의 노드에서 서브 블록 데이터 수신 오류가 있을 경우, 연결이 설정된 노드들 중 서브 블록 데이터 송신이 완료된 노드가 있는지 여부를 판단하는 모듈;연결이 설정된 노드들 중 서브 블록 데이터 송신이 완료된 노드가 있을 경우, 해당 노드에 수신 오류가 있는 서브 블록 데이터를 요청하는 모듈;연결이 설정된 노드들 중 서브 블록 데이터 송신이 완료된 노드가 없을 경우, 상기 단계(b)에 의해 제공된 노드 정보를 이용하여 연결이 설정되지 않은 노드에 대해 연결을 설정하여 수신 오류가 있는 서브 블록 데이터를 수신하는 모듈을 포함하는 것을 특징으로 하는 컨텐츠 제공 방법.
- 제5항에 있어서,상기 수신되는 서브 블록 데이터는 사용자가 요청한 컨텐츠의 리소스 식별자, 블록 번호, 서브 블록 번호를 포함하는 헤더 정보와 상기 헤더 정보에 상응하는 서브 블록 데이터를 포함하는 것을 특징으로 하는 컨텐츠 제공 방법.
- 제1항에 있어서,사용자 클라이언트로부터 컨텐츠 예약 요청 정보를 수신하는 단계;상기 예약을 요청한 컨텐츠를 저장하고 있는 노드 정보를 컨텐츠 예약 요청 정보를 전송한 사용자 클라이언트에 제공하는 단계를 더 포함하는 것을 특징으로 하는 컨텐츠 제공 방법.
- 제2항에 있어서,상기 컨텐츠 실행에 필요한 정보를 제공하는 단계는,상기 사용자 클라이언트로부터 인증 요청 신호를 수신하는 단계;사용자 인증 요청에 대한 응답 신호를 상기 사용자 클라이언트에 전송하는 단계;사용자가 인증될 경우, 상기 사용자 클라이언트로부터 메타 데이터 요청 신호를 수신하는 단계; 및사용자가 요청한 메타 데이터를 상기 사용자 클라이언트에 전송하는 단계를 포함하는 것을 특징으로 하는 컨텐츠 제공 방법.
- 제4항 또는 제8항에 있어서,상기 통신 에이전트는 상기 컨텐츠 서버에 예약 요청 정보를 전송하고 수신되는 예약 컨텐츠 정보를 관리하는 예약 관리 모듈을 더 포함하는 것을 특징으로 하는 컨텐츠 제공 방법.
- 제1항에 있어서,상기 통신 에이전트는,상기 컨텐츠 서버로 상기 사용자 클라이언트의 접속 요청 정보 및 상기 접속 요청을 하는 사용자 클라이언트에 저장된 컨텐츠 정보를 전송하는 단계;상기 컨텐츠 서버로 컨텐츠 요청 신호를 전송하는 단계;상기 컨텐츠 서버로부터 요청한 컨텐츠를 저장하고 있는 노드 정보를 수신하는 단계; 및상기 수신한 노드 정보를 이용하여 컨텐츠를 수신하고자 하는 복수의 노드에 연결을 설정하는 단계;연결을 설정한 노드로부터 요청한 컨텐츠를 병렬/분산 방식으로 수신하는 단계를 상기 사용자 클라이언트가 수행하도록 제어하는 것을 특징으로 하는 컨텐츠 전송 방법.
- 제11항에 있어서,상기 통신 에이전트는 상기 병렬/분산 방식으로 수신하는 컨텐츠를 상기 사용자 클라이언트의 캐쉬에 저장하는 단계를 더 수행하도록 상기 사용자 클라이언트를 제어하는 것을 특징으로 하는 컨텐츠 전송 방법.
- 제3항 또는 제11항에 있어서,상기 통신 에이전트는,연결이 설정된 노드들 중 일부의 노드에서 서브 블록 데이터 수신 오류가 있을 경우, 연결이 설정된 노드들 중 서브 블록 데이터 송신이 완료된 노드가 있는지 여부를 판단하는 단계;연결이 설정된 노드들 중 서브 블록 데이터 송신이 완료된 노드가 있을 경우, 해당 노드에 수신 오류가 있는 서브 블록 데이터를 요청하는 단계;연결이 설정된 노드들 중 서브 블록 데이터 송신이 완료된 노드가 없을 경우, 상기 단계(b)에 의해 제공된 노드 정보를 이용하여 연결이 설정되지 않은 노드에 대해 연결을 설정하여 수신 오류가 있는 서브 블록 데이터를 수신하는 단계를 더 수행하도록 상기 사용자 클라이언트를 제어하는 것을 특징으로 하는 컨텐츠 전송 방법.
- 다른 노드와의 통신을 위한 통신 에이전트가 설치되어 있는 복수의 사용자 클라이언트와 네트워크를 통해 연결되어 있는 컨텐츠 스트리밍 데이터 제공 서버에 있어서,상기 통신 에이전트 프로그램에 의해 제어되는 사용자 클라이언트들로부터 연결 설정 요청 정보를 수신하여 연결을 설정하는 연결 설정 모듈;연결이 설정된 복수의 사용자 클라이언트들로부터 각 사용자 클라이언트가 저장하고 있는 컨텐츠 정보를 수신하여 각 사용자 클라이언트의 컨텐츠 저장 정보를 관리하고, 특정 컨텐츠 전송을 요청하는 사용자 클라이언트에 요청한 컨텐츠를 저장하고 있는 노드 정보를 제공하는 메쉬 제어 모듈-상기 노드는 컨텐츠를 저장하고 있는 서버 또는 다른 클라이언트들을 모두 포함하며, 상기 노드 정보는 해당 컨텐츠를 저장하고 있는 서버 또는 사용자 클라이언트의 주소 정보임-;사용자 클라이언트가 요청하는 컨텐츠를 전송하는 컨텐츠 전송 모듈; 및상기 메쉬 제어 모듈에서 수신하는 각 사용자 클라이언트가 저장하고 있는 컨텐츠 정보를 저장하는 메쉬 정보 데이터베이스를 포함하되,상기 컨텐츠를 요청한 사용자 클라이언트에 설치된 통신 에이전트는 상기 제공된 노드 정보를 이용하여 복수의 노드에 연결을 설정하며, 연결이 설정된 노드들로부터 병렬/분산 방식으로 컨텐츠 스트리밍 데이터를 수신하며, 다른 사용자 클라이언트로부터 저장된 컨텐츠에 대한 전송 요청을 받을 경우, 요청된 컨텐츠 스트리밍 데이터를 상기 다른 사용자 클라이언트에 전송하도록 상기 사용자 클라이언트를 제어하는 것을 특징으로 하는 컨텐츠 제공 서버.
- 제14항에 있어서,상기 요청하는 컨텐츠의 실행에 필요한 메타 정보를 저장하는 메타 정보 데이터베이스를 더 포함하는 것을 특징으로 하는 컨텐츠 제공 서버.
- 제14항에 있어서,상기 통신 에이전트는,상기 컨텐츠 서버에 사용자 클라이언트에 저장되어 있는 컨텐츠 정보 및 사용자 클라이언트 식별 정보를 제공하고, 사용자가 컨텐츠를 요청할 경우 컨텐츠 요청 정보를 상기 컨텐츠 서버에 전송하는 에이전트 관리 모듈;사용자 클라이언트에 저장되어 있는 컨텐츠 정보를 관리하는 캐쉬 관리 모듈;사용자가 전송을 요청한 컨텐츠를 저장하고 있는 노드에 연결을 설정하여 병렬/분산 방식으로 요청한 컨텐츠를 수신하는 메쉬 관리 모듈;사용자의 컨텐츠 요청 정보를 상기 에이전트 관리 모듈에 제공하고, 수신한 컨텐츠를 컨텐츠 플레이어에 제공하는 플레이어 제어 모듈을 포함하는 것을 특징으로 하는 컨텐츠 제공 서버.
- 제14항에 있어서,상기 복수의 사용자 클라이언트에 저장되는 컨텐츠는 총 컨텐츠 데이터를 미리 설정된 단위로 나눈 복수의 블록으로 구성되며, 상기 블록은 이를 미리 설정된 단위로 나눈 복수의 서브 블록으로 구성되는 것을 특징으로 하는 컨텐츠 제공 서버.
- 제14항에 있어서,연결이 설정된 노드들 중 일부의 노드에서 서브 블록 데이터 수신 오류가 있을 경우, 연결이 설정된 노드들 중 서브 블록 데이터 송신이 완료된 노드가 있는지 여부를 판단하는 모듈;연결이 설정된 노드들 중 서브 블록 데이터 송신이 완료된 노드가 있을 경우, 해당 노드에 수신 오류가 있는 서브 블록 데이터를 요청하는 모듈;연결이 설정된 노드들 중 서브 블록 데이터 송신이 완료된 노드가 없을 경우, 상기 단계(b)에 의해 제공된 노드 정보를 이용하여 연결이 설정되지 않은 노드에 대해 연결을 설정하여 수신 오류가 있는 서브 블록 데이터를 수신하는 모듈을 포함하는 것을 특징으로 하는 컨텐츠 제공 서버.
- 컨텐츠 서버 및 복수의 사용자 클라이언트가 네트워크를 통해 연결되어 있는 시스템에서 상기 복수의 사용자 클라이언트에 설치되어 사용자 클라이언트의 동작을 제어하는 통신 에이전트 시스템으로서,사용자 클라이언트의 전원이 켜지거나 통신 에이전트 시스템의 실행 시 상기 컨텐츠 서버에 연결 설정을 요청하여 연결을 설정하는 연결 설정 모듈;상기 컨텐츠 서버에 연결 설정을 완료한 후, 사용자 클라이언트에 저장되어 있는 컨텐츠 정보 및 사용자 클라이언트 식별 정보를 제공하고, 사용자가 컨텐츠를 요청할 경우 컨텐츠 요청 정보를 상기 컨텐츠 서버에 전송하며, 사용자가 요청한 컨텐츠를 저장하고 있는 노드 정보를 수신하는 에이전트 관리 모듈-상기 노드는 컨텐츠를 저장하고 있는 서버 또는 다른 클라이언트들을 모두 포함하며, 상기 노드 정보는 해당 컨텐츠를 저장하고 있는 서버 또는 사용자 클라이언트의 주소 정보임- ;사용자 클라이언트에 저장되어 있는 컨텐츠 정보를 관리하는 캐쉬 관리 모듈;사용자가 전송을 요청한 컨텐츠를 저장하고 있는 노드에 연결을 설정하여 병렬/분산 방식으로 컨텐츠 스트리밍 데이터를 수신하고, 다른 사용자 클라이언트로부터 저장된 컨텐츠에 대한 전송 요청을 받을 경우, 요청된 컨텐츠 스트리밍 데이터를 상기 다른 사용자 클라이언트에 전송하는 메쉬 관리 모듈;사용자의 컨텐츠 요청 정보를 상기 에이전트 관리 모듈에 제공하고, 수신한 컨텐츠 스트리밍 데이터를 컨텐츠 플레이어에 제공하는 플레이어 제어 모듈을 포함하는 것을 특징으로 하는 통신 에이전트 시스템.
- 제19항에 있어서,상기 수신하는 컨텐츠는 총 컨텐츠 데이터를 미리 설정된 단위로 나눈 복수의 블록으로 구성되고, 상기 블록은 이를 미리 설정된 단위로 나눈 복수의 서브 블록으로 구성되며,상기 메쉬 관리 모듈은,상기 컨텐츠 서버로부터 수신되는 요청한 컨텐츠를 저장하고 있는 노드 정보를 관리하는 노드 관리 모듈;수신한 노드 정보를 이용하여 요청한 컨텐츠를 저장하고 있는 노드들 중 미리 설정된 수의 노드에 연결을 설정하고, 연결이 설정된 노드들로부터 각각 다른 서브 블록 데이터를 수신하는 연결 제어 모듈;하나의 블록을 구성하는 모든 서브 블록 데이터가 수신되는지 여부를 판단하는 서브 블록 관리 모듈;하나의 블록을 구성하는 모든 서브 블록데이터가 수신될 경우, 모든 서브 블록이 수신된 블록 데이터를 상기 플레이어 제어 모듈에 제공하는 블록 관리 모듈을 포함하는 것을 특징으로 하는 통신 에이전트 시스템.
- 컨텐츠 서버 및 복수의 사용자 클라이언트가 네트워크를 통해 연결되어 있고, 상기 복수의 사용자 클라이언트에는 다른 사용자 클라이언트들 또는 상기 컨텐츠 서버와 통신하기 위한 통신 에이전트가 설치되어 있으며, 상기 컨텐츠 서버에서 인터넷 방송 서비스를 제공하는 방법에 있어서,상기 통신 에이전트 프로그램에 의해 제어되는 사용자 클라이언트들로부터 연결 설정 요청 정보를 수신하여 연결을 설정하는 단계(a);사용자 클라이언트로부터 방송 전송 요청 신호를 수신하는 단계(b);상기 컨텐츠 서버에 접속하여 방송을 시청하고 있는 다른 사용자 클라이언트들의 주소 정보를 상기 단계(b)에서 방송 전송 요청 신호를 송신한 사용자 클라이언트에 제공하는 단계(c)를 포함하되,상기 방송 전송을 요청한 사용자 클라이언트에 설치된 통신 에이전트는 상기 단계(c)에서 제공된 정보를 이용하여 방송을 시청하고 있는 다른 사용자 클라이언트들 중 복수의 사용자 클라이언트에 연결을 설정하며, 연결이 설정된 사용자 클라이언트로부터 방송 정보를 수신하며, 다른 사용자 클라이언트로부터 방송 정보의 전송을 요청받을 경우, 상기 다른 사용자 클라이언트에 수신하는 방송 정보를 전달하도록 상기 사용자 클라이언트를 제어하는 것을 특징으로 하는 방송 컨텐츠 제공 방법.
- 제22항에 있어서,상기 통신 에이전트는 병렬/분산 방식으로 방송 정보를 수신하도록 상기 사용자 클라이언트를 제어하는 것을 특징으로 하는 방송 컨텐츠 제공 방법.
- 컨텐츠 서버 및 복수의 사용자 클라이언트가 네트워크를 통해 연결되어 있는 시스템에서 사용자 클라이언트가 컨텐츠를 수신하는 방법에 있어서,클라이언트의 전원이 켜지거나 컨텐츠 수신용 에이전트 프로그램이 실행될 경우 상기 에이전트 프로그램의 제어에 의해 상기 컨텐츠 서버에 연결 설정을 요청하고 주소 정보를 제공하는 단계(a);상기 연결 설정된 컨텐츠 서버에 현재 저장하고 있는 컨텐츠 정보를 전송하는 단계(b);상기 컨텐츠 서버에 컨텐츠 전송 요청 신호를 전송하는 단계(c);상기 컨텐츠 서버로부터 요청한 컨텐츠를 저장하고 있는 노드 정보를 수신하는 단계(d)-상기 노드는 컨텐츠를 저장하고 있는 서버 또는 다른 클라이언트들을 모두 포함하며, 상기 노드 정보는 해당 컨텐츠를 저장하고 있는 서버 또는 사용자 클라이언트의 주소 정보임-;상기 단계(c)에서 수신한 노드 정보를 이용하여 복수의 노드에 연결을 설정하는 단계(e);상기 단계(d)에서 연결이 설정된 복수의 노드들로부터 요청한 컨텐츠 스트리밍 데이터를 병렬/분산 방식으로 수신하는 단계(f); 및다른 사용자 클라이언트로부터 저장된 컨텐츠에 대한 전송 요청을 받을 경우, 요청된 컨텐츠 스트리밍 데이터를 상기 다른 사용자 클라이언트에 전송하는 단계(g)를 포함하는 것을 특징으로 하는 컨텐츠 수신 방법
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)
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)
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)
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 |
-
2002
- 2002-10-10 KR KR10-2002-0061725A patent/KR100485974B1/ko active IP Right Grant
- 2002-11-21 CN CNB028297350A patent/CN100382072C/zh not_active Expired - Lifetime
- 2002-11-21 AU AU2002353629A patent/AU2002353629A1/en not_active Abandoned
- 2002-11-21 WO PCT/KR2002/002178 patent/WO2004034275A1/en active Application Filing
-
2003
- 2003-01-10 JP JP2003004644A patent/JP3990987B2/ja not_active Expired - Lifetime
-
2005
- 2005-04-11 US US11/103,390 patent/US7640246B2/en not_active Expired - Lifetime
Cited By (6)
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 |