WO2019010968A1 - 一种组播转发方法及相关设备 - Google Patents

一种组播转发方法及相关设备 Download PDF

Info

Publication number
WO2019010968A1
WO2019010968A1 PCT/CN2018/075610 CN2018075610W WO2019010968A1 WO 2019010968 A1 WO2019010968 A1 WO 2019010968A1 CN 2018075610 W CN2018075610 W CN 2018075610W WO 2019010968 A1 WO2019010968 A1 WO 2019010968A1
Authority
WO
WIPO (PCT)
Prior art keywords
node device
bitstring
information
tunnel
multicast stream
Prior art date
Application number
PCT/CN2018/075610
Other languages
English (en)
French (fr)
Inventor
谢经荣
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP18832804.1A priority Critical patent/EP3641353B1/en
Publication of WO2019010968A1 publication Critical patent/WO2019010968A1/zh
Priority to US16/739,588 priority patent/US11258698B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/189Arrangements for providing special services to substations for broadcast or conference, e.g. multicast in combination with wireless systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]

Definitions

  • the present application relates to the field of wireless communications technologies, and in particular, to a multicast forwarding method and related devices.
  • the multicast network includes a head node device R255, intermediate node devices R256, NPE1, NPE2, UPE1, and UPE2, and tail node devices R1, R2, R3, and R254. If there are N multicast traffic, each multicast traffic needs to be sent from the head node device R255 to the tail node device R1, the tail node device R2, ..., the tail node device R254, or some nodes, all of which need to be
  • the multicast stream establishes a point-to-multipoint (P2MP) forwarding tree.
  • P2MP point-to-multipoint
  • the P2MP forwarding tree of the multicast stream (S1, G1) is (R255---->R1) /R2);
  • the P2MP forwarding tree of the multicast stream (S2, G2) is (R255---->R1/R2/R3);
  • the P2MP forwarding tree of the multicast stream (S3, G2) is (R255---- >R1/R254).
  • S is a multicast source and G is a multicast group.
  • the label information and the outbound interface information are saved in the head node device and the intermediate node device.
  • the outbound interface information and the outgoing label information corresponding to the multicast stream (S1, G1) are obtained, and the next hop of the head node device R255 is determined.
  • the node is the intermediate node device NPE1, wherein the outbound label information of the head node device R255 is the inbound label information of the intermediate node device NPE1, and the intermediate node device NPE1 obtains the corresponding outbound interface information and outbound label information according to the inbound label information, and determines the intermediate node device.
  • the next hop node of the NPE1 is the intermediate node device UPE1.
  • the intermediate node UPE1 determines the interface information and the outgoing label information according to the inbound label information, and determines that the multicast stream (S1, G1) needs to reach the tail node device R1 and the tail node device R2.
  • the multicast stream (S1, G1) needs to reach the tail node device R1 and the tail node device R2.
  • each multicast stream needs to have a P2MP forwarding tree, resulting in a large resource overhead of the node device.
  • the embodiment of the present application provides a multicast forwarding method and related device, which is applied in a multicast network of Bit Index Explicit Replication (BIER), based on a slave node device to a tail node device established by a head node device.
  • BIER Bit Index Explicit Replication
  • the tunnel implements forwarding of multiple multicast streams, thereby helping to reduce the number of P2MP forwarding trees established.
  • the embodiment of the present application provides a multicast forwarding method, where the method is applied to a BIER multicast network, where the multicast network includes a head node device, an intermediate node device, and at least one tail node device, including:
  • the head node device first establishes a first tunnel, the source node of the first tunnel is a head node device, the destination node of the first tunnel is at least one tail node device, and the first tunnel is used to forward multiple multicast streams and multiple multicast streams.
  • the first multicast stream is included.
  • the first entry includes a first bit string map (BitString Map) information, the first BitString Map information includes an identifier of the first tail node device that is not directly connected to the head node device, and at least one tail node device Includes the first tail node device.
  • BitString Map bit string map
  • bit string (BitString) information of the first multicast stream where the BitString information includes an identifier of the tail node device that the first multicast stream is expected to reach, and determining whether the first multicast stream in the BitString information includes the first multicast stream in the BitString information. The identity of the tail node device that is expected to arrive.
  • the head node device determines that the first BitString Map information includes the identifier of the at least one tail node device that the first multicast stream in the BitString information is expected to reach
  • the first multicast stream is forwarded to the first intermediate node device via the first tunnel. It helps to reduce the number of P2MP forwarding trees, reduces the resource overhead of the head node devices, and can share template tunnels to keep multiple multicast streams copied according to BitString without wasting bandwidth.
  • the head node device can obtain the first operation result according to the BitString information and the BitString Map information, and the value of the first operation result is equal to the value obtained by bitwise AND operation between the BitString information and the BitString Map information.
  • the first entry further includes first outgoing interface information and first outgoing label information, where the first outgoing interface information is used to indicate physical output of the head node device.
  • the first outgoing label information is used to indicate the first tunnel.
  • the head node device may determine, according to the first outbound interface information and the first outbound label information, a physical outbound interface indicated by the first outbound interface information, and send the first multicast stream by using the first tunnel.
  • the head node device determines whether the second BitString Map information includes an identifier of the tail node device that the first multicast stream in the BitString information is expected to reach; when the head node device determines that the second BitString Map information is included When the first multicast stream in the BitString information is expected to arrive at the tail node device, the head node device forwards the first multicast stream to the second tail node device via the first tunnel.
  • the head node device when the head node device determines that the first operation result is non-zero, the head node device forwards the first multicast stream to the first intermediate node device via the first tunnel. When the head node device determines that the first operation result is 0, the head node device does not forward the first multicast stream to the first intermediate node device.
  • the head node device can obtain the overlay information of the multicast stream, and the LSR-id and BFR-id correspondence table, where the overlay information includes all the tail node devices that the multicast stream is expected to reach.
  • the address information is then obtained according to the overlay information and the LSR-id and BFR-id correspondence table, and the bit string map BitString Map information is obtained.
  • the head node device establishes a second tunnel via the second intermediate node device, the source node of the second tunnel is a head node device, the destination node of the second tunnel is at least one tail node device, and the second tunnel And the second tunnel includes a second multicast stream.
  • the head node device determines that the bandwidth occupancy of the first tunnel is greater than the first threshold, the head node device forwards the second multicast stream by using the second tunnel.
  • the head node device determines that the BitString Map information does not include the identifier of the tail node device that the first multicast stream in the BitString information is expected to reach, the head node device discards the first multicast stream.
  • the embodiment of the present application provides a multicast forwarding method, including:
  • the intermediate node device first receives the first multicast stream sent by the head node device, where the source node of the first tunnel is a head node device, the destination node of the first tunnel is at least one tail node device, and the first tunnel is used for forwarding.
  • a plurality of multicast streams the plurality of multicast streams including the first multicast stream.
  • a first entry is generated, where the first entry includes first BitString Map information, and the first BitString Map information includes an identifier of the first tail node device directly connected to the intermediate node device.
  • the BitString information included in the first multicast stream is obtained, and the BitString information includes an identifier of the tail node device that the first multicast stream is expected to reach; and then determining whether the first multicast stream in the first BitString information includes the first multicast stream in the BitString information is expected to arrive.
  • the identity of the tail node device is determined.
  • the intermediate node device determines that the first BitString Map information includes the identifier of the tail node device that the first multicast stream in the BitString information is expected to reach
  • the first multicast stream is forwarded to the first tail node device via the first tunnel. It helps to reduce the number of P2MP forwarding trees established, thereby reducing the resource overhead of the intermediate head node devices.
  • template tunnels can be shared to keep multiple multicast streams copied according to BitString without wasting bandwidth.
  • the intermediate node device obtains the first operation result according to the BitString information and the first BitString Map information, and the value of the first operation result is equal to the value obtained by bitwise AND operation between the BitString information and the first BitString Map information.
  • the first entry further includes the first outgoing interface information and the first outgoing label information, where the first outgoing interface information is used to indicate the physical outgoing interface of the intermediate node device, and the first outgoing label information is used.
  • the intermediate node device determines, according to the first outbound interface information and the first outgoing label information, the physical outbound interface indicated by the first outbound interface information, and sends the first multicast stream via the first tunnel.
  • the head node device further generates a second entry, where the second entry includes a second bit string map BitString Map information, a second outbound interface information, and a second outgoing label information, and the second BitString Map information.
  • the intermediate node device determines whether the second BitString Map information includes the identifier of the tail node device that the first multicast stream in the BitString information is expected to reach; when the intermediate node device determines the second BitString Map information.
  • the intermediate node device forwards the first multicast stream to the second tail node device via the first tunnel.
  • the intermediate node device when the intermediate node device determines that the second operation result is non-zero, the intermediate node device forwards the first multicast stream to the next hop node device of the intermediate node device via the first tunnel. When the intermediate node device determines that the second operation result is 0, the intermediate node device discards the first multicast stream.
  • the BitString information is stored in the packet header of the first multicast stream, and the intermediate node device receives After the first multicast stream, the BitString information can be obtained directly from the packet header of the first multicast stream.
  • the embodiment of the present application provides a head node device configured to implement the method and function performed by the head node device in the foregoing first aspect, implemented by hardware/software, and the hardware/software includes The unit corresponding to the above function.
  • an embodiment of the present application provides an intermediate node device, where the head node device is configured to implement the method and function performed by the intermediate node device in the foregoing second aspect, implemented by hardware/software, and the hardware/software includes The unit corresponding to the above function.
  • the present application provides another head node device, including: a processor, a memory, and a communication bus, wherein the communication bus is configured to implement connection communication between the processor and the memory, and the processor executes the The program stored in the memory is used to implement the steps in a multicast forwarding method provided by the above first aspect.
  • the present application provides another intermediate node device, including: a processor, a memory, and a communication bus, wherein the communication bus is configured to implement connection communication between the processor and the memory, and the processor executes the The program stored in the memory is used to implement the steps in a multicast forwarding method provided by the second aspect above.
  • Yet another aspect of the present application provides a computer readable storage medium having stored therein instructions that, when executed on a computer, cause the computer to perform the methods described in the above aspects.
  • Yet another aspect of the present application provides a computer program product comprising instructions which, when run on a computer, cause the computer to perform the methods described in the various aspects above.
  • 1 is a forwarding table of a node device according to an embodiment of the present application.
  • FIG. 2 is a schematic flowchart of a multicast forwarding method according to an embodiment of the present application
  • FIG. 3 is a schematic flowchart of a method for establishing a template tunnel according to an embodiment of the present invention
  • FIG. 4 is a schematic structural diagram of a multicast forwarding system according to an embodiment of the present application.
  • FIG. 5 is a schematic structural diagram of another multicast forwarding system according to an embodiment of the present disclosure.
  • FIG. 6 is a schematic structural diagram of still another multicast forwarding system according to an embodiment of the present application.
  • FIG. 7 is a schematic diagram of an entry on a node device according to an embodiment of the present disclosure.
  • FIG. 8 is a schematic structural diagram of a head node device according to an embodiment of the present application.
  • FIG. 9 is a schematic structural diagram of an intermediate node device according to an embodiment of the present application.
  • FIG. 10 is a schematic structural diagram of another head node device according to an embodiment of the present disclosure.
  • FIG. 11 is a schematic structural diagram of another intermediate node device according to an embodiment of the present application.
  • This embodiment provides a multicast forwarding method, which is applied to a multicast network of a BIER.
  • each tail node device R1, R2, ..., R256 is assigned a BIER Forwarder Router ID (BFR-id) 000000001, 00000010, ..., 00100000, etc., respectively.
  • BFR-id is used in this description as the identifier of the tail node device in the multicast network.
  • Each node device in the multicast network generates a bit index explicit copy forwarding table (BIER Forwarding Table). As shown in FIG. 1, FIG. 1 provides a forwarding table of each node device.
  • the first column in the forwarding table of the node device is the identifier (BFR-id) of the tail node device in the multicast network where the node device is located, and the third column is the next hop node device adjacent to the node device (BIER Forwarder Router). Neighbor, BFR-NBR), the second column is the Forwarding Bit Mask (F-BM) of the identifier of the tail node device that the multicast stream passes through the next hop node device of the node device.
  • BFR-id the identifier
  • BIER Forwarder Router next hop node device adjacent to the node device
  • F-BM Forwarding Bit Mask
  • the multicast stream (S1, G1) is a multicast stream that the head node device R255 reaches the tail node device R1 and the tail node device R2, and the head node device R255 obtains the tail node from the received multicast stream (S1, G1).
  • the lowest bit of the BitString is the identifier of the tail node device R1, and the second bit is the identifier of the tail node device R2, and the forwarding is started from the head node device R255.
  • the specific process is as follows:
  • the multicast forwarding process of the intermediate node device NPE1 is the same as the multicast forwarding process of the head node device R255.
  • the result 00000001 is encapsulated in the duplicated multicast stream, and the multicast stream encapsulated with the operation result 00000001 is sent to the tail node device R1.
  • the row R2 in the forwarding table of the intermediate node device UPE1 is read, and the BFR-NBR of the R2 is determined to be R2, and the BitString in the original multicast stream and the F-BM in the row of the forwarding table R2 are bitwise ANDed, and the operation is performed.
  • the result 00000010 is encapsulated in the duplicated multicast stream, and the multicast stream encapsulated with the operation result 00000010 is sent to the tail node device R2.
  • This embodiment effectively solves the problem that the P2MP forwarding tree needs to be generated in each multicast stream in the prior art solution, which causes a large overhead of the node device.
  • the BitString in the packet needs to be edited each time the multicast is copied, which affects the forwarding efficiency.
  • the multicast stream needs to be forwarded according to a predetermined path. When the bandwidth of a link in the forwarding path is insufficient, traffic loss will occur.
  • the following solutions have been proposed.
  • the embodiment of the present application provides a schematic flowchart of a multicast forwarding method, where the method is applied to a multicast network of a BIER, where the multicast network includes a head node device, a first intermediate node device, and At least one tail node device, wherein the node device includes, but is not limited to, a network device such as a router or a switch.
  • the method includes but is not limited to the following steps:
  • the head node device establishes a first tunnel, where a source node of the first tunnel is the head node device, a destination node of the first tunnel is the at least one tail node device, and the first tunnel uses And forwarding a plurality of multicast streams, the plurality of multicast streams including the first multicast stream.
  • the first tunnel may be a template tunnel and used to forward the multicast stream.
  • the multicast stream may be sent to the head node device via other nodes, or may be sent by the head node device.
  • the head node device may send a path message to the intermediate node device, where the path message includes a tunnel identifier and an address of the tail node device R1, and the intermediate node device receives the path information and then the path The message is forwarded to the tail node device R1.
  • the tail node device R1 After receiving the path message, the tail node device R1 returns the reservation information to the intermediate node device, where the reservation information includes the address of the tail node device R1, the identifier of the tail node device R1, and the allocation of the tail node device R1 to the intermediate node device. label.
  • an OLIBS entry for the tail node device R1 in the Out Label and Interface Bit String (OLIBS) table of the label and the outbound interface may be generated according to the reservation information.
  • the OLIBS entry includes the outgoing label of the intermediate node device, the outgoing interface, and the identifier of the tail node device R1.
  • the outbound interface is used to indicate the physical outbound interface of the intermediate node device to the tail node device R1, and the outbound label is used to indicate the first tunnel, and the OLIBS entry can be represented as ( ⁇ OutLabel, OutIntf ⁇ , BSM).
  • BSM is an abbreviation of BitString Map.
  • the intermediate node device returns the reservation information to the head node device, where the reservation information includes an outbound label allocated by the intermediate node device to the head node device, an address of the tail node device R1, and an identifier of the tail node device R1, and the head node device according to the pre
  • the information is generated to generate an OLIBS entry, where the OLIBS entry includes an outbound label of the head node device, an outbound interface, and an identifier of the tail node device R1, where the outbound interface is used to indicate the physical outbound interface of the head node device, and the outbound label is used to indicate The first tunnel.
  • a correspondence table (Label Switch Router BIT, LSR BIT) of the address of the tail node device R1 (LSR-id) and the identifier of the tail node device R1 (BFR-id) is also generated on the head node device, where the LSR-id Is the abbreviation of Label Switch Router id, which is used in this description to indicate the address of the tail node device.
  • the head node device further sends a path message to the intermediate node device, where the path message includes the tunnel identifier and the address of the tail node device R2, and the intermediate node device forwards the path message to the tail node device R2 after receiving the path information.
  • the tail node device R2 After receiving the path message, the tail node device R2 returns the reservation information to the intermediate node device, where the reservation information includes the address of the tail node device R2, the identifier of the tail node device R2, and the tail node device R2 allocates the output to the intermediate node device. label.
  • an OLIBS entry for the tail node device R2 in the OLIBS table may be generated according to the reservation information, where the OLIBS entry includes the outbound label, the outbound interface, and the tail node of the intermediate node device.
  • the intermediate node device returns the reservation information to the head node device, where the reservation information includes an outbound label allocated by the intermediate node device to the head node device, an address of the tail node device R2, and an identifier of the tail node device R2, and the OLIBS of the head node device
  • the identifier of the tail node device R2 is added to the generated OLIBS entry of the table, and a correspondence table of the address of the tail node device R2 (LSR-id) and the identifier of the tail node device R2 (BFR-id) is generated.
  • the path message sent by the intermediate node device carries the address of the different tail node device
  • the returned reservation information carries the identifier of the different tail node device
  • an OLIBS table in the OLIBS table is generated on the head node device.
  • the value of the BSM in the OLIBS entry is determined by the identity of the tail node devices (R1, R2, R3, and R4).
  • a Next Hop Label Forwarding Entry (NHLFE), which includes a tunnel identifier, an outgoing label, and an outgoing interface, and is represented as (tunnel ID, list ⁇ out label, outgoing interface ⁇ ).
  • the intermediate node device may generate an OLIBS table including four OLIBS entries, and may also generate an NHLFE table, where the NHLFE table includes a tunnel identifier, an outgoing label, and an outgoing interface, and is represented as (tunnel ID, list ⁇ out label, outbound interface). ⁇ ), the list has 4 records, including the outbound interface and outgoing label of the intermediate node device to the tail node device R1, the tail node device R2, the tail node device R3, and the tail node device R4.
  • the head node device is directly connected to the tail node device R5
  • another OLIBS entry in the OLIBS table may be generated on the head node device, where the OLIBS entry includes the head node device.
  • the intermediate node device directly connected to the head node device also generates an OLIBS table, where the OLIBS table includes an OLIBS entry, and the OLIBS entry includes an outgoing label and an outgoing interface of the intermediate node device. And the identification of the tail node devices (R1, R2, R3, and R4).
  • the intermediate node device directly connected to the tail node device also generates an OLIBS table, where the OLIBS table includes four OLIBS entries, and the BSMs in the four OLIBS entries are respectively the identifier of the tail node device R1 and the identifier of the tail node device R2.
  • the situation of other multiple intermediate node devices is analogous, and will not be described here.
  • the OLIBS table, the NHLFE table, and the LSR-id and BFR-id correspondence tables may be configured on the head node device, and the OLIBS table and the NHLFE table are configured on the intermediate node device.
  • the head node device may receive the OLIBS table, the NHLFE table, and the LSR-id and BFR-id correspondence table delivered by the controller, and the intermediate node device may receive the OLIBS table and the NHLFE table delivered by the controller.
  • the established template tunnel is obtained from the above manner.
  • the head node device generates a first entry, where the first entry includes a first bit string map BitString Map information, where the first BitString Map information includes a first tail that is not directly connected to the head node device.
  • the directly connected two node devices can directly communicate on the basis of establishing a network connection without forwarding by other node devices, and the indirectly connected two node devices have no direct network connection, and need to pass other node devices when performing communication. To forward.
  • the head node device when the tail node device returns the reservation information to the intermediate node device, the reservation information includes the identifier of the tail node device, and the head node device sends the path message to the tail node device multiple times, and then returns.
  • the head node device and the intermediate node device can learn the identifier of the tail node device that is reachable by the first multicast stream through the first tunnel, and generate a first entry.
  • the head node device learns the identifier of the tail node device that is reachable by the first multicast stream by using the first tunnel, and generates a first entry.
  • the first entry includes BitString Map information.
  • the BitString Map in the head node device is determined by the identifiers of the tail node device devices (R1, R2, R3, and R4), and the BitString Map can be represented as 00001111, wherein the lowest bit of the BitString Map can represent the tail node.
  • the identifier of the device R1, the second bit indicates the identifier of the tail node device R2, the third bit indicates the identifier of the tail node device R3, the fourth bit indicates the identifier of the tail node device R4, and the like.
  • the first entry may include the first BitString information.
  • the first entry further includes the first outbound interface information and the first The first outbound interface information is used to indicate a physical outbound interface of the head node device, and the first outgoing label information is used to indicate the first tunnel.
  • the head node device if the template tunnel includes only the first path, the head node device generates a first entry when the first path of the first tunnel is established, where the first path includes the head node device and the first intermediate node device. And tail node devices (R1, R2, R3, and R4). Specifically, the first path starts from the head node device, and reaches the tail node device via the first intermediate node device.
  • the head node device is indirectly connected with the tail node devices (R1, R2, R3, and R4), and the first BitString Map information includes identifiers of the tail node devices (R1, R2, R3, and R4).
  • the head node device further generates a second entry, where the second entry includes the second BitString Map information, the second outbound interface information, and the second outgoing label information.
  • the second BitString Map information includes an identifier of a second tail node device directly connected to the head node device.
  • the at least one tail node device includes the second tail node device.
  • the second outbound interface information is different from the first outbound interface information, and the second outgoing label information and the first outgoing label information both correspond to the identifier of the first tunnel.
  • the head node device generates a second entry when establishing the second path of the first tunnel.
  • the second path includes a head node device and a tail node device R5.
  • the second path starts from the head node device and directly reaches the tail node device.
  • the head node device is directly connected to the tail node device R5.
  • the outbound interface information in the second entry is different from the outbound interface information of the first entry, indicating that the next hop device connected by the head node device via the second path and the head node device are in the first path.
  • the next hop device connected is different.
  • the value of the outgoing label in the second entry may be the same as the value of the outgoing label of the first entry, or may be different, but the outgoing label information and the first table in the second entry
  • the outbound label information of the item corresponds to the identifier of the first tunnel, indicating that the first path and the second path belong to the first tunnel.
  • the intermediate node device may allocate the label 101 to the head node device, and the outbound label 101 corresponds to the tunnel identifier of the first tunnel. And the head node device can be connected to the first intermediate node device through the first outbound interface.
  • the tail node device R5 may also allocate the label 101 to the head node device, where the outgoing label 101 corresponds to the tunnel identifier of the first tunnel, and the first path of the first tunnel.
  • the outbound tag 101 of the head node device is the same.
  • the tail node device R5 may allocate the label 102 to the head node device, which is different from the outgoing label 101 of the head node device on the first path of the first tunnel, but the outgoing label 102 also corresponds to the tunnel identifier of the first tunnel.
  • the head node device acquires BitString information of the multicast stream, where the BitString information includes an identifier of a tail node device that the first multicast stream is expected to reach.
  • the head node device can obtain the overlay information of the multicast stream, and the LSR-id and BFR-id correspondence table, where the overlay information includes address information of all the tail node devices that the multicast stream is expected to reach, and then according to the The overlay information, and the LSR-id and BFR-id correspondence table, obtain BitString information.
  • the tail node device R1, the tail node device R2, the tail node device R3, and the tail node device R4 are assigned the identifiers 00000001, 00000010, 00000100, and 00001000, respectively.
  • the head node device learns that the multicast stream is desirably forwarded to the tail node device R1, the tail node device R2, and the tail node device R4. Therefore, the BitString information includes the identifier of the tail node device R1, the identifier of the tail node device R2, and the identifier of the tail node device R4.
  • the BitString can be represented as 00001011, wherein the lowest bit of the BitString can represent the identifier of the tail node device R1, the second bit represents the identifier of the tail node device R2, and the third bit 0 indicates that there is no identifier of the tail node device R3, and the fourth The bit indicates the identity of the tail node device R4 and the like.
  • the head node device determines whether the identifier of the tail node device that the multicast stream in the BitString information is expected to reach is included in the BitString Map information.
  • the head node device sends the first multicast stream to the tail node (R1, R2, and R4) through the intermediate node device according to the BitString of the first multicast stream, and learns according to the generated BitString Map.
  • the tail node device directly connected by the intermediate node device includes the identifier of the tail node device R1, the identifier of the tail node device R2, the identifier of the tail node device R3, and the identifier of the tail node device R4. Therefore, the BitString Map information includes the identifier of the node device R1 in the BitString information, the identifier of the tail node device R2, and the identifier of the tail node device R4.
  • the head node device may obtain a first operation result according to the BitString information and the BitString Map information, where a value of the first operation result is equal to a bitwise AND operation of the BitString information and the BitString Map information. The value obtained.
  • the BitString Map information is determined by the identifiers of the tail node device devices (R1, R2, R3, and R4), and the BitString Map can be represented as 00001111, wherein the lowest bit of the BitString Map can represent the tail node device R1.
  • the identifier of the tail node device R2, the third bit indicates the identifier of the tail node device R3, and the fourth bit indicates the identifier of the tail node device R4.
  • the BitString information is determined by the identity of the node device R1, the identifier of the tail node device R2, and the identifier of the tail node device R4, which can be represented as 00001011.
  • the lowest bit of the BitString may represent the identifier of the tail node device R1, the second bit indicates the identifier of the tail node device R2, the third bit indicates that there is no identifier of the tail node device R3, and the fourth bit indicates the identifier of the tail node device R4.
  • the first operation result is a result of bitwise AND operation of 00001111 and 00001011, and the result of the operation result is 00001011, and the head node device determines to transmit the first multicast stream to the intermediate node device.
  • the head node device may determine, according to the first outbound interface information and the first outgoing label information, a physical outbound interface indicated by the first outbound interface information, and send the location through the first tunnel The first multicast stream is described.
  • the first tunnel includes a first path and a second path, where the first entry includes first outbound interface information and first outgoing label information of the head node device on the first path, and second The entry includes the second outbound interface information and the second outgoing label information of the head node device on the second path.
  • the first outbound interface information and the second outbound interface information are different, the first outbound interface information is different from the second outbound interface information, the first outbound interface information is directed to the first intermediate node device, and the second The outbound interface information points to the tail node device R5. Therefore, according to the first outbound interface information and the first outgoing label information, the head node device determines to send the multicast stream to the first intermediate node device.
  • the head node device determines whether the identifier of the tail node device that the first multicast stream is expected to reach in the BitString information is included in the second BitString information.
  • the head node device determines that the second BitString Map information includes an identifier of a tail node device that the first multicast stream in the BitString information is expected to reach, the head node device passes the first tunnel Forwarding the first multicast stream to the second tail node device.
  • the second BitString Map information includes an identifier of the tail node device R5, and the identifier (BitString information) of the tail node device that the first multicast stream is expected to reach includes the identifier of the node device R1, and the tail node device.
  • the head node device determines that the BitString Map information includes an identifier of at least one tail node device that the first multicast stream in the BitString information is expected to reach, the head node device passes the first The tunnel forwards the first multicast stream to the first intermediate node device.
  • the head node device determines that the BitString Map information does not include the identifier of the tail node device that the first multicast stream in the BitString information is expected to reach, the head node device discards the first multicast stream. .
  • the head node device establishes a second tunnel by using the second intermediate node device, where a source node of the second tunnel is the head node device, and a destination node of the second tunnel is the at least one a tail node device, the second tunnel is used to forward multiple multicast streams, and the second tunnel includes a second multicast stream.
  • the head node device determines that the bandwidth occupancy of the first tunnel is greater than a first threshold, the head node device forwards the second multicast stream via the second tunnel.
  • the head node device may establish multiple tunnels with different priorities, and the head node device may acquire bandwidth consumption on each tunnel. Then, according to the bandwidth consumption, the tunnel is selected according to the priority. .
  • the first tunnel is: head node device -> first intermediate node device -> ⁇ R1, R2, R3, R4 ⁇ ;
  • the second tunnel is: head node device -> second intermediate node device -> ⁇ R1, R2 R3, R4 ⁇ ; wherein the first tunnel path has the highest priority and the second tunnel path has the lower priority.
  • the first tunnel is preferentially selected to forward the multicast stream, it is learned that when processing the 401th multicast stream, the bandwidth consumption of the first 400 multicast streams is greater than the maximum bandwidth of the first tunnel path. Therefore, the second selection is performed.
  • the tunnel processes the 401th multicast stream.
  • For the process of establishing the second tunnel refer to the process of establishing the first tunnel, which is not described herein.
  • the intermediate node device generates a first entry, where the first entry includes a first bit string map BitString Map information, where the first BitString Map information includes a first tail node directly connected to the intermediate node device. The identity of the device.
  • the head node device may send a path message to the intermediate node device, where the path message includes a tunnel identifier and an address of the tail node device R1, and the intermediate node device forwards the path message to the tail node device after receiving the path information. R1.
  • the tail node device R1 After receiving the path message, the tail node device R1 returns the reservation information to the intermediate node device, where the reservation information includes the address of the tail node device R1, the identifier of the tail node device R1, and the allocation of the tail node device R1 to the intermediate node device. label.
  • an OLIBS entry for the tail node device R1 in the OLIBS table may be generated according to the reservation information, where the OLIBS entry includes the outbound label, the outbound interface, and the tail node of the intermediate node device.
  • the head node device further sends a path message to the intermediate node device, where the path message includes the tunnel identifier and the address of the tail node device R2, and the intermediate node device forwards the path message to the tail node device R2 after receiving the path information.
  • the tail node device R2 After receiving the path message, the tail node device R2 returns the reservation information to the intermediate node device, where the reservation information includes the address of the tail node device R2, the identifier of the tail node device R2, and the tail node device R2 allocates the output to the intermediate node device. label.
  • an OLIBS entry for the tail node device R2 in the OLIBS table may be generated according to the reservation information, where the OLIBS entry includes the outbound label, the outbound interface, and the tail node of the intermediate node device.
  • the outbound interface is used to indicate a physical outbound interface of the intermediate node device to the tail node device R2, and the outgoing label is used to indicate the first tunnel.
  • the intermediate node device may generate an OLIBS table including four OLIBS entries, and may also generate an NHLFE table, where the NHLFE table includes a tunnel identifier, an outgoing label, and an outgoing interface, and is represented as (tunnel ID, list ⁇ out label, outbound interface ⁇
  • the list has 4 records, including the outbound interface and outgoing label of the intermediate node device to the tail node device R1, the tail node device R2, the tail node device R3, and the tail node device R4.
  • the OLIBS table and the NHLFE table can be configured on the intermediate node device.
  • the OLIBS table and the NHLFE table of the intermediate node device delivered by the controller are received.
  • the reservation information includes the identifier of the tail node device, and after the head node device sends the path message to the tail node device multiple times, the reservation information is returned.
  • the intermediate node device can learn the identifier of the tail node device that is reachable by the first multicast stream by using the first tunnel, and generate a first entry.
  • the identifier of the tail node device that is reachable by the first multicast stream by using the first tunnel may be obtained according to the OLIBS table that is pre-configured or sent by the controller, and then the first entry is generated.
  • the first entry includes BitString Map information.
  • BitString Map can be represented as 00000001, 00000010, 00000100, and 00001000 in the intermediate node device.
  • 00000001 represents the identifier of the tail node device R1
  • 00000010 represents the identifier of the tail node device R2
  • 00000100 represents the identifier of the tail node device R3
  • 00001000 represents the identifier of the tail node device R4.
  • the intermediate node device acquires bit string BitString information included in the first multicast stream, where the BitString information includes an identifier of a tail node device that the first multicast stream is expected to reach.
  • the BitString information is stored in the packet header of the first multicast stream, and the intermediate node device receives the first multicast. After the flow, the BitString information can be obtained directly from the packet header of the first multicast stream.
  • the intermediate node device determines whether the identifier of the tail node device that the first multicast stream is expected to reach in the BitString information is included in the first BitString Map information.
  • the intermediate node device may send the first multicast stream to the tail node device R1, the tail node device R2, and the tail node device R4 according to the BitString of the first multicast stream.
  • the intermediate node device is directly connected to the tail node devices (R1, R2, R3, and R4), so four BitString Map information are generated on the intermediate device, and the four BitString Map information respectively include the identifier of the tail node device R1 and the tail node device.
  • the intermediate node device may determine that the identifier of any one of the tail node device R1, the tail node device R2, and the tail node device R4 is not included in the third BitString Map information, and the rest of the BitString Map information includes the tail node device R1 and the tail node. Identification of any of device R2 and tail node device R4.
  • the intermediate node device obtains a first operation result according to the BitString information and the first BitString Map information, and the value of the first operation result is equal to the BitString information and the first BitString Map information. The value obtained by bit and operation.
  • four BitString Map information are 00000001, 00000010, 00000100, and 00001000, respectively.
  • the 00000001 may indicate the identifier of the tail node device R1
  • the 00000010 may indicate the identifier of the tail node device R2
  • the 00000100 may indicate the identifier of the tail node device R3
  • the 00001000 may indicate the identifier of the tail node device R4.
  • the BitString information is determined by the identity of the node device R1, the identifier of the tail node device R2, and the identifier of the tail node device R4, which can be represented as 00001011.
  • the lowest bit of the BitString may represent the identifier of the tail node device R1, the second bit represents the identifier of the tail node device R2, the third bit 0 indicates that there is no identifier of the tail node device R3, and the fourth bit indicates the identifier of the tail node device R4.
  • the 00000001, 00000010, 00000100, and 00001000 are bitwise ANDed with 00001011, respectively, and the result of the first group operation is 00000001, and the intermediate node device determines to send the first multicast stream to the tail node device R1.
  • the result of the second set of operations is 00000010, and the intermediate node device determines to send the first multicast stream to the tail node device R2.
  • the result of the third group of operations is 00000000, and the intermediate node device determines that the result of the first group operation of not transmitting the first multicast stream to the tail node device R3 is 00001000, and the intermediate node device determines to send the first multicast stream to the tail node device R4.
  • the first entry further includes a first outgoing interface information and a first outgoing label information, where the first outgoing interface information is used to indicate a physical outgoing interface of the intermediate node device, and the first outgoing label information
  • the intermediate node device determines, according to the first outbound interface information and the first outgoing label information, a physical outbound interface indicated by the first outbound interface information, and The first tunnel sends the first multicast stream.
  • the intermediate node devices are directly connected to the tail node device R1, the tail node device R2, the tail node device R3, and the tail node device R4, respectively, which belong to the first tunnel, but use different physical outbound interfaces respectively.
  • the tail node device R1, the tail node device R2, the tail node device R3, and the tail node device R4 are connected, and the outgoing label information may be the same or different, but the outgoing label information of both indicates the first tunnel.
  • the tail node device R1 may allocate the label 101 to the intermediate node device, and the outgoing label 101 corresponds to the tunnel identifier of the first tunnel.
  • the tail node device R2 may allocate the label 101 to the intermediate node device, and the outgoing label 102 also corresponds to the tunnel identifier of the first tunnel.
  • the head node device further generates a second entry, where the second entry includes a second bit string map BitString Map information, a second outbound interface information, and a second outgoing label information, where the second BitString Map
  • the information includes an identifier of the second tail node device directly connected to the intermediate node device, the at least one tail node device includes the second tail node device, the second outbound interface information and the first outbound interface information Differently, the second outgoing label information and the first outgoing label information both correspond to the identifier of the first tunnel.
  • the intermediate node device determines whether the identifier of the tail node device that the first multicast stream is expected to reach in the BitString information is included in the second BitString Map information.
  • the intermediate node device determines that the second BitString Map information includes an identifier of a tail node device that the first multicast stream in the BitString information is expected to reach, the intermediate node device passes the first tunnel Forwarding the first multicast stream to the second tail node device.
  • the intermediate node device determines that the first BitString Map information includes an identifier of a tail node device that the first multicast stream in the BitString information is expected to reach, the intermediate node device passes the A tunnel forwards the first multicast stream to the first tail node device.
  • the intermediate node device when the intermediate node device determines that the second operation result is non-zero, the intermediate node device forwards the first group to a next hop node device of the intermediate node device by using the first tunnel. Broadcast. When the intermediate node device determines that the second operation result is 0, the intermediate node device discards the first multicast stream.
  • the values 00000001, 00000010, 00000100, and 00001000 of the BitString Map in the intermediate node device are bitwise ANDed with the value 00001011 of the BitString respectively, and the result of the first group operation is 00000001, and the intermediate node The device sends the first multicast stream to the tail node device R1.
  • the result of the second set of operations is 00000010, and the intermediate node device sends the first multicast stream to the tail node device R2.
  • the intermediate node device does not send the first multicast stream to the tail node device R3, and the result of the fourth group operation is 00001000, the intermediate node device sends the first multicast stream to the tail node device R4. .
  • FIG. 6 is a schematic structural diagram of a multicast forwarding system according to an embodiment of the present disclosure.
  • the multicast forwarding system includes multiple node devices, where the multiple nodes include a head node device, an intermediate node device, and a tail.
  • the node device wherein the head node device comprises a node R255, the intermediate node device comprises an intermediate node device R256, an intermediate node device NPE1, an intermediate node device NPE2, an intermediate node device UPE1 and an intermediate node device UPE2, and the tail node device comprises a tail node device R1.
  • the NHLFE table and the OLIBS table are stored on the head node device R255, wherein the NHLFE is represented as (tunnel identifier, at least one ⁇ outbound label, outbound interface ⁇ ), and OLIBS is represented as ( ⁇ out label, outbound interface) ⁇ , BSM), where BSM is an abbreviation of BitString Map, each ⁇ out label, outbound interface ⁇ corresponds to a BitString Map, which is encoded by the identifier of all tail node devices downstream of the ⁇ out label, outbound interface ⁇ to make. As shown in FIG.
  • the header node device R255 further stores path information, overlay information, TEDB information, and the like of the template tunnel, and the multicast traffic path table and the multicast traffic BitString table can be generated from the above information.
  • the downstream node device adjacent to the head node device R255 includes the intermediate node device NPE1 and the intermediate node device R256. Therefore, the head node device R255 includes the ⁇ first outgoing label, the first outgoing interface ⁇ corresponding intermediate node device.
  • the intermediate node device R256 corresponding to the NPE1 and the ⁇ second outgoing label, the second outgoing interface ⁇ .
  • the first outbound interface ⁇ corresponds to the intermediate node device NPE1, so the intermediate node device NPE1 is selected to forward the multicast stream.
  • the device includes a tail node device R1, a tail node device R2, a tail node device R3, ..., a tail node device R254.
  • the BitString Map and the above BitString are bitwise ANDed, and the result of the operation is 00001011. Therefore, the head node device R255 sends the first multicast stream to the intermediate node device NPE1.
  • an Incoming Label Map (ILM) table, an NHLFE table, and an OLIBS table are stored on the intermediate node device NPE1.
  • the ILM table includes the tunnel identifier and the ingress label of the intermediate node device NPE1, which is represented as (tunnel ID, inbound label), NHLFE is represented as (tunnel identifier, at least one ⁇ outbound label, outbound interface ⁇ ), and OLIBS is expressed as ( ⁇ out Label, outbound interface ⁇ , BSM), each ⁇ outbound label, outbound interface ⁇ corresponds to a BitString Map, which is encoded by the identifiers of all tail node devices downstream of the ⁇ outbound label, outbound interface ⁇ .
  • the downstream node device adjacent to the intermediate node device NPE1 includes the intermediate node device NPE2 and the intermediate node device UPE1, so the intermediate node device NPE1 includes the ⁇ first outgoing label, the first outgoing interface ⁇ corresponding intermediate node device NPE2 and ⁇ second Outbound label, second outbound interface ⁇ corresponding intermediate node device UPE1.
  • the template tunnel R255---->NPE1--->UPE1----> ⁇ R1, R2, R3, ..., R254 ⁇ is determined according to the ingress label of the intermediate node device NPE1, the template is known by the NHLFE table.
  • the tunnel indicates that the ⁇ first outgoing label, the first outgoing interface ⁇ of the intermediate node device NPE1 corresponds to the intermediate node device UPE1, so the intermediate node device UPE1 is selected to forward the multicast stream.
  • the template tunnel R255---->NPE1--->UPE1----> ⁇ R1, R2, R3, ..., R254 ⁇
  • all the tail node devices downstream of the ⁇ first outgoing label, first outgoing interface ⁇ are known.
  • the ILM table and the NHLFE table are stored on the intermediate node device UPE1.
  • the ILM table includes the tunnel identifier and the ingress label of the intermediate node device UPE1, which is represented as (tunnel ID, inbound label).
  • the NHLFE is expressed as (tunnel identifier, at least one ⁇ out label, outbound interface ⁇ ).
  • FIG. 8 is a schematic structural diagram of a head node device according to an embodiment of the present disclosure.
  • the head node device may be a processor, for example, may include an establishing module 801, a generating module 802, an obtaining module 803, and a determining module 804. And a transmitting module 805, wherein a detailed description of each module is as follows.
  • the establishing module 801 is configured to establish a first tunnel, where the source node of the first tunnel is the head node device, the destination node of the first tunnel is the at least one tail node device, and the first tunnel is used by Forwarding a plurality of multicast streams, the plurality of multicast streams including the first multicast stream.
  • the generating module 802 is configured to generate a first entry, where the first entry includes a first bit string map BitString Map information, where the first BitString Map information includes a first tail node that is not directly connected to the head node device. An identifier of the device, the at least one tail node device including the first tail node device.
  • the obtaining module 803 is configured to obtain bit string BitString information of the first multicast stream, where the BitString information includes an identifier of a tail node device that the first multicast stream is expected to reach.
  • the determining module 804 is configured to determine whether the identifier of the tail node device that the first multicast stream in the BitString information is expected to reach is included in the first BitString Map information.
  • the sending module 805 is configured to use the first tunnel Forwarding the first multicast stream to the first intermediate node device.
  • the determining module 804 is specifically configured to:
  • the sending module 805 is specifically configured to forward the first multicast stream to the first intermediate node device by using the first tunnel.
  • the first entry further includes a first outgoing interface information and a first outgoing label information, where the first outgoing interface information is used to indicate a physical outgoing interface of the head node device, and the first outgoing label information is used by the first outgoing label information. Instructing the first tunnel.
  • the determining module 804 is further configured to determine, according to the first outbound interface information and the first outgoing label information, a physical outbound interface indicated by the first outbound interface information, and Sending the first multicast stream.
  • the multicast network further includes a second intermediate node device, and the sending module 801 is further configured to establish a second tunnel, where the source node of the second tunnel is the head node device, and the destination node of the second tunnel For the at least one tail node device, the second tunnel is configured to forward the multiple multicast streams, and the multiple multicast streams include a second multicast stream; when the determining module 804 determines the first tunnel When the bandwidth occupancy is greater than the first threshold, the sending module 805 is further configured to forward the second multicast stream to the second intermediate node device by using the second tunnel.
  • the generating module 802 is further configured to generate a second entry, where the second entry includes a second bit string map BitString Map information, a second outbound interface information, and a second outgoing label information, where the second BitString Map information An identifier of a second tail node device directly connected to the head node device, where the at least one tail node device includes the second tail node device, and the second outbound interface information is different from the first outbound interface information
  • the second outgoing label information and the first outgoing label information both correspond to the identifier of the first tunnel;
  • the determining module 804 is further configured to determine whether the identifier of the tail node device that the first multicast stream in the BitString information is expected to reach is included in the second BitString Map information.
  • the sending module 805 is further configured to use the first tunnel to The second tail node device forwards the first multicast stream.
  • the determining module 804 determines that the first BitString Map information does not include the identifier of the tail node device that the first multicast stream in the BitString information is expected to reach, the determining module 804 is further configured to discard the The first multicast stream is described.
  • each module may also perform the methods and functions performed in the foregoing embodiments in accordance with the corresponding description of the head node device in the method embodiment shown in FIG. 2 .
  • FIG. 9 is a schematic structural diagram of an intermediate node device according to an embodiment of the present disclosure.
  • the head node device may be a processor, for example, may include a receiving module 901, a generating module 902, an obtaining module 903, and a determining module 904. And a transmitting module 905, wherein a detailed description of each module is as follows.
  • the receiving module 901 is configured to receive, by using the first tunnel, a first multicast stream that is sent by the head node device, where a source node of the first tunnel is the head node device, and a destination node of the first tunnel is the at least one a tail node device, where the first tunnel is used to forward multiple multicast streams, and the multiple multicast streams include the first multicast stream;
  • the generating module 902 is configured to generate a first entry, where the first entry includes a first bit string map BitString Map information, where the first BitString Map information includes a first tail node device directly connected to the intermediate node device Identification
  • the obtaining module 903 is configured to obtain bit string BitString information included in the first multicast stream, where the BitString information includes an identifier of a tail node device that the first multicast stream is expected to reach.
  • the determining module 904 is configured to determine whether the identifier of the tail node device that the first multicast stream in the BitString information is expected to reach is included in the first BitString Map information.
  • the sending module 905 is configured to use the first tunnel to The first tail node device forwards the first multicast stream.
  • the determining module 904 is specifically configured to:
  • the first entry further includes a first outgoing interface information and a first outgoing label information, where the first outgoing interface information is used to indicate a physical outgoing interface of the intermediate node device, and the first outgoing label information is used by the first outgoing label information. Instructing the first tunnel.
  • the determining module 904 is further configured to determine, according to the first outbound interface information and the first outgoing label information, a physical outbound interface indicated by the first outbound interface information, and send the first through the first tunnel A multicast stream.
  • the generating module 902 is further configured to generate a second entry, where the second entry includes a second bit string map BitString Map information, a second outbound interface information, and a second outgoing tag information, where the second BitString Map
  • the information includes an identifier of the second tail node device directly connected to the intermediate node device, the at least one tail node device includes the second tail node device, the second outbound interface information and the first outbound interface information Differently, the second outgoing label information and the first outgoing label information both correspond to the identifier of the first tunnel;
  • the determining module 904 is further configured to determine whether the identifier of the tail node device that the first multicast stream in the BitString information is expected to reach is included in the second BitString Map information.
  • the sending module 905 is further configured to use the first tunnel to The second tail node device forwards the first multicast stream.
  • each module may also perform the methods and functions performed in the foregoing embodiments in accordance with the corresponding description of the intermediate node device in the method embodiment shown in FIG. 2 .
  • FIG. 10 is a schematic structural diagram of a head node device proposed by the present application.
  • the apparatus can include at least one processor 1001, at least one communication interface 1002, at least one memory 1003, and at least one communication bus 1004.
  • the communication bus 1004 is used to implement connection communication between these components.
  • the communication interface 1002 of the device in the embodiment of the present application is used for signaling or data communication with other node devices.
  • the memory 1003 may be a high speed RAM memory or a non-volatile memory such as at least one disk memory.
  • the memory 1003 can also optionally be at least one storage device located remotely from the aforementioned processor 1001.
  • a set of program codes is stored in the memory 1003, and may be further used to store temporary data such as intermediate operation data of the processor 1001.
  • the processor 1001 executes the program code in the memory 1003 to implement the method mentioned in the previous embodiment, and can be specifically referred to the description of the previous embodiment. Further, the processor 1001 can also cooperate with the memory 1003 and the communication interface 1002 to perform the operations of the head node device in the above application embodiment.
  • the processor 1001 may specifically include a processor that executes the program code, such as a central processing unit (CPU) or a digital signal processor (DSP) or the like.
  • the memory 1003 may not have program code, and the processor 1001 may include a hardware processor that does not need to execute program code, such as an application specific integrated circuit (ASIC), a field programmable logic gate array (FPGA), or an integrated circuit. A hardware accelerator formed by the circuit. At this time, the memory 1003 may be used only for storing temporary data such as intermediate calculation data of the processor 1001.
  • ASIC application specific integrated circuit
  • FPGA field programmable logic gate array
  • FIG. 11 is a schematic structural diagram of an intermediate node device proposed by the present application.
  • the apparatus may include at least one processor 1101, at least one communication interface 1102, at least one memory 1103, and at least one communication bus 1104.
  • the communication bus 1104 is used to implement connection communication between these components.
  • the communication interface 1102 of the device in the embodiment of the present application is used for signaling or data communication with other node devices.
  • the memory 1103 may be a high speed RAM memory or a non-volatile memory such as at least one disk memory.
  • the memory 1103 can also optionally be at least one storage device located remotely from the aforementioned processor 1101.
  • a set of program codes is stored in the memory 1103, and may be further used to store temporary data such as intermediate operation data of the processor 1101.
  • the processor 1101 executes the program code in the memory 1103 to implement the method mentioned in the previous embodiment, and can be specifically referred to the description of the previous embodiment. Further, the processor 1101 can also cooperate with the memory 1103 and the communication interface 1102 to perform the operations of the intermediate node device in the above application embodiment.
  • the processor 1101 may specifically include a processor that executes the program code, such as a central processing unit (CPU) or a digital signal processor (DSP) or the like.
  • the memory 1103 may not have program code, and the processor 1101 may include a hardware processor that does not need to execute program code, such as an application specific integrated circuit (ASIC), a field programmable logic gate array (FPGA), or an integrated circuit. A hardware accelerator formed by the circuit. At this time, the memory 1103 can be used only for storing temporary data such as intermediate operation data of the processor 1101.
  • ASIC application specific integrated circuit
  • FPGA field programmable logic gate array
  • the functions of the method may be implemented in whole or in part by software, hardware, firmware or any combination thereof.
  • software When implemented in software, it may be implemented in whole or in part in the form of a computer program product.
  • the computer program product includes one or more computer instructions.
  • the computer instructions can be stored in a computer readable storage medium or transferred from one computer readable storage medium to another computer readable storage medium, for example, the computer instructions can be from a website site, computer, server or data center Transfer to another website site, computer, server, or data center by wire (eg, coaxial cable, fiber optic, digital subscriber line (DSL), or wireless (eg, infrared, wireless, microwave, etc.).
  • the computer readable storage medium can be any available media that can be accessed by a computer or a data storage device such as a server, data center, or the like that includes one or more available media.
  • the usable medium may be a magnetic medium (eg, a floppy disk, a hard disk, a magnetic tape), an optical medium (eg, a DVD), or a semiconductor medium (such as a solid state disk (SSD)).

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种组播转发方法,应用在BIER的组播网络中,包括:头节点设备建立第一隧道;生成第一表项;获取第一组播流的BitString信息,BitString信息包括第一组播流期望到达的尾节点设备的标识;确定第一BitString Map信息中是否包括BitString信息中的第一组播流期望到达的尾节点设备的标识;当头节点设备确定第一BitString Map信息中包括BitString信息中的第一组播流期望到达的至少一个尾节点设备的标识时,头节点设备经由第一隧道向第一中间节点设备转发第一组播流。

Description

一种组播转发方法及相关设备
本申请要求于2017年07月11日提交中国专利局、申请号为201710563820.5、发明名称为“一种组播转发方法及相关设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及无线通信技术领域,尤其涉及一种组播转发方法及相关设备。
背景技术
组播可以实现一个节点同时向组内的多个节点发送数据,从而节省网络带宽。例如,如图6所示,组播网络包括头节点设备R255、中间节点设备R256、NPE1、NPE2、UPE1和UPE2、以及尾节点设备R1、R2、R3和R254。如果有N个组播流量,每个组播流量需要从头节点设备R255发送到尾节点设备R1、尾节点设备R2、……、尾节点设备R254中的部分节点或全部节点,则需要为每个组播流建立一个点到多点(Point to Multi-Point,P2MP)转发树,可能存在如下转发树的组合:组播流(S1,G1)的P2MP转发树为(R255---->R1/R2);组播流(S2,G2)的P2MP转发树为(R255---->R1/R2/R3);组播流(S3,G2)的P2MP转发树为(R255---->R1/R254)。其中,S为组播源,G为组播组。
对于组播流(S1,G1),在头节点设备和中间节点设备都保存有出标签信息和出接口信息。
基于上述P2MP转发树,在组播流(S1,G1)到达头节点设备R255之后,获取组播流(S1,G1)对应的出接口信息和出标签信息,确定头节点设备R255的下一跳节点是中间节点设备NPE1,其中,头节点设备R255的出标签信息为中间节点设备NPE1的入标签信息,中间节点设备NPE1根据入标签信息获取对应的出接口信息和出标签信息,确定中间节点设备NPE1的下一跳节点是中间节点设备UPE1,中间节点UPE1根据入标签信息确定出接口信息和出标签信息,确定组播流(S1,G1)需要到达尾节点设备R1和尾节点设备R2。但是,在组播流转发的过程中每个组播流都需要有一个P2MP转发树,导致节点设备的资源开销较大。
发明内容
本申请实施例提供了一种组播转发方法及相关设备,应用在位索引显式复制(Bit Index Explicit Replication,BIER)的组播网络中,基于头节点设备建立的从头节点设备到尾节点设备的隧道,实现多个组播流的转发,从而有助于减少P2MP转发树的建立数量。
第一方面,本申请实施例提供了一种组播转发方法,该方法应用在BIER的组播网络中,组播网络包括头节点设备、中间节点设备和至少一个尾节点设备,包括:
头节点设备首先建立第一隧道,第一隧道的源节点为头节点设备,第一隧道的目的节点为至少一个尾节点设备,第一隧道用于转发多个组播流,多个组播流包括第一组播流。然后生成第一表项,第一表项包括第一位串图(BitString Map)信息,第一BitString Map信息包括未与头节点设备直接连接的第一尾节点设备的标识,至少一个尾节点设备包括第一尾节点设备。其次获取第一组播流的位串(BitString)信息,BitString信息包括第一组播流期望到达的尾节点设备的标识,确定第一BitString Map信息中是否包括BitString信息中的第一组播流期望到达的尾节点设备的标识。最后当头节点设备确定第一BitString Map信息中包括BitString信息中的第一组播流期望到达的至少一个尾节点设备的标识时,经由第一隧道向第一中间节点设备转发第一组播流。有助于减少P2MP转发树的建立数量,进而减少有头节点设备的资源开销,而且可以共享模板隧道,保持多个组播流按照BitString进行 复制而不浪费带宽。
在一种可能的设计中,头节点设备可以根据BitString信息与BitString Map信息获得第一运算结果,第一运算结果的值等于BitString信息与BitString Map信息进行按位与运算得到的值。
在另一种可能的设计中,当模板隧道包括多个路径时,第一表项还包括第一出接口信息和第一出标签信息,第一出接口信息用于指示头节点设备的物理出接口,第一出标签信息用于指示第一隧道。头节点设备可以根据第一出接口信息和第一出标签信息,确定通过第一出接口信息指示的物理出接口,并且经由第一隧道发送第一组播流。
在另一种可能的设计中,头节点设备确定第二BitString Map信息中是否包括BitString信息中的第一组播流期望到达的尾节点设备的标识;当头节点设备确定第二BitString Map信息中包括BitString信息中的第一组播流期望到达的尾节点设备的标识时,头节点设备经由第一隧道向第二尾节点设备转发第一组播流。
在另一种可能的设计中,当头节点设备确定第一运算结果为非0,头节点设备经由第一隧道向第一中间节点设备转发第一组播流。当头节点设备确定第一运算结果为0,头节点设备不向第一中间节点设备转发第一组播流。
在另一种可能的设计中,头节点设备可以获取组播流的overlay信息、以及LSR-id和BFR-id对应关系表,其中,overlay信息包括该组播流期望到达的所有尾节点设备的地址信息,然后根据overlay信息、以及LSR-id和BFR-id对应关系表,获取位串图BitString Map信息。
在另一种可能的设计中,头节点设备经由第二中间节点设备建立第二隧道,第二隧道的源节点为头节点设备,第二隧道的目的节点为至少一个尾节点设备,第二隧道用于转发多个组播流,第二隧道包括第二组播流;当头节点设备确定第一隧道的带宽占用率大于第一阈值时,头节点设备经由第二隧道转发第二组播流。
在另一种可能的设计中,当头节点设备确定BitString Map信息中不包括BitString信息中的第一组播流期望到达的尾节点设备的标识,头节点设备丢弃第一组播流。
第二方面,本申请实施例提供了一种组播转发方法,包括:
中间节点设备首先经由第一隧道接收头节点设备发送的第一组播流,第一隧道的源节点为头节点设备,第一隧道的目的节点为至少一个尾节点设备,第一隧道用于转发多个组播流,多个组播流包括第一组播流。生成第一表项,第一表项包括第一BitString Map信息,第一BitString Map信息包括与中间节点设备直接连接的第一尾节点设备的标识。其次获取第一组播流包括的BitString信息,BitString信息包括第一组播流期望到达的尾节点设备的标识;然后确定第一BitString Map信息中是否包括BitString信息中的第一组播流期望到达的尾节点设备的标识。最后当中间节点设备确定第一BitString Map信息中包括BitString信息中的第一组播流期望到达的尾节点设备的标识时,经由第一隧道向第一尾节点设备转发第一组播流。有助于减少P2MP转发树的建立数量,进而减少中间头节点设备的资源开销。而且可以共享模板隧道,保持多个组播流按照BitString进行复制而不浪费带宽。
在一种可能的设计中,中间节点设备根据BitString信息与第一BitString Map信息获得第一运算结果,第一运算结果的值等于BitString信息与第一BitString Map信息进行按位与运算得到的值。
在另一种可能的设计中,第一表项还包括第一出接口信息和第一出标签信息,第一出 接口信息用于指示中间节点设备的物理出接口,第一出标签信息用于指示第一隧道,中间节点设备根据第一出接口信息和第一出标签信息,确定通过第一出接口信息指示的物理出接口,并且经由第一隧道发送第一组播流。
在另一种可能的设计中,头节点设备还生成第二表项,第二表项包括第二位串图BitString Map信息、第二出接口信息和第二出标签信息,第二BitString Map信息包括与中间节点设备直接连接的第二尾节点设备的标识,至少一个尾节点设备包括第二尾节点设备,第二出接口信息与第一出接口信息不同,第二出标签信息与第一出标签信息均与第一隧道的标识对应。
在另一种可能的设计中,中间节点设备确定第二BitString Map信息中是否包括BitString信息中的第一组播流期望到达的尾节点设备的标识;当中间节点设备确定第二BitString Map信息中包括BitString信息中的第一组播流期望到达的尾节点设备的标识时,中间节点设备经由第一隧道向第二尾节点设备转发第一组播流。
在另一种可能的设计中,当中间节点设备确定第二运算结果为非0,中间节点设备经由第一隧道向中间节点设备的下一跳节点设备转发第一组播流。当中间节点设备确定第二运算结果为0,中间节点设备丢弃第一组播流。
在另一种可能的设计中,在头节点设备获取到第一组播流期望到达的尾节点设备的标识之后,将BitString信息存放到第一组播流的报文头中,中间节点设备接收到第一组播流之后,可以直接从第一组播流的报文头中获取到BitString信息。
第三方面,本申请实施例提供了一种头节点设备,该头节点设备被配置为实现上述第一方面中头节点设备所执行的方法和功能,由硬件/软件实现,其硬件/软件包括与上述功能相应的单元。
第四方面,本申请实施例提供了一种中间节点设备,该头节点设备被配置为实现上述第二方面中中间节点设备所执行的方法和功能,由硬件/软件实现,其硬件/软件包括与上述功能相应的单元。
第五方面,本申请提供了另一种头节点设备,包括:处理器、存储器和通信总线,其中,所述通信总线用于实现所述处理器和存储器之间连接通信,处理器执行所述存储器中存储的程序用于实现上述第一方面提供的一种组播转发方法中的步骤。
第六方面,本申请提供了另一种中间节点设备,包括:处理器、存储器和通信总线,其中,所述通信总线用于实现所述处理器和存储器之间连接通信,处理器执行所述存储器中存储的程序用于实现上述第二方面提供的一种组播转发方法中的步骤。
本申请的又一方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本申请的又一方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1是本申请实施例提供的一种节点设备的转发表;
图2是本申请实施例提供了一种组播转发方法的流程示意图;
图3是本发明实施例提供的一种模板隧道建立方法的流程示意图;
图4是本申请实施例提供的一种组播转发系统的结构示意图;
图5是本申请实施例提供的另一种组播转发系统的结构示意图;
图6是本申请实施例提供的又一种组播转发系统的结构示意图;
图7是本发明实施例提供的一种节点设备上的表项示意图;
图8是本申请实施例提供的一种头节点设备的结构示意图;
图9是本申请实施例提供的一种中间节点设备的结构示意图;
图10是本申请实施例提供的另一种头节点设备的结构示意图;
图11是本申请实施例提供的另一种中间节点设备的结构示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。
本实施例提供了一种组播转发方法,该方法应用在BIER的组播网络中。如图6所示,分别为每个尾节点设备R1、R2、……、R256分配一个BIER转发路由器的标识(BIER Forwarder Router id,BFR-id)000000001、00000010、……、00100000等等,其中,BFR-id在本申请描述中用来作为组播网络中尾节点设备的标识。在组播网络内的各节点设备生成位索引显式复制转发表(BIER Forwarding Table)。如图1所示,图1提供了一种各个节点设备的转发表。其中,节点设备的转发表中的第一列为该节点设备所在组播网络中尾节点设备的标识(BFR-id),第三列为与该节点设备邻近的下一跳节点设备(BIER Forwarder Router Neighbor,BFR-NBR),第二列为组播流经过该节点设备的下一跳节点设备到达的尾节点设备的标识的位掩码(Forwarding Bit Mask,F-BM)。
例如,组播流(S1,G1)为头节点设备R255到达尾节点设备R1和尾节点设备R2的组播流,头节点设备R255从接收到的组播流(S1,G1)中获取尾节点设备R1和尾节点设备R2的标识,并将尾节点设备R1的标识000000001和尾节点设备R2的000000010进行编码,得到BitString=00000011。其中,BitString最低位为尾节点设备R1的标识,第二位为尾节点设备R2的标识,从头节点设备R255开始转发,具体过程如下:
S1,头节点设备R255接收到组播流后,将BitString=00000011封装到组播流中。
S2,头节点设备R255将BitString=00000011读入到内存,并从内存中的BitString的最低位开始遍历码字为1的Bit位,首先遍历到BitPosition=1,表示R1。然后读取头节点设备R255的转发表中R1这一行,确定R1的BFR-NBR为NPE1,将原始组播流中的BitString与转发表R1这一行的F-BM进行按位与运算,将运算结果00000011封装在复制的组播流中,并向中间节点设备NPE1发送封装有运算结果00000011的组播流。
S3,头节点设备R255对内存中的BitString与R1这一行中取反后的F-BM进行按位与运算,即清除掉F-BM的几个Bit,清除的结果是内存中的BitString=00000000。然后再继续往BitString的高位遍历码字为1的Bit位,由于没有其它的码字为1的Bit位了,头节点设备R255遍历结束。
S4,中间节点设备NPE1的组播转发过程与头节点设备R255的组播转发过程相同,此处不再赘述,中间节点设备NPE1向中间节点设备UPE1发送携带BitString=00000011的组播流。
S5,中间节点设备UPE1接收的组播流中包括BitString=00000011,将BitString=00000011读入到内存,并从最低位开始遍历码字为1的Bit位,首先遍历到BitPosition=1,表示R1。然后读取中间节点设备UPE1的转发表中R1这一行,确定R1的BFR-NBR为R1,将原始组播流 中的BitString与转发表R1这一行的F-BM进行按位与运算,将运算结果00000001封装在复制的组播流中,并向尾节点设备R1发送封装有运算结果00000001的组播流。
S6,中间节点设备UPE1对内存中的BitString与中间节点设备UPE1的转发表中R1这一行中取反后的F-BM进行按位与运算,即清除掉R1这一行的F-BM的几个Bit,清除的结果是内存中的BitString=00000010。然后再继续往高位遍历码字为1的Bit位,遍历到BitPosition=2,表示R2。然后读取中间节点设备UPE1的转发表中R2这一行,确定R2的BFR-NBR为R2,将原始组播流中的BitString与转发表R2这一行的F-BM进行按位与运算,将运算结果00000010封装在复制的组播流中,并向尾节点设备R2发送封装有运算结果00000010的组播流。
S7,中间节点设备UPE1对内存中的BitString与中间节点设备UPE1的转发表中R1这一行中取反后的F-BM进行按位与运算,即除掉R1这一行的F-BM的几个Bit,清除的结果是内存中的BitString=00000000,然后再继续往高位遍历码字为1的Bit位,由于没有其它的码字为1的Bit位,中间节点设备UPE1遍历结束。
本实施例有效的解决了现有技术方案中每个组播流都需要有一个P2MP转发树导致节点设备工作开销较大的问题。但是,在本实施例的组播转发过程中,每次组播复制时需要对报文中的BitString进行编辑,影响转发效率。另外,组播流需要按照预定的路径进行转发,当转发路径中某条链路带宽不足时,会产生流量丢包。针对上述问题,提出了如下解决方案。
如图2所示,本申请实施例提供了一种组播转发方法的流程示意图,所述方法应用在BIER的组播网络中,所述组播网络包括头节点设备、第一中间节点设备和至少一个尾节点设备,其中,节点设备包括但不局限于路由器或交换机等网络设备。该方法包括但不限于如下步骤:
S201,所述头节点设备建立第一隧道,所述第一隧道的源节点为所述头节点设备,所述第一隧道的目的节点为所述至少一个尾节点设备,所述第一隧道用于转发多个组播流,所述多个组播流包括第一组播流。其中,所述第一隧道可以为模板隧道,用于转发组播流。所述组播流可以是经由其他节点发送到头节点设备的,也可以由所述头节点设备发出。
在一种实施例中,如图3所示,头节点设备可以向中间节点设备发送路径消息,所述路径消息包括隧道标识和尾节点设备R1的地址,中间节点设备接收到路径信息之后将路径消息转发给尾节点设备R1。尾节点设备R1收到路径消息之后,向中间节点设备返回预留信息,所述预留信息包括尾节点设备R1的地址、尾节点设备R1的标识以及尾节点设备R1给中间节点设备分配的出标签。因此,在中间节点设备接收到预留信息之后,可以根据预留信息生成出标签和出接口的位串(Out Label and Interface BitString,OLIBS)表中一个针对尾节点设备R1的OLIBS表项,该OLIBS表项包括中间节点设备的出标签、出接口以及尾节点设备R1的标识。其中,所述出接口用于指示中间节点设备到尾节点设备R1的物理出接口,所述出标签用于指示第一隧道,该OLIBS表项可以表示为({OutLabel,OutIntf},BSM),其中,BSM为BitString Map的缩写。中间节点设备将预留信息返回给头节点设备,该预留信息包括中间节点设备给头节点设备分配的出标签、尾节点设备R1的地址和尾节点设备R1的标识,头节点设备根据该预留信息生成一个OLIBS表项,该OLIBS表项包括头节点设备的出标签、出接口以及尾节点设备R1的标识,其中,出接口用于指示头节点设备的物理出接口,出标签用于指示第一隧道。在头节点设备上还生成一个尾节点设备R1的地址(LSR-id) 和尾节点设备R1的标识(BFR-id)的对应关系表(Label Switch Router BIT,LSR BIT),其中,LSR-id是Label Switch Router id(标签交换路由器的标识)的缩写,在本申请描述中用来表示尾节点设备的地址。
头节点设备再向中间节点设备发送路径消息,所述路径消息包括隧道标识和尾节点设备R2的地址,中间节点设备接收到路径信息之后将路径消息转发给尾节点设备R2。尾节点设备R2收到路径消息之后,向中间节点设备返回预留信息,所述预留信息包括尾节点设备R2的地址、尾节点设备R2的标识以及尾节点设备R2给中间节点设备分配的出标签。因此,在中间节点设备接收到预留信息之后,可以根据预留信息生成OLIBS表中一个针对尾节点设备R2的OLIBS表项,该OLIBS表项包括中间节点设备的出标签、出接口以及尾节点设备R2的标识,其中,所述出接口用于指示中间节点设备到尾节点设备R2的物理出接口,所述出标签用于指示第一隧道。中间节点设备将预留信息返回给头节点设备,该预留信息包括中间节点设备给头节点设备分配的出标签、尾节点设备R2的地址和尾节点设备R2的标识,在头节点设备的OLIBS表的已生成的OLIBS表项中增加尾节点设备R2的标识,并且生成一个尾节点设备R2的地址(LSR-id)和尾节点设备R2的标识(BFR-id)的对应关系表。
按照上述方式进行多次操作进而建立起模板隧道。如果每次经过中间节点设备发送的路径消息携带不同的尾节点设备的地址,则返回的预留信息携带不同的尾节点设备的标识,进而最后在头节点设备上生成OLIBS表中的一个OLIBS表项,该OLIBS表项中的BSM的值由尾节点设备(R1、R2、R3和R4)的标识来确定。并且还生成下一跳标签转发表(Next Hop Label Forwarding Entry,NHLFE),该NHLFE表包括隧道标识、出标签和出接口,表示为(隧道ID,list{出标签,出接口})。在中间节点设备可以一个生成包含4个OLIBS表项的OLIBS表,还可以生成一个NHLFE表,该NHLFE表包括隧道标识、出标签和出接口,表示为(隧道ID,list{出标签,出接口}),该list有4条记录,包括中间节点设备分别到尾节点设备R1、尾节点设备R2、尾节点设备R3和尾节点设备R4的出接口和出标签。
可选的,如图4所述,如果头节点设备与尾节点设备R5直接连接,则在头节点设备上还可以生成OLIBS表中的另一个OLIBS表项,该OLIBS表项包括头节点设备的出标签、出接口以及尾节点设备R5的标识,其中,所述出接口用于指示头节点设备到尾节点设备R5的物理出接口,所述出标签用于指示第一隧道。如果中间节点设备包括两个节点设备,则与头节点设备直接连接的中间节点设备也生成一个OLIBS表,该OLIBS表包括一个OLIBS表项,该OLIBS表项包括中间节点设备的出标签、出接口以及尾节点设备(R1、R2、R3和R4)的标识。与尾节点设备直接连接的中间节点设备也生成一个OLIBS表,该OLIBS表包括4个OLIBS表项,4个OLIBS表项中的BSM分别为尾节点设备R1的标识、尾节点设备R2的标识、尾节点设备R3的标识以及尾节点设备R4的标识。其他多个中间节点设备的情况依次类推,此处不再赘述。
在另一种实施例中,可以在头节点设备上配置OLIBS表、NHLFE表、以及LSR-id和BFR-id对应关系表,在中间节点设备上配置OLIBS表和NHLFE表。或者,头节点设备可以接收控制器下发的的OLIBS表、NHLFE表、以及LSR-id和BFR-id对应关系表,中间节点设备可以接收控制器下发的OLIBS表和NHLFE表。通过上述方式从中获取建立的模板隧道。
S202,所述头节点设备生成第一表项,所述第一表项包括第一位串图BitString Map信息,所述第一BitString Map信息包括未与所述头节点设备直接连接的第一尾节点设备的标识,所述至少一个尾节点设备包括所述第一尾节点设备。其中,直接连接的两个节点设备 可以在建立网络连接的基础上直接进行通信而无需其他节点设备转发,间接连接的两个节点设备之间没有直接网络连接、在进行通信时需要通过其他节点设备来转发。
具体实现中,由上述可知,在尾节点设备向中间节点设备返回预留信息时,该预留信息中包括尾节点设备的标识,头节点设备向尾节点设备多次发送路径消息之后,在返回预留信息的过程中,头节点设备和中间节点设备都可以获知所述第一组播流经由所述第一隧道可达的尾节点设备的标识,进而生成第一表项。或者,可以根据预先配置的或者控制器下发的OLIBS表,头节点设备获知所述第一组播流经由所述第一隧道可达的尾节点设备的标识,进而生成第一表项。其中,第一表项包括BitString Map信息。如图4所示,头节点设备中的BitString Map由尾节点设备设备(R1、R2、R3和R4)的标识来确定,BitString Map可以表示为00001111,其中,BitString Map的最低位可以表示尾节点设备R1的标识,第二位表示尾节点设备R2的标识,第三位表示尾节点设备R3的标识,第四位表示尾节点设备R4的标识等等。
其中,当模板隧道仅包括一条路径时,所述第一表项可以包括第一BitString Map信息,当模板隧道包括多条路径时,所述第一表项还包括第一出接口信息和第一出标签信息,所述第一出接口信息用于指示所述头节点设备的物理出接口,所述第一出标签信息用于指示所述第一隧道。
例如,如图4所示,如果模板隧道只包括第一路径,头节点设备在建立第一隧道的第一路径时生成第一表项,该第一路径包括头节点设备、第一中间节点设备和尾节点设备(R1、R2、R3和R4)。具体的,所述第一路径从所述头节点设备出发,经由所述第一中间节点设备,到达所述尾节点设备。其中,头节点设备与尾节点设备(R1、R2、R3和R4)间接连接,第一BitString Map信息包括尾节点设备(R1、R2、R3和R4)的标识。可选的,如果模板隧道包括多条路径,所述头节点设备还生成第二表项,所述第二表项包括第二BitString Map信息、第二出接口信息和第二出标签信息。其中,所述第二BitString Map信息包括与所述头节点设备直接连接的第二尾节点设备的标识。所述至少一个尾节点设备包括所述第二尾节点设备。所述第二出接口信息与所述第一出接口信息不同,所述第二出标签信息与所述第一出标签信息均与所述第一隧道的标识对应。
例如,如图4所示,头节点设备在建立第一隧道的第二路径时生成第二表项。该第二路径包括头节点设备和尾节点设备R5。具体的,所述第二路径从所述头节点设备出发,直接到达所述尾节点设备。其中,头节点设备与尾节点设备R5直接连接。所述第二表项中的出接口信息与所述第一表项的出接口信息不同,表明所述头节点设备经由第二路径连接的下一跳设备与所述头节点设备经由第一路径连接的下一跳设备不同。所述第二表项中的出标签的值与所述第一表项的出标签的值可以相同,也可以不同,但是,所述第二表项中的出标签信息和所述第一表项的出标签信息均对应于所述第一隧道的标识,表明所述第一路径和所述第二路径均属于所述第一隧道。
又如,在上述建立模块隧道的过程中,中间节点设备向头节点设备返回预留信息时,中间节点设备可以给头节点设备分配出标签101,该出标签101对应与第一隧道的隧道标识,并且头节点设备可以通过第一出接口连接到第一中间节点设备上。尾节点设备R5向头节点设备返回预留信息时,尾节点设备R5也可以给头节点设备分配出标签101,该出标签101对应第一隧道的隧道标识,与第一隧道的第一路径上的头节点设备的出标签101相同。或者,尾节点设备R5可以给头节点设备分配出标签102,与第一隧道的第一路径上的头节点设备 的出标签101不同,但是该出标签102也对应第一隧道的隧道标识。
S203,所述头节点设备获取所述组播流的BitString信息,所述BitString信息包括所述第一组播流期望到达的尾节点设备的标识。
具体实现中,头节点设备可以获取组播流的overlay信息、以及LSR-id和BFR-id对应关系表,其中,overlay信息包括该组播流期望到达的所有尾节点设备的地址信息,然后根据overlay信息、以及LSR-id和BFR-id对应关系表,获取BitString信息。
如图4所示,尾节点设备R1、尾节点设备R2、尾节点设备R3、尾节点设备R4分别赋予标识00000001、00000010、00000100和00001000。头节点设备获知组播流期望转发到尾节点设备R1、尾节点设备R2以及尾节点设备R4,因此BitString信息包括尾节点设备R1的标识、尾节点设备R2的标识以及尾节点设备R4的标识。其中,BitString可以表示为00001011,其中,BitString的最低位可以表示尾节点设备R1的标识,第二位表示尾节点设备R2的标识,第三位0表示不存在尾节点设备R3的标识,第四位表示尾节点设备R4的标识等等。
S204,所述头节点设备确定所述BitString Map信息中是否包括所述BitString信息中的所述组播流期望到达的尾节点设备的标识。
例如,如图4所示,头节点设备根据第一组播流的BitString,经过中间节点设备向尾节点节点(R1、R2和R4)发送第一组播流,根据生成的BitString Map,获知与中间节点设备直接连接的尾节点设备包括尾节点设备R1的标识、尾节点设备R2的标识、尾节点设备R3的标识以及尾节点设备R4的标识。因此,BitString Map信息包括BitString信息中节点设备R1的标识、尾节点设备R2的标识以及尾节点设备R4的标识。
进一步的,所述头节点设备可以根据所述BitString信息与所述BitString Map信息获得第一运算结果,所述第一运算结果的值等于所述BitString信息与所述BitString Map信息进行按位与运算得到的值。
例如,如图4所示,BitString Map信息由尾节点设备设备(R1、R2、R3和R4)的标识来确定,BitString Map可以表示为00001111,其中,BitString Map的最低位可以表示尾节点设备R1的标识,第二位表示尾节点设备R2的标识,第三位表示尾节点设备R3的标识,第四位表示尾节点设备R4的标识。BitString信息由节点设备R1的标识、尾节点设备R2的标识以及尾节点设备R4的标识来确定,BitString可以表示为00001011。其中,BitString的最低位可以表示尾节点设备R1的标识,第二位表示尾节点设备R2的标识,第三位表示不存在尾节点设备R3的标识,第四位表示尾节点设备R4的标识。第一运算结果为00001111和00001011进行按位与操作的结果,运算结果的值为00001011,头节点设备确定向中间节点设备发送第一组播流。
进一步的,所述头节点设备可以根据所述第一出接口信息和所述第一出标签信息,确定通过所述第一出接口信息指示的物理出接口,并且经由所述第一隧道发送所述第一组播流。
例如,如图4所示,第一隧道包括第一路径和第二路径,所述第一表项包括第一路径上的头节点设备的第一出接口信息和第一出标签信息,第二表项包括第二路径上头节点设备的第二出接口信息和第二出标签信息。虽然第一出标签信息和第二出标签信息都与第一隧道标识对应,但是,第一出接口信息和第二出接口信息不同,第一出接口信息指向第一中间节点设备,而第二出接口信息指向尾节点设备R5。因此,根据所述第一出接口信息和所述第一出标签信息,头节点设备确定向第一中间节点设备发送组播流。
进一步可选的,所述头节点设备确定所述第二BitString Map信息中是否包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识。当所述头节点设备确定所述第二BitString Map信息中包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识时,所述头节点设备经由所述第一隧道向所述第二尾节点设备转发所述第一组播流。
例如,如图4所示,所述第二BitString Map信息包括尾节点设备R5的标识,第一组播流期望到达的尾节点设备的标识(BitString信息)包括节点设备R1的标识、尾节点设备R2的标识以及尾节点设备R4的标识,因此,头节点设备确定所述第二BitString Map信息中未包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识,所述头节点设备经由所述第一隧道不向所述尾节点设备R5转发所述第一组播流。
S205,当所述头节点设备确定所述BitString Map信息中包括所述BitString信息中的所述第一组播流期望到达的至少一个尾节点设备的标识,所述头节点设备经由所述第一隧道向所述第一中间节点设备转发所述第一组播流。当所述头节点设备确定所述BitString Map信息中不包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识,所述头节点设备丢弃所述第一组播流。
举例说明,当所述头节点设备确定所述第一运算结果为非0,所述头节点设备经由所述第一隧道向所述第一中间节点设备转发所述第一组播流。例如,BitString Map=00011111与BitString=00000001进行按位与运算,运算结果是00000001,因此头节点设备向中间节点设备发送组播流。当所述头节点设备确定所述第一运算结果为0,所述头节点设备不向所述第一中间节点设备转发第一组播流。例如,BitString Map=11111110与BitString=00000001进行按位与运算的结果为00000000,则头节点设备不向中间节点设备发送第一组播流。
可选的,所述头节点设备经由所述第二中间节点设备建立第二隧道,所述第二隧道的源节点为所述头节点设备,所述第二隧道的目的节点为所述至少一个尾节点设备,所述第二隧道用于转发多个组播流,所述第二隧道包括第二组播流。当所述头节点设备确定所述第一隧道的带宽占用率大于第一阈值时,所述头节点设备经由所述第二隧道转发第二组播流。
如图5所示,头节点设备可以建立多条优先级不同的隧道,头节点设备可以获取每条隧道上的带宽消耗;然后根据所述带宽消耗,按照所述优先级选取所述隧道进行转发。第一隧道为:头节点设备->第一中间节点设备->{R1、R2、R3、R4};第二条隧道为:头节点设备->第二中间节点设备->{R1、R2、R3、R4};其中,第一隧道路径优先级最高,第二隧道路径的优先级次之。在优先选取第一隧道来转发组播流之后,获知在处理到第401个组播流时,前400个组播流的带宽消耗大于该第一隧道路径承载的最大带宽,因此,选取第二隧道来处理第401个组播流。其中,所述第二隧道的建立过程可以参见前述第一隧道的建立过程,此处不进行赘述。
S206,所述中间节点设备生成第一表项,所述第一表项包括第一位串图BitString Map信息,所述第一BitString Map信息包括与所述中间节点设备直接连接的第一尾节点设备的标识。
在一种实施例中,头节点设备可以向中间节点设备发送路径消息,所述路径消息包括隧道标识和尾节点设备R1的地址,中间节点设备接收到路径信息之后将路径消息转发给尾节点设备R1。尾节点设备R1收到路径消息之后,向中间节点设备返回预留信息,所述预留 信息包括尾节点设备R1的地址、尾节点设备R1的标识以及尾节点设备R1给中间节点设备分配的出标签。因此,在中间节点设备接收到预留信息之后,可以根据预留信息生成OLIBS表中一个针对尾节点设备R1的OLIBS表项,该OLIBS表项包括中间节点设备的出标签、出接口以及尾节点设备R1的标识,其中,所述出接口用于指示中间节点设备到尾节点设备R1的物理出接口,所述出标签用于指示第一隧道,表示为({OutLabel,OutIntf},BSM),BSM为BitString Map的缩写。
头节点设备再向中间节点设备发送路径消息,所述路径消息包括隧道标识和尾节点设备R2的地址,中间节点设备接收到路径信息之后将路径消息转发给尾节点设备R2。尾节点设备R2收到路径消息之后,向中间节点设备返回预留信息,所述预留信息包括尾节点设备R2的地址、尾节点设备R2的标识以及尾节点设备R2给中间节点设备分配的出标签。因此,在中间节点设备接收到预留信息之后,可以根据预留信息生成OLIBS表中一个针对尾节点设备R2的OLIBS表项,该OLIBS表项包括中间节点设备的出标签、出接口以及尾节点设备R2的标识。其中,所述出接口用于指示中间节点设备到尾节点设备R2的物理出接口,所述出标签用于指示第一隧道。
按照上述方式进行多次操作进而建立起模板隧道。在中间节点设备可以生成包含4个OLIBS表项的OLIBS表,还可以生成一个NHLFE表,该NHLFE表包括隧道标识、出标签和出接口,表示为(隧道ID,list{出标签,出接口}),该list有4条记录,包括中间节点设备到尾节点设备R1、尾节点设备R2、尾节点设备R3和尾节点设备R4的出接口和出标签。
在另一种实施例中,可以在中间节点设备上配置OLIBS表和NHLFE表。或者,接收控制器下发的中间节点设备的OLIBS表和NHLFE表。
由上述可知,在尾节点设备向中间节点设备返回预留信息时,该预留信息中包括尾节点设备的标识,头节点设备向尾节点设备多次发送路径消息之后,在返回预留信息的过程中,中间节点设备可以获知所述第一组播流经由所述第一隧道可达的尾节点设备的标识,进而生成第一表项。或者,可以根据预先配置的或者控制器下发的OLIBS表,获知所述第一组播流经由所述第一隧道可达的尾节点设备的标识,进而生成第一表项。其中,第一表项包括BitString Map信息。如图4所示,在中间节点设备中BitString Map可以分别表示为00000001,00000010、00000100和00001000。其中,00000001表示尾节点设备R1的标识,00000010表示尾节点设备R2的标识,00000100表示尾节点设备R3的标识,00001000表示尾节点设备R4的标识。
S207,所述中间节点设备获取所述第一组播流包括的位串BitString信息,所述BitString信息包括所述第一组播流期望到达的尾节点设备的标识。
具体实现中,在头节点设备获取到第一组播流期望到达的尾节点设备的标识之后,将BitString信息存放到第一组播流的报文头中,中间节点设备接收到第一组播流之后,可以直接从第一组播流的报文头中获取到BitString信息。
S208,所述中间节点设备确定所述第一BitString Map信息中是否包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识。
例如,如图4所示,中间节点设备可以根据第一组播流的BitString,可以分别向尾节点设备R1、尾节点设备R2以及尾节点设备R4发送第一组播流。中间节点设备分别与尾节点设备(R1、R2、R3和R4)直接连接,因此在中间设备设备上生成4条BitString Map信息,4条BitString Map信息分别包括尾节点设备R1的标识、尾节点设备R2的标识、尾节点设备R3 的标识和尾节点设备R4的标识。因此,中间节点设备可以确定第3条BitString Map信息中未包括尾节点设备R1、尾节点设备R2以及尾节点设备R4中的任何一个的标识,其余BitString Map信息均包括尾节点设备R1、尾节点设备R2以及尾节点设备R4中的任何一个的标识。
进一步的,所述中间节点设备根据所述BitString信息与所述第一BitString Map信息获得第一运算结果,所述第一运算结果的值等于所述BitString信息与所述第一BitString Map信息进行按位与运算得到的值。
例如,如图4所示,4条BitString Map信息分别为00000001、00000010、00000100和00001000。其中,00000001可以表示尾节点设备R1的标识,00000010可以表示尾节点设备R2的标识,00000100可以表示尾节点设备R3的标识,00001000可以表示尾节点设备R4的标识。BitString信息由节点设备R1的标识、尾节点设备R2的标识以及尾节点设备R4的标识来确定,BitString可以表示为00001011。其中,BitString的最低位可以表示尾节点设备R1的标识,第二位表示尾节点设备R2的标识,第三位0表示不存在尾节点设备R3的标识,第四位表示尾节点设备R4的标识。将00000001、00000010、00000100和00001000分别与00001011进行按位与运算,第一组运算的结果为00000001,中间节点设备确定向尾节点设备R1发送第一组播流。第二组运算的结果为00000010,中间节点设备确定向尾节点设备R2发送第一组播流。第三组运算的结果为00000000,中间节点设备确定不向尾节点设备R3发送第一组播流第一组运算的结果为00001000,中间节点设备确定向尾节点设备R4发送第一组播流。
进一步的,所述第一表项还包括第一出接口信息和第一出标签信息,所述第一出接口信息用于指示所述中间节点设备的物理出接口,所述第一出标签信息用于指示所述第一隧道,所述中间节点设备根据所述第一出接口信息和所述第一出标签信息,确定通过所述第一出接口信息指示的物理出接口,并且经由所述第一隧道发送所述第一组播流。
例如,如图4所示,中间节点设备分别与尾节点设备R1、尾节点设备R2、尾节点设备R3和尾节点设备R4直接连接,均属于第一隧道,但是使用了不同的物理出接口分别与尾节点设备R1、尾节点设备R2、尾节点设备R3和尾节点设备R4连接,而出标签信息可以相同,也可以不同,但两者的出标签信息都是指示第一隧道。如,尾节点设备R1可以给中间节点设备分配出标签101,该出标签101对应第一隧道的隧道标识。或者,尾节点设备R2可以给中间节点设备分配出标签101,该出标签102也对应第一隧道的隧道标识。
可选的,所述头节点设备还生成第二表项,所述第二表项包括第二位串图BitString Map信息、第二出接口信息和第二出标签信息,所述第二BitString Map信息包括与所述中间节点设备直接连接的第二尾节点设备的标识,所述至少一个尾节点设备包括所述第二尾节点设备,所述第二出接口信息与所述第一出接口信息不同,所述第二出标签信息与所述第一出标签信息均与所述第一隧道的标识对应。所述中间节点设备确定所述第二BitString Map信息中是否包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识。当所述中间节点设备确定所述第二BitString Map信息中包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识时,所述中间节点设备经由所述第一隧道向所述第二尾节点设备转发所述第一组播流。
S209,当所述中间节点设备确定所述第一BitString Map信息中包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识时,所述中间节点设备经由所述第一隧道向所述第一尾节点设备转发所述第一组播流。
具体实现中,当所述中间节点设备确定所述第二运算结果为非0,所述中间节点设备经由所述第一隧道向所述中间节点设备的下一跳节点设备转发所述第一组播流。当所述中间节点设备确定所述第二运算结果为0,所述中间节点设备丢弃所述第一组播流。
例如,如图4所示,将中间节点设备中的BitString Map的值00000001、00000010、00000100和00001000、分别与BitString的值00001011进行按位与运算,第一组运算的结果为00000001,则中间节点设备向尾节点设备R1发送第一组播流。第二组运算的结果为00000010,则中间节点设备向尾节点设备R2发送第一组播流。第三组运算的结果为00000000,则中间节点设备不向尾节点设备R3发送第一组播流,第四组运算的结果为00001000,则中间节点设备向尾节点设备R4发送第一组播流。
以下通过例子说明上述实施例的具体实施方式。
请参见图6,图6是本申请实施例提供的一种组播转发系统的结构示意图,该组播转发系统包括多个节点设备,所述多个节点包括头节点设备、中间节点设备和尾节点设备,其中,头节点设备包括节点R255,中间节点设备包括中间节点设备R256、中间节点设备NPE1、中间节点设备NPE2、中间节点设备UPE1和中间节点设备UPE2,尾节点设备包括尾节点设备R1、尾节点设备R2、尾节点设备R3、……、尾节点设备R254等等。
如图6所示,头节点设备经过多个中间节点设备向尾节点节点发送组播流,头节点设备R255获知一个组播流期望转发到尾节点设备R1、尾节点设备R2以及尾节点设备R254,并对尾节点设备R1的标识、尾节点设备R2的标识以及尾节点设备R254的标识进行编码得到BitString=00001011,其中。BitString最低位表示尾节点设备R1的标识、第二位表示尾节点设备R2的标识,第四位表示尾节点设备R2尾节点设备R254。如图7所示,在头节点设备R255上保存有NHLFE表和OLIBS表,其中,NHLFE表示为(隧道标识,至少一个{出标签,出接口}),OLIBS表示为({出标签,出接口},BSM),其中,BSM为BitString Map的缩写,每个{出标签,出接口}对应一个BitString Map,该BitString Map由该{出标签,出接口}下游的全部尾节点设备的标识编码而成。又如图7所示,在头节点设备R255上还保存有模板隧道的路径信息、overlay信息以及TEDB信息等等,由上述信息可以生成组播流量路径表和组播流量BitString表。由图6可知,与头节点设备R255邻近的下游节点设备包括中间节点设备NPE1和中间节点设备R256,因此在头节点设备R255中包括{第一出标签,第一出接口}对应的中间节点设备NPE1和{第二出标签,第二出接口}对应的中间节点设备R256。在确定模板隧道R255---->NPE1--->UPE1---->{R1、R2、R3、……、R254}之后,由NHLFE表可知,该模板隧道指示{第一出标签,第一出接口}对应的中间节点设备NPE1,因此选择中间节点设备NPE1来转发组播流。由模板隧道R255---->NPE1--->UPE1---->{R1、R2、R3、……、R254}可知{第一出标签,第一出接口}的下游的所有尾节点设备包括尾节点设备R1、尾节点设备R2、尾节点设备R3、……、尾节点设备R254,因此,对尾节点设备R1的标识、尾节点设备R2的标识、尾节点设备R3的标识、……、尾节点设备R254的标识编码得到BitString Map=11111111。最后对该BitString Map与上述BitString进行按位与运算,运算的结果为00001011,因此,头节点设备R255向中间节点设备NPE1发送第一组播流。
又如图7所示,在中间节点设备NPE1上保存有输入标记映射(Incoming Label Map,ILM)表、NHLFE表和OLIBS表。其中,ILM表包括隧道标识和中间节点设备NPE1的入标签,表示为(隧道ID,入标签),NHLFE表示为(隧道标识,至少一个{出标签,出接口}),OLIBS表示为({出标签,出接口},BSM),每个{出标签,出接口}对应一个BitString Map, 该BitString Map由该{出标签,出接口}下游的全部尾节点设备的标识编码而成。与中间节点设备NPE1邻近的下游节点设备包括中间节点设备NPE2和中间节点设备UPE1,因此在中间节点设备NPE1中包括{第一出标签,第一出接口}对应的中间节点设备NPE2和{第二出标签,第二出接口}对应的中间节点设备UPE1。在根据中间节点设备NPE1的入标签确定模板隧道R255---->NPE1--->UPE1---->{R1、R2、R3、……、R254}之后,由NHLFE表可知,该模板隧道指示中间节点设备NPE1的{第一出标签,第一出接口}对应中间节点设备UPE1,因此选择中间节点设备UPE1来转发组播流。由模板隧道R255---->NPE1--->UPE1---->{R1、R2、R3、……、R254}可知{第一出标签,第一出接口}下游的所有尾节点设备包括尾节点设备R1、尾节点设备R2、尾节点设备R3、……、尾节点设备R254,因此,对尾节点设备R1的标识、尾节点设备R2的标识、尾节点设备R3的标识、……、尾节点设备R254的标识编码得到BitString Map=11111111。最后对该BitString Map与上述BitString进行按位与运算。运算的结果为00001011,因此,中间节点设备NPE1向中间节点设备UPE1发送第一组播流。
又如图7所示,在中间节点设备UPE1上保存有ILM表和NHLFE表,ILM表包括隧道标识和中间节点设备UPE1的入标签,表示为(隧道ID,入标签)。该NHLFE表示为(隧道标识,至少一个{出标签,出接口})。中间节点设备UPE1的下一跳节点设备包括尾节点设备R1、尾节点设备R2、尾节点设备R3、……、尾节点设备R254,因此在中间节点设备UPE1中的OLIBS表包括:({出标签,出接口}=到R1的出接口,BSM=00000001),BSM的值00000001是尾节点设备R1的标识;({出标签,出接口}=到R2的出接口,BSM=00000010),BSM的值00000010是尾节点设备R2的标识;({出标签,出接口}=到R3的出接口,BSM=00000100),BSM的值00000100是尾节点设备R3的标识;……;({出标签,出接口}=到R254的出接口,BSM=00001000),BSM的值00001000是尾节点设备R254的标识。将上述得到的位串图BitString Map信息中的BitString=00001011分别与每个OLIBS表中BSM的值进行按位与运算。由于BSM=00000001与BitString=00001011进行按位与运算,计算得到的值为00000001,则中间节点设备UPE1向尾节点设备R1发送组播流。BSM=000000010与BitString=00001011进行按位与运算,计算得到的值为000000010,则中间节点设备UPE1向尾节点设备R2发送组播流。BSM=000000100与BitString=00001011进行按位与运算,计算得到的值为00000100,则中间节点设备UPE1不向尾节点设备R3发送组播流。BSM=000001000与BitString=00001011进行按位与运算,计算得到的值为000001000,则中间节点设备UPE1向尾节点设备R254发送组播流。
上述详细阐述了本申请实施例的方法,下面提供了本申请实施例的装置。
请参见图8,图8是本申请实施例提供的一种头节点设备的结构示意图,该头节点设备可以是个处理器,例如可包括建立模块801、生成模块802、获取模块803、确定模块804和发送模块805,其中,各模块的详细描述如下。
建立模块801,用于建立第一隧道,所述第一隧道的源节点为所述头节点设备,所述第一隧道的目的节点为所述至少一个尾节点设备,所述第一隧道用于转发多个组播流,所述多个组播流包括第一组播流。
生成模块802,用于生成第一表项,所述第一表项包括第一位串图BitString Map信息,所述第一BitString Map信息包括未与所述头节点设备直接连接的第一尾节点设备的标识, 所述至少一个尾节点设备包括所述第一尾节点设备。
获取模块803,用于获取所述第一组播流的位串BitString信息,所述BitString信息包括所述第一组播流期望到达的尾节点设备的标识。
确定模块804,用于确定所述第一BitString Map信息中是否包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识。
当确定模块804确定所述第一BitString Map信息中包括所述BitString信息中的所述第一组播流期望到达的至少一个尾节点设备的标识时,发送模块805用于经由所述第一隧道向所述第一中间节点设备转发所述第一组播流。
可选的,确定模块804具体用于:
根据所述BitString信息与所述第一BitString Map信息获得第一运算结果,所述第一运算结果的值等于所述BitString信息与所述第一BitString Map信息进行按位与运算得到的值。
可选的,当确定模块804确定所述第一运算结果为非0,发送模块805具体用于经由所述第一隧道向所述第一中间节点设备转发所述第一组播流。
其中,所述第一表项还包括第一出接口信息和第一出标签信息,所述第一出接口信息用于指示所述头节点设备的物理出接口,所述第一出标签信息用于指示所述第一隧道。
可选的,确定模块804,还用于根据所述第一出接口信息和所述第一出标签信息,确定通过所述第一出接口信息指示的物理出接口,并且经由所述第一隧道发送所述第一组播流。
其中,所述组播网络还包括第二中间节点设备,发送模块801,还用于建立第二隧道,所述第二隧道的源节点为所述头节点设备,所述第二隧道的目的节点为所述至少一个尾节点设备,所述第二隧道用于转发所述多个组播流,所述多个组播流包括第二组播流;当确定模块804确定所述第一隧道的带宽占用率大于第一阈值时,发送模块805还用于经由所述第二隧道向所述第二中间节点设备转发所述第二组播流。
其中,生成模块802,还用于生成第二表项,所述第二表项包括第二位串图BitString Map信息、第二出接口信息和第二出标签信息,所述第二BitString Map信息包括与所述头节点设备直接连接的第二尾节点设备的标识,所述至少一个尾节点设备包括所述第二尾节点设备,所述第二出接口信息与所述第一出接口信息不同,所述第二出标签信息与所述第一出标签信息均与所述第一隧道的标识对应;
确定模块804,还用于确定所述第二BitString Map信息中是否包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识。
当确定模块804确定所述第二BitString Map信息中包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识时,发送模块805还用于经由所述第一隧道向所述第二尾节点设备转发所述第一组播流。
可选的,当确定模块804确定所述第一BitString Map信息中不包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识时,确定模块804还用于丢弃所述第一组播流。
需要说明的是,各个模块的具体功能实现还可以对应参照图2所示的方法实施例中头节点设备的相应描述,执行上述实施例中所执行的方法和功能。
请参见图9,图9是本申请实施例提供的一种中间节点设备的结构示意图,该头节点设 备可以是个处理器,例如可包括接收模块901、生成模块902、获取模块903、确定模块904和发送模块905,其中,各模块的详细描述如下。
接收模块901,用于经由第一隧道接收头节点设备发送的第一组播流,所述第一隧道的源节点为所述头节点设备,所述第一隧道的目的节点为所述至少一个尾节点设备,所述第一隧道用于转发多个组播流,所述多个组播流包括所述第一组播流;
生成模块902,用于生成第一表项,所述第一表项包括第一位串图BitString Map信息,所述第一BitString Map信息包括与所述中间节点设备直接连接的第一尾节点设备的标识;
获取模块903,用于获取所述第一组播流包括的位串BitString信息,所述BitString信息包括所述第一组播流期望到达的尾节点设备的标识。
确定模块904,用于确定所述第一BitString Map信息中是否包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识。
当确定模块904确定所述第一BitString Map信息中包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识时,发送模块905用于经由所述第一隧道向所述第一尾节点设备转发所述第一组播流。
可选的,确定模块904具体用于:
根据所述BitString信息与所述第一BitString Map信息获得第一运算结果,所述第一运算结果的值等于所述BitString信息与所述第一BitString Map信息进行按位与运算得到的值。
其中,所述第一表项还包括第一出接口信息和第一出标签信息,所述第一出接口信息用于指示所述中间节点设备的物理出接口,所述第一出标签信息用于指示所述第一隧道。
确定模块904,还用于根据所述第一出接口信息和所述第一出标签信息,确定通过所述第一出接口信息指示的物理出接口,并且经由所述第一隧道发送所述第一组播流。
其中,所述生成模块902还用于生成第二表项,所述第二表项包括第二位串图BitString Map信息、第二出接口信息和第二出标签信息,所述第二BitString Map信息包括与所述中间节点设备直接连接的第二尾节点设备的标识,所述至少一个尾节点设备包括所述第二尾节点设备,所述第二出接口信息与所述第一出接口信息不同,所述第二出标签信息与所述第一出标签信息均与所述第一隧道的标识对应;
确定模块904,还用于确定所述第二BitString Map信息中是否包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识。
当确定模块904确定所述第二BitString Map信息中包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识时,发送模块905还用于经由所述第一隧道向所述第二尾节点设备转发所述第一组播流。
需要说明的是,各个模块的具体功能实现还可以对应参照图2所示的方法实施例中中间节点设备的相应描述,执行上述实施例中所执行的方法和功能。
请继续参考图10,图10是本申请提出的一种头节点设备的结构示意图。该设备可以包括:至少一个处理器1001,至少一个通信接口1002,至少一个存储器1003和至少一个通信总线1004。其中,通信总线1004用于实现这些组件之间的连接通信。其中,本申请实施例中设备的通信接口1002用于与其他节点设备进行信令或数据的通信。存储器1003可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1003可选的还可以是至少一个位于远离前述处理器1001的存储装置。存储 器1003中存储一组程序代码,且可以进一步用于存储处理器1001的中间运算数据等临时数据。处理器1001执行存储器1003中程序代码以实现之前实施例所提到的方法,具体可以参考之前实施例的描述。进一步的,处理器1001还可以与存储器1003和通信接口1002相配合,执行上述申请实施例中头节点设备的操作。处理器1001具体可以包括执行所述程序代码的处理器,如中央处理单元(CPU)或数字信号处理器(DSP)等。
可以理解,所述存储器1003可以没存有程序代码,此时处理器1001可以包括不需要执行程序代码的硬件处理器,如专用集成电路(ASIC)、现场可编程逻辑门阵列(FPGA)或集成电路形成的硬件加速器。此时,存储器1003可仅用于存储处理器1001的中间运算数据等临时数据。
请继续参考图11,图11是本申请提出的一种中间节点设备的结构示意图。该设备可以包括:至少一个处理器1101,至少一个通信接口1102,至少一个存储器1103和至少一个通信总线1104。其中,通信总线1104用于实现这些组件之间的连接通信。其中,本申请实施例中设备的通信接口1102用于与其他节点设备进行信令或数据的通信。存储器1103可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1103可选的还可以是至少一个位于远离前述处理器1101的存储装置。存储器1103中存储一组程序代码,且可以进一步用于存储处理器1101的中间运算数据等临时数据。处理器1101执行存储器1103中程序代码以实现之前实施例所提到的方法,具体可以参考之前实施例的描述。进一步的,处理器1101还可以与存储器1103和通信接口1102相配合,执行上述申请实施例中中间节点设备的操作。处理器1101具体可以包括执行所述程序代码的处理器,如中央处理单元(CPU)或数字信号处理器(DSP)等。
可以理解,所述存储器1103可以没存有程序代码,此时处理器1101可以包括不需要执行程序代码的硬件处理器,如专用集成电路(ASIC)、现场可编程逻辑门阵列(FPGA)或集成电路形成的硬件加速器。此时,存储器1103可仅用于存储处理器1101的中间运算数据等临时数据。
在上述实施例中,方法的功能可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机或其内部处理器上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

Claims (24)

  1. 一种组播转发方法,其特征在于,所述方法应用在位索引显式复制BIER的组播网络中,所述组播网络包括头节点设备、第一中间节点设备和至少一个尾节点设备,所述方法包括:
    所述头节点设备建立第一隧道,所述第一隧道的源节点为所述头节点设备,所述第一隧道的目的节点为所述至少一个尾节点设备,所述第一隧道用于转发多个组播流,所述多个组播流包括第一组播流;
    所述头节点设备生成第一表项,所述第一表项包括第一位串图BitString Map信息,所述第一BitString Map信息包括未与所述头节点设备直接连接的第一尾节点设备的标识,所述至少一个尾节点设备包括所述第一尾节点设备;
    所述头节点设备获取所述第一组播流的位串BitString信息,所述BitString信息包括所述第一组播流期望到达的尾节点设备的标识;
    所述头节点设备确定所述第一BitString Map信息中是否包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识;
    当所述头节点设备确定所述第一BitString Map信息中包括所述BitString信息中的所述第一组播流期望到达的至少一个尾节点设备的标识时,所述头节点设备经由所述第一隧道向所述第一中间节点设备转发所述第一组播流。
  2. 如权利要求1所述的方法,其特征在于,所述头节点设备确定所述第一BitString Map信息中是否包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识,具体包括:
    所述头节点设备根据所述BitString信息与所述第一BitString Map信息获得第一运算结果,所述第一运算结果的值等于所述BitString信息与所述第一BitString Map信息进行按位与运算得到的值。
  3. 如权利要求2所述的方法,其特征在于,所述当所述头节点设备确定所述第一BitString Map信息中包括所述BitString信息中的所述第一组播流期望到达的至少一个尾节点设备的标识时,所述头节点设备经由所述第一隧道向所述第一中间节点设备转发所述第一组播流,具体包括:
    当所述头节点设备确定所述第一运算结果为非0,所述头节点设备经由所述第一隧道向所述第一中间节点设备转发所述第一组播流。
  4. 如权利要求1-3中任一项所述的方法,其特征在于,所述第一表项还包括第一出接口信息和第一出标签信息,所述第一出接口信息用于指示所述头节点设备的物理出接口,所述第一出标签信息用于指示所述第一隧道,所述方法还包括:
    所述头节点设备根据所述第一出接口信息和所述第一出标签信息,确定通过所述第一出接口信息指示的物理出接口,并且经由所述第一隧道发送所述第一组播流。
  5. 如权利要求1-4中任一项所述的方法,其特征在于,所述组播网络还包括第二中间节点设备,所述方法还包括:
    所述头节点设备建立第二隧道,所述第二隧道的源节点为所述头节点设备,所述第二隧道的目的节点为所述至少一个尾节点设备,所述第二隧道用于转发所述多个组播流,所述多个组播流包括第二组播流;
    当所述头节点设备确定所述第一隧道的带宽占用率大于第一阈值时,所述头节点设备经由所述第二隧道向所述第二中间节点设备转发所述第二组播流。
  6. 如权利要求4所述的方法,其特征在于,所述头节点设备还生成第二表项,所述第二表项包括第二位串图BitString Map信息、第二出接口信息和第二出标签信息,所述第二BitString Map信息包括与所述头节点设备直接连接的第二尾节点设备的标识,所述至少一个尾节点设备包括所述第二尾节点设备,所述第二出接口信息与所述第一出接口信息不同,所述第二出标签信息与所述第一出标签信息均与所述第一隧道的标识对应,所述方法还包括:
    所述头节点设备确定所述第二BitString Map信息中是否包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识;
    当所述头节点设备确定所述第二BitString Map信息中包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识时,所述头节点设备经由所述第一隧道向所述第二尾节点设备转发所述第一组播流。
  7. 如权利要求1所述的方法,其特征在于,所述方法还包括:
    当所述头节点设备确定所述第一BitString Map信息中不包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识时,所述头节点设备丢弃所述第一组播流。
  8. 一种组播转发方法,其特征在于,所述方法应用在位索引显式复制BIER的组播网络中,所述组播网络包括头节点设备、中间节点设备和至少一个尾节点设备,所述方法包括:
    中间节点设备经由第一隧道接收头节点设备发送的第一组播流,所述第一隧道的源节点为所述头节点设备,所述第一隧道的目的节点为所述至少一个尾节点设备,所述第一隧道用于转发多个组播流,所述多个组播流包括所述第一组播流;
    所述中间节点设备生成第一表项,所述第一表项包括第一位串图BitString Map信息,所述第一BitString Map信息包括与所述中间节点设备直接连接的第一尾节点设备的标识;
    所述中间节点设备获取所述第一组播流包括的位串BitString信息,所述BitString信息包括所述第一组播流期望到达的尾节点设备的标识;
    所述中间节点设备确定所述第一BitString Map信息中是否包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识;
    当所述中间节点设备确定所述第一BitString Map信息中包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识时,所述中间节点设备经由所述第一隧道向所述第一尾节点设备转发所述第一组播流。
  9. 如权利要求8所述的方法,其特征在于,所述中间节点设备确定所述第一BitString Map信息中是否包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识, 具体包括:
    所述中间节点设备根据所述BitString信息与所述第一BitString Map信息获得第一运算结果,所述第一运算结果的值等于所述BitString信息与所述第一BitString Map信息进行按位与运算得到的值。
  10. 如权利要求8或9所述的方法,其特征在于,所述第一表项还包括第一出接口信息和第一出标签信息,所述第一出接口信息用于指示所述中间节点设备的物理出接口,所述第一出标签信息用于指示所述第一隧道,所述方法还包括:
    所述中间节点设备根据所述第一出接口信息和所述第一出标签信息,确定通过所述第一出接口信息指示的物理出接口,并且经由所述第一隧道发送所述第一组播流。
  11. 如权利要求10所述的方法,其特征在于,所述头节点设备还生成第二表项,所述第二表项包括第二位串图BitString Map信息、第二出接口信息和第二出标签信息,所述第二BitString Map信息包括与所述中间节点设备直接连接的第二尾节点设备的标识,所述至少一个尾节点设备包括所述第二尾节点设备,所述第二出接口信息与所述第一出接口信息不同,所述第二出标签信息与所述第一出标签信息均与所述第一隧道的标识对应,所述方法还包括:
    所述中间节点设备确定所述第二BitString Map信息中是否包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识;
    当所述中间节点设备确定所述第二BitString Map信息中包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识时,所述中间节点设备经由所述第一隧道向所述第二尾节点设备转发所述第一组播流。
  12. 一种头节点设备,其特征在于,应用在位索引显式复制BIER的组播网络中,所述组播网络包括头节点设备、第一中间节点设备和至少一个尾节点设备,所述头节点设备包括:
    建立模块,用于建立第一隧道,所述第一隧道的源节点为所述头节点设备,所述第一隧道的目的节点为所述至少一个尾节点设备,所述第一隧道用于转发多个组播流,所述多个组播流包括第一组播流;
    生成模块,用于生成第一表项,所述第一表项包括第一位串图BitString Map信息,所述第一BitString Map信息包括未与所述头节点设备直接连接的第一尾节点设备的标识,所述至少一个尾节点设备包括所述第一尾节点设备;
    获取模块,用于获取所述第一组播流的位串BitString信息,所述BitString信息包括所述第一组播流期望到达的尾节点设备的标识;
    确定模块,用于确定所述第一BitString Map信息中是否包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识;
    当所述确定模块确定所述第一BitString Map信息中包括所述BitString信息中的所述第一组播流期望到达的至少一个尾节点设备的标识时,发送模块用于经由所述第一隧道向所述第一中间节点设备转发所述第一组播流。
  13. 如权利要求12所述的头节点设备,其特征在于,所述确定模块具体用于:
    根据所述BitString信息与所述第一BitString Map信息获得第一运算结果,所述第一运算结果的值等于所述BitString信息与所述第一BitString Map信息进行按位与运算得到的值。
  14. 如权利要求13所述的头节点设备,其特征在于,
    当所述确定模块确定所述第一运算结果为非0,所述发送模块具体用于经由所述第一隧道向所述第一中间节点设备转发所述第一组播流。
  15. 如权利要求12-14中任一项所述的头节点设备,其特征在于,所述第一表项还包括第一出接口信息和第一出标签信息,所述第一出接口信息用于指示所述头节点设备的物理出接口,所述第一出标签信息用于指示所述第一隧道,
    所述确定模块,还用于根据所述第一出接口信息和所述第一出标签信息,确定通过所述第一出接口信息指示的物理出接口,并且经由所述第一隧道发送所述第一组播流。
  16. 如权利要求12-15中任一项所述的头节点设备,其特征在于,所述组播网络还包括第二中间节点设备;
    所述建立模块,还用于建立第二隧道,所述第二隧道的源节点为所述头节点设备,所述第二隧道的目的节点为所述至少一个尾节点设备,所述第二隧道用于转发所述多个组播流,所述多个组播流包括第二组播流;
    当所述确定模块确定所述第一隧道的带宽占用率大于第一阈值时,所述发送模块还用于经由所述第二隧道向所述第二中间节点设备转发所述第二组播流。
  17. 如权利要求15所述的头节点设备,其特征在于,
    所述生成模块还用于生成第二表项,所述第二表项包括第二位串图BitString Map信息、第二出接口信息和第二出标签信息,所述第二BitString Map信息包括与所述头节点设备直接连接的第二尾节点设备的标识,所述至少一个尾节点设备包括所述第二尾节点设备,所述第二出接口信息与所述第一出接口信息不同,所述第二出标签信息与所述第一出标签信息均与所述第一隧道的标识对应;
    所述确定模块,还用于确定所述第二BitString Map信息中是否包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识;
    当所述确定模块确定所述第二BitString Map信息中包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识时,所述发送模块还用于经由所述第一隧道向所述第二尾节点设备转发所述第一组播流。
  18. 如权利要求12所述的头节点设备,其特征在于,
    当所述确定模块确定所述第一BitString Map信息中不包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识时,所述确定模块还用于丢弃所述第一组播流。
  19. 一种中间节点设备,其特征在于,应用在位索引显式复制BIER的组播网络中,所述组播网络包括头节点设备、中间节点设备和至少一个尾节点设备,所述中间节点设备包 括:
    接收模块,用于经由第一隧道接收头节点设备发送的第一组播流,所述第一隧道的源节点为所述头节点设备,所述第一隧道的目的节点为所述至少一个尾节点设备,所述第一隧道用于转发多个组播流,所述多个组播流包括所述第一组播流;
    生成模块,用于生成第一表项,所述第一表项包括第一位串图BitString Map信息,所述第一BitString Map信息包括与所述中间节点设备直接连接的第一尾节点设备的标识;
    获取模块,用于获取所述第一组播流包括的位串BitString信息,所述BitString信息包括所述第一组播流期望到达的尾节点设备的标识;
    确定模块,用于确定所述第一BitString Map信息中是否包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识;
    当所述确定模块确定所述第一BitString Map信息中包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识时,发送模块用于经由所述第一隧道向所述第一尾节点设备转发所述第一组播流。
  20. 如权利要求19所述的中间节点设备,其特征在于,所述确定模块具体用于:
    根据所述BitString信息与所述第一BitString Map信息获得第一运算结果,所述第一运算结果的值等于所述BitString信息与所述第一BitString Map信息进行按位与运算得到的值。
  21. 如权利要求19或20所述的中间节点设备,其特征在于,所述第一表项还包括第一出接口信息和第一出标签信息,所述第一出接口信息用于指示所述中间节点设备的物理出接口,所述第一出标签信息用于指示所述第一隧道;
    所述确定模块,还用于根据所述第一出接口信息和所述第一出标签信息,确定通过所述第一出接口信息指示的物理出接口,并且经由所述第一隧道发送所述第一组播流。
  22. 如权利要求21所述的中间节点设备,其特征在于,
    所述生成模块还用于生成第二表项,所述第二表项包括第二位串图BitString Map信息、第二出接口信息和第二出标签信息,所述第二BitString Map信息包括与所述中间节点设备直接连接的第二尾节点设备的标识,所述至少一个尾节点设备包括所述第二尾节点设备,所述第二出接口信息与所述第一出接口信息不同,所述第二出标签信息与所述第一出标签信息均与所述第一隧道的标识对应;
    所述确定模块,还用于确定所述第二BitString Map信息中是否包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识;
    当所述确定模块确定所述第二BitString Map信息中包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识时,所述发送模块还用于经由所述第一隧道向所述第二尾节点设备转发所述第一组播流。
  23. 一种头节点设备,其特征在于,应用在位索引显式复制BIER的组播网络中,所述组播网络包括头节点设备、第一中间节点设备和至少一个尾节点设备,包括:存储器、通信总线以及处理器,所述存储器通过所述通信总线耦合至所述处理器;其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,执行以下操作:
    建立第一隧道,所述第一隧道的源节点为所述头节点设备,所述第一隧道的目的节点为所述至少一个尾节点设备,所述第一隧道用于转发多个组播流,所述多个组播流包括第一组播流;
    生成第一表项,所述第一表项包括第一位串图BitString Map信息,所述第一BitString Map信息包括未与所述头节点设备直接连接的第一尾节点设备的标识,所述至少一个尾节点设备包括所述第一尾节点设备;
    获取所述第一组播流的位串BitString信息,所述BitString信息包括所述第一组播流期望到达的尾节点设备的标识;
    确定所述第一BitString Map信息中是否包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识;
    当所述头节点设备确定所述第一BitString Map信息中包括所述BitString信息中的所述第一组播流期望到达的至少一个尾节点设备的标识时,经由所述第一隧道向所述第一中间节点设备转发所述第一组播流。
  24. 一种中间节点设备,其特征在于,应用在位索引显式复制BIER的组播网络中,所述组播网络包括头节点设备、第一中间节点设备和至少一个尾节点设备,包括:存储器、通信总线以及处理器,所述存储器通过所述通信总线耦合至所述处理器;其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,执行以下操作:
    经由第一隧道接收头节点设备发送的第一组播流,所述第一隧道的源节点为所述头节点设备,所述第一隧道的目的节点为所述至少一个尾节点设备,所述第一隧道用于转发多个组播流,所述多个组播流包括所述第一组播流;
    生成第一表项,所述第一表项包括第一位串图BitString Map信息,所述第一BitString Map信息包括与所述中间节点设备直接连接的第一尾节点设备的标识;
    获取所述第一组播流包括的位串BitString信息,所述BitString信息包括所述第一组播流期望到达的尾节点设备的标识;
    确定所述第一BitString Map信息中是否包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识;
    当所述中间节点设备确定所述第一BitString Map信息中包括所述BitString信息中的所述第一组播流期望到达的尾节点设备的标识时,经由所述第一隧道向所述第一尾节点设备转发所述第一组播流。
PCT/CN2018/075610 2017-07-11 2018-02-07 一种组播转发方法及相关设备 WO2019010968A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP18832804.1A EP3641353B1 (en) 2017-07-11 2018-02-07 Multicast forwarding method, and related device
US16/739,588 US11258698B2 (en) 2017-07-11 2020-01-10 Multicast forwarding method and related device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710563820.5A CN109246624B (zh) 2017-07-11 2017-07-11 一种组播转发方法及相关设备
CN201710563820.5 2017-07-11

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/739,588 Continuation US11258698B2 (en) 2017-07-11 2020-01-10 Multicast forwarding method and related device

Publications (1)

Publication Number Publication Date
WO2019010968A1 true WO2019010968A1 (zh) 2019-01-17

Family

ID=65001096

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/075610 WO2019010968A1 (zh) 2017-07-11 2018-02-07 一种组播转发方法及相关设备

Country Status (4)

Country Link
US (1) US11258698B2 (zh)
EP (1) EP3641353B1 (zh)
CN (1) CN109246624B (zh)
WO (1) WO2019010968A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3731475A3 (en) * 2019-04-25 2020-11-25 Nokia Solutions and Networks Oy Bier traffic engineering (bier-te) using unicast mpls-te tunnels

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110401599B (zh) * 2018-04-25 2022-08-02 中兴通讯股份有限公司 数据包的处理方法及装置、存储介质、电子装置
CN112737954B (zh) * 2019-10-14 2022-09-23 华为技术有限公司 报文处理方法、装置、系统、设备及存储介质
EP4030698A4 (en) 2019-10-14 2022-11-09 Huawei Technologies Co., Ltd. METHOD, DEVICE, SYSTEM AND APPARATUS FOR PACKET PROCESSING, AND STORAGE MEDIA
US20210243111A1 (en) * 2020-02-04 2021-08-05 Nokia Solutions And Networks Oy Supporting multicast communications
US11496329B2 (en) * 2020-03-20 2022-11-08 Juniper Networks, Inc. EVPN multicast ingress forwarder election using source-active route
CN114143142B (zh) * 2020-09-02 2023-06-20 华为技术有限公司 一种报文传输方法及装置
CN116113006A (zh) * 2021-11-10 2023-05-12 华为技术有限公司 一种处理报文的系统、方法和网络装置
CN115460133B (zh) * 2022-08-12 2023-11-03 烽火通信科技股份有限公司 一种bier组播的硬件学习及转发的方法、装置及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160119159A1 (en) * 2014-10-24 2016-04-28 Futurewei Technologies, Inc. Bit Index Explicit Replication Forwarding Using Replication Cache
CN105763411A (zh) * 2014-12-15 2016-07-13 华为技术有限公司 一种建立组播隧道的方法及装置
CN106603406A (zh) * 2015-10-16 2017-04-26 中兴通讯股份有限公司 一种bier网络中流量工程信息通告的方法和装置
CN106817308A (zh) * 2016-12-30 2017-06-09 北京华为数字技术有限公司 一种组播流的转发系统、方法及装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9544230B2 (en) * 2013-09-17 2017-01-10 Cisco Technology, Inc. Migration support for bit indexed explicit replication
US9806897B2 (en) * 2013-09-17 2017-10-31 Cisco Technology, Inc. Bit indexed explicit replication forwarding optimization
WO2015042159A1 (en) * 2013-09-17 2015-03-26 Cisco Technology, Inc. Bit indexed explicit replication using internet protocol version 6
US9742575B2 (en) * 2014-11-04 2017-08-22 Telefonaktiebolaget L M Ericsson (Publ) Explicit list encoding of sparse multicast group membership information with Bit Index Explicit Replication (BIER)
US9432205B2 (en) * 2014-11-04 2016-08-30 Telefonaktiebolaget L M Ericsson (Publ) Explicit block encoding of multicast group membership information with bit index explicit replication (BIER)
US10153967B2 (en) * 2014-11-06 2018-12-11 Juniper Networks, Inc. Deterministic and optimized bit index explicit replication (BIER) forwarding
US10033641B2 (en) * 2014-11-06 2018-07-24 Juniper Networks, Inc. Deterministic and optimized bit index explicit replication (BIER) forwarding
US9705784B2 (en) * 2014-12-31 2017-07-11 Juniper Networks, Inc. Bit index explicit replication (BIER)forwarding for network device components
CN106161260B (zh) 2015-04-28 2019-05-24 华为技术有限公司 组播数据流转发树的选择方法及装置
CN106341327A (zh) * 2015-07-08 2017-01-18 中兴通讯股份有限公司 一种bier报文的传输方法及系统
WO2017141076A1 (en) * 2016-02-19 2017-08-24 Telefonaktiebolaget Lm Ericsson (Publ) Stateless multicast protocol for low-power and lossy networks
US10404592B2 (en) * 2017-03-24 2019-09-03 Cisco Technology, Inc. System and method to facilitate content forwarding using bit index explicit replication (BIER) in an information-centric networking (ICN) environment
US10447496B2 (en) * 2017-03-30 2019-10-15 Cisco Technology, Inc. Multicast traffic steering using tree identity in bit indexed explicit replication (BIER)
US10164794B2 (en) * 2017-04-28 2018-12-25 Cisco Technology, Inc. Bridging of non-capable subnetworks in bit indexed explicit replication
US20180367456A1 (en) * 2017-06-20 2018-12-20 Cisco Technology, Inc. System and method to facilitate packet forwarding using stateful bit index explicit replication (bier) in a networking environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160119159A1 (en) * 2014-10-24 2016-04-28 Futurewei Technologies, Inc. Bit Index Explicit Replication Forwarding Using Replication Cache
CN105763411A (zh) * 2014-12-15 2016-07-13 华为技术有限公司 一种建立组播隧道的方法及装置
CN106603406A (zh) * 2015-10-16 2017-04-26 中兴通讯股份有限公司 一种bier网络中流量工程信息通告的方法和装置
CN106817308A (zh) * 2016-12-30 2017-06-09 北京华为数字技术有限公司 一种组播流的转发系统、方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
See also references of EP3641353A4
WUNANDS, I.J. ET AL.: "Multicast Using Bit Index Explicit Replication draft-ie-tf-bier-architecture-05", INTERNET ENGINEERING TASK FORCE INTERNET -DRAFT, 1 May 2017 (2017-05-01), pages 1 - 36, XP055569654 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3731475A3 (en) * 2019-04-25 2020-11-25 Nokia Solutions and Networks Oy Bier traffic engineering (bier-te) using unicast mpls-te tunnels
US11483237B2 (en) 2019-04-25 2022-10-25 Nokia Solutions And Networks Oy BIER traffic engineering (BIER-TE) using unicast MPLS-TE tunnels

Also Published As

Publication number Publication date
US11258698B2 (en) 2022-02-22
CN109246624B (zh) 2020-04-03
EP3641353B1 (en) 2023-04-05
EP3641353A1 (en) 2020-04-22
US20200153728A1 (en) 2020-05-14
EP3641353A4 (en) 2020-06-10
CN109246624A (zh) 2019-01-18

Similar Documents

Publication Publication Date Title
WO2019010968A1 (zh) 一种组播转发方法及相关设备
US11206148B2 (en) Bit indexed explicit replication
US10693765B2 (en) Failure protection for traffic-engineered bit indexed explicit replication
JP5862769B2 (ja) 通信システム、制御装置、通信方法及びプログラム
CN110401599B (zh) 数据包的处理方法及装置、存储介质、电子装置
EP2135393B1 (en) Ethernet spanning tree provision
US20150319084A1 (en) Routing messages in a computer network using deterministic and probalistic source routes
CN106603413B (zh) 通过指定路径传输流量的方法和装置
WO2017124709A1 (zh) 流量工程隧道建立方法和装置
KR102430395B1 (ko) 멀티캐스트 패킷을 전송하기 위한 방법, 장치, 및 시스템
US20210021507A1 (en) Igp topology information and use for bier-te
US11277339B2 (en) Packet forwarding method and apparatus
WO2017177756A1 (zh) 一种信息传递方法、装置及系统
CN106230730B (zh) 一种组播传输方法和装置
JP2015115871A (ja) 通信ネットワーク、データ転送経路の設定方法及び通信装置
JP2005080244A (ja) マルチキャスト転送経路設定方法
CN115733796A (zh) 通信方法及装置
CN115134289A (zh) 组播报文发送方法及装置
CN115473847A (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: 18832804

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: 2018832804

Country of ref document: EP

Effective date: 20200117