Chapter 4 Network Layer

download Chapter 4 Network Layer

If you can't read please download the document

description

Chapter 4 Network Layer. Computer Networking: A Top Down Approach 4 th edition. Jim Kurose, Keith Ross Addison-Wesley, July 2007. . Computer Networking: A Top Down Approach 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009. . transport segment from sending to receiving host - PowerPoint PPT Presentation

Transcript of Chapter 4 Network Layer

3rd Edition: Chapter 4

Network Layer4-1Chapter 4Network LayerComputer Networking: A Top Down Approach 4th edition. Jim Kurose, Keith RossAddison-Wesley, July 2007.

Computer Networking: A Top Down Approach 5th edition. Jim Kurose, Keith RossAddison-Wesley, April 2009.

1Network Layer4-2Network layertransport segment from sending to receiving host on sending side encapsulates segments into datagramson rcving side, delivers segments to transport layernetwork layer protocols in every host, routerrouter examines header fields in all IP datagrams passing through it

applicationtransportnetworkdata linkphysicalapplicationtransportnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysical2Network Layer4-3Two Key Network-Layer Functions1. forwarding: move packets from routers input to appropriate router output2. routing: determine route taken by packets from source to dest. routing algorithmsbefore packets arrive

3. connection setup: for some connection-oriented architectures (ATM, x.25)Before datagrams flowEstablishes a virtual circuit (VC)3Network Layer4-4Network service modelQ: What service model for channel transporting datagrams from sender to receiver?Example services for individual datagrams:guaranteed deliveryguaranteed delivery with less than 40 msec delayExample services for a flow of datagrams:in-order datagram deliveryguaranteed minimum bandwidth to flowrestrictions on changes in inter-packet spacing

4Network Layer4-5Network layer service models:NetworkArchitecture

Internet

ATM

ATM

ATM

ATMServiceModel

best effort

CBR

VBR

ABR

UBRBandwidth

none

constantrateguaranteedrateguaranteed minimumnoneLoss

no

yes

yes

no

noOrder

no

yes

yes

yes

yesTiming

no

yes

yes

no

noCongestionfeedback

no (inferredvia loss)nocongestionnocongestionyes

noGuarantees ?5Network Layer4-6Virtual circuitscall setup, teardown for each call before data can floweach packet carries VC identifier (not destination host address)every router on source-dest path maintains state for each passing connectionlink, router resources (bandwidth, buffers) may be allocated to VC (dedicated resources = predictable service)Yet still uses statistical multiplexing

source-to-dest path behaves much like telephone circuitperformance-wisenetwork actions along source-to-dest path

6Network Layer4-7Forwarding table

122232123VC numberinterfacenumberIncoming interface Incoming VC # Outgoing interface Outgoing VC #1 12 3 222 63 1 18 3 7 2 171 97 3 87 Forwarding table innorthwest router:Routers maintain connection state information!7Network Layer4-8Virtual circuits: signaling protocolsused to setup, maintain teardown VCused in ATM, frame-relay, X.25not used in todays Internet

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical1. Initiate call2. incoming call3. Accept call4. Call connected5. Data flow begins6. Receive data8Network Layer4-9Datagram networksno call setup at network layerrouters: no state about end-to-end connectionsno network-level concept of connectionpackets forwarded using destination host addresspackets between same source-dest pair may take different paths

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical1. Send data2. Receive data9Network Layer4-10Datagram or VC network: why?Internet (datagram)data exchange among computerselastic service, no strict timing req. smart end systems (computers)can adapt, perform control, error recoverysimple inside network, complexity at edgemany link types different characteristicsuniform service difficultATM (VC)evolved from telephonyhuman conversation: strict timing, reliability requirementsneed for guaranteed servicedumb end systemstelephonescomplexity inside network10Network Layer4-11Router Architecture OverviewTwo key router functions: run routing algorithms/protocol (RIP, OSPF, BGP)forwarding datagrams from incoming to outgoing link

11Network Layer4-12

