WO2022052800A1 - 一种通信系统、数据处理方法以及相关设备 - Google Patents

一种通信系统、数据处理方法以及相关设备 Download PDF

Info

Publication number
WO2022052800A1
WO2022052800A1 PCT/CN2021/114187 CN2021114187W WO2022052800A1 WO 2022052800 A1 WO2022052800 A1 WO 2022052800A1 CN 2021114187 W CN2021114187 W CN 2021114187W WO 2022052800 A1 WO2022052800 A1 WO 2022052800A1
Authority
WO
WIPO (PCT)
Prior art keywords
data packet
network
forwarding device
forwarding
controller
Prior art date
Application number
PCT/CN2021/114187
Other languages
English (en)
French (fr)
Inventor
毛修斌
刘永锋
潘恬
贾晨昊
许呈
罗政杰
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2022052800A1 publication Critical patent/WO2022052800A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/124Shortest path evaluation using a combination of metrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • H04L45/243Multipath using M+N parallel active paths
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/80Ingress point selection by the source endpoint, e.g. selection of ISP or POP

Definitions

  • the embodiments of the present application relate to the field of communications, and in particular, to a communications system, a data processing method, and related devices.
  • Equal-Cost Multi-Path Routing is a hop-by-hop flow-based load balancing strategy.
  • ECMP can use multiple strategies to select paths to achieve a certain degree of load balancing.
  • the routing strategies of ECMP mainly include: based on hash (for example, selecting a path for a stream according to the hash of the five-tuple), polling (that is, each stream is polled for transmission among multiple paths), based on path weight ( That is, a path with a larger weight is assigned a larger number of flows).
  • Embodiments of the present application provide a communication system, a data processing method, and related devices. Used to determine the appropriate communication path through network state parameters.
  • a first aspect of the embodiments of the present application provides a communication system, the communication system includes: a controller, a first device, a forwarding device, and a second device; the controller is configured to determine a communication path, and the communication path is used for the first device to communicate with The second device communicates; the controller is further configured to send a communication path to the first device; the first device is configured to generate a first data packet according to the communication path, where the first data packet includes instruction information, and the instruction information is used to instruct the forwarding device to collect network state parameters; the first device is further used to send the first data packet to the forwarding device; the forwarding device is used to collect network state parameters according to the indication information, and the network state parameters are in one-to-one correspondence with the forwarding device; the forwarding device is also used to The network state parameter is added to the first data packet to obtain the second data packet; the forwarding device is further configured to send the second data packet to the second device; the second device is configured to send a detection report to the controller according to the second data packet, and
  • the first device is configured to generate a first data packet according to the communication path, the first data packet includes indication information, and the indication information is used to instruct the forwarding device to collect network state parameters; the first device is further configured to forward The device sends the first data packet, so that the forwarding device can collect network state parameters.
  • the forwarding device is configured to send the second data packet to the second device, which is conducive to subsequent determination of a target path with better network performance in the communication path.
  • the above-mentioned first data packet further includes a source route SR label, and the SR label is used for communication of the forwarding device on the communication path;
  • the network state parameter is added to the first data packet of the SR label to obtain the second data packet;
  • the forwarding device is specifically configured to send the second data packet to the second device according to the SR label.
  • the first data packet generated by the first device further includes an SR label, so that after collecting the network state parameters, the forwarding device directly adds the network state parameter to the first data packet in which the SR label is deleted to obtain the first data packet.
  • the second data packet, the forwarding device is configured to send the second data packet to the second device according to the SR label. Therefore, the forwarding device does not need to perform any table lookup operation, and extremely low forwarding delay can be achieved.
  • the communication path includes multiple forwarding devices
  • the network state parameter is added to the first data packet to obtain a second data packet, and the second data packet includes the SR label of the next-hop forwarding device.
  • each forwarding device when there are multiple forwarding devices, each forwarding device only deletes its corresponding SR label, so that the SR label is not reused, and each forwarding device can simply determine which SR label is its own, without using An additional index is used to indicate the SR label corresponding to the forwarding device, reducing the number of bytes of the data packet.
  • the above-mentioned SR label includes the egress port number of the forwarding device.
  • the first data packet generated by the first device further includes an SR label, so that after parsing the SR label in the first data packet, the forwarding device directly forwards the first data packet to the corresponding outgoing device. port, no table lookup operation is performed during this period, and extremely low forwarding delay can be achieved.
  • the above-mentioned detection report includes a network state parameter; the controller is further configured to determine network indicator information according to the network state parameter; the controller is further configured to report to the first The device sends network indicator information; the first device is further configured to determine a target path in the communication path according to the network indicator information.
  • the controller may calculate network indicator information, and the first device may determine the target path according to the network indicator information.
  • the first device can communicate with the second device through a target path with better network performance, thereby improving the communication quality and efficiency between the first device and the second device.
  • the first device determines the target path in the case of complex network topology, that is, when there are multiple first devices, the memory consumption caused by the controller determining the target path is reduced.
  • the above-mentioned detection report includes a network status parameter; the controller is further configured to determine network indicator information according to the network status parameter; the controller is further configured to determine network indicator information according to the network indicator The information determines a target path in the communication path; the controller is further configured to send the target path to the first device.
  • the controller may calculate the network index information, and determine the target path according to the network index information.
  • the controller sends the target path to the first device.
  • the first device can communicate with the second device through a target path with better network performance, thereby improving the communication quality and efficiency between the first device and the second device.
  • the controller determines the target path, which helps the controller to grasp the network performance of each communication path in the network topology.
  • the above-mentioned detection report includes network status parameters; the controller is further configured to send the network status parameters to the first device; the first device is further configured to The state parameter determines network indicator information; the first device is further configured to determine a target path in the communication path according to the network indicator information.
  • the first device may calculate network indicator information, and the first device may determine the target path according to the network indicator information.
  • the first device can communicate with the second device through a target path with better network performance, thereby improving the communication quality and efficiency between the first device and the second device.
  • the first device calculates the network indicator information and determines the target path.
  • the memory consumption caused by the controller calculating the network indicator information and determining the target path is reduced. .
  • the above-mentioned network state parameter includes an ingress port timestamp of the forwarding device and an egress port timestamp of the forwarding device, or the network state parameter includes egress port data of the forwarding device.
  • the total number of packet bytes, and the network indicator information includes at least one of the average bandwidth value, transmission delay, or bit error rate of the forwarding device.
  • the first device in the above communication system is further configured to send a service data packet to the second device using the target path, and the service data packet is used to transmit the first device. business information with the second device.
  • the first device may perform service communication with the second device through a target path with better network performance, thereby improving the quality and efficiency of service communication between the first device and the second device.
  • a second aspect of the embodiments of the present application provides a data processing method, and the processing method may be executed by a first device, or may be executed by a component (such as a processor, a chip, or a chip system, etc.) of the first device.
  • the method includes: the first device obtains a communication path, and the communication path is used for the first device to communicate with the second device; the first device generates a first data packet according to the communication path, and the first data packet includes indication information, and the indication information is used to indicate communication
  • the forwarding device on the path collects network state parameters; the first device sends a first data packet to the forwarding device, where the first data packet is used to determine a target path in the communication path.
  • the first device generates the first data packet according to the communication path, and instructs the forwarding device on the communication path to collect network state parameters through the indication information, so that the first data packet can be used to determine the target path. That is, the communication path for the communication between the first device and the second device can be determined according to the network performance, so as to further improve the quality and efficiency of the communication between the first device and the second device.
  • the above steps further include: the first device acquires network indicator information, and the network indicator information is obtained by processing network state parameters; the first device determines a communication path according to the network indicator information. target path in .
  • the communication path for the communication between the first device and the second device is determined based on the network performance, so as to further improve the quality and efficiency of the communication between the first device and the second device.
  • acquiring the network indicator information by the first device in the above steps includes: the first device receiving the network indicator information sent by the controller.
  • the first device receives the network indicator information sent by the controller, so that the controller can grasp the network performance of each communication path in the network topology.
  • acquiring the network indicator information by the first device in the above steps includes: the first device receiving the network state parameter sent by the controller; the first device calculating the network state parameter Get network instructions.
  • the first device calculates the network indicator information.
  • the first device can communicate with the second device through a target path with better network performance, thereby improving the communication quality and efficiency between the first device and the second device.
  • the first device calculates the network indicator information.
  • the memory consumption caused by the controller calculating the network indicator information is reduced.
  • the above steps further include: the first device sends a service data packet to the second device using the target path, and the service data packet is used to transmit the first device and the second device. business information between.
  • the first device may perform service communication with the second device through a target path with better network performance, thereby improving the quality and efficiency of service communication between the first device and the second device.
  • the network state parameter in the above steps includes the ingress port timestamp of the forwarding device and the egress port timestamp of the forwarding device, or the network state parameter includes the outgoing port timestamp of the forwarding device.
  • the total number of bytes in port data packets, and the network indicator information includes at least one of the average bandwidth value, transmission delay, or bit error rate of the forwarding device.
  • acquiring the network indicator information by the first device in the above steps includes: the first device calculates the network indicator information in the following manner:
  • the current value of the total number of bytes includes the byte value of the first data packet
  • the historical value of the total number of bytes includes the byte value or 0 of the last data packet
  • the current value of the outgoing port timestamp includes the time when the first data packet exited the port Stamp
  • outgoing port timestamp historical value includes the timestamp of the last packet outgoing port or 0.
  • acquiring the network indicator information by the first device in the above steps includes: the first device calculates the transmission delay of the forwarding device, and the transmission delay is the first data packet. The difference between the timestamp of the ingress port and the timestamp of the egress port of the first data packet.
  • the target path may be determined by the transmission delay to improve the transmission efficiency of the communication between the first device and the second device.
  • the above steps further include: the first device receives a third data packet sent by a third device, where the third data packet includes a connection between the first device and the third device.
  • the network state parameter of the forwarding device on the communication path, and the third data packet is used to determine the target path in the communication path.
  • the first device when the first device is the receiving end, the first device can determine the target path in the communication path between the first device and the third device through the third data packet, so that the first device can pass the network The better performing target path communicates with the third device.
  • the first data packet in the above steps further includes a source route SR label, and the SR label is used for communication of the forwarding device.
  • the forwarding device after receiving the first data packet sent by the first device, the forwarding device can determine the next hop device on the communication path according to the SR label in the first data packet, so that the forwarding device does not need to do any table lookup operation, can achieve extremely low forwarding delay.
  • the SR label in the above steps includes the outgoing port number of the forwarding device.
  • the SR label includes the outgoing port number of the forwarding device, so that after receiving the first data packet sent by the first device, the forwarding device can determine the outgoing port of the forwarding device according to the SR label in the first data packet number, the next hop device on the communication path can be determined, so that the forwarding device does not need to perform any table lookup operation, and can achieve extremely low forwarding delay.
  • the first data packet in the above steps is used to obtain network state parameters, and/or the first data packet is used to transmit the information between the first device and the second device. business information between.
  • the first device class can complete the real-time collection of network state parameters by the detection packet or the service data packet through the above method, and then determine a more suitable target path.
  • acquiring the communication path by the first device in the above steps includes: the first device receiving the communication path sent by the controller.
  • the communication path is determined by the controller and sent to the first device, thereby reducing memory consumption caused by the first device determining the communication path through calculation.
  • a third aspect of the embodiments of the present application provides a data processing method, and the processing method may be executed by a forwarding device, or may be executed by a component of the forwarding device (for example, a processor, a chip, or a chip system, etc.).
  • the method includes: a forwarding device receives a first data packet from a first device, and the first data packet indicates information, where the indication information is used to instruct the forwarding device to collect a network state parameter, the network state parameter being related to the forwarding device; the forwarding device collects according to the instruction information network state parameters to obtain the second data packet; the forwarding device sends the second data packet to the second device.
  • the forwarding device may collect network state parameters according to the indication information in the first data packet to obtain the second data packet. and send the second data packet to the second device, so that the second device learns the network state parameter of the forwarding device.
  • the first data packet in the above steps further includes a source route SR label, the SR label corresponds to the forwarding device, and the SR label is used for communication of the forwarding device;
  • the forwarding device Collecting network state parameters according to the instruction information to obtain the second data packet includes: the forwarding device collects the network state parameter; the forwarding device adds the network state parameter to the first data packet with the SR label deleted to obtain the second data packet;
  • Sending the second data packet by the device includes: the forwarding device sends the second data packet to the second device according to the SR label.
  • the forwarding device after collecting the network state parameters, the forwarding device directly adds the network state parameter to the first data packet in which the SR label is deleted to obtain the second data packet, and the forwarding device is used to send the second data packet to the second device according to the SR label. Send the second packet. Therefore, the forwarding device does not need to perform any table lookup operation, and extremely low forwarding delay can be achieved.
  • the SR label in the above steps includes the outgoing port number of the forwarding device.
  • the SR label includes the outgoing port number of the forwarding device, so that after receiving the first data packet sent by the first device, the forwarding device can determine the outgoing port of the forwarding device according to the SR label in the first data packet number, the next hop device on the communication path can be determined, so that the forwarding device does not need to perform any table lookup operation, and can achieve extremely low forwarding delay.
  • the network state parameter in the above steps includes the ingress port timestamp of the forwarding device and the egress port timestamp of the forwarding device, or the network state parameter includes the outgoing port timestamp of the forwarding device.
  • the first data packet and the second data packet in the above steps are used to obtain network state parameters, and/or the first data packet and the second data packet are used for obtaining network state parameters. It is used to transmit service information between the first device and the second device.
  • the target path may be applied to network state parameter collection or service communication between the first device and the second device.
  • a fourth aspect of the embodiments of the present application provides a data processing method, and the processing method may be executed by a controller, or may be executed by a component of the controller (for example, a processor, a chip, or a chip system, etc.).
  • the method includes: the controller determines a communication path, and the communication path is used for the communication between the first device and the second device; the controller sends the communication path to the first device; the controller receives a detection report sent by the second device, the detection report and network state parameters Relatedly, the network state parameter is related to the forwarding device on the communication path, and the detection report is also used to determine the target path in the communication path.
  • the controller sends a communication path to the first device, that is, sends a communication path that needs to measure network state parameters to the first device, so as to reduce memory consumption caused by the first device calculating the communication path. And receive the detection report, so that the appropriate target path can be determined according to the detection report.
  • the detection report in the above steps includes network indicator information, and the network indicator information is obtained by processing network state parameters.
  • the detection report in the above steps includes network status parameters.
  • the network state parameter in the above steps includes the ingress port timestamp of the forwarding device and the egress port timestamp of the forwarding device, or the network state parameter includes the outgoing port timestamp of the forwarding device.
  • the above steps further include: the controller calculates network indicator information; the controller sends the network indicator information to the first device, so that the first device determines according to the network indicator information The destination path in the communication path.
  • the controller calculates the network indicator information, and sends the network indicator information to the first device.
  • the first device may determine a target path in the communication path according to the network indicator information.
  • the controller can grasp the network performance of each communication path in the network topology.
  • the controller in the above steps calculates the network indicator information, including: the controller calculates the transmission delay of the forwarding device, and the transmission delay is the time stamp of the inbound port and the time stamp of the outbound port. The difference in port timestamps.
  • the target path can be determined by the transmission delay to improve the transmission efficiency of the communication between the first device and the second device.
  • the calculation of the network indicator information by the controller in the above steps includes: the controller calculates an average bandwidth value of the forwarding device.
  • the controller in the above steps calculates the average bandwidth value of the forwarding device in the following manner:
  • the current value of the total number of bytes includes the byte value of the first data packet
  • the historical value of the total number of bytes includes the byte value or 0 of the last data packet
  • the current value of the outgoing port timestamp includes the time when the first data packet exited the port Stamp
  • outgoing port timestamp historical value includes the timestamp of the last packet outgoing port or 0.
  • the above steps further include: the controller determines a target path in the communication path according to the network indicator information; and the controller sends the target path to the first device.
  • the controller may calculate the network index information, and determine the target path according to the network index information.
  • the controller sends the target path to the first device.
  • the first device can communicate with the second device through a target path with better network performance, thereby improving the communication quality and efficiency between the first device and the second device.
  • the controller determines the target path, which helps the controller to grasp the network performance of each communication path in the network topology.
  • a fifth aspect of the embodiments of the present application provides a first device, where the first device includes:
  • a receiving unit configured to acquire a communication path, the communication path is used for the first device to communicate with the second device;
  • a processing unit configured to generate a first data packet according to the communication path, where the first data packet includes indication information, and the indication information is used to instruct the forwarding device on the communication path to collect network state parameters;
  • the sending unit is configured to send a first data packet to the forwarding device, where the first data packet is used to determine a target path in the communication path.
  • the receiving unit in the above-mentioned first device is further configured to acquire network indicator information, and the network indicator information is obtained by processing the network state parameters; the processing unit is further configured to obtain network indicator information.
  • the target path in the communication path is determined according to the network indicator information.
  • the receiving unit in the above-mentioned first device is specifically configured to receive the network indicator information sent by the controller.
  • the receiving unit in the above-mentioned first device is specifically configured to receive the network state parameter sent by the controller; the processing unit is further configured to calculate the network state parameter to obtain the network state parameter. Instructions.
  • the sending unit in the above-mentioned first device is further configured to send a service data packet to the second device using the target path, and the service data packet is used to transmit the first device. business information with the second device.
  • the above-mentioned network state parameter includes the ingress port timestamp of the forwarding device and the egress port timestamp of the forwarding device, or the network state parameter includes egress port data of the forwarding device.
  • the total number of packet bytes, and the network indicator information includes at least one of the average bandwidth value, transmission delay, or bit error rate of the forwarding device.
  • the processing unit in the above-mentioned first device is specifically configured to calculate the network indicator information in the following manner:
  • the current value of the total number of bytes includes the byte value of the first data packet
  • the historical value of the total number of bytes includes the byte value or 0 of the last data packet
  • the current value of the outgoing port timestamp includes the time when the first data packet exited the port Stamp
  • outgoing port timestamp historical value includes the timestamp of the last packet outgoing port or 0.
  • the processing unit in the above-mentioned first device is specifically used to calculate the transmission delay of the forwarding device, and the transmission delay is the time stamp of the ingress port of the first data packet and the The difference between the outgoing port timestamps of the first data packet.
  • the receiving unit in the above-mentioned first device is further configured to receive a third data packet sent by a third device, where the third data packet includes the first device and the third data packet.
  • the network state parameter of the forwarding device is forwarded on the communication path between the three devices, and the third data packet is used to determine the target path in the communication path.
  • the above-mentioned first data packet further includes a source route SR label, and the SR label is used for communication of the forwarding device.
  • the above-mentioned SR label includes the outgoing port number of the forwarding device.
  • a sixth aspect of the embodiments of the present application provides a forwarding device, where the forwarding device includes:
  • a receiving unit configured to receive a first data packet from a first device, and the first data packet indication information, where the indication information is used to instruct the forwarding device to collect network state parameters, and the network state parameters are related to the forwarding device;
  • a processing unit configured to collect network state parameters according to the indication information to obtain a second data packet
  • the sending unit is configured to send the second data packet to the second device.
  • the above-mentioned first data packet further includes a source route SR label, the SR label corresponds to the forwarding device, and the SR label is used for communication of the forwarding device; the processing unit, specifically The method is used for collecting network state parameters; adding network state parameters to the first data packet with the SR label deleted to obtain the second data packet; the sending unit is specifically configured to send the second data packet to the second device according to the SR label.
  • the above-mentioned SR label includes the egress port number of the forwarding device.
  • the above-mentioned network state parameters include the ingress port timestamp of the forwarding device and the egress port timestamp of the forwarding device, or the network state parameter includes egress port data of the forwarding device.
  • the above-mentioned first data packet and second data packet are used to obtain network state parameters, and/or the first data packet and the second data packet are used for transmission. Service information between the first device and the second device.
  • a seventh aspect of an embodiment of the present application provides a controller, the controller comprising:
  • a processing unit configured to determine a communication path, the communication path is used for the first device to communicate with the second device;
  • a sending unit configured to send a communication path to the first device
  • the receiving unit is configured to receive a probe report sent by the second device, where the probe report is related to a network state parameter, the network state parameter is related to a forwarding device on the communication path, and the probe report is also used to determine a target path in the communication path.
  • the above-mentioned detection report includes network indicator information, and the network indicator information is obtained by processing network state parameters.
  • the above-mentioned detection report includes a network state parameter.
  • the above-mentioned network state parameter includes an ingress port timestamp of the forwarding device and an egress port timestamp of the forwarding device, or the network state parameter includes egress port data of the forwarding device.
  • the processing unit in the above-mentioned controller is further configured to calculate network indicator information; the sending unit is further configured to send network indicator information to the first device, so that The first device determines a target path in the communication path according to the network indicator information.
  • the processing unit in the above-mentioned controller is specifically configured to calculate the transmission delay of the forwarding device, and the transmission delay is the time stamp of the ingress port and the time stamp of the egress port. difference.
  • the processing unit in the above-mentioned controller is specifically configured to calculate an average bandwidth value of the forwarding device.
  • the processing unit in the above-mentioned controller is further configured to calculate the average bandwidth value of the forwarding device in the following manner:
  • the current value of the total number of bytes includes the byte value of the first data packet
  • the historical value of the total number of bytes includes the byte value or 0 of the last data packet
  • the current value of the outgoing port timestamp includes the time when the first data packet exited the port Stamp
  • outgoing port timestamp historical value includes the timestamp of the last packet outgoing port or 0.
  • the processing unit in the above-mentioned controller is further configured to determine a target path in the communication path according to the network indicator information; the sending unit is further configured to send a message to the first device. Send destination path.
  • An eighth aspect of an embodiment of the present application provides a first device, including: a processor, where the processor is coupled to a memory, the memory is used to store programs or instructions, and when the programs or instructions are executed by the processor, the first device is implemented The method in the above second aspect or any possible implementation manner of the second aspect.
  • a ninth aspect of an embodiment of the present application provides a forwarding device, including: a processor, where the processor is coupled to a memory, and the memory is used to store programs or instructions, and when the programs or instructions are executed by the processor, the forwarding device is made to implement the above-mentioned first The method of the three aspects or any possible implementation of the third aspect.
  • a tenth aspect of an embodiment of the present application provides a controller, including: a processor, where the processor is coupled to a memory, and the memory is used to store programs or instructions, and when the programs or instructions are executed by the processor, the controller is made to implement the above-mentioned first The method of the fourth aspect or any possible implementation of the fourth aspect.
  • An eleventh aspect of embodiments of the present application provides a communication system, including the first device provided in the eighth aspect, and/or the forwarding device in the ninth aspect, and/or the controller in the tenth aspect.
  • a twelfth aspect of the present application provides a chip, the chip includes a processor and an interface circuit, the interface circuit is coupled to the processor, and the processor is configured to run a computer program or instructions to implement the second aspect or the second aspect
  • the interface circuit is used to communicate with other module to communicate.
  • a thirteenth aspect of an embodiment of the present application provides a computer-readable storage medium, where instructions are stored in the computer-readable storage medium, and when the instructions are executed on a computer, cause the computer to execute the foregoing second aspect or any of the second aspects.
  • a fourteenth aspect of the embodiments of the present application provides a computer program product, which, when executed on a computer, enables the computer to execute the second aspect or any possible implementation manner of the second aspect, the third aspect or the third aspect A method of any possible implementation of the aspect, the fourth aspect, or any possible implementation of the fourth aspect.
  • a first device is used to generate a first data packet according to a communication path, the first data packet includes a source route SR label and indication information, and the SR label is used for the communication path
  • the indication information is used to instruct the forwarding device to collect network state parameters
  • the first device is further configured to send a first data packet to the forwarding device, so that the forwarding device can collect network state parameters.
  • the forwarding device is configured to send the second data packet to the second device according to the SR label, and the second device helps the first device to subsequently determine a target path with better network performance in the communication path.
  • FIG. 1 is a schematic diagram of a network framework in an embodiment of the present application.
  • FIG. 2 is a schematic flowchart of a data processing method in an embodiment of the present application.
  • FIG. 3 is a schematic diagram of a communication path in an embodiment of the application.
  • FIG. 4 is a schematic diagram of a format of a first data packet in an embodiment of the present application.
  • FIG. 5 is another schematic diagram of a communication path in an embodiment of the present application.
  • FIG. 6 is a schematic structural diagram of a first device in an embodiment of the present application.
  • FIG. 7 is a schematic structural diagram of a forwarding device in an embodiment of the present application.
  • FIG. 8 is a schematic structural diagram of a controller in an embodiment of the present application.
  • FIG. 9 is another schematic structural diagram of the first device in the embodiment of the application.
  • FIG. 10 is a schematic structural diagram of a communication device in an embodiment of the present application.
  • Embodiments of the present application provide a communication system, a data processing method, and related equipment, which are used to determine an appropriate communication path through network state parameters.
  • the communication method provided by the present application can be applied to different communication networks.
  • the following takes a data center network as an example to describe the communication method.
  • the network architecture in the embodiment of the present application includes:
  • the controller 100 the spine switches (spine) 101 and 102, the leaf switches (leaf) 103 to 105, and the service devices 106 to 108.
  • the controller 100 is respectively connected with the backbone switches 101 and 102 , the leaf switches 103 to 105 and the service devices 106 to 108 .
  • the backbone switch 101 is connected to the leaf switches 103 to 105 respectively
  • the backbone switch 102 is connected to the leaf switches 103 to 105 respectively
  • the leaf switch 103 is connected to the service device 106
  • the leaf switch 104 is connected to the service device 107
  • the leaf switch 105 is connected to the service device 108.
  • backbone switches 101 and 102 only two backbone switches 101 and 102, three leaf switches 103 to 105, and three service devices 106 to 108 are used as examples for schematic illustration. In practical applications, there may be more Backbone switches, leaf switches, and service devices are not specifically limited here.
  • each service device is connected to a leaf switch can also be different.
  • Figure 1 only takes one service device connecting to a leaf switch as an example for schematic illustration, and multiple service devices can also be connected to a leaf switch. Do limit.
  • the backbone switch 101 and the leaf switches 103 to 105 are generally connected through a wired network, and may also be connected through a wireless network. If they are connected through a wired network, the connection may be an optical fiber network.
  • the leaf switch and the service device are generally connected through a wireless network or a wired network. If it is connected through a wired network, the connection form can be an optical fiber network. If it is connected through a wireless network, the connection form can be a cellular wireless network. Or a WiFi network, or some other type of wireless network.
  • the communication between the service devices can interact through the leaf switches, and can also interact with the backbone switches through the leaf switches.
  • the main function of the controller 100 is to manage the devices in the network (backbone switches 101 and 102, leaf switches 103 to 105, and service devices 106 to 108).
  • the main function of the backbone switches 101 and 102 is to ensure communication between any two leaf switches in the network.
  • the main function of the leaf switches 103 to 105 is to transfer data, connect the backbone switches and service equipment, and transmit data.
  • the main function of service devices 106 to 108 is to provide services to users or other devices.
  • the service device may be a rack server, a blade server, a computing node, or a storage node, etc., which is not specifically limited here.
  • the first device and the second device in the embodiment of the present application are equivalent to the service device in the architecture shown in FIG. 1
  • the forwarding device is equivalent to the backbone switch or the leaf switch in the architecture shown in FIG. 1
  • the controller is equivalent to the one shown in FIG. 1 . Controllers in the Architecture.
  • the architecture in Figure 1 is only an example.
  • the core switch can also be connected above the backbone switch, and the top of rack (TOR) switch can also be connected below the leaf switch.
  • the specific number of layers is not limited here. It can be spine-leaf, spine-leaf-tor, or core-spine-leaf-tor.
  • the current data center network (DCN) state is complex, and the path load is affected by various factors (network congestion, switch routing algorithms, etc.) that are uncontrollable, and the uneven load and congestion of multiple nodes lead to a low overall DCN link bandwidth value.
  • DCN current data center network
  • traditional load balancing methods such as ECMP can no longer meet the load balancing requirements of DCN due to the lack of awareness of the state of the entire network, and are in urgent need of optimization.
  • MPLS multi-protocol label switching
  • MPLS-enabled network devices are interconnected to form an MPLS domain.
  • the nodes entering the MPLS domain are called ingress nodes
  • the nodes leaving the MPLS domain are called egress nodes
  • the nodes on the forwarding path are called intermediate nodes.
  • the forwarding process of MPLS is shown in Figure 1.
  • the ingress node will query the forwarding information dataBase (FIB) and other entries to obtain information such as outbound interface and outbound label.
  • FIB forwarding information dataBase
  • the MPLS label is pushed up, and then the packet is forwarded to the next hop.
  • the intermediate node After receiving the packet, the intermediate node will check the corresponding entry according to the MPLS label value, and obtain the outbound interface and label of the next hop.
  • the old MPLS label in the packet will be replaced with the new label.
  • the packet is then forwarded to the next hop; if the label value is equal to 3, it is the second-to-last forwarding node, and the label needs to be popped before forwarding.
  • the outgoing node directly forwards the traditional IP packet.
  • nodes in the MPLS domain need to distinguish different identities such as incoming nodes, intermediate nodes, and outgoing nodes, which makes the management plane relatively complicated.
  • the communication method in this embodiment of the present application can also be applied to cloud network scenarios, especially public cloud scenarios, where network services are divided into overlay and underlay layers, and current major network services have been Migrating to the network of Overlay, while the network business of Underlay has become very single, mainly focusing on network connection and congestion control.
  • the use of proprietary protocols on the underlay network will not affect the overlay service, and it is suitable to introduce source routing packets in a private format to reduce the end-to-end forwarding delay. Improve network operation and maintenance efficiency.
  • embodiments of the present application provide a communication system, a data processing method, and related devices.
  • the communication system in the embodiment of the present application is described below.
  • the present application provides a communication system, which includes: a first device, a forwarding device, a second device, and a controller.
  • the first device and the second device are any two service devices in the embodiment shown in FIG. 1
  • the forwarding device is any switch (a backbone switch or a leaf switch) in the embodiment shown in FIG. 1 .
  • the controller uses the telemetry path planning algorithm to generate in-band telemetry detection paths for the entire network.
  • the path planning only needs to be executed once, and whenever there is a new node or a path failure
  • the network-wide telemetry path planning will be re-triggered.
  • the controller distributes the planned paths to each server, and the server will generate INT detection packets with corresponding source routing labels based on each detection path at certain time intervals to complete the collection of path information on the entire network.
  • the controller After obtaining the aggregated link status of the entire network, the controller synchronizes the information to each server node in the network through the management network.
  • the service device runs its own control plane process, which mainly implements two functions:
  • the smart network card performs path search for service packets according to certain rules (for example, quintuple or destination IP), and encapsulates corresponding source routing labels. Since there are multiple available paths to each destination node, the smart NIC is also responsible for balancing multiple service flows to different paths, and ensuring that the forwarding paths of previously established service flows are not affected when the path table is dynamically refreshed .
  • certain rules for example, quintuple or destination IP
  • the forwarding device is responsible for the source route forwarding of packets and the collection of INT information. Whether it is a probe packet or a service packet, the forwarding device directly forwards the packet to the corresponding egress port after parsing the source routing label number in the packet. During this period, no table lookup operation is performed, and extremely low forwarding delay can be achieved.
  • the INT collection unit on the forwarding device determines whether to collect INT information according to whether the packet carries the INT collection identifier.
  • an embodiment of the communication method in the embodiment of the present application includes:
  • the controller determines a communication path. This step is optional.
  • the controller may determine a communication path for communication between the first device and the second device according to the entire network topology.
  • the whole network topology includes the connection relationship between various devices in the network.
  • the controller may re-determine the communication path.
  • the communication path in this embodiment of the present application may be one path or multiple paths, which is not specifically limited here.
  • the controller determines the communication path, which may be a hop-by-hop utilization-aware load balancing architecture (HULA) algorithm based on hop-by-hop link utilization awareness or a depth-based algorithm.
  • HULA hop-by-hop utilization-aware load balancing architecture
  • DFS deep-first search
  • the controller sends a communication path to the first device. This step is optional.
  • the controller sends the communication path to the first device.
  • the controller can send the planned path to each service device (ie, the first device or the second device) through the management network, and each service device will only receive the information that it needs to detect. Information about the communication path.
  • the communication path information in China may include an egress port, an IP address, or a device identifier of the forwarding device on the communication path, which is not specifically limited here.
  • the first device generates a first data packet according to the communication path.
  • the first device may also obtain the entire network topology first, and determine the communication path according to the entire network topology.
  • the communication path may also be determined by other devices, which is not specifically limited here.
  • the first device may send the first data packet at a certain time interval, and the specific time interval may be adjusted according to the network scale.
  • the number of forwarding devices on the communication path is multiple, and the communication path acquired by the first device is shown in FIG. 3 .
  • One communication path “first device-first forwarding device-second forwarding device-third forwarding device-fourth forwarding device-fifth forwarding device-second device”.
  • Another communication path “first device-first forwarding device-second forwarding device-sixth forwarding device-fourth forwarding device-fifth forwarding device-second device”.
  • the first device is connected to the first forwarding device through the 3 port of the first forwarding device, the 1 port of the first forwarding device is connected to the 3 port of the second forwarding device, and the 1 port of the second forwarding device is connected to the third forwarding device.
  • Port 1 is connected, port 2 of the third forwarding device is connected to port 1 of the fourth forwarding device, port 3 of the fourth forwarding device is connected to port 1 of the fifth forwarding device, and the fifth forwarding device is connected to the second device through port 3 .
  • Port 2 of the second forwarding device is connected to port 1 of the sixth forwarding device, and port 2 of the sixth forwarding device is connected to port 2 of the fourth forwarding device.
  • the first device After acquiring the communication path, the first device generates a first data packet according to the communication path.
  • the first data packet includes indication information, where the indication information is used to indicate whether the forwarding device collects network state parameters.
  • the first data packet further includes an SR label, where the SR label is used for communication between forwarding devices on the communication path.
  • One forwarding device corresponds to one SR label.
  • This embodiment proposes a fusion packet format of source routing (SR) and in-band network telemetry (INT).
  • SR source routing
  • INT in-band network telemetry
  • the first data packet adopts Ethernet (ethernet, ETH) to identify the high-level protocol, and the reserved Ethernet type 0x0700 is used as the protocol type of SR in the first data packet;
  • the sr_len field value in SR_OPTION is the total length of SR_OPTION and all SR label fields;
  • SR_1 indicates the SR label of the first forwarding device, where int_flag is used to indicate whether the first forwarding device needs to be collected INT information, int_flag is 1 to indicate collection, 0 indicates no collection, and the next_port field indicates that the first device needs to The outgoing port number to forward the first packet to.
  • Rsvd is used to represent reserved fields, which can be set as required.
  • SR_N represents the SR label of the Nth forwarding device.
  • the first packet may also use the reserved ether type 0x0701 as the protocol type of INT, immediately following the SR tag.
  • the int_type field in INT_OPTION is used to indicate whether it is the first data packet delivered by the control plane.
  • int_num is used to record the number of collected INT information.
  • SR_1 and SR_N in FIG. 4 are SR labels, and the int_flag field is the indication information in the first data packet.
  • the INT information exists as the option header of the inner-layer packet.
  • the switch needs to perform in-depth packet analysis to insert the INT information, which increases the complexity of the switch and the forwarding delay.
  • the private message format proposed in this application can take into account both efficient forwarding based on source routing and real-time collection of network status. It is more suitable for well-closed data center networks and public cloud scenarios.
  • FIG. 4 is only an example of the format of the first data packet, and the specific format of the first data packet is not limited here.
  • the first data packet in this embodiment of the present application may be a probe packet or a service data packet, which is not specifically limited here.
  • the first device may generate multiple groups of data packets for multiple communication paths, so that the multiple groups of data packets cover the entire network path.
  • the first data packet is a probe data packet or a service data packet, which is not specifically limited here.
  • the first device can obtain the network performance (network state parameters or network indicator information) of the communication path through the first data packet, and then determine the target path for service communication.
  • the first device sends the first data packet to the forwarding device.
  • the forwarding device is a device that can forward data, such as a switch or a router, and the number of forwarding devices may be one or more, which is not specifically limited here.
  • the first device After generating the first data packet, the first device sends the first data packet to the forwarding device.
  • the forwarding device generates a second data packet according to the first data packet.
  • the forwarding device receives the first data packet from the first device, and collects the network status parameters of the forwarding device according to the indication information in the first data packet (for example, the int_flag field in FIG. 3 ), and adds the parameter to the first data packet. Network state parameters to obtain the second data packet.
  • the forwarding device deletes the SR label corresponding to the forwarding device in the first data packet to obtain the second data packet.
  • the forwarding device collects the network state parameters, and deletes the SR label corresponding to the forwarding device.
  • the network state parameter is added to the first data packet of the label to obtain the second data packet.
  • the forwarding device when the indication information indicates that the forwarding device does not collect network state parameters (for example, the int_flag field in FIG. 4 is 0), the forwarding device does not collect network state parameters, and deletes the SR corresponding to the forwarding device in the first data packet. label to get the second packet.
  • the indication information indicates that the forwarding device does not collect network state parameters (for example, the int_flag field in FIG. 4 is 0)
  • the forwarding device when the indication information indicates that the forwarding device does not collect network state parameters (for example, the int_flag field in FIG. 4 is 0)
  • the forwarding device does not collect network state parameters, and deletes the SR corresponding to the forwarding device in the first data packet. label to get the second packet.
  • the network state parameters may be the port number of the quasi-forwarding device, the outgoing port number of the forwarding device, the inbound port timestamp of the forwarding device, the outbound port timestamp of the forwarding device, the queue depth when entering and exiting the port, and the exit port.
  • the queue depth at the outgoing port, the total number of bytes of the outgoing port data packets of the forwarding device, or the total number of bytes of the outgoing port, etc., are not limited here.
  • the number of forwarding devices on the communication path is 5 as an example for schematic illustration, and the number of forwarding devices may be one or more, which is not specifically limited here.
  • FIG. 5 a schematic illustration is given by taking one of the communication paths as an example.
  • the number of forwarding devices on the communication path is five, which are a first forwarding device, a second forwarding device, a third forwarding device, a fourth forwarding device, and a fifth forwarding device, respectively.
  • the int_flag field in FIG. 4 is 1, that is, the indication information indicates that five forwarding devices collect network state parameters.
  • the first device After the first device generates the A data packet 500 according to the communication path, the first device sends the A data packet 500 to the first forwarding device. After receiving the A data packet 500, the first forwarding device determines according to the indication information in the A data packet 500. Network status parameters need to be collected. The first forwarding device collects the network state parameters of the first forwarding device to obtain INT1 information, the first forwarding device deletes the SR label-SR1(1) corresponding to the first forwarding device, and adds the collected INT1 information to obtain B data packet 501. According to SR1(1), the first forwarding device knows that the first forwarding device forwards the B data packet 501 from port 1. That is, the B data packet 501 is sent to the second forwarding device. The 1 in parentheses of SR1(1) corresponds to next_port in Figure 4.
  • the second forwarding device After acquiring the B data packet 501, the second forwarding device determines, according to the indication information in the B data packet 501, that network state parameters need to be collected. The second forwarding device collects the network state parameters of the second forwarding device to obtain INT2 information, the second forwarding device deletes the SR label-SR2(1) corresponding to the second forwarding device, and adds the collected INT2 information to obtain the C data packet 502 . According to SR2(1), the second forwarding device can know that the second forwarding device forwards the C data packet 502 from port 1. That is, the C data packet 502 is sent to the third forwarding device.
  • the third forwarding device After acquiring the C data packet 502, the third forwarding device determines, according to the indication information in the C data packet 502, that network state parameters need to be collected.
  • the third forwarding device collects the network state parameters of the third forwarding device to obtain INT3 information, the third forwarding device deletes the SR label-SR3(2) corresponding to the third forwarding device, and adds the collected INT3 information to obtain D data packet 503 .
  • SR3(2) the third forwarding device can know that the third forwarding device forwards the D data packet 503 from port 2. That is, the D data packet 503 is sent to the fourth forwarding device.
  • the operations of the fourth forwarding device are similar to the operations of the other forwarding devices described above, and are not repeated here.
  • the fifth forwarding device After receiving the E data packet 504 sent by the fourth forwarding device, the fifth forwarding device determines that network state parameters need to be collected according to the indication information in the E data packet 504 .
  • the fifth forwarding device collects network state parameters of the fifth forwarding device to obtain INT5 information, the fifth forwarding device deletes the SR label-SR5(3) corresponding to the fifth forwarding device, and adds the collected INT5 information to obtain F data packet 505 .
  • SR5(3) the fifth forwarding device knows that the fifth forwarding device forwards the F data packet 505 from port 3. That is, the F data packet 505 is sent to the second device.
  • the fifth forwarding device is the last hop forwarding device, and the fifth forwarding device can resolve that all SR labels are exhausted, and also strip the ether type field identifying the SR and the SR label header.
  • the number of forwarding devices and specific communication paths in the communication paths shown in FIG. 5 are only examples, and are not specifically limited here.
  • the forwarding device uses the next_port value in the parsed first SR label directly as the outgoing port number, so it does not need to do any routing table or label lookup to achieve polar forwarding delay.
  • the used SR label will deleted to prevent reuse.
  • the INT information is arranged in a stack (ie, the INT information that arrives first comes last).
  • the INT information field name, the length of the INT information field, and the meaning of the INT information shown in Table 1 are only examples, and are not specifically limited here.
  • the forwarding device may record the total number of bytes accumulated and passed by each port and the timestamp.
  • the first device in this embodiment of the present application may be a sending end or a receiving end, which is not specifically limited here.
  • the first device may also receive a third data packet sent by the third device, where the third data packet is used to collect the network status of the forwarding device on the communication path between the first device and the third device parameter, and the third data packet is also used to determine the target path in the communication path between the first device and the third device.
  • the forwarding device sends the second data packet to the second device.
  • the forwarding device After generating the second data packet, the forwarding device sends the second data packet to the second device according to the SR label.
  • the fifth forwarding device after the fifth forwarding device obtains the F data packet 505, the fifth forwarding device knows according to SR5(3) that the fifth forwarding device forwards the F data packet 505 from port 3. That is, the F data packet 505 is sent to the second device.
  • the second device generates a detection report according to the second data packet.
  • the detection report includes network status parameters.
  • the second device After receiving the second data packet sent by the forwarding device, the second device packages the network state parameters in the second data packet to generate a detection report.
  • the second device packages the INT1 information, the INT2 information, the INT3 information, the INT4 information, and the INT5 information to generate a detection report.
  • the detection report includes network indicator information.
  • the network indicator information in this embodiment of the present application may be an average bandwidth value of a forwarding device, a transmission delay, or a bit error rate, etc., which is not specifically limited here.
  • the second device After receiving the second data packet sent by the forwarding device, the second device calculates network indicator information according to the network state parameter in the second data packet.
  • the second device obtains the inbound port timestamp and the outbound port timestamp of the forwarding device from the second data packet, calculates the difference between the two, and obtains the transmission delay of the forwarding device.
  • the second device obtains, from the second data packet, the current value of the total number of bytes on the outgoing port of the forwarding device and the current value of the outgoing port timestamp.
  • the second device may receive the historical value of the total number of bytes sent by the forwarding device and the historical value of the outgoing port timestamp. And use the following formula to calculate the average bandwidth value of the forwarding device:
  • the maximum value of the average bandwidth value among the multiple forwarding devices can be determined as the link bandwidth value; if the number of forwarding devices is one, the average bandwidth value of the forwarding device can be determined as the link bandwidth value . It can be understood that, if there are multiple forwarding devices, any one of the average bandwidth values of the multiple forwarding devices may be determined as the link bandwidth value, which is not specifically limited here.
  • the average link utilization rate may be obtained by dividing by the full bandwidth.
  • the historical value in the above formula defaults to 0; if the first data packet is the Nth data packet of transmission, the first device records the total number of bytes of each transmitted data packet and Outgoing port timestamp.
  • the second device sends a detection report to the controller.
  • the second device After generating the detection report, the second device sends the detection report to the controller.
  • the controller determines network indicator information according to the detection report. This step is optional.
  • controller determines the network indicator information according to the detection report, which are respectively described below:
  • the controller obtains network index information by calculating the network state parameters.
  • the calculation method is similar to the method in step 207 for the forwarding device to calculate the network indicator information, which is not limited here.
  • the controller determines the network indicator information by receiving the detection report sent by the second device.
  • the network indicator information may be stored in the database of the controller.
  • the controller may record the network state parameters and the network indicator information in the average bandwidth value table, as shown in Table 2:
  • the content recorded in Table 2 is only an example, and the recorded content is set according to actual needs, which is not specifically limited here.
  • the controller sends the network indicator information to the first device.
  • the controller After determining the network indicator information, the controller sends the network indicator information to the first device.
  • a master-slave replication relationship is established between the database of the first device and the database of the controller.
  • the network indicator information is updated in the database of the controller, it can be updated to the database of the first device in real time to realize data synchronization.
  • the first device determines a target path in the communication path according to the network indicator information.
  • the first device may determine a target path in the communication path according to the network indicator information.
  • the first device After acquiring the network indicator information of the multiple communication paths, the first device determines the target path.
  • the A communication path passes through three forwarding devices, the average bandwidth of the first forwarding device is 20 Gbit/s, the average bandwidth of the second forwarding device is 40 Gbit/s, and the average bandwidth of the third forwarding device is 30 Gbit /s. Then, the first device determines that the link bandwidth value of the A communication path is 40 Gbit/s. Similarly, if the link bandwidth value of the B communication path is 10 Gbit/s, the first device determines the communication path with a smaller link bandwidth value as the target path, that is, the first device determines the B communication path as the target path.
  • the A communication path passes through three forwarding devices, the transmission delay of the first forwarding device is 3-10 microseconds, the transmission delay of the second forwarding device is 0.03s, and the transmission delay of the third forwarding device is 0.04s. Then, the first device determines that the transmission delay of the A communication path is 0.09s. Similarly, if the transmission delay of the B communication path is 0.11 ms, the first device determines the communication path with less transmission delay as the target path, that is, the first device determines the A communication path as the target path.
  • the number of communication paths may be dozens, or hundreds, etc., and the first device may determine the target path by selecting the optimal TopK paths.
  • the present application also provides several ways to reduce computation.
  • each service device calculates the path to each leaf switch, there is no dependency between each round of calculation, so parallel computing can be adopted, such as introducing multi-threading or multi-node parallel computing, by dividing the destination leaf switch into For multiple groups, each group is independently calculated as the input of a thread or path calculation node. That is, each service device calculates a part of network indicator information.
  • the data center network includes 30 backbone switches and 30 leaf switches, each backbone switch is downstream connected to 30 service devices, a total of 900 nodes, and there are 30 paths between every two service devices across the backbone switches, Assuming that K is 16, each service device node needs to calculate about 870 30-to-16 calculations to other nodes, and after adopting the above calculation reduction method, each service device only needs to calculate to a certain destination backbone switch once. 16 out of 30 calculations.
  • the first device may generate a first data packet according to a communication path, and the first data packet may include a source route SR label and indication information.
  • the SR label is used for communication between forwarding devices on the communication path, and the indication information is used for It is used to instruct the forwarding device whether to collect network state parameters; the first device sends the first data packet to the forwarding device.
  • the forwarding device can be made to know whether to collect network state parameters, which is beneficial for the first device to subsequently determine a target path with better network performance in the communication path.
  • the embodiments of the present application further provide corresponding apparatuses, including corresponding modules for executing the foregoing embodiments.
  • Modules can be software, hardware, or a combination of software and hardware.
  • the first device 600 includes:
  • a receiving unit 601 configured to acquire a communication path, where the communication path is used for the first device to communicate with the second device;
  • a processing unit 602 configured to generate a first data packet according to the communication path, where the first data packet includes indication information, and the indication information is used to instruct the forwarding device on the communication path to collect network state parameters;
  • the sending unit 603 is configured to send a first data packet to the forwarding device, where the first data packet is used to determine a target path in the communication path.
  • the receiving unit 601 is further configured to acquire network indicator information, where the network indicator information is obtained by processing network state parameters;
  • the processing unit 602 is further configured to determine a target path in the communication path according to the network indicator information.
  • the sending unit 603 is further configured to send a service data packet to the second device using the target path, where the service data packet is used to transmit service information between the first device and the second device.
  • the processing unit 602 generates the first data packet according to the communication path, and instructs the forwarding device on the communication path to collect network state parameters through the indication information, so that the first data packet can be used to determine the target path. That is, the communication path for the communication between the first device and the second device can be determined according to the network performance, so as to further improve the quality and efficiency of the communication between the first device and the second device.
  • the forwarding device 700 includes:
  • a receiving unit 701 configured to receive a first data packet from a first device, and the first data packet indication information, where the indication information is used to instruct the forwarding device to collect network state parameters, and the network state parameters are related to the forwarding device;
  • a processing unit 702 configured to collect network state parameters according to the indication information to obtain a second data packet
  • the sending unit 703 is configured to send the second data packet to the second device.
  • the first data packet further includes a source route SR label, the SR label corresponds to the forwarding device, and the SR label is used for communication of the forwarding device;
  • the processing unit 702 is specifically configured to collect network state parameters, and add the network state parameters to the first data packet with the SR label deleted to obtain the second data packet;
  • the sending unit 703 is specifically configured to send the second data packet to the second device according to the SR tag.
  • the processing unit 702 collects network state parameters according to the indication information in the first data packet to obtain the second data packet.
  • the sending unit 703 sends the second data packet to the second device, so that the second device learns the network state parameter of the forwarding device.
  • the controller 800 includes:
  • a processing unit 801 configured to determine a communication path, where the communication path is used for the first device to communicate with the second device;
  • a sending unit 802 configured to send a communication path to the first device
  • the receiving unit 803 is configured to receive a probe report sent by the second device, where the probe report is related to a network state parameter, the network state parameter is related to a forwarding device on the communication path, and the probe report is further used to determine a target path in the communication path.
  • the processing unit 801 is further configured to calculate the network indicator information; the sending unit 802 is further configured to send the network indicator information to the first device, so that the first device determines the network indicator information in the communication path according to the network indicator information. Target path.
  • the processing unit 801 is specifically configured to calculate the transmission delay of the forwarding device, and the transmission delay is the difference between the timestamp of the ingress port and the timestamp of the egress port.
  • the processing unit 801 is specifically configured to calculate the average bandwidth value of the forwarding device.
  • the processing unit 801 is specifically configured to calculate the average bandwidth value of the forwarding device in the following manner:
  • the current value of the total number of bytes includes the byte value of the first data packet
  • the historical value of the total number of bytes includes the byte value or 0 of the last data packet
  • the current value of the outgoing port timestamp includes the time when the first data packet exited the port Stamp
  • outgoing port timestamp historical value includes the timestamp of the last packet outgoing port or 0.
  • the processing unit 801 is further configured to determine a target path in the communication path according to the network indicator information
  • the sending unit 802 is further configured to send the target path to the first device.
  • each unit in the controller is similar to those described in the foregoing embodiments shown in FIG. 2 to FIG. 5 , and details are not repeated here.
  • the sending unit 802 sends the communication path to the first device, that is, sends the communication path that needs to measure the network state parameter to the first device, so as to reduce the memory consumption caused by the first device calculating the communication path.
  • the receiving unit 803 receives the probe report, so that an appropriate target path can be determined according to the probe report.
  • the structure of the first device of the present application may be as shown in FIG. 9 .
  • the first device 900 includes a host and a smart network card.
  • the host and the smart network card communicate through the control channel, which is used to issue the source routing path table and send and receive INT detection packets.
  • PF physical function
  • VF virtual function
  • the host After the host completes the Top K route selection, it sends the route table to the smart NIC, and stores the route table in it.
  • the NIC also maintains a service forwarding table or flow table. In the flow table, in addition to maintaining specific The state information of the flow, and a source routing space is reserved for storing the source routing forwarding label of the current flow.
  • Service forwarding includes sending (TX) and receiving (RX).
  • TX sending
  • RX receiving
  • the network card will check the source routing space in the flow table after finding the flow table hit. This space for the newly created flow is invalid. It is necessary to further query the source routing path table to obtain the corresponding label, and store it in the source routing space in the flow table. Subsequent packets of the flow can directly obtain the source routing label from the flow table without the need to look up the table twice. effectiveness.
  • the path table can be independently refreshed at any time, and the source routing space in the flow table is not affected, which can ensure that the paths of existing service flows are always consistent.
  • This offloading method decouples the source routing control plane and the service plane, and only associates the network card configuration. Users and service software are not aware of the existence of the source routing routing mechanism. If the source routing forwarding needs to be disabled, only the enabling configuration needs to be disabled. , the network card will no longer do source route lookup and encapsulation.
  • the forwarding device After parsing the source routing label number in the data packet, the forwarding device directly forwards the data packet to the corresponding outgoing port without any table lookup operation, which can achieve extreme forwarding delay.
  • This forwarding method also greatly reduces the complexity of the forwarding logic of the forwarding device, and does not need to distinguish between the switches at the edge and the center of the network in configuration management.
  • FIG. 10 is a possible schematic diagram of the communication device 1000 involved in the above embodiment provided for the embodiment of this application.
  • the communication device may specifically be the first device, the forwarding device, and the controller in the foregoing embodiment.
  • the communication device 1000 may include but is not limited to a processor 1001, a communication port 1002, a memory 1003, and a bus 1004.
  • the processor 1001 is used to control the actions of the communication device 1000. .
  • the processor 1001 may be a central processing unit, a general purpose processor, a digital signal processor, an application specific integrated circuit, a field programmable gate array or other programmable logic device, transistor logic device, hardware component, or any combination thereof. It may implement or execute the various exemplary logical blocks, modules and circuits described in connection with this disclosure.
  • the processor may also be a combination that implements computing functions, such as a combination comprising one or more microprocessors, a combination of a digital signal processor and a microprocessor, and the like.
  • the communication device shown in FIG. 10 can be specifically used to implement the functions of the steps performed by the first device, the forwarding device, the controller or the second device in the method embodiments corresponding to FIG. 2 to FIG. 5 , and realize the first
  • the technical effects corresponding to the device, the forwarding device, the controller or the second device, and the specific implementation of the communication device shown in FIG. 10 can be referred to the descriptions in the respective method embodiments corresponding to FIG. 2 to FIG. One more elaboration.
  • Embodiments of the present application further provide a computer-readable storage medium that stores one or more computer-executable instructions.
  • the processor executes as described in the possible implementation manner of the first device in the foregoing embodiments.
  • the method described above, wherein the first device may specifically be the first device in the foregoing method embodiments corresponding to FIG. 2 to FIG. 5 .
  • Embodiments of the present application further provide a computer-readable storage medium that stores one or more computer-executable instructions.
  • the processor executes the forwarding device as described in the possible implementations of the foregoing embodiments. method, wherein the forwarding device may specifically be the forwarding device in the foregoing method embodiments corresponding to FIG. 2 to FIG. 5 .
  • Embodiments of the present application further provide a computer-readable storage medium that stores one or more computer-executable instructions.
  • the processor executes as described in possible implementations of the controller in the foregoing embodiments. method, wherein the controller may specifically be the controller in the foregoing method embodiments corresponding to FIG. 2 to FIG. 5 .
  • Embodiments of the present application further provide a computer program product that stores one or more computers.
  • the processor executes the method for the possible implementation of the first device, wherein the first device Specifically, it may be the first device in the foregoing method embodiments corresponding to FIG. 2 to FIG. 5 .
  • Embodiments of the present application also provide a computer program product that stores one or more computers.
  • the processor executes the method for possible implementations of the forwarding device, wherein the forwarding device may specifically It is the forwarding device in the method embodiments corresponding to the foregoing FIG. 2 to FIG. 5 .
  • Embodiments of the present application also provide a computer program product that stores one or more computers.
  • the processor executes the method for possible implementations of the above-mentioned controller, wherein the controller may specifically It is the controller in the method embodiments corresponding to the foregoing FIG. 2 to FIG. 5 .
  • Embodiments of the present application further provide a computer program product that stores one or more computers.
  • the processor executes the method for the possible implementation of the second device, wherein the second device Specifically, it may be the second device in the foregoing method embodiments corresponding to FIG. 2 to FIG. 5 .
  • An embodiment of the present application further provides a chip system, where the chip system includes a processor, which is configured to support the first device to implement the functions involved in the possible implementation manners of the first device.
  • the chip system may further include a memory for storing necessary program instructions and data of the first device.
  • the chip system may be composed of chips, or may include chips and other discrete devices, wherein the first device may specifically be the first device in the method embodiments corresponding to FIG. 2 to FIG. 5 .
  • An embodiment of the present application further provides a chip system, where the chip system includes a processor, which is configured to support the forwarding device to implement the functions involved in the possible implementation manners of the foregoing forwarding device.
  • the chip system may further include a memory for storing necessary program instructions and data of the forwarding device.
  • the chip system may be composed of chips, or may include chips and other discrete devices, wherein the forwarding device may specifically be the forwarding device in the method embodiments corresponding to FIG. 2 to FIG. 5 .
  • An embodiment of the present application further provides a chip system, where the chip system includes a processor, which is configured to support the controller to implement the functions involved in the above possible implementation manner of the controller.
  • the chip system may further include a memory for storing necessary program instructions and data of the controller.
  • the chip system may be composed of chips, or may include chips and other discrete devices, wherein the controller may specifically be the controller in the method embodiments corresponding to FIG. 2 to FIG. 5 .
  • An embodiment of the present application further provides a chip system, where the chip system includes a processor, and is configured to support the second device to implement the functions involved in the possible implementation manners of the second device.
  • the chip system may further include a memory for storing necessary program instructions and data of the second device.
  • the chip system may be composed of chips, or may include chips and other discrete devices, wherein the second device may specifically be the second device in the method embodiments corresponding to FIG. 2 to FIG. 5 .
  • Embodiments of the present application further provide a network system architecture, where the network system architecture includes the foregoing communication device, and the communication device may specifically be the first device and/or the forwarding device in the foregoing method embodiments corresponding to FIG. 2 to FIG. 5 , and /or the controller and/or the 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 above-mentioned integrated units may be implemented in the form of hardware, or may be implemented in the form of software functional units.
  • the integrated unit if implemented in the form of a software functional unit and sold or used as an independent product, may be stored in a computer-readable storage medium.
  • the technical solutions of the present application can be embodied in the form of software products in essence, or the parts that contribute to the prior art, or all or part of the technical solutions, and the computer software products are stored in a storage medium , including several instructions for causing 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, removable 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

