KR101582050B1 - Apparatus and method for searching name using bloom filter pre-searching - Google Patents
Apparatus and method for searching name using bloom filter pre-searching Download PDFInfo
- Publication number
- KR101582050B1 KR101582050B1 KR1020140145334A KR20140145334A KR101582050B1 KR 101582050 B1 KR101582050 B1 KR 101582050B1 KR 1020140145334 A KR1020140145334 A KR 1020140145334A KR 20140145334 A KR20140145334 A KR 20140145334A KR 101582050 B1 KR101582050 B1 KR 101582050B1
- Authority
- KR
- South Korea
- Prior art keywords
- hash table
- name
- bloom filter
- content name
- level
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
블룸 필터 선-검색을 이용한 이름 검색 장치 및 방법이 개시된다.
복수의 레벨로 구성된 이름 프리픽스 트리(Name Prefix Trie: NPT)를 이용한 이름 검색 방법은 NPT의 레벨들 별로 생성된 블룸 필터로 콘텐츠 이름을 검색하는 단계; 및 상기 블룸 필터의 검색 결과에 기초하여 상기 블룸 필터에 대응하는 해시 테이블에서 상기 콘텐츠 이름을 검색하는 단계를 포함할 수 있다.A name searching apparatus and method using Bloom filter line-search are disclosed.
A name search method using a name prefix trie (NPT) composed of a plurality of levels includes: searching for a content name using a bloom filter generated for each level of the NPT; And retrieving the content name from the hash table corresponding to the Bloom filter based on the search result of the Bloom filter.
Description
본 발명은 이름 검색 장치 및 방법에 관한 것으로, 보다 상세하게는 콘텐츠 중심 네트워킹 기술에서 콘텐츠 이름을 검색하는 장치 및 방법에 관한 것이다. BACKGROUND OF THE
미래 인터넷으로 최근 각광 받고 있는 콘텐츠 중심 네트워킹(Content Centric Networking, CCN) 기술은 콘텐츠 중심의 전송 방식을 제공함으로써 대용량 정보를 빠르고 효율적으로 전송하고자 하는 기술이다. Recently, Content Centric Networking (CCN) technology, which is being watched for the future of the Internet, is a technology for quickly and efficiently transmitting large amount of information by providing a content-oriented transmission method.
CCN은 송수신자라는 개념 대신 정보를 생성한 콘텐츠 생성자와 정보를 수신하여 소비하는 콘텐츠 소비자의 개념을 도입하였고, 라우터는 IP 주소 대신 콘텐츠 이름을 사용하여 라우팅을 수행할 수 있다. 이때, CCN 라우터는 네트워크상에서 정보를 일시 저장하는 캐시 역할을 수행하며, 콘텐츠를 저장하고 있다가 콘텐츠를 요구하는 인근의 새로운 소비자들에게 콘텐츠를 배포할 수 있다. CCN introduces the concept of a content creator that generates information instead of a sender / receiver, and a content consumer that consumes and consumes information, and routers can perform routing using content names instead of IP addresses. At this time, the CCN router serves as a cache for temporarily storing information on the network, and can distribute the content to nearby new consumers who are requesting the contents while storing the contents.
즉, CCN 라우터가 캐시 역할까지 수행함으로써, CCN은 소비자들에게 빠른 서비스를 제공할 수 있으며 동일한 콘텐츠가 네트워크 상에서 반복적으로 전송되는 횟수를 줄일 수 있다. In other words, the CCN router can also serve as a cache, so that the CCN can provide fast service to consumers and reduce the number of times the same content is repeatedly transmitted over the network.
그리고, CCN 라우터는 콘텐츠 전송을 위하여 CS(Contents Store), PIT(Pending Interest Table), FIB(Forwarding Information Base)의 3종류의 테이블을 사용할 수 있다. 이때, CS는 콘텐츠를 저장하는 캐시이고, PIT는 요청 받은 콘텐츠 중에서 소비자에게 제공하지 못한 콘텐츠들의 리스트이며, FIB는 소비자의 콘텐츠 요청 패킷을 전달해야 하는 출력 인터페이스(output interface) 리스트일 수 있다. 그리고, PIT와 FIB를 검색할 때에는 콘텐츠 이름과 가장 길게 일치하는 엔트리를 찾아야 하며, 선속도로 수행되어야 하므로 콘텐츠 이름을 빠른 속도로 검색할 수 있는 방법이 요청되고 있다.The CCN router can use three kinds of tables for content transmission: a contents store (CS), a pending interest table (PIT), and a forwarding information base (FIB). In this case, the CS is a cache for storing content, the PIT is a list of contents requested by the consumer, and the FIB may be a list of output interfaces through which a content request packet of a consumer should be transmitted. When retrieving PIT and FIB, it is required to find an entry having the longest match with the content name, and a method of searching the content name at a high speed is required because it must be performed at a linear speed.
본 발명은 해시 테이블을 이용하여 NPT에 기초한 콘텐츠 이름을 검색할 수 있는 장치 및 방법을 제공할 수 있다.The present invention can provide an apparatus and method for retrieving a content name based on NPT using a hash table.
또한, 본 발명은 블룸 필터의 검색 결과에 따라 해시 테이블의 검색 여부를 결정함으로써, 해시 테이블의 접근 회수를 감소시켜 검색 속도를 향상 시킬 수 있는 장치 및 방법을 제공할 수 있다.In addition, the present invention can provide an apparatus and method for improving the retrieval speed by decreasing the number of hash table accesses by determining whether or not to search the hash table according to the search result of the Bloom filter.
그리고, 본 발명은 NPT의 레벨 별로 생성된 블룸 필터를 연속으로 검색하여 최종 레벨을 검색하고, 최종 레벨의 해시 테이블을 검색함으로써, 해시 테이블의 접근 회수를 최소화시킬 수도 있는 장치 및 방법을 제공할 수 있다.The present invention can provide an apparatus and method for minimizing the number of hash table accesses by continuously searching for the bloom filter generated for each level of NPT, searching for the final level, and retrieving the hash table of the final level have.
본 발명의 일실시예에 따른 이름 검색 방법은 해시 함수를 사용하여 NPT의 레벨들 각각에 대응하는 콘텐츠 이름의 컴포넌트를 변환하는 단계; 및 NPT의 레벨들 별로 생성된 해시 테이블에서 상기 해시 함수를 사용하여 변환된 컴포넌트를 검색하는 단계를 포함할 수 있다.A method for searching for a name according to an embodiment of the present invention includes converting a component of a content name corresponding to each level of NPT using a hash function; And retrieving the transformed component using the hash function in a hash table generated for each level of the NPT.
본 발명의 일실시예에 따른 이름 검색 방법의 컴포넌트를 변환하는 단계는 NPT의 레벨들 별로 생성된 해시 테이블에서 해시 인덱스의 생성에 이용된 해시 함수를 이용하여 NPT의 레벨들 각각에 대응하는 콘텐츠 이름의 컴포넌트를 변환할 수 있다.The step of converting a component of the name search method according to an exemplary embodiment of the present invention includes converting a content name corresponding to each level of the NPT using a hash function used for generating a hash index in a hash table generated for each level of the NPT Can be converted.
본 발명의 일실시예에 따른 이름 검색 방법의 컴포넌트를 변환하는 단계는 NPT의 레벨이 두 번째 레벨 이상인 경우, 해시 함수를 사용하여 이전 레벨에 대응하는 콘텐츠 이름의 컴포넌트와 현재 레벨에 대응하는 콘텐츠 이름의 컴포넌트가 연속된 문자열을 변환할 수 있다.In the step of converting a component of the name search method according to an exemplary embodiment of the present invention, when the level of the NPT is equal to or higher than the second level, a component of the content name corresponding to the previous level and a content name Can convert a contiguous string.
본 발명의 일실시예에 따른 이름 검색 방법의 컴포넌트를 검색하는 단계는 현재 레벨에 대응하는 해시 테이블에서 이전 레벨에 대응하는 콘텐츠 이름의 컴포넌트와 현재 레벨에 대응하는 콘텐츠 이름의 컴포넌트가 연속된 문자열이 해시 함수로 변환된 해시 인덱스를 검색할 수 있다.The searching of the component of the name search method according to an embodiment of the present invention may include searching for a component of the content name corresponding to the previous level and a string of the content of the content name corresponding to the current level in the hash table corresponding to the current level You can search for a hash index that has been converted to a hash function.
본 발명의 일실시예에 따른 이름 검색 방법은 현재 레벨에 대응하는 해시 테이블에서 상기 해시 함수를 사용하여 변환된 컴포넌트가 검색되지 않는 경우, 이전 레벨의 해시 태이블에 포함된 마지막으로 검색된 출력 페이스로 상기 콘텐츠 이름에 대응하는 콘텐츠 요청 패킷을 전송하는 단계를 더 포함할 수 있다.The name search method according to an embodiment of the present invention is a method in which when a component that is transformed using the hash function in the hash table corresponding to the current level is not searched, And transmitting a content request packet corresponding to the content name.
본 발명의 일실시예에 따른 이름 검색 방법은 NPT의 레벨들 별로 생성된 블룸 필터로 콘텐츠 이름을 검색하는 단계; 및 상기 블룸 필터의 검색 결과에 기초하여 상기 블룸 필터에 대응하는 해시 테이블에서 상기 콘텐츠 이름을 검색하는 단계를 포함할 수 있다.A method for searching for names according to an exemplary embodiment of the present invention includes searching for a content name using a bloom filter generated for each level of NPT; And retrieving the content name from the hash table corresponding to the Bloom filter based on the search result of the Bloom filter.
본 발명의 일실시예에 따른 이름 검색 방법의 블룸 필터로 콘텐츠 이름을 검색하는 단계는, NPT의 현재 레벨의 블룸 필터에 대응하는 해시 테이블에서 상기 콘텐츠 이름이 검색되는 경우, NPT의 다음 레벨의 블룸 필터로 콘텐츠 이름을 검색할 수 있다.The step of searching for a content name using a Bloom filter of a name search method according to an exemplary embodiment of the present invention may include searching for a content name in a hash table corresponding to a Bloom filter of a current level of NPT, You can search for content names with filters.
본 발명의 일실시예에 따른 이름 검색 방법의 해시 테이블에서 상기 콘텐츠 이름을 검색하는 단계는 상기 블룸 필터의 검색 결과가 양성인 경우, 상기 블룸 필터에 대응하는 해시 테이블에서 상기 콘텐츠 이름을 검색하는 단계; 및 상기 블룸 필터의 검색 결과가 음성이거나, 상기 해시 테이블에서 상기 콘텐츠 이름이 검색되지 않는 경우, 검색을 종료하는 단계를 포함할 수 있다.The searching of the content name in the hash table of the name search method according to an exemplary embodiment of the present invention may include searching for the content name in the hash table corresponding to the Bloom filter when the search result of the Bloom filter is positive. And terminating the search if the search result of the Bloom filter is negative or the content name is not found in the hash table.
본 발명의 일실시예에 따른 이름 검색 방법의 검색을 종료하는 단계는 콘텐츠 이름이 마지막으로 검색된 해시 테이블에 포함된 출력 페이스로 상기 콘텐츠 이름에 대응하는 콘텐츠 요청 패킷을 전송할 수 있다.In the step of terminating the search of the name search method according to an embodiment of the present invention, the content request packet corresponding to the content name may be transmitted at an output face included in the hash table in which the content name was last searched.
본 발명의 일실시예에 따른 이름 검색 방법의 블룸 필터는 상기 이전 레벨에 대응하는 콘텐츠 이름의 컴포넌트와 현재 레벨에 대응하는 컴포넌트가 연속된 문자열을 포함할 수 있다.The bloom filter of the name search method according to an embodiment of the present invention may include a string of a component corresponding to the previous level and a string corresponding to a component corresponding to the current level.
본 발명의 일실시예에 따른 이름 검색 방법은 NPT의 레벨들 별로 생성된 블룸 필터들에서 콘텐츠 이름을 연쇄적으로 검색하는 단계; 및 상기 블룸 필터들의 검색 결과에 따른 해시 테이블에서 상기 콘텐츠 이름을 검색하는 단계를 포함할 수 있다.A method for searching for names according to an embodiment of the present invention includes searching for a content name categorically in bloom filters generated for each level of NPT; And retrieving the content name from a hash table according to a search result of the Bloom filters.
본 발명의 일실시예에 따른 이름 검색 방법의 콘텐츠 이름을 연쇄적으로 검색하는 단계는, NPT의 현재 레벨에 대응하는 블룸 필터로 콘텐츠 이름에 포함된 컴포넌트를 검색하는 단계; 상기 블룸 필터의 검색 결과가 양성인 경우, NPT의 다음 레벨의 블룸 필터로 콘텐츠 이름에 포함된 컴포넌트를 검색하는 단계; 및 상기 블룸 필터의 검색 결과가 음성이거나, 현재 레벨이 NPT의 마지막 레벨인 경우, 콘텐츠 이름의 연쇄 검색을 종료하는 단계를 포함할 수 있다.The step of searching for a content name cascade of a name search method according to an exemplary embodiment of the present invention includes searching for a component included in a content name with a bloom filter corresponding to a current level of the NPT; If the search result of the Bloom filter is positive, searching for a component included in the content name with a Bloom filter of the next level of the NPT; And terminating the cascade search of the content name if the search result of the Bloom filter is voice or the current level is the last level of the NPT.
본 발명의 일실시예에 따른 이름 검색 방법의 해시 테이블에서 상기 콘텐츠 이름을 검색하는 단계는, 상기 블룸 필터의 검색 결과가 음성인 경우, 이전 레벨의 블룸 필터에 대응하는 해시 테이블에서 상기 콘텐츠 이름을 검색할 수 있다.The searching of the content name in the hash table of the name search method according to an embodiment of the present invention may include searching the hash table corresponding to the bloom filter of the previous level, You can search.
본 발명의 일실시예에 따른 이름 검색 방법의 해시 테이블에서 상기 콘텐츠 이름을 검색하는 단계는, 블룸 필터의 검색 결과가 양성이며, 현재 레벨이 NPT의 마지막 레벨인 경우, 현재 레벨의 블룸 필터에 대응하는 해시 테이블에서 상기 콘텐츠 이름을 검색할 수 있다.The step of searching for the content name in the hash table of the name search method according to an embodiment of the present invention may include searching for a content name corresponding to the current level of Bloom filter when the search result of the Bloom filter is positive and the current level is the last level of NPT The content name can be retrieved from the hash table.
본 발명의 일실시예에 따른 이름 검색 방법의 해시 테이블에서 상기 콘텐츠 이름을 검색하는 단계는, 블룸 필터들의 검색 결과에 따른 해시 테이블에서 콘텐츠 이름이 검색되지 않는 경우, 이전 레벨의 블룸 필터에 대응하는 해시 테이블에서 상기 콘텐츠 이름을 검색할 수 있다.The searching of the content name in the hash table of the name search method according to an embodiment of the present invention may include searching for a content name in the hash table corresponding to the previous level Bloom filter The content name can be retrieved from the hash table.
본 발명의 일실시예에 의하면, 해시 테이블을 이용하여 NPT에 기초한 콘텐츠 이름을 검색할 수 있다. According to an embodiment of the present invention, a hash table can be used to retrieve the NPT-based content name.
또한, 본 발명의 일실시예에 의하면, 블룸 필터의 검색 결과에 따라 해시 테이블의 검색 여부를 결정함으로써, 해시 테이블의 접근 회수를 감소시켜 검색 속도를 향상 시킬 수 있다.According to an embodiment of the present invention, it is possible to improve the retrieval speed by decreasing the number of hash table accesses by determining whether or not to search the hash table according to the search result of the Bloom filter.
그리고, 본 발명의 일실시예에 의하면, NPT의 레벨 별로 생성된 블룸 필터를 연속으로 검색하여 최종 레벨을 검색하고, 최종 레벨의 해시 테이블을 검색함으로써, 해시 테이블의 접근 회수를 최소화시킬 수도 있다.According to an embodiment of the present invention, the number of accesses to the hash table can be minimized by continuously searching for the bloom filter generated for each level of the NPT, searching for the final level, and searching the hash table of the final level.
도 1은 본 발명의 일실시예에 따른 이름 검색 시스템을 나타내는 도면이다.
도 2는 본 발명의 일실시예에 따른 NPT의 일례이다.
도 3은 본 발명의 일실시예에 따른 이름 검색 정보 구축 과정에서 사용하는 코드의 일례이다.
도 4는 본 발명의 일실시예에 따른 블룸 필터 정보 구축 과정에서 사용하는 의사 코드의 일례이다.
도 5는 본 발명의 제1 실시예에 따른 이름 검색 장치를 나타내는 도면이다.
도 6은 본 발명의 제1 실시예에 따라 구축한 이름 검색 정보의 일례이다.
도 7은 본 발명의 제1 실시예에 따른 이름 검색 과정에서 사용하는 의사 코드의 일례이다.
도 8은 본 발명의 제2 실시예에 따른 이름 검색 장치를 나타내는 도면이다.
도 9는 본 발명의 제2 실시예에 따라 구축한 이름 검색 정보의 일례이다.
도 10은 본 발명의 일실시예에 따른 블룸 필터가 콘텐츠 이름 검색 과정에서 사용하는 코드의 일례이다.
도 11은 본 발명의 제2 실시예에 따른 이름 검색 과정에서 사용하는 의사 코드의 일례이다.
도 12는 본 발명의 제3 실시예에 따른 이름 검색 장치를 나타내는 도면이다.
도 13은 본 발명의 제3 실시예에 따른 이름 검색 과정에서 사용하는 의사 코드의 일례이다.
도 14는 본 발명의 일실시예에 따른 이름 검색 과정에서 해시 테이블에 접근한 회수의 일례이다.
도 15는 본 발명의 일실시예에 따른 이름 검색 과정에서 해시 테이블의 메모리 요구량의 일례이다.
도 16은 본 발명의 제1 실시예에 따른 이름 검색 방법을 도시한 플로우차트이다.
도 17은 본 발명의 제2 실시예에 따른 이름 검색 방법을 도시한 플로우차트이다.
도 18은 본 발명의 제3 실시예에 따른 이름 검색 방법을 도시한 플로우차트이다.1 is a diagram illustrating a name search system according to an embodiment of the present invention.
2 is an example of an NPT according to an embodiment of the present invention.
3 is an example of a code used in the name search information building process according to an embodiment of the present invention.
4 is an example of a pseudo code used in the process of building bloom filter information according to an embodiment of the present invention.
5 is a diagram illustrating a name search apparatus according to a first embodiment of the present invention.
6 is an example of name search information constructed according to the first embodiment of the present invention.
7 is an example of a pseudo code used in a name search process according to the first embodiment of the present invention.
FIG. 8 is a diagram illustrating a name search apparatus according to a second embodiment of the present invention.
9 is an example of name search information constructed according to the second embodiment of the present invention.
10 is an example of a code used by the Bloom filter in the process of searching for a content name according to an embodiment of the present invention.
11 is an example of a pseudo code used in the name searching process according to the second embodiment of the present invention.
12 is a diagram illustrating a name search apparatus according to a third embodiment of the present invention.
13 is an example of a pseudo code used in the name searching process according to the third embodiment of the present invention.
FIG. 14 is an example of the number of times the hash table is accessed in the name search process according to an embodiment of the present invention.
15 is an example of a memory requirement of a hash table in a name search process according to an embodiment of the present invention.
16 is a flowchart illustrating a name search method according to the first embodiment of the present invention.
17 is a flowchart illustrating a name search method according to a second embodiment of the present invention.
18 is a flowchart illustrating a method for searching for names according to a third embodiment of the present invention.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 본 발명의 일실시예에 따른 이름 검색 방법은 이름 검색 장치에 의해 수행될 수 있다. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. The name search method according to an embodiment of the present invention can be performed by a name search apparatus.
도 1은 본 발명의 일실시예에 따른 이름 검색 시스템을 나타내는 도면이다. 1 is a diagram illustrating a name search system according to an embodiment of the present invention.
도 1을 참고하면, 본 발명의 일실시예에 따른 이름 검색 시스템은 이름 검색 정보 구축 장치(110) 및 이름 검색 장치(120)를 포함할 수 있다. 이때, 이름 검색 시스템은 콘텐츠 중심 네트워킹 기술에서 콘텐츠가 저장된 노드로 요청 패킷을 전달하기 위한 출력 페이스를 검색하기 위하여 사용될 수 있다.Referring to FIG. 1, the name search system according to an embodiment of the present invention may include a name search
이름 검색 정보 구축 장치(110)는 복수의 레벨로 구성된 이름 프리픽스 트리(Name Prefix Trie: NPT)에 따라 콘텐츠 이름을 해시 테이블, 또는 블룸 필터에 저장하여 이름 검색 정보를 구축할 수 있다.The name search
도 1을 참고하면, 본 발명의 일실시예에 따른 이름 검색 정보 구축 장치(110)는 해시 테이블 생성부(111) 및 블룸 필터 생성부(112)를 포함할 수 있다.Referring to FIG. 1, the name search
해시 테이블 생성부(111)는 NPT의 레벨 별로 해시 테이블을 생성할 수 있다. 그리고, 해시 테이블 생성부(111)는 NPT의 레벨들 각각에 대응하는 콘텐츠 이름의 컴포넌트를 해시 함수로 변환하여 해시 테이블에 저장할 수 있다.The hash
이때, 해시 테이블 생성부(111)는 NPT의 레벨이 두 번째 레벨 이상인 경우, 이전 레벨에 대응하는 콘텐츠 이름의 컴포넌트와 현재 레벨에 대응하는 콘텐츠 이름의 컴포넌트가 연속된 문자열을 해시 함수로 변환할 수 있다.At this time, if the level of the NPT is equal to or higher than the second level, the hash
예를 들어, 해시 테이블 생성부(111)는 NPT의 첫 번째 레벨에 대응하는 콘텐츠 이름의 첫 번째 컴포넌트를 해시 함수로 변환하여 제1 해시 테이블에 저장할 수 있다. 그리고, 해시 테이블 생성부(111)는 콘텐츠 이름의 첫 번째 컴포넌트와 NPT의 두 번째 레벨에 대응하는 콘텐츠 이름의 두 번째 컴포넌트가 연속된 문자열을 해시 함수로 변환하여 제2 해시 테이블에 저장할 수 있다.For example, the hash
해시 테이블 생성부(111)의 동작은 이하 도 6을 참조하여 상세히 설명한다.The operation of the hash
블룸 필터 생성부(112)는 콘텐츠 이름의 컴포넌트가 해시 테이블 생성부(111)가 생성한 해시 테이블에 포함되었는지 여부를 나타내는 블룸 필터를 생성할 수 있다.The bloom
블룸 필터는 어떤 원소들의 집합이 주어졌을 때 주어진 집합에 속하는 원소들의 존재를 비트-벡터 형식으로 나타내는 정보 구조일 수 있다. 그리고, 블룸 필터는 입력과 일치하는 원소가 검색하는 대상인 집합 내에 존재하는지의 여부를 판단할 수 있다. 이때, 블룸 필터는 해시 함수를 이용하여 획득한 해시 인덱스에 검색한 원소를 저장하지 않고, 해시 인덱스에서 해당하는 비트 값을 1로 하여 원소의 존재를 표시할 수 있다.A Bloom filter can be an information structure that represents the existence of elements belonging to a given set in a bit-vector format given a set of elements. Then, the Bloom filter can determine whether or not an element matching the input exists in the set to be searched. At this time, the Bloom filter can display the existence of an element by storing the retrieved element in the hash index obtained by using the hash function, and setting the corresponding bit value in the hash index to 1.
이때, 블룸 필터 생성부(112)는 NPT의 레벨들 각각에 대응하는 콘텐츠 이름의 컴포넌트들을 미리 정해진 규칙에 따라 프로그래밍하여 블룸 필터를 생성할 수 있다. 그리고, 블룸 필터는 블룸 필터에 입력되는 정보들을 미리 정해진 규칙에 따라 인덱스로 변환할 수 있다. 또한, 블룸 필터는 인덱스로 변환된 입력 정보가 프로그래밍된 컴포넌트와 일치하는 경우, 해시 테이블에 NPT의 레벨들 각각에 대응하는 콘텐츠 이름의 컴포넌트가 포함된 것으로 판단할 수 있다.At this time, the bloom
블룸 필터 생성부(112)가 블룸 필터를 생성하는 과정은 이하 도 4를 참조하여 상세히 설명한다.The process of generating the bloom filter by the bloom
이름 검색 장치(120)는 이름 검색 정보 구축 장치(110)가 구축한 이름 검색 정보의 해시 테이블, 또는 블룸 필터로 콘텐츠 이름을 검색하여 콘텐츠가 저장된 노드로 요청 패킷을 전달하기 위한 출력 페이스를 검색할 수 있다.The
이때, 이름 검색 장치(120)는 해시 테이블만 이용하여 콘텐츠 이름을 검색할 수 있다. 이름 검색 장치(120)가 해시 테이블만 이용하여 콘텐츠 이름을 검색하는 구체적인 구성 및 동작은 이하 도 5를 참조하여 상세히 설명한다.At this time, the
또한, 이름 검색 장치(120)는 블룸 필터를 선 필터로 이용하여 해시 테이블이 콘텐츠 이름이 포함되었는지 여부를 확인할 수 있다. 그리고, 이름 검색 장치(120)는 블룸 필터의 확인 결과에 따라 콘텐츠 이름을 검색할 수 있다. In addition, the
예를 들어, 이름 검색 장치(120)는 블룸 필터로 콘텐츠 이름이 포함된 것으로 확인된 해시 테이블에서 콘텐츠 이름을 검색하는 과정을 NPT의 레벨들 별로 콘텐츠 이름의 마지막 컴포넌트가 검색될 때까지 반복할 수 있다. 이름 검색 장치(120)가 블룸 필터로 콘텐츠 이름이 포함된 것으로 확인된 해시 테이블에서 콘텐츠 이름을 검색하는 구체적인 구성 및 동작은 이하 도 8을 참조하여 상세히 설명한다.For example, the
또한, 이름 검색 장치(120)는 블룸 필터로 해시 테이블에 콘텐츠 이름이 포함된 것으로 확인된 경우, 해시 테이블에서 콘텐츠 이름을 검색하는 과정을 생략하고, 하위 레벨에서 블룸 필터를 적용함으로써, 블룸 필터를 연속으로 적용할 수 있다. 이때, 이름 검색 장치(120)는 블룸 필터를 연속으로 적용하여 콘텐츠 이름의 마지막 컴포넌트가 포함된 NPT의 레벨을 먼저 검색하고, 마지막 컴포넌트가 포함된 레벨의 해시 테이블에서 콘텐츠 이름을 검색할 수 있다. 이름 검색 장치(120)가 블룸 필터를 연속으로 적용하여 콘텐츠 이름을 검색하는 구체적인 구성 및 동작은 이하 도 12를 참조하여 상세히 설명한다.In addition, if it is confirmed that the content name is included in the hash table by the Bloom filter, the
도 2는 본 발명의 일실시예에 따른 NPT의 일례이다.2 is an example of an NPT according to an embodiment of the present invention.
콘텐츠가 저장된 위치를 나타내는 콘텐츠 이름은 복수의 컴포넌트로 구성될 수 있다. 예를 들어, 콘텐츠 이름은 URL에 기초하여 결정될 수 있다. 이때, URL은 URL을 구성하는 각각의 컴포넌트를 슬래시(/) 또는 점(.)으로 구분할 수 있다. 예를 들어, "youtube.com/user/PewDiePie"와 같은 URL은 youtube, com, user, PewDiePie, 4개의 컴포넌트로 구성될 수 있다.The content name indicating the location where the content is stored may be composed of a plurality of components. For example, the content name can be determined based on the URL. At this time, the URL can distinguish each component constituting the URL by a slash (/) or a dot (.). For example, a URL such as "youtube.com/user/PewDiePie" can consist of four components: youtube, com, user, PewDiePie.
이때, 이름 검색 정보 구축 장치(110)는 URL에서 온점(.)으로 구분되는 컴포넌트는 역방향으로 뒤집고, 슬래시(/) 이후의 컴포넌트들의 순서는 유지함으로써, 이름 검색 정보의 콘텐츠 이름으로 사용할 수 있다. 또한, 콘텐츠 이름을 구성하는 컴포넌트 간 구분은 슬래시(/)를 이용할 수 있다.At this time, the name search
예를 들어, 이름 검색 정보 구축 장치(110)는 "youtube.com/user/PewDiePie"와 같은 URL을 기초로 "com/youtube/user/PewDiePie"라는 콘텐츠 이름을 결정할 수 있다.For example, the name search
NPT는 트라이 기반의 이름 검색 알고리즘이며, 도 2는 이름 검색 정보 구축 장치(110)가 결정한 10개의 콘텐츠 이름을 이용하여 구성된 NPT의 일례이다.NPT is a tri-based name search algorithm, and FIG. 2 is an example of an NPT configured by using ten content names determined by the name search
이때, NPT는 콘텐츠 이름에 포함된 컴포넌트의 수에 따라 최대 레벨이 결정될 수 있다.At this time, the NPT can be determined at a maximum level according to the number of components included in the content name.
예를 들어, 콘텐츠 이름(210)은 구성하는 컴포넌트가 "kr", "or", "visitkorea"의 3개이므로, 콘텐츠 이름(210)의 최대 레벨은 3일 수 있다. 또한, 콘텐츠 이름(220)은 구성하는 컴포넌트가 "com", "youtube", "user", "PewDiePie"의 4개이므로, 콘텐츠 이름(220)의 최대 레벨은 4일 수 있다.For example, the
즉, NPT는 콘텐츠 이름에 따라 최대 레벨이 서로 다를 수 있다.That is, the NPTs may have different maximum levels depending on the content name.
도 3은 본 발명의 일실시예에 따른 이름 검색 정보 구축 과정에서 사용하는 코드의 일례이다.3 is an example of a code used in the name search information building process according to an embodiment of the present invention.
먼저 해시 테이블 생성부(111)는 NPT의 레벨 별로 해시 테이블을 생성할 수 있다.First, the hash
다음으로, 해시 테이블 생성부(111)는 도 3의 코드에 도시된 바와 같이 NPT의 레벨 별로 생성된 해시 테이블에 FIB의 엔트리에 해당하는 콘텐츠 이름을 저장할 수 있다. 이때, 해시 테이블 생성부(111)는 첫 번째 레벨 해시 테이블부터 마지막 레벨 해시 테이블까지 순차적으로 콘텐츠 이름을 저장할 수 있다.Next, the hash
구체적으로, 해시 테이블 생성부(111)는 콘텐츠 이름의 첫 번째 컴포넌트로 구성된 문자열을 해시 함수로 변환하여 제1 해시 인덱스를 얻을 수 있다. 그리고, 해시 테이블 생성부(111)는 첫 번째 해시 테이블에서 제1 해시 인덱스에 대응하는 인덱스에 첫 번째 컴포넌트로 구성된 문자열을 저장할 수 있다.Specifically, the hash
다음으로, 해시 테이블 생성부(111)는 콘텐츠 이름의 첫 번째 컴포넌트와 두 번째 컴포넌트가 연속된(concatenation) 문자열을 해시 함수로 변환하여 제2 해시 인덱스를 얻을 수 있다. 그리고, 해시 테이블 생성부(111)는 두 번째 해시 테이블에서 제2 해시 인덱스에 대응하는 인덱스에 콘텐츠 이름의 첫 번째 컴포넌트와 두 번째 컴포넌트가 연속된 문자열을 저장할 수 있다.Next, the hash
그리고, 해시 테이블 생성부(111)는 상기 과정을 콘텐츠 이름의 첫 번째 컴포넌트에서 마지막 컴포넌트까지 연속된 문자열이 해시 테이블에 저장될 때까지 수행할 수 있다. 또한, 해시 테이블 생성부(111)는 콘텐츠 이름의 마지막 컴포넌트가 해시 테이블에 저장될 때, 출력 페이스(face)의 정보를 함께 저장할 수 있다.The hash
그리고, 해시 테이블 생성부(111)는 콘텐츠 이름들 각각을 도 3의 코드에 입력하여 콘텐츠 이름에 대응하는 해시 테이블들을 생성할 수 있다.The hash
도 4는 본 발명의 일실시예에 따른 블룸 필터 정보 구축 과정에서 사용하는 의사 코드의 일례이다.4 is an example of a pseudo code used in the process of building bloom filter information according to an embodiment of the present invention.
먼저, 블룸 필터 생성부(112)는 블룸 필터의 모든 색인의 비트-벡터 값을 0으로 초기화할 수 있다.First, the bloom
다음으로, 블룸 필터 생성부(112)는 도 4의 코드에 도시된 바와 같이 문자열에 포함된 컴포넌트 x의 정보를 해시 함수에 입력하여 블룸 필터를 프로그래밍할 위치를 나타내는 색인(for i = 1, …, k) 를 출력할 수 있다. 이때, 미리 프로그래밍된 컴포넌트와 동일한 색인이 출력되는 경우, 블룸 필터 생성부(112)는 해당 색인의 비트-벡터 값을 1로 유지할 수 있다.Next, the bloom
그리고, 블룸 필터 생성부(112)는 문자열에 포함된 모든 컴포넌트에 대해서, 해당 색인에 대응되는 비트-벡터 값을 1로 지정하여 블룸 필터를 생성할 수 있다.The bloom
도 5는 본 발명의 제1 실시예에 따른 이름 검색 장치를 나타내는 도면이다. 5 is a diagram illustrating a name search apparatus according to a first embodiment of the present invention.
본 발명의 제1 실시예에 따른 이름 검색 장치(120)는 해시 테이블만 이용하여 콘텐츠 이름을 검색하는 해싱 기반-NPT 알고리즘을 수행할 수 있다.The
도 5를 참고하면, 본 발명의 제1 실시예에 따른 이름 검색 장치(120)는 콘텐츠 이름 변환부(510), 및 해시 테이블 검색부(520)를 포함할 수 있다.Referring to FIG. 5, the
콘텐츠 이름 변환부(510)는 NPT의 레벨들 각각에 대응하는 콘텐츠 이름의 컴포넌트를 해시 함수로 변환할 수 있다.The content
이때, 콘텐츠 이름 변환부(510)는 해시 테이블 생성부(111)가 NPT의 레벨들 별로 해시 테이블을 생성하는 과정에서 해시 인덱스의 생성에 이용된 해시 함수를 이용하여 NPT의 레벨들 각각에 대응하는 콘텐츠 이름의 컴포넌트를 변환할 수 있다.At this time, the hash
또한, NPT의 레벨이 두 번째 레벨 이상인 경우, 콘텐츠 이름 변환부(510)는 이전 레벨에 대응하는 콘텐츠 이름의 컴포넌트와 현재 레벨에 대응하는 콘텐츠 이름의 컴포넌트가 연속된 문자열을 해시 함수로 변환할 수 있다.If the level of the NPT is equal to or higher than the second level, the content
해시 테이블 검색부(520)는 NPT의 레벨들 별로 생성된 해시 테이블에서 콘텐츠 이름 변환부(510)가 해시 함수로 변환한 컴포넌트를 검색할 수 있다. 이때, 해시 테이블 검색부(520)는 현재 레벨에 대응하는 해시 테이블에서 이전 레벨에 대응하는 콘텐츠 이름의 컴포넌트와 현재 레벨에 대응하는 콘텐츠 이름의 컴포넌트가 연속된 문자열이 해시 함수로 변환된 해시 인덱스를 검색할 수 있다.The hash
또한, 해시 테이블 검색부(520)는 현재 레벨의 해시 테이블에서 컴포넌트가 검색되는 경우, 다음 레벨의 해시 테이블에서 컴포넌트를 검색할 수 있다. In addition, the hash
이때, 해시 테이블 검색부(520)는 현재 레벨의 해시 테이블에서 컴포넌트가 검색되지 않거나, 현재 레벨이 콘텐츠 이름에 대응하는 NPT의 마지막 레벨이 될 때까지 상기 과정을 반복할 수 있다.At this time, the hash
그리고, 현재 레벨에 대응하는 해시 테이블에서 상기 해시 함수로 변환된 컴포넌트가 검색되지 않는 경우, 해시 테이블 검색부(520)는 이전 레벨의 해시 테이블에 포함된 출력 페이스 중에서 마지막으로 검색된 출력 페이스로 상기 콘텐츠 이름에 대응하는 콘텐츠 요청 패킷을 전송할 수 있다.If the component having been converted into the hash function is not found in the hash table corresponding to the current level, the hash
도 6은 본 발명의 제1 실시예에 따라 구축한 이름 검색 정보의 일례이다.6 is an example of name search information constructed according to the first embodiment of the present invention.
이름 검색 정보 구축 장치(110)의 해시 테이블 생성부(111)는 NPT(610)의 레벨 별로 해시 테이블(620)을 생성할 수 있다.The hash
다음으로, 해시 테이블 생성부(111)는 NPT의 레벨 별로 생성된 해시 테이블(620)에 콘텐츠 이름을 저장할 수 있다. Next, the hash
구체적으로, 해시 테이블 생성부(111)는 콘텐츠 이름의 첫 번째 컴포넌트인 "com"으로 구성된 문자열을 해시 함수로 변환하여 제1 해시 인덱스를 얻을 수 있다. 그리고, 해시 테이블 생성부(111)는 첫 번째 해시 테이블(621)에서 제1 해시 인덱스에 대응하는 인덱스에 "com"으로 구성된 문자열을 저장할 수 있다.Specifically, the hash
다음으로, 해시 테이블 생성부(111)는 콘텐츠 이름의 첫 번째 컴포넌트인 "com"와 두 번째 컴포넌트인 "facebook"가 연속된 문자열인 "com/facebook" 을 해시 함수로 변환하여 제2 해시 인덱스를 얻을 수 있다. 그리고, 해시 테이블 생성부(111)는 두 번째 해시 테이블(622)에서 제2 해시 인덱스에 대응하는 인덱스에 문자열 "com/facebook"을 저장할 수 있다. 이때, 문자열 "com/facebook" 와 관련된 콘텐츠 이름(611)는 도 6에 도시된 바와 같이 2레벨이 NPT의 마지막 레벨일 수 있다. 따라서, 해시 테이블 생성부(111)는 문자열 "com/facebook"과 관련된 이름 검색 정보의 구축을 종료할 수 있다.Next, the hash
또한, 콘텐츠 이름(612)이 "com/youtube/user/PewDiePie"인 경우, 콘텐츠 이름(612)는 4개의 컴포넌트로 구성될 수 있다. 따라서, 해당 콘텐츠는 도 6에 도시된 바와 같이 4레벨이 NPT의 마지막 레벨일 수 있다. 그리고, 해시 테이블 생성부(111)는 도 6에 도시된 바와 같이 네 번째 해시 테이블(623)에서 제4 해시 인덱스에 대응하는 인덱스에 문자열" com/youtube/user/PewDiePie"를 저장할 수 있다.Further, when the
도 7은 본 발명의 제1 실시예에 따른 이름 검색 과정에서 사용하는 의사 코드의 일례이다.7 is an example of a pseudo code used in a name search process according to the first embodiment of the present invention.
해시 테이블 검색부(520)는 도 7의 코드에 도시된 바와 같이 수신한 정보 요청 패킷에 따라 패킷의 콘텐츠 이름의 첫 번째 컴포넌트를 사용하여 첫 번째 레벨부터 해시 테이블 검색을 시작할 수 있다.The hash
첫 번째 레벨의 해시 테이블에 정보 요청 패킷과 일치하는 콘텐츠 이름의 컴포넌트가 존재하는 경우, 해시 테이블 검색부(520)는 두 번째 레벨의 해시 테이블에서 콘텐츠 이름을 검색할 수 있다. 이때, 해시 테이블 검색부(520)가 두 번째 레벨의 해시 테이블에서 검색하는 이름은 콘텐츠의 이름에 포함된 처음 두 개 컴포넌트가 연속된 문자열일 수 있다.If there is a component of the content name matching the information request packet in the first level hash table, the hash
그리고, 해시 테이블 검색부(520)는 상기 과정을 해시 테이블에서 일치하는 문자열을 발견하지 못했거나 마지막 레벨에 도달할 때까지 반복할 수 있다.The hash
또한, FIB의 콘텐츠 이름 검색 방법은 IP 주소 검색에서와 마찬가지로 최장 길이 일치(Longest Prefix Matching) 룰이 적용될 수 있다. 따라서, 해시 테이블에서 검색된 인덱스에 인터레스트(Interest) 패킷을 내보내야 할 페이스가 저장된 경우, 해시 테이블 검색부(520)는 해시 테이블에 저장된 페이스를 저장할 수 있다. 그리고, NPT는 이전 레벨의 문자열이 다음 레벨의 문자열을 포함하는 특성을 가지고 있으므로, 현재 레벨의 해시 테이블에서 콘텐츠 이름과 일치하는 문자열을 검색하지 못한 경우, NPT의 다음 레벨에서도 일치하는 문자열이 검색되지 않는다. 따라서, 현재 레벨의 해시 테이블에서 콘텐츠 이름과 일치하는 문자열을 검색하지 못한 경우, 해시 테이블 검색부(520)는 검색을 종료하고 가장 최근에 저장된 페이스로 정보 요청 패킷을 전송할 수 있다.In addition, the content name search method of the FIB can be applied to the longest prefix matching rule as in the IP address search. Accordingly, if a pace for sending an interest packet to an index retrieved from the hash table is stored, the hash
도 8은 본 발명의 제2 실시예에 따른 이름 검색 장치를 나타내는 도면이다. FIG. 8 is a diagram illustrating a name search apparatus according to a second embodiment of the present invention.
본 발명의 제2 실시예에 따른 이름 검색 장치(120)는 블룸 필터로 콘텐츠 이름이 포함된 것으로 확인된 해시 테이블에서 콘텐츠 이름을 검색하는 NPT-BF(Bloom Filter) 알고리즘을 수행할 수 있다.The
도 8을 참고하면, 본 발명의 제2 실시예에 따른 이름 검색 장치(120)는 콘텐츠 이름 변환부(810), 블룸 필터 검색부(820) 및 해시 테이블 검색부(830)를 포함할 수 있다.8, the
콘텐츠 이름 변환부(810)는 해시 함수를 사용하여 NPT의 레벨들 각각에 대응하는 콘텐츠 이름의 컴포넌트를 변환할 수 있다.The content
이때, 콘텐츠 이름 변환부(810)는 해시 테이블 생성부(111)가 NPT의 레벨들 별로 해시 테이블을 생성하는 과정에서 해시 인덱스의 생성에 이용된 해시 함수 및 블룸 필터 생성부(112)가 NPT의 레벨들 별로 해시 테이블에 대응하는 블룸 필터를 생성하는 과정에서 블룸 필터의 생성에 이용된 해시 함수를 이용하여 NPT의 레벨들 각각에 대응하는 콘텐츠 이름의 컴포넌트를 변환할 수 있다.In this case, the hash
블룸 필터 검색부(820)는 NPT의 레벨들 별로 생성된 블룸 필터로 콘텐츠 이름을 검색할 수 있다. 이때, 블룸 필터는 이전 레벨에 대응하는 콘텐츠 이름의 컴포넌트와 현재 레벨에 대응하는 컴포넌트가 연속된 문자열을 포함할 수 있다.The bloom
해시 테이블 검색부(830)는 블룸 필터 검색부(820)의 검색 결과에 기초하여 블룸 필터에 대응하는 해시 테이블에서 콘텐츠 이름을 검색할 수 있다.The hash
블룸 필터의 검색 결과가 양성인 경우, 해시 테이블 검색부(830)는 블룸 필터에 대응하는 해시 테이블에서 콘텐츠 이름을 검색할 수 있다. If the search result of the bloom filter is positive, the hash
또한, 블룸 필터의 검색 결과가 음성이거나, 해시 테이블에서 콘텐츠 이름이 검색되지 않는 경우, 해시 테이블 검색부(830)는 콘텐츠 이름의 검색을 종료할 수 있다. 이때, 해시 테이블 검색부(830)는 콘텐츠 이름이 마지막으로 검색된 해시 테이블에 포함된 출력 페이스로 콘텐츠 이름에 대응하는 콘텐츠 요청 패킷을 전송할 수 있다.If the search result of the Bloom filter is voice or the content name is not found in the hash table, the hash
그리고, 해시 테이블 검색부(830)가 해시 테이블에서 콘텐츠 이름을 검색 성공한 경우, 블룸 필터 검색부(820)는 NPT의 다음 레벨의 블룸 필터로 콘텐츠 이름을 검색할 수 있다.If the hash
본 발명의 제2 실시예에 따른 이름 검색 장치(120)는 블룸 필터를 선 필터로 사용하여 해시 테이블에 콘텐츠 이름이 포함될 가능성을 식별할 수 있다. 그리고, 이름 검색 장치(120)는 해시 테이블에 콘텐츠 이름이 포함될 가능성이 높은 경우에만 해시 테이블에서 콘텐츠 이름을 검색함으로써, 콘텐츠 이름이 저장되지 않은 해시 테이블을 검색하기 위한 시간, 및 처리 능력 낭비를 최소화할 수 있다.The
도 9는 본 발명의 제2 실시예에 따라 구축한 이름 검색 정보의 일례이다.9 is an example of name search information constructed according to the second embodiment of the present invention.
이름 검색 정보 구축 장치(110)의 해시 테이블 생성부(111)는 NPT(920)의 레벨 별로 해시 테이블(930)을 생성할 수 있다. The hash
다음으로, 해시 테이블 생성부(111)는 NPT의 레벨 별로 생성된 해시 테이블(930)에 콘텐츠 이름을 저장할 수 있다. 이때, 해시 테이블 생성부(111)는 NPT의 레벨들 각각에 대응하는 콘텐츠 이름의 컴포넌트를 해시 함수로 변환하여 해시 테이블에 저장할 수 있다. 또한, 해시 테이블 생성부(111)는 NPT의 레벨이 두 번째 레벨 이상인 경우, 이전 레벨에 대응하는 콘텐츠 이름의 컴포넌트와 현재 레벨에 대응하는 콘텐츠 이름의 컴포넌트가 연속된 문자열을 해시 함수로 변환할 수 있다.Next, the hash
또한, 블룸 필터 생성부(111)는 NPT의 레벨 및 해시 테이블(930)에 대응하는 블룸 필터(910)를 생성할 수 있다. 이때, 블룸 필터 생성부(111)는 해시 테이블(930)에 저장된 문자열을 미리 정해진 해시 함수, 또는 해시 테이블 생성부(111)가 사용한 해시 함수로 프로그래밍하여 블룸 필터를 생성할 수 있다.In addition, the bloom
도 10은 본 발명의 일실시예에 따른 블룸 필터가 콘텐츠 이름 검색 과정에서 사용하는 코드의 일례이다.10 is an example of a code used by the Bloom filter in the process of searching for a content name according to an embodiment of the present invention.
블룸 필터 검색부(820)는 NPT의 레벨들 별로 생성된 블룸 필터로 콘텐츠 이름을 검색할 수 있다.The bloom
이때, 블룸 필터 검색부(820)는 도 10의 코드에 도시된 바와 같이 입력과 블룸 필터에 저장된 값을 비교하는 쿼리 과정을 진행할 수 있다. 이때, 블룸 필터의 입력은 콘텐츠 이름 변환부(810)가 콘텐츠 이름을 변환하여 생성한 블룸 필터 색인일 수 있다.At this time, the bloom
콘텐츠 이름 변환부(810)는 블룸 필터 생성부(112)가 블룸 필터 프로그래밍 과정에서 사용했던 해시 함수와 동일한 해시 함수로 콘텐츠 이름을 변환하여 블룸 필터 색인을 출력할 수 있다. 또한, 콘텐츠 이름 변환부(810)가 출력하는 블룸 필터 색인의 개수는 블룸 필터 생성부(112)가 블룸 필터를 프로그래밍 될 때의 색인 개수와 동일하다.The content
그리고, 블룸 필터 검색부(820)는 블룸 필터에서 콘텐츠 이름 변환부(810)가 출력하는 블룸 필터 색인의 위치에 해당하는 비트-벡터 값을 확인할 수 있다.The bloom
이때, 블룸 필터의 입력에 따라 블룸 필터 검색부(820)가 확인한 모든 색인의 비트-벡터 값이 1인 경우, 블룸 필터의 입력은 블룸 필터를 통과할 수 있다. 그리고, 블룸 필터 검색부(820)는 블룸 필터의 검색 결과를 양성이라고 한다.In this case, when the bit-vector value of all indexes checked by the bloom
또한, 블룸 필터의 입력에 따라 블룸 필터 검색부(820)가 확인한 색인의 비트-벡터 값 중 적어도 하나의 0이 포함된 경우, 블룸 필터의 입력은 블룸 필터를 통과할 수 없다. 그리고, 블룸 필터 검색부(820)는 블룸 필터의 검색 결과를 음성이라고 한다.In addition, when at least one of the bit-vector values of the index determined by the bloom
도 11은 본 발명의 제2 실시예에 따른 이름 검색 과정에서 사용하는 의사 코드의 일례이다.11 is an example of a pseudo code used in the name searching process according to the second embodiment of the present invention.
블룸 필터 검색부(820)는 도 11의 코드에 도시된 바와 같이 블룸 필터를 먼저 검색할 수 있다. 그리고, 해시 테이블 검색부(830)는 블룸 필터의 검색 결과가 양성인 경우에만 해시 테이블에 접근하여 콘텐츠 이름이 해시 테이블에 존재하는지 확인할 수 있다.The bloom
콘텐츠 이름이 해시 테이블에 존재하는 경우, 블룸 필터 쿼리 결과가 참-양성이므로 블룸 필터 검색부(820)는 다음 레벨의 블룸 필터를 쿼리할 수 있다.If the content name exists in the hash table, the Bloom
그러나, 콘텐츠 이름이 해시 테이블에 존재하지 않는 경우, 블룸 필터 쿼리 결과가 음성이거나 거짓-양성이므로 블룸 필터 검색부(820)는 검색을 종료할 수 있다. 이전 레벨에서 검색하여 저장, 또는 기억한 출력 페이스가 존재하는 경우, 해시 테이블 검색부(830)는 저장한 출력 페이스를 출력할 수 있다.However, if the content name does not exist in the hash table, the Bloom
즉, 이름 검색 장치(120)는 해시 테이블에 콘텐츠 이름이 포함될 가능성이 없는 경우, 해당 해시 테이블에 접근하지 않고 검색을 종료할 수 있다. 따라서, 이름 검색 장치(120)는 해시 테이블 접근회수를 감소시킴으로써 검색 성능을 향상시킬 수 있다. That is, if there is no possibility that the content name is included in the hash table, the
도 12는 본 발명의 제3 실시예에 따른 이름 검색 장치를 나타내는 도면이다. 12 is a diagram illustrating a name search apparatus according to a third embodiment of the present invention.
본 발명의 제3 실시예에 따른 이름 검색 장치(120)는 블룸 필터를 연속으로 적용하여 콘텐츠 이름을 검색하는 NPT-BF-Chaining 알고리즘을 수행할 수 있다. 이때, NPT-BF-Chaining 알고리즘은 블룸 필터의 거짓양성의 확률이 매우 적다는 점을 이용한 알고리즘이다. The
구체적으로 블룸 필터가 양성을 출력한 경우, 이름 검색 장치(120)는 블룸 필터의 결과를 잠정적으로 참-양성이라 판단하고, 다음 레벨로 블룸 필터 쿼리를 계속 진행할 수 있다.Specifically, if the Bloom filter outputs a positive result, the
즉, 이름 검색 장치(120)는 블룸 필터 검색을 통하여 최장 길이 일치 콘텐츠 이름이 있는 레벨을 먼저 식별할 수 있다. 그리고, 이름 검색 장치(120)는 식별한 레벨에 해당하는 해시 테이블에서 콘텐츠 이름을 검색함으로써, 빠르게 콘텐츠 이름을 검색할 수 있다. 또한, 식별한 레벨에 해당하는 해시 테이블에 콘텐츠 이름이 존재하지 않는 경우, 백-트래킹(back-tracking)을 통하여 이전 레벨로 검색을 진행할 수 있다.That is, the
도 12를 참고하면, 본 발명의 제3 실시예에 따른 이름 검색 장치(120)는 콘텐츠 이름 변환부(1210), 블룸 필터 검색부(1220) 및 해시 테이블 검색부(1230)를 포함할 수 있다.12, the
콘텐츠 이름 변환부(1210)는 NPT의 레벨들 각각에 대응하는 콘텐츠 이름의 컴포넌트를 해시 함수로 변환할 수 있다.The content
이때, 콘텐츠 이름 변환부(1210)는 해시 테이블 생성부(111)가 NPT의 레벨들 별로 해시 테이블을 생성하는 과정에서 해시 인덱스의 생성에 이용된 해시 함수 및 블룸 필터 생성부(112)가 NPT의 레벨들 별로 해시 테이블에 대응하는 블룸 필터를 생성하는 과정에서 블룸 필터의 생성에 이용된 해시 함수를 이용하여 NPT의 레벨들 각각에 대응하는 콘텐츠 이름의 컴포넌트를 변환할 수 있다.At this time, the content
블룸 필터 검색부(1220)는 NPT의 레벨들 별로 생성된 블룸 필터들에서 콘텐츠 이름을 연쇄적으로 검색할 수 있다. 이때, 블룸 필터는 이전 레벨에 대응하는 콘텐츠 이름의 컴포넌트와 현재 레벨에 대응하는 컴포넌트가 연속된 문자열을 포함할 수 있다.The bloom
또한, 블룸 필터 검색부(1220)는 NPT의 현재 레벨에 대응하는 블룸 필터로 콘텐츠 이름에 포함된 컴포넌트를 검색할 수 있다. 이때, 블룸 필터의 검색 결과가 양성인 경우, 블룸 필터 검색부(1220)는 NPT의 다음 레벨의 블룸 필터로 콘텐츠 이름에 포함된 컴포넌트를 검색할 수 있다. In addition, the bloom
그리고, 블룸 필터의 검색 결과가 음성이거나, 현재 레벨이 NPT의 마지막 레벨인 경우, 블룸 필터 검색부(1220)는 콘텐츠 이름의 연쇄 검색을 종료할 수 있다.If the search result of the Bloom filter is voice or the current level is the last level of the NPT, the Bloom
해시 테이블 검색부(1230)는 블룸 필터 검색부(1220)의 검색 결과에 따른 해시 테이블에서 콘텐츠 이름을 검색할 수 있다.The hash
블룸 필터 검색부(1220)의 블룸 필터의 검색 결과가 음성인 경우, 해시 테이블 검색부(1230)는 이전 레벨의 블룸 필터에 대응하는 해시 테이블에서 콘텐츠 이름을 검색할 수 있다.If the search result of the bloom filter of the bloom
또한, 현재 레벨이 NPT의 마지막 레벨인 경우, 해시 테이블 검색부(1230)는 현재 레벨의 블룸 필터에 대응하는 해시 테이블에서 콘텐츠 이름을 검색할 수 있다. 이때, 현재 레벨의 블룸 필터에 대응하는 해시 테이블이 블룸 필터들의 검색 결과에 따른 해시 테이블일 수 있다. 그리고, 현재 레벨의 블룸 필터에 대응하는 해시 테이블에서 콘텐츠 이름이 검색되지 않는 경우, 해시 테이블 검색부(1230)는 백-트래킹(back-tracking)을 통하여 이전 레벨의 블룸 필터에 대응하는 해시 테이블에서 콘텐츠 이름을 검색할 수 있다.Also, if the current level is the last level of the NPT, the hash
즉, 본 발명의 제3 실시예에 따른 이름 검색 장치(120)는 NPT의 레벨들 별로 생성된 블룸 필터들에서 콘텐츠 이름을 연쇄적으로 검색하여 음성의 결과가 나온 경우 혹은 NPT의 마지막 레벨인 경우와 같이 최장 길이 일치 콘텐츠 이름이 있는 레벨을 먼저 식별할 수 있다. 그리고, 이름 검색 장치(120)는 식별한 레벨에 해당하는 해시 테이블에서 콘텐츠 이름을 검색함으로써, 빠르게 콘텐츠 이름을 검색할 수 있다.That is, the
도 13은 본 발명의 제3 실시예에 따른 이름 검색 과정에서 사용하는 의사 코드의 일례이다.13 is an example of a pseudo code used in the name searching process according to the third embodiment of the present invention.
블룸 필터 검색부(1220)는 도 13의 코드에 도시된 바와 같이 블룸 필터를 먼저 검색할 수 있다. 그리고, 블룸 필터의 검색 결과가 양성인 경우, 블룸 필터 검색부(1220)는 다음 레벨의 블룸 필터를 연쇄적으로 검색할 수 있다.The bloom
이때, 블룸 필터 검색부(1220)는 블룸 필터의 검색 결과로 음성이 출력되거나, NPT의 마지막 레벨의 블룸 필터를 검색할 때까지 연쇄적으로 다음 레벨 블룸 필터를 검색할 수 있다.At this time, the bloom
블룸 필터의 검색 결과로 음성이 출력되었다는 것은 콘텐츠 이름과 일치하는 컴포넌트들의 연속된 문자열이 현재 레벨 및 다음 레벨들의 해시 테이블에 존재하지 않는 다는 의미이다. 따라서, 블룸 필터의 검색 결과로 음성이 출력되는 경우, 해시 테이블 검색부(1230)는 이전 레벨의 해시 테이블에서 콘텐츠 이름을 검색할 수 있다.The output of a voice as a search result of the bloom filter means that a continuous string of components matching the content name does not exist in the hash table of the current level and the next level. Therefore, when a voice is output as a search result of the Bloom filter, the hash
이전 레벨의 해시 테이블에 콘텐츠 이름이 존재하는 경우, 이전 레벨의 블룸 필터 검색 결과가 참-양성이라는 의미이다. 따라서, 해시 테이블 검색부(1230)는 출력 페이스를 반환하고 검색을 종료할 수 있다.If there is a content name in the hash table of the previous level, it means that the previous level Bloom filter search result is true-positive. Thus, the hash
그러나, 이전 레벨의 해시 테이블에 콘텐츠 이름이 존재하지 않는 경우, 이전 레벨의 블룸 필터 검색 결과가 거짓-양성이라는 의미이다. 따라서, 해시 테이블 검색부(1230)는 콘텐츠 이름이 검색될 때까지 이전 레벨의 해시 테이블을 연쇄적으로 재 검색하는 백-트래킹을 수행할 수 있다.However, if there is no content name in the hash table of the previous level, it means that the previous level Bloom filter search result is false-positive. Thus, the hash
본 발명의 제3 실시예에 따른 이름 검색 장치(120)는 레벨 별로 생성된 블룸 필터를 연쇄적으로 검색하여 콘텐츠 이름이 존재할 가능성이 있는 최종 레벨을 알아낼 수 있다. 따라서, 본 발명의 제3 실시예에 따른 이름 검색 장치(120)는 백-트래킹이 발생하지 않는 경우, 하나의 입력 당 한 번의 해시 테이블에 접근하여 검색을 완료할 수 있다. The
도 14는 본 발명의 일실시예에 따른 이름 검색 과정에서 해시 테이블에 접근한 회수의 일례이다.FIG. 14 is an example of the number of times the hash table is accessed in the name search process according to an embodiment of the present invention.
도 14는 CCN 콘텐츠 이름과 같이 계층적 특성을 가지는 URL을 이용하여 본 발명의 제1 실시예, 제2 실시예 및 제3 실시예의 성능 평가를 수행한 결과의 일례이다.FIG. 14 is an example of a result of performance evaluation of the first, second, and third embodiments of the present invention using a URL having a hierarchical characteristic such as a CCN content name.
이때, 제1 실시예에 따른 이름 검색 장치(120)가 수행하는 해싱 기반-NPT, 제2 실시예에 따른 이름 검색 장치(120)가 수행하는 NPT-BF 알고리즘 및 제3 실시예에 따른 이름 검색 장치(120)가 수행하는 NPT-BF-Chaining 알고리즘은 10,000 개, 50,000 개, 100,000 개, 또는 300,000 개의 콘텐츠 이름을 이용해 시뮬레이션될 수 있다. 이때, 콘텐츠 이름의 개수를 각각 10k, 50k, 100k, 300k로 간단하게 표현될 수 있다.In this case, the hashing-based NPT performed by the
또한, 콘텐츠 이름을 검색할 경우, 각각 30,000 개, 150,000 개, 300,000 개, 또는 900,000 개의 콘텐츠 이름을 입력으로 이용할 수 있다.Also, when searching for content names, 30,000, 150,000, 300,000, or 900,000 content names, respectively, are available as input.
표 1은 해시 테이블에 저장된 엔트리와 해시 인덱스 충돌로 인해 연결 리스트에 저장된 엔트리들의 정보 구조를 나타내고 있다. 표 2는 각각의 실험에서 level-1부터 level-8까지에 저장된 콘텐츠 이름들의 개수를 나타내고 있다. 표 3은 구축된 트라이의 특성을 보인다.Table 1 shows the information structure of the entries stored in the linked list due to the hash index conflict and the entries stored in the hash table. Table 2 shows the number of content names stored in level-1 to level-8 in each experiment. Table 3 shows the characteristics of the trie constructed.
이름 검색 장치(120)는 해시 함수로 CRC-64 생성기를 사용할 수 있다. 이때, CRC 내의 모든 플립-플랍(flip-flop)은 0으로 초기화 되어 있으며 입력 값이 한 비트씩 들어오면서 플립-플랍에 저장된 값과 차례로 XOR할 수 있다. 그리고, 입력 비트열의 마지막 비트까지 들어오면 CRC 생성기의 연산 수행을 종료하고 플립-플랍에 저장되어 있는 값을 CRC 코드로 출력할 수 있다.The
또한, 블룸 필터의 프로그래밍에 사용된 해시 함수의 개수 k는 블룸 필터의 크기에 따라서 정해질 수 있다. 만약 컴포넌트 하나당 k개의 해시 함수를 사용했다면 프로그래밍 해야 할 위치 색인을 k개 얻을 수 있다.In addition, the number k of hash functions used in the programming of the Bloom filter can be determined according to the size of the Bloom filter. If you have used k hash functions per component, you can get k position indexes to be programmed.
그리고, 블룸 필터에 저장되어야 하는 전체 노드의 개수를 N이라고 할 때 N보다 큰 2의 배수를 블룸 필터의 기본크기로 정하면, 블룸 필터의 기본크기인 N'는 수학식 1로 결정될 수 있다.If the number of all nodes to be stored in the Bloom filter is N, if N is a multiple of 2 larger than N, the basic size of the Bloom filter, N ', can be determined by Equation (1).
또한, 기본 블룸 필터의 크기에 확장배수를 곱하여 크기가 M인 블룸 필터를 사용할 경우, 프로그래밍 되는 색인의 개수도 늘어나야 올바른 성능을 얻을 수 있다. 이때, 프로그래밍 해야 할 색인은 블룸 필터의 크기에 비례하여 증가할 수 있다. 예를 들어, 블룸 필터의 해시 함수의 개수 k는 수학식 2로 결정될 수 있다.Also, if you use a Bloom filter with a size of M by multiplying the size of the default Bloom filter by an expansion multiple, the number of indexes that are programmed must also be increased to get the right performance. At this time, the index to be programmed may increase in proportion to the size of the Bloom filter. For example, the number k of hash functions of the Bloom filter can be determined by Equation (2).
블룸 필터의 크기를 기본 크기 N’에 확장배수 4, 8, 16을 곱하여 4N’, 8N’, 16N’으로 변화시키는 경우, 블룸 필터의 크기가 FIB 검색 속도에 어떤 영향을 주는지 확인할 수 있다. If the size of the Bloom filter is changed to 4N ', 8N', 16N 'by multiplying the basic size N' by the expansion multiples of 4, 8, and 16, it is possible to confirm how the size of the Bloom filter affects the FIB search speed.
표 4는 10,000개의 콘텐츠 이름을 사용하여 구축하고 구축에 사용된 10,000개의 콘텐츠 이름과 구축에 사용되지 않은 20,000개의 콘텐츠 이름을 추가해 총 30,000개의 콘텐츠 이름으로 검색한 결과일 수 있다.Table 4 can be the result of a search with a total of 30,000 content names, using 10,000 content names to build and add 10,000 content names used in the build and 20,000 content names not used in the build.
표 4에서 해싱기반-NPT 알고리즘은 평균 2.11번 해시 테이블에 접근하였는데 이는 10,000개의 콘텐츠 이름 중 약 90%가 level-2에 저장되어 있어 level-3에서 일치하는 노드가 없는 경우 검색을 종료할 수 있기 때문이다. In Table 4, the hashing-based NPT algorithm averaged 2.11 hash tables, which means that about 90% of the 10,000 content names are stored in level-2, so that if there are no matching nodes in level-3, Because.
표 4에서 NPT-BF 알고리즘은 블룸 필터의 크기가 4N’, 8N’, 16N’ 일 때 해시 테이블에 평균적으로 1.46번, 1.43번, 1.43번 접근하여 출력 페이스를 찾았다. 블룸 필터의 크기가 클수록 전체 해시 테이블 접근 횟수가 43771번에서 42908번으로, 그리고 42860번으로 감소하였다. 그리고 거짓-양성의 수는 4N’일 때 884번 이었으나 8N’일 때는 47번으로 감소하고 16N’일 때는 0번이 된다. 거짓 양성이 줄어든 숫자만큼 해시 테이블 접근 횟수가 함께 감소하였다. In Table 4, the NPT-BF algorithm approaches the hash table 1.46 times, 1.43 times, 1.43 times when the Bloom filter size is 4N ', 8N', 16N ', and finds the output face. As the size of Bloom filter increases, the total number of hash table accesses decreases from 43771 to 42908 and to 42860. And the number of false-positive is 884 when it is 4N ', but it decreases to 47 when it is 8N' and it becomes 0 when it is 16N '. The number of hash table accesses decreased as the number of false positives decreased.
반면, 음성의 결과가 나올 때까지 블룸 필터 쿼리를 연쇄적으로 진행한 후에 해시 테이블에 접근하는 NPT-BF-Chaining 알고리즘은 평균 0.997 접근하였다. 즉, 대부분 한 번만 해시 테이블에 접근하거나 아예 접근하지 않았다. On the other hand, the NPT-BF-Chaining algorithm approaching the hash table after approx. In other words, most once did not access the hash table or access it at all.
즉, NPT-BF-Chaining 알고리즘은 선-필터 검색과정을 통해 콘텐츠 이름이 존재할 가능성이 있는 최장 레벨을 알아낼 수 있기 때문에 최장 레벨의 해시 테이블에 접근함으로써 단 한 번의 오프-칩 접근으로 원하는 검색 결과를 찾아낼 수 있었다. 또한 첫 번째 레벨의 블룸 필터 검색 결과가 음성인 경우, 해시 테이블에 콘텐츠 이름이 존재하지 않는다는 의미이므로, 해시 테이블에 접근할 필요가 없게 되어 단 한 번도 오프-칩 메모리에 접근하지 않을 수 있다. In other words, the NPT-BF-Chaining algorithm can find the longest possible level of content name through the pre-filter search process. Therefore, by accessing the longest level hash table, I could find it. Also, if the first-level Bloom filter search result is speech, it means that there is no content name in the hash table, so there is no need to access the hash table, and the user may not access the off-chip memory even once.
거짓-양성이 일어나지 않으면 해시 테이블에 한 번만 검색해서 결과를 찾을 수 있지만 거짓-양성이 일어날 때에는 거짓-양성이 일어난 만큼 백-트래킹을 해야 하며 백-트래킹을 많이 할수록 해시 테이블 검색 횟수가 증가해 검색 성능을 저하시킨다. False - If the test does not occur, you can search the hashtable only once and find the result, but when false-positive occurs, you need to backtrack as much as false-positive. As the backtracking increases, the number of hashtable searches increases Degrade performance.
표 5 내지 표 7은 콘텐츠 이름의 개수가 각각 50k, 100k, 300k인 경우의 실험 결과일 수 있다. 표 5 내지 표 7에 따르면, 거짓-양성이 가장 많이 일어나는 4N’ 블룸 필터에서도 최대 3번의 백-트래킹이 일어나는 것으로 확인될 수 있다.Tables 5 to 7 can be experimental results when the number of content names is 50k, 100k, and 300k, respectively. According to Tables 5 to 7, it can be confirmed that up to three back-tracking occur even in the 4N 'bloom filter in which the most false-positive occurs.
또한, 블룸 필터의 메모리 사용량은 빌드에 사용되는 입력의 개수가 같을 때 NPT-BF 알고리즘과 NPT-BF-Chaining 알고리즘에서 동일하다. 왜냐하면 블룸 필터와 해시 테이블은 동일하고 블룸 필터와 해시 테이블의 검색 방식만 다르기 때문이다. In addition, the memory usage of the Bloom filter is the same in the NPT-BF and NPT-BF-Chaining algorithms when the number of inputs used in the build is the same. This is because Bloom filters and hash tables are identical, and Bloom filters and hash tables are different.
도 14는 블룸 필터 사이즈를 16N으로 고정하고 프로그래밍에 사용된 컴포넌트의 개수를 증가시킬 경우, 해시 테이블에 접근한 총 횟수를 각 알고리즘 별로 나타낸 그래프이다. 도 14에 도시된 바에 따르면, 입력 트레이스가 적을수록 해시 테이블에 접근하는 횟수도 적을 수 있다. 또한 NPT, NPT-BF, NPT-BF-Chaining 알고리즘 순으로 해시 테이블의 접근 횟수가 감소함을 볼 수 있다. 14 is a graph showing the total number of accesses to the hash table by each algorithm when the Bloom filter size is fixed to 16N and the number of components used for programming is increased. As shown in FIG. 14, the smaller the number of input traces, the smaller the number of accesses to the hash table. In addition, it can be seen that the number of hash table accesses decreases in the order of NPT, NPT-BF, and NPT-BF-Chaining algorithm.
도 15는 본 발명의 일실시예에 따른 이름 검색 과정에서 해시 테이블의 메모리 요구량의 일례이다.15 is an example of a memory requirement of a hash table in a name search process according to an embodiment of the present invention.
표 8은 NPT의 레벨 별 해시 테이블의 데이터 구조의 일례이다. 또한, 표 9는 콘텐츠 이름의 개수에 따른 해시 테이블의 메모리 요구량일 수 있다. 그리고, 도 15는 표 9를 그래프로 나타낸 도면일 수 있다. 이때, 해시 테이블의 크기는 빌드에 사용되는 입력의 개수가 같다면 NPT, NPT-BF, NPT-BF-Chaining 알고리즘에서 동일할 수 있다. 그리고, 콘텐츠 이름의 개수에 비례하여 해시 테이블의 크기가 증가할 수 있다.Table 8 is an example of the data structure of the level-specific hash table of the NPT. Table 9 may be the memory requirement of the hash table according to the number of content names. 15 is a graph showing Table 9. In this case, the size of the hash table can be the same in the NPT, NPT-BF, and NPT-BF-Chaining algorithms if the number of inputs used in the build is the same. The size of the hash table can be increased in proportion to the number of the content names.
도 16은 본 발명의 제1 실시예에 따른 이름 검색 방법을 도시한 플로우차트이다.16 is a flowchart illustrating a name search method according to the first embodiment of the present invention.
단계(1610)에서 콘텐츠 이름 변환부(510)는 해시 함수를 사용하여 NPT의 레벨들 각각에 대응하는 콘텐츠 이름의 컴포넌트를 변환 할 수 있다. 이때, 콘텐츠 이름 변환부(510)는 해시 테이블 생성부(111)가 NPT의 레벨들 별로 해시 테이블을 생성하는 과정에서 해시 인덱스의 생성에 이용된 해시 함수를 이용하여 NPT의 레벨들 각각에 대응하는 콘텐츠 이름의 컴포넌트를 변환할 수 있다. 또한, NPT의 레벨이 두 번째 레벨 이상인 경우, 콘텐츠 이름 변환부(510)는 이전 레벨에 대응하는 콘텐츠 이름의 컴포넌트와 현재 레벨에 대응하는 콘텐츠 이름의 컴포넌트가 연속된 문자열을 해시 함수로 변환할 수 있다.In
단계(1620)에서 해시 테이블 검색부(520)는 단계(1610)에서 해시 함수로 변환한 컴포넌트를 NPT의 레벨들 별로 생성된 해시 테이블에서 검색할 수 있다.In
단계(1630)에서 해시 테이블 검색부(520)는 단계(1620)에서 콘텐츠 이름의 컴포넌트가 검색되었는지 여부를 확인할 수 있다. 단계(1620)에서 콘텐츠 이름의 컴포넌트가 검색된 경우, 해시 테이블 검색부(520)는 단계(1640)을 수행할 수 있다. 또한, 단계(1620)에서 콘텐츠 이름의 컴포넌트가 검색되지 않은 경우, 해시 테이블 검색부(520)는 단계(1660)을 수행할 수 있다.In
단계(1640)에서 해시 테이블 검색부(520)는 현재 레벨이 NPT의 마지막 레벨인지 여부를 확인할 수 있다. 현재 레벨이 NPT의 마지막 레벨인 경우, 해시 테이블 검색부(520)는 단계(1660)을 수행할 수 있다. 또한, 현재 레벨이 NPT의 마지막 레벨이 아닌 경우, 해시 테이블 검색부(520)는 단계(1650)을 수행할 수 있다.In
단계(1650)에서 해시 테이블 검색부(520)는 NPT의 레벨을 증가시킬 수 있다. 즉, 해시 테이블 검색부(520)는 다음 레벨의 해시 테이블에서 단계(1610) 내지 단계(1640)을 수행할 수 있다.In
단계(1660)에서 해시 테이블 검색부(520)는 마지막으로 콘텐츠 이름이 검색된 레벨에 따라 콘텐츠 이름을 식별하고, 식별된 콘텐츠 이름에 해당하는 출력 페이스로 요청 패킷을 전달할 수 있다. 이때, 단계(1630)에서 콘텐츠 이름이 검색되지 않은 경우, 마지막으로 콘텐츠 이름이 검색된 이전 레벨의 해시 테이블에 포함된 출력 페이스로 상기 콘텐츠 이름에 대응하는 콘텐츠 요청 패킷을 전송할 수 있다.In
그리고, 현재 레벨이 NPT의 마지막 레벨인 경우, 마지막으로 콘텐츠 이름이 검색된 레벨은 현재 레벨이고, 해시 테이블 검색부(520)는 현재 레벨의 해시 테이블에서 콘텐츠 이름을 검색하여 식별할 수 있다.If the current level is the last level of the NPT, the level at which the content name is finally searched is the current level, and the hash
도 17은 본 발명의 제2 실시예에 따른 이름 검색 방법을 도시한 플로우차트이다.17 is a flowchart illustrating a name search method according to a second embodiment of the present invention.
단계(1710)에서 콘텐츠 이름 변환부(810)는 해시 함수를 사용하여 NPT의 레벨들 각각에 대응하는 콘텐츠 이름의 컴포넌트를 변환 할 수 있다. 이때, 콘텐츠 이름 변환부(810)는 해시 테이블 생성부(111)가 NPT의 레벨들 별로 해시 테이블을 생성하는 과정에서 해시 인덱스의 생성에 이용된 해시 함수 및 블룸 필터 생성부(112)가 NPT의 레벨들 별로 해시 테이블에 대응하는 블룸 필터를 생성하는 과정에서 블룸 필터의 생성에 이용된 해시 함수를 이용하여 NPT의 레벨들 각각에 대응하는 콘텐츠 이름의 컴포넌트를 변환할 수 있다.In
단계(1720)에서 블룸 필터 검색부(820)는 NPT의 레벨들 별로 생성된 블룸 필터로 단계(1710)에서 변환된 콘텐츠 이름을 검색할 수 있다. 이때, 블룸 필터의 출력이 양성인 경우, 블룸 필터 검색부(820)는 콘텐츠 이름이 검색되었다고 판단할 수 있다. 또한, 블룸 필터의 출력이 음성인 경우, 블룸 필터 검색부(820)는 콘텐츠 이름이 검색되지 않았다고 판단할 수 있다.In
단계(1730)에서 해시 테이블 검색부(830)는 단계(1720)에서 콘텐츠 이름이 검색되었는지 여부를 확인할 수 있다. 단계(1720)에서 콘텐츠 이름의 컴포넌트가 검색된 경우, 해시 테이블 검색부(830)는 단계(1740)을 수행할 수 있다. 또한, 단계(1720)에서 콘텐츠 이름이 검색되지 않은 경우, 해시 테이블 검색부(830)는 단계(1780)을 수행할 수 있다.In
단계(1740)에서 해시 테이블 검색부(830)는 블룸 필터에 대응하는 해시 테이블에서 콘텐츠 이름을 검색할 수 있다.In
단계(1750)에서 해시 테이블 검색부(830)는 단계(1740)에서 콘텐츠 이름의 컴포넌트가 검색되었는지 여부를 확인할 수 있다. 단계(1740)에서 콘텐츠 이름의 컴포넌트가 검색된 경우, 해시 테이블 검색부(830)는 단계(1760)을 수행할 수 있다. 또한, 단계(1740)에서 콘텐츠 이름의 컴포넌트가 검색되지 않은 경우, 해시 테이블 검색부(830)는 단계(1780)을 수행할 수 있다.In
단계(1760)에서 해시 테이블 검색부(830)는 현재 레벨이 NPT의 마지막 레벨인지 여부를 확인할 수 있다. 현재 레벨이 NPT의 마지막 레벨인 경우, 해시 테이블 검색부(830)는 단계(1780)을 수행할 수 있다. 또한, 현재 레벨이 NPT의 마지막 레벨이 아닌 경우, 해시 테이블 검색부(830)는 단계(1770)을 수행할 수 있다.In
단계(1770)에서 해시 테이블 검색부(830)는 NPT의 레벨을 증가시킬 수 있다. 즉, 해시 테이블 검색부(830)는 다음 레벨의 해시 테이블에서 단계(1710) 내지 단계(1760)을 수행할 수 있다.In
단계(1780)에서 해시 테이블 검색부(830)는 마지막으로 콘텐츠 이름이 검색된 레벨에 따라 콘텐츠 이름을 식별하고, 식별된 콘텐츠 이름에 해당하는 출력 페이스로 요청 패킷을 전달할 수 있다. 이때, 단계(1750)에서 콘텐츠 이름이 검색되지 않은 경우, 마지막으로 콘텐츠 이름이 검색된 이전 레벨의 해시 테이블에 포함된 출력 페이스로 상기 콘텐츠 이름에 대응하는 콘텐츠 요청 패킷을 전송할 수 있다.In
그리고, 현재 레벨이 NPT의 마지막 레벨인 경우, 마지막으로 콘텐츠 이름이 검색된 레벨은 현재 레벨이고, 해시 테이블 검색부(830)는 현재 레벨의 해시 테이블에서 콘텐츠 이름을 검색하여 식별할 수 있다.If the current level is the last level of the NPT, the level at which the content name is searched last is the current level, and the hash
도 18은 본 발명의 제3 실시예에 따른 이름 검색 방법을 도시한 플로우차트이다.18 is a flowchart illustrating a method for searching for names according to a third embodiment of the present invention.
단계(1810)에서 콘텐츠 이름 변환부(1210)는 해시 함수를 사용하여 NPT의 레벨들 각각에 대응하는 콘텐츠 이름의 컴포넌트를 변환 할 수 있다. 이때, 콘텐츠 이름 변환부(1210)는 해시 테이블 생성부(111)가 NPT의 레벨들 별로 해시 테이블을 생성하는 과정에서 해시 인덱스의 생성에 이용된 해시 함수 및 블룸 필터 생성부(112)가 NPT의 레벨들 별로 해시 테이블에 대응하는 블룸 필터를 생성하는 과정에서 블룸 필터의 생성에 이용된 해시 함수를 이용하여 NPT의 레벨들 각각에 대응하는 콘텐츠 이름의 컴포넌트를 변환할 수 있다.In
단계(1820)에서 블룸 필터 검색부(1220)는 NPT의 레벨들 별로 생성된 블룸 필터로 단계(1810)에서 변환된 콘텐츠 이름을 검색할 수 있다. 이때, 블룸 필터의 출력이 양성인 경우, 블룸 필터 검색부(1220)는 콘텐츠 이름이 검색되었다고 판단할 수 있다. 또한, 블룸 필터의 출력이 음성인 경우, 블룸 필터 검색부(1220)는 콘텐츠 이름이 검색되지 않았다고 판단할 수 있다.In
단계(1830)에서 블룸 필터 검색부(1220)는 단계(1820)에서 콘텐츠 이름이 검색되었는지 여부를 확인할 수 있다. 단계(1820)에서 콘텐츠 이름의 컴포넌트가 검색된 경우, 블룸 필터 검색부(1220)는 단계(1840)을 수행할 수 있다. 또한, 단계(1820)에서 콘텐츠 이름이 검색되지 않은 경우, 블룸 필터 검색부(1220)는 단계(1835)을 수행할 수 있다.In
단계(1835)에서 해시 테이블 검색부(1230)는 NPT의 레벨을 감소시킬 수 있다. 즉, 해시 테이블 검색부(1230)는 이전 레벨의 해시 테이블에서 단계(1860) 내지 단계(1870)을 수행하여 이전 레벨의 해시 테이블 중에서 콘텐츠 이름을 연쇄적으로 검색할 수 있다.In
단계(1840)에서 블룸 필터 검색부(1220)는 현재 레벨이 NPT의 마지막 레벨인지 여부를 확인할 수 있다. 현재 레벨이 NPT의 마지막 레벨인 경우, 블룸 필터 검색부(1220)는 단계(1860)을 수행할 수 있다. 또한, 현재 레벨이 NPT의 마지막 레벨이 아닌 경우, 블룸 필터 검색부(1220)는 단계(1850)을 수행할 수 있다.In
단계(1850)에서 블룸 필터 검색부(1220)는 NPT의 레벨을 증가시킬 수 있다. 즉, 블룸 필터 검색부(1220)는 다음 레벨의 블룸 필터에서 단계(1810) 내지 단계(1820)을 수행하여 콘텐츠 이름을 연쇄적으로 검색할 수 있다. In
단계(1860)에서 해시 테이블 검색부(1230)는 블룸 필터 검색부(1220)의 검색 결과에 따른 해시 테이블에서 콘텐츠 이름을 검색할 수 있다. 구체적으로, 단계(1830)에서 블룸 필터 검색부(1220)의 블룸 필터의 검색 결과가 음성인 경우, 해시 테이블 검색부(1230)는 이전 레벨의 블룸 필터에 대응하는 해시 테이블에서 콘텐츠 이름을 검색할 수 있다. 또한, 현재 레벨이 NPT의 마지막 레벨인 경우, 해시 테이블 검색부(1230)는 현재 레벨의 블룸 필터에 대응하는 해시 테이블에서 콘텐츠 이름을 검색할 수 있다. In
단계(1870)에서 해시 테이블 검색부(1230)는 단계(1860)에서 콘텐츠 이름이 검색되었는지 여부를 확인할 수 있다. 단계(1860)에서 콘텐츠 이름이 검색된 경우, 해시 테이블 검색부(1230)는 단계(1890)을 수행할 수 있다. 또한, 단계(1860)에서 콘텐츠 이름이 검색되지 않은 경우, 해시 테이블 검색부(1230)는 단계(1880)을 수행할 수 있다.In
단계(1880)에서 해시 테이블 검색부(1230)는 백 트래킹을 수행할 수 있다. 구체적으로, 단계(1830)에서 콘텐츠 이름이 검색되고, 단계(1870)에서 콘텐츠 이름이 검색되지 않는 경우, 해시 테이블 검색부(1230)는 단계(1830)의 검색 결과를 거짓 양성으로 판단할 수 있다. 이때, 해시 테이블 검색부(1230)는 NPT의 레벨을 감소시켜 백트래킹을 수행할 수 있다. In
단계(1890)에서 해시 테이블 검색부(1230)는 단계(1860)에서 검색된 콘텐츠 이름을 식별하고, 식별된 콘텐츠 이름에 해당하는 출력 페이스로 요청 패킷을 전달할 수 있다. In
본 발명은 해시 테이블을 이용하여 NPT에 기초한 콘텐츠 이름을 검색할 수 있다. 또한, 본 발명은 블룸 필터의 검색 결과에 따라 해시 테이블의 검색 여부를 결정함으로써, 해시 테이블의 접근 회수를 감소시켜 검색 속도를 향상 시킬 수 있다.The present invention can retrieve the NPT-based content name using a hash table. In addition, according to the present invention, it is possible to improve the retrieval speed by decreasing the number of accesses to the hash table by determining whether to search the hash table according to the search result of the Bloom filter.
그리고, 본 발명은 NPT의 레벨 별로 생성된 블룸 필터를 연속으로 검색하여 최종 레벨을 검색하고, 최종 레벨의 해시 테이블을 검색함으로써, 해시 테이블의 접근 회수를 최소화시킬 수도 있다.The present invention can minimize the number of hash table accesses by continuously searching for the bloom filter generated for each level of the NPT, searching for the final level, and searching the hash table of the final level.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.While the invention has been shown and described with reference to certain preferred embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. This is possible.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the equivalents of the claims, as well as the claims.
110: 이름 검색 정보 구축 장치
120: 이름 검색 장치
820: 블룸 필터 검색부
830: 해시 테이블 검색부110: name search information construction apparatus
120: name search device
820: Bloom filter search unit
830: Hash table search unit
Claims (15)
해시 함수를 사용하여 NPT의 레벨들 각각에 대응하는 콘텐츠 이름의 컴포넌트를 변환하는 단계; 및
NPT의 레벨들 별로 생성된 해시 테이블에서 상기 해시 함수를 사용하여 변환된 컴포넌트를 검색하는 단계
를 포함하고,
상기 컴포넌트를 변환하는 단계는,
NPT의 레벨이 두 번째 레벨 이상인 경우, 해시 함수를 사용하여 이전 레벨에 대응하는 콘텐츠 이름의 컴포넌트와 현재 레벨에 대응하는 콘텐츠 이름의 컴포넌트가 연속된 문자열을 변환하는 이름 검색 방법.A name search method using a name prefix trie (NPT) comprising a plurality of levels,
Transforming a component of a content name corresponding to each of the levels of the NPT using a hash function; And
Searching for a transformed component using the hash function in a hash table generated for each level of NPT
Lt; / RTI >
Wherein transforming the component comprises:
And a component of the content name corresponding to the current level and a component of the content name corresponding to the current level are converted using the hash function when the level of the NPT is equal to or higher than the second level.
상기 컴포넌트를 변환하는 단계는,
NPT의 레벨들 별로 생성된 해시 테이블에서 해시 인덱스의 생성에 이용된 해시 함수를 이용하여 NPT의 레벨들 각각에 대응하는 콘텐츠 이름의 컴포넌트를 변환하는 이름 검색 방법.The method according to claim 1,
Wherein transforming the component comprises:
A name retrieval method for transforming a component of a content name corresponding to each level of an NPT using a hash function used for generating a hash index in a hash table generated for each level of the NPT.
상기 컴포넌트를 검색하는 단계는,
현재 레벨에 대응하는 해시 테이블에서 이전 레벨에 대응하는 콘텐츠 이름의 컴포넌트와 현재 레벨에 대응하는 콘텐츠 이름의 컴포넌트가 연속된 문자열이 해시 함수로 변환된 해시 인덱스를 검색하는 이름 검색 방법.The method according to claim 1,
The method of claim 1,
A hash index in which a string of components of a content name corresponding to a previous level and a component of a content name corresponding to a current level are converted into a hash function is retrieved from a hash table corresponding to a current level.
해시 함수를 사용하여 NPT의 레벨들 각각에 대응하는 콘텐츠 이름의 컴포넌트를 변환하는 단계;
NPT의 레벨들 별로 생성된 해시 테이블에서 상기 해시 함수를 사용하여 변환된 컴포넌트를 검색하는 단계; 및
현재 레벨에 대응하는 해시 테이블에서 상기 해시 함수를 사용하여 변환된 컴포넌트가 검색되지 않는 경우, 이전 레벨의 해시 태이블에 포함된 마지막으로 검색된 출력 페이스로 상기 콘텐츠 이름에 대응하는 콘텐츠 요청 패킷을 전송하는 단계
를 포함하는 이름 검색 방법.A name search method using a name prefix trie (NPT) comprising a plurality of levels,
Transforming a component of a content name corresponding to each of the levels of the NPT using a hash function;
Retrieving a transformed component using the hash function in a hash table generated for each level of the NPT; And
If the converted component is not found using the hash function in the hash table corresponding to the current level, the content request packet corresponding to the content name is transmitted in the last retrieved output face contained in the hash table of the previous level step
≪ / RTI >
NPT의 레벨들 별로 생성된 블룸 필터로 콘텐츠 이름을 검색하는 단계; 및
상기 블룸 필터의 검색 결과에 기초하여 상기 블룸 필터에 대응하는 해시 테이블에서 상기 콘텐츠 이름을 검색하는 단계
를 포함하고,
상기 블룸 필터로 콘텐츠 이름을 검색하는 단계는,
NPT의 현재 레벨의 블룸 필터에 대응하는 해시 테이블에서 상기 콘텐츠 이름이 검색되는 경우, NPT의 다음 레벨의 블룸 필터로 콘텐츠 이름을 검색하는 이름 검색 방법.A name search method using a name prefix trie (NPT) comprising a plurality of levels,
Retrieving a content name with a Bloom filter generated for each level of the NPT; And
Retrieving the content name from the hash table corresponding to the Bloom filter based on the search result of the Bloom filter
Lt; / RTI >
The step of retrieving a content name with the Bloom filter comprises:
And searching for a content name by a Bloom filter of the next level of the NPT when the content name is retrieved from a hash table corresponding to a Bloom filter of a current level of the NPT.
NPT의 레벨들 별로 생성된 블룸 필터로 콘텐츠 이름을 검색하는 단계; 및
상기 블룸 필터의 검색 결과에 기초하여 상기 블룸 필터에 대응하는 해시 테이블에서 상기 콘텐츠 이름을 검색하는 단계
를 포함하고,
상기 해시 테이블에서 상기 콘텐츠 이름을 검색하는 단계는,
상기 블룸 필터의 검색 결과가 양성인 경우, 상기 블룸 필터에 대응하는 해시 테이블에서 상기 콘텐츠 이름을 검색하는 단계; 및
상기 블룸 필터의 검색 결과가 음성이거나, 상기 해시 테이블에서 상기 콘텐츠 이름이 검색되지 않는 경우, 검색을 종료하는 단계
를 포함하는 이름 검색 방법.A name search method using a name prefix trie (NPT) comprising a plurality of levels,
Retrieving a content name with a Bloom filter generated for each level of the NPT; And
Retrieving the content name from the hash table corresponding to the Bloom filter based on the search result of the Bloom filter
Lt; / RTI >
The step of retrieving the content name from the hash table includes:
Retrieving the content name from a hash table corresponding to the Bloom filter if the search result of the Bloom filter is positive; And
Ending the search if the search result of the Bloom filter is voice or the content name is not found in the hash table
≪ / RTI >
상기 검색을 종료하는 단계는,
콘텐츠 이름이 마지막으로 검색된 해시 테이블에 포함된 출력 페이스로 상기 콘텐츠 이름에 대응하는 콘텐츠 요청 패킷을 전송하는 이름 검색 방법.9. The method of claim 8,
The step of terminating the search comprises:
And transmits the content request packet corresponding to the content name to the output face included in the hash table in which the content name was last searched.
NPT의 레벨들 별로 생성된 블룸 필터로 콘텐츠 이름을 검색하는 단계; 및
상기 블룸 필터의 검색 결과에 기초하여 상기 블룸 필터에 대응하는 해시 테이블에서 상기 콘텐츠 이름을 검색하는 단계
를 포함하고,
상기 블룸 필터는,
이전 레벨에 대응하는 콘텐츠 이름의 컴포넌트와 현재 레벨에 대응하는 컴포넌트가 연속된 문자열을 포함하는 이름 검색 방법.A name search method using a name prefix trie (NPT) comprising a plurality of levels,
Retrieving a content name with a Bloom filter generated for each level of the NPT; And
Retrieving the content name from the hash table corresponding to the Bloom filter based on the search result of the Bloom filter
Lt; / RTI >
Wherein the bloom filter comprises:
And a component of the content name corresponding to the previous level and a component corresponding to the current level are consecutive.
NPT의 레벨들 별로 생성된 블룸 필터들에서 콘텐츠 이름을 연쇄적으로 검색하는 단계; 및
상기 블룸 필터들의 검색 결과에 따른 해시 테이블에서 상기 콘텐츠 이름을 검색하는 단계
를 포함하고,
상기 콘텐츠 이름을 연쇄적으로 검색하는 단계는,
NPT의 현재 레벨에 대응하는 블룸 필터로 콘텐츠 이름에 포함된 컴포넌트를 검색하는 단계;
상기 블룸 필터의 검색 결과가 양성인 경우, NPT의 다음 레벨의 블룸 필터로 콘텐츠 이름에 포함된 컴포넌트를 검색하는 단계; 및
상기 블룸 필터의 검색 결과가 음성이거나, 현재 레벨이 NPT의 마지막 레벨인 경우, 콘텐츠 이름의 연쇄 검색을 종료하는 단계
를 포함하는 이름 검색 방법.A name search method using a name prefix trie (NPT) comprising a plurality of levels,
Categorizing the content names in the bloom filters generated for each level of the NPT; And
Retrieving the content name from a hash table according to a search result of the Bloom filters
Lt; / RTI >
The method of claim 1,
Searching for a component included in the content name with a Bloom filter corresponding to the current level of the NPT;
If the search result of the Bloom filter is positive, searching for a component included in the content name with a Bloom filter of the next level of the NPT; And
Terminating the chained search of the content name if the search result of the Bloom filter is voice or the current level is the last level of the NPT
≪ / RTI >
상기 해시 테이블에서 상기 콘텐츠 이름을 검색하는 단계는,
상기 블룸 필터의 검색 결과가 음성인 경우, 이전 레벨의 블룸 필터에 대응하는 해시 테이블에서 상기 콘텐츠 이름을 검색하는 이름 검색 방법.12. The method of claim 11,
The step of retrieving the content name from the hash table includes:
And searching the hash table corresponding to the bloom filter of the previous level for the content name if the search result of the bloom filter is negative.
상기 해시 테이블에서 상기 콘텐츠 이름을 검색하는 단계는,
블룸 필터의 검색 결과가 양성이며, 현재 레벨이 NPT의 마지막 레벨인 경우, 현재 레벨의 블룸 필터에 대응하는 해시 테이블에서 상기 콘텐츠 이름을 검색하는 이름 검색 방법.12. The method of claim 11,
The step of retrieving the content name from the hash table includes:
Searching the content name in a hash table corresponding to a bloom filter of the current level if the search result of the bloom filter is positive and the current level is the last level of the NPT.
NPT의 레벨들 별로 생성된 블룸 필터들에서 콘텐츠 이름을 연쇄적으로 검색하는 단계; 및
상기 블룸 필터들의 검색 결과에 따른 해시 테이블에서 상기 콘텐츠 이름을 검색하는 단계
를 포함하고,
상기 해시 테이블에서 상기 콘텐츠 이름을 검색하는 단계는,
블룸 필터들의 검색 결과에 따른 해시 테이블에서 콘텐츠 이름이 검색되지 않는 경우, 이전 레벨의 블룸 필터에 대응하는 해시 테이블에서 상기 콘텐츠 이름을 검색하는 이름 검색 방법.
A name search method using a name prefix trie (NPT) comprising a plurality of levels,
Categorizing the content names in the bloom filters generated for each level of the NPT; And
Retrieving the content name from a hash table according to a search result of the Bloom filters
Lt; / RTI >
The step of retrieving the content name from the hash table includes:
And if the content name is not found in the hash table according to the search result of the bloom filters, the content name is searched in the hash table corresponding to the bloom filter of the previous level.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020140145334A KR101582050B1 (en) | 2014-10-24 | 2014-10-24 | Apparatus and method for searching name using bloom filter pre-searching |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020140145334A KR101582050B1 (en) | 2014-10-24 | 2014-10-24 | Apparatus and method for searching name using bloom filter pre-searching |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| KR101582050B1 true KR101582050B1 (en) | 2015-12-31 |
Family
ID=55129276
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020140145334A Expired - Fee Related KR101582050B1 (en) | 2014-10-24 | 2014-10-24 | Apparatus and method for searching name using bloom filter pre-searching |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR101582050B1 (en) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101664712B1 (en) * | 2015-06-19 | 2016-10-10 | 이화여자대학교 산학협력단 | Bloomfilter query apparatus and method for identifying true positiveness without accessing hashtable |
| KR101773716B1 (en) * | 2016-06-30 | 2017-09-12 | 이화여자대학교 산학협력단 | Content sharing method in content centric network and router at content centric network sharing content |
| KR101787899B1 (en) * | 2016-06-07 | 2017-10-19 | 이화여자대학교 산학협력단 | A bitmap generating method based on priority-name prefix trie and name prefix searching method using the bitmap |
| CN110019829A (en) * | 2017-09-19 | 2019-07-16 | 小草数语(北京)科技有限公司 | Data attribute determines method, apparatus |
| EP3931712A1 (en) * | 2019-03-01 | 2022-01-05 | Cyborg Inc. | System and method for statistics-based pattern searching of compressed data and encrypted data |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0764801A (en) * | 1993-08-31 | 1995-03-10 | Nec Software Ltd | User word retrieval system |
| KR20100010987A (en) * | 2008-07-24 | 2010-02-03 | 이화여자대학교 산학협력단 | Ip address lookup method and apparatus by using bloom filter and multi-hashing architecture |
| KR100996136B1 (en) * | 2009-06-25 | 2010-11-23 | 이화여자대학교 산학협력단 | Packet classifier and its method |
-
2014
- 2014-10-24 KR KR1020140145334A patent/KR101582050B1/en not_active Expired - Fee Related
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0764801A (en) * | 1993-08-31 | 1995-03-10 | Nec Software Ltd | User word retrieval system |
| KR20100010987A (en) * | 2008-07-24 | 2010-02-03 | 이화여자대학교 산학협력단 | Ip address lookup method and apparatus by using bloom filter and multi-hashing architecture |
| KR100996136B1 (en) * | 2009-06-25 | 2010-11-23 | 이화여자대학교 산학협력단 | Packet classifier and its method |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101664712B1 (en) * | 2015-06-19 | 2016-10-10 | 이화여자대학교 산학협력단 | Bloomfilter query apparatus and method for identifying true positiveness without accessing hashtable |
| KR101787899B1 (en) * | 2016-06-07 | 2017-10-19 | 이화여자대학교 산학협력단 | A bitmap generating method based on priority-name prefix trie and name prefix searching method using the bitmap |
| KR101773716B1 (en) * | 2016-06-30 | 2017-09-12 | 이화여자대학교 산학협력단 | Content sharing method in content centric network and router at content centric network sharing content |
| CN110019829A (en) * | 2017-09-19 | 2019-07-16 | 小草数语(北京)科技有限公司 | Data attribute determines method, apparatus |
| CN110019829B (en) * | 2017-09-19 | 2021-05-07 | 绿湾网络科技有限公司 | Data attribute determination method and device |
| EP3931712A1 (en) * | 2019-03-01 | 2022-01-05 | Cyborg Inc. | System and method for statistics-based pattern searching of compressed data and encrypted data |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102072203B1 (en) | A node and a method for generating shortened name increasing adaptability of hierarchical name in a content centric network | |
| US9647941B2 (en) | Hierarchical hashing for longest prefix matching | |
| CN105704041B (en) | Method, system, and storage medium for CCN routing | |
| KR101028470B1 (en) | Apparatus and method for searching IP address | |
| KR101582050B1 (en) | Apparatus and method for searching name using bloom filter pre-searching | |
| Song et al. | Scalable name-based packet forwarding: From millions to billions | |
| EP2214355B1 (en) | Method and apparatus for forwarding packets with hierarchically structured variable-length identifiers using an exact-match lookup engine | |
| EP2772040B1 (en) | Prefix and predictive search in a distributed hash table | |
| KR102017526B1 (en) | Method and apparatus for searching url address in url list in a communication system | |
| US6963868B2 (en) | Multi-bit Patricia trees | |
| Lee et al. | Name prefix matching using bloom filter pre-searching for content centric network | |
| KR20160045010A (en) | System and method for ranking named-data networking objects in a cache | |
| Awad et al. | Chaotic searchable encryption for mobile cloud storage | |
| CN108628907B (en) | Method for matching Trie tree with multiple keywords based on Aho-Corasick | |
| CN109417567A (en) | Method and system for the interest group in content center network | |
| CN105978814A (en) | Network device and method for querying data in network device | |
| Shubbar et al. | Efficient name matching based on a fast two-dimensional filter in named data networking | |
| KR101587756B1 (en) | Apparatus and method for searching string data using bloom filter pre-searching | |
| CN105786953B (en) | Ordering encoded manifests in a content-centric network | |
| KR20240069032A (en) | System for recommending user customized search keyword based on graph neural network | |
| JP2008192157A (en) | Efficient indexing using compact decision diagrams | |
| CN109691067A (en) | System and method for transmitting and receiving interest messages | |
| CN106446246B (en) | Communication system, cache server, cache content push, search method and system | |
| Lim et al. | Packet classification using a bloom filter in a leaf-pushing area-based quad-trie | |
| CN115714752A (en) | Packet classification method and device, forwarding chip and electronic equipment |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| E13-X000 | Pre-grant limitation requested |
St.27 status event code: A-2-3-E10-E13-lim-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U11-oth-PR1002 Fee payment year number: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| LAPS | Lapse due to unpaid annual fee | ||
| PC1903 | Unpaid annual fee |
St.27 status event code: A-4-4-U10-U13-oth-PC1903 Not in force date: 20181225 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |
|
| PC1903 | Unpaid annual fee |
St.27 status event code: N-4-6-H10-H13-oth-PC1903 Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20181225 |