High-Performance TCP/UDP Testing with TLDK: Scope and Goals

scope goals of tldk n.w
1 / 7
Embed
Share

"Explore the scope and goals of the Transport Layer Development Kit (TLDK), focusing on high-performance TCP/UDP testing via CSIT and centralized or distributed stack support. Understand TLDK's target use cases like TCP proxy and its benefits compared to Linux stack. Discover how TLDK handles multi-path TCP and more features efficiently in network development." (281 characters)

  • TLDK
  • Transport Layer
  • High Performance
  • TCP/UDP
  • Networking

Uploaded on | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. Scope/Goals of TLDK What is the scope of TLDK? High performance TCP/UDP Testing via CSIT needs to have a set of unit tests for validation Centralized or distributed stack ? What are the target uses cases TCP proxy? Does not need to focus on data center, could be CPE, What does TLDK solve compared to the Linux stack/kernel Not to compare to features of the Linux stack, but what does TLDK do better? Multi-path TCP, or other features

  2. TLDK (Transport Layer Development Kit) High Level View Transport Layer: A set of libraries to handle packets needing support for UDP/TCP/ TLDK is a library or set of libraries to help manage UDP/TCP connections Application Layer TLDK Physical Layer: Ports and other devices like crypto, compression, Fastpath Layer (VPP) optional I/O Layer: DPDK is contained here as it provides the I/O abstraction to the physical layer Fastpath Layer: The fastpath layer is today VPP and its is directed graph nodes moving packets to application or back to the I/O layer after some type of processing I/O Layer (DPDK) Physical Layer Application Layer: The application needs a VPP graph node to send/receive packets to/from the application layer The application and/or fastpath layer uses TLDK library APIs

  3. TLDK Uses case #1 with DPDK only Application Layer TLDK: Handles packet I/O and protocol processing of packets Application sets up the UDP/TCP protocol contexts and then calls I/O routines in TLDK to start processing packets TLDK L2/L3 Packet Processing Layer Physical Layer: Ports and other devices like crypto, compression, DPDK DPDK: provides the I/O abstraction to the physical layer network devices Physical Layer Application Layer: Any type of application, which a BSD Socket layer could be present Control or non-TLDK pkts TLDK pkts

  4. TLDK Uses case #2 with VPP Application Layer TLDK: Handles packet I/O and protocol processing of packets Application sets up the UDP/TCP protocol contexts and then calls I/O routines in TLDK to start processing packets TLDK Control Plane VPP Fastpath Using VPP as the first layer for packet processing before packets are sent to the application layer VPP Physical Layer: Ports and other devices like crypto, compression, DPDK DPDK: DPDK provides the I/O abstraction to the physical layer for the network devices. The DPDK could be optional here only if some other I/O layer is used. Physical Layer Control or non-TLDK pkts TLDK pkts

  5. TLDK Application Layer break down Application Layer: The application layer utilizes the TLDK library to process packets for UDP and TCP Purpose built TLDK Application Native Linux Application Socket Application LD_PRELOAD Socket layer Purpose Built Application: A purpose built application is one that uses TLDK APIs directly and is built to use these APIs Highest performance is expected with this design BSD Socket layer TLDK BSD Socket Layer: A standard BSD socket layer for applications using sockets in its design A lower performance is expected, but allows for current socket type applications to be ported to the system VPP optional DPDK LD_PRELOAD Socket Layer: LD_PRELOAD is used to allow a native binary Linux application to use the accelerated path of VPP/DPDK The performance should be a bit better, but does allow these native binary applications to work without any change Physical Layer Control or non-TLDK pkts TLDK pkts

  6. Possible Performance Goals TCP need to scale from 50K - 5M concurrent connections 2M 5M connections with multiple cores 50K per core would be a good target No number of connections per second, but should be reasonable high is my guess (1-20 scale) 1M connections maybe around 100K CPS for now Very short lived connections, may not need concurrent connections of a 1-2M connection per core Benchmarks like test of around 100K per core, is this possible (10 packets per connections x 100K) Needs to scale per core Need to understand the congestion issues with slow(er) external hosts Need to toss SYN packets during congestion to reduce the load as a back pressure TCP timers appear to be a possible bottleneck in performance (just speculation at this point) Memory management will be difficult to determine and mapping memory maps Need to understand how to manage window sizes Need to support what RFC s? The Linux is the gold standard, but what is the level of compliance to the RFCs is that stack Interoperability for TCP/IP needs to be used

  7. Possible Future Goals for TLDK A BSD socket layer for in process application Needs to support linked socket applications A LD_PRELOAD solution for native binary Linux applications Need a sub-project working on preload and socket layer . Need to add test harness for TLDK with CSIT Need to define the goals for testing of TLDK What is the TCP application for testing? Is it a simple proxy like application? Need to define the uses cases for TLDK Should we use Google Test framework? Uses C++ code for the unit test cases Need to understand the framework and decide

Related


More Related Content