Multicasting
From Computing and Software Wiki
m |
m (→Disadvantages and Solutions) |
||
Line 99: | Line 99: | ||
== Disadvantages and Solutions == | == Disadvantages and Solutions == | ||
- | While the advantages are many for multicasting, it is still a relatively new technology and so | + | 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 == |
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 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 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
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
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
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