The present invention relates generally to data processing systems, and in particular, to bulk data distributions within networked data processing systems.
Present day data processing systems are often configured in large multi-user networks. Management of such networks may typically include the need to transfer bulk data to an endpoint, or receiver, system from a source system (or, simply, “a source”). Such large data transfers may occur within a network, for example, to distribute software updates.
Data may be distributed by multicasting the distribution to the receivers. (Multicast transmissions, within the Internet Protocol (IP) framework are transmissions from one or more sources to a group of addressees. (In IP multicast, packets are sent to the multicast group, which is identified by a single IP address, rather than addressing each packet to the individual receivers.) Generally, such multicast distributions are more efficient than unicast transmission of the bulk data.
Within the enterprise, many different bulk data distributions may occur. These need not necessarily target all of the receivers on the network. Receivers that are not targets of a particular distribution will ignore the data. However, in a multicast distribution, the routers will forward the data to each subnet having at least one receiver that is a member of the target group, even if that receiver itself is not a target of the distribution. Consequently, the distribution data will needlessly flow to such a subnet. Therefore, there is a need in the art for methods and systems to avoid the sending of multicast bulk distribution data on subnets having no receivers that are targets of the distribution.
For a more complete understanding of the present invention, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
The aforementioned needs are addressed by the present invention. In one embodiment, a method for multicast distribution of bulk data may be performed. The method includes multicasting a message on a selected multicast address. The message includes a list of target receivers of a data distribution and a multicast address of the distribution. A set of potential target receivers listens on the selected multicast address. In accordance with the method, the data distribution is multicast on the multicast address included in the message.
The foregoing has outlined rather broadly the features and technical advantages of one or more embodiments of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of the invention will be described hereinafter which form the subject of the claims of the invention.
Systems and methods for the distribution of bulk data using multicast routing are provided. A multicast advertisement is sent to potential receivers of the bulk distribution. The advertisement may include a list of intended receivers and the multicast group that the distribution will be multicast on. In response to the advertisement, intended receivers may listen on the multicast group address for the bulk data. Receivers that are not targets for the distribution do not join the multicast group, and consequently, the delivery of data to subnets that have no target receivers may thus be obviated.
In the following description, numerous specific details are set forth to provide a thorough understanding of the present invention. For example, particular transport protocols or network addresses may be referred to, however, would be recognized by those of ordinary skill in the art that the present invention may be practiced without such specific details, and, in other instances, well-known circuits have been shown in block diagram form in order not to obscure the present invention in unnecessary detail. Refer now to the drawings, wherein depicted elements are not necessarily shown to scale and where like or similar elements are designated by the same reference numeral through the several views.
In step 202, a multicast IP address is selected. The Internet Protocol (IP) is a standard protocol that provides for a connectionless packet delivery. IP hides the underlying physical network through a virtual network view. IP delivery of packets may be unreliable. However, it would be appreciated by those of ordinary skill in the art that other protocols within the TCP/IP suite address the reliable delivery of data. In accordance with the present IP standards, Internet addresses (technically referred to as Internet Numbers) are 32-bit numbers commonly represented in “dotted decimal” form (the decimal representation of four 8-bit values concatenated with dots). In particular, a subset of possible IP numbers are assigned as multicast addresses in the IP addressing standards. (These are addresses in the range 224.0.0.0 through 239.255.255.255. IP addressing is specified in RFC 1166, Internet Numbers, promulgated by the IETF.) For the purposes herein, it is assumed that each of the receivers on the network has joined the multicast groups addressed by the set of addresses from which the multicast IP address in step 202 is selected. Thus, for example, in the exemplary system of
In step 204, an advertisement of the distribution is multicast on the address selected in step 202. The advertisement may include a list of the targets for the distribution, and the multicast group that the bulk data distribution will be sent to. The multicast group may be specified by the multicast IP address selected in step 202. As will be discussed in conjunction with
Before describing the receiver side processes for receiving multicast bulk data, refer to
In step 252, a multicast IP address is randomly chosen from a selected set of IP addresses representing multicast groups within the data processing network. The user may specify a low address for example, (224.2.128.0) and a high address for example, (224.2.255.255). The algorithm is then free to pick any multicast address within this range. Techniques for randomly picking a member of a set of elements are known in the data processing art. For example, Java provides a class, the Random class; Random class objects instantiate a random number generator that may be used to randomly select a multicast address. In particular, the nextInt (int n) method of the Random class returns a uniformly distributed random value between zero and n. This may be used, for example, by converting the high and low addresses to integers and specifying n to be the difference between the high address and the low address. The nextInt (int n) method invocation returns a random integer that may be added to the low address (converted to an integer) which may then be converted back to dotted decimal form to provide the multicast address. The high and low address are converted into integers and then the low is subtracted from the high to determine the range. This method may be used to pick a random number between 0 and the range. This number is then added to the low address and the result converted to x.x.x.x format. (It would be understood by those of ordinary skill in the data processing art, that so-called “random” numbers generated using algorithmic methods are quasi-random inasmuch as a set machine instructions yield deterministic operations. In accordance with accepted practice in the art, the distinction is not material to the present invention, and such numbers may be referred to herein as “random numbers,” and process steps using random numbers will be referred to as a random step, process, operation or similar terminology.)
In step 254, the distribution source, for example, source 102,
Refer now to
In step 404, the multicast distribution advertisement is received, and the target list is parsed to determine if the receiver is an intended target of the advertised distribution. If, in step 406, the receiver is not an intended target, process 400 returns to step 402.
Otherwise, if, in step 406, the receiver, that is the receiver performing process 400, is an intended target of the multicast distribution, the receiver listens on the multicast group addresses included in the advertisement (step 408). Recall, the multicast advertisement includes the multicast IP address of the multicast group to which the bulk data distribution will be sent. The receiver, in step 408, joins the corresponding multicast group, and listens for the multicast bulk distribution. A network host may join a multicast group in accordance with standard mechanisms. In particular, the Internet Group Management Protocol (IGMP) may be used by hosts to join or leave a multicast host group. Group membership information is exchanged between a specific host, that is in this instance, a receiver, and the nearest multicast router. (IGMP Version 2 is specified in RFC 2236.) To join the multicast group corresponding to the multicast IP address received in the advertisement, a targeted receiver sends an IGMP message to the multicast router (for example, a corresponding one of routers 120 and 130 in
Returning to
In
Referring now to
Data processing system 600 includes central processing unit (CPU) 610, such as a conventional microprocessor, and a number of other units interconnected via system bus 612. Data processing system 600 also includes random access memory (RAM) 614, read only memory (ROM) 616 and input/output (I/O) adapter 618 for connecting peripheral devices such as disk units 620 to bus 612, user interface adapter 622 for connecting keyboard 624, mouse 626, trackball 632 and/or other user interface devices such as a touch screen device (not shown) to bus 612. System 600 also includes communication adapter 634 for connecting data processing system 600 to a data processing network, enabling the system to communicate with other systems, and display adapter 636 for connecting bus 612 to display device 638. CPU 610 may include other circuitry not shown herein, which will include circuitry commonly found within a microprocessor, e.g. execution units, bus interface units, arithmetic logic units, etc. CPU 610 may also reside on a single integrated circuit.
Preferred implementations of the invention include implementations as a computer system programmed to execute the method or methods described herein, and as a computer program product. According to the computer system implementation, sets of instructions for executing the method or methods are resident in the random access memory 614 of one or more computer systems configured generally as described above. In one embodiment, these sets of instructions, in conjunction with system components that execute them may multicast bulk data distributions, as described in conjunction with
Note that the invention may describe terms such as comparing, validating, selecting, identifying, or other terms that could be associated with a human operator. However, for at least a number of the operations described herein which form part of at least one of the embodiments, no action by a human operator is desirable. The operations described are, in large part, machine operations processing electrical signals to generate other electrical signals.
Although the present invention and its advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made herein without departing from the spirit and scope of the invention as defined by the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
4623920 | Dufresne et al. | Nov 1986 | A |
5835723 | Andrews et al. | Nov 1998 | A |
6018771 | Hayden | Jan 2000 | A |
6138144 | DeSimone et al. | Oct 2000 | A |
6377997 | Hayden | Apr 2002 | B1 |
6501957 | Muhonen et al. | Dec 2002 | B2 |
6625652 | Miller et al. | Sep 2003 | B1 |
7061880 | Basilier | Jun 2006 | B2 |
20020049066 | Muhonen et al. | Apr 2002 | A1 |
20020049635 | Mai et al. | Apr 2002 | A1 |
20020116529 | Hayden | Aug 2002 | A1 |
20020129159 | Luby et al. | Sep 2002 | A1 |
20030073453 | Basilier | Apr 2003 | A1 |
20030233540 | Banerjee et al. | Dec 2003 | A1 |
20050283447 | Xu et al. | Dec 2005 | A1 |
20060039388 | Shur et al. | Feb 2006 | A1 |
20060146823 | Ding | Jul 2006 | A1 |
20060209787 | Okuda | Sep 2006 | A1 |
20070233891 | Luby et al. | Oct 2007 | A1 |
20080232292 | Zhang | Sep 2008 | A1 |
Number | Date | Country | |
---|---|---|---|
20040148421 A1 | Jul 2004 | US |