Three types of switching fabrics1st generation, memory bottleneck, limited speedBus bottleneck, 32GbpsInterconnection network, 60Gbps12Network Layer4-13Input Port QueuingFabric slower than input ports combined -> queueing may occur at input queues Head-of-the-Line (HOL) blocking: queued datagram at front of queue prevents others in queue from moving forwardqueueing delay and loss due to input buffer overflow!

13Network Layer4-14The Internet Network layer

forwardingtableHost, router network layer functions:Routing protocolspath selectionRIP, OSPF, BGPIP protocoladdressing conventionsdatagram formatpacket handling conventionsICMP protocolerror reportingrouter signalingTransport layer: TCP, UDPLink layerphysical layerNetworklayer14Network Layer4-15IP datagram formatverlength32 bitsdata (variable length,typically a TCP or UDP segment)16-bit identifierheader checksumtime tolive32 bit source IP addressIP protocol versionnumberheader length (bytes)max numberremaining hops(decremented at each router)forfragmentation/reassemblytotal datagramlength (bytes)upper layer protocolto deliver payload tohead.lentype ofservicetype of data flgsfragment offsetupper layer32 bit destination IP addressOptions (if any)E.g. timestamp,record routetaken, specifylist of routers to visit.how much overhead with TCP?20 bytes of TCP20 bytes of IP= 40 bytes + app layer overhead15Network Layer4-16IP Fragmentation & Reassemblynetwork links have MTU (max.transfer size) - largest possible link-level frame.different link types, different MTUs large IP datagram divided (fragmented) within netone datagram becomes several datagramsreassembled only at final destinationIP header bits used to identify, order related fragments

fragmentation: in: one large datagramout: 3 smaller datagramsreassembly16Network Layer4-17IP Fragmentation and ReassemblyID=xoffset=0fragflag=0length=4000ID=xoffset=0fragflag=1length=1500ID=xoffset=185fragflag=1length=1500ID=xoffset=370fragflag=0length=1040One large datagram becomesseveral smaller datagramsExample4000 byte datagramMTU = 1500 bytes

1480 bytes in data fieldoffset =1480/8 17Network Layer4-18IP Addressing: introductionIP address: 32-bit identifier for host, router interface interface: connection between host/router and physical linkrouters typically have multiple interfaceshost typically has one interfaceIP addresses associated with each interface

223.1.1.1223.1.1.2223.1.1.3223.1.1.4223.1.2.9

223.1.2.2223.1.2.1

223.1.3.2223.1.3.1223.1.3.27223.1.1.1 = 11011111 00000001 00000001 0000000122311118Network Layer4-19SubnetsIP address: subnet part (high order bits)host part (low order bits) Whats a subnet ?device interfaces with same subnet part of IP addresscan physically reach each other without intervening router

223.1.1.1223.1.1.2223.1.1.3223.1.1.4223.1.2.9

223.1.2.2223.1.2.1

223.1.3.2223.1.3.1223.1.3.27network consisting of 3 subnetssubnet19Network Layer4-20IP addressing: CIDRCIDR: Classless InterDomain Routingsubnet portion of address of arbitrary lengthaddress format: a.b.c.d/x, where x is # bits in subnet portion of address11001000 00010111 00010000 00000000subnetparthostpart200.23.16.0/2320Network Layer4-21IP addresses: how to get one?Q: How does host get IP address?

hard-coded by system admin in a fileWintel: control-panel->network->configuration->tcp/ip->propertiesUNIX: /etc/rc.configDHCP: Dynamic Host Configuration Protocol: dynamically get address from as serverplug-and-play

21Network Layer4-22Hierarchical addressing: route aggregationSend me anythingwith addresses beginning 200.23.16.0/20200.23.16.0/23200.23.18.0/23200.23.30.0/23Fly-By-Night-ISPOrganization 0Organization 7InternetOrganization 1ISPs-R-UsSend me anythingwith addresses beginning 199.31.0.0/16200.23.20.0/23Organization 2......Hierarchical addressing allows efficient advertisement of routing information:22Network Layer4-23NAT: Network Address Translation

10.0.0.110.0.0.210.0.0.3S: 10.0.0.1, 3345D: 128.119.40.186, 80110.0.0.4138.76.29.71: host 10.0.0.1 sends datagram to 128.119.40.186, 80NAT translation tableWAN side addr LAN side addr138.76.29.7, 5001 10.0.0.1, 3345 S: 128.119.40.186, 80 D: 10.0.0.1, 3345

