# Data Structure and Management Protocol to Enhance Name Resolving in Named Data Networking
## 2 Related Work  
Several research papers have focused on implementing NDN tables using trie-based solutions. The majority of works related to name lookup in NDN networks are summarized in two surveys cited in [4; 5]. However, we are going to focus on component-based and encoded component-based tries, since our work is based on this trie type. In [6], [PERSON] et al. proposed the Name Prefix Trie (NPT), which is the first NDN component trie that represents the name components in edges and the lookup states in nodes. Since NPT is a component trie, the memory consumption is less than in the character trie. However, the depth of NPT can be considered unbounded, and accordingly, the name lookup speed is relatively high.  
[PERSON] and [PERSON] introduced a priority NPT (p-NPT) in [7], which separates on-chip processing from off-chip processing so that most of the Longest Prefix Matches (LPMs) are executed with on-chip memories, and accordingly, the off-chip memory access is reduced. The essential difference between p-NPT and normal NPT is that the empty nodes in NPT are replaced with leaf nodes. Consequently, it has less memory consumption and less lookup time.  
[PERSON] and [PERSON] [8] utilize Patricia Trie to propose a path-compressed NPT (PC-NPT) to resolve issues in NPT. This was achieved by eliminating empty nodes and consolidating any single child with its parent, thereby decreasing the trie's depth. According to their findings, PC-NPT decreases the number of accessed nodes by 21% compared to NPT, thereby improving lookup and search speed.  
In [9], [PERSON] et al. tried to improve NPT by proposing a Name Component Encoding (NCE) that implements an Encoded Name Prefix Trie (ENPT) for the FIB table. They also proposed a State Transition Array (STA) to maintain the state and transition of the ENPT. It has been noticed that NCE reduces the size of the FIB table. However, the NCE complexity is increased by using STA, and the mapping between codes and components reduces the lookup speed.  
[PERSON] et al. [10] proposed a Component Hash Encoding (CHE), which uses recursive hashing to hash all children belonging to the same parent, i.e., the hash code of the fourth child is related to the third one, the hash code of the third child is related to the second child, and so on. After encoding the components, the lookup process is performed by an STA. According to their results, the CHE consumes less memory compared to Name Character Tries (NCT). However, the recursive hashing of related children increases the encoding complexity.  
[PERSON] et al. [11] proposed RaCE, which uses both component encoding and Patricia Radix path compression trie where nodes with one child are merged. Accordingly, the depth of the trie decreases, and the lookup speed increases. Nevertheless, lookup time in RaCE is affected by the component-to-code mapping process.  
In our proposed data structure, ECHT, we combine multiple specifications to speed up the main operations that may occur in the PNPS mapping table, such as utilizing (1) NameComponent encoded in Type-Length-Value (TLV) format, (2) component trie-based data structure, and (3) a hash mechanism.  
NDNS is the main work that discusses global name resolution. [PERSON] et al. [12] proposed a DNS-like zone-based name service for NDN to fulfill the demand for a name look-up service in the NDN network. Although NDNS considers multiple aspects and mimics the Domain Name System (DNS), which is the main mapping system in the current Internet, it has a centralized issue, and the name registry is controlled by the Internet Corporation for Assigned Names and Numbers. However, we offer a new mapping management protocol that has the capability to update and modify PNPSes mapping and resolve tables. Our proposed protocol helps in solving the global inter-domain scalability issue. Moreover, our protocol gives the producer the liberty to choose its consumers at their corresponding Autonomous System (AS) domain level.