|   | 1 | == Measuring Network Performance == | 
          
          
            |   | 2 | This wiki page contains the tutorial of measuring network performance. | 
          
          
            |   | 3 |  | 
          
          
            |   | 4 | Authors: | 
          
          
            |   | 5 |  | 
          
          
            |   | 6 | Artur Minakhmetov, Telecom Paris : artur.minakhmetov[at]telecom-paris.fr\\ | 
          
          
            |   | 7 | Michael Sherman, Rutgers University : msherman[at]winlab.rutgers.edu | 
          
          
            |   | 8 |  | 
          
          
            |   | 9 |  | 
          
          
            |   | 10 | Last Updated: 26 June 2019  | 
          
          
            |   | 11 |  | 
          
          
            |   | 12 | ---- | 
          
          
            |   | 13 | = Description = | 
          
          
            |   | 14 | Cosmos test-bed provides a set of different network interfaces with different speed and rates. In this tutorial we will show how to measure the network performance.  | 
          
          
            |   | 15 |  | 
          
          
            |   | 16 | ---- | 
          
          
            |   | 17 |  | 
          
          
            |   | 18 | = Context = | 
          
          
            |   | 19 |  | 
          
          
            |   | 20 | This tutorial is based on topology and settings described in the optical network tutorial: [https://wiki.cosmos-lab.org/wiki/tutorials/optical-network-example]. | 
          
          
            |   | 21 |  | 
          
          
            |   | 22 | This example includes a server ''srv4-lg1'' with connected to it ''tengigabitethernet 1/34'' and joined with ''twentyFiveGigE 1/1/4'' on ''vlan 124''. Binding ''tengigabitethernet 1/32'' with ''twentyFiveGigE 1/1/4'' is performed the same way as in the optical network tutorial.  | 
          
          
            |   | 23 |  | 
          
          
            |   | 24 | The server ''srv4-lg1'' has an IP address assigned to it 192.168.1.4 on ''eno1'' interface. | 
          
          
            |   | 25 |  | 
          
          
            |   | 26 | For simplicity, the Calient Switch S320 connects ''tengigabitethernet 1/34'' with ''tengigabitethernet 1/32/1'' through direct optical connection: ''5.7.4<-->5.7.6'' | 
          
          
            |   | 27 |  | 
          
          
            |   | 28 | ---- | 
          
          
            |   | 29 |  | 
          
          
            |   | 30 | = Measurement = | 
          
          
            |   | 31 |  | 
          
          
            |   | 32 | Measurements are preformed through a command line tool ''iperf''. Examples and descriptions of its operation could be found here: [https://fasterdata.es.net/performance-testing/network-troubleshooting-tools/iperf/] | 
          
          
            |   | 33 |  | 
          
          
            |   | 34 | * Set ''srv1-lg1'' as a server: | 
          
          
            |   | 35 |  | 
          
          
            |   | 36 | {{{ | 
          
          
            |   | 37 | native@srv1-lg1:~$ iperf -s    | 
          
          
            |   | 38 | ------------------------------------------------------------ | 
          
          
            |   | 39 | Server listening on TCP port 5001 | 
          
          
            |   | 40 | TCP window size: 85.3 KByte (default) | 
          
          
            |   | 41 | }}} | 
          
          
            |   | 42 |  | 
          
          
            |   | 43 | * Set ''srv4-lg1'' as a client with sending traffic to ''srv1-lg1'': | 
          
          
            |   | 44 |  | 
          
          
            |   | 45 |  | 
          
          
            |   | 46 | {{{ | 
          
          
            |   | 47 | native@srv4-lg1:~$ iperf -c 192.168.1.1    | 
          
          
            |   | 48 | ------------------------------------------------------------ | 
          
          
            |   | 49 | Client connecting to 192.168.1.1, TCP port 5001 | 
          
          
            |   | 50 | TCP window size: 85.0 KByte (default) | 
          
          
            |   | 51 | ------------------------------------------------------------ | 
          
          
            |   | 52 | [  3] local 192.168.1.4 port 35486 connected with 192.168.1.1 port 5001 | 
          
          
            |   | 53 | [ ID] Interval       Transfer     Bandwidth | 
          
          
            |   | 54 | [  3]  0.0-10.0 sec  11.0 GBytes  9.42 Gbits/sec | 
          
          
            |   | 55 | }}} | 
          
          
            |   | 56 |  | 
          
          
            |   | 57 | * This measurement shows that the it's possible to have **9.42 Gbits/sec** of bandwidth.  | 
          
          
            |   | 58 |  | 
          
          
            |   | 59 | * Previous measurement creates a ''TCP'' connection. In order to test ''UDP'' traffic, a bitrate of ''UDP'' traffic has to be specified through and option ''-b''. UDP traffic is specified through an option ''-u''. Results of ''UDP'' traffic test are below : | 
          
          
            |   | 60 |  | 
          
          
            |   | 61 | Server side: | 
          
          
            |   | 62 | {{{ | 
          
          
            |   | 63 | native@srv1-lg1:~$ iperf -s -u | 
          
          
            |   | 64 | ------------------------------------------------------------ | 
          
          
            |   | 65 | Server listening on UDP port 5001 | 
          
          
            |   | 66 | Receiving 1470 byte datagrams | 
          
          
            |   | 67 | UDP buffer size:  208 KByte (default) | 
          
          
            |   | 68 | ------------------------------------------------------------ | 
          
          
            |   | 69 | }}} | 
          
          
            |   | 70 |  | 
          
          
            |   | 71 | Client side: | 
          
          
            |   | 72 | {{{ | 
          
          
            |   | 73 | native@srv4-lg1:~$ iperf -c 192.168.1.1 -u -b 9gbps | 
          
          
            |   | 74 | ------------------------------------------------------------ | 
          
          
            |   | 75 | Client connecting to 192.168.1.1, UDP port 5001 | 
          
          
            |   | 76 | Sending 1470 byte datagrams, IPG target: 1.31 us (kalman adjust) | 
          
          
            |   | 77 | UDP buffer size:  208 KByte (default) | 
          
          
            |   | 78 | ------------------------------------------------------------ | 
          
          
            |   | 79 | [  3] local 192.168.1.4 port 33737 connected with 192.168.1.1 port 5001 | 
          
          
            |   | 80 | [ ID] Interval       Transfer     Bandwidth | 
          
          
            |   | 81 | [  3]  0.0-10.0 sec  9.77 GBytes  8.39 Gbits/sec | 
          
          
            |   | 82 | [  3] Sent 7134255 datagrams | 
          
          
            |   | 83 | [  3] Server Report: | 
          
          
            |   | 84 | [  3]  0.0-10.0 sec  9.30 GBytes  7.99 Gbits/sec   0.000 ms 342498/7134255 (0%) | 
          
          
            |   | 85 | }}} | 
          
          
            |   | 86 |  | 
          
          
            |   | 87 | * UDP traffic measurements show possible bandwidth of **7.99 Gbits/sec**. This result could be ameliorated through specific settings potentially. | 
          
          
            |   | 88 |  | 
          
          
            |   | 89 | ---- | 
          
          
            |   | 90 |  | 
          
          
            |   | 91 | = Conclusion = | 
          
          
            |   | 92 |  | 
          
          
            |   | 93 | In this tutorial we showed how it's possible to measure network performance and verify 10Gbit possibilities of optical transceivers achieving **9.42 Gbits/sec** for ''TCP'' traffic and **7.99 Gbits/sec** for ''UDP'' traffic. |