KR101632068B1 - 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 - Google Patents
컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 Download PDFInfo
- Publication number
- KR101632068B1 KR101632068B1 KR1020130037675A KR20130037675A KR101632068B1 KR 101632068 B1 KR101632068 B1 KR 101632068B1 KR 1020130037675 A KR1020130037675 A KR 1020130037675A KR 20130037675 A KR20130037675 A KR 20130037675A KR 101632068 B1 KR101632068 B1 KR 101632068B1
- Authority
- KR
- South Korea
- Prior art keywords
- content
- node
- client
- unique identifier
- stored
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 230000005540 biological transmission Effects 0.000 claims description 181
- 238000013507 mapping Methods 0.000 claims description 38
- 238000012545 processing Methods 0.000 claims description 16
- 238000007726 management method Methods 0.000 claims description 10
- 238000012546 transfer Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 45
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 230000004044 response Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 230000005641 tunneling Effects 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000012419 revalidation Methods 0.000 description 2
- 235000004936 Bromus mango Nutrition 0.000 description 1
- 240000007228 Mangifera indica Species 0.000 description 1
- 235000014826 Mangifera indica Nutrition 0.000 description 1
- 240000008790 Musa x paradisiaca Species 0.000 description 1
- 235000018290 Musa x paradisiaca Nutrition 0.000 description 1
- 235000009184 Spondias indica Nutrition 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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
- G06Q50/40—Business processes related to the transportation industry
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/12—Payment architectures specially adapted for electronic shopping systems
- G06Q20/123—Shopping for digital content
- G06Q20/1235—Shopping for digital content with control of digital rights management [DRM]
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4012—Verifying personal identification numbers [PIN]
-
- 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
- G06Q50/10—Services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Human Resources & Organizations (AREA)
- General Health & Medical Sciences (AREA)
- Economics (AREA)
- Health & Medical Sciences (AREA)
- Finance (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 발명의 일 태양에 따르면, 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 방법으로서, (a) 전송 노드(delivery node)가, 클라이언트로부터 컨텐츠에 대한 요청을 수신하고, (b) 상기 전송 노드가, 상기 요청에 포함되는 상기 컨텐츠의 URL에 관한 정보를 마스터 노드(master node)에게 전송하는 단계, (c) 상기 전송 노드가, 상기 컨텐츠의 URL에 관한 정보와 대응되는 고유 식별자에 관한 정보를 상기 마스터 노드로부터 전송 받고, 상기 전송 받은 고유 식별자에 관한 정보를 참조로 하여 상기 컨텐츠가 상기 전송 노드에 저장되어 있는지 여부를 판단하는 단계, 및 (d) 상기 컨텐츠가 상기 전송 노드에 저장되어 있는 것으로 판단되면 상기 전송 노드가 상기 전송 노드에 저장되어 있는 상기 컨텐츠를 상기 클라이언트에게 전송하고, 상기 컨텐츠가 상기 전송 노드에 저장되어 있지 않은 것으로 판단되면 상기 전송 노드가 상기 마스터 노드로부터 상기 컨텐츠를 전송 받아 상기 클라이언트에게 전송하는 단계를 포함하는 방법이 제공된다.
Description
본 발명은 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체에 관한 것으로, 보다 상세하게는, 컨텐츠마다 고유하게 생성되는 고유 식별자에 기반하여 컨텐츠를 저장 및 전송함으로써 네트워크 트래픽을 감소시키고 컨텐츠 제공 서비스의 품질을 향상시킬 수 있도록 하는 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체에 관한 것이다.
URL(Uniform Resource Locator)은 월드 와이드 웹(World-Wide-Web, Web, 이하 웹) 상에서 유통되는 컨텐츠의 위치를 나타내는 지시자이다. 사용자는 특정 URL을 자신의 웹 브라우저에 입력함으로써 웹 상에서 해당 컨텐츠에 접근할 수 있다. 이때 웹 서버는 특정 URL에 대응되는 컨텐츠를 제공하게 되는데, URL은 컨텐츠의 위치를 나타내는 지시자일뿐 컨텐츠 자체를 특정하는 식별자가 아니기 때문에 하나의 URL에 서로 다른 여러 개의 컨텐츠가 대응될 수 있고, 서로 다른 여러 개의 URL에 하나의 동일한 컨텐츠가 대응될 수도 있다.
먼저, 전자의 경우로서 "http://news.yahoo.com/"이라는 URL을 통해 현재 시각의 탑 뉴스를 포함하는 웹 페이지가 제공되는 예를 들 수 있는데, 이러한 경우 "http://news.yahoo.com/"이라는 동일한 URL을 이용하더라도 접근하는 시각에 따라 제공되는 뉴스의 내용이 달라질 수 있으므로, 하나의 URL에 서로 다른 여러 개의 컨텐츠가 대응된다고 할 수 있다. 다음으로, 후자의 경우로서 "http://www1.youtube.com/fileid=1234"라는 URL, "http://www2.youtube.com/fileid=1234"라는 URL 및 "http://cache1.youtube.com/fileid=1234"라는 서로 다른 3 개의 URL을 통해 식별자가 "1234"인 동일한 동영상이 제공되는 예를 들 수 있는데, 이러한 경우 서로 다른 여러 개의 URL에 하나의 컨텐츠가 대응된다고 할 수 있다.
한편, 일반적으로 웹 상에서 동작하는 컨텐츠 전송 시스템은 서버(Server)에 대하여 컨텐츠를 요청하는 클라이언트(Client)와 클라이언트로부터의 요청에 대응하여 컨텐츠를 제공하는 서버로 구성될 수 있다. 여기서, 다수의 클라이언트가 동시에 컨텐츠를 요청할 경우 서버에 과부하가 걸려 컨텐츠 제공 품질이 낮아지는 문제점이 발생할 수 있고 서버에서 클라이언트로의 통신망에서 병목현상이 발생하여 컨텐츠 제공 속도가 저하되는 문제점이 발생할 수 있다.
이러한 문제점을 해결하기 위한 종래 기술로서, 서버와 클라이언트 사이의 전송 경로 상의 클라이언트와 가까운 위치에 소정의 전송 서버(Delivery Server)를 배치시키고 전송 서버가 자주 요청되는 인기 컨텐츠를 저장하도록 함으로써 클라이언트로부터 서버로의 요청이 발생했을 때 서버를 대신하여 전송 서버가 자신이 저장해 둔 컨텐츠를 클라이언트에게 전송하는 기술이 소개된 바 있다. 여기서, 전송 서버에 컨텐츠를 저장하는 방법으로는 관리자 혹은 그에 준하는 시스템에 의하여 선정된 컨텐츠를 미리 저장해 두는 방법과 클라이언트에 의하여 컨텐츠가 요청될 때 해당 컨텐츠를 서버로부터 전송 받아 저장해 두는 방법(일명, 캐싱(Caching) 방법)이 있다. 일반적으로, 클라이언트로부터 요청된 적이 있는 컨텐츠가 다시 요청될 확률이 높기 때문에 클라이언트에 의하여 요청된 컨텐츠를 저장해 두는 방법이 관리자에 의하여 임의로 지정된 컨텐츠를 저장해 두는 방법보다 트래픽 절감 효과가 크고 널리 사용되고 있다.
이하에서는, URL을 이용하여 컨텐츠를 식별하고 캐싱 방법을 이용하여 컨텐츠를 저장 및 전송하는 종래 기술에 대하여 보다 자세히 살펴보기로 한다.
종래 기술에 따르면, 클라이언트와 서버의 전송 경로 상에 위치하는 전송 서버는 클라이언트로부터 컨텐츠에 대한 요청을 수신할 수 있다. 다음으로, 전송 서버는 클라이언트로부터 수신된 요청에 포함되어 있는 컨텐츠의 URL 정보를 자신이 저장하고 있는 컨텐츠의 URL 정보와 비교하여 자신이 해당 컨텐츠를 가지고 있는지(즉, 저장하고 있는지) 여부를 판단할 수 있다. 다음으로, 클라이언트로부터 요청된 컨텐츠가 전송 서버 내에 저장되어 있는 것으로 판단되면 전송 서버는 클라이언트로부터의 요청에 대한 응답으로서 자신이 저장하고 있는 컨텐츠를 클라이언트에게 전송할 수 있고, 클라이언트로부터 요청된 컨텐츠가 전송 서버 내에 저장되어 있지 않은 것으로 판단되면 전송 서버는 클라이언트로부터의 요청을 서버에게 전송하고 이 요청에 대한 응답으로서 서버로부터 전송되는 컨텐츠를 클라이언트에게 전송하는 한편 자신의 저장 공간에 저장할 수 있다. 여기서, 전송 서버의 저장 공간은 LRU(Least Recently Used) 알고리즘, 선입선출(FIFO, First Input First Output) 알고리즘 등에 의해 관리될 수 있다.
하지만, 위와 같은 종래 기술에서는, 통신망 상에 존재하는 컨텐츠를 특정하기 위하여 URL을 이용하기 때문에 다음과 같은 문제점이 발생할 수 있다.
먼저, 전송 서버의 저장 공간이 낭비되는 문제점이 발생할 수 있다. 즉, 컨텐츠에 대한 식별자로서 URL을 사용하는 전송 서버는 컨텐츠에 대응되어 있는 URL이 다르면 동일한 내용을 담고 있는 컨텐츠임에도 불고하고 URL마다 컨텐츠를 중복하여 저장해야 하고, 이로 인해 전송 서버의 저장 공간은 부족하게 되는 문제점이 발생할 수 있다. 특히, 비디오, 오디오, 애플리케이션, 소프트웨어 업데이트 파일, 웹 하드와 같은 파일 공유 서비스에서 제공되는 컨텐츠의 경우에는 컨텐츠 하나에 서로 다른 여러 개의 URL이 대응되는 것이 일반적이기 때문에 위와 같은 문제점이 더욱 심해지게 된다.
다음으로, 컨텐츠의 재사용성이 저하되는 문제점이 발생할 수 있다. 구체적으로, 사용자가 동일한 URL를 통하여 서로 다른 컨텐츠에 접근하는 경우, 전송 노드에서는 이전에 저장되어 있었던 컨텐츠를 삭제하고 새로 전송 받은 컨텐츠를 저장해야 하는데, 이는 곧 컨텐츠 재사용성의 저하를 의미한다. 예를 들어 서로 다른 컨텐츠 A 및 컨텐츠 B가 동일한 URL에 의해 특정될 경우 사용자로부터 컨텐츠 A - 컨텐츠 B - 컨텐츠 A - 컨텐츠 B의 순서로 컨텐츠 요청이 들어오는 경우 매번 해당 컨텐츠를 새로 전송을 받아야 하는 비효율이 발생하게 된다. 또한, 하나의 URL에 서로 다른 여러 개의 컨텐츠가 대응되는 경우(예를 들면, 동일한 URL에 의하더라도 브라우저의 종류나 클라이언트로부터의 요청의 헤더 값 등에 따라 서로 다른 컨텐츠가 응답되는 경우)에, URL을 식별자로 이용하는 전송 서버로서는 해당 컨텐츠를 정확하게 식별하기가 어렵게 된다. 미리 지정된 헤더의 값과 URL 모두를 식별자로 활용하여 서로 다른 여러 개의 컨텐츠를 식별, 저장 및 전송하는 기술을 통해 이러한 문제점을 해결하려는 시도가 있기는 했지만, 컨텐츠를 식별하기 위하여 사전에 특정 URL과 특정 헤더의 값을 획득해야 한다는 점에서 운용하기가 쉽지 않고, URL과 헤더의 값만으로 컨텐츠를 식별할 수 없는 경우가 발생할 수도 있다는 점에서 한계가 있다.
다음으로, 요청된 컨텐츠가 정확하게 전송되지 못하게 되는 문제점이 발생할 수 있다. 즉, 전송 효율을 높이기 위하여 클라이언트와 서버 사이의 전송 경로 상에 위치하는 전송 서버가 서버로부터 확인을 받지 않고 컨텐츠에 대한 식별자로서 URL만을 이용하여 자신이 저장하고 있는 컨텐츠를 클라이언트에게 전송하는 경우를 가정할 수 있는데, 이러한 경우에 클라이언트가 실제로 요청한 컨텐츠와 URL만 일치하고 내용은 다른 엉뚱한 컨텐츠가 클라이언트에게 전송되는 경우가 발생할 수 있게 된다.
다음으로, 무선 통신망에서 컨텐츠를 전송함에 있어서도 문제점이 발생할 수 있다. 구체적으로, 클라이언트 단말기가 통신망 상의 특정 지점에 고정적으로 위치하는 유선 통신망과는 달리 무선 통신망에서는 클라이언트 단말기가 물리적인 공간에서 이동함에 따라 클라이언트 단말기의 통신망 상에서의 위치가 변경되고 이에 따라 클라이언트 단말기가 속하는 통신망이 달라지게 되는 핸드오버(Hand-Over)가 발생할 수 있다. 클라이언트에서 핸드오버가 발생하면, 핸드오버 이전에 클라이언트와 연결되어 있던 제1 전송 서버로부터 컨텐츠를 전송 받고 있던 클라이언트는 핸드오버 이후에 클라이언트와 연결되는 제2 전송 서버로부터 컨텐츠를 전송 받을 필요가 있는데, 이때 컨텐츠의 식별자로서 URL을 사용하게 되면 제1 전송 서버로부터 전송 받던 컨텐츠와 제2 전송 서버로부터 전송 받게 될 컨텐츠가 동일하다는 것을 보장할 수 없게 된다. 따라서, 제2 전송 서버는 전송 효율이 저하되는 것을 감수하면서 제1 전송 서버로부터 클라이언트에게 전송되었던 컨텐츠를 전송 받아 이를 다시 클라이언트에게 전송하거나, 오(誤)전송을 감수하면서 자신이 가지고 있는 컨텐츠를 클라이언트에게 전송할 수 밖에 없게 되는 문제점이 발생할 수 있다.
이상에서 언급된 종래 기술의 문제점은 컨텐츠를 식별하는 수단으로서 사용되는 URL이 해당 컨텐츠를 얻을 수 있는 통신망 상의 주소에 불과할 뿐 해당 컨텐츠 자체를 고유하게 식별할 수 있는 식별자는 아니라는 점에서 기인하는 것이라고 할 수 있다.
따라서, 핸드오버가 발생할 수 있는 무선 통신망에서 컨텐츠를 정확하고도 효율적으로 전송할 수 있는 기술이 요구되고 있는 실정이다.
본 발명은 상술한 문제점을 모두 해결하는 것을 그 목적으로 한다.
또한, 본 발명은 컨텐츠를 전송 및 저장함에 있어서 URL이 아닌 고유 식별자를 이용하여 컨텐츠를 식별함으로써, 웹 상에 존재하는 컨텐츠를 정확하게 식별할 수 있도록 하는 것을 다른 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.
본 발명의 일 태양에 따르면, 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 방법으로서, (a) 전송 노드(delivery node)가, 클라이언트로부터 컨텐츠에 대한 요청을 수신하고, (b) 상기 전송 노드가, 상기 요청에 포함되는 상기 컨텐츠의 URL에 관한 정보를 마스터 노드(master node)에게 전송하는 단계, (c) 상기 전송 노드가, 상기 컨텐츠의 URL에 관한 정보와 대응되는 고유 식별자에 관한 정보를 상기 마스터 노드로부터 전송 받고, 상기 전송 받은 고유 식별자에 관한 정보를 참조로 하여 상기 컨텐츠가 상기 전송 노드에 저장되어 있는지 여부를 판단하는 단계, 및 (d) 상기 컨텐츠가 상기 전송 노드에 저장되어 있는 것으로 판단되면 상기 전송 노드가 상기 전송 노드에 저장되어 있는 상기 컨텐츠를 상기 클라이언트에게 전송하고, 상기 컨텐츠가 상기 전송 노드에 저장되어 있지 않은 것으로 판단되면 상기 전송 노드가 상기 마스터 노드로부터 상기 컨텐츠를 전송 받아 상기 클라이언트에게 전송하는 단계를 포함하는 방법이 제공된다.
본 발명의 다른 태양에 따르면, 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 방법으로서, (a) 마스터 노드(master node)가 전송 노드(delivery node)로부터 클라이언트에 의하여 요청된 컨텐츠의 URL에 관한 정보를 수신하는 단계, (b) 상기 마스터 노드가, URL 및 고유 식별자 사이의 맵핑 정보를 참조로 하여, 상기 컨텐츠의 URL에 관한 정보와 대응되는 고유 식별자를 결정하고 상기 결정된 고유 식별자를 상기 전송 노드에 전송하는 단계, 및 (c) 상기 컨텐츠가 상기 전송 노드에 저장되어 있지 않은 것으로 판단되면 상기 마스터 노드가 상기 컨텐츠를 상기 전송 노드에게 전송하는 단계를 포함하는 방법이 제공된다.
본 발명의 또 다른 태양에 따르면, 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 방법으로서, (a) 전송 노드(delivery node)가, 클라이언트로부터 컨텐츠에 대한 요청을 수신하고, (b) 상기 전송 노드가, 상기 요청에 포함되는 상기 컨텐츠의 URL에 관한 정보를 마스터 노드(master node)에게 전송하는 단계, (c) 상기 마스터 노드(master node)가 상기 전송 노드로부터 상기 컨텐츠의 URL에 관한 정보를 수신하는 단계, (d) 상기 마스터 노드가, URL 및 고유 식별자 사이의 맵핑 정보를 참조로 하여, 상기 컨텐츠의 URL에 관한 정보와 대응되는 고유 식별자를 결정하고 상기 결정된 고유 식별자를 상기 전송 노드에 전송하는 단계, (e) 상기 전송 노드가, 상기 마스터 노드로부터 전송된 상기 결정된 고유 식별자에 관한 정보를 참조로 하여 상기 컨텐츠가 상기 전송 노드에 저장되어 있는지 여부를 판단하는 단계, 및 (f) 상기 컨텐츠가 상기 전송 노드에 저장되어 있는 것으로 판단되면 상기 전송 노드가 상기 전송 노드에 저장되어 있는 상기 컨텐츠를 상기 클라이언트에게 전송하고, 상기 컨텐츠가 상기 전송 노드에 저장되어 있지 않은 것으로 판단되면 상기 마스터 노드가 상기 컨텐츠를 상기 전송 노드에게 전송하고 상기 전송 노드가 상기 마스터 노드로부터 전송 받은 컨텐츠를 상기 클라이언트에게 전송하는 단계를 포함하는 방법이 제공된다.
본 발명의 또 다른 태양에 따르면, 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 방법으로서, (a) 노드(node)가, 클라이언트로부터 컨텐츠에 대한 요청을 수신하는 단계, (b) 상기 노드가, URL 및 고유 식별자 사이의 맵핑 정보를 참조로 하여, 상기 요청에 포함되는 상기 컨텐츠의 URL에 관한 정보와 대응되는 고유 식별자를 결정하는 단계, (c) 상기 노드가, 상기 컨텐츠의 URL에 관한 정보와 대응되는 고유 식별자에 관한 정보를 참조로 하여 상기 컨텐츠가 상기 노드에 저장되어 있는지 여부를 판단하는 단계, 및 (d) 상기 컨텐츠가 상기 노드에 저장되어 있는 것으로 판단되면 상기 노드가 상기 노드에 저장되어 있는 상기 컨텐츠를 상기 클라이언트에게 전송하고, 상기 컨텐츠가 상기 노드에 저장되어 있지 않은 것으로 판단되면 상기 노드가 서버로부터 상기 컨텐츠를 전송 받아 상기 클라이언트에게 전송하는 단계를 포함하는 방법이 제공된다.
본 발명의 또 다른 태양에 따르면, 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 시스템으로서, 클라이언트로부터 컨텐츠에 대한 요청을 수신하는 컨텐츠 요청 처리부, 및 상기 요청에 포함되는 상기 컨텐츠의 URL에 관한 정보를 마스터 노드(master node)에게 전송하고, 상기 컨텐츠의 URL에 관한 정보와 대응되는 고유 식별자에 관한 정보를 상기 마스터 노드로부터 전송 받고, 상기 전송 받은 고유 식별자에 관한 정보를 참조로 하여 상기 컨텐츠가 전송 노드에 저장되어 있는지 여부를 판단하고, 상기 컨텐츠가 상기 전송 노드에 저장되어 있는 것으로 판단되면 상기 전송 노드에 저장되어 있는 상기 컨텐츠를 상기 클라이언트에게 전송하고, 상기 컨텐츠가 상기 전송 노드에 저장되어 있지 않은 것으로 판단되면 상기 마스터 노드로부터 상기 컨텐츠를 전송 받아 상기 클라이언트에게 전송하는 컨텐츠 고유 식별자 관리부를 포함하는 시스템이 제공된다.
본 발명의 또 다른 태양에 따르면, 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 시스템으로서, 전송 노드(delivery node)로부터 클라이언트에 의하여 요청된 컨텐츠의 URL에 관한 정보를 수신하고, URL 및 고유 식별자 사이의 맵핑 정보를 참조로 하여, 상기 컨텐츠의 URL에 관한 정보와 대응되는 고유 식별자를 결정하고 상기 결정된 고유 식별자를 상기 전송 노드에 전송하는 컨텐츠 고유 식별자 관리부, 및 상기 컨텐츠가 상기 전송 노드에 저장되어 있지 않은 것으로 판단되면 상기 컨텐츠를 상기 전송 노드에게 전송하는 컨텐츠 요청 처리부를 포함하는 시스템이 제공된다.
본 발명의 또 다른 태양에 따르면, 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 시스템으로서, 클라이언트로부터 컨텐츠에 대한 요청을 수신하고, 상기 요청에 포함되는 상기 컨텐츠의 URL에 관한 정보를 마스터 노드(master node)에게 전송하고, 상기 마스터 노드로부터 전송된 상기 결정된 고유 식별자에 관한 정보를 참조로 하여 상기 컨텐츠가 전송 노드에 저장되어 있는지 여부를 판단하고, 상기 컨텐츠가 상기 전송 노드에 저장되어 있는 것으로 판단되면 상기 전송 노드에 저장되어 있는 상기 컨텐츠를 상기 클라이언트에게 전송하고, 상기 컨텐츠가 상기 전송 노드에 저장되어 있지 않은 것으로 판단되면 상기 마스터 노드로부터 전송 받은 컨텐츠를 상기 클라이언트에게 전송하는 전송 노드 및 상기 전송 노드로부터 상기 컨텐츠의 URL에 관한 정보를 수신하고, URL 및 고유 식별자 사이의 맵핑 정보를 참조로 하여, 상기 컨텐츠의 URL에 관한 정보와 대응되는 고유 식별자를 결정하고 상기 결정된 고유 식별자를 상기 전송 노드에 전송하고, 상기 컨텐츠가 상기 전송 노드에 저장되어 있지 않은 것으로 판단되면 상기 컨텐츠를 상기 전송 노드에게 전송하는 마스터 노드를 포함하는 시스템이 제공된다.
본 발명의 또 다른 태양에 따르면, 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 시스템으로서, 클라이언트로부터 컨텐츠에 대한 요청을 수신하는 컨텐츠 요청 처리부, 및 URL 및 고유 식별자 사이의 맵핑 정보를 참조로 하여, 상기 요청에 포함되는 상기 컨텐츠의 URL에 관한 정보와 대응되는 고유 식별자를 결정하고, 상기 컨텐츠의 URL에 관한 정보와 대응되는 고유 식별자에 관한 정보를 참조로 하여 상기 컨텐츠가 상기 노드에 저장되어 있는지 여부를 판단하고, 상기 컨텐츠가 노드에 저장되어 있는 것으로 판단되면 상기 노드에 저장되어 있는 상기 컨텐츠를 상기 클라이언트에게 전송하고, 상기 컨텐츠가 상기 노드에 저장되어 있지 않은 것으로 판단되면 서버로부터 상기 컨텐츠를 전송 받아 상기 클라이언트에게 전송하는 컨텐츠 고유 식별자 관리부를 포함하는 시스템이 제공된다.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공된다.
본 발명에 의하면, 고유 식별자를 이용하여 웹 상에 존재하는 컨텐츠를 정확하게 식별할 수 있으므로, 컨텐츠를 저장하는 서버의 저장 공간을 절약할 수 있고 컨텐츠의 재사용성을 높일 수 있으며 무선 통신망에서 핸드오버가 발생하는 경우에도 컨텐츠를 정확하게 전송할 수 있게 되는 효과가 달성된다.
또한, 본 발명에 의하면, 컨텐츠를 구성하는 데이터의 내용이 다르면 다른 고유 식별자를 갖도록 관리되기 때문에, 여러 가지 컨텐츠가 하나의 URL을 통하여 다운로드되는 경우에도 각 컨텐츠를 정확하게 식별할 수 있게 되는 효과가 달성된다.
또한, 본 발명에 의하면, 고유 식별자를 이용하여 컨텐츠를 정확하게 식별할 수 있으므로, 기존의 URL을 식별자로 이용하는 경우(예를 들면, 일정 시간(Time To Live, TTL) 동안 특정 URL이 특정 컨텐츠에 대한 식별자로서 사용될 수 있도록 설정함으로써 URL이 컨텐츠에 대한 식별자로서 사용될 수 있도록 하는 경우)에 비하여 컨텐츠의 오전송을 획기적으로 줄일 수 있게 되고 기존의 URL을 식별자로 이용하는 경우에 수반되었던 재인증(re-validation) 과정(예를 들면, 일정 시간이 경과할 때마다 특정 URL이 특정 컨텐츠에 대한 식별자로서 사용되는 것이 아직 유효한지 여부를 인증하는 과정)을 수행할 필요 없이 컨텐츠의 정확한 전송을 보장할 수 있게 되는 효과가 달성된다.
또한, 본 발명에 의하면, 무선 통신망의 클라이언트에서 핸드오버가 발생하는 경우에도 컨텐츠 전송이 정상적으로 수행될 수 있게 되는 효과가 달성된다.
도 1은 본 발명에 따라 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 시스템의 전체적인 구성을 개략적으로 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 마스터 노드(200)의 내부 구성을 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 전송 노드(300)의 내부 구성을 나타내는 도면이다.
도 4 내지 도 7은 본 발명의 일 실시예에 따라 컨텐츠를 전송하는 과정을 예시적으로 나타내는 도면이다.
도 8은 본 발명의 일 실시예에 따라 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송함에 있어서 핸드오버를 지원하는 과정을 예시적으로 나타내는 도면이다.
도 9는 본 발명의 일 실시예에 따라 URL과 고유 식별자 사이 맵핑 테이블 또는 URL 및 요청 헤더와 고유 식별자 사이의 맵핑 테이블을 예시적으로 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 마스터 노드(200)의 내부 구성을 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 전송 노드(300)의 내부 구성을 나타내는 도면이다.
도 4 내지 도 7은 본 발명의 일 실시예에 따라 컨텐츠를 전송하는 과정을 예시적으로 나타내는 도면이다.
도 8은 본 발명의 일 실시예에 따라 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송함에 있어서 핸드오버를 지원하는 과정을 예시적으로 나타내는 도면이다.
도 9는 본 발명의 일 실시예에 따라 URL과 고유 식별자 사이 맵핑 테이블 또는 URL 및 요청 헤더와 고유 식별자 사이의 맵핑 테이블을 예시적으로 나타내는 도면이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하에서는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
전체 시스템의 구성
도 1은 본 발명에 따라 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 시스템의 전체적인 구성을 개략적으로 나타내는 도면이다.
도 1에 도시되어 있는 바와 같이, 본 발명의 전체 시스템은 통신망(10), 서버(100), 마스터 노드(Master Node)(200), 전송 노드(Delivery Node)(300) 및 클라이언트(400)를 포함하여 구성될 수 있다.
먼저, 통신망(10)은 유선 및 무선과 같은 그 통신 양태를 가리지 않고 구성될 수 있으며, 인터넷(World Wide Web), 공지의 WLAN(Wireless LAN), CDMA(Code Division Multiple Access), WCDMA(Wideband Code Division Multiple Access) 또는 GSM(Global System for Mobile communications) 통신망 등을 모두 포함하는 개념인 것으로 이해되어야 한다.
다음으로, 본 발명의 일 실시예에 따르면, 서버(100)는 마스터 노드(200), 전송 노드(300) 등이 존재하는 통신망(10)을 통하여 클라이언트(400)와 통신할 수 있으며 클라이언트(400)의 요청에 따라 다양한 유형의 정보를 제공하는 기능을 수행할 수 있다. 예를 들어, 서버(100)는 인터넷 검색 포털 사이트의 운영 서버일 수 있고, 클라이언트(400)에 제공되는 정보는 쿼리에 매칭된 정보, 웹 페이지, 이미지, 비디오, 오디오 등에 관한 다양한 정보일 수 있다.
다음으로, 본 발명의 일 실시예에 따르면, 마스터 노드(200)는 서버(100)로부터 컨텐츠를 전송 받아 이를 자신의 저장 장치에 저장하거나 후술할 전송 노드(300)에 전송하는 기능을 수행할 수 있다. 또한, 본 발명의 일 실시예에 따른 마스터 노드(200)는 컨텐츠에 대한 고유 식별자를 생성하고 해당 컨텐츠의 URL과 고유 식별자 사이의 맵핑(mapping)을 수행하는 기능을 수행할 수 있다. 여기서, 본 발명의 일 실시예에 따르면, 컨텐츠 고유 식별자와의 맵핑을 수행함에 있어서 컨텐츠의 URL에 관한 정보와 함께 컨텐츠의 요청 헤더, 즉, 클라이언트(400)로부터의 컨텐츠 요청에 포함된 헤더에 관한 정보가 더 이용될 수 있다. 즉, 하나의 URL에 여러 개의 컨텐츠가 대응되는 경우에는, 마스터 노드(200)가 컨텐츠의 URL 및 요청 헤더에 관한 정보와 고유 식별자에 관한 정보 사이의 맵핑을 수행할 수 있다. 또한, 본 발명의 일 실시예에 따른 마스터 노드(200)는 자신이 관리하고 있는 컨텐츠의 URL(혹은 URL 및 요청 헤더)과 고유 식별자 사이의 맵핑 정보를 참조로 하여 후술할 전송 노드(300)로부터 전송 받은 URL(혹은 URL 및 요청 헤더)에 대응되는 고유 식별자를 결정하고 이를 해당 전송 노드(300)에게 전송하는 기능을 수행할 수 있다. 또한, 본 발명의 일 실시예에 따른 마스터 노드(200)는 전송 노드(300)의 요청에 따라 특정 고유 식별자에 대응되는 컨텐츠를 해당 전송 노드(300)에게 전송하는 기능을 수행할 수 있다. 또한, 본 발명의 일 실시예에 따른 마스터 노드(200)는 클라이언트(400)에서 핸드오버(Hand-Over)가 발생하는 경우에 핸드오버 이후에 클라이언트(400)와 연결되는 전송 노드(300B) 또는 핸드오버 이전에 클라이언트(400)와 연결되어 있던 전송 노드(300A)가 특정 고유 식별자에 대응되는 컨텐츠를 클라이언트(400)에게 전송하도록 할 수 있으며 이를 위하여 해당 전송 노드에게 소정의 지시 정보를 전송하는 기능을 수행할 수 있다.
도 2는 본 발명의 일 실시예에 따른 마스터 노드(200)의 내부 구성을 나타내는 도면이다.
도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 마스터 노드(200)는 컨텐츠 고유 식별자 관리부(210), 컨텐츠 요청 처리부(220), 핸드오버 처리부(230) 및 송수신부(240)를 포함하여 구성될 수 있다. 본 발명의 일 실시예에 따르면, 컨텐츠 고유 식별자 관리부(210), 컨텐츠 요청 처리부(220), 핸드오버 처리부(230) 및 송수신부(240)는 그 중 적어도 일부가 외부 시스템과 통신하는 프로그램 모듈들일 수 있다. 이러한 프로그램 모듈들은 운영 시스템, 응용 프로그램 모듈 및 기타 프로그램 모듈의 형태로 마스터 노드(200)에 포함될 수 있으며, 물리적으로는 여러 가지 공지의 기억 장치 상에 저장될 수 있다. 또한, 이러한 프로그램 모듈 중 적어도 일부는 마스터 노드(200)와 통신 가능한 원격 기억 장치에 저장될 수도 있다. 한편, 이러한 프로그램 모듈들은 본 발명에 따라 후술할 특정 업무를 수행하거나 특정 추상 데이터 유형을 실행하는 루틴, 서브루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포괄하지만, 이에 제한되지는 않는다.
다음으로, 본 발명의 일 실시예에 따른 전송 노드(300)는 후술할 클라이언트(400)로부터 수신되는 컨텐츠에 대한 요청에 포함되어 있는 컨텐츠의 URL(혹은 URL 및 요청 헤더)을 마스터 노드(200)로 전송하여 해당 URL(혹은 URL 및 요청 헤더)에 대응되는 고유 식별자를 요청하고, 마스터 노드(200)로부터 해당 컨텐츠의 URL(혹은 URL 및 요청 헤더)에 대응되는 고유 식별자를 전송 받는 기능을 수행할 수 있다. 또한, 본 발명의 일 실시예에 따른 전송 노드(300)는 마스터 노드(200)로부터 전송 받은 고유 식별자를 참조로 하여 자신이 클라이언트(400)로부터 요청 받은 컨텐츠를 저장하고 있는지 여부를 판단하는 기능을 수행할 수 있다. 또한, 본 발명의 일 실시예에 따른 전송 노드(300)는, 위의 판단 결과, 자신이 해당 컨텐츠를 저장하고 있는 것으로 판단되면 해당 컨텐츠를 클라이언트(400)에게 전송하고, 자신이 해당 컨텐츠를 저장하고 있지 않은 것으로 판단되면 마스터 노드(200)로부터 해당 컨텐츠를 전송 받아 이를 자신의 저장 장치에 저장하면서 클라이언트(400)에게 전송하는 기능을 수행할 수 있다. 또한, 본 발명의 일 실시예에 따르면, 핸드오버 이후에 클라이언트(400)와 연결되는 전송 노드(300B) 또는 핸드오버 이전에 클라이언트(400)와 연결되어 있던 전송 노드(300A)가 특정 고유 식별자에 대응되는 컨텐츠를 클라이언트(400)에게 전송할 수 있다.
도 3은 본 발명의 일 실시예에 따른 전송 노드(300)의 내부 구성을 나타내는 도면이다.
도 3에 도시된 바와 같이, 본 발명의 일 실시예에 따른 전송 노드(300)는 컨텐츠 고유 식별자 관리부(310), 컨텐츠 요청 처리부(320), 핸드오버 처리부(330) 및 송수신부(340)를 포함하여 구성될 수 있다. 본 발명의 일 실시예에 따르면, 컨텐츠 고유 식별자 관리부(310), 컨텐츠 요청 처리부(320), 핸드오버 처리부(330) 및 송수신부(340)는 그 중 적어도 일부가 외부 시스템과 통신하는 프로그램 모듈들일 수 있다. 이러한 프로그램 모듈들은 운영 시스템, 응용 프로그램 모듈 및 기타 프로그램 모듈의 형태로 전송 노드(300)에 포함될 수 있으며, 물리적으로는 여러 가지 공지의 기억 장치 상에 저장될 수 있다. 또한, 이러한 프로그램 모듈 중 적어도 일부는 전송 노드(300)와 통신 가능한 원격 기억 장치에 저장될 수도 있다. 한편, 이러한 프로그램 모듈들은 본 발명에 따라 후술할 특정 업무를 수행하거나 특정 추상 데이터 유형을 실행하는 루틴, 서브루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포괄하지만, 이에 제한되지는 않는다.
다음으로, 본 발명의 일 실시예에 따르면, 클라이언트(400)는 통신망에 접속하여 서로 통신할 수 있는 기능을 갖는 기기로서, 개인용 컴퓨터(예를 들어, 노트북 컴퓨터 등), PDA, 태플릿 컴퓨터, 스마트폰, 이동 전화기 등과 같이 메모리 수단을 구비하고 마이크로 프로세서를 탑재하여 연산 능력을 갖춘 기기라면 얼마든지 본 발명에 따른 클라이언트(400)가 될 수 있다. 본 발명의 일 실시예에 따르면, 클라이언트(400)는 이동통신 단말기로서 물리적인 공간에서 이동할 수 있으며 이에 따라 클라이언트(400)가 속해 있는 통신망이 바뀌게 되는 핸드오버(Hand-Over) 현상이 발생할 수 있다.
구체적인
실시예
이하에서는, 본 발명의 일 실시예에 따라 컨텐츠의 고유 식별자를 이용하여 컨텐츠를 전송하는 구체적인 실시예에 대하여 자세하게 살펴보기로 한다.
본 발명에서 말하는 컨텐츠의 고유 식별자 혹은 컨텐츠 고유 식별자(Contents Unique IDentifier, CUID)는 컨텐츠마다 고유하게 대응되는 식별자를 가리키는 것으로서, 컨텐츠 고유 식별자가 같으면 컨텐츠를 구성하는 데이터의 내용도 같고, 컨텐츠 고유 식별자가 다르면 컨텐츠를 구성하는 데이터의 내용도 다르게 된다.
구체적으로, 본 발명의 일 실시예에 따르면, 컨텐츠 고유 식별자는 미리 정의된 알고리즘에 의하여 생성될 수 있는데, 이때 적용될 수 있는 알고리즘으로는 MD4(Message Digest 4), MD5(Message Digest 5) 및 SHA(Secure Hash Algorithm) 등을 예로 들 수 있다.
또한, 본 발명의 일 실시예에 따르면, 컨텐츠 전송 시스템의 관리자가 원하는 오류 허용 수준을 만족하도록 생성될 수 있는데, 보다 구체적으로, 컨텐츠의 고유 식별자가 해당 컨텐츠와 유일하게 대응될 확률이 기설정된 확률 이상이 될 수 있다.
또한, 본 발명의 일 실시예에 따르면, 컨텐츠 고유 식별자는 해당 컨텐츠를 구성하는 데이터 중 적어도 일부에 기초하여 생성될 수 있는데, 컨텐츠 전송 시스템의 관리자에 의하여 허용되는 경우에는, 해당 컨텐츠를 구성하는 전체 데이터가 아닌 일부 데이터(예를 들면, 기설정된 크기의 최초 데이터)만을 기초로 하여 생성되고 그에 덧붙여 해당 컨텐츠를 구성하는 전체 데이터의 길이(즉, 크기) 정보를 포함하도록 생성될 수 있다. 즉, 이러한 경우에는, 비교 대상이 되는 두 컨텐츠의 일부 데이터가 동일하고 전체 길이가 동일하다면 두 컨텐츠는 전체적으로 동일한 것으로 판단될 수 있게 된다.
한편, 본 발명의 일 실시예에 따르면, 컨텐츠를 식별하기 위한 수단으로서 컨텐츠 고유 식별자 이외에 컨텐츠를 얻을 수 있는 위치를 특정하는 URL(혹은 URL 및 요청 헤더)을 보조적으로 사용할 수 있으며, 이로써 컨텐츠 고유 식별자를 이용하여 컨텐츠를 식별할 수 없는 경우에는 URL(혹은 URL 및 요청 헤더)을 이용하여 컨텐츠를 식별할 수도 있다.
(1) 서버(100) 및 클라이언트(400)의 동작
본 발명의 일 실시예에 따르면, 서버(100)는 표준 통신 기술에 따라 동작하는 웹 서버로서 외부로부터 요청되는 컨텐츠의 URL(혹은 URL 및 요청 헤더)에 대응되는 컨텐츠를 제공할 수 있다.
본 발명의 일 실시예에 따르면, 클라이언트(400)는 표준 통신 기술에 따라 동작하는 클라이언트로서 외부에 대하여 URL(혹은 URL 및 요청 헤더)을 이용하여 컨텐츠를 요청할 수 있다.
(2) 마스터 노드(200)의 동작
먼저, 본 발명의 일 실시예에 따르면, 마스터 노드(200)는 서버(100)와 클라이언트(400) 사이의 통신 경로 상에 위치하는 적어도 하나의 단위 노드를 가리키는 것으로서, 전송 노드(300)로부터의 요청에 대한 응답으로서 자신이 저장하고 있는 컨텐츠 또는 서버(100)로부터 전송 받은 컨텐츠를 전송 노드(300)에게 전송하는 기능을 수행할 수 있다.
또한, 본 발명의 일 실시예에 따르면, 마스터 노드(200)는 컨텐츠의 고유 식별자를 생성하는 기능을 수행할 수 있고, 컨텐츠의 URL(혹은 URL 및 요청 헤더)과 고유 식별자 사이의 맵핑(mapping)을 수행하는 기능을 수행할 수 있으며, 이러한 맵핑 정보를 참조로 하여 전송 노드(300)로부터 전송 받은 URL(혹은 URL 및 요청 헤더)에 대응되는 컨텐츠 고유 식별자를 결정하여 전송 노드(300)에게 전송해 주는 기능을 수행할 수 있다. 본 발명의 일 실시예에 따르면, 컨텐츠 고유 식별자와의 맵핑을 수행함에 있어서 컨텐츠의 URL에 관한 정보와 함께 컨텐츠의 요청 헤더, 즉, 클라이언트(400)로부터의 컨텐츠 요청에 포함된 헤더에 관한 정보가 더 이용될 수 있다. 즉, 하나의 URL에 여러 개의 컨텐츠가 대응되는 경우에는, 마스터 노드(200)가 컨텐츠의 URL 및 요청 헤더에 관한 정보와 고유 식별자에 관한 정보 사이의 맵핑을 수행할 수 있다.
도 9는 본 발명의 일 실시예에 따라 URL과 고유 식별자 사이의 맵핑 테이블 또는 URL 및 요청 헤더와 고유 식별자 사이의 맵핑 테이블을 예시적으로 나타내는 도면이다.
도 9를 참조하면, URL "http://apple.com/apple"은 고유 식별자 "0x01"과 대응될 수 있고, URL "http://apple.com/banana", "http://apple.com/orange" 및 "http://apple.com/mango"은 모두 동일한 컨텐츠를 가리키는 URL로서 고유 식별자 "0x02"와 대응될 수 있고, URL "http://apple.com/movie/avatar"은 각각의 요청 헤더 "User-Agent=iphone", "User-Agent=ipad" 및 "User-Agent=ipad"에 따라 서로 다른 컨텐츠를 가리키는 URL로서 각각 고유 식별자 "0x03", "0x04" 및 "0x05"에 대응될 수 있다.
또한, 본 발명의 일 실시예에 따른 마스터 노드(200)는, 미리 협의된 컨텐츠를 자신의 저장 장치에 저장해 두고 해당 컨텐츠에 대한 고유 식별자를 생성해 둠으로써 이어지는 전송 노드(300)로부터의 고유 식별자를 통한 컨텐츠 요청에 응답하여 자신이 저장하고 있는 컨텐츠를 전송 노드(300)에 전송하는 기능을 수행할 수 있다.
또한, 본 발명의 일 실시예에 따른 마스터 노드(200)는, 전송 노드(300)로부터 요청 받은 컨텐츠를 서버(100)에 대하여 요청하고, 이에 대한 응답으로서 서버(100)로부터 전송 받은 컨텐츠를 자신의 저장 장치에 저장하면서 전송 노드(300)에 전송하는 기능을 수행할 수 있다. 이때, 마스터 노드(200)는 서버(100)로부터 전송 받은 해당 컨텐츠에 대하여 고유 식별자를 생성하고 유지함으로써 해당 요청 또는 이어지는 요청에 대응하여 전송 서버(300)에게 컨텐츠의 고유 식별자를 전송하는 기능도 수행할 수 있다.
다만, 이상의 실시예에서, 마스터 노드(200)는 컨텐츠를 저장하거나 전송하는 기능을 직접 수행하지는 않고 해당 기능이 서버(100)에 의하여 수행되도록 할 수 있으며, 컨텐츠의 고유 식별자를 생성하거나 컨텐츠의 URL(혹은 URL 및 요청 헤더)과 고유 식별자 사이의 맵핑 정보를 관리하는 기능만을 수행하도록 구성될 수도 있다.
한편, 본 발명의 일 실시예에 따르면, 마스터 노드(200)는 서버(100)와 전송 노드(300) 사이의 통신 경로 상에 독립적으로 존재할 수도 있고, 서버(100)나 전송 노드(300) 내에 포함된 채 구성될 수도 있다. 일반적으로, 마스터 노드(200)가 독립적으로 존재하는 경우에는 컨텐츠의 전송 속도를 빠르게 한다는 점에서 유리하고, 마스터 노드(200)가 서버(100)나 전송 노드(300)에 포함된 채 구성되는 경우에는 보다 적은 수의 구성요소만으로 컨텐츠 전송 시스템을 간편하게 구성할 수 있다는 점에서 유리하다.
(3) 전송 노드의 동작
본 발명의 일 실시예에 따르면, 전송 노드(300)는 클라이언트(400)로부터의 컨텐츠 요청을 전송 받으면 컨텐츠 고유 식별자를 이용하여 해당 컨텐츠를 식별하여 클라이언트(400)에게 해당 컨텐츠를 전송하는 기능을 수행할 수 있다. 보다 구체적으로 설명하면 다음과 같다.
먼저, 본 발명의 일 실시예에 따르면, 전송 노드(300)는 URL(혹은 URL 및 요청 헤더)이 아닌 컨텐츠 고유 식별자를 기준으로 하여 컨텐츠를 식별할 수 있는데, 클라이언트(400)로부터 전송 받은 컨텐츠에 대한 요청에는 해당 컨텐츠의 URL(혹은 URL 및 요청 헤더)에 관한 정보만이 포함되어 있는 것이 일반적이기 때문에, 전송 노드(300)는 컨텐츠의 URL(혹은 URL 및 요청 헤더)과 고유 식별자 사이의 맵핑 정보를 관리하는 마스터 노드(200)에게 클라이언트(400)로부터 요청 받은 컨텐츠의 URL(혹은 URL 및 요청 헤더)에 대응되는 고유 식별자를 전송해 달라는 요청을 할 수 있다.
다음으로, 본 발명의 일 실시예에 따르면, 전송 노드(300)는 컨텐츠의 URL(혹은 URL 및 요청 헤더)에 대응되는 고유 식별자에 관한 정보를 마스터 노드(200)로부터 전송 받을 수 있다. 또한, 전송 노드(300)는 마스터 노드(200)로부터 전송 받은 고유 식별자에 관한 정보를 참조로 하여 자신이 해당 컨텐츠를 가지고 있는지(즉, 저장하고 있는지) 여부를 판단할 수 있고, 자신이 해당 컨텐츠를 가지고 있다고 판단되는 경우에 자신이 가지고 있는 해당 컨텐츠를 클라이언트(400)에게 전송할 수 있고 자신이 해당 컨텐츠를 가지고 있지 않다고 판단되는 경우에는 마스터 노드(200)로부터 해당 컨텐츠를 전송 받고 이를 다시 클라이언트(400)에게 전송할 수 있다.
한편, 본 발명의 다른 실시예에 따르면, 전송 노드(300)는 마스터 노드(200)에게 컨텐츠의 고유 식별자에 관한 정보와 해당 컨텐츠 자체를 모두 전송하여 줄 것을 요청할 수 있고 마스터 노드(200)로부터 컨텐츠의 고유 식별자에 관한 정보와 해당 컨텐츠 자체를 구성하는 데이터를 모두 전송 받을 수 있다. 예를 들면, 전송 노드(300)와 마스터 노드(200)가 HTTP 패킷을 통해 통신을 하는 경우에 컨텐츠 고유 식별자에 관한 정보를 포함하는 헤더를 먼저 전송 받은 후에 컨텐츠 자체를 구성하는 데이터를 나중에 전송 받을 수 있다. 즉, 전송 노드(300)는 우선 마스터 노드(200)로부터 컨텐츠의 고유 식별자에 관한 정보만을 전송 받아 해당 컨텐츠를 자신이 가지고 있는지 여부를 판단한 후에, 만약 자신이 해당 컨텐츠를 가지고 있는 것으로 판단되면 마스터 노드(200)와의 세션을 종료한 후 자신이 가지고 있는 해당 컨텐츠를 클라이언트(400)에게 전송할 수 있고, 만약 자신이 해당 컨텐츠를 가지고 있지 않은 것으로 판단되면 마스터 노드(200)로부터 해당 컨텐츠를 전송 받아 이를 자신의 저장 장치에 저장하는 것과 함께 클라이언트(400)에게 전송할 수 있다.
한편, 본 발명의 다른 실시예에 따르면, 전송 노드(300)가 마스터 노드(200)로부터 컨텐츠의 고유 식별자에 관한 정보를 전송 받지 못하고 클라이언트(400)로부터의 요청에 포함된 URL(혹은 URL 및 요청 헤더)에 관한 정보에 대응되는 컨텐츠만을 전송 받을 수 있는 경우에, 전송 노드(300)는 스스로 해당 컨텐츠의 고유 식별자를 생성하고 해당 컨텐츠를 클라이언트(400)에게 전송할 수 있다.
한편, 본 발명의 다른 실시예에 따르면, 컨텐츠 고유 식별자가 컨텐츠를 구성하는 소정 크기의 최초 데이터에 기초하여 생성된 경우에, 전송 노드(300)는 자신이 가지고 있는 컨텐츠의 고유 식별자와 마스터 노드(200)로부터 전송 받고 있는 컨텐츠를 구성하는 최초 데이터를 비교함으로써 자신이 마스터 노드(200)로부터 전송 받고 있는 컨텐츠를 가지고 있는지 여부를 판단할 수 있으며, 판단 결과 자신이 해당 컨텐츠를 가지고 있는 것으로 판단되면 마스터 노드(200)와의 세션을 종료하고 자신이 가지고 있는 해당 컨텐츠를 클라이언트(400)에게 전송할 수 있는데, 이로써 마스터 노드(200)로부터 컨텐츠 전체를 전송 받을 필요가 없게 되므로 컨텐츠 전송 효율을 높일 수 있게 된다.
한편, 본 발명의 다른 실시예에 따르면, 전송 노드(300)는 보조적으로 컨텐츠의 URL(혹은 URL 및 요청 헤더)을 식별자로 이용하여 컨텐츠를 식별하고 전송하는 기능을 수행할 수도 있다. 구체적으로, 전송 노드(300)는 URL(혹은 URL 및 요청 헤더)만을 식별자를 사용하여도 컨텐츠를 정상적으로 식별할 수 있는 것으로 판단된 컨텐츠(관리자 등에 의하여 지정될 수 있음)에 대하여는 URL(혹은 URL 및 요청 헤더)을 식별자로 하여 컨텐츠를 식별할 수 있다. 만약 전송 노드(300)가 클라이언트(400)로부터 요청된 컨텐츠를 저장하고 있다면 마스터 노드(200)로부터 컨텐츠 고유 식별자나 컨텐츠 자체를 전송 받을 필요 없이 URL(혹은 URL 및 요청 헤더)만을 이용하여 자신의 저장 장치에 저장되어 있는 컨텐츠를 식별하고 이렇게 식별된 컨텐츠를 바로 클라이언트(400)에게 전송할 수 있으므로, 컨텐츠 전송 효율을 향상시킬 수 있게 된다.
도 4 내지 도 7은 본 발명의 일 실시예에 따라 컨텐츠를 전송하는 과정을 예시적으로 나타내는 도면이다.
먼저, 도 4에서, 클라이언트(400)가 컨텐츠를 요청하면(S410), 전송 노드(300)는 클라이언트(400)로부터 요청된 컨텐츠의 URL(혹은 URL 및 요청 헤더)에 관한 정보를 마스터 노드(200)에 전송하면서 대응되는 컨텐츠 고유 식별자를 전송해 달라는 요청을 할 수 있다(S420). 이에 따라, 마스터 노드(200)는 자신이 관리하고 있는 URL(혹은 URL 및 요청 헤더)과 컨텐츠 고유 식별자 사이의 맵핑 정보를 참조로 하여 해당 컨텐츠의 URL(혹은 URL 및 요청 헤더)에 대응되는 고유 식별자를 식별하고 이를 전송 노드(300)에게 전송할 수 있고(S430), 전송 노드(300)는 마스터 노드(200)로부터 전송 받은 컨텐츠 고유 식별자를 이용하여 자신이 저장하고 있는 컨텐츠 중 해당 컨텐츠를 식별하고 이렇게 식별된 해당 컨텐츠를 클라이언트(400)에게 전송할 수 있다(S440).
다음으로, 도 5에서, 클라이언트(400)가 컨텐츠를 요청하면(S510), 전송 노드(300)는 클라이언트(400)로부터 요청된 컨텐츠의 URL(혹은 URL 및 요청 헤더)에 관한 정보를 마스터 노드(200)에 전송하면서 대응되는 컨텐츠 고유 식별자를 전송해 달라는 요청을 할 수 있다(S520). 이에 따라, 마스터 노드(200)는 자신이 관리하고 있는 URL(혹은 URL 및 요청 헤더)과 컨텐츠 고유 식별자 사이의 맵핑 정보를 참조로 하여 해당 컨텐츠의 URL(혹은 URL 및 요청 헤더)에 대응되는 고유 식별자를 가지고 있지 않은 것으로 판단될 경우 서버(100)에게 해당 컨텐츠를 전송하여 줄 것으로 요청할 수 있다(S530). 이에 따라, 서버(100)는 마스터 노드(200)에게 해당 컨텐츠를 전송해 줄 수 있고(S540), 마스터 노드는 서버(100)로부터 전송 받은 해당 컨텐츠를 이용하여 해당 컨텐츠의 고유 식별자를 생성하고 이렇게 생성된 컨텐츠 고유 식별자를 전송 노드(300)에게 전송할 수 있으며(S550), 전송 노드(300)는 마스터 노드(200)로부터 전송 받은 컨텐츠 고유 식별자를 이용하여 자신이 저장하고 있는 컨텐츠 중 해당 컨텐츠를 식별하고 이렇게 식별된 해당 컨텐츠를 클라이언트(400)에게 전송할 수 있다(S560).
다음으로, 도 6에서, 클라이언트(400)가 컨텐츠를 요청하면(S610), 전송 노드(300)는 클라이언트(400)로부터 요청된 컨텐츠의 URL(혹은 URL 및 요청 헤더)에 관한 정보를 마스터 노드(200)에 전송하면서 대응되는 컨텐츠 고유 식별자를 전송해 달라는 요청을 할 수 있다(S620). 이에 따라, 마스터 노드(200)는 자신이 관리하고 있는 URL(혹은 URL 및 요청 헤더)과 컨텐츠 고유 식별자 사이의 맵핑 정보를 참조로 하여 해당 컨텐츠의 URL(혹은 URL 및 요청 헤더)에 대응되는 고유 식별자를 식별하고 이를 전송 노드(300)에게 전송할 수 있고(S630), 전송 노드(300)는 마스터 노드(200)로부터 전송 받은 컨텐츠 고유 식별자를 이용하여 자신이 저장하고 있는 컨텐츠 중 해당 컨텐츠를 식별하고 만약 자신이 해당 컨텐츠를 저장하고 있지 않은 것으로 판단되면, 마스터 노드(200)에게 해당 컨텐츠를 전송해 줄 것을 요청할 수 있다(S640). 이에 따라, 마스터 노드(200)는 해당 컨텐츠를 전송 노드(300)에게 전송해 줄 수 있고(S650), 전송 노드(200)는 마스터 노드(300)로부터 전송 받은 해당 컨텐츠를 자신의 저장 장치에 저장하는 것과 함께 클라이언트(400)에게 전송할 수 있다(S660).
다음으로, 도 7에서, 클라이언트(400)가 컨텐츠를 요청하면(S710), 전송 노드(300)는 클라이언트(400)로부터 요청된 컨텐츠의 URL(혹은 URL 및 요청 헤더)에 관한 정보를 마스터 노드(200)에 전송하면서 대응되는 컨텐츠 고유 식별자를 전송해 달라는 요청을 할 수 있다(S720). 이에 따라, 마스터 노드(200)는 자신이 관리하고 있는 URL(혹은 URL 및 요청 헤더)과 컨텐츠 고유 식별자 사이의 맵핑 정보를 참조로 하여 해당 컨텐츠의 URL(혹은 URL 및 요청 헤더)에 대응되는 고유 식별자를 가지고 있지 않은 것으로 판단될 경우 서버(100)에게 해당 컨텐츠를 전송하여 줄 것으로 요청할 수 있다(S730). 이에 따라, 서버(100)는 마스터 노드(200)에게 해당 컨텐츠를 전송해 줄 수 있고(S740), 마스터 노드는 서버(100)로부터 전송 받은 해당 컨텐츠를 이용하여 해당 컨텐츠의 고유 식별자를 생성하고 이렇게 생성된 컨텐츠 고유 식별자를 전송 노드(300)에게 전송할 수 있으며(S750), 전송 노드(300)는 마스터 노드(200)로부터 전송 받은 컨텐츠 고유 식별자를 이용하여 자신이 저장하고 있는 컨텐츠 중 해당 컨텐츠를 식별하고 만약 자신이 해당 컨텐츠를 저장하고 있지 않은 것으로 판단되면, 마스터 노드(200)에게 해당 컨텐츠를 전송해 줄 것을 요청할 수 있다(S760). 이에 따라, 마스터 노드(200)는 해당 컨텐츠를 전송 노드(300)에게 전송해 줄 수 있고(S770), 전송 노드(200)는 마스터 노드(300)로부터 전송 받은 해당 컨텐츠를 자신의 저장 장치에 저장하는 것과 함께 클라이언트(400)에게 전송할 수 있다(S780).
(4) 무선 통신망에서의 핸드오버 지원
클라이언트(400)가 물리적으로 움직일 수 있는 무선 통신망에서는 클라이언트(400)의 통신망(10) 상에서의 위치가 변하는 현상, 즉, 핸드오버(Hand-Over)가 발생할 수 있다.
본 발명의 일 실시예에 따르면, 컨텐츠 고유 식별자를 이용하여 컨텐츠를 식별함으로써 핸드오버를 효과적으로 처리할 수 있게 된다.
도 8은 본 발명의 일 실시예에 따라 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송함에 있어서 핸드오버를 지원하는 과정을 예시적으로 나타내는 도면이다.
도 8을 참조하면, (i) 클라이언트(400)가 제1 전송 노드(300A)와 연결되어 있는 제1 통신망(20A)에 속해 있던 상태에서 핸드오버된 결과 제2 전송 노드(300B)와 연결되어 있는 제2 통신망(20B)에 속하게 되는 경우와 (ii) 클라이언트(400)가 제1 전송 노드(300A)와 연결되어 있는 제1 통신망(20A)에 속해 있던 상태에서 핸드오버된 결과 아무런 전송 노드와도 연결되어 있지 않은 제3 통신망(20C)에 속하게 되는 경우를 가정할 수 있다. 위의 두 가지 경우에 있어서 핸드오버를 지원하는 과정에 대하여 보다 구체적으로 설명하면 다음과 같다.
먼저, (i) 클라이언트(400)가 핸드오버된 결과 제2 전송 노드(300B)와 연결되는 제2 통신망(20A)에 속하게 되는 경우를 가정할 수 있다. 이러한 경우, 클라이언트(400)는 제1 전송 노드(300A)로부터 컨텐츠를 전송 받던 것을 중단하고 제2 전송 노드(300B)로부터 컨텐츠를 전송 받는 것이 전송 효율 측면에서 유리할 수 있다. URL(혹은 URL 및 요청 헤더)을 이용하여 컨텐츠를 식별하는 종래 기술에 따르면 제1 전송 노드(300A)로부터 전송 받던 컨텐츠와 제2 전송 노드(300B)로부터 전송 받게 될 컨텐츠가 서로 동일하다는 보장을 할 수 없었지만, 컨텐츠 고유 식별자를 이용하여 컨텐츠를 식별하는 본 발명에 따르면 클라이언트(400)가 핸드오버 이전에 연결되었던 제1 전송 노드(300A)로부터 전송 받던 컨텐츠와 동일한 컨텐츠를 핸드오버 이후에 연결되는 제2 전송 노드(300B)로부터 전송 받을 수 있게 된다. 물론, 이는 제1 전송 노드(300A)와 제2 전송 노드(300B)가 모두 해당 컨텐츠를 가지고 있다는 가정 하에 가능한 것이다. 컨텐츠를 전송하는 도중에 발생하는 핸드오버를 처리하는 과정에 대하여 보다 구체적으로 살펴보면 다음과 같다.
본 발명의 일 실시예에 따르면, 제1 통신망(20A)에 포함된 클라이언트(400)가 제1 전송 노드(300A)에 대하여 컨텐츠를 요청할 수 있다. 이에 제1 전송 노드(300A)는 클라이언트(400)로부터의 컨텐츠 요청에 포함되어 있는 해당 컨텐츠의 URL(혹은 URL 및 요청 헤더)에 관한 정보를 마스터 노드(200)에 전송하여 해당 컨텐츠의 고유 식별자에 관한 정보를 전송하여 줄 것을 요청할 수 있다. 다음으로, 제1 전송 노드(300A)는 마스터 노드(200)로부터 전송 받은 해당 컨텐츠의 고유 식별자에 관한 정보를 이용하여 해당 컨텐츠를 식별할 수 있고, 이렇게 식별된 해당 컨텐츠를 클라이언트(400)에게 전송할 수 있다. 한편, 제1 전송 노드(300A)가 클라이언트(400)에게 해당 컨텐츠를 전송하는 중에 클라이언트(400)에서 핸드오버가 발생함에 따라 클라이언트(400)가 제1 전송 노드(300A)와 연결되는 제1 통신망(20A)에서 제2 전송 노드(300B)와 연결되는 제2 통신망(30A)으로 이동하게 될 수 있다. 이때, 마스터 노드(200)는 클라이언트(400)에서 핸드오버가 발생하였음을 감지하고, 클라이언트(400)가 제1 전송 노드(300A)로부터 전송 받고 있던 컨텐츠를 클라이언트(400)에게 전송하여 줄 것을 제2 전송 노드(300B)에게 지시할 수 있다. 이에 따라, 제2 전송 노드(300B)가 해당 컨텐츠를 가지고 있는 경우에는 제2 전송 노드(300B)가 자신이 가지고 있는 해당 컨텐츠를 클라이언트(400)에게 전송할 수 있고, 제2 전송 노드(300B)가 해당 컨텐츠를 가지고 있지 않은 경우에는 제2 전송 노드(300B)가 마스터 노드(200)로부터 해당 컨텐츠를 전송 받아 이를 다시 클라이언트(400)에게 전송할 수 있다.
다음으로, (ii) 클라이언트(400)가 핸드오버된 결과 아무런 전송 노드와도 연결되어 있지 않은 제3 통신망(20C)에 속하게 되는 경우를 가정할 수 있다. 이러한 경우, 마스터 노드(200)는 클라이언트(400)에서 핸드오버가 발생하였음을 감지하고, 클라이언트(400)가 제1 전송 노드(300A)로부터 전송 받고 있던 컨텐츠를 클라이언트(400)에게 전송할 수 있다. 구체적으로, 마스터 노드(200)가 해당 컨텐츠를 가지고 있는 경우에는 자신이 가지고 있는 해당 컨텐츠를 클라이언트(400)에게 전송하고, 마스터 노드(400)가 해당 컨텐츠를 가지고 있지 않은 경우에는 마스터 노드(200)가 서버(100)부터 해당 컨텐츠를 전송 받아 이를 다시 클라이언트(400)에게 전송할 수 있다.
한편, 본 발명의 다른 실시예에 따르면, 핸드오버된 결과 클라이언트(400)와 연결된 제2 전송 노드(300B)가 클라이언트(400)가 제1 전송 노드(300A)로부터 전송 받고 있던 컨텐츠를 가지고 있지 않은 경우 또는 핸드오버된 결과 클라이언트가 아무런 전송 노드와도 연결되어 있지 않은 경우에, 마스터 노드(200)가 터널링 기술 등의 네트워크 기술을 이용하여 제1 전송 노드(300A)로부터 클라이언트(400)로의 해당 컨텐츠의 전송이 계속해서 이어지도록 할 수 있다.
예를 들어 터널링(tunneling) 기술이 이용되는 경우에 대하여 구체적으로 설명하면 다음과 같다. 컨텐츠가 전송되고 있는 중에 클라이언트(400)에서 핸드오버가 발생하고 핸드오버 이후 클라이언트(400)와 연결되는 제2 전송 노드(300B)가 클라이언트(400)가 제1 전송 노드(300A)로부터 전송 받고 있던 컨텐츠를 가지고 있지 않은 경우, 마스터 노드(200)는 터널링 기술을 이용하여 클라이언트(400)가 핸드오버 이전에 연결되어 있던 제1 전송 노드(300A)에 대한 터널을 열 수 있다. 이때, 마스터 노드(200)는 클라이언트(400)로부터 전송 받은 패킷(즉, 컨텐츠 요청에 관한 패킷)이 터널을 통하여 제1 전송 노드(300A)에게 전송되도록 할 수 있으며, 이에 대응하여 제1 전송 노드(300A)는 클라이언트(400)로부터의 요청에 응답하는 패킷(즉, 요청된 컨텐츠를 구성하는 패킷)를 터널을 통해 마스터 노드(200)에게 전송할 수 있다. 그리고, 제1 전송 노드(300A)와 마스터 노드(200) 사이에 형성된 터널을 통하여 제1 전송 노드(300A)로부터 터널링되어 마스터 노드(200)로 전송된 패킷(즉, 컨텐츠를 구성하는 패킷)은 제2 전송 노드(300B) 또는 클라이언트(400)에게 전송될 수 있다. 이와 같이, 본 발명의 다른 실시예에 따르면, 클라이언트(400)에서 핸드오버가 발생하더라도 클라이언트(400)는 핸드오버가 발생하기 되기 전에 연결되어 있던 제1 전송 노드(300A)로부터 계속해서 컨텐츠를 전송 받을 수 있게 된다.
다만, 본 발명에서 제1 전송 노드(300A)로부터 클라이언트(400)로의 컨텐츠의 전송이 계속해서 이어지도록 하기 위하여 이용되는 기술이 반드시 터널링 기술에 한정되는 것은 아니며, 본 발명의 목적을 달성할 수 있는 범위 내에서 얼마든지 다른 기술이 적용될 수 있음을 밝혀 둔다.
(4) 확장적인 실시예
이하에서는, 본 발명의 확장적인 실시예에 대하여 살펴보기로 한다.
본 발명의 다른 실시예에 따르면, 클라이언트(400)가 컨텐츠를 요청함에 있어서 해당 컨텐츠의 URL(혹은 URL 및 요청 헤더)뿐만 아니라 고유 식별자에 관한 정보를 함께 제공할 수 있다. 예를 들면, 클라이언트(400)는 URL이 "A"이고 헤더 값이 "B"이며 컨텐츠 고유 식별자가 "X"인 컨텐츠를 전송하여 줄 것을 요청할 수 있는데, 이에 따라 전송 노드(300)는 마스터 노드(200)에게 해당 컨텐츠의 고유 식별자를 요청할 필요 없이 자신이 가지고 있는 컨텐츠 중 컨텐츠 고유 식별자가 "X"인 컨텐츠를 식별하고 이렇게 식별된 컨텐츠를 클라이언트(400)에게 전송할 수 있다. 물론, 전송 노드(300)가 컨텐츠 고유 식별자가 "X"인 컨텐츠를 가지고 있지 않다면 마스터 노드(200) 또는 서버(100)로부터 해당 컨텐츠를 전송 받아 클라이언트에게 전달할 수 있을 것이다.
한편, 본 발명의 다른 실시예에 따르면, 서버(100)는 앞서 설명한 마스터 노드의 적어도 일부 기능을 수행하도록 구성될 수 있다. 구체적으로, 서버(100)는 컨텐츠를 전송하는 기본적인 기능 이외에도 컨텐츠의 고유 식별자를 생성하는 기능, 컨텐츠의 URL(혹은 URL 및 요청 헤더)과 고유 식별자 사이의 맵핑 정보를 관리하는 기능 등을 더 수행할 수 있다. 이러한 경우, 전송 노드(300)는 마스터 노드(200)와 통신할 필요 없이 서버(100)와 직접 통신하여 서버(100)로부터 컨텐츠 고유 식별자 또는 컨텐츠 자체를 직접 전송 받을 수 있게 되며, 이로써 컨텐츠 전송 효율을 높일 수 있게 된다.
한편, 본 발명의 다른 실시예에 따르면, 마스터 노드(200)의 컨텐츠 전송에 관한 기능을 서버(100)가 수행하도록 하고 마스터 노드(200)의 컨텐츠 고유 식별자 생성 및 관리에 관한 기능을 전송 노드(300)가 수행하도록 함으로써 별개의 마스터 노드(200)를 이용하지 않고 컨텐츠 전송 시스템을 구성할 수 있다. 이러한 경우, 보다 적은 수의 구성요소만으로 컨텐츠 전송 시스템을 간편하게 구성할 수 있다는 점에서 유리하다.
한편, 이상의 실시예에 있어서, 마스터 노드(200)와 전송 노드(300)가 계층적인 관계를 가진 채로 서버(100)와 클라이언트(400) 사이의 통신 경로 상에 위치하도록 함으로써 다음과 같은 유리한 효과가 달성될 수 있다.
먼저, 통신망(10) 상에서 클라이언트(400)와 가까운 거리에 위치하는 전송 노드(200)가 자신이 가지고 있는 컨텐츠를 직접 클라이언트(400)에게 전송하고 자신이 가지고 있지 않은 컨텐츠는 마스터 노드(200)로부터 전송 받아 클라이언트(400)에게 전달함으로써 컨텐츠 전송 속도를 가속화할 수 있게 된다. 이때, 마스터 노드(300)의 저장 공간을 상대적으로 크게 설정하고 전송 노드(200)의 저장 공간을 상대적으로 작게 설정하여 복수 개의 전송 노드(300)가 마스터 노드(200)의 저장 공간에 저장되어 있는 컨텐츠를 공유할 수 있도록 하면, 마스터 노드(200)가 없는 경우와 비교할 때, 전체 시스템의 저장 공간을 마련하는 데에 소요되는 비용을 낮추면서도 컨텐츠 저장 효율을 높일 수 있게 된다.
다음으로, 서버(100)와 마스터 노드(200) 사이의 통신이나 전송 노드(300)와 클라이언트(400) 사이의 통신에서는 통신 표준에 따라야 하지만, 마스터 노드(200)와 전송 노드(300) 사이의 통신에서는 통신 표준에 따를 필요 없이 독자적인 통신 기술을 적용할 수 있다. 예를 들면, 만약 서버(100)와 클라이언트(400) 사이에 병목 구간이 존재한다면 해당 병목 구간의 전단 후단에 각각 마스터 노드와 전송 노드를 위치시키고 마스터 노드와 전송 노드 사이의 통신에 다양한 컨텐츠 압축 기술(예를 들면, 실시간 압축 기술, 딕셔너리 이용한 압축 기술 등)을 적용할 수 있는데, 이로써 컨텐츠 전송의 효율을 높일 수 있게 되는 효과가 달성된다.
이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.
10: 통신망
20A: 제1 통신망
20B: 제2 통신망
20C: 제3 통신망
100: 서버
200: 마스터 노드
210: 컨텐츠 고유 식별자 관리부
220: 컨텐츠 전송 처리부
230: 핸드오버 처리부
240: 송수신부
300: 전송 노드
310: 컨텐츠 고유 식별자 관리부
320: 컨텐츠 전송 처리부
330: 핸드오버 처리부
340: 송수신부
300A: 제1 전송 노드
300B: 제2 전송 노드
400: 클라이언트
20A: 제1 통신망
20B: 제2 통신망
20C: 제3 통신망
100: 서버
200: 마스터 노드
210: 컨텐츠 고유 식별자 관리부
220: 컨텐츠 전송 처리부
230: 핸드오버 처리부
240: 송수신부
300: 전송 노드
310: 컨텐츠 고유 식별자 관리부
320: 컨텐츠 전송 처리부
330: 핸드오버 처리부
340: 송수신부
300A: 제1 전송 노드
300B: 제2 전송 노드
400: 클라이언트
Claims (39)
- 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 방법으로서,
(a) 전송 노드(delivery node)가, 클라이언트로부터 컨텐츠에 대한 요청을 수신하고,
(b) 상기 전송 노드가, 상기 요청에 포함되는 상기 컨텐츠의 URL 및 요청 헤더에 관한 정보를 서버와 상기 전송 노드 사이에 위치하는 마스터 노드(master node)에게 전송하는 단계,
(c) 상기 전송 노드가, 상기 컨텐츠의 URL 및 요청 헤더에 관한 정보와 대응되는 고유 식별자에 관한 정보를 상기 마스터 노드로부터 전송 받고, 상기 전송 받은 고유 식별자에 관한 정보를 참조로 하여 상기 컨텐츠가 상기 전송 노드에 저장되어 있는지 여부를 판단하는 단계,
(d) 상기 컨텐츠가 상기 전송 노드에 저장되어 있는 것으로 판단되면 상기 전송 노드가 상기 전송 노드에 저장되어 있는 상기 컨텐츠를 상기 클라이언트에게 전송하고, 상기 컨텐츠가 상기 전송 노드에 저장되어 있지 않은 것으로 판단되면 상기 전송 노드가 상기 마스터 노드로부터 상기 컨텐츠를 전송 받아 상기 클라이언트에게 전송하는 단계, 및
(e) 상기 클라이언트에서 핸드오버(Hand-Over)가 발생하면, 상기 전송 노드가, 상기 핸드오버 이후에 상기 클라이언트와 연결되는 제2 전송 노드에 상기 고유 식별자에 대응되는 상기 컨텐츠가 저장되어 있는지 여부에 기초하여, 상기 전송 노드에 저장되어 있는 상기 컨텐츠를 상기 클라이언트 또는 상기 제2 전송 노드에게 전송할지 여부를 결정하는 단계
를 포함하고,
상기 컨텐츠의 고유 식별자는 상기 컨텐츠의 내용을 구성하는 데이터 중 적어도 일부에 기초하여 생성되고,
상기 마스터 노드는, 적어도 하나의 컨텐츠의 URL 및 요청 헤더와 상기 적어도 하나의 컨텐츠의 고유 식별자 사이의 맵핑을 수행하는 방법. - 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 방법으로서,
(a) 서버와 전송 노드(delivery node) 사이에 위치하는 마스터 노드(master node)가 상기 전송 노드로부터 클라이언트에 의하여 요청된 컨텐츠의 URL 및 요청 헤더에 관한 정보를 수신하는 단계,
(b) 상기 마스터 노드가, URL 및 요청 헤더와 고유 식별자 사이의 맵핑 정보를 참조로 하여, 상기 컨텐츠의 URL 및 요청 헤더에 관한 정보와 대응되는 고유 식별자를 결정하고 상기 결정된 고유 식별자를 상기 전송 노드에게 전송하는 단계,
(c) 상기 컨텐츠가 상기 전송 노드에 저장되어 있지 않은 것으로 판단되면 상기 마스터 노드가 상기 컨텐츠를 상기 전송 노드에게 전송하는 단계, 및
(d) 상기 클라이언트에서 핸드오버(Hand-Over)가 발생하면, 상기 마스터 노드가, 상기 핸드오버 이후에 상기 클라이언트와 연결되는 제2 전송 노드에 상기 고유 식별자에 대응되는 상기 컨텐츠가 저장되어 있는지 여부에 기초하여, 상기 핸드오버 이전에 상기 클라이언트와 연결되어 있던 제1 전송 노드에 저장되어 있는 상기 컨텐츠가 상기 클라이언트 또는 상기 제2 전송 노드에게 전송되도록 할지 여부를 결정하는 단계
를 포함하고,
상기 컨텐츠의 고유 식별자는 상기 컨텐츠의 내용을 구성하는 데이터 중 적어도 일부에 기초하여 생성되고,
상기 마스터 노드는, 적어도 하나의 컨텐츠의 URL 및 요청 헤더와 상기 적어도 하나의 컨텐츠의 고유 식별자 사이의 맵핑을 수행하는 방법. - 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 방법으로서,
(a) 전송 노드(delivery node)가, 클라이언트로부터 컨텐츠에 대한 요청을 수신하고,
(b) 상기 전송 노드가, 상기 요청에 포함되는 상기 컨텐츠의 URL 및 요청 헤더에 관한 정보를 서버와 상기 전송 노드 사이에 위치하는 마스터 노드(master node)에게 전송하는 단계,
(c) 상기 마스터 노드(master node)가 상기 전송 노드로부터 상기 컨텐츠의 URL 및 요청 헤더에 관한 정보를 수신하는 단계,
(d) 상기 마스터 노드가, URL 및 요청 헤더와 고유 식별자 사이의 맵핑 정보를 참조로 하여, 상기 컨텐츠의 URL 및 요청 헤더에 관한 정보와 대응되는 고유 식별자를 결정하고 상기 결정된 고유 식별자를 상기 전송 노드에게 전송하는 단계,
(e) 상기 전송 노드가, 상기 마스터 노드로부터 전송된 상기 결정된 고유 식별자에 관한 정보를 참조로 하여 상기 컨텐츠가 상기 전송 노드에 저장되어 있는지 여부를 판단하는 단계,
(f) 상기 컨텐츠가 상기 전송 노드에 저장되어 있는 것으로 판단되면 상기 전송 노드가 상기 전송 노드에 저장되어 있는 상기 컨텐츠를 상기 클라이언트에게 전송하고, 상기 컨텐츠가 상기 전송 노드에 저장되어 있지 않은 것으로 판단되면 상기 마스터 노드가 상기 컨텐츠를 상기 전송 노드에게 전송하고 상기 전송 노드가 상기 마스터 노드로부터 전송 받은 컨텐츠를 상기 클라이언트에게 전송하는 단계, 및
(g) 상기 클라이언트에서 핸드오버(Hand-Over)가 발생하면, 상기 마스터 노드가, 상기 핸드오버 이후에 상기 클라이언트와 연결되는 제2 전송 노드에 상기 고유 식별자에 대응되는 상기 컨텐츠가 저장되어 있는지 여부에 기초하여, 상기 핸드오버 이전에 상기 클라이언트와 연결되어 있던 제1 전송 노드 또는 상기 마스터 노드에 저장되어 있는 상기 컨텐츠가 상기 클라이언트 또는 상기 제2 전송 노드에게 전송되도록 할지 여부를 결정하는 단계
를 포함하고,
상기 컨텐츠의 고유 식별자는 상기 컨텐츠의 내용을 구성하는 데이터 중 적어도 일부에 기초하여 생성되고,
상기 마스터 노드는, 적어도 하나의 컨텐츠의 URL 및 요청 헤더와 상기 적어도 하나의 컨텐츠의 고유 식별자 사이의 맵핑을 수행하는 방법. - 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 방법으로서,
(a) 서버와 클라이언트 사이에 위치하는 노드(node)가, 상기 클라이언트로부터 컨텐츠에 대한 요청을 수신하는 단계,
(b) 상기 노드가, URL 및 요청 헤더와 고유 식별자 사이의 맵핑 정보를 참조로 하여, 상기 요청에 포함되는 상기 컨텐츠의 URL 및 요청 헤더에 관한 정보와 대응되는 고유 식별자를 결정하는 단계,
(c) 상기 노드가, 상기 컨텐츠의 URL 및 요청 헤더에 관한 정보와 대응되는 고유 식별자에 관한 정보를 참조로 하여 상기 컨텐츠가 상기 노드에 저장되어 있는지 여부를 판단하는 단계,
(d) 상기 컨텐츠가 상기 노드에 저장되어 있는 것으로 판단되면 상기 노드가 상기 노드에 저장되어 있는 상기 컨텐츠를 상기 클라이언트에게 전송하고, 상기 컨텐츠가 상기 노드에 저장되어 있지 않은 것으로 판단되면 상기 노드가 상기 서버로부터 상기 컨텐츠를 전송 받아 상기 클라이언트에게 전송하는 단계, 및
(e) 상기 클라이언트에서 핸드오버(Hand-Over)가 발생하면, 상기 노드가, 상기 핸드오버 이후에 상기 클라이언트와 연결되는 제2 노드에 상기 고유 식별자에 대응되는 상기 컨텐츠가 저장되어 있는지 여부에 기초하여, 상기 노드에 저장되어 있는 상기 컨텐츠를 상기 클라이언트 또는 상기 제2 노드에게 전송할지 여부를 결정하는 단계
를 포함하고,
상기 컨텐츠의 고유 식별자는 상기 컨텐츠의 내용을 구성하는 데이터 중 적어도 일부에 기초하여 생성되고,
상기 노드는, 적어도 하나의 컨텐츠의 URL 및 요청 헤더와 상기 적어도 하나의 컨텐츠의 고유 식별자 사이의 맵핑을 수행하는 방법. - 삭제
- 제1항 내지 제4항 중 어느 한 항에 있어서,
상기 컨텐츠의 고유 식별자는 상기 컨텐츠를 구성하는 데이터 중 기설정된 크기의 최초 데이터에 기초하여 생성되는 방법. - 제1항 내지 제4항 중 어느 한 항에 있어서,
상기 컨텐츠의 고유 식별자는 상기 컨텐츠의 크기에 관한 정보를 포함하는 방법. - 제1항 내지 제4항 중 어느 한 항에 있어서,
상기 컨텐츠의 고유 식별자는 상기 컨텐츠와 유일하게 대응될 확률이 기설정된 확률 이상인 방법. - 제1항 내지 제4항 중 어느 한 항에 있어서,
상기 컨텐츠의 고유 식별자는 MD4(Message Digest 4), MD5(Message Digest 5) 및 SHA(Secure Hash Algorithm) 중 적어도 하나의 알고리즘에 의하여 생성되는 방법. - 제1항 내지 제4항 중 어느 한 항에 있어서,
상기 클라이언트로부터 요청된 컨텐츠의 고유 식별자를 결정함에 있어서 상기 요청에 포함되는 상기 컨텐츠의 URL에 관한 정보 및 요청 헤더에 관한 정보가 모두 이용되는 방법. - 제1항에 있어서,
상기 (e) 단계에서,
상기 클라이언트에서 핸드오버(Hand-Over)가 발생하고 상기 제2 전송 노드에 상기 컨텐츠가 저장되어 있는 것으로 판단되면, 상기 전송 노드가, 상기 전송 노드에 저장되어 있는 상기 컨텐츠를 상기 클라이언트에게 전송하는 것을 중단하는 방법. - 제1항에 있어서,
상기 (e) 단계에서,
상기 클라이언트에서 핸드오버(Hand-Over)가 발생하고 상기 제2 전송 노드에 상기 컨텐츠가 저장되어 있지 않은 것으로 판단되면, 상기 전송 노드가, 상기 전송 노드에 저장되어 있는 상기 컨텐츠를 상기 클라이언트 또는 상기 제2 전송 노드에게 전송하는 방법. - 제2항에 있어서,
상기 (b) 단계에서,
상기 컨텐츠의 URL 및 요청 헤더에 관한 정보와 대응되는 고유 식별자가 상기 마스터 노드에 저장되어 있으면 상기 마스터 노드가 상기 마스터 노드에 저장되어 있는 고유 식별자를 상기 컨텐츠의 URL 및 요청 헤더에 관한 정보에 대응되는 고유 식별자로 결정하고, 상기 컨텐츠의 URL 및 요청 헤더에 관한 정보와 대응되는 고유 식별자가 상기 마스터 노드에 저장되어 있지 않으면 상기 마스터 노드가 상기 서버로부터 상기 컨텐츠의 URL 및 요청 헤더에 관한 정보에 대응되는 컨텐츠를 전송 받고 상기 전송된 컨텐츠에 기초하여 고유 식별자를 생성하고 상기 생성된 고유 식별자를 상기 컨텐츠의 URL 및 요청 헤더에 관한 정보에 대응되는 고유 식별자로 결정하는 방법. - 제13항에 있어서,
상기 (b) 단계에서,
상기 생성된 고유 식별자를 참조로 하여 상기 URL 및 요청 헤더와 고유 식별자 사이의 맵핑 정보를 갱신하는 방법. - 제2항에 있어서,
상기 (d) 단계에서,
상기 클라이언트에서 핸드오버(Hand-Over)가 발생하고 상기 제2 전송 노드에 상기 컨텐츠가 저장되어 있는 것으로 판단되면, 상기 마스터 노드가, 상기 제1 전송 노드에 저장되어 있는 컨텐츠가 상기 클라이언트에게 전송되는 것이 중단되도록 하고 상기 제2 전송 노드에 저장되어 있는 상기 컨텐츠가 상기 클라이언트에게 전송되도록 하는 방법. - 제2항에 있어서,
상기 (d) 단계에서,
상기 클라이언트에서 핸드오버(Hand-Over)가 발생하고 상기 제2 전송 노드에 상기 컨텐츠가 저장되어 있지 않은 것으로 판단되면, 상기 마스터 노드가, 상기 제1 전송 노드에 저장되어 있는 컨텐츠가 상기 클라이언트 또는 상기 제2 전송 노드에게 전송되도록 하는 방법. - 제3항에 있어서,
상기 (g) 단계에서,
상기 클라이언트에서 핸드오버(Hand-Over)가 발생하고 상기 제2 전송 노드에 상기 컨텐츠가 저장되어 있는 것으로 판단되면, 상기 마스터 노드가, 상기 제1 전송 노드에 저장되어 있는 상기 컨텐츠가 상기 클라이언트에게 전송되는 것이 중단되도록 하고, 상기 제2 전송 노드에 저장되어 있는 상기 컨텐츠가 상기 클라이언트에게 전송되도록 하는 방법. - 제3항에 있어서,
상기 (g) 단계에서,
상기 클라이언트에서 핸드오버(Hand-Over)가 발생하고 상기 제2 전송 노드에 상기 컨텐츠가 저장되어 있지 않은 것으로 판단되면, 상기 마스터 노드가, 상기 마스터 노드에 저장되어 있는 상기 컨텐츠를 상기 제2 전송 노드에게 전송하고 상기 마스터 노드로부터 상기 제2 전송 노드에게 전송된 상기 컨텐츠가 상기 클라이언트에게 전송되도록 하는 방법. - 제3항에 있어서,
상기 (g) 단계에서,
상기 클라이언트에서 핸드오버(Hand-Over)가 발생하고 상기 제2 전송 노드에 상기 컨텐츠가 저장되어 있지 않은 것으로 판단되면, 상기 마스터 노드가, 상기 제1 전송 노드에 저장되어 있는 상기 컨텐츠가 상기 클라이언트에게 전송되도록 하거나, 상기 제1 전송 노드에 저장되어 있는 컨텐츠가 상기 제2 전송 노드에게 전송되도록 하고 상기 제1 전송 노드로부터 상기 제2 전송 노드에게 전송된 상기 컨텐츠가 상기 클라이언트에게 전송되도록 하는 방법. - 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 시스템으로서,
클라이언트로부터 컨텐츠에 대한 요청을 수신하는 컨텐츠 요청 처리부,
상기 요청에 포함되는 상기 컨텐츠의 URL 및 요청 헤더에 관한 정보를 서버와 전송 노드(delivery node) 사이에 위치하는 마스터 노드(master node)에게 전송하고, 상기 컨텐츠의 URL 및 요청 헤더에 관한 정보와 대응되는 고유 식별자에 관한 정보를 상기 마스터 노드로부터 전송 받고, 상기 전송 받은 고유 식별자에 관한 정보를 참조로 하여 상기 컨텐츠가 상기 전송 노드에 저장되어 있는지 여부를 판단하고, 상기 컨텐츠가 상기 전송 노드에 저장되어 있는 것으로 판단되면 상기 전송 노드에 저장되어 있는 상기 컨텐츠를 상기 클라이언트에게 전송하고, 상기 컨텐츠가 상기 전송 노드에 저장되어 있지 않은 것으로 판단되면 상기 마스터 노드로부터 상기 컨텐츠를 전송 받아 상기 클라이언트에게 전송하는 컨텐츠 고유 식별자 관리부, 및
상기 클라이언트에서 핸드오버(Hand-Over)가 발생하면, 상기 핸드오버 이후에 상기 클라이언트와 연결되는 제2 전송 노드에 상기 고유 식별자에 대응되는 상기 컨텐츠가 저장되어 있는지 여부에 기초하여, 상기 전송 노드에 저장되어 있는 상기 컨텐츠를 상기 클라이언트 또는 상기 제2 전송 노드에게 전송할지 여부를 결정하는 핸드오버 처리부
를 포함하고,
상기 컨텐츠의 고유 식별자는 상기 컨텐츠의 내용을 구성하는 데이터 중 적어도 일부에 기초하여 생성되고,
상기 마스터 노드는, 적어도 하나의 컨텐츠의 URL 및 요청 헤더와 상기 적어도 하나의 컨텐츠의 고유 식별자 사이의 맵핑을 수행하는 시스템. - 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 시스템으로서,
전송 노드(delivery node)로부터 클라이언트에 의하여 요청된 컨텐츠의 URL 및 요청 헤더에 관한 정보를 수신하고, URL 및 요청 헤더와 고유 식별자 사이의 맵핑 정보를 참조로 하여, 상기 컨텐츠의 URL 및 요청 헤더에 관한 정보와 대응되는 고유 식별자를 결정하고 상기 결정된 고유 식별자를 상기 전송 노드에게 전송하는 컨텐츠 고유 식별자 관리부,
상기 컨텐츠가 상기 전송 노드에 저장되어 있지 않은 것으로 판단되면 상기 컨텐츠를 상기 전송 노드에게 전송하는 컨텐츠 요청 처리부, 및
상기 클라이언트에서 핸드오버(Hand-Over)가 발생하면, 상기 핸드오버 이후에 상기 클라이언트와 연결되는 제2 전송 노드에 상기 고유 식별자에 대응되는 상기 컨텐츠가 저장되어 있는지 여부에 기초하여, 상기 핸드오버 이전에 상기 클라이언트와 연결되어 있던 제1 전송 노드에 저장되어 있는 상기 컨텐츠가 상기 클라이언트 또는 상기 제2 전송 노드에게 전송되도록 할지 여부를 결정하는 핸드오버 처리부
를 포함하고,
상기 컨텐츠의 고유 식별자는 상기 컨텐츠의 내용을 구성하는 데이터 중 적어도 일부에 기초하여 생성되고,
상기 마스터 노드는, 적어도 하나의 컨텐츠의 URL 및 요청 헤더와 상기 적어도 하나의 컨텐츠의 고유 식별자 사이의 맵핑을 수행하고,
상기 시스템은 서버와 상기 전송 노드 사이에 위치하는 시스템. - 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 시스템으로서,
클라이언트로부터 컨텐츠에 대한 요청을 수신하고, 상기 요청에 포함되는 상기 컨텐츠의 URL 및 요청 헤더에 관한 정보를 마스터 노드(master node)에게 전송하고, 상기 마스터 노드로부터 전송된 상기 결정된 고유 식별자에 관한 정보를 참조로 하여 상기 컨텐츠가 전송 노드(delivery node)에 저장되어 있는지 여부를 판단하고, 상기 컨텐츠가 상기 전송 노드에 저장되어 있는 것으로 판단되면 상기 전송 노드에 저장되어 있는 상기 컨텐츠를 상기 클라이언트에게 전송하고, 상기 컨텐츠가 상기 전송 노드에 저장되어 있지 않은 것으로 판단되면 상기 마스터 노드로부터 전송 받은 컨텐츠를 상기 클라이언트에게 전송하는 전송 노드, 및
상기 전송 노드로부터 상기 컨텐츠의 URL 및 요청 헤더에 관한 정보를 수신하고, URL 및 요청 헤더와 고유 식별자 사이의 맵핑 정보를 참조로 하여, 상기 컨텐츠의 URL 및 요청 헤더에 관한 정보와 대응되는 고유 식별자를 결정하고 상기 결정된 고유 식별자를 상기 전송 노드에게 전송하고, 상기 컨텐츠가 상기 전송 노드에 저장되어 있지 않은 것으로 판단되면 상기 컨텐츠를 상기 전송 노드에게 전송하고, 서버와 상기 전송 노드 사이에 위치하는 마스터 노드
를 포함하고,
상기 컨텐츠의 고유 식별자는 상기 컨텐츠의 내용을 구성하는 데이터 중 적어도 일부에 기초하여 생성되고,
상기 마스터 노드는, 적어도 하나의 컨텐츠의 URL 및 요청 헤더와 상기 적어도 하나의 컨텐츠의 고유 식별자 사이의 맵핑을 수행하고,
상기 마스터 노드는, 상기 클라이언트에서 핸드오버(Hand-Over)가 발생하면, 상기 핸드오버 이후에 상기 클라이언트와 연결되는 제2 전송 노드에 상기 고유 식별자에 대응되는 상기 컨텐츠가 저장되어 있는지 여부에 기초하여, 상기 핸드오버 이전에 상기 클라이언트와 연결되어 있던 제1 전송 노드 또는 상기 마스터 노드에 저장되어 있는 상기 컨텐츠가 상기 클라이언트 또는 상기 제2 전송 노드에게 전송되도록 할지 여부를 결정하는 시스템. - 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 시스템으로서,
클라이언트로부터 컨텐츠에 대한 요청을 수신하는 컨텐츠 요청 처리부,
URL 및 요청 헤더와 고유 식별자 사이의 맵핑 정보를 참조로 하여, 상기 요청에 포함되는 상기 컨텐츠의 URL 및 요청 헤더에 관한 정보와 대응되는 고유 식별자를 결정하고, 상기 컨텐츠의 URL 및 요청 헤더에 관한 정보와 대응되는 고유 식별자에 관한 정보를 참조로 하여 상기 컨텐츠가 상기 노드에 저장되어 있는지 여부를 판단하고, 상기 컨텐츠가 노드에 저장되어 있는 것으로 판단되면 상기 노드에 저장되어 있는 상기 컨텐츠를 상기 클라이언트에게 전송하고, 상기 컨텐츠가 상기 노드에 저장되어 있지 않은 것으로 판단되면 서버로부터 상기 컨텐츠를 전송 받아 상기 클라이언트에게 전송하는 컨텐츠 고유 식별자 관리부, 및
상기 클라이언트에서 핸드오버(Hand-Over)가 발생하면, 상기 핸드오버 이후에 상기 클라이언트와 연결되는 제2 노드에 상기 고유 식별자에 대응되는 상기 컨텐츠가 저장되어 있는지 여부에 기초하여, 상기 노드에 저장되어 있는 상기 컨텐츠를 상기 클라이언트 또는 상기 제2 노드에게 전송할지 여부를 결정하는 핸드오버 처리부
를 포함하고,
상기 컨텐츠의 고유 식별자는 상기 컨텐츠의 내용을 구성하는 데이터 중 적어도 일부에 기초하여 생성되고,
상기 노드는, 적어도 하나의 컨텐츠의 URL 및 요청 헤더와 상기 적어도 하나의 컨텐츠의 고유 식별자 사이의 맵핑을 수행하고,
상기 시스템은 상기 서버와 상기 클라이언트 사이에 위치하는 시스템. - 삭제
- 제20항 내지 제23항 중 어느 한 항에 있어서,
상기 컨텐츠의 고유 식별자는 상기 컨텐츠를 구성하는 데이터 중 기설정된 크기의 최초 데이터에 기초하여 생성되는 시스템. - 제20항 내지 제23항 중 어느 한 항에 있어서,
상기 컨텐츠의 고유 식별자는 상기 컨텐츠의 크기에 관한 정보를 포함하는 시스템. - 제20항 내지 제23항 중 어느 한 항에 있어서,
상기 컨텐츠의 고유 식별자는 상기 컨텐츠와 유일하게 대응될 확률이 기설정된 확률 이상인 시스템. - 제20항 내지 제23항 중 어느 한 항에 있어서,
상기 컨텐츠의 고유 식별자는 MD4(Message Digest 4), MD5(Message Digest 5) 및 SHA(Secure Hash Algorithm) 중 적어도 하나의 알고리즘에 의하여 생성되는 시스템. - 제20항 내지 제23항 중 어느 한 항에 있어서,
상기 클라이언트로부터 요청된 컨텐츠의 고유 식별자를 결정함에 있어서 상기 요청에 포함되는 상기 컨텐츠의 URL에 관한 정보 및 요청 헤더에 관한 정보가 모두 이용되는 시스템. - 제20항에 있어서,
상기 클라이언트에서 핸드오버(Hand-Over)가 발생하고 상기 제2 전송 노드에 상기 컨텐츠가 저장되어 있는 것으로 판단되면, 상기 전송 노드에 저장되어 있는 상기 컨텐츠를 상기 클라이언트에게 전송하는 것을 중단하는 시스템. - 제20항에 있어서,
상기 클라이언트에서 핸드오버(Hand-Over)가 발생하고 상기 제2 전송 노드에 상기 컨텐츠가 저장되어 있지 않은 것으로 판단되면, 상기 전송 노드에 저장되어 있는 상기 컨텐츠를 상기 클라이언트 또는 상기 제2 전송 노드에게 전송하는 시스템. - 제21항에 있어서,
상기 컨텐츠의 URL 및 요청 헤더에 관한 정보와 대응되는 고유 식별자가 상기 서버와 상기 전송 노드 사이에 위치하는 마스터 노드에 저장되어 있으면 상기 마스터 노드에 저장되어 있는 고유 식별자를 상기 컨텐츠의 URL 및 요청 헤더에 관한 정보에 대응되는 고유 식별자로 결정하고, 상기 컨텐츠의 URL 및 요청 헤더에 관한 정보와 대응되는 고유 식별자가 상기 마스터 노드에 저장되어 있지 않으면 상기 서버로부터 상기 컨텐츠의 URL 및 요청 헤더에 관한 정보에 대응되는 컨텐츠를 전송 받고 상기 전송된 컨텐츠에 기초하여 고유 식별자를 생성하고 상기 생성된 고유 식별자를 상기 컨텐츠의 URL 및 요청 헤더에 관한 정보에 대응되는 고유 식별자로 결정하는 시스템. - 제32항에 있어서,
상기 생성된 고유 식별자를 참조로 하여 상기 URL 및 요청 헤더와 고유 식별자 사이의 맵핑 정보를 갱신하는 시스템. - 제21항에 있어서,
상기 클라이언트에서 핸드오버(Hand-Over)가 발생하고 상기 제2 전송 노드에 상기 컨텐츠가 저장되어 있는 것으로 판단되면, 상기 제1 전송 노드에 저장되어 있는 컨텐츠가 상기 클라이언트에게 전송되는 것이 중단되도록 하고 상기 제2 전송 노드에 저장되어 있는 상기 컨텐츠가 상기 클라이언트에게 전송되도록 하는 시스템. - 제21항에 있어서,
상기 클라이언트에서 핸드오버(Hand-Over)가 발생하고 상기 제2 전송 노드에 상기 컨텐츠가 저장되어 있지 않은 것으로 판단되면, 상기 제1 전송 노드에 저장되어 있는 컨텐츠가 상기 클라이언트 또는 상기 제2 전송 노드에게 전송되도록 하는 시스템. - 제22항에 있어서,
상기 클라이언트에서 핸드오버(Hand-Over)가 발생하고 상기 제2 전송 노드에 상기 컨텐츠가 저장되어 있는 것으로 판단되면, 상기 마스터 노드가, 상기 제1 전송 노드에 저장되어 있는 상기 컨텐츠가 상기 클라이언트에게 전송되는 것이 중단되도록 하고, 상기 제2 전송 노드에 저장되어 있는 상기 컨텐츠가 상기 클라이언트에게 전송되도록 하는 시스템. - 제22항에 있어서,
상기 클라이언트에서 핸드오버(Hand-Over)가 발생하고 상기 제2 전송 노드에 상기 컨텐츠가 저장되어 있지 않은 것으로 판단되면, 상기 마스터 노드가, 상기 마스터 노드에 저장되어 있는 상기 컨텐츠를 상기 제2 전송 노드에게 전송하고 상기 마스터 노드로부터 상기 제2 전송 노드에게 전송된 상기 컨텐츠가 상기 클라이언트에게 전송되도록 하는 시스템. - 제22항에 있어서,
상기 클라이언트에서 핸드오버(Hand-Over)가 발생하고 상기 제2 전송 노드에 상기 컨텐츠가 저장되어 있지 않은 것으로 판단되면, 상기 마스터 노드가, 상기 제1 전송 노드에 저장되어 있는 상기 컨텐츠가 상기 클라이언트에게 전송되도록 하거나, 상기 제1 전송 노드에 저장되어 있는 컨텐츠가 상기 제2 전송 노드에게 전송되도록 하고 상기 제1 전송 노드로부터 상기 제2 전송 노드에게 전송된 상기 컨텐츠가 상기 클라이언트에게 전송되도록 하는 시스템. - 제1항 내지 제4항 중 어느 한 항에 따른 방법을 실행하기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2013/003788 WO2013180398A1 (ko) | 2012-06-01 | 2013-05-02 | 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20120059405 | 2012-06-01 | ||
KR1020120059405 | 2012-06-01 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20150019733A Division KR20150020657A (ko) | 2012-06-01 | 2015-02-09 | 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130135736A KR20130135736A (ko) | 2013-12-11 |
KR101632068B1 true KR101632068B1 (ko) | 2016-06-20 |
Family
ID=49982891
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130037675A KR101632068B1 (ko) | 2012-06-01 | 2013-04-05 | 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 |
KR20150019733A KR20150020657A (ko) | 2012-06-01 | 2015-02-09 | 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20150019733A KR20150020657A (ko) | 2012-06-01 | 2015-02-09 | 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 |
Country Status (1)
Country | Link |
---|---|
KR (2) | KR101632068B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101973132B1 (ko) | 2018-10-12 | 2019-04-26 | 송점종 | 새꼬막의 유생 포착용 그물망지 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100950011B1 (ko) * | 2008-08-20 | 2010-03-29 | 고려대학교 산학협력단 | 영상관리 시스템 및 방법 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090103552A (ko) * | 2008-03-28 | 2009-10-01 | 주식회사 아라기술 | 컨텐츠 캐싱을 이용한 웹 페이지 및 웹 컨텐츠 제공 시스템및 방법 |
-
2013
- 2013-04-05 KR KR1020130037675A patent/KR101632068B1/ko active IP Right Grant
-
2015
- 2015-02-09 KR KR20150019733A patent/KR20150020657A/ko not_active Application Discontinuation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100950011B1 (ko) * | 2008-08-20 | 2010-03-29 | 고려대학교 산학협력단 | 영상관리 시스템 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20150020657A (ko) | 2015-02-26 |
KR20130135736A (ko) | 2013-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11463550B2 (en) | Request management for hierarchical cache | |
KR102301353B1 (ko) | 컨텐츠 중심 네트워크에서 컨텐츠 소유자 및 노드의 패킷 전송 방법 | |
US8175584B2 (en) | System and method to facilitate downloading data at a mobile wireless device | |
KR102052520B1 (ko) | 컨텐츠 중심 네트워크에서 컨텐츠의 이동성을 지원하기 위한 노드의 통신 방법 및 노드 | |
US9390200B2 (en) | Local caching device, system and method for providing content caching service | |
EP2798818B1 (en) | Method and apparatus for flexible caching of delivered media | |
US6952712B2 (en) | Method and apparatus for distributing content data over a network | |
US8756296B2 (en) | Method, device and system for distributing file data | |
JP6601784B2 (ja) | 情報指向ネットワークにおいてコンテキスト認識型コンテンツ要求をサポートするための方法、ネットワークコンポーネント、およびプログラム | |
US20130208888A1 (en) | Managing content distribution in a wireless communications environment | |
US20120311062A1 (en) | Methods, circuits, devices, systems and associated computer executable code for distributed content caching and delivery | |
US20070127481A1 (en) | Streaming service providing method and apparatus for P2P based network | |
WO2017080459A1 (zh) | 服务内容的缓存及提供方法、装置、***和存储介质 | |
US20150088995A1 (en) | Method and apparatus for sharing contents using information of group change in content oriented network environment | |
US11792113B2 (en) | Information centric network dynamic compute orchestration | |
US20140282788A1 (en) | System for controlling video distribution in response to a request on reduced video data traffic and a method therefor | |
EP2530611B1 (en) | Methods and apparatuses for a network based on hierarchical name structure | |
CN101635831B (zh) | 一种p2p直播视频节点数据共享的方法、装置及代理*** | |
KR20150029913A (ko) | 청크 단위로 콘텐트를 전달하는 콘텐트 시스템 및 방법 | |
KR101904195B1 (ko) | 계층형 비디오의 캐싱 및 전달을 위한 시스템 및 방법 | |
KR101632068B1 (ko) | 컨텐츠 고유 식별자를 이용하여 컨텐츠를 전송하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 | |
WO2012152076A1 (zh) | 业务适配方法、装置及*** | |
EP2997489B1 (en) | Method and device for efficient mobile data transmission | |
KR102169717B1 (ko) | 컨텐츠 캐싱 방법 및 이를 위한 캐시 장치 | |
CN103685367A (zh) | 离线下载***和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
A107 | Divisional application of patent | ||
J201 | Request for trial against refusal decision | ||
J301 | Trial decision |
Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20150209 Effective date: 20151030 |
|
S901 | Examination by remand of revocation | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
S601 | Decision to reject again after remand of revocation | ||
AMND | Amendment | ||
GRNO | Decision to grant (after opposition) | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20190620 Year of fee payment: 4 |