Multicasting

From Computing and Software Wiki

(Difference between revisions)
Jump to: navigation, search
m (References)
m (Disadvantages and Solutions)
 
(48 intermediate revisions not shown)
Line 1: Line 1:
-
Multicasting is a type of internet addressing system where only interested receivers are sent the requested information.  This was created to be a more efficient means of broadcasting where information would be sent to every node in the network.  Multicasting uses the most efficient routes to transfer the data and only copies the information being sent when a fork in the route occurs.  Prior to multicasting, if a user needed to send the same data to N users, the user would need to copy that data N times and send it to each receiver.  This creates a high amount of strain on servers, as well as large amounts of traffic over the network.  Multicasting however needs only one transmission of this data, and will optimize the path that the data takes to reach each desired user.
+
Multicasting is a type of [http://en.wikipedia.org/wiki/Internet_address internet addressing] system where only interested receivers are sent the requested information.  This was created to be a more efficient means of [http://en.wikipedia.org/wiki/Broadcast_address broadcasting] and [http://en.wikipedia.org/wiki/Unicast unicasting] where information would be sent to every node in the [http://en.wikipedia.org/wiki/Computer_network network] or sent multiple times, respectively.  Multicasting uses the most efficient routes to transfer the data and only copies the information being sent when a fork in the route occurs.  Prior to multicasting, if a user needed to send the same data to N users, the user would need to copy that data N times and send it to each receiver.  This creates a high amount of strain on [http://en.wikipedia.org/wiki/Server_(computing) servers], as well as large amounts of traffic over the network.  Multicasting however needs only one transmission of this data, and will optimize the path that the data takes to reach each desired user.
Line 5: Line 5:
== Different Types of IP Addressing ==
== Different Types of IP Addressing ==
===Unicast===
===Unicast===
-
[[Image:Unicast.jpg|120 px|thumb|Unicast addressing]]Unicast addressing is the most common form of sending datagrams to other hosts on a network. It refers to sending information packets from one point to another point(one-to-one connection). Some applications that use unicast addressing are http and ftp, among others.
+
[[Image:Unicast.jpg|120 px|thumb|Unicast addressing]][http://en.wikipedia.org/wiki/Unicast Unicast] addressing is the most common form of sending [http://en.wikipedia.org/wiki/Datagram#Packets_vs._datagrams datagrams] to other [http://en.wikipedia.org/wiki/Host_computer hosts] on a network. It refers to sending information packets from one point to another point(one-to-one connection). Some applications that use unicast addressing are http and ftp, among others.
Line 16: Line 16:
===Broadcast===
===Broadcast===
-
[[Image:Broadcast.jpg|120 px|thumb|Broadcasting addressing]]Broadcasting is the type of IP addressing where the sender will send a piece of data to all nodes connected to a network. While only one piece of data is being sent, there is no control over who receives it, and so this will place a huge strain on any network.
+
[[Image:Broadcast.jpg|120 px|thumb|Broadcasting addressing]][http://en.wikipedia.org/wiki/Broadcast_address Broadcasting] is the type of IP addressing where the sender will send a piece of data to all nodes connected to a network. While only one piece of data is being sent, there is no control over who receives it, and so this will place a huge strain on any network.
Line 40: Line 40:
===Anycast===
===Anycast===
-
In the anycast IP addressing scheme, the closest appropriate server is located and the packet is sent to it. The appropriate server will offer a service that the client needs, and so if multiple servers offer this same service, the packet can go to 'any' of these servers(however the closest server is deemed the most appropriate). This is where the name anycasting is derived from. Anycasting is advantageous because it simplifies the task of locating servers.
+
In the [http://en.wikipedia.org/wiki/Anycast anycast] IP addressing scheme, the closest appropriate server is located and the packet is sent to it. The appropriate server will offer a service that the [http://en.wikipedia.org/wiki/Client_computer client] needs, and so if multiple servers offer this same service, the packet can go to 'any' of these servers(however the closest server is deemed the most appropriate). This is where the name anycasting is derived from. Anycasting is advantageous because it simplifies the task of locating servers.
== How Multicasting Works ==
== How Multicasting Works ==
-
Multicasting is an intrinsically complex technology. This fact is still a main reason why it has not been adopted by every company that deals with large network systems. Broadcasting and unicasting however are relatively easy to implement and so they are chosen over multicasting despite their lack of efficiency.
+
Multicasting is an intrinsically complex technology. This fact is still a main reason why it has not been adopted by every company that deals with large network systems. [http://en.wikipedia.org/wiki/Broadcast_address Broadcasting] and [http://en.wikipedia.org/wiki/Unicast unicasting] however are relatively easy to implement and so they are chosen over multicasting despite their lack of efficiency.
-
At the msot basic level, multicasting can only be achieved with communication between the source and the destination. A source and receiver will both use a multicast group IP Address to communicate through the network to enable the transmission of the data that is intended to be sent. The source will put this address within the datagram being sent and the receiver will inform the network that they want to receive whatever is sent to that multicast group address.  
+
At the most basic level, multicasting can only be achieved with communication between the source and the destination. A source and receiver will both use a multicast group IP Address to communicate through the network to enable the transmission of the data that is intended to be sent. The source will put this address within the datagram being sent and the receiver will inform the network that they want to receive whatever is sent to that multicast group address.  
-
For example, if a source were to send data to a multicast group IP address 230.1.1.1, then an interested potential receiver would have to "join" the IP group 230.1.1.1 and only then could information be transmitted from the source to the destination. The routers between these start and end points of the data would be aware of what IP's are part of this group and send the data to the next appropriate step in the route based on their routing table. The following is a step-by-step walkthrough of how multicasting works.
+
For example, if a source were to send data to a multicast group IP address 230.1.1.1, then an interested potential receiver would have to "join" the IP group 230.1.1.1 and only then could information be transmitted from the source to the destination. The routers between these start and end points of the data would be aware of what IP's are part of this group and send the data to the next appropriate step in the route based on their [http://en.wikipedia.org/wiki/Routing_table routing table]. The following is a step-by-step walkthrough of how multicasting works.<sup>[4]</sup>
             Steps To Creating A Multicast Connection<br>
             Steps To Creating A Multicast Connection<br>
Line 68: Line 68:
== Multicast Addressing ==
== Multicast Addressing ==
-
Since multicasting uses specific addresses it is given its own range of IP addresses to use for its groups. This range in IPv4 starts at 224.0.0.0 and extends all the way to 239.255.255.255<sup>[2]</sup>. There are some patches within this range that cannot be used however as they are used for other specific uses, but there is still a great amount of addresses to be used. It should also be known that multicast addresses are for ''groups'', and not individual hosts, so even one multicast address can be used by a large amount of hosts. Multicast addresses are also given their own class so that routers know when they have received a multicast data packet. It is given Class D addresses which means that the first octet of the IP address will start with 1110. Any bits after this are arbitrary and can be any combo of 1's and 0's.
+
Since multicasting uses specific addresses it is given its own range of IP addresses to use for its groups. This range in [http://en.wikipedia.org/wiki/Ipv4 IPv4] starts at 224.0.0.0 and extends all the way to 239.255.255.255<sup>[2]</sup>. There are some patches within this range that cannot be used however as they are used for other specific uses, but there is still a great amount of addresses to be used. It should also be known that multicast addresses are for ''groups'', and not individual hosts, so even one multicast address can be used by a large amount of hosts. Multicast addresses are also given their own [http://en.wikipedia.org/wiki/Ip_class class] so that routers know when they have received a multicast data packet. It is given Class D addresses which means that the first [http://en.wikipedia.org/wiki/Octet_(computing) octet] of the IP address will start with 1110. Any [http://en.wikipedia.org/wiki/Bit bits] after this are arbitrary and can be any combo of 1's and 0's.
             Class D(Multicast)
             Class D(Multicast)
Line 74: Line 74:
             239.255.255.255 = 11101111.11111111.11111111.1111111
             239.255.255.255 = 11101111.11111111.11111111.1111111
                               1110XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX(X is an arbitrary bit)
                               1110XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX(X is an arbitrary bit)
-
 
-
== Advantages of Multicasting ==
 
-
[[Image:MulticastVUnicast.png|200 px|thumb|Multicast addressing versus Unicast addressing]]Multicasting has many benefits when a single source needs to send the same data to multiple recipients. Whereas broadcasting and unicasting both fail in terms of network traffic and bandwidth usage, multicasting improves considerably in these two areas. When multicasting is taking place only one copy of the data is sent over the network so the bandwidth that is used is kept at the minimum amount needed to complete the transmission(or any process that needs to be finished), and since only the recipients that are interested in the data packet receive it, the amount of network traffic that is used is also kept to the minimum possible amount.
 
-
 
-
To understand the full effect of this bandwidth efficiency issue, a real example is needed. If a video is to be streamed it will need approximately 1.5 Mbps of bandwidth. Keeping this as a unicast transmission means that everytime a new client is included in the connection, 1.5 Mpbs is added on top of the bandwidth already being used. So this ends up being BV x N = Bandwidth Usage, where BV is the bandwidth usage of 1 video stream, and N is the number of recipients of this stream. So using unicast addressing the network can become crippled very easily.<sup>[1]</sup><br><br>
 
== Multicasting Protocols ==
== Multicasting Protocols ==
-
There are several different purposes for protocols when using the multicasting routing scheme. They are needed for all routing schemes, but because multicasting is far more complex than any other routing technology currently available new protocols were needed to compliment this breakthrough in network efficiency.
+
There are several different purposes for [http://en.wikipedia.org/wiki/Protocol_(computing) protocols] when using the multicasting [http://en.wikipedia.org/wiki/Routing routing] scheme. They are needed for all routing schemes, but because multicasting is far more complex than any other routing technology currently available new protocols were needed to compliment this breakthrough in network efficiency.
=== Group Protocols ===
=== Group Protocols ===
-
The completion of a multicast transmission is based off of two parts, the source sending the data to the multicast address, and the receiver joining that multicast group. There are protocols that moderate this process of joinig groups and allows multicast to exist. One of these protocols is the Internet Group Management Protocol(IGMP). It is to multicasting what ICMP is to unicasting. This protocol is discussed below.
+
The completion of a multicast transmission is based off of two parts, the source sending the data to the multicast address, and the receiver joining that multicast group. There are protocols that moderate this process of joinig groups and allows multicast to exist. One of these protocols is the Internet Group Management Protocol([http://en.wikipedia.org/wiki/IGMP IGMP]). It is to multicasting what ICMP is to unicasting. This protocol is discussed below.
===== IGMP =====
===== IGMP =====
-
IGMP is used to allow hosts to join IP multicast groups. It is used between hosts and multicast routers that are connected adjacently. The router will listen for requests to join a certain group from hosts connected to it and will hold the membership and route the incoming packet accordingly.
+
IGMP is used to allow hosts to join IP multicast groups. It is used between hosts and multicast routers that are connected adjacently. The router will listen for requests to join a certain group from hosts connected to it and will hold the membership and route the incoming packet accordingly.<sup>[3]</sup>
=== Data Packet Transmission Protocols ===  
=== Data Packet Transmission Protocols ===  
-
There are many transport protocols that companies use when implementing their own multicast network. Some of them are NDDS, RMTP, SRM, and SMART to name a few. Two major protocols however that will be discussed briefly are User Datagram Protocol(UDP), and Pragmatic General Multicast(PGM).
+
There are many transport protocols that companies use when implementing their own multicast network. Some of them are NDDS, RMTP, SRM, and [http://en.wikipedia.org/wiki/SMART_Multicast SMART] to name a few. Two major protocols however that will be discussed briefly are User Datagram Protocol([http://en.wikipedia.org/wiki/User_Datagram_Protocol UDP]), and Pragmatic General Multicast([http://en.wikipedia.org/wiki/Pragmatic_General_Multicast PGM]).
===== UDP =====
===== UDP =====
All routing schemes use UDP. It is the base transport protocol for any network application and so cannot guarantee any reliability or information integrity. Its purpose is to provide fast service and allows the user to define the amount of security features that is wanted. For multicasts purpose however, it does not suffice.
All routing schemes use UDP. It is the base transport protocol for any network application and so cannot guarantee any reliability or information integrity. Its purpose is to provide fast service and allows the user to define the amount of security features that is wanted. For multicasts purpose however, it does not suffice.
===== PGM =====
===== PGM =====
-
The Pragmatic General Multicast protocol was created in response to the downfalls that UDP brought into multicasting. PGM brings reliability to the table as it can detect lost or dropped packets. It also has the ability to correct any troubles that are encountered with the transmission of these packets. While PGM is not yet an industry standard it has been used by a number of network products, including Windows XP. It is far more practical then UDP for multicasting and so has a better chance of being used commercially as an alternative.
+
The Pragmatic General Multicast protocol was created in response to the downfalls that UDP brought into multicasting. [http://en.wikipedia.org/wiki/Pragmatic_General_Multicast PGM] brings reliability to the table as it can detect lost or dropped packets. It also has the ability to correct any troubles that are encountered with the transmission of these packets. While PGM is not yet an industry standard it has been used by a number of network products, including Windows XP. It is far more practical then UDP for multicasting and so has a better chance of being used commercially as an alternative.<sup>[5]</sup>
== Applications of Multicasting ==
== Applications of Multicasting ==
-
IP multicasting was created for multiple reasons. There was a need for large scale transmission of data without clogging up networks and wasting of badnwidth. Basically, any sort of application where one-to-many communication is needed you will be able to find need for multicasting. Specifically, video and audio conferencing are big contributors to the invention of multicasting. Any company that becomes international will benefit from these types of conferences so they can save money on travelling as well as time that their employees could spend working on important tasks. The networks however that these conferences are run on top of a strained, but multicasting solves this problem. Some other applications that use multicasting technologies are online training, updating of stock exchange information(must be very reliable), online radio stations, and news distribution among others. These are just basic ways that multicasting can be applied. The amount of uses will also increase with time since technologies build off each other and so now we have the ability transfer the same data to multiple recipients applications that were thought to be to strenuous on a network can now be realized because of IP multicasting.
+
[[Image:video-conference.jpg|150 px|thumb|Video conferencing, one of the applications that multicasting has helped to increase the availability of.]]IP multicasting was created for multiple reasons. There was a need for large scale transmission of data without clogging up networks and wasting of bandwidth. Basically, any sort of application where one-to-many communication is needed you will be able to find need for multicasting. Specifically, video and audio conferencing are big contributors to the invention of multicasting. Any company that becomes international will benefit from these types of conferences so they can save money on travelling as well as time that their employees could spend working on important tasks. The networks however that these conferences are run on top of become strained, but multicasting solves this problem. Some other applications that use multicasting technologies are online training, updating of [http://en.wikipedia.org/wiki/Stock_exchange stock exchange] formation(must be very reliable), long distance education, [http://en.wikipedia.org/wiki/Online_radio internet radio] stations, and news distribution among others. These are just basic ways that multicasting can be applied. The amount of uses will also increase with time since technologies build off each other and so now we have the ability transfer the same data to multiple recipients, so applications that were thought to be to strenuous on a network can now be realized because of IP multicasting.<br><br><br><br>
 +
 
 +
== Advantages of Multicasting ==
 +
[[Image:MulticastVUnicast.png|200 px|thumb|Multicast addressing versus Unicast addressing]]Multicasting has many benefits when a single source needs to send the same data to multiple recipients. Whereas [http://en.wikipedia.org/wiki/Broadcast_address broadcasting] and [http://en.wikipedia.org/wiki/Unicast unicasting] both fail in terms of network traffic and [http://en.wikipedia.org/wiki/Bandwidth_(computing) bandwidth] usage, multicasting improves considerably in these two areas. When multicasting is taking place only one copy of the data is sent over the network so the bandwidth that is used is kept at the minimum amount needed to complete the transmission(or any process that needs to be finished), and since only the recipients that are interested in the data packet receive it, the amount of network traffic that is used is also kept to the minimum possible amount.
 +
 
 +
To understand the full effect of this bandwidth efficiency issue, a real example is needed. If a video is to be streamed it will need approximately 1.5 Mbps of bandwidth. Keeping this as a unicast transmission means that everytime a new client is included in the connection, 1.5 Mpbs is added on top of the bandwidth already being used. So this ends up being BV x N = Bandwidth Usage, where BV is the bandwidth usage of 1 video stream, and N is the number of recipients of this stream. So using unicast addressing the network can become crippled very easily.<sup>[1]</sup><br><br>
== Disadvantages and Solutions ==
== Disadvantages and Solutions ==
-
While the advantages are many for multicasting, it is still a relatively new technology and so will naturally have bugs and problems with certain features. This young technology also needs extra protocols for it to work seamlessly, this however is not the case yet for some features, namely the UDP problem. Because most multicast applications are currently using the UDP transport protocol, these multicast applications are built upon an 'unreliable' base, and so cannot guarantee users the sort of integrity that other routing schemes that use better protocols offer. This fact that most multicast apllications use UDP is because of the fact that it is not a connection oriented technology and so cannot have the reliability that TCP/IP offers. This is why new transport protocols such as PGM are being designed and implemented.
+
While the advantages are many for multicasting, it is still a relatively new technology and so naturally has bugs and problems with certain features. This young technology also needs extra protocols for it to work seamlessly, this however is not the case yet for some features, namely the UDP problem. Because most multicast applications are currently using the UDP transport protocol, these multicast applications are built upon an 'unreliable' base, and so cannot guarantee users the sort of [http://en.wikipedia.org/wiki/Integrity_(computing) integrity] that other routing schemes that use better protocols offer. This fact that most multicast apllications use UDP is because of the fact that it is not a [http://en.wikipedia.org/wiki/Connection_oriented connection oriented] technology and so cannot have the reliability that [http://en.wikipedia.org/wiki/Tcp/ip TCP/IP] offers. This is why new transport protocols such as [http://en.wikipedia.org/wiki/Pragmatic_General_Multicast PGM] are being designed and implemented.
== References ==
== References ==
1.  [http://www.cisco.com/en/US/tech/tk828/technologies_white_paper09186a0080092942.shtml Overview of IP Multicast]<br>
1.  [http://www.cisco.com/en/US/tech/tk828/technologies_white_paper09186a0080092942.shtml Overview of IP Multicast]<br>
2.  [http://www.iana.org/assignments/multicast-addresses/ IPv4 Internet Multicast Addresses]<br>
2.  [http://www.iana.org/assignments/multicast-addresses/ IPv4 Internet Multicast Addresses]<br>
-
3.  [http://en.wikipedia.org/wiki/Internet_Group_Management_Protocol Internet Group Management Protocol]
+
3.  [http://en.wikipedia.org/wiki/Internet_Group_Management_Protocol Internet Group Management Protocol]<br>
 +
4.  Goncalves, Marcus, and Niles, Kitty. ''IP Multicasting''. McGraw-Hill, 1998.<br>
 +
5.  [http://en.wikipedia.org/wiki/IP_Multicast IP Multicast]<br>
 +
6.  [http://en.wikipedia.org/wiki/Pragmatic_General_Multicast Pragmatic General Multicast]<br>
 +
7.  Paul, Sanjoy. ''Multicasting On The Internet And Its Applications''. Kluwer Academic Publishers/Springer, 1998.
== See Also ==
== See Also ==
[[Ethernet Routing Devices]]<br>
[[Ethernet Routing Devices]]<br>
[[Network Latency]]<br>
[[Network Latency]]<br>
-
[[Onion Routing]]
+
[[Load Balancing for Network Servers]]<br>
 +
[[Onion Routing]]<br>
 +
[[Peer To Peer Network Security]]<br>
 +
[[Network firewall]]
== External Links ==
== External Links ==
[http://www.iana.org/assignments/ipv6-multicast-addresses/ IPv6 Internet Multicast Addresses]<br>
[http://www.iana.org/assignments/ipv6-multicast-addresses/ IPv6 Internet Multicast Addresses]<br>
[http://www.ipmulticast.com/ Internet Protocol Multicast Standards Iniative]<br>
[http://www.ipmulticast.com/ Internet Protocol Multicast Standards Iniative]<br>
 +
[http://www.ietf.org/rfc/rfc3740.txt The Multicast Group Security Architecture]

Current revision as of 03:58, 13 April 2009

Multicasting is a type of internet addressing system where only interested receivers are sent the requested information. This was created to be a more efficient means of broadcasting and unicasting where information would be sent to every node in the network or sent multiple times, respectively. Multicasting uses the most efficient routes to transfer the data and only copies the information being sent when a fork in the route occurs. Prior to multicasting, if a user needed to send the same data to N users, the user would need to copy that data N times and send it to each receiver. This creates a high amount of strain on servers, as well as large amounts of traffic over the network. Multicasting however needs only one transmission of this data, and will optimize the path that the data takes to reach each desired user.


Contents

Different Types of IP Addressing

Unicast

Unicast addressing
Unicast addressing is the most common form of sending datagrams to other hosts on a network. It refers to sending information packets from one point to another point(one-to-one connection). Some applications that use unicast addressing are http and ftp, among others.





Broadcast

Broadcasting addressing
Broadcasting is the type of IP addressing where the sender will send a piece of data to all nodes connected to a network. While only one piece of data is being sent, there is no control over who receives it, and so this will place a huge strain on any network.






Multicast

Multicasting addressing
As stated earlier, multicasting is the addressing type that allows a piece of data to be sent once but received by multiple users. It is still relatively new and has some downsides, but compared to the broadcasting and unicasting methods of transmitting data to larges amount of recipients it is far more efficient.






Anycast

In the anycast IP addressing scheme, the closest appropriate server is located and the packet is sent to it. The appropriate server will offer a service that the client needs, and so if multiple servers offer this same service, the packet can go to 'any' of these servers(however the closest server is deemed the most appropriate). This is where the name anycasting is derived from. Anycasting is advantageous because it simplifies the task of locating servers.

How Multicasting Works

Multicasting is an intrinsically complex technology. This fact is still a main reason why it has not been adopted by every company that deals with large network systems. Broadcasting and unicasting however are relatively easy to implement and so they are chosen over multicasting despite their lack of efficiency. At the most basic level, multicasting can only be achieved with communication between the source and the destination. A source and receiver will both use a multicast group IP Address to communicate through the network to enable the transmission of the data that is intended to be sent. The source will put this address within the datagram being sent and the receiver will inform the network that they want to receive whatever is sent to that multicast group address.

For example, if a source were to send data to a multicast group IP address 230.1.1.1, then an interested potential receiver would have to "join" the IP group 230.1.1.1 and only then could information be transmitted from the source to the destination. The routers between these start and end points of the data would be aware of what IP's are part of this group and send the data to the next appropriate step in the route based on their routing table. The following is a step-by-step walkthrough of how multicasting works.[4]

            Steps To Creating A Multicast Connection
1. The client sends an IGMP join message to its designated multicast router. The destination MAC address maps to the Class D address of group being joined, rather being the MAC address of the router. The body of the IGMP datagram also includes the Class D group address.
2. The router logs the join message and uses PIM or another multicast routing protocol to add this segment to the multicast distribution tree.
3. IP multicast traffic transmitted from the server is now distributed via the designated router to the client's subnet. The destination MAC address corresponds to the Class D address of group.
4. The switch receives the multicast packet and examines its forwarding table. If no entry exists for the MAC address, the packet will be flooded to all ports within the broadcast domain. If a entry does exist in the switch table, the packet will be forwarded only to the designated ports.
5. With IGMP V2, the client can cease group membership by sending an IGMP leave to the router. With IGMP V1, the client remains a member of the group until it fails to send a join message in response to a query from the router. Multicast routers also periodically send an IGMP query to the "all multicast hosts" group or to a specific multicast group on the subnet to determine which groups are still active within the subnet. Each host delays its response to a query by a small random period and will then respond only if no other host in the group has already reported. This mechanism prevents many hosts from congesting the network with simultaneous reports.[1]

Multicast Addressing

Since multicasting uses specific addresses it is given its own range of IP addresses to use for its groups. This range in IPv4 starts at 224.0.0.0 and extends all the way to 239.255.255.255[2]. There are some patches within this range that cannot be used however as they are used for other specific uses, but there is still a great amount of addresses to be used. It should also be known that multicast addresses are for groups, and not individual hosts, so even one multicast address can be used by a large amount of hosts. Multicast addresses are also given their own class so that routers know when they have received a multicast data packet. It is given Class D addresses which means that the first octet of the IP address will start with 1110. Any bits after this are arbitrary and can be any combo of 1's and 0's.

            Class D(Multicast)
            224.  0.  0.  0 = 11100000.00000000.00000000.00000000
            239.255.255.255 = 11101111.11111111.11111111.1111111
                              1110XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX(X is an arbitrary bit)

Multicasting Protocols

There are several different purposes for protocols when using the multicasting routing scheme. They are needed for all routing schemes, but because multicasting is far more complex than any other routing technology currently available new protocols were needed to compliment this breakthrough in network efficiency.

Group Protocols

The completion of a multicast transmission is based off of two parts, the source sending the data to the multicast address, and the receiver joining that multicast group. There are protocols that moderate this process of joinig groups and allows multicast to exist. One of these protocols is the Internet Group Management Protocol(IGMP). It is to multicasting what ICMP is to unicasting. This protocol is discussed below.

IGMP

IGMP is used to allow hosts to join IP multicast groups. It is used between hosts and multicast routers that are connected adjacently. The router will listen for requests to join a certain group from hosts connected to it and will hold the membership and route the incoming packet accordingly.[3]

Data Packet Transmission Protocols

There are many transport protocols that companies use when implementing their own multicast network. Some of them are NDDS, RMTP, SRM, and SMART to name a few. Two major protocols however that will be discussed briefly are User Datagram Protocol(UDP), and Pragmatic General Multicast(PGM).

UDP

All routing schemes use UDP. It is the base transport protocol for any network application and so cannot guarantee any reliability or information integrity. Its purpose is to provide fast service and allows the user to define the amount of security features that is wanted. For multicasts purpose however, it does not suffice.

PGM

The Pragmatic General Multicast protocol was created in response to the downfalls that UDP brought into multicasting. PGM brings reliability to the table as it can detect lost or dropped packets. It also has the ability to correct any troubles that are encountered with the transmission of these packets. While PGM is not yet an industry standard it has been used by a number of network products, including Windows XP. It is far more practical then UDP for multicasting and so has a better chance of being used commercially as an alternative.[5]

Applications of Multicasting

Video conferencing, one of the applications that multicasting has helped to increase the availability of.
IP multicasting was created for multiple reasons. There was a need for large scale transmission of data without clogging up networks and wasting of bandwidth. Basically, any sort of application where one-to-many communication is needed you will be able to find need for multicasting. Specifically, video and audio conferencing are big contributors to the invention of multicasting. Any company that becomes international will benefit from these types of conferences so they can save money on travelling as well as time that their employees could spend working on important tasks. The networks however that these conferences are run on top of become strained, but multicasting solves this problem. Some other applications that use multicasting technologies are online training, updating of stock exchange formation(must be very reliable), long distance education, internet radio stations, and news distribution among others. These are just basic ways that multicasting can be applied. The amount of uses will also increase with time since technologies build off each other and so now we have the ability transfer the same data to multiple recipients, so applications that were thought to be to strenuous on a network can now be realized because of IP multicasting.



Advantages of Multicasting

Multicast addressing versus Unicast addressing
Multicasting has many benefits when a single source needs to send the same data to multiple recipients. Whereas broadcasting and unicasting both fail in terms of network traffic and bandwidth usage, multicasting improves considerably in these two areas. When multicasting is taking place only one copy of the data is sent over the network so the bandwidth that is used is kept at the minimum amount needed to complete the transmission(or any process that needs to be finished), and since only the recipients that are interested in the data packet receive it, the amount of network traffic that is used is also kept to the minimum possible amount.

To understand the full effect of this bandwidth efficiency issue, a real example is needed. If a video is to be streamed it will need approximately 1.5 Mbps of bandwidth. Keeping this as a unicast transmission means that everytime a new client is included in the connection, 1.5 Mpbs is added on top of the bandwidth already being used. So this ends up being BV x N = Bandwidth Usage, where BV is the bandwidth usage of 1 video stream, and N is the number of recipients of this stream. So using unicast addressing the network can become crippled very easily.[1]

Disadvantages and Solutions

While the advantages are many for multicasting, it is still a relatively new technology and so naturally has bugs and problems with certain features. This young technology also needs extra protocols for it to work seamlessly, this however is not the case yet for some features, namely the UDP problem. Because most multicast applications are currently using the UDP transport protocol, these multicast applications are built upon an 'unreliable' base, and so cannot guarantee users the sort of integrity that other routing schemes that use better protocols offer. This fact that most multicast apllications use UDP is because of the fact that it is not a connection oriented technology and so cannot have the reliability that TCP/IP offers. This is why new transport protocols such as PGM are being designed and implemented.

References

1. Overview of IP Multicast
2. IPv4 Internet Multicast Addresses
3. Internet Group Management Protocol
4. Goncalves, Marcus, and Niles, Kitty. IP Multicasting. McGraw-Hill, 1998.
5. IP Multicast
6. Pragmatic General Multicast
7. Paul, Sanjoy. Multicasting On The Internet And Its Applications. Kluwer Academic Publishers/Springer, 1998.

See Also

Ethernet Routing Devices
Network Latency
Load Balancing for Network Servers
Onion Routing
Peer To Peer Network Security
Network firewall

External Links

IPv6 Internet Multicast Addresses
Internet Protocol Multicast Standards Iniative
The Multicast Group Security Architecture

Personal tools