5: DataLink Layer5-1 Virtualization of networks Virtualization of resources: powerful abstraction in systems engineering: r computing examples: virtual memory, virtual devices m Virtual machines: e.g., java m IBM VM os from 1960’s/70’s r layering of abstractions: don’t sweat the details of the lower layer, only deal with lower layers abstractly
5: DataLink Layer5-2 The Internet: virtualizing networks 1974: multiple unconnected nets m ARPAnet m data-over-cable networks m packet satellite network (Aloha) m packet radio network … differing in: m addressing conventions m packet formats m error recovery m routing ARPAnet satellite net "A Protocol for Packet Network Intercommunication", V. Cerf, R. Kahn, IEEE Transactions on Communications, May, 1974, pp
5: DataLink Layer5-3 The Internet: virtualizing networks ARPAnet satellite net gateway Internetwork layer (IP): r addressing: internetwork appears as single, uniform entity, despite underlying local network heterogeneity r network of networks Gateway: r “embed internetwork packets in local packet format or extract them” r route (at internetwork level) to next gateway
5: DataLink Layer5-4 Cerf & Kahn’s Internetwork Architecture What is virtualized? r two layers of addressing: internetwork and local network r new layer (IP) makes everything homogeneous at internetwork layer r underlying local network technology m cable m satellite m 56K telephone modem m today: ATM, MPLS … “invisible” at internetwork layer. Looks like a link layer technology to IP!
5: DataLink Layer5-5 ATM and MPLS r ATM, MPLS separate networks in their own right m different service models, addressing, routing from Internet r viewed by Internet as logical link connecting IP routers m just like dialup link is really part of separate network (telephone network) r ATM, MPLS: of technical interest in their own right
5: DataLink Layer5-6 Multiprotocol label switching (MPLS) r initial goal: speed up IP forwarding by using fixed length label (instead of IP address) to do forwarding m borrowing ideas from Virtual Circuit (VC) approach m but IP datagram still keeps IP address! PPP or Ethernet header IP header remainder of link-layer frame MPLS header label Exp S TTL
5: DataLink Layer5-7 MPLS capable routers r a.k.a. label-switched router r forwards packets to outgoing interface based only on label value (don’t inspect IP address) m MPLS forwarding table distinct from IP forwarding tables r signaling protocol needed to set up forwarding m RSVP-TE m forwarding possible along paths that IP alone would not allow (e.g., source-specific routing) !! m use MPLS for traffic engineering r must co-exist with IP-only routers
5: DataLink Layer5-8 R1 R2 D R3 R4 R A R6 in out out label label dest interface 6 - A 0 in out out label label dest interface 10 6 A D 0 in out out label label dest interface 10 A 0 12 D 0 1 in out out label label dest interface 8 6 A A 1 MPLS forwarding tables
5: DataLink Layer5-9 Synthesis: a day in the life of a web request r journey down protocol stack complete! m application, transport, network, link r putting-it-all-together: synthesis! m goal: identify, review, understand protocols (at all layers) involved in seemingly simple scenario: requesting www page m scenario: student attaches laptop to campus network, requests/receives
5: DataLink Layer5-10 A day in the life: scenario Comcast network /13 Google’s network / web server DNS server school network /24 browser web page
5: DataLink Layer5-11 A day in the life… connecting to the Internet r connecting laptop needs to get its own IP address, addr of first-hop router, addr of DNS server: use DHCP router (runs DHCP) DHCP UDP IP Eth Phy DHCP UDP IP Eth Phy DHCP r DHCP request encapsulated in UDP, encapsulated in IP, encapsulated in Ethernet r Ethernet frame broadcast (dest: FFFFFFFFFFFF ) on LAN, received at router running DHCP server r Ethernet demux’ed to IP demux’ed, UDP demux’ed to DHCP
5: DataLink Layer5-12 A day in the life… connecting to the Internet r DHCP server formulates DHCP ACK containing client’s IP address, IP address of first-hop router for client, name & IP address of DNS server router (runs DHCP) DHCP UDP IP Eth Phy DHCP UDP IP Eth Phy DHCP r encapsulation at DHCP server, frame forwarded (switch learning) through LAN, demultiplexing at client Client now has IP address, knows name & addr of DNS server, IP address of its first-hop router r DHCP client receives DHCP ACK reply
5: DataLink Layer5-13 A day in the life… ARP (before DNS, before HTTP) r before sending HTTP request, need IP address of DNS DNS UDP IP Eth Phy DNS r DNS query created, encapsulated in UDP, encapsulated in IP, encasulated in Eth. In order to send frame to router, need MAC address of router interface: ARP r ARP query broadcast, received by router, which replies with ARP reply giving MAC address of router interface r client now knows MAC address of first hop router, so can now send frame containing DNS query ARP query Eth Phy ARP ARP reply
5: DataLink Layer5-14 A day in the life… using DNS DNS UDP IP Eth Phy DNS r IP datagram containing DNS query forwarded via LAN switch from client to 1 st hop router r IP datagram forwarded from campus network into comcast network, routed (tables created by RIP, OSPF, IS-IS and/or BGP routing protocols) to DNS server r demux’ed to DNS server r DNS server replies to client with IP address of Comcast network /13 DNS server DNS UDP IP Eth Phy DNS
5: DataLink Layer5-15 A day in the life… TCP connection carrying HTTP HTTP TCP IP Eth Phy HTTP r to send HTTP request, client first opens TCP socket to web server r TCP SYN segment (step 1 in 3-way handshake) inter- domain routed to web server r TCP connection established! web server SYN TCP IP Eth Phy SYN SYNACK r web server responds with TCP SYNACK (step 2 in 3- way handshake)
5: DataLink Layer5-16 A day in the life… HTTP request/reply HTTP TCP IP Eth Phy HTTP r HTTP request sent into TCP socket r IP datagram containing HTTP request routed to r IP datgram containing HTTP reply routed back to client web server HTTP TCP IP Eth Phy r web server responds with HTTP reply (containing web page) HTTP r web page finally (!!!) displayed