Summary: | 碩士 === 國立交通大學 === 資訊工程系 === 89 === NCTUNS is an extensible and high-fidelity TCP/IP network simulator. All existing application programs such as ftp, telnet, and all network utilities such as tcpdump, netstat are immediately applicable on a simulated network to generate traffic, gather network statistics, etc. Additionally, the NCTUNS provides the standard UNIX API on every node in a simulated network. As such, future application programs or protocols can be developed and run on any node in a simulated network. Generated simulation results are derived from executing the real-life TCP/IP protocol stack on the simulation host. Thus they are more accurate and convincing than the results generated by other network simulators. However, because almost everything that NCTUNS runs is real, the simulation speed of NCTUNS is much slower than other networks.
This paper provides two methods for improving the performance of the NCTUNS, which originally uses polling as its event detection mechanism. The two methods are the in-kernel module and the interrupt driven implementation, respectively. The in-kernel module implementation can improve the performance by up to 700 % in comparison with the original NCTUNS. It immerses the simulated network constructed by NCTUNS into the kernel to avoid the user level polling and memory copy overhead. The other method, the interrupt driven implementation, uses the UNIX signal mechanism to inform the simulator of some packet events. It can eliminate the polling overhead as well. As a result, this method can improve the performance by up to 500 % in comparison with the original NCTUNS.
|