Network emulators, network modelers and network simulators -- how do they differ? How do I know what solution would be right for my application? How do I compare an emulator vs a simulator?
Modelers, simulators, and emulators represent a continuum, that begins with pure mathematical software models and moves towards the physical reality of emulation.
A network modeler is a representation of a network based on 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.
A network simulator is a tool for approximately generating actual or operational test conditions. A network simulator uses mathematical formulas to predict actual 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.
A network emulator is a tool to imitate the function of another system by modifications to hardware, software, or network activity; this allows the imitating system (the emulator) to accept the same data, execute the same programs, and achieve the same results as the imitated system.
Network emulators take the next step on the contiuum from pure mathematics and software towards physical reality.
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. In these cases, the emulating device is not a test or diagnostic tool, but an actual device, such as a printer or a router, that behaves in the identical fashion as the emulated printer or router.
For more information:
NOTE: Originally published 4 Feb 2008, this paper was updated with contemporary examples on 25 May 2018.