KR20180112266A - 네트워크 캐싱 장치 및 방법 - Google Patents

네트워크 캐싱 장치 및 방법 Download PDF

Info

Publication number
KR20180112266A
KR20180112266A KR1020170042936A KR20170042936A KR20180112266A KR 20180112266 A KR20180112266 A KR 20180112266A KR 1020170042936 A KR1020170042936 A KR 1020170042936A KR 20170042936 A KR20170042936 A KR 20170042936A KR 20180112266 A KR20180112266 A KR 20180112266A
Authority
KR
South Korea
Prior art keywords
content
partition
contents
requests
privileged
Prior art date
Application number
KR1020170042936A
Other languages
English (en)
Inventor
무하마드
강신각
현욱
김성혜
박주영
허미영
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020170042936A priority Critical patent/KR20180112266A/ko
Priority to US15/667,792 priority patent/US10819823B2/en
Publication of KR20180112266A publication Critical patent/KR20180112266A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • H04L67/2842
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/314In storage network, e.g. network attached cache
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Abstract

네트워크 캐싱 장치 및 방법이 개시된다. 본 발명의 일실시예에 따른 네트워크 캐싱 방법은 네트워크 캐싱 장치를 이용하는 네트워크 캐싱 방법에 있어서, 제1 노드의 요청에 따라 제2 노드로부터 컨텐츠를 수신하는 단계; 상기 컨텐츠의 요청수에 따라 CLCE(Conditional Leave Copy Everywhere) 복제(Replication) 조건을 검사하는 단계; 상기 컨텐츠에 대한 우선순위 함수의 결과값을 기반으로 우선순위 조건을 검사하는 단계; 상기 컨텐츠의 요청수에 따라 파티션을 검사하는 단계; 상기 컨텐츠의 파티션 검사 결과에 따라 상기 컨텐츠에 대한 캐시 대체(Replacement) 동작을 수행하는 단계 및 상기 컨텐츠를 상기 제1 노드에게 전송하는 단계를 포함한다.

Description