4S: 138.76.29.7, 5001D: 128.119.40.186, 8022: NAT routerchanges datagramsource addr from10.0.0.1, 3345 to138.76.29.7, 5001,updates tableS: 128.119.40.186, 80 D: 138.76.29.7, 5001

33: Reply arrives dest. address: 138.76.29.7, 50014: NAT routerchanges datagramdest addr from138.76.29.7, 5001 to 10.0.0.1, 3345

23Network Layer4-24NAT: Network Address Translation16-bit port-number field: 60,000 simultaneous connections with a single LAN-side address!NAT is controversial:routers should only process up to layer 3violates end-to-end argumentNAT possibility must be taken into account by app designers, eg, P2P applicationsaddress shortage should instead be solved by IPv6

24Network Layer4-25NAT traversal problemclient want to connect to server with address 10.0.0.1server address 10.0.0.1 local to LAN (client cant use it as destination addr)only one externally visible NATted address: 138.76.29.7Solutions: 1. statically configure NAT to forward incoming connection requests at given port to servere.g., (138.76.29.7, port 2500) always forwarded to 10.0.0.1 port 250002. use UPnP to automate 13. use relay: used in p2p

10.0.0.110.0.0.4NAT router138.76.29.7

Client?25Network Layer4-26NAT traversal problemsolution 3: relaying (used in Skype)NATed server establishes connection to relayExternal client connects to relayrelay bridges packets between to connections

10.0.0.1NAT router138.76.29.7

Client

1. connection torelay initiatedby NATted host2. connection torelay initiatedby client3. relaying established26Network Layer4-27IPv6Initial motivation: 32-bit address space soon to be completely allocated. Additional motivation:header format helps speed processing/forwardingheader changes to facilitate QoS IPv6 datagram format: fixed-length 40 byte headerno fragmentation allowed27Network Layer4-28IPv6 Header (Cont)

Priority: identify priority among datagrams in flowFlow Label: identify datagrams in same flow. (concept offlow not well defined).Next header: identify upper layer protocol for data 28Network Layer4-29Transition From IPv4 To IPv6Not all routers can be upgraded simultaneouslyHow will the network operate with mixed IPv4 and IPv6 routers? Tunneling: IPv6 carried as payload in IPv4 datagram among IPv4 routers29Network Layer4-30TunnelingABEFIPv6IPv6IPv6IPv6tunnelLogical view:Physical view:ABEFIPv6IPv6IPv6IPv6CDIPv4IPv4Flow: XSrc: ADest: F

dataFlow: XSrc: ADest: F

dataFlow: XSrc: ADest: F

dataSrc:BDest: EFlow: XSrc: ADest: F

dataSrc:BDest: EA-to-B:IPv6E-to-F:IPv6B-to-C:IPv6 insideIPv4B-to-C:IPv6 insideIPv430Network Layer4-311230111value in arrivingpackets headerrouting algorithmlocal forwarding tableheader valueoutput link01000101011110013221Interplay between routing, forwarding31Network Layer4-32uyxwvz2213112535Graph: G = (N,E)

N = set of routers = { u, v, w, x, y, z }

E = set of links ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }Graph abstractionRemark: Graph abstraction is useful in other network contexts

Example: P2P, where N is set of peers and E is set of TCP connections32Network Layer4-33Graph abstraction: costsuyxwvz2213112535 c(x,x) = cost of link (x,x)

- e.g., c(w,z) = 5

