Protocol Implementation An Engineering Approach to Computer Networking.

Slides:



Advertisements
Similar presentations
IP Router Architectures. Outline Basic IP Router Functionalities IP Router Architectures.
Advertisements

System Area Network Abhiram Shandilya 12/06/01. Overview Introduction to System Area Networks SAN Design and Examples SAN Applications.
More on Processes Chapter 3. Process image _the physical representation of a process in the OS _an address space consisting of code, data and stack segments.
NetSlices: Scalable Multi-Core Packet Processing in User-Space Tudor Marian, Ki Suh Lee, Hakim Weatherspoon Cornell University Presented by Ki Suh Lee.
1 Cheriton School of Computer Science 2 Department of Computer Science RemusDB: Transparent High Availability for Database Systems Umar Farooq Minhas 1,
Chapter 8 Hardware Conventional Computer Hardware Architecture.
1 Web Server Performance in a WAN Environment Vincent W. Freeh Computer Science North Carolina State Vsevolod V. Panteleenko Computer Science & Engineering.
Extensibility, Safety and Performance in the SPIN Operating System Department of Computer Science and Engineering, University of Washington Brian N. Bershad,
Chapter 7 Protocol Software On A Conventional Processor.
1 Design and Implementation of A Content-aware Switch using A Network Processor Li Zhao, Yan Luo, Laxmi Bhuyan University of California, Riverside Ravi.
The Transport Layer Chapter 6. The TCP Segment Header TCP Header.
1 Soft Timers: Efficient Microsecond Software Timer Support For Network Processing Mohit Aron and Peter Druschel Rice University Presented By Jonathan.
Dawson R. Engler, M. Frans Kaashoek, and James O'Tool Jr.
The Transport Layer Chapter 6. Performance Issues Performance Problems in Computer Networks Network Performance Measurement System Design for Better Performance.
I/O Hardware n Incredible variety of I/O devices n Common concepts: – Port – connection point to the computer – Bus (daisy chain or shared direct access)
Soft Timers: Efficient Microsecond Software Timer Support For Network Processing Mohit Aron and Peter Druschel Rice University Presented by Reinette Grobler.
Figure 1.1 Interaction between applications and the operating system.
CS533 Concepts of Operating Systems Class 3 Integrated Task and Stack Management.
ECE 526 – Network Processing Systems Design
The Structuring of Systems Using Upcalls David D. Clark 4/26/20111Frank Sliz, CS533, Upcalls.
User-Level Interprocess Communication for Shared Memory Multiprocessors Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy Presented.
Chapter 5 Input/Output I/O Hardware I/O Software Software Layers Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights.
Comparative Operating Systems Fall 2001 An Examination of Embedded Linux as a Real Time Operating System Mark Mahoney.
COM S 614 Advanced Systems Novel Communications U-Net and Active Messages.
Router Architectures An overview of router architectures.
Router Architectures An overview of router architectures.
Layer 2 Switch  Layer 2 Switching is hardware based.  Uses the host's Media Access Control (MAC) address.  Uses Application Specific Integrated Circuits.
Synchronization and Scheduling in Multiprocessor Operating Systems
Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.
Computer Organization Review and OS Introduction CS550 Operating Systems.
Performance Tradeoffs for Static Allocation of Zero-Copy Buffers Pål Halvorsen, Espen Jorde, Karl-André Skevik, Vera Goebel, and Thomas Plagemann Institute.
UNIX System Administration OS Kernal Copyright 2002, Dr. Ken Hoganson All rights reserved. OS Kernel Concept Kernel or MicroKernel Concept: An OS architecture-design.
1 AQA ICT AS Level © Nelson Thornes 2008 Operating Systems What are they and why do we need them?
Multiple Processor Systems. Multiprocessor Systems Continuous need for faster and powerful computers –shared memory model ( access nsec) –message passing.
CS533 Concepts of Operating Systems Jonathan Walpole.
High Performance User-Level Sockets over Gigabit Ethernet Pavan Balaji Ohio State University Piyush Shivam Ohio State University.
Hardware Definitions –Port: Point of connection –Bus: Interface Daisy Chain (A=>B=>…=>X) Shared Direct Device Access –Controller: Device Electronics –Registers:
CS533 Concepts of Operating Systems Jonathan Walpole.
Virtualization: Not Just For Servers Hollis Blanchard PowerPC kernel hacker.
Cluster Computers. Introduction Cluster computing –Standard PCs or workstations connected by a fast network –Good price/performance ratio –Exploit existing.
Design and Implementation of a Multi-Channel Multi-Interface Network Chandrakanth Chereddi Pradeep Kyasanur Nitin H. Vaidya University of Illinois at Urbana-Champaign.
Heterogeneous Multikernel OS Yauhen Klimiankou BSUIR
Multiple Processor Systems. Multiprocessor Systems Continuous need for faster computers –shared memory model ( access nsec) –message passing multiprocessor.
Author George Peck EVLA Hardware Monitor & Control PDR March 13, EVLA MONITOR AND CONTROL HARDWARE REQUIREMENTS.
1 Public DAFS Storage for High Performance Computing using MPI-I/O: Design and Experience Arkady Kanevsky & Peter Corbett Network Appliance Vijay Velusamy.
An Architecture and Prototype Implementation for TCP/IP Hardware Support Mirko Benz Dresden University of Technology, Germany TERENA 2001.
CS 4396 Computer Networks Lab Router Architectures.
Intel Research & Development ETA: Experience with an IA processor as a Packet Processing Engine HP Labs Computer Systems Colloquium August 2003 Greg Regnier.
1 Soft Timers: Efficient Microsecond Software Timer Support For Network Processing Mohit Aron and Peter Druschel Rice University Presented By Oindrila.
Chapter 13 – I/O Systems (Pgs ). Devices  Two conflicting properties A. Growing uniformity in interfaces (both h/w and s/w): e.g., USB, TWAIN.
Microkernel Systems - Jatin Lodhia. What is Microkernel A microkernel is a minimal computer operating system kernel which, in its purest form, provides.
The Internet Book. Chapter 16 3 A Packet Switching System Can Be Overrun Packet switching allows multiple computers to communicate without delay. –Requires.
© 2004, D. J. Foreman 1 Device Mgmt. © 2004, D. J. Foreman 2 Device Management Organization  Multiple layers ■ Application ■ Operating System ■ Driver.
Cluster Computers. Introduction Cluster computing –Standard PCs or workstations connected by a fast network –Good price/performance ratio –Exploit existing.
Low Overhead Real-Time Computing General Purpose OS’s can be highly unpredictable Linux response times seen in the 100’s of milliseconds Work around this.
Major OS Components CS 416: Operating Systems Design, Spring 2001 Department of Computer Science Rutgers University
Background Computer System Architectures Computer System Software.
CSE 331: Introduction to Networks and Security Fall 2000 Instructor: Carl A. Gunter Slide Set 2.
Interrupt Handler Migration and Direct Interrupt Scheduling for Rapid Scheduling of Interrupt-driven Tasks Reviewer: Kim, Hyukjoong ESLab.
Computer System Structures
Kernel Design & Implementation
Memory Caches & TLB Virtual Memory
1.5 Wired and Wireless Networks
The Transport Layer Chapter
Operating Systems What are they and why do we need them?
CS 258 Reading Assignment 4 Discussion Exploiting Two-Case Delivery for Fast Protected Messages Bill Kramer February 13, 2002 #
CS703 - Advanced Operating Systems
Half-Sync/Half-Async (HSHA) and Leader/Followers (LF) Patterns
PalmOS.
NetPerL Seminar An Analysis of TCP Processing Overhead
Presentation transcript:

