Schedule of Class Meeng

Mul$media  Networking  

  #7  IP  Mul$cast   Semester  Ganjil  2012   PTIIK  Universitas  Brawijaya  

  

Schedule  of  Class  Mee$ng  

1.

    Introduc$on     2.

    Applica$ons  of  MN   3.

    Requirements  of  MN   4.

    Coding  and   Compression  

  5.

    RTP   6.   IP  Mul$cast   7.

    IP  Mul)cast  (cont’d)    

  8.  Overlay  Mul$cast  

  9.  CDN:  Solu$ons  

  10. CDN:  Case  Studies  

  11. QoS  on  the  Internet:   Constraints  

  12. QoS  on  the  Internet:   Solu$ons  

  13. Discussion   14.

   Summary  

  

Today’s  Outline  

  • IP  Mul$cast    
    • –  How  to  receive  mul$cast  traffic?  
    • –  How  to  send  mul$cast  traffic?  
    • –  How  to  reach  all  mul$cast  receivers?  

  • Mul$cast  Distribu$on  Tree  
    • –  source-­‐based  tree  
    • –  group-­‐shared  tree  

  • IP  Mul$cast  Protocols  
    • –  PIM-­‐SM  (de-­‐facto)  

  IP  Mul$cast  Rou$ng  

  Delivering  Data:     Unicast  vs  Mul$cast  

  10  flows     1  flows     of  the  same  packet   of  a  packet   sender   sender  

  Mul$cast   Unicast  

  

Mul$cast  vs  Unicast  Data  Delivery  

  • Unicast  
    • –  routers  forward  data  to  the  des$na$on  

  • Mul$cast  

  and  copy  when  necessary ,  data   to   all  listeners  

  • –  routers  forward,  

Delivering  Data:  Unicast  

  Y

  X Z W

  V D C B A

Delivering  Data:  Mul$cast  

  Y

  X Z W

  V D C B A Delivering  Data:  Mul$cast  

  A B

  Source  only   sends  a  copy  of  

  W

  data  

  V Y D C

  X Z Delivering  Data:  Mul$cast  

  Y

  X Z W

  V D C B A

  Source  only   sends  a  copy  of   data   A  router  copies   packets  when   necessary   Delivering  Data:  Mul$cast  

  Y

  X Z W

  V D C B A

  Source  only   sends  a  copy  of   data   A  router  copies   packets  when   necessary  

  Packets  sent  to  a  link   are  received  by  all   listeners  on  the  link  

  

Mul$cast  Address  

  • Mul$cast  address    
    • –  is  for  a  set  of  interfaces  
    • –  can  only  be  used  as  the  Des$na$on  of  IP  packets  

  • A  mul$cast  address    
    • –  is  also  called  a  mul$cast  group  

  • Mul$cast  address  space  
    • –  IPv6:  ff00::/8    
    • –  IPv4:  224.0.0.0/4

  Mul$cast   Router   Sender     host  

  

Mul$cast  Protocols  

  Receiver     host   Join/Leave   request  

  Query   Mul$cast   Router  

  • Host-­‐to-­‐Router  Protocols  
    • –  IGMPv1,  IGMPv2,  IGMPv3,  MLDv1,  MLDv2  

  • Router-­‐to-­‐Router  Protocols  
    • –  DVMRP,  MOSPF,  CBT,  PIM-­‐DM,  PIM-­‐SM,  PIM-­‐SSM  

  

How  to  Send  Mul$cast  Traffic?  

  • •  Just  send  traffic  des$ned  to  a  certain  mul$cast  

    group  
    • –  Mul$cast  source  doesn’t  have  to  listen  to  any   mul$cast  group  

    >Hop  Limit  and  Scope  determine  how  far  a   mul$cast  packet  can  travel  
  • Routers  handle  what  to  do  with  the  mul$cast   traffic  

  Sending  Mul$cast  Traffic  

  Y

  X Z W

  V D C B A

  Mul$cast  packet   src  C  :  dst  G  

  

How  to  Receive  Mul$cast  Traffic?  

  • A  host  states  its  inten$on  to  receive  traffic  des$ned  to  a   certain  mul$cast  address  
    • –  Mul$cast  Listener  Discovery  (MLD)  for  IPv6  
    • –  Internet  Group  Management  Protocol  (IGMP)  for  IPv4  

  • Host  becomes  a  receiver/listener  for  the  mul$cast  group  
  • How  the  routers  know  there  are  mul$cast  receivers/listeners?    
    • – Routers  query  local  networks  to  

    Host  membership  query:     discover  which  groups  have  members   Hosts  report  each  group  (e.g.,  

  • mul$cast  addr)  to  which  belong,  by  broadcast  on  net  

    interface  from  which  query  was  received  

    Host  membership  report:  

Becoming  a  Mul$cast  Listener  

  Y

  X Z W

  V D C B A Becoming  a  Mul$cast  Listener  

  A

