Chapter 4 Network Layer: The Data Plane Part A All material copyright 996-06 J.F Kurose and K.W. Ross, All Rights Reserved Computer Networking: A Top Down Approach 7 th Edition, Global Edition Jim Kurose, Keith Ross Pearson April 06 Network Layer: Data Plane 4-
Chapter 4: outline 4. Overview of Network layer data plane control plane 4. What s inside a router 4. IP: Internet Protocol datagram format fragmentation IPv4 addressing address translation IPv6 4.4 Generalized Forward and SDN match action OpenFlow examples of match-plus-action in action Network Layer: Data Plane 4-
Chapter 4: layer chapter goals: understand principles behind layer services, focusing on data plane: layer service models forwarding versus routing how a router works generalized forwarding instantiation, implementation in the Internet Network Layer: Data Plane 4-
Network layer transport segment from sending to receiving host on sending side encapsulates segments into datagrams on receiving side, delivers segments to transport layer layer protocols in every host, router router examines header fields in all IP datagrams passing through it application transport application transport Network Layer: Data Plane 4-4
Two key -layer functions -layer functions: forwarding: move packets from router s input to appropriate router output routing: determine route taken by packets from source to destination routing algorithms analogy: taking a trip forwarding: process of getting through single interchange routing: process of planning trip from source to destination Network Layer: Data Plane 4-5
Interplay between routing and forwarding routing algorithm local forwarding table header value output link 000 00 0 00 Routing algorithm determines end-end-path through and populates forwarding table with routing information forwarding table determines local forwarding at this router value in arriving packet s header 0 00 Upon packet arrival, using packet s header, router checks forwarding (routing) table for output link and places packet in output link buffer ready to be transmitted to next router Forwarding executed upon every packet arrival Routing executed at a much slower time scale Network Layer 4-6
Network layer: data plane, control plane Data plane local, per-router function determines how datagram arriving on router input port is forwarded to router output port forwarding function values in arriving packet header 0 Control plane -wide logic determines how datagram is routed among routers along end-end path from source host to destination host two control-plane approaches: traditional routing algorithms: implemented in routers software-defined ing (SDN): implemented in (remote) servers Network Layer: Data Plane 4-7
Per-router control plane Individual routing algorithm components in each and every router interact in the control plane Routing Algorithm control plane data plane values in arriving packet header 0 Network Layer: Control Plane 5-8
Logically centralized control plane A distinct (typically remote) controller interacts with local control agents (CAs) Remote Controller CA control plane data plane values in arriving packet header CA CA CA CA 0 Network Layer: Control Plane 5-9
Recall Layering: The Internet Network layer Host, router layer functions: Transport layer: TCP, UDP Network layer Routing protocols path selection RIP, OSPF, BGP forwarding table IP protocol addressing conventions datagram format packet handling conventions ICMP protocol error reporting router signaling Link layer layer Network Layer 4-0
Forwarding table in the Internet routing algorithm local forwarding table header value output link 000 00 0 00 Destination address value in arriving packet s header 0 00 forwarding table determines local forwarding at this router BUT, address space in internet (IpV4) is which is about 4 billion IP addresses!!!! Network Layer 4-
Datagram forwarding table routing algorithm local forwarding table dest address output link address-range address-range address-range address-range 4 4 billion IP addresses, so rather than list individual destination address list range of addresses (aggregate table entries) IP destination address in arriving packet s header Network Layer 4-
E.g. datagram forwarding table Destination Address Range 00000 0000 0000000 00000000 through 00000 0000 0000 Link Interface 0 =4 billion possible entries become much less with address range 00000 0000 000000 00000000 through 00000 0000 000000 00000 0000 00000 00000000 through 00000 0000 000 otherwise Q: but what happens if ranges don t divide up so nicely? Network Layer 4-
Idea of Longest prefix matching longest prefix matching when looking for forwarding table entry for given destination address, use longest address prefix that matches destination address. Destination Address Range 00000 0000 0000*** ********* 00000 0000 000000 ********* 00000 0000 000*** ********* otherwise examples: DA: 00000 0000 00000 00000 DA: 00000 0000 000000 0000 Link interface 0 which interface? which interface? Network Layer 4-4
Network service model Q: What service model for channel transporting datagrams from sender to receiver? example services for individual datagrams: guaranteed delivery guaranteed delivery with less than 40 msec delay example services for a flow of datagrams: in-order datagram delivery guaranteed minimum bandwidth to flow restrictions on changes in inter-packet spacing Network Layer: Data Plane 4-5
Network layer service models: Network Architecture Service Model Bandwidth Guarantees? Loss Order Timing Congestion feedback Internet ATM ATM ATM ATM best effort CBR VBR ABR UBR ne constant rate guaranteed rate guaranteed minimum ne (inferred via loss) congestion congestion Network Layer: Data Plane 4-6
IP datagram format IP protocol version number header length (bytes) type of data max number remaining hops (decremented at each router) upper layer protocol to deliver payload to how much overhead? 0 bytes of TCP 0 bytes of IP = 40 bytes + app layer overhead ver head. len type of service 6-bit identifier time to upper live layer bits flgs length fragment offset header checksum bit source IP address bit destination IP address options (if any) data (variable length, typically a TCP or UDP segment) total datagram length (bytes) for fragmentation/ reassembly e.g. timestamp, record route taken, specify list of routers to visit. Network Layer 4-7