• No results found

Simulation and Emulation Needs in TCP Research

In order to understand how TCP functions in the wireless network, network simulators are often used. Network simulators are useful tools for testing TCP performance in various net- work environments. The simulator can be used to understand the TCP behaviour, so further analysis and discussion can be taken. Simulator supporting the simulation components of wireless TCP have became critical as the result of the wide usage of wireless Internet access over recent years. Simulators can also reduce network hardware cost if a TCP study under a wide range topology is considered.

Based on the implementation type, network tools can be classified into two types: network simulators and network emulators, as explained in the following sections. The terms will be used throughout the thesis as the experimental over derived.

2.7.1

Network Simulators

Generally, a simulator is implemented as an application software, which supports a virtual network environment on which users can construct a virtual network topology. A single computer with a supporting operating system can simply create the simulator environment. High flexibility is the main feature of the simulator. It is usually used for the testing of new network protocols, with has high variation based on each simulated output. The advantages of using the simulator to evaluate the TCP performance are discussed below.

• The simulator is not limited by physical speed. For instance, a long term network demonstration could take a few days to gather the necessary data. Using the simulator, analytical information may also be collected in seconds.

• Simulation provides a means of testing TCP performance across “rare” networks, to which a researcher does not have easy access. [92]

• Simulators are not equipment extensions. A single computer can be used to run net- work simulations even for complex topologies. This feature is especially useful for simulating topology of end-to-end protocols, such as TCP and UDP, in which middle topologies between two hosts might not easily be controlled.

• A graphic user interface (GUI) is supported by many simulators. GUI can help users to look inside complex network structures. For instance, the TCP ssthresh and TCP cwnd are two factors that could affect TCP performance. Through GUI, the adjustment of two factors becomes simple and users do not need to deeply understand the real network structure.

• Simulation is just “close to” the real network. A number of simulators, such as Network Simulator 2 (ns2), have been designed with an “abstract concept” for TCP implemen- tation. The “abstract concept” involves only the main features of TCP, but ignores some TCP parts which must be used in the real network environment. For instance, in ns2, the TCP checksum algorithm or urgent data transfer on both sender and receiver sides are ignored by ns2. Besides, ns2 does not support a dynamic window advertise- ment. Moreover, there is no SYN/FIN connection establishement/teardown during TCP three-way handshaking. The most important point is that no real data is ever transferred. The “abstract concept” may be good enough to analyze TCP. But, the simulation results may not match those which are tested in the real network.

• Compatibility might cause the reliability issues. Customized modules are allowed to be deployed in those simulators. These modules might be developed by the users for some specific research purposes. The new modules might not be precisely examined, unlike those functions supposed by the simulators. Compatibility is not guaranteed. Afterwards, fault simulation might be produced due to the possible carelessness de- sign and the faulty might not be found easily. Hence, care should be taken with the simulation results when any architecture is changed from the original simulator [92]. • Only partial network events can be “modelled” in the simulators, but no actual in-

teractions are taken. However, in the real system, network is not the only factor, which affects network performance. For instance, network input/output (I/O) and file read/write(R/W) must fully cooperate with OS. For this reason, an OS might act as an important factor when the TCP throughput is studied. However, network simu- lators are usually implemented as an software application, so non-network events are hardly to be considered. Hence, the simulation accuracy could be highly improved if non-network factors can be included in the simulation.

In [93], some helpful rules for researcher to test the accuracy of their simulation are also discussed.

2.7.2

Network Emulator

In contrast with the simulator, the network emulator emulates the network which connects end systems (e.g. computers), not the end systems themselves. Emulation differs from sim- ulation because a network emulator appears to be a network. Thus, end systems can be attached to the emulator and will behave as if they are attached to a network. Network emulators are useful for the observation of interaction with network devices and network environments since emulators are part of end systems. Some simulator drawbacks can natu- rally be solved owing the features of emulators. Using TCP as an example, a TCP emulator runs in a real network environment, so a “true” TCP connection must be established and a

“real” data flow must be generated. The main drawback of the emulator is less flexibility. The emulator environment must be supported by a number of network devices, so extra cost and space are necessary.