MLD(*,G):   A  listens  to  group  G  

  B W

  V Y D C

  X Z Becoming  a  Mul$cast  Listener  

  A

MLD(*,G):   A  listens  to  group  G  

  B W

  V Y D C

  X Z

How  to  Reach  All  Listeners?  

  Y

  X Z W

  V D C B A

  

Mul$cast  Rou$ng  Protocol  

  • Build  mul$cast  tree  between  a  source  to  all   listeners  
  • Mul$cast  traffic  flows  along  the  tree  
  • Router  knows  to  which  interfaces  a  mul$cast   packet  should  be  forwarded  
    • –  Mul$cast  forwarding  

  Mul$cast  Distribu$on  Tree  

  Y

  X Z W

  V D C B A

  Leaf/Last-hop router Root/First-­‐hop   router  

  

Mul$cast  Distribu$on  Tree  

  • Source-­‐based  Tree  
    • –  Each  mul$cast  source  is  root  
    • –  Op$mal  tree  (shortest  hop,  (and  delay))  

  • Group-­‐shared  Tree  
    • –  Rooted  at  a  Rendezvous  Point  
    • –  Likely  to  be  non-­‐op$mal    

Source-­‐based  Tree  

  Y

  X Z W

  V D C B A

Source-­‐based  Tree  

  Y

  X Z W

  V D C B A

Source-­‐based  Tree  

  Y

  X Z W

  V D C B A Group-­‐shared  Tree   Root

  A B W

RP  

  V Y D C

  X Z Group-­‐shared  Tree   Root

  A B W

RP  

  V Y D C

  X Z Group-­‐shared  Tree   Root

  A B W

RP  

  V Y D C

  X Z

  

Mul$cast  Rou$ng  Protocol  

  • Dense  Mode  
    • –  DVMRP  (Distance  Vector  Mul$cast  Rou$ng   Protocol)  
    • –  PIM-­‐DM  (Protocol  Independent  Mul$cast  -­‐  Dense   Mode)  

  • Sparse  Mode  
    • –  CBT  (Core  Based  Tree)  
    • –  PIM-­‐SM  (Protocol  Independent  Mul$cast  –  Sparse   Mode)  

  

DVMRP  

  • periodically  

    Flood-­‐and-­‐prune  

  • Flood:  routers  forward  packets  to  all   interfaces  
  • Prune:  routers  explicitly  refuse  mul$cast   traffic  
  • Suites  networks  with  many  receivers   compared  to  #routers  

  

PIM-­‐SM  

  • Sparse  mode  mul$cast  rou$ng  protocol  

  explicit  Join  and  Prune  

  • –  uses  
  • –  small  #receivers  compared  to  #routers  
    • Uses  the  available  rou$ng  protocol  to   populate  rou$ng  table  

  • –  Protocol  independent  
    • de-­‐facto  mul$cast  rou$ng  protocol  

  

PIM-­‐SM  (How  it  works?)  

  • Phase  1:  Rendezvous  Point  Tree  (RPT)  
    • –  Shared  tree  rooted  at  Rendezvous  Point  (RP)  
    • –  (*,G)  Join  from  leaf  routers  
    • –  Senders  use  PIM  Register  messages  

  • Phase  2:  Register  Stop  
    • –  RP  sends  (S,G)  Join  
    • –  PIM  Register  messages  are  stopped  
    • –  Mul$cast  flows  na$vely  from  source  

  • Phase  3:  Shortest  Path  Tree  (SPT)  
    • –  (S,G)  Join  from  leaf  routers  
    • –  Mul$cast  flows  using  the  shortest  path  from  source  to  listeners  

  PIM-­‐SM:  Ini$al  State  

  Y

  X Z W

  V D C B A

  RP   PIM-­‐SM  Phase  1:  Rendezvous  Point   Tree  (RPT)

  Y

  X Z W

  V D C B A

  RP   MLD  (*,G)   PIM-­‐SM  Phase  1:  RPT  

RP  

  Y

  X Z W

  V D C B A

  MLD  (*,G)   Join  (*,G)  

  PIM-­‐SM  Phase  1:  RPT  

RP  

  Y

  X Z W

  V D C B A

  MLD  (*,G)   Join  (*,G)   Join  (*,G)  

  PIM-­‐SM  Phase  1:  RPT  

  Y

  X Z W

  V D C B A

  RP   MLD  (*,G)   PIM-­‐SM  Phase  1:  RPT  

RP  

  Y

  X Z W

  V D C B A

  MLD  (*,G)   (C,G)  

  PIM-­‐SM  Phase  1:  RPT  

RP  

  Y

  X Z W

  V D C B A

  MLD  (*,G)   (C,G)   PIM  Register   PIM-­‐SM  Phase  2:  Register-­‐Stop  