cost could always be 1, or inversely related to bandwidth,or inversely related to congestionCost of path (x1, x2, x3,, xp) = c(x1,x2) + c(x2,x3) + + c(xp-1,xp) Question: Whats the least-cost path between u and z ?Routing algorithm: algorithm that finds least-cost path33Network Layer4-34Routing Algorithm classificationGlobal or decentralized information?Global:all routers have complete topology, link cost infolink state algorithmsDecentralized: router knows physically-connected neighbors, link costs to neighborsiterative process of computation, exchange of info with neighborsdistance vector algorithmsStatic or dynamic?Static: routes change slowly over timeDynamic: routes change more quicklyperiodic updatein response to link cost changes34Network Layer4-35A Link-State Routing AlgorithmDijkstras algorithmnet topology, link costs known to all nodesaccomplished via link state broadcast all nodes have same infocomputes least cost paths from one node (source) to all other nodesgives forwarding table for that nodeiterative: after k iterations, know least cost path to k dest.sNotation:c(x,y): link cost from node x to y; = if not direct neighborsD(v): current value of cost of path from source to dest. vp(v): predecessor node along path from source to vN': set of nodes whose least cost path is definitively known

35Network Layer4-36Dijsktras Algorithm1 Initialization: 2 N' = {u} 3 for all nodes v 4 if v adjacent to u 5 then D(v) = c(u,v) 6 else D(v) = 7 8 Loop 9 find w not in N' such that D(w) is a minimum 10 add w to N' 11 update D(v) for all v adjacent to w and not in N' : 12 D(v) = min( D(v), D(w) + c(w,v) ) 13 /* new cost to v is either old cost to v or known 14 shortest path cost to w plus cost from w to v */ 15 until all nodes in N' 36Network Layer4-37Dijkstras algorithm: exampleStep012345N'uuxuxyuxyvuxyvwuxyvwzD(v),p(v)2,u2,u2,uD(w),p(w)5,u4,x3,y3,yD(x),p(x)1,uD(y),p(y)2,xD(z),p(z) 4,y4,y4,yuyxwvz221311253537Network Layer4-38Distance Vector Algorithm Bellman-Ford Equation (dynamic programming)Definedx(y) := cost of least-cost path from x to y

Then

dx(y) = min {c(x,v) + dv(y) }

where min is taken over all neighbors v of xv38Network Layer4-39Distance vector algorithm (4)Basic idea: Each node periodically sends its own distance vector estimate to neighborsWhen a node x receives new DV estimate from neighbor, it updates its own DV using B-F equation:Dx(y) minv{c(x,v) + Dv(y)} for each node y N39Network Layer4-40Distance Vector Algorithm (5)Iterative, asynchronous: each local iteration caused by: local link cost change DV update message from neighborDistributed:each node notifies neighbors only when its DV changesneighbors then notify their neighbors if necessarywait for (change in local link cost or msg from neighbor)

recompute estimates

if DV to any dest has changed, notify neighbors

Each node:40Network Layer4-41x y zxyz0 2 7fromcost tofromfromx y zxyz0fromcost tox y zxyzcost tox y zxyz710cost to2 0 1 2 0 17 1 0timexz127ynode x tablenode y tablenode z tableDx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} = min{2+0 , 7+1} = 2Dx(z) = min{c(x,y) + Dy(z), c(x,z) + Dz(z)} = min{2+1 , 7+0} = 332 41Network Layer4-42x y zxyz0 2 7fromcost tofromfromx y zxyz0 2 3fromcost tox y zxyz0 2 3fromcost tox y zxyzcost tox y zxyz0 2 7fromcost tox y zxyz0 2 3fromcost tox y zxyz0 2 3fromcost tox y zxyz0 2 7fromcost tox y zxyz710cost to2 0 1 2 0 17 1 02 0 17 1 02 0 13 1 02 0 13 1 02 0 13 1 02 0 13 1 0timexz127ynode x tablenode y tablenode z tableDx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} = min{2+0 , 7+1} = 2Dx(z) = min{c(x,y) + Dy(z), c(x,z) + Dz(z)} = min{2+1 , 7+0} = 342Network Layer4-43Comparison of LS and DV algorithmsMessage complexityLS: with n nodes, E links, O(nE) msgs sent DV: exchange between neighbors onlyconvergence time variesSpeed of ConvergenceLS: O(n2) algorithm requires O(nE) msgsmay have oscillationsDV: convergence time variesmay be routing loopscount-to-infinity problemRobustness: what happens if router malfunctions?LS: node can advertise incorrect link costeach node computes only its own tableDV:DV node can advertise incorrect path costeach nodes table used by others error propagate thru network

