# Data Structure and Management Protocol to Enhance Name Resolving in Named Data Networking
## 4 Experimental Setup and Results
### Time Performance  
Five experiments were conducted to test the time performance of (1) the initial loading of one million names to the mapping table and (2) the lookup operation. The first experiment was conducted to study the time for locally loading the entire dataset (one million entries) into an empty trie progressively. By locally, we mean injecting the entries from memory directly into the three algorithms' backends and not through PNPP ADD messages. This allows us to fairly test the trie insertion performance without TLV decoding/encoding. For this experiment, the dataset was loaded to memory in two copies: (1) native text format, to be used by Component and Character Trie algorithms, and (2) TLV encoded format, to be used by the ECHT algorithm. By using this approach, we ensure fair start points for all algorithms. The dataset was loaded in incremental batches of 100,000 names, as shown in Figure 5.  
Figure 5 shows that component trie took the least loading time (4.56 s), since the character trie (33.52 s) had more nodes (character-based). Moreover, component trie also took less loading time than ECHT (30.65 s). This is because ECHT loads NDN names, which need more processing time, since they are longer than string names, i.e., \"squ\" contains 3 bytes in text format and 5 bytes in NDN TLV encoding format, i.e., b\"\(\backslash\)x03 squ \begin{table}
\begin{tabular}{l c c} \hline \hline  & **Entry** & **Producer Name** & **Delivery Location** \\ \hline
1 & /com/google & /AS1, /AS3, /AS5, /AS6 \\ \hline
2 & /com/google/manager & /AS2, /AS4, /AS5, /AS6 \\ \hline
3 & /org/Wikipedia/en & /AS1, /AS7, /AS8, /AS9 \\ \hline  &. &. \. &. &. \\ \hline
1,000,000 & /ru/audimanual & /AS2, /AS5, /AS7, /AS9 \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Dataset sample. \begin{table}
\begin{tabular}{l c} \hline \hline  & **Specification** \\ \hline Names dataset & \multicolumn{2}{l}{Majestic Million} \\ \hline Number of delivery locations & 10 \\ \hline Each delivery location length & 4 bytes \\ \hline Trie used & component, character, ECHT \\ \hline Number of components per name & 2 to 5 \\ \hline Initial dataset & 1,000,000 names \\ \hline Lookup names & 100,000 names \\ \hline Added names & 100,000 names \\ \hline \hline \end{tabular}
\end{table} 
Table 3: Experimental parameters. The following four experiments aimed to evaluate the time performance of the lookup operation. The main metrics that were used for these experiments are as follows:  
* _GET Positive:_ This experiment focused on testing the exact matching mechanism using a preset of 100,000 different names that were randomly selected from the one million dataset. The preset has one column, and each row is in TLV encoded format, i.e., a list of byte arrays. * _GET Negative:_ This experiment focused on testing the exact matching mechanism using the previous preset, but where each row was manipulated as follows, For the sake of simplicity, we will use human-readable strings for names instead of the actual list of byte-arrays:
* Insert 1-byte-char \"x\" as a prefix for each name component, i.e., the name \"/om/edu/squ\" becomes \"/xom/edu/squ\", \"/om/xedu/squ\", and \"/om/edu/xsqu\". This technique ensures that competing algorithms are tested for fast query exits at various depths. * Insert 1-byte-char \"x\" as a suffix for each name component, i.e., the name \"/om/edu/squ\" becomes \"/omx/edu/squ\", \"/om/edu/squ\", and \"/om/edu/squx\". This technique ensures that competing algorithms are tested for delayed query exits at various depths. * Insert 1-byte-char \"x\" as a suffix component for each name, i.e., the name \"/om/edu/squ\" becomes \"/om/edu/squ/x\". This technique ensures that competing algorithms are tested for maximum depth at each query. This preset size was multiple times bigger than the original 100,000 preset. In the interest of clarity, we normalized the result to 100,000. * _BCM Positive:_ This experiment focused on testing the best component matching mechanism using the GET Positive preset.