네트워크 캐싱 장치 및 방법 {APPARATUS AND METHOD FOR NETWORK CACHING}
본 발명은 인터넷 통신 기술에 관한 것으로, 보다 상세하게는 네트워크 캐싱 기술에 관한 것이다.
네트워크 캐싱은 인터넷 아키텍처를 위한 솔루션이다. CDNs(Content Delivery Networks), 웹 캐싱 및 P2P(Peer-to-Peer) 네트워킹과 같은 응용에서의 캐싱은 응용 계층 솔루션을 위한 컨텐츠의 복제(replication) 및 대체(Replacement) 방식으로 설계되어 있다. 그러나 정보 중심 네트워크 패러다임의 출현과 함께, '네트워크 캐싱' 방식이 네트워크 계층 솔루션으로 등장하게 되었다. ICN(Information Centric Network, 정보 기반 네트워크) 모델에서 '네트워크 컨텐츠 캐싱'은 ICN 서비스 프레임 워크의 필수적인 부분이다. CDN과 웹 캐싱 및 P2P 네트워킹 달리 ICN 기술은 네트워크 계층에 해당하는 솔루션이고, 모든 ICN 기능이 탑재된 라우터는 제한된 시간 동안 다운로드 컨텐츠를 저장하기 위한 책임이 있다. ICN에서 캐시에 저장되는 컨텐츠는 웹 캐싱이나 CDNs과 같은 응용의 캐시 컨텐츠와 다른 특성을 갖는다. ICN에서 캐시 컨텐츠는 보다 신속하게 변경될 수 있으며, 캐시 사이즈가 훨씬 작다. 따라서, 복제 및 대체 정책은 빠르고 가벼워야 한다. 또한, ICN은 네트워크 레벨 솔루션이고; 캐싱 전략의 효과가 높은 네트워크에 의존한다. 유명한 ICN 아키텍처는 LCE(Leave Copy Everywhere) 및 LRU(Least Recently Used)와 같은 캐시 복제와 대체 기법을 채택하였다.
LRU 기법은 간단하고 쉬운 실행 방식으로 가볍고 빠른 장점으로 ICN 아키텍처에 의해 채택된 가장 인기 있는 정책이다. 그러나, LRU 기법은 컨텐츠의 인기도(popularity)를 보존할 수 없다.
LCE 기법은 컨텐츠의 인기도를 보존할 수 있으나 모든 저장된 컨텐츠의 전체 히스토리를 유지하므로 비인기 컨텐츠의 저장을 야기하는 문제점이 있기 때문에 실용적이라고 볼 수 없다.
따라서, 본 발명에서는 LRU 기법과 근사된 LRU 기법을 결합하여 효율적인 캐시 축출 정책을 제공할 수 있는 최소 빈도 최근 사용 축출 정책(Least Frequently Recently Used, LFRU)을 이용한다.
최소 빈도 최근 사용(Least Frequently Recently Used, LFRU) 기법은 이후에서 상술한다.
한편, 한국공개특허 제10-2015-0080957호 "컨텐츠 중심 네트워크에서 프리픽스 트리를 이용하여 예측된 컨텐츠 인기도에 기초하여 캐싱하는 방법"는 컨텐츠의 프리픽스를 사용하여 컨텐츠의 인기도를 도출하고, 인기도에 따라 컨텐츠의 캐싱 여부를 결정하는 기술에 개시하고 있다.
그러나, 한국공개특허 제10-2015-0080957호는 컨텐츠의 인기도를 컨텐츠의 이름에 기초하여 경로를 분석 하고, 컨텐츠의 라이프타임을 결정하는 한계가 존재한다.
본 발명은 네트워크 캐시에 대한 가볍고 효율적인 캐시 복제 및 대체 기법을 위한 메커니즘을 제공하는 것을 목적으로 한다.
또한, 본 발명은 네트워크에서의 트래픽을 감소시켜 사용자에게 만족스러운 인터넷 환경을 제공하는 것을 목적으로 한다.
또한, 본 발명은 캐시 네트워크의 운영 비용과 모니터링 비용을 최소화 시키는 것을 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명의 일실시예에 네트워크 캐싱 방법은 네트워크 캐싱 장치를 이용하는 네트워크 캐싱 방법에 있어서, 제1 노드의 요청에 따라 제2 노드로부터 컨텐츠를 수신하는 단계; 상기 컨텐츠의 요청수에 따라 CLCE 복제(Replication) 조건을 검사하는 단계; 상기 컨텐츠에 대한 우선순위 함수의 결과값을 기반으로 우선순위 조건을 검사하는 단계; 상기 수신한 컨텐츠의 요청수에 따라 상기 컨텐츠의 파티션을 검사하는 단계; 상기 컨텐츠의 파티션 검사 결과에 따라 상기 컨텐츠에 대한 캐시 대체(Replacement) 동작을 수행하는 단계; 및 상기 컨텐츠를 상기 제1 노드에게 전송하는 단계를 포함한다.
이 때, 상기 컨텐츠의 캐시는 특권 파티션(Privileged Partition)과 비특권 파티션(Unprivileged Partition)으로 분리될 수 있다.
이 때, 상기 수신하는 단계는 체비쇼프의 부등식(Chebyshyov's inequality)을 이용하여 계산된 신뢰구간과 허용오차에 기반하여 타임 윈도우를 추정할 수 있다.
이 때, 상기 수신하는 단계는 상기 추정된 타임 윈도우의 하한을 만족하기 위하여, 중심 극한 정리(Central Limit Theorem)를 사용할 수 있다.
이 때, 상기 수신하는 단계는 상기 추정된 타임 윈도우의 추정 정확도를 높이기 위하여, 뉴턴 방법(Newton Method)를 이용하여 상기 추정된 타임 윈도우에 대하여 뉴턴 반복(Newton Iteration)을 수행할 수 있다.
이 때, 상기 CLCE 복제 조건을 검사하는 단계, 우선순위를 검사하는 단계 및 파티션을 검사하는 단계는 타임 윈도우(Time Window) 이내에 관측(Observed)된 컨텐츠 요청수 등의 정보에 기반하여 수행될 수 있다.
이 때, 상기 CLCE 복제 조건을 검사하는 단계는 타임 윈도우 동안의 상기 컨텐츠의 컨텐츠 요청수와 상기 비특권 파티션에 있는 컨텐츠 중 컨텐츠 요청수가 가장 낮은 컨텐츠의 컨텐츠 요청수를 비교할 수 있다.
이 때, 상기 CLCE 복제 조건을 검사하는 단계는 상기 컨텐츠의 컨텐츠 요청수가 상기 비특권 파티션의 컨텐츠 중 가장 낮은 컨텐츠 요청수 이상인 경우, 상기 CLCE 복제조건을 만족할 수 있다.
이 때, 상기 우선순위를 검사하는 단계는 특정 요소에 대해서 상기 컨텐츠와 상기 비특권 파티션에 있는 컨텐츠 중 타임 윈도우(Time Window) 이내의 컨텐츠 요청수가 가장 낮은 컨텐츠의 우선순위 함수 결과값을 비교할 수 있다.
이 때, 상기 우선순위를 검사하는 단계는 상기 컨텐츠의 우선순위 결과값이 상기 비특권 파티션의 컨텐츠 중 가장 낮은 컨텐츠 요청수를 갖는 컨텐츠의 우선순위 결과값보다 큰 경우, 상기 우선순위 조건을 만족할 수 있다.
이 때, 우선순위 함수 결과값은 네트워크상의 로컬 관리자의 요구 사항이 반영된 서로 독립적인 함수들을 합성하여 생성된 합성 함수에 기반하여 정의될 수 있다.
이 때, 상기 파티션을 검사하는 단계는 상기 수신 컨텐츠를 특권 파티션과 비특권 파티션 중 어느 파티션에 있는 컨텐츠를 대체(Replacement)할 것인지 결정할 수 있다.
이 때, 상기 파티션을 검사하는 단계는 상기 컨텐츠를 대체하기 위하여 상기 특권 파티션과 상기 비특권 파티션 중 어느 하나의 파티션을 결정할 수 있다.
이 때, 상기 파티션을 검사하는 단계는 상기 타임 윈도우 이내에서 상기 컨텐츠의 컨텐츠 요청수가 상기 비특권 파티션에 있는 컨텐츠들에 대한 컨텐츠 요청수 중 최소값과 최대값의 범위 내에 있는 값인지 판단할 수 있다. 상기 수신 컨텐츠의 컨텐츠 요청수가 상기 비특권 파티션에 있는 컨텐츠들에 대한 컨텐츠 요청수 중 최대값을 초과한다면 상기 특권 파티션에 대한 부 파티션 선택 동작을 수행하고, 그렇지 않다면 상기 비특권 파티션에 있는 컨텐츠에 대한 캐시 대체 동작을 수행할 수 있다.
이 때, 상기 특권 파티션은 하나 이상 부 파티션(Sub-Partition)으로 구성될 수 있다.
이 때, 상기 캐시 대체(Replacement) 동작을 수행하는 단계는 상기 컨텐츠에 대한 컨텐츠 요청수가 상기 비특권 파티션의 컨텐츠 중 최소 요청된 컨텐츠의 요청수 이상이고, 상기 컨텐츠의 우선 순위가 상기 최소 요청된 컨텐츠의 우선 순위보다 높은 경우, 최소 빈도 최근 사용(Least Frequently Recently Used, LFRU) 기법을 수행할 수 있다.
이 때, 상기 최소 빈도 최근 사용(Least Frequently Recently Used, LFRU) 기법은 상기 컨텐츠의 특권 파티션(Privileged Partition)에 상기 최소 최근 사용(Least Recently Used, LRU) 기법을 수행하고, 상기 비특권 파티션(Unprivileged Partition)에 상기 근사된 최소 빈도 사용(Approximated Least Frequently Used, ALFU) 기법을 수행할 수 있다.
이 때, 상기 컨텐츠의 우선 순위는 네트워크상의 로컬 관리자의 요구 사항이 반영된 서로 독립적인 함수들을 합성하여 생성된 합성 함수에 기반하여 정의될 수 있다.
이 때, 상기 캐시 대체(Replacement) 동작을 수행하는 단계는 상기 컨텐츠에 대한 컨텐츠 요청수가 상기 비특권 파티션의 컨텐츠들에 대한 요청수 중 최소값과 최대값 사이인 경우, 상기 컨텐츠로 상기 비특권 파티션에 존재하는 가장 요청수가 낮은 컨텐츠를 대체할 수 있다.
이 때, 상기 캐시 대체(Replacement) 동작을 수행하는 단계는 상기 ALFU 기법을 이용하여 제한된 타임 윈도우(Time Window) 이내에 상기 컨텐츠의 접근 내역을 유지할 수 있다.
이 때, 상기 캐시 대체(Replacement) 동작을 수행하는 단계는 상기 특권 파티션을 복수개의 서브 파티션들로 나누어 상기 타임 윈도우 이내에 상기 서브 파티션들을 관측한 총 개수를 카운팅 할 수 있다.
이 때, 상기 캐시 대체(Replacement) 동작을 수행하는 단계는 상기 컨텐츠에 대한 컨텐츠 요청수가 상기 비특권 파티션의 컨텐츠들에 대한 최대 요청수를 초과하는 경우, 상기 특권 파티션의 서브 파티션들 중 허용 오차가 최소인 서브 파티션을 선택할 수 있다.
이 때, 상기 캐시 대체(Replacement) 동작을 수행하는 단계는 상기 허용 오차가 최소인 서브 파티션으로부터 사용 빈도가 최저인 컨텐츠로 상기 비특권 파티션의 상기 최소 요청수에 상응하는 컨텐츠를 대체할 수 있다.
이 때, 상기 캐시 대체(Replacement) 동작을 수행하는 단계는 상기 사용 빈도가 최저인 컨텐츠를 축출한 상기 특권 파티션에 상기 컨텐츠 요청수에 상응하는 컨텐츠를 삽입할 수 있다.
이 때, 상기 캐시 대체(Replacement) 동작을 수행하는 단계는 상기 컨텐츠 요청수와 상기 컨텐츠에 대한 베르누이 확률변수(Bernoulli Random Variable) 이용하여 상기 타임 윈도우에서 상기 컨텐츠에 대한 요청수를 추정할 수 있다.
이 때, 상기 캐시 대체(Replacement) 동작을 수행하는 단계는 상기 비특권 파티션의 저장(Caching)되어 있는 컨텐츠들에 근사된 최소 빈도 사용(Approximated Least Frequently Used, ALFU) 기법을 수행하여 선택된 컨텐츠를 상기 수신 컨텐츠로 대체(Replacement) 할 수 있다.
이 때, 상기 ALFU는 상기 타임 윈도우 동안에 관측된 컨텐츠 요청수 정보와 같은 컨텐츠 접근내역에 기반하는 최소 빈도 사용(Least Frequently Used, LFU) 기법에 상응할 수 있다.
이 때, 상기 특권 파티션에 대한 부 파티션 선택 동작은 상기 특권 파티션을구성하는 부 파티션 중에서 상기 수신 컨텐츠와 특성이 가장 유사한 부 파티션을 선택하고, 선택된 부 파티션에 저장된 특정 컨텐츠에 대한 캐시 대체(Replacement) 동작을 수행할 수 있다.
이 때, 상기 특성은 상기 타임 윈도우 동안에 각 부 파티션에 저장된 컨텐츠들에 대한 요청수의 합을 각 부 파티션에 저장된 컨텐츠의 개수로 나눈 정규화된 값에 상응할 수 있다.
이 때, 상기 선택된 부 파티션에 저장된 특정 컨텐츠에 대한 캐시 대체(Replacement) 동작은 상기 선택된 부 파티션에 저장된 컨텐츠들 중에서 최소 최근 사용(Least Recently Used, LRU) 기법을 수행하여 선택된 최소 최근 사용된 컨텐츠를 상기 비특권 파티션으로 옮기는 동작과 상기 수신 컨텐츠를 상기 선택된 부 파티션의 상기 선택된 최소 최근 사용된 컨텐츠가 저장(Caching)되어있던 공간에 저장(Caching)하는 동작을 수행한다.
이 때, 상기 선택된 최소 최근 사용된 컨텐츠를 상기 비특권 파티션으로 옮기는 동작은 상기 비특권 파티션에 저장되어 있는 컨텐츠들에 상기 근사된 최소 빈도 사용 기법을 수행하여 선택된 컨텐츠를 상기 선택된 최소 최근 사용된 컨텐츠로 대체(Replacement)한다.
또한, 상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 네트워크 캐싱 장치는 제1 노드의 요청에 따라 제2 노드로부터 컨텐츠를 수신하는 컨텐츠 수신부; 상기 컨텐츠의 요청수에 따라 CLCE(Conditional Leave Copy Everywhere) 복제(Replication) 조건을 검사하는 CLCE 복제 검사부; 상기 컨텐츠에 대한 우선순위 함수의 결과값을 기반으로 우선순위 조건을 검사하는 우선순위 검사부; 상기 컨텐츠의 요청수에 따라 파티션을 검사하는 파티션 검사부; 상기 컨텐츠의 파티션 검사 결과에 따라 상기 컨텐츠에 대한 캐시 대체(Replacement) 동작을 수행하는 캐시 대체(Replacement) 수행부; 및 상기 컨텐츠를 상기 제1 노드에게 전송하는 컨텐츠 전송부를 포함한다.
본 발명은 네트워크 캐시에 대한 가볍고 효율적인 캐시 복제 및 대체 기법을 위한 메커니즘을 제공할 수 있다.
또한, 본 발명은 네트워크의 트래픽을 감소시켜 사용자에게 만족스러운 인터넷 환경을 제공할 수 있다.
또한, 본 발명은 캐시 네트워크의 운영 비용과 모니터링 비용을 최소화 시킬 수 있다.
도 1은 본 발명의 일실시예에 따른 캐시 네트워크의 개요를 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 네트워크 캐싱 방법을 나타낸 동작흐름도이다.
도 3은 본 발명의 일실시예에 따른 LFRU 기법에서의 캐시 구조를 나타낸 도면이다.
도 4는 본 발명의 일실시예에 따른 LFRU 알고리즘을 나타낸 도면이다.
도 5는 본 발명의 일실시예에 따른 확률 변수에 대한 확률 밀도 함수를 나타낸 그래프이다.
도 6는 본 발명의 일실시예에 따른 네트워크 캐싱 장치를 나타낸 블록도이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 캐시 네트워크의 개요를 나타낸 도면이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 캐시 네트워크(Cache Network, CN)는 총 m 개의 캐시 노드와 c 개의 컨텐츠를 포함할 수 있다.
노드는 소비자 노드(Consumer Node)와 공급자 노드(Publisher Node)를 포함할 수 있다.
소비자 노드는 다른 노드(공급자 노드)에 컨텐츠를 요청할 수 있고, 공급자 노드 컨텐츠를 생성하여 소비자 노드에 컨텐츠를 제공할 수 있다.
이 때, 소비자 노드 및 공급자 노드는 인체 착용 디바이스 또는 자동화 기계에 상응할 수 있다.
공급자 노드가 생성하는 컨텐츠는 영구적이며, 적어도 하나의 캐시 노드에 저장될 수 있다.
이 때, 컨텐츠는 공급자 노드 또는 다른 어느 하나의 노드에 저장될 수 있다.
컨텐츠는 소비자에게 전달되는 동안 중간 캐시 노드(Conditional Leave Copy Everywhere(CLCE) 복제 기법을 사용하는 노드, 도 1에 도시된 Router n3에서 선택되어 일시적으로 캐시될 수 있다.
소비자 노드의 특정 컨텐츠에 대한 추가적인 요청은 어느 하나의 다른 캐시 노드를 통해 통과하므로, 중간 캐시 노드가 컨텐츠의 사본을 일시적으로 저장하여 유지하는 것은 공급자 노드를 통한 라우팅 없이 소비자 노드들이 국부적으로 컨텐츠를 즐길 수 있다.
도 1에 도시된 바와 같이, 소비자 노드 na 는 ta 시간에서 공급자 노드 np 에게 컨텐츠 ci 를 요청할 수 있다. 이 때, 공급자 노드는 소비자 노드의 요청에 따라 중간 캐시 노드 n3 에 컨텐츠를 생성하여 전송할 수 있다.
이 때, 중간 캐시 노드 n3 는 본 발명의 일실시예에 따른 네트워크 캐싱 장치(100)가 위치하여 네트워크 캐싱을 수행할 수 있다.
네트워크 캐싱 장치(100)는 컨텐츠 ci 가 성공적으로 전달되면, 규정된 CLCE 복제 상태를 검사하기 위하여 컨텐츠 ci 의 사본을 저장할 수 있다.
따라서, 소비자 노드 nb 와 소비자 노드 nc 는 공급자 노드 np 에 대한 직접적인 접근이 없이, 중간 캐시 노드 n3 로부터 동일한 컨텐츠 ci 를 획득할 수 있다.
이것으로, 네트워크 캐싱 장치(100)는 컨텐츠 전달 시간을 상당히 개선시킬 수 있고, 네트워크 트래픽을 감소시킬 수 있다.
아래는 본 발명의 설명을 돕기 위한 식별 표기(notations)를 나타낸 것이다.
Figure pat00001
= 권한 없는 파티션의 각 캐시 위치와 관련된 카운터의 설정값
Figure pat00002
= 권한 있는 각 하위 파티션과 관련된 계수의 집합
Figure pat00003
= 비응답 요청된 아이템과 관련된 계수 리스트의 집합
Figure pat00004
= 권한 없는 파티션에서 컨텐츠의 집합
Figure pat00005
= k번째 권한 있는 파티션에서 컨텐츠의 집합
Figure pat00006
= 최하위 카운터 값의 컨텐츠
Figure pat00007
= k번째 권한 있는 서브 파티션에서 최소 사용된 컨텐츠
Figure pat00008
= i 번째 컨텐츠의 인기도
Figure pat00009
= {n1, n2,… ,nm}=캐시 노드의 집합
Figure pat00010
= 권한 없는 파티션
Figure pat00011
= {c1,c2,…, cn} = 어느 인스턴스 j에서 캐시의 상태를 나타낸 계수의 집합
Figure pat00012
= 네트워크에서 i 번째 컨텐츠
Figure pat00013
= nj에서 요청 도달률
Figure pat00014
= 윈도우 시간 W 이내에 컨텐츠 ci를 위한 요청 도달률
도 2는 본 발명의 일실시예에 따른 네트워크 캐싱 방법을 나타낸 동작흐름도이다. 도 3은 본 발명의 일실시예에 따른 LFRU 기법에서의 캐시 구조를 나타낸 도면이다. 도 4는 본 발명의 일실시예에 따른 LFRU 알고리즘을 나타낸 도면이다. 도 5는 본 발명의 일실시예에 따른 확률 변수에 대한 확률 밀도 함수를 나타낸 그래프이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 네트워크 캐싱 방법은 먼저 컨텐츠를 수신한다(S210).
즉, 단계(S210)는 제1 노드의 요청에 따라 제2 노드로부터 컨텐츠를 수신할 수 있다.
이 때, 제 1 노드는 컨텐츠의 소비자 이거나 캐시 기능이 있는 라우터를 의미하며, 도 1의 Consumer nc 일 수 있다. 제 2 노드는 컨텐츠를 가진 퍼블리셔(도1의 Publisher np) 이거나 캐시 기능이 있는 다른 라우터에 상응할 수 있다.
이 때, 단계(S210)는 상기 컨텐츠를 수신한 캐시 기능이 있는 라우터(도 1의Router n3)와 상기 컨텐츠를 공급하는 제2 노드 사이의 최대 지연 시간을 추정할 수 있다.
즉, 단계(S210)는 상기 컨텐츠를 수신하여 타임 윈도우를 추정할 수 있다.
이 때, 단계(S210)는 컨텐츠 배포의 ZIPF-LIKE 인기도를 수학식 1과 같이 정의할 수 있다.
Figure pat00015
Figure pat00016
Figure pat00017
이 때, ∝ 의 대표값은 (0.6~ 1.2) 이고 ζ는 정규화 상수이다. 타임 윈도우가 수많은 작은 간격 δ 로 이루어진 시간 윈도우 |W| 에 의해 나누어진다고 가정해보자. 레이트 λj 를 갖는 포아송 요청
Figure pat00018
이 도착하면, 간격 δ 안에 요청이 도착할 가능성은 λjδ 에 상응할 수 있다.
이 때, 다음 간격 δ 의 컨텐츠 요청률은 제공된 컨텐츠 ci 에 대한 요청에 상응할 수 있다.
이 때, 랜덤함수 배열인
Figure pat00019
는 컨텐츠 ci 의 베르누이 확률 변수(Bernoulli Random Variable)에 상응할 수 있고, 수학식 2와 같이 정의될 수 있다.
Figure pat00020
이 때,
Figure pat00021
Figure pat00022
의 성공 확률을 계산한 확률 변수의 배열에 상응할 수 있고,
Figure pat00023
로 정의될 수 있다.
이 때,
Figure pat00024
의 예상 값은 수학식 3과 같이 정의될 수 있다.
Figure pat00025
또한, 아래 수학식 4는 컨텐츠 ci 에 대한 타임 윈도우 W 에서 예상된 요청수에 상응할 수 있다.
Figure pat00026
이 때, 타임 윈도우 W를 수학식 5와 같이 추정할 수 있다.
Figure pat00027
이 때, nj는 j번째 노드의 캐시 크기, C는 컨텐츠의 총 개수, ε 는 0보다 큰 상수이다.
이 때, 체비쇼프의 부등식(Chebyshyov's inequality)을 이용하여 계산된 신뢰구간
Figure pat00028
과 허용오차 ε 에 기반하여 상기 타임 윈도우의 사이즈를 추정할 수 있다.
이 때, 체비쇼프의 부등식을 통한 추정은 수학식 6과 같이 정의될 수 있다.
Figure pat00029
Figure pat00030
이 때,
Figure pat00031
는 컨텐츠 ci 에 대하여 마지막 타임 윈도우 W에 도달한 평균 요청수에 상응할 수 있다.
이 때, 컨텐츠 ci 는 타임 윈도우 W 에서 가장 인기 있는 컨텐츠에 상응할 수 있다.
따라서,
Figure pat00032
는 베르누이 확률 변수와
Figure pat00033
를 이용하여 산출할 수 있다.
이 때, 수학식 6을 이용하여 수학식 7과 같이 타임 윈도우 W를 추가로 추정할 수 있다.
Figure pat00034
그러나, 추정된 타임 윈도우는 하한(tight bound)가 아니므로, 상기 추정된 타임 윈도우의 하한을 만족하기 위하여, 중심 극한 정리(Central Limit Theorem)를 사용할 수 있다.
Figure pat00035
또한, 수학식 8을 이용하여
Figure pat00036
의 표준 정규 확률 변수인
Figure pat00037
Figure pat00038
를 산출할 수 있다.
Figure pat00039
Figure pat00040
Figure pat00041
또한, 수학식 9를 이용하여 허용 오차 ε 및 신뢰 구간
Figure pat00042
에 대한 표준 정규 확률 테이블을 이용하여 타임 윈도우를 산출할 수 있다.
도 5를 참조하면, 확률 변수에 대한 확률 밀도 함수를 그래프로 나타낸 것을 알 수 있다. 도 5에 도시된 바와 같이,
Figure pat00043
값을 표준 정규 확률 테이블에 개시된 q 를 이용하여 타임 윈도우는 수학식 10을 이용하여 추정할 수 있다.
Figure pat00044
이 때, 더 정확한 추정을 위하여 수학식 11와 같이 함수
Figure pat00045
를 정의할 수 있다.
Figure pat00046
수학식 11에서 함수
Figure pat00047
는 타임 윈도우를 알 수 없는 상태이므로 타임 윈도우를 찾기 위하여, 뉴턴 방법(Newton Method)를 이용할 수 있다.
이 때, 수학식 11로부터 추정된 타임 윈도우 값을 찾기 위하여 초기 예측에서 타임 윈도우 값이 수렴할 때까지 수학식 12와 같이 상기 추정된 타임 윈도우에 대하여 뉴턴 반복(Newton Iteration)을 수행할 수 있다.
Figure pat00048
이 때,
Figure pat00049
는 함수
Figure pat00050
의 미분 값이다.
네트워크 캐시는 캐시의 내용이 빠르게 변화하고, 컨텐츠 요청수에 의해 도착속도가 영향을 받을 수 있다.
따라서, 타임 윈도우는
Figure pat00051
를 만족하기 위하여, 수학식 13과 같이 타임 윈도우의 관측 시간을 선택할 수 있다.
Figure pat00052
또한, 아래에서 설명할 단계(S220) 내지 단계(S250)에서는 단계(S210)에서 추정된 타임 윈도우 동안에 관측된 요청수에 기반하여 동작을 수행할 수 있다.
이 때, 단계(S210)는 상기 캐시 기능이 있는 라우터와 제 2 노드간에 진행되었던 컨텐츠 전송에 대해서 제 2 노드로부터 상기 캐시 기능이 있는 라우터까지의 컨텐츠 전송시간들을 수학식 13의
Figure pat00053
를 적용하여 최대 지연 시간을 추정할 수 있다.
이 때, 제 1노드와 제 2노드간에 컨텐츠 전송 이력이 없다면, 수학식 15를 사용하여 최대 지연 시간을 추정할 수 있다.
또한, 본 발명의 일실시예에 따른 네트워크 캐싱 방법은 컨텐츠를 캐시에 복제할지 여부를 판단하기 위해서 Conditional Leave Copy Everywhere(CLCE) 복제 검사를 수행할 수 있다(S220).
이 때, 상기 컨텐츠의 캐시는 특권 파티션(Privileged Partition)과 비특권 파티션(Unprivileged Partition)으로 분리될 수 있다.
이 때, 상기 특권 파티션은 하나 이상의 부 파티션(Sub-Partition)으로 구성될 수 있다.
이 때, 단계(S220)는 타임 윈도우(Time Window) 이내에 관측(Observed)된 컨텐츠 요청수 등의 정보를 기반으로 수행될 수 있다.
이 때, 상기 타임 윈도우는 체비쇼프의 부등식(Chebyshyov's inequality)을 이용하여 계산된 신뢰구간과 허용오차에 기반하여 추정할 수 있다.
이 때, 단계(S220)는 상기 타임 윈도우 동안의 상기 수신 컨텐츠의 컨텐츠 요청수와 상기 비특권 파티션에 있는 컨텐츠 중 컨텐츠 요청수가 가장 낮은 컨텐츠의 컨텐츠 요청수를 비교할 수 있다.
또한, 단계(S220)는 상기 두 컨텐츠 요청수가 동일하거나 상기 수신 컨텐츠의 컨텐츠 요청수가 더 큰 경우에는 우선순위를 검사할 수 있다(S230).
이 때, 단계(S220)는 상기 수신 컨텐츠의 컨텐츠 요청수가 더 적은 경우에는, 상기 수신 컨텐츠에 대한 동작은 종료하고, 다음 컨텐츠에 대한 검사를 수행할 수 있다.
즉, 단계(S230)는 특정 요소에 대해서 상기 수신 컨텐츠와 상기 비특권 파티션에 있는 컨텐츠 중 상기 타임 윈도우(Time Window) 이내의 컨텐츠 요청수가 가장 낮은 컨텐츠의 우선순위 함수 P 값을 비교할 수 있다.
이 때, 단계(S230)는 컨텐츠 요청수와 컨텐츠의 사이즈에 기반하여 수학식 14와 같이 우선 순위 함수 P에 반영할 수 있다.
Figure pat00054
수학식 14에서 |ci|는 i번째 컨텐츠의 사이즈,
Figure pat00055
는 비특권 파티션의 각 캐시 위치와 관련된 카운터의 설정값, |nj|는 j번째 노드의 캐시 크기 및
Figure pat00056
는 랜덤함수 배열인
Figure pat00057
에 대한 컨텐츠 ci 의 베르누이 확률 변수(Bernoulli Random Variable)의 성공 확률을 계산한 확률 변수의 배열에 상응할 수 있다.
이 때, 단계(S230)는 상기 수신 컨텐츠의 우선순위 함수 P의 값이 더 큰 경우, 파티션 검사를 수행할 수 있다(S240).
이 때, 단계(S230)는 상기 우선순위 검사 결과 상기 수신 컨텐츠의 우선순위 함수 P의 값이 더 작은 경우, 상기 수신 컨텐츠에 대한 동작은 종료하고, 다음 컨텐츠에 대한 검사를 수행할 수 있다.
이 때, 상기 우선순위 함수 P는 네트워크상의 로컬 관리자의 요구 사항이 반영된 서로 독립적인 함수들을 합성하여 생성된 합성 함수에 상응할 수 있다.
즉, 단계(S240)는 상기 수신 컨텐츠를 특권 파티션과 비특권 파티션 중 어느 파티션에 있는 컨텐츠를 대체(Replacement)할 것인지 결정할 수 있다.
이 때, 단계(S240)는 우선 상기 타임 윈도우 이내에서 상기 수신 컨텐츠의 컨텐츠 요청수가 상기 비특권 파티션에 있는 컨텐츠들에 대한 컨텐츠 요청수 중 최소값과 최대값의 범위 내에 있는 값인지 판단할 수 있다.
이 때, 단계(S240)는 상기 수신 컨텐츠의 컨텐츠 요청수가 상기 비특권 파티션에 있는 컨텐츠들에 대한 컨텐츠 요청수 중 최대값을 초과한다면 상기 특권 파티션에 대한 부 파티션 선택 동작을 수행하고, 그렇지 않다면 상기 비특권 파티션에 있는 컨텐츠에 대한 캐시 대체 동작을 수행할 수 있다(S250).
즉, 단계(S250)는 상기 비특권 파티션의 저장(Caching)되어 있는 컨텐츠들에 근사된 최소 빈도 사용(Approximated Least Frequently Used, ALFU) 기법을 수행하여 선택된 컨텐츠를 상기 수신 컨텐츠로 대체할 수 있다.
이 때, 상기 ALFU는 상기 타임 윈도우 동안에 관측된 컨텐츠 요청수 정보와 같은 컨텐츠 접근내역에 기반하는 최소 빈도 사용(Least Frequently Used, LFU) 기법에 상응할 수 있다.
이 때, 단계(S250)는 동작은 상기 특권 파티션을 구성하는 부 파티션 중에서 상기 수신 컨텐츠와 특성이 가장 유사한 부 파티션을 선택하고, 선택된 부 파티션에 저장된 특정 컨텐츠에 대한 캐시 대체(Replacement) 동작을 수행할 수 있다.
이 때, 상기 특성은 상기 타임 윈도우 동안에 각 부 파티션에 저장된 컨텐츠들에 대한 요청수의 합을 각 부 파티션에 저장된 컨텐츠의 개수로 나눈 정규화된 값이다.
이 때, 단계(S250)는 상기 선택된 부 파티션에 저장된 컨텐츠들 중에서 최소 최근 사용(Least Recently Used, LRU) 기법을 수행하여 선택된 최소 최근 사용된 컨텐츠를 상기 비특권 파티션으로 옮기는 동작과 상기 수신 컨텐츠를 상기 선택된 부 파티션의 상기 선택된 최소 최근 사용된 컨텐츠가 저장(Caching)되어있던 공간에 저장(Caching)하는 동작을 수행 할 수 있다.
이 때, 상기 선택된 최소 최근 사용된 컨텐츠를 상기 비특권 파티션으로 옮기는 동작은 상기 비특권 파티션에 저장되어 있는 컨텐츠들에 상기 근사된 최소 빈도 사용 기법(ALFU)을 수행하여 선택된 컨텐츠를 상기 선택된 최소 최근 사용된 컨텐츠로 대체(Replacement)할 수 있다.
따라서, 단계(S250)는 특권 파티션에 LRU 기법을 적용하고, 비특권 파티션에 ALFU 기법을 적용할 수 있다.
도 3을 참조하면, 본 발명의 일실시예에 따른 네트워크 캐시 구조가 특권 파티션과 비특권 파티션으로 분리되어 나타낸 것을 알 수 있다.
비특권 파티션의 사이즈는 각각의 메모리 위치에 대한 계수를 관측하는 운영비용을 절감할 수 있도록 작을 수 있고, 캐시 히트 확률을 최대화 하기 위해서는 충분히 클 수 있다.
특권 파티션은 서브 파티션 K 개로 더 나누어지는 것을 알 수 있다.
이 때, 도 2에 도시된 단계(S240) 및 단계(S250)는 상기 특권 파티션을 복수개의 부 파티션들로 나누어 상기 타임 윈도우 이내에 상기 서브 파티션들을 관측한 총 개수를 카운팅할 수 있다.
이 때, 특권 파티션의 모든 부 파티션은 타임 윈도우(W) 내에서 특정 분할 영역에서 관측된 총 캐시 히트 수가 모니터링 될 수 있다.
이 때, 단계(S240)는 상기 ALFU 기법을 이용하여 제한된 타임 윈도우(Time Window) 이내에 상기 컨텐츠의 접근 내역을 유지할 수 있다.
본 발명의 일실시예에 따르면 특권 파티션의 사이즈를 고정시키기 위하여, 파티션의 수를 증가시키는 것은 동일 파티션 내에 자주 사용되는 컨텐츠가 집중될 수 있다.
넓은 의미에서, 각각의 권한 있는 파티션을 고려한다면, 하나의 큰 메모리 위치를 나타내는 상자가 ALFU의 높은 빈도의 항목에 상응할 수 있다.
만약, K=|Size of Privileged partition| 라면, LFRU 기법은 ALFU에 상응할 수 있다.
이 때, 단계(S250)는 LRU 기법과 ALFU 기법을 결합한 LFRU 알고리즘에 기반하여 상기 수신 컨텐츠에 대한 캐시 대체(Replacement)를 수행할 수 있다.
즉, 단계(S240)와 단계(S250)는 상기 수신 컨텐츠의 요청수, 특권 파티션의 최대 정규화 요청수 및 비특권 파티션의 최소 요청수를 이용하여 파티션 선택 및 캐시 대체 동작을 수행할 수 있다.
도 4를 참조하면, 본 발명의 일실시예에 따른 LFRU 알고리즘을 나타낸 것을 알 수 있다.
LFRU 알고리즘은 세가지 조건에 기반하여 이루어진다. 간단한 단계별 설명은 아래와 같다.
LFRU 알고리즘의 제1 단계는 시간 윈도우(WT) 이내에 관측된 정보를 토대로 두 가지 조건을 검사 할 수 있다. 상기 컨텐츠에 대한 컨텐츠 요청수가 상기 비특권 파티션내의 컨텐츠들 중에서 최소로 요청된 컨텐츠(min(NALFU))의 요청수 보다 크거나 같고 상기 컨텐츠의 우선 순위(로컬 관리자가 정의한 복합 함수 P 에 의해 결정됨)가 상기 비특권 파티션내의 컨텐츠 중에서 최소로 요청된 컨텐츠의 우선 순위보다 높은 경우, 상기 컨텐츠가 캐시에 복제(Replication)될 수 있음을 확인하고 제 2단계를 수행할 수 있다. 만약 상기 두 가지 조건 중 하나라도 만족하지 못한다면, 상기 컨텐츠는 캐시에 복제되지 아니하고 다음 컨텐츠에 대한 검사를 수행할 수 있다.
LFRU 알고리즘의 제2 단계는 상기 컨텐츠에 대한 컨텐츠 요청수가 상기 비특권 파티션의 컨텐츠들에 대한 요청수 중 최소 요청수 이상이고 최대 요청수 이하인 경우에, 상기 비특권 파티션으로부터 상기 최소 요청수에 상응하는 컨텐츠 cmin 를 상기 컨텐츠 ci 로 대체(Replacement)할 수 있다.
LFRU 알고리즘의 제3 단계는 상기 컨텐츠에 대한 컨텐츠 요청수가 상기 비특권 파티션의 최대 요청수를 초과하는 경우, 상기 특권 파티션의 부 파티션들 중 허용 오차
Figure pat00058
가 최소인 부 파티션을 선택할 수 있다.
이 때, 제3 단계는 상기 허용 오차가 최소인 서브 파티션으로부터 상기 타임 윈도우 동안 사용 빈도가 최저인 컨텐츠
Figure pat00059
를 상기 비특권 파티션으로 밀어(push)내며, 상기 사용 빈도가 최저인 컨텐츠
Figure pat00060
는 상기 비특권 파티션의 상기 타임 윈도우 동안 최소 요청수에 상응하는 컨텐츠
Figure pat00061
를 대체(Replacement)할 수 있다.
마지막으로, 제3 단계는 상기 사용 빈도가 최저인 컨텐츠
Figure pat00062
를 축출한 상기 특권 파티션에 상기 컨텐츠 요청수에 상응하는 컨텐츠 ci 를 삽입할 수 있다.
이 때, 제1 단계에서, 컨텐츠의 우선 순위는 합성 함수
Figure pat00063
에 의해 정의될 수 있다. 이 때, 함수
Figure pat00064
는 서로 독립적이며 로컬 관리자가 응용 프로그램 관련, 운영자 관련 제어 및 비즈니스 모델 요구를 반영하여 정의 및 관리할 수 있다.
예를 들어, CDN 에서 컨텐츠는 CDN 서비스 제공 업체가 상업 관계에 있는 특정 컨텐츠 제공 업체를 위해 캐시 될 수 있다. 그러나, ICN 의 컨텐츠는 중립적인 컨텐츠와 캐시 소유자가 상업적 관계를 맺고 있는 게시자의 컨텐츠라는 두 가지 범주로 나눌 수 있다. 상업용 캐시는 상업용 컨텐츠에 우선 순위를 부여하거나 캐시에 빈 공간이 있는 경우에만 중립 컨텐츠에 캐시 서비스를 제공할 수 있다. 그러나, 엣지 ISP 네트워크의 경우, 고객 만족도가 매우 중요할 수 있다. 따라서, 로컬 ISP의 캐시가 중립적일 수 있고, 고객의 QoE(Quality of Experience) 및 캐시 활용도를 높이기 위하여, 복제 우선 순위 기능을 정의할 수도 있다. 두 경우 모두 CLCE 복제 조건과 함께 복제 체계는 로컬로 정의된 수학식 14의 우선 순위 함수 P의 영향을 받을 수 있다.
또한, 본 발명의 일실시예에 따른 네트워크 캐싱 방법은 컨텐츠를 전송할 수 있다(S260).
즉, 단계(S260)는 상기 캐시 대체 동작이 수행된 상기 컨텐츠를 전송할 수 있다. 또한, 단계(S260)는 상기 컨텐츠에 대한 캐시 대체 동작이 불필요한 경우에는 캐시 대체 동작 없이 상기 컨텐츠를 전송할 수 있다.
이 때, 단계(S260)는 네트워크 캐싱 장치(100)가 위치한 중간 캐시 노드에 컨텐츠 cr의 사본을 보유하지 않은 경우, 수학식 15와 같이 최대 지연을 계산할 수 있다.
Figure pat00065
이 때, 단계(S260)는 제 1노드와 제 2노드간에 컨텐츠 전송 이력이 없다면, 수학식 14의
Figure pat00066
가 아니라 수학식 15를 이용하여 최대 지연 시간을 추정할 수 있다.
이 때, 임의의 노드의 ni와 또다른 임의의 노드 nj 사이의 이론적 최대 지연은
Figure pat00067
을 통해 나타낼 수 있다.
이 때, k는 임의의 노드 ni와 또다른 임의의 노드 nj 사이에서 요청하는 컨텐츠의 총 개수에 상응할 수 있다.
도 6은 본 발명의 일실시예에 따른 네트워크 캐싱 장치를 나타낸 블록도이다.
도 6을 참조하면, 본 발명의 일실시예에 따른 네트워크 캐싱 장치는 컨텐츠 수신부(110), CLCE 복제 검사부(120), 우선순위 검사부(130), 파티션 검사부(140), 캐시 대체 수행부(150) 및 컨텐츠 전송부(160)를 포함한다.
컨텐츠 수신부(110)는 상기 설명한 단계(S210)를 수행할 수 있다.
CLCE 복제 검사부(120)는 상기 설명한 단계(S220)를 수행할 수 있다.
우선순위 검사부(130)는 상기 설명한 단계(S230)를 수행할 수 있다.
파티션 검사부(140)는 상기 설명한 단계(S240)를 수행할 수 있다.
캐시 대체 수행부(150)는 상기 설명한 단계(S250)를 수행할 수 있다.
컨텐츠 전송부(160)는 상기 설명한 단계(S260)을 수행할 수 있다.
또한, 본 발명의 실시예는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템에서 구현될 수 있다. 컴퓨터 시스템은 버스를 통하여 서로 통신하는 하나 이상의 프로세서, 메모리, 사용자 입력 장치, 사용자 출력 장치 및 스토리지를 포함할 수 있다. 또한, 컴퓨터 시스템은 네트워크에 연결되는 네트워크 인터페이스를 더 포함할 수 있다. 프로세서는 중앙 처리 장치 또는 메모리나 스토리지에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리 및 스토리지는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM이나 RAM을 포함할 수 있다.
컨텐츠 수신부(110)는 제1 네트워크 인터페이스 및 제 1프로세서를 포함할 수 있다.
이 때, 제1 네트워크 인터페이스는 상기 단계(S210)를 수행할 수 있다.
이 때, 제1 프로세서는 상기 단계(S210)에서 수신한 컨텐츠를 수신하여 임시적으로 메모리에 저장할 수 있다.
CLCE 복제 검사부(120)는 제 2 프로세서에 상응할 수 있다.
이 때, 제 2 프로세서는 상기 단계(S220)를 수행할 수 있다.
우선순위 검사부(130)는 제 3 프로세서에 상응할 수 있다.
이 때, 제 3 프로세서는 상기 단계(S230)를 수행할 수 있다.
파티션 검사부(140)는 제 4 프로세서에 상응할 수 있다.
이 때, 제 4 프로세서는 상기 단계(S240)를 수행할 수 있다.
캐시 대체 수행부(150)는 제 5 프로세서에 상응할 수 있다.
이 때, 제 5 프로세서는 상기 단계(S250)를 수행할 수 있다.
이 때, 제5 프로세서는 상기 단계(S250)의 수행 결과로 컨텐츠의 복사본을 스토리지에 저장(Caching)할 수 있다.
컨텐츠 전송부(160)는 제2 네트워크 인터페이스에 상응할 수 있다.
이 때, 제2 네트워크 인터페이스는 상기 단계(S260)를 수행할 수 있다.
이상에서와 같이 본 발명에 따른 네트워크 캐싱 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
100: 네트워크 캐싱 장치
110: 컨텐츠 수신부
120: CLCE 복제 검사부
130: 우선순위 검사부
140: 파티션 검사부
150: 캐시 대체 수행부
160: 컨텐츠 전송부

Claims (20)

  1. 네트워크 캐싱 장치를 이용하는 네트워크 캐싱 방법에 있어서,
    제1 노드의 요청에 따라 제2 노드로부터 컨텐츠를 수신하는 단계;
    상기 컨텐츠의 요청수에 따라 CLCE(Conditional Leave Copy Everywhere) 복제(Replication) 조건을 검사하는 단계;
    상기 컨텐츠에 대한 우선순위 함수의 결과값을 기반으로 우선순위 조건을 검사하는 단계;
    상기 컨텐츠의 요청수에 따라 상기 컨텐츠의 파티션을 검사하는 단계;
    상기 컨텐츠의 파티션 검사 결과에 따라 상기 컨텐츠에 대한 캐시 대체(Replacement) 동작을 수행하는 단계; 및
    상기 컨텐츠를 상기 제1 노드에게 전송하는 단계;
    를 포함하는 것을 특징으로 하는 네트워크 캐싱 방법.
  2. 청구항 1에 있어서,
    상기 수신하는 단계는
    체비쇼프의 부등식(Chebyshyov's inequality)을 이용하여 계산된 신뢰구간과 허용오차에 기반하여 상기 컨텐츠의 타임 윈도우를 추정하는 것을 특징으로 하는 네트워크 캐싱 방법.
  3. 청구항 2에 있어서,
    상기 수신하는 단계는
    상기 타임 윈도우의 하한을 만족하기 위하여, 중심 극한 정리(Central Limit Theorem)를 사용하는 것을 특징으로 하는 네트워크 캐싱 방법.
  4. 청구항 3에 있어서,
    상기 수신하는 단계는
    상기 타임 윈도우의 추정 정확도를 높이기 위하여, 뉴턴 방법(Newton Method)를 이용하여 상기 추정된 타임 윈도우에 대하여 뉴턴 반복(Newton Iteration)을 수행하는 것을 특징으로 하는 네트워크 캐싱 방법
  5. 청구항 4에 있어서,
    상기 컨텐츠의 캐시는
    특권 파티션(Privileged Partition)과 비특권 파티션(Unprivileged Partition)으로 분리되는 것을 특징으로 하는 네트워크 캐싱 방법.
  6. 청구항 5에 있어서,
    상기 CLCE 복제 조건을 검사하는 단계는
    상기 컨텐츠의 컨텐츠 요청수가 상기 비특권 파티션의 컨텐츠 중 가장 낮은 컨텐츠 요청수 이상인 경우, 상기 CLCE 복제조건을 만족하는 것을 특징으로 하는 네트워크 캐싱 방법.
  7. 청구항 6에 있어서,
    상기 우선순위를 검사하는 단계는
    상기 컨텐츠의 우선순위 결과값이 상기 비특권 파티션의 컨텐츠 중 가장 낮은 컨텐츠 요청수를 갖는 컨텐츠의 우선순위 결과값보다 큰 경우, 상기 우선순위 조건을 만족하는 것을 특징으로 하는 네트워크 캐싱 방법.
  8. 청구항 7에 있어서,
    상기 파티션을 검사하는 단계는
    상기 컨텐츠를 대체하기 위한 상기 특권 파티션과 상기 비특권 파티션에 중 어느 하나의 파티션을 결정하는 것을 특징으로 하는 네트워크 캐싱 방법.
  9. 청구항 8에 있어서,
    상기 캐시 대체(Replacement) 동작을 수행하는 단계는
    상기 특권 파티션의 캐시되어 있는 컨텐츠들에 최소 최근 사용(Least Recently Used, LRU) 기법을 수행하여 선택된 컨텐츠로 상기 비특권 파티션에 저장된 다른 컨텐츠를 대체하는 것을 특징으로 하는 네트워크 캐싱 방법.
  10. 청구항 9에 있어서,
    상기 캐시 대체(Replacement) 동작을 수행하는 단계는
    상기 비특권 파티션에 캐시되어 있는 컨텐츠들에 근사된 최소 빈도 사용(Approximated Least Frequently Used, ALFU) 기법을 수행하여 상기 캐시 대체를 수행하는 것을 특징으로 하는 네트워크 캐싱 방법.
  11. 청구항 10에 있어서,
    상기 캐시 대체(Replacement) 동작을 수행하는 단계는
    상기 컨텐츠에 대한 컨텐츠 요청수가 상기 비특권 파티션의 컨텐츠 중 최소 요청된 컨텐츠의 요청수 이상이고, 상기 컨텐츠의 우선 순위가 상기 최소 요청된 컨텐츠의 우선 순위보다 높은 경우, 최소 빈도 최근 사용(Least Frequently Recently Used, LFRU) 기법을 수행하는 것을 특징으로 하는 네트워크 캐싱 방법.
  12. 청구항 11에 있어서,
    상기 최소 빈도 최근 사용(Least Frequently Recently Used, LFRU) 기법은
    상기 컨텐츠의 특권 파티션(Privileged Partition)에 상기 최소 최근 사용(Least Recently Used, LRU) 기법을 수행하고, 상기 비특권 파티션(Unprivileged Partition)에 상기 근사된 최소 빈도 사용(Approximated Least Frequently Used, ALFU) 기법을 수행하는 것을 특징으로 하는 네트워크 캐싱 방법.
  13. 청구항 12에 있어서,
    상기 캐시 대체(Replacement) 동작을 수행하는 단계는
    상기 컨텐츠에 대한 컨텐츠 요청수가 상기 비특권 파티션의 컨텐츠들에 대한 요청수 중 최소값과 최대값 사이인 경우, 상기 컨텐츠로 상기 비특권 파티션에 존재하는 가장 요청수가 낮은 컨텐츠를 대체하는 것을 특징으로 하는 네트워크 캐싱 방법.
  14. 청구항 13에 있어서,
    상기 캐시 대체(Replacement) 동작을 수행하는 단계는
    상기 ALFU 기법을 이용하여 제한된 타임 윈도우(Time Window) 이내에 상기 컨텐츠의 접근 내역을 유지하는 것을 특징으로 하는 네트워크 캐싱 방법.
  15. 청구항 14에 있어서,
    상기 캐시 대체(Replacement) 동작을 수행하는 단계는
    상기 특권 파티션을 복수개의 서브 파티션들로 나누어 상기 타임 윈도우 이내에 상기 서브 파티션들을 관측한 총 개수를 카운팅 하는 것을 특징으로 하는 네트워크 캐싱 방법.
  16. 청구항 15에 있어서,
    상기 캐시 대체(Replacement) 동작을 수행하는 단계는
    상기 컨텐츠에 대한 컨텐츠 요청수가 상기 비특권 파티션의 컨텐츠들에 대한 최대 요청수를 초과하는 경우, 상기 특권 파티션의 서브 파티션들 중 허용 오차가 최소인 서브 파티션을 선택하는 것을 특징으로 하는 네트워크 캐싱 방법.
  17. 청구항 16에 있어서,
    상기 캐시 대체(Replacement) 동작을 수행하는 단계는
    상기 허용 오차가 최소인 서브 파티션으로부터 사용 빈도가 최저인 컨텐츠로 상기 비특권 파티션의 상기 최소 요청수에 상응하는 컨텐츠를 대체 하는 네트워크 캐싱 방법.
  18. 청구항 17에 있어서,
    상기 캐시 대체(Replacement) 동작을 수행하는 단계는
    상기 사용 빈도가 최저인 컨텐츠를 대체한 상기 특권 파티션에 상기 컨텐츠 요청수에 상응하는 컨텐츠를 삽입하는 것을 특징으로 하는 네트워크 캐싱 방법.
  19. 청구항 18에 있어서,
    상기 캐시 대체(Replacement) 동작을 수행하는 단계는
    상기 컨텐츠 요청수와 상기 컨텐츠에 대한 베르누이 확률변수(Bernoulli Random Variable) 이용하여 상기 타임 윈도우에서 상기 컨텐츠에 대한 요청수를 추정하는 것을 특징으로 하는 네트워크 캐싱 방법.
  20. 제1 노드의 요청에 따라 제2 노드로부터 컨텐츠를 수신하는 컨텐츠 수신부;
    상기 컨텐츠의 요청수에 따라 CLCE(Conditional Leave Copy Everywhere) 복제(Replication) 조건을 검사하는 CLCE 복제 검사부;
    상기 컨텐츠에 대한 우선순위 함수의 결과값을 기반으로 우선순위 조건을 검사하는 우선순위 검사부;
    상기 컨텐츠의 요청수에 따라 파티션을 검사하는 파티션 검사부;
    상기 컨텐츠의 파티션 검사 결과에 따라 상기 컨텐츠에 대한 캐시 대체(Replacement) 동작을 수행하는 캐싱 수행부; 및
    상기 컨텐츠를 상기 제1 노드에게 전송하는 컨텐츠 전송부;
    를 포함하는 것을 특징으로 하는 네트워크 캐싱 장치.
KR1020170042936A 2017-04-03 2017-04-03 네트워크 캐싱 장치 및 방법 KR20180112266A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170042936A KR20180112266A (ko) 2017-04-03 2017-04-03 네트워크 캐싱 장치 및 방법
US15/667,792 US10819823B2 (en) 2017-04-03 2017-08-03 Apparatus and method for in-network caching

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170042936A KR20180112266A (ko) 2017-04-03 2017-04-03 네트워크 캐싱 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20180112266A true KR20180112266A (ko) 2018-10-12

Family

ID=63670118

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170042936A KR20180112266A (ko) 2017-04-03 2017-04-03 네트워크 캐싱 장치 및 방법

Country Status (2)

Country Link
US (1) US10819823B2 (ko)
KR (1) KR20180112266A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102163214B1 (ko) * 2019-05-30 2020-10-08 한국과학기술원 CoMP 기반 스몰 셀 네트워크에서의 기계학습을 활용한 능동 캐싱 기법
KR102298698B1 (ko) * 2020-12-16 2021-09-03 재단법인대구경북과학기술원 에지 컴퓨팅 네트워크에서의 서비스 캐싱 방법 및 장치

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860110A (en) * 1995-08-22 1999-01-12 Canon Kabushiki Kaisha Conference maintenance method for cache memories in multi-processor system triggered by a predetermined synchronization point and a predetermined condition
US20030115346A1 (en) 2001-12-13 2003-06-19 Mchenry Stephen T. Multi-proxy network edge cache system and methods
US20050108481A1 (en) * 2003-11-17 2005-05-19 Iyengar Arun K. System and method for achieving strong data consistency
US8645793B2 (en) * 2008-06-03 2014-02-04 Marvell International Ltd. Statistical tracking for flash memory
US8701010B2 (en) * 2007-03-12 2014-04-15 Citrix Systems, Inc. Systems and methods of using the refresh button to determine freshness policy
EP2332421B1 (en) * 2008-09-29 2015-11-04 Ajinomoto Co., Inc. Method for producing modified milk
US20130215756A1 (en) 2012-02-17 2013-08-22 Electronics And Telecommunications Research Institute Apparatus and method for managing contents cache considering network cost
US8762477B2 (en) 2012-02-28 2014-06-24 Futurewei Technologies, Inc. Method for collaborative caching for content-oriented networks
US8983936B2 (en) * 2012-04-04 2015-03-17 Microsoft Corporation Incremental visualization for structured data in an enterprise-level data store
US20140020102A1 (en) 2012-07-16 2014-01-16 Infosys Limited Integrated network architecture
KR20150080957A (ko) 2013-12-31 2015-07-13 서울대학교산학협력단 컨텐츠 중심 네트워크에서 프리픽스 트리를 이용하여 예측된 컨텐츠 인기도에 기초하여 캐싱하는 방법
KR20160046235A (ko) 2014-10-20 2016-04-28 한국전자통신연구원 컨텐츠 캐시의 그룹 형성 방법 및 컨텐츠 제공 방법
KR102326282B1 (ko) * 2015-02-09 2021-11-15 한국전자통신연구원 대역폭에 적응적인 대쉬 기반 컨텐츠 제공 장치 및 방법
US10404594B2 (en) * 2016-12-13 2019-09-03 Oracle International Corporation System and method for providing partitions of classification resources in a network device
US20180203807A1 (en) * 2017-01-13 2018-07-19 Arm Limited Partitioning tlb or cache allocation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102163214B1 (ko) * 2019-05-30 2020-10-08 한국과학기술원 CoMP 기반 스몰 셀 네트워크에서의 기계학습을 활용한 능동 캐싱 기법
KR102298698B1 (ko) * 2020-12-16 2021-09-03 재단법인대구경북과학기술원 에지 컴퓨팅 네트워크에서의 서비스 캐싱 방법 및 장치

Also Published As

Publication number Publication date
US10819823B2 (en) 2020-10-27
US20180288185A1 (en) 2018-10-04

Similar Documents

Publication Publication Date Title
Bilal et al. A cache management scheme for efficient content eviction and replication in cache networks
Carofiglio et al. LAC: Introducing latency-aware caching in information-centric networks
Dutta et al. Caching scheme for information‐centric networks with balanced content distribution
CN108366089B (zh) 一种基于内容流行度和节点重要度的ccn缓存方法
Nikolaou et al. Proactive cache placement on cooperative client caches for online social networks
Kumar et al. Dynamic popularity window and distance-based efficient caching for fast content delivery applications in CCN
Meng et al. EHCP: An efficient hybrid content placement strategy in named data network caching
WO2017092575A1 (en) System and method to support context-aware content requests in information centric networks
WO2018049563A1 (en) Systems and methods for caching
Saucez et al. AIMD and CCN: past and novel acronyms working together in the Future Internet
KR20220007699A (ko) 콘텐츠 전달 시스템에서의 캐시 관리
CN103780482B (zh) 一种获取内容方法及用户设备、缓存节点
US20140222988A1 (en) Method for adaptive content discovery for distributed shared caching system
Zhang et al. NCPP-based caching and NUR-based resource allocation for information-centric networking
KR20180112266A (ko) 네트워크 캐싱 장치 및 방법
Lal et al. A popularity based content eviction scheme via betweenness-centrality caching approach for content-centric networking (CCN)
Thar et al. Consistent hashing based cooperative caching and forwarding in content centric network
Makris et al. Load balancing for minimizing the average response time of get operations in distributed key-value stores
Detti et al. Modeling LRU cache with invalidation
Cohen et al. Self-adjusting advertisement of cache indicators with bandwidth constraints
Dai et al. Analysis of tandem PIT and CS with non-zero download delay
CN109644160B (zh) 通过分类在icn中进行名称解析和制作者选择的混合方法
Alkassab et al. Benefits and schemes of prefetching from cloud to fog networks
Jayapal et al. Enhanced service discovery protocol for MANET by effective cache management
Panigrahy et al. A ttl-based approach for content placement in edge networks