Options
We used several tools to measure network performance. Although these tools are designed for testing IP-standard networks (see IETF RFC 791 for reference), they are not suitable for evaluating overlay architectures that use channels implemented at high layers of the OSI model with heterogeneous lower-level transport protocol implementations.
These tools are intended exclusively for use on IP networks because they use sub-protocols, such as ICMP (see IETF RFCs 792/777), which are optimised and implemented within the stack itself.
Using throughput to track network performance provides more than just a real-time view of how your network is functioning. It is also a strategic approach to identifying inefficiencies and preventing bottlenecks before they affect operations. Monitoring throughput ensures that your available bandwidth is used effectively and that your network consistently meets your business's demands.
How do these tools evaluate throughput and bandwidth?
Throughput and bandwidth monitoring tools operate by continuously collecting traffic data, analysing key metrics, and generating insightful reports. They monitor network activity in real time, detect usage patterns, highlight anomalies and present their findings on intuitive dashboards. This enables network administrators to quickly identify and resolve issues that could affect network performance.
These tools perform measurements on packets that do not traverse the entire stack up to the application layer (ISO 7498). To ensure accurate and comparable measurements between the underlay and overlay layers, we have developed a custom tool called 'dsperf' (https://github.com/sebyone/dsperf).
Dsperf uses the communication APIs of the IPv4 protocol (sockets) and the APIs of libdaas and the INET4 DaaS driver directly. The latter is compiled for the same platforms and operates over the IPv4 protocol.
The options and the measurable parameters used by dsperf are:
Parameter | Description | unit | Underlay | Overlay |
Data block length | Amount of data to transfer | byte | variable | |
Protocol | Network/link | – | IPv4 TCP | DaaS (INET4) |
Packet length | Size of single packet, headers included (MTU) | byte | variable | |
Header length | Packet header | byte | 40 (max60) | 32 (max32) |
Payload length | Payload size (mss) | byte | variable | |
Proto.Efficiency | Ratio between headers and payload | % | =1-(Header length / Packet length) | |
Packets to send | Total of packets to send | num | Block length / Pkt length * Efficiency | |
Total packets sent | Number of packets exchanged | num | counter | |
Total packet loss | Number of retransmitted packets | num | counter | |
Time elapsed | Time elapsed to complete the transfer | ms | counter | |
Byte per second | Network throughput | Mbps | Byte/Time | |
Packets per second | Network throughput | pps | Pkts/Time | |
Lost per second | Computed dynamically | pps | Lost/Time |