COS 561: Advanced Computer Networks

Slides:



Advertisements
Similar presentations
Jennifer Rexford Princeton University MW 11:00am-12:20pm Logically-Centralized Control COS 597E: Software Defined Networking.
Advertisements

Logically Centralized Control Class 2. Types of Networks ISP Networks – Entity only owns the switches – Throughput: 100GB-10TB – Heterogeneous devices:
1 o Two issues in practice – Scale – Administrative autonomy o Autonomous system (AS) or region o Intra autonomous system routing protocol o Gateway routers.
Top-Down Network Design Chapter Thirteen Optimizing Your Network Design Copyright 2010 Cisco Press & Priscilla Oppenheimer.
An Overview of Software-Defined Network Presenter: Xitao Wen.
EECB 473 Data Network Architecture and Electronics Lecture 3 Packet Processing Functions.
Leon-Garcia & Widjaja: Communication Networks Copyright ©2000 The McGraw Hill Companies A Little More on Chapter 7 And Start Chapter 8 TCP/IP.
Router Architecture : Building high-performance routers Ian Pratt
Chapter 6 Packet Processing Functions
Routers Jennifer Rexford Advanced Computer Networks Tuesdays/Thursdays 1:30pm-2:50pm.
An Overview of Software-Defined Network
Design of QoS Router Terrance Lee. Broadband Internet Architecture Intelligent Access Electronic Switch (Intserv or Diffserv) Switching /Routing QoS Security.
Gursharan Singh Tatla Transport Layer 16-May
An Overview of Software-Defined Network Presenter: Xitao Wen.
Connecting LANs, Backbone Networks, and Virtual LANs
Computer Networks Switching Professor Hui Zhang
Networking Components Christopher Biles LTEC Assignment 3.
Jennifer Rexford Princeton University MW 11:00am-12:20pm Programmable Data Planes COS 597E: Software Defined Networking.
Software-Defined Networks Jennifer Rexford Princeton University.
PA3: Router Junxian (Jim) Huang EECS 489 W11 /
Top-Down Network Design Chapter Thirteen Optimizing Your Network Design Oppenheimer.
ECE 526 – Network Processing Systems Design Networking: protocols and packet format Chapter 3: D. E. Comer Fall 2008.
15.1 Chapter 15 Connecting LANs, Backbone Networks, and Virtual LANs Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or.
Jennifer Rexford Fall 2014 (TTh 3:00-4:20 in CS 105) COS 561: Advanced Computer Networks Data.
EECB 473 DATA NETWORK ARCHITECTURE AND ELECTRONICS PREPARED BY JEHANA ERMY JAMALUDDIN Basic Packet Processing: Algorithms and Data Structures.
Jennifer Rexford Princeton University MW 11:00am-12:20pm Measurement COS 597E: Software Defined Networking.
Programming Languages for Software Defined Networks Jennifer Rexford and David Walker Princeton University Joint work with the.
Efficient Cache Structures of IP Routers to Provide Policy-Based Services Graduate School of Engineering Osaka City University
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Connecting Devices CORPORATE INSTITUTE OF SCIENCE & TECHNOLOGY, BHOPAL Department of Electronics and.
Data Communications and Computer Networks Chapter 4 CS 3830 Lecture 19 Omar Meqdadi Department of Computer Science and Software Engineering University.
ECE 526 – Network Processing Systems Design Network Address Translator.
By: Yaron Levy Supervisors: Dr. Shlomo Greenberg Mr. Hagai David.
COS 561: Advanced Computer Networks
Chapter 3: Packet Switching (overview)
Chapter Objectives In this chapter, you will learn:
CIS 700-5: The Design and Implementation of Cloud Networks
Software defined networking: Experimental research on QoS
Routing Jennifer Rexford.
Top-Down Network Design Chapter Thirteen Optimizing Your Network Design Copyright 2010 Cisco Press & Priscilla Oppenheimer.
Networking Devices.
3. Internetworking (part 1)
Queue Management Jennifer Rexford COS 461: Computer Networks
Chapter 4 Data Link Layer Switching
Addressing: Router Design
Chapter 6: Network Layer
CS 1652 The slides are adapted from the publisher’s material
Transport Layer Unit 5.
Software Routers: RouteBricks
What’s “Inside” a Router?
The Stanford Clean Slate Program
CS 31006: Computer Networks – The Routers
Software Routers: Click
Software Defined Networking
Firewalls Routers, Switches, Hubs VPNs
COS 561: Advanced Computer Networks
Implementing an OpenFlow Switch on the NetFPGA platform
EE 122: Lecture 7 Ion Stoica September 18, 2001.
COS 461: Computer Networks
Programmable Networks
Chapter 4 Network Layer Computer Networking: A Top Down Approach 5th edition. Jim Kurose, Keith Ross Addison-Wesley, April Network Layer.
Network Layer: Control/data plane, addressing, routers
CS4470 Computer Networking Protocols
Data Plane Jennifer Rexford Fall 2018 (TTh 1:30-2:50 in Friend 006)
Programmable Software Switches
Ch 17 - Binding Protocol Addresses
Chapter 5 Network Layer: The Control Plane
Lecture 9 – Chapter 4 Network Data Plane CIS 5617, Spring2019
Control-Data Plane Separation
Intelligent Network Services through Active Flow Manipulation
Chapter 4: outline 4.1 Overview of Network layer data plane
Presentation transcript:

