System and method for multicasting

Abstract: A multicast packet transfer system includes a first packet transfer apparatus (101) and a second packet transfer apparatus (201). The first packet transfer apparatus transmits transfer packet data relating to an IP header and a UDP header of a multicast packet when the multicast packet is received, rewrites a header section of the multicast packet to produce a unicast packet, and transmits the unicast packet. The second packet transfer apparatus receives the transfer packet data and the unicast packet, and reproduces the multicast packet based on the received unicast packet and the received transfer packet data.

Description: The present invention relates to a multicast packet transfer apparatus for receiving and transferring a multicast packet, a multicast packet transfer system and a computer-readable storage medium used in the multicast packet transfer apparatus. Conventionally, when a multicast packet is transferred to another address in a state of original packet data being held, the multicast packet is encapsulated to have a new header added to the header and data of the multicast packet, as shown in Fig. 1. Such transfer of a multicast packet is described, for example, in "Ip Encapsulation within IP" by C. Perkins, (IETF RFC2003, Oct., 1996). However, when the packet is encapsulated as described above, the packet becomes longer by the length of a newly added header. Therefore, there is a problem that the packet becomes longer than the MTU of the media so that there is a possibility that the packet is fragmentized or divided. In conjunction with the above description, a transfer system in a loop network system is disclosed in Japanese Laid Open Patent Application (JP-A-Showa 62-56047). In this reference, a reception address of a packet is divided into sub-addresses for a plurality of nodes, and each of the sub-addresses can be allocated with one of set and reset states. A packet transmission source node sets the sub-addresses for destination to the set state and the other sub-addresses to the reset state. After the sub-addresses in the set state are stored, a packet transmission is carried out. Each node transfers the received packet with no change when the sub-address of the received packet for the self node is in the reset state. Also, the node takes the received packet therein when the sub-address of the received packet for the self node is in the set state, and then outputs the packet after setting the sub-address of the received packet to the reset state. Thus, the node determines that data of the packet has been already received, when the packet travels on the loop and is received again. Also, a packet transfer apparatus is disclosed in Japanese Laid Open Patent Application (JP-A-Heisei 9-252319). In this reference, when a multicast setting to a plurality of specific terminals is carried out in a lower layer, an address management section (103) generates an upper layer address corresponding to a lower layer multicast address and stores the upper layer address and the lower layer multicast addresses in an address table of a transfer control section (101). When receiving an upper multicast packet, the transfer control section (101) searches the address table for lower layer multicast addresses corresponding to the upper layer address and carries out multicast transmission to the specific terminals corresponding to the searched lower layer multicast addresses through a multicast communication interface section (102). Also, a data unit which receives and distributes data packets from and to a packet switching circuit and a switching apparatus containing the data unit is disclosed in Japanese Laid Open Patent Application (JP-A-Heisei 10-93589). In this reference, a packet registration section (146) has reception queues (RQO to RQ63) corresponding to destinations of reception packets. The packet registration section (146) produces an entry corresponding to the packet in one reception queue (RQ) corresponding to the packet destination at the time of the packet reception. A multicast handling section (148) produces an entry corresponding to the packet in each reception queue of the packet registration means (146) corresponding to each destination in case of that the reception packet is a multicast packet having equal to or more than 2 destinations. A data unit contains a packet output section (150) which reads the packets in the order of production of the entries from the reception queues of a memory (24), to output to a packet switching circuit. An ATM switching apparatus uses the data unit, and a self routing switching device uses the ATM switching apparatus. Also, a cell copy apparatus is disclosed in Japanese Laid Open Patent Application (JP-A-Heisei 10-190663). In this reference, a cell copy apparatus is used for an ATM switching and transmitting apparatus which transfers cells for a unicast call and multicast call, and copies the cell for a copy number contained in control data of the cell when the received cell is for the multicast call. The cell copy apparatus is . composed of a unicast call buffer which temporarily stores a plurality of unicast cells, and a multicast call buffer temporarily stores a plurality of multicast call cells. A copy number extraction section extracts the number of copies from the control data of the received cell. A write control unit writes a cell in the unicast call buffer when the received cell is the unicast call cell, and writes the cell in the multicast call buffer when the received cell is the multicast call cell. A load observation control unit observes the load relating to the reception of the cells to determine input load. A read control unit reads out a cell selectively from the unicast call buffer or the multicast call buffer in accordance with the input load by the said load observation control unit. The delay of the unicast call cell can be reduced even if the spacing of the multicast call cell is carried out. Also, a multicast transfer method is described in the United States Patent no.5956335. Such document describes a way to preserve the multicast address of a frame on a first communications system having a large multicast address space, when the frame is forwarded through a second communications system having a small multicast address space, into a third communications system with a large multicast address space. This is achieved by including in the frame sent through the second system additional information that enables the receiving station between said second and third communications systems to recover the original multicast address. This additional information could be the original multicast address itself or an indicator that allows the receiving station to search in a table the multicast address corresponding to the indicator. Therefore, an object of the present invention is to provide a multicast packet transfer system in which no fragmentation may occur, and a method for the same. Another object of the present invention is to provide a packet transfer apparatus which can be used for the above multicast packet transfer system. Still another object of the present invention is to provide a multicast packet transfer system in which transmission resources can be effectively utilized. In a first aspect of the present invention, a multicast packet transfer system includes a first packet transfer apparatus and a second packet transfer apparatus. The first packet transfer apparatus transmits transfer packet data relating to an IP header and a UDP header of a multicast packet when the multicast packet is received, rewrites a header section of the multicast packet to produce a unicast packet, and transmits the unicast packet. The second packet transfer apparatus receives the transfer packet data and the unicast packet, and reproduces the multicast packet based on the received unicast packet and the received transfer packet data. The first packet transfer apparatus may include a transmitting section, a header rewriting section and a packet transferring section. The transmitting section produces the transfer packet data based on the received multicast packet to transmit to the second packet transfer apparatus. The header rewriting section rewrites the header section of the multicast packet based on the transfer packet data to produce the unicast packet. The packet transferring section transfers the unicast packet to the second packet transfer apparatus. In this case, the transfer packet data may include the IP header and the UDP header of the received multicast packet and a number of a port of the first packet transfer apparatus corresponding to the IP header and the UDP header. In this case, the first packet transfer apparatus may further include a peer establishing section which establishes a peer relating to the port number with the second packet transfer apparatus. The packet transferring section transfers the unicast packet to the second packet transfer apparatus through the established peer. Also, the first packet transfer apparatus may further include a first transfer packet data table which stores the transfer packet data. The header rewriting section searches the first transfer packet data table based on the IP header and the UDP header of the received multicast packet to retrieve the port number when the port number is registered in the first transfer packet data table in correspondence to the IP header and the UDP header, and rewrites the header section of the multicast packet using the port number to produce the unicast packet. The header rewriting section selects an unused port of the first packet transfer apparatus when any port number corresponding to the IP header and the UDP header of the received multicast packet is not found, sets a number of the selected unused port as the port number, and stores the set port number in the first transfer packet data table in correspondence to the IP header and the UDP header. Also, the second multicast packet transfer apparatus may include a second transfer packet data table, a data receiving section, a packet receiving section, and a reproducing section. The second transfer packet data table stores transfer packet data. The data receiving section receives the transfer packet data from the first packet transfer apparatus to store in the second transfer packet data table. The packet receiving section receives the unicast packet from the first packet transfer apparatus. The reproducing section retrieves the transfer packet data from the second transfer packet data table based on the header section of the unicast packet, and reproduces the received multicast packet using the retrieved transfer packet data. In this case, the transfer packet data may contains a number of a port of the first packet transfer apparatus through which the unicast data is transferred. The second packet transfer apparatus may further include a peer establishing section which establishes a peer relating to the port number with the first packet transfer apparatus. The packet receiving section receives the unicast packet from the first packet transfer apparatus through the established peer. In a second aspect of the present invention, a packet transfer apparatus includes a transmitting section, a header rewriting section and a packet transferring section. The transmitting section produces transfer packet data relating to an IP header and a UDP header of a multicast packet when the multicast packet is received, and transfers the transfer packet data to another packet transfer apparatus. The header rewriting section rewrites the header section of the received multicast packet based on the transfer packet data to produce the unicast packet. The packet transferring section transfers the unicast packet to the another packet transfer apparatus. The transfer packet data may includes the IP header and the UDP header of the received multicast packet and a number of a port of the first packet transfer apparatus corresponding to the IP header and the UDP header. In this case, the packet transfer apparatus may further include a peer establishing section which establishes a peer relating to the port number with the another packet transfer apparatus. The packet transferring section transfers the unicast packet to the another packet transfer apparatus through the established peer. In this case, the packet transfer apparatus may further include a transfer packet data table which stores the transfer packet data. The header rewriting section searches the transfer packet data table based on the IP header and the UDP header of the received multicast packet to retrieve the port number when the port number is registered in the transfer packet data table in correspondence to the IP header and the UDP header, and rewrites the header section of the multicast packet using the port number to produce the unicast packet. Also, the header rewriting section selects an unused port of the first packet transfer apparatus when any port number corresponding to the IP header and the UDP header is not found, sets a number of the selected unused port as the port number, and stores the set port number in the transfer packet data table in correspondence to the IP header and the UDP header. In a third aspect of the present invention, a packet transfer apparatus includes a transfer packet data table, a data receiving section, a packet receiving section and a reproducing section. The transfer packet data table stores transfer packet data. The data receiving section receives the transfer packet data from another packet transfer apparatus to store in the transfer packet data table. The packet receiving section receives a unicast packet from the other packet transfer apparatus. The reproducing section retrieves the transfer packet data from the transfer packet data table based on the header section of the unicast packet, and reproduces an original multicast packet using the retrieved transfer packet data. The transfer packet data may contain a number of a port of the other packet transfer apparatus through which the unicast data is transferred. The packet transfer apparatus may further include a peer establishing section which establishes a peer relating to the port number with the other packet transfer apparatus. The packet receiving section receives the unicast packet from the other packet transfer apparatus through the established peer. In a fourth aspect of the present invention, a method of transferring a multicast packet between first and second packet transfer apparatuses as a unicast packet, is attained by (a) transmitting from the first packet transfer apparatus to the second packet transfer apparatus, transfer packet data relating to an IP header and a UDP header of a multicast packet when the multicast packet is received; by (b) rewriting a header section of the received multicast packet based on the transfer packet data to produce a unicast packet; by (c) transmitting the unicast packet from the first packet transfer apparatus to the second packet transfer apparatus; by (d) receiving second transfer packet data and a second unicast packet from the first packet transfer apparatus by the second packet transfer apparatus; and by (e) reproducing the multicast packet based on the unicast packet and the received transfer packet data in the second packet transfer apparatus. In a fifth aspect of the present invention, a recording medium stores a program for executing a method by a packet transfer apparatus. The method is attained by (a) transmitting to a first packet transfer apparatus, first transfer packet data relating to an IP header and a UDP header of a f irst multicast packet when the first multicast packet is received; by (b) rewriting a header section of the first multicast packet based on the first transfer packet data to produce a first unicast packet; by (c) transmitting the first unicast packet to the first packet transfer apparatus; by (d) receiving second transfer packet data and a second unicast packet from a second packet transfer apparatus; and by (e) reproducing a second multicast packet based on the second unicast packet and the second transfer packet data. The transfer packet data may include the IP header and the UDP header of the multicast packet and a port number of the packet transfer apparatus corresponding to the IP header and the UDP header. In this case, a peer relating to the port number may be established with the first packet transfer apparatus to transfer the first unicast packet to the first packet transfer apparatus through the established peer. Also, for the (b) rewriting step, a transfer packet data table may be searched based on the IP header and the UDP header of the first multicast packet to retrieve the port number when the port number is registered in the transfer packet data table in correspondence to the IP header and the UDP header, and the header section of the first multicast packet may be rewritten using the port number to produce the first unicast packet. Also, for (b) rewriting, an unused port may be selected when any port number corresponding to the IP header and the UDP header is not found, a number of the selected unused port may be set as the port number, and the set port number may be stored in the transfer packet data table in correspondence to the IP header and the UDP header of the first multicast packet. Also, the (d) receiving step may be attained by storing the second transfer packet data in transfer packet data table, and the (e) reproducing may be attained by retrieving the second transfer packet data from the transfer packet data table based on the header section of the second unicast packet; and by reproducing an original multicast packet from the second unicast packet using the retrieved transfer packet data. In this case, the second transfer packet data may contains a number of a port of the second packet transfer apparatus through which the second unicast data is transferred. In the method, a peer relating to the port number may be established with the second packet transfer apparatus to receive the second unicast packet from the second packet transfer apparatus through the established peer. Brief Description of the Drawings Fig. 1 is a block diagram showing a conventional encapsulated packet; Fig. 2 is a block diagram showing a multicast packet transfer system according to an embodiment of the present invention; Fig. 3 is a block diagram showing the structure of a multicast packet transfer apparatus according to the embodiment of the present invention; Fig. 4 is a block diagram showing a transferred multicast packet; and Fig. 5 is a block diagram showing a unicast packet produced from the multicast packet. Description of the Preferred Embodiments Hereinafter, a multicast packet transfer system of the present invention will be described with reference to the attached drawings. Fig. 2 shows a multicast packet transfer system using packet transfer apparatuses according to one embodiment of the present invention. Referring to Fig. 2, multicast route control domains (hereinafter, to be referred to as domains) 10 and 20 are domains managed by means of a multicast routing protocol. There exists a sender 111 of a multicast group G1 in the domain 10, and there exist receivers 211 and 212 of a multicast group G1 in the domain 20. A transfer apparatus 101 is located in the domain 10, and a transfer apparatus 201 is located in the domain 20. The transfer apparatuses 101 and 201 are set in such a manner that they establish a transfer relation (hereinafter, to be referred to as a peer). Each transfer apparatus, the sender and the receivers have addresses, respectively. Here, it is supposed that the address of the transfer apparatus 101 is R1, the address of the transfer apparatus 201 is R2, the address of the sender 111 is S1, the address of the receiver 211 is V1 and the address of the receiver 212 is V2. Fig. 3 shows the internal structure of one packet transfer apparatus. The packet transfer apparatus is composed of a recording medium 1 in which a packet transfer program and a header rewrite program are recorded, a data processing unit 2 and a storage unit 3. The programs recorded in the recording medium 1 are read into the data processing unit 2 for controlling the operation thereof. The recording medium 1 is a computer-readable storage medium according to the present invention. As this storage medium, various kinds of disk media and magnetic recording medium, semiconductor memories and the like can be used. The storage unit 3 stores a peer management table 31 which stores peers established with other packet transfer apparatuses and a transfer packet data table 32 which stores transfer packet data. The tables 31 and 32 are updated by the data processing unit 2. The data processing unit 2 is composed of a peer establishing section 201, a packet converting section 22, a packet reproducing section 23, a data transferring section 24, a transfer data receiving section 25, a header rewriting section 26, and a transfer packet data processing section 27. In Fig. 2, the packet transfer apparatus 101 and 201 establish a peer and confirm the operation thereof by the peer establishing sections 21. A confirmation packet is transmitted periodically between them. The packet transfer apparatus 101 and the packet transfer apparatus 201 manage the peers by means of the peer management table 31, respectively. In the peer management table 31, data such as ports used for transferring a packet through each peer, groups and transmitters permitted to transfer a packet, fee charging data, communication quality data are registered. The packet transfer apparatus 101 and 201 operate as receivers of a multicast group respectively in accordance with the data stored in the peer management table 31 at the time of start. A sender 111 transmits a multicast packet 30 to the multicast packet group G1. Fig. 4 shows the structure of the multicast packet 30. Referring to Fig. 4, the multicast pack is composed of a header section of an IP header and a UDP header and a data. In the IP header, a group (destination) address G1 and a source (origination point) address S1 are written, and in the UDP header, a destination port P1 and a source (origination point) port P2 are written. The multicast packet 30 is transmitted from the sender 111 to the packet transfer apparatus 101 via a multicast route in the domain 10. The packet transfer apparatus 101 receives the packet 30 by the transfer data receiving section 25 and refers to the peer management table 31 by the packet converting section 22 to determine to which peer the packet 30 is to be transferred. In this example, a port number P3 is retrieved from the peer management table 31 as a port number of the packet transfer apparatus 201 When there is a peer to which the packet 30 is to be transferred, the packet transfer apparatus 101 next searches its own transfer packet data table 32 by the transfer packet data processing section 27 based on the destination address G1, the source address S1, the destination port P1 and a source port P2 of the IP header and the UDP header in the packet 30. Thus, a number of a port of the packet transfer apparatus 101 to be used to transfer the packet is determined, if an entry is found. In this example, the port number P4 is searched. When no entry is found in the transfer packet data table 32, a currently unused port number is acquired. The transfer packet data processing section 27 stores the acquired port number in the transfer packet data table 32 in correspondence to the destination address G1, the source address S1, the destination port P1 and a source port P2 of the IP header and the UDP header in the packet 30. Also, the packet converting section 22 searches the peer management table 13 to determine the peer and the destination port of the packet transfer apparatus 201. If the peer for the port number P4 is not yet established, the peer establishing section 21 establishes a new peer and stores in the peer management table 31. Then, the data transferring section 24 sends transfer packet data to the packet transfer apparatus 201 through the established peer. At this time, the transfer packet data is composed of destination (group) address G1 destination port P1 source (originator point) address S1 source (source point) port P2 source port P4. The packet transfer apparatus 201 receives the sent transfer packet data by the transfer data receiving section 25 and the transfer packet data processing section 27 registers the transfer packet data in its own transfer packet data table 32. After having sent the transfer packet data. the header rewriting section 26 of the packet transfer apparatus 101 rewrites the header of the multicast packet based on the transfer packet data, to produce a unicast packet. Fig. 5 shows the structure of a unicast packet 40 in which the header of the multicast packet has been rewritten. The unicast packet 40 is composed of a header section and a data section. The header section is composed of an IP header of a destination address R2 and a source (origination point) address R1, and a UDP header of a destination port P3 and a source port P4. The above-described destination port P3 is different from the destination port P1 of Fig. 4. The peer relating to the port P3 is exchanged in advance between the packet transfer apparatus 101 and 201 and is recorded in the peer management table 31. The unicast packet 40 is transmitted to the packet transfer apparatus 201 by the data transferring section 24. When receiving the unicast packet 40 with the destination port P3 from the packet transfer apparatus 101, the packet transfer apparatus 201 determines that the unicast packet 40 is a packet for a multicast packet. The transfer packet data processing section 27 of the packet transfer apparatus 201 searches the transfer packet data table 32 based on the transfer source port P4 of the received packet 40, and retrieves the group address G1, the destination port P1, the source address S1 and the source port P2 of the original multicast packet. The packet reproducing section 23 of the packet transfer apparatus 201 reproduces the original multicast packet 30 based on the retrieved transfer packet data. Subsequently, the packet transfer apparatus 201 transmits the reproduced original multicast packet 30 to the receiver 211 and 212 in its own domain 20. Thus, the multicast packet transmitted from the transmitter 111 is received by the receivers 211 and 212 through the packet transfer apparatuses 101 and 201. According to the present invention, since no encapsulation is required in transferring a multicast packet, fragmentation can be prevented.

