1 / 21

Precise Traffic Generator

Precise Traffic Generator. Geoff Salmon, Monia Ghobadi , Yashar Ganjali , Martin Labrecque , J. Gregory Steffan University of Toronto. What is the Precise Traffic Generator (PTG)?. Uses NetThreads on the NetFPGA to generate packets. Goals

michi
Download Presentation

Precise Traffic Generator

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Precise Traffic Generator Geoff Salmon, MoniaGhobadi, YasharGanjali, Martin Labrecque, J. Gregory Steffan University of Toronto

  2. What is the Precise Traffic Generator (PTG)? • Uses NetThreads on the NetFPGA to generate packets. • Goals • Send packets precisely at the requested time. • Allow packets to be constantly streamed from host PC. • No separate “load phase”.

  3. Why Are These Goals Interesting? • Precise transmission times: • Can emulate diverse network conditions and topologies. • Stream packets from host PC: • Allows generated traffic to be reactive • ie. TCP flows with congestion control

  4. Motivation: Network Testbed Experiments • Testing systems which are sensitive to packet arrival times (ie. packet buffering and scheduling in routers) requires realistic test traffic. • Need to explore a wide range of traffic • With a small testbed, this is difficult or impossible. • With a large enough testbed, this is difficult and expensive.

  5. Simplified Problem • A few computers can create required traffic volume. • However, resulting traffic may not be realistic. The PTG focuses on controlling the packet transmission times. How is the traffic different?

  6. Components of the PTG Linux Kernel 3. pktgen 2. nf2 Linux Driver NetFPGA 1. NetThreads Application NetLink PCI GigE Host Computer Packet Travel Direction

  7. Userspace Program: pktgen • Simple command-line utility used for testing PTG. • Sends descriptions of packets and transmission times to the driver. • Uses inter-transmission times and payload sizes that are either: • fixed, or • read from files. • Communicates with driver using a NetLink socket. • Easily replaced by other userspace or kernel code.

  8. nf2 Linux Driver • Modified version of nf2 driver. • Main jobs: • Receive packet descriptions from NetLink socket. • Build command packets containing multiple descriptions. • Send command packets to the NetThreads app over the PCI bus.

  9. NetThreads Application • Eight threads of execution in NetThreads: • 7 threads receive command packets and prepare packets to transmit in output memory. • 1 thread sends packets from the output memory at correct times. Input Memory Output Memory

  10. PCI Bus is a Bottleneck • Cannot copy all packets across PCI bus. • Main idea: do not copy packet payloads • Payloads are zeroed when sent from NetFPGA. • Experiment often only look at packet headers anyway. • PCI transaction overheads require driver to gather multiple packet descriptions into single command packet.

  11. Transmission Time Precision • Compare against Stanford’s Packet Generator (SPG) PTG/SPG Sending fixed rate packets NetFPGA router measures inter-arrival times Remember it takes 8ns to send 1 byte on GigE.

  12. Throughput: MTU-Size Packets MTU-sized Packet = 1526 bytes Transmits in 1526 * 8 = 12208 ns Add Inter Frame Gap of 96ns. 12304ns is back to back! Preamble Ethernet Hdr Data CRC 22 bytes 46-1500 bytes 4 bytes

  13. Throughput: Smaller Packets

  14. Throughput: Smaller Packets cont. • Errors appear between 6000-7000ns. • See the same problem for different packet sizes. • The mean inter-transmission times are correct, • not a PCI bottleneck problem. • Most likely: the sending thread is doing too much work between packet transmissions. • In 6400ns each thread has 6400 ns / 8 ns per cycle / 4 threads = 200 clock cycles

  15. Future Work • Implement receiving packets • Currently PTG cannot receive packets and send them to the host PC, so generating reactive traffic requires another NIC. • Augment existing software network emulator (ie. NISTNet) with PTG to transmit packets at the correct times.

  16. Conclusion • The PTG precisely controls the transmission times of packets streamed from the host PC. • It has the potential to • enhance the realism of software network emulators, and • allow researchers to perform experiments which are currently difficult or impossible.

  17. Modified Hardware Designs • NetThreads design: • Removed Output Queues increase accuracy of transmission times. • NetFPGA reference router design used in measurements: • Removed Input Arbiter and Output Port Lookup.

  18. Inaccuracy of NISTNet • Software network emulators schedule packet transmissions with fixed-rate timers/interrupts. • Ran experiment to measure inaccuracy using NISTNet. NISTNet host Delays packets by 100ms NetFPGA router measuring arrival times PTG Measure inter-arrivals here Measure inter-arrivals here

  19. Packets Sent Every 70 μs

  20. Packets Sent Every 640 μs

  21. Packets Sent Every 700 μs

More Related