View : 1158 Download: 0

High-Speed Name Lookup Algorithms Using Bloom Filter Variants for Named Data Networking

Title
High-Speed Name Lookup Algorithms Using Bloom Filter Variants for Named Data Networking
Authors
이정원
Issue Date
2017
Department/Major
대학원 전자공학과
Publisher
이화여자대학교 대학원
Degree
Doctor
Advisors
임혜숙
Abstract
Mobile devices such as smartphones and tablet PCs are becoming more common, leading to the rapid increase in the usage of video on demand (VOD) services such as YouTube and Netflix. However, the current Internet is based on a host-centric structure, and therefore does not efficiently transmit large-capacity and repeatedly requested traffic like video. Various proposals for the future Internet have been made with the goal of overcoming inefficiencies caused by changes in the type of traffic currently being handled by the Internet. Named data networking (NDN) technology is a promising candidate for the future Internet. For NDN to be realized, a forwarding table should be searched at wire-speed. Name lookup in NDN is difficult because the length of the content name is not fixed and packets are forwarded based on longest name prefix matching (LNPM). In this dissertation, we propose a path-compressed name prefix trie (PC-NPT), PC-NPT with a skip Bloom filter (PC-NPT-SBF), and PC-NPT with a quaternary Bloom filter (PC-NPT-QBF) for packet forwarding in NDN. A name prefix trie (NPT) is a basic name lookup algorithm used in NDN routers. However, an NPT has many empty nodes, which leads to memory wastage. In addition, since the NPT is constructed with content names of various lengths, the depth of the NPT is unbounded which leads to poor lookup performance. The use of the PC-NPT is proposed to remove empty nodes and thus to compress paths in NPT. Analysis of the content names provided by ALEXA shows that 98% of name prefixes are located on the leaf node. Hence many empty nodes from the root to the name prefixes exist in a trie. The PC-NPT compresses the path by removing those nodes having only one child among the empty nodes. Even though PC-NPT reduces the memory requirement by reducing the number of empty nodes, it is still difficult to store in on-chip memory because the number of content names stored in the FIB table is excessively large. Therefore, the PC-NPT should be implemented in off-chip memory, even though this is complicated to process and takes 10-20 times longer to process than on-chip memory. To solve this problem, we propose the use of a PC-NPT with a skip Bloom filter (PC-NPT-SBF). The PC-NPT-SBF structure can be implemented in on-chip memory by storing the PC-NPT information in a Bloom filter, which uses less memory. The proposed structure improves the search performance by reducing the number of off-chip memory hash table accesses by pre-searching the PC-NPT information in an on-chip memory Bloom filter. Unlike a standard Bloom filter, the PC-NPT-SBF stores two different items of information such as a skip value and string information. The PC-NPT-SBF performs programming and querying phases to store and verify a skip value and string information. In the querying, the process of identifying string information affects the off-chip hash table access. One problem with the PC-NPT-SBF is that we cannot identify whether the information in the corresponding cell is a skip value or string information, as two different items of information are stored in the same Bloom filter. We propose the use of a PC-NPT with a quarternary Bloom filter (PC-NPT-QBF) to overcome the problem associated with the PC-NPT-SBF. The QBF is based on a cell, rather than a bit, concept. The QBF allocates 2 bits per cell such that the cell can have one of four values: 0, 1, 2, and X. The skip value is set to 1 and the string information is set to 2 in the corresponding cell of the PC-NPT-QBF. If the skip value and string information are mapped to the same cell, the corresponding cell set to X and the cell indicates that two items of information have been stored. If nothing is stored to a cell, that cell is remains set to 0. In other words, by using two bits of memory per cell, different values can be set for each programming phase, making it possible to identify the exact meaning of the corresponding cell when queried. Simulation results show that the proposed architecture improves the search performance by 52% relative to an NPT and 30% compared to a NPT with a standard BF (NPT-BF) using the Bloom filter memory which is smaller than that of a NPT-BF.;스마트폰과 같은 모바일 기기의 보편화로 주문형 비디오 서비스 등과 같은 동영상 스트리밍 서비스에 대한 수요가 급증하고 있다. 그러나 현재의 인터넷은 근본적으로 송수신 호스트 간의 통신을 위한 구조로 설계되어, 동영상과 같이 반복적으로 요청되는 대용량의 트래픽을 효율적으로 처리할 수 없다는 문제점이 있다. 최근에는 이러한 인터넷 트래픽 변화에 대응하지 못하는 현재 인터넷의 문제점을 해결하기 위해 다양한 미래 인터넷의 개념이 대두되고 있으며, 그 중 가장 각광받고 있는 것이 바로 Named Data Networking (NDN)이다. NDN은 IP주소를 사용하던 기존 인터넷 구조와 달리 콘텐츠 이름을 기반으로 패킷 포워딩을 수행하고 중간 노드에 콘텐츠를 임시 저장(Caching)하는 것이 가능하여, 반복적으로 요청되는 콘텐츠를 제공하는 경우에 발생하던 링크 과부하와 네트워크 자원 낭비를 막을 수 있다. 이러한 NDN이 실제로 상용화되기 위해서는 NDN 라우터의 포워딩 엔진인 FIB(Forwarding Information Base) 테이블, PIT(Pending Interest Table) 그리고 CS(Content Store)를 빠른 속도로 검색할 수 있어야 한다. 본 논문에서는 NDN 라우터의 포워딩 엔진 중 가장 많은 엔트리를 보유하여 검색 시 오랜 시간이 소요되고, 최장 길이 일치 검색 방식으로 인해 검색이 복잡하고 어려운 FIB 테이블을 위한 구조와 알고리즘을 제안한다. 알고리즘 구현 시에는 검색 성능을 저하시키는 가장 큰 요인인 칩-외부 메모리 접근 횟수를 줄이기 위해 적은 메모리 만으로 트라이 정보를 저장할 수 있는 블룸 필터를 사용하였고, 이는 칩-내부 메모리에 저장하는 것이 가능하여 칩-외부 메모리로의 접근 횟수를 감소시켜 검색 성능을 향상시킬 수 있었다. 일반적으로 블룸 필터는 적은 메모리만으로 정보를 표현하는 것이 가능하여 많은 알고리즘 구현 시 사용되는 구조이다. 하지만 한 셀 당 1bit의 메모리를 사용하여 특정 셀이 가질 수 있는 value는 0과 1뿐이므로 원소 삽입 시 발생하는 충돌을 표현할 수 없고, 삽입된 원소의 삭제가 불가능하다는 단점이 존재한다. 이러한 문제점들을 해결하기 위해 한 셀 당 log_2⁡3bits의 메모리를 사용하여 0, 1 그리고 X까지 3가지의 값(value)를 갖는 터너리 블룸 필터(Ternary Bloom filter)를 제안한다. 터너리 블룸 필터는 원소의 인덱스에 대응하는 모든 셀이 X로 되어있는 판별 불가 경우를 제외하면 추가된 값을 통해 충돌을 표현하는 것이 가능하고 삽입된 원소의 삭제도 가능한 블룸 필터이다. 판별 불가의 경우 블룸 필터의 크기를 늘려 발생 빈도를 매우 낮게 하는 것이 가능하다. 본 논문에서는 NDN 라우터의 포워딩 성능을 향상시키기 위해 제안한 경로를 축약한 이름 검색 알고리즘을 터너리 블룸 필터의 확장된 구조인 쿼터너리 블룸 필터 (Quarternary Bloom filter)를 사용하여 구현하였다. NDN 상에서의 이름 검색 시 풀고자 하는 문제는 가장 길게 일치하는 이름 프리픽스(Name prefix)를 찾는 것으로, 이를 해결하기 위해 제안된 것이 이름 프리픽스 트라이(Name Prefix Trie : NPT)이다. 이는 IP 검색 시 사용되는 트라이와 유사하지만 NDN에서 사용되는 콘텐츠 이름은 IP 주소와 달리 콘텐츠 이름을 구성하는 이름 요소의 길이와 수에 제한이 없어 검색 성능이 저하되며, NPT 내에 존재하는 빈 노드들로 인한 메모리 낭비가 심하다는 문제가 있다. 본 논문은 이러한 NPT의 단점을 보완하기 위해 NPT에 경로압축(Path-Compression)을 적용한 PC-NPT를 제안한다. NPT의 데이터 셋을 분석하면 이름 프리픽스의 98%가 전체 노드 중 리프 노드에 위치한 것을 확인할 수 있고, 이를 통해 트라이의 루트 노드부터 이름 프리픽스가 존재하는 리프 노드까지의 경로 상에 많은 빈 노드들이 존재한다는 것을 알 수 있다. 빈 노드들 중 자식 노드가 하나인 노드의 경우에는 제거가 가능하고 그로 인해 경로가 축약될 수 있는데, 이 방식을 사용하여 구성한 것이 바로 PC-NPT이다. PC-NPT는 기존의 경로상에 존재하던 빈 노드들을 삭제하였기 때문에, 본래 저장되는 스트링 정보(string information)와는 별개로 빈 노드의 삭제로 인해 발생하는 스킵(skip) 횟수를 따로 저장해야 한다. 하지만 PC-NPT를 비롯한 NPT의 경우, 구현 시 많은 메모리가 요구되어 불가피하게 칩-외부 메모리에 저장되므로 프로세싱이 복잡한 칩-외부 메모리 접근을 야기하여 검색 성능을 하락시키게 된다. 이 문제를 해결하고자 본 논문에서는 블룸 필터에 PC-NPT의 스킵 값과 스트링 정보를 저장하여 PC-NPT를 적은 메모리만으로 구현하였으며, 이로 인해 칩-내부 메모리에 저장이 가능하여 불 필요한 칩-외부 메모리 접근을 막고 검색 성능을 높이는 것이 가능하였다. PC-NPT를 블룸 필터로 구현하는 경우에는 스킵 값을 저장하는 단계와 스트링 정보를 저장하는 단계가 각각 존재하게 된다. 또한 이 때의 블룸 필터는 쿼터너리 블룸 필터로 셀의 값이 0인 경우에는 아무것도 프로그래밍 되지 않은 상태, 1이면 스킵 값이 저장된 상태, 2는 스트링 정보가 저장된 상태 그리고 X인 경우에는 스킵 값과 스트링 정보가 모두 저장된 상태를 의미한다. 쿼터너리 블룸 필터를 사용함으로써 일반 블룸 필터 사용 시 해당 셀에 저장되어 있는 것이 스킵 값인지 스트링 정보인지 구별할 수 없어 발생하던 거짓 양성(false positive)를 줄일 수 있게 되었다. 실험을 통해 제안하는 구조는 NPT-BF의 비해 적은 블룸 필터 메모리를 사용하여 NPT 대비 52%, NPT-BF 대비 30%의 검색 성능을 향상됨을 확인할 수 있었다.
Fulltext
Show the fulltext
Appears in Collections:
일반대학원 > 전자공학과 > Theses_Ph.D
Files in This Item:
There are no files associated with this item.
Export
RIS (EndNote)
XLS (Excel)
XML


qrcode

BROWSE