نمونه سازی سریع از پروتکل های شبکه از طریق استفاده مجدد مدل شبیه سازی NS-3
|کد مقاله||سال انتشار||مقاله انگلیسی||ترجمه فارسی||تعداد کلمات|
|9684||2011||13 صفحه PDF||سفارش دهید||7860 کلمه|
Publisher : Elsevier - Science Direct (الزویر - ساینس دایرکت)
Journal : Simulation Modelling Practice and Theory, Volume 19, Issue 9, October 2011, Pages 2063–2075
In the networking research and development field, one recurring problem faced is the duplication of effort to write first simulation and then implementation code. We posit an alternative development process that takes advantage of the built in network emulation features of Network Simulator 3 (ns-3) and allows developers to share most code between simulation and implementation of a protocol. Tests show that ns-3 can handle a data plane processing large packets, but has difficulties with small packets. When using ns-3 for implementing the control plane of a protocol, we found that ns-3 can even outperform a dedicated implementation.
Research and development today has to keep up with a fast evolving field of research, and communications protocols research is no exception. Considerable time is spent by researchers and developers from the idea of a protocol that solves a specific problem and the deployment of an implementation of that protocol. One of the main contributors for the time spent is the need to develop both a simulation model and then an implementation of the same protocol. What if we could develop a single hybrid simulation/implementation model? In this paper we explore the possibility of doing just that: using the Network Simulator 3 (ns-3) as a framework for developing new protocols that can be first simulated and then deployed in a real communications device with only minimal changes. Such an approach appears to be interesting, at the surface, since it will save development time, among other advantages. However, questions regarding real world performance remain, and one of the objectives of this paper is to discover performance limits of the proposed framework. This paper includes three main contributions. First, the proposal of a new unified simulation/implementation protocol development process that takes advantage of the existing ns-3 network emulation functionality. We evaluate the packet processing performance, in terms of achievable throughput, packet loss, and round-trip time, of ns-3 working in emulation mode, compared to a pure kernelspace IPv4 forwarding. We propose additional ns-3 classes that significantly improve the emulation of control plane protocols, and simplify the deployment of such protocols.
نتیجه گیری انگلیسی
In this paper we address the topic of network protocol development methodology. The traditional protocol development process is reviewed, and the main problems associated with it are brought to light. One recurring problem is the duplication of effort to write first simulation and then implementation code. Another potential problem is the propensity for behavior differences being accidentally introduced between the two versions, leading to simulations offering results different from the implementation. We offer an alternative development process that takes advantage of the built in network emulation features of ns-3. The ns-3 based development process allows developers to write a single model for the protocol that can be both simulated and deployed in a real node. The main difference between ns-3 and other similar frameworks is that in ns-3 everything can be done in C++ and using good C++ programming practices for ease of development. In order to support the proposal to use ns-3 for implementation of new protocols, the performance of ns-3 running in emulation mode has been evaluated. The results show that the ns-3 IPv4 stack, in emulation mode, is able to process packets at a rate high enough to exhaust an 100 Mbit/s Ethernet link, when handling large packets, but can have problems forwarding traffic if it is composed mostly of very small packets. Nonetheless, we reckon ns-3 is still useful for small packet networks provided that the data plane is implemented in kernelspace and ns-3 handles only the control plane. This scenario was tested by comparing the ns-3 OLSR model with the open source OLSRd implementation, and we found that ns-3 can even outperform OLSRd under high load, albeit with a little more memory consumed.