Protocol Implementation An Engineering Approach to Computer Networking

Protocol implementation Depends on structure and environment Depends on structure and environment Structure Structure  partitioning of functionality between user and kernel  separation of layer processing (interface) Environment Environment  data copy cost  interrupt overhead  context switch time  latency in accessing memory  cache effects

Partitioning strategies How much to put in user space, and how much in kernel space? How much to put in user space, and how much in kernel space?  tradeoff between  software engineering  customizability  security  performance Monolithic in kernel space Monolithic in kernel space Monolithic in user space Monolithic in user space Per-process in user space Per-process in user space

Interface strategies Single-context Single-context Tasks Tasks Upcalls Upcalls

Monolithic in kernel

Monolithic in user space

Per-process in user space

Interfaces Single-context Single-context Tasks Tasks Upcalls Upcalls

Single context

Tasks

Upcalls

Protocol implementation

Some numbers 10 Kbps400 ms 100 Kbps,40 ms 1 Mbps, 4 ms 100 Mbps,40 µs User-to-kernel context switch~40 µs Copying the packet~25 µs Checksum in software ~40 µs Scheduling delays ~150 µs (depends on workload) Interrupt handling ~10-50 µs (depends on the bus) Protocol processing ~ µs (depends on protocol complexity)

Rules of thumb Optimize common case Optimize common case Watch out for bottlenecks Watch out for bottlenecks Fine tune inner loops Fine tune inner loops Choose good data structures Choose good data structures Beware of data touching Beware of data touching Minimize # packets sent Minimize # packets sent Send largest packets possible Send largest packets possible Cache hints Cache hints Use hardware Use hardware Exploit application properties Exploit application properties