LINE

LINE is a network emulator designed for realism, accuracy and powerful measurement capabilities. It is capable of emulating in real-time networks on layer 3, while forwarding network traffic generated by real Linux network stacks.

Architecture

A typical LINE setup consists of three computers, each having a specific role.

Network emulator

This machine performs the emulation of the routers in the network. It should be a system optimized for low latency.

Hardware requirements

CPU: 64-bit quad-core with good single thread performance. Our current setup uses an Intel Xeon E3-1290 V2 (Ivy Bridge) CPU, but there might be other good options. We found this classification useful: PassMark - CPU Mark Single Thread Performance.

Network: two network cards, one for WAN and another one dedicated for exchanging traffic with the traffic generator. The dedicated card should run at 10 Gbps (1 Gbps will work too, but will limit the amount of traffic that can be sent through the emulated network to < 1 Gbps); we use Intel 10-Gigabit X540-AT2. The traffic generator and the network emulator should be connected directly through a network cable (no switches/routers, to avoid background traffic and other effects).

Software requirements

OS: Ubuntu 12.04.4 (LTS) 64-bit server.

The machine should not be used for anything else, and should be connected to a secure network, since we are going to disable the firewall.

Traffic generator

This machine generates the traffic that will be routed through the emulated network. It should be a system optimized for good network I/O performance.

Hardware requirements

CPU: 64-bit quad-core or better with good overall performance. Our current setup uses an Intel Xeon E3-1290 V2 (Ivy Bridge) CPU, but a CPU with more cores or a multi-CPU setup might work well. This classification may be useful: PassMark - CPU Mark High End CPUs.

Network: two network cards, one for WAN and another one dedicated for exchanging traffic with the network emulator. The dedicated card should run at the same speed as the dedicated card of the network emulator.

Software requirements

OS: Ubuntu 12.04.4 (LTS) 64-bit server.

The machine should not be used for anything else, and should be connected to a secure network, since we are going to disable the firewall.

Control center

This machine is used for configuring the experiments, and controlling remotely the router emulator and the traffic generator.

Hardware requirements

CPU: 64-bit, with modest performance.

Network: network connectivity is required in order to run experiments.

Software requirements

OS: Ubuntu 12.04.4 (LTS) 64-bit desktop.

System configuration

Network emulator

These instructions assume that the system is running a clean Ubuntu 12.04.4 (LTS) 64-bit server installation. The instructions should be executed as root (run sudo su).

Parameters explained:

isolcpus=1,2,3: isolates cores 1, 2 and 3 from the rest of the system (they will be dedicated for LINE, i.e. no other applications will be scheduled to run on these cores); core 0 will be kept for housekeeping;

acpi=noirq: whether this is useful is highly dependent on your motherboard and/or BIOS. We used it because a large number of "Rescheduled interrupts" was listed in /proc/interrupts. YMMV. See ReschedulingInterrupts;

BRITE - Boston university Representative Internet Topology gEnerator
A network topology generator.http://www.cs.bu.edu/brite
BRITE is not included nor directly used in LINE; however, LINE is able to import BRITE files.

The Gephi Toolkit - offers nice graph layout algorithmshttp://gephi.org
License: The majority of the Gephi Plateform code is available under the dual license CDDL 1.0 and GNU General Public License (GPL) v3.
Gephi and the layout program are included separately from LINE in source and binary forms, and the binary can be executed automatically by LINE.

OpenOrd Layout Gephi Plugin
Force-Directed layout algorithm for real-world large-scale undirected graphs.http://gephi.org/plugins/openord-layout
License: GPLv3
Gephi and the layout program are included separately from LINE in source and binary forms, and the binary can be executed automatically by LINE.