{"id":282,"date":"2007-08-04T18:06:00","date_gmt":"2007-08-04T10:06:00","guid":{"rendered":"http:\/\/www.akuadi.org\/?p=8"},"modified":"2007-08-04T18:06:00","modified_gmt":"2007-08-04T10:06:00","slug":"introduction-to-multicast","status":"publish","type":"post","link":"https:\/\/akuadi.org\/life\/blog\/2007\/08\/04\/introduction-to-multicast\/","title":{"rendered":"Introduction To Multicast"},"content":{"rendered":"<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"630\">\n<tbody>\n<tr>\n<td height=\"3572\" valign=\"top\">\n<div align=\"center\">\n<h3 class=\"page_title\">Introduction To Multicast<\/h3>\n<h5>Introduction<\/h5>\n<p align=\"left\">To understand what we are going to talk about, you must              be familiar with how MAC addresses are structured and how they work.              The <a href=\"http:\/\/www.firewall.cx\/mac_addresses.php\" target=\"_blank\" rel=\"noopener\">MAC Addresses<\/a> page is available              to help you learn more about them..<\/p>\n<p align=\"left\">A multicast is similar to a broadcast in the sense that              its target is a number of machines on a network, but not all. Where              a broadcast is directed to all hosts on the network, a multicast is              directed to a group of hosts. The hosts can choose whether they wish              to participate in the multicast group (often done with the Internet              Group Management Protocol), whereas in a broadcast, all hosts are              part of the broadcast group whether they like it or not :). <\/p>\n<p align=\"center\"><img fetchpriority=\"high\" decoding=\"async\" src=\"http:\/\/www.firewall.cx\/pictures\/multicast-intro-1.gif\" height=\"255\" width=\"480\" \/><\/p>\n<p align=\"left\">As you are aware, each host on an Ethernet network has              a unique MAC address, so here&#8217;s the million dollar question: How do              you talk to a group of hosts (our multicast group), where each host              has a different MAC address, and at the same time ensure that the              other hosts, which are not part of the multicast group, don&#8217;t process              the information ? You will soon know exactly how all this works.<\/p>\n<p align=\"left\">To keep things in perspective and make it easy to understand,              we are going to concentrate only on an Ethernet network using the              IP protocol, which is what 80-90 % of home networks and offices use.<\/p>\n<p align=\"left\"><span style=\"color:#ccff00;\"><b>Breaking things down&#8230;<\/b><\/span><\/p>\n<p align=\"left\">In order to explain Multicasting the best I can and              to make it easier for you understand, I decided to break it down into              3 sections:<\/p>\n<p align=\"left\">1) <span style=\"color:#ff6600;\">Hardware\/Ethernet Multicasting<\/span><\/p>\n<p align=\"left\">2) <span style=\"color:#6699ff;\">IP Multicasting<\/span><\/p>\n<p align=\"left\">3) <span style=\"color:#00ff00;\">Mapping IP Multicast to Ethernet              Multicast<\/span> <\/p>\n<p align=\"left\">A typical <span style=\"color:#66ffcc;\">multicast<\/span> on              an Ethernet network, using the TCP\/IP protocol, consists of two parts:              <span style=\"color:#ff6600;\">Hardware\/Ethernet multicast<\/span> and <span style=\"color:#6699ff;\">IP              Multicast<\/span>. Later on I will talk about <span style=\"color:#00ff00;\">Mapping              IP Multicast to Ethernet Multicast<\/span> which is really what happens              with multicasting on our Ethernet network using the TCP\/IP protocol.<\/p>\n<p align=\"left\">The brief diagram below shows you the relationship between              the 3 and how they complete the multicasting model:<\/p>\n<p align=\"center\"><img decoding=\"async\" src=\"http:\/\/www.firewall.cx\/pictures\/multicast-intro-2.gif\" height=\"213\" width=\"425\" \/><\/p>\n<p align=\"left\"><span style=\"color:#ff6600;\"><b>Hardware\/Ethernet Multicasting<\/b><\/span><\/p>\n<p align=\"left\">When a computer joins a multicast group, it needs to              be able to distinguish between normal unicasts (which are packets              directed to one computer or one MAC address) and multicasts. With              hardware multicasting, the network card is configured, via its drivers,              to watch out for particular MAC addresses (in this case, multicast              MAC addresses) apart from its own. When the network card picks up              a packet which has a destination MAC that matches any of the multicast              MAC addresses, it will pass it to the upper layers for further processing.<\/p>\n<p align=\"left\"> And this is how they do it :<\/p>\n<table bg border=\"1\" border cellpadding=\"1\" cellspacing=\"1\" height=\"66\" width=\"100%\" style=\"color:#00cc66;\">\n<tbody>\n<tr>\n<td>Ethernet uses the low-order bit of the high-order octet to distinguish                  conventional unicast addresses from multicast addresses. A unicast                  would have this bit set to <span style=\"color:#ffcc66;\"><span style=\"color:#ff0000;\">ZERO<\/span>                  (<span style=\"color:#ff0000;\">0<\/span>)<\/span>, whereas a multicast would                  be set to <span style=\"color:#ffcc66;\"><span style=\"color:#ff0000;\">ONE<\/span>                  (<span style=\"color:#ff0000;\">1<\/span>)<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p align=\"left\">To understand this, we need to analyse the destination              MAC address of a unicast and multicast packet, so you can see what              we are talking about:<\/p>\n<p align=\"left\">When a normal (unicast) packet is put on the network              by a computer, it contains the Source and Destination MAC address,              found in the 2nd Layer of the OSI model. The following picture is              an example of my workstation (192.168.0.6) sending a packet to my              network&#8217;s gateway (192.168.0.5):<\/p>\n<p align=\"center\"><img decoding=\"async\" src=\"http:\/\/www.firewall.cx\/pictures\/multicast-intro-3.gif\" height=\"41\" width=\"537\" \/><\/p>\n<p align=\"left\">Now let&#8217;s analyse the destination MAC address:<\/p>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.firewall.cx\/pictures\/multicast-intro-4.gif\" height=\"255\" width=\"468\" \/><\/p>\n<p align=\"left\">When my gateway receives the packet, it knows it&#8217;s a              unicast packet as explained in the above picture. <\/p>\n<p align=\"left\">Let&#8217;s now have a look at the MAC address of a multicast              packet. Keep in mind, a multicast packet is not directed to one host              but a number of hosts, so the destination MAC address will not match              the unique MAC address of any computer, but the computers which are              part of the multicast group will recognise the destination MAC address              and accept it for processing.<\/p>\n<p align=\"left\">The following multicast packet was sent from my NetWare              server. Notice the destination MAC address (it&#8217;s a multicast):<\/p>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.firewall.cx\/pictures\/multicast-intro-5.gif\" height=\"37\" width=\"540\" \/><\/p>\n<p align=\"left\">Analysis of a multicast destination MAC address:<\/p>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.firewall.cx\/pictures\/multicast-intro-6.gif\" height=\"255\" width=\"468\" \/><\/p>\n<p align=\"left\">So now you should be able to understand how computers              can differentiate between a normal or unicast packet and a multicast              packet. Again, the destination MAC address <span style=\"color:#6666ff;\">01-00-5E-00-00-05<\/span>              is not the MAC address of a particular host-computer but the MAC address              that can be recognised by computers that are part of the multicast              group. I should also note that you will never find a source address              that is a multicast MAC address, the source address will always be              a real one, to identify which computer the packet came from.<\/p>\n<p align=\"left\">The IEEE group used a special <i><span style=\"color:#00ff00;\">Rule<\/span><\/i>              to determine the various MAC addresses that will be considered for              multicasting. This Rule is covered in the last section of this page,              but you don&#8217;t need to know it now in order to understand Hardware              multicasting. Using this special rule it was determined that <span style=\"color:#99ff66;\">MAC              address 01:00:5E:00:00:05<\/span> will be used for the <span style=\"color:#99ff66;\">OSP<br \/>\nF              protocol, <\/span>which happens to be a routing protocol, and then              this MAC address also maps to an IP address which is analysed in <span style=\"color:#6699ff;\">IP              Multicast<span style=\"color:#ffffff;\">.<\/span><\/span><\/p>\n<p align=\"left\">\n<p align=\"left\"><span style=\"color:#6699ff;\"><b>IP Multicast<\/b><\/span><\/p>\n<p align=\"left\">The <span style=\"color:#6699ff;\">IP Multicast<\/span> is the              second part of multicasting which, combined with the hardware multicasting,              gives us a multicasting model that works for our Ethernet network.              If hardware multicasting fails to work, then the packet will never              arrive at the network layer upon which IP multicasting is based, so              the whole model fails.<\/p>\n<p align=\"left\">With IP multicasting the hardware multicasting MAC address              is mapped to an IP Address. Once Layer 2 (Datalink) picks the multicast              packet from the network (because it recognises it, as the destination              MAC address is a multicast) it will strip the MAC addresses off and              send the rest to the above layer, which is the Network Layer. At that              point, the Network Layer needs to be able to understand it&#8217;s dealing              with a multicast, so the IP address is set in a way that allows the              computer to see it as a multicast datagram. <span style=\"color:#99ffff;\">A              host may send multicast datagrams to a multicast group without being              a member.<\/span><\/p>\n<p align=\"left\">Multicasts are used a lot between routers so they can              discover each other on an IP network. For example, an <span style=\"color:#99ff66;\">Open              Shortest Path First<\/span> (<span style=\"color:#99ff66;\">OSPF<\/span>) router              sends a &#8220;hello&#8221; packet to other <span style=\"color:#99ff66;\">OSPF<\/span>              routers on the network. The <span style=\"color:#99ff66;\">OSPF<\/span> router              must send this &#8220;hello&#8221; packet to an assigned multicast address,              which is <span style=\"color:#ff3300;\">224.0.0.5<\/span>, and the other routers              will respond.<\/p>\n<p align=\"left\"><span style=\"color:#ffffff;\">IP Multicast uses <span style=\"color:#ff3366;\">Class              D <\/span>IP Adresses:<\/span><\/p>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.firewall.cx\/pictures\/multicast-intro-7.gif\" height=\"213\" width=\"425\" \/><\/p>\n<p align=\"left\">Let&#8217;s have a look at an example so we can understand              that a bit better:<\/p>\n<p align=\"left\">The picture below is a screenshot from my packet sniffer,              it shows a multicast packet which was sent from my NetWare server,              notice the destination IP address:<\/p>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.firewall.cx\/pictures\/multicast-intro-8.gif\" height=\"37\" width=\"540\" \/><\/p>\n<p align=\"left\">\n<\/p><\/div>\n<\/td>\n<\/tr>\n<tr>\n<td height=\"326\" valign=\"top\">\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">           <!--DWLayoutTable-->           <\/p>\n<tbody>\n<tr>\n<td height=\"326\" valign=\"top\" width=\"310\">\n<p align=\"left\">The screenshot                  above shows the packet which was captured, it&#8217;s simply displaying                  a quick summary of what was caught. But, when we look on the left                  we see the above packet in much more detail.<\/p>\n<p align=\"left\">You can clearly see the markings I have put at the                  bottom which show you that the destination IP for this packet                  is <span style=\"color:#00ffff;\">IP Address<\/span> <span style=\"color:#ff3300;\">224.0.0.5<\/span>.                  This corresponds to a multicast IP and therefore is a multicast                  packet.<\/p>\n<p align=\"left\">The MAC header also shows a destination MAC address                  of <span style=\"color:#6666ff;\">01-00-5E-00-00-05<\/span> which we analysed                  in the previous section to show you how this is identified as                  a multicast packet at Layer 2 (Datalink Layer).<\/p>\n<\/td>\n<td valign=\"top\" width=\"320\">\n<div align=\"center\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.firewall.cx\/pictures\/multicast-intro-9.gif\" height=\"326\" width=\"272\" \/><\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/td>\n<\/tr>\n<tr>\n<td height=\"1199\" valign=\"top\">\n<p align=\"left\">Some examples of IP multicast            addresses:<\/p>\n<p align=\"left\"><span style=\"color:#66ffcc;\">224.0.0.0 Base Address (Reserved)            [RFC1112,JBP]<br \/>          224.0.0.1 All Systems on this Subnet [RFC1112,JBP]<br \/>          224.0.0.2 All Routers on this Subnet [JBP]<br \/>          224.0.0.3 Unassigned [JBP]<br \/>          224.0.0.4 DVMRP Routers [RFC1075,JBP]<br \/>          224.0.0.5 OSPFIGP OSPFIGP All Routers [RFC2328,JXM1]<\/span><\/p>\n<p align=\"left\">Remember that these IP Addresses have been assigned by            the IEEE !<\/p>\n<p align=\"left\">Now all that&#8217;s left is to explain how the<span style=\"color:#00ccff;\">            IP multicast<\/span> and <span style=\"color:#ff6600;\">MAC multicast<\/span> map            between each other&#8230;<\/p>\n<p align=\"left\"><span style=\"color:#00ff00;\"><b>Mapping IP Multicast to Ethernet            Multicast<\/b> <\/span><\/p>\n<p align=\"left\">The last part of multicast which combines the <span style=\"color:#ff6600;\">Hardware            Multicasting<\/span> and<span style=\"color:#00ccff;\"> IP Multicasting<\/span>            is the Mapping between them. There is a rule for the mapping, and this            is it:<\/p>\n<p align=\"left\"><span style=\"color:#66ff66;\"><i>To map an IP Multicast address            to the corresponding Hardward\/Ethernet multicast address, place the            low-order 23 bits of the IP multicast address into the low-order 23            bits of the special Ethernet multicast address. The rest of the <span style=\"color:#ffff00;\">high-order<\/span>            bits are defined by the IEEE (<span style=\"color:#ffff00;\">yellow colour<\/span>            in the example)<\/i><\/span><\/p>\n<p align=\"left\">The above rule basically determines the Hardware MAC address.            Let&#8217;s have a look at a real example to understand this.<\/p>\n<p align=\"left\">We are going to use <span style=\"color:#ffffff;\"><span style=\"color:#00ccff;\">Multicast            IP Address 224.0.0.5<\/span><\/span> &#8211; a multicast for the OSPF routing            protocol. The picture below shows us the analysis of the IP address            in binary so we can clearly see all the bits:<\/p>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.firewall.cx\/pictures\/multicast-intro-10.gif\" height=\"383\" width=\"468\" \/><\/p>\n<p align=\"left\">It might seem a bit confusing at first, but let&#8217;s break            it down:<\/p>\n<p align=\"left\">We have an IP Address of 224.0.0.5, this is then converted            into binary so we can clearly see the mapping of the 23 bits to the            MAC address of the computer. The MAC Address part which is in <span style=\"color:#ffff00;\">yellow<\/span>            has been defined by the IEEE group. So the <span style=\"color:#ffff00;\">yellow<\/span>            and <span style=\"color:#ff00ff;\">pink<\/span> line make the one MAC Address            as shown in binary mode, then we convert it from binary to hex and that&#8217;s            about it !<\/p>\n<p align=\"left\"><span style=\"color:#00ff00;\"><b>NOTE<\/b><\/span><\/p>\n<p align=\"left\">You should keep in mind that multicast routers should            not forward any multicast datagram with destination addresses in the            following <span style=\"color:#00ff00;\">224.0.0.0<\/span> and <span style=\"color:#00ff00;\">224.0.0.255<\/span>.            The next page (multicasting list) gives a bit more information on this.<\/p>\n<p align=\"left\">This just about does it for multicasting !<\/p>\n<p><\/p>\n<p align=\"left\"><\/p>\n<p align=\"left\"><span style=\"font-weight: bold;\">Source &amp; Credit to<\/span> : <a href=\"http:\/\/www.fi\nrewall.cx\/\" target=\"_blank\" rel=\"noopener\">http:\/\/www.firewall.cx\/<\/a> <\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Introduction To Multicast Introduction To understand what we are going to talk about, you must be familiar with how MAC addresses are structured and how they work. The MAC Addresses page is available to help you learn more about them.. A multicast is similar to a broadcast in the sense that its target is a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-282","post","type-post","status-publish","format-standard","hentry","category-data-transmissions"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/akuadi.org\/life\/wp-json\/wp\/v2\/posts\/282","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/akuadi.org\/life\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/akuadi.org\/life\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/akuadi.org\/life\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/akuadi.org\/life\/wp-json\/wp\/v2\/comments?post=282"}],"version-history":[{"count":0,"href":"https:\/\/akuadi.org\/life\/wp-json\/wp\/v2\/posts\/282\/revisions"}],"wp:attachment":[{"href":"https:\/\/akuadi.org\/life\/wp-json\/wp\/v2\/media?parent=282"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/akuadi.org\/life\/wp-json\/wp\/v2\/categories?post=282"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/akuadi.org\/life\/wp-json\/wp\/v2\/tags?post=282"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}