## 5 Performance Evaluation
### Performance Measurement for Cache-Supported Router  
The performance measurement of a router mainly focuses on forwarding and caching. A simple testbed was built from two general-purpose servers, each equipped with two gigabit Ethernet network interface cards (NICs). One server ran an ICN traffic generator [43] and a data sink. The other ran our implemented cache-supported ICN router. The details of the hardware architecture are reported in Table 2. Flow rules were configured and installed on the forward core of the router in advance.  
Figure 10: Average access load of each level’s resolution node.  
Figure 9: Average link load in overall network.  
To measure forwarding performance, traffic was originated at the traffic generator and transmitted to the router. After the router finished its forwarding operations, packets were sent back to the generator. Figure 11 reports the experimental results. The throughput of the original POF switch was no more than 1 Gbps when the size of test packet was set to 1500 Bytes, which means that it could not meet the requirement of high throughput up to O (\(10\) Gbps) of routers in future networks. However, with the growth of packet size, we could achieve a 10 Gbps throughput on the POF optimized by DPDK in the FE, i.e., forwarding on a 10 GbE network card with a line speed. Furthermore, we did not need to worry about the impact of small size packets on forwarding because the chunk size in ICN would not be smaller than MTU, such as 4K in CCNx.  
As for caching performance, we only concentrated on the performance improvement brought from user mode drive rather than the process of assembling because it was affected by too many factors, such as packet loss rate and chunk transmission rate. In addition, due to the distribute core distribute packets according to the hash of content name, the irregular flows could have led to the unbalanced loads in some assemble cores, which could have also had a negative impact on performance.  
Two kinds of cache-supported routers were implemented by applying different device drives: the SPDK of the user mode and Vector Input/Output (VIO) [29] of the kernel mode. We measured the throughput of a single SSD over 10 runs of 100,000 data chunks with different sizes while the queue depth of the SSD was set to 4. Figure 12 reports the result as a function of read/write mix under two implementation schemes. We noted that the throughput of the SSD based on the SPDK of the user mode drive was much better than that based on the kernel model drive of Linux. With the increase of the chunk size, the performance rapidly improved because the IO operation pattern changed from random to sequential. We argue that reasonable chunk sizes can be up to few MBs since the IO capacity of a single SSD is sufficient to cover 10 Gbps of traffic. We then conclude that an NVMe SSD promises to be the main medium in the storage of cache-supported ICN routers, as it removes the IO throughput bottleneck of multi-Gbps ICN routers.  
\begin{table}
\begin{tabular}{c c} \hline CPUs & 2 Intel(R) Xeon(R) CU E5-2620 v3 @ 2.40 GHz \\ \hline NICs & 4*Intel 82599 (10 Gbps) \\ \hline SSD & Intel Series 750 480 GB*3 \\ \hline \end{tabular}
\end{table}
Table 2: Hardware configuration for experimental server. NICs: network interface cards; SSD: solid state disc.  
Figure 11: Packet forwarding throughput.