43Network Layer4-44Hierarchical Routingscale: with 200 million destinations:cant store all dests in routing tables!routing table exchange would swamp links!

administrative autonomyinternet = network of networkseach network admin may want to control routing in its own networkOur routing study thus far - idealization all routers identicalnetwork flat not true in practice44Network Layer4-45Hierarchical Routingaggregate routers into regions, autonomous systems (AS)routers in same AS run same routing protocolintra-AS routing protocolrouters in different AS can run different intra-AS routing protocolGateway routerDirect link to router in another AS45Network Layer4-463b1d3a1c2aAS3AS1AS21a2c2b1bIntra-ASRouting algorithmInter-ASRouting algorithmForwardingtable3cInterconnected ASesforwarding table configured by both intra- and inter-AS routing algorithmintra-AS sets entries for internal destsinter-AS & Intra-As sets entries for external dests 46Network Layer4-47Example: Setting forwarding table in router 1dsuppose AS1 learns (via inter-AS protocol) that subnet x reachable via AS3 (gateway 1c) but not via AS2.inter-AS protocol propagates reachability info to all internal routers.router 1d determines from intra-AS routing info that its interface I is on the least cost path to 1c.installs forwarding table entry (x,I)3b1d3a1c2aAS3AS1AS21a2c2b1b3cxI47Network Layer4-48Intra-AS Routingalso known as Interior Gateway Protocols (IGP)most common Intra-AS routing protocols:

RIP: Routing Information Protocol

OSPF: Open Shortest Path First

IGRP: Interior Gateway Routing Protocol (Cisco proprietary)48Network Layer4-49RIP ( Routing Information Protocol)distance vector algorithmincluded in BSD-UNIX Distribution in 1982distance metric: # of hops (max = 15 hops)

DCBAuvwxyzdestination hops u 1 v 2 w 2 x 3 y 3 z 2 From router A to subsets:49Network Layer4-50RIP advertisementsdistance vectors: exchanged among neighbors every 30 sec via Response Message (also called advertisement)ech advertisement: list of up to 25 destination nets within ASIf no advertisement heard after 180 sec --> neighbor/link declared deadroutes via neighbor invalidatednew advertisements sent to neighborsneighbors in turn send out new advertisements (if tables changed)

50Network Layer4-51OSPF (Open Shortest Path First)open: publicly availableuses Link State algorithm LS packet disseminationtopology map at each noderoute computation using Dijkstras algorithm