COS 561: Advanced Computer Networks Data Plane Jennifer Rexford Fall 2016 (TTh 3:00-4:20 in CS 105) COS 561: Advanced Computer Networks http://www.cs.princeton.edu/courses/archive/fall16/cos561/

Data Plane Streaming algorithms that act on packets Matching on some bits, taking a simple action … at behest of control and management plane Wide range of functionality Forwarding Access control Mapping header fields Traffic monitoring Buffering and marking Shaping and scheduling Deep packet inspection Question to keep in mind: is there a common way to think about all of these data-plane operations

Packet Forwarding

Packet Forwarding Control plane computes a forwarding table Maps destination address(es) to an output link Handling an incoming packet Match: destination address Action: direct the packet to the chosen output link Switching fabric Directs packet from input link to output link Processor Switching Fabric

Switch: Match on Destination MAC MAC addresses are location independent Assigned by the vendor of the interface card Cannot be aggregated across hosts in the LAN mac1 mac2 mac3 ... host host host mac1 mac2 mac3 mac4 mac5 switch host mac4 Implemented using a hash table or a content addressable memory. host mac5

IP Routers: Match on IP Prefix IP addresses grouped into common subnets Allocated by ICANN, regional registries, ISPs, and within individual organizations Variable-length prefix identified by a mask length 1.2.3.4 1.2.3.7 1.2.3.156 5.6.7.8 5.6.7.9 5.6.7.212 ... ... host host host host host host LAN 1 LAN 2 router router router WAN WAN 1.2.3.0/24 Prefixes may be nested. Routers identify the longest matching prefix. 5.6.7.0/24 forwarding table

Switch Fabric: From Input to Output Lookup Address Update Header Header Processing Table Data Hdr 1 1 Queue Packet Buffer Memory Lookup Address Update Header Header Processing Table 2 2 Queue Packet Buffer Memory Lookup Address Update Header Header Processing Table N N Queue Packet Buffer Memory

Access Control

Access Control: Packet Filtering “Five tuple” for access control lists (ACLs) Source and destination IP addresses TCP/UDP source and destination ports Protocol (e.g., UDP vs. TCP) Can be more sophisticated E.g., block all TCP SYN packets from outside hosts E.g., stateful Should arriving packet be allowed in? Departing packet let out?

Applying Access Control Lists Ordered list of “accept/deny” clauses A clause can have wild cards Clauses can overlap … so order matters Packet classification Given all of the fields … identify the match with the highest priority Two approaches Clever algorithms for multi-dimensional classification Ternary Content Addressable Memories (TCAMs) Src=1.2.3.4, Dest=5.6.7.8 Deny Dest=1.2.3.* Allow Dest=1.2.3.8, Dport!=53 Src=1.2.3.7, Dport=100 Dport=100

Mapping Header Fields

Network Address Translation (NAT) 138.76.29.7 10.0.0.1 outside NAT inside 10.0.0.2

Mapping Addresses and Ports Remap IP addresses and TCP/UDP port numbers Addresses: between end-host and NAT addresses Port numbers: to ensure each connection is unique Create table entries as packets arrive Src 10.0.0.1, Sport 1024, Dest 1.2.3.4, Dport 80 Map to Src 138.76.29.7, Sport 1024, Dest 1.2.3.4, Dport 80 Src 10.0.0.2, Sport 1024, Dest 1.2.3.4, Dport 80 Map to Src 138.76.29.7, Sport 1025, Dest 1.2.3.4, Dport 80 Challenges When to remove the entries Running services behind a NAT What if both ends of a connection are behind NATs

Traffic Monitoring

Observing Traffic Passing Through source dest input output source prefix dest prefix source AS intermediate AS dest AS Applications of traffic measurement Usage-based billing Network engineering Detecting anomalous traffic

Passive Traffic Monitoring Counting the traffic Match based on fields in the packet header … and update a counter of #bytes and #packets Examples Link IP prefixes TCP/UDP ports Individual “flows” Challenges Identify traffic aggregates in advance vs. reactively Summarizing other information (e.g., time, TCP flags) Not knowing if you see all packets in a connection Dest Prefix #Packets #Bytes 1.2.3.0/24 3 1500 7.8.0.0/16 10 13000 8.0.0.0/8 100 85020 7.7.6.0/23 1 40

Resource Allocation: Buffering, Scheduling, Shaping, and Marking

Buffering Drop-tail FIFO queue Random Early Detection (RED) Packets served in the order they arrive … and dropped if queue is full Random Early Detection (RED) When the buffer is nearly full … drop or mark some packets to signal congestion Multiple classes of traffic Separate FIFO queue for each flow or traffic class … with a link scheduler to arbitrate between them

