KR101787899B1 - A bitmap generating method based on priority-name prefix trie and name prefix searching method using the bitmap - Google Patents
A bitmap generating method based on priority-name prefix trie and name prefix searching method using the bitmap Download PDFInfo
- Publication number
- KR101787899B1 KR101787899B1 KR1020160070526A KR20160070526A KR101787899B1 KR 101787899 B1 KR101787899 B1 KR 101787899B1 KR 1020160070526 A KR1020160070526 A KR 1020160070526A KR 20160070526 A KR20160070526 A KR 20160070526A KR 101787899 B1 KR101787899 B1 KR 101787899B1
- Authority
- KR
- South Korea
- Prior art keywords
- name prefix
- node
- priority
- name
- bitmap
- Prior art date
Links
Images
Classifications
-
- G06F17/30324—
-
- G06F17/30327—
-
- G06F17/30336—
-
- G06F17/30339—
-
- G06F17/30424—
-
- H04L61/305—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/30—Types of network names
- H04L2101/35—Types of network names containing special prefixes
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
우선순위 이름 프리픽스 트라이 기반의 비트맵 생성 방법 및 상기 비트맵을 이용한 이름 프리픽스 검색 방법이 개시된다. 우선순위 이름 프리픽스 트라이 기반의 비트맵 생성 방법은 이름 프리픽스 트라이(Name Prefix Trie, NPT)에서 도출된 우선순위 노드 및 비우선순위 노드를 포함하는 우선순위-이름 프리픽스 트라이(Priority-Name Prefix Trie, P-NPT)를 결정하는 단계; 상기 우선순위-이름 프리픽스 트라이로부터 비트맵 테이블, 인코딩 테이블 및 노드 테이블를 포함하는 비트맵을 생성하는 단계; 및 상기 생성된 비트맵을 저장하는 단계를 포함할 수 있다.A method of generating a bitmap based on a priority name prefix trie and a method of searching for a name prefix using the bitmap are disclosed. Priority Name Prefix Trie-based bitmap generation methods include a Priority-Name Prefix Trie (P-TEF) including priority nodes and non-priority nodes derived from a Name Prefix Trie (NPT) NPT); Generating a bitmap including a bitmap table, an encoding table and a node table from the priority-name prefix trie; And storing the generated bitmap.
Description
본 발명은 우선순위 이름 프리픽스 트라이 기반의 비트맵 생성 방법 및 상기 비트맵을 이용한 이름 프리픽스 검색 방법에 관한 것으로, 보다 구체적으로는 이름 프리픽스 트라이(Name Prefix Trie, NPT)에서 도출된 우선순위 노드 및 비우선순위 노드를 포함하는 우선순위-이름 프리픽스 트라이(Priority-Name Prefix Trie, P-NPT)를 결정하고, 결정된 우선순위-이름 프리픽스 트라이로부터 생성된 비트맵(비트맵 테이블, 인코딩 테이블 및 노드 테이블)을 이용하여 입력 패킷에 대한 이름 프리픽스를 검색하는 방법에 관한 것이다. The present invention relates to a method for generating a bitmap based on a priority name prefix trie and a method for searching for a name prefix using the bitmap. More specifically, the present invention relates to a priority node derived from a name prefix trie (NPT) (Bitmap table, encoding table and node table) generated from the determined priority-name prefix trie are determined based on the priority-name prefix trie (P-NPT) To retrieve a name prefix for an input packet.
현재의 인터넷은 TCP/IP를 기반으로 하는 자원(resource) 공유를 목적으로 개발되었다. 따라서, 이러한 TCP/IP 기반의 인터넷은 두 종단 시스템(end-system)간의 데이터 전송에 적합하다. 하지만, 오늘날 인터넷 트래픽은 단순한 데이터 전송이 아닌 웹 스트리밍, 비디오 전송, P2P(peer-to-peer)기반의 파일 공유 등 대용량 콘텐츠의 분배 및 응용이 주를 이룬다. 이러한 인터넷 트래픽 양상의 변화로 인하여 기존의 인터넷은 대역폭(bandwidth)부족, 서비스 품질의 저하 등의 한계점을 드러내고 있다. 이와 같은 인터넷의 문제를 해결하기 위해 미래인터넷의 한 형태로 제안된 것이 NDN(Named Data Network)이다. The current Internet has been developed for the purpose of sharing resources based on TCP / IP. Therefore, such TCP / IP based Internet is suitable for data transmission between two end systems. Today, however, Internet traffic is not simply data transmission, but distribution and application of large-capacity contents such as web streaming, video transmission, peer-to-peer (P2P) Due to such changes in the Internet traffic pattern, the existing Internet shows limitations such as lack of bandwidth and deterioration of service quality. Named Data Network (NDN) is proposed as a form of future Internet to solve the problems of the Internet.
기존의 인터넷 라우터와 NDN 라우터에서는 가장 길게 일치하는 프리픽스(longest prefix)를 기반으로 패킷 전송이 이루어진다. 그러나 이와 같이 가장 길게 일치하는 프리픽스를 찾는 과정에서 기존의 인터넷 라우터는 IP주소를 사용하지만, NDN 라우터는 콘텐츠의 이름을 사용한다는 점에서 차이가 있다. 콘텐츠의 이름은 고정된 길이를 갖는 IP주소와는 달리 길이와 형태의 제약이 없기 때문에, NDN 라우터의 FIB(Forwarding Information Base)테이블을 구현하기 위해서는 많은 메모리가 필요하다. 이러한 이유로, NDN 라우터의 FIB테이블은 칩-외부메모리(off-chip memory)를 이용하여야만 구현이 가능하다. In existing Internet routers and NDN routers, packet transmission is performed based on the longest prefix. However, in the process of finding the longest matching prefix, the existing Internet router uses the IP address, but the NDN router uses the name of the content. Since the name of the content is not limited by the length and the format, unlike the IP address having the fixed length, a large amount of memory is required to implement the forwarding information base (FIB) table of the NDN router. For this reason, the FIB table of the NDN router can only be implemented using chip-off-chip memory.
하지만, DRAM과 같은 칩-외부메모리를 사용하여 프로세싱할 때 걸리는 시간은 SRAM과 같은 칩-내부메모리를 사용하여 프로세싱할 때 걸리는 시간의 약 10~20배에 달한다. 칩-외부메모리에 저장된 FIB테이블을 사용하여 가장 길게 일치하는 프리픽스를 찾는 과정은 전체 패킷 전송 속도를 저하시키는 큰 요인이 되고 있다. 라우터에서는 패킷 선-속도(wire-speed)에 맞추어 패킷 전송이 이루어져야 하기 때문에, FIB테이블에서의 검색 속도 저하는 라우터의 성능저하로 직결된다. However, the processing time using a chip-external memory such as DRAM is about 10 to 20 times the processing time using chip-internal memory such as SRAM. The process of finding the longest matching prefix using the FIB table stored in the chip-external memory is a major factor in lowering the overall packet transmission rate. In the router, packet transmission must be performed in accordance with the packet wire-speed, so that the reduction in the search speed in the FIB table is directly related to the performance degradation of the router.
본 발명은 이름 프리픽스 트라이(Name Prefix Trie, NPT)에서 도출된 우선순위 노드 및 비우선순위 노드를 포함하는 우선순위-이름 프리픽스 트라이(Priority-Name Prefix Trie, P-NPT)를 결정하고, 결정된 우선순위-이름 프리픽스 트라이로부터 생성된 비트맵(비트맵 테이블, 인코딩 테이블 및 노드 테이블)을 이용하여 입력 패킷에 대한 이름 프리픽스를 검색함으로써 이름 프리픽스 검색 능력을 향상시킬 수 있는 장치 및 방법을 제공한다.The present invention determines a priority-name prefix trie (P-NPT) including a priority node and a non-priority node derived from a name prefix trie (NPT) The present invention provides an apparatus and method for improving a name prefix search capability by retrieving a name prefix for an input packet using a bit map (bit map table, encoding table and node table) generated from a name prefix trie.
본 발명의 일실시예에 따른 우선순위 이름 프리픽스 트라이 기반의 비트맵 생성 방법은 이름 프리픽스 트라이(Name Prefix Trie, NPT)에서 도출된 우선순위 노드 및 비우선순위 노드를 포함하는 우선순위-이름 프리픽스 트라이(Priority-Name Prefix Trie, P-NPT)를 결정하는 단계; 상기 우선순위-이름 프리픽스 트라이로부터 비트맵 테이블, 인코딩 테이블 및 노드 테이블을 포함하는 비트맵을 생성하는 단계; 및 상기 생성된 비트맵을 저장하는 단계를 포함할 수 있다.A method for generating a bitmap based on a priority name prefix trie according to an embodiment of the present invention includes a priority-name prefix trie including a priority node and a non-priority node derived from a name prefix trie (NPT) Priority-Name Prefix Trie, P-NPT); Generating a bitmap including a bitmap table, an encoding table and a node table from the priority-name prefix trie; And storing the generated bitmap.
상기 결정하는 단계는 상기 이름 프리픽스 트라이에서 이름 프리픽스를 가지지 않는 빈 노드가 루트 노드로 설정된 서브 트라이를 결정하는 단계; 상기 서브 트라이에서 이름 프리픽스를 가지는 적어도 하나의 삽입 노드들 중 가장 많은 컴포넌트를 갖는 이름 프리픽스가 저장된 삽입 노드를 우선순위 노드로 결정하여 상기 서브 트라이의 루트 노드로 대체하는 단계를 포함할 수 있다.Wherein the determining step comprises: determining a subtree in which an empty node having no name prefix in the name prefix tri is set as a root node; Determining an insertion node storing a name prefix having the largest number of components among at least one insertion node having a name prefix in the subtree as a priority node and replacing the insertion node with a root node of the subtree.
상기 생성하는 단계는 상기 우선순위-이름 프리픽스 트라이에 포함된 우선순위 노드 및 상기 우선순위 노드를 제외한 삽입 노드를 나타내는 비우선순위 노드의 노드 번호를 상기 비트맵 테이블의 인덱스 번호 및 노드 테이블의 인덱스 번호 각각에 매칭할 수 있다.Wherein the step of generating the node number of the priority node included in the priority-name prefix triangle and the node number of the non-priority node indicating the inserted node excluding the priority node is performed by using the index number of the bitmap table and the index number of the node table . ≪ / RTI >
상기 비트맵 테이블은 (i) 상기 우선순위-이름 프리픽스 트라이에 포함된 노드들이 우선순위 노드 또는 비우선순위 노드인지 여부를 나타내는 노드 타입, (ii) 우선순위-이름 프리픽스 트라이에 포함된 노드들 각각에 저장된 이름 프리픽스를 구성하는 컴포넌트의 개수를 나타내는 컴포넌트, (iii) 우선순위-이름 프리픽스 트라이에 포함된 노드들 각각에 저장된 이름 프리픽스에 해시 함수를 적용하여 도출된 핑거프린트(fingerprint)를 나타내는 해시브리프, (iv) 우선순위-이름 프리픽스 트라이에 포함된 노드들에 대한 자식 노드의 개수를 나타내는 차일드 개수 정보 및 (iv) 우선순위-이름 프리픽스 트라이에 포함된 노드들의 첫번째 자식 노드로의 경로에 해당하는 인코딩 테이블의 주소값을 나타내는 차일드 포인터 정보 중 적어도 하나의 정보를 포함할 수 있다.The bitmap table includes (i) a node type indicating whether the nodes included in the priority-name prefix trie are priority nodes or non-priority nodes, (ii) a node type indicating whether nodes included in the priority-name prefix tri (Iii) a hash brief that indicates a fingerprint derived by applying a hash function to a name prefix stored in each of the nodes included in the priority-name prefix triad, (iii) a component representing the number of components constituting the stored name prefix, (iv) Child number information indicating the number of child nodes for the nodes included in the priority-name prefix trie, and (iv) Encoding corresponding to the path to the first child node of the nodes included in the priority- And at least one of the child pointer information indicating the address value of the table have.
상기 인코딩 테이블은 상기 우선순위-이름 프리픽스 트라이에 포함된 우선순위 노드와 비우선순위 노드 각각의 자식 노드에 대한 에지(edge) 정보 및 상기 우선순위 노드 및 비우선순위 노드와 상기 자식 노드 간의 인덱스 번호 차이를 나타내는 인코딩 번호를 포함할 수 있다.Wherein the encoding table includes edge information for child nodes of the priority node and the non-priority node included in the priority-name prefix triangle, and edge information for the child nodes of the priority node and the non-priority node, Quot; < / RTI >
상기 노드 테이블은 상기 우선순위-이름 프리픽스 트라이의 우선순위 노드와 비우선순위 노드 각각에 포함된 이름 프리픽스와 상기 이름 프리픽스에 대응하는 출력 페이스를 포함할 수 있다.The node table may include a name prefix included in each of the priority node and the non-priority node of the priority-name prefix trie, and an output face corresponding to the name prefix.
상기 저장하는 단계는 상기 비트맵 테이블 및 인코딩 테이블은 이름 프리픽스를 검색하는 칩의 내부 메모리에 저장하고, 상기 노드 테이블은 이름 프리픽스를 검색하는 칩의 외부 메모리에 저장할 수 있다.The storing step may store the bitmap table and the encoding table in an internal memory of a chip that retrieves a name prefix, and the node table may store the name prefix in an external memory of a chip that retrieves a name prefix.
본 발명의 일실시예에 따른 이름 프리픽스 검색 방법은 이름 프리픽스 트라이에서 도출된 우선순위 노드 및 비우선순위 노드를 포함하는 우선순위-이름 프리픽스 트라이에 기초하여 생성된 비트맵을 식별하는 단계; 및 상기 식별된 비트맵을 이용하여 입력 패킷의 이름 프리픽스와 가장 많은 컴포넌트가 일치하는 우선순위-이름 프리픽스 트라이 내의 이름 프리픽스를 검색하는 단계;를 포함하고, 상기 비트맵은 비트맵 테이블, 인코딩 테이블 및 노드 테이블로 구성될 수 있다.A method for searching for a name prefix according to an embodiment of the present invention includes: identifying a bitmap generated based on a priority-name prefix triangle including a priority node and a non-priority node derived from a name prefix triage; And searching for a name prefix in a priority-name prefix triangle in which the name component of the input packet matches the most components using the identified bitmap, wherein the bitmap includes a bitmap table, an encoding table, And a node table.
상기 검색하는 단계는 상기 입력 패킷의 이름 프리픽스를 검색하기 위해 접근한 상기 비트맵 테이블의 노드 타입에 기초하여 상기 우선순위-이름 프리픽스 트라이에 포함된 노드가 우선순위- 노드인지 또는 비우선순위 노드인지 확인하는 단계; 및 상기 우선순위-이름 프리픽스 트라이에 포함된 노드가 비우선순위 노드로 확인되면, 상기 확인된 비우선순위 노드의 인덱스 번호와 동일한 노드 테이블의 인덱스 번호에 접근하여 출력 페이스를 추출하는 단계를 포함할 수 있다.The searching step may include determining whether a node included in the priority-name prefix trie is a priority-node or a non-priority node based on a node type of the bitmap table accessed to search for a name prefix of the input packet ; And extracting an output face by accessing an index number of a node table identical to the index number of the verified non-priority node when the node included in the priority-name prefix tri is identified as a non-priority node .
상기 추출하는 단계 이후에 상기 입력 패킷의 이름 프리픽스를 검색하기 위해 접근한 상기 비트맵 테이블의 비우선순위 노드가 자식 노드를 가지는지 여부를 확인하는 단계; 상기 비우선순위 노드가 자식 노드를 가지는 것으로 확인된 경우, 상기 비트맵 테이블의 차일드 포인터 정보를 이용하여 인코딩 테이블에 접근하고, 상기 인코딩 테이블을 이용하여 다음에 검색을 진행할 경로와 일치하는 자식 노드에 대한 에지 정보를 확인하는 단계; 상기 일치하는 자식 노드에 대한 에지 정보가 확인된 경우, 상기 입력 패킷의 이름 프리픽스를 검색하기 위해 접근한 상기 비트맵 테이블의 비우선순위 노드에 대한 인덱스 번호와 상기 확인된 에지 정보에 대응하는 인코딩 번호를 이용하여 다음에 검색을 진행할 비트맵 테이블의 인덱스를 결정하는 단계를 더 포함할 수 있다.Confirming whether the non-priority node of the bitmap table accessed to retrieve the name prefix of the input packet after the extracting has a child node; Accessing the encoding table using the child pointer information of the bitmap table when the non-priority node has determined that the child node has the child node, Checking edge information; An index number for a non-priority node of the bitmap table accessed to search for a name prefix of the input packet, and an encoding number corresponding to the identified edge information if the edge information for the matching child node is identified And determining an index of the bitmap table to be searched next.
상기 검색하는 단계는 상기 입력 패킷의 이름 프리픽스를 검색하기 위해 접근한 상기 비트맵 테이블의 노드 타입에 기초하여 상기 우선순위-이름 프리픽스 트라이에 포함된 노드가 우선순위 노드인지 비우선순위 노드인지 확인하는 단계; 상기 우선순위-이름 프리픽스 트라이에 포함된 노드가 우선순위 노드로 확인되면, 상기 입력 패킷의 이름 프리픽스에 대한 해시 값과 상기 비트맵 테이블에 포함된 해시브리프가 일치하는지 비교하는 단계; 상기 입력 패킷의 이름 프리픽스에 대한 해시 값과 상기 비트맵 테이블에 포함된 해시브리프가 일치하는 경우, 비트맵 테이블의 인덱스 번호와 동일한 노드 테이블의 인덱스 번호에 접근하여 상기 입력 패킷의 이름 프리픽스와 상기 노드 테이블에 저장된 이름 프리픽스와 일치하는지 비교하는 단계; 및 상기 입력 패킷의 이름 프리픽스와 상기 노드 테이블에 저장된 이름 프리픽스와 일치하는 경우, 출력 페이스를 추출하는 단계를 포함할 수 있다.Wherein the searching step comprises: checking whether a node included in the priority-name prefix trie is a priority node or a non-priority node based on a node type of the bitmap table accessed to search for a name prefix of the input packet ; Comparing the hash value of the name prefix of the input packet with the hash brief included in the bitmap table if the node included in the priority-name prefix triangle is identified as a priority node; If a hash value of a name prefix of the input packet matches a hash brief included in the bitmap table, accessing an index number of a node table that is the same as an index number of the bitmap table, Comparing a name prefix stored in the table with a name prefix; And extracting an output face if the name prefix of the input packet and the name prefix stored in the node table coincide with each other.
상기 우선순위-이름 프리픽스 트라이는 상기 이름 프리픽스 트라이에서 이름 프리픽스를 가지지 않는 빈 노드를 루트 노드로 설정하는 서브 트라이를 결정하고, 상기 서브 트라이에서 이름 프리픽스를 가지는 적어도 하나의 삽입 노드들 중 가장 많은 컴포넌트를 갖는 이름 프리픽스가 저장된 삽입 노드를 우선순위 노드로 결정하여 상기 서브 트라이의 루트 노드로 대체함으로써 생성될 수 있다.Wherein the priority-name prefix trie determines a subtree setting an empty node having no name prefix to the root node in the name prefix triad, and wherein in the subtree the largest number of at least one insertion node having a name prefix , And replacing the insertion node storing the name prefix having the name prefix with the root node of the subtree as a priority node.
상기 비트맵은 상기 우선순위-이름 프리픽스 트라이에 포함된 우선순위 노드 및 상기 우선순위 노드를 제외한 삽입 노드를 나타내는 비우선순위 노드의 노드 번호를 상기 비트맵 테이블의 인덱스 번호 및 노드 테이블의 인덱스 번호 각각에 매칭함으로써 생성될 수 있다.The bitmap may include a priority node included in the priority-name prefix trie and a node number of a non-priority node indicating an insertion node excluding the priority node to an index number of the bitmap table and an index number of the node table As shown in FIG.
비트맵 테이블은 (i) 상기 우선순위-이름 프리픽스 트라이에 포함된 노드들이 우선순위 노드 또는 비우선순위 노드인지 여부를 나타내는 노드 타입, (ii) 우선순위-이름 프리픽스 트라이에 포함된 노드들 각각에 저장된 이름 프리픽스를 구성하는 컴포넌트의 개수를 나타내는 컴포넌트, (iii) 우선순위-이름 프리픽스 트라이에 포함된 노드들 각각에 저장된 이름 프리픽스에 해시 함수를 적용하여 도출된 핑거프린트(fingerprint)를 나타내는 해시브리프, (iv) 우선순위-이름 프리픽스 트라이에 포함된 노드들에 대한 자식 노드의 개수를 나타내는 차일드 개수 정보 및 (iv) 우선순위-이름 프리픽스 트라이에 포함된 노드들의 첫번째 자식 노드로의 경로에 해당하는 인코딩 테이블의 주소값을 나타내는 차일드 포인터 정보 중 적어도 하나의 정보를 포함할 수 있다.The bitmap table includes (i) a node type indicating whether the nodes included in the priority-name prefix trie are priority nodes or non-priority nodes, (ii) a node type stored in each of the nodes included in the priority- (Iii) a hash brief that indicates a fingerprint derived by applying a hash function to a name prefix stored in each of the nodes included in the priority-name prefix trie; (iii) a component indicating the number of components constituting the name prefix; iv) a child number information indicating the number of child nodes for the nodes included in the priority-name prefix trie, and (iv) an encoding table corresponding to the path to the first child node of the nodes included in the priority- And child pointer information indicating an address value of the child pointer information .
상기 인코딩 테이블은 상기 우선순위-이름 프리픽스 트라이에 포함된 우선순위 노드와 비우선순위 노드 각각의 자식 노드에 대한 에지(edge) 정보 및 상기 우선순위 노드 및 비우선순위 노드와 상기 자식 노드 간의 인덱스 번호 차이를 나타내는 인코딩 번호를 포함할 수 있다.Wherein the encoding table includes edge information for child nodes of the priority node and the non-priority node included in the priority-name prefix triangle, and edge information for the child nodes of the priority node and the non-priority node, Quot; < / RTI >
상기 노드 테이블은 상기 우선순위-이름 프리픽스 트라이의 우선순위 노드와 비우선순위 노드 각각에 포함된 이름 프리픽스와 상기 이름 프리픽스에 대응하는 출력 페이스를 포함할 수 있다.The node table may include a name prefix included in each of the priority node and the non-priority node of the priority-name prefix trie, and an output face corresponding to the name prefix.
상기 비트맵 테이블 및 인코딩 테이블은 이름 프리픽스를 검색하는 칩의 내부 메모리에 저장되고, 상기 노드 테이블은 이름 프리픽스를 검색하는 칩의 외부 메모리에 저장될 수 있다.The bitmap table and the encoding table are stored in an internal memory of a chip retrieving a name prefix, and the node table can be stored in an external memory of a chip retrieving a name prefix.
본 발명의 일실시예에 의하면, 이름 프리픽스 트라이(Name Prefix Trie, NPT)에서 도출된 우선순위 노드 및 비우선순위 노드를 포함하는 우선순위-이름 프리픽스 트라이(Priority-Name Prefix Trie, P-NPT)를 결정하고, 결정된 우선순위-이름 프리픽스 트라이로부터 생성된 비트맵(비트맵 테이블, 인코딩 테이블 및 노드 테이블)을 이용하여 입력 패킷에 대한 이름 프리픽스를 검색함으로써 이름 프리픽스 검색 능력을 향상시킬 수 있다.According to an embodiment of the present invention, a priority-name prefix trie (P-NPT) including a priority node and a non-priority node derived from a name prefix trie (NPT) And search for the name prefix for the input packet using the bitmap (bitmap table, encoding table, and node table) generated from the determined priority-name prefix trie to improve the name prefix search capability.
본 발명의 일실시예에 의하면, 우선순위-이름 프리픽스 트라이로부터 생성된 비트맵(비트맵 테이블, 인코딩 테이블 및 노드 테이블)을 이름 프리픽스를 검색하는 칩의 내부 메모리 및 외부 메모리에 나누어 저장함으로써 이름 프리픽스 검색 능력을 향상시킬 수 있다.According to an embodiment of the present invention, a bitmap (bitmap table, encoding table, and node table) generated from a priority-name prefix trie is divided and stored in an internal memory and an external memory of a chip that searches for a name prefix, The search ability can be improved.
도 1은 본 발명의 일실시예에 따른 이름 프리픽스 검색 장치를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 이름 프리픽스의 예시 세트 및 상기 예시 세트를 이용하여 구축된 이름 프리픽스 트라이의 예를 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 우선순위 이름 프리픽스 트라이의 예를 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 우선순위 이름 프리픽스 트라이 기반의 비트맵 예를 도시한 도면이다.
도 5는 본 발명의 일실시예에 따른 비우선순위로 판단된 우선순위 이름 프리픽스 트라이의 노드에 대한 이름 프리픽스 검색 방법을 순서대로 도시한 도면이다.
도 6은 본 발명의 일실시예에 따른 우선순위로 판단된 우선순위 이름 프리픽스 트라이의 노드에 대한 이름 프리픽스 검색 방법을 순서대로 도시한 도면이다.1 is a diagram illustrating a name prefix search apparatus according to an embodiment of the present invention.
2 is an exemplary set of name prefixes and an example of a name prefix trie constructed using the example set in accordance with an embodiment of the present invention.
3 is a diagram illustrating an example of a priority name prefix triangle according to an embodiment of the present invention.
FIG. 4 is a diagram illustrating an example of a bitmap based on a priority name prefix triangle according to an embodiment of the present invention.
FIG. 5 is a diagram illustrating a method of searching for a name prefix for a node of a priority name prefix triad determined to be nonpriority according to an exemplary embodiment of the present invention.
FIG. 6 is a diagram illustrating a method of searching for a name prefix for a node of a priority name prefix triage determined to have a priority according to an embodiment of the present invention.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.It is to be understood that the specific structural or functional descriptions of embodiments of the present invention disclosed herein are presented for the purpose of describing embodiments only in accordance with the concepts of the present invention, May be embodied in various forms and are not limited to the embodiments described herein.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Embodiments in accordance with the concepts of the present invention are capable of various modifications and may take various forms, so that the embodiments are illustrated in the drawings and described in detail herein. However, it is not intended to limit the embodiments according to the concepts of the present invention to the specific disclosure forms, but includes changes, equivalents, or alternatives falling within the spirit and scope of the present invention.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.The terms first, second, or the like may be used to describe various elements, but the elements should not be limited by the terms. The terms may be named for the purpose of distinguishing one element from another, for example without departing from the scope of the right according to the concept of the present invention, the first element being referred to as the second element, Similarly, the second component may also be referred to as the first component.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~사이에"와 "바로~사이에" 또는 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between. Expressions that describe the relationship between components, for example, "between" and "immediately" or "directly adjacent to" should be interpreted as well.
본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises ", or" having ", and the like, are used to specify one or more of the features, numbers, steps, operations, elements, But do not preclude the presence or addition of steps, operations, elements, parts, or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the meaning of the context in the relevant art and, unless explicitly defined herein, are to be interpreted as ideal or overly formal Do not.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, the scope of the patent application is not limited or limited by these embodiments. Like reference symbols in the drawings denote like elements.
도 1은 본 발명의 일실시예에 따른 이름 프리픽스 검색 장치를 도시한 도면이다.1 is a diagram illustrating a name prefix search apparatus according to an embodiment of the present invention.
이름 프리픽스 검색 장치(100)는 프로세서(110), 프로세서의 내부에 배치된 내부 메모리(120) 및 프로세서의 외부에 배치된 외부 메모리(130)로 구성될 수 있다. 이때, 프로세서(110)는 하나의 칩으로 구현될 수 있다. 그래서, 프로세서(110)가 입력 패킷에 대한 이름 프리픽스를 검색하기 위해 프로세서(110)의 내부에 배치된 내부 메모리(120)를 이용하는 경우, 이름 프리픽스 검색은 온-칩(On-Chip)에서 진행될 수 있다. 하지만, 프로세서(110)가 이름 프리픽스를 검색하기 위해 프로세서(110)의 외부에 배치된 외부 메모리(130)를 이용하는 경우, 이름 프리픽스 검색은 오프-칩(Off-Chip)에서 진행될 수 있다. The name
이 때, 오프-칩에서 진행되는 이름 프리픽스 검색은 외부 메모리(130)로의 접근 시간으로 인해 온-칩에서 진행되는 이름 프리픽스 검색보다 검색 속도가 늦다. 즉, 오프-칩에서 이름 프리픽스를 검색하는 것은 소용되는 시간이 매우 길어 이름 프리픽스를 검색하는 속도에 가장 큰 영향을 미치므로 오프-칩의 접근 횟수를 이름 프리픽스 검색에 대한 성능평가의 지표로 삼을 수 있다.At this time, the search for the name prefix in the off-chip is slower than the searching for the name prefix in the on-chip due to the access time to the
따라서, 이름 프리픽스 검색 장치(100)는 입력 패킷에 대한 이름 프리픽스 검색에 걸리는 시간을 줄이기 위하여 FIB 테이블을 프로세서(110)의 내부 메모리(120) 및 외부 메모리(130)에 분할하여 저장할 수 있다.Accordingly, the name
구체적으로 이름 프리픽스 검색 장치(100)는 이름 프리픽스 트라이에서 도출된 우선순위 노드 및 비우선순위 노드를 포함하는 우선순위-이름 프리픽스 트라이에 기초하여 생성된 비트맵을 식별하고, 식별된 비트맵에 기초하여 입력 패킷에 대한 이름 프리픽스를 검색할 수 있다. 즉, 이름 프리픽스 검색 장치(100)는 비트맵 중 우선순위-이름 프리픽스 트라이의 윤곽 정보를 포함하는 비트맵 테이블과 인코딩 테이블을 내부 메모리(120)에 저장하고, 우선순위-이름 프리픽스 트라이에 포함된 각각의 노드에 대한 실질적인 정보인 이름 프리픽스와 출력 페이스를 외부 메모리(130)에 저장함으로써 외부 메모리(130)에서의 프로세싱을 최소화할 수 있다. 이때, 우선순위-이름 프리픽스 트라이를 결정하는 방법과 비트맵을 생성하는 방법은 추후 도면을 통해 자세히 설명하도록 한다.Specifically, the name
도 2는 본 발명의 일실시예에 따른 이름 프리픽스의 예시 세트 및 상기 예시 세트를 이용하여 구축된 이름 프리픽스 트라이의 예를 도시한 도면이다.2 is an exemplary set of name prefixes and an example of a name prefix trie constructed using the example set in accordance with an embodiment of the present invention.
이름 프리픽스 트라이(Name Prefix Trie, NPT)는 IP주소 검색에서 이용되었던 이진 트라이(Binary trie)를 확장한 개념이다. 프리픽스가 저장되는 노드(node)까지의 경로가 프리픽스를 의미한다는 점에서는 이진트라이와 같다 그러나 경로 값으로 0과 1만을 사용하였던 IP주소와는 달리, NDN(Named Data Network)에서 경로 값으로 사용하는 콘텐츠의 이름은 길이와 형태에 제한이 없기 때문에 하나의 노드가 가질 수 있는 자식 노드의 개수는 무한히 많아질 수 있다. 이때, 이름 프리픽스 트라이 는 IP주소 검색에서 사용되었던 이진 트라이를 확장한 개념이기 때문에, 이진 트라이와 마찬가지로 불필요한 빈 노드(internal node)로 인한 메모리 낭비가 많다. 또한, 입력 패킷에 대한 이름 프리픽스와 가장 많은 컴포넌트가 일치하는 이름 프리픽스를 찾기 위해 검색을 진행할 경로가 더 이상 존재하지 않을 때까지 계속 진행해야 한다는 점에서 검색성능이 좋지 않은 문제가 있다.The Name Prefix Trie (NPT) is an extension of the binary trie used in IP address lookup. Unlike an IP address that uses only 0s and 1s as path values, it is used as a path value in an NDN (Named Data Network), since the path to the node where the prefix is stored means the prefix. Since the name of the content is not limited in length and form, the number of child nodes that a node can have is infinitely large. In this case, since the name prefix trie is an extension of the binary trie used in the IP address search, like the binary trie, there is a lot of memory waste due to an unnecessary internal node. In addition, there is a problem in that the search performance is poor because the search is to be continued until there is no more path to search for the name prefix of the input packet and the name prefix having the largest number of components.
이러한 문제에 대한 방안으로 본 발명에서는 이름 프리픽스 트라이에서 도출된 우선순위 노드 및 비우선순위 노드를 포함하는 우선순위-이름 프리픽스 트라이(Priority-Name Prefix Trie, P-NPT)를 결정하는 방법을 제공한다. As a solution to this problem, the present invention provides a method for determining a priority-name prefix trie (P-NPT) including a priority node and a non-priority node derived from a name prefix trie.
도 2의 (a)는 이름 프리픽스 및 출력 페이스의 예시 세트이며, 도 2의 (b)는 도 2의 (a)에 대한 이름 프리픽스 트라이를 구축 예를 보여준다. 이하에서는 이름 프리픽스 트라이에서 이름 프리픽스가 저장된 노드를 삽입 노드, 이름 프리픽스가 저장된 노드로 가는 경로에 부득이하게 존재하는 비어 있는 노드를 빈 노드로 부르기로 한다. 이때, 각각의 이름 프리픽스는 출력페이스 정보를 가지며, 이름 프리픽스 트라이의 삽입 노드 역시 서로 다른 노드 번호가 설정될 수 있다.2 (a) is an example set of a name prefix and an output face, and FIG. 2 (b) shows an example of building a name prefix triangle for FIG. 2 (a). Hereinafter, a node in which the name prefix is stored in the name prefix trie is referred to as an insertion node, and an empty node inevitably exists in the path to the node where the name prefix is stored. At this time, each name prefix has output face information, and the insertion node of the name prefix triad can also be set to a different node number.
예를 들어, 이름 프리픽스 kr/or/visitkorea를 이름 프리픽스 트라이로 구축하면 다음과 같다. 먼저 이름 프리픽스 트라이의 최상위 레벨에 빈 노드(210)이 위치한다. 이후 빈 노드(210)로부터 kr에 해당하는 패스를 따라 이동하면 빈 노드(220)이 위치한다. 다시 빈 노드(220)으로부터 or에 해당하는 패스를 따라 이동하면 빈 노드(230)이 위치하고, 다시 빈 노드(230)으로부터 visitkorea에 해당하는 패스를 따라 이동하면 이름 프리픽스 kr/or/visitkorea가 저장된 삽입 노드(240)가 위치할 수 있다. For example, if you build a name prefix kr / or / visitkorea with a name prefix trie: First, the
도 3은 본 발명의 일실시예에 따른 우선순위 이름 프리픽스 트라이의 예를 도시한 도면이다.3 is a diagram illustrating an example of a priority name prefix triangle according to an embodiment of the present invention.
삽입 노드와 빈 노드만을 가졌던 이름 프리픽스 트라이와는 다르게, 이름 프리픽스 트라이로부터 결정된 우선순위-이름 프리픽스 트라이는 우선순위 노드(priority node)와 우선순위 노드를 제외한 삽입 노드를 나타내는 비우선순위 노드(non-priority node)만을 갖는다. Unlike a name prefix trie that only had an insert node and an empty node, the priority-name prefix trie determined from the name prefix trie is a priority node and a non-priority node representing the inserted node excluding the priority node node.
우선순위-이름 프리픽스 트라이를 결정하는 과정은 다음과 같다. 먼저 이름 프리픽스 트라이에서 이름 프리픽스를 가지지 않는 빈 노드가 루트 노드로 설정된 서브 트라이를 결정할 수 있다. 이때 선택되는 빈 노드는 이름 프리픽스 트라이의 최상위 레벨에 존재하는 노드일 수 있다. 이후, 결정된 서브 트라이에서 이름 프리픽스가 저장된 적어도 하나의 삽입 노드들 중 가장 많은 컴포넌트를 갖는 이름 프리픽스가 저장된 삽입 노드를 우선순위 노드로 결정하여 서브 트라이의 루트 노드로 대체할 수 있다. 이와 같은 우선순위-이름 프리픽스 트라이를 결정하는 과정은 이름 프리픽스 검색 장치(100)에 포함된 프로세서(110)에 의해 수행될 수 있다.The process of determining the priority-name prefix trie is as follows. First, in the name prefix trie, an empty node that does not have a name prefix can be determined as a subtry that is set as the root node. The empty node selected at this time may be a node existing at the highest level of the name prefix trie. Thereafter, the insertion node storing the name prefix having the largest number of components among at least one insertion node in which the name prefix is stored in the determined subtree may be determined as the priority node and replaced with the root node of the subtree. The process of determining such a priority-name prefix triage may be performed by the
예를 들어, 도 2의 (b)와 같은 이름 프리픽스 트라이를 우선순위-이름 프리픽스 트라이로 결정하는 과정은 다음과 같다. 먼저 프로세서(110)는 도 3의 (a)와 같은 이름 프리픽스 트라이의 최상위 레벨에 존재하는 빈 노드(310)를 루트 노드로 설정하는 서브 트라이(311)를 결정할 수 있다. 이후, 프로세서(110)는 서브 트라이(311)에 존재하는 삽입 노드들 중 가장 많은 컴포넌트를 갖는 이름 프리픽스가 저장된 삽입 노드(312)를 우선순위 노드로 결정할 수 있다. 이때, 우선순위 노드로 결정된 삽입 노드(312)에 저장된 이름 프리픽스는 'com/youtube/user/skyDoesMinecraft'이고 출력 페이스(output face)는 7이다. 프로세서(110)는 이와 같은 이름 프리픽스와 출력 페이스를 서브 트라이(310)의 루트 노드(310)에 대체하여 저장할 수 있다. 이때, 동일한 서브 트라이(311) 내에 가장 많은 컴포넌트를 갖는 이름 프리픽스가 저장된 삽입 노드(312,313)가 둘 이상일 경우 프로세서(110)는 둘 중 하나를 선택하여 루트 노드로 대체할 수 있다. 본 발명에서는 가장 많은 컴포넌트를 갖는 이름 프리픽스가 저장된 삽입 노드(312,313)가 둘 이상일 경우 왼쪽에 위치하는 삽입 노드(312)를 우선순위 노드로 결정하여 루트 노드로 대체하였다.For example, a process of determining a name-prefix trie as shown in FIG. 2 (b) as a priority-name prefix trie is as follows. First, the
이제 이름 프리픽스 트라이의 최상위 레벨에는 빈 노드가 더 이상 존재하지 않으므로 다음 하위 레벨로 넘어갈 수 있다. 따라서, 프로세서(110)는 이름 프리픽스 트라이의 두 번째 레벨에 존재하는 빈 노드(320)가 루트 노드로 설정된 서브 트라이(321)를 결정할 수 있다. 이후, 프로세서(110)는 서브 트라이(321)에 존재하는 삽입 노드들 중 가장 많은 컴포넌트를 갖는 이름 프리픽스가 저장된 삽입 노드(322)를 우선순위 노드로 결정할 수 있다. 이때, 우선순위 노드로 결정된 삽입 노드(322)에 저장된 이름 프리픽스는 'kr/or/visitkorea'이고, 출력 페이스는 1이다. 프로세서(110)는 이와 같은 이름 프리픽스와 출력 페이스를 서브 트라이(321)의 루트 노드(320)에 대체하여 저장할 수 있다. 마찬가지로 동일한 서브 트라이(321) 내에 가장 많은 컴포넌트를 갖는 이름 프리픽스가 저장된 삽입 노드(322,323)가 둘 이상일 경우 프로세서(110)는 둘 중 하나를 선택하여 루트 노드로 대체할 수 있다.You can now jump to the next lower level because there are no more empty nodes at the top level of the name prefix trie. Thus, the
프로세서(110)는 이름 프리픽스 트라이 내에 더 이상 빈 노드가 존재하지 않을 때까지 이와 같은 과정을 반복하여 수행함으로써 도 3의 (b)와 같은 우선순위-이름 프리픽스 트라이를 구축할 수 있다. 이와 같이 우선순위-이름 프리픽스 트라이는 이름 프리픽스를 검색하기 위하여 우선순위 노드에 접근하였을 때 가장 많은 컴포넌트가 일치할 가능성이 있는 삽입 노드의 정보를 저장한다. 따라서, 입력 패킷에 대한 이름 프리픽스와 우선순위 노드에 저장된 이름 프리픽스 정보가 일치할 경우, 프로세서(110)는 검색을 진행할 경로가 남아 있더라도 검색을 종료할 수 있다. 즉, 이와 같은 우선순위-이름 프리픽스 트라이를 통해 우선순위 노드를 정의함으로써, 불필요한 빈 노드를 줄이고, 검색 성능 또한 향상시킬 수 있다. The
도 4는 본 발명의 일실시예에 따른 우선순위 이름 프리픽스 트라이 기반의 비트맵 예를 도시한 도면이다.FIG. 4 is a diagram illustrating an example of a bitmap based on a priority name prefix triangle according to an embodiment of the present invention.
이름 프리픽스 트라이의 각각의 노드에는 플래그(flag)(1bit), 자식 노드로의 포인터(pointer), 자식 노드에 대한 에지(edge) 정보(에지 1개당 32bit), 이름 프리픽스(128bit) 및 출력 페이스 정보를 모두 포함하여야 하기 때문에 많은 메모리를 필요로 한다. 본 발명에서는 비트맵(Bitmap)을 적용하여 프로세서(110)의 내부 메모리(120)에 우선순위-이름 프리픽스 트라이의 윤곽 정보를 저장하여, 프로세서(110)의 외부에 배치된 외부 메모리(130)에서의 프로세싱을 최소화할 수 있다. 이와 같은 비트맵은 우선순위-이름 프리픽스 트라이에 기초하여 이름 프리픽스 검색 장치(100)의 프로세서(110)에 의해 생성될 수 있다. 도 4의 비트맵 예는 도 3의 우선순위-이름 프리픽스 트라이에 기초하여 생성되었다.Each node of the name prefix trie has a flag (1 bit), a pointer to a child node, edge information (32 bits per edge) for a child node, a name prefix (128 bits) It requires a lot of memory. In the present invention, the outline information of the priority-name prefix tri is stored in the
비트맵은 비트맵 테이블(Bitmap table), 인코딩 테이블(Encoding table) 및 노드 테이블(Node table)로 구성될 수 있다. 이때, 비트맵 테이블 및 인코딩 테이블은 이름 프리픽스를 검색하는 프로세서(110)의 내부 메모리(120)에 저장되고, 노드 테이블은 이름 프리픽스를 검색하는 프로세서(110)의 외부 메모리(130)에 저장될 수 있다. The bitmap may consist of a bitmap table, an encoding table, and a node table. The bitmap table and encoding table are then stored in the
우선순위-이름 프리픽스 트라이의 노드 번호는 0부터 시작하며, 상위레벨에서 하위레벨 순으로 부여될 수 있다. 예를 들어, 도 3의 (b)와 같은 우선순위-이름 프리픽스 트라이에서 루트 노드의 노드 번호는 0이고, 'kr/or/warning'이 저장된 우선순위 노드의 노드 번호는 5가 된다. The node number of the priority-name prefix trie starts from 0 and can be assigned in order from the highest level to the lowest level. For example, the node number of the root node in the priority-name prefix triangle shown in FIG. 3 (b) is 0, and the node number of the priority node storing 'kr / or / warning' is 5.
이때, 우선순위-이름 프리픽스 트라이를 이용하여 비트맵을 생성함에 있어서, 우선순위-이름 프리픽스 트라이에 포함된 각각의 노드 번호와 동일한 비트맵 테이블의 인덱스 번호 및 노드 테이블의 인덱스 번호를 매칭하여 노드 정보를 저장할 수 있다. 따라서, 비트맵 테이블과 노드 테이블을 연결하기 위한 별도의 포인터가 필요 없다. In generating the bitmap using the priority-name prefix trie, the index number of the bitmap table and the index number of the node table, which are the same as the respective node numbers included in the priority-name prefix trie, are matched, Can be stored. Therefore, there is no need for a separate pointer to connect the bitmap table and the node table.
A. 구체적으로 비트맵을 구성하는 비트맵 테이블은 우선순위-이름 프리픽스 트라이에 포함된 각각의 노드에 대한 5개의 필드 정보로 구성된다. 먼저 도 4의 비트맵 테이블의 a열과 같이 우선순위-이름 프리픽스 트라이에 포함된 각각의 노드들이 우선순위 노드인지 또는 비우선순위 노드인지를 나타내는 노드 타입에 대한 정보를 포함할 수 있다. 즉, 입력 패킷의 이름 프리픽스를 검색하기 위하여 접근한 우선순위-이름 프리픽스 트라이의 노드가 삽입 노드일 경우에는 0을, 우선순위 노드일 경우에는 1을 저장한다.A. Specifically, the bitmap table constituting the bitmap is composed of five pieces of field information for each node included in the priority-name prefix trie. First, as shown by column a in the bitmap table of FIG. 4, information on the node type indicating whether each of the nodes included in the priority-name prefix trie is a priority node or a non-priority node may be included. That is, if the node of the priority-name prefix trie that is accessed to retrieve the name prefix of the input packet is an insertion node, 0 is stored, and when the node is a priority node, 1 is stored.
다음으로 비트맵 테이블은 b열과 같이 우선순위-이름 프리픽스 트라이에 포함된 노드들 각각에 저장된 이름 프리픽스의 컴포넌트 개수에 대한 정보를 포함할 수 있다. 예를 들어, 비트맵 테이블의 인덱스 0은 도 3에서 우선순위-이름 프리픽스 트라이의 최상위 레벨에 존재하는 우선순위 노드를 나타낸다. 우선순위-이름 프리픽스 트라이의 0번 노드는 'com/youtube/user/skyDoesMinecraft'의 이름 프리픽스를 저장하고 있으며, 각각의 com, youtube, user 및 skyDoesMinecraft는 이름 프리픽스를 구성하는 컴포넌트에 해당한다. 따라서, 비트맵 테이블의 인덱스 0에 대응하는 컴포넌트의 개수는 4이다. Next, the bitmap table may include information on the number of components of the name prefix stored in each of the nodes included in the priority-name prefix trie, such as column b. For example,
다음으로 비트맵 테이블은 c열과 같이 우선순위-이름 프리픽스 트라이에 포함된 노드들 각각에 저장된 이름 프리픽스에 해시 함수를 적용하여 도출된 해시브리프를 포함할 수 있다. 이때, 도출된 해시브리프는 이름 프리픽스에 대한 핑거프린트(fingerprint)를 나타낼 수 있다. The bitmap table may then include a hash brief that is derived by applying a hash function to the name prefix stored in each of the nodes included in the priority-name prefix triad, such as column c. At this time, the derived hash brief may indicate a fingerprint for the name prefix.
이와 같은 해시브리프는 이름 프리픽스 검색 장치(100)가 이름 프리픽스를 검색할 때 이용될 수 있다. 이름 프리픽스 트라이에서는 입력 패킷에 대한 이름 프리픽스가 경로상에 존재하는 모든 이름 프리픽스와 일치하는 반면 우선순위 트라이의 우선순위 노드에는 가장 많은 컴포넌트를 갖는 이름 프리픽스가 저장되기 때문에, 입력 패킷에 대한 이름 프리픽스가 우선순위 노드에 저장된 이름 프리픽스와 일치할 가능성이 적다. 이러한 우선순위-이름 프리픽스 트라이의 특성으로 인해 불필요한 외부 메모리(130)로의 접근이 빈번하게 발생할 수 있다. 본 발명에서는 해시브리프의 개념을 제안 및 적용하여, 우선순위 노드에 저장된 컴포넌트 개수에 대응하는 입력 패킷에 대한 이름 프리픽스의 컴포넌트에 대한 해시 값을 결정하고, 이를 이용하여 외부 메모리(130)로의 접근을 결정할 수 있다. 즉, 결정된 해시 값을 비트맵 테이블에 저장된 해시브리프와 비교하여 일치할 경우에만 외부 메모리(130)에 접근하기 때문에, 우선순위-이름 프리픽스 트라이의 특성으로 인해 불필요하게 발생하는 외부 메모리(130)로의 접근을 최소화할 수 있다.Such a hash brief can be used when the name
다음으로 비트맵 테이블은 d열과 같이 우선순위-이름 프리픽스 트라이에 포함된 노드들 각각에 대한 자식 노드의 개수를 나타내는 차일드 개수 정보를 포함할 수 있다. 예를 들어, 우선순위-이름 프리픽스 트라이의 0번 노드는 하위에 1번, 2번, 3번 및 4번의 4개의 자식 노드를 가지고 있는 것을 확인할 수 있다. 따라서, 비트맵 테이블의 인덱스 0에 대응하는 차일드 개수 정보는 4이다.Next, the bitmap table may include child number information indicating the number of child nodes for each of the nodes included in the priority-name prefix trie as column d. For example,
다음으로 비트맵 테이블은 e열과 같이 우선순위-이름 프리픽스 트라이에 포함된 노드들 각각에 대한 차일드 포인터 정보를 포함할 수 있다. 차일드 포인터 정보는 우선순위-이름 프리픽스 트라이에 포함된 노드들 각각이 가진 첫번째 자식 노드로의 경로에 해당하는 인코딩 테이블의 주소값을 나타낼 수 있다. The bitmap table may then include child pointer information for each of the nodes included in the priority-name prefix trie, such as column e. The child pointer information may indicate the address value of the encoding table corresponding to the path to the first child node of each of the nodes included in the priority-name prefix trie.
B. 비트맵을 구성하는 인코딩 테이블은 우선순위-이름 프리픽스 트라이에 포함된 노드들(우선순위 노드와 비우선순위 노드) 각각의 자식 노드에 대한 에지(edge) 정보 및 상기 우선순위-이름 프리픽스 트라이에 포함된 노드들과 상기 자식 노드 간의 인덱스 번호 차이를 나타내는 인코딩 번호를 포함할 수 있다. B. The encoding table constituting the bitmap includes edge information for the child nodes of each of the nodes (priority node and non-priority node) included in the priority-name prefix trie, and edge information for the priority-name prefix tri And an encoding number indicating an index number difference between the included nodes and the child node.
IP주소를 이용한 프리픽스 검색에서의 자식 노드는 최대 2개로 제한되어 있던 반면 NDN에서의 자식 노드의 개수에는 제한이 없다. 그러므로, 본 발명은 우선순위-이름 프리픽스 트라이에 포함된 노드들 각각에 대한 불특정한 자식 노드의 개수를 고려하여 비트맵을 적용할 때의 어려움을 해결하기 위해 인코딩 테이블을 도입하였다. 비트맵 테이블이 우선순위-이름 프리픽스 트라이에 포함된 노드들의 윤곽 정보를 저장했다면, 인코딩 테이블은 우선순위-이름 프리픽스 트라이에 포함된 노드가 가진 자식 노드로의 에지(edge) 정보를 포함할 수 있다. 이와 더불어 인코딩 테이블은 우선순위-이름 프리픽스 트라이에 포함된 노드와 자식 노드 간의 노드 번호 차이를 나타내는 인코딩 번호를 이용하여 우선순위-이름 프리픽스 트라이의 노드와 자식 노드를 연결할 수 있다. The number of child nodes in the prefix search using the IP address is limited to a maximum of 2, but the number of child nodes in the NDN is not limited. Therefore, the present invention introduces an encoding table to solve the difficulty in applying a bitmap considering the number of unspecified child nodes for each of the nodes included in the priority-name prefix trie. If the bitmap table stores the outline information of the nodes included in the priority-name prefix trie, the encoding table may contain edge information to the child nodes of the nodes included in the priority-name prefix trie . In addition, the encoding table can link the node of the priority-name prefix trie with the child node using the encoding number indicating the node number difference between the node and the child node included in the priority-name prefix trie.
예를 들어, 우선순위-이름 프리픽스 트라이의 0번 노드는 하위에 1번, 2번, 3번 및 4번의 4개의 자식 노드를 가지고 있다. 이때, 0번 노드로부터 각각의 자식 노드로의 경로에 해당하는 에지(edge) 정보는 kr, de, hk 및 com이며, 해당 에지 정보는 인코딩 테이블에 순차적으로 저장된다. 도 3의 (b)를 보면 알 수 있듯이 0번 노드에서 에지 정보 kr을 따라 이동하면 우선순위-이름 프리픽스 트라이의 1번 노드가 자식노드로 검색된다. 따라서 인코딩 테이블에는 0번 노드와 1번 노드 간의 노드 번호 차이인 1이 인코딩 번호로 저장될 수 있다. 마찬가지로 0번 노드에서 에지 정보 de를 따라 이동하면 우선순위-이름 프리픽스 트라이의 2번 노드가 자식노드로 검색된다. 이때, 인코딩 테이블에는 0번 노드와 2번 노드 간의 번호 차이인 2가 인코딩 번호로 저장될 수 있다.For example,
C. 비트맵을 구성하는 노드 테이블은 우선순위-이름 프리픽스 트라이에 포함된 노드들(우선순위 노드와 비우선순위 노드) 각각에 포함된 이름 프리픽스와 상기 이름 프리픽스에 대응하는 출력 페이스가 저장될 수 있다.C. The node table constituting the bitmap may store a name prefix included in each of the nodes (priority node and non-priority node) included in the priority-name prefix triangle and an output face corresponding to the name prefix .
본 발명은 우선순위-이름 프리픽스 트라이를 이용하여 상기 A, B, C에 개시된 비트맵을 생성할 수 있다. 구체적으로 도 3의 우선순위-이름 프리픽스 트라이에 포함된 4번 노드를 비트맵으로 생성하는 예는 다음과 같다. 먼저 4번 노드에 대한 노드 정보는 비트맵 테이블 및 노드 테이블의 인덱스 4번의 위치에 저장된다. 4번 노드는 우선순위 노드이므로, 노드 타입에 대한 정보는 1이되고, 저장된 이름 프리픽스는 'com/youtube/user/PewDiePie'이므로 컴포넌트 정보는 4(com, youtube, user, PewDiePie)가 된다. 그리고, 4번 노드는 하위에 4개의 자식 노드를 가지고 있기 때문에 차일드 개수 정보는 4가 된다. 4번 노드에서 자식 노드로의 경로에 해당하는 에지 정보는 순서대로 empowernetwork, youtube, goole, facebook이며 이와 같은 에지 정보를 인코딩 테이블에 순차적으로 저장된다. 그리고 비트맵 테이블의 차일드 포인터에는 4번 노드의 첫번째 자식 노드(empowernetwork)로의 경로에 해당하는 인코딩 테이블의 주소값이 저장되며. 4번 노드와 첫번째 자식 노드인 6번 노드 간의 노드 번호 차이인 2가 인코딩 번호로 저장된다. The present invention can generate the bitmaps disclosed in A, B, and C using the priority-name prefix trie. Specifically, an example of generating the
도 5는 본 발명의 일실시예에 따른 비우선순위로 판단된 우선순위 이름 프리픽스 트라이의 노드에 대한 이름 프리픽스 검색 방법을 순서대로 도시한 도면이다.FIG. 5 is a diagram illustrating a method of searching for a name prefix for a node of a priority name prefix triad determined to be nonpriority according to an exemplary embodiment of the present invention.
이름 프리픽스 검색 장치(100)는 이름 프리픽스 트라이에서 도출된 우선순위 노드 및 비우선순위 노드를 포함하는 우선순위-이름 프리픽스 트라이에 기초하여 생성된 비트맵을 식별할 수 있다. 이때, 식별된 비트맵은 비트맵 테이블, 인코딩 테이블 및 노드 테이블로 구성될 수 있다.The name prefix
먼저, 단계(510)에서 이름 프리픽스 검색 장치(100)는 입력 패킷의 이름 프리픽스를 검색하기 위해 비트맵 테이블의 인덱스 번호에 기초하여 우선순위-이름 프리픽스 트라이 내의 노드에 접근할 수 있다. 이때, 비트맵 테이블의 인덱스 번호는 우선순위-이름 프리픽스 트라이 내의 노드 번호에 대응할 수 있다. 즉, 비트맵 테이블의 0번 인덱스는 우선순위-이름 프리픽스 트라이 내의 0번 노드와 대응할 수 있다. 그리고 이름 프리픽스 검색 장치(100)는 우선순위-이름 프리픽스 트라이 내의 최상위 레벨에 존재하는 노드부터 입력 패킷의 이름 프리픽스를 검색할 수 있다. First, in
따라서, 이름 프리픽스 검색 장치(100)는 비트맵 테이블의 0번 인덱스에 포함된 노드 타입 정보에 기초하여 우선순위-이름 프리픽스 트라이 내의 노드가 우선순위 노드인지 또는 비우선순위 노드인지를 확인할 수 있다. Therefore, the name
단계(520)에서 이름 프리픽스 검색 장치(100)는 확인 결과 우선순위-이름 프리픽스 트라이에 포함된 노드가 비우선순위 노드로 확인되면, 상기 확인된 비우선순위 노드의 인덱스 번호와 동일한 노드 테이블의 인덱스 번호에 접근할 수 있다. 이후 이름 프리픽스 검색 장치(100)는 접근한 노드 테이블의 인덱스 번호에 저장된 출력 페이스를 추출하여 기억할 수 있다.If it is determined in
이후 단계(530)에서 이름 프리픽스 검색 장치(100)는 비트맵 테이블의 차일드 개수 정보를 이용하여 상기 확인된 비우선순위 노드가 자식 노드를 가지는지의 여부를 확인할 수 있다.Thereafter, in
상기 확인된 비우선순위 노드가 자식 노드를 가지지 않는 경우, 이름 프리픽스 검색 장치(100)는 단계(560)과 같이 단계(520)에서 기억하고 있는 출력 페이스를 검색 결과로 반환하고 검색을 종료할 수 있다.If the identified non-priority node does not have any child nodes, the name
이와는 달리 상기 확인된 비우선순위 노드가 자식 노드를 가지는 경우, 이름 프리픽스 검색 장치(100)는 단계(540)에서 상기 확인된 비우선순위 노드에 대응하는 비트맵 테이블의 차일드 포인터 정보를 이용하여 인코딩 테이블에 접근할 수 있다. 이후 이름 프리픽스 검색 장치(100)는 인코딩 테이블을 이용하여 다음에 검색을 진행할 경로와 일치하는 자식 노드에 대한 에지 정보를 확인할 수 있다.In contrast, if the identified non-priority node has child nodes, the name
이때, 일치하는 자식 노드에 대한 에지 정보가 없는 경우, 이름 프리픽스 검색 장치(100)는 단계(560)과 같이 단계(520)에서 기억하고 있는 출력 페이스를 검색 결과로 반환하고 검색을 종료할 수 있다.At this time, if there is no edge information for the matching child node, the name
그러나 일치하는 자식 노드에 대한 에지 정보가 있는 경우, 이름 프리픽스 검색 장치(100)는 단계(550)에서 상기 확인된 비우선순위 노드의 인덱스 번호와 상기 확인된 에지 정보에 대응하는 인코딩 번호를 이용하여 다음에 검색을 진행할 비트맵 테이블의 인덱스를 결정할 수 있다. However, if there is edge information for the matching child node, the name
이후 이름 프리픽스 검색 장치(100)는 결정된 비트맵 테이블의 인덱스에 기초하여 단계(510)~단계(560)을 반복하여 수행함으로써 입력 패킷에 대한 이름 프리픽스를 검색할 수 있다.The name prefix
도 6은 본 발명의 일실시예에 따른 우선순위로 판단된 우선순위 이름 프리픽스 트라이의 노드에 대한 이름 프리픽스 검색 방법을 순서대로 도시한 도면이다.FIG. 6 is a diagram illustrating a method of searching for a name prefix for a node of a priority name prefix triage determined to have a priority according to an embodiment of the present invention.
먼저 단계(610)에서 이름 프리픽스 검색 장치(100)는 입력 패킷의 이름 프리픽스를 검색하기 위해 비트맵 테이블의 인덱스 번호에 기초하여 우선순위-이름 프리픽스 트라이 내의 노드에 접근할 수 있다. 이때, 비트맵 테이블의 인덱스 번호는 우선순위-이름 프리픽스 트라이 내의 노드 번호에 대응할 수 있다. 즉, 비트맵 테이블의 0번 인덱스는 우선순위-이름 프리픽스 트라이 내의 0번 노드와 대응할 수 있다. 그리고 이름 프리픽스 검색 장치(100)는 우선순위-이름 프리픽스 트라이 내의 최상위 레벨에 존재하는 노드부터 입력 패킷의 이름 프리픽스를 검색할 수 있다.First, in
따라서, 이름 프리픽스 검색 장치(100)는 비트맵 테이블의 0번 인덱스에 포함된 노드 타입 정보에 기초하여 우선순위-이름 프리픽스 트라이 내의 노드가 우선순위 노드인지 또는 비우선순위 노드인지를 확인할 수 있다.Therefore, the name
단계(620)에서 이름 프리픽스 검색 장치(100)는 단계(610)에서 확인된 우선순위 노드에 대한 해시브리프와 입력 패킷의 이름 프리픽스에 대한 해시 값을 비교할 수 있다. 이때, 입력 패킷의 이름 프리픽스에 대한 해시 값은 비트맵 테이블의 해시브리프를 생성할 때 사용한 해시 함수와 동일한 해시 함수를 이용하여 추출할 수 있다. 그리고 이름 프리픽스 검색 장치(100)는 상기 확인된 우선순위 노드에 저장된 이름 프리픽스의 컴포넌트의 개수에 대응하는 입력 패킷에 대한 이름 프리픽스를 이루는 컴포넌트에 기초하여 해시 값을 결정할 수 있다. In
이때, 비교된 우선순위 노드에 대한 해시브리프와 입력 패킷의 이름 프리픽스에 대한 해시 값이 일치하는 경우, 이름 프리픽스 검색 장치(100)는 단계(630)에서 상기 확인된 우선순위 노드에 저장된 이름 프리픽스와 상기 확인된 우선순위 노드의 인덱스 번호와 동일한 노드 테이블의 인덱스 번호에 저장된 이름 프리픽스가 일치하는지 비교할 수 있다.At this time, if the hash brief for the compared priority node and the hash value for the name prefix of the input packet coincide with each other, the name
비교 결과 일치하는 경우, 이름 프리픽스 검색 장치(100)는 단계(640)과 같이 상기 확인된 우선순위 노드의 인덱스 번호와 동일한 노드 테이블의 인덱스 번호에 저장된 출력 페이스를 추출하여 기억할 수 있다. If the comparison result shows coincidence, the name
이후 단계(680)에서 이름 프리픽스 검색 장치(100)는 단계(640)에서 기억하고 있는 출력 페이스를 검색 결과로 반환하고 검색을 종료할 수 있다.Thereafter, in
이와는 달리 비교된 우선순위 노드에 대한 해시브리프와 입력 패킷의 이름 프리픽스에 대한 해시 값이 일치하지 않는 경우, 이름 프리픽스 검색 장치(100)는 단계(650)에서 비트맵 테이블의 차일드 개수 정보를 이용하여 상기 확인된 우선순위 노드가 자식 노드를 가지는지의 여부를 확인할 수 있다. If the hash value for the compared priority node and the hash value for the name prefix of the input packet do not match, the name
이후 상기 확인된 우선순위 노드가 자식 노드를 가지지 않는다면, 이름 프리픽스 검색 장치(100)는 단계(680)과 같이 단계(640)에서 기억하고 있는 출력 페이스를 검색 결과로 반환하고 검색을 종료할 수 있다.If the identified priority node does not have a child node, the name
그러나 상기 확인된 우선순위 노드가 자식 노드를 가지는 경우, 이름 프리픽스 검색 장치(100)는 단계(660)에서 상기 확인된 우선순위 노드에 대응하는 비트맵 테이블의 차일드 포인터 정보를 이용하여 인코딩 테이블에 접근할 수 있다. 이후 이름 프리픽스 검색 장치(100)는 인코딩 테이블을 이용하여 다음에 검색을 진행할 경로와 일치하는 자식 노드에 대한 에지 정보를 확인할 수 있다.However, if the identified priority node has a child node, the name
이때, 일치하는 자식 노드에 대한 에지 정보가 없는 경우, 이름 프리픽스 검색 장치(100)는 단계(680)과 같이 단계(640)에서 기억하고 있는 출력 페이스를 검색 결과로 반환하고 검색을 종료할 수 있다.At this time, if there is no edge information for the matching child node, the name
그러나 일치하는 자식 노드에 대한 에지 정보가 있는 경우, 이름 프리픽스 검색 장치(100)는 단계(670)에서 상기 확인된 우선순위 노드의 인덱스 번호와 상기 확인된 에지 정보에 대응하는 인코딩 번호를 이용하여 다음에 검색을 진행할 비트맵 테이블의 인덱스를 결정할 수 있다. However, if there is edge information for the matching child node, the name
이후 이름 프리픽스 검색 장치(100)는 결정된 비트맵 테이블의 인덱스에 기초하여 단계(610)~단계(680)을 반복하여 수행함으로써 입력 패킷에 대한 이름 프리픽스를 검색할 수 있다.The name prefix
예를 들어, 이름 프리픽스 검색 방법에 따라 입력 패킷의 이름 프리픽스인 'com/goole/mail/mailbox/user1'을 검색하면 다음과 같을 수 있다. 먼저 비트맵 테이블의 0번 인덱스에 대응하는 우선순위-이름 프리픽스 트라이의 노드는 노드 타입이 1이므로 우선순위 노드에 해당한다. 그리고 이름 프리픽스 검색 장치(100)는 0번 인덱스에 대응하는 컴포넌트의 개수가 4이므로 'com/goole/mail/mailbox/user1' 중 'comgoolemailmailbox'만을 이용하여 해시 값을 결정할 수 있다. 이때, 결정된 해시 값이 010이라고 가정하자.For example, according to the name prefix search method, searching for the input packet's name prefix 'com / goole / mail / mailbox / user1' First, the node of the priority-name prefix triangle corresponding to the
이때 결정된 해시 값이 0번 인덱스에 대응하는 해시브리프와 일치하지 않으므로 이름 프리픽스 검색 장치(100)는 차일드 포인터 정보를 이용하여 인코딩 테이블에 접근할 수 있다. 이후 이름 프리픽스 검색 장치(100)는 인코딩 테이블을 이용하여 다음에 검색을 진행할 경로와 일치하는 자식 노드에 대한 에지 정보를 확인할 수 있다. 확인 결과 입력 패킷의 이름 프리픽스 중 'com'이 일치하는 것을 확인할 수 있다. Since the hash value determined at this time does not match the hash brief corresponding to the
이름 프리픽스 검색 장치(100)는 인코딩 테이블에서 'com'에 대응하는 인코딩 번호 4와 현재 검색을 진행중인 우선순위-이름 프리픽스 트라이의 노드에 대한 인덱스 번호 0을 합하여 다음에 검색을 진행할 비트맵 테이블의 인덱스 번호 4를 결정할 수 있다. The name prefix
이후 이름 프리픽스 검색 장치(100)는 새롭게 결정된 비트맵 테이블의 인덱스 번호 4에 기초하여 이름 프리픽스의 검색을 재수행할 수 있다. 비트맵 테이블의 인덱스 번호 4에 대응하는 우선순위-이름 프리픽스 트라이의 노드는 우선순위 노드이므로 입력 패킷의 이름 프리픽스에 대한 해시 값과 4번 인덱스에 대응하는 해시브리프를 비교할 수 있다. Thereafter, the name
만약 비교 결과 일치하지 않는다고 가정하면 이름 프리픽스 검색 장치(100)는 차일드 포인터 정보를 이용하여 인코딩 테이블에 접근할 수 있다. 이후 이름 프리픽스 검색 장치(100)는 인코딩 테이블을 이용하여 다음에 검색을 진행할 경로와 일치하는 자식 노드에 대한 에지 정보를 확인할 수 있다. 확인 결과 입력 패킷의 이름 프리픽스 중 'google'이 일치하는 것을 확인할 수 있다.If the comparison result does not match, the name
이후 이름 프리픽스 검색 장치(100)는 인코딩 테이블에서 'google'에 대응하는 인코딩 번호 4와 현재 검색을 진행중인 우선순위-이름 프리픽스 트라이의 노드에 대한 인덱스 번호 4를 합하여 다음에 검색을 진행할 비트맵 테이블의 인덱스 번호 8을 결정할 수 있다. Then, the name
이후 이름 프리픽스 검색 장치(100)는 결정된 비트맵 테이블의 인덱스 번호 8에 기초하여 이름 프리픽스의 검색을 재수행할 수 있다. 비트맵 테이블의 인덱스 번호 8에 대응하는 우선순위-이름 프리픽스 트라이의 노드는 비우선순위 노드이다. 따라서, 이름 프리픽스 검색 장치(100)는 비트맵 테이블의 인덱스 번호 8과 동일한 노드 테이블의 인덱스 번호에 접근할 수 있다. 이후 이름 프리픽스 검색 장치(100)는 접근한 노드 테이블의 인덱스 번호에 저장된 출력 페이스인 9를 추출하여 기억할 수 있다.Then, the name
이때, 비트맵 테이블의 인덱스 번호 8에 대응하는 우선순위-이름 프리픽스 트라이는 자식 노드가 없으므로 이름 프리픽스 검색 장치(100)는 상기 기억된 출력 페이스 9를 반환하고 검색을 종료할 수 있다.At this time, since the priority-name prefix trie corresponding to the
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA) , A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.
100 : 이름 프리픽스 검색 장치
110 : 프로세서
120 : 내부 메모리
130 : 외부 메모리100: Name prefix search device
110: Processor
120: Internal memory
130: External memory
Claims (17)
이름 프리픽스 검색 장치의 프로세서가 이름 프리픽스 트라이(Name Prefix Trie, NPT)에서 도출된 우선순위 노드 및 비우선순위 노드를 포함하는 우선순위-이름 프리픽스 트라이(Priority-Name Prefix Trie, P-NPT)를 결정하는 단계;
이름 프리픽스 검색 장치의 프로세서가 상기 우선순위-이름 프리픽스 트라이로부터 비트맵 테이블, 인코딩 테이블 및 노드 테이블를 포함하는 비트맵을 생성하는 단계; 및
이름 프리픽스 검색 장치의 프로세서가 상기 생성된 비트맵을 저장하는 단계
를 포함하는 우선순위 이름 프리픽스 트라이 기반의 비트맵 생성 방법.A priority name prefix triage based bit map generation method performed by a name prefix search apparatus,
The processor of the name prefix searching apparatus determines a priority-name prefix trie (P-NPT) including priority nodes and non-priority nodes derived from the Name Prefix Trie (NPT) step;
Wherein the processor of the name prefix searching device generates a bitmap including the bitmap table, the encoding table and the node table from the priority-name prefix trie; And
The processor of the name prefix retrieval apparatus stores the generated bitmap
A method for generating a bitmap based on a priority name prefix trie.
상기 결정하는 단계는,
이름 프리픽스 검색 장치의 프로세서가 상기 이름 프리픽스 트라이에서 이름 프리픽스를 가지지 않는 빈 노드가 루트 노드로 설정된 서브 트라이를 결정하는 단계; 및
이름 프리픽스 검색 장치의 프로세서가 상기 서브 트라이에서 이름 프리픽스를 가지는 적어도 하나의 삽입 노드들 중 가장 많은 컴포넌트를 갖는 이름 프리픽스가 저장된 삽입 노드를 우선순위 노드로 결정하여 상기 서브 트라이의 루트 노드로 대체하는 단계
를 포함하는 우선순위 이름 프리픽스 트라이 기반의 비트맵 생성 방법.The method according to claim 1,
Wherein the determining comprises:
The processor of the name prefix search apparatus determining a subtree in which an empty node having no name prefix in the name prefix tri is set as a root node; And
The processor of the name prefix searching apparatus determines an insertion node storing a name prefix having the largest number of components among at least one insertion node having a name prefix in the subtree as a priority node and replacing the insertion node with a root node of the subtree
A method for generating a bitmap based on a priority name prefix trie.
상기 생성하는 단계는,
이름 프리픽스 검색 장치의 프로세서가 상기 우선순위-이름 프리픽스 트라이에 포함된 우선순위 노드 및 상기 우선순위 노드를 제외한 삽입 노드를 나타내는 비우선순위 노드의 노드 번호를 상기 비트맵 테이블의 인덱스 번호 및 노드 테이블의 인덱스 번호 각각에 매칭하는 우선순위 이름 프리픽스 트라이 기반의 비트맵 생성 방법.The method according to claim 1,
Wherein the generating comprises:
The processor of the name prefix search apparatus searches for the node number of the priority node included in the priority-name prefix trie and the non-priority node indicating the insertion node excluding the priority node as the index number of the bitmap table and the index A priority name that matches each of the numbers. A prefix trie based bitmap generation method.
상기 비트맵 테이블은,
(i) 상기 우선순위-이름 프리픽스 트라이에 포함된 노드들이 우선순위 노드 또는 비우선순위 노드인지 여부를 나타내는 노드 타입,
(ii) 우선순위-이름 프리픽스 트라이에 포함된 노드들 각각에 저장된 이름 프리픽스를 구성하는 컴포넌트의 개수를 나타내는 컴포넌트,
(iii) 우선순위-이름 프리픽스 트라이에 포함된 노드들 각각에 저장된 이름 프리픽스에 해시 함수를 적용하여 도출된 핑거프린트(fingerprint)를 나타내는 해시브리프,
(iv) 우선순위-이름 프리픽스 트라이에 포함된 노드들에 대한 자식 노드의 개수를 나타내는 차일드 개수 정보 및
(iv) 우선순위-이름 프리픽스 트라이에 포함된 노드들의 첫번째 자식 노드로의 경로에 해당하는 인코딩 테이블의 주소값을 나타내는 차일드 포인터 정보 중 적어도 하나의 정보를 포함하는 우선순위 이름 프리픽스 트라이 기반의 비트맵 생성 방법.The method according to claim 1,
Wherein the bitmap table comprises:
(i) a node type indicating whether the nodes included in the priority-name prefix trie are priority nodes or non-priority nodes,
(ii) a component representing the number of components constituting the name prefix stored in each of the nodes included in the priority-name prefix trie,
(iii) a hash brief that indicates a fingerprint derived by applying a hash function to a name prefix stored in each of the nodes included in the priority-name prefix triad,
(iv) Child number information indicating the number of child nodes for the nodes included in the priority-name prefix trie and
(iv) Priority name - A priority name that includes at least one of the child pointer information indicating the address value of the encoding table corresponding to the path to the first child node of the nodes included in the prefix trie. Generation method.
상기 인코딩 테이블은,
상기 우선순위-이름 프리픽스 트라이에 포함된 우선순위 노드와 비우선순위 노드 각각의 자식 노드에 대한 에지(edge) 정보 및 상기 우선순위 노드 및 비우선순위 노드와 상기 자식 노드 간의 인덱스 번호 차이를 나타내는 인코딩 번호를 포함하는 우선순위 이름 프리픽스 트라이 기반의 비트맵 생성 방법.The method according to claim 1,
Wherein the encoding table comprises:
Edge information for the child node of each of the priority node and the non-priority node included in the priority-name prefix triangle and an encoding number indicating the difference between the index numbers of the priority node, the non-priority node, and the child node Included priority names Prefix trie based bitmap generation methods.
상기 노드 테이블은,
상기 우선순위-이름 프리픽스 트라이의 우선순위 노드와 비우선순위 노드 각각에 포함된 이름 프리픽스와 상기 이름 프리픽스에 대응하는 출력 페이스를 포함하는 우선순위 이름 프리픽스 트라이 기반의 비트맵 생성 방법.The method according to claim 1,
The node table comprising:
A priority name prefix tri based bitmap generation step including a name prefix included in each of a priority node and a non-priority node of the priority-name prefix trie, and an output face corresponding to the name prefix.
상기 저장하는 단계는,
이름 프리픽스 검색 장치의 프로세서가 상기 비트맵 테이블 및 인코딩 테이블은 이름 프리픽스를 검색하는 칩의 내부 메모리에 저장하고,
상기 노드 테이블은 이름 프리픽스를 검색하는 칩의 외부 메모리에 저장하는 우선순위 이름 프리픽스 트라이 기반의 비트맵 생성 방법.The method according to claim 1,
Wherein the storing step comprises:
The processor of the name prefix retrieval apparatus stores the bitmap table and the encoding table in the internal memory of the chip retrieving the name prefix,
Wherein the node table stores a name prefix in an external memory of a chip that retrieves a priority name prefix tri based bitmap.
이름 프리픽스 검색 장치의 프로세서가 이름 프리픽스 트라이에서 도출된 우선순위 노드 및 비우선순위 노드를 포함하는 우선순위-이름 프리픽스 트라이에 기초하여 생성된 비트맵을 식별하는 단계;
이름 프리픽스 검색 장치의 프로세서가 상기 식별된 비트맵을 이용하여 입력 패킷의 이름 프리픽스와 가장 많은 컴포넌트가 일치하는 우선순위-이름 프리픽스 트라이 내의 이름 프리픽스를 검색하는 단계
를 포함하고,
상기 비트맵은,
비트맵 테이블, 인코딩 테이블 및 노드 테이블로 구성되는 이름 프리픽스 검색 방법.The name prefix search method performed by the name prefix search device includes:
Identifying a bitmap generated based on a priority-name prefix triangle including a priority node and a non-priority node derived from a name prefix trie of a name prefix search apparatus;
The processor of the name prefix searching apparatus searches for a name prefix in a priority-name prefix triangle in which the component name matches the name prefix of the input packet using the identified bitmap
Lt; / RTI >
The bit map may include:
A name prefix search method comprising a bitmap table, an encoding table, and a node table.
상기 검색하는 단계는,
이름 프리픽스 검색 장치의 프로세서가 상기 입력 패킷의 이름 프리픽스를 검색하기 위해 접근한 상기 비트맵 테이블의 노드 타입에 기초하여 상기 우선순위-이름 프리픽스 트라이에 포함된 노드가 우선순위- 노드인지 또는 비우선순위 노드인지 확인하는 단계; 및
이름 프리픽스 검색 장치의 프로세서가 상기 우선순위-이름 프리픽스 트라이에 포함된 노드가 비우선순위 노드로 확인되면, 상기 확인된 비우선순위 노드의 인덱스 번호와 동일한 노드 테이블의 인덱스 번호에 접근하여 출력 페이스를 추출하는 단계
를 포함하는 이름 프리픽스 검색 방법.9. The method of claim 8,
Wherein the searching comprises:
The node included in the priority-name prefix trie based on the node type of the bitmap table accessed by the processor of the name prefix searching apparatus to search for the name prefix of the input packet is a priority- ; And
If the processor of the name-prefix search apparatus determines that the node included in the priority-name prefix trie is a non-priority node, the processor retrieves the output face by accessing the index number of the node table that is the same as the index number of the verified non- step
≪ / RTI >
상기 추출하는 단계 이후에,
이름 프리픽스 검색 장치의 프로세서가 상기 입력 패킷의 이름 프리픽스를 검색하기 위해 접근한 상기 비트맵 테이블의 비우선순위 노드가 자식 노드를 가지는지 여부를 확인하는 단계;
이름 프리픽스 검색 장치의 프로세서가 상기 비우선순위 노드가 자식 노드를 가지는 것으로 확인된 경우, 상기 비트맵 테이블의 차일드 포인터 정보를 이용하여 인코딩 테이블에 접근하고, 상기 인코딩 테이블을 이용하여 다음에 검색을 진행할 경로와 일치하는 자식 노드에 대한 에지 정보를 확인하는 단계; 및
이름 프리픽스 검색 장치의 프로세서가 상기 일치하는 자식 노드에 대한 에지 정보가 확인된 경우, 상기 입력 패킷의 이름 프리픽스를 검색하기 위해 접근한 상기 비트맵 테이블의 비우선순위 노드에 대한 인덱스 번호와 상기 확인된 에지 정보에 대응하는 인코딩 번호를 이용하여 다음에 검색을 진행할 비트맵 테이블의 인덱스를 결정하는 단계
를 더 포함하는 이름 프리픽스 검색 방법.10. The method of claim 9,
After the extracting step,
Confirming whether a non-priority node of the bitmap table that the processor of the name prefix search apparatus has accessed to search for a name prefix of the input packet has a child node;
The processor of the name prefix searching apparatus accesses the encoding table using the child pointer information of the bitmap table when the non-priority node has a child node, Identifying edge information for a child node matching the child node; And
Wherein when the processor of the name prefix searching apparatus determines that the edge information for the matching child node has been checked, the index number of the non-priority node of the bitmap table accessed to search for the name prefix of the input packet, Determining an index of a bitmap table to be retrieved next using an encoding number corresponding to the information
And a prefix search method.
상기 검색하는 단계는,
이름 프리픽스 검색 장치의 프로세서가 상기 입력 패킷의 이름 프리픽스를 검색하기 위해 접근한 상기 비트맵 테이블의 노드 타입에 기초하여 상기 우선순위-이름 프리픽스 트라이에 포함된 노드가 우선순위 노드인지 비우선순위 노드인지 확인하는 단계;
이름 프리픽스 검색 장치의 프로세서가 상기 우선순위-이름 프리픽스 트라이에 포함된 노드가 우선순위 노드로 확인되면, 상기 입력 패킷의 이름 프리픽스에 대한 해시 값과 상기 비트맵 테이블에 포함된 해시브리프가 일치하는지 비교하는 단계;
이름 프리픽스 검색 장치의 프로세서가 상기 입력 패킷의 이름 프리픽스에 대한 해시 값과 상기 비트맵 테이블에 포함된 해시브리프가 일치하는 경우, 상기 입력 패킷의 이름 프리픽스와 상기 노드 테이블에 저장된 이름 프리픽스와 일치하는지 비교하는 단계; 및
이름 프리픽스 검색 장치의 프로세서가 상기 입력 패킷의 이름 프리픽스와 상기 노드 테이블에 저장된 이름 프리픽스와 일치하는 경우, 상기 확인된 우선순위-이름 프리픽스 트라이에 포함된 노드의 인덱스 번호와 동일한 노드 테이블의 인덱스 번호에 접근하여 출력 페이스를 추출하는 단계
를 포함하는 이름 프리픽스 검색 방법.9. The method of claim 8,
Wherein the searching comprises:
The processor of the name prefix searching apparatus determines whether the node included in the priority-name prefix trie is a priority node or a non-priority node based on the node type of the bitmap table accessed by the processor to search for a name prefix of the input packet ;
If the processor of the name prefix search apparatus determines that the node included in the priority-name prefix trie is a priority node, the hash value of the name prefix of the input packet is compared with the hash brief included in the bitmap table ;
The processor of the name prefix searching apparatus compares the hash value of the input packet with the hash value of the name prefix of the input packet and the hash brief included in the bit map table to see if the name prefix of the input packet matches the name prefix stored in the node table ; And
If the processor of the name prefix search apparatus matches the name prefix of the input packet and the name prefix stored in the node table, the index number of the node table that is the same as the index number of the node included in the identified priority- Step of accessing and extracting the output face
≪ / RTI >
상기 우선순위-이름 프리픽스 트라이는,
상기 이름 프리픽스 트라이에서 이름 프리픽스를 가지지 않는 빈 노드를 루트 노드로 설정하는 서브 트라이를 결정하고, 상기 서브 트라이에서 이름 프리픽스를 가지는 적어도 하나의 삽입 노드들 중 가장 많은 컴포넌트를 갖는 이름 프리픽스가 저장된 삽입 노드를 우선순위 노드로 결정하여 상기 서브 트라이의 루트 노드로 대체함으로써 생성되는 이름 프리픽스 검색 방법.9. The method of claim 8,
Wherein the priority-name prefix trie comprises:
Determining a subtree for setting an empty node having no name prefix in the name prefix triangle as a root node, and determining a subtree in which a name prefix having a name component Is determined as a priority node and replaced with the root node of the subtree.
상기 비트맵은,
상기 우선순위-이름 프리픽스 트라이에 포함된 우선순위 노드 및 상기 우선순위 노드를 제외한 삽입 노드를 나타내는 비우선순위 노드의 노드 번호를 상기 비트맵 테이블의 인덱스 번호 및 인코딩 테이블의 인덱스 번호 각각에 매칭함으로써 생성되는 이름 프리픽스 검색 방법.9. The method of claim 8,
The bit map may include:
A priority node included in the priority-name prefix trie and a node number of a non-priority node indicating an insertion node excluding the priority node are matched with index numbers of the bitmap table and index numbers of the encoding table, respectively How to search for name prefixes.
비트맵 테이블은,
(i) 상기 우선순위-이름 프리픽스 트라이에 포함된 노드들이 우선순위 노드 또는 비우선순위 노드인지 여부를 나타내는 노드 타입,
(ii) 우선순위-이름 프리픽스 트라이에 포함된 노드들 각각에 저장된 이름 프리픽스를 구성하는 컴포넌트의 개수를 나타내는 컴포넌트,
(iii) 우선순위-이름 프리픽스 트라이에 포함된 노드들 각각에 저장된 이름 프리픽스에 해시 함수를 적용하여 도출된 핑거프린트(fingerprint)를 나타내는 해시브리프,
(iv) 우선순위-이름 프리픽스 트라이에 포함된 노드들에 대한 자식 노드의 개수를 나타내는 차일드 개수 정보 및
(iv) 우선순위-이름 프리픽스 트라이에 포함된 노드들의 첫번째 자식 노드로의 경로에 해당하는 인코딩 테이블의 주소값을 나타내는 차일드 포인터 정보 중 적어도 하나의 정보를 포함하는 이름 프리픽스 검색 방법.9. The method of claim 8,
The bitmap table,
(i) a node type indicating whether the nodes included in the priority-name prefix trie are priority nodes or non-priority nodes,
(ii) a component representing the number of components constituting the name prefix stored in each of the nodes included in the priority-name prefix trie,
(iii) a hash brief that indicates a fingerprint derived by applying a hash function to a name prefix stored in each of the nodes included in the priority-name prefix triad,
(iv) Child number information indicating the number of child nodes for the nodes included in the priority-name prefix trie and
and (iv) child pointer information indicating an address value of an encoding table corresponding to a path to a first child node of nodes included in the priority-name prefix trie.
상기 인코딩 테이블은,
상기 우선순위-이름 프리픽스 트라이에 포함된 우선순위 노드와 비우선순위 노드 각각의 자식 노드에 대한 에지(edge) 정보 및 상기 우선순위 노드 및 비우선순위 노드와 상기 자식 노드 간의 인덱스 번호 차이를 나타내는 인코딩 번호를 포함하는 이름 프리픽스 검색 방법.9. The method of claim 8,
Wherein the encoding table comprises:
Edge information for the child node of each of the priority node and the non-priority node included in the priority-name prefix trie and an encoding number indicating the difference between the index numbers of the priority node, the non-priority node and the child node Contains the name prefix search method.
상기 노드 테이블은,
상기 우선순위-이름 프리픽스 트라이의 우선순위 노드와 비우선순위 노드 각각에 포함된 이름 프리픽스와 상기 이름 프리픽스에 대응하는 출력 페이스를 포함하는 이름 프리픽스 검색 방법.9. The method of claim 8,
The node table comprising:
A name prefix included in each of a priority node and a non-priority node of the priority-name prefix triangle, and an output face corresponding to the name prefix.
상기 비트맵 테이블 및 인코딩 테이블은 이름 프리픽스를 검색하는 칩의 내부 메모리에 저장되고,
상기 노드 테이블은 이름 프리픽스를 검색하는 칩의 외부 메모리에 저장되는 이름 프리픽스 검색 방법.
9. The method of claim 8,
The bitmap table and the encoding table are stored in an internal memory of a chip which searches for a name prefix,
Wherein the node table is stored in an external memory of a chip retrieving a name prefix.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160070526A KR101787899B1 (en) | 2016-06-07 | 2016-06-07 | A bitmap generating method based on priority-name prefix trie and name prefix searching method using the bitmap |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160070526A KR101787899B1 (en) | 2016-06-07 | 2016-06-07 | A bitmap generating method based on priority-name prefix trie and name prefix searching method using the bitmap |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101787899B1 true KR101787899B1 (en) | 2017-10-19 |
Family
ID=60298230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160070526A KR101787899B1 (en) | 2016-06-07 | 2016-06-07 | A bitmap generating method based on priority-name prefix trie and name prefix searching method using the bitmap |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101787899B1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101582050B1 (en) * | 2014-10-24 | 2015-12-31 | 이화여자대학교 산학협력단 | Apparatus and method for searching name using bloom filter pre-searching |
-
2016
- 2016-06-07 KR KR1020160070526A patent/KR101787899B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101582050B1 (en) * | 2014-10-24 | 2015-12-31 | 이화여자대학교 산학협력단 | Apparatus and method for searching name using bloom filter pre-searching |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110301120B (en) | Stream classification device, method and system | |
CN105376160B (en) | Reputation-based instruction processing on information-centric networks | |
US6691124B2 (en) | Compact data structures for pipelined message forwarding lookups | |
US7281085B1 (en) | Method and device for virtualization of multiple data sets on same associative memory | |
US7808929B2 (en) | Efficient ACL lookup algorithms | |
EP3497892B1 (en) | Compressing forwarding tables | |
US20150120924A1 (en) | Software-defined named-data networking | |
US7317723B1 (en) | Action based termination of multidimensional lookup | |
US10148571B2 (en) | Jump on a match optimization for longest prefix match using a binary search tree | |
CN108134739B (en) | Route searching method and device based on index trie | |
US20130024649A1 (en) | Method and device for storing routing table entry | |
CN104468401A (en) | Message processing method and device | |
US9135833B2 (en) | Process for selecting compressed key bits for collision resolution in hash lookup table | |
WO2017095801A1 (en) | Forwarding table compression | |
KR101787899B1 (en) | A bitmap generating method based on priority-name prefix trie and name prefix searching method using the bitmap | |
KR20150052544A (en) | Operating method of node considering packet characteristics in content centric network and the node | |
US8755386B2 (en) | Traceback packet transport protocol | |
EP4145777A1 (en) | Message classification method and apparatus, electronic device, and readable medium | |
CN112437065B (en) | Strategy conflict detection and solution method based on graphic representation under SDN environment | |
KR20150052576A (en) | Operating method of transmission node and receiver node processing packet including location information of field and the packet including the location information of the field | |
CN114911728A (en) | Data searching method and device and integrated circuit | |
CN109347747B (en) | Data processing method and device | |
JP7359299B2 (en) | Packet identification device, packet identification method, and packet identification program | |
KR102229554B1 (en) | Method and Device for Generating Hash Key | |
KR101583439B1 (en) | Packet classification method and packet classification apparatus using an area-based quad trie with leaf-pushing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |