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.

Slides:



Advertisements
Similar presentations
© 2007 Cisco Systems, Inc. All rights reserved.ICND1 v1.0—1-1 Building a Simple Network Understanding the TCP/IP Transport Layer.
Advertisements

BZUPAGES.COM 1 User Datagram Protocol - UDP RFC 768, Protocol 17 Provides unreliable, connectionless on top of IP Minimal overhead, high performance –No.
TRANSPORT LAYER  Session multiplexing  Segmentation  Flow control (TCP)  Connection-oriented (TCP)  Reliability (TCP)
Copyright 1999, S.D. Personick. All Rights Reserved. Telecommunications Networking II Lecture 32 Transmission Control Protocol (TCP) Ref: Tanenbaum pp:
Review of Important Networking Concepts
CCNA 1 v3.1 Module 11 Review.
Keith Wiles DPACC vNF Overview and Proposed methods Keith Wiles – v0.5.
1 Some TCP/IP Basics....NFSDNSTELNETSMTPFTP UDPTCP IP and ICMP Ethernet, serial line,..etc. Application Layer Transport Layer Network Layer Low-level &
Reliable Networking Systems The goals: Implement a reliable network application of a file sharing network. Implement a reliable network application of.
Networks 1 CS502 Spring 2006 Network Input & Output CS-502 Operating Systems Spring 2006.
1 CCNA 2 v3.1 Module Intermediate TCP/IP CCNA 2 Module 10.
CS-3013 & CS-502, Summer 2006 Network Input & Output1 CS-3013 & CS-502, Summer 2006.
WXES2106 Network Technology Semester /2005 Chapter 8 Intermediate TCP CCNA2: Module 10.
3-1 Transport services and protocols r provide logical communication between app processes running on different hosts r transport protocols run in end.
Module – 7 network-attached storage (NAS)
Gursharan Singh Tatla Transport Layer 16-May
OIS Model TCP/IP Model.
Lecture 8 Modeling & Simulation of Communication Networks.
GSI Operating Software – Migration OpenVMS to Linux Ralf Huhmann PCaPAC 2008 October 20, 2008.
CP476 Internet ComputingCh.1 # 1 Lecture 2. A Brief Introduction to the Internet The objective is to understand The history of Internet What the Internet.
1 Transport Layer Computer Networks. 2 Where are we?
Chapter 17 Networking Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William Stallings.
ECE 424 Embedded Systems Design Networking Connectivity Chapter 12 Ning Weng.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
LWIP TCP/IP Stack 김백규.
Examining TCP/IP.
LWIP TCP/IP Stack 김백규.
ICOM 6115©Manuel Rodriguez-Martinez ICOM 6115 – Computer Networks and the WWW Manuel Rodriguez-Martinez, Ph.D. Lecture 26.
Inter-process communication: Socket. socket Internet socket From Wikipedia, the free encyclopedia Jump to: navigation,
Introduction to Sockets “A socket is one endpoint of a two-way communication link between two programs running on the network. A socket is bound to a port.
 2003 Joel C. Adams. All Rights Reserved. Calvin CollegeDept of Computer Science(1/11) Java Sockets and Simple Networking Joel Adams and Jeremy Frens.
4061 Session 25 (4/17). Today Briefly: Select and Poll Layered Protocols and the Internets Intro to Network Programming.
Virtual Private Networks: An Overview with Performance Evaluation Shashank Khanvilkar and Ashfaq Khokhar, University of Illinois at Chicago Presented by:
2 2 Semester 1 JEOPARDY Robert C. Gates BA, MS, CCNA.
Multipath TCP ACM Queue, Volume 12 Issue 2, pp. 1-12, February 2014 Christoph Paasch and Olivier Bonaventure University College London 1.
© 2002, Cisco Systems, Inc. All rights reserved..
CIS679: TCP and Multimedia r Review of last lecture r TCP and Multimedia.
Packet Switch Network Server client IP Ether IPTCPData.
Atrium Router Project Proposal Subhas Mondal, Manoj Nair, Subhash Singh.
Opnfv Summit 2016 (Berlin) DPACC and DPDK solving NFV acceleration
An open source user space fast path TCP/IP stack and more…
1 Chapter 24 Internetworking Part 4 (Transport Protocols, UDP and TCP, Protocol Port Numbers)
Shaopeng, Ho Architect of Chinac Group
The Post Windows Operating System
Application – Transport – Network
TLDK Transport Layer Development Kit
TLDK overview Konstantin Ananyev 05/08/2016.
Introduction To TCP/IP Networking Mr. Zeeshan Ali, Asst. Professor
Original slides prepared by Theo Benson
Introduction to TCP/IP networking
Carles Gomez Universitat Politècnica de Catalunya (UPC)/Fundació i2cat
LWIP TCP/IP Stack 김백규.
Course Review 2015 Computer networks 赵振刚
DPDK overview / APIs Keith Wiles July 11, 2016.
© 2003, Cisco Systems, Inc. All rights reserved.
Multipath Routing Using Distributed Proxy Servers
Transport Layer Our goals:
New Solutions For Scaling The Internet Address Space
Software Defined Networking (SDN)
Network Fundamentals – Chapter 4
Virtio Keith Wiles July 11, 2016.
NT1210 Introduction to Networking
Advanced Computer Networks
Lecture 2: Overview of TCP/IP protocol
The OSI 7 Layer Model Ben, Stuart, Charles.
CSCD 330 Network Programming
CSE 313 Data Communication
Open Automation Software
Presentation transcript:

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

TLDK (Transport Layer Development Kit) High Level View I/O Layer (DPDK) Fastpath Layer (VPP) optional Application Layer TLDK Physical Layer 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 Physical Layer: Ports and other devices like crypto, compression, … 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 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

TLDK Uses case #1 with DPDK only DPDK Physical Layer 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 Physical Layer: Ports and other devices like crypto, compression, … DPDK: provides the I/O abstraction to the physical layer network devices Application Layer: Any type of application, which a BSD Socket layer could be present TLDK Control or non-TLDK pkts TLDK pkts L2/L3 Packet Processing Layer

VPP TLDK Uses case #2 with VPP DPDK Physical Layer 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 VPP Fastpath Using VPP as the first layer for packet processing before packets are sent to the application layer Physical Layer: Ports and other devices like crypto, compression, … 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. TLDK Control or non-TLDK pkts TLDK pkts Control Plane

VPP optional TLDK Application Layer break down DPDK Physical Layer Socket Application Application Layer: The application layer utilizes the TLDK library to process packets for UDP and TCP 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: 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 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 TLDK Control or non-TLDK pkts TLDK pkts BSD Socket layer LD_PRELOAD Socket layer Native Linux Application Purpose built TLDK Application

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

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.