Announcement r Project 3 out, due 3/10 r Homework 3 out last week m Due next Mon. 3/1
Review r Hierarchical Routing r The Internet (IP) Protocol m IPv4 addressing m Moving a datagram from source to destination Some slides are in courtesy of J. Kurose and K. Ross
Overview r The Internet (IP) Protocol m Datagram format m IP fragmentation m ICMP: Internet Control Message Protocol m NAT: Network Address Translation r Routing in the Internet m Intra-AS routing: RIP and OSPF m Inter-AS routing: BGP r Multicast Routing Some slides are in courtesy of J. Kurose and K. Ross
Getting a datagram from source to dest. IP datagram: A B E misc fields source IP addr dest IP addr data r datagram remains unchanged, as it travels source to destination r addr fields of interest here Dest. Net. next router Nhops forwarding table in A
Getting a datagram from source to dest. Starting at A, send IP datagram addressed to B: r look up net. address of B in forwarding table r find B is on same net. as A r link layer will send datagram directly to B inside link-layer frame m B and A are directly connected Dest. Net. next router Nhops misc fields data A B E forwarding table in A
Getting a datagram from source to dest. Dest. Net. next router Nhops Starting at A, dest. E: r look up network address of E in forwarding table r E on different network m A, E not directly attached r routing table: next hop router to E is r link layer sends datagram to router inside link- layer frame r datagram arrives at r continued….. misc fields data A B E forwarding table in A
Getting a datagram from source to dest. Arriving at , destined for r look up network address of E in router’s forwarding table r E on same network as router’s interface m router, E directly attached r link layer sends datagram to inside link-layer frame via interface r datagram arrives at !!! (hooray!) misc fields data Dest. Net router Nhops interface A B E forwarding table in router
IP datagram format ver length 32 bits data (variable length, typically a TCP or UDP segment) 16-bit identifier Internet checksum time to live 32 bit source IP address IP protocol version number header length (bytes) max number remaining hops (decremented at each router) for fragmentation/ reassembly total datagram length (bytes) upper layer protocol to deliver payload to head. len type of service “type” of data flgs fragment offset upper layer 32 bit destination IP address Options (if any) E.g. timestamp, record route taken, specify list of routers to visit. how much overhead with TCP? r 20 bytes of TCP r 20 bytes of IP r = 40 bytes + app layer overhead
IP Fragmentation & Reassembly r network links have MTU (max.transfer size) - largest possible link-level frame. m different link types, different MTUs r large IP datagram divided (“fragmented”) within net m one datagram becomes several datagrams m “reassembled” only at final destination m IP header bits used to identify, order related fragments fragmentation: in: one large datagram out: 3 smaller datagrams reassembly
IP Fragmentation and Reassembly ID =x offset =0 fragflag =0 length =4000 ID =x offset =0 fragflag =1 length =1500 ID =x offset =1480 fragflag =1 length =1500 ID =x offset =2960 fragflag =0 length =1040 One large datagram becomes several smaller datagrams Example r 4000 byte datagram r MTU = 1500 bytes
ICMP: Internet Control Message Protocol r used by hosts, routers, gateways to communication network-level information m error reporting: unreachable host, network, port, protocol m echo request/reply (used by ping) r network-layer “above” IP: m ICMP msgs carried in IP datagrams r Ping, traceroute uses ICMP
NAT: Network Address Translation local network (e.g., home network) /24 rest of Internet Datagrams with source or destination in this network have /24 address for source, destination (as usual) All datagrams leaving local network have same single source NAT IP address: , different source port numbers
NAT: Network Address Translation r Motivation: local network uses just one IP address as far as outside word is concerned: m no need to be allocated range of addresses from ISP: - just one IP address is used for all devices m can change addresses of devices in local network without notifying outside world m can change ISP without changing addresses of devices in local network m devices inside local net not explicitly addressable, visible by outside world (a security plus).
NAT: Network Address Translation Implementation: NAT router must: m outgoing datagrams: replace (source IP address, port #) of every outgoing datagram to (NAT IP address, new port #)... remote clients/servers will respond using (NAT IP address, new port #) as destination addr. m remember (in NAT translation table) every (source IP address, port #) to (NAT IP address, new port #) translation pair m incoming datagrams: replace (NAT IP address, new port #) in dest fields of every incoming datagram with corresponding (source IP address, port #) stored in NAT table
NAT: Network Address Translation S: , 3345 D: , : host sends datagram to , 80 NAT translation table WAN side addr LAN side addr , , 3345 …… S: , 80 D: , S: , 5001 D: , : NAT router changes datagram source addr from , 3345 to , 5001, updates table S: , 80 D: , : Reply arrives dest. address: , : NAT router changes datagram dest addr from , 5001 to , 3345
NAT: Network Address Translation r 16-bit port-number field: m 60,000 simultaneous connections with a single LAN-side address! r NAT is controversial: m routers should only process up to layer 3 m violates end-to-end argument NAT possibility must be taken into account by app designers, eg, P2P applications m address shortage should instead be solved by IPv6
Overview r The Internet (IP) Protocol m Datagram format m IP fragmentation m ICMP: Internet Control Message Protocol m NAT: Network Address Translation r Routing in the Internet m Intra-AS routing: RIP and OSPF m Inter-AS routing: BGP r Multicast Routing Some slides are in courtesy of J. Kurose and K. Ross
Routing in the Internet r The Global Internet consists of Autonomous Systems (AS) interconnected with each other: m Stub AS: small corporation: one connection to other AS’s m Multihomed AS: large corporation (no transit): multiple connections to other AS’s m Transit AS: provider, hooking many AS’s together r Two-level routing: m Intra-AS: administrator responsible for choice of routing algorithm within network m Inter-AS: unique standard for inter-AS routing: BGP
Internet AS Hierarchy Intra-AS border (exterior gateway) routers Inter-AS interior (gateway) routers
Intra-AS Routing r Also known as Interior Gateway Protocols (IGP) r Most common Intra-AS routing protocols: m RIP: Routing Information Protocol m OSPF: Open Shortest Path First m IGRP: Interior Gateway Routing Protocol (Cisco proprietary)
OSPF (Open Shortest Path First) r “open”: publicly available r Uses Link State algorithm m LS packet dissemination m Topology map at each node m Route computation using Dijkstra’s algorithm r OSPF advertisement carries one entry per neighbor router r Advertisements disseminated to entire AS (via flooding) m Carried in OSPF messages directly over IP (rather than TCP or UDP
OSPF “advanced” features (not in RIP) r Security: all OSPF messages authenticated (to prevent malicious intrusion) r For each link, multiple cost metrics for different TOS (e.g., satellite link cost set “low” for best effort; high for real time) r Integrated uni- and multicast support: m Multicast OSPF (MOSPF) uses same topology data base as OSPF r Hierarchical OSPF in large domains.
Hierarchical OSPF
r Two-level hierarchy: local area, backbone. m Link-state advertisements only in area m each nodes has detailed area topology; only know direction (shortest path) to nets in other areas. r Area border routers: “summarize” distances to nets in own area, advertise to other Area Border routers. r Backbone routers: run OSPF routing limited to backbone. r Boundary routers: connect to other AS’s.
Inter-AS routing in the Internet: BGP
Internet inter-AS routing: BGP r BGP (Border Gateway Protocol): the de facto standard r Path Vector protocol: m similar to Distance Vector protocol m each Border Gateway broadcast to neighbors (peers) entire path (i.e., sequence of AS’s) to destination m BGP routes to networks (ASs), not individual hosts m E.g., Gateway X may send its path to dest. Z: Path (X,Z) = X,Y1,Y2,Y3,…,Z
Internet inter-AS routing: BGP Suppose: gateway X send its path to peer gateway W r W may or may not select path offered by X m cost, policy (don’t route via competitors AS), loop prevention reasons. r If W selects path advertised by X, then: Path (W,Z) = w, Path (X,Z) r Note: X can control incoming traffic by controlling it route advertisements to peers: m e.g., don’t want to route traffic to Z -> don’t advertise any routes to Z
BGP: controlling who routes to you r A,B,C are provider networks r X,W,Y are customer (of provider networks) r X is dual-homed: attached to two networks m X does not want to route from B via X to C m.. so X will not advertise to B a route to C
BGP: controlling who routes to you r A advertises to B the path AW r B advertises to X the path BAW r Should B advertise to C the path BAW? m No way! B gets no “revenue” for routing CBAW since neither W nor C are B’s customers m B wants to force C to route to w via A m B wants to route only to/from its customers!
BGP operation Q: What does a BGP router do? r Receiving and filtering route advertisements from directly attached neighbor(s). r Route selection. m To route to destination X, which path )of several advertised) will be taken? r Sending route advertisements to neighbors.
Why different Intra- and Inter-AS routing ? Policy: r Inter-AS: admin wants control over how its traffic routed, who routes through its net. r Intra-AS: single admin, so no policy decisions needed Scale: r hierarchical routing saves table size, reduced update traffic Performance: r Intra-AS: can focus on performance r Inter-AS: policy may dominate over performance
Overview r The Internet (IP) Protocol m Datagram format m IP fragmentation m ICMP: Internet Control Message Protocol m NAT: Network Address Translation r Routing in the Internet m Intra-AS routing: RIP and OSPF m Inter-AS routing: BGP r Multicast Routing Some slides are in courtesy of J. Kurose and K. Ross
Multicast: one sender to many receivers r Multicast: act of sending datagram to multiple receivers with single “transmit” operation m analogy: one teacher to many students r Question: how to achieve multicast Multicast via unicast r source sends N unicast datagrams, one addressed to each of N receivers multicast receiver (red) not a multicast receiver (red) routers forward unicast datagrams
Multicast: one sender to many receivers r Multicast: act of sending datagram to multiple receivers with single “transmit” operation m analogy: one teacher to many students r Question: how to achieve multicast Network multicast r Router actively participate in multicast, making copies of packets as needed and forwarding towards multicast receivers Multicast routers (red) duplicate and forward multicast datagrams
Multicast: one sender to many receivers r Multicast: act of sending datagram to multiple receivers with single “transmit” operation m analogy: one teacher to many students r Question: how to achieve multicast Application-layer multicast r end systems involved in multicast copy and forward unicast datagrams among themselves
Internet Multicast Service Model multicast group concept: use of indirection m hosts addresses IP datagram to multicast group m routers forward multicast datagrams to hosts that have “joined” that multicast group multicast group
Multicast groups class D Internet addresses reserved for multicast: host group semantics: oanyone can “join” (receive) multicast group oanyone can send to multicast group ono network-layer identification to hosts of members needed: infrastructure to deliver mcast-addressed datagrams to all hosts that have joined that multicast group
Joining a mcast group: two-step process r local: host informs local mcast router of desire to join group: IGMP (Internet Group Management Protocol) r wide area: local router interacts with other routers to receive mcast datagram flow m many protocols (e.g., DVMRP, MOSPF, PIM) IGMP wide-area multicast routing
IGMP: Internet Group Management Protocol r host: sends IGMP report when application joins mcast group m IP_ADD_MEMBERSHIP socket option m host need not explicitly “unjoin” group when leaving r router: sends IGMP query at regular intervals m host belonging to a mcast group must reply to query query report
Multicast Routing: Problem Statement r Goal: find a tree (or trees) connecting routers having local mcast group members m tree: not all paths between routers used m source-based: different tree from each sender to rcvrs m shared-tree: same tree used by all group members Shared tree Source-based trees
Approaches for building mcast trees Approaches: r source-based tree: one tree per source m shortest path trees m reverse path forwarding r group-shared tree: group uses one tree m minimal spanning (Steiner) m center-based trees …we first look at basic approaches, then specific protocols adopting these approaches
Shortest Path Tree r mcast forwarding tree: tree of shortest path routes from source to all receivers m Dijkstra’s algorithm R1 R2 R3 R4 R5 R6 R i router with attached group member router with no attached group member link used for forwarding, i indicates order link added by algorithm LEGEND S: source
Reverse Path Forwarding if (mcast datagram received on incoming link on shortest path back to center) then flood datagram onto all outgoing links else ignore datagram rely on router’s knowledge of unicast shortest path from it to sender each router has simple forwarding behavior:
Reverse Path Forwarding: example result is a source-specific reverse SPT –may be a bad choice with asymmetric links R1 R2 R3 R4 R5 R6 R7 router with attached group member router with no attached group member datagram will be forwarded LEGEND S: source datagram will not be forwarded
Reverse Path Forwarding: pruning r forwarding tree contains subtrees with no mcast group members m no need to forward datagrams down subtree m “prune” msgs sent upstream by router with no downstream group members R1 R2 R3 R4 R5 R6 R7 router with attached group member router with no attached group member prune message LEGEND S: source links with multicast forwarding P P P
Shared-Tree: Steiner Tree r Steiner Tree: minimum cost tree connecting all routers with attached group members r problem is NP-complete r excellent heuristics exists r not used in practice: m computational complexity m information about entire network needed m monolithic: rerun whenever a router needs to join/leave
Center-based trees r single delivery tree shared by all r one router identified as “center” of tree r to join: m edge router sends unicast join-msg addressed to center router m join-msg “processed” by intermediate routers and forwarded towards center m join-msg either hits existing tree branch for this center, or arrives at center m path taken by join-msg becomes new branch of tree for this router
Center-based trees: an example Suppose R6 chosen as center: R1 R2 R3 R4 R5 R6 R7 router with attached group member router with no attached group member path order in which join messages generated LEGEND
Chapter 4 roadmap 4.1 Introduction and Network Service Models 4.2 Routing Principles 4.3 Hierarchical Routing 4.4 The Internet (IP) Protocol 4.5 Routing in the Internet 4.6 What’s Inside a Router? 4.7 IPv6 4.8 Multicast Routing 4.9 Mobility
What is mobility? r spectrum of mobility, from the network perspective: no mobility high mobility mobile user, using same access point mobile user, passing through multiple access point while maintaining ongoing connections ( like cell phone) mobile user, connecting/ disconnecting from network using DHCP.
Mobility: Vocabulary home network: permanent “home” of mobile (e.g., /24) Permanent address: address in home network, can always be used to reach mobile e.g., home agent: entity that will perform mobility functions on behalf of mobile, when mobile is remote wide area network correspondent
Mobility: more vocabulary Care-of-address: address in visited network. (e.g., 79, ) wide area network visited network: network in which mobile currently resides (e.g., /24) Permanent address: remains constant ( e.g., ) home agent: entity in visited network that performs mobility functions on behalf of mobile. correspondent: wants to communicate with mobile
How do you contact a mobile friend: r search all phone books? r call her parents? r expect her to let you know where he/she is? I wonder where Alice moved to? Consider friend frequently changing addresses, how do you find her?
Mobility: approaches r Let routing handle it: routers advertise permanent address of mobile-nodes-in-residence via usual routing table exchange. m routing tables indicate where each mobile located m no changes to end-systems r Let end-systems handle it: m indirect routing: communication from correspondent to mobile goes through home agent, then forwarded to remote m direct routing: correspondent gets foreign address of mobile, sends directly to mobile
Mobility: approaches r Let routing handle it: routers advertise permanent address of mobile-nodes-in-residence via usual routing table exchange. m routing tables indicate where each mobile located m no changes to end-systems r let end-systems handle it: m indirect routing: communication from correspondent to mobile goes through home agent, then forwarded to remote m direct routing: correspondent gets foreign address of mobile, sends directly to mobile not scalable to millions of mobiles
Mobility: registration End result: r Foreign agent knows about mobile r Home agent knows location of mobile wide area network home network visited network 1 mobile contacts foreign agent on entering visited network 2 foreign agent contacts home agent home: “this mobile is resident in my network”
Mobility via Indirect Routing wide area network home network visited network correspondent addresses packets using home address of mobile home agent intercepts packets, forwards to foreign agent foreign agent receives packets, forwards to mobile mobile replies directly to correspondent
Indirect Routing: comments r Mobile uses two addresses: m permanent address: used by correspondent (hence mobile location is transparent to correspondent) m care-of-address: used by home agent to forward datagrams to mobile r foreign agent functions may be done by mobile itself r triangle routing: correspondent-home-network- mobile m inefficient when correspondent, mobile are in same network
Forwarding datagrams to remote mobile Permanent address: Care-of address: dest: packet sent by correspondent dest: dest: packet sent by home agent to foreign agent: a packet within a packet dest: foreign-agent-to-mobile packet
Indirect Routing: moving between networks r suppose mobile user moves to another network m registers with new foreign agent m new foreign agent registers with home agent m home agent update care-of-address for mobile m packets continue to be forwarded to mobile (but with new care-of-address) r Mobility, changing foreign networks transparent: on going connections can be maintained!
Mobility via Direct Routing wide area network home network visited network correspondent requests, receives foreign address of mobile correspondent forwards to foreign agent foreign agent receives packets, forwards to mobile mobile replies directly to correspondent 3
Mobility via Direct Routing: comments r overcome triangle routing problem r non-transparent to correspondent: correspondent must get care-of-address from home agent m What happens if mobile changes networks?
Mobile IP r RFC 3220 r has many features we’ve seen: m home agents, foreign agents, foreign-agent registration, care-of-addresses, encapsulation (packet-within-a-packet) r three components to standard: m agent discovery m registration with home agent m indirect routing of datagrams
Mobile IP: agent discovery r agent advertisement: foreign/home agents advertise service by broadcasting ICMP messages (typefield = 9) R bit: registration required H,F bits: home and/or foreign agent
Mobile IP: registration example
Network Layer: summary Next stop: the Data link layer! What we’ve covered: r network layer services r routing principles: link state and distance vector r hierarchical routing r IP r Internet routing protocols RIP, OSPF, BGP r what’s inside a router? r IPv6 r mobility