WO2019205799A1 - 一种处理组播数据报文的方法及装置 - Google Patents
一种处理组播数据报文的方法及装置 Download PDFInfo
- Publication number
- WO2019205799A1 WO2019205799A1 PCT/CN2019/076214 CN2019076214W WO2019205799A1 WO 2019205799 A1 WO2019205799 A1 WO 2019205799A1 CN 2019076214 W CN2019076214 W CN 2019076214W WO 2019205799 A1 WO2019205799 A1 WO 2019205799A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- header
- multicast data
- packet
- data packet
- forwarding device
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/825—Involving tunnels, e.g. MPLS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/34—Source routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
Definitions
- the embodiments of the present invention relate to the field of communications technologies, and in particular, to a method and an apparatus for processing a multicast data packet.
- Multicast technology refers to the use of a specific multicast address to transmit multicast data packets to a host set corresponding to a multicast group according to the maximum delivery principle.
- the basic method is as follows: The source host sends only one multicast data packet, and its destination address is the multicast group address. All receivers in a multicast group can receive a multicast data packet.
- Bit index explicit replication (BIER) technology is a new multicast technology. Specifically, in a multicast network, each edge node is assigned a globally unique bit position. Each edge node floods its own bit position through the interior gateway protocol (IGP), so that other nodes in the network can know the edge nodes corresponding to each bit position.
- IGP interior gateway protocol
- the first edge node may encapsulate the BIER header in the multicast number message to be sent, where the BIER header includes a bit string.
- the bit string indicates that the multicast data message needs to be sent to the second edge node and the third edge node.
- the non-edge node in the network After receiving the multicast data packet containing the BIER header, the non-edge node in the network forwards the multicast data packet according to the bit string in the BIER header, so that the multicast data packet can reach the second edge node and the third. Edge node.
- the embodiment of the present application provides a method and an apparatus for processing a multicast data packet, which can reduce deployment cost and deployment difficulty.
- the first aspect provides a method for processing a multicast data packet, where the method includes: establishing a tunnel based on a segment routing header SRH between the first forwarding device and the third forwarding device, where the SRH-based tunnel does not support The bit index displays a second forwarding device that replicates the BIER; the first forwarding device generates a first multicast data packet according to the multicast data packet from the multicast source and the SRH-based tunnel, the first group
- the broadcast data packet includes a first packet header, a second packet header, and a multicast data packet from the multicast source, where the first packet header includes an SRH header, and the second packet header includes a destination address. An address of the second forwarding device, where the first forwarding device sends the first multicast data packet to the second forwarding device by using the SRH-based tunnel.
- the first multicast data packet further includes a third packet header, where the third packet header is encapsulated in the first packet header and the multicast data packet from the multicast source.
- the third header includes a BIER header, and the BIER header includes a bit string, and the bit string is used to indicate an edge node that receives a multicast data message from the multicast source.
- the SRH header includes a segment remaining SL, a first segment list, a second segment list, and a third segment list, where the value of the SL is 2, and the first segment list (SRH[0]) carries The multicast address, the second segment list (SRH[1]) carries the address of the third forwarding device, and the third segment list (SRH[2]) carries the address of the second forwarding device.
- the first forwarding device generates the first multicast data packet according to the multicast data packet from the multicast source and the SRH-based tunnel, including:
- the second aspect provides a method for processing a multicast data packet, where the method includes: the second forwarding device receives the first multicast data packet sent by the first forwarding device, where the first multicast data packet includes a first packet header, a second packet header, and a multicast data packet from the multicast source, where the first packet header includes an SRH header, and the second packet header includes a destination address of the second packet header Forwarding the address of the device; the second forwarding device obtains the second multicast data packet according to the first multicast data packet and the destination address included in the first multicast data packet, and the second group
- the broadcast data packet includes a third packet header, a fourth packet header, and a multicast data packet from the multicast source, where the third packet header is a different SRH header from the first packet header.
- the destination address of the fourth packet header is the address of the third forwarding device, and the second forwarding device sends the second group to the third forwarding device according to the destination address included in the fourth packet header. Broadcast data message.
- the second multicast data packet further includes a fifth packet header, where the fifth packet header is encapsulated in the third packet header and the multicast data packet from the multicast source.
- the fifth header includes a BIER header, and the BIER header includes a bit string, and the bit string is used to indicate an edge node that receives a multicast data message from the multicast source.
- the SRH header includes a segment remaining SL, a first segment list, a second segment list, and a third segment list, where the value of the SL is 1, and the first segment list (SRH[0]) carries The multicast address, the second segment list (SRH[1]) carries the address of the third forwarding device, and the third segment list (SRH[2]) carries the address of the second forwarding device.
- the second forwarding device obtains the second multicast data packet according to the first multicast data packet and the destination address that is included in the first multicast data packet, including:
- the second forwarding device decrements the SL value in the first packet header by 1, the third packet header is obtained;
- the second forwarding device replaces the parameter carried in the second segment list in the third packet header with the destination address of the second packet header according to the value of the SL in the third packet header.
- the second forwarding device obtains the second multicast data packet according to the third packet header, the fourth packet header, and the multicast data packet from the multicast source.
- a third aspect a method for processing a multicast data packet, the method includes: the first forwarding device obtains a second multicast data packet according to the first multicast data packet, and the first multicast datagram The multicast data packet from the multicast source, or the multicast data packet from the second forwarding device that does not support the BIER, the second multicast data packet includes a bit string; the first forwarding device And sending, according to the bit string, the second multicast data message to a corresponding edge node.
- the multicast data packet from the second forwarding device that does not support the BIER includes a first packet header, a second packet header, and a multicast data packet from the multicast source, where the first packet
- the header includes an SRH header
- the destination address of the second packet header is an address of the first forwarding device.
- the destination address of the second multicast data packet is a multicast address, where the multicast address is used to indicate that the first forwarding device forwards according to the bit string.
- a fourth forwarding device includes: an establishing unit, configured to establish a tunnel based on a segment routing header SRH with the third forwarding device, where the SRH-based tunnel does not support
- the bit index displays a second forwarding device that replicates the BIER
- the generating unit is configured to generate a first multicast data packet according to the multicast data packet from the multicast source and the SRH-based tunnel, where the first multicast
- the data packet includes a first packet header, a second packet header, and a multicast data packet from the multicast source.
- the first packet header includes an SRH header
- the second packet header includes a destination address.
- An address of the second forwarding device, where the sending unit is configured to send the first multicast data packet to the second forwarding device by using the SRH-based tunnel.
- the first multicast data packet further includes a third packet header, where the third packet header is encapsulated in the first packet header and the multicast data packet from the multicast source.
- the third header includes a BIER header, and the BIER header includes a bit string, and the bit string is used to indicate an edge node that receives a multicast data message from the multicast source.
- the SRH header includes a segment remaining SL, a first segment list, a second segment list, and a third segment list, where the value of the SL is 2, and the first segment list (SRH[0]) carries The multicast address, the second segment list (SRH[1]) carries the address of the third forwarding device, and the third segment list (SRH[2]) carries the address of the second forwarding device.
- the generating device is specifically configured to: write the obtained multicast address into the first segment list, and write the address of the second forwarding device carried by the third segment list (SRH[2]) And entering a destination address of the second packet header to generate the first multicast data packet.
- a fifth forwarding device includes: a receiving unit, configured to receive a first multicast data packet sent by the first forwarding device, where the first multicast data packet includes a first packet header, a second packet header, and a multicast data packet from the multicast source, where the first packet header includes an SRH header, and the second packet header includes a destination address of the second packet header And an obtaining unit, configured to obtain a second multicast data packet according to the first multicast data packet and the destination address included in the first multicast data packet, where the second multicast The data packet includes a third packet header, a fourth packet header, and a multicast data packet from the multicast source, where the third packet header is an SRH header different from the first packet header, The destination address of the fourth packet header is the address of the third forwarding device, and the sending unit is configured to send the second multicast data to the third forwarding device according to the destination address included in the fourth packet header.
- a receiving unit configured to receive a first multicast data packet sent by the first forwarding device, where the
- the second multicast data packet further includes a fifth packet header, where the fifth packet header is encapsulated in the third packet header and the multicast data packet from the multicast source.
- the fifth header includes a BIER header, and the BIER header includes a bit string, and the bit string is used to indicate an edge node that receives a multicast data message from the multicast source.
- the SRH header includes a segment remaining SL, a first segment list, a second segment list, and a third segment list, where the value of the SL is 1, and the first segment list (SRH[0]) carries a group.
- the broadcast address, the second segment list (SRH[1]) carries the address of the third transfer device, and the third segment list (SRH[2]) carries the address of the second forwarding device.
- the obtaining unit is specifically configured to: after the SL value in the first packet header is decremented by one, obtain the third packet header; according to the value of the SL in the third packet header Substituting the parameter carried in the second segment list in the third packet header with the destination address of the second packet header to obtain the fourth packet header; according to the third packet header, And obtaining, by the fourth packet header, the multicast data packet from the multicast source, the second multicast data packet.
- a first forwarding device includes: an obtaining unit, configured to obtain a second multicast data packet according to the first multicast data packet, where the first multicast data is The packet is a multicast data packet from the multicast source, or a multicast data packet from a second forwarding device that does not support the BIER, the second multicast data packet includes a bit string, and the sending unit is configured to: And sending, according to the bit string, the second multicast data message to a corresponding edge node.
- the multicast data packet from the second forwarding device that does not support the BIER includes a first packet header, a second packet header, and a multicast data packet from the multicast source, where the first packet
- the header includes an SRH header
- the destination address of the second packet header is an address of the first forwarding device.
- the destination address of the second multicast data packet is a multicast address, where the multicast address is used to indicate that the first forwarding device forwards according to the bit string.
- a computer storage medium is provided, the computer storage medium being operative to store computer program instructions, the computer program instructions being operative to perform the method of the first, second or third aspect described above.
- a forwarding device comprising a memory and a processor, the memory for storing an instruction, the processor reading the instruction from the memory to perform the first aspect, The method provided by the second aspect or the third aspect.
- FIG. 1 is a schematic diagram of a network scenario according to Embodiment 1 of the present application.
- FIG. 2 is a schematic diagram of another network scenario according to Embodiment 1 of the present application.
- FIG. 3 is a schematic structural diagram of a multicast data packet according to Embodiment 1 of the present application.
- FIG. 4 is a schematic structural diagram of another multicast data packet according to Embodiment 1 of the present application.
- FIG. 5 is a schematic flowchart of a method for processing a multicast data packet according to Embodiment 1 of the present application.
- FIG. 6 is a schematic diagram of a network scenario according to Embodiment 2 of the present application.
- FIG. 7 is a schematic flowchart of a method for processing a multicast data packet according to Embodiment 2 of the present application.
- FIG. 8 is a schematic structural diagram of a first forwarding device according to Embodiment 1 of the present application.
- FIG. 9 is a schematic structural diagram of a second forwarding device according to Embodiment 1 of the present application.
- FIG. 10 is a schematic structural diagram of a third forwarding device according to Embodiment 1 of the present application.
- FIG. 11 is a schematic structural diagram of a first forwarding device according to Embodiment 2 of the present application.
- FIG. 12 is a schematic structural diagram of a second forwarding device according to Embodiment 2 of the present application.
- FIG. 13 is a schematic structural diagram of a third forwarding device according to Embodiment 2 of the present application.
- FIG. 1 and FIG. 2 respectively provide two scenarios of the first embodiment, that is, A1 is an intermediate node in the scenario of FIG. 1, and A1 is a root node in the scenario of FIG. 2.
- the intermediate nodes of the multicast tree include A9, A2, A3, and A4.
- the leaf nodes of the multicast tree include A5 and A6.
- A9 and A2 are forwarding devices that do not support the BIER technology.
- A1, A3, A4, A5 and A6 support BIER technology.
- A1, A9, A2, A3, A4, A5, and A6 support the sixth edition of Internet Protocol version 6, IPv6 technology and IPv6 Segment Routing (SRv6) technology.
- a tunnel can be established between A1 and A3.
- the tunnel can be a segment based on a segment routing header (SRH).
- A3 to A5 can use BIER technology to transmit multicast data packets.
- A3 to A6 can use BIER technology to transmit multicast data packets.
- A9, A2, A3, and A4 can flood their respective segment identifiers (SIDs) in the network through IGPs, so that each node in the network that supports SRv6 can learn the SIDs of other nodes.
- A5 and A6 can flood their respective bit positions in the network through the IGP, so that the nodes supporting the BIER in the network can know the bit position of the edge node.
- Nodes supporting BIER technology A1, A3, A4, A5, and A6, each set a common multicast address.
- This multicast address is used to indicate BIER information.
- A1, A3, A4, A5, and A6 can obtain the multicast address by setting the multicast address through the configuration of each node, or specifying the multicast address through a protocol, or carrying the multicast address through IGP flooding, or The multicast address is carried by the PIM protocol, and the multicast address is determined to indicate BIER information.
- A1 when A1 is the root node, A1 receives the multicast data packet sent by the multicast source (S1 in Figure 2) through the user edge device (CE0 in Figure 2), as shown in Figure 1.
- User IP packet customer IP packet
- A1 can know according to the setting that the user internet protocol message needs to be sent to A5 and A6.
- A1 may encapsulate the first packet header, the second packet header, and the third packet header layer by layer on the received user internet protocol packet to obtain the first multicast data packet.
- the third packet header is located on the outer layer of the second packet header
- the second packet header is located on the outer layer of the first packet header
- the first packet header is located in the user internet protocol. The outer layer of the message.
- the first packet header may be an IPv6 destination option header in FIG. 3.
- the first packet header contains a TLV
- the Type value in the TLV indicates that the content in the TLV contains a BIER header.
- the Value section of the TLV contains the entire BIER header.
- the Medium Type value of the TLV in the first packet is carried in the option type field in FIG.
- the Value portion of the TLV in the first header is carried in the BIER header field in FIG.
- the BIER header in Figure 3 includes a bit string that is used to identify A5 and A6.
- the bit string indicates that the multicast data packet carrying the bit string needs to be routed to A5 and A6.
- the value of the next header (NH) field in the first header is 59.
- the value of the NH field is used to identify that the first packet header does not carry other extension headers, that is, the first packet header is a multicast data packet (such as customer IP packet in FIG. 1).
- the second packet header is the SRH in FIG.
- the SRH includes three SIDs, each of which is a 128-bit IPv6 address.
- the SID can be carried in the segment list (SL) field in FIG. SRH[2] in Fig. 2 is the Segment List [2] in Fig. 3.
- SRH[1] in Fig. 2 is the Segment List [1] in Fig. 3.
- SRH[0] in Fig. 2 is the Segment List [0] in Fig. 3.
- the SL in FIG. 2 is the Segment Left field in FIG. A1 determines that the multicast data packet passes through A2 according to the SID of each node learned by the setting and flooding, and the end point of the SRH-based tunnel is A3.
- A1 writes the multicast address indicating the BIER information into SRH[0] (the last segment of SRH) in the second header.
- A1 determines that the end point of the SRH-based tunnel is A3, and writes the SID of A3 into SRH[1] (the penultimate segment of SRH) in the second packet header.
- the SID of A3 can be an IP address on the A3 node.
- An IP address on the A3 node indicates on the A3 node that the segment, the SRH, and the IPv6 Destination Option Header of the segment and the subsequent multicast address are processed.
- an IP address on the A3 node can be represented as A3::BF.
- A1 determines that the SRH-based tunnel needs to go through A2, and then writes the prefix SID of A2 into SRH[2] in the second packet header.
- the prefix SID of A2 can be expressed as A2::11.
- the prefix SID of A2 may be replaced by the SID of other forms of A2, which is not limited in this embodiment of the present application.
- A1 assigns the second header (SL in Figure 2) to 2, indicating that segment is SRH[2].
- the route type in the second packet header is assigned a value representing the SRH, for example, it can be assigned a value of 4.
- the value of the NH field in the second header is 60.
- the value of the NH field is used to identify the first packet header after the second packet header, that is, the IPv6 destination specification header in FIG.
- the third packet header is the IPv6 header of FIG. 3.
- A1 sets the address corresponding to the SRH specified by the value of the SL in the third header, that is, the SID of A2 in the SRH[2] field in FIG. 2 as the destination address (DA) in the IPv6 header.
- A1 sets the source address (SA) in the third packet header to the address of A1.
- the value of the NH field in the third header is 43.
- the value of the NH field is used to identify the third packet header followed by an IPv6 routing header.
- the second packet header in the embodiment of the present application is a specific example of the IPv6 routing header, that is, the SRH in FIG. 3 is a subtype of the IPv6 routing header.
- A1 sends a first multicast data packet to A9.
- A9 determines that the destination address in the third packet header is not itself, and does not check any other IPv6 extension headers. The A9 does not process the received first multicast data packet, and sends the first multicast data packet to the device identified by the destination address (A2 in FIG. 2).
- A2 After receiving the first multicast data packet, A2 determines that the destination address in the third packet header is itself.
- the parameter carried in the destination address in the third packet header indicates a segment of SRv6 on A2.
- A2 starts the first SRv6 endpoint function (such as the SRv6 end function in FIG. 2) according to the indication and the first multicast data packet, and obtains the second multicast data packet.
- the value of SL of SRH is greater than 0, the value obtained by subtracting the value of SL from 1 is used as the value of SL in the SRH of the second multicast data message, as shown in FIG. 2,
- the SL in the second multicast data packet is 1.
- A3 After receiving the second multicast data packet, A3 determines that the destination address in the third packet header is itself.
- the parameter carried in the destination address in the third packet header indicates a segment of SRv6 on A3.
- A3 starts the second SRv6 endpoint function (such as SRv6 end.BF function in FIG. 2) according to the indication and the second multicast data packet, and obtains the third multicast data packet.
- the process included in the indication is: decrementing the SL value in the second multicast data packet by 1 (the result of subtracting 1 is 0), and setting the Destination Address in the third packet header of the third multicast data packet.
- Update to the address carried by SRH[0] (multicast address in Figure 2); when SL is equal to 0, update the value of NH in the third header to the value of NH in SRH, and pop up the second group.
- the SRH in the data message is broadcast.
- A3 obtains a third multicast data message.
- the third multicast data packet does not include the SRH, that is, the third multicast data packet includes a first packet header and a third packet header, and the third packet header is encapsulated outside the first packet header, and the first packet is encapsulated.
- the header is encapsulated in the outer layer of the customer IP packet.
- the DA included in the third packet header of the third multicast data packet is a multicast address, and the multicast address indicates that the content of the first packet header is to be checked, that is, located in the third multicast datagram.
- the multicast address in the DA field of the text indicates the meaning of forwarding by BIER.
- the value of the NH in the third packet header of the third multicast data packet is 60. For the specific meaning, refer to the corresponding content of the second multicast data packet.
- A3 reads the bit string included in the BIER header of the IPv6 Destination Option Header in the packet according to the indication of the multicast address.
- A3 queries the BIER forwarding table based on the information of the bit string.
- the BIER forwarding table may include a correspondence between bit positions and ports.
- A3 may determine that the third multicast data message needs to be sent to A5 and A6 according to the information carried in the BIER header, and the path to A5 and A6 needs to pass through the neighbor device, that is, A4 in FIG. 1 and FIG. 2.
- A4 After receiving the third multicast data packet, A4 determines that the destination address of the third multicast data packet is a multicast group address.
- the multicast group address indicates that A4 wants to copy and forward the third multicast data packet.
- A4 reads, according to the indication, a bit string included in a BIER header of an IPv6 Destination Option Header in a first packet header of the third multicast data packet.
- A4 queries the BIER forwarding table according to the information in the bit string to determine the neighbor device of the third multicast data message.
- the neighbor devices of the third multicast data packet determined by A4 include A5 and A6.
- A4 will copy a fourth multicast data packet to A5, and A4 will copy a fifth multicast data packet to A6.
- the fourth multicast data packet includes a first packet header and a third packet header.
- the fifth multicast data packet includes a first packet header and a third packet header.
- the bit string in the BIER header in the first packet header of the fourth multicast data packet may be different from the third multicast data packet.
- the bit string in the BIER header in the first packet header of the fifth multicast data packet may be different from the third multicast data packet.
- A5 receives the fourth multicast data packet, and determines that the BitString in the BIER header in the IPv6 Destination Option Header in the fourth multicast data packet includes the Bit bit of A5.
- A5 pops up the third packet header and the first packet header from the fourth multicast data packet to obtain the customer IP packet. As shown in Figure 2, A5 can send customer IP packet to R1 through CE1, so that the customer receives the customer IP packet through R1.
- A6 receives the fifth multicast data packet, and determines that the BitString in the BIER header in the IPv6 Destination Option Header in the fifth multicast data packet includes the Bit bit of A6.
- A6 pops up the third packet header and the first packet header from the fifth multicast data packet to obtain the customer IP packet. As shown in Figure 2, A6 can send customer IP packet to R2 through CE2, so that the customer receives the customer IP packet through R2.
- A1 may process the received multicast data packet according to the method for generating the first multicast data packet to obtain the first multicast data packet.
- A1 can be a root node or an intermediate node.
- A1 is a forwarding device that does not support BIER technology, such as the last hop node of A9 and A2.
- the last hop node is the last hop node of a node in the direction from the root node to the leaf node. That is, compared to A2, A1 is a node close to the root node or the multicast source.
- the parameters included in the BIER header and the definition of the parameters in the embodiment of the present application can be found in RFC8296.
- a multicast data packet is transmitted between the A1 and the A3 through the SRH-based tunnel.
- a multicast data packet is transmitted between A3 and A5 through the BIER technology.
- A3 and A6 transmit multicast data packets through the BIER technology.
- the first forwarding device generates a first multicast data packet, where the first multicast data packet includes a third packet header, a second packet header, a first packet header, and a data packet sent by the multicast source. Text.
- the first forwarding device is A1 in FIG. 1 or FIG. 2.
- the third packet header, the second packet header, and the first packet header refer to the corresponding description in the embodiment corresponding to FIG. 1 to FIG. 4.
- the data packet sent by the multicast source may be the customer IP packet in the embodiment corresponding to FIG. 1 to FIG. 4.
- For the first forwarding device to generate the first multicast data packet refer to the method for obtaining the first multicast data packet by A1 in the embodiment corresponding to FIG. 1 to FIG.
- the first forwarding device sends the first multicast data packet to the second forwarding device according to the destination address of the first multicast data packet.
- the second forwarding device obtains the second multicast data packet according to the first multicast data packet and the second packet header in the first multicast data packet.
- the method for obtaining the second multicast data packet by the second forwarding device may participate in the method of obtaining the second multicast data packet by using A2 in the embodiment corresponding to FIG. 1 to FIG.
- the second forwarding device sends the second multicast data packet to the third forwarding device according to the destination address of the second multicast data packet.
- the third forwarding device obtains the third multicast data packet according to the second packet header in the second multicast data packet and the second multicast data packet.
- the method for obtaining the third multicast data packet by the third forwarding device refer to the method for obtaining the third multicast data packet in A3 in the embodiment corresponding to FIG. 1 to FIG.
- the parameters included in the third multicast data packet and the meaning of each parameter refer to the embodiments corresponding to FIG. 1 to FIG. 4.
- the third forwarding device sends a third multicast data packet to the corresponding edge node according to the first packet header in the third multicast data packet.
- the method for the third forwarding device to send the third multicast data packet to the corresponding edge node is as follows: In the embodiment corresponding to FIG. 1 to FIG. 4, A3 sends the corresponding multicast data packet to A5 and A6 through A4. method.
- the forwarding device in the IPv6 network can be upgraded to a forwarding device that supports the BIER technology without performing device upgrade, and the BIER multicast replication is performed to help reduce the deployment cost. And deployment difficulty.
- the method provided in Embodiment 1 of the present application is performed by the first forwarding device and the third forwarding.
- An SRH-based tunnel is established between the devices to implement BIER IPv6 deployment and forwarding of multicast data packets based on BIER technology.
- the method provided in the first embodiment of the present application encapsulates the BIER header by using an IPv6 Destination Option Header, and uses a multicast address as the destination address of the IPv6 header to indicate that the multicast data packet is grouped according to the BIER header in the IPv6 Destination Option Header.
- Broadcast replication forwarding realizing the replication and forwarding of the multicast BIER under the IPv6 network, thereby supporting the operation and deployment of the BIER on multiple links, as long as these links can support IPv6, the method can be deployed according to the method of the present invention.
- the method provided in Embodiment 1 of the present application defines a new Segment type (or SID type), that is, an SID corresponding to A3.
- the SID indicates that the forwarding of the SRv6 processes the segment of the segment and the subsequent multicast address, the entire SRH header, and the IPv6 Destination Option Header after the SRH header, and pops the SRH header and performs BIER forwarding.
- FIG. 6 is a schematic diagram of a network scenario according to Embodiment 2 of the present application.
- the network scenario provided in the second embodiment is different from the network scenario provided in the first embodiment.
- A3 and CE0 in the network scenario provided in the second embodiment are connected, and A1, A9 and A2 in the first embodiment are omitted.
- A3 can receive the customer IP packet sent by the multicast source S1 through CE0.
- S1, CE0, and customer IP packet refer to the corresponding content in Embodiment 1.
- A3 may encapsulate the first packet header and the second packet header on the customer IP packet to obtain the first multicast data packet.
- the parameters included in the first multicast data packet and the meaning of each parameter in the second embodiment refer to the corresponding content of the third multicast data packet in the first embodiment.
- the parameters included in the first packet header and the meaning of the parameters in the second embodiment refer to the corresponding content of the first packet header in the first embodiment.
- the meanings of the parameters included in the second packet header and the parameters in the second embodiment refer to the corresponding content of the third packet header in the first embodiment.
- the first forwarding device generates a first multicast data packet.
- the first forwarding device is 3 in FIG. 1 to FIG. 6.
- For the method for the first forwarding device to generate the first multicast data packet refer to the method for generating the first multicast data packet in A3 in FIG.
- the first forwarding device sends the first multicast data packet to the corresponding edge node according to the first packet header in the first multicast data packet.
- the method for the first forwarding device to send the first multicast data packet to the corresponding edge node For the method for the first forwarding device to send the first multicast data packet to the corresponding edge node, the method for sending the multicast data packet to A5 and A6 through A4 in FIG.
- the method provided in the third embodiment of the present application is an improvement on the method provided in the first embodiment.
- the first multicast packet generated by the A1 may not include the first packet header, that is, the first multicast packet generated by the A1 may not include the IPv6 destination option header.
- A3 When A3 generates the third multicast data packet, the second packet header is popped up and the first packet header is added.
- the third multicast data packet generated by A1 does not include the SRH header but includes the IPv6 destination option header.
- the method for generating the corresponding multicast data message by A1 and A3 can be combined and modified in the first embodiment and the second embodiment, and details are not described herein.
- the structure of the first forwarding device provided in the first embodiment of the present application is described below with reference to FIG.
- the first forwarding device may be A1 mentioned in Figures 1 to 6.
- the first forwarding device includes: an establishing unit 801, a generating unit 802, and a sending unit 803.
- the establishing unit 801 is configured to establish a tunnel based on the segment routing header SRH with the third forwarding device, where the SRH-based tunnel displays the second forwarding device that replicates the BIER by not supporting the bit index.
- the generating unit 802 is configured to generate a first multicast data packet according to the multicast data packet from the multicast source and the SRH-based tunnel, where the first multicast data packet includes a first packet header And a second packet header and a multicast data packet from the multicast source, where the first packet header includes an SRH header, and the second packet header includes a destination address that is an address of the second forwarding device.
- the sending unit 803 is configured to send the first multicast data packet to the second forwarding device by using the SRH-based tunnel.
- the first multicast data packet further includes a third packet header, where the third packet header is encapsulated in the first packet header and the multicast data packet from the multicast source.
- the third header includes a BIER header, and the BIER header includes a bit string, and the bit string is used to indicate an edge node that receives a multicast data message from the multicast source.
- the SRH header includes a segment remaining SL, a first segment list, a second segment list, and a third segment list, where the value of the SL is 2, and the first segment list (SRH[0]) carries The multicast address, the second segment list (SRH[1]) carries the address of the third forwarding device, and the third segment list (SRH[2]) carries the address of the second forwarding device.
- the generating device 802 is specifically configured to: write the obtained multicast address into the first segment list, and write the address of the second forwarding device carried by the third segment list (SRH[2]) And entering a destination address of the second packet header to generate the first multicast data packet.
- the structure of the second forwarding device is described in the first embodiment of the present application with reference to FIG.
- the second forwarding device is A2 mentioned in Figures 1 to 6.
- the second forwarding device includes: a receiving unit 901, an obtaining unit 902, and a sending unit 903.
- the receiving unit 901 is configured to receive the first multicast data packet sent by the first forwarding device, where the first multicast data packet includes a first packet header, a second packet header, and multicast data from the multicast source. And a message header, where the first packet header includes an SRH header, and the second packet header includes a destination address that is an address of the second forwarding device.
- the obtaining unit 902 is configured to obtain a second multicast data packet according to the first multicast data packet and the destination address included in the first multicast data packet, where the second multicast data packet includes a third packet header, a fourth packet header, and a multicast data packet from the multicast source, where the third packet header is an SRH header different from the first packet header, and the fourth packet header
- the destination address included is the address of the third forwarding device.
- the sending unit 903 is configured to send the second multicast data packet to the third forwarding device according to the destination address included in the fourth packet header.
- the second multicast data packet further includes a fifth packet header, where the fifth packet header is encapsulated in the third packet header and the multicast data packet from the multicast source.
- the fifth header includes a BIER header, and the BIER header includes a bit string, and the bit string is used to indicate an edge node that receives a multicast data message from the multicast source.
- the SRH header includes a segment remaining SL, a first segment list, a second segment list, and a third segment list, where the value of the SL is 1, and the first segment list (SRH[0]) carries The multicast address, the second segment list (SRH[1]) carries the address of the third forwarding device, and the third segment list (SRH[2]) carries the address of the second forwarding device.
- the obtaining unit 902 is specifically configured to: after the SL value in the first packet header is decremented by one, obtain the third packet header; according to the value of the SL in the third packet header Substituting the parameter carried in the second segment list in the third packet header with the destination address of the second packet header to obtain the fourth packet header; according to the third packet header, And obtaining, by the fourth packet header, the multicast data packet from the multicast source, the second multicast data packet.
- the third forwarding device includes an obtaining unit 1001 and a transmitting unit 1002.
- the obtaining unit 1001 is configured to obtain, according to the first multicast data packet, a second multicast data packet, where the first multicast data packet is a multicast data packet from a multicast source, or is not supported by BIER.
- the multicast data packet of the second forwarding device, where the second multicast data packet includes a bit string.
- the sending unit 1002 is configured to send the second multicast data packet to the corresponding edge node according to the bit string.
- the multicast data packet from the second forwarding device that does not support the BIER includes a first packet header, a second packet header, and a multicast data packet from the multicast source, where the first packet
- the header includes an SRH header
- the destination address of the second packet header is an address of the first forwarding device.
- the destination address of the second multicast data packet is a multicast address, where the multicast address is used to indicate that the first forwarding device forwards according to the bit string.
- the first forwarding device includes a memory 1101, a processor 1102, a communication interface 1103, and a bus 1104.
- the processor 1102 is configured to read program instructions from the memory 1101 to perform the method performed by A1 in the first embodiment.
- the second forwarding device includes a memory 1201, a processor 1202, a communication interface 1203, and a bus 1204.
- the processor 1202 is configured to read program instructions from the memory 1201 to perform the method performed by A2 in the first embodiment.
- the third forwarding device includes a memory 1301, a processor 1302, a communication interface 1303, and a bus 1304.
- the processor 1302 is configured to read program instructions from the memory 1301 to perform the method performed by A3 in the first embodiment or the second embodiment.
- the processor may be a central processing unit, a general purpose processor, a digital signal processor, an application specific integrated circuit, a field programmable gate array or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof. It is possible to implement or carry out the various illustrative logical blocks, modules and circuits described in connection with the present disclosure.
- the processor may also be a combination of computing functions, for example, including one or more microprocessor combinations, combinations of digital signal processors and microprocessors, and the like.
- the bus may be a peripheral component interconnect (PCI) bus or an extended industry stANDard architecture (EISA) bus.
- PCI peripheral component interconnect
- EISA extended industry stANDard architecture
- the bus can be divided into an address bus, a data bus, a control bus, and the like. For convenience of representation, only one thick line is shown in FIGS. 11 to 13, but it does not mean that there is only one bus or one type of bus.
- the general purpose processor referred to in the embodiments of the present application may be a microprocessor or the processor may be any conventional processor.
- the steps of the method disclosed in the embodiments of the present invention may be directly implemented as a combination of hardware and software modules in the processor.
- the code that implements the above functions can be stored in a computer readable medium.
- Computer readable media includes computer storage media.
- a storage medium may be any available media that can be accessed by a computer.
- the computer readable medium may be a random access memory (English full name is random-access memory, abbreviated as RAM in English), read-only memory (English full name is read-only memory, English abbreviation for ROM) , electrically erasable programmable read-only memory (English full name electrically programmable programmable read-only memory, English abbreviation for EEPROM), read-only optical disk (English full name compact disk read-only memory, English abbreviation for CD-ROM) or other Optical disk storage, magnetic disk storage media or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer.
- RAM random access memory
- read-only memory English full name is read-only memory, English abbreviation for ROM
- electrically erasable programmable read-only memory English full name electrically programmable programmable read-only memory, English abbreviation for EEPROM
- read-only optical disk English full name compact
- the computer readable medium may be a compact disc (English full name compact disk, abbreviated as CD), a laser disc, a digital video disc (English full name digital video disc, abbreviated as DVD), a floppy disk or a Blu-ray disc.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种处理组播数据报文的方法和转发设备。其中,所述方法包括:第一转发设备与第三转发设备之间建立基于段路由头SRH的隧道,所述基于SRH的隧道经过不支持比特索引显示复制BIER的第二转发设备;所述第一转发设备根据来自组播源的组播数据报文和所述基于SRH的隧道,生成第一组播数据报文,所述第一组播数据报文包括第一报文头、第二报文头和来自组播源的组播数据报文,所述第一报文头包括SRH头,所述第二报文头包括的目的地址为所述第二转发设备的地址;所述第一转发设备通过所述基于SRH的隧道,向所述第二转发设备发送所述第一组播数据报文。
Description
本申请要求于2018年4月27日提交中国专利局、申请号为CN 201810395277.7、发明名称为“一种处理组播数据报文的方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请实施例涉及通信技术领域,尤其涉及一种处理组播数据报文的方法及装置。
组播技术是指通过使用特定的组播地址,按照最大投递原则,可以将组播数据报文传输到组播组(Multicast Group)对应的主机集合。其基本方法是:源主机只发送一份组播数据报文,其目的地址为组播组地址。组播组中的所有接收者均可以收到一份组播数据报文。基于比特索引的显式复制(bit index explicit replication,BIER)技术是一种新的组播技术。具体的,在组播网络中,每个边缘节点被分配一个全局唯一的比特位置(bit position)。每个边缘节点将自己的比特位置通过内部网关协议(interior gateway protocol,IGP)在网络中泛洪,使得网络中其他节点可获知每个比特位置所对应的边缘节点。当第一边缘节点向第二边缘节点和第三边缘节点发送组播数据时,第一边缘节点可在待发送的组播数报文中封装BIER头,该BIER头包括比特串(bitstring)。该比特串表示该组播数据报文需要被发送至第二边缘节点和第三边缘节点。当网络中的非边缘节点收到包含有BIER头的组播数据报文之后,根据BIER头中的比特串转发组播数据报文,以便组播数据报文可到达第二边缘节点和第三边缘节点。
当在组播网络中部署上述BIER技术时,需要组播网络中的设备支持BIER技术。但现网中的设备需要通过升级才能支持BIER技术,这就会造成BIER技术的部署成本较高和部署难度较大。
发明内容
本申请的实施例提供一种处理组播数据报文的方法及装置,能够降低部署成本和部署难度。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供一种处理组播数据报文的方法,所述方法包括:第一转发设备与第三转发设备之间建立基于段路由头SRH的隧道,所述基于SRH的隧道经过不支持比特索引显示复制BIER的第二转发设备;所述第一转发设备根据来自组播源的组播数据报文和所述基于SRH的隧道,生成第一组播数据报文,所述第一组播数据报文包括第一报文头、第二报文头和来自组播源的组播数据报文,所述第一报文头包括SRH头,所述第二报文头包括的目的地址为所述第二转发设备的地址;所述第一转发设备通过所述基于SRH的隧道,向所述第二转发设备发送所述第一组播数据报文。
可选地,所述第一组播数据报文还包括第三报文头,所述第三报文头封装于所述第一报文头与所述来自组播源的组播数据报文之间,所述第三报文头包括BIER头,所述BIER头包括比特串,所述比特串用于指示接收来自组播源的组播数据报文的边缘节点。
可选地,所述SRH头包括段剩余SL、第一段列表、第二段列表和第三段列表,所述SL的数值为2,所述第一段列表(SRH[0])携带有组播地址,所述第二段列表(SRH[1])携带有所述第三转设备的地址,所述第三段列表(SRH[2])携带有所述第二转发设备的地址。
可选地,所述第一转发设备根据来自组播源的组播数据报文和所述基于SRH的隧道,生成第一组播数据报文包括:
所述第一转发设备将获取的组播地址写入所述第一段列表,并将所述第三段列表(SRH[2])携带的所述第二转发设备的地址写入所述第二报文头的目的地址,以生成所述第一组播数据报文。
第二方面,提供一种处理组播数据报文的方法,所述方法包括:第二转发设备接收第一转发设备发送的第一组播数据报文,所述第一组播数据报文包括第一报文头、第二报文头和来自组播源的组播数据报文,所述第一报文头包括SRH头,所述第二报文头包括的目的地址为所述第二转发设备的地址;所述第二转发设备根据所述第一组播数据报文和所述第一组播数据报文包括的目的地址,获得第二组播数据报文,所述第二组播数据报文包括第三报文头、第四报文头和来自组播源的组播数据报文,所述第三报文头是与所述第一报文头不同的SRH头,所述第四报文头包括的目的地址为第三转发设备的地址;所述第二转发设备根据所述第四报文头包括的目的地址,向所述第三转发设备发送所述第二组播数据报文。
可选地,所述第二组播数据报文还包括第五报文头,所述第五报文头封装于所述第三报文头与所述来自组播源的组播数据报文之间,所述第五报文头包括BIER头,所述BIER头包括比特串,所述比特串用于指示接收来自组播源的组播数据报文的边缘节点。
可选地,所述SRH头包括段剩余SL、第一段列表、第二段列表和第三段列表,所述SL的数值为1,所述第一段列表(SRH[0])携带有组播地址,所述第二段列表(SRH[1])携带有所述第三转设备的地址,所述第三段列表(SRH[2])携带有所述第二转发设备的地址。
可选地,所述第二转发设备根据所述第一组播数据报文和所述第一组播数据报文包括的目的地址,获得第二组播数据报文包括:
所述第二转发设备将所述第一报文头中的SL数值减1后,获得所述第三报文头;
所述第二转发设备根据所述第三报文头中的SL的数值,将所述第三报文头中的第二段列表携带的参数替换所述第二报文头的目的地址,获得所述第四报文头;
所述第二转发设备根据所述第三报文头、所述第四报文头和所述来自组播源的组播数据报文,获得所述第二组播数据报文。
第三方面,一种处理组播数据报文的方法,所述方法包括:第一转发设备根据第一组播数据报文,获得第二组播数据报文,所述第一组播数据报文是来自组播源的组播数据报文,或是来自不支持BIER的第二转发设备的组播数据报文,所述第二组播数据报文包括比特串;所述第一转发设备根据所述比特串,向相应的边缘节点发送所述第二组播数据报文。
可选地,所述来自不支持BIER的第二转发设备的组播数据报文包括第一报文头、第二报文头和来自组播源的组播数据报文,所述第一报文头包括SRH头,所述第二报文头的目的地址为所述第一转发设备的地址。
可选地,所述第二组播数据报文的目的地址是组播地址,所述组播地址用于指示所述第一转发设备根据所述比特串进行转发。
第四方面,提供一种第一转发设备,所述第一转发设备包括:建立单元,用于与第三 转发设备之间建立基于段路由头SRH的隧道,所述基于SRH的隧道经过不支持比特索引显示复制BIER的第二转发设备;生成单元,用于根据来自组播源的组播数据报文和所述基于SRH的隧道,生成第一组播数据报文,所述第一组播数据报文包括第一报文头、第二报文头和来自组播源的组播数据报文,所述第一报文头包括SRH头,所述第二报文头包括的目的地址为所述第二转发设备的地址;发送单元,用于通过所述基于SRH的隧道,向所述第二转发设备发送所述第一组播数据报文。
可选地,所述第一组播数据报文还包括第三报文头,所述第三报文头封装于所述第一报文头与所述来自组播源的组播数据报文之间,所述第三报文头包括BIER头,所述BIER头包括比特串,所述比特串用于指示接收来自组播源的组播数据报文的边缘节点。
可选地,所述SRH头包括段剩余SL、第一段列表、第二段列表和第三段列表,所述SL的数值为2,所述第一段列表(SRH[0])携带有组播地址,所述第二段列表(SRH[1])携带有所述第三转设备的地址,所述第三段列表(SRH[2])携带有所述第二转发设备的地址。
可选地,生成设备具体用于:将获得的组播地址写入所述第一段列表,并将所述第三段列表(SRH[2])携带的所述第二转发设备的地址写入所述第二报文头的目的地址,以生成所述第一组播数据报文。
第五方面,提供一种第二转发设备,所述第二转发设备包括:接收单元,用于接收第一转发设备发送的第一组播数据报文,所述第一组播数据报文包括第一报文头、第二报文头和来自组播源的组播数据报文,所述第一报文头包括SRH头,所述第二报文头包括的目的地址为所述第二转发设备的地址;获得单元,用于根据所述第一组播数据报文和所述第一组播数据报文包括的目的地址,获得第二组播数据报文,所述第二组播数据报文包括第三报文头、第四报文头和来自组播源的组播数据报文,所述第三报文头是与所述第一报文头不同的SRH头,所述第四报文头包括的目的地址为第三转发设备的地址;发送单元,用于根据所述第四报文头包括的目的地址,向所述第三转发设备发送所述第二组播数据报文。
可选地,所述第二组播数据报文还包括第五报文头,所述第五报文头封装于所述第三报文头与所述来自组播源的组播数据报文之间,所述第五报文头包括BIER头,所述BIER头包括比特串,所述比特串用于指示接收来自组播源的组播数据报文的边缘节点。
可选地,所述SRH头包括段剩余SL、第一段列表、第二段列表和第三段列表,所述SL的数值为1,所述第一段列表(SRH[0])携带组播地址,所述第二段列表(SRH[1])携带有所述第三转设备的地址,所述第三段列表(SRH[2])携带有所述第二转发设备的地址。
可选地,所述获得单元具体用于:将所述第一报文头中的SL数值减1后,获得所述第三报文头;根据所述第三报文头中的SL的数值,将所述第三报文头中的第二段列表携带的参数替换所述第二报文头的目的地址,获得所述第四报文头;根据所述第三报文头、所述第四报文头和所述来自组播源的组播数据报文,获得所述第二组播数据报文。
第六方面,提供一种第一转发设备,所述第一转发设备包括:获得单元,用于根据第一组播数据报文,获得第二组播数据报文,所述第一组播数据报文是来自组播源的组播数据报文,或是来自不支持BIER的第二转发设备的组播数据报文,所述第二组播数据报文包括比特串;发送单元,用于根据所述比特串,向相应的边缘节点发送所述第二组播数据报文。
可选地,所述来自不支持BIER的第二转发设备的组播数据报文包括第一报文头、第二 报文头和来自组播源的组播数据报文,所述第一报文头包括SRH头,所述第二报文头的目的地址为所述第一转发设备的地址。
可选地,所述第二组播数据报文的目的地址是组播地址,所述组播地址用于指示所述第一转发设备根据所述比特串进行转发。
第七方面,提供一种计算机存储介质,该计算机存储介质可用于存储计算机程序指令,该计算机程序指令可用于执行上述第一方面、第二方面或第三方面提供的方法。
第八方面,提供一种转发设备,所述转发设备包括存储器和处理器,所述存储器用于存储指令,所述处理器从所述存储器中读取所述指令,以执行上述第一方面、第二方面或第三方面提供的方法。
图1为本申请实施例一提供的一种网络场景示意图。
图2为本申请实施例一提供的另一种网络场景示意图。
图3为本申请实施例一提供的一种组播数据报文的结构示意图。
图4为本申请实施例一提供的另一种组播数据报文的结构示意图。
图5为本申请实施例一提供的处理组播数据报文的方法流程示意图。
图6为本申请实施例二提供的一种网络场景示意图。
图7为本申请实施例二提供的处理组播数据报文的方法流程示意图。
图8为本申请实施例一提供的第一转发设备的结构示意图。
图9为本申请实施例一提供的第二转发设备的结构示意图。
图10为本申请实施例一提供的第三转发设备的结构示意图。
图11为本申请实施例二提供的第一转发设备的结构示意图。
图12为本申请实施例二提供的第二转发设备的结构示意图。
图13为本申请实施例二提供的第三转发设备的结构示意图。
下面结合附图,对本申请实施例所提供的方法及装置进行说明。
实施例一
图1和图2分别提供了实施例一的两种场景示意图,即A1在图1的场景中为中间节点,A1在图2的场景中为根节点。图1和图2所示的场景中,组播树的中间节点包括A9、A2、A3和A4。组播树的叶子节点包括A5和A6。在实施例一提供的场景中,A9和A2是不支持BIER技术的转发设备。A1、A3、A4、A5和A6支持BIER技术。A1、A9、A2、A3、A4、A5和A6支持第六版因特网协议(Internet Protocol version 6,IPv6)技术和IPv6段路由(IPv6 Segment Routing,SRv6)技术。为了兼容网络中不支持BIER技术的转发设备,以实现组播数据报文的传输,A1和A3之间可建立一条隧道,该隧道可以是基于段路由头(segment routing header,SRH)的隧道。A3到A5可采用BIER技术实现组播数据报文的传输。A3到A6可采用BIER技术实现组播数据报文的传输。图1和图2所示的场景中,A9、A2、A3和A4可通过IGP在网络中泛洪各自的段标识(segment identifier,SID),以便网络中支持SRv6的各节点获知其他节点的SID。A5和A6可通过IGP在网络中泛洪各自的比特位置,以便网络中支持BIER的个节点获知边缘节点的比特位置。A1、A3、A4、 A5和A6这些支持BIER技术的节点,各自设置一个共同的组播地址。该组播地址用于指示BIER信息。A1、A3、A4、A5和A6获取该组播地址的方式可以为:通过各节点配置设置该组播地址,或通过协议规定该组播地址,或者通过IGP泛洪携带该组播地址,或者通过PIM协议携带该组播地址,确定该组播地址指示BIER信息。
如图2所示的场景,当A1为根节点时,A1接收到组播源(图2中的S1)通过用户边缘设备(图2中的CE0)发送的组播数据报文,比如图1中的用户互联网协议报文(customer IP packet)。A1可根据设置获知该用户互联网协议报文需要发送至A5和A6。A1可在接收到的用户互联网协议报文上逐层封装第一报文头、第二报文头和第三报文头,以获得第一组播数据报文。第一组播数据报文的结构中,第三报文头位于第二报文头的外层,第二报文头位于第一报文头的外层,第一报文头位于用户互联网协议报文的外层。
举例说明,第一报文头可以是图3中的IPv6目的选择头(IPv6 destination option header)。第一报文头包含有一个TLV,该TLV中的Type值指示该TLV中的内容包含有一个BIER头部。该TLV中的Value部分则包含有整个BIER头部。第一报文中的该TLV的中Type值携带于图3中的选择类型(option type)字段。第一报文头中的该TLV中的Value部分携带于图3中的BIER头(BIER header)字段。图3中的BIER header包括比特串,该比特串用于标识A5和A6。该比特串表示携带有该比特串的组播数据报文需要路由至A5和A6。此外,第一报文头中的下一个头部(next header,NH)字段的数值为59。该NH字段的数值用来标识该第一报文头之后不再携带其他扩展头,即该第一报文头之后即为组播数据报文(比如图1中的customer IP packet)。
举例说明,第二报文头为图3中的SRH。SRH包括3个SIDs,其中任一SIDs为128比特(bit)的IPv6地址(address)。SID可携带在图3中的段列表(segment list,SL)字段。图2中的SRH[2]为图3中的Segment List[2]。图2中的SRH[1]为图3中的Segment List[1]。图2中的SRH[0]为图3中的Segment List[0]。图2中的SL为图3中的段剩余(Segment Left)字段。A1根据设置和泛洪获知的各节点的SID,确定组播数据报文经过A2,且基于SRH的隧道的终点是A3。A1将指示BIER信息的组播地址写入第二报文头中的SRH[0](SRH的最后一个segment)中。A1确定基于SRH的隧道的终点为A3,则将A3的SID写入第二报文头中的SRH[1](SRH的倒数第二个segment)中。A3的SID可以是A3节点上的一个IP地址。该A3节点上的一个IP地址在A3节点上指示对这个segment及其后面的组播地址的segment、SRH、IPv6Destination Option Header进行处理。如图2所示,该A3节点上的一个IP地址可表示为A3::BF。A1确定基于SRH的隧道需要经过A2,则将A2的前缀(prefix)SID写入第二报文头中的SRH[2]中。A2的prefix SID可表示为A2::11。A2的prefix SID可用其他形式的A2的SID替换,本申请实施例对此不进行限定。A1将第二报文头(图2中的SL)赋值为2,表示segment是SRH[2]。第二报文头中的路由类型(route type)赋值为代表SRH的值,比如可赋值为4。第二报文头中的NH字段的数值为60。该NH字段的数值用来标识该第二报文头之后第一报文头,即图3中的IPv6destination option header。
举例说明,第三报文头为图3的IPv6header。A1将第三报文头中的SL的数值所指定的SRH对应的地址,即图2中SRH[2]字段中的A2的SID作为IPv6header中的目的地址(destination address,DA)。A1将第三报文头中的源地址(source address,SA)设成A1的地址。第三报文头中的NH字段的数值为43。该NH字段的数值用来标识该第三报文头 之后是IPv6路由头(IPv6 routing header)。本申请实施例中的第二报文头为IPv6 routing header的一种具体实例,即图3中的SRH为IPv6routing header一种子类型。
A1向A9发送第一组播数据报文。A9收到第一组播数据报文之后,确定第三报文头中的目的地址不是其自身,不会再检查其他任何的IPv6扩展头。A9不对接收到的第一组播数据报文进行处理,向目的地址标识的设备(图2中的A2)发送第一组播数据报文。
A2接收到第一组播数据报文之后,确定第三报文头中的目的地址是其自身。第三报文头中的目的地址所携带的参数在A2上指示一个SRv6的segment。A2根据该指示和第一组播数据报文,启动第一SRv6终点功能(如图2中的SRv6 end function),获得第二组播数据报文。如图2所示的,A2在SRH的SL的数值大于0时,将SL的数值减1后的数值作为第二组播数据报文的SRH中的SL的数值,如图2所示,第二组播数据报文中的SL为1。A2将SL=1所对应的SRH字段中的地址作为第二组播数据报文的第三报文头中的目的地址。如图2,A2将SRH[1]中的A3的地址写入第二组播数据报文的Destination Address。A2根据第二组播数据报文中的Destination Address进行转发。
A3接收到第二组播数据报文之后,确定第三报文头中的目的地址是其自身。第三报文头中的目的地址所携带的参数在A3上指示一个SRv6的segment。A3根据该指示和第二组播数据报文,启动第二SRv6终点功能(如图2中的SRv6 end.BF function),获得第三组播数据报文。该指示所包括的处理为:将第二组播数据报文中的SL值减1(减1后的结果为0),将第三组播数据报文的第三报文头中的Destination Address更新为SRH[0]所携带的地址(图2中的multicast address);当SL等于0时,将第三报文头中的NH的数值更新为SRH中的NH的数值,并弹出第二组播数据报文中的SRH。通过上述处理,A3获得第三组播数据报文。第三组播数据报文不包括SRH,即第三组播数据报文包括第一报文头和第三报文头,且第三报文头封装在第一报文头外侧,第一报文头封装在customer IP packet外层,具体可参见图4所示的组播数据报文的结构示意图。需要说明的是,第三组播数据报文的第三报文头包括的DA为组播地址,该组播地址指示要对第一报文头内容进行检查,即位于第三组播数据报文的DA字段中的组播地址指示了按BIER转发的含义。第三组播数据报文的第三报文头中的NH的数值为60,具体含义可参见第二组播数据报文的相应内容。A3根据组播地址的指示作用,读取报文中的IPv6Destination Option Header的BIER头包括的比特串。A3根据比特串的信息查询BIER转发表。BIER转发表可包括比特位置与端口的对应关系。A3可根据BIER header中携带的信息,确定第三组播数据报文需要发送给A5和A6,而通往A5和A6的路径需要经过邻居设备,即图1和图2中的A4。
A4收到第三组播数据报文后,确定第三组播数据报文的目的地址是组播组地址。该组播组地址指示A4要进行第三组播数据报文的复制和转发。A4根据该指示读取第三组播数据报文的第一报文头中的IPv6 Destination Option Header的BIER头包括的比特串。A4根据比特串中的信息查询BIER转发表,确定第三组播数据报文的邻居设备。A4确定的第三组播数据报文的邻居设备包括A5和A6。A4会往A5复制一份第四组播数据报文,A4往A6复制一份第五组播数据报文。第四组播数据报文包括第一报文头和第三报文头。第五组播数据报文包括第一报文头和第三报文头。第四组播数据报文的第一报文头中的BIER header里的比特串可以和第三组播数据报文不同。第五组播数据报文的第一报文头中的BIER header里的比特串可以和第三组播数据报文不同。
A5收到第四组播数据报文,确定第四组播数据报文中的IPv6 Destination Option Header中的BIER header中的BitString包含有A5的Bit位。A5从第四组播数据报文中弹出第三报文头和第一报文头,获得customer IP packet。如图2所示,A5可通过CE1向R1发送customer IP packet,以便客户通过R1接收到customer IP packet。
A6收到第五组播数据报文,确定第五组播数据报文中的IPv6 Destination Option Header中的BIER header中的BitString包含有A6的Bit位。A6从第五组播数据报文中弹出第三报文头和第一报文头,获得customer IP packet。如图2所示,A6可通过CE2向R2发送customer IP packet,以便客户通过R2接收到customer IP packet。
当A1不是根节点,而是任一中间节点,A1可按照上述生成第一组播数据报文的方法,对接收到的组播数据报文进行处理,以获得第一组播数据报文。A1可以是根节点或中间节点。A1是不支持BIER技术的转发设备,比如A9和A2,的上一跳节点。该上一跳节点为根节点到叶子节点的方向某个节点的上一跳节点。即相较于A2,A1是靠近根节点或组播源的节点。本申请实施例中的BIER header的包括的参数以及参数的定义可参见RFC8296。
A1与A3之间通过基于SRH的隧道传输组播数据报文。A3与A5之间通过BIER技术传输组播数据报文。A3与A6之间通过BIER技术传输组播数据报文。下面结合图1至图5,对本申请实施例一提供的处理组播数据报文的流程进行说明。
S501,第一转发设备生成第一组播数据报文,所述第一组播数据报文包括第三报文头、第二报文头、第一报文头和组播源发送的数据报文。
举例说明,第一转发设备为图1或图2中的A1。第一组播数据报文、第三报文头、第二报文头和第一报文头可参见图1到图4对应的实施例中的相应说明。组播源发送的数据报文可以是图1至图4对应的实施例中的customer IP packet。第一转发设备生成第一组播数据报文可参见图1至图4对应的实施例中A1获得第一组播数据报文的方法。
S502,第一转发设备根据第一组播数据报文的目的地址,向第二转发设备发送第一组播数据报文。
其中,第一转发设备向第二转发设备发送第一组播数据报文的方法可参见图1至图4对应的实施例中A1向A2发送第一组播数据报文的方法。
S503,第二转发设备根据第一组播数据报文和第一组播数据报文中的第二报文头,获得第二组播数据报文。
其中,第二转发设备获得第二组播数据报文的方法可参加可参见图1至图4对应的实施例中A2获得第二组播数据报文的方法。第二组播数据报文包含的参数及各参数的含义可参见图1至图4对应的实施例。
S504,第二转发设备根据第二组播数据报文的目的地址,向第三转发设备发送第二组播数据报文。
其中,第二转发设备向第三转发设备发送第二组播数据报文的方法可参见图1至图4对应的实施例中A2向A3发送第二组播数据报文的方法。
S505,第三转发设备根据第二组播数据报文和第二组播数据报文中的第二报文头,获得第三组播数据报文。
其中,第三转发设备获得第三组播数据报文的方法可参见图1至图4对应的实施例中A3获得第三组播数据报文的方法。第三组播数据报文包含的参数及各参数的含义可参见图1至图4对应的实施例。
S506,第三转发设备根据第三组播数据报文中的第一报文头,向相应的边缘节点发送第三组播数据报文。
其中,第三转发设备向相应的边缘节点发送第三组播数据报文的方法可参见图1至图4对应的实施例中A3通过A4,向A5和A6发送相应的组播数据报文的方法。
本申请实施例一提供的方法中,IPv6网络中的转发设备可在不进行设备升级的情况下,比如升级成均支持BIER技术的转发设备,进行基于BIER组播复制,有助于降低部署成本和部署难度。IPv6网络中的转发设备遵循IPv6协议推荐的扩展方式,无需新增IPv6 扩展头类型,只需要在通常的IPv6扩展头类型(比如Type=60的IPv6 Destination Option Header)上扩展TLV即可实现。进一步地,在支持BIER IPv6的网络中存在不支持BIER的转发设备的情况下,比如第二转发设备不支持BIER技术,则本申请实施例一提供的方法通过在第一转发设备与第三转发设备之间建立基于SRH的隧道,以实现BIER IPv6的部署和基于BIER技术的组播数据报文的转发。
具体地,本申请实施例一提供的方法采用IPv6 Destination Option Header封装BIER头,使用一个组播地址作为IPv6头的目的地址,指示对于组播数据报文按照IPv6 Destination Option Header中的BIER头进行组播复制转发,实现IPv6网络下组播BIER的复制转发,从而支持多种链路上运行和部署BIER,只要这些链路能支持IPv6即可按照本发明的方法进行部署。进一步地,本申请实施例一提供的方法定义一个新的Segment类型(或SID类型),即A3对应的SID。该SID指示SRv6的转发对这个Segment及其后面的组播地址的Segment、整个SRH头部、SRH头部后面的IPv6 Destination Option Header进行处理,弹出SRH头部并进行BIER转发。
实施例二
图6为本申请实施例二提供的一种网络场景示意图。实施例二提供的网络场景与实施例一提供的网络场景不同之处在于,实施例二提供的网络场景中的A3与CE0进行连接,省略了实施例一中的A1、A9和A2。在实施例二提供的网络场景中,A3可接收组播源S1通过CE0发送的customer IP packet。S1、CE0和customer IP packet的具体内容请参见实施例一的相应内容。A3可在customer IP packet上封装第一报文头和第二报文头,以获得第一组播数据报文。其中,第二实施例中的第一组播数据报文包括的参数以及各参数的含义可参见实施例一中第三组播数据报文的相应内容。第二实施例中的第一报文头包括的参数以及参数的含义可参见实施例一中第一报文头的相应内容。第二实施例中的第二报文头包括的参数以及参数的含义可参见实施例一中第三报文头的相应内容。实施例二中A3通过A4向A5和A6发送组播数据报文的内容可参见实施例一中A3发送第三组播数据报文的相应内容。实施例二中A4处理第一组播数据报文的方法可参见实施例一中A4处理第三组播数据报文的相应内容。实施例二中A5处理第二组播数据报文的方法可参见实施例一中A5处理第四组播数据报文的方法。实施例二中A6处理第三组播数据报文的方法可参见实施例二中A6处理第五组播数据报文的方法。
下面结合图6和图7,对本申请实施例二提供的处理组播数据报文的方法进行说明。
S701,第一转发设备生成第一组播数据报文。
其中,第一转发设备为图1至图6中的3。第一转发设备生成第一组播数据报文的方法可参见图6中A3生成第一组播数据报文的方法。第二实施例中的第一组播数据报文的具体内容可参见实施例一中的第三组播数据报文。
S702,第一转发设备根据第一组播数据报文中的第一报文头,向相应的边缘节点发送第一组播数据报文。
其中,第一转发设备向相应的边缘节点发送第一组播数据报文的方法可参见图6中A3通过A4,向A5和A6发送组播数据报文的方法。
本申请实施例三提供的方法是在实施例一提供的方法上进行的改进。本申请实施例三提供的方法中,A1生成的第一组播报文可不包括第一报文头,即A1生成的第一组播报文可不包括IPv6 destination option header。A3生成第三组播数据报文时弹出第二报文头并添加第一报文头,即A1生成的第三组播数据报文不包括SRH头,而包括IPv6 destination option header。A1和A3生成相应组播数据报文的方法可对实施例一和实施例二中的内容进行组合以及改动获得,在此不再赘述。
下面结合图8,对本申请实施例一提供的第一转发设备的结构进行说明。第一转发设备可以是图1到图6中提及的A1。第一转发设备包括:建立单元801、生成单元802和发送单元803。其中,所述建立单元801用于与第三转发设备之间建立基于段路由头SRH的隧道,所述基于SRH的隧道经过不支持比特索引显示复制BIER的第二转发设备。所述生成单元802用于根据来自组播源的组播数据报文和所述基于SRH的隧道,生成第一组播数据报文,所述第一组播数据报文包括第一报文头、第二报文头和来自组播源的组播数据报文,所述第一报文头包括SRH头,所述第二报文头包括的目的地址为所述第二转发设备的地址。所述发送单元803用于通过所述基于SRH的隧道,向所述第二转发设备发送所述第一组播数据报文。
可选地,所述第一组播数据报文还包括第三报文头,所述第三报文头封装于所述第一报文头与所述来自组播源的组播数据报文之间,所述第三报文头包括BIER头,所述BIER头包括比特串,所述比特串用于指示接收来自组播源的组播数据报文的边缘节点。
可选地,所述SRH头包括段剩余SL、第一段列表、第二段列表和第三段列表,所述SL的数值为2,所述第一段列表(SRH[0])携带有组播地址,所述第二段列表(SRH[1])携带有所述第三转设备的地址,所述第三段列表(SRH[2])携带有所述第二转发设备的地址。
举例说明,生成设备802具体用于:将获取的组播地址写入所述第一段列表,并将所述第三段列表(SRH[2])携带的所述第二转发设备的地址写入所述第二报文头的目的地址,以生成所述第一组播数据报文。
下面结合图9,对本申请实施例一提供第二转发设备的结构进行说明。第二转发设备为图1至图6中提及的A2。第二转发设备包括:接收单元901、获得单元902和发送单元903。接收单元901用于接收第一转发设备发送的第一组播数据报文,所述第一组播数据报文包括第一报文头、第二报文头和来自组播源的组播数据报文,所述第一报文头包括SRH头,所述第二报文头包括的目的地址为所述第二转发设备的地址。获得单元902用于根据所述第一组播数据报文和所述第一组播数据报文包括的目的地址,获得第二组播数据报文,所述第二组播数据报文包括第三报文头、第四报文头和来自组播源的组播数据报文,所述第三报文头是与所述第一报文头不同的SRH头,所述第四报文头包括的目的地址为第三转发设备的地址。发送单元903用于根据所述第四报文头包括的目的地址,向所述第三转发设备发送所述第二组播数据报文。
可选地,所述第二组播数据报文还包括第五报文头,所述第五报文头封装于所述第三 报文头与所述来自组播源的组播数据报文之间,所述第五报文头包括BIER头,所述BIER头包括比特串,所述比特串用于指示接收来自组播源的组播数据报文的边缘节点。
可选地,所述SRH头包括段剩余SL、第一段列表、第二段列表和第三段列表,所述SL的数值为1,所述第一段列表(SRH[0])携带有组播地址,所述第二段列表(SRH[1])携带有所述第三转设备的地址,所述第三段列表(SRH[2])携带有所述第二转发设备的地址。
举例说明,所述获得单元902具体用于:将所述第一报文头中的SL数值减1后,获得所述第三报文头;根据所述第三报文头中的SL的数值,将所述第三报文头中的第二段列表携带的参数替换所述第二报文头的目的地址,获得所述第四报文头;根据所述第三报文头、所述第四报文头和所述来自组播源的组播数据报文,获得所述第二组播数据报文。
下面结合图10,对实施例一提供的第三转发设备的结构进行说明。第三转发设备为图1至图7中提及的A3。第三转发设备包括获得单元1001和发送单元1002。获得单元1001用于根据第一组播数据报文,获得第二组播数据报文,所述第一组播数据报文是来自组播源的组播数据报文,或是来自不支持BIER的第二转发设备的组播数据报文,所述第二组播数据报文包括比特串。发送单元1002用于根据所述比特串,向相应的边缘节点发送所述第二组播数据报文。
可选地,所述来自不支持BIER的第二转发设备的组播数据报文包括第一报文头、第二报文头和来自组播源的组播数据报文,所述第一报文头包括SRH头,所述第二报文头的目的地址为所述第一转发设备的地址。
可选地,所述第二组播数据报文的目的地址是组播地址,所述组播地址用于指示所述第一转发设备根据所述比特串进行转发。
图11至图13是从硬件结构的角度分别对第一转发设备、第二转发设备和第三转发设备的结构进行说明。如图11所示,第一转发设备包括:存储器1101、处理器1102、通信接口1103和总线1104。处理器1102用于从存储器1101中读取程序指令,以执行上述实施例一中A1所执行的方法。如图12所示,第二转发设备包括:存储器1201、处理器1202、通信接口1203和总线1204。处理器1202用于从存储器1201中读取程序指令,以执行上述实施例一中A2所执行的方法。如图13所示,第三转发设备包括:存储器1301、处理器1302、通信接口1303和总线1304。处理器1302用于从存储器1301中读取程序指令,以执行上述实施例一或实施例二中A3所执行的方法。
其中,上述处理器可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。上述总线可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry stANDard architecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11至图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例中所提及的通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器。结合本发明实施例所公开的方法的步骤,可以直接体现为处理器中的硬件及软件模块组合执行完成。当使用软件实现时,可以将实现上述功能的代码存储在计算机可 读介质中。计算机可读介质包括计算机存储介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以是随机存取存储器(英文全称为random-access memory,英文缩写为RAM)、只读存储器(英文全称为read-only memory,英文缩写为ROM)、电可擦可编程只读存储器(英文全称为electrically erasable programmable read-only memory,英文缩写为EEPROM)、只读光盘(英文全称为compact disk read-only memory,英文缩写为CD-ROM)或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。计算机可读介质可以是压缩碟(英文全称为compact disk,英文缩写为CD)、激光碟、数字视频光碟(英文全称为digital video disk,英文缩写为DVD)、软盘或者蓝光碟。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
Claims (22)
- 一种处理组播数据报文的方法,其特征在于,所述方法包括:第一转发设备与第三转发设备之间建立基于段路由头SRH的隧道,所述基于SRH的隧道经过不支持比特索引显示复制BIER的第二转发设备;所述第一转发设备根据来自组播源的组播数据报文和所述基于SRH的隧道,生成第一组播数据报文,所述第一组播数据报文包括第一报文头、第二报文头和来自组播源的组播数据报文,所述第一报文头包括SRH头,所述第二报文头包括的目的地址为所述第二转发设备的地址;所述第一转发设备通过所述基于SRH的隧道,向所述第二转发设备发送所述第一组播数据报文。
- 根据权利要求1所述的方法,其特征在于,所述第一组播数据报文还包括第三报文头,所述第三报文头封装于所述第一报文头与所述来自组播源的组播数据报文之间,所述第三报文头包括BIER头,所述BIER头包括比特串,所述比特串用于指示接收来自组播源的组播数据报文的边缘节点。
- 根据权利要求1或2所述的方法,其特征在于,所述SRH头包括段剩余SL、第一段列表、第二段列表和第三段列表,所述SL的数值为2,所述第一段列表(SRH[0])携带有组播地址,所述第二段列表(SRH[1])携带有所述第三转设备的地址,所述第三段列表(SRH[2])携带有所述第二转发设备的地址。
- 根据权利要求3所述的方法,其特征在于,所述第一转发设备根据来自组播源的组播数据报文和所述基于SRH的隧道,生成第一组播数据报文包括:所述第一转发设备将获取的组播地址写入所述第一段列表,并将所述第三段列表(SRH[2])携带的所述第二转发设备的地址写入所述第二报文头的目的地址,以生成所述第一组播数据报文。
- 一种处理组播数据报文的方法,其特征在于,所述方法包括:第二转发设备接收第一转发设备发送的第一组播数据报文,所述第一组播数据报文包括第一报文头、第二报文头和来自组播源的组播数据报文,所述第一报文头包括SRH头,所述第二报文头包括的目的地址为所述第二转发设备的地址;所述第二转发设备根据所述第一组播数据报文和所述第一组播数据报文包括的目的地址,获得第二组播数据报文,所述第二组播数据报文包括第三报文头、第四报文头和来自组播源的组播数据报文,所述第三报文头是与所述第一报文头不同的SRH头,所述第四报文头包括的目的地址为第三转发设备的地址;所述第二转发设备根据所述第四报文头包括的目的地址,向所述第三转发设备发送所述第二组播数据报文。
- 根据权利要求5所述的方法,其特征在于,所述第二组播数据报文还包括第五报文头,所述第五报文头封装于所述第三报文头与所述来自组播源的组播数据报文之间,所述第五报文头包括BIER头,所述BIER头包括比特串,所述比特串用于指示接收来自组播源的组播数据报文的边缘节点。
- 根据权利要求5或6所述的方法,其特征在于,所述SRH头包括段剩余SL、第一段列表、第二段列表和第三段列表,所述SL的数值为1,所述第一段列表(SRH[0])携带有组播地址,所述第二段列表(SRH[1])携带有所述第三转设备的地址,所述第三段列表 (SRH[2])携带有所述第二转发设备的地址。
- 根据权利要求7所述的方法,其特征在于,所述第二转发设备根据所述第一组播数据报文和所述第一组播数据报文包括的目的地址,获得第二组播数据报文包括:所述第二转发设备将所述第一报文头中的SL数值减1后,获得所述第三报文头;所述第二转发设备根据所述第三报文头中的SL的数值,将所述第三报文头中的第二段列表携带的参数替换所述第二报文头的目的地址,获得所述第四报文头;所述第二转发设备根据所述第三报文头、所述第四报文头和所述来自组播源的组播数据报文,获得所述第二组播数据报文。
- 一种处理组播数据报文的方法,其特征在于,所述方法包括:第一转发设备根据第一组播数据报文,获得第二组播数据报文,所述第一组播数据报文是来自组播源的组播数据报文,或是来自不支持BIER的第二转发设备的组播数据报文,所述第二组播数据报文包括比特串;所述第一转发设备根据所述比特串,向相应的边缘节点发送所述第二组播数据报文。
- 根据权利要求9所述的方法,其特征在于,所述来自不支持BIER的第二转发设备的组播数据报文包括第一报文头、第二报文头和来自组播源的组播数据报文,所述第一报文头包括SRH头,所述第二报文头的目的地址为所述第一转发设备的地址。
- 根据权利要求9或10所述的方法,其特征在于,所述第二组播数据报文的目的地址是组播地址,所述组播地址用于指示所述第一转发设备根据所述比特串进行转发。
- 一种第一转发设备,其特征在于,所述第一转发设备包括:建立单元,用于与第三转发设备之间建立基于段路由头SRH的隧道,所述基于SRH的隧道经过不支持比特索引显示复制BIER的第二转发设备;生成单元,用于根据来自组播源的组播数据报文和所述基于SRH的隧道,生成第一组播数据报文,所述第一组播数据报文包括第一报文头、第二报文头和来自组播源的组播数据报文,所述第一报文头包括SRH头,所述第二报文头包括的目的地址为所述第二转发设备的地址;发送单元,用于通过所述基于SRH的隧道,向所述第二转发设备发送所述第一组播数据报文。
- 根据权利要求12所述的第一转发设备,其特征在于,所述第一组播数据报文还包括第三报文头,所述第三报文头封装于所述第一报文头与所述来自组播源的组播数据报文之间,所述第三报文头包括BIER头,所述BIER头包括比特串,所述比特串用于指示接收来自组播源的组播数据报文的边缘节点。
- 根据权利要求12或13所述的第一转发设备,其特征在于,所述SRH头包括段剩余SL、第一段列表、第二段列表和第三段列表,所述SL的数值为2,所述第一段列表(SRH[0])携带有组播地址,所述第二段列表(SRH[1])携带有所述第三转设备的地址,所述第三段列表(SRH[2])携带有所述第二转发设备的地址。
- 根据权利要求14所述的第一转发设备,其特征在于,生成设备具体用于:将获取的组播地址写入所述第一段列表,并将所述第三段列表(SRH[2])携带的所述第二转发设备的地址写入所述第二报文头的目的地址,以生成所述第一组播数据报文。
- 一种第二转发设备,其特征在于,所述第二转发设备包括:接收单元,用于接收第一转发设备发送的第一组播数据报文,所述第一组播数据报文 包括第一报文头、第二报文头和来自组播源的组播数据报文,所述第一报文头包括SRH头,所述第二报文头包括的目的地址为所述第二转发设备的地址;获得单元,用于根据所述第一组播数据报文和所述第一组播数据报文包括的目的地址,获得第二组播数据报文,所述第二组播数据报文包括第三报文头、第四报文头和来自组播源的组播数据报文,所述第三报文头是与所述第一报文头不同的SRH头,所述第四报文头包括的目的地址为第三转发设备的地址;发送单元,用于根据所述第四报文头包括的目的地址,向所述第三转发设备发送所述第二组播数据报文。
- 根据权利要求16所述的第二转发设备,其特征在于,所述第二组播数据报文还包括第五报文头,所述第五报文头封装于所述第三报文头与所述来自组播源的组播数据报文之间,所述第五报文头包括BIER头,所述BIER头包括比特串,所述比特串用于指示接收来自组播源的组播数据报文的边缘节点。
- 根据权利要求16或17所述的第二转发设备,其特征在于,所述SRH头包括段剩余SL、第一段列表、第二段列表和第三段列表,所述SL的数值为1,所述第一段列表(SRH[0])携带组播地址,所述第二段列表(SRH[1])携带有所述第三转设备的地址,所述第三段列表(SRH[2])携带有所述第二转发设备的地址。
- 根据权利要求18所述的方法,其特征在于,所述获得单元具体用于:将所述第一报文头中的SL数值减1后,获得所述第三报文头;根据所述第三报文头中的SL的数值,将所述第三报文头中的第二段列表携带的参数替换所述第二报文头的目的地址,获得所述第四报文头;根据所述第三报文头、所述第四报文头和所述来自组播源的组播数据报文,获得所述第二组播数据报文。
- 一种第一转发设备,其特征在于,所述第一转发设备包括:获得单元,用于根据第一组播数据报文,获得第二组播数据报文,所述第一组播数据报文是来自组播源的组播数据报文,或是来自不支持BIER的第二转发设备的组播数据报文,所述第二组播数据报文包括比特串;发送单元,用于根据所述比特串,向相应的边缘节点发送所述第二组播数据报文。
- 根据权利要求20所述的第一转发设备,其特征在于,所述来自不支持BIER的第二转发设备的组播数据报文包括第一报文头、第二报文头和来自组播源的组播数据报文,所述第一报文头包括SRH头,所述第二报文头的目的地址为所述第一转发设备的地址。
- 根据权利要求20或21所述的第一转发设备,其特征在于,所述第二组播数据报文的目的地址是组播地址,所述组播地址用于指示所述第一转发设备根据所述比特串进行转发。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19793978.8A EP3780517B1 (en) | 2018-04-27 | 2019-02-27 | Method and apparatus for processing multicast data packet |
EP23178440.6A EP4258612A3 (en) | 2018-04-27 | 2019-02-27 | Method and apparatus for processing multicast data packet |
US17/080,404 US11431615B2 (en) | 2018-04-27 | 2020-10-26 | Multicast data packet processing method and apparatus |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810395277.7A CN110417657B (zh) | 2018-04-27 | 2018-04-27 | 一种处理组播数据报文的方法及装置 |
CN201810395277.7 | 2018-04-27 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/080,404 Continuation US11431615B2 (en) | 2018-04-27 | 2020-10-26 | Multicast data packet processing method and apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019205799A1 true WO2019205799A1 (zh) | 2019-10-31 |
Family
ID=68293776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2019/076214 WO2019205799A1 (zh) | 2018-04-27 | 2019-02-27 | 一种处理组播数据报文的方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11431615B2 (zh) |
EP (2) | EP3780517B1 (zh) |
CN (1) | CN110417657B (zh) |
WO (1) | WO2019205799A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021083341A1 (zh) * | 2019-11-01 | 2021-05-06 | 华为技术有限公司 | 一种报文处理的方法、网络节点和系统 |
US11991012B2 (en) | 2018-11-02 | 2024-05-21 | Huawei Technologies Co., Ltd. | Packet forwarding method, packet sending apparatus, and packet receiving apparatus |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112910774B (zh) * | 2019-12-03 | 2022-11-04 | 中国电信股份有限公司 | 通信方法、系统以及网络转发设备 |
CN111314219B (zh) * | 2020-02-24 | 2022-12-09 | 苏州盛科通信股份有限公司 | 一种IPv6分段路由的高效转发方法及装置 |
US11418436B2 (en) * | 2020-05-08 | 2022-08-16 | Ciena Corporation | NG-VPLS E-tree signaling using segment routing |
CN111628995B (zh) * | 2020-05-26 | 2023-06-16 | 新华三信息安全技术有限公司 | 基于SRv6的SID压缩方法、装置、设备及存储介质 |
CN113765791B (zh) * | 2020-06-02 | 2023-01-13 | 华为技术有限公司 | 一种确定处理能力的方法、节点和系统 |
CN112491718A (zh) * | 2020-08-31 | 2021-03-12 | 中兴通讯股份有限公司 | 报文头的处理方法及装置、存储介质、电子装置 |
CN115499366B (zh) * | 2021-06-18 | 2024-05-10 | 华为技术有限公司 | 报文传输方法以及装置 |
WO2023045394A1 (zh) * | 2021-09-27 | 2023-03-30 | 华为技术有限公司 | 一种组播报文的处理方法、相关装置及设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102638395A (zh) * | 2012-03-19 | 2012-08-15 | 华为技术有限公司 | 一种报文转发的方法和设备 |
US20160254988A1 (en) * | 2015-02-26 | 2016-09-01 | Cisco Technology, Inc. | Traffic engineering for bit indexed explicit replication |
CN106341327A (zh) * | 2015-07-08 | 2017-01-18 | 中兴通讯股份有限公司 | 一种bier报文的传输方法及系统 |
CN106572023A (zh) * | 2015-10-12 | 2017-04-19 | 中兴通讯股份有限公司 | 一种实现比特位索引显示复制的方法及比特位转发路由器 |
CN106572021A (zh) * | 2015-10-09 | 2017-04-19 | 中兴通讯股份有限公司 | 一种实现网络虚拟化叠加的方法与网络虚拟化边缘节点 |
CN106572017A (zh) * | 2015-10-09 | 2017-04-19 | 中兴通讯股份有限公司 | Bier信息的发送方法、接收方法及装置 |
CN106603413A (zh) * | 2015-10-14 | 2017-04-26 | 中兴通讯股份有限公司 | 通过指定路径传输流量的方法和装置 |
CN106656794A (zh) * | 2015-10-30 | 2017-05-10 | 中兴通讯股份有限公司 | 一种报文传输方法及装置 |
WO2017124709A1 (zh) * | 2016-01-18 | 2017-07-27 | 中兴通讯股份有限公司 | 流量工程隧道建立方法和装置 |
WO2018010658A1 (zh) * | 2016-07-13 | 2018-01-18 | 中兴通讯股份有限公司 | 一种位索引显式复制信息传递方法及装置 |
CN107749831A (zh) * | 2017-12-06 | 2018-03-02 | 锐捷网络股份有限公司 | 跨波分设备互联的vsu内的报文转发方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9942053B2 (en) * | 2013-09-17 | 2018-04-10 | Cisco Technology, Inc. | Bit indexed explicit replication using internet protocol version 6 |
US9544230B2 (en) * | 2013-09-17 | 2017-01-10 | Cisco Technology, Inc. | Migration support for bit indexed explicit replication |
US9762488B2 (en) * | 2014-03-06 | 2017-09-12 | Cisco Technology, Inc. | Segment routing extension headers |
US9906378B2 (en) * | 2015-01-27 | 2018-02-27 | Cisco Technology, Inc. | Capability aware routing |
US9923835B1 (en) * | 2015-09-23 | 2018-03-20 | Juniper Networks, Inc. | Computing path maximum transmission unit size |
US10469379B2 (en) * | 2017-02-17 | 2019-11-05 | Cisco Technology, Inc. | System and method to facilitate content delivery to multiple recipients in a network environment |
US10644900B2 (en) * | 2018-06-19 | 2020-05-05 | Juniper Networks, Inc. | Forwarding multicast data packets using bit index explicit replication (BIER) for BIER-incapable network devices |
US20190394059A1 (en) * | 2018-06-20 | 2019-12-26 | Juniper Networks, Inc. | Bit index explicit replication (bier) penultimate hop popping |
-
2018
- 2018-04-27 CN CN201810395277.7A patent/CN110417657B/zh active Active
-
2019
- 2019-02-27 EP EP19793978.8A patent/EP3780517B1/en active Active
- 2019-02-27 WO PCT/CN2019/076214 patent/WO2019205799A1/zh unknown
- 2019-02-27 EP EP23178440.6A patent/EP4258612A3/en active Pending
-
2020
- 2020-10-26 US US17/080,404 patent/US11431615B2/en active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102638395A (zh) * | 2012-03-19 | 2012-08-15 | 华为技术有限公司 | 一种报文转发的方法和设备 |
US20160254988A1 (en) * | 2015-02-26 | 2016-09-01 | Cisco Technology, Inc. | Traffic engineering for bit indexed explicit replication |
CN106341327A (zh) * | 2015-07-08 | 2017-01-18 | 中兴通讯股份有限公司 | 一种bier报文的传输方法及系统 |
CN106572021A (zh) * | 2015-10-09 | 2017-04-19 | 中兴通讯股份有限公司 | 一种实现网络虚拟化叠加的方法与网络虚拟化边缘节点 |
CN106572017A (zh) * | 2015-10-09 | 2017-04-19 | 中兴通讯股份有限公司 | Bier信息的发送方法、接收方法及装置 |
CN106572023A (zh) * | 2015-10-12 | 2017-04-19 | 中兴通讯股份有限公司 | 一种实现比特位索引显示复制的方法及比特位转发路由器 |
CN106603413A (zh) * | 2015-10-14 | 2017-04-26 | 中兴通讯股份有限公司 | 通过指定路径传输流量的方法和装置 |
CN106656794A (zh) * | 2015-10-30 | 2017-05-10 | 中兴通讯股份有限公司 | 一种报文传输方法及装置 |
WO2017124709A1 (zh) * | 2016-01-18 | 2017-07-27 | 中兴通讯股份有限公司 | 流量工程隧道建立方法和装置 |
WO2018010658A1 (zh) * | 2016-07-13 | 2018-01-18 | 中兴通讯股份有限公司 | 一种位索引显式复制信息传递方法及装置 |
CN107749831A (zh) * | 2017-12-06 | 2018-03-02 | 锐捷网络股份有限公司 | 跨波分设备互联的vsu内的报文转发方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11991012B2 (en) | 2018-11-02 | 2024-05-21 | Huawei Technologies Co., Ltd. | Packet forwarding method, packet sending apparatus, and packet receiving apparatus |
WO2021083341A1 (zh) * | 2019-11-01 | 2021-05-06 | 华为技术有限公司 | 一种报文处理的方法、网络节点和系统 |
Also Published As
Publication number | Publication date |
---|---|
EP3780517A4 (en) | 2021-05-05 |
EP4258612A3 (en) | 2023-12-20 |
EP3780517B1 (en) | 2023-08-02 |
EP3780517A1 (en) | 2021-02-17 |
EP4258612A2 (en) | 2023-10-11 |
CN110417657A (zh) | 2019-11-05 |
CN110417657B (zh) | 2022-05-17 |
US20210044514A1 (en) | 2021-02-11 |
US11431615B2 (en) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019205799A1 (zh) | 一种处理组播数据报文的方法及装置 | |
JP7419510B2 (ja) | Bier転送項目構築方法、装置、およびシステム | |
JP7208386B2 (ja) | パケット転送方法、パケット送信装置、およびパケット受信装置 | |
EP3896923A1 (en) | Bier packet sending method and apparatus | |
JP5069356B2 (ja) | データ伝送ネットワークにおけるアドレス解決のための技術 | |
US7804848B2 (en) | Setting a forwarding address in an internet protocol version 6 (IPv6) routing protocol domain at a boundary with a different routing protocol domain | |
US11652735B2 (en) | Multicast data packet processing method, and apparatus | |
EP3731472B1 (en) | Method and device for transmitting data, and network system | |
CN105871565A (zh) | 用于组播转发的方法及装置 | |
US11296979B2 (en) | Method and system for symmetric integrated routing and bridging | |
JP4248546B2 (ja) | イーサネットを介したmplsマルチキャストパケットの転送装置及び方法 | |
WO2017143717A1 (zh) | 一种组播信息处理方法和装置 | |
CN112737954B (zh) | 报文处理方法、装置、系统、设备及存储介质 | |
CN111131539B (zh) | 报文转发方法及装置 | |
CN108234325B (zh) | 基于ip任播的系统及报文转发方法 | |
JP7273125B2 (ja) | BIERv6パケットを送信するための方法および第1のネットワークデバイス | |
WO2022088967A1 (zh) | 确定下一跳的方法及装置 | |
WO2023005018A1 (zh) | 一种报文转发的方法及网络设备 | |
CN112702251B (zh) | 报文检测方法、连通性协商关系建立方法以及相关设备 | |
WO2023088145A1 (zh) | 一种报文处理方法、装置及设备 | |
WO2024061184A1 (zh) | 对应关系的获取方法、参数通告方法、装置、设备及介质 | |
WO2023016550A1 (zh) | 一种路由发送方法及设备 | |
WO2022199486A1 (zh) | 路径跟踪方法、设备和存储介质 | |
JP2023551938A (ja) | パケット送信方法、対応関係取得方法、装置、およびシステム | |
CN115695087A (zh) | 跨域局域网的建立方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19793978 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2019793978 Country of ref document: EP Effective date: 20201103 |