Network emulators, network modelers and network simulators -- how do they differ? How do I know what solution would be right for my application?
Modelers, simulators, and emulators represent a continuum, that begins with pure mathematical software models and moves towards the physical reality of emulation.
Network modelers represent a network as a set of mathematical equations. With a network modeler, you mathematically define traffic volumes, flows, network architectures, etc. You can then visualize the application performance, and do "what-if" analysis. Modelers do not deal with real traffic; no real packets flow through a modeler; in fact, there is no network hardware at all. Modelers rarely allow the attachment of actual physical network devices.
OPNET (now Riverbed SteelCentral) is an example of a modeler.
Network Simulators generate test conditions approximating actual or operational conditions. Simulators use mathematical formulas to predict behavior.
Simulators resemble modelers, however modelers try to represent an entire network while simulators tend to simulate a component.
For example, an SNMP agent simulator running on an inexpensive PC, would simulate the behavior of the SNMP agent inside an expensive router. You could query this simulated SNMP agent for the values of MIB objects. Or the simulated agent could send an alarm that a link was down. However, the values would not be real and there is no real link that is down. So, what is simulated is the behavior of an agent, but not a real link down condition.
A network simulator would use mathematical models to simulate, for example, a low earth orbit satellite link. In such a simulation, it would appear to the application that it is operating over a low earth orbit satellite, however, the application would really be running on a computer, using a mathematical model with assumptions and/or actual measurements of low earth orbit satellite operation.
Network emulators take the next step on the contiuum from pure mathematics and software towards physical reality.
Network Emulators imitate the function of (another system), by modifications to hardware, software, or network activity that allow the imitating system (the emulator) to accept the same data, execute the same programs, and achieve the same results as the imitated system.
IWL's Maxwell family of products operate as both network emulators and network simulators.
As a network emulator, Maxwell can behave like one side of a TCP session while the product under test is on the other side. The product under test believes it is engaged in a TCP session, and Maxwell generates various TCP error conditions or unusual responses to test the quality of the product under test.
As a network simulator, Maxwell can create low earth orbit satellite conditions, and sit in the middle of a client and server. The client and server believe they are communicating over a satellite, even though the simulation takes place on a lab network.
In addition to network emulators, there are also device emulators. Some router companies, for example, emulate Cisco's IOS, so that their Brand X router behaves like a Cisco router. Some printer companies emulate HP printers so that their Brand X printer is compatible with all the applications and drivers that the HP printer supports.
NOTE: Originally published 4 Feb 2008, this paper was updated with contemporary examples on 25 May 2018.