OSPF advertisement carries one entry per neighbor routeradvertisements disseminated to entire AS (via flooding)carried in OSPF messages directly over IP (rather than TCP or UDP51Network Layer4-52OSPF advanced features (not in RIP)security: all OSPF messages authenticated (to prevent malicious intrusion) multiple same-cost paths allowed (only one path in RIP)For each link, multiple cost metrics for different TOS (e.g., satellite link cost set low for best effort; high for real time)integrated uni- and multicast support: Multicast OSPF (MOSPF) uses same topology data base as OSPFhierarchical OSPF in large domains.

52Network Layer4-53Internet inter-AS routing: BGPBGP (Border Gateway Protocol): the de facto standardBGP provides each AS a means to:Obtain subnet reachability information from neighboring ASs.Propagate reachability information to all AS-internal routers.Determine good routes to subnets based on reachability information and policy.allows subnet to advertise its existence to rest of Internet: I am here53Network Layer4-54BGP basicspairs of routers (BGP peers) exchange routing info over semi-permanent TCP connections: BGP sessionsBGP sessions need not correspond to physical links.when AS2 advertises prefix to AS1:AS2 promises it will forward any addresses datagrams towards that prefix.AS2 can aggregate prefixes in its advertisement

3b1d3a1c2aAS3AS1AS21a2c2b1b3ceBGP sessioniBGP session54Network Layer4-55Path attributes & BGP routesadvertised prefix includes BGP attributes. prefix + attributes = routetwo important attributes:AS-PATH: contains ASs through which prefix advertisement has passed: e.g, AS 67, AS 17 NEXT-HOP: indicates specific internal-AS router to next-hop AS. (may be multiple links from current AS to next-hop-AS)when gateway router receives route advertisement, uses import policy to accept/decline.

55Network Layer4-56Why different Intra- and Inter-AS routing ? Policy: Inter-AS: admin wants control over how its traffic routed, who routes through its net. Intra-AS: single admin, so no policy decisions neededScale:hierarchical routing saves table size, reduced update trafficPerformance: Intra-AS: can focus on performanceInter-AS: policy may dominate over performance56Network Layer4-57R1R2R3R4sourceduplicationR1R2R3R4in-networkduplicationduplicatecreation/transmissionduplicateduplicateBroadcast & Multicast Routingdeliver packets from source to group of nodessource duplication is inefficient:source duplication: how does source know recipients?To scale: dont require the source to know all receiversRendezvous problem: how do sources/receivers meet?1. Broadcast and Prune2. Send to a common intermediate node/center

57Network Layer4-58In-network duplicationflooding: when node receives brdcst pckt, sends copy to all neighborsProblems: cycles & broadcast stormcontrolled flooding: node only brdcsts pkt if it hasnt brdcst same packet beforeNode keeps track of pckt ids already brdcstedOr reverse path forwarding (RPF): only forward pckt if it arrived on shortest path between node and sourcespanning treeNo redundant packets received by any node58Network Layer4-59ABGDEcFABGDEcF(a) Broadcast initiated at A(b) Broadcast initiated at DSpanning TreeFirst construct a spanning treeNodes forward copies only along spanning tree59Multicast Routing: Problem StatementGoal: find a tree (or trees) connecting routers having local mcast group members One spanning tree: not all paths between routers usedsource-based trees: different tree from each sender to rcvrsshared-tree: same tree used by all group membersShared treeSource-based trees60Notes:

3.3 Network Layer: Multicast Routing Algorithms 3-9Approaches for building mcast treesApproaches:source-based tree: one tree per sourceshortest path treesreverse path forwardinggroup-shared tree: group uses one treeminimal spanning (Steiner) center-based treeswe first look at basic approaches, then specific protocols adopting these approaches61Notes:

3.3 Network Layer: Multicast Routing Algorithms 3-11Shortest Path Treemcast forwarding tree: tree of shortest path routes from source to all receiversDijkstras algorithm (used in MOSPF where OSPF routers already have a global net view)R1R2R3R4R5R6R7216345irouter with attachedgroup memberrouter with no attachedgroup memberlink used for forwarding,i indicates order linkadded by algorithmLEGENDS: source62Notes:

3.3 Network Layer: Multicast Routing Algorithms 3-12Reverse Path Forwardingif (mcast datagram received on incoming link on shortest path back to center) then flood datagram onto all outgoing links else ignore datagramUsed in DVMPR and PIM-DM that do not have a global net viewrely on routers knowledge of unicast shortest path from it to sendereach router has simple forwarding behavior:63Notes:

3.3 Network Layer: Multicast Routing Algorithms 3-13Reverse Path Forwarding: exampleresult is a source-specific reverse SPTmay be a bad choice with asymmetric linksR1R2R3R4R5R6R7router with attachedgroup memberrouter with no attachedgroup memberdatagram will be forwardedLEGENDS: sourcedatagram will not be forwarded64Notes:

3.3 Network Layer: Multicast Routing Algorithms 3-14Reverse Path Forwarding: pruningforwarding tree contains subtrees with no mcast group membersno need to forward datagrams down subtreeprune msgs sent upstream by router with no downstream group membersR1R2R3R4R5R6R7router with attachedgroup memberrouter with no attachedgroup memberprune messageLEGENDS: sourcelinks with multicastforwardingPPP65Notes:

3.3 Network Layer: Multicast Routing Algorithms 3-15Shared-Tree: Steiner TreeSteiner Tree: minimum cost tree connecting all routers with attached group membersproblem is NP-completeexcellent heuristics existsnot used in practice:computational complexityinformation about entire network neededmonolithic: rerun whenever a router needs to join/leave66Notes:

1. See L. Wei and D. Estrin, A Comparison of multicast trees and algorithms, TR USC-CD-93-560, Dept. Computer Science, University of California, Sept 1993 for a comparison of heuristic approaches.

3.3 Network Layer: Multicast Routing Algorithms 3-16Center-based treessingle delivery tree shared by allone router identified as center of treeto join:edge router sends join-msg addressed to center routerjoin-msg processed by intermediate routers and forwarded towards centerjoin-msg either hits existing tree branch for this center, or arrives at centerpath taken by join-msg becomes new branch of tree for this router67Notes:

1. Its always nice to see a PhD dissertation with impact. The earliest discussion of center-based trees for multicast appears to be D. Wall, Mechanisms for Broadcast and Selective Broadcast, PhD dissertation, Stanford U., June 1980.

3.3 Network Layer: Multicast Routing Algorithms 3-17Center-based trees: an exampleSuppose R6 chosen as center:R1R2R3R4R5R6R7router with attachedgroup memberrouter with no attachedgroup memberpath order in which join messages generatedLEGEND213168Notes:

3.3 Network Layer: Multicast Routing Algorithms 3-18Internet Multicasting Routing: DVMRPDVMRP: distance vector multicast routing protocol, RFC1075flood and prune: RPF, source-based treeRPF tree based on DVMRPs own routing tables constructed by communicating DVMRP routers no assumptions about underlying unicastinitial datagram to mcast group flooded via RPFrouters not wanting group: send upstream prunesoft state: DVMRP router periodically (1 min.) times out prune state [robust]: mcast data again flows down unpruned branchdownstream router: reprune or continue to rcv 69Notes: D. Waitzman, S. Deering, C. Partridge, Distance Vector Multicast Routing Protocol, RFC 1075, Nov. 1988. The version of DVMRP in use today is considerably enhanced over the RFC1075 spec.A more up-to-date work-in-progress defines a version 3 of DVMRP: T. Pusateri, Distance Vector Multicast Routing Protocol, work-in-progress, draft-ietf-idmr-v3-05.ps

3.4 Network Layer: Internet Multicast Routing Algorithms 3-20PIM: Protocol Independent Multicastnot dependent on any specific underlying unicast routing algorithm (works with all)two different multicast distribution scenarios :Dense (PIM-DM):group members densely packed, in close proximity.bandwidth more plentifulSimilar to DVMRP: uses broadcast/pruneSparse (PIM-SM):# networks with group members small wrt # interconnected networksgroup members widely dispersedbandwidth not plentiful70Notes:

a very readable discussion of the PIM architecture is S. Deering, D. Estrin, D. Faranacci, V. Jacobson, C. Liu, L. Wei, The PIM Architecture for Wide Area Multicasting, IEEE/ACM Transactions on Networking, Vol. 4, No. 2, April 1996.D. Estrin et al, PIM-SM: Protocol Specification, RFC 2117, June 1997S. Deering et al, PIM Version 2, Dense Mode Specification, work in progress, draft-ietf-idmr-pim-dm-05.txt PIM is implemented in Cisco routers and has been deployed in UUnet as part of their streaming multimedia delivery effort. See S. LaPolla, IP Multicast makes headway among ISPs, PC Week On-Line, http://www.zdnet.com/pcweek/news/1006/06isp.html

3.4 Network Layer: Internet Multicast Routing Algorithms 3-25PIM - Sparse Modecenter-based approachrouter sends join msg to rendezvous point (RP)intermediate routers update state and forward joinafter joining via RP, router can switch to source-specific treeincreased performance: less concentration, shorter pathsR1R2R3R4R5R6R7joinjoinjoinall data multicastfrom rendezvouspointrendezvouspoint71Notes:

3.4 Network Layer: Internet Multicast Routing Algorithms 3-28PIM - Sparse Modesender(s):unicast data to RP, which distributes down RP-rooted treeRP can extend mcast tree upstream to sourceRP can send stop msg if no attached receiversno one is listening!Issues of choosing the RP!!Use a bootstrap mechanism(advanced topic)R1R2R3R4R5R6R7joinjoinjoinall data multicastfrom rendezvouspointrendezvousPoint (RP)72Notes:

3.4 Network Layer: Internet Multicast Routing Algorithms 3-29