本申请实施例公开了一种通信系统、数据处理方法以及相关设备,可以应用于数据中心网络或私有云网络等。本申请实施例中的通信系统包括:第一设备、转发设备、控制器以及第二设备,其中,第一设备,用于根据通信路径生成第一数据包,第一数据包包括指示信息,指示信息用于指示转发设备采集网络状态参数;第一设备,还用于向转发设备发送第一数据包,可以使得转发设备采集网络状态参数。转发设备,用于向第二设备发送第二数据包,有利于后续确定通信路径中网络性能较好的目标路径。

Description

一种通信系统、数据处理方法以及相关设备 技术领域
本申请实施例涉及通信领域,尤其涉及一种通信系统、数据处理方法以及相关设备。
背景技术
等价多路径路由(Equal-Cost Multi-Path Routing,ECMP)是一种逐跳的基于流的负载均衡策略。当某条流存在多条可选路径时,ECMP可以采用多种策略来进行选路,实现一定程度的负载均衡。
目前,ECMP的选路策略主要包括:基于哈希(例如,根据五元组的哈希为流选择路径)、轮询(即各个流在多条路径之间轮询传输)、基于路径权重(即权重大的路径分配的流数量更多)。
但是,当不同流之间差异较大,例如大象流和老鼠流同时存在时,ECMP无法合理地为不同流安排路径。
发明内容
本申请实施例提供了一种通信系统、数据处理方法以及相关设备。用于通过网络状态参数确定合适的通信路径。
本申请实施例第一方面提供了一种通信系统,该通信系统包括:控制器、第一设备、转发设备以及第二设备;控制器,用于确定通信路径,通信路径用于第一设备与第二设备通信;控制器,还用于向第一设备发送通信路径;第一设备,用于根据通信路径生成第一数据包,第一数据包包括指示信息,指示信息用于指示转发设备采集网络状态参数;第一设备,还用于向转发设备发送第一数据包;转发设备,用于根据指示信息采集网络状态参数,网络状态参数与转发设备一一对应;转发设备,还用于在第一数据包中增加网络状态参数得到第二数据包;转发设备,还用于向第二设备发送第二数据包;第二设备,用于根据第二数据包向控制器发送探测报告,探测报告用于确定通信路径中的目标路径。
本申请实施例中,第一设备,用于根据通信路径生成第一数据包,第一数据包包括指示信息,指示信息用于指示转发设备采集网络状态参数;第一设备,还用于向转发设备发送第一数据包,可以使得转发设备采集网络状态参数。转发设备,用于向第二设备发送第二数据包,有利于后续确定通信路径中网络性能较好的目标路径。
可选地,在第一方面的一种可能的实现方式中,上述的第一数据包还包括源路由SR标签,SR标签用于通信路径上转发设备的通信;转发设备,具体用于在删除SR标签的第一数据包中增加网络状态参数得到第二数据包;转发设备,具体用于根据SR标签向第二设备发送第二数据包。
该种可能的实现方式中,第一设备生成的第一数据包中还包括SR标签,使得转发设备在采集网络状态参数之后,直接在删除SR标签的第一数据包中增加网络状态参数得到第二数据包,转发设备,用于根据SR标签向第二设备发送第二数据包。使得转发设备不用做任何查表操作,可以实现极低的转发时延。
可选地,在第一方面的一种可能的实现方式中,上述的在通信路径包括多个转发设备的情况下,SR标签为多个,转发设备,具体用于在删除自身对应的SR标签的第一数据包中增 加网络状态参数得到第二数据包,第二数据包包括下一跳转发设备的SR标签。
该种可能的实现方式中,当转发设备是多个时,每个转发设备只删除自身对应的SR标签,使得SR标签不重复使用,每一个转发设备可以简单确定哪个SR标签是自身的,不用附加的索引来指示转发设备对应的SR标签,减少数据包的字节数。
可选地,在第一方面的一种可能的实现方式中,上述的SR标签包括转发设备的出端口号。
该种可能的实现方式中,第一设备生成的第一数据包中还包括SR标签,使得转发设备在解析到第一数据包中的SR标签之后,直接将第一数据包转发到对应的出端口,期间不做任何查表操作,可以实现极低的转发时延。
可选地,在第一方面的一种可能的实现方式中,上述的探测报告包括网络状态参数;控制器,还用于根据网络状态参数确定网络指标信息;控制器,还用于向第一设备发送网络指标信息;第一设备,还用于根据网络指标信息确定通信路径中的目标路径。
该种可能的实现方式中,控制器可以计算网络指标信息,第一设备可以根据网络指标信息确定目标路径。一方面:可以使得第一设备可以通过网络性能较好的目标路径与第二设备进行通信,提高第一设备与第二设备通信质量及效率。另一方面:第一设备确定目标路径,在网络拓扑复杂的情况下,即第一设备为多个时,减少控制器确定目标路径所带来的内存消耗。
可选地,在第一方面的一种可能的实现方式中,上述的探测报告包括网络状态参数;控制器,还用于根据网络状态参数确定网络指标信息;控制器,还用于根据网络指标信息确定通信路径中的目标路径;控制器,还用于向第一设备发送目标路径。
该种可能的实现方式中,控制器可以计算网络指标信息,并根据网络指标信息确定目标路径。控制器向第一设备发送目标路径。一方面:可以使得第一设备可以通过网络性能较好的目标路径与第二设备进行通信,提高第一设备与第二设备通信质量及效率。另一方面:控制器确定目标路径,有利于控制器掌握网络拓扑中各个通信路径的网络性能。
可选地,在第一方面的一种可能的实现方式中,上述的探测报告包括网络状态参数;控制器,还用于向第一设备发送网络状态参数;第一设备,还用于根据网络状态参数确定网络指标信息;第一设备,还用于根据网络指标信息确定通信路径中的目标路径。
该种可能的实现方式中,第一设备可以计算网络指标信息,第一设备可以根据网络指标信息确定目标路径。一方面:可以使得第一设备可以通过网络性能较好的目标路径与第二设备进行通信,提高第一设备与第二设备通信质量及效率。另一方面:第一设备计算网络指标信息以及确定目标路径,在网络拓扑复杂的情况下,即第一设备为多个时,减少控制器计算网络指标信息以及确定目标路径所带来的内存消耗。
可选地,在第一方面的一种可能的实现方式中,上述的网络状态参数包括转发设备的入端口时间戳以及转发设备的出端口时间戳,或网络状态参数包括转发设备的出端口数据包字节总数,网络指标信息包括转发设备的平均带宽值、传输时延或误码率中的至少一种。
可选地,在第一方面的一种可能的实现方式中,上述通信系统中的第一设备,还用于使用目标路径向第二设备发送业务数据包,业务数据包用于传输第一设备与第二设备之间的业务信息。
该种可能的实现方式中,第一设备可以通过网络性能较好的目标路径与第二设备进行业务通信,提高第一设备与第二设备之间业务通信的质量及效率。
本申请实施例第二方面提供了一种数据处理方法,该处理方法可以由第一设备执行,也 可以由第一设备的部件(例如处理器、芯片、或芯片系统等)执行。该方法包括:第一设备获取通信路径,通信路径用于第一设备与第二设备通信;第一设备根据通信路径生成第一数据包,第一数据包包括指示信息,指示信息用于指示通信路径上的转发设备采集网络状态参数;第一设备向转发设备发送第一数据包,第一数据包用于确定通信路径中的目标路径。
本申请实施例中,第一设备根据通信路径生成第一数据包,并通过指示信息指示通信路径上的转发设备采集网络状态参数,使得第一数据包可以用于确定目标路径。即可以通过网络性能确定第一设备与第二设备通信的通信路径,进一步提高第一设备与第二设备之间通信的质量及效率。
可选地,在第二方面的一种可能的实现方式中,上述步骤还包括:第一设备获取网络指标信息,网络指标信息由网络状态参数处理得到;第一设备根据网络指标信息确定通信路径中的目标路径。
该种可能的实现方式中,以通过网络性能确定第一设备与第二设备通信的通信路径,进一步提高第一设备与第二设备之间通信的质量及效率。
可选地,在第二方面的一种可能的实现方式中,上述步骤中的第一设备获取网络指标信息,包括:第一设备接收控制器发送的网络指标信息。
该种可能的实现方式中,第一设备接收控制器发送的网络指标信息,使得控制器可以掌握网络拓扑中各个通信路径的网络性能。
可选地,在第二方面的一种可能的实现方式中,上述步骤中的第一设备获取网络指标信息,包括:第一设备接收控制器发送的网络状态参数;第一设备计算网络状态参数得到网络指示信息。
该种可能的实现方式中,第一设备计算网络指标信息。一方面:可以使得第一设备可以通过网络性能较好的目标路径与第二设备进行通信,提高第一设备与第二设备通信质量及效率。另一方面:第一设备计算网络指标信息,在网络拓扑复杂的情况下,即第一设备为多个时,减少控制器计算网络指标信息所带来的内存消耗。
可选地,在第二方面的一种可能的实现方式中,上述步骤还包括:第一设备使用目标路径向第二设备发送业务数据包,业务数据包用于传输第一设备与第二设备之间的业务信息。
该种可能的实现方式中,第一设备可以通过网络性能较好的目标路径与第二设备进行业务通信,提高第一设备与第二设备之间业务通信的质量及效率。
可选地,在第二方面的一种可能的实现方式中,上述步骤中的网络状态参数包括转发设备的入端口时间戳以及转发设备的出端口时间戳,或网络状态参数包括转发设备的出端口数据包字节总数,网络指标信息包括转发设备的平均带宽值、传输时延或误码率中的至少一种。
可选地,在第二方面的一种可能的实现方式中,上述步骤中的第一设备获取网络指标信息,包括:第一设备采用下述方式计算网络指标信息:
Figure PCTCN2021114187-appb-000001
其中,字节总数当前值包括第一数据包的字节值,字节总数历史值包括上次数据包的字节值或0,出端口时间戳当前值包括第一数据包出端口时的时间戳,出端口时间戳历史值包括上次数据包出端口时的时间戳或0。
该种可能的实现方式中,提供一种具体计算网络指标信息的方式。
可选地,在第二方面的一种可能的实现方式中,上述步骤中的第一设备获取网络指标信息,包括:第一设备计算转发设备的传输时延,传输时延为第一数据包入端口时间戳与第一 数据包出端口时间戳的差值。
该种可能的实现方式中,可以通过传输时延确定目标路径提高第一设备与第二设备之间通信的传输效率。
可选地,在第二方面的一种可能的实现方式中,上述步骤还包括:第一设备接收第三设备发送的第三数据包,第三数据包包括第一设备与第三设备之间通信路径上转发设备的网络状态参数,第三数据包用于确定通信路径中的目标路径。
该种可能的实现方式中,当第一设备为接收端时,第一设备通过第三数据包可以确定第一设备与第三设备之间通信路径中的目标路径,使得第一设备可以通过网络性能较好的目标路径与第三设备进行通信。
可选地,在第二方面的一种可能的实现方式中,上述步骤中的第一数据包还包括源路由SR标签,SR标签用于转发设备的通信。
该种可能的实现方式中,转发设备接收第一设备发送的第一数据包之后,可以根据第一数据包中的SR标签确定通信路径上的下一跳设备,使得转发设备不用做任何查表操作,可以实现极低的转发时延。
可选地,在第二方面的一种可能的实现方式中,上述步骤中的SR标签包括转发设备的出端口号。
该种可能的实现方式中,SR标签包括转发设备的出端口号,使得转发设备接收第一设备发送的第一数据包之后,可以根据第一数据包中的SR标签确定该转发设备的出端口号,即可以确定通信路径上的下一跳设备,使得转发设备不用做任何查表操作,可以实现极低的转发时延。
可选地,在第二方面的一种可能的实现方式中,上述步骤中的第一数据包用于获取网络状态参数,和/或第一数据包用于传输第一设备与第二设备之间的业务信息。
该种可能的实现方式中,第一设备课可以通过上述方法完成探测包或业务数据包实时采集网络状态参数,进而确定更合适的目标路径。
可选地,在第二方面的一种可能的实现方式中,上述步骤中的第一设备获取通信路径,包括:第一设备接收控制器发送的通信路径。
该种可能的实现方式中,通过控制器确定通信路径后发送给第一设备,减少第一设备通过计算确定通信路径带来的内存消耗。
本申请实施例第三方面提供了一种数据处理方法,该处理方法可以由转发设备执行,也可以由转发设备的部件(例如处理器、芯片、或芯片系统等)执行。该方法包括:转发设备接收来自第一设备的第一数据包,第一数据包指示信息,指示信息用于指示转发设备采集网络状态参数,网络状态参数与转发设备相关;转发设备根据指示信息采集网络状态参数,得到第二数据包;转发设备向第二设备发送第二数据包。
该种可能的实现方式中,转发设备可以根据第一数据包中的指示信息采集网络状态参数,得到第二数据包。并向第二设备发送第二数据包,使得第二设备获知转发设备的网络状态参数。
可选地,在第三方面的一种可能的实现方式中,上述步骤中的第一数据包还包括源路由SR标签,SR标签与转发设备对应,SR标签用于转发设备的通信;转发设备根据指示信息采集网络状态参数,得到第二数据包,包括:转发设备采集网络状态参数;转发设备在删除SR标签的第一数据包中增加网络状态参数得到第二数据包;转发设备向第二设备发送第二数据包,包括:转发设备根据SR标签向第二设备发送第二数据包。
该种可能的实现方式中,转发设备在采集网络状态参数之后,直接在删除SR标签的第一数据包中增加网络状态参数得到第二数据包,转发设备,用于根据SR标签向第二设备发送第二数据包。使得转发设备不用做任何查表操作,可以实现极低的转发时延。
可选地,在第三方面的一种可能的实现方式中,上述步骤中的SR标签包括转发设备的出端口号。
该种可能的实现方式中,SR标签包括转发设备的出端口号,使得转发设备接收第一设备发送的第一数据包之后,可以根据第一数据包中的SR标签确定该转发设备的出端口号,即可以确定通信路径上的下一跳设备,使得转发设备不用做任何查表操作,可以实现极低的转发时延。
可选地,在第三方面的一种可能的实现方式中,上述步骤中的网络状态参数包括转发设备的入端口时间戳以及转发设备的出端口时间戳,或网络状态参数包括转发设备的出端口数据包字节总数。
可选地,在第三方面的一种可能的实现方式中,上述步骤中的第一数据包以及第二数据包用于获取网络状态参数,和/或第一数据包以及第二数据包用于传输第一设备与第二设备之间的业务信息。
该种可能的实现方式中,目标路径可以应用于第一设备与第二设备之间的网路状态参数收集或业务通信。
本申请实施例第四方面提供了一种数据处理方法,该处理方法可以由控制器执行,也可以由控制器的部件(例如处理器、芯片、或芯片系统等)执行。该方法包括:控制器确定通信路径,通信路径用于第一设备与第二设备通信;控制器向第一设备发送通信路径;控制器接收第二设备发送的探测报告,探测报告与网络状态参数相关,网络状态参数与通信路径上的转发设备相关,探测报告还用于确定通信路径中的目标路径。
本申请实施例中,控制器向第一设备发送通信路径,即向第一设备发送需要测量网络状态参数的通信路径,减少第一设备计算通信路径带来的内存消耗。并接收探测报告,使得可以根据探测报告确定合适的目标路径。
可选地,在第四方面的一种可能的实现方式中,上述步骤中的探测报告包括网络指标信息,网络指标信息由网络状态参数处理得到。
可选地,在第四方面的一种可能的实现方式中,上述步骤中的探测报告包括网络状态参数。
可选地,在第四方面的一种可能的实现方式中,上述步骤中的网络状态参数包括转发设备的入端口时间戳以及转发设备的出端口时间戳,或网络状态参数包括转发设备的出端口数据包字节总数。
可选地,在第四方面的一种可能的实现方式中,上述步骤还包括:控制器计算网络指标信息;控制器向第一设备发送网络指标信息,以使得第一设备根据网络指标信息确定通信路径中的目标路径。
该种可能的实现方式中,控制器计算网络指标信息,并向第一设备发送网络指标信息。一方面,第一设备可以根据网络指标信息确定通信路径中的目标路径。另一方面,控制器可以掌握网络拓扑中各个通信路径的网络性能。
可选地,在第四方面的一种可能的实现方式中,上述步骤中的控制器计算网络指标信息,包括:控制器计算转发设备的传输时延,传输时延为入端口时间戳与出端口时间戳的差值。
该种可能的实现方式中,可以通过传输时延确定目标路径提高第一设备与第二设备之间 通信的传输效率。
可选地,在第四方面的一种可能的实现方式中,上述步骤中的控制器计算网络指标信息,包括:控制器计算转发设备的平均带宽值。
可选地,在第四方面的一种可能的实现方式中,上述步骤中的控制器采用下述方式计算转发设备的平均带宽值:
Figure PCTCN2021114187-appb-000002
其中,字节总数当前值包括第一数据包的字节值,字节总数历史值包括上次数据包的字节值或0,出端口时间戳当前值包括第一数据包出端口时的时间戳,出端口时间戳历史值包括上次数据包出端口时的时间戳或0。
该种可能的实现方式中,提供一种具体计算网络指标信息的方式。
可选地,在第四方面的一种可能的实现方式中,上述步骤还包括:控制器根据网络指标信息确定通信路径中的目标路径;控制器向第一设备发送目标路径。
该种可能的实现方式中,控制器可以计算网络指标信息,并根据网络指标信息确定目标路径。控制器向第一设备发送目标路径。一方面:可以使得第一设备可以通过网络性能较好的目标路径与第二设备进行通信,提高第一设备与第二设备通信质量及效率。另一方面:控制器确定目标路径,有利于控制器掌握网络拓扑中各个通信路径的网络性能。
本申请实施例第五方面提供一种第一设备,该第一设备包括:
接收单元,用于获取通信路径,通信路径用于第一设备与第二设备通信;
处理单元,用于根据通信路径生成第一数据包,第一数据包包括指示信息,指示信息用于指示通信路径上的转发设备采集网络状态参数;
发送单元,用于向转发设备发送第一数据包,第一数据包用于确定通信路径中的目标路径。
可选地,在第五方面的一种可能的实现方式中,上述第一设备中的接收单元,还用于获取网络指标信息,网络指标信息由网络状态参数处理得到;处理单元,还用于根据网络指标信息确定通信路径中的目标路径。
可选地,在第五方面的一种可能的实现方式中,上述第一设备中的接收单元,具体用于接收控制器发送的网络指标信息。
可选地,在第五方面的一种可能的实现方式中,上述第一设备中的接收单元,具体用于接收控制器发送的网络状态参数;处理单元,还用于计算网络状态参数得到网络指示信息。
可选地,在第五方面的一种可能的实现方式中,上述第一设备中的发送单元,还用于使用目标路径向第二设备发送业务数据包,业务数据包用于传输第一设备与第二设备之间的业务信息。
可选地,在第五方面的一种可能的实现方式中,上述的网络状态参数包括转发设备的入端口时间戳以及转发设备的出端口时间戳,或网络状态参数包括转发设备的出端口数据包字节总数,网络指标信息包括转发设备的平均带宽值、传输时延或误码率中的至少一种。
可选地,在第五方面的一种可能的实现方式中,上述第一设备中的处理单元,具体用于采用下述方式计算网络指标信息:
Figure PCTCN2021114187-appb-000003
其中,字节总数当前值包括第一数据包的字节值,字节总数历史值包括上次数据包的字 节值或0,出端口时间戳当前值包括第一数据包出端口时的时间戳,出端口时间戳历史值包括上次数据包出端口时的时间戳或0。
可选地,在第五方面的一种可能的实现方式中,上述第一设备中的处理单元,具体用于计算转发设备的传输时延,传输时延为第一数据包入端口时间戳与第一数据包出端口时间戳的差值。
可选地,在第五方面的一种可能的实现方式中,上述第一设备中的接收单元,还用于接收第三设备发送的第三数据包,第三数据包包括第一设备与第三设备之间通信路径上转发设备的网络状态参数,第三数据包用于确定通信路径中目标路径。
可选地,在第五方面的一种可能的实现方式中,上述中的第一数据包还包括源路由SR标签,SR标签用于转发设备的通信。
可选地,在第五方面的一种可能的实现方式中,上述的SR标签包括转发设备的出端口号。
本申请实施例第六方面提供一种转发设备,该转发设备包括:
接收单元,用于接收来自第一设备的第一数据包,第一数据包指示信息,指示信息用于指示转发设备采集网络状态参数,网络状态参数与转发设备相关;
处理单元,用于根据指示信息采集网络状态参数,得到第二数据包;
发送单元,用于向第二设备发送第二数据包。
可选地,在第六方面的一种可能的实现方式中,上述的第一数据包还包括源路由SR标签,SR标签与转发设备对应,SR标签用于转发设备的通信;处理单元,具体用于采集网络状态参数;并在删除SR标签的第一数据包中增加网络状态参数得到第二数据包;发送单元,具体用于根据SR标签向第二设备发送第二数据包。
可选地,在第六方面的一种可能的实现方式中,上述的SR标签包括转发设备的出端口号。
可选地,在第六方面的一种可能的实现方式中,上述的网络状态参数包括转发设备的入端口时间戳以及转发设备的出端口时间戳,或网络状态参数包括转发设备的出端口数据包字节总数。
可选地,在第六方面的一种可能的实现方式中,上述的第一数据包以及第二数据包用于获取网络状态参数,和/或第一数据包以及第二数据包用于传输第一设备与第二设备之间的业务信息。
本申请实施例第七方面提供一种控制器,该控制器包括:
处理单元,用于确定通信路径,通信路径用于第一设备与第二设备通信;
发送单元,用于向第一设备发送通信路径;
接收单元,用于接收第二设备发送的探测报告,探测报告与网络状态参数相关,网络状态参数与通信路径上的转发设备相关,探测报告还用于确定通信路径中的目标路径。
可选地,在第七方面的一种可能的实现方式中,上述的探测报告包括网络指标信息,网络指标信息由网络状态参数处理得到。
可选地,在第七方面的一种可能的实现方式中,上述的探测报告包括网络状态参数。
可选地,在第七方面的一种可能的实现方式中,上述的网络状态参数包括转发设备的入端口时间戳以及转发设备的出端口时间戳,或网络状态参数包括转发设备的出端口数据包字节总数。
可选地,在第七方面的一种可能的实现方式中,上述控制器中的处理单元,还用于计算 网络指标信息;发送单元,还用于向第一设备发送网络指标信息,以使得第一设备根据网络指标信息确定通信路径中的目标路径。
可选地,在第七方面的一种可能的实现方式中,上述控制器中的处理单元,具体用于计算转发设备的传输时延,传输时延为入端口时间戳与出端口时间戳的差值。
可选地,在第七方面的一种可能的实现方式中,上述控制器中的处理单元,具体用于计算转发设备的平均带宽值。
可选地,在第七方面的一种可能的实现方式中,上述控制器中的处理单元,还用于采用下述方式计算转发设备的平均带宽值:
Figure PCTCN2021114187-appb-000004
其中,字节总数当前值包括第一数据包的字节值,字节总数历史值包括上次数据包的字节值或0,出端口时间戳当前值包括第一数据包出端口时的时间戳,出端口时间戳历史值包括上次数据包出端口时的时间戳或0。
可选地,在第七方面的一种可能的实现方式中,上述控制器中的处理单元,还用于根据网络指标信息确定通信路径中的目标路径;发送单元,还用于向第一设备发送目标路径。
本申请实施例第八方面提供了一种第一设备,包括:处理器,处理器与存储器耦合,存储器用于存储程序或指令,当程序或指令被处理器执行时,使得该第一设备实现上述第二方面或第二方面的任意可能的实现方式中的方法。
本申请实施例第九方面提供了一种转发设备,包括:处理器,处理器与存储器耦合,存储器用于存储程序或指令,当程序或指令被处理器执行时,使得该转发设备实现上述第三方面或第三方面的任意可能的实现方式中的方法。
本申请实施例第十方面提供了一种控制器,包括:处理器,处理器与存储器耦合,存储器用于存储程序或指令,当程序或指令被处理器执行时,使得该控制器实现上述第四方面或第四方面的任意可能的实现方式中的方法。
本申请实施例第十一方面提供了一种通信系统,包括第八方面提供的第一设备,和/或第九方面的转发设备,和/或第十方面的控制器。
本申请第十二方面提供了一种芯片,该芯片包括处理器和接口电路,该接口电路和该处理器耦合,该处理器用于运行计算机程序或指令,以实现如第二方面或第二方面的任意可能的实现方式、第三方面或第三方面的任意可能的实现方式、第四方面或第四方面的任意可能的实现方式中的方法,该接口电路用于与该芯片之外的其它模块进行通信。
本申请实施例第十三方面提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,该指令在计算机上执行时,使得计算机执行前述第二方面或第二方面的任意可能的实现方式、第三方面或第三方面的任意可能的实现方式、第四方面或第四方面的任意可能的实现方式中的方法。
本申请实施例第十四方面提供了一种计算机程序产品,该计算机程序产品在计算机上执行时,使得计算机执行前述第二方面或第二方面的任意可能的实现方式、第三方面或第三方面的任意可能的实现方式、第四方面或第四方面的任意可能的实现方式中的方法。
其中,第五方面、第八方面、第十一方面、第十二方面、第十三方面、第十四方面或者其中任一种可能实现方式所带来的技术效果可参见第二方面或第二方面不同可能实现方式所带来的技术效果,此处不再赘述。
其中,第六方面、第九方面、第十一方面、第十二方面、第十三方面、第十四方面或者 其中任一种可能实现方式所带来的技术效果可参见第三方面或第三方面不同可能实现方式所带来的技术效果,此处不再赘述。
其中,第七方面、第十方面、第十一方面、第十二方面、第十三方面、第十四方面或者其中任一种可能实现方式所带来的技术效果可参见第四方面或第四方面不同可能实现方式所带来的技术效果,此处不再赘述。
从以上技术方案可以看出,本申请实施例具有以下优点:第一设备,用于根据通信路径生成第一数据包,第一数据包包括源路由SR标签以及指示信息,SR标签用于通信路径上转发设备之间的通信,指示信息用于指示转发设备采集网络状态参数;第一设备,还用于向转发设备发送第一数据包,可以使得转发设备采集网络状态参数。转发设备,用于根据SR标签向第二设备发送第二数据包,第二设备有利于第一设备后续确定通信路径中网络性能较好的目标路径。
附图说明
图1为本申请实施例中的网络框架示意图;
图2为本申请实施例中数据处理方法一个流程示意图;
图3为本申请实施例中一种通信路径的示意图;
图4为本申请实施例中第一数据包中的一种格式示意图;
图5为本申请实施例中通信路径的另一示意图;
图6为本申请实施例中第一设备的一个结构示意图;
图7为本申请实施例中转发设备的一个结构示意图;
图8为本申请实施例中控制器的一个结构示意图;
图9为本申请实施例中第一设备的另一结构示意图;
图10为本申请实施例中通信设备的一个结构示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述,本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请实施例提供了一种通信系统、数据处理方法以及相关设备,用于通过网络状态参数确定合适的通信路径。
本申请提供的通信方法可以应用在不同的通信网络中,以下以数据中心网络为例,说明该通信方法。
请参阅图1,本申请实施例中网络架构包括:
控制器100,骨干交换机(spine)101和102,叶子交换机(leaf)103至105,服务设备106至108。
其中,控制器100分别与骨干交换机101和102、叶子交换机103至105以及服务设备106至108相连接。骨干交换机101分别与叶子交换机103至105相连,骨干交换机102分 别与叶子交换机103至105相连,叶子交换机103与服务设备106相连,叶子交换机104与服务设备107相连,叶子交换机105与服务设备108相连。
本实施例中,仅以两个骨干交换机101和102,三个叶子交换机103至105,三个服务设备106至108为例进行示意性说明,在实际应用中,网络架构中可以有更多的骨干交换机、叶子交换机以及服务设备,具体此处不作限定。
各服务设备接入叶子交换机的方式也可以有所不同,图1仅以一个服务设备接入一个叶子交换机为例进行示意性说明,也可以多个服务设备接入一个叶子交换机,具体此处不做限定。
骨干交换机101与叶子交换机103至105之间一般通过有线网络连接,也可以通过无线网络连接,如果是通过有线网络连接,连接形式可以为光纤网络。
叶子交换机与服务设备之间一般通过无线网络连接,也可以通过有线网络连接,如果是通过有线网络连接,连接形式可以为光纤网络,如果是通过无线网络连接,连接形式可以为蜂窝状无线网络,或者是WiFi网络,或者是其他类型的无线网络。
各服务设备之间的通信可以通过叶子交换机进行交互,也可以通过叶子交换机与骨干交换机进行交互。
控制器100的主要功能是管理网络中的设备(骨干交换机101和102、叶子交换机103至105以及服务设备106至108)。
骨干交换机101和102的主要功能是保证网络内的任意两个叶子交换机之间通信。
叶子交换机103至105的主要功能是数据中转,连接骨干交换机和服务设备,并传输数据。
服务设备106至108的主要功能是为用户或其他设备提供服务。
本申请实施例中,服务设备可以是机架服务器、刀片服务器、计算节点或存储节点等,具体此处不作限定。
本申请实施例中的第一设备与第二设备相当于图1所示架构中的服务设备,转发设备相当于图1所示架构中的骨干交换机或叶子交换机,控制器相当于图1所示架构中的控制器。
可以理解的是,图1的架构只是举例,实际应用中,骨干交换机上方还可以连接核心交换机(core),叶子交换机下方还可以连接机柜顶部(top of rack,TOR)交换机,即对于转发设备的具体层数,此处不做限定,可以是spine-leaf,也可以是spine-leaf-tor,还可以是core-spine-leaf-tor等架构。
当前数据中心的网络(DCN)状态复杂,路径负载受各个因素影响(网络拥塞,交换机路由算法等)不可控,多节点的负载不均和拥塞导致DCN整体链路带宽值较低,随着DCN规模的增大,传统的ECMP等负载均衡方法因缺乏对全网状态的感知,已不能满足DCN的负载均衡需求,急需优化。
另外,多协议标签交换(multi-protocol label switching,MPLS)是一种用于快速数据包交换和路由的体系,为网络数据流量提供了寻址、路由、转发和交换等能力。
多个支持MPLS的网络设备互联形成MPLS域,在一条转发路径上,进入MPLS域的节点称为入节点,离开MPLS域的节点称为出节点,而转发路径上的节点均称为中间节点。MPLS的转发流程如图1所示,当报文进入MPLS域时,入节点会查询转发信息表(forward information dataBase,FIB)等表项,获得出接口、出标签等信息,然后在原始报文上压入MPLS标签,之后将报文转发给下一跳。中间节点收到报文后,会根据MPLS标签值查看对应的表项,获得下一跳的出接口和标签,如果标签值大于等于16,则用新的标签替换报文中旧的MPLS标签, 然后将报文转发到下一跳;如果标签值等于3则为倒数第二跳转发节点,此时需要弹出标签后再做转发。出节点收到报文后直接做传统IP报文转发。其中,
但是,MPLS域中的节点需要区分入节点、中间节点、出节点等不同身份,导致管理面会相对复杂。
本申请实施例中的通信方式除了适用于图1所示的数据中心网络以外,还可以适用于云网络场景,特别是公有云场景,其网络业务分成Overlay和Underlay层,当前主要网络业务都已迁移到Overlay的网络上,而Underlay的网络业务变得非常单一,主要集中在网络的连接和拥塞控制上。在Underlay网络上使用私有协议不会影响Overlay业务,适合引入私有格式的源路由报文来降低端到端转发时延,而INT技术的引入又可以实现网络状态的实时监控,以实现负载均衡和提升网络运维效率。
针对上述问题,本申请实施例提供了一种通信系统、数据处理方法以及相关设备。下面对本申请实施例中的通信系统进行描述。
本申请提供了一种通信系统,该通信系统包括:第一设备、转发设备、第二设备以及控制器。其中,第一设备与第二设备为图1所示实施例中的任意两个服务设备,转发设备为图1所示实施例中任意一个交换(骨干交换机或叶子交换机)。
控制器根据全网的拓扑信息,使用遥测路径规划算法生成全网的带内遥测探测路径,在网络拓扑不发生改变的情况下,路径规划只需执行一次,每当有新增节点或者路径故障等事件发生时,会重新触发全网遥测路径规划。控制器将规划好的路径分发到各台服务器,由服务器会按一定时间间隔,基于每一条探测路径生成带有相应源路由标签的INT探测包完成全网的路径信息收集。在得到汇总的全网链路状态后,控制器通过管理网络将信息同步到网络中的各台服务器节点。
服务设备上运行各自的控制面进程,该进程主要实现两个功能:
(1)转发控制器下发的INT探测报文到智能网卡,转发网卡上送的INT报告到控制器,协助完成全网状态收集;
(2)从控制面获取到全网状态信息后,通过一定的路径选择算法,挑选出到网络中其他主机的多条最优路径,并生成源路由路径表下发到智能网卡中;
智能网卡在发送端对业务报文按一定的规则(例如五元组或者目的IP)进行路径查找,并封装相应的源路由标签。由于去往每个目的节点都存在多条可用路径,智能网卡还负责将多条业务流均衡到不同的路径之上,并确保在路径表动态刷新时不影响之前已经建立的业务流的转发路径。
转发设备负责报文的源路由转发和INT信息采集,不管是探测报文还是业务报文,转发设备在解析到报文中的源路由标签号之后,直接将报文转发到对应的出端口,期间不做任何查表操作,可以实现极低的转发时延。转发设备上的INT采集单元根据报文是否携带INT采集标识判断是否进行INT信息的采集。
请参阅图2,本申请实施例中通信方法一个实施例包括:
201、控制器确定通信路径。该步骤是可选的。
可选地,控制器可以根据全网拓扑确定第一设备与第二设备之间通信的通信路径。全网拓扑包括网络中各个设备之间的连接关系。
可选地,当全网拓扑发生变化后,即有新增加点或路径故障等事件发生时,控制器或重新确定通信路径。
本申请实施例中的通信路径可以是一条路径,也可以是多条路径,具体此处不做限定。
本申请实施例中,控制器确定通信路径的算法有多种,可以是基于逐跳链路利用率感知的负载均衡架构(hop-by-hop utilization-aware load balancing architecture,HULA)算法或者基于深度优先搜索(deep-first search,DFS)的INT-path算法等,具体此处不做限定。
202、控制器向第一设备发送通信路径。该步骤是可选的。
可选地,控制器确定通信路径后后,向第一设备发送该通信路径。
控制器确定通信路径之后,控制器可以通过管理网络将规划好的路径下发到各台服务设备(即第一设备或第二设备),每台服务设备上只会收到自己需要进行探测的通信路径的信息。
本申请实施例中国的通信路径信息可以包括通信路径上转发设备的出端口、IP地址或设备标识等,具体此处不做限定。
203、第一设备根据通信路径生成第一数据包。
本申请实施例中第一设备获取通信路径的方式除了步骤201与步骤202外,第一设备也可以先获取全网拓扑,并根据全网拓扑确定通信路径。还可以通过其他设备确定通信路径,具体此处不做限定。
可选地,第一设备可以按一定时间间隔发送第一数据包,具体的时间间隔可以根据网路规模做调整。
示例性的,通信路径上转发设备的数量为多个,第一设备获取的通信路径如图3所示。其中,一条通信路径:“第一设备-第一转发设备-第二转发设备-第三转发设备-第四转发设备-第五转发设备-第二设备”。另一条通信路径:“第一设备-第一转发设备-第二转发设备-第六转发设备-第四转发设备-第五转发设备-第二设备”。其中,第一设备通过第一转发设备的3端口与第一转发设备相连,第一转发设备的1端口与第二转发设备的3端口连接,第二转发设备的1端口与第三转发设备的1端口连接,第三转发设备的2端口与第四转发设备的1端口连接,第四转发设备的3端口与第五转发设备的1端口连接,第五转发设备通过3端口与第二设备连接。第二转发设备的2端口与第六转发设备的1端口连接,第六转发设备的2端口与第四转发设备的2端口连接。
第一设备获取通信路径后,根据通信路径生成第一数据包。该第一数据包包括指示信息,指示信息用于指示转发设备是否采集网路状态参数。
可选地,第一数据包还包括SR标签,SR标签用于通信路径上的转发设备之间的通信。其中,一个转发设备对应一个SR标签。
本实施例提出一种源路由(source routing,SR)与带内遥测(in-band network telemetry,INT)的融合报文格式。
如图4所示。其中,第一数据包采用以太网(ethernet,ETH)标识高层协议,第一数据包中使用保留的以太类型0x0700作为SR的协议类型;SR_OPTION中sr_len字段值为SR_OPTION以及所有SR标签字段的总长;SR_1表示第一个转发设备的SR标签,其中,int_flag用于表示是否需要对第一转发设备进行INT信息采集,int_flag为1可以表示采集,为0可以表示不采集,next_port字段表示第一设备需要将第一数据包转发到的出端口号。Rsvd用于表示保留字段,具体可以根据需要设置。SR_N表示第N个转发设备的SR标签。第一数据包还可以使用保留的以太类型0x0701作为INT的协议类型,紧跟在SR标签之后。INT_OPTION中int_type字段用于表示是否为控制面下发的第一数据包。int_num用于记录采集到的INT信息数量。
图4中的SR_1、SR_N即SR标签,int_flag字段即第一数据包中的指示信息。
P4联盟或者IOAM标准的INT报文格式中,INT信息都是作为内层报文的选项头存在,需要交换机做深度报文解析才能做INT信息的插入,增加了交换机的复杂度和转发时延。本申请提出的这种私有的报文格式能同时兼顾基于源路由的高效转发以及网络状态的实时收集。更适用于封闭性较好的数据中心网络以及公有云场景。
可以理解的是,第一数据包的格式可以根据实际需要自行设置,图4只是第一数据包格式的一种示例,第一数据包的具体格式此处不做限定。
本申请实施例中的第一数据包可以是探测包,也可以是业务数据包,具体此处不做限定。
另外,第一设备可以通过生成多个通信路径的多组数据包,使得多组数据包覆盖全网路径。
可选地,该第一数据包为探测数据包或业务数据包,具体此处不做限定。当第一数据包为探测数据包时,第一设备可以通过第一数据包获取到通信路径的网络性能(网络状态参数或网络指标信息),进而确定进行业务通信的目标路径。
204、第一设备向转发设备发送第一数据包。
本申请实施例中,转发设备为交换机或路由器等可以转发数据的设备,转发设备的数量可以是一个或多个,具体此处不做限定。
第一设备生成第一数据包后,向转发设备发送该第一数据包。
205、转发设备根据第一数据包生成第二数据包。
转发设备接收来自第一设备的第一数据包,并根据第一数据包中的指示信息(例如:图3中的int_flag字段)采集转发设备的网络状态参数,并在第一数据包中加入该网络状态参数,得到第二数据包。
可选地,如果第一数据包中还包括SR标签,转发设备在第一数据包中删除该转发设备对应的SR标签,得到第二数据包。
可选地,在指示信息指示转发设备采集网络状态参数的情况下(例如:图4中的int_flag字段为1),转发设备采集网络状态参数,并删除该转发设备对应的SR标签,在删除SR标签的第一数据包中增加网络状态参数得到第二数据包。
可选地,在指示信息指示转发设备不采集网络状态参数的情况下(例如:图4中的int_flag字段为0),转发设备不采集网络状态参数,删除第一数据包中转发设备对应的SR标签,得到第二数据包。
本申请实施例中网络状态参数可以是准转发设备的如端口号、转发设备的出端口号、转发设备的入端口时间戳、转发设备的出端口时间戳、进入出端口时的队列深度、离开出端口时的队列深度、转发设备的出端口数据包字节总数或出端口的字节总数等,具体此处不做限定。
为了方便理解,延续上述举例,以通信路径上转发设备的数量是5个为例进行示意性说明,转发设备的数量可以为一个或多个,具体此处不做限定。
如图5,以其中一条的通信路径为例,进行示意性说明。该通信路径上转发设备的数量为5个,分别为第一转发设备、第二转发设备、第三转发设备、第四转发设备以及第五转发设备。其中,假设图4中的int_flag字段为1,即指示信息指示5个转发设备采集网络状态参数。
第一设备根据通信路径生成A数据包500之后,第一设备向第一转发设备发送A数据包500,第一转发设备收到A数据包500后,根据A数据包500中的指示信息,确定需要采集网络状态参数。第一转发设备采集第一转发设备的网络状态参数得到INT1信息,第一转发设备 删除第一转发设备对应的SR标签-SR1(1),并加入采集到的INT1信息,得到B数据包501。第一转发设备根据SR1(1)可知第一转发设备将B数据包501从1号端口转出。即向第二转发设备发送B数据包501。SR1(1)括号中的1相当于图4中next_port。
第二转发设备获取到B数据包501之后,根据B数据包501中的指示信息,确定需要采集网络状态参数。第二转发设备采集第二转发设备的网络状态参数得到INT2信息,第二转发设备删除第二转发设备对应的SR标签-SR2(1),并加入采集到的INT2信息,得到C数据包502。第二转发设备根据SR2(1)可知第二转发设备将C数据包502从1号端口转出。即向第三转发设备发送C数据包502。
第三转发设备获取到C数据包502之后,根据C数据包502中的指示信息,确定需要采集网络状态参数。第三转发设备采集第三转发设备的网络状态参数得到INT3信息,第三转发设备删除第三转发设备对应的SR标签-SR3(2),并加入采集到的INT3信息,得到D数据包503。第三转发设备根据SR3(2)可知第三转发设备将D数据包503从2号端口转出。即向第四转发设备发送D数据包503。
第四转发设备的操作与上述其他转发设备的操作类似,此处不再赘述。
第五转发设备在接收第四转发设备发送的E数据包504之后,根据E数据包504中的指示信息,确定需要采集网络状态参数。第五转发设备采集第五转发设备的网络状态参数得到INT5信息,第五转发设备删除第五转发设备对应的SR标签-SR5(3),并加入采集到的INT5信息,得到F数据包505。第五转发设备根据SR5(3)可知第五转发设备将F数据包505从3号端口转出。即向第二设备发送F数据包505。
可选地,第五转发设备为最后一跳转发设备,第五转发设备可以解析到所有SR标签已耗尽,还会剥离标识SR的以太类型字段和SR标签头。
图5所示通信路径中转发设备的数量以及具体的通信路径只是举例,具体此处不做限定。
基于上述描述可知,转发设备将解析到的第一个SR标签中的next_port值直接作为转出端口号,因此不用做任何路由表或者标签查找,实现极地的转发时延,使用过的SR标签将被删除,防止被重复使用。同时,根据SR中的int_flag字段决定是否向第一数据包中加入INT信息。
可选地,INT信息用堆栈的形式排列(即先才到的INT信息靠后)。
本申请实施例中的网络状态参数(即INT信息)的可选格式如表1所示:
表1
INT信息字段名 长度(bit) 含义
sw_id 16 交换机标识
ingress_port 16 入端口号
egress_port 16 出端口号
ingress_global_timestamp 48 入端口时间戳
egress_global_timestamp 48 出端口时间戳
enq_qdepth 24 进入出端口时的队列深度
deq_qdepth 24 离开出端口时的队列深度
egress_packet_count 32 出端口数据包字节总数
egress_byte_count 32 出端口的字节总数
其中,表1中所示的INT信息字段名、INT信息字段的长度以及INT信息的含义只是举例,具体此处不做限定。
可选地,为了后续网络指标信息的计算,转发设备可以记录各端口累积通过的字节总数以及时间戳。
本申请实施例中的第一设备可以是发送端,也可以是接收端,具体此处不做限定。当第一设备为接收端时,第一设备还可以接收第三设备发送的第三数据包,该第三数据包用于采集第一设备与第三设备之间通信路径上转发设备的网络状态参数,还第三数据包还用于确定第一设备与第三设备之间通信路径中的目标路径。
206、转发设备向第二设备发送第二数据包。
转发设备生成第二数据包之后,根据SR标签向第二设备发送第二数据包。
示例性的,延续上述举例,第五转发设备得到F数据包505之后,第五转发设备根据SR5(3)可知第五转发设备将F数据包505从3号端口转出。即向第二设备发送F数据包505。
207、第二设备根据第二数据包生成探测报告。
本申请实施例中的探测报告中的探测报告的情况有多种,下面分别描述:
1、探测报告包括网络状态参数。
第二设备接收转发设备发送的第二数据包之后,打包第二数据包中的网络状态参数生成探测报告。
示例性的,延续上述举例,第二设备将INT1信息、INT2信息、INT3信息、INT4信息以及INT5信息打包生成探测报告。
2、探测报告包括网络指标信息。
本申请实施例中的网络指标信息可以是转发设备的平均带宽值、传输时延或误码率等,具体此处不做限定。
第二设备接收转发设备发送的第二数据包之后,根据第二数据包中的网络状态参数计算网络指标信息。
示例性的,第二设备从第二数据包中获取到转发设备的入端口时间戳以及出端口时间戳,计算两者差值,得到转发设备的传输时延。
示例性的,第二设备从第二数据包中获取到转发设备出端口字节总数当前值以及出端口时间戳当前值。第二设备可以接收转发设备发送的字节总数历史值以及出端口时间戳历史值。并利用下述公式计算转发设备的平均带宽值:
Figure PCTCN2021114187-appb-000005
如果转发设备的数量是多个,可以确定多个转发设备中平均带宽值的最大值作为链路带宽值;如果转发设备的数量是一个,可以确定该转发设备的平均带宽值为链路带宽值。可以理解的是,如果转发设备的数量是多个,也可以确定多个转发设备中平均带宽值的任一个作为链路带宽值,具体此处不做限定。
可选地,计算平均带宽值后,可以除以全带宽得到平均链路利用率。
如果第一数据包为传输的初次数据包,上述公式中的历史值默认为0;如果第一数据包为传输的第N次数据包,第一设备记录每次传输数据包的字节总数以及出端口时间戳。采用当前值与历史值的差值计算带宽值的优势在于发生数据包丢失时,通过下一次数据包的信息依然可以准确反映这段时间的平均链路利用率,只是统计间隔增长,但不会丢失统计信息。
本申请实施例中的探测报告中的探测报告的情况有多种,上面两种只是举例,具体此处不做限定。
208、第二设备向控制器发送探测报告。
第二设备生成探测报告后,向控制器发送探测报告。
209、控制器根据探测报告确定网络指标信息。该步骤是可选的。
本申请实施例中控制器根据探测报告确定网络指标信息的方式有多种,下面分别描述:
1、当探测报告包括网络状态参数时,控制器通过计算网络状态参数的方式得到网络指标信息。计算的方式如步骤207中转发设备计算网络指标信息的方式类似,此处不做限定。
2、当探测报告包括网络指标信息时,控制器通过接收第二设备发送的探测报告,确定网络指标信息。
本申请实施例中控制器根据探测报告确定网络指标信息的方式有多种,上述两种方式只是举例,具体此处不做限定。
控制器确定网络指标信息后,可以将网络指标信息存入控制器的数据库中。
示例性的,对于网络指标信息为平均带宽值,控制器可以将网络状态参数以及网络指标信息记录在平均带宽值表中,如表2所示:
表2
Figure PCTCN2021114187-appb-000006
其中,表2中记录的内容只是举例,记录的内容根据实际需要设置,具体此处不做限定。
210、控制器向第一设备发送网络指标信息。
控制器确定网络指标信息之后,向第一设备发送网络指标信息。
可选地,第一设备的数据库与控制器的数据库建立主从复制关系,控制器的数据库更新网络指标信息之后,可以实时更新到第一设备的数据库中,实现数据同步。
211、第一设备根据网络指标信息确定通信路径中的目标路径。
第一设备接收控制器发送的网络指标信息之后,第一设备可以根据网络指标信息确定通信路径中的目标路径。
第一设备获取多个通路径的网络指标信息之后,确定目标路径。
示例性的,A通信路径经过三个转发设备,第一个转发设备的平均带宽值为20Gbit/s,第二转发设备的平均带宽值为40Gbit/s,第三转发设备的平均带宽值为30Gbit/s。则第一设备确定该A通信路径的链路带宽值为40Gbit/s。同理,B通信路径的链路带宽值为10Gbit/s,则第一设备确定链路带宽值较少的通信路径为目标路径,即第一设备确定B通信路径为目标路径。
示例性的,A通信路径经过三个转发设备,第一个转发设备的传输时延为3-10微秒,第二转发设备的传输时延为0.03s,第三转发设备的传输时延为0.04s。则第一设备确定该A通信路径的传输时延为0.09s。同理,B通信路径的传输时延为0.11ms,则第一设备确定传输时延较少的通信路径为目标路径,即第一设备确定A通信路径为目标路径。
另外,当网络规模较大时,通信路径的数量可能数十条、或数百条等,第一设备可以通过选择最优TopK条路径的方式,确定目标路径。
对于数据中心网络,本申请还提供几种减少计算的方式。
1、计算叶子交换机下所有服务设备的路径时,骨干交换机(leaf以上的交换机)上的可选路径是相同的,因此不需要将每一台服务设备作为终点进行计算,只需要将该叶子交换机作为终点进行选路即可。即优化终点的选取。
2、服务设备计算到每一台叶子交换机的路径时,每一轮计算间不存在依赖关系,因此可以采用并行计算的方式,例如引入多线程或者多节点进行并行计算,通过将目的叶子交换机 分为多组,每一组作为一个线程或者算路节点的输入进行独立计算。即每个服务设备计算一一部分网络指标信息。
3、每台叶子交换机下的所有服务设备到其他叶子交换机的可用路径完全相同,只需要一台服务设备完成计算即可,再结合上述的第2点,可以把根据目的叶子交换机分组后的计算任务分配到当前叶子交换机下的多台服务设备并行计算。即优化起点的选取。
示例性的,数据中心网络包括30个骨干交换机,30个叶子交换机的,每个骨干交换机下行接30个服务设备,共900个节点,跨骨干交换机的每两台服务设备间存在30条路径,假设K取16,则每台服务设备节点需要计算到其他节点的约870次30选16计算,而采用上述减少计算的方式后,每台服务设备只需要计算到某一台目的骨干交换机的一次30选16计算。
本申请实施例中,第一设备可以根据通信路径生成第一数据包,第一数据包可以包括源路由SR标签以及指示信息,SR标签用于通信路径上转发设备之间的通信,指示信息用于指示转发设备是否采集网络状态参数;第一设备向转发设备发送第一数据包。可以使得转发设备获知是否采集网络状态参数,有利于第一设备后续确定通信路径中网络性能较好的目标路径。
相应于上述方法实施例给出的方法,本申请实施例还提供了相应的装置,包括用于执行上述实施例相应的模块。模块可以是软件,也可以是硬件,或者是软件和硬件结合。
请参阅图6,本申请实施例中第一设备的一个实施例,该第一设备600包括:
接收单元601,用于获取通信路径,通信路径用于第一设备与第二设备通信;
处理单元602,用于根据通信路径生成第一数据包,第一数据包包括指示信息,指示信息用于指示通信路径上的转发设备采集网络状态参数;
发送单元603,用于向转发设备发送第一数据包,第一数据包用于确定通信路径中的目标路径。
在一种可能的设计中,接收单元601,还用于获取网络指标信息,网络指标信息由网络状态参数处理得到;
处理单元602,还用于根据网络指标信息确定通信路径中的目标路径。
发送单元603,还用于使用目标路径向第二设备发送业务数据包,业务数据包用于传输第一设备与第二设备之间的业务信息。
本实施例中,第一设备中各单元所执行的操作与前述图2至图5所示实施例中描述的类似,此处不再赘述。
本实施例中,处理单元602根据通信路径生成第一数据包,并通过指示信息指示通信路径上的转发设备采集网络状态参数,使得第一数据包可以用于确定目标路径。即可以通过网络性能确定第一设备与第二设备通信的通信路径,进一步提高第一设备与第二设备之间通信的质量及效率。
请参阅图7,本申请实施例中转发设备的一个实施例,该转发设备700包括:
接收单元701,用于接收来自第一设备的第一数据包,第一数据包指示信息,指示信息用于指示转发设备采集网络状态参数,网络状态参数与转发设备相关;
处理单元702,用于根据指示信息采集网络状态参数,得到第二数据包;
发送单元703,用于向第二设备发送第二数据包。
在一种可能的设计中,第一数据包还包括源路由SR标签,SR标签与转发设备对应,SR标签用于转发设备的通信;
在一种可能的设计中,处理单元702,具体用于采集网络状态参数,并在删除SR标签的第一数据包中增加网络状态参数得到第二数据包;
在一种可能的设计中,发送单元703,具体用于根据SR标签向第二设备发送第二数据包。
本实施例中,转发设备中各单元所执行的操作与前述图2至图5所示实施例中描述的类似,此处不再赘述。
本实施例中,处理单元702根据第一数据包中的指示信息采集网络状态参数,得到第二数据包。发送单元703向第二设备发送第二数据包,使得第二设备获知转发设备的网络状态参数。
请参阅图8,本申请实施例中控制器的一个实施例,该控制器800包括:
处理单元801,用于确定通信路径,通信路径用于第一设备与第二设备通信;
发送单元802,用于向第一设备发送通信路径;
接收单元803,用于接收第二设备发送的探测报告,探测报告与网络状态参数相关,网络状态参数与通信路径上的转发设备相关,探测报告还用于确定通信路径中的目标路径。
在一种可能的设计中,处理单元801,还用于计算网络指标信息;发送单元802,还用于向第一设备发送网络指标信息,以使得第一设备根据网络指标信息确定通信路径中的目标路径。
在一种可能的设计中,处理单元801,具体用于计算转发设备的传输时延,传输时延为入端口时间戳与出端口时间戳的差值。
在一种可能的设计中,处理单元801,具体用于计算转发设备的平均带宽值。
在一种可能的设计中,处理单元801,具体用于采用下述方式计算转发设备的平均带宽值:
Figure PCTCN2021114187-appb-000007
其中,字节总数当前值包括第一数据包的字节值,字节总数历史值包括上次数据包的字节值或0,出端口时间戳当前值包括第一数据包出端口时的时间戳,出端口时间戳历史值包括上次数据包出端口时的时间戳或0。
在一种可能的设计中,处理单元801,还用于根据网络指标信息确定通信路径中的目标路径;
在一种可能的设计中,发送单元802,还用于向第一设备发送目标路径。
本实施例中,控制器中各单元所执行的操作与前述图2至图5所示实施例中描述的类似,此处不再赘述。
本实施例中,发送单元802,向第一设备发送通信路径,即向第一设备发送需要测量网络状态参数的通信路径,减少第一设备计算通信路径带来的内存消耗。接收单元803接收探测报告,使得可以根据探测报告确定合适的目标路径。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
可选地,本申请第一设备的结构可以如图9所示。该第一设备900包括主机和智能网卡。
其中,主机和智能网卡之间通过控制通道通信,用于下发源路由路径表和收发INT探测包,控制通道的形态可以是高速串行计算机扩展总线(peripheral component interconnect express,PCIe)的某一个物理功能(physical function,PF)通道或虚拟功能(VF)通道,或者其他专用接口。主机完成Top K选路后将路径表下发到智能网卡中,存入其中的路径表, 根据运行业务的不同,网卡上还会维护一张业务转发表或者流表,流表中除了维护具体流的状态信息,还留有一片源路由空间用于存放当前流的源路由转发标签。
业务的转发包括发送(TX)和接收(RX),当有业务报文需要发送时,网卡在查找流表命中后会查看流表中的源路由空间,新建流的这片空间是无效的,需要进一步查询源路由路径表得到相应的标签,并存入到流表中的源路由空间,该流的后续报文就可以直接从流表中获得源路由标签,而不用二次查表,提升效率。此外,路径表可以随时独立刷新,而流表中的源路由空间不受影响,可以保证已有业务流的路径始终一致。这种卸载方式使源路由控制面和业务面解耦开来,只通过网卡配置做关联,用户和业务软件不感知源路由选路机制的存在,如果需要关闭源路由转发只需要关闭使能配置,网卡就不会再做源路由查找和封装。
由于只需要在新建流时查询一次源路由路径表,对查表性能要求不高,本发明卸载框架中网卡上只cache部分路径表,而全量的路径表存储在主机控制面的内存中,这样可以极大减少对网卡资源的需求。去往同一目的节点的K条等价路径在路径表中归为一组,每当有新流建立时,智能网卡通过轮询选路的方式选择一条新的路径,以此实现K条路径间的负载均衡。对于有明显大象流和老鼠流的业务模型,可以在选路均衡时考虑权重。通过网卡对K条路径的选路均衡并配合控制面实时刷新Top K路径,主动避开已有拥塞路径,以此实现有效的全网负载均衡。
转发设备在解析到数据包中的源路由标签号之后,直接将数据包转发到对应的出端口,期间不做任何查表操作,可以实现极地的转发时延。这种转发方式同时也极大的降低了转发设备转发逻辑的复杂度,并且在配置管理上不用区分网络边缘和中心的交换机。
请参阅图10,为本申请的实施例提供的上述实施例中所涉及的通信设备1000的一种可能的示意图,该通信设备具体可以为前述实施例中的第一设备、转发设备、控制器或者第二设备,该通信设备1000可以包括但不限于处理器1001、通信端口1002、存储器1003、总线1004,在本申请的实施例中,处理器1001用于对通信设备1000的动作进行控制处理。
此外,处理器1001可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。该处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
需要说明的是,图10所示通信设备具体可以用于实现图2至图5对应方法实施例中第一设备、转发设备、控制器或者第二设备所执行的步骤的功能,并实现第一设备、转发设备、控制器或者第二设备对应的技术效果,图10所示通信设备的具体实现方式,均可以参考图2至图5对应的各个方法实施例中的叙述,此处不再一一赘述。
本申请实施例还提供一种存储一个或多个计算机执行指令的计算机可读存储介质,当计算机执行指令被处理器执行时,该处理器执行如前述实施例中第一设备可能的实现方式所述的方法,其中,该第一设备具体可以为前述图2至图5对应方法实施例中的第一设备。
本申请实施例还提供一种存储一个或多个计算机执行指令的计算机可读存储介质,当计算机执行指令被处理器执行时,该处理器执行如前述实施例中转发设备可能的实现方式所述的方法,其中,该转发设备具体可以为前述图2至图5对应方法实施例中的转发设备。
本申请实施例还提供一种存储一个或多个计算机执行指令的计算机可读存储介质,当计算机执行指令被处理器执行时,该处理器执行如前述实施例中控制器可能的实现方式所述的方法,其中,该控制器具体可以为前述图2至图5对应方法实施例中的控制器。
本申请实施例还提供一种存储一个或多个计算机的计算机程序产品,当计算机程序产品被该处理器执行时,该处理器执行上述第一设备可能实现方式的方法,其中,该第一设备具体可以为前述图2至图5对应方法实施例中的第一设备。
本申请实施例还提供一种存储一个或多个计算机的计算机程序产品,当计算机程序产品被该处理器执行时,该处理器执行上述转发设备可能实现方式的方法,其中,该转发设备具体可以为前述图2至图5对应方法实施例中的转发设备。
本申请实施例还提供一种存储一个或多个计算机的计算机程序产品,当计算机程序产品被该处理器执行时,该处理器执行上述控制器可能实现方式的方法,其中,该控制器具体可以为前述图2至图5对应方法实施例中的控制器。
本申请实施例还提供一种存储一个或多个计算机的计算机程序产品,当计算机程序产品被该处理器执行时,该处理器执行上述第二设备可能实现方式的方法,其中,该第二设备具体可以为前述图2至图5对应方法实施例中的第二设备。
本申请实施例还提供了一种芯片系统,该芯片系统包括处理器,用于支持第一设备实现上述第一设备可能的实现方式中所涉及的功能。在一种可能的设计中,该芯片系统还可以包括存储器,存储器,用于保存该第一设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件,其中,该第一设备具体可以为前述图2至图5对应方法实施例中第一设备。
本申请实施例还提供了一种芯片系统,该芯片系统包括处理器,用于支持转发设备实现上述转发设备可能的实现方式中所涉及的功能。在一种可能的设计中,该芯片系统还可以包括存储器,存储器,用于保存该转发设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件,其中,该转发设备具体可以为前述图2至图5对应方法实施例中转发设备。
本申请实施例还提供了一种芯片系统,该芯片系统包括处理器,用于支持控制器实现上述控制器可能的实现方式中所涉及的功能。在一种可能的设计中,该芯片系统还可以包括存储器,存储器,用于保存该控制器必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件,其中,该控制器具体可以为前述图2至图5对应方法实施例中控制器。
本申请实施例还提供了一种芯片系统,该芯片系统包括处理器,用于支持第二设备实现上述第二设备可能的实现方式中所涉及的功能。在一种可能的设计中,该芯片系统还可以包括存储器,存储器,用于保存该第二设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件,其中,该第二设备具体可以为前述图2至图5对应方法实施例中第二设备。
本申请实施例还提供了一种网络系统架构,该网络系统架构包括上述通信设备,该通信设备具体可以为前述图2至图5对应方法实施例中第一设备,和/或转发设备,和/或控制器和/或第二设备。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结 合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (39)

  1. 一种通信系统,其特征在于,所述通信系统包括:控制器、第一设备、转发设备以及第二设备;
    所述控制器,用于确定通信路径,所述通信路径用于所述第一设备与所述第二设备通信;
    所述控制器,还用于向所述第一设备发送所述通信路径;
    所述第一设备,用于根据所述通信路径生成第一数据包,所述第一数据包包括指示信息,所述指示信息用于指示所述转发设备采集网络状态参数;
    所述第一设备,还用于向所述转发设备发送所述第一数据包;
    所述转发设备,用于根据所述指示信息采集网络状态参数,所述网络状态参数与所述转发设备一一对应;
    所述转发设备,还用于在所述第一数据包中增加所述网络状态参数得到第二数据包;
    所述转发设备,还用于向所述第二设备发送所述第二数据包;
    所述第二设备,用于根据所述第二数据包向所述控制器发送探测报告,所述探测报告用于确定所述通信路径中的目标路径。
  2. 根据权利要求1所述的通信系统,其特征在于,所述第一数据包还包括源路由SR标签,所述SR标签用于所述通信路径上转发设备的通信;
    所述转发设备,具体用于在删除所述SR标签的所述第一数据包中增加所述网络状态参数得到所述第二数据包;
    所述转发设备,具体用于根据所述SR标签向所述第二设备发送所述第二数据包。
  3. 根据权利要求1所述的通信系统,其特征在于,
    在所述通信路径包括多个所述转发设备的情况下,所述SR标签为多个,所述转发设备,具体用于在删除自身对应的SR标签的所述第一数据包中增加所述网络状态参数得到所述第二数据包,所述第二数据包包括下一跳转发设备的SR标签。
  4. 根据权利要求2或3所述的通信系统,其特征在于,所述SR标签包括所述转发设备的出端口号。
  5. 根据权利要求1至4中任一项所述的通信系统,其特征在于,所述探测报告包括所述网络状态参数;
    所述控制器,还用于根据所述网络状态参数确定网络指标信息;
    所述控制器,还用于向所述第一设备发送所述网络指标信息;
    所述第一设备,还用于根据所述网络指标信息确定所述通信路径中的所述目标路径。
  6. 根据权利要求1至4中任一项所述的通信系统,其特征在于,所述探测报告包括所述网络状态参数;
    所述控制器,还用于根据所述网络状态参数确定网络指标信息;
    所述控制器,还用于根据所述网络指标信息确定所述通信路径中的所述目标路径;
    所述控制器,还用于向所述第一设备发送所述目标路径。
  7. 根据权利要求1至4中任一项所述的通信系统,其特征在于,所述探测报告包括所述网络状态参数;
    所述控制器,还用于向所述第一设备发送所述网络状态参数;
    所述第一设备,还用于根据所述网络状态参数确定网络指标信息;
    所述第一设备,还用于根据所述网络指标信息确定所述通信路径中的所述目标路径。
  8. 根据权利要求5至7中任一项所述的通信系统,其特征在于,所述网络状态参数包括 所述转发设备的入端口时间戳以及所述转发设备的出端口时间戳,或所述网络状态参数包括所述转发设备的出端口数据包字节总数,所述网络指标信息包括所述转发设备的平均带宽值、传输时延或误码率中的至少一种。
  9. 根据权利要求1至8中任一项所述的通信系统,其特征在于,
    所述第一设备,还用于使用所述目标路径向所述第二设备发送业务数据包,所述业务数据包用于传输所述第一设备与所述第二设备之间的业务信息。
  10. 一种通信方法,其特征在于,包括:
    第一设备获取通信路径,所述通信路径用于所述第一设备与第二设备通信;
    所述第一设备根据所述通信路径生成第一数据包,所述第一数据包包括指示信息,所述指示信息用于指示所述通信路径上的转发设备采集网络状态参数;
    所述第一设备向所述转发设备发送所述第一数据包,所述第一数据包用于确定所述通信路径中的目标路径。
  11. 根据权利要求10所述的方法,其特征在于,所述方法还包括:
    所述第一设备获取网络指标信息,所述网络指标信息由所述网络状态参数处理得到;
    所述第一设备根据所述网络指标信息确定所述通信路径中的所述目标路径。
  12. 根据权利要求11所述的方法,其特征在于,所述第一设备获取网络指标信息,包括:
    所述第一设备接收控制器发送的所述网络指标信息。
  13. 根据权利要求11所述的方法,其特征在于,所述第一设备获取网络指标信息,包括:
    所述第一设备接收控制器发送的所述网络状态参数;
    所述第一设备计算所述网络状态参数得到所述网络指示信息。
  14. 根据权利要求11所述的方法,其特征在于,所述方法还包括:
    所述第一设备使用所述目标路径向所述第二设备发送业务数据包,所述业务数据包用于传输所述第一设备与所述第二设备之间的业务信息。
  15. 根据权利要求11至13中任一项所述的方法,其特征在于,所述网络状态参数包括所述转发设备的入端口时间戳以及所述转发设备的出端口时间戳,或所述网络状态参数包括所述转发设备的出端口数据包字节总数,所述网络指标信息包括所述转发设备的平均带宽值、传输时延或误码率中的至少一种。
  16. 根据权利要求15所述的方法,其特征在于,所述第一设备获取网络指标信息,包括:
    所述第一设备采用下述方式计算所述网络指标信息:
    Figure PCTCN2021114187-appb-100001
    其中,所述字节总数当前值包括所述第一数据包的字节值,所述字节总数历史值包括上次数据包的字节值或0,所述出端口时间戳当前值包括所述第一数据包出所述端口时的时间戳,所述出端口时间戳历史值包括上次数据包出所述端口时的时间戳或0。
  17. 根据权利要求15所述的方法,其特征在于,所述第一设备获取网络指标信息,包括:
    所述第一设备计算所述转发设备的传输时延,所述传输时延为所述第一数据包入端口时间戳与所述第一数据包出端口时间戳的差值。
  18. 根据权利要求10至17中任一项所述的方法,其特征在于,所述方法还包括:
    所述第一设备接收第三设备发送的第三数据包,所述第三数据包包括所述第一设备与第三设备之间通信路径上转发设备的网络状态参数,所述第三数据包用于确定所述第一设备与第三设备之间通信路径中的目标路径。
  19. 根据权利要求10至18中任一项所述的方法,其特征在于,所述第一数据包还包括源路由SR标签,所述SR标签用于所述转发设备的通信。
  20. 根据权利要求10至19中任一项所述的方法,其特征在于,所述SR标签包括所述转发设备的出端口号。
  21. 一种通信方法,其特征在于,包括:
    转发设备接收来自第一设备的第一数据包,所述第一数据包指示信息,所述指示信息用于指示所述转发设备采集网络状态参数,所述网络状态参数与所述转发设备相关;
    所述转发设备根据所述指示信息采集所述网络状态参数,得到第二数据包;
    所述转发设备向第二设备发送所述第二数据包。
  22. 根据权利要求21所述的方法,其特征在于,所述第一数据包还包括源路由SR标签,所述SR标签与所述转发设备对应,所述SR标签用于所述转发设备的通信;
    所述转发设备根据所述指示信息采集所述网络状态参数,得到第二数据包,包括:
    所述转发设备采集所述网络状态参数;
    所述转发设备在删除所述SR标签的所述第一数据包中增加所述网络状态参数得到所述第二数据包;
    所述转发设备向第二设备发送所述第二数据包,包括:
    所述转发设备根据所述SR标签向第二设备发送所述第二数据包。
  23. 根据权利要求22所述的方法,其特征在于,所述SR标签包括所述转发设备的出端口号。
  24. 根据权利要求21至23中任一项所述的方法,其特征在于,所述网络状态参数包括所述转发设备的入端口时间戳以及所述转发设备的出端口时间戳,或所述网络状态参数包括所述转发设备的出端口数据包字节总数。
  25. 根据权利要求21至23中任一项所述的方法,其特征在于,所述第一数据包以及所述第二数据包用于获取所述网络状态参数,和/或所述第一数据包以及所述第二数据包用于传输所述第一设备与所述第二设备之间的业务信息。
  26. 一种通信方法,其特征在于,包括:
    控制器确定通信路径,所述通信路径用于所述第一设备与第二设备通信;
    所述控制器向所述第一设备发送所述通信路径;
    所述控制器接收所述第二设备发送的探测报告,所述探测报告与网络状态参数相关,所述网络状态参数与所述通信路径上的转发设备相关,所述探测报告还用于确定所述通信路径中的目标路径。
  27. 根据权利要求26所述的方法,其特征在于,所述探测报告包括网络指标信息,所述网络指标信息由所述网络状态参数处理得到。
  28. 根据权利要求26所述的方法,其特征在于,所述探测报告包括所述网络状态参数。
  29. 根据权利要求26至28中任一项所述的方法,其特征在于,所述网络状态参数包括所述转发设备的入端口时间戳以及所述转发设备的出端口时间戳,或所述网络状态参数包括所述转发设备的出端口数据包字节总数。
  30. 根据权利要求28所述的方法,其特征在于,所述方法还包括:
    所述控制器计算网络指标信息;
    所述控制器向所述第一设备发送所述网络指标信息,以使得所述第一设备根据所述网络指标信息确定所述通信路径中的目标路径。
  31. 根据权利要求30所述的方法,其特征在于,所述控制器计算网络指标信息,包括:
    所述控制器计算所述转发设备的传输时延,所述传输时延为所述入端口时间戳与所述出端口时间戳的差值。
  32. 根据权利要求30所述的方法,其特征在于,所述控制器计算网络指标信息,包括:
    所述控制器计算所述转发设备的平均带宽值。
  33. 根据权利要求32所述的方法,其特征在于,所述控制器采用下述方式计算所述转发设备的所述平均带宽值:
    Figure PCTCN2021114187-appb-100002
    其中,所述字节总数当前值包括所述第一数据包的字节值,所述字节总数历史值包括上次数据包的字节值或0,所述出端口时间戳当前值包括所述第一数据包出所述端口时的时间戳,所述出端口时间戳历史值包括上次数据包出所述端口时的时间戳或0。
  34. 根据权利要求27所述的方法,其特征在于,所述方法还包括:
    所述控制器根据所述网络指标信息确定所述通信路径中的目标路径;
    所述控制器向所述第一设备发送所述目标路径。
  35. 一种第一设备,其特征在于,包括处理器,所述处理器与存储器耦合,所述存储器用于存储计算机程序或指令,所述处理器用于执行存储器中的所述计算机程序或指令,使得权利要求10至20任一项所述的方法被执行。
  36. 一种转发设备,其特征在于,包括处理器,所述处理器与存储器耦合,所述存储器用于存储计算机程序或指令,所述处理器用于执行存储器中的所述计算机程序或指令,使得权利要求21至25任一项所述的方法被执行。
  37. 一种控制器,其特征在于,包括处理器,所述处理器与存储器耦合,所述存储器用于存储计算机程序或指令,所述处理器用于执行存储器中的所述计算机程序或指令,使得权利要求26至34任一项所述的方法被执行。
  38. 一种通信系统,其特征在于,包括:如权利要求10至20所述的第一设备,和/或,如权利要求21至25所述的转发设备,和/或,如权利要求26至34所述的控制器。
  39. 一种计算机存储介质,其特征在于,所述计算机存储介质中存储有指令,所述指令在计算机上执行时,使得所述计算机执行如权利要求10至20中任一项所述的方法,或者使得所述计算机执行如权利要求21至25中任一项所述的方法,或者使得所述计算机执行如权利要求26至34中任一项所述的方法。
