home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #31 / NN_1992_31.iso / spool / comp / sys / isis / 342 < prev    next >
Encoding:
Internet Message Format  |  1992-12-24  |  7.5 KB

  1. Path: sparky!uunet!olivea!spool.mu.edu!think.com!rpi!batcomputer!cornell!ken
  2. From: ken@cs.cornell.edu (Ken Birman)
  3. Newsgroups: comp.sys.isis
  4. Subject: Forwarded comments Re: Notes on IP Multicast option for ISIS
  5. Message-ID: <1992Dec24.162642.27415@cs.cornell.edu>
  6. Date: 24 Dec 92 16:26:42 GMT
  7. Organization: Cornell Univ. CS Dept, Ithaca NY 14853
  8. Lines: 134
  9.  
  10. From: werner@freya.inesc.pt (Werner Vogels)
  11.  
  12. In article <1992Dec22.212230.28572@cs.cornell.edu> you write:
  13.  
  14. |> When will IP mcast be used?
  15. |>    - I plan to require that all (or most) machines using Isis support
  16. |>      the IP Multicast standard, which was developed by Steve Deering at
  17. |>      Stanford and has become part of Solaris 2.1; Steve's code is also
  18. |>      available for many other platforms, but perhaps not as a standard
  19. |>      offering from the vendor.
  20.  
  21. HP does conform the "standard" and DEC (ultrix) has promised to. SGI was the first to
  22. have Multicast IP added to their protocol suite. In principle all BSD 4.4 (or the NET2)
  23. based OS and OS servers all support the same multicast interface. Mach2.5 and the 
  24. mach3.0 ux server both support VMTP and implicitely Multicast IP.
  25.  
  26. |>      The code defines some setsockopt() options: SO_REUSEADDR, IP_MULTICAST_TTL,
  27. |>      IP_ADD_MEMBERSHIP, IP_DROP_MEMBERSHIP.  It also includes a multicast
  28. |>      router, called "mrouted". 
  29.  
  30. You do not need the mrouted to have a full functioning mcastip on your
  31. local area network. Mrouted can be used to route messages between connected subnets
  32. or to build tunnels with other sites that run mcastip. I have done a lot of
  33. experimenting with mrouted and consider it to be a pain to incorporate it into 
  34. a reliable multicast scheme with atomic membership updates. The whole membership 
  35. scheme at the router is not meant to support the same guarantees as we would like to
  36. have. The updates to the membership propagate very slowly. An example for this is
  37. the traffic from the IETF audiocast session that would still arive at INESC even 
  38. minutes after I closed the session. More of the experiences with the mbone show that
  39. you can build a wide area mcastip net but cannot rely on the membership information at
  40. the routers very much. We plan to develop a better routing strategy for reliable
  41. multicast, especially for the MAN environment (several links connected by a high speed,
  42. high bandwith backbone).
  43.  
  44. Also if you allow interconnected subnets you should decided with which scope (ttl)
  45. you want to create groups. There are a number of problems connected to this .....
  46.  
  47. |>      If these are not up, IP multicast use triggers
  48. |>      a point-to-point mechanism slightly but not drastically slower than
  49. |>      the usual Isis UDP scheme.
  50.  
  51. I do not really known if I understand this, but if "these are not up" shouldn't you 
  52. just use the old scheme instead of a new point-to-point scheme.
  53.  
  54. |>    - You will need to have an authorization for "ipmcast" in your isis.rc
  55. |>      file.
  56. |> 
  57. |>    - You will need to specify ISIS_IPMCAST as a flag to isis_remote_init()
  58. |> 
  59. |>    - The group(s) that will use IP multicast should specify PG_IPMCAST as 
  60. |>      an option to pg_join() (clients find out automatically).
  61. |> 
  62. |>    - You will need to specify a range of port numbers dedicated to use by
  63. |>      Isis for IP multicast.  You can decide how many and what base address
  64. |>      Isis should use.  Isis will reserve them as soon as a program specifies
  65. |>      ISIS_IPMCAST.  Ideally, one port per group using PG_IPMCAST, but we
  66. |>      can manage if the number is smaller.  In the limit, you can specify that
  67. |>      just one port be used, but in this case processes will get and discard
  68. |>      some messages not intended for them.
  69.  
  70. With port do you mean UDP port or mcastip ip address? 
  71.  
  72. |>    - Only messages sent in diffusion mode (to the full set of members and
  73. |>      clients) will be multicast.  However, you can overlap groups and in this
  74. |>      way can build up other patterns pretty easily.
  75.  
  76. Personally I think you should have a second selection mechanism so you can still
  77. use mcastip (and hw multicast) to be used in other then diffusion mode.
  78.  
  79. |> How does it work?
  80. |>    - We fragment your message into 4k chunks and stick a small (44 byte)
  81. |>      header on each.  
  82. |> 
  83. |>    - For each group joined using PG_IPMCAST as an option, we allocate an IP
  84. |>      multicast address and register the members and clients.
  85.  
  86. Limited to 64 groups on most modern controllers, and 20 groups per socket. Most
  87. mcastip code make no difference between for example lack of buffer space and lack of
  88. multicast addresses. You will need a management unit (btw like the one we are
  89. developing) that manages your address space more cleanly. If you map group-id to
  90. mcastip address you will soon become exhausted because mcastip will not have the 
  91. controller go to all-mcast mode. You will have to map more groups into one address.
  92.  
  93. We have more applications running (conferencing, etc) that use mcastip, so we can
  94. never be sure that the complete address space at the controller is to be allocated to
  95. the group communication module.
  96.  
  97. Also their are no modules that will exploit the mcast capabilities of fddi, etc.
  98.  
  99. |>    - Members will multicast a packet initially, then retransmit point to point
  100. |>      if some processes NACK or fail to ACK it.
  101.  
  102. I assume one ack per 4k packet or do you ack every packet?
  103.  
  104. |>    - Once received, packets travel the same code path as other Isis packets,
  105. |>      so all the usual Isis ordering properties and so forth hold.
  106. |> 
  107. |> Summary:
  108. |>    - isis_remote_init(..... ISIS_IPMCAST); to start it up
  109. |>    - pg_join(.... , PG_IPMCAST, ....); to enable for a group
  110. |>    - Everything else works as usual, transparently.
  111. |> 
  112. |> From experiments (done, however, with a different version of the code) we
  113. |> expect to see a benefit for groups with more than about 4 members.  However,
  114. |> we have yet to experiment seriously with the new code on Solaris, for
  115. |> technical reasons, so I won't have solid numbers for a little longer.
  116. |> My guess -- just a guess -- is that performance will be fairly flat as
  117. |> a function of group size until groups+clients gets pretty large, probably
  118. |> 40 or 50 or more.  By then, acks coming back may begin to be a serious
  119. |> load on the sender and cause performance to slowly taper off.
  120.  
  121. personally and also from experiments: if you only use mcastip on a local area
  122. network you are better off making your own interface to the network and multicast
  123. addresses, with more and more machines providing the BSD packet filter you can
  124. reasonably standardize this as well. You will get a better performance as soon as
  125. there is more then one receipient. The nit on SunOS is *bad*: do not use it if you
  126. have very performance critical applications.
  127.  
  128. If you use mcastip on different subnets (no tunneling) watch out for inconsistent
  129. behaviour of the mrouted that will cost you performance. Have it go down and come up
  130. again within seconds, it will have to restore its membership tables which will mess-up
  131. your interlink communication completely, you will declare members dead who are
  132. perfectably reachable. If you router will also be used for other purpose, like in
  133. our case for connection to the mbone the state kept at the router is *very* big and
  134. takes some time to recover.
  135.  
  136. The router we are to develop bases its interrouter communication on reliable
  137. group comm methods making it easier to maintain shared state etc and restoring
  138. the state will become much more efficient, etc.
  139.  
  140. -- 
  141. Kenneth P. Birman                              E-mail:  ken@cs.cornell.edu
  142. 4105 Upson Hall, Dept. of Computer Science     TEL:     607 255-9199 (office)
  143. Cornell University Ithaca, NY 14853 (USA)      FAX:     607 255-4428
  144.