RP  

  Y

  X Z W

  V D C B A

  MLD  (*,G)   (C,G)  

  Join  (C,G)   PIM-­‐SM  Phase  2:  Register-­‐Stop  

RP  

  Y

  X Z W

  V D C B A

  MLD  (*,G)   (C,G)  

  Join  (C,G)   Join  (C,G)   PIM-­‐SM  Phase  2:  Register-­‐Stop  

RP  

  Y

  X Z W

  V D C B A

  MLD  (*,G)   (C,G)   PIM-­‐SM  Phase  2:  Register-­‐Stop  

RP  

  Y

  X Z W

  V D C B A

  MLD  (*,G)   (C,G)   PIM-­‐SM  Phase  2:  Register-­‐Stop  

RP  

  Y

  X Z W

  V D C B A

  MLD  (*,G)   (C,G)   PIM-­‐SM  Phase  3:  Shortest  Path  Tree   (SPT)  

RP  

  Y

  X Z W

  V D C B A

  MLD  (*,G)   (C,G)  

  Join  (C,G)   PIM-­‐SM  Phase  3:  Shortest  Path  Tree   (SPT)  

RP  

  Y

  X Z W

  V D C B A

  MLD  (*,G)   (C,G)  

  PIM-­‐SM  Phase  3:  SPT  

RP  

  Y

  X Z W

  V D C B A

  MLD  (*,G)   (C,G)  

  Prune  (C,G,rpt)  

  PIM-­‐SM  Phase  3:  SPT  

RP  

  Y

  X Z W

  V D C B A

  MLD  (*,G)   (C,G)  

  Prune  (C,G,rpt)   Prune  (C,G,rpt)  

  PIM-­‐SM  Phase  3:  SPT  

RP  

  Y

  X Z W

  V D C B A

  MLD  (*,G)   (C,G)  

  

PIM-­‐SM  Review  

  • Phase  1:  Rendezvous  Point  Tree  (RPT)  
    • –  Shared  tree  rooted  at  Rendezvous  Point  (RP)  
    • –  (*,G)  Join  from  leaf  routers  
    • –  Senders  use  PIM  Register  messages  

  • Phase  2:  Register  Stop  
    • –  RP  sends  (S,G)  Join  
    • –  PIM  Register  messages  are  stopped  
    • –  Mul$cast  flows  na$vely  from  source  

  • Phase  3:  Shortest  Path  Tree  (SPT)  
    • –  (S,G)  Join  from  leaf  routers  
    • –  Mul$cast  flows  using  the  shortest  path  from  source  to  listeners  

  

Designated  Router  

  • A  DR  is  elected  among  PIM  routers  on  a  link  
    • –  DR  priority  
    • –  DR  IP  address  

  • •  DR  register-­‐encapsulates  mul$cast  traffic  from  

    sources  on  its  link  

  

Rendezvous  Point  

  • Every  mul$cast  router  within  a  PIM  domain   must  be  able  to  map  a  mul$cast  group  to  the   same  RP  
  • Methods:  
    • –  Sta$c  
    • –  Dynamic,  via  PIM  Bootstrap  and  RP  Discovery  

  

PIM  Bootstrap  and  RP  Discovery  

  • A  router  adver$ses  itself  as  BSR-­‐candidate  
  • BSR  elected  based  on  priority  
  • Candidate-­‐RP  adver$ses  itself  to  BSR  
  • •  BSR  computes  RP-­‐set  and  floods  RP-­‐set  to  PIM  

    domain  
    • –  RP-­‐set:  the  collec$on  of  all  group-­‐to-­‐RP  mappings   known  to  a  router    

  

Mul$cast  Forwarding  State  

  • Routers  keep  mul$cast  forwarding  state  for   each  group  
    • –  Join  
    • –  Pruned  

  • State  structure  
    • –  (S,  G)  
    • –  Outgoing  interfaces  

  

Mul$cast  Forwarding  

  • Do  not  forward  to  the  incoming  interface  
  • Does  the  packet  come  from  the  correct   interface?  
    • –  Reverse  Path  Forwarding  

  • Mul$cast  router  forwards  a  packet  to   outgoing  interface s    

  

Reverse  Path  Forwarding  

  • A  router  forwards  a  packet  only  if  received   from  the  upstream  interface  to  the  source  
  • RPF  Check  
    • –  Check  the  source  address  of  mul$cast  packets   against  rou$ng  table  
    • –  If  arrived  on  the  interface  to  reach  the  source   address,  RPF  check  passes  
    • –  Otherwise,  RPF  check  fails  

  RPF  Check  Illustra$on   OI   OI  

  E0   E1   E3   E2  

  Rou$ng  Table   S is via R R is on E0 (S,G)  

  RPF  Check   

    (S,G)   RPF  Check  

    

  (S,G)  =  src:  S     dst:  mul$cast  group  G