PCT/CN2021/114187 2020-09-08 2021-08-24 一种通信系统、数据处理方法以及相关设备 WO2022052800A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010934858.0A CN114157595B (zh) 2020-09-08 2020-09-08 一种通信系统、数据处理方法以及相关设备
CN202010934858.0 2020-09-08

Publications (1)

Publication Number Publication Date
WO2022052800A1 true WO2022052800A1 (zh) 2022-03-17

Family

ID=80462267

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/114187 WO2022052800A1 (zh) 2020-09-08 2021-08-24 一种通信系统、数据处理方法以及相关设备

Country Status (2)

Country Link
CN (2) CN116866249A (zh)
WO (1) WO2022052800A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11671350B1 (en) * 2022-08-15 2023-06-06 Red Hat, Inc. Data request servicing using multiple paths of smart network interface cards

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104702468A (zh) * 2015-03-05 2015-06-10 华为技术有限公司 确定传输路径的方法、设备和系统
WO2016091311A1 (en) * 2014-12-11 2016-06-16 Telefonaktiebolaget Lm Ericsson (Publ) Methods and device for network tomography
CN109756421A (zh) * 2019-01-23 2019-05-14 华南理工大学 一种基于OpenFlow技术的拥塞控制系统及方法
CN110572293A (zh) * 2018-06-06 2019-12-13 华为技术有限公司 一种数据报文的检测方法、设备及系统
CN110890994A (zh) * 2018-09-11 2020-03-17 华为技术有限公司 一种报文转发路径的确定方法、设备和系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101646218B (zh) * 2009-08-14 2012-11-21 南京工业大学 一种基于gop的多路径源路由协议实现方法
US8837277B2 (en) * 2011-06-01 2014-09-16 Cisco Technology, Inc. Source routing convergence in constrained computer networks
US9270584B2 (en) * 2012-02-28 2016-02-23 Cisco Technology, Inc. Diverse paths using a single source route in computer networks
US9350654B1 (en) * 2013-07-18 2016-05-24 Juniper Networks, Inc. Microloop protection for multi-protocol label switching paths
US10063464B2 (en) * 2013-07-26 2018-08-28 Huawei Technologies Co., Ltd. Protection switched source routing
US9736063B2 (en) * 2015-02-17 2017-08-15 Huawei Technologies Co., Ltd. Service chaining using source routing
US9742648B2 (en) * 2015-03-23 2017-08-22 Brocade Communications Systems, Inc. Efficient topology failure detection in SDN networks
CN104780095A (zh) * 2015-04-30 2015-07-15 杭州华三通信技术有限公司 一种sdn网络中的路径探测方法和装置
CN108092888B (zh) * 2017-10-31 2021-06-08 华为技术有限公司 一种基于Overlay网络的传输方法、网关及传输系统
CN108111432B (zh) * 2017-12-27 2021-07-02 新华三技术有限公司 报文转发方法及装置
CN110011915A (zh) * 2018-01-04 2019-07-12 杭州达乎科技有限公司 Sdn网络架构、基于sdn的流量转发控制方法及装置
CN108199924B (zh) * 2018-01-26 2020-02-18 北京邮电大学 基于带内网络遥测的全网流量可视化方法及装置
CN108566336A (zh) * 2018-07-24 2018-09-21 迈普通信技术股份有限公司 一种网络路径获取方法和设备
CN110752993B (zh) * 2019-10-24 2022-02-25 新华三信息安全技术有限公司 一种报文转发方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016091311A1 (en) * 2014-12-11 2016-06-16 Telefonaktiebolaget Lm Ericsson (Publ) Methods and device for network tomography
CN104702468A (zh) * 2015-03-05 2015-06-10 华为技术有限公司 确定传输路径的方法、设备和系统
CN110572293A (zh) * 2018-06-06 2019-12-13 华为技术有限公司 一种数据报文的检测方法、设备及系统
CN110890994A (zh) * 2018-09-11 2020-03-17 华为技术有限公司 一种报文转发路径的确定方法、设备和系统
CN109756421A (zh) * 2019-01-23 2019-05-14 华南理工大学 一种基于OpenFlow技术的拥塞控制系统及方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11671350B1 (en) * 2022-08-15 2023-06-06 Red Hat, Inc. Data request servicing using multiple paths of smart network interface cards

