WO2022171014A1 - 报文传输方法及装置 - Google Patents
报文传输方法及装置 Download PDFInfo
- Publication number
- WO2022171014A1 WO2022171014A1 PCT/CN2022/074787 CN2022074787W WO2022171014A1 WO 2022171014 A1 WO2022171014 A1 WO 2022171014A1 CN 2022074787 W CN2022074787 W CN 2022074787W WO 2022171014 A1 WO2022171014 A1 WO 2022171014A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- packet
- network device
- message
- bit string
- user equipment
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 145
- 230000005540 biological transmission Effects 0.000 title claims abstract description 87
- 238000012545 processing Methods 0.000 claims description 53
- 230000015654 memory Effects 0.000 description 48
- 230000008569 process Effects 0.000 description 28
- 230000006870 function Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 22
- 238000004590 computer program Methods 0.000 description 17
- 239000004744 fabric Substances 0.000 description 17
- 230000010076 replication Effects 0.000 description 10
- 238000013461 design Methods 0.000 description 9
- 238000003860 storage Methods 0.000 description 8
- 101000710137 Homo sapiens Recoverin Proteins 0.000 description 5
- 101000912503 Homo sapiens Tyrosine-protein kinase Fgr Proteins 0.000 description 5
- 102100034572 Recoverin Human genes 0.000 description 5
- 102100026150 Tyrosine-protein kinase Fgr Human genes 0.000 description 5
- 230000014759 maintenance of location Effects 0.000 description 4
- 102000001332 SRC Human genes 0.000 description 3
- 108060006706 SRC Proteins 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 102100027368 Histone H1.3 Human genes 0.000 description 1
- 101001009450 Homo sapiens Histone H1.3 Proteins 0.000 description 1
- 101100496858 Mus musculus Colec12 gene Proteins 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
Definitions
- the present application relates to the field of network communication, and more particularly, to a message transmission method and device.
- IP Internet Protocol
- IPTV Internet Protocol
- games and simulation and many other aspects have a wide range of applications.
- point-to-multipoint data transmission is implemented in user networks through multicast packets, and the source user equipment sends data to multiple receivers (multiple destination user equipments) by using one multicast address. Since the devices in the user network (for example, source user equipment, multiple destination user equipments) need to be able to process multicast packets and support the corresponding IP multicast protocol, the user equipment in this technical solution will have additional The overhead and implementation complexity are also high. Therefore, how to reduce the overhead and complexity of the user equipment while supporting the point-to-multipoint data transmission in the user IP network has become an urgent problem to be solved.
- the present application provides a message transmission method and device, which can reduce the overhead and complexity of user equipment while supporting point-to-multipoint data transmission in a user IP network.
- a first aspect provides a message transmission method, the method includes: a first network device receives a first message sent by a source user equipment, the first message includes a first bit string and a destination address DA, the first message The bit string is used to indicate at least one destination user equipment, and the DA of the first packet is the address of the first network device; the first network device obtains a second packet according to the first bit string, and the second packet includes First information, where the first information is used to indicate a next-hop device that reaches the at least one destination user equipment; the first network device sends the second packet to the next-hop device.
- the user IP network can perform point-to-multipoint data transmission through unicast messages, so that the user equipment does not need to support the processing capability of the multicast message and the corresponding IP multicast protocol, which can reduce the user equipment. overhead and complexity.
- the first packet is a unicast packet or an internet protocol version 6 (internet protocol version 6, IPv6) unicast packet.
- the next hop device is a first destination user equipment
- the first network device sends the second packet to the first destination user equipment, the first destination user equipment
- the information includes the address of the first destination user equipment as DA.
- the next-hop device is a second network device
- the first network device sends the second packet to the second network device
- the first information includes The address of the second network device as DA.
- the first network device sends the second packet to the second network device through a tunnel, where the second packet includes a tunnel header, and the first information is The tunnel header includes information corresponding to the tunnel.
- the second packet includes the tunnel header and the first packet.
- the second packet includes the tunnel header and a third packet
- the third packet is a packet obtained based on the multicast address and the first packet message
- the DA of the third message is the multicast address
- the second message includes the tunnel header and a third message
- the third message is based on the first message and the second network device.
- the DA of the third message is the address of the second network device.
- the first network device is located in a first region region
- the second network device is located in a second region
- the first information includes a second bit string
- the second The bit string is used to indicate the second network device.
- the method further includes: the first network device obtains the second bit string according to a corresponding relationship and the first bit string, where the corresponding relationship includes the first bit string Bits in the bit string corresponding to the at least one destination user equipment and bits in the second bit string corresponding to the second network device; the first network obtains the second message according to the second bit string.
- the first network device is located in a first data center, and the second network device is located in a second data center; or the first network device is located in a first region, the The second network device is located in the second region.
- a region can include multiple data centers.
- the first packet further includes a first checksum
- the second packet further includes a second checksum
- the second checksum is based on the first checksum , the DA of the first packet, and the checksum obtained from the first information.
- the source user equipment and the at least one destination user equipment belong to the same user.
- the first message is an Internet Protocol version 6 IPv6 unicast message
- the IPv6 unicast message includes an IPv6 extension header
- the first bit string is located in the IPv6 in the extension header.
- a packet transmission method including: a second device receives a second packet sent by a first device, where the second packet includes first information, where the first information is used to indicate that the first device arrives The next hop device of at least one destination user equipment.
- the second device is a first destination user equipment
- the first device is a first network device
- the first information includes the first destination address DA. The address of the destination user equipment.
- the second device is a first destination user equipment
- the first device is a first network device
- the first information includes the first destination address DA. The address of the destination user equipment.
- the second device is a second network device
- the first device is a first network device
- the second network device receives the data sent by the first network device through a tunnel
- the second packet includes a tunnel header
- the first information is information corresponding to the tunnel included in the tunnel header.
- the second packet includes the tunnel header and a first packet
- the first packet includes a first bit string
- the first bit string is used to indicate the at least one destination user equipment.
- the second packet includes the tunnel header and a third packet
- the third packet is a packet obtained based on the multicast address and the first packet
- the DA of the third packet is the multicast address
- the first packet includes a first bit string
- the first bit string is used to indicate the at least one destination user equipment
- the second packet includes the tunnel header and a third message
- the third message is a message obtained based on the first message and the address of the second network device
- the DA of the third message is the address of the second network device
- the first message includes a first bit string, where the first bit string is used to indicate the at least one destination user equipment.
- the first network device is located in a first region region, the second network device is located in a second region, the first information includes a second bit string, the second The bit string is used to indicate the second network device.
- the second packet further includes a user packet and a first bit string, where the first bit string is used to indicate the at least one destination user equipment
- the method further includes Including: the second network device obtains the user message based on the second message; the second network device sends the first destination user device to the first destination user equipment according to the first bit string and the first information included in the second message Send the user message.
- the second packet further includes a user packet
- the method further includes: the second network device decapsulates the second packet to obtain the user packet. message; the second network device sends the user message to the first destination user equipment according to the first bit string and the first information included in the second message.
- the first network device is located in a first data center, and the second network device is located in a second data center; or the first network device is located in a first region, the The second network device is located in the second region.
- the second packet further includes a second checksum, and the second checksum is based on the first checksum included in the first packet, the first packet DA and the checksum obtained from the first information.
- an apparatus for message transmission is provided, the apparatus is set on a first network device, and includes: a receiving module, a processing module, and a sending module,
- a receiving module configured to receive a first packet sent by the source user equipment, where the first packet includes a first bit string and a destination address DA, where the first bit string is used to indicate at least one destination user equipment, the first packet
- the DA is the address of the first network device
- a processing module configured to acquire a second packet according to the first bit string, where the second packet includes first information, and the first information is used to indicate a next-hop device that reaches the at least one destination user equipment;
- a sending module configured to send the second packet to the next-hop device.
- the next hop device is the first destination user equipment
- the sending module is specifically configured to: send the second packet to the first destination user equipment, the The first information includes the address of the first destination user equipment as DA.
- the next-hop device is a second network device
- the sending module is specifically configured to: send the second packet to the second network device, the first The information includes the address of the second network device as DA.
- the next-hop device is a second network device
- the sending module is specifically configured to: send the second packet to the second network device through a tunnel
- the The second packet includes a tunnel header
- the first information is information corresponding to the tunnel included in the tunnel header.
- the second packet includes the tunnel header and the first packet.
- the second packet includes the tunnel header and a third packet
- the third packet is a packet obtained based on the multicast address and the first packet message
- the DA of the third message is the multicast address
- the second message includes the tunnel header and a third message
- the third message is based on the first message and the second network device.
- the DA of the third message is the address of the second network device.
- the first network device is located in the first region region
- the second network device is located in the second region
- the first information includes a second bit string
- the second The bit string is used to indicate the second network device.
- the processing module is further configured to: obtain the second bit string according to the corresponding relationship and the first bit string, where the corresponding relationship includes the first bit string in the A bit corresponding to the at least one destination user equipment and a bit corresponding to the second network device in the second bit string; the second packet is obtained according to the second bit string.
- the first network device is located in a first data center, and the second network device is located in a second data center; or the first network device is located in a first region, the The second network device is located in the second region.
- the first packet further includes a first checksum
- the second packet further includes a second checksum
- the second checksum is based on the first checksum , the DA of the first packet, and the checksum obtained from the first information.
- the source user equipment and the at least one destination user equipment belong to the same user.
- the first message is an Internet Protocol version 6 IPv6 unicast message
- the IPv6 unicast message includes an IPv6 extension header
- the first bit string is located in the IPv6 in the extension header.
- an apparatus for message transmission is provided, the apparatus is provided in a second device, and includes: a receiving module configured to receive a second message sent by the first device, where the second message includes the first information, where the first information is used to instruct the first device to reach the next hop device of at least one destination user equipment.
- the second device is a first destination user equipment
- the first device is a first network device
- the first information includes the first destination address DA. The address of the destination user equipment.
- the second device is a second network device
- the first device is the first network device
- the first information includes the second network device as a DA the address of.
- the second device is a second network device
- the first device is a first network device
- the receiving module is specifically configured to: the second network device passes through the tunnel The second packet sent by the first network device is received, where the second packet includes a tunnel header, and the first information is information corresponding to the tunnel included in the tunnel header.
- the second packet includes the tunnel header and a first packet
- the first packet includes a first bit string
- the first bit string is used to indicate the at least one destination user equipment.
- the second packet includes the tunnel header and a third packet
- the third packet is a packet obtained based on the multicast address and the first packet
- the DA of the third packet is the multicast address
- the first packet includes a first bit string
- the first bit string is used to indicate the at least one destination user equipment
- the second packet includes the tunnel header and a third message
- the third message is a message obtained based on the first message and the address of the second network device
- the DA of the third message is the address of the second network device
- the first message includes a first bit string, where the first bit string is used to indicate the at least one destination user equipment.
- the first network device is located in a first region region
- the second network device is located in a second region
- the first information includes a second bit string
- the second The bit string is used to indicate the second network device.
- the second packet further includes a user packet and a first bit string, where the first bit string is used to indicate the at least one destination user equipment
- the second The device also includes: a processing module, a sending module,
- a processing module configured to obtain the user message based on the second message
- a sending module configured to send the user message to the first destination user equipment according to the first bit string and the first information included in the second message.
- the second packet further includes a user packet, and a processing module is configured to decapsulate the second packet to obtain the user packet; the sending module, is configured to send the user message to the first destination user equipment according to the first bit string and the first information included in the second message.
- the first network device is located in a first data center, and the second network device is located in a second data center; or the first network device is located in a first region, the The second network device is located in the second region.
- the second packet further includes a second checksum, and the second checksum is based on the first checksum included in the first packet, the first packet DA and the checksum obtained from the first information.
- an apparatus for message transmission is provided.
- the apparatus is provided in a first network device and has the function of implementing the message transmission method in the first aspect or any one of the implementation manners of the first aspect.
- This function can be implemented based on hardware, or can also be implemented based on hardware to execute corresponding software.
- the hardware or software includes one or more modules corresponding to the above functions.
- the structure of the apparatus includes a processor, and the processor is configured to support the apparatus to perform the corresponding functions in the above method.
- the apparatus may also include a memory, coupled to the processor, which holds program instructions and data necessary for the apparatus.
- the apparatus includes: a processor, a transmitter, a receiver, a random access memory, a read only memory, and a bus.
- the processor is respectively coupled to the transmitter, the receiver, the random access memory and the read only memory through the bus.
- the basic input/output system solidified in the read-only memory or the bootloader booting system in the embedded system is used to start the device, and the device is guided to enter a normal operation state.
- the application program and the operating system are run in the random access memory, so that the processor executes the method of the first aspect or any possible implementation manner of the first aspect.
- an apparatus for message transmission is provided, the apparatus is provided on the first network device, and includes: a main control board and an interface board, and further, may also include a switching network board.
- the apparatus is configured to execute the method for message transmission in the first aspect or any possible implementation manner of the first aspect.
- the apparatus includes a module for executing the message transmission method in the first aspect or any possible implementation manner of the first aspect.
- main control boards there may be one or more main control boards, and if there are multiple main control boards, they may include the main main control board and the backup main control board.
- the first network device may have at least one switching network board, and the switching network board realizes data exchange between multiple interface boards, providing large-capacity data exchange and processing capabilities. Therefore, the data access and processing capabilities of the device in the distributed architecture are greater than those in the centralized architecture.
- the specific architecture used depends on the specific networking deployment scenario, and there is no restriction here.
- an apparatus for message transmission is provided, the apparatus is provided in a first network device, and includes a control module and a first forwarding sub-device.
- the first forwarding sub-device includes: an interface board, and further, may also include a switching network board.
- the first forwarding sub-device is configured to perform the function of the interface board in the sixth aspect, and further, may also perform the function of the switching network board in the sixth aspect.
- the control module includes a receiver, a processor, a transmitter, a random access memory, a read only memory and a bus. Wherein, the processor is respectively coupled to the receiver, the transmitter, the random access memory and the read only memory through the bus.
- the basic input/output system solidified in the read-only memory or the bootloader in the embedded system is used to boot the system to start, and the control module is guided to enter a normal operation state.
- the application program and the operating system are run in the random access memory, so that the processor performs the function of the main control board in the sixth aspect.
- the apparatus may contain any number of interfaces, processors or memories.
- an apparatus for message transmission is provided.
- the apparatus is provided in a second device and has the function of implementing the message transmission method in the second aspect or any one of the implementation manners of the second aspect.
- This function can be implemented based on hardware, or can also be implemented based on hardware to execute corresponding software.
- the hardware or software includes one or more modules corresponding to the above functions.
- the structure of the apparatus includes a processor, and the processor is configured to support the apparatus to perform the corresponding functions in the above method.
- the apparatus may also include a memory, coupled to the processor, which holds program instructions and data necessary for the apparatus.
- the apparatus includes: a processor, a transmitter, a receiver, a random access memory, a read only memory, and a bus.
- the processor is respectively coupled to the transmitter, the receiver, the random access memory and the read only memory through the bus.
- the basic input/output system solidified in the read-only memory or the bootloader booting system in the embedded system is used to start the device, and the device is guided to enter a normal operation state.
- the application program and the operating system are run in the random access memory, so that the processor executes the method of the second aspect or any possible implementation manner of the second aspect.
- an apparatus for message transmission is provided, the apparatus is provided in the second device, and includes: a main control board and an interface board, and further, may also include a switching network board.
- the apparatus is configured to execute the method for message transmission in the second aspect or any possible implementation manner of the second aspect.
- the apparatus includes a module for executing the second aspect or the message transmission method in any possible implementation manner of the second aspect.
- main control boards there may be one or more main control boards, and if there are multiple main control boards, they may include the main main control board and the backup main control board.
- the device may have at least one switching network board, and the switching network board realizes data exchange between multiple interface boards, providing large-capacity data exchange and processing capabilities. Therefore, the data access and processing capabilities of the device in the distributed architecture are greater than those in the centralized architecture.
- the specific architecture used depends on the specific networking deployment scenario, and there is no restriction here.
- an apparatus for message transmission is provided, the apparatus is provided in a second device, and includes a control module and a first forwarding sub-device.
- the first forwarding sub-device includes: an interface board, and further, may also include a switching network board.
- the first forwarding sub-device is configured to perform the function of the interface board in the eighth aspect, and further, may also perform the function of the switching network board in the eighth aspect.
- the control module includes a receiver, a processor, a transmitter, a random access memory, a read only memory and a bus. Wherein, the processor is respectively coupled to the receiver, the transmitter, the random access memory and the read only memory through the bus.
- the basic input/output system solidified in the read-only memory or the bootloader in the embedded system is used to boot the system to start, and the control module is guided to enter a normal operation state.
- the application program and the operating system are run in the random access memory, so that the processor performs the function of the main control board in the eighth aspect.
- the apparatus may contain any number of interfaces, processors or memories.
- a computer program product comprising: computer program code, when the computer program code is run on a computer, the computer can execute the first aspect or any one of the first aspects. method of execution.
- a twelfth aspect provides a computer program product, the computer program product comprising: computer program code, when the computer program code is run on a computer, the computer program code enables the computer to execute the second aspect or any one of the possibilities of the second aspect method of execution.
- a computer-readable medium stores program codes, which, when the computer program codes are run on a computer, cause the computer to execute the first aspect or any one of the first aspects. possible methods.
- These computer-readable storages include, but are not limited to, one or more of the following: read-only memory (ROM), programmable ROM (PROM), erasable PROM (erasable PROM, EPROM), Flash memory, electrical EPROM (electrically EPROM, EEPROM) and hard drive (hard drive).
- a computer-readable medium stores program codes, and when the computer program codes are executed on a computer, causes the computer to execute any one of the second aspect or the second aspect above possible methods.
- These computer-readable storages include, but are not limited to, one or more of the following: read-only memory (ROM), programmable ROM (PROM), erasable PROM (erasable PROM, EPROM), Flash memory, electrical EPROM (electrically EPROM, EEPROM) and hard drive (hard drive).
- a fifteenth aspect provides a chip, the chip includes a processor and a data interface, wherein the processor reads an instruction stored in a memory through the data interface to execute the first aspect or any possible implementation of the first aspect method in method.
- the chip can be a central processing unit (CPU), a microcontroller (MCU), a microprocessor (microprocessing unit, MPU), a digital signal processor (digital signal processor) processing, DSP), system on chip (system on chip, SoC), application-specific integrated circuit (application-specific integrated circuit, ASIC), field programmable gate array (field programmable gate array, FPGA) or programmable logic device (programmable logic device) , PLD).
- CPU central processing unit
- MCU microcontroller
- MPU microprocessor
- DSP digital signal processor
- system on chip system on chip
- SoC system on chip
- application-specific integrated circuit application-specific integrated circuit
- FPGA field programmable gate array
- PLD programmable logic device
- a sixteenth aspect provides a chip, which includes a processor and a data interface, wherein the processor reads an instruction stored in a memory through the data interface to execute the second aspect or any possible implementation of the second aspect method in method.
- the chip can be a central processing unit (CPU), a microcontroller (MCU), a microprocessor (microprocessing unit, MPU), a digital signal processor (digital signal processor) processing, DSP), system on chip (system on chip, SoC), application-specific integrated circuit (application-specific integrated circuit, ASIC), field programmable gate array (field programmable gate array, FPGA) or programmable logic device (programmable logic device) , PLD).
- CPU central processing unit
- MCU microcontroller
- MPU microprocessor
- DSP digital signal processor
- system on chip system on chip
- SoC system on chip
- application-specific integrated circuit application-specific integrated circuit
- FPGA field programmable gate array
- PLD programmable logic device
- a seventeenth aspect provides a system, which includes the device for message transmission in the third aspect or any of the possible implementations of the third aspect and/or the fourth aspect or the fourth aspect An apparatus for message transmission in any possible implementation manner of the aspect.
- Figure 1 is a schematic diagram of an application scenario.
- FIG. 2 is a schematic flowchart of a packet transmission method provided by an embodiment of the present application.
- FIG. 3 is a schematic diagram of a single data center multi-tenancy scenario applied to the embodiment.
- FIG. 4 is a schematic flowchart of a method for packet transmission in a single data center scenario provided by an embodiment of the present application.
- FIG. 5 is a schematic diagram of another single data center multi-tenancy scenario applied to the embodiment.
- FIG. 6 is a schematic flowchart of another method for packet transmission in a single data center scenario provided by an embodiment of the present application.
- FIG. 7 is a schematic diagram of a multi-data center multi-tenancy scenario applied to the embodiment.
- FIG. 8 is a schematic flowchart of a method for packet transmission in a multi-data center multi-tenant scenario provided by an embodiment of the present application.
- FIG. 9 is a schematic diagram of a cross-region multi-data center multi-tenancy scenario applied to the embodiment.
- Figure 10 shows one possible scenario in region1.
- FIG. 11 is a schematic flowchart of a method for packet transmission in a cross-region scenario provided by an embodiment of the present application.
- FIG. 12 is a schematic structural diagram of an apparatus 1200 for packet transmission provided by an embodiment of the present application.
- FIG. 13 is a schematic structural diagram of another apparatus 1300 for packet transmission provided by an embodiment of the present application.
- FIG. 14 is a schematic diagram of the hardware structure of another apparatus 2000 for message transmission provided by an embodiment of the present application.
- FIG. 15 is a schematic diagram of the hardware structure of another apparatus 2100 for message transmission provided by an embodiment of the present application.
- FIG. 16 is a schematic diagram of the hardware structure of another apparatus 2200 for message transmission provided by an embodiment of the present application.
- FIG. 17 is a schematic diagram of the hardware structure of another apparatus 2300 for message transmission provided by an embodiment of the present application.
- the network architecture and service scenarios described in the embodiments of the present application are for the purpose of illustrating the technical solutions of the embodiments of the present application more clearly, and do not constitute a limitation on the technical solutions provided by the embodiments of the present application.
- the evolution of the architecture and the emergence of new business scenarios, the technical solutions provided in the embodiments of the present application are also applicable to similar technical problems.
- references in this specification to "one embodiment” or “some embodiments” and the like mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in one or more embodiments of the present application.
- appearances of the phrases “in one embodiment,” “in some embodiments,” “in other embodiments,” “in other embodiments,” etc. in various places in this specification are not necessarily All refer to the same embodiment, but mean “one or more but not all embodiments” unless specifically emphasized otherwise.
- the terms “including”, “including”, “having” and their variants mean “including but not limited to” unless specifically emphasized otherwise.
- At least one means one or more, and “plurality” means two or more.
- And/or which describes the relationship of the associated objects, means that there can be three relationships, for example, A and/or B, which can mean: including the existence of A alone, the existence of A and B at the same time, and the existence of B alone, where A and B can be singular or plural.
- the character “/” generally indicates that the associated objects are an “or” relationship.
- At least one item(s) below” or similar expressions thereof refer to any combination of these items, including any combination of single item(s) or plural items(s).
- At least one (a) of a, b, or c can represent: a, b, c, a-b, a-c, b-c, or a-b-c, where a, b, c may be single or multiple .
- FIG. 1 is a schematic diagram of an application scenario.
- the application scenario may include: multiple user equipments (for example, source user equipment 1, destination user equipment 2, and destination user equipment 3) and an operator network, wherein a network composed of the multiple user equipments It can also be called a user network.
- the above-mentioned user equipment may also be called customer edge equipment (customer edge, CE), which may be a router or a user host.
- customer edge equipment customer edge, CE
- FIG. 1 one source user equipment and two destination user equipments are used as an example for illustration.
- the source user equipment 1 needs to forward the packet to at least two destination user equipments, such as the destination user equipment 2 and the destination user equipment 3, through the operator network.
- the source user equipment 1 sends a multicast packet to the operator network, and the operator network sends the multicast packet to the destination user equipment 2 and the destination user equipment 3 respectively, thereby realizing the IP network of the user.
- Point-to-multipoint data transfer
- the user equipment needs to support the IP multicast message and the corresponding IP multicast protocol, so there will be extra overhead and complexity for the user equipment.
- the embodiments of the present application provide a message transmission method, which can reduce the overhead and complexity of user equipment while supporting point-to-multipoint data transmission in a user IP network.
- the embodiments of the present application do not specifically limit the number of source user equipments and destination user equipments in the above application scenarios, which may include at least one source user equipment and at least two destination user equipments.
- FIG. 2 is a schematic flowchart of a packet transmission method provided by an embodiment of the present application.
- the method provided by the embodiment corresponding to FIG. 2 can be applied to the scenario shown in FIG. 1 .
- the method may include steps 210-230, and the steps 210-230 will be described in detail below respectively.
- Step 210 The first network device receives a first packet sent by the source user equipment, where the first packet includes a first bit string and a destination address DA.
- the first packet sent by the source user equipment to the first network device may be a unicast packet, specifically an IPv6 unicast packet, which is not specifically limited in this application.
- the first message may include a first bit string and a destination address (destination address, DA).
- the first bit string is used to indicate at least one destination user equipment.
- the DA of the first packet is the address of the first network device.
- Step 220 The first network device obtains a second packet according to the first bit string, where the second packet includes first information, where the first information is used to indicate a next-hop device to the at least one destination user equipment.
- the next hop device is the first destination user equipment
- the DA of the second packet is the first destination user equipment.
- the first information includes the address of the first destination user equipment as the DA.
- the next-hop device is a second network device
- the DA of the second packet is the address of the second network device
- the first information includes the second network device serving as the DA the address of.
- the next-hop device is a second network device
- the second packet includes a tunnel header
- the first information is information corresponding to the tunnel included in the tunnel header.
- the second packet includes a tunnel header and the first packet.
- the second packet includes the tunnel header and a third packet
- the third packet is a packet obtained based on the multicast address and the first packet
- the DA of the third packet is the the multicast address
- the second packet includes the tunnel header and a third packet
- the third packet is a packet obtained based on the first packet and the address of the second network device
- the third packet is DA is the address of the second network device.
- Step 230 The first network device sends the second packet to the next-hop device.
- the next-hop device is the first destination user equipment, and the first network device may directly send the second packet to the first destination user equipment.
- the next-hop device is a second network device, and the first network device sends the second packet to the second network device.
- the next-hop device is a second network device, and the first network device may send the second packet to the second network device through a tunnel.
- the tunnel can be a unicast tunnel or a multicast tunnel.
- the unicast tunnel may be, for example, a multi-protocol label switching (multiple protocol label switching, MPLS) tunnel, or an IP tunnel, or an IPv6 tunnel.
- the multicast tunnel may be, for example, a point-to-multipoint (P2MP) tunnel or a multi-point to multi-point (MP2MP) tunnel.
- the user IP network can perform point-to-multipoint data transmission through unicast messages, so that the user equipment does not need to support the processing capability of the multicast message and the corresponding IP multicast protocol, which can reduce the user equipment. overhead and complexity.
- FIG. 3 is a schematic diagram of a single data center multi-tenancy scenario applied to the embodiment.
- this scenario may include: an IP packet replication system (including device R1 ), SW1-SW6, SRC1, SRC2, RCV1, RCV2, RCV3, RCV4, and RCVX.
- the IP packet replication system is a device R1 with IP packet replication capability.
- the device R1 may be composed of dedicated hardware with IP packet replication capability, or may be composed of general-purpose hardware (such as a server (and network card) and a software module with IP packet copying capability, which is not limited in this embodiment of the present application.
- the device R1 may be, for example, a router, a switch, application software on a general-purpose computer, or the like.
- the IP packet replication system may also be a network composed of multiple devices, the network belongs to an operator or a network service provider (service provider, SP), and is one or more users (also referred to as tenants). ) provides point-to-multipoint transmission services for IP packets.
- service provider service provider
- SW1-SW6 are switches, and the switching network formed by them can also be called a Fabric network.
- the Fabric network can provide packet forwarding services for multiple tenants in a data center (DC).
- DC data center
- SRCl, RCV2, RCV3, RCVX and their links belong to the dedicated devices and links of the first user (which may also be referred to as the first tenant) within the DC.
- these devices and links may be leased by the operator to the first user, or these devices and links may be purchased, installed and deployed by the first user.
- the SRC1 of the first user obtains the first packet, sends the first packet to R1 through the Fabric network, and R1 obtains the second packet according to the first packet, and sends the second packet through the Fabric network
- RCV2, RCV3, RCVX SRC2, RCV1, RCV4 and their links belong to the dedicated equipment and links of a second user (which may also be referred to as a second tenant) within the DC.
- these devices and links may be leased by the operator to the second user, or these devices and links may be purchased, installed and deployed by the second user.
- the packet transmission process between SRC2, RCV1, and RCV4 is similar to the process of packet transmission between the devices of the first user. For details, please refer to the above-mentioned packet transmission between devices of the first user, which will not be repeated here. .
- FIG. 4 is a schematic flowchart of a method for packet transmission in a single data center scenario provided by an embodiment of the present application. As shown in FIG. 4, the method may include steps 410-430, and the steps 410-430 will be described in detail below respectively. For the convenience of description, the following description is given by taking the example of packet transmission between devices belonging to the first user (for example, SRC1, RCV2, RCV3, and RCVX in FIG. 3 ).
- Step 410 SRC1 obtains the first packet according to the original user packet, and sends it to the device R1 through the Fabric network.
- the SRC1 can construct the first packet shown below according to the original user packet, and send the first packet to the RCV2, RCV3, and RCVX.
- the message is sent to device R1.
- the first packet sent by the SRC1 to the device R1 may be an IPv6 header and an IPv6 extension header encapsulated in the outer layer of the user packet.
- the source address (source address, SA) of the IPv6 header is the address of SRC1
- the destination address (destination address, DA) is the address IP1 allocated for the first user on the device R1.
- the IPv6 extension header may include BitString, or may also include a BIER header, where the BIER header includes BitString, which is not specifically limited in this embodiment of the present application. Different bits (bits) in the above bit string (BitString) may correspond to RCV2, RCV3, and RCVX.
- bit position corresponding to RCV2, RCV3, and RCVX in the bit string may be set to 1, so as to instruct the device R1 to send the first packet to RCV2, RCV3, and RCVX, respectively.
- Bit-forwarding router identifier BFR ID
- the above BitString can be 0000 1110.
- the above user packet is not a tunnel packet, but an original user packet without a tunnel header.
- the IP header of the user packet is followed by a UDP header, and the payload behind the UDP header is not an IP packet but a payload such as video or audio data.
- Step 420 The device R1 receives the first packet, and determines that the first packet belongs to the first user.
- the device R1 may receive the first packet sent by the SRC1 through the SW1 and SW3 in the Fabric network.
- the device R1 may also determine, according to the first packet, that the packet belongs to the first user.
- the device R1 may determine that the first packet belongs to the first user according to the address of the SRC1 whose SA is the first packet.
- the device R1 may further determine that the first packet belongs to the first user according to the address IP1 assigned to the first user on the device R1 by the DA of the first packet.
- the device R1 may also determine that the first packet belongs to the first user according to a virtual local area network identifier (virtual local area network identifier, VLAN ID) of the received first packet.
- VLAN ID virtual local area network identifier
- the port through which SW1 connects to SRC1 the port through which SW5 connects to RCV2
- the port through which SW6 connects to RCV3 the port through which SW6 connects to RCVX are all configured as virtual network instance (VNI) identifier 10 ( vni10).
- VNI virtual network instance
- the interface of SW3 connecting device R1 is further divided into multiple sub-interfaces distinguished by VLAN, wherein the first sub-interface uses a VLAN ID to distinguish and configure it as a vni10 instance, for example, the VLAN ID of the first sub-interface can be 10.
- the first packet sent by SRC1 is actually first received by SW1, SW1 determines that the packet belongs to the first user, and SW1 uses a virtual extensible local area network (VXLAN) tunnel to transfer the first packet It is encapsulated and sent to SW3, and the vni10 identifier will be carried in the vxlan tunnel.
- VXLAN virtual extensible local area network
- SW3 performs vxlan decapsulation on the first packet, determines that the first packet belongs to the first user according to vni10 in the VXLAN, and sends the first packet to the device R1 on the first sub-interface.
- the first message sent to the device R1 will carry the VLAN ID (10 in this example), and the device R1 determines that the message belongs to the first user according to the interface that received the first message and the VLAN ID in the message.
- Step 430 The device R1 determines the second message according to the forwarding entry corresponding to the first user and the BitString in the first message, and sends the second message to RCV2, RCV3, and RCVX, respectively.
- IP multicast forwarding instance corresponding to multiple tenants can be configured on virtual routing forwarding (VRF) instance 1 (vrf1), Configure the IP multicast forwarding instance corresponding to the second user on VRF instance 2 (vrf2).
- VRF virtual routing forwarding
- the device R1 assigns the IP address corresponding to the vrf1 as IP1, that is, the address IP1 assigned to the first user on the device R1.
- the device R1 assigns the IP address corresponding to vrf2 as IP2, that is, the address IP2 assigned to the second user on the device R1.
- IP2 the address assigned to the second user on the device R1.
- each forwarding table entry corresponding to the second user on the device R1 please refer to the description of each forwarding table item of the first user above, which will not be repeated here.
- the device R1 establishes the BIER forwarding tables of vrf1 and vrf2 for the first user and the second user respectively, and ensures that only the first user can access the address of R1 corresponding to vr1, and only the second user can access the address of vrf2.
- Another method is to establish BIER forwarding tables of sub-domain 1 and sub-domain 2 for the first user and the second user respectively, and configure IP1 and IP2 as service addresses for sub-domain 1 and sub-domain 2 respectively, and IP1 Only the IP address of the first user is allowed to access, and IP2 only allows the IP address of the second user to access, for example, it can be controlled through an access control list (ACL).
- ACL access control list
- the following describes in detail the process of the device R1 determining the second packet belonging to the first user according to the foregoing forwarding entry, and forwarding the second packet.
- the DA in the outer IPv6 header of the packet sent by device R1 to RCV2 is the address of RCV2, and the BitString in the IPv6 extension header is 0000 0010.
- the DA in the outer IPv6 header of the packet sent by device R1 to RCV3 is the address of RCV3, and the BitString in the IPv6 extension header is 0000 0100.
- the DA in the outer IPv6 header sent by the device R1 to RCVX is the address of RCVX, and the BitString in the IPv6 extension header is 0000 1000.
- the checksum field of the UDP header is a checksum value calculated from fields such as the source address, destination address, and Payload of the packet, several specific implementations for determining the checksum value of the UDP header in the second packet are listed below.
- the device R1 when the device R1 changes the destination address of the first packet to obtain the second packet, it will perform an incremental update on the checksum according to the change of the destination address of the second packet and the first packet. Thereby, the checksum value in the second packet is determined. In this way, by incrementally updating the checksum value, it is not necessary to re-read the entire payload to recalculate the checksum, saving computational overhead.
- zero UDP checksum can be configured and enabled on each host of SRC1/RCV2/RCV3/RCVX.
- this embodiment is used on a specific "destination UDP port" to enable "zero UDP check” when the "destination UDP port" is the first preset value.
- the first packet sent by SRC1 to device R1 is filled with a value of 0 in the checksum field of the UDP header.
- RCV2 does not check the checksum field when receiving the first packet.
- device R1 sends the second packet to RCV2, although the second packet is not checked.
- the destination address of the packet is changed compared to the destination address of the first packet, but the checksum value in the second packet remains the same as 0.
- the UDP header described in this embodiment may also be a UDP-Lite header (UDP-Lite header).
- UDP-Lite header UDP-Lite header
- the device R1 sends the second packet to the RCV2
- the device R1 is modifying the first packet.
- the second packet is obtained from fields such as the destination address of the UDP-Lite header, the checksum field in the UDP-Lite header is modified accordingly.
- FIG. 5 is a schematic diagram of another single data center multi-tenancy scenario applied to the embodiment.
- this scenario may include: an IP packet replication system (including device A-device F), SW1-SW6, SRC1, SRC2, RCV1, RCV2, RCV3, RCV4, and RCVX.
- the IP packet replication system is a network composed of multiple devices from device A to device F.
- the network belongs to an operator or a network service provider (NSP) and is one or more users. (also called tenant) provides point-to-multipoint transmission services for IP packets.
- SW1-SW6, SRC1, SRC2, RCV1, RCV2, RCV3, RCV4, and RCVX are the same as the scenario shown in FIG. 3 .
- FIG. 3 please refer to the description in FIG. 3 , which will not be repeated here.
- FIG. 6 is a schematic flowchart of another method for packet transmission in a single data center scenario provided by an embodiment of the present application. As shown in FIG. 6, the method may include steps 610-630, and the steps 610-630 will be described in detail below respectively.
- Step 610 SRC1 obtains the first packet according to the original user packet, and sends it to device A through the fabric network.
- the SRC1 can construct the first packet shown below according to the original user packet, and send the first packet to the RCV2, RCV3, and RCVX.
- the message is sent to device A.
- the SA in the outer IPv6 header of the first packet is the address of the SRC1, and the DA is the address A1 allocated on the device A for the first user.
- Step 620 Device A receives the first packet, and determines the second packet according to the BitString in the first packet.
- device A After device A receives the first message, it can determine that the message belongs to the first user according to the DA in the first message as A1, and then determine that it needs to send to device F and device E according to the BitString in the first message being 0000 1110
- the process of device A sending the second packet to device F and device E can be regarded as a unicast tunnel between device A and device F, and there is another channel between device A and device E.
- a unicast tunnel For convenience of description, the following takes the process of device A sending the second packet to device E through a unicast tunnel as an example for description.
- device A may re-encapsulate the outer layer of the first packet received from SRC1 with a tunnel header to obtain a second packet, where the second packet includes the tunnel header and the first packet.
- the tunnel header may be, for example, a multiple protocol label switching (multiple protocol label switching, MPLS) tunnel header, an IP tunnel header, or an IPv6 tunnel header.
- the source address of the IP tunnel header in the second packet is the address of device A
- the destination address of the IP tunnel header is the address E1 of device E.
- device A will encapsulate a tunnel header on the outer layer of the received first packet to obtain a second packet.
- the second packet includes the tunnel header and the third packet.
- the third packet is based on the device.
- the address E1 of E and the packet obtained by the first packet, the destination address of the third packet is the address E1 of the device E.
- the destination address of the tunnel header is also an address of E, for example, E1.
- the process of device A sending the second packet to device F and device E can be regarded as the process of device A passing through a multicast tunnel (for example, point-to-multipoint (P2MP) tunnel or MP2MP tunnel) are sent to device F and device E, respectively.
- a multicast tunnel for example, point-to-multipoint (P2MP) tunnel or MP2MP tunnel
- device A adds a multicast tunnel header to the received first packet to obtain a second packet.
- the second packet includes the tunnel header and the third packet.
- the third packet is based on the multicast address and all The message obtained by describing the first message.
- the destination address of the third packet is a multicast group address MC-Grp-1, and the multicast group address MC-Grp-1 can be used to send the second packet to the device E and the device E respectively through the multicast tunnel.
- Step 630 Device E and Device F respectively send the second packet to RCV2, RCV3, and RCVX through the Fabric network.
- the following describes a specific implementation process for the device E to send packets to RCV2, RCV3, and RCVX respectively through the Fabric network by taking the device E receiving the second packet sent by the device A through the unicast tunnel as an example.
- Device E may also determine that it needs to send packets to RCV2, RCV3, and RCVX according to the BitString in the IPv6 extension header of the first packet being 0000 1110.
- the DA in the outer IPv6 header is the address of RCV2
- the BitString in the IPv6 extension header is 0000 0010.
- the DA in the outer IPv6 header is the address of RCV3, and the IPv6 extension The BitString in the header is 0000 0100.
- the DA in the outer IPv6 header is the address of RCVX
- the BitString in the IPv6 extension header is 0000 1000.
- the device E can also recalculate and change the checksums in the packets sent to RCV2, RCV3, and RCVX respectively.
- the checksum of the UDP header is not changed.
- device F does not check the checksum of the UDP header when receiving the packet.
- the checksum is recalculated and changed, so that the checksum received on RCV2/RCV3/RCVX is correct.
- FIG. 7 is a schematic diagram of a multi-data center multi-tenancy scenario applied to the embodiment.
- a region as shown in Figure 7 may include multiple data centers or availability zones (AZs).
- AZs data centers or availability zones
- Fabric1 is located in the first data center or AZ
- Fabric2 is located in the second AZ
- Fabric is located in the third AZ.
- R1/R2/R3 are the replication routers of AZ1, AZ2, and AZ3, respectively.
- the first users include J1/J2/J3 located in AZ1, J4/J5/J6 located in AZ2, and J7/J8 located in AZ3.
- the second users include H1/H2/H3 at AZ1, H4/H5/H6 at AZ2, and H7/H8 at AZ3.
- FIG. 8 is a schematic flowchart of a method for packet transmission in a multi-data center multi-tenant scenario provided by an embodiment of the present application.
- the method may include steps 810-820, and the steps 810-820 will be described in detail below respectively.
- the following description is given by taking the example that J1 of the first user needs to send messages to J2/J3/J4/J5/J6/J7/J8 respectively.
- Step 810 J1 obtains the first packet according to the original user packet, and sends it to R1 through the Fabric1 network.
- DA is the address IP1 allocated for the first user on R1.
- J1 can send the above-mentioned first packet to R1 through the Fabric1 network according to DA as IP1.
- Step 820 R1 determines the second packet according to the forwarding entry corresponding to the first user and the BitString in the first packet, and forwards the second packet.
- IP multicast forwarding instances corresponding to multiple tenants can be configured on R1.
- the IP multicast forwarding instance corresponding to the first user can be configured on VRF instance 1 (vrf1)
- the IP multicast forwarding instance corresponding to the second user can be configured on the VRF instance 1 (vrf1).
- the forwarding instance is configured on VRF instance 2 (vrf2). The details are shown in Table 2 below.
- R1 After receiving the first packet sent by J1 through the Fabric1 network, R1 can determine that the first packet belongs to the first user, determine the second packet according to the forwarding table corresponding to vrf1, and forward the second packet.
- the specific forwarding process is described in detail below.
- the rightmost bit in the message may be referred to as bit 1 herein, and bits 2, 3, 4, 5, 6, 7, and 8 are sequentially from right to left.
- the BitString in the message sent by J1 to J2/J3 is the result of an AND operation between the BitString in the first message and the FBM in the forwarding entry.
- the BitString in the first message received by J1 is 1111 1110
- the FBM in the forwarding entry is 0000 0010
- the result of the AND operation is 0000 0010. Therefore, J1 sends it to J2
- the BitString of the message is 0000 0010.
- the DA in the outer IPv6 header of the packet is the address IP12 of R2, and the BitString in the IPv6 extension header is 0011 1000.
- FIG. 9 is a schematic diagram of a cross-region multi-data center multi-tenancy scenario applied to the embodiment.
- the scene may include multiple regions, for example, seven regions, namely region1, region2, region3, region4, region5, region6, and region7.
- Each region has a region router (region router, RR1), and RR1-RR7 shown in Figure 9 represent region1-region7, respectively.
- RR1-RR7 may be a network of a cloud provider (cloud provider), and the network of a cloud provider may also be referred to as a (cloud) service provider.
- region1 includes hosts J1-J8 of the first user and hosts H1-H8 of the second user.
- region2 includes hosts J9-J13 of the first user and hosts H9-H11 of the second user.
- region3 includes hosts J14-J16 of the first user and hosts H12-H16 of the second user.
- region4 The host including the first user is empty and the hosts H17-H18 of the second user.
- region5 includes the hosts J20-J24 of the first user, and the host of the second user is empty.
- region6 includes hosts J25-J32 of the first user and hosts H21-H24 of the second user.
- region7 The host including the first user is empty, and the hosts of the second user are H25-H32.
- FIG. 10 shows one possible scenario in region1.
- a region can include multiple AZs.
- region1 may include AZ1, AZ2, and AZ3, wherein AZ1 includes H1-3, J1-3, Fabric1, and R1, AZ2 includes H4-6, J4-6, Fabric2, and R2, and AZ3 includes H7- 8. J7-8, Fabric3, R3.
- Region1 also includes an area router RR1 and Fabric0. RR1 is connected to each node in the area through Fabric0 and the fabrics of each AZ.
- FIG. 11 is a schematic flowchart of a method for packet transmission in a cross-region scenario provided by an embodiment of the present application. As shown in FIG. 11 , the method may include steps 1110-1170, and the steps 1110-1170 will be described in detail below respectively.
- Step 1110 J1 in region 1 obtains the first message according to the original user message, and sends the first message to RR1 in region 1.
- the BFR-ids assigned by the first user to hosts J1-J8, J9-J13, J14-J16, J20-24, and J25-32 are 1-8, 9-13, 14-16, 20-24, 25- 32.
- the first user J1 in region 1 needs to send a message to each host in region2, region3, region5, and region6 (for example, J9-J13, J14-J16, J20-J24, J25-J32), and J1 can report to the original user.
- the SA in the IPv6 header is the address of J1
- the DA is the address RR1_1 allocated for the first user on RR1.
- the bits whose value is 1 in the BitString from right to left in the IPv6 extension header include: bit 9-16 (representing J9-J16), 20-32 (representing J20-J32).
- J1 may send the first packet to RR1 according to the address RR1_1 allocated by DA for the first user on RR1.
- Step 1120 RR1 encapsulates the first packet according to the BitString of the first packet to obtain a second packet, and sends the second packet to RR2 according to the BIER forwarding table of RR1.
- RR1 may determine that the first packet belongs to the first user. Specifically, as an example, on RR1, it is also necessary to allocate different IP multicast replication service addresses for the first user and the second user.
- RR1_1 and RR1_2 are used to indicate that the first user and the second user are on RR1 respectively.
- RR1 can determine that the packet belongs to the first user. For example, configure vrf1 for the first user on RR1, and bind the address of RR1_1 to vrf1.
- RR1 also binds the vrf1 corresponding to the first user through the sub-interface of VLAN ID 10.
- the sub-interface of VLAN ID 10 is connected to Fabric0.
- the router device on Fabric0 binds the sub-interface of VLAN ID 10 to VNI 10.
- VNI 10 identifies the first user.
- the RR1_1 address on RR1 can only be accessed through VLAN ID 10 and VNI 10.
- RR1 can determine the first address according to the destination address of the received packet is RR1_1, or the interface receiving the packet is a sub-interface of VLAN ID 10.
- the packet belongs to the first user.
- BFR IDs are allocated to RR1 to RR7.
- the allocation space of this BFR ID is different from that of the first user, but is allocated by the service provider itself.
- RR1 can determine the regions where the RRs where the message is to be sent according to the BitString in the first message, and determine the BitString encapsulating the second message, where the BitString is the service provider's own BitString.
- the service provider in order to determine which RRs the message is to be sent to according to the BitString in the first user's message, the service provider will also establish the first user's Bit and the service provider's own Bit The corresponding relationship of the bits, so that after receiving the first user's message, the service provider's own BitString can be determined according to the BitString in the message. The details are shown in Table 3 below.
- Bitmask for the first user Service provider's BFR-id 0000 0000,0000 0000,0000 0000,1111 1111(bit 1-8) 1 0000 0000,0000 0000,0001 1111,0000 0000(bit 9-13) 2 0000 0000,0000 0000,1110 0000,0000 0000(bit 14-16) 3 0000 0000,1111 1000,0000 0000,0000 0000(bit 20-24) 5 1111 1111,0000 0000,0000 0000,0000 0000(bit 25-32) 6
- the first bit in the BitString of the service provider will be set to 1, and the same for other rows.
- the BitString of the first packet received by RR1 1111 1111, 1111 1000, 1111 1111, 0000 0000, and the bits whose value is 1 in the bits from right to left include: bits 9-16 (representing J9 -J16), 20-32 (representing J20-J32). Therefore, according to Table 3, RR1 can determine that the service provider's own BitString is 0011 0110 (that is, its own BFR ID 2/3/5/6 position 1).
- the service provider can also establish its own BIER forwarding table, as shown in Table 4 below.
- each RR node will take the BitString in the message and the FBM in each entry for AND operation for the received message.
- the result of the AND operation is a non-zero value, it indicates that the entry needs to be processed.
- a BIER forwarding table corresponding to the first user vrf1 is also generated on RR1/RR2/RR3/RR5/RR6, as shown in Table 5 below.
- the SA of the IPv6 header 2 is the address RR1_1 allocated for the first user on RR1, and the address of the DA is 0, which needs to be further determined according to the next hop node determined by the BitString in the IPv6 extension header 2.
- RR1 converts the BitString in IPv6 extension header 2 and each forwarding table corresponding to RR1 in the BIER forwarding table according to the BitString in IPv6 extension header 2 and the BIER forwarding table of RR1 (Table 4) in the obtained packet.
- the FBM of the entry performs an AND operation to determine whether to send (or decapsulate and send) the message to the forwarding table.
- UDP User message
- Video Payload Video Payload
- the destination address of the IPv6 header of the packet sent by RR1 to RR2 can also be changed to the multicast group address Mcast-Grp-1.
- the second packet sent by RR1 to RR2 is as follows:
- UDP User message
- Video Payload Video Payload
- the ingress RR router (for example, RR1) can also be configured Generate a static mapping relationship between the first user and BitString.
- the packet of a certain user of the first user only reaches a part of the area, the packet will be sent to all the area routers of the first user, and then the packet will be discarded on the area router.
- RR2 receives the above message, according to the BitString in IPv6 extension header 2 and the BIER forwarding table of RR2, if any one or more bits 1bit in Bits 9-13 in the message, the message will be sent to the corresponding For the host, if there is no bit with a value of 1 in bits 9-13 in the packet, the packet will be discarded on RR2.
- this method may lead to waste of link bandwidth, it is relatively simple for RR1 to implement.
- the first user and the second user do not need to configure BFR IDs for the RR routers in each area, and only the service provider needs to configure the RR in each area.
- the BFR ID of the router is sufficient.
- Step 1130 RR2 receives the second message sent by RR1, and sends messages to J9-J13 and RR3 in region2 according to the BIER forwarding table of RR2.
- the destination address of the IPv6 header in the second packet received by RR2 and sent by RR1 may also be the multicast group address Mcast-Grp-1, and the DA of the above IPv6 header is RR1_1 is just an example.
- the first message is sent to J9, J10, J11, J12, and J13 respectively.
- the destination addresses of packets sent to J9, J10, J11, J12, and J13 are J9, J10, J11, J12, and J13 are J9, J10, J11, J
- UDP User message
- Video Payload User message
- RR2 After RR2 receives the second packet sent by RR1, it can set the 3rd, 5th, and 6th bits from right to left in BitString (0011 0110) in IPv6 extension header 2 to 1 and RR2 in Table 4
- the destination address of the IPv6 header may also be the multicast group address Mcast-Grp-1, and the destination address of the foregoing IPv6 header is RR1_1 is just an example.
- Step 1140 RR3 receives the message sent by RR2, and respectively sends the message to J14-J16 and RR4 in region3 according to the BIER forwarding of RR3.
- RR3 determines that the packet belongs to the first user (ie vrf1), and forwards the packet according to the BIER forwarding table corresponding to the first user vrf1 generated on RR3 in Table 5.
- the destination address of the IPv6 header received by RR3 in the packet sent by RR2 may also be the multicast group address Mcast-Grp-1.
- the DA of the above IPv6 header is RR1_1 is just an example.
- the destination addresses of packets sent to J14, J15, and J16 are J14, J15, and J16, respectively.
- UDP User Payload
- RR3 After RR3 receives the message sent by RR1, it can set the 5th and 6th bits from right to left in BitString (0011 0100) in IPv6 extension header 2 to 1 and the BIER forwarding table of RR3 in Table 4.
- the destination address of the IPv6 header in the packet sent by RR3 to RR4 may also be the multicast group address Mcast-Grp-1.
- the above-mentioned DA of the IPv6 header is RR1_1 is just an example.
- Step 1150 RR4 receives the message sent by RR3, and respectively sends the message to RR5 and RR6 according to the BIER forwarding table of RR4.
- RR4 after RR4 receives the message sent by RR3, it can set the 5th and 6th bits from right to left in BitString (0011 0000) in IPv6 extension header 2 to 1 and the BIER forwarding table of RR4 in Table 4.
- IPv6 extension header 1111 1111, 1111 1000, 1111 1111, 0000 0000
- user message UDP, Video Payload
- the destination address of the IPv6 header in the packet sent by RR4 to RR5 may also be the multicast group address Mcast-Grp-1, and the DA of the above IPv6 header is RR1_1 is just an example.
- Step 1160 RR5 receives the message sent by RR4, and respectively sends the message to J20-J24 in region5 according to the BIER forwarding table of RR5.
- the destination addresses of packets sent to J20, J21, J22, J23, and J24 are J20, J21, J22, J23, and J24 respectively.
- checksum of the user packet UDP in the packets sent to J20/J21/J22/J23/J24 can be updated accordingly.
- update method please refer to the specific implementation manner of determining the checksum value of the second packet above, which will not be repeated here.
- Step 1170 RR6 receives the message sent by RR4, and respectively sends the message to J25-J32 in region6 according to the BIER forwarding table of RR6.
- RR6 determines that the packet belongs to the first user (ie vrf1), and forwards the packet according to the BIER forwarding table corresponding to the first user vrf1 generated on RR6 in Table 5.
- the destination address of the IPv6 header in the packet sent by RR4 to RR6 may also be the multicast group address Mcast-Grp-1.
- the above-mentioned DA of the IPv6 header is RR1_1 is just an example.
- UDP checksum of user packets in packets sent to J25/J26/J27/J28/J29/J30/J31/J32 can be updated accordingly.
- update method please refer to the specific implementation manner of determining the checksum value of the second packet above, which will not be repeated here.
- the size of the sequence numbers of the above-mentioned processes does not mean the sequence of execution, and the execution sequence of each process should be determined by its functions and internal logic, rather than the implementation process of the embodiments of the present application. constitute any limitation.
- FIG. 12 is a schematic structural diagram of an apparatus 1200 for packet transmission provided by an embodiment of the present application, where the apparatus 1200 is provided in a first network device.
- the apparatus 1200 for message transmission shown in FIG. 12 may perform the corresponding steps of the message transmission method of the foregoing embodiment.
- the apparatus 1200 includes: a receiving module 1210 , a processing module 1220 and a sending module 1230 .
- the receiving module 1210 is configured to receive a first packet sent by the source user equipment, where the first packet includes a first bit string and a destination address DA, where the first bit string is used to indicate at least one destination user equipment, the first packet DA is the address of the first network device.
- the processing module 1220 is configured to obtain a second packet according to the first bit string, where the second packet includes first information, where the first information is used to indicate a next-hop device to the at least one destination user equipment.
- the sending module 1230 is configured to send the second packet to the next-hop device.
- next-hop device is the first destination user equipment
- sending module 1230 is specifically configured to: send the second packet to the first destination user equipment, where the first information includes the first destination as the DA The address of the user device.
- next-hop device is a second network device
- the sending module 1230 is specifically configured to: send the second packet to the second network device, and the first information includes the information of the second network device serving as the DA. address.
- the next-hop device is a second network device
- the sending module 1230 is specifically configured to: send the second packet to the second network device through a tunnel, where the second packet includes a tunnel header, and the first The information is information corresponding to the tunnel included in the tunnel header.
- the second packet includes the tunnel header and the first packet.
- the second packet includes the tunnel header and a third packet
- the third packet is a packet obtained based on the multicast address and the first packet
- the DA of the third packet is the group or the second packet includes the tunnel header and a third packet
- the third packet is a packet obtained based on the first packet and the address of the second network device
- the third packet is DA is the address of the second network device.
- the first network device is located in a first region region
- the second network device is located in a second region
- the first information includes a second bit string, where the second bit string is used to indicate the second network device.
- the processing module 1220 is further configured to: obtain the second bit string according to a corresponding relationship and the first bit string, where the corresponding relationship includes bits in the first bit string corresponding to the at least one destination user equipment and the bit corresponding to the second network device in the second bit string; the second packet is obtained according to the second bit string.
- the first network device is located in a first data center, and the second network device is located in a second data center; or the first network device is located in a first region, and the second network device is located in a second region.
- the first packet further includes a first checksum
- the second packet further includes a second checksum
- the second checksum is based on the first checksum, the DA of the first packet, and the first checksum. Checksum of information obtained.
- the source user equipment and the at least one destination user equipment belong to the same user.
- the first message is an Internet Protocol Version 6 IPv6 unicast message
- the IPv6 unicast message includes an IPv6 extension header
- the first bit string is located in the IPv6 extension header.
- FIG. 13 is a schematic structural diagram of an apparatus 1300 for packet transmission provided by an embodiment of the present application, where the apparatus 1300 is provided in a second device.
- the apparatus 1300 for message transmission shown in FIG. 13 may perform the corresponding steps in the message transmission method of the foregoing embodiment.
- the apparatus 1300 includes: a receiving module 1310, configured to receive a second packet sent by the first device, where the second packet includes first information, and the first information is used to indicate that the first device has arrived at least The next hop device of a destination user equipment.
- the second device is a first destination user equipment
- the first device is a first network device
- the first information includes an address of the first destination user equipment as the destination address DA.
- the second device is a second network device
- the first device is a first network device
- the first device is the first network device
- the first information includes the address of the second network device serving as the DA .
- the second device is a second network device
- the first device is a first network device
- the receiving module 1310 is specifically configured to: the second network device receives the second network device sent by the first network device through a tunnel packet, the second packet includes a tunnel header, and the first information is information corresponding to the tunnel included in the tunnel header.
- the second packet includes the tunnel header and a first packet
- the first packet includes a first bit string
- the first bit string is used to indicate the at least one destination user equipment.
- the second packet includes the tunnel header and a third packet
- the third packet is a packet obtained based on the multicast address and the first packet
- the DA of the third packet is the multicast address
- the first packet includes a first bit string
- the first bit string is used to indicate the at least one destination user equipment
- the second packet includes the tunnel header and a third packet
- the third packet is A packet obtained based on the first packet and the address of the second network device
- the DA of the third packet is the address of the second network device
- the first packet includes a first bit string
- the first bit A string is used to indicate the at least one destination user equipment.
- the first network device is located in a first region region
- the second network device is located in a second region
- the first information includes a second bit string, where the second bit string is used to indicate the second network device.
- the second packet further includes a user packet and a first bit string, where the first bit string is used to indicate the at least one destination user equipment
- the apparatus 1300 further includes: a processing module 1320, a sending module 1330,
- a processing module 1320 configured to obtain the user message based on the second message
- the sending module 1330 is configured to send the user message to the first destination user equipment according to the first bit string and the first information included in the second message.
- the second packet further includes a user packet
- the processing module 1320 is configured to decapsulate the second packet to obtain the user packet
- the sending module 1330 is configured to obtain the user packet according to the second packet.
- the first bit string and the first information send the user message to the first destination user equipment.
- the first network device is located in a first data center, and the second network device is located in a second data center; or the first network device is located in a first region, and the second network device is located in a second region.
- the second packet further includes a second checksum, where the second checksum is a checksum obtained based on the first checksum included in the first packet, the DA of the first packet, and the first information.
- the second checksum is a checksum obtained based on the first checksum included in the first packet, the DA of the first packet, and the first information.
- FIG. 14 is a schematic diagram of a hardware structure of an apparatus 2000 for message transmission according to an embodiment of the present application, where the apparatus 2000 is set on a first network device.
- the apparatus 2000 for message transmission shown in FIG. 14 may execute the message transmission method of the foregoing embodiment.
- the apparatus 2000 includes a processor 2001 , a memory 2002 , an interface 2003 and a bus 2004 .
- the interface 2003 may be implemented in a wireless or wired manner, and may specifically be a network card.
- the above-mentioned processor 2001 , memory 2002 and interface 2003 are connected through a bus 2004 .
- the interface 2003 may specifically include a transmitter and a receiver, which are used by the first network device to implement the above-mentioned transceiving.
- the processor 2001 is configured to execute the processing performed by the first network device in the foregoing embodiment.
- the memory 2002 includes an operating system 20021 and an application program 20022 for storing programs, codes or instructions. When the processor or hardware device executes these programs, codes or instructions, the processing process involving BFIR in the method embodiment can be completed.
- the memory 2002 may include read-only memory (ROM) and random access memory (RAM).
- ROM read-only memory
- RAM random access memory
- the ROM includes a basic input/output system (basic input/output system, BIOS) or an embedded system
- the RAM includes an application program and an operating system.
- Figure 14 only shows a simplified design of the apparatus 2000 for message transmission. In practical applications, the apparatus may contain any number of interfaces, processors or memories.
- FIG. 15 is a schematic diagram of the hardware structure of another apparatus 2100 for message transmission according to an embodiment of the present application, and the apparatus 2100 is set in the first network device.
- the apparatus 2100 for message transmission shown in FIG. 15 may execute the message transmission method of the foregoing embodiment.
- the apparatus 2100 includes: a main control board 2110 , an interface board 2130 , a switching network board 2120 and an interface board 2140 .
- the main control board 2110, the interface boards 2130 and 2140, and the switching network board 2120 are connected to the system backplane through the system bus to realize intercommunication.
- the main control board 2110 is used to complete functions such as system management, equipment maintenance, and protocol processing.
- the switch fabric board 2120 is used to complete data exchange between interface boards (interface boards are also called line cards or service boards).
- the interface boards 2130 and 2140 are used to provide various service interfaces (eg, POS interface, GE interface, ATM interface, etc.), and realize data packet forwarding.
- the interface board 2130 may include a central processing unit 2131 , a forwarding table entry memory 2134 , a physical interface card 2133 and a network processor 2132 .
- the central processing unit 2131 is used to control and manage the interface board and communicate with the central processing unit on the main control board.
- the forwarding table entry memory 2134 is used for storing table entries, for example, the forwarding table entry above.
- the physical interface card 2133 is used to receive and transmit traffic.
- the operations on the interface board 2140 in the embodiment of the present application are consistent with the operations on the interface board 2130, and are not repeated for brevity.
- the apparatus 2100 for message transmission in this embodiment may correspond to the functions and/or various steps performed by the foregoing method embodiments, and details are not described herein again.
- main control boards there may be one or more main control boards, and when there are multiple main control boards, they may include an active main control board and a backup main control board.
- interface boards There may be one or more interface boards. The stronger the data processing capability of BFIR, the more interface boards are provided. There can also be one or more physical interface cards on the interface board. There may be no switch fabric boards, or there may be one or more boards. When there are multiple boards, load sharing and redundancy backup can be implemented together. Under the centralized forwarding architecture, the first network device may not need to switch the network board, and the interface board undertakes the processing function of the service data of the entire system.
- the first network device may have at least one switching network board, and the switching network board realizes data exchange among multiple interface boards, and provides large-capacity data exchange and processing capabilities. Therefore, the data access and processing capabilities of the first network device in the distributed architecture are greater than those in the centralized architecture.
- the specific architecture used depends on the specific networking deployment scenario, and there is no restriction here.
- FIG. 16 is a schematic diagram of a hardware structure of an apparatus 2200 for message transmission according to an embodiment of the present application, where the apparatus 2200 is provided in a second device.
- the apparatus 2200 for message transmission shown in FIG. 16 may perform the corresponding steps performed by the second device in the methods of the foregoing embodiments.
- the apparatus 2200 includes a processor 2201 , a memory 2202 , an interface 2203 and a bus 2204 .
- the interface 2203 may be implemented in a wireless or wired manner, and may specifically be a network card.
- the above-mentioned processor 2201 , memory 2202 and interface 2203 are connected through a bus 2204 .
- the interface 2203 may specifically include a transmitter and a receiver, which are used by the second device to implement the above-mentioned transceiving.
- the processor 2201 is configured to execute the processing performed by the second device in the foregoing embodiment.
- the memory 2202 includes an operating system 22021 and an application program 22022 for storing programs, codes or instructions. When the processor or hardware device executes these programs, codes or instructions, the processing process involving the second device in the method embodiment can be completed.
- the memory 2202 may include read-only memory (ROM) and random access memory (RAM).
- the ROM includes a basic input/output system (basic input/output system, BIOS) or an embedded system
- the RAM includes an application program and an operating system.
- FIG. 16 only shows a simplified design of the apparatus 2200 for message transmission. In practical applications, the apparatus may contain any number of interfaces, processors or memories.
- FIG. 17 is a schematic diagram of the hardware structure of another apparatus 2300 for message transmission according to an embodiment of the present application, and the apparatus 2300 is provided in the second device.
- the apparatus 2300 for message transmission shown in FIG. 17 may perform the corresponding steps performed by the second device in the methods of the foregoing embodiments.
- the device 2300 includes: a main control board 2310 , an interface board 2330 , a switching network board 2320 and an interface board 2340 .
- the main control board 2310, the interface boards 2330 and 2340, and the switching network board 2320 are connected to the system backplane through the system bus to realize intercommunication.
- the main control board 2310 is used to complete functions such as system management, equipment maintenance, and protocol processing.
- the switch fabric board 2320 is used to complete data exchange between interface boards (interface boards are also called line cards or service boards).
- the interface boards 2330 and 2340 are used to provide various service interfaces (eg, POS interface, GE interface, ATM interface, etc.), and realize data packet forwarding.
- the interface board 2330 may include a central processing unit 2331 , a forwarding table entry memory 2334 , a physical interface card 2333 and a network processor 2332 .
- the central processing unit 2331 is used to control and manage the interface board and communicate with the central processing unit on the main control board.
- the forwarding table entry storage 2334 is used for storing table entries, for example, the forwarding table entry above.
- the physical interface card 2133 is used to receive and transmit traffic.
- the operations on the interface board 2340 in the embodiment of the present application are the same as the operations on the interface board 2330, and are not repeated for brevity.
- the apparatus 2300 for message transmission in this embodiment may correspond to the functions and/or various steps performed by the foregoing method embodiments, and details are not described herein again.
- Embodiments of the present application further provide a computer-readable medium, where program codes are stored in the computer-readable medium, and when the computer program codes are run on a computer, the computer executes the method performed by the first network device.
- These computer-readable storages include, but are not limited to, one or more of the following: read-only memory (ROM), programmable ROM (PROM), erasable PROM (erasable PROM, EPROM), Flash memory, electrical EPROM (electrically EPROM, EEPROM) and hard drive (hard drive).
- Embodiments of the present application also provide a computer-readable medium, where program codes are stored in the computer-readable medium, and when the computer program codes are run on a computer, the computer executes the method performed by the second device.
- These computer-readable storages include, but are not limited to, one or more of the following: read-only memory (ROM), programmable ROM (PROM), erasable PROM (erasable PROM, EPROM), Flash memory, electrical EPROM (electrically EPROM, EEPROM) and hard drive (hard drive).
- the embodiment of the present application also provides a chip, which is applied in the first network device, the chip includes: at least one processor, at least one memory, and an interface circuit, where the interface circuit is responsible for information interaction between the chip and the outside world, so The at least one memory, the interface circuit, and the at least one processor are interconnected by lines, and instructions are stored in the at least one memory; the instructions are executed by the at least one processor to perform the above-mentioned aspects.
- the method described in the operation of the first network device includes: at least one processor, at least one memory, and an interface circuit, where the interface circuit is responsible for information interaction between the chip and the outside world, so
- the at least one memory, the interface circuit, and the at least one processor are interconnected by lines, and instructions are stored in the at least one memory; the instructions are executed by the at least one processor to perform the above-mentioned aspects.
- the chip can be a central processing unit (CPU), a microcontroller (MCU), a microprocessor (microprocessing unit, MPU), a digital signal processor (digital signal processor) processing, DSP), system on chip (system on chip, SoC), application-specific integrated circuit (application-specific integrated circuit, ASIC), field programmable gate array (field programmable gate array, FPGA) or programmable logic device (programmable logic device) , PLD).
- CPU central processing unit
- MCU microcontroller
- MPU microprocessor
- DSP digital signal processor
- SoC system on chip
- ASIC application-specific integrated circuit
- FPGA field programmable gate array
- PLD programmable logic device
- An embodiment of the present application also provides a chip, which is applied in a second device, the chip includes: at least one processor, at least one memory, and an interface circuit, where the interface circuit is responsible for information interaction between the chip and the outside world, the At least one memory, the interface circuit and the at least one processor are interconnected by wires, and instructions are stored in the at least one memory; the instructions are executed by the at least one processor to perform the above-mentioned aspects. Methods of operation of the second device.
- the chip can be a central processing unit (CPU), a microcontroller (MCU), a microprocessor (microprocessing unit, MPU), a digital signal processor (digital signal processor) processing, DSP), system on chip (system on chip, SoC), application-specific integrated circuit (application-specific integrated circuit, ASIC), field programmable gate array (field programmable gate array, FPGA) or programmable logic device (programmable logic device) , PLD).
- CPU central processing unit
- MCU microcontroller
- MPU microprocessor
- DSP digital signal processor
- SoC system on chip
- ASIC application-specific integrated circuit
- FPGA field programmable gate array
- PLD programmable logic device
- Embodiments of the present application further provide a computer program product, which is applied to a first network device, where the computer program product includes a series of instructions, when the instructions are executed, to perform the methods described in the above aspects. Operation of the first network device.
- Embodiments of the present application further provide a computer program product, which is applied to a second device, and the computer program product includes a series of instructions, when the instructions are executed, to perform the methods described in the above aspects. operation of the second device.
- An embodiment of the present application further provides a system, including: the above-mentioned first network device and a second device.
- the disclosed system, apparatus and method may be implemented in other manners.
- the apparatus embodiments described above are only illustrative.
- the division of the units is only a logical function division. In actual implementation, there may be other division methods.
- multiple units or components may be combined or Can be integrated into another system, or some features can be ignored, or not implemented.
- the shown or discussed mutual coupling or direct coupling or communication connection may be through some interfaces, indirect coupling or communication connection of devices or units, and may be in electrical, mechanical or other forms.
- the units described as separate components may or may not be physically separated, and components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution in this embodiment.
- each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit.
- the functions, if implemented in the form of software functional units and sold or used as independent products, may be stored in a computer-readable storage medium.
- the technical solution of the present application can be embodied in the form of a software product in essence, or the part that contributes to the prior art or the part of the technical solution.
- the computer software product is stored in a storage medium, including Several instructions are used to cause a computer device (which may be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of the present application.
- the aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), magnetic disk or optical disk and other media that can store program codes .
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种报文传输方法及装置,该方法包括:第一网络设备接收源用户设备发送的第一报文,该第一报文包括第一比特串和目的地址DA,该第一比特串用于指示至少一个目的用户设备,该第一报文的DA为所述第一网络设备的地址;该第一网络设备根据该第一比特串获取第二报文,该第二报文包括第一信息,该第一信息用于指示到达至少一个目的用户设备的下一跳设备;该第一网络设备向该下一跳设备发送该第二报文。本申请提供的技术方案能够在支持用户IP网络中点到多点的数据传送的同时,还可以降低用户设备的开销和复杂性。
Description
本申请要求于2021年02月10日提交中国国家知识产权局、申请号为202110184047.8、发明名称为“一种报文转发方法及装置”的中国专利申请以及2021年04月29日提交中国国家知识产权局、申请号为202110474671.1、发明名称为“报文传输方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及网络通信领域,并且更具体地,涉及一种报文传输方法及装置。
互联网协议(internet protocol,IP)网络中点到多点的数据传输方式能够有效地节约网络带宽、降低网络负载,因此,在实时数据传送、多媒体会议、数据拷贝、交互式网络电视(internet protocol television,IPTV)、游戏和仿真等诸多方面都有广泛的应用。目前用户网络中通过组播报文实现点到多点的数据传输,源用户设备通过使用一个组播地址将数据发往多个接收者(多个目的用户设备)。由于用户网络中的设备(例如,源用户设备、多个目的用户设备)需要能够进行组播报文的处理,以及支持相应的IP组播协议,因此,该技术方案中用户设备会存在额外的开销,实现的复杂度也较高。因此,如何在支持用户IP网络中点到多点的数据传送的同时,还可以降低用户设备的开销和复杂性成为亟需要解决的问题。
发明内容
本申请提供一种报文传输方法及装置,能够在支持用户IP网络中点到多点的数据传送的同时,还可以降低用户设备的开销和复杂性。
第一方面,提供了一种报文传输方法,该方法包括:第一网络设备接收源用户设备发送的第一报文,该第一报文包括第一比特串和目的地址DA,该第一比特串用于指示至少一个目的用户设备,该第一报文的DA为该第一网络设备的地址;该第一网络设备根据该第一比特串获取第二报文,该第二报文包括第一信息,该第一信息用于指示到达该至少一个目的用户设备的下一跳设备;该第一网络设备向该下一跳设备发送该第二报文。
上述技术方案中,用户IP网络中可以通过单播报文进行点到多点的数据传送,这样,用户设备不需要支持组播报文的处理能力以及相应的IP组播协议,可以降低用户设备的开销和复杂性。
结合第一方面,在第一方面的某些实现方式中,该第一报文为单播报文或互联网协议第6版(internet protocol version 6,IPv6)单播报文。
结合第一方面,在第一方面的某些实现方式中,该下一跳设备为第一目的用户设备,该第一网络设备向该第一目的用户设备发送该第二报文,该第一信息包括作为DA的该第 一目的用户设备的地址。
结合第一方面,在第一方面的某些实现方式中,该下一跳设备为第二网络设备,该第一网络设备向该第二网络设备发送该第二报文,该第一信息包括作为DA的该述第二网络设备的地址。
结合第一方面,在第一方面的某些实现方式中,该第一网络设备通过隧道向该第二网络设备发送该第二报文,该第二报文包括隧道头,该第一信息为该隧道头包括的与该隧道对应的信息。
结合第一方面,在第一方面的某些实现方式中,该第二报文包括该隧道头和该第一报文。
结合第一方面,在第一方面的某些实现方式中,该第二报文包括该隧道头和第三报文,该第三报文是基于组播地址和该第一报文获得的报文,该第三报文的DA为该组播地址;或者该第二报文包括该隧道头和第三报文,该第三报文是基于该第一报文和该第二网络设备的地址获得的报文,该第三报文的DA为该第二网络设备的地址。
结合第一方面,在第一方面的某些实现方式中,该第一网络设备位于第一区域region,该第二网络设备位于第二region,该第一信息包括第二比特串,该第二比特串用于指示该第二网络设备。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:该第一网络设备根据对应关系和该第一比特串,获得该第二比特串,该对应关系包括该第一比特串中与该至少一个目的用户设备对应的比特位和该第二比特串中与该第二网络设备对应的比特位;该第一网络根据该第二比特串获得该第二报文。
结合第一方面,在第一方面的某些实现方式中,该第一网络设备位于第一数据中心,该第二网络设备位于第二数据中心;或者该第一网络设备位于第一region,该第二网络设备位于第二region。一个region中可以包括多个数据中心。
结合第一方面,在第一方面的某些实现方式中,该第一报文还包括第一校验checksum,该第二报文还包括第二checksum,该第二checksum是基于该第一checksum、该第一报文的DA以及该第一信息获得的checksum。
结合第一方面,在第一方面的某些实现方式中,该源用户设备和该至少一个目的用户设备属于同一用户。
结合第一方面,在第一方面的某些实现方式中,该第一报文为互联网协议第六版IPv6单播报文,该IPv6单播报文包括IPv6扩展头,该第一比特串位于该IPv6扩展头中。
第二方面,提供了一种报文传输方法,包括:第二设备接收第一设备发送的第二报文,该第二报文包括第一信息,该第一信息用于指示第一设备到达至少一个目的用户设备的下一跳设备。
结合第二方面,在第二方面的某些实现方式中,该第二设备为第一目的用户设备,该第一设备为第一网络设备,该第一信息包括作为目的地址DA的该第一目的用户设备的地址。
结合第二方面,在第二方面的某些实现方式中,该第二设备为第一目的用户设备,该第一设备为第一网络设备,该第一信息包括作为目的地址DA的该第一目的用户设备的地址。
结合第二方面,在第二方面的某些实现方式中,该第二设备为第二网络设备,该第一设备为第一网络设备,该第二网络设备通过隧道接收该第一网络设备发送的该第二报文,该第二报文包括隧道头,该第一信息为该隧道头包括的与该隧道对应信息。
结合第二方面,在第二方面的某些实现方式中,该第二报文包括该隧道头和第一报文,该第一报文包括第一比特串,该第一比特串用于指示该至少一个目的用户设备。
结合第二方面,在第二方面的某些实现方式中,该第二报文包括该隧道头和第三报文,该第三报文是基于组播地址和第一报文获得的报文,该第三报文的DA为该组播地址,该第一报文包括第一比特串,该第一比特串用于指示该至少一个目的用户设备;或者该第二报文包括该隧道头和第三报文,该第三报文是基于该第一报文和该第二网络设备的地址获得的报文,该第三报文的DA为该第二网络设备的地址,该第一报文包括第一比特串,该第一比特串用于指示该至少一个目的用户设备。
结合第二方面,在第二方面的某些实现方式中,该第一网络设备位于第一区域region,该第二网络设备位于第二region,该第一信息包括第二比特串,该第二比特串用于指示该第二网络设备。
结合第二方面,在第二方面的某些实现方式中,该第二报文还包括用户报文和第一比特串,该第一比特串用于指示该至少一个目的用户设备,该方法还包括:该第二网络设备基于该第二报文获得该用户报文;该第二网络设备根据该第二报文包括的该第一比特串和该第一信息,向该第一目的用户设备发送该用户报文。
结合第二方面,在第二方面的某些实现方式中,该第二报文还包括用户报文,该方法还包括:该第二网络设备对该第二报文进行解封装获得该用户报文;该第二网络设备根据该第二报文包括的该第一比特串和该第一信息,向该第一目的用户设备发送该用户报文。
结合第二方面,在第二方面的某些实现方式中,该第一网络设备位于第一数据中心,该第二网络设备位于第二数据中心;或者该第一网络设备位于第一region,该第二网络设备位于第二region。
结合第二方面,在第二方面的某些实现方式中,该第二报文还包括第二校验checksum,该第二checksum是基于第一报文包括的第一checksum、该第一报文的DA以及该第一信息获得的checksum。
第二方面和第二方面的任意一个可能的实现方式的有益效果和第一方面以及第一方面的任意一个可能的实现方式的有益效果是对应的,对此,不再赘述。
第三方面,提供了一种用于报文传输的装置,该装置设置于第一网络设备,包括:接收模块,处理模块,发送模块,
接收模块,用于接收源用户设备发送的第一报文,该第一报文包括第一比特串和目的地址DA,该第一比特串用于指示至少一个目的用户设备,该第一报文的DA为该第一网络设备的地址;
处理模块,用于根据该第一比特串获取第二报文,该第二报文包括第一信息,该第一信息用于指示到达该至少一个目的用户设备的下一跳设备;
发送模块,用于向该下一跳设备发送该第二报文。
结合第三方面,在第三方面的某些实现方式中,该下一跳设备为第一目的用户设备, 该发送模块具体用于:向该第一目的用户设备发送该第二报文,该第一信息包括作为DA的该第一目的用户设备的地址。
结合第三方面,在第三方面的某些实现方式中,该下一跳设备为第二网络设备,该发送模块具体用于:向该第二网络设备发送该第二报文,该第一信息包括作为DA的该第二网络设备的地址。
结合第三方面,在第三方面的某些实现方式中,该下一跳设备为第二网络设备,该发送模块具体用于:通过隧道向该第二网络设备发送该第二报文,该第二报文包括隧道头,该第一信息为该隧道头包括的与该隧道对应的信息。
结合第三方面,在第三方面的某些实现方式中,该第二报文包括该隧道头和该第一报文。
结合第三方面,在第三方面的某些实现方式中,该第二报文包括该隧道头和第三报文,该第三报文是基于组播地址和该第一报文获得的报文,该第三报文的DA为该组播地址;或者该第二报文包括该隧道头和第三报文,该第三报文是基于该第一报文和该第二网络设备的地址获得的报文,该第三报文的DA为该第二网络设备的地址。
结合第三方面,在第三方面的某些实现方式中,该第一网络设备位于第一区域region,该第二网络设备位于第二region,该第一信息包括第二比特串,该第二比特串用于指示该第二网络设备。
结合第三方面,在第三方面的某些实现方式中,该处理模块还用于:根据对应关系和该第一比特串,获得该第二比特串,该对应关系包括该第一比特串中与该至少一个目的用户设备对应的比特位和该第二比特串中与该第二网络设备对应的比特位;根据该第二比特串获得该第二报文。
结合第三方面,在第三方面的某些实现方式中,该第一网络设备位于第一数据中心,该第二网络设备位于第二数据中心;或者该第一网络设备位于第一region,该第二网络设备位于第二region。
结合第三方面,在第三方面的某些实现方式中,该第一报文还包括第一校验checksum,该第二报文还包括第二checksum,该第二checksum是基于该第一checksum、该第一报文的DA以及该第一信息获得的checksum。
结合第三方面,在第三方面的某些实现方式中,该源用户设备和该至少一个目的用户设备属于同一用户。
结合第三方面,在第三方面的某些实现方式中,该第一报文为互联网协议第六版IPv6单播报文,该IPv6单播报文包括IPv6扩展头,该第一比特串位于该IPv6扩展头中。
第四方面,提供了一种用于报文传输的装置,该装置设于第二设备,包括:接收模块,用于接收第一设备发送的第二报文,该第二报文包括第一信息,该第一信息用于指示第一设备到达至少一个目的用户设备的下一跳设备。
结合第四方面,在第四方面的某些实现方式中,该第二设备为第一目的用户设备,该第一设备为第一网络设备,该第一信息包括作为目的地址DA的该第一目的用户设备的地址。
结合第四方面,在第四方面的某些实现方式中,该第二设备为第二网络设备,该第一设备为该第一网络设备,该第一信息包括作为DA的该第二网络设备的地址。
结合第四方面,在第四方面的某些实现方式中,该第二设备为第二网络设备,该第一设备为第一网络设备,该接收模块具体用于:该第二网络设备通过隧道接收该第一网络设备发送的该第二报文,该第二报文包括隧道头,该第一信息为该隧道头包括的与该隧道对应信息。
结合第四方面,在第四方面的某些实现方式中,该第二报文包括该隧道头和第一报文,该第一报文包括第一比特串,该第一比特串用于指示该至少一个目的用户设备。
结合第四方面,在第四方面的某些实现方式中,该第二报文包括该隧道头和第三报文,该第三报文是基于组播地址和第一报文获得的报文,该第三报文的DA为该组播地址,该第一报文包括第一比特串,该第一比特串用于指示该至少一个目的用户设备;或者该第二报文包括该隧道头和第三报文,该第三报文是基于该第一报文和该第二网络设备的地址获得的报文,该第三报文的DA为该第二网络设备的地址,该第一报文包括第一比特串,该第一比特串用于指示该至少一个目的用户设备。
结合第四方面,在第四方面的某些实现方式中,该第一网络设备位于第一区域region,该第二网络设备位于第二region,该第一信息包括第二比特串,该第二比特串用于指示该第二网络设备。
结合第四方面,在第四方面的某些实现方式中,该第二报文还包括用户报文和第一比特串,该第一比特串用于指示该至少一个目的用户设备,该第二设备还包括:处理模块,发送模块,
处理模块,用于基于该第二报文获得该用户报文;
发送模块,用于根据该第二报文包括的该第一比特串和该第一信息,向该第一目的用户设备发送该用户报文。
结合第四方面,在第四方面的某些实现方式中,该第二报文还包括用户报文,处理模块,用于对该第二报文进行解封装获得该用户报文;发送模块,用于根据该第二报文包括的该第一比特串和该第一信息,向该第一目的用户设备发送该用户报文。
结合第四方面,在第四方面的某些实现方式中,该第一网络设备位于第一数据中心,该第二网络设备位于第二数据中心;或者该第一网络设备位于第一region,该第二网络设备位于第二region。
结合第四方面,在第四方面的某些实现方式中,该第二报文还包括第二校验checksum,该第二checksum是基于第一报文包括的第一checksum、该第一报文的DA以及该第一信息获得的checksum。
第五方面,提供了一种用于报文传输的装置,该装置设置于第一网络设备,具有实现上述第一方面或第一方面中任一种实现方式中报文传输方法的功能。该功能可以基于硬件实现,也可以基于硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,该装置的结构中包括处理器,该处理器被配置为支持该装置执行上述方法中相应的功能。
该装置还可以包括存储器,该存储器用于与处理器耦合,其保存该装置必要的程序指令和数据。
在另一个可能的设计中,该装置包括:处理器、发送器、接收器、随机存取存储器、 只读存储器以及总线。其中,处理器通过总线分别耦接发送器、接收器、随机存取存储器以及只读存储器。其中,当需要运行该装置时,通过固化在只读存储器中的基本输入/输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导该装置进入正常运行状态。在该装置进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,使得该处理器执行第一方面或第一方面的任意可能的实现方式中的方法。
第六方面,提供一种用于报文传输的装置,该装置设置于第一网络设备,包括:主控板和接口板,进一步,还可以包括交换网板。该装置用于执行第一方面或第一方面的任意可能的实现方式中报文传输方法方法。具体地,该装置包括用于执行第一方面或第一方面的任意可能的实现方式中报文传输方法的模块。
需要说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,第一网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,该装置可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,第一网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的该装置的数据接入和处理能力要大于集中式架构的设备。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
第七方面,提供一种用于报文传输的装置,该装置设置于第一网络设备,包括控制模块和第一转发子设备。该第一转发子设备包括:接口板,进一步,还可以包括交换网板。该第一转发子设备用于执行第六方面中的接口板的功能,进一步,还可以执行第六方面中交换网板的功能。该控制模块中包括接收器、处理器、发送器、随机存取存储器、只读存储器以及总线。其中,处理器通过总线分别耦接接收器、发送器、随机存取存储器以及只读存储器。其中,当需要运行控制模块时,通过固化在只读存储器中的基本输入/输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导控制模块进入正常运行状态。在控制模块进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,使得该处理器执行第六方面中主控板的功能。在实际应用中,该装置可以包含任意数量的接口,处理器或者存储器。
第八方面,提供了一种用于报文传输的装置,该装置设于第二设备,具有实现上述第二方面或第二方面中任一种实现方式中报文传输方法的功能。该功能可以基于硬件实现,也可以基于硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,该装置的结构中包括处理器,该处理器被配置为支持该装置执行上述方法中相应的功能。
该装置还可以包括存储器,该存储器用于与处理器耦合,其保存该装置必要的程序指令和数据。
在另一个可能的设计中,该装置包括:处理器、发送器、接收器、随机存取存储器、只读存储器以及总线。其中,处理器通过总线分别耦接发送器、接收器、随机存取存储器以及只读存储器。其中,当需要运行该装置时,通过固化在只读存储器中的基本输入/输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导该装置进入正常运行状态。 在该装置进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,使得该处理器执行第二方面或第二方面的任意可能的实现方式中的方法。
第九方面,提供一种用于报文传输的装置,该装置设于第二设备,包括:主控板和接口板,进一步,还可以包括交换网板。该装置用于执行第二方面或第二方面的任意可能的实现方式中报文传输方法方法。具体地,该装置包括用于执行第二方面或第二方面的任意可能的实现方式中报文传输方法的模块。
需要说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,该装置的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,该装置可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,该装置可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的该装置的数据接入和处理能力要大于集中式架构的设备。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
第十方面,提供一种用于报文传输的装置,该装置设于第二设备,包括控制模块和第一转发子设备。该第一转发子设备包括:接口板,进一步,还可以包括交换网板。该第一转发子设备用于执行第八方面中的接口板的功能,进一步,还可以执行第八方面中交换网板的功能。该控制模块中包括接收器、处理器、发送器、随机存取存储器、只读存储器以及总线。其中,处理器通过总线分别耦接接收器、发送器、随机存取存储器以及只读存储器。其中,当需要运行控制模块时,通过固化在只读存储器中的基本输入/输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导控制模块进入正常运行状态。在控制模块进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,使得该处理器执行第八方面中主控板的功能。在实际应用中,该装置可以包含任意数量的接口,处理器或者存储器。
第十一方面,提供了一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一种可能执行的方法。
第十二方面,提供了一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第二方面或第二方面的任一种可能执行的方法。
第十三方面,提供了一种计算机可读介质,该计算机可读介质存储有程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一种可能执行的方法。这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-only memory,ROM)、可编程ROM(programmable ROM,PROM)、可擦除的PROM(erasable PROM,EPROM)、Flash存储器、电EPROM(electrically EPROM,EEPROM)以及硬盘驱动器(hard drive)。
第十四方面,提供了一种计算机可读介质,该计算机可读介质存储有程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第二方面或第二方面的任一种可能执行的方法。这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器 (read-only memory,ROM)、可编程ROM(programmable ROM,PROM)、可擦除的PROM(erasable PROM,EPROM)、Flash存储器、电EPROM(electrically EPROM,EEPROM)以及硬盘驱动器(hard drive)。
第十五方面,提供一种芯片,该芯片包括处理器与数据接口,其中,处理器通过该数据接口读取存储器上存储的指令,以执行第一方面或第一方面任意一种可能的实现方式中的方法。在具体实现过程中,该芯片可以以中央处理器(central processing unit,CPU)、微控制器(micro controller unit,MCU)、微处理器(micro processing unit,MPU)、数字信号处理器(digital signal processing,DSP)、片上系统(system on chip,SoC)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或可编辑逻辑器件(programmable logic device,PLD)的形式实现。
第十六方面,提供一种芯片,该芯片包括处理器与数据接口,其中,处理器通过该数据接口读取存储器上存储的指令,以执行第二方面或第二方面任意一种可能的实现方式中的方法。在具体实现过程中,该芯片可以以中央处理器(central processing unit,CPU)、微控制器(micro controller unit,MCU)、微处理器(micro processing unit,MPU)、数字信号处理器(digital signal processing,DSP)、片上系统(system on chip,SoC)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或可编辑逻辑器件(programmable logic device,PLD)的形式实现。
第十七方面,提供了一种系统,该系统包括上述如第三方面或第三方面任意一种可能的实现方式中的用于报文传输的装置和/或上述如第四方面或第四方面任意一种可能的实现方式中的用于报文传输的装置。
图1是一种应用场景示意图。
图2是本申请实施例提供的一种报文传输方法的示意性流程图。
图3是应用于实施例的一种单数据中心多租户的场景示意图。
图4是本申请实施例提供的一种在单数据中心场景内进行报文传输的方法的示意性流程图。
图5是应用于实施例的另一种单数据中心多租户的场景示意图。
图6是本申请实施例提供的另一种在单数据中心场景内进行报文传输的方法的示意性流程图。
图7是应用于实施例的一种多数据中心多租户的场景示意图。
图8是本申请实施例提供的一种在多数据中心多租户场景内进行报文传输的方法的示意性流程图。
图9是应用于实施例的一种跨region的多数据中心多租户场景示意图。
图10示出了region1中的一种可能的场景。
图11是本申请实施例提供的在跨region的场景内进行报文传输的方法的示意性流程图。
图12是本申请实施例提供的一种用于报文传输的装置1200的示意性结构图。
图13是本申请实施例提供的另一种用于报文传输的装置1300的示意性结构图。
图14是本申请实施例提供的另一种用于报文传输的装置2000的硬件结构示意图。
图15为本申请实施例提供的另一种用于报文传输的装置2100的硬件结构示意图。
图16是本申请实施例提供的另一种用于报文传输的装置2200的硬件结构示意图。
图17为本申请实施例提供的另一种用于报文传输的装置2300的硬件结构示意图。
下面将结合附图,对本申请中的技术方案进行描述。
本申请将围绕包括多个设备、组件、模块等的系统来呈现各个方面、实施例或特征。应当理解和明白的是,各个系统可以包括另外的设备、组件、模块等,并且/或者可以并不包括结合附图讨论的所有设备、组件、模块等。此外,还可以使用这些方案的组合。
另外,在本申请实施例中,“示例的”、“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
本申请实施例中,“相应的(corresponding,relevant)”和“对应的(corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
本申请实施例描述的网络架构以及业务场景是为了更加清楚地说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:包括单独存在A,同时存在A和B,以及单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
互联网协议(internet protocol,IP)网络中点到多点的数据传输方式能够有效地节约网络带宽、降低网络负载,因此,在实时数据传送、多媒体会议、数据拷贝、交互式网络电视(internet protocol television,IPTV)、游戏和仿真等诸多方面都有广泛的应用。图1一种应用场景示意图。如图1所示,该应用场景中可以包括:多个用户设备(例如,源用户设备1、目的用户设备2、目的用户设备3)以及运营商网络,其中,该多个用户设备 组成的网络也可以称为用户网络。作为示例,上述用户设备也可以称为用户边缘设备(customer edge,CE),可以是路由器或用户主机。图1中是以一个源用户设备,两个目的用户设备进行举例说明的。在该用户网络中,源用户设备1需要经过运营商网络将报文转发给至少两个目的用户设备,例如目的用户设备2以及目的用户设备3。相关的技术方案中,源用户设备1向运营商网络发送一个组播报文,运营商网络将该组播报文分别发送给目的用户设备2、目的用户设备3,从而实现了用户IP网络中点到多点的数据传送。但是,在该种技术方案中,需要用户设备支持IP组播报文以及相应的IP组播协议,这样对于用户设备而言会存在额外的开销和复杂性。
有鉴于此,本申请实施例提供了一种报文传输方法,该方法能够在支持用户IP网络中点到多点的数据传送的同时,还可以降低用户设备的开销和复杂性。本申请实施例对上述应用场景中源用户设备和目的用户设备的数量不做具体限定,可以包括至少一个源用户设备、至少两个目的用户设备。
图2是本申请实施例提供的一种报文传输方法的示意性流程图。图2对应的实施例所提供的方法可以应用于图1所示的场景中。如图2所示,该方法可以包括步骤210-230,下面分别对步骤210-230进行详细描述。
步骤210:第一网络设备接收源用户设备发送的第一报文,该第一报文包括第一比特串和目的地址DA。
上述源用户设备发送给第一网络设备的第一报文可以是单播报文,具体可以是IPv6单播报文,本申请对此不做具体限定。该第一报文中可以包括第一比特串和目的地址(destination address,DA)。该第一比特串用于指示至少一个目的用户设备。该第一报文的DA为该第一网络设备的地址。
步骤220:第一网络设备根据该第一比特串获取第二报文,该第二报文包括第一信息,该第一信息用于指示到达该至少一个目的用户设备的下一跳设备。
本申请实施例对所述第二报文不做具体限定,一种可能的实现方式中,该下一跳设备为第一目的用户设备,该第二报文的DA为第一目的用户设备的地址,该第一信息包括作为DA的所述第一目的用户设备的地址。另一种可能的实现方式中,该下一跳设备为第二网络设备,该第二报文的DA为该第二网络设备的地址,该第一信息包括作为DA的所述第二网络设备的地址。另一种可能的实现方式中,该下一跳设备为第二网络设备,该第二报文包括隧道头,该第一信息为所述隧道头包括的与所述隧道对应的信息。具体的,一个示例,该第二报文包括隧道头和第一报文。另一个示例,该第二报文包括所述隧道头和第三报文,该第三报文是基于组播地址和该第一报文获得的报文,该第三报文的DA为所述组播地址。另一个示例,该第二报文包括该隧道头和第三报文,该第三报文是基于该第一报文和该第二网络设备的地址获得的报文,该第三报文的DA为该第二网络设备的地址。下面会结合具体的场景详细描述,此处暂不详述。
步骤230:第一网络设备向该下一跳设备发送该第二报文。
第一网络设备向该下一跳设备发送该第二报文的具体实现方式有多种,本申请实施例对此不做具体限定。一个示例,下一跳设备为第一目的用户设备,第一网络设备可以直接向该第一目的用户设备发送所述第二报文。另一个示例,下一跳设备为第二网络设备,第一网络设备向第二网络设备发送所述第二报文。另一个示例,下一跳设备为第二网络设备, 第一网络设备可以通过隧道向第二网络设备发送所述第二报文。该隧道可以是单播隧道,或者也可以是多播隧道。举例说明,该单播隧道例如可以是多协议标签交换(multiple protocol label switching,MPLS)隧道,或者IP隧道,或者IPv6隧道。该多播隧道例如可以是点到多点(point-to-multipoint,P2MP)隧道或者多点到多点(multi-point to multi-point,MP2MP)隧道。
上述技术方案中,用户IP网络中可以通过单播报文进行点到多点的数据传送,这样,用户设备不需要支持组播报文的处理能力以及相应的IP组播协议,可以降低用户设备的开销和复杂性。
下面会结合不同的场景,对本申请实施例提供的报文传输方法的具体实现过程进行详细描述。下面的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据下面所给出的下面的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本申请实施例的范围内。
图3是应用于实施例的一种单数据中心多租户的场景示意图。如图3所示,该场景中可以包括:IP报文复制系统(包括设备R1)、SW1-SW6、SRC1、SRC2、RCV1、RCV2、RCV3、RCV4、RCVX。在图3的示例中,IP报文复制系统是一个具有IP报文复制能力的设备R1,该设备R1可以是由具有IP报文复制能力的专用硬件组成,也有可能是由通用硬件(如服务器及网卡)和具有IP报文复制能力的软件模块组成,本申请实施例对此不做限定。举例说明,设备R1例如可以是路由器、交换机、通用计算机上的应用软件等。可选地,IP报文复制系统还可以是一个由多台设备组成的网络,该网络属于运营商或网络服务提供商(service provider,SP),为一个或多个用户(也可以称为租户)提供IP报文点到多点的传输服务。下面会结合图5对这种应用场景进行描述,此处不再赘述。SW1-SW6为交换机,其组成的交换网络也可以称为Fabric网络。该Fabric网络可以为数据中心(data center,DC)的多个租户提供报文的转发服务。SRC1、RCV2、RCV3、RCVX及其链路属于DC内的第一用户(也可以称为第一租户)的专用设备和链路。比如,这些设备和链路可以是运营商租赁给第一用户的,或者这些设备和链路是第一用户自行购买并安装部署的。其中,第一用户的SRC1获取第一报文,将该第一报文经过Fabric网络发送给R1,R1根据该第一报文获得第二报文,并经过Fabric网络将该第二报文发送给RCV2、RCV3、RCVX。SRC2、RCV1、RCV4及其链路属于DC内的第二用户(也可以称为第二租户)的专用设备和链路。比如,这些设备和链路可以是运营商租赁给第二用户的,或者这些设备和链路是第二用户自行购买并安装部署的。SRC2、RCV1、RCV4之间的报文传输过程与第一用户的设备之间进行报文传输的过程类似,具体的请参见上述第一用户的设备之间进行报文传输,此处不再赘述。
下面以图3所示的应用场景为例,结合图4,对本申请实施例提供的一种在单数据中心场景内进行报文传输的方法的具体实现过程进行详细描述。图4是本申请实施例提供的一种在单数据中心场景内进行报文传输的方法的示意性流程图。如图4所示,该方法可以包括步骤410-430,下面分别对步骤410-430进行详细描述。为了便于描述,下面以属于所述第一用户的设备(例如,图3中的SRC1、RCV2、RCV3、RCVX)之间进行报文传输为例进行说明。
步骤410:SRC1根据原始用户报文获得第一报文,并通过Fabric网络发送给设备R1。
SRC1作为第一用户的源用户设备,当其需要将原始用户报文发送给RCV2、RCV3、RCVX时,SRC1可以根据原始用户报文构造如下所示的第一报文,并将该第一报文发送给设备R1。SRC1发送给设备R1的第一报文可采用如下格式:{IPv6头(SA=SRC1,DA=IP1),IPv6扩展头(BitString=0000 1110),用户报文(UDP,Video Payload)}
上述SRC1发送给设备R1的第一报文可以是在用户报文的外层封装IPv6头和IPv6扩展头。其中,IPv6头的源地址(source address,SA)为SRC1的地址,目的地址(destination address,DA)为设备R1上为第一用户分配的地址IP1。IPv6扩展头中可以包括BitString,或者也可以包括BIER头,BIER头中包括BitString,本申请实施例对此不做具体限定。上述位串(BitString)中不同的比特位(bit)可以对应RCV2、RCV3、RCVX。例如,可以将位串(BitString)中对应于RCV2、RCV3、RCVX的bit位置1,从而用于指导设备R1将第一报文分别发送给RCV2、RCV3、RCVX。以RCV2、RCV3、RCVX分别配置的位转发路由器标识(Bit-forwarding router identifier,BFR ID)分别为2、3、4为例,上述BitString可以是0000 1110。上述用户报文不是一个隧道报文(tunnel packet),而是一个没有封装隧道头(tunnel header)的原始用户报文。例如,该用户报文的IP头后面是UDP头,UDP头后面的Payload不是一个IP报文而是一个净荷如视频或音频数据等。
步骤420:设备R1接收第一报文,并确定所述第一报文属于第一用户。
作为示例,设备R1可以通过Fabric网络中的SW1、SW3接收到SRC1发送的第一报文。设备R1还可以根据第一报文确定该报文属于第一用户,具体的实现方式有多种,下面分别对几种不同的实现进行详细描述。
一种可能的实现方式中,设备R1可以根据第一报文的SA为SRC1的地址,确定该第一报文属于第一用户。
另一种可能的实现方式中,设备R1还可以根据第一报文的DA为设备R1上为第一用户分配的地址IP1,确定确定该第一报文属于第一用户。
另一种可能的实现方式中,设备R1还可以根据接收到第一报文的虚拟局域网标识(virtual local area network identifier,VLAN ID)确定该第一报文属于第一用户。具体的,作为示例,在Fabric网络中,SW1连接SRC1的端口、SW5连接RCV2的端口、SW6连接RCV3的端口以及SW6连接RCVX的端口都配置为虚拟网络实例(virtual network instance,VNI)标识10(vni10)。SW3连接设备R1的接口进一步划分为用VLAN区分的多个子接口,其中第1个子接口使用一个VLAN ID区分并配置为vni10实例,例如第一子接口的VLAN ID可以是10。在这个例子中,SRC1发出的第一报文实际上首先是被SW1收到,SW1确定报文属于第一用户,SW1使用虚拟扩展局域网(virtual extensible local area network,VXLAN)隧道将第一报文进行封装并发送到SW3,vxlan隧道中会携带vni10标识。SW3对第一报文进行vxlan解封装,根据VXLAN中的vni10确定第一报文属于第一用户,并往第一子接口发送给设备R1。发送给设备R1的第一报文会携带VLAN ID(本例中是10),设备R1根据收到第一报文的接口以及该报文中的VLAN ID确定报文属于第一用户。
步骤430:设备R1根据第一用户对应的转发表项以及第一报文中的BitString确定第 二报文,将该第二报文分别发送至RCV2、RCV3、RCVX。
设备R1上可以配置对应于多个租户的IP组播转发实例,例如可以将对应于第一用户的IP组播转发实例配置在虚拟路由转发(virtual routing forwarding,VRF)实例1(vrf1)上,将对应于第二用户的IP组播转发实例配置在VRF实例2(vrf2)上。具体的如下表1所示。
表1设备R1上配置的第一用户、第二用户对应的IP组播转发实例
以vrf1为例,设备R1分配对应于vrf1的IP地址为IP1,也就是说,设备R1上为第一用户分配的地址IP1。转发表项“IP地址=SRC1,Nbr=SRC,FBM=0000 0001”表示当有报文的bit string从右往左第1个bit位为1时,报文会往设备R1的邻居(SRC1)发送,Nbr=SRC1表示设备R1的邻居为SRC1,IP地址=SRC1表示发往SRC1的报文的DA为SRC1的地址。转发表项“IP地址=RCV2,Nbr=RCV2,FBM=0000 0010”表示当有报文的bit string从右往左第2个bit位为1时,报文会往设备R1的邻居(RCV2)发送,Nbr=RCV2表示设备R1的邻居为RCV2,IP地址=RCV2表示发往RCV2的报文的DA为RCV2的地址。转发表项“IP地址=RCV3,Nbr=RCV3,FBM=0000 0100”表示当有报文的bit string从右往左第3个bit位为1时,该报文会往设备R1的邻居(RCV3)发送,Nbr=RCV3表示设备R1的邻居为RCV3,IP地址=RCV3表示发往RCV3的报文的DA为RCV3的地址。转发表项“IP地址=RCVX,Nbr=RCVX,FBM=0000 1000”表示当有报文的bit string从右往左第4个bit位为1时,该报文会往设备R1的邻居(RCVX)发送,Nbr=RCVX表示设备R1的邻居为RCVX,IP地址=RCVX表示发往RCVX的报文的DA为RCVX的地址。
以vrf2为例,设备R1分配对应于vrf2的IP地址为IP2,也就是说,设备R1上为第二用户分配的地址IP2。关于设备R1上对应于第二用户的各个转发表项的解释说明请参考上文中对第一用户的各个转发表项的描述,此处不再赘述。
在上面的例子中,设备R1针对第一用户和第二用户,分别建立vrf1和vrf2的BIER转发表并确保只有第一用户能访问vr1所对应的R1的地址,只有第二用户才能访问vrf2所对应的R1的地址。另一种方法,可以针对第一用户和第二用户分别建立sub-domain 1和sub-domain 2的BIER转发表,并且sub-domain 1和sub-domain 2分别配置IP1和IP2作为服务地址,IP1只允许第一用户的IP地址访问,IP2只允许第二用户的IP地址访问,比如可以通过访问控制列表(access control list,ACL)进行控制。
下面对设备R1根据上述转发表项确定属于第一用户的第二报文,并转发第二报文的 过程进行详细描述。
一个示例,设备R1根据上述转发表项“IP地址=RCV2,Nbr=RCV2,FBM=0000 0010”以及第一报文中的BitString=0000 1110,确定设备R1需要向RCV2发送报文。具体的,设备R1向RCV2发送报文时,报文外层IPv6头中的DA会更新为RCV2的地址,并将IPv6扩展头中的BitString(0000 1110)以及FBM字段做AND操作,本申请实施例中AND的结果是0000 0010。因此,设备R1发送给RCV2的报文的外层IPv6头中的DA为RCV2的地址,IPv6扩展头中的BitString为0000 0010。举例说明,设备R1发送给RCV2的第二报文为:{IPv6头(SA=SRC1,DA=RCV2),IPv6扩展头(BitString=0000 0010),用户报文(UDP,Video Payload)}。
另一个示例,设备R1根据上述转发表项“IP地址=RCV3,Nbr=RCV3,FBM=00000100”以及第一报文中的BitString=0000 1110,确定设备R1需要向RCV3发送报文。具体的,设备R1向RCV3发送报文时,报文外层IPv6头中的DA会更新为RCV3的地址,并将IPv6扩展头中的BitString(0000 1110)以及FBM字段做AND操作,本申请实施例中AND的结果是0000 0100。因此,设备R1发送给RCV3的报文的外层IPv6头中的DA为RCV3的地址,IPv6扩展头中的BitString为0000 0100。举例说明,设备R1发送给RCV3的第二报文为:{IPv6头(SA=SRC1,DA=RCV3),IPv6扩展头(BitString=0000 0100),用户报文(UDP,Video Payload)}。
另一个示例,设备R1根据上述转发表项“IP地址=RCVX,Nbr=RCVX,FBM=00001000”以及第一报文中的BitString=0000 1110,确定设备R1需要向RCVX发送报文。具体的,设备R1向RCVX发送报文时,报文外层IPv6头中的DA会更新为RCVX的地址,并将IPv6扩展头中的BitString(0000 1110)以及FBM字段做AND操作,本申请实施例中AND的结果是0000 1000。因此,设备R1发送给RCVX的外层IPv6头中的DA为RCVX的地址,IPv6扩展头中的BitString为0000 1000。举例说明,设备R1发送给RCVX的第二报文为:{IPv6头(SA=SRC1,DA=RCVX),IPv6扩展头(BitString=0000 1000),用户报文(UDP,Video Payload)}。
需要说明的是,以设备R1发送给RCV2的第二报文为例,其SA为SRC1、DA为RCV2,这和SRC1发送给设备R1的第一报文(SA为SRC1、DA为IP1)有所改变。由于UDP头的checksum字段是根据报文的源地址、目的地址及Payload等字段计算出来的校验值,下面列举出了几种确定第二报文中UDP头的checksum值的具体实现方式。
一种可能的实现方式中,设备R1在更改第一报文的目的地址得到第二报文时,会根据第二报文和第一报文的目的地址的改变对checksum做一个增量更新,从而确定第二报文中的checksum值。这样,通过增量更新checksum值可以不需要重新读取整个payload来重新计算checksum,节省计算开销。
另一种可能的实现方式中,可以在SRC1/RCV2/RCV3/RCVX各主机上配置使能“零UDP校验(zero UDP checksum)”。例如,本实施例用在特定的“目的UDP端口”上、对“目的UDP端口”为第一预设值的情况下使能“零UDP校验”。相应的,SRC1发送给设备R1的第一报文在UDP头checksum字段填0值,RCV2收到第一报文时不校验checksum字段,设备R1向RCV2发送第二报文时,虽然第二报文的目的地址相比较第一报文的目的地址有所更改,但第二报文中的checksum值保持0值不变即可。
另一种可能的实现方式中,本实施例所述的UDP头也可以是UDP-Lite头(UDP-Lite header),设备R1向RCV2发送第二报文时,设备R1在修改第一报文的目的地址等字段得到第二报文时,对UDP-Lite头中的checksum字段作相应的修改。
图5是应用于实施例的另一种单数据中心多租户的场景示意图。如图5所示,该场景中可以包括:IP报文复制系统(包括设备A-设备F)、SW1-SW6、SRC1、SRC2、RCV1、RCV2、RCV3、RCV4、RCVX。在图5的示例中,IP报文复制系统是由设备A-设备F多台设备组成的网络,该网络属于运营商或网络服务提供商(network service provider,NSP),为一个或多个用户(也可以称为租户)提供IP报文点到多点的传输服务。SW1-SW6、SRC1、SRC2、RCV1、RCV2、RCV3、RCV4、RCVX与图3所示的场景相同,具体的请参考图3中的描述,此处不再赘述。
下面以图5所示的应用场景为例,结合图6,对本申请实施例提供的另一种在单数据中心场景内进行报文传输的方法的具体实现过程进行详细描述。图6是本申请实施例提供的另一种在单数据中心场景内进行报文传输的方法的示意性流程图。如图6所示,该方法可以包括步骤610-630,下面分别对步骤610-630进行详细描述。
步骤610:SRC1根据原始用户报文获得第一报文,并通过Fabric网络发送给设备A。
SRC1作为第一用户的源用户设备,当其需要将原始用户报文发送给RCV2、RCV3、RCVX时,SRC1可以根据原始用户报文构造如下所示的第一报文,并将该第一报文发送给设备A。第一报文采用的报文格式如下所示:{IPv6头(SA=SRC1,DA=A1),IPv6扩展头(BitString=0000 1110),用户报文(UDP,Video Payload)}
其中,第一报文的外层IPv6头的SA为SRC1的地址,DA为设备A上为第一用户分配的地址A1。
步骤620:设备A接收第一报文,根据第一报文中的BitString确定第二报文。
设备A接收到第一报文后,可以根据第一报文中的DA为A1确定该报文属于第一用户,再根据第一报文中的BitString为0000 1110确定需要向设备F和设备E发送的第二报文。具体的,设备A可以根据第一报文的BitString中RCV2(BFR ID=2)对应的bit为置1,确定需要向设备F发送第二报文;根据第一报文的BitString中RCV3(BFR ID=3)、RCVX(BFR ID=4)分别对应的bit为置1,确定需要向设备E发送第二报文。
一种可能的实现方式中,设备A将第二报文发送给设备F和设备E的过程,可以看做设备A和设备F之间有一个单播隧道,设备A和设备E之间有另一个单播隧道。为了便于描述,下面以设备A通过单播隧道将第二报文发送给设备E的过程为例进行说明。例如,设备A可以对从SRC1接收到的第一报文的外层再封装一个隧道头得到第二报文,该第二报文包括隧道头和第一报文。该隧道头比如可以是多协议标签交换(multiple protocol label switching,MPLS)隧道头或者IP隧道头或者IPv6隧道头。以IP隧道头为例,第二报文中IP隧道头的源地址是设备A的地址,IP隧道头的目的地址是设备E的地址E1。举例说明,这种实现方式中,设备A发送给设备E的第二报文如下所示:{IP隧道头(IPv6头(SA=A1,DA=E1)),IPv6头(SA=SRC1,DA=A1),IPv6扩展头(BitString=00001110),用户报文(UDP,Video Payload)}。又如,设备A会对接收到的第一报文的的外层增加封装一个隧道头得到第二报文,该第二报文包括隧道头和第三报文,第三报文是基于设 备E的地址E1和第一报文获得的报文,该第三报文的目的地址为设备E的地址E1。以隧道头用IP隧道头或者IPv6隧道头时,隧道头的目的地址也是E的一个地址,例如也可以是E1。举例说明,这种实现方式中,设备A发送给设备E的第二报文如下所示:{IP隧道头(IPv6头(SA=A1,DA=E1)),IPv6头(SA=SRC1,DA=E1),IPv6扩展头(BitString=00001110),用户报文(UDP,Video Payload)}。
另一种可能的实现方式中,设备A将第二报文发送给设备F和设备E的过程,可以看做设备A通过多播隧道(例如点到多点(point-to-multipoint,P2MP)隧道或者MP2MP隧道)分别发送给设备F和设备E。例如,设备A对收到的第一报文增加封装一个多播隧道头得到第二报文,该第二报文包括隧道头和第三报文,第三报文是基于组播地址和所述第一报文获得的报文。比如,该第三报文的目的地址为一个组播组地址MC-Grp-1,该组播组地址MC-Grp-1可以用于将第二报文通过多播隧道分别发送给设备E和设备F。举例说明,这种实现方式中,设备A发送的第二报文如下所示:{P2MP隧道头,IPv6头(SA=SRC1,DA=MC-Grp-1),IPv6扩展头(BitString=0000 1110),用户报文(UDP,Video Payload)}。
步骤630:设备E、设备F通过Fabric网络分别将第二报文发送至RCV2、RCV3、RCVX。
下面以设备E通过单播隧道接收设备A发送的第二报文为例,对设备E通过Fabric网络分别向RCV2、RCV3、RCVX发送报文的具体实现过程进行描述。
以设备E通过单播隧道接收到的第二报文为:{IP隧道头(IPv6头(SA=A1,DA=E1)),IPv6头(SA=SRC1,DA=A1),IPv6扩展头(BitString=0000 1110),用户报文(UDP,Video Payload)}作为示例。设备E根据第二报文的IP隧道头中的DA为自己,对该第二报文进行解封装,得到内层的第一报文{IPv6头(SA=SRC1,DA=A1),IPv6扩展头(BitString=00001110),用户报文(UDP,Video Payload)},并根据内层报文的DA为A1确定该报文属于第一用户。
设备E还可以根据第一报文的IPv6扩展头中的BitString为0000 1110,确定需要向RCV2、RCV3、RCVX发送报文。设备E发送给RCV2的报文中外层IPv6头的DA为RCV2的地址,IPv6扩展头中的BitString为0000 0010,设备E发送给RCV3的报文中外层IPv6头的DA为RCV3的地址,IPv6扩展头中的BitString为0000 0100。发送给RCVX的报文中外层IPv6头的DA为RCVX的地址,IPv6扩展头中的BitString为0000 1000。
需要说明的是,设备E也可以对分别发送给RCV2、RCV3、RCVX的报文中的checksum进行重新计算和更改。例如,设备A收到SRC发送的报文,再通过单播隧道发送给设备F或设备E时,虽然内层报文的目的地址进行了更改,但不对UDP头的checksum进行更改,在设备E或设备F收到报文时也不对UDP头的checksum进行校验。但当设备E和设备F发送给RCV2/RCV3/RCVX时则进行checksum的重新计算和更改,使得RCV2/RCV3/RCVX上收到的checksum是正确的。再如,设备A对从SRC收到的报文经过多播隧道封装发送给设备F和设备E时,虽然内层报文的目的地址进行了更改,但不对UDP头的checksum进行更改,在设备E或设备F收到报文时也不对UDP头的checksum进行校验。但当设备E和设备F发送给RCV2/RCV3/RCVX时则进行checksum的重新计算和更改,使得RCV2/RCV3/RCVX上收到的报文的checksum是正确的。
图7是应用于实施例的一种多数据中心多租户的场景示意图。在如图7所示的一个区域内可以包括多个数据中心或可用区(available zone,AZ)。其中,Fabric1位于第一个数据中心或可用区AZ,Fabric2位于第2个AZ,Fabric位于第3个AZ,这三个AZ之间相互连接。R1/R2/R3分别是AZ1、AZ2、AZ3的复制路由器。第一用户包括位于AZ1的J1/J2/J3、位于AZ2的J4/J5/J6以及位于AZ3的J7/J8。第二用户包括位于AZ1的H1/H2/H3、位于AZ2的H4/H5/H6以及位于AZ3的H7/H8。
下面以图7所示的应用场景为例,结合图8,对本申请实施例提供的一种在多数据中心多租户场景内进行报文传输的方法的具体实现过程进行详细描述。图8是本申请实施例提供的一种在多数据中心多租户场景内进行报文传输的方法的示意性流程图。如图8所示,该方法可以包括步骤810-820,下面分别对步骤810-820进行详细描述。为了便于描述,下面以第一用户的J1需要将报文分别发送至J2/J3/J4/J5/J6/J7/J8为例进行说明。
步骤810:J1根据原始用户报文获得第一报文,并通过Fabric1网络发送给R1。
假设J1需要发送报文给J2/J3/J4/J5/J6/J7/J8,J1可以封装如下的第一报文:{IPv6头(SA=J1,DA=IP1),IPv6扩展头(BitString=1111 1110),用户报文(UDP,Video Payload)}
其中,DA为R1上为第一用户分配的地址IP1。J1可以根据DA为IP1,通过Fabric1网络将上述第一报文发送给R1。
步骤820:R1根据第一用户对应的转发表项以及第一报文中的BitString确定第二报文,并对该第二报文进行转发。
R1上可以配置对应于多个租户的IP组播转发实例,例如可以将对应于第一用户的IP组播转发实例配置在VRF实例1(vrf1)上,将对应于第二用户的IP组播转发实例配置在VRF实例2(vrf2)上。具体的如下表2所示。
表2设备R1/R2/R3上配置的第一用户、第二用户对应的IP组播转发实例
R1通过Fabric1网络收到J1发送的第一报文后,可以确定第一报文属于第一用户,并根据vrf1所对应的转发表确定第二报文,并对该第二报文进行转发。下面对具体的转发过程进行详细描述。为了便于描述,本申请实施例中可以将报文中最右的一个bit本文称为bit 1,从右往左依次是bit 2、3、4、5、6、7、8。
由于第一报文的BitString中的bit 2、3分别对应于J2和J3,J1根据表2中vrf1对应的转发表项“IP地址=J2,Nbr=J2,FBM=0000 0010”以及“IP地址=J3,Nbr=J3,FBM=0000 0100”,确定J1需要向J2和J3发送报文。具体的,J1向J2发送报文时,报文转发的实际路径会经过Fabric1,该报文外层IPv6头中的DA为J2的地址,IPv6扩展头中的BitString为0000 0010。J1向发送J3发送报文时,报文外层IPv6头中的DA为J3的地址,IPv6扩展头中的BitString为0000 0100。
本实施例中,J1发送给J2/J3的报文中的BitString是第一报文中的BitString和转发表项中的FBM进行AND操作的结果。以J1发送给J2的报文为例,J1接收到的第一报文中的BitString为1111 1110,转发表项中的FBM为0000 0010,AND操作的结果为0000 0010,因此,J1发送给J2的报文的BitString为0000 0010。由于第一报文的BitString中的bit4、 5、6分别对应于J4/J5/J6,J1根据表2中vrf1对应的转发表项“IP地址=J4/J5/J6,Nbr=R2<IP12>,FBM=0011 1000”,确定J1需要向R2<IP12>发送报文。具体的,J1向R2发送报文时,报文转发的实际路径会经过Fabric1和Fabric2,该报文外层IPv6头中的DA为R2的地址IP12,IPv6扩展头中的BitString为0011 1000。
R2接收到该报文后,根据DA为IP12确定该报文属于第一用户,并根据vrf1所对应的转发表对该报文进行转发。例如,R2根据表2中vrf1对应的转发表项“IP地址=J4,Nbr=J4,FBM=0000 1000”确定需要向J4发送报文。具体的,R2向J4发送报文时,该报文外层IPv6头中的DA为J4的地址,IPv6扩展头中的BitString为0000 1000。又如,R2根据表2中vrf1对应的转发表项“IP地址=J5,Nbr=J5,FBM=0001 0000”确定需要向J5发送报文。具体的,R2向J5发送报文时,该报文外层IPv6头中的DA为J5的地址,IPv6扩展头中的BitString为0001 0000。又如,R2根据表2中vrf1对应的转发表项“IP地址=J6,Nbr=J6,FBM=0010 0000”确定需要向J6发送报文。具体的,R2向J6发送报文时,该报文外层IPv6头中的DA为J6的地址,IPv6扩展头中的BitString为0010 0000。
由于第一报文的BitString中的bit 7、8分别对应于J7和J8,J1根据表2中vrf1对应的转发表项“IP地址=J7/J8,Nbr=R3<IP13>,FBM=1100 0000”确定需要向R3<IP13>发送报文。具体的,J1向R3发送报文时,报文转发的实际路径会经过Fabric1和Fabric3,该报文外层IPv6头中的DA为R3的地址IP13,IPv6扩展头中的BitString为1100 0000。R3接收到该报文后,根据DA为IP13确定该报文属于第一用户,并根据vrf1所对应的转发表对该报文进行转发。例如,R3根据表2中vrf1对应的转发表项“IP地址=J7,Nbr=J7,FBM=0100 0000”确定需要向J7发送报文。具体的,R3向J7发送报文时,该报文外层IPv6头中的DA为J7的地址,IPv6扩展头中的BitString为0100 0000。又如,R3根据表2中vrf1对应的转发表项“IP地址=J8,Nbr=J8,FBM=1000 0000”确定需要向J8发送报文。具体的,R3向J8发送报文时,该报文外层IPv6头中的DA为J8的地址,IPv6扩展头中的BitString为1000 0000。
图9是应用于实施例的一种跨region的多数据中心多租户场景示意图。如图9所示,该场景中可以包括多个region,例如,7个region,分别是region1、region2、region3、region4、region5、region6、region7。每个region有一个区域路由器(region router,RR1),图9所示的RR1-RR7分别代表region1-region7。RR1-RR7可以是云商(cloud provider)的网络,云商的网络也可以称为(云)服务提供商。
下面对各个region中的租户情况进行举例说明。
region1:包括第一用户的主机J1-J8,第二用户的主机H1-H8。
region2:包括第一用户的主机J9-J13,第二用户的主机H9-H11。
region3:包括第一用户的主机J14-J16,第二用户的主机H12-H16。
region4:包括第一用户的主机为空,第二用户的主机H17-H18。
region5:包括第一用户的主机J20-J24,第二用户的主机为空。
region6:包括第一用户的主机J25-J32,第二用户的主机H21-H24。
region7:包括第一用户的主机为空,第二用户的主机H25-H 32。
图10示出了region1中的一种可能的场景。一个region内可以包括多个AZ。如图10所示,region1中可以包括AZ1、AZ2、AZ3,其中,AZ1包括H1-3、J1-3、Fabric1、R1, AZ2包括H4-6、J4-6、Fabric2、R2,AZ3包括H7-8、J7-8、Fabric3、R3。region1中还包括一个区域路由器RR1及Fabric0,RR1通过Fabric0及各AZ的Fabric与区域中的各节点相连。
下面以图9所示的应用场景为例,结合图11,对本申请实施例提供的一种在跨region的场景内进行报文传输的方法的具体实现过程进行详细描述。图11是本申请实施例提供的在跨region的场景内进行报文传输的方法的示意性流程图。如图11所示,该方法可以包括步骤1110-1170,下面分别对步骤1110-1170进行详细描述。
为了便于描述,下面以第一用户位于region 1的J1需要发送报文给region2、region3、region5、region6的每一个主机为例,对一种跨region的场景内进行报文传输的方法进行说明。
步骤1110:region 1中的J1根据原始用户报文获得第一报文,并将该第一报文发送给region 1中的RR1。
假设第一用户为主机J1-J8、J9-J13、J14-J16、J20-24、J25-32分配的BFR-id分别是1-8、9-13、14-16、20-24、25-32。第一用户位于region 1的J1需要发送报文给region2、region3、region5、region6的每一个主机(例如,J9-J13、J14-J16、J20-J24、J25-J32),J1可以对原始用户报文进行封装,得到如下的第一报文:{IPv6头(SA=J1,DA=RR1_1),IPv6扩展头(BitString=1111 1111,1111 1000,1111 1111,0000 0000),用户报文(UDP,Video Payload)}。其中,IPv6头的SA为J1的地址,DA为RR1上为第一用户分配的地址RR1_1。IPv6扩展头中的BitString从右往左的bit位中值为1的bit位包括:bit 9-16(代表J9-J16),20-32(代表J20-J32)。
J1可以根据DA为RR1上为第一用户分配的地址RR1_1,将该第一报文发送给RR1。
步骤1120:RR1根据第一报文的BitString,对第一报文进行封装获得第二报文,并根据RR1的BIER转发表将该第二报文发送给RR2。
RR1在接收到J1发送的第一报文后,可以确定该第一报文属于第一用户。具体的,作为示例,在RR1上,也需要为第一用户、第二用户分配不同的IP组播复制服务地址,本实施例中用RR1_1和RR1_2分别表示RR1上为第一用户、第二用户提供IP组播复制服务的地址。RR1上收到的第一报文目的地址是RR1_1时,RR1可以确定报文属于第一用户。例如,RR1上为第一用户配置vrf1,将RR1_1的地址绑定在vrf1上。RR1还通过VLAN ID 10子接口绑定第一用户对应的vrf1,VLAN ID 10的子接口连接Fabric0,Fabric0上的路由器设备将VLAN ID 10的子接口和VNI 10绑定,Fabric0-Fabric1之间通过VNI 10标识第一用户。这样RR1上的RR1_1地址只能通过VLAN ID 10、VNI 10进行访问,RR1可以根据接收到的报文目的地址为RR1_1,或者接收报文的接口是VLAN ID 10的子接口等方式确定该第一报文属于第一用户。
为了实现跨region进行报文传输,作为第一用户的服务提供商,会对RR1~RR7分配BFR ID,这个BFR ID的分配空间不同于第一用户,而是服务提供商自己所分配的。例如服务提供商可以对RR1~RR7分别分配BFR ID=1~7。
一种实现方式中,RR1可以根据第一报文中的BitString确定报文要发送给哪些RR所在的region,并确定封装第二报文的BitString,该BitString为服务提供商自己的BitString。在这种实现方式中,为了能根据第一用户的报文中的BitString确定报文要发送给哪些RR 所在的区域,服务提供商会还会建立第一用户的Bit位和服务提供商自己的Bit位的对应关系,以便在收到第一用户的报文后根据报文中的BitString确定服务提供商自己的BitString。具体的如下表3所示。
表3设备RR1上第一用户的Bit位和服务提供商自己的Bit位的对应关系
第一用户的Bitmask | 服务提供商的BFR-id |
0000 0000,0000 0000,0000 0000,1111 1111(bit 1-8) | 1 |
0000 0000,0000 0000,0001 1111,0000 0000(bit 9-13) | 2 |
0000 0000,0000 0000,1110 0000,0000 0000(bit 14-16) | 3 |
0000 0000,1111 1000,0000 0000,0000 0000(bit 20-24) | 5 |
1111 1111,0000 0000,0000 0000,0000 0000(bit 25-32) | 6 |
如果第一用户的报文中的BitString和上表3中的第1行的BitMask进行AND操作的结果为非0,则服务提供商的BitString中的第1位将置1,其它各行同理。作为示例,RR1接收到的第一报文的BitString=1111 1111,1111 1000,1111 1111,0000 0000,其从右往左的bit位中值为1的bit位包括:bit 9-16(代表J9-J16),20-32(代表J20-J32)。因此,RR1可以根据表3确定服务提供商自己的BitString为0011 0110(即自己的BFR ID 2/3/5/6位置1)。
服务提供商还可以建立的自己的BIER转发表,具体的如下表4所示。
表4服务提供商建立的自己的BIER转发表
如表4所示,每个RR节点对于收到的报文,会取报文中的BitString和每个表项中的FBM进行AND操作。当AND操作的结果是非0值时,标识该条表项需要处理。如果该条表项没有Flag=Decapsulation的指示,则会往相应的邻居发送报文,并且发送给邻居的报文的BitString会更新为AND操作后的结果。如果该条表项有Flag=Decapsulation的指示,则会复制一份报文并将报文解封装去掉外层封装的头部,再对内层报文进行转发。
针对第一用户,RR1/RR2/RR3/RR5/RR6上还会生成对应于第一用户vrf1的BIER转发表,如下表5所示。
表5RR1/RR2/RR3/RR5/RR6上对应于第一用户vrf1的BIER转发表
在这种实现方式中,RR1可以对该第一报文封装一个新的IPv6头2和IPv6扩展头2, 得到如下的第二报文:{IPv6头2(SA=RR1_1,DA=0),IPv6扩展头2(BitString=0011 0110),IPv6头(SA=J1,DA=RR1_1),IPv6扩展头(BitString=1111 1111,1111 1000,1111 1111,0000 0000),用户报文(UDP,Video Payload)}。
其中,IPv6头2的SA为RR1上为第一用户分配的地址RR1_1,DA的地址为0,需要进一步的根据由IPv6扩展头2中的BitString所确定的下一跳节点确定。具体的,RR1根据所获得的报文中的Ipv6扩展头2中的BitString以及RR1的BIER转发表(表4),将Ipv6扩展头2中的BitString和BIER转发表中RR1对应的每一个转发表项的FBM进行AND操作,确定是否往该转发表发送(或解封装并发送)报文。
作为示例,本例中只会往Nbr=RR2的这一个转发表项发送,发送给RR2的第二报文如下:
{IPv6头2(SA=RR1_1,DA=RR2),
IPv6扩展头2(BitString=0011 0110),
IPv6头(SA=J1,DA=RR1_1),
IPv6扩展头(BitString=1111 1111,1111 1000,1111 1111,0000 0000),
用户报文(UDP,Video Payload)};
或者,RR1发送给RR2的报文的Ipv6头的目的地址也可以改为组播组地址Mcast-Grp-1,具体的,RR1发送给RR2的第二报文如下:
{IPv6头2(SA=RR1_1,DA=RR2),
IPv6扩展头2(BitString=0011 0110),
IPv6头(SA=J1,DA=Mcast-Grp-1),
IPv6扩展头(BitString=1111 1111,1111 1000,1111 1111,0000 0000),
用户报文(UDP,Video Payload)};
另一种实现方式中,为了避免服务提供商要建立第一用户的Bit位和服务提供商自己的Bit位的对应关系,简化实现的过程,也可以在入口RR路由器(例如,RR1)中配置生成一个第一用户和BitString的静态映射关系。这样,即使第一用户的某个用户报文只到部分区域,报文也会发送给第一用户的所有区域路由器,再在区域路由器上丢弃报文。例如:针对第一用户,RR1上生成如下的对应关系:(第一用户,BitString=0011 0110),其中从右往左的值为1的bit位分别是bit 2/3/5/6,分别对应于RR2/3/5/6。即RR1收到第一用户的报文后会封装隧道头并携带BitString=0011 0110,从而将报文发送给RR2/3/5/6。当RR2收到上述报文,根据Ipv6扩展头2中的BitString以及RR2的BIER转发表,如果报文中的Bit位9-13中有任何一位或多位1bit则报文会发给相应的主机,如果报文中的Bit位9-13中没有任何一个值为1的bit则报文会在RR2上丢弃。这种方式虽然可能导致链路带宽浪费,但对RR1来说实现较为简单,第一用户和第二用户也不需要针对各区域的RR路由器配置BFR ID,只需要服务提供商配置各区域的RR路由器的BFR ID即可。
步骤1130:RR2接收RR1发送的第二报文,并根据RR2的BIER转发表分别向region2中的J9-J13以及RR3发送报文。
一个示例,RR2接收RR1发送的第二报文后,可以根据Ipv6扩展头2中的BitString(0011 0110)中从右往左的第2个bit为置1以及表4中RR2的BIER转发表项“Nbr=RR2*,FBM=0000 0010,Flag=Decapsulation”,确定该第二报文需要往Nbr=RR2的这一转发表 项发送。该表项有Flag=Decapsulation标记,RR2将第二报文解封装获得内层的第一报文{IPv6头(SA=J1,DA=RR1_1),IPv6扩展头(BitString=1111 1111,1111 1000,1111 1111,0000 0000),用户报文(UDP,Video Payload)}。RR2确定第一报文属于第一用户(即vrf1),根据RR2上生成的对应于第一用户vrf1的BIER转发表进行转发。例如,RR2可以根据外层SA=RR1_1确定报文属于第一用户。RR2接收到RR1发送的第二报文中Ipv6头的目的地址也可能是组播组地址Mcast-Grp-1,上述Ipv6头的DA为RR1_1只是一种举例说明。
具体的,RR2可以根据解封装后获得的第一报文的BitString=1111 1111,1111 1000,1111 1111,0000 0000以及转发表项“Nbr=J9,FBM=0000 0000,0000 0000,0000 0000,0000 0001,0000 0000”、“Nbr=J10,FBM=0000 0000,0000 0000,0000 0000,0000 0010,0000 0000”、“Nbr=J11,FBM=0000 0000,0000 0000,0000 0000,0000 0100,0000 0000”、“Nbr=J12,FBM=0000 0000,0000 0000,0000 0000,0000 1000,0000 0000”、“Nbr=J13,FBM=0000 0000,0000 0000,0000 0000,0001 0000,0000 0000”确定需要将第一报文分别发送给J9、J10、J11、J12、J13。发送给J9、J10、J11、J12、J13的报文目的地址分别是J9、J10、J11、J12、J13。
举例说明,RR2发送给J9的报文如下:{IPv6头(SA=J1,DA=J9),IPv6扩展头(BitString=0000 0000,0000 0000,0000 0000,0000 0001,0000 0000),用户报文(UDP,Video Payload)}。发送给J10的报文如下:{IPv6头(SA=J1,DA=J10),IPv6扩展头(BitString=0000 0000,0000 0000,0000 0000,0000 0010,0000 0000),用户报文(UDP,Video Payload)}。发送给J11的报文如下:{IPv6头(SA=J1,DA=J11),IPv6扩展头(BitString=0000 0000,0000 0000,0000 0000,0000 0100,0000 0000),用户报文(UDP,Video Payload)}。发送给J12的报文如下:{IPv6头(SA=J1,DA=J12),IPv6扩展头(BitString=0000 0000,0000 0000,0000 0000,0000 1000,0000 0000),用户报文(UDP,Video Payload)}。发送给J13的报文如下:{IPv6头(SA=J1,DA=J13),IPv6扩展头(BitString=0000 0000,0000 0000,0000 0000,0001 0000,0000 0000),用户报文(UDP,Video Payload)}。需要说明的是,发送给J9/J10/J11/J12/J13的报文中的用户报文UDP的checksum可以相应的更新。具体的更新方法请参考上文中确定第二报文的checksum值的具体实现方式,此处不再赘述。
另一个示例,RR2接收RR1发送的第二报文后,可以根据Ipv6扩展头2中的BitString(0011 0110)中从右往左的第3、5、6个bit为置1以及表4中RR2的BIER转发表项“Nbr=RR3,FBM=0111 1100”,确定需要向RR3发送报文。发送给RR3的报文如下:{IPv6头2(SA=RR1_1,DA=RR3),IPv6扩展头2(BitString=0011 0100),IPv6头(SA=J1,DA=RR1_1),IPv6扩展头(BitString=1111 1111,1111 1000,1111 1111,0000 0000),用户报文(UDP,Video Payload)}。RR2接收RR1发送的第二报文中,Ipv6头的目的地址也可能是组播组地址Mcast-Grp-1,上述Ipv6头的目的地址为RR1_1只是一种举例说明。
步骤1140:RR3接收RR2发送的报文,并根据RR3的BIER转发分别向region3中的J14-J16以及RR4发送报文。
一个示例,RR3接收RR2发送的报文后,可以根据Ipv6扩展头2中的BitString(0011 0100)中从右往左的第3个bit为置1以及表4中RR3的BIER转发表项“Nbr=RR3*,FBM=0000 0100,Flag=Decapsulation”,确定该报文需要往Nbr=RR3的这一转发表项发送。该表项有Flag=Decapsulation标记,RR3将报文解封装获得内层报文{IPv6头(SA=J1, DA=RR1_1),IPv6扩展头(BitString=1111 1111,1111 1000,1111 1111,0000 0000),用户报文(UDP,Video Payload)}。RR3确定该报文属于第一用户(即vrf1),根据表5中RR3上生成的对应于第一用户vrf1的BIER转发表进行转发。RR3接收RR2发送的报文中Ipv6头的目的地址也可能是组播组地址Mcast-Grp-1,上述Ipv6头的DA为RR1_1只是一种举例说明。
具体的,RR3可以根据解封装后获得的内层报文的BitString=1111 1111,1111 1000,1111 1111,0000 0000以及转发表项“Nbr=J14,FBM=0000 0000,0000 0000,0000 0000,0010 0000,0000 0000”、“Nbr=J15,FBM=0000 0000,0000 0000,0000 0000,0100 0000,0000 0000”、“Nbr=J16,FBM=0000 0000,0000 0000,0000 0000,1000 0000,0000 000”,将内层报文分别发送给J14、J15、J16。发送给J14、J15、J16的报文目的地址分别是J14、J15、J16。
举例说明,RR3发送给J14的报文如下:{IPv6头(SA=J1,DA=J14),IPv6扩展头(BitString=0000 0000,0000 0000,0000 0000,0010 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J15的报文如下:{IPv6头(SA=J1,DA=J15),IPv6扩展头(BitString=0000 0000,0000 0000,0000 0000,0100 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J16的报文如下:{IPv6头(SA=J1,DA=J16),IPv6扩展头(BitString=0000 0000,0000 0000,0000 0000,1000 0000,0000 000),用户报文(UDP,Video Payload)}。需要说明的是,发送给J14/J15/J16的报文中的用户报文UDP的checksum可以相应的更新。具体的更新方法请参考上文中确定第二报文的checksum值的具体实现方式,此处不再赘述。
另一个示例,RR3接收RR1发送的报文后,可以根据Ipv6扩展头2中的BitString(0011 0100)中从右往左的第5、6个bit为置1以及表4中RR3的BIER转发表项“Nbr=RR4,FBM=0111 1000”,确定需要将该报文发送给RR4。发送给RR4的报文如下:{IPv6头2(SA=RR1_1,DA=RR4),IPv6扩展头2(BitString=0011 0000),IPv6头(SA=J1,DA=RR1_1),IPv6扩展头(BitString=1111 1111,1111 1000,1111 1111,0000 0000),用户报文(UDP,Video Payload)}。RR3发送给RR4的报文中Ipv6头的目的地址也可能是组播组地址Mcast-Grp-1,上述Ipv6头的DA为RR1_1只是一种举例说明。
步骤1150:RR4接收RR3发送的报文,并根据RR4的BIER转发表分别向RR5以及RR6发送报文。
一个示例,RR4接收RR3发送的报文后,可以根据Ipv6扩展头2中的BitString(0011 0000)中从右往左的第5、第6个bit为置1以及表4中RR4的BIER转发表项“Nbr=RR5,FBM=0101 0000”、“Nbr=RR6,FBM=0010 0000”,确定需要将该报文发送给RR5、RR6。
举例说明,发送给RR5的报文如下:{IPv6头2(SA=RR1_1,DA=RR5),IPv6扩展头2(BitString=0001 0000),IPv6头(SA=J1,DA=RR1_1),IPv6扩展头(BitString=1111 1111,1111 1000,1111 1111,0000 0000),用户报文(UDP,Video Payload)}。发送给RR6的报文如下:{IPv6头2(SA=RR1_1,DA=RR6),IPv6扩展头2(BitString=0010 0000),IPv6头(SA=J1,DA=RR1_1),IPv6扩展头(BitString=1111 1111,1111 1000,1111 1111,0000 0000),用户报文(UDP,Video Payload)}。RR4发送给RR5的报文中Ipv6头的目的地址也可能是组播组地址Mcast-Grp-1,上述Ipv6头的DA为RR1_1只是一种举例说明。
步骤1160:RR5接收RR4发送的报文,并根据RR5的BIER转发表分别向region5 中的J20-J24发送报文。
RR5接收RR4发送的报文后,可以根据Ipv6扩展头2中的BitString(0001 0000)中从右往左的第5个bit为置1以及表4中RR5的BIER转发表项“Nbr=RR5*,FBM=0001 0000,Flag=Decapsulation”,确定该报文需要往Nbr=RR5的这一转发表项发送。该表项有Flag=Decapsulation标记,RR5将该报文解封装获得内层报文{IPv6头(SA=J1,DA=RR1_1),IPv6扩展头(BitString=1111 1111,1111 1000,1111 1111,0000 0000),用户报文(UDP,Video Payload)}。RR5确定该报文属于第一用户(即vrf1),根据表5中RR5上生成的对应于第一用户vrf1的BIER转发表进行转发。
具体的,RR5可以根据解封装后获得的内层报文的BitString=1111 1111,1111 1000,1111 1111,0000 0000以及转发表项“Nbr=J20,FBM=0000 0000,0000 0000,0000 1000,0000 0000,0000 0000”、“Nbr=J21,FBM=0000 0000,0000 0000,0001 0000,0000 0000,0000 0000”、“Nbr=J22,FBM=0000 0000,0000 0000,0010 0000,0000 0000,0000 0000”、“Nbr=J23,FBM=0000 0000,0000 0000,0100 0000,0000 0000,0000 0000”、“Nbr=J24,FBM=0000 0000,0000 0000,1000 0000,0000 0000,0000 0000”,将内层报文分别发送给J20、J21、J22、J23、J24。发送给J20、J21、J22、J23、J24的报文目的地址分别是J20、J21、J22、J23、J24。
举例说明,RR5发送给J20的报文如下:{IPv6头(SA=J1,DA=J20),IPv6扩展头(BitString=0000 0000,0000 0000,0000 1000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J21的报文如下:{IPv6头(SA=J1,DA=J21),IPv6扩展头(BitString=0000 0000,0000 0000,0001 0000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J22的报文如下:{IPv6头(SA=J1,DA=J22),IPv6扩展头(BitString=0000 0000,0000 0000,0010 0000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J23的报文如下:{IPv6头(SA=J1,DA=J23),IPv6扩展头(BitString=0000 0000,0000 0000,0100 0000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J24的报文如下:{IPv6头(SA=J1,DA=J24),IPv6扩展头(BitString=0000 0000,0000 0000,1000 0000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。
需要说明的是,发送给J20/J21/J22/J23/J24的报文中的用户报文UDP的checksum可以相应的更新。具体的更新方法请参考上文中确定第二报文的checksum值的具体实现方式,此处不再赘述。
步骤1170:RR6接收RR4发送的报文,并根据RR6的BIER转发表分别向region6中的J25-J32发送报文。
RR6接收RR4发送的报文后,可以根据Ipv6扩展头2中的BitString(0010 0000)中从右往左的第6个bit为置1以及表4中RR6的BIER转发表项“Nbr=RR6*,FBM=0010 0000,Flag=Decapsulation”,确定该报文需要往Nbr=RR6的这一转发表项发送。该表项有Flag=Decapsulation标记,RR6将该报文解封装获得内层报文{IPv6头(SA=J1,DA=RR1_1),IPv6扩展头(BitString=1111 1111,1111 1000,1111 1111,0000 0000),用户报文(UDP,Video Payload)}。RR6确定该报文属于第一用户(即vrf1),根据表5中RR6上生成的对应于第一用户vrf1的BIER转发表进行转发。RR4发送给RR6的报文中Ipv6头的目的地址也可能是组播组地址Mcast-Grp-1,上述Ipv6头的DA为RR1_1只是一种举例说明。
具体的,RR6可以根据解封装后获得的内层报文的BitString=1111 1111,1111 1000,1111 1111,0000 0000以及转发表项“Nbr=J25,FBM=0000 0000,0000 0001,0000 0000,0000 0000,0000 0000”、“Nbr=J26,FBM=0000 0000,0000 0010,0000 0000,0000 0000,0000 0000”、“Nbr=J27,FBM=0000 0000,0000 0100,0000 0000,0000 0000,0000 0000”、“Nbr=J28,FBM=0000 0000,0000 1000,0000 0000,0000 0000,0000 0000”、“Nbr=J29,FBM=0000 0000,0001 0000,0000 0000,0000 0000,0000 0000”、“Nbr=J30,FBM=0000 0000,0010 0000,0000 0000,0000 0000,0000 0000”、“Nbr=J31,FBM=0000 0000,0100 0000,0000 0000,0000 0000,0000 0000”、“Nbr=J32,FBM=0000 0000,1000 0000,0000 0000,0000 0000,0000 0000”,将内层报文分别发送给J25-J32。发送给J25、J26、J27、J28、J29、J30、J31、J32的报文目的地址分别是J25、J26、J27、J28、J29、J30、J31、J32。
举例说明,RR6发送给J25的报文如下:{IPv6头(SA=J1,DA=J25),IPv6扩展头(BitString=0000 0000,0000 0001,0000 0000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J26的报文如下:{IPv6头(SA=J1,DA=J26),IPv6扩展头(BitString=0000 0000,0000 0010,0000 0000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J27的报文如下:{IPv6头(SA=J1,DA=J27),IPv6扩展头(BitString=0000 0000,0000 0100,0000 0000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J28的报文如下:{IPv6头(SA=J1,DA=J28),IPv6扩展头(BitString=0000 0000,0000 1000,0000 0000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J29的报文如下:{IPv6头(SA=J1,DA=J29),IPv6扩展头(BitString=0000 0000,0001 0000,0000 0000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J30的报文如下:{IPv6头(SA=J1,DA=J30),IPv6扩展头(BitString=0000 0000,0010 0000,0000 0000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J31的报文如下:{IPv6头(SA=J1,DA=J31),IPv6扩展头(BitString=0000 0000,0100 0000,0000 0000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J32的报文如下:{IPv6头(SA=J1,DA=J32),IPv6扩展头(BitString=0000 0000,1000 0000,0000 0000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。
需要说明的是,发送给J25/J26/J27/J28/J29/J30/J31/J32的报文中的用户报文UDP的checksum可以相应的更新。具体的更新方法请参考上文中确定第二报文的checksum值的具体实现方式,此处不再赘述。
在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上文结合图1至图11,详细描述了本申请实施例提供的报文传输方法,下面将结合图12至图17,详细描述本申请的装置的实施例。方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图12是本申请实施例提供的一种用于报文传输的装置1200的示意性结构图,该装置1200设置于第一网络设备。图12所示的该用于报文传输的装置1200可以执行上述实施例的报文传输方法的相应步骤。如图12所示,该装置1200包括:接收模块1210,处理模块1220和发送模块1230。接收模块1210用于接收源用户设备发送的第一报文,该第 一报文包括第一比特串和目的地址DA,该第一比特串用于指示至少一个目的用户设备,该第一报文的DA为该第一网络设备的地址。处理模块1220用于根据该第一比特串获取第二报文,该第二报文包括第一信息,该第一信息用于指示到达该至少一个目的用户设备的下一跳设备。发送模块1230用于向该下一跳设备发送该第二报文。
可选地,该下一跳设备为第一目的用户设备,该发送模块1230具体用于:向该第一目的用户设备发送该第二报文,该第一信息包括作为DA的该第一目的用户设备的地址。
可选地,该下一跳设备为第二网络设备,该发送模块1230具体用于:向该第二网络设备发送该第二报文,该第一信息包括作为DA的该第二网络设备的地址。
可选地,该下一跳设备为第二网络设备,该发送模块1230具体用于:通过隧道向该第二网络设备发送该第二报文,该第二报文包括隧道头,该第一信息为该隧道头包括的与该隧道对应的信息。
可选地,该第二报文包括该隧道头和该第一报文。
可选地,该第二报文包括该隧道头和第三报文,该第三报文是基于组播地址和该第一报文获得的报文,该第三报文的DA为该组播地址;或者该第二报文包括该隧道头和第三报文,该第三报文是基于该第一报文和该第二网络设备的地址获得的报文,该第三报文的DA为该第二网络设备的地址。
可选地,该第一网络设备位于第一区域region,该第二网络设备位于第二region,该第一信息包括第二比特串,该第二比特串用于指示该第二网络设备。
可选地,该处理模块1220还用于:根据对应关系和该第一比特串,获得该第二比特串,该对应关系包括该第一比特串中与该至少一个目的用户设备对应的比特位和该第二比特串中与该第二网络设备对应的比特位;根据该第二比特串获得该第二报文。
可选地,该第一网络设备位于第一数据中心,该第二网络设备位于第二数据中心;或者该第一网络设备位于第一region,该第二网络设备位于第二region。
可选地,该第一报文还包括第一校验checksum,该第二报文还包括第二checksum,该第二checksum是基于该第一checksum、该第一报文的DA以及该第一信息获得的checksum。
可选地,该源用户设备和该至少一个目的用户设备属于同一用户。
可选地,所述第一报文为互联网协议第六版IPv6单播报文,所述IPv6单播报文包括IPv6扩展头,所述第一比特串位于所述IPv6扩展头中。
图13是本申请实施例提供的一种用于报文传输的装置1300的示意性结构图,该装置1300设于第二设备。图13所示的该用于报文传输的装置1300可以执行上述实施例的报文传输方法中的相应步骤。如图13所示,该装置1300包括:接收模块1310,用于接收第一设备发送的第二报文,该第二报文包括第一信息,该第一信息用于指示第一设备到达至少一个目的用户设备的下一跳设备。
可选地,该第二设备为第一目的用户设备,该第一设备为第一网络设备,该第一信息包括作为目的地址DA的该第一目的用户设备的地址。
可选地,该第二设备为第二网络设备,该第一设备为第一网络设备,该第一设备为该第一网络设备,该第一信息包括作为DA的该第二网络设备的地址。
可选地,该第二设备为第二网络设备,该第一设备为第一网络设备,该接收模块1310 具体用于:该第二网络设备通过隧道接收该第一网络设备发送的该第二报文,该第二报文包括隧道头,该第一信息为该隧道头包括的与该隧道对应信息。
可选地,该第二报文包括该隧道头和第一报文,该第一报文包括第一比特串,该第一比特串用于指示该至少一个目的用户设备。
可选地,该第二报文包括该隧道头和第三报文,该第三报文是基于组播地址和第一报文获得的报文,该第三报文的DA为该组播地址,该第一报文包括第一比特串,该第一比特串用于指示该至少一个目的用户设备;或者该第二报文包括该隧道头和第三报文,该第三报文是基于该第一报文和该第二网络设备的地址获得的报文,该第三报文的DA为该第二网络设备的地址,该第一报文包括第一比特串,该第一比特串用于指示该至少一个目的用户设备。
可选地,该第一网络设备位于第一区域region,该第二网络设备位于第二region,该第一信息包括第二比特串,该第二比特串用于指示该第二网络设备。
可选地,该第二报文还包括用户报文和第一比特串,该第一比特串用于指示该至少一个目的用户设备,该装置1300还包括:处理模块1320,发送模块1330,
处理模块1320,用于基于该第二报文获得该用户报文;
发送模块1330,用于根据该第二报文包括的该第一比特串和该第一信息,向该第一目的用户设备发送该用户报文。
可选地,该第二报文还包括用户报文,处理模块1320,用于对该第二报文进行解封装获得该用户报文;发送模块1330,用于根据该第二报文包括的该第一比特串和该第一信息,向该第一目的用户设备发送该用户报文。
可选地,该第一网络设备位于第一数据中心,该第二网络设备位于第二数据中心;或者该第一网络设备位于第一region,该第二网络设备位于第二region。
可选地,该第二报文还包括第二校验checksum,该第二checksum是基于第一报文包括的第一checksum、该第一报文的DA以及该第一信息获得的checksum。
图14是本申请实施例的用于报文传输的装置2000的硬件结构示意图,该装置2000设置于第一网络设备。图14所示的用于报文传输的装置2000可以执行上述实施例的报文传输方法。如图14所示,该装置2000包括处理器2001、存储器2002、接口2003和总线2004。其中接口2003可以通过无线或有线的方式实现,具体来讲可以是网卡。上述处理器2001、存储器2002和接口2003通过总线2004连接。所述接口2003具体可以包括发送器和接收器,用于第一网络设备实现上述收发。所述处理器2001用于执行上述实施例中由第一网络设备进行的处理。存储器2002包括操作系统20021和应用程序20022,用于存储程序、代码或指令,当处理器或硬件设备执行这些程序、代码或指令时可以完成方法实施例中涉及BFIR的处理过程。可选的,所述存储器2002可以包括只读存储器(read-only memory,ROM)和随机存取存储器(random access memory,RAM)。其中,所述ROM包括基本输入/输出系统(basic input/output system,BIOS)或嵌入式系统;所述RAM包括应用程序和操作系统。当需要运行第一网络设备2000时,通过固化在ROM中的BIOS或者嵌入式系统中的bootloader引导系统进行启动,引导第一网络设备进入正常运行状态。在第一网络设备进入正常运行状态后,运行在RAM中的应用程序和操作系统,从而,完成方法实施例中涉及第一网络设备的处理过程。图14仅仅示出了用于报文 传输的装置2000的简化设计。在实际应用中,该装置可以包含任意数量的接口,处理器或者存储器。
图15为本申请实施例的另一种用于报文传输的装置2100的硬件结构示意图,该装置2100设置于第一网络设备。图15所示的用于报文传输的装置2100可以执行上述实施例的报文传输方法。如图15所述,该装置2100包括:主控板2110、接口板2130、交换网板2120和接口板2140。主控板2110、接口板2130和2140,以及交换网板2120之间通过系统总线与系统背板相连实现互通。其中,主控板2110用于完成系统管理、设备维护、协议处理等功能。交换网板2120用于完成各接口板(接口板也称为线卡或业务板)之间的数据交换。接口板2130和2140用于提供各种业务接口(例如,POS接口、GE接口、ATM接口等),并实现数据包的转发。接口板2130可以包括中央处理器2131、转发表项存储器2134、物理接口卡2133和网络处理器2132。其中,中央处理器2131用于对接口板进行控制管理并与主控板上的中央处理器进行通信。转发表项存储器2134用于保存表项,例如,上文中的转发表项。物理接口卡2133用于完成流量的接收和发送。本申请实施例中接口板2140上的操作与所述接口板2130的操作一致,为了简洁,不再赘述。本实施例的用于报文传输的装置2100可对应于上述方法实施例所具有的功能和/或所实施的各种步骤,在此不再赘述。
此外,需要说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,BFIR的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,第一网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下第一网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的第一网络设备的数据接入和处理能力要大于集中式架构的设备。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
图16是本申请实施例的用于报文传输的装置2200的硬件结构示意图,该装置2200设于第二设备。图16所示用于报文传输的装置2200可以执行上述实施例的方法中第二设备执行的相应步骤。如图16所示,该装置2200包括处理器2201、存储器2202、接口2203和总线2204。其中接口2203可以通过无线或有线的方式实现,具体来讲可以是网卡。上述处理器2201、存储器2202和接口2203通过总线2204连接。所述接口2203具体可以包括发送器和接收器,用于第二设备实现上述收发。所述处理器2201用于执行上述实施例中由第二设备进行的处理。存储器2202包括操作系统22021和应用程序22022,用于存储程序、代码或指令,当处理器或硬件设备执行这些程序、代码或指令时可以完成方法实施例中涉及第二设备的处理过程。可选的,所述存储器2202可以包括只读存储器(read-only memory,ROM)和随机存取存储器(random access memory,RAM)。其中,所述ROM包括基本输入/输出系统(basic input/output system,BIOS)或嵌入式系统;所述RAM包括应用程序和操作系统。当需要运行第二设备时,通过固化在ROM中的BIOS或者嵌入式系统中的bootloader引导系统进行启动,引导第二设备进入正常运行状态。在第二设备进入正常运行状态后,运行在RAM中的应用程序和操作系统,从而,完成方法 实施例中涉及第二设备的处理过程。图16仅仅示出了用于报文传输的装置2200的简化设计。在实际应用中,该装置可以包含任意数量的接口,处理器或者存储器。
图17为本申请实施例的另一种用于报文传输的装置2300的硬件结构示意图,该装置2300设于第二设备。图17所示的用于报文传输的装置2300可以执行上述实施例的方法中第二设备执行的相应步骤。如图17所述,该装置2300包括:主控板2310、接口板2330、交换网板2320和接口板2340。主控板2310、接口板2330和2340,以及交换网板2320之间通过系统总线与系统背板相连实现互通。其中,主控板2310用于完成系统管理、设备维护、协议处理等功能。交换网板2320用于完成各接口板(接口板也称为线卡或业务板)之间的数据交换。接口板2330和2340用于提供各种业务接口(例如,POS接口、GE接口、ATM接口等),并实现数据包的转发。接口板2330可以包括中央处理器2331、转发表项存储器2334、物理接口卡2333和网络处理器2332。其中,中央处理器2331用于对接口板进行控制管理并与主控板上的中央处理器进行通信。转发表项存储器2334用于保存表项,例如,上文中的转发表项。物理接口卡2133用于完成流量的接收和发送。本申请实施例中接口板2340上的操作与所述接口板2330的操作一致,为了简洁,不再赘述。本实施例的用于报文传输的装置2300可对应于上述方法实施例所具有的功能和/或所实施的各种步骤,在此不再赘述。
本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第一网络设备执行的方法。这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-only memory,ROM)、可编程ROM(programmable ROM,PROM)、可擦除的PROM(erasable PROM,EPROM)、Flash存储器、电EPROM(electrically EPROM,EEPROM)以及硬盘驱动器(hard drive)。
本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第二设备执行的方法。这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-only memory,ROM)、可编程ROM(programmable ROM,PROM)、可擦除的PROM(erasable PROM,EPROM)、Flash存储器、电EPROM(electrically EPROM,EEPROM)以及硬盘驱动器(hard drive)。
本申请实施例还提供了一种芯片,应用于第一网络设备中,该芯片包括:至少一个处理器、至少一个存储器和接口电路,所述接口电路负责所述芯片与外界的信息交互,所述至少一个存储器、所述接口电路和所述至少一个处理器通过线路互联,所述至少一个存储器中存储有指令;所述指令被所述至少一个处理器执行,以进行上述各个方面的所述的方法中所述第一网络设备的操作。在具体实现过程中,该芯片可以以中央处理器(central processing unit,CPU)、微控制器(micro controller unit,MCU)、微处理器(micro processing unit,MPU)、数字信号处理器(digital signal processing,DSP)、片上系统(system on chip,SoC)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或可编辑逻辑器件(programmable logic device,PLD)的形式实现。
本申请实施例还提供了一种芯片,应用于第二设备中,该芯片包括:至少一个处理器、至少一个存储器和接口电路,所述接口电路负责所述芯片与外界的信息交互,所述至少一 个存储器、所述接口电路和所述至少一个处理器通过线路互联,所述至少一个存储器中存储有指令;所述指令被所述至少一个处理器执行,以进行上述各个方面的所述的方法第二设备的操作。在具体实现过程中,该芯片可以以中央处理器(central processing unit,CPU)、微控制器(micro controller unit,MCU)、微处理器(micro processing unit,MPU)、数字信号处理器(digital signal processing,DSP)、片上系统(system on chip,SoC)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或可编辑逻辑器件(programmable logic device,PLD)的形式实现。
本申请实施例还提供了一种计算机程序产品,应用于第一网络设备中,所述计算机程序产品包括一系列指令,当所述指令被运行时,以进行上述各个方面的所述的方法中所述第一网络设备的操作。
本申请实施例还提供了一种计算机程序产品,应用于第二设备中,所述计算机程序产品包括一系列指令,当所述指令被运行时,以进行上述各个方面的所述的方法中所述第二设备的操作。
本申请实施例还提供了一种系统,包括:上述第一网络设备和第二设备。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机 存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (46)
- 一种报文传输方法,其特征在于,所述方法包括:第一网络设备接收源用户设备发送的第一报文,所述第一报文包括第一比特串和目的地址DA,所述第一比特串用于指示至少一个目的用户设备,所述第一报文的DA为所述第一网络设备的地址;所述第一网络设备根据所述第一比特串获取第二报文,所述第二报文包括第一信息,所述第一信息用于指示到达所述至少一个目的用户设备的下一跳设备;所述第一网络设备向所述下一跳设备发送所述第二报文。
- 根据权利要求1所述的方法,其特征在于,所述下一跳设备为第一目的用户设备,所述第一网络设备向所述下一跳设备发送所述第二报文,包括:所述第一网络设备向所述第一目的用户设备发送所述第二报文,所述第一信息包括作为DA的所述第一目的用户设备的地址。
- 根据权利要求1所述的方法,其特征在于,所述下一跳设备为第二网络设备,所述第一网络设备向所述下一跳设备发送所述第二报文,包括:所述第一网络设备向所述第二网络设备发送所述第二报文,所述第一信息包括作为DA的所述第二网络设备的地址。
- 根据权利要求1所述的方法,其特征在于,所述下一跳设备为第二网络设备,所述第一网络设备向所述下一跳设备发送所述第二报文,包括:所述第一网络设备通过隧道向所述第二网络设备发送所述第二报文,所述第二报文包括隧道头,所述第一信息为所述隧道头包括的与所述隧道对应的信息。
- 根据权利要求4所述的方法,其特征在于,所述第二报文包括所述隧道头和所述第一报文。
- 根据权利要求4所述的方法,其特征在于,所述第二报文包括所述隧道头和第三报文,所述第三报文是基于组播地址和所述第一报文获得的报文,所述第三报文的DA为所述组播地址;或者所述第二报文包括所述隧道头和第三报文,所述第三报文是基于所述第一报文和所述第二网络设备的地址获得的报文,所述第三报文的DA为所述第二网络设备的地址。
- 根据权利要求4所述的方法,其特征在于,所述第一网络设备位于第一区域region,所述第二网络设备位于第二region,所述第一信息包括第二比特串,所述第二比特串用于指示所述第二网络设备。
- 根据权利要求7所述的方法,其特征在于,所述方法还包括:所述第一网络设备根据对应关系和所述第一比特串,获得所述第二比特串,所述对应关系包括所述第一比特串中与所述至少一个目的用户设备对应的比特位和所述第二比特串中与所述第二网络设备对应的比特位;所述第一网络根据所述第二比特串获得所述第二报文。
- 根据权利要求3至8任一所述的方法,其特征在于,所述第一网络设备位于第一数据中心,所述第二网络设备位于第二数据中心;或者所述第一网络设备位于第一region,所述第二网络设备位于第二region。
- 根据权利要求1至9任一所述的方法,其特征在于,所述第一报文还包括第一校验checksum,所述第二报文还包括第二checksum,所述第二checksum是基于所述第一checksum、所述第一报文的DA以及所述第一信息获得的checksum。
- 根据权利要求1至10中任一项所述的方法,其特征在于,所述源用户设备和所述至少一个目的用户设备属于同一用户。
- 根据权利要求1至11中任一项所述的方法,其特征在于,所述第一报文为互联网协议第六版IPv6单播报文,所述IPv6单播报文包括IPv6扩展头,所述第一比特串位于所述IPv6扩展头中。
- 一种报文传输方法,其特征在于,所述方法包括:第二设备接收第一设备发送的第二报文,所述第二报文包括第一信息,所述第一信息用于指示第一设备到达至少一个目的用户设备的下一跳设备。
- 根据权利要求13所述的方法,其特征在于,所述第二设备为第一目的用户设备,所述第一设备为第一网络设备,所述第一信息包括作为目的地址DA的所述第一目的用户设备的地址。
- 根据权利要求13所述的方法,其特征在于,所述第二设备为第二网络设备,所述第一设备为所述第一网络设备,所述第一信息包括作为DA的所述第二网络设备的地址。
- 根据权利要求13所述的方法,其特征在于,所述第二设备为第二网络设备,所述第一设备为第一网络设备,所述第二设备接收第一网络设备发送的第二报文,包括:所述第二网络设备通过隧道接收所述第一网络设备发送的所述第二报文,所述第二报文包括隧道头,所述第一信息为所述隧道头包括的与所述隧道对应信息。
- 根据权利要求16所述的方法,其特征在于,所述第二报文包括所述隧道头和第一报文,所述第一报文包括第一比特串,所述第一比特串用于指示所述至少一个目的用户设备。
- 根据权利要求16所述的方法,其特征在于,所述第二报文包括所述隧道头和第三报文,所述第三报文是基于组播地址和第一报文获得的报文,所述第三报文的DA为所述组播地址,所述第一报文包括第一比特串,所述第一比特串用于指示所述至少一个目的用户设备;或者所述第二报文包括所述隧道头和第三报文,所述第三报文是基于所述第一报文和所述第二网络设备的地址获得的报文,所述第三报文的DA为所述第二网络设备的地址,所述第一报文包括第一比特串,所述第一比特串用于指示所述至少一个目的用户设备。
- 根据权利要求16至18任一所述的方法,其特征在于,所述第一网络设备位于第一区域region,所述第二网络设备位于第二region,所述第一信息包括第二比特串,所述第二比特串用于指示所述第二网络设备。
- 根据权利要求15所述的方法,其特征在于,所述第二报文还包括用户报文和第一比特串,所述第一比特串用于指示所述至少一个目的用户设备,所述方法还包括:所述第二网络设备基于所述第二报文获得所述用户报文;所述第二网络设备根据所述第二报文包括的所述第一比特串和所述第一信息,向所述至少一个目的用户设备发送所述用户报文。
- 根据权利要求16至18任一所述的方法,其特征在于,所述第二报文还包括用户报文,所述方法还包括:所述第二网络设备对所述第二报文进行解封装获得所述用户报文;所述第二网络设备根据所述第二报文包括的所述第一比特串和所述第一信息,向所述第一目的用户设备发送所述用户报文。
- 根据权利要求15至20任一所述的方法,其特征在于,所述第一网络设备位于第一数据中心,所述第二网络设备位于第二数据中心;或者所述第一网络设备位于第一region,所述第二网络设备位于第二region。
- 根据权利要求13至22任一所述的方法,其特征在于,所述第二报文还包括第二校验checksum,所述第二checksum是基于第一报文包括的第一checksum、所述第一报文的DA以及所述第一信息获得的checksum。
- 一种用于报文传输的装置,其特征在于,所述装置设置于第一网络设备,包括:接收模块,用于接收源用户设备发送的第一报文,所述第一报文包括第一比特串和目的地址DA,所述第一比特串用于指示至少一个目的用户设备,所述第一报文的DA为所述第一网络设备的地址;处理模块,用于根据所述第一比特串获取第二报文,所述第二报文包括第一信息,所述第一信息用于指示到达所述至少一个目的用户设备的下一跳设备;发送模块,用于向所述下一跳设备发送所述第二报文。
- 根据权利要求24所述的装置,其特征在于,所述下一跳设备为第一目的用户设备,所述发送模块具体用于:向所述第一目的用户设备发送所述第二报文,所述第一信息包括作为DA的所述第一目的用户设备的地址。
- 根据权利要求24所述的装置,其特征在于,所述下一跳设备为第二网络设备,所述发送模块具体用于:向所述第二网络设备发送所述第二报文,所述第一信息包括作为DA的所述第二网络设备的地址。
- 根据权利要求24所述的装置,其特征在于,所述下一跳设备为第二网络设备,所述发送模块具体用于:通过隧道向所述第二网络设备发送所述第二报文,所述第二报文包括隧道头,所述第一信息为所述隧道头包括的与所述隧道对应的信息。
- 根据权利要求27所述的装置,其特征在于,所述第二报文包括所述隧道头和所述第一报文。
- 根据权利要求27所述的装置,其特征在于,所述第二报文包括所述隧道头和第三报文,所述第三报文是基于组播地址和所述第一报文获得的报文,所述第三报文的DA为所述组播地址;或者所述第二报文包括所述隧道头和第三报文,所述第三报文是基于所述第一报文和所述第二网络设备的地址获得的报文,所述第三报文的DA为所述第二网络设备的地址。
- 根据权利要求27至29任一所述的装置,其特征在于,所述第一网络设备位于第一区域region,所述第二网络设备位于第二region,所述第一信息包括第二比特串,所述 第二比特串用于指示所述第二网络设备。
- 根据权利要求30所述的装置,其特征在于,所述处理模块还用于:根据对应关系和所述第一比特串,获得所述第二比特串,所述对应关系包括所述第一比特串中与所述至少一个目的用户设备对应的比特位和所述第二比特串中与所述第二网络设备对应的比特位;根据所述第二比特串获得所述第二报文。
- 根据权利要求26至31任一所述的装置,其特征在于,所述第一网络设备位于第一数据中心,所述第二网络设备位于第二数据中心;或者所述第一网络设备位于第一region,所述第二网络设备位于第二region。
- 根据权利要求24至32任一所述的装置,其特征在于,所述第一报文还包括第一校验checksum,所述第二报文还包括第二checksum,所述第二checksum是基于所述第一checksum、所述第一报文的DA以及所述第一信息获得的checksum。
- 根据权利要求24至33中任一所述的装置,其特征在于,所述源用户设备和所述至少一个目的用户设备属于同一用户。
- 根据权利要求24至34中任一项所述的装置,其特征在于,所述第一报文为互联网协议第六版IPv6单播报文,所述IPv6单播报文包括IPv6扩展头,所述第一比特串位于所述IPv6扩展头中。
- 一种用于报文传输的装置,其特征在于,所述装置设于第二设备,包括:接收模块,用于接收第一设备发送的第二报文,所述第二报文包括第一信息,所述第一信息用于指示第一设备到达至少一个目的用户设备的下一跳设备。
- 根据权利要求36所述的装置,其特征在于,所述第二设备为第一目的用户设备,所述第一设备为第一网络设备,所述第一信息包括作为目的地址DA的所述第一目的用户设备的地址。
- 根据权利要求36所述的装置,其特征在于,所述第二设备为第二网络设备,所述第一设备为所述第一网络设备,所述第一信息包括作为DA的所述第二网络设备的地址。
- 根据权利要求36所述的装置,其特征在于,所述第二设备为第二网络设备,所述第一设备为第一网络设备,所述接收模块具体用于:通过隧道接收所述第一网络设备发送的所述第二报文,所述第二报文包括隧道头,所述第一信息为所述隧道头包括的与所述隧道对应信息。
- 根据权利要求39所述的装置,其特征在于,所述第二报文包括所述隧道头和第一报文,所述第一报文包括第一比特串,所述第一比特串用于指示所述至少一个目的用户设备。
- 根据权利要求39所述的装置,其特征在于,所述第二报文包括所述隧道头和第三报文,所述第三报文是基于组播地址和第一报文获得的报文,所述第三报文的DA为所述组播地址,所述第一报文包括第一比特串,所述第一比特串用于指示所述至少一个目的用户设备;或者所述第二报文包括所述隧道头和第三报文,所述第三报文是基于所述第一报文和所述第二网络设备的地址获得的报文,所述第三报文的DA为所述第二网络设备的地址,所述第一报文包括第一比特串,所述第一比特串用于指示所述至少一个目的用户设备。
- 根据权利要求39至41任一所述的装置,其特征在于,所述第一网络设备位于第一区域region,所述第二网络设备位于第二region,所述第一信息包括第二比特串,所述第二比特串用于指示所述第二网络设备。
- 根据权利要求38所述的装置,其特征在于,所述第二报文还包括用户报文和第一比特串,所述第一比特串用于指示所述至少一个目的用户设备,所述第二设备还包括:处理模块,用于基于所述第二报文获得所述用户报文;发送模块,用于根据所述第二报文包括的所述第一比特串和所述第一信息,向所述第一目的用户设备发送所述用户报文。
- 根据权利要求39至41任一所述的装置,其特征在于,所述第二报文还包括用户报文,处理模块,用于对所述第二报文进行解封装获得所述用户报文;发送模块,用于根据所述第二报文包括的所述第一比特串和所述第一信息,向所述第一目的用户设备发送所述用户报文。
- 根据权利要求38至44任一所述的装置,其特征在于,所述第一网络设备位于第一数据中心,所述第二网络设备位于第二数据中心;或者所述第一网络设备位于第一region,所述第二网络设备位于第二region。
- 根据权利要求36至45任一所述的装置,其特征在于,所述第二报文还包括第二校验checksum,所述第二checksum是基于第一报文包括的第一checksum、所述第一报文的DA以及所述第一信息获得的checksum。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110184047.8 | 2021-02-10 | ||
CN202110184047 | 2021-02-10 | ||
CN202110474671.1 | 2021-04-29 | ||
CN202110474671.1A CN114915589B (zh) | 2021-02-10 | 2021-04-29 | 报文传输方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022171014A1 true WO2022171014A1 (zh) | 2022-08-18 |
Family
ID=82761036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2022/074787 WO2022171014A1 (zh) | 2021-02-10 | 2022-01-28 | 报文传输方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114915589B (zh) |
WO (1) | WO2022171014A1 (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160191372A1 (en) * | 2014-12-31 | 2016-06-30 | Juniper Networks, Inc. | Bit index explicit replication (bier)forwarding for network device components |
CN109120526A (zh) * | 2017-06-26 | 2019-01-01 | 北京华为数字技术有限公司 | 点对点的传输报文的方法和网络设备 |
CN111385209A (zh) * | 2018-12-28 | 2020-07-07 | 华为技术有限公司 | 一种报文处理方法、报文转发方法、装置及设备 |
CN112039920A (zh) * | 2020-09-14 | 2020-12-04 | 迈普通信技术股份有限公司 | 通信方法、装置、电子设备及存储介质 |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7286510B2 (en) * | 2002-04-15 | 2007-10-23 | Qualcomm Incorporated | Method and apparatus for providing compatibility between elements of a wireless communication system |
US7447203B2 (en) * | 2003-07-29 | 2008-11-04 | At&T Intellectual Property I, L.P. | Broadband access for virtual private networks |
CN100454900C (zh) * | 2006-01-24 | 2009-01-21 | 华为技术有限公司 | 快速响应ip分片报文的方法和系统 |
KR100905191B1 (ko) * | 2006-11-24 | 2009-06-29 | 주식회사 케이티프리텔 | 엑스 캐스트 ip 데이터그램을 라우팅하는 장치 및 방법 |
CN100596109C (zh) * | 2007-06-05 | 2010-03-24 | 杭州华三通信技术有限公司 | 一种报文混播变换及转发的方法和交换设备 |
CN101946458B (zh) * | 2008-02-25 | 2013-11-20 | 艾利森电话股份有限公司 | 组播数据的传送 |
WO2010139115A1 (zh) * | 2009-06-03 | 2010-12-09 | 上海贝尔股份有限公司 | 多个汇聚节点共同处理移动组播源组播业务的方法及装置 |
CN102377646A (zh) * | 2010-08-12 | 2012-03-14 | 盛科网络(苏州)有限公司 | 转发芯片、网络交换系统及组播实现方法 |
US9036633B2 (en) * | 2011-10-17 | 2015-05-19 | Futurewei Technologies, Inc. | Multicast support for internet protocol version four residual deployment via encapsulation or translation |
CN103095585B (zh) * | 2011-11-02 | 2018-08-07 | 中兴通讯股份有限公司 | 一种IPv4和IPv6之间组播控制流信息互通的方法和系统 |
WO2013139337A2 (en) * | 2012-03-05 | 2013-09-26 | Netiter Aps | SYSTEM AND METHOD FOR DATA COMMUNICATION BETWEEN A FIRST INTERNET PROTOCOL VERSION (IPv4) AND A SECOND INTERNET PROTOCOL VERSION (IPv6) |
CN103841037B (zh) * | 2012-11-21 | 2017-12-29 | 华为技术有限公司 | 组播报文转发的方法及设备 |
WO2016007478A1 (en) * | 2014-07-08 | 2016-01-14 | Intel Corporation | Devices for packet system bearer splitting |
CN105429841B (zh) * | 2014-09-15 | 2020-01-07 | 中兴通讯股份有限公司 | Nni ping的实现方法及装置 |
CN105721359B (zh) * | 2014-12-04 | 2019-11-15 | 中兴通讯股份有限公司 | Vxlan报文传输方法及装置 |
CN106603407B (zh) * | 2015-10-16 | 2020-10-27 | 中兴通讯股份有限公司 | 组播地址的传输方法和装置 |
CN106357542B (zh) * | 2016-10-12 | 2019-10-18 | 华为技术有限公司 | 提供组播业务的方法和软件定义网络控制器 |
CN106878181A (zh) * | 2016-12-29 | 2017-06-20 | 新华三技术有限公司 | 一种报文传输方法和装置 |
US10511548B2 (en) * | 2017-06-22 | 2019-12-17 | Nicira, Inc. | Multicast packet handling based on control information in software-defined networking (SDN) environment |
CN109729009B (zh) * | 2017-10-31 | 2022-08-26 | 华为技术有限公司 | 用于实现组播业务的方法和装置 |
US20190386837A1 (en) * | 2018-06-19 | 2019-12-19 | Juniper Networks, Inc. | Forwarding multicast data packets using bit index explicit replication (bier) for bier-incapable network devices |
US10644900B2 (en) * | 2018-06-19 | 2020-05-05 | Juniper Networks, Inc. | Forwarding multicast data packets using bit index explicit replication (BIER) for BIER-incapable network devices |
CN111147383B (zh) * | 2018-11-02 | 2021-06-29 | 华为技术有限公司 | 报文转发的方法、发送报文的装置和接收报文的装置 |
CN109688240A (zh) * | 2018-12-24 | 2019-04-26 | 睿哲科技股份有限公司 | IPv4组播和IPv6组播互相转换装置和设备 |
CN109729012B (zh) * | 2018-12-24 | 2021-08-24 | 新华三技术有限公司 | 一种单播报文传输方法和装置 |
US10880208B1 (en) * | 2019-02-11 | 2020-12-29 | Google Llc | Offloads for multicast virtual network packet processing in a network interface card |
US11296899B2 (en) * | 2019-02-28 | 2022-04-05 | Cisco Technology, Inc. | Redundant multicast trees without duplication and with fast recovery |
CN114884867A (zh) * | 2019-03-08 | 2022-08-09 | 华为技术有限公司 | 一种bier报文的发送方法和装置 |
US11362954B2 (en) * | 2019-03-27 | 2022-06-14 | Nokia Solutions And Networks Oy | Tunneling inter-domain stateless internet protocol multicast packets |
CN114189473B (zh) * | 2019-06-06 | 2023-07-14 | 华为技术有限公司 | 一种报文的发送方法和装置 |
CN112187647B (zh) * | 2019-07-05 | 2021-12-14 | 华为技术有限公司 | 报文转发方法、设备及计算机可读存储介质 |
CN110784411B (zh) * | 2019-09-30 | 2021-10-01 | 华为技术有限公司 | 建立bier转发表项的方法、装置和系统 |
CN111245731B (zh) * | 2020-02-24 | 2021-11-23 | 重庆金美通信有限责任公司 | 一种协议无关组播信令穿越bier的改进方法 |
-
2021
- 2021-04-29 CN CN202110474671.1A patent/CN114915589B/zh active Active
-
2022
- 2022-01-28 WO PCT/CN2022/074787 patent/WO2022171014A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160191372A1 (en) * | 2014-12-31 | 2016-06-30 | Juniper Networks, Inc. | Bit index explicit replication (bier)forwarding for network device components |
CN109120526A (zh) * | 2017-06-26 | 2019-01-01 | 北京华为数字技术有限公司 | 点对点的传输报文的方法和网络设备 |
CN111385209A (zh) * | 2018-12-28 | 2020-07-07 | 华为技术有限公司 | 一种报文处理方法、报文转发方法、装置及设备 |
CN112039920A (zh) * | 2020-09-14 | 2020-12-04 | 迈普通信技术股份有限公司 | 通信方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114915589A (zh) | 2022-08-16 |
CN114915589B (zh) | 2024-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109218178B (zh) | 一种报文处理方法及网络设备 | |
CN107409083B (zh) | 对具有evpn控制平面的vxlan中的bgp路由信息的可扩展处理 | |
JP6581277B2 (ja) | データパケット転送 | |
JP6032278B2 (ja) | Lan多重化装置 | |
WO2018120798A1 (zh) | Vxlan报文处理方法、设备及系统 | |
CN108781185B (zh) | 提供用于网络设备的可编程包分类框架的系统和方法 | |
WO2022100554A1 (zh) | Bier报文转发的方法、设备以及系统 | |
WO2010151571A2 (en) | Method and apparatus for implementing l2 vpns on an ip network | |
CN113114576B (zh) | 报文发送的方法、设备和系统 | |
WO2021093463A1 (zh) | 报文转发的方法、第一网络设备以及第一设备组 | |
JP7322088B2 (ja) | パケット検出方法および第1のネットワーク機器 | |
US20230318974A1 (en) | BIER Packet Forwarding Method, Device, and System | |
JP7448597B2 (ja) | メッセージ生成方法および装置ならびにメッセージ処理方法および装置 | |
CN113285878B (zh) | 负载分担的方法、第一网络设备 | |
WO2022206405A1 (zh) | 一种BIERv6报文的处理方法、设备以及系统 | |
WO2022171014A1 (zh) | 报文传输方法及装置 | |
WO2022012073A1 (zh) | 报文转发的方法、设备以及系统 | |
US20220247598A1 (en) | Packet Detection Method, Connectivity Negotiation Relationship Establishment Method, and Related Device | |
US20220337521A1 (en) | Packet Sending Method, Device and System | |
WO2022199486A1 (zh) | 路径跟踪方法、设备和存储介质 | |
CN114006780A (zh) | 报文转发的方法、设备以及系统 | |
WO2013140507A1 (ja) | ネットワーク集約装置、ネットワーク集約方法およびネットワーク集約システム | |
US12126532B1 (en) | Using ARP to identify locally attached source | |
US12113702B1 (en) | Multicasting using selective advertisement of EVPN routes | |
WO2022027978A1 (zh) | IPv6报文发送的方法、设备以及系统 |
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: 22752175 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 22752175 Country of ref document: EP Kind code of ref document: A1 |