Multicast traffic aggregation forwarding method and related device
By generating a bit index forwarding table (BIFT) and performing aggregated forwarding of multicast data, the problem of repeated transmission of multicast service streams under multiple identifiers is solved, improving network forwarding performance and carrying efficiency. It is suitable for large multi-hop networks and high-bandwidth live video services.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- CHINA TELECOM CORP LTD TECHNOLOGY INNOVATION CENTER
- Filing Date
- 2023-08-03
- Publication Date
- 2026-08-04
AI Technical Summary
In the case of multiple identifiers, the repeated transmission of multicast traffic on routing devices leads to a decrease in network forwarding performance and carrying efficiency.
By generating a Bit Index Forwarding Table (BIFT), multicast data is aggregated and forwarded based on user joining information and next-hop addresses. The packet header is encapsulated using IPv6 bit indexes and the Rev field is set to enable aggregation and forwarding of multicast streams with the same next-hop address.
It improves network forwarding performance and carrying efficiency, especially in large multi-hop networks and when carrying high-bandwidth, long-duration live video services, significantly improving forwarding performance and bandwidth utilization.
Smart Images

Figure CN116846815B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of communication technology, and in particular to a multicast traffic aggregation and forwarding method, routing device, computer-readable storage medium, and electronic device. Background Technology
[0002] Bit Index Explicit Replication (BIFT) for IPv6 encapsulation has been widely adopted in IPv6 / SRv6 networks due to its high efficiency, fast convergence, and decoupling of multicast services from multicast transmission. Currently, in various standards and vendor implementations, the bit string (BS) is generally limited to a maximum length of 256 bits, with any excess extended using a Set Index (SI). In large networks, the number of Bit Forwarding Routers (BFIRs) entering and leaving Bier6 far exceeds 256, hence the widespread use of SIs. Configuring different Bit Index Forwarding Tables (BIFTs) for different SIs and performing multicast replication separately on each will result in multiple identical multicast traffic streams being repeatedly transmitted on the same routing device, leading to resource waste.
[0003] Therefore, how to avoid the repeated transmission of multicast service flows on routing devices in the case of multiple SIs, which affects network forwarding performance and carrying efficiency, is a technical problem that urgently needs to be solved by those skilled in the art.
[0004] It should be noted that the information disclosed in the background section above is only used to enhance the understanding of the background of this disclosure, and therefore may include information that does not constitute prior art known to those skilled in the art. Summary of the Invention
[0005] The purpose of this disclosure is to provide a multicast traffic aggregation and forwarding method, routing device, computer-readable storage medium, and electronic device, so as to at least solve the technical problem in the related art where the repeated transmission of multicast service flows on the routing device in the case of multiple SIs affects the network forwarding performance and carrying efficiency.
[0006] Other features and advantages of this disclosure will become apparent from the following detailed description, or may be learned in part from practice of this disclosure.
[0007] The technical solution disclosed herein is as follows:
[0008] According to one aspect of this disclosure, a multicast traffic aggregation and forwarding method is provided, applied to a routing device, comprising: generating a bit index forwarding table BIFT based on user joining information; obtaining the next-hop address of each user based on the user joining information and the BIFT; for multicast data with the same next-hop address, encapsulating it with a first IPv6 bit index explicit copy packet header Bier6 Header and an extension header, and retaining the Rev field set; and aggregating and forwarding the multicast streams with the same next-hop address.
[0009] In some embodiments of this disclosure, the method further includes: grouping based on the next-hop address; and multicasting data for each group by multicasting the number of groups.
[0010] In some embodiments of this disclosure, the method further includes: obtaining the corresponding bit index forwarding table BIFT forwarding table based on the identifier SI in the user-added information.
[0011] In some embodiments of this disclosure, the method further includes: performing a logical operation between the bit forwarding ingress routing device identifier (BFER-ID) of the user joining information and the F-BM of the bit index forwarding table (BIFT); performing a matching operation on the logical operation result; and obtaining the next-hop address of each user based on the matching result.
[0012] In some embodiments of this disclosure, the method further includes setting the Rev field following the last identifier SI to a value indicating that the SI is the last SI.
[0013] According to one aspect of this disclosure, a method for multicast traffic aggregation and forwarding is provided. The method includes: reading a second Bier6 header and extension header transmitted by an upstream routing device; generating a bit index forwarding table (BIFT) based on the second Bier6 header and extension header; obtaining the next-hop address of each user based on the second Bier6 header and extension header and the BIFT; for multicast data with the same next-hop address, encapsulating the second IPv6 bit index explicitly copied header (Bier6Header) and extension header, and setting the Rev field; and aggregating and forwarding the multicast streams with the same next-hop address.
[0014] In some embodiments of this disclosure, before the steps of encapsulating the second IPv6 bit-indexed Bier6 Header and extended header and setting the Rev field for multicast data with the same next-hop address, the method further includes: grouping based on the next-hop address; and multicast copying according to the number of groups to obtain multicast data for each group.
[0015] In some embodiments of this disclosure, a bit index forwarding table BIFT is generated based on the BSL bit string length, subfield SD, and identifier SI in the second Bier6 message header and extension header.
[0016] In some embodiments of this disclosure, the method may further include: if the Rev field after parsing the identifier SI in the second Bier6 header and extension header is not a value indicating that the SI is the last SI, then continue parsing the second Bier6 extension header after parsing the current header or extension header; if the Rev field after parsing the identifier SI in the extension header of the second Bier6 is a value indicating that the SI is the last SI, then stop parsing the second Bier6 extension header.
[0017] In some embodiments of this disclosure, the method may further include: obtaining the bit string BS corresponding to each SI sequentially based on the second Bier6 message header and the extended header; performing a logical operation on the bit string BS and the F-BM of the bit index forwarding table BIFT; performing a matching operation on the logical operation result; and obtaining the next-hop address of each user based on the matching result.
[0018] According to another aspect of this disclosure, a routing device is provided, comprising: a BIFT generation module for generating a bit-indexed forwarding table BIFT based on user join information for multicast replication; an address acquisition module for obtaining the next-hop address of each user based on the user join information and the BIFT; an aggregation and encapsulation module for encapsulating multicast data with the same next-hop address into a first IPv6 bit-indexed explicit replication packet header (Bier6 Header) and an extension header, and setting the Rev field; and a forwarding module for aggregating and forwarding the multicast streams with the same next-hop address.
[0019] According to another aspect of this disclosure, an electronic device is provided, comprising: a processor; and a memory for storing executable instructions of the processor; wherein the processor is configured to perform the multicast traffic aggregation and forwarding method described above by executing the executable instructions.
[0020] According to another aspect of this disclosure, a computer-readable storage medium is provided having a computer program stored thereon, which, when executed by a processor, implements the multicast traffic aggregation and forwarding method described above.
[0021] The method of this disclosure proposes a method to improve the performance and efficiency of multicast service traffic forwarding in Bier6 under multiple SI scenarios. When the next hop of BIFT is the same, multicast data streams can be aggregated and forwarded to improve network carrying efficiency.
[0022] Furthermore, in networks built through continuous patchwork and in large multi-hop networks, the overlapping forwarding paths across multiple SIs become more pronounced, significantly improving network forwarding performance.
[0023] Furthermore, when carrying high-bandwidth, long-duration live video services, the impact on forwarding performance and network bandwidth will be even more pronounced.
[0024] It should be understood that the above general description and the following detailed description are exemplary and explanatory only, and are not intended to limit this disclosure. Attached Figure Description
[0025] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this disclosure and, together with the description, serve to explain the principles of this disclosure. It is obvious that the drawings described below are merely some embodiments of this disclosure, and those skilled in the art can obtain other drawings based on these drawings without any inventive effort.
[0026] Figure 1 This diagram illustrates a flowchart of a method for aggregating and forwarding multicast traffic at the entry point, as described in an embodiment of this disclosure.
[0027] Figure 2 This is a flowchart illustrating the process of determining the next-hop address of a user in a multicast traffic aggregation and forwarding method according to an embodiment of this disclosure.
[0028] Figure 3 This diagram illustrates a flowchart of another method for aggregating and forwarding multicast traffic at the entry point, as described in this disclosure.
[0029] Figure 4 This diagram illustrates a flowchart of an intermediate aggregation and forwarding method for multicast traffic according to an embodiment of this disclosure.
[0030] Figure 5 This diagram illustrates the process of determining the next-hop address of a user in an intermediate aggregation and forwarding method for multicast traffic according to an embodiment of this disclosure.
[0031] Figure 6 This diagram illustrates a flowchart of yet another method for intermediate aggregation and forwarding of multicast traffic in an embodiment of this disclosure.
[0032] Figure 7 This diagram illustrates a bier6 message header and extension header format according to an embodiment of the present disclosure.
[0033] Figure 8 This diagram illustrates a topology diagram of a Bier6 multicast traffic aggregation and forwarding scheme in an embodiment of this disclosure.
[0034] Figure 9 Show Figure 3, 8 A schematic diagram of the Bier6 message format in steps S380 and S820.
[0035] Figure 10 Show Figure 8 The illustration shows a schematic diagram of the multicast traffic aggregation and forwarding effect of the embodiment.
[0036] Figure 11 A schematic diagram of the structure of a routing device according to an embodiment of this disclosure is shown.
[0037] Figure 12 A schematic block diagram of an electronic device for a multicast traffic aggregation and forwarding method according to an embodiment of the present disclosure is shown. Detailed Implementation
[0038] Exemplary embodiments will now be described more fully with reference to the accompanying drawings. However, these exemplary embodiments can be implemented in many forms and should not be construed as limited to the examples set forth herein; rather, they are provided so that this disclosure will be more comprehensive and complete, and will fully convey the concept of the exemplary embodiments to those skilled in the art. The described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
[0039] Furthermore, the accompanying drawings are merely illustrative of this disclosure and are not necessarily drawn to scale. The same reference numerals in the drawings denote the same or similar parts, and therefore repeated descriptions of them will be omitted. Some block diagrams shown in the drawings are functional entities and do not necessarily correspond to physically or logically independent entities. These functional entities may be implemented in software, in one or more hardware modules or integrated circuits, or in different network and / or processor devices and / or microcontroller devices.
[0040] Furthermore, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of that feature. In the description of this disclosure, "multiple" means at least two, such as two, three, etc., unless otherwise explicitly specified.
[0041] To address the technical problems existing in the aforementioned related technologies, this disclosure provides a multicast traffic aggregation and forwarding method, a routing device, an electronic device, and a computer-readable storage medium to solve at least one or all of the aforementioned technical problems.
[0042] It should be noted that the nouns or terms used in the embodiments of this application can be referenced from each other and will not be repeated here.
[0043] The following will describe in more detail the steps of a multicast traffic aggregation and forwarding method, routing device, electronic device, and computer-readable storage medium in this exemplary embodiment, with reference to the accompanying drawings and embodiments.
[0044] It should be noted that the nouns or terms used in the embodiments of this application can be referenced from each other and will not be repeated here.
[0045] Some embodiments of this disclosure provide a multicast traffic aggregation and forwarding method executed by a routing device, which may include: an ingress aggregation and forwarding method for multicast traffic and an intermediate aggregation and forwarding method, wherein the ingress aggregation and forwarding method for multicast traffic is executed when the routing device acts as the ingress of a multicast source data stream, and the intermediate aggregation and forwarding method is executed when the routing device acts as a downstream routing device and receives multicast traffic forwarded by an upstream routing device.
[0046] Figure 1 This demonstrates an ingress aggregation and forwarding method for multicast traffic. For example... Figure 1 As shown, method 100 may include the following steps:
[0047] In step S110, a bit index forwarding table BIFT is generated based on the user's addition information.
[0048] The user joining information is Protocol Independent Multicast (PIM) joining information, which may include identifiers (Set index, SI) and bit forwarding egress router identifiers (BFER-ID). When there are multiple users accessing the network, each user has corresponding user joining information.
[0049] The bit index forwarding table (BIFT) is an entry used by each routing device when forwarding multicast packets, and it also includes neighbor (next-hop) node information. In some embodiments, one or more bit index forwarding tables may be generated.
[0050] In step S120, the next-hop address of each user is obtained based on the user joining information and BIFT.
[0051] The BIFT forwarding table includes a forwarding bitmask (F-BM), which is used to indicate the identity or address of each routing device to which the multicast data stream arrives, as well as the corresponding next-hop address.
[0052] In step S130, for multicast data with the same next-hop address, the first IPv6 bit index is used to explicitly copy the Bier6 Header and extension header, and the Rev field is reserved and set.
[0053] Among them, the IPv6 bit-indexed explicit replication packet Bier6, which can be simply referred to as Bier6, is a multicast forwarding technology that performs explicit replication based on bit indexes.
[0054] The Reserved (Reserve, Rev) field is a reserved bit following the SI field. When multiple BIFT forwarding tables exist, the Rev field can be used to prompt downstream routing devices to resolve the table.
[0055] In step S140, multicast streams with the same next-hop address are aggregated and forwarded.
[0056] In this process, the routing device represents the set of addresses to each user using a bitstring, where each bit in the BS represents a routing device address. The routing device then uses the Bit Index Forwarding Table (BIFT) to forward the multicast message encapsulated with the BS to downstream routing devices in a single packet format.
[0057] The method of this disclosure proposes a method to improve the performance and efficiency of multicast service traffic forwarding in Bier6 under multiple SI scenarios. When the next hop of BIFT is the same, multicast data streams can be aggregated and forwarded to improve network carrying efficiency.
[0058] Furthermore, in networks built through continuous patchwork and in large multi-hop networks, the overlapping forwarding paths across multiple SIs become more pronounced, significantly improving network forwarding performance.
[0059] Furthermore, when carrying high-bandwidth, long-duration live video services, the impact on forwarding performance and network bandwidth will be even more pronounced.
[0060] In some embodiments of this disclosure, step S110 may further include obtaining the corresponding Bit Index Forwarding Table (BIFT) based on the identifier SI in the user join information. The number of BIFT forwarding tables corresponds to the number of SIs. Multicast data streams in BIFTs of different SIs may have the same next-hop address.
[0061] In some embodiments of this disclosure, step S120 may also, for example... Figure 2 The method 200 shown may include the following steps:
[0062] In step S210, logical operations are performed on the bit forwarding entry routing device identifier BFER-ID and the bit index forwarding table BIFT F-BM based on the user-added information.
[0063] The forwarding bitmask (F-BM) indicates the identity or address of each routing device to which the multicast data stream arrives.
[0064] The logical operations may include Boolean logical operations (e.g., OR, AND) or auxiliary Boolean logical operations (e.g., XOR and IMP).
[0065] In step S220, the logical operation result is matched.
[0066] In some embodiments of this disclosure, the matching operation refers to querying the BFER-ID in the BIFT forwarding table. If the match is successful, it means that a next-hop address corresponding to the BFER-ID exists in BIFT; if the match fails, it means that a next-hop address corresponding to the BFER-ID does not exist in BIFT.
[0067] In step S230, the next-hop address of each user is obtained based on the matching results.
[0068] In some embodiments of this disclosure, if a match is successful, the next-hop address corresponding to the BFER-ID is used as the user's next-hop address.
[0069] The method of this disclosure can accurately route to the next-hop address without complex mathematical calculations through logical operations and multiple query matching. It has low implementation complexity and is suitable for hardware implementation.
[0070] In some embodiments of this disclosure, after determining the next-hop address for each user and before executing step S130, the method may further include: grouping based on the next-hop address; and performing multicast replication according to the number of groups to obtain multicast data for each group. Specifically, grouping multicast data streams with the same next-hop address into the same group for a single forwarding reduces the number of replications and forwardings, saves signaling overhead, and improves communication performance.
[0071] In some embodiments of this disclosure, step S130, the step of setting the Rev field, may further include: setting the Rev field after the last identifier SI to a value indicating that SI is the last SI.
[0072] For example Figure 7 The message format shown is as follows: Figure 7As shown, the Bier6 header also includes the following information: Next header (used to identify the header type); Destination length (Hdr Ext Len); Option type (OT); Option length (Opt length); Bit string length (BSL); Subfield (SD); Identifier (SI); Reserved bits (Rev); TTL (Lifetime); Ver (Version); Entropy; Default bits (OAM & DSCP).
[0073] The method in this embodiment defines the Rev header of the traditional Bier6 header and extends the Bier6 header. For example... Figure 7 As shown, when the value is 1, it indicates that this SI and its corresponding forwarding table (BIFT-ID) are not the last one, indicating that the routing device needs to continue parsing the next Bier6 header extension after parsing this Bier6 header; when the value is 0, it indicates that it is the last SI and forwarding table (BIFT-ID), that is, the last Bier6 extension header.
[0074] On the one hand, by setting the Rev field after SI to indicate that the packet contains multiple SIs, it is possible to effectively parse packets encapsulated with multiple extension headers. This allows multicast traffic with different SIs but the same next hop to be aggregated and forwarded in one go, improving the efficiency of multicast traffic aggregation and forwarding. On the other hand, by fully utilizing the programmable features of the Bier6 packet header and extension headers, information can be written into the Rev field without introducing additional field types, which can reduce the communication costs during algorithm implementation and execution.
[0075] Figure 3 This diagram illustrates a flowchart of yet another method for aggregating and forwarding multicast traffic at the entry point, as described in this disclosure. Figure 3 As shown, method 300 may include the following steps:
[0076] In step S310, the corresponding bit index forwarding table BIFT is obtained based on the identifier SI in the user-added information.
[0077] For example, Figure 8 The BIER forwarding table of the R1 routing device shown is divided into two forwarding tables based on SI = 0 and 1. Specifically, the SI for users A, B, D, and E is 0, while the SI for users C, F, and G is 1.
[0078] In step S320, a bitwise AND operation is performed between the bit forwarding entry routing device identifier BEFR-ID of the user-added information and the F-BM of the bit index forwarding table BIFT.
[0079] exist Figure 8In one embodiment, taking user A as an example, A's BEFR-ID is 0001 and F-BM is 1111, which are ANDed to obtain 0001.
[0080] In step S330, it is determined whether the result of the AND operation is 0.
[0081] exist Figure 8 In one embodiment, it is determined whether the result of user A's calculation is 0.
[0082] If not, proceed to step S340 to confirm a successful match. If yes, end the current process.
[0083] exist Figure 8 In the embodiment, as can be seen from the above analysis, the result of user A's calculation is not 0.
[0084] In step S350, the user's next-hop address is determined.
[0085] exist Figure 8 In the embodiment, R1 knows from the forwarding table that the neighbor corresponding to user A is R2.
[0086] In step S360, groups are formed based on the next-hop address.
[0087] exist Figure 8 In the example provided, it is known that the neighbors of the 7 users in AG are also R2. Therefore, R1 groups the 7 users together.
[0088] In step S370, multicast replication is performed according to the number of groups to obtain multicast data for each group.
[0089] In step S380, the first Bier6Header and extended header are encapsulated, and the Rev field after the last identifier SI is set to the value indicating that SI is the last SI.
[0090] exist Figure 8 In this embodiment, R1 encapsulates the routing information of all seven users into the first Bier6 header and the extension header. During encapsulation, SI=0 is encapsulated in the header, and the Rev field is set to indicate that there are other SI values after SI. Similarly, SI=1 is encapsulated in the extension header, and the Rev field is set to indicate that this SI is the last identifier. The format of the encapsulated header and extension header can be, for example... Figure 9 The format shown.
[0091] In step S390, multicast streams with the same next-hop address are aggregated and forwarded.
[0092] exist Figure 8In one embodiment, R1 aggregates the multicast traffic from the two forwarding tables and forwards it to R2 in one go.
[0093] Figure 4 This diagram illustrates a flowchart of an intermediate aggregation and forwarding method for multicast traffic according to an embodiment of this disclosure. Figure 4 As shown, method 400 may include the following steps:
[0094] In step S410, the second Bier6 packet header and extension header transmitted by the upstream routing device are read, and a bit index forwarding table BIFT is generated based on the second Bier6 packet header and extension header.
[0095] The second Bier6 header and its extension header include multiple BSL bit string lengths, subdomains SD and SI, and corresponding bit strings encapsulated by the upstream routing device. For example... Figure 7 The message format shown is shown.
[0096] In step S420, the next-hop address of each user is obtained based on the second Bier6 message header, the extension header, and BIFT.
[0097] The BIFT forwarding table includes a forwarding bitmask (F-BM), which is used to indicate the identity or address of each routing device to which the multicast data stream arrives, as well as the corresponding next-hop address.
[0098] In step S430, for multicast data with the same next-hop address, the second IPv6 bit index is used to explicitly copy the Bier6 Header and extension header, and the Rev field is set.
[0099] In step S440, multicast streams with the same next-hop address are aggregated and forwarded.
[0100] The method of this disclosure embodiment can further implement the method of reading and parsing the Bier6 packet header and extension header based on the message of the upstream routing device, realizing the message forwarding method between routing devices. It can encapsulate and forward multiple SIs with the same next-hop address in one go, thereby improving the network forwarding carrying efficiency between routing devices.
[0101] In some embodiments of this disclosure, step S410 may further include: generating a bit index forwarding table BIFT based on the BSL bit string length, subfield SD, and identifier SI in the second Bier6 packet header and extension header. The method of obtaining a unique BIFT through the bit string length, subfield, and identifier can improve the accuracy of routing devices in parsing packet headers and extension headers.
[0102] In some embodiments of this disclosure, step S410 may further include: if the Rev field after parsing the identifier SI in the second Bier6 header and extension header is not a value indicating that SI is the last SI, then continue parsing the second Bier6 extension header after parsing the current header or extension header; if the Rev field after parsing the identifier SI in the extension header of the second Bier6 is a value indicating that SI is the last SI, then stop parsing the second Bier6 extension header. The method of this disclosure avoids the resource waste caused by performing packet parsing and processing during packet forwarding by using the Rev field to indicate the parsing method of the routing device, thereby improving data processing capabilities and saving bandwidth resources.
[0103] In some embodiments of this disclosure, step S420 may also, for example... Figure 5 Method 500 shown, such as Figure 5 As shown, method 500 may include the following steps:
[0104] In step S510, the bit string BS corresponding to each SI is obtained sequentially according to the second Bier6 message header and the extended header.
[0105] Each bit in the BS string represents a routing device address.
[0106] In step S520, logical operations are performed based on the bit string BS and the F-BM of the bit index forwarding table BIFT.
[0107] The logical operations may include Boolean logical operations (e.g., OR, AND) or auxiliary Boolean logical operations (e.g., XOR and IMP).
[0108] In step S530, the logical operation result is matched.
[0109] In some embodiments of this disclosure, the matching operation refers to querying the BS in the BIFT forwarding table. If the match is successful, it means that a next-hop address corresponding to the BS exists in the BIFT; if the match fails, it means that a next-hop address corresponding to the BS does not exist in the BIFT.
[0110] In step S540, the next-hop address for each user is obtained based on the matching results.
[0111] In some embodiments of this disclosure, if a match is successful, the next-hop address corresponding to the BFER-ID is used as the user's next-hop address.
[0112] By using logical operations and multiple query matching methods, accurate routing to the next-hop address can be achieved without complex mathematical calculations. This method has low implementation complexity and is suitable for hardware implementation.
[0113] In some embodiments of this disclosure, after determining the next-hop address for each user and before executing step S430, the method may further include: grouping based on the next-hop address; and multicasting data for each group by multicasting according to the number of groups. The method of this disclosure, by grouping and aggregating data with the same next-hop address and forwarding it all at once, can reduce the number of replications and forwards, save signaling overhead, and improve communication performance.
[0114] Figure 6 This diagram illustrates a flowchart of yet another method for intermediate aggregation and forwarding of multicast traffic according to an embodiment of this disclosure. Figure 6 As shown, method 600 may include the following steps:
[0115] In step S602, the second Bier6 packet header and extension header transmitted by the upstream routing device are read, and a bit index forwarding table BIFT is generated based on the BSL bit string length, subdomain SD, and identifier SI in the second Bier6 packet header and extension header.
[0116] For example, Figure 8 The diagram shows two forwarding tables generated by routing device R2 for SI=0 and SI=1.
[0117] In step S604, it is determined whether the Rev field after the identifier SI in the message header and extension header is 0.
[0118] If so, proceed to step S606 to obtain the bit string corresponding to each SI in sequence according to the second Bier6 message header and the extended header.
[0119] exist Figure 8 In the example, R2 parses the second Bier6 message header and extension header to find that when SI=0, BS=1111; when SI=1, BS=0111.
[0120] If not, return to step S602.
[0121] In step S610, it is determined whether the result of the AND operation is 0.
[0122] exist Figure 8 In the example, R2 performs AND operations on BS and the two F-BMs in BIFT table 1 when SI=0, and the results are all non-zero; it also performs AND operations on BS and the two F-BMs in BIFT table 2 when SI=1, and the results are all non-zero.
[0123] If the result of the operation is not 0, proceed to step S612 to confirm a successful match. Otherwise, end the current process.
[0124] In step S614, the next-hop address for each user is determined.
[0125] exist Figure 8 In this embodiment, R2 knows from the forwarding table that the next-hop addresses include R3 and R4.
[0126] In step S616, groups are formed based on the next-hop address.
[0127] exist Figure 8 In one embodiment, the two groups are based on the next-hop address.
[0128] In step S618, multicast replication is performed according to the number of groups to obtain multicast data for each group.
[0129] exist Figure 8 In one embodiment, the multicast stream is copied once to generate two data streams.
[0130] In step S620, the Bier6Header and extended header are encapsulated, and the Rev field after the last identifier SI is set to the value indicating that SI is the last SI.
[0131] exist Figure 8 In this embodiment, R2 encapsulates the routing information of three users into a Bier6 header and an extension header. During encapsulation, SI=0 is encapsulated in the header, and the Rev field is set to indicate that there are other SI values following SI. Similarly, SI=1 is encapsulated in the extension header, and the Rev field is set to indicate that this SI is the last identifier. R2 also encapsulates the routing information of the other four users into a separate Bier6 header and extension header. During encapsulation, SI=0 is encapsulated in the header, and the Rev field is set to indicate that there are other SI values following SI. Additionally, SI=1 is encapsulated in the extension header, and the Rev field is set to indicate that this SI is the last identifier.
[0132] In step S622, multicast streams with the same next-hop address are aggregated and forwarded.
[0133] exist Figure 8 In this embodiment, R2 sends the two message messages to R3 and R4 respectively.
[0134] Figure 8 This diagram illustrates a scenario of Bier6 multicast traffic aggregation and forwarding according to an embodiment of this disclosure. Based on Figure 8 The implementation process of the topology is as follows:
[0135] In step S810, seven users (user A, user B, user C, user D, user E, user F, and user G) access the PIM multicast.
[0136] In step S820, R1 (the routing device) performs round-robin queries on two BIFT forwarding tables based on the BFER-IDs corresponding to the seven joining users, performing a bitwise AND operation to look up the tables. If all seven users match, their next hop is found to be R2. R1 then performs Bier6 encapsulation, encapsulating a standard Bier6 header (SSI=0), Rev=1, BS1111; subsequently, it encapsulates an extended header (SSI=1), Rev=0, BS0111. The format of the encapsulated message is as follows: Figure 9 As shown. Figure 9 Other information in the message header and extension header and Figure 7 Similar to other methods, so I won't go into details here. The effect is as follows: Figure 10 The arrow pointing from R1 to R2 forwards the encapsulated packet header 0:1111 and extension header 1:0111 in one go.
[0137] In step S830, R2 queries the first BIFT based on SI=0 and performs an AND operation, matching two next hops R3 and R4. Since Rev=1, it continues to query the second BIFT based on the extended header SI=1 and performs an AND operation, matching two next hops R3 and R4. R2 performs a copy for the two next hops to generate two data streams.
[0138] The data stream to R3 is encapsulated using Bier: a standard Bier6 header is encapsulated for SI=0, Rev=1, BS 0011; subsequently, an extended header is encapsulated for SI=1, Rev=0, BS 0001. The effect is as follows. Figure 10 The arrow pointing from R2 to R3 forwards the encapsulated packet header 0:0011 and extension header 1:0001 in one go.
[0139] The data stream to R4 is encapsulated using Bier: a standard Bier6 header is encapsulated for SI=0, Rev=1, BS1100; subsequently, an extended header is encapsulated for SI=1, Rev=0, BS 0110. The effect is as follows. Figure 10 The arrow pointing from R2 to R4 forwards the encapsulated packet header 0:1100 and extension header 1:0110 in one go.
[0140] R3 and R4 are similar to R2, but since there are no multicast streams that need to be aggregated in this scenario, they are all standard Bier6 packets with Rev=0.
[0141] Specifically, R3 queries the first BIFT based on SI=0 and performs an AND operation, matching two next hops A and B; since Rev=1, it continues to query the second BIFT based on the extended header SI=1 and performs an AND operation, matching two next hops C. R2 performs two copies for the three next hops, generating two data streams.
[0142] The data stream to A is encapsulated using Bier: a standard Bier6 header is encapsulated for SI=0, Rev=0, BS 0001. The effect is as follows. Figure 10 The arrow pointing from R3 to A forwards the encapsulated packet header 0:0001 in one go.
[0143] The data stream to B is encapsulated using Bier: a standard Bier6 header is encapsulated for SI=0, Rev=0, and BS 0010. The effect is as follows. Figure 10 The arrow pointing from R3 to B indicates that the encapsulated packet header 0:0010 is forwarded in one go.
[0144] The data stream to C is encapsulated using Bier: a standard Bier6 header is encapsulated for SI=1, Rev=0, BS 0001. The effect is as follows. Figure 10 The arrow pointing from R3 to C indicates that the encapsulated packet header 1:0001 is forwarded in one go.
[0145] R4 performs a bitwise AND operation on the first BIFT based on SI=0, matching two next hops D and E. Since Rev=1, it continues to perform a bitwise AND operation on the second BIFT based on the extended header SI=1, matching two next hops F and G. R4 performs three copies for the four next hops, generating two data streams.
[0146] The data stream to D is encapsulated using Bier: a standard Bier6 header is encapsulated for SI=0, Rev=0, BS 0100. The effect is as follows. Figure 10 The arrow pointing from R4 to D indicates that the encapsulated packet header 0:0100 is forwarded in one go.
[0147] The data stream to E is encapsulated using Bier: a standard Bier6 header is encapsulated for SI=0, Rev=0, and BS1000 is used. The effect is as follows. Figure 10 The arrow pointing from R4 to E indicates that the encapsulated packet header 0:1000 is forwarded in one go.
[0148] The data stream to F is encapsulated using Bier: a standard Bier6 header is encapsulated for SI=1, Rev=0, BS 0010. The effect is as follows. Figure 10 The arrow pointing from R4 to F indicates that the encapsulated packet header 1:0010 is forwarded in one go.
[0149] The data stream to G is encapsulated using Bier: a standard Bier6 header is encapsulated for SI=1, Rev=0, BS 0100. The effect is as follows. Figure 10 The arrow pointing from R4 to G indicates that the encapsulated packet header 1:0100 is forwarded in one go.
[0150] Those skilled in the art will know that the routing devices in the above scenario can be more or fewer.
[0151] Figure 11 A schematic diagram of the structure of a routing device according to an embodiment of this disclosure is shown. Figure 11 As shown, the routing device 1100 includes: a BIFT generation module 1110, used to generate a bit index forwarding table BIFT based on user joining information for multicast replication; an address acquisition module 1120, used to obtain the next-hop address of each user based on the user joining information and BIFT; an aggregation and encapsulation module 1130, used to encapsulate multicast data with the same next-hop address using a first IPv6 bit index explicit replication packet header (Bier6 Header) and an extension header, and to set the Rev field; and a forwarding module 1140, used to aggregate and forward multicast streams with the same next-hop address.
[0152] In some embodiments of this disclosure, the routing device 1100 may further include: a first multicast replication module, used for grouping based on the next-hop address; and for multicast replication of the data for each group according to the number of groups.
[0153] In some embodiments of this disclosure, the BIFT generation module 1110 can also be used to obtain the corresponding bit index forwarding table BIFT forwarding table based on the identifier SI in the user-added information.
[0154] In some embodiments of this disclosure, the address acquisition module 1120 can also be used to perform logical operations on the bit forwarding entry routing device identifier BFER-ID and the bit index forwarding table BIFT F-BM based on the user joining information; perform matching operations on the logical operation results; and obtain the next-hop address of each user based on the matching results.
[0155] In some embodiments of this disclosure, the aggregation encapsulation module 1130 can also be used to set the Rev field after the last identifier SI to a value indicating that the SI is the last SI.
[0156] In some embodiments of this disclosure, the BIFT generation module 1110 can also be used to read the second Bier6 header and extension header transmitted by the upstream routing device, and generate a bit-indexed forwarding table BIFT based on the second Bier6 header and extension header; the address acquisition module 1120 can also be used to obtain the next-hop address of each user based on the second Bier6 header and extension header and the BIFT; the aggregation and encapsulation module 1130 can also be used to encapsulate the second IPv6 bit-indexed explicitly copied header Bier6 header and extension header and set the Rev field for multicast data with the same next-hop address; and the forwarding module 1140 can also be used to aggregate and forward the multicast streams with the same next-hop address.
[0157] In some embodiments of this disclosure, the routing device 1100 may further include: a second multicast replication module, used for grouping based on the next-hop address; and for multicast replication of each group to obtain multicast data for each group based on the number of groups.
[0158] In some embodiments of this disclosure, the BIFT generation module 1110 can also be used to generate a bit index forwarding table BIFT based on the BSL bit string length, subfield SD, and identifier SI in the second Bier6 message header and extension header.
[0159] In some embodiments of this disclosure, the message parsing module is configured to, if the Rev field after the identifier SI in the second Bier6 message header and extension header is not a value indicating that the SI is the last SI, then continue parsing the second Bier6 extension header after parsing the current message header or extension header; if the Rev field after the identifier SI in the extension header of the second Bier6 is a value indicating that the SI is the last SI, then stop parsing the second Bier6 extension header.
[0160] In some embodiments of this disclosure, the address acquisition module 1120 can also be used to obtain the bit string BS corresponding to each SI in sequence according to the second Bier6 message header and extension header; perform logical operations on the bit string BS and the F-BM of the bit index forwarding table BIFT; perform matching operations on the logical operation results; and obtain the next-hop address of each user according to the matching results.
[0161] Regarding the routing devices in the above embodiments, the specific methods by which each device performs operations have been described in detail in the embodiments related to the method, and will not be elaborated upon here.
[0162] Those skilled in the art will understand that various aspects of this disclosure can be implemented as a system, method, or program product. Therefore, various aspects of this disclosure can be specifically implemented in the following forms: a completely hardware implementation, a completely software implementation (including firmware, microcode, etc.), or a combination of hardware and software aspects, collectively referred to herein as a "circuit," "module," or "system."
[0163] The following reference Figure 12 To describe an electronic device 1200 according to such an embodiment of the present disclosure. Figure 12 The electronic device 1200 shown is merely an example and should not impose any limitation on the functionality and scope of use of the embodiments disclosed herein.
[0164] like Figure 12As shown, the electronic device 1200 is manifested in the form of a general-purpose computing device. The components of the electronic device 1200 may include, but are not limited to: at least one processing unit 1210, at least one storage unit 1220, and a bus 1230 connecting different system components (including storage unit 1220 and processing unit 1210).
[0165] The storage unit stores program code that can be executed by the processing unit 1210, causing the processing unit 1210 to perform the steps described in the "Exemplary Methods" section of this specification according to various exemplary embodiments of this disclosure. For example, the processing unit 1210 can perform actions such as... Figure 2 As shown in step S210, different types of satellites exchange satellite information between different types of satellites based on a common architecture that supports regenerative payloads.
[0166] Storage unit 1220 may include a readable medium in the form of a volatile storage unit, such as random access memory (RAM) 1221 and / or cache memory 1222, and may further include a read-only memory (ROM) 1223.
[0167] Storage unit 1220 may also include a program / utility 1224 having a set (at least one) of program modules 1225, such program modules 1225 including but not limited to: operating system, one or more application programs, other program modules and program data, each or some combination of these examples may include an implementation of a network environment.
[0168] Bus 1230 can represent one or more of several types of bus structures, including a memory cell bus or memory cell controller, a peripheral bus, a graphics acceleration port, a processing unit, or a local bus using any of the various bus structures.
[0169] Electronic device 1200 can also communicate with one or more external devices 1300 (e.g., keyboard, pointing device, Bluetooth device, etc.), one or more devices that enable a user to interact with electronic device 1200, and / or any device that enables electronic device 1200 to communicate with one or more other computing devices (e.g., router, modem, etc.). This communication can be performed via input / output (I / O) interface 1250. Furthermore, electronic device 1200 can also communicate with one or more networks (e.g., local area network (LAN), wide area network (WAN), and / or public networks, such as the Internet) via network adapter 1260. As shown, network adapter 1260 communicates with other modules of electronic device 1200 via bus 1230. It should be understood that, although not shown in the figures, other hardware and / or software modules can be used in conjunction with electronic device 1200, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems.
[0170] In exemplary embodiments of this disclosure, a computer-readable storage medium is also provided, on which a program product capable of implementing the methods described above is stored. In some possible implementations, various aspects of this disclosure may also be implemented as a program product including program code that, when the program product is run on a terminal device, causes the terminal device to perform the steps of the various exemplary embodiments of this disclosure described in the "Exemplary Methods" section above.
[0171] The program product for implementing the above-described method according to embodiments of the present disclosure may employ a portable compact disc read-only memory (CD-ROM) and include program code, and may run on a terminal device, such as a personal computer. However, the program product of the present disclosure is not limited thereto. In this document, the readable storage medium may be any tangible medium containing or storing a program that may be used or used in conjunction with an instruction execution system, server, terminal, or device.
[0172] The program product may employ any combination of one or more readable media. A readable medium may be a readable signal medium or a readable storage medium. A readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, server, terminal, or device, or any combination thereof. More specific examples of readable storage media (a non-exhaustive list) include: an electrical connection having one or more wires, a portable disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof.
[0173] Computer-readable signal media may include data signals propagated in baseband or as part of a carrier wave, carrying readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A readable signal medium may also be any readable medium other than a readable storage medium, capable of sending, propagating, or transmitting programs for use by or in conjunction with an instruction execution system, server, terminal, or device.
[0174] The program code contained on the readable medium may be transmitted using any suitable medium, including but not limited to wireless, wired, optical fiber, RF, etc., or any suitable combination thereof.
[0175] Program code for performing the operations of this disclosure can be written in any combination of one or more programming languages, including object-oriented programming languages such as Java and C++, and conventional procedural programming languages such as C or similar languages. The program code can execute entirely on the user's computing device, partially on the user's computing device, as a standalone software package, partially on the user's computing device and partially on a remote computing device, or entirely on a remote computing device or server. In cases involving remote computing devices, the remote computing device can be connected to the user's computing device via any type of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computing device (e.g., via the Internet using an Internet service provider).
[0176] According to one aspect of this disclosure, a computer program product or computer program is provided, comprising computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the methods provided in various optional implementations of the above embodiments.
[0177] It should be noted that although several modules or units for the device used to perform actions have been mentioned in the detailed description above, this division is not mandatory. In fact, according to embodiments of this disclosure, the features and functions of two or more modules or units described above can be embodied in one module or unit. Conversely, the features and functions of one module or unit described above can be further divided and embodied by multiple modules or units.
[0178] Furthermore, although the steps of the method in this disclosure are described in a specific order in the accompanying drawings, this does not require or imply that the steps must be performed in that specific order, or that all the steps shown must be performed to achieve the desired result. Additional or alternative steps may be omitted, multiple steps may be combined into one step, and / or a step may be broken down into multiple steps.
[0179] From the above description of the embodiments, those skilled in the art will readily understand that the exemplary embodiments described herein can be implemented by software or by combining software with necessary hardware. Therefore, the technical solutions according to the embodiments of this disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (such as a CD-ROM, USB flash drive, external hard drive, etc.) or on a network, including several instructions to cause a computing device (such as a personal computer, server, mobile terminal, or network device, etc.) to execute the methods according to the embodiments of this disclosure.
[0180] Other embodiments of this disclosure will readily occur to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This application is intended to cover any variations, uses, or adaptations of this disclosure that follow the general principles of this disclosure and include common knowledge or customary techniques in the art not disclosed herein. The specification and examples are to be considered exemplary only, and the true scope and spirit of this disclosure are indicated by the appended claims.
Claims
1. A multicast traffic aggregation forwarding method, characterized in that, Applied to routing devices, the method includes: Multiple bit index forwarding tables (BIFTs) are generated based on the user joining information corresponding to multiple SIs, where each SI corresponds to one BIFT. The next-hop address of each user is obtained based on the user joining information corresponding to the multiple SIs and the multiple BIFTs; For multicast data with the same next-hop address but belonging to different SIs, the first IPv6 bit-indexed explicit copy Bier6 Header and extended header are encapsulated, and the reserved Rev field after the last encapsulated SI is set to aggregate multicast data from different SIs into a single packet; and The multicast streams with the same next-hop address after being aggregated and encapsulated are then aggregated and forwarded.
2. The multicast traffic aggregation forwarding method of claim 1, wherein, For multicast data with the same next-hop address, before the steps of encapsulating the first IPv6 bit-indexed copy Bier6 Header and extended headers and setting the Rev field, the method further includes: Grouping based on next-hop address; Multicast data for each group is obtained by multicast replication based on the number of groups.
3. The multicast traffic aggregation forwarding method of claim 2, wherein, The steps involved in generating the Bit Index Forwarding Table (BIFT) based on user-added information include: The corresponding bit index forwarding table BIFT forwarding table is obtained based on the identifier SI in the user-added information.
4. The multicast traffic aggregation and forwarding method according to claim 3, characterized in that, The steps for obtaining the next-hop address for each user based on the user joining information and the BIFT include: Logical operations are performed on the bit forwarding ingress routing device identifier BFER-ID and the bit index forwarding table BIFT F-BM based on the user-added information; Perform a matching operation on the result of the logical operation; and The next-hop address for each user is obtained based on the matching results.
5. The multicast traffic aggregation and forwarding method according to claim 4, characterized in that, For multicast data with the same next-hop address, the process of encapsulating the first IPv6 bit-indexed copy packet (Bier6 Header and extended header) and setting the Rev field includes setting the Rev field as follows: Set the Rev field following the last identifier SI to a value indicating that the SI is the last SI.
6. The multicast traffic aggregation and forwarding method according to claim 5, characterized in that, The method further includes: Read the second Bier6 packet header and extension header transmitted by the upstream routing device, and generate a bit index forwarding table BIFT based on the second Bier6 packet header and extension header; The next-hop address of each user is obtained based on the second Bier6 message header and extension header and the BIFT; For multicast data with the same next-hop address, perform second IPv6 bit-indexed explicit replication of the Bier6Header header and extended header encapsulation, and set the Rev field; and Multicast streams with the same next-hop address are aggregated and forwarded.
7. The multicast traffic aggregation and forwarding method according to claim 6, characterized in that, For multicast data with the same next-hop address, before the steps of encapsulating the second IPv6 bit-indexed copy header (Bier6 Header) and extension header, and setting the Rev field, the method further includes: Grouping based on next-hop address; Multicast data for each group is obtained by multicast replication based on the number of groups.
8. A multicast traffic aggregation and forwarding method according to claim 7, characterized in that, The steps for multicast replication include reading the second Bier6 packet header and extension header transmitted by the upstream routing device, generating a bit index forwarding table (BIFT) based on the second Bier6 packet header and extension header, and performing the multicast replication as follows: The bit index forwarding table BIFT is generated based on the BSL bit string length, subfield SD, and identifier SI in the second Bier6 message header and extension header.
9. A multicast traffic aggregation and forwarding method according to claim 8, characterized in that, After the step of generating the bit index forwarding table BIFT based on the BSL bit string length, subfield SD, and identifier SI in the second Bier6 message header and extension header, the method further includes: If the Rev field after the identifier SI in the second Bier6 header and extension header does not indicate that the SI is the last SI value, then continue parsing the second Bier6 extension header after parsing the current header or extension header; If the Rev field after the identifier SI in the extension header of the second Bier6 is a value indicating that the SI is the last SI, then the parsing of the second Bier6 extension header is stopped.
10. A multicast traffic aggregation and forwarding method according to claim 9, characterized in that, The steps for obtaining the next-hop address for each user based on the second Bier6 message header and extension header and the BIFT include: The bit string BS corresponding to each SI is obtained sequentially based on the second Bier6 message header and extension header; Logical operations are performed based on the bit string BS and the F-BM of the bit index forwarding table BIFT; Perform a matching operation on the result of the logical operation; and The next-hop address for each user is obtained based on the matching results.
11. A routing device, characterized in that, The routing device includes: The BIFT generation module is used to generate multiple bit index forwarding tables (BIFTs) based on the user join information corresponding to multiple SIs for multicast replication. Each SI corresponds to one BIFT. The address acquisition module is used to obtain the next-hop address of each user based on the user joining information corresponding to the multiple SIs and the multiple BIFTs; The aggregation and encapsulation module is used to encapsulate multicast data with the same next-hop address but belonging to different SIs by performing a first IPv6 bit-indexed explicit copying of the Bier6 Header and extended headers, and setting the Rev field after the last encapsulated SI, so as to aggregate and encapsulate multicast data from different SIs into a single packet; and The forwarding module is used to aggregate and forward multicast streams with the same next-hop address after aggregation and encapsulation.
12. An electronic device, characterized in that, include: processor; as well as Memory for storing the executable instructions of the processor; The processor is configured to execute the multicast traffic aggregation and forwarding method according to any one of claims 1-10 by executing the executable instructions.
13. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by the processor, it implements the multicast traffic aggregation and forwarding method according to any one of claims 1-10.