Link Scheduling Strict priority Weighted fair scheduling Assign an explicit rank to the queues … and serve the highest-priority backlogged queue Weighted fair scheduling Interleave packets from different queues …in proportion to weights 50% red, 25% blue, 25% green

A leaky-bucket shaper for each flow or traffic class Traffic Shaping Force traffic to conform with a profile To avoid congesting downstream resources To enforce a contract with the customer Leaky-bucket shaping Can send at rate r and intermittently burst Parameters: token rate r and bucket depth d Tokens arrive (rate r) Max # of tokens (d tokens) tokens A leaky-bucket shaper for each flow or traffic class packets

Traffic Classification and Marking Mark a packet to influence handling downstream Early Congestion Notification (ECN) flag Type-of-Service (ToS) bits Ways to set the ToS bits End host sets the bits based on the application But, then the network must trust (or bill!) the end host Network sets the bits based on traffic classes But, then the network needs to know how to classify packets Identifying traffic classes Packet classification based on the “five tuple” Rate limits, with separate mark for “out of profile” traffic

Generalizing the Data Plane Software-Defined Networking (SDN)

Many Boxes, But Similar Functions Router Forward on destination IP address Access control on the “five tuple” Link scheduling and marking Monitoring traffic Deep packet inspection Switch Forward on destination MAC address Firewall Access control on “five tuple” (and more) NAT Mapping addresses and port numbers Shaper Classify packets Shape or schedule Packet sniffer Monitoring traffic

Match Action Match on a subset of bits in the packet header E.g., key header fields (addresses, port numbers, etc.) Well-suited to capitalize on TCAM hardware Action Perform a simple action on the matching packet E.g., forward, flood, drop, rewrite, count, etc. srcip=1.2.*.*, dstip=3.4.5.*  drop srcip=*.*.*.*, dstip=3.4.*.*  forward(2) 3. srcip=10.1.2.3, dstip=*.*.*.*  send to controller

(Logically) Centralized Controller Controller Platform

Protocols  Applications Controller Application Controller Platform

Seamless Mobility See host sending traffic at new location Modify rules to reroute the traffic

Server Load Balancing Pre-install load-balancing policy Split traffic based on source IP 10.0.0.1 src=0*, dst=1.2.3.4 10.0.0.2 src=1*, dst=1.2.3.4

Programmable Data Plane Arbitrary customized packet-handling functionality Building a new data plane, or extending existing one Speed is important Data plane in hardware or in the kernel Streaming algorithms the handle packets as they arrive Two open platforms Click: software data plane in user space or the kernel NetFPGA: hardware data plane based on FPGAs Lots of ongoing research activity…

An Observation… Click is widely used And the paper on Click is widely cited Click elements are created by others Enabling an ecosystem of innovation Take-away lesson Creating useful systems that others can use and extend has big impact in the research community And brings tremendous professional value Compensating amply for the time and energy 

Discussion Trade-offs between customizability and performance? What data-plane model would be “just enough” for most needs, but still fast and inexpensive? Ways the Internet architecture makes data-plane functionality more challenging?

Click Modular Router Backup Slides

Click Motivation Flexibility Openness Modularity Speed/efficiency Add new features and enable experimentation Openness Allow users/researchers to build and extend (In contrast to most commercial routers) Modularity Simplify the composition of existing features Simplify the addition of new features Speed/efficiency Operation (optionally) in the operating system Without the user needing to grapple with OS internals

Router as a Graph of Elements Large number of small elements Each performing a simple packet function E.g., IP look-up, TTL decrement, buffering Connected together in a graph Elements inputs/outputs snapped together Beyond elements in series to a graph E.g., packet duplication or classification Packet flow as main organizational primitive Consistent with data-plane operations on a router (Larger elements needed for, say, control planes)

Click Elements: Push vs. Pull Packet hand-off between elements Directly inspired by properties of routers Annotations on packets to carry temporary state Push processing Initiated by the source end E.g., when an unsolicited packet arrives (e.g., from a device) Pull processing Initiated by the destination end E.g., to control timing of packet processing (e.g., based on a timer or packet scheduler)

Click Language Declarations Connections Compound elements Create elements Connections Connect elements Compound elements Combine multiple smaller elements, and treat as single, new element to use as a primitive class Language extensions through element classes Configuration strings for individual elements Rather than syntactic extensions to the language src :: FromDevice(eth0); ctr :: Counter; sink :: Discard; src -> ctr; ctr -> sink;

Handlers and Control Socket Access points for user interaction Appear like files in a file system Can have both read and write handlers Examples Installing/removing forwarding-table entries Reporting measurement statistics Changing a maximum queue length Control socket Allows other programs to call read/write handlers Command sent as single line of text to the server http://read.cs.ucla.edu/click/elements/controlsocket?s=llrpc

Example: EtherSwitch Element Ethernet switch Expects and produces Ethernet frames Each input/output pair of ports is a LAN Learning and forwarding switch among these LANs Element properties Ports: any # of inputs, and same # of outputs Processing: push Element handlers Table (read-only): returns port association table Timeout (read/write): returns/sets TIMEOUT http://read.cs.ucla.edu/click/elements/etherswitch