Why yet another traffic tool?
Speed and efficiency are everything for businesses today. Organizations depend on rapid access to information and having their services at their fingertips. If an application experiences significant lag or is unresponsive, business continuity and productivity can be impaired or come to a complete standstill.
With a network traffic generator tool or network traffic simulator, IT teams can mimic network traffic earlier and in testing. These tools simulate stress or load to establish how much the network can handle. By doing so, they offer a clear understanding of what a network can cope with, where the areas of concern are, and at what point the network causes application performance degradation.
However, most existing tools focus on performance and load testing less oriented in real world traffic patterns. They just repeat the same sequence of traffic flows to a single application. They have limited control over attributes and parameters to apply to a broad distribution of traffic patterns. They lack the capabilities to generate complex traffic patterns to multiple applications simultaneously. Commercial tools have some of these capabilities, but they can be very costly.
Meet VMware TENS – Traffic Emulator for Network Service
TENS is an open-source comprehensive traffic generation utility to accurately emulate real world traffic patterns. With a modern software-defined architecture Avi separates the control and the data plane. The Traffic Engine Controller (TEC) resides in the control plane and is the “brain” of the entire system. It acts as a single point of intelligence, management, and control for the distributed Traffic Engines Datapath (TE-DP) in the data plane. This separation of control and data plane allows to deploy an infinite amount of TE-DP’s to test applications in different environments, all controlled by a single TEC.
TENS emulates multiple browser sessions, clients, connections, and requests at L4 and L7 in a distributed fashion across multiple computes from a single point of control, which is the TENS Controller (see diagram below). TENS bridges the test and qualification divide between lab and the real world for TCP/HTTP/UDP applications and provides extensive abilities to stress, validate, and report metrics and errors regarding various load balancing and application server functionalities and performance.
Why TENS? (Key capabilities)
- Existing open-source tools do not have all the features needed to fully validate and report on load balancer and application server performance
- TENS generates real world traffic by emulating multiple users, multiple sessions per user and multiple connections & requests per session across multiple computes
- TENS provides comprehensive metrics, anomaly and real-time monitoring at a single endpoint and sampled 5 tuple reason of failure error reporting for L4(TCP/UDP), and L7(HTTP HTTPS)
- TENS supports large scale L7 traffic generation from multiple source IPs and namespaces, with embedded cookies, headers, and query parameters in dimensions of RPS, TPS, TPUT and CPS
- TENS allows to run across multiple data computes controlled by single end point of APIs
- TENS supports http(s) traffic across versions of http/1, http/1.1 and http/2 at L7.
- TENS supports traffic with various cipher suites and SSL versions of SSLv2, SSLv3, TLSv1, TLSv1.0, TLSv1.1, TLSv1.2 and TLSv1.3 at L7.
- TENS can perform mutual client-server authentication by providing and verifying certificates at L7.
- TENS can emulate uploads and downloads of large UDP datagrams with multiple concurrent connections at L4
- TENS is packaged to run on containerized ecosystems for on-prem and public cloud solutions with the ability to dynamically add more computes to simulate traffic spikes
- TENS is controlled by REST APIs with automation driven approach for infinite scale
- TENS performs SSL session reuse and persistence validation, verifies all the requests in a session have the same value for the header and verifies the size of a get response size with the url resource size
How to get TENS?
TENS is available for free on VMware TENS GitHub site (https://github.com/vmware/te-ns)
VMware thanks the following engineers for their contribution:
Srinivasa Srikanth Podila and Sudarshana KS designed the TENS Controller and TEDP engine.
Aravindhan K, Vipin P R: implemented the traffic engine controller/datapath elements, integrated the tool with Swagger and Grafana.