brescia@CCV.BBN.COM.UUCP (04/03/87)
Do you have a concrete suggestion on how to manage the multicast group? How about the following (summary: manage by czar). The goal is to completely eliminate use of the broadcast address. TCP/IP implementations may be overusing this feature, between ARP, RWHO, etc. Go to the ethernet number czar and get two (2) groups of 65536 (2^^16) multicast addresses. By that, I mean the high order 32 bits are assigned by the czar, and the low 16 bits are ours to play with. Call the first group <ether-link> and the second group <ip-port>. These become well know, and wired in the programs, much like 255.255.255.255.255.255 is today. The first group, <ether-link>, is the contact address for all hosts which handle 'broadcast' for a particular ether link (message type). Thus ARP, instead of polluting all the hosts in the net, would send to the address <ether-link>.8.6 (0x0806 is the number assigned to the address resolution protocol). The second group, <ip-port> is the set of addresses for IP broadcast protocols, and subdivided into one byte of IP protocol (e.g. UDP, 17), and one byte of well-known-port (e.g. RWHO, 550 (oops, well, you get the idea). While this idea is a bit half-baked, it should serve to move host and gateway impementations to independence from broadcasts.
deering@PESCADERO.STANFORD.EDU.UUCP (04/04/87)
The goal is to completely eliminate use of the broadcast address. TCP/IP implementations may be overusing this feature, between ARP, RWHO, etc. Hear! hear! At the moment, if you want to use IP on an Ethernet, you must listen to Ethernet broadcasts, for the sake of ARP. Here at Stanford, that means you get to receive and discard packets broadcast for RWho, Reverse ARP, RIP, TFTP, Time, Domain Name lookups, Pup name lookups, BOOTP, ND, Pup routing, XNS routing,... and whatever new broadcast protocol was invented today. In RFC988, I propose a way to manage multicast addresses for IP-based applications. I suggest that the number czar should allocate well-known IP multicast address, rather than Ethernet multicast addresses, and that there should be a standard mapping from IP to local network multicast addresses for each type of local network. As for ARP, I think ARP-for-IP should use a different Ethernet multicast address than ARP-for-Chaos or ARP-for-whatever, even though they use the same Ether-type. And, of course, Reverse ARP should use different addresses than ARP. To phase in multicast-based ARP, you could (during the phase-in period) listen to both the broadcast address and the multicast address. When sending an ARP request, use the multicast address first, then broadcast if you don't get a reply. Karen Lam of BBN has extended the 4.3bsd UNIX IP code to support RFC988-style multicasting, on top of which I have implemented a multicast version of Berkeley's rwho daemon. This code (both Karen's and mine) is running successfully at a couple of test sites and I hope it will soon be made available for wider distribution to those who wish to experiment with IP multicasting. I would appreciate any feedback on RFC988. I would also like to hear of any other work going on in the area of internetwork multicasting. In particular, is the x3s33 committee considering internetwork multicast addressing and routing? Steve Deering
hwb@MCR.UMICH.EDU.UUCP (04/05/87)
You have to watch out, though. Most interfaces I know of only support a limited set of multicast addresses (DEQNAs, I think, just have a table for fourteen or so addresses in general). You don't really want to end up having to listen to each and every packet in a multiprotocol gateway, just because your multicast address table in the EThernet device overflows. -- Hans-Werner
DCP@QUABBIN.SCRC.SYMBOLICS.COM.UUCP (04/06/87)
As I think some people have already tried to state, ** There is now standard for multicast addressing **. The only thing the blue Ethernet book says is that multicast addresses exist and here's what they look like. It does not say what functinality implementors of hardware interfaces should provide. It doesn't give any hints if implementations should allow filters on the top 24 bits, or the bottom 8 bits, or anything. Therefore, what Interlan does is different than what 3Com does which is different than what DEC does which is different.... Please don't go inventing ideas that work well on only one type of interface. I also suggest people separate network level packets like ARP from protocol like packets like RWHO, TFTP and Time. They are very different and you may find that the "solution" for each is different. I'm against adding IP-specific things to the handling of ARP. ARP is blatently non-IP specific (non-anything specific for that matter) and I fear putting in non-modular hooks between the layers will burden multi-protocol operatins systems at the expense of single-protocol systems. Additionally, it isn't easy to extend ARP to be Ethernet specific (e.g., have ARP-for-IP and ARP-for-CHAOS) since ARP doesn't know anything about Ethernet nor about IP and wouldn't know what to do if you told it. I conjecture that if there are excessive ARP packets on your cable, than one of two things is happening: Some station's cache isn't big enough (simple enough to solve), or some station isn't responding. XNS, Pup and Chaos routing present a constant (though supposedly low frequency) stream of broadcast packets. Multicast would probably be a good thing here, if we could figure out how multicast should work. RWho in my opinion should be flushed. It is an unsolicited user-level protocol. Time is (or should be) a solicited user-level protocol. I'd be surprised if it really caused excessive burden. Domain Name lookups are broadcast? New one on me. How often does BOOTP really happen? If the BOOTP protocol isn't able to latch on to the server address directly, I suggest the BOOTP protocol be changed to do so. A PDP-11 netboot protocol I wrote 5 years ago did indeed broadcast the initial request and then latched onto the server. Everybody is burdened with one, perhaps two, packets and then never hears from the booter again.