Claims: A multicast packet transfer system comprising: a first packet transfer apparatus (101) which transmits transfer packet data relating to an IP header and a UDP header of a multicast packet when said multicast packet is received, rewrites a header section of said multicast packet to produce a unicast packet, and transmits said unicast packet; and a second packet transfer apparatus (201) which receives said transfer packet data and said unicast packet, and reproduces said multicast packet based on the received unicast packet and the received transfer packet data. The multicast packet transfer system according to claim 1, wherein said first packet transfer apparatus comprises: a transmitting section which produces said transfer packet data based on the received multicast packet to transmit to said second packet transfer apparatus; a header rewriting section which rewrites said header section of said multicast packet based on said transfer packet data to produce said unicast packet; and a packet transferring section which transfers said unicast packet to said second packet transfer apparatus. The multicast packet transfer system according to claim 2, wherein said transfer packet data includes said IP header and said UDP header of said multicast packet and a number of a port of said first packet transfer apparatus corresponding to said IP header and said UDP header. The multicast packet transfer system according to claim 3, wherein said first packet transfer apparatus further comprises: a peer establishing section which establishes a peer relating to said port number with said second packet transfer apparatus, and wherein said packet transferring section transfers said unicast packet to said second packet transfer apparatus through said established peer. The multicast packet transfer system according to claim 3 or 4, wherein said first packet transfer apparatus further comprises: a first transfer packet data table which stores said transfer packet data, and wherein said header rewriting section searches said first transfer packet data table based on said IP header and said UDP header of the received multicast packet to retrieve said port number when said port number is registered in said first transfer packet data table in correspondence to said IP header and said UDP header, and rewrites said header section of said multicast packet using said port number to produce said unicast packet. The multicast packet transfer system according to claim 5, wherein said header rewriting section selects an unused port of said first packet transfer apparatus when any port number corresponding to said IP header and said UDP header of the received multicast packet is not found, sets a number of the selected unused port as said port number, and stores the set port number in said first transfer packet data table in correspondence to said IP header and said UDP header. The multicast packet transfer system according to any of claims 1 to 6, wherein said second multicast packet transfer apparatus comprises: a second transfer packet data table which stores transfer packet data; a data receiving section which receives said transfer packet data from said first packet transfer apparatus to store in said second transfer packet data table; a packet receiving section which receives said unicast packet from said first packet transfer apparatus; and a reproducing section which retrieves the transfer packet data from said second transfer packet data table based on said header section of said unicast packet, and reproduces said received multicast packet using said retrieved transfer packet data. The multicast packet transfer system according to claim 7, wherein said transfer packet data contains a number of a port of said first packet transfer apparatus through which said unicast data is transferred, and said second packet transfer apparatus further comprises: a peer establishing section which establishes a peer relating to said port number with said first packet transfer apparatus, and wherein said packet receiving section receives said unicast packet from said first packet transfer apparatus through said established peer. A packet transfer apparatus as said first packet transfer apparatus according to any of claims 1 to 8. A packet transfer apparatus as said second packet transfer apparatus according to any of claims 1 to 8. A recording medium storing a program adapted to execute a method which comprises the steps of: (a) transmitting to a first packet transfer apparatus, first transfer packet data relating to an IP header and a UDP header of a first multicast packet when said first multicast packet is received; (b) rewriting a header section of said first multicast packet based on said first transfer packet data to produce a first unicast packet; (c) transmitting said first unicast packet to said first packet transfer apparatus; (d) receiving second transfer packet data and a second unicast packet from a second packet transfer apparatus; and (e) reproducing a second multicast packet based on said second unicast packet and said second transfer packet data. The recording medium according to claim 11, wherein said transfer packet data includes said IP header and said UDP header of said multicast packet and a port number corresponding to said IP header and said UDP header. The recording medium according to claim 11 or 12, wherein said method further comprises the step of: establishing a peer relating to said port number with said first packet transfer apparatus to transfer said first unicast packet to said first packet transfer apparatus through said established peer. The recording medium according to claim 13, wherein said (b) rewriting step comprises the step of: searching a transfer packet data table based on said IP header and said UDP header of said first multicast packet to retrieve said port number when said port number is registered in said transfer packet data table in correspondence to said IP header and said UDP header; and rewriting said header section of said multicast packet using said port number to produce said unicast packet. The recording medium according to claim 14, wherein said (b) rewriting step further comprises the steps of: selecting an unused port when any port number corresponding to said IP header and said UDP header is not found; setting a number of the selected unused port as said port number; and storing said set port number in said transfer packet data table in correspondence to said IP header and said UDP header of said first multicast packet. The recording medium according to any of claims 11 to 13, wherein said (d) receiving step comprises the step of: storing said second transfer packet data in transfer packet data table, and wherein said (e) reproducing step comprises the step of: retrieving said second transfer packet data from said transfer packet data table based on said header section of said second unicast packet; and reproducing an original multicast packet from said second unicast packet using said retrieved transfer packet data. The recording medium according to claim 16, wherein said second transfer packet data contains a number of a port of said second packet transfer apparatus through which said second unicast data is transferred, and wherein said method further comprises the step of: establishing a peer relating to said port number with said second packet transfer apparatus to receive said second unicast packet from said second packet transfer apparatus through said established peer. A multicast packet transfer method comprising at least one of the method steps of any of claims 11 to 17.

Inventors: ATSUSHI IWATA, MASAHIRO JIBIKI, TOMOHIKO YAGYU, ATSUSHI, IWATA., MASAHIRO, JIBIKI., TOMOHIKO, YAGYU, Atsushi, Iwata. NEC Corporation, Masahiro, Jibiki. NEC Corporation, Tomohiko, Yagyu NEC Corporation
Applicants: NIPPON ELECTRIC CO, NEC CORPORATION
Application year: 2001
Main classification: H04L12
IPC codes: H04L12, G06F13