Also Published As

Publication number Publication date
CN114157595B (zh) 2023-07-04
CN114157595A (zh) 2022-03-08
CN116866249A (zh) 2023-10-10

Similar Documents

Publication Publication Date Title
US9154394B2 (en) Dynamic latency-based rerouting
US8427958B2 (en) Dynamic latency-based rerouting
CN107483337A (zh) 确定路径的方法及其网络设备
US10715446B2 (en) Methods and systems for data center load balancing
US11522786B2 (en) Packet forwarding path determining method, device, and system
WO2021007963A1 (zh) 路由分发方法及控制器、信息路由方法及网络节点设备
JP2016537925A (ja) 経路制御方法、デバイス、およびシステム
WO2021082575A1 (zh) 一种报文转发方法、设备、存储介质及系统
CN101789949B (zh) 一种实现负荷分担的方法和路由设备
KR20120036903A (ko) 링크 애그리게이션 방법 및 노드
WO2010045794A1 (zh) 获取链路汇聚组信息的方法、节点和系统
CN108471383A (zh) 报文转发方法、装置和系统
WO2015039617A1 (zh) 一种报文处理方法、系统及设备
CA3178575A1 (en) Method, device, and system for determining required bandwidth for data stream transmission
WO2020135087A1 (zh) 一种通信方法、装置及系统
CN108881031A (zh) 一种基于sdn网络的自适应可靠数据传输方法
CN116325708A (zh) 一种数据处理、传输方法及相关设备
WO2011118574A1 (ja) 通信システム、制御装置、遅延測定方法およびプログラム
TWI543567B (zh) 在電腦網路中進行封包的多路徑路由選擇的裝置及其方法
WO2022052800A1 (zh) 一种通信系统、数据处理方法以及相关设备
Alanazi et al. CAFT: Congestion-aware fault-tolerant load balancing for three-tier clos data centers
Ren et al. A reactive traffic flow estimation in software defined networks
EP4277226A1 (en) Packet transmission method, transmission control method, apparatus, and system
WO2023169407A1 (zh) 一种下发路由表的方法及相关装置
WO2023206165A1 (zh) 组播数据报文发送的方法、装置、设备和存储介质

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21865856

Country of ref document: EP

Kind code of ref document: A1