Review r The Internet IP Protocol Datagram format

































- Slides: 33

Review r The Internet (IP) Protocol 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 m Some slides are in courtesy of J. Kurose and K. Ross

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 with TCP? r 20 bytes of TCP r 20 bytes of IP r = 40 bytes + app layer overhead 32 bits ver head. type of len service length fragment 16 -bit identifier flgs offset upper time to Internet layer live checksum total datagram length (bytes) for fragmentation/ reassembly 32 bit source IP address 32 bit destination IP address Options (if any) data (variable length, typically a TCP or UDP segment) E. g. timestamp, record route taken, specify list of routers to visit.

Overview r BGP r Multicast Routing Some slides are in courtesy of J. Kurose and K. Ross

Internet inter-AS routing: BGP r BGP (Border Gateway Protocol): the de facto standard r BGP provides each AS a means to: 1. 2. 3. Obtain subnet reachability information from neighboring ASs. Propagate the reachability information to all routers internal to the AS. Determine “good” routes to subnets based on reachability information and policy. r Allows a subnet to advertise its existence to rest of the Internet: “I am here”

BGP basics r Pairs of routers (BGP peers) exchange routing info over semi- permanent TCP conctns: BGP sessions r Note that BGP sessions do not correspond to physical links. r When AS 2 advertises a prefix to AS 1, AS 2 is promising it will forward any datagrams destined to that prefix towards the prefix. m AS 2 can aggregate prefixes in its advertisement 3 c 3 a 3 b AS 3 1 a AS 1 2 a 1 c 1 d 1 b 2 c AS 2 2 b e. BGP session i. BGP session

Distributing reachability info r With e. BGP session between 3 a and 1 c, AS 3 sends prefix reachability info to AS 1. r 1 c can then use i. BGP do distribute this new prefix reach info to all routers in AS 1 r 1 b can then re-advertise the new reach info to AS 2 over the 1 b-to-2 a e. BGP session r When router learns about a new prefix, it creates an entry for the prefix in its forwarding table. 3 c 3 a 3 b AS 3 1 a AS 1 2 a 1 c 1 d 1 b 2 c AS 2 2 b e. BGP session i. BGP session

AS Numbers (ASNs) ASNs are 16 bit values. 64512 through 65535 are “private” • • Genuity: 1 MIT: 3 JANET: 786 UC San Diego: 7377 AT&T: 7018, 6341, 5074, … UUNET: 701, 702, 284, 12199, … Sprint: 1239, 1240, 6211, 6242, … … ASNs represent units of routing policy

How Many ASNs are there today? Thanks to Geoff Huston. http: //bgp. potaroo. net on October 24, 2003 15, 981

How Many ASNs are there today? 18, 217 Thanks to Geoff Huston. http: //bgp. potaroo. net on October 26, 2004

How many prefixes today? 154, 894 Note: numbers actually depends point of view… Thanks to Geoff Huston. http: //bgp. potaroo. net on October 24, 2003

How many prefixes today? 179, 903 Note: numbers actually depends point of view… Thanks to Geoff Huston. http: //bgp. potaroo. net on October 26, 2004

Path attributes & BGP routes r When advertising a prefix, advert includes BGP attributes. m prefix + attributes = “route” r Two important attributes: m AS-PATH: contains the ASs through which the advert for the prefix passed: AS 67 AS 17 m NEXT-HOP: Indicates the specific internal-AS router to next-hop AS. (There may be multiple links from current AS to next-hop-AS. ) r When gateway router receives route advert, uses import policy to accept/decline.

ASPATH Attribute AS 1129 135. 207. 0. 0/16 AS Path = 1755 1239 7018 6341 135. 207. 0. 0/16 AS Path = 1239 7018 6341 AS 1239 Sprint AS 1755 135. 207. 0. 0/16 AS Path = 1129 1755 1239 7018 6341 Ebone AS 12654 AS 6341 AT&T Research 135. 207. 0. 0/16 Prefix Originated RIPE NCC RIS project 135. 207. 0. 0/16 AS Path = 7018 6341 AS 7018 135. 207. 0. 0/16 AS Path = 6341 Global Access 135. 207. 0. 0/16 AS Path = 3549 7018 6341 AT&T 135. 207. 0. 0/16 AS Path = 7018 6341 AS 3549 Global Crossing

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!

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

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 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 r Difference from Broadcast m Deliver packets from source to all other nodes r Question: how to achieve multicast Multicast via unicast r source sends N unicast datagrams, one addressed to each of N receivers routers forward unicast datagrams multicast receiver (red) not a multicast receiver (red)

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 Multicast routers (red) duplicate and forward multicast datagrams participate in multicast, making copies of packets as needed and forwarding towards multicast receivers

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 128. 59. 16. 12 128. 119. 40. 186 multicast group 226. 17. 30. 197 128. 34. 108. 63 128. 34. 108. 60 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 groups q class D Internet addresses reserved for multicast: q host group semantics: anyone can “join” (receive) multicast group o anyone can send to multicast group o no network-layer identification to hosts of members q needed: infrastructure to deliver mcast-addressed datagrams to all hosts that have joined that multicast group o

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

Multicast Routing: Problem Statement r Goal: find a tree (or trees) connecting routers having local mcast group members m m m tree: not all paths between routers used source-based: different tree from each sender to rcvrs 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

Shortest Path Tree r mcast forwarding tree: tree of shortest path routes from source to all receivers m Dijkstra’s algorithm S: source LEGEND R 1 1 2 R 4 R 2 3 R 3 router with attached group member 5 4 R 6 router with no attached group member R 5 6 R 7 i link used forwarding, i indicates order link added by algorithm

Reverse Path Forwarding q rely on router’s knowledge of unicast shortest path from it to sender q each router has simple forwarding behavior: if (mcast datagram received on incoming link on shortest path back to sender) then flood datagram onto all outgoing links else ignore datagram

Reverse Path Forwarding: example S: source LEGEND R 1 R 4 router with attached group member R 2 R 5 R 3 R 6 R 7 router with no attached group member datagram will be forwarded datagram will not be forwarded • result is a source-specific reverse SPT – may be a bad choice with asymmetric links

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 LEGEND S: source R 1 router with attached group member R 4 R 2 P R 5 R 3 R 6 P R 7 P router with no attached group member prune message links with multicast forwarding

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 R 6 chosen as center: LEGEND R 1 3 R 2 router with attached group member R 4 2 R 5 R 3 1 R 6 R 7 1 router with no attached group member path order in which join messages generated