CN116866249A - Communication system, data processing method and related equipment - Google Patents

Communication system, data processing method and related equipment Download PDF

Info

Publication number
CN116866249A
CN116866249A CN202310849228.7A CN202310849228A CN116866249A CN 116866249 A CN116866249 A CN 116866249A CN 202310849228 A CN202310849228 A CN 202310849228A CN 116866249 A CN116866249 A CN 116866249A
Authority
CN
China
Prior art keywords
paths
service
path
forwarding
data packet
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN202310849228.7A
Other languages
Chinese (zh)
Inventor
毛修斌
刘永锋
潘恬
贾晨昊
许呈
罗政杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
XFusion Digital Technologies Co Ltd
Original Assignee
XFusion Digital Technologies Co Ltd
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 XFusion Digital Technologies Co Ltd filed Critical XFusion Digital Technologies Co Ltd
Priority to CN202310849228.7A priority Critical patent/CN116866249A/en
Publication of CN116866249A publication Critical patent/CN116866249A/en
Pending legal-status Critical Current

Links

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

Landscapes

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

Abstract

The embodiment of the application discloses a communication system, a data processing method and related equipment, which can be applied to a data center network or a private cloud network and the like. The communication system in the embodiment of the application comprises: the system comprises first equipment, forwarding equipment, a controller and second equipment, wherein the first equipment is used for generating a first data packet according to a communication path, the first data packet comprises a source route SR label and indication information, the SR label is used for communication between the forwarding equipment on the communication path, and the indication information is used for indicating the forwarding equipment 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 may collect the network state parameter. And the forwarding device is used for sending the second data packet to the second device according to the SR label, so that the follow-up determination of a target path with better network performance in the communication path is facilitated.

Description

Communication system, data processing method and related equipment
The present application is a divisional application of chinese patent application filed 9/8/2020 with chinese patent office, application number 202010934858.0, application name "a communication system, data processing method and related apparatus", the entire contents of which are incorporated herein by reference.
Technical Field
Embodiments of the present application relate to the field of communications, and in particular, to a communication system, a data processing method, and related devices
Background
Equal-Cost Multi-Path Routing (ECMP) is a hop-by-hop stream-based load balancing strategy. When a certain stream has a plurality of selectable paths, ECMP can adopt various strategies to select paths, so as to realize a certain degree of load balancing.
Currently, the routing strategies of ECMP mainly include: based on hash (e.g., selecting a path for a flow based on a five-tuple hash), polling (i.e., polling transmissions between multiple paths for each flow), based on path weight (i.e., a greater number of flows allocated by a weighted path).
However, when the difference between different streams is large, such as when an elephant stream and a mouse stream are present at the same time, ECMP cannot reasonably route the different streams.
Disclosure of Invention
The embodiment of the application provides a communication system, a data processing method and related equipment. For determining an appropriate communication path by means of the network status parameters.
A first aspect of an embodiment of the present application provides a communication system, including: the device comprises a controller, a first device, a forwarding device and a second device; a controller for determining a communication path for the first device to communicate with the second device; a controller for transmitting a communication path to the first device; the first device is used for generating a first data packet according to the communication path, wherein the first data packet comprises indication information, and the indication information is used for indicating the forwarding device to collect network state parameters; the first device is further configured to send a first data packet to the forwarding device; the forwarding equipment is used for acquiring network state parameters according to the indication information, and the network state parameters are in one-to-one correspondence with the forwarding equipment; the forwarding device is further configured to add a network state parameter to the first data packet to obtain a second data packet; the forwarding device is further used for sending a second data packet to the second device; and the second device is used for sending a detection report to the controller according to the second data packet, wherein the detection report is used for determining a target path in the communication path.
In the embodiment of the application, a first device is used for generating a first data packet according to a communication path, wherein the first data packet comprises 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 indicating the forwarding devices 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 may collect the network state parameter. And the forwarding device is used for sending the second data packet to the second device according to the SR label, so that the follow-up determination of a target path with better network performance in the communication path is facilitated.
Optionally, in a possible implementation manner of the first aspect, the first data packet further includes a source routing SR tag, where the SR tag is used for communications of the forwarding device on the communication path; the forwarding device is specifically configured to add a network state parameter to the first data packet with the SR tag deleted to obtain a second data packet; and the forwarding device is specifically used for sending the second data packet to the second device according to the SR label.
In this possible implementation manner, the first data packet generated by the first device further includes an SR tag, so that after the forwarding device collects the network state parameter, the forwarding device directly adds the network state parameter to the first data packet deleted from the SR tag to obtain a second data packet, and is configured to send the second data packet to the second device according to the SR tag. The forwarding device does not need to be used as any table look-up operation, and extremely low forwarding delay can be realized.
Optionally, in a possible implementation manner of the first aspect, in the foregoing case that the communication path includes a plurality of forwarding devices, the SR label is a plurality of forwarding devices, and the forwarding device is specifically configured to add a network state parameter to a first packet that deletes a corresponding SR label of the first packet to obtain a second packet, where the second packet includes an SR label of a next hop forwarding device.
In this possible implementation manner, when the number of forwarding devices is multiple, each forwarding device only deletes the SR label corresponding to itself, so that the SR label is not reused, each forwarding device can simply determine which SR label is itself, and does not use an additional index to indicate the SR label corresponding to the forwarding device, thereby reducing the byte number of the data packet.
Optionally, in a possible implementation manner of the first aspect, the SR tag includes an output port number of the forwarding device.
In this possible implementation manner, the first data packet generated by the first device further includes an SR tag, so that the forwarding device directly forwards the first data packet to the corresponding output port after resolving the SR tag in the first data packet, and no table look-up operation is performed during the process, so that extremely low forwarding delay can be achieved.
Optionally, in a possible implementation manner of the first aspect, the above-mentioned probing report includes a network status parameter; the controller is also used for determining network index information according to the network state parameters; the controller is also used for sending network index information to the first equipment; the first device is further configured to determine a target path in the communication path according to the network indicator information.
In this possible implementation, the controller may calculate network indicator information, and the first device may determine the target path according to the network indicator information. On the one hand: the first equipment can communicate with the second equipment through the target path with good network performance, and the communication quality and efficiency of the first equipment and the second equipment are improved. On the other hand: and the first equipment determines the target path, and reduces the memory consumption caused by the controller determining the target path under the condition that the network topology is complex, namely when the first equipment is a plurality of first equipment.
Optionally, in a possible implementation manner of the first aspect, the above-mentioned probing report includes a network status parameter; the controller is also used for determining network index information according to the network state parameters; the controller is also used for determining a target path in the communication path according to the network index information; and the controller is also used for sending the target path to the first device.
In this possible implementation, the controller may calculate network indicator information and determine the target path based on the network indicator information. The controller sends the target path to the first device. On the one hand: the first equipment can communicate with the second equipment through the target path with good network performance, and the communication quality and efficiency of the first equipment and the second equipment are improved. On the other hand: the controller determines the target path, which is beneficial for the controller to grasp the network performance of each communication path in the network topology.
Optionally, in a possible implementation manner of the first aspect, the above-mentioned probing report includes a network status parameter; the controller is further used for sending network state parameters to the first device; the first device is further used for determining network index information according to the network state parameters; the first device is further configured to determine a target path in the communication path according to the network indicator information.
In this possible implementation, the first device may calculate network metric information, and the first device may determine the target path according to the network metric information. On the one hand: the first equipment can communicate with the second equipment through the target path with good network performance, and the communication quality and efficiency of the first equipment and the second equipment are improved. On the other hand: the first equipment calculates network index information and determines a target path, and memory consumption caused by the controller calculating the network index information and determining the target path is reduced under the condition that network topology is complex, namely when the number of the first equipment is multiple.
Optionally, in a possible implementation manner of the first aspect, the 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 a total number of egress port data packet bytes of the forwarding device, and the network indicator information includes at least one of an average bandwidth value, a transmission delay, or an error rate of the forwarding device.
Optionally, in a possible implementation manner of the first aspect, the first device in the communication system 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.
In the possible implementation manner, the first device can perform service communication with the second device through the target path with good network performance, so that the quality and efficiency of service communication between the first device and the second device are improved.
A second aspect of the embodiments of the present application provides a data processing method, where the processing method may be performed by a first device, or may be performed by a component (e.g., a processor, a chip, or a chip system) of the first device. The method comprises the following steps: the first device obtains a communication path for the first device to communicate with the second device; the first equipment generates a first data packet according to the communication path, wherein the first data packet comprises indication information, and the indication information is used for indicating forwarding equipment on the communication path to acquire network state parameters; the first device sends a first data packet to the forwarding device, the first data packet being used to determine a target path in the communication path.
In the embodiment of the application, the first device generates the first data packet according to the communication path, and indicates the forwarding device on the communication path to collect the network state parameters through the indication information, so that the first data packet can be used for determining the target path. The communication path of the first device and the second device can be determined through network performance, so that the quality and efficiency of communication between the first device and the second device are further improved.
Optionally, in a possible implementation manner of the second aspect, the steps further include: the first equipment acquires network index information, wherein the network index information is obtained by processing network state parameters; the first device determines a target path in the communication path according to the network index information.
In this possible implementation manner, the communication path of the first device and the second device is determined through the network performance, so that the quality and efficiency of the communication between the first device and the second device are further improved.
Optionally, in a possible implementation manner of the second aspect, the acquiring, by the first device, network index information in the step includes: the first device receives network index information sent by the controller.
In this possible implementation manner, the first device receives the network index information sent by the controller, so that the controller can master the network performance of each communication path in the network topology.
Optionally, in a possible implementation manner of the second aspect, the acquiring, by the first device, network index information in the step includes: the first equipment receives network state parameters sent by the controller; the first device calculates the network state parameter to obtain the network indication information.
In this possible implementation, the first device calculates the network indicator information. On the one hand: the first equipment can communicate with the second equipment through the target path with good network performance, and the communication quality and efficiency of the first equipment and the second equipment are improved. On the other hand: the first equipment calculates the network index information, and memory consumption caused by the controller calculating the network index information is reduced under the condition that the network topology is complex, namely when the first equipment is a plurality of first equipment.
Optionally, in a possible implementation manner of the second aspect, the steps further include: the first device sends a service data packet to the second device by using the target path, wherein the service data packet is used for transmitting service information between the first device and the second device.
In the possible implementation manner, the first device can perform service communication with the second device through the target path with good network performance, so that the quality and efficiency of service communication between the first device and the second device are improved.
Optionally, in a possible implementation manner of the second aspect, the network state parameter in the step includes an ingress port timestamp of the forwarding device and an egress port timestamp of the forwarding device, or the network state parameter includes a total number of egress port data packet bytes of the forwarding device, and the network indicator information includes at least one of an average bandwidth value, a transmission delay, or an error rate of the forwarding device.
Optionally, in a possible implementation manner of the second aspect, the acquiring, by the first device, network index information in the step includes: the first device calculates network index information in the following manner:
the current value of the total number of bytes comprises the byte value of the first data packet, the historical value of the total number of bytes comprises the byte value or 0 of the last data packet, the current value of the port-out timestamp comprises the timestamp of the port-out of the first data packet, and the historical value of the port-out timestamp comprises the timestamp or 0 of the port-out of the last data packet.
In this possible implementation, a way of specifically calculating the network index information is provided.
Optionally, in a possible implementation manner of the second aspect, the acquiring, by the first device, network index information in the step includes: the first device calculates a transmission delay of the forwarding device, where the transmission delay is a difference between a first packet ingress port timestamp and a first packet egress port timestamp.
In this possible implementation manner, the transmission efficiency of the communication between the first device and the second device may be improved by determining the target path through the transmission delay.
Optionally, in a possible implementation manner of the second aspect, the steps further include: the first device receives a third data packet sent by a third device, the third data packet including network state parameters of a forwarding device on a communication path between the first device and the third device, the third data packet being used to determine a target path in the communication path.
In this possible implementation manner, when the first device is a receiving end, the first device may determine, through the third data packet, a target path in a communication path between the first device and the third device, so that the first device may communicate with the third device through the target path with better network performance.
Optionally, in a possible implementation manner of the second aspect, the first data packet in the step above further includes a source routing SR tag, where the SR tag is used for communication of the forwarding device.
In this possible implementation manner, after the forwarding device receives the first data packet sent by the first device, the forwarding device may determine the next hop device on the communication path according to the SR tag in the first data packet, so that the forwarding device does not need to perform any look-up table operation, and extremely low forwarding delay may be achieved.
Optionally, in a possible implementation manner of the second aspect, the SR tag in the step includes an output port number of the forwarding device.
In this possible implementation manner, the SR tag includes the output port number of the forwarding device, so that after the forwarding device receives the first data packet sent by the first device, the output port number of the forwarding device may be determined according to the SR tag in the first data packet, that is, the next hop device on the communication path may be determined, so that the forwarding device does not need to perform any look-up operation, and extremely low forwarding delay may be implemented.
Optionally, in a possible implementation manner of the second aspect, the first data packet in the step is used to obtain a network status parameter, and/or the first data packet is used to transmit service information between the first device and the second device.
In this possible implementation manner, the first device class may complete the acquisition of the network state parameters in real time by using the probe packet or the service data packet by using the above method, so as to determine a more suitable target path.
Optionally, in a possible implementation manner of the second aspect, the first device in the step obtains a communication path, including: the first device receives the communication path sent by the controller.
In this possible implementation manner, the controller determines the communication path and sends the communication path to the first device, so that the memory consumption caused by the fact that the first device determines the communication path through calculation is reduced.
A third aspect of the embodiments of the present application provides a data processing method, where the processing method may be performed by a forwarding device, or may be performed by a component (such as a processor, a chip, or a chip system) of the forwarding device. The method comprises the following steps: the forwarding device receives a first data packet from the first device, wherein the first data packet indicates information, and the indication information is used for indicating the forwarding device to collect network state parameters, and the network state parameters are related to the forwarding device; the forwarding equipment acquires network state parameters according to the indication information to obtain a second data packet; the forwarding device sends the second data packet to the second device.
In this possible implementation manner, the forwarding device may collect the network state parameter according to the indication information in the first data packet, so as to obtain the second data packet. And sending the second data packet to the second device, so that the second device knows the network state parameters of the forwarding device.
Optionally, in a possible implementation manner of the third aspect, the first data packet in the foregoing step further includes a source route SR tag, where the SR tag corresponds to a forwarding device, and the SR tag is used for communication of the forwarding device; the forwarding device collects network state parameters according to the indication information to obtain a second data packet, which comprises the following steps: the forwarding equipment collects network state parameters; the forwarding equipment adds network state parameters in the first data packet with the SR label deleted to obtain a second data packet; the forwarding device sends a second data packet to the second device, including: the forwarding device sends the second data packet to the second device according to the SR tag.
In this possible implementation manner, after the forwarding device collects the network state parameter, the forwarding device directly adds the network state parameter to the first data packet with the SR tag deleted to obtain a second data packet, and is configured to send the second data packet to the second device according to the SR tag. The forwarding device does not need to be used as any table look-up operation, and extremely low forwarding delay can be realized.
Optionally, in a possible implementation manner of the third aspect, the SR tag in the step above includes an output port number of the forwarding device.
In this possible implementation manner, the SR tag includes the output port number of the forwarding device, so that after the forwarding device receives the first data packet sent by the first device, the output port number of the forwarding device may be determined according to the SR tag in the first data packet, that is, the next hop device on the communication path may be determined, so that the forwarding device does not need to perform any look-up operation, and extremely low forwarding delay may be implemented.
Optionally, in a possible implementation manner of the third aspect, the network state parameter in the step includes an ingress port timestamp of the forwarding device and an egress port timestamp of the forwarding device, or the network state parameter includes a total number of egress port packet bytes of the forwarding device.
Optionally, in a possible implementation manner of the third aspect, the first data packet and the second data packet in the foregoing steps are used to obtain a network status parameter, and/or the first data packet and the second data packet are used to transmit service information between the first device and the second device.
In this possible implementation, the target path may be applied to network state parameter collection or traffic communication between the first device and the second device.
A fourth aspect of the embodiments of the present application provides a data processing method, where the processing method may be performed by a controller, or may be performed by a component of the controller (e.g., a processor, a chip, or a system-on-chip). The method comprises the following steps: the controller determining a communication path for the first device to communicate with the second device; the controller sends a communication path to the first device; the controller receives a probe report sent by the second device, the probe report being associated with a network state parameter associated with a forwarding device on the communication path, the probe report being further used to determine a target path in the communication path.
In the embodiment of the application, the controller sends the communication path to the first device, namely sends the communication path which needs to measure the network state parameters to the first device, so that the memory consumption caused by the calculation of the communication path by the first device is reduced. And receives the probe report so that an appropriate target path can be determined from the probe report.
Optionally, in a possible implementation manner of the fourth aspect, the probe report in the step includes network indicator information, where the network indicator information is obtained by processing a network status parameter.
Optionally, in a possible implementation manner of the fourth aspect, the probing report in the step includes a network status parameter.
Optionally, in a possible implementation manner of the fourth aspect, the network state parameter in the step includes an ingress port timestamp of the forwarding device and an egress port timestamp of the forwarding device, or the network state parameter includes a total number of egress port packet bytes of the forwarding device.
Optionally, in a possible implementation manner of the fourth aspect, the steps further include: the controller calculates network index information; the controller sends the network indicator information to the first device to cause the first device to determine a target path in the communication path based on the network indicator information.
In this possible implementation, the controller calculates network indicator information and sends the network indicator information to the first device. In one aspect, the first device may determine a target path in the communication path based on the network metric information. On the other hand, the controller can grasp the network performance of each communication path in the network topology.
Optionally, in a possible implementation manner of the fourth aspect, the calculating, by the controller, network index information in the step includes: the controller calculates the transmission delay of the forwarding device, wherein the transmission delay is the difference value between the ingress port timestamp and the egress port timestamp.
In this possible implementation manner, the transmission efficiency of the communication between the first device and the second device may be improved by determining the target path through the transmission delay.
Optionally, in a possible implementation manner of the fourth aspect, the calculating, by the controller, network index information in the step includes: the controller calculates an average bandwidth value for the forwarding device.
Optionally, in a possible implementation manner of the fourth aspect, the controller in the foregoing step calculates the average bandwidth value of the forwarding device in the following manner:
the current value of the total number of bytes comprises the byte value of the first data packet, the historical value of the total number of bytes comprises the byte value or 0 of the last data packet, the current value of the port-out timestamp comprises the timestamp of the port-out of the first data packet, and the historical value of the port-out timestamp comprises the timestamp or 0 of the port-out of the last data packet.
In this possible implementation, a way of specifically calculating the network index information is provided.
Optionally, in a possible implementation manner of the fourth aspect, the steps further include: the controller determines a target path in the communication path according to the network index information; the controller sends the target path to the first device.
In this possible implementation, the controller may calculate network indicator information and determine the target path based on the network indicator information. The controller sends the target path to the first device. On the one hand: the first equipment can communicate with the second equipment through the target path with good network performance, and the communication quality and efficiency of the first equipment and the second equipment are improved. On the other hand: the controller determines the target path, which is beneficial for the controller to grasp the network performance of each communication path in the network topology.
A fifth aspect of an embodiment of the present application provides a first device, including:
a receiving unit configured to acquire a communication path for communication between a first device and a second device;
the processing unit is used for generating a first data packet according to the communication path, wherein the first data packet comprises indication information, and the indication information is used for indicating forwarding equipment on the communication path to acquire network state parameters;
and the transmitting unit is used for transmitting a first data packet to the forwarding equipment, wherein the first data packet is used for determining a target path in the communication path.
Optionally, in a possible implementation manner of the fifth aspect, the receiving unit in the first device is further configured to obtain network indicator information, where the network indicator information is obtained by processing a network status parameter; the processing unit is further used for determining a target path in the communication path according to the network index information.
Optionally, in a possible implementation manner of the fifth aspect, the receiving unit in the first device is specifically configured to receive network indicator information sent by the controller.
Optionally, in a possible implementation manner of the fifth aspect, the receiving unit in the first device is specifically configured to receive a network state parameter sent by the controller; and the processing unit is also used for calculating the network state parameters to obtain the network indication information.
Optionally, in a possible implementation manner of the fifth aspect, the sending unit in the first device 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.
Optionally, in a possible implementation manner of the fifth aspect, the 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 a total number of egress port data packet bytes of the forwarding device, and the network indicator information includes at least one of an average bandwidth value, a transmission delay, or an error rate of the forwarding device.
Optionally, in a possible implementation manner of the fifth aspect, the processing unit in the first device is specifically configured to calculate the network indicator information by:
the current value of the total number of bytes comprises the byte value of the first data packet, the historical value of the total number of bytes comprises the byte value or 0 of the last data packet, the current value of the port-out timestamp comprises the timestamp of the port-out of the first data packet, and the historical value of the port-out timestamp comprises the timestamp or 0 of the port-out of the last data packet.
Optionally, in a possible implementation manner of the fifth aspect, the processing unit in the first device is specifically configured to calculate a transmission delay of the forwarding device, where the transmission delay is a difference between a first packet ingress port timestamp and a first packet egress port timestamp.
Optionally, in a possible implementation manner of the fifth aspect, the receiving unit in the first device is further configured to receive a third data packet sent by a third device, where the third data packet includes a network state parameter of a forwarding device on a communication path between the first device and the third device, and the third data packet is used to determine a target path in the communication path.
Optionally, in a possible implementation manner of the fifth aspect, the first data packet in the foregoing further includes a source routing SR tag, where the SR tag is used for communication of the forwarding device.
Optionally, in a possible implementation manner of the fifth aspect, the SR tag includes an output port number of the forwarding device.
A sixth aspect of an embodiment of the present application provides a forwarding device, including:
the receiving unit is used for receiving a first data packet from the first equipment, wherein the first data packet indicates information which is used for indicating the forwarding equipment to acquire network state parameters, and the network state parameters are related to the forwarding equipment;
the processing unit is used for acquiring network state parameters according to the indication information to obtain a second data packet;
and the sending unit is used for sending the second data packet to the second device.
Optionally, in a possible implementation manner of the sixth aspect, the first data packet further includes a source route SR tag, where the SR tag corresponds to a forwarding device, and the SR tag is used for communication of the forwarding device; the processing unit is specifically used for collecting network state parameters; adding network state parameters into the first data packet with the SR label deleted to obtain a second data packet; and the sending unit is specifically used for sending the second data packet to the second device according to the SR label.
Optionally, in a possible implementation manner of the sixth aspect, the SR tag includes an output port number of the forwarding device.
Optionally, in a possible implementation manner of the sixth aspect, the 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 a total number of egress port packet bytes of the forwarding device.
Optionally, in a possible implementation manner of the sixth aspect, the first data packet and the second data packet are used to obtain a network status parameter, and/or the first data packet and the second data packet are used to transmit service information between the first device and the second device.
A seventh aspect of the embodiment of the present application provides a controller, including:
a processing unit for determining a communication path for the first device to communicate with the second device;
a transmission unit configured to transmit a communication path to a first device;
and the receiving unit is used for receiving a detection report sent by the second device, wherein the detection report is related to a network state parameter, the network state parameter is related to a forwarding device on the communication path, and the detection report is also used for determining a target path in the communication path.
Optionally, in a possible implementation manner of the seventh aspect, the above-mentioned probe report includes network index information, where the network index information is obtained by processing a network status parameter.
Optionally, in a possible implementation manner of the seventh aspect, the above-mentioned probing report includes a network status parameter.
Optionally, in a possible implementation manner of the seventh aspect, the 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 a total number of egress port packet bytes of the forwarding device.
Optionally, in a possible implementation manner of the seventh aspect, the processing unit in the controller is further configured to calculate network indicator information; and the sending unit is further used for sending the network index information to the first device so that the first device determines a target path in the communication path according to the network index information.
Optionally, in a possible implementation manner of the seventh aspect, the processing unit in the controller is specifically configured to calculate a transmission delay of the forwarding device, where the transmission delay is a difference between an ingress port timestamp and an egress port timestamp.
Optionally, in a possible implementation manner of the seventh aspect, the processing unit in the controller is specifically configured to calculate an average bandwidth value of the forwarding device.
Optionally, in a possible implementation manner of the seventh aspect, the processing unit in the controller is further configured to calculate an average bandwidth value of the forwarding device in the following manner:
The current value of the total number of bytes comprises the byte value of the first data packet, the historical value of the total number of bytes comprises the byte value or 0 of the last data packet, the current value of the port-out timestamp comprises the timestamp of the port-out of the first data packet, and the historical value of the port-out timestamp comprises the timestamp or 0 of the port-out of the last data packet.
Optionally, in a possible implementation manner of the seventh aspect, the processing unit in the controller is further configured to determine a target path in the communication path according to the network indicator information; and the sending unit is also used for sending the target path to the first equipment.
An eighth aspect of an embodiment of the present application provides a first apparatus, including: a processor coupled to a memory for storing a program or instructions which, when executed by the processor, cause the first device to implement the method of the second aspect or any possible implementation of the second aspect.
A ninth aspect of an embodiment of the present application provides a forwarding device, including: a processor coupled to a memory for storing a program or instructions which, when executed by the processor, cause the forwarding device to implement the method of the third aspect or any possible implementation of the third aspect.
A tenth aspect of an embodiment of the present application provides a controller, including: a processor coupled to a memory for storing a program or instructions which, when executed by the processor, cause the controller to implement the method of the fourth aspect or any possible implementation of the fourth aspect.
An eleventh aspect of the embodiment 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 application provides a chip comprising a processor and interface circuitry coupled to the processor for running a computer program or instructions to implement a method as in the second aspect or any possible implementation of the second aspect, any possible implementation of the third aspect, any possible implementation of the fourth aspect or any possible implementation of the fourth aspect, the interface circuitry being for communicating with other modules than the chip.
A thirteenth aspect of the embodiments of the present application provides a computer readable storage medium having stored therein instructions which when executed on a computer cause the computer to perform the method of the foregoing second aspect or any possible implementation of the second aspect, the third aspect or any possible implementation of the third aspect, the fourth aspect or any possible implementation of the fourth aspect.
A fourteenth aspect of the embodiments of the present application provides a computer program product which, when executed on a computer, causes the computer to perform the method of the second aspect or any possible implementation of the second aspect, the third aspect or any possible implementation of the third aspect, the fourth aspect or any possible implementation of the fourth aspect.
The technical effects of the fifth aspect, the eighth aspect, the eleventh aspect, the twelfth aspect, the thirteenth aspect, the fourteenth aspect, or any one of the possible implementation manners of the fifth aspect, the eighth aspect, the eleventh aspect, the twelfth aspect, the thirteenth aspect, the fourteenth aspect may be referred to the technical effects of the second aspect or the technical effects of the different possible implementation manners of the second aspect, which are not described herein.
The technical effects of the sixth aspect, the ninth aspect, the eleventh aspect, the twelfth aspect, the thirteenth aspect, the fourteenth aspect, or any one of the possible implementation manners of the third aspect may be referred to as technical effects of the third aspect or technical effects of different possible implementation manners of the third aspect, which are not described herein.
The technical effects of the seventh aspect, the tenth aspect, the eleventh aspect, the twelfth aspect, the thirteenth aspect, the fourteenth aspect, or any one of the possible implementation manners may be referred to technical effects of the fourth aspect or technical effects of different possible implementation manners of the fourth aspect, which are not described herein.
From the above technical solutions, the embodiment of the present application has the following advantages: the first device is used for generating a first data packet according to the communication path, wherein the first data packet comprises 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 indicating the forwarding devices 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 may collect the network state parameter. And the forwarding device is used for sending the second data packet to the second device according to the SR label, and the second device is beneficial to the first device to determine a target path with better network performance in the communication path subsequently.
Drawings
FIG. 1 is a schematic diagram of a network framework in an embodiment of the present application;
FIG. 2 is a schematic flow chart of a data processing method according to an embodiment of the present application;
FIG. 3 is a schematic diagram of a communication path according to an embodiment of the present application;
FIG. 4 is a schematic diagram of a format of a first packet according to an embodiment of the present application;
FIG. 5 is another schematic diagram of a communication path according to an embodiment of the present application;
FIG. 6 is a schematic diagram of a first apparatus according to an embodiment of the present application;
fig. 7 is a schematic structural diagram of a forwarding device according to an embodiment of the present application;
FIG. 8 is a schematic diagram of a controller according to an embodiment of the present application;
FIG. 9 is a schematic diagram of another structure of a first apparatus according to an embodiment of the present application;
fig. 10 is a schematic structural diagram of a communication device according to an embodiment of the present application.
Detailed Description
The following description of the embodiments of the present application is given with reference to the accompanying drawings, and it will be appreciated by those skilled in the art that, with the development of technology and the appearance of new scenes, the technical solutions provided by the embodiments of the present application are applicable to similar technical problems.
The embodiment of the application provides a communication system, a data processing method and related equipment, which are used for determining a proper communication path through network state parameters.
The communication method provided by the application can be applied to different communication networks, and the communication method is described below by taking a data center network as an example.
Referring to fig. 1, in an embodiment of the present application, a network architecture includes:
a controller 100, backbone switches (spine) 101 and 102, leaf switches (leaf) 103 to 105, and service devices 106 to 108.
Wherein the controller 100 is connected to backbone switches 101 and 102, leaf switches 103 to 105, and service devices 106 to 108, respectively. Backbone switch 101 is connected to leaf switches 103 to 105, respectively, backbone switch 102 is connected to leaf switches 103 to 105, leaf switch 103 is connected to service device 106, leaf switch 104 is connected to service device 107, and leaf switch 105 is connected to service device 108.
In this embodiment, only two backbone switches 101 and 102, three leaf switches 103 to 105, and three service devices 106 to 108 are schematically illustrated, and in practical application, there may be more backbone switches, leaf switches, and service devices in the network architecture, which is not limited herein.
The manner in which each service device accesses a leaf switch may also be different, and fig. 1 is only schematically illustrated by taking one service device accessing one leaf switch as an example, or a plurality of service devices may access one leaf switch, which is not limited herein.
The backbone switch 101 and the leaf switches 103 to 105 are typically connected by a wired network, or may be connected by a wireless network, and if connected by a wired network, the connection may be in the form of an optical network.
The leaf switch and the service equipment are generally connected through a wireless network, can also be connected through a wired network, can be connected in a fiber network if connected through a wired network, can be connected in a cellular wireless network if connected through a wireless network, can be connected in a WiFi network or can be connected in other types of wireless networks.
Communication between the service devices may be through a leaf switch or through a leaf switch and a backbone switch.
The main function of the controller 100 is to manage 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 within the network.
The main functions of the leaf switches 103 to 105 are data transfer, connection of backbone switches and service devices, and transmission of data.
The primary function of the service devices 106 through 108 is to provide services to users or other devices.
In the embodiment of the present application, the service device may be a rack server, a blade server, a computing node, a storage node, or the like, which is not limited herein.
The first device and the second device in the embodiment of the present application correspond to service devices in the architecture shown in fig. 1, the forwarding device corresponds to a backbone switch or a leaf switch in the architecture shown in fig. 1, and the controller corresponds to a controller in the architecture shown in fig. 1.
It will be appreciated that the architecture of fig. 1 is merely an example, and in practical applications, a core switch (core) may be further connected above a backbone switch, and a top of rack (TOR) switch may be further connected below a leaf switch, that is, the specific layer number of forwarding devices is not limited herein, and may be a core-leaf-TOR, a core-leaf-TOR, or other architecture.
The current data center has complex network (DCN) state, the path load is uncontrollable under the influence of various factors (network congestion, switch routing algorithm and the like), the overall link bandwidth value of the DCN is lower due to uneven load and congestion of multiple nodes, and the traditional ECMP and other load balancing methods cannot meet the load balancing requirement of the DCN due to lack of sensing of the whole network state along with the increase of the DCN scale.
In addition, multiprotocol label switching (MPLS) is a system for fast packet switching and routing that provides network data traffic with addressing, routing, forwarding, and switching capabilities.
A plurality of network devices supporting MPLS are interconnected to form an MPLS domain, on one forwarding path, a node entering the MPLS domain is referred to as an ingress node, a node leaving the MPLS domain is referred to as an egress node, and nodes on the forwarding path are all referred to as intermediate nodes. When a packet enters an MPLS domain, as shown in fig. 1, an ingress node queries entries such as a forwarding information table (forward information dataBase, FIB) to obtain information such as an egress interface, an egress label, etc., and then presses an MPLS label into an original packet, and then forwards the packet to the next hop. After receiving the message, the intermediate node checks the corresponding table item according to the MPLS label value to obtain the outgoing interface and the label of the next hop, if the label value is more than or equal to 16, the old MPLS label in the message is replaced by the new label, and then the message is forwarded to the next hop; if the label value is equal to 3, the node is the next to last hop forwarding node, and the label needs to be popped up and then forwarded. And the output node directly forwards the traditional IP message after receiving the message. Wherein, the liquid crystal display device comprises a liquid crystal display device,
However, the nodes in the MPLS domain need to distinguish between different identities of ingress nodes, intermediate nodes, egress nodes, etc., resulting in a relatively complex management plane.
The communication method in the embodiment of the application is applicable to the data center network shown in fig. 1, and is also applicable to cloud network scenes, in particular public cloud scenes, network services of the cloud network scenes are divided into an Overlay layer and an Underlay layer, main network services are migrated to the Overlay network at present, the Underlay network services become single, and the network services are mainly concentrated on connection and congestion control of the network. The private protocol is used on the Underlay network, so that the Overlay service is not affected, the end-to-end forwarding delay is reduced by introducing the source routing message in the private format, and the real-time monitoring of the network state can be realized by introducing the INT technology, so that the load balancing is realized and the network operation and maintenance efficiency is improved.
In view of the foregoing, embodiments of the present application provide a communication system, a data processing method, and related devices. The following describes a communication system in an embodiment of the present application.
The present application provides a communication system comprising: the system comprises 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, and the forwarding device is any one switch (backbone switch or leaf switch) in the embodiment shown in fig. 1.
The controller generates an in-band telemetry detection path of the whole network by using a telemetry path planning algorithm according to topology information of the whole network, and path planning is only required to be executed once under the condition that the network topology is not changed, and the whole network telemetry path planning is triggered again when events such as newly added nodes or path faults occur. The controller distributes the planned paths to each server, and the server generates INT detection packets with corresponding source route labels based on each detection path according to a certain time interval to complete the whole network path information collection. After the summarized link state of the whole network is obtained, the controller synchronizes the information to each server node in the network through the management network.
Running respective control plane processes on the service equipment, wherein the processes mainly realize two functions:
(1) Forwarding an INT detection message sent by the controller to the intelligent network card, and forwarding an INT report sent by the network card to the controller to assist in completing the whole network state collection;
(2) After the whole network state information is obtained from the control surface, selecting a plurality of optimal paths to other hosts in the network through a certain path selection algorithm, generating a source route path table and transmitting the source route path table to the intelligent network card;
The intelligent network card searches the path of the service message according to a certain rule (such as five-tuple or destination IP) at the transmitting end, and encapsulates the corresponding source route label. Because of the multiple available paths to each destination node, the intelligent network card is also responsible for balancing multiple traffic flows over different paths and ensuring that the forwarding paths of previously established traffic flows are not affected when the path table is dynamically refreshed.
The forwarding device is responsible for source route forwarding and INT information acquisition of the message, whether the message is detected or service message, and the forwarding device directly forwards the message to a corresponding output port after analyzing the source route label number in the message, so that no table look-up operation is performed during the process, and extremely low forwarding delay can be realized. And an INT acquisition unit on the forwarding equipment judges whether to acquire INT information according to whether the message carries an INT acquisition identifier.
Referring to fig. 2, an embodiment of a communication method according to an embodiment of the present application includes:
201. the controller determines a communication path. This step is optional.
Alternatively, the controller may determine a communication path for communication between the first device and the second device based on the full network topology. The full network topology includes the connection relationships between the various devices in the network.
Optionally, the controller may determine the communication path again when the topology of the whole network changes, i.e. there is a new point of addition or a path failure.
The communication path in the embodiment of the present application may be one path or multiple paths, which is not limited herein.
In the embodiment of the present application, the algorithms for determining the communication path by the controller are various, and may be a hop-by-hop link utilization-aware load balancing architecture (HULA) algorithm or a deep-first search (DFS) based INT-path algorithm, which is not limited herein.
202. The controller sends a communication path to the first device. This step is optional.
Optionally, after the controller determines the communication path, the controller sends the communication path to the first device.
After the controller determines the communication path, the controller can send the planned path to each service device (i.e. the first device or the second device) through the management network, and each service device only receives the information of the communication path which needs to be detected.
The communication path information in china according to the embodiments of the present application may include an egress port, an IP address, or an equipment identifier of a forwarding device on the communication path, which is not limited herein.
203. The first device generates a first data packet according to the communication path.
In addition to step 201 and step 202, the method for obtaining a communication path by the first device in the embodiment of the present application may also be that the first device obtains a full network topology first and determines the communication path according to the full network topology. The communication path may also be determined by other devices, and is not limited in particular herein.
Alternatively, the first device may send the first data packet at a time interval, and the specific time interval may be adjusted according to the network size.
Illustratively, 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. Wherein, a 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 equipment is connected with the first forwarding equipment through a 3 port of the first forwarding equipment, a 1 port of the first forwarding equipment is connected with a 3 port of the second forwarding equipment, a 1 port of the second forwarding equipment is connected with a 1 port of the third forwarding equipment, a 2 port of the third forwarding equipment is connected with a 1 port of the fourth forwarding equipment, a 3 port of the fourth forwarding equipment is connected with a 1 port of the fifth forwarding equipment, and the fifth forwarding equipment is connected with the second equipment through a 3 port. The 2 port of the second forwarding device is connected with the 1 port of the sixth forwarding device, and the 2 port of the sixth forwarding device is connected with the 2 port of the fourth forwarding device.
After the first device obtains the communication path, a first data packet is generated according to the communication path. The first data packet includes indication information for indicating whether the forwarding device collects network status parameters.
Optionally, the first data packet further comprises an SR tag for communication between forwarding devices on the communication path. Wherein one forwarding device corresponds to one SR tag.
The present embodiment proposes a fused message format of Source Routing (SR) and in-band telemetry (in-band network telemetry, INT).
As shown in fig. 4. The first data packet adopts an Ethernet (ETH) to identify a high-level protocol, and the reserved Ethernet type 0x0700 is used as a protocol type of SR in the first data packet; the sr_len field value in the sr_option is the total length of all SR tag fields; sr_1 represents an SR tag of the first forwarding device, where int_flag is used to indicate whether INT information acquisition is required for the first forwarding device, int_flag of 1 may indicate acquisition, 0 may indicate no acquisition, and next_port field indicates an egress port number to which the first device needs to forward the first data packet. Rsvd is used to denote a reserved field, which can be specifically set as needed. Sr_n represents an SR tag of the nth forwarding device. The first packet may also use the reserved ethertype 0x0701 as the protocol type of INT, immediately following the SR tag. The int_type field in the int_option is used to indicate whether the first packet is issued by the control plane. int_num is used to record the number of acquired INT information.
Sr_1, sr_n in fig. 4 are SR tags, and the int_flag field is indication information in the first data packet.
In the INT message format of the P4 alliance or the IOAM standard, the INT information is all present as the option head of the inner layer message, and the switch needs to do deep message analysis to insert the INT information, thereby increasing the complexity and the forwarding delay of the switch. The private message format provided by the application can simultaneously give consideration to efficient forwarding based on source routing and real-time collection of network states. The method is more suitable for a data center network with good sealing performance and public cloud scenes.
It will be appreciated that the format of the first data packet may be set according to the actual needs, and 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 herein.
The first data packet in the embodiment of the present application may be a probe packet or a service data packet, which is not limited herein.
In addition, the first device may overlay the full network path with multiple sets of data by generating multiple sets of data packets for the multiple communication paths.
Optionally, the first data packet is a probe data packet or a service data packet, which is not limited herein. When the first data packet is a probe data packet, the first device may acquire network performance (network state parameter or network index information) of the communication path through the first data packet, so as to determine a target path for performing service communication.
204. The first device sends a first data packet to the forwarding device.
In the embodiment of the present application, the forwarding device is a device capable of forwarding data, such as a switch or a router, and the number of forwarding devices may be one or more, which is not limited herein.
After the first device generates the first data packet, the first device sends the first data packet to the forwarding device.
205. The forwarding device generates a second data packet according to the first data packet.
The forwarding device receives a first data packet from the first device, collects network state parameters of the forwarding device according to indication information (for example, an int_flag field in fig. 3) in the first data packet, and adds the network state parameters into the first data packet to obtain a second data packet.
Optionally, if the first data packet further includes an SR tag, the forwarding device deletes the SR tag corresponding to the forwarding device from the first data packet, to obtain the second data packet.
Optionally, in the case that the indication information indicates that the forwarding device collects the network state parameters (for example, the int_flag field in fig. 4 is 1), the forwarding device collects the network state parameters, deletes the SR tag corresponding to the forwarding device, and adds the network state parameters to the first packet deleted the SR tag to obtain the second packet.
Optionally, in the case that the indication information indicates that the forwarding device does not collect the network state parameter (for example, the int_flag field in fig. 4 is 0), the forwarding device does not collect the network state parameter, and deletes the SR tag corresponding to the forwarding device in the first data packet, so as to obtain the second data packet.
In the embodiment of the present application, the network state parameter may be a port number of a quasi forwarding device, an output port number of the forwarding device, an input port timestamp of the forwarding device, an output port timestamp of the forwarding device, a queue depth when entering an output port, a queue depth when leaving the output port, a total number of bytes of an output port data packet of the forwarding device, or a total number of bytes of the output port, which is not limited herein.
For ease of understanding, the foregoing example is continued to illustrate schematically that the number of forwarding devices on the communication path is 5, and the number of forwarding devices may be one or more, and is not limited herein.
As shown in fig. 5, a schematic illustration is made by taking one of the communication paths as an example. The number of forwarding devices on the communication path is 5, and the forwarding devices are a first forwarding device, a second forwarding device, a third forwarding device, a fourth forwarding device and a fifth forwarding device respectively. It is assumed that the int_flag field in fig. 4 is 1, that is, the indication information indicates that 5 forwarding devices collect network status parameters.
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, and after the first forwarding device receives the a data packet 500, the first forwarding device determines that the network state parameter needs to be collected according to the indication information in the a data packet 500. The first forwarding device collects network state parameters of the first forwarding device to obtain INT1 information, and the first forwarding device deletes the SR label-SR 1 (1) corresponding to the first forwarding device and adds the collected INT1 information to obtain a B data packet 501. The first forwarding device knows from SR1 (1) that the first forwarding device forwards the B packet 501 out of port No. 1. I.e. to send a B-packet 501 to the second forwarding device. 1 in the brackets SR1 (1) corresponds to next_port in FIG. 4.
After the second forwarding device acquires the B data packet 501, it is determined that the network state parameter needs to be acquired according to the indication information in the B data packet 501. The second forwarding device collects network state parameters of the second forwarding device to obtain INT2 information, the second forwarding device deletes the SR label-SR 2 (1) corresponding to the second forwarding device, and adds the collected INT2 information to obtain a C data packet 502. The second forwarding device knows from SR2 (1) that the second forwarding device is forwarding the C packet 502 out of port No. 1. I.e. sending a C-packet 502 to the third forwarding device.
After the third forwarding device acquires the C data packet 502, it is determined that the network state parameter needs to be acquired according to the indication information in the C data packet 502. The third forwarding device collects network state parameters of the third forwarding device to obtain INT3 information, and deletes the SR label-SR 3 (2) corresponding to the third forwarding device, and adds the collected INT3 information to obtain a D data packet 503. The third forwarding device knows from SR3 (2) that the third forwarding device is forwarding the D packet 503 out of port No. 2. I.e. to the fourth forwarding device, the D-packet 503.
The operation of the fourth forwarding device is similar to the operation of the other forwarding devices described above, and will not be described here again.
After receiving the E data packet 504 sent by the fourth forwarding device, the fifth forwarding device determines, according to the indication information in the E data packet 504, that a network state parameter needs to be collected. The fifth forwarding device collects the network state parameters of the fifth forwarding device to obtain INT5 information, and the fifth forwarding device deletes the SR label-SR 5 (3) corresponding to the fifth forwarding device and adds the collected INT5 information to obtain the F data packet 505. The fifth forwarding device knows from SR5 (3) that the fifth forwarding device is forwarding the F packet 505 out of port No. 3. I.e. to send the F-packet 505 to the second device.
Optionally, the fifth forwarding device is the last hop forwarding device, and the fifth forwarding device may parse that all SR tags are exhausted, and may strip the ethertype field and the SR tag header of the identifier SR.
The number of forwarding devices in the communication paths shown in fig. 5 and the specific communication paths are only examples and are not limited in this regard.
Based on the above description, the forwarding device directly uses the next_port value in the parsed first SR tag as the forwarding port number, so that the forwarding device does not need to be used as any routing table or tag lookup, realizes polar forwarding delay, and the used SR tag is deleted to prevent the used SR tag from being reused. Meanwhile, whether to add INT information into the first data packet is determined according to the INT_flag field in the SR.
Alternatively, the INT information is arranged in a stack (i.e., the INT information that was first arrived is later).
The optional format of the network status parameter (i.e., INT information) in the embodiment of the present application is shown in table 1:
TABLE 1
INT information field name Length (bit) Meaning of
sw_id 16 Switch identification
ingress_port 16 Ingress port number
egress_port 16 Number of outlet port
ingress_global_timestamp 48 Ingress port timestamp
egress_global_timestamp 48 Outlet timestamp
enq_qdepth 24 Queue depth at ingress and egress port
deq_qdepth 24 Queue depth when exiting an egress port
egress_packet_count 32 Total number of egress port packet bytes
egress_byte_count 32 Total number of bytes of egress port
The name of the INT information field, the length of the INT information field, and the meaning of the INT information shown in table 1 are only examples, and are not limited thereto.
Alternatively, the forwarding device may record the total number of bytes accumulated through each port and a timestamp for subsequent calculation of network metrics information.
The first device in the embodiment of the present application may be a transmitting end or a receiving end, which is not limited herein. When the first device is a receiving end, the first device may further receive a third data packet sent by a third device, where the third data packet is used to collect network state parameters of a forwarding device on a communication path between the first device and the third device, and the third data packet is further used to determine a target path in the communication path between the first device and the third device.
206. The forwarding device sends the second data packet to the second device.
After the forwarding device generates the second data packet, the forwarding device sends the second data packet to the second device according to the SR tag.
Illustratively, continuing with the above example, after the fifth forwarding device obtains the F packet 505, the fifth forwarding device knows from SR5 (3) that the fifth forwarding device forwards the F packet 505 out of port No. 3. I.e. to send the F-packet 505 to the second device.
207. The second device generates a probe report from the second data packet.
The detection report in the embodiment of the present application has various cases, and the following descriptions respectively apply:
1. the probe report includes network status parameters.
And after the second equipment receives the second data packet sent by the forwarding equipment, the network state parameters in the second data packet are packed to generate a detection report.
Illustratively, continuing the above example, the second device packages the INT1 information, the INT2 information, the INT3 information, the INT4 information, and the INT5 information to generate the probe report.
2. The probe report includes network index information.
The network index information in the embodiment of the present application may be an average bandwidth value, a transmission delay, or an error rate of the forwarding device, which is not limited herein.
And after the second equipment receives the second data packet sent by the forwarding equipment, calculating network index information according to the network state parameters in the second data packet.
The second device obtains the ingress port timestamp and the egress port timestamp of the forwarding device from the second data packet, calculates a difference value between the ingress port timestamp and the egress port timestamp, and obtains the transmission delay of the forwarding device.
Illustratively, the second device obtains a current value of the total number of egress port bytes of the forwarding device and a current value of the egress port timestamp from the second data packet. The second device may receive the byte total history value and the egress port timestamp history value sent by the forwarding device. And calculating an average bandwidth value of the forwarding device using the following formula:
If the number of forwarding devices is plural, a maximum value of average bandwidth values among the plural forwarding devices may be determined as a link bandwidth value; if the number of forwarding devices is one, it may be determined that the average bandwidth value of the forwarding devices is a link bandwidth value. It will be appreciated that if the number of forwarding devices is plural, any one of the average bandwidth values among the plural forwarding devices may be determined as the link bandwidth value, and the specific limitation is not limited herein.
Alternatively, the average bandwidth value may be calculated and divided by the full bandwidth to obtain the average link utilization.
If the first data packet is the transmitted first data packet, the history value in the formula defaults to 0; if the first data packet is the Nth data packet transmitted, the first device records the total number of bytes of the data packet transmitted each time and the outlet port time stamp. The advantage of calculating the bandwidth value by using the difference between the current value and the historical value is that when the data packet is lost, the average link utilization rate of the time can still be accurately reflected through the information of the next data packet, only the statistical interval is increased, but the statistical information is not lost.
There are various cases of the probe report in the embodiment of the present application, and the above two are only examples, and the specific examples are not limited herein.
208. The second device sends a probe report to the controller.
And after the second equipment generates the detection report, sending the detection report to the controller.
209. The controller determines network index information from the probe report. This step is optional.
In the embodiment of the present application, the controller determines the network index information according to the probe report in various ways, and the following descriptions are provided respectively:
1. when the probe report includes network state parameters, the controller obtains network index information by calculating the network state parameters. The manner of calculation is similar to that of the network index information calculated by the forwarding device in step 207, and is not limited herein.
2. When the probe report includes network index information, the controller determines the network index information by receiving the probe report transmitted by the second device.
The controller determines the network index information according to the probe report in the embodiment of the present application in various ways, and the above two ways are merely examples, which are not limited herein.
After the controller determines the network index information, the network index information may be stored in a database of the controller.
For example, for an average bandwidth value for the network metric information, the controller may record the network status parameters and the network metric information in an average bandwidth value table, as shown in table 2:
TABLE 2
Switch identification Port number Byte total history value Port timestamp history value Average bandwidth value
The contents recorded in table 2 are merely examples, and the recorded contents are set according to actual needs, and are not limited herein.
210. The controller sends network indicator information to the first device.
After the controller determines the network indicator information, the controller sends the network indicator information to the first device.
Optionally, the database of the first device and the database of the controller establish a master-slave copy relationship, and after the database of the controller updates the network index information, the network index information can be updated to the database of the first device in real time, so as to realize data synchronization.
211. The first device determines a target path in the communication path according to the network index information.
After the first device receives the network index information sent by the controller, the first device may determine a target path in the communication path according to the network index information.
After the first device acquires the network index information of the plurality of communication paths, the target path is determined.
The communication path a passes through three forwarding devices, the first forwarding device having an average bandwidth value of 20Gbit/s, the second forwarding device having an average bandwidth value of 40Gbit/s, and the third forwarding device having an average bandwidth value of 30Gbit/s, for example. The first device determines that the link bandwidth value of the a communication path is 40Gbit/s. Similarly, if the link bandwidth value of the B communication path is 10Gbit/s, the first device determines that the communication path with the smaller link bandwidth value is the target path, that is, the first device determines that the B communication path is the target path.
The communication path a passes through three forwarding devices, the first forwarding device having a transmission delay of 3-10 microseconds, the second forwarding device having a transmission delay of 0.03 seconds, and the third forwarding device having a transmission delay of 0.04 seconds. The first device determines that the transmission delay of the a communication path is 0.09s. Similarly, if the transmission delay of the communication path B is 0.11ms, the first device determines that the communication path with the smaller transmission delay is the target path, that is, the first device determines that the communication path a is the target path.
In addition, when the network size is large, the number of communication paths may be tens, hundreds, or the like, and the first device may determine the target path by selecting the optimal TopK paths.
For data center networks, the present application also provides several ways to reduce computation.
1. When calculating the paths of all service devices under the leaf switch, the optional paths on the backbone switch (switch above leaf) are the same, so that each service device does not need to be calculated as a terminal point, and only the leaf switch needs to be used as the terminal point for routing. I.e. the selection of the optimal endpoint.
2. When the service equipment calculates the path to each leaf switch, no dependency exists between each round of calculation, so that a parallel calculation mode can be adopted, for example, multithreading or multiple nodes are introduced to perform parallel calculation, and the target leaf switch is divided into multiple groups, and each group is used as the input of one thread or path node to perform independent calculation. I.e. each service device calculates a part of the network index information.
3. The available paths from all the service devices under each leaf switch to other leaf switches are completely the same, only one service device is needed to complete calculation, and the calculation tasks after grouping according to the target leaf switch can be distributed to a plurality of service devices under the current leaf switch for parallel calculation by combining the point 2. I.e. the selection of the optimal starting point.
The data center network includes 30 backbone switches, 30 leaf switches, each backbone switch is connected with 30 service devices in a downlink mode, total 900 nodes, 30 paths exist between every two service devices of the backbone switch, assuming that K is taken as 16, each service device node needs to calculate about 870 times of 30-selection 16 calculation to other nodes, and after the above calculation reducing mode is adopted, each service device only needs to calculate one time of 30-selection 16 calculation to a backbone switch of a certain destination.
In the embodiment of the application, the first device can generate a first data packet according to the communication path, and the first data packet can comprise a source route SR label and indication information, wherein the SR label is used for communication between forwarding devices on the communication path, and the indication information is used for indicating whether the forwarding devices acquire network state parameters; the first device sends a first data packet to the forwarding device. The forwarding device can be enabled to acquire whether to acquire the network state parameters, and the first device is beneficial to follow-up determination of a target path with better network performance in the communication path.
Corresponding to the method given by the above method embodiment, the embodiment of the present application further provides a corresponding apparatus, including a module for executing the corresponding module of the above embodiment. The modules may be software, hardware, or a combination of software and hardware.
Referring to fig. 6, in one embodiment of the first device according to the present application, the first device 600 includes:
a receiving unit 601, configured to acquire a communication path, where the communication path is used for communication between a first device and a 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, where the indication information is used to instruct a forwarding device on the communication path to collect network state parameters;
a sending unit 603, 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.
In one possible design, the receiving unit 601 is further configured to obtain network index information, where the network index information is obtained by processing network status parameters;
the processing unit 602 is further configured to determine a target path in the communication paths 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.
In this embodiment, the operations performed by the units in the first device are similar to those described in the embodiments shown in fig. 2 to 5, and are not repeated here.
In this embodiment, the processing unit 602 generates a first data packet according to the communication path, and indicates, through the indication information, the forwarding device on the communication path to collect the network state parameter, so that the first data packet may be used to determine the target path. The communication path of the first device and the second device can be determined through network performance, so that the quality and efficiency of communication between the first device and the second device are further improved.
Referring to fig. 7, in one embodiment of a forwarding device according to an embodiment of the present application, the forwarding device 700 includes:
a receiving unit 701, configured to receive a first data packet from a first device, where the first data packet indicates information, and the indication information is used to instruct a forwarding device to collect a network state parameter, where the network state parameter is related to the forwarding device;
the processing unit 702 is configured to acquire a network state parameter according to the indication information, and obtain a second data packet;
a sending unit 703, configured to send the second data packet to the second device.
In one possible design, the first data packet further includes a source route SR tag, the SR tag corresponding to the forwarding device, the SR tag being used for communication by the forwarding device;
In one possible design, the processing unit 702 is specifically configured to collect network state parameters, and add the network state parameters to the first packet with the SR tag deleted to obtain a second packet;
in one possible design, the sending unit 703 is specifically configured to send the second data packet to the second device according to the SR tag.
In this embodiment, the operations performed by the units in the forwarding device are similar to those described in the embodiments shown in fig. 2 to 5, and are not described here again.
In this embodiment, the processing unit 702 collects network state parameters according to the indication information in the first data packet, so as to obtain the second data packet. The sending unit 703 sends the second data packet to the second device, so that the second device knows the network status parameters of the forwarding device.
Referring to fig. 8, in one embodiment of the controller according to the present application, the controller 800 includes:
a processing unit 801 for determining a communication path for the first device to communicate with the second device;
a transmitting unit 802 configured to transmit a communication path to a first device;
a receiving unit 803, configured to receive a probe report sent by the second device, where the probe report relates to a network status parameter, and the network status parameter relates to a forwarding device on the communication path, and the probe report is further used to determine a target path in the communication path.
In one possible design, the processing unit 801 is further configured to calculate network index information; the sending unit 802 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.
In one possible design, the processing unit 801 is specifically configured to calculate a transmission delay of the forwarding device, where the transmission delay is a difference between an ingress port timestamp and an egress port timestamp.
In one possible design, the processing unit 801 is specifically configured to calculate an average bandwidth value of the forwarding device.
In one possible design, 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 comprises the byte value of the first data packet, the historical value of the total number of bytes comprises the byte value or 0 of the last data packet, the current value of the port-out timestamp comprises the timestamp of the port-out of the first data packet, and the historical value of the port-out timestamp comprises the timestamp or 0 of the port-out of the last data packet.
In one possible design, the processing unit 801 is further configured to determine a target path in the communication path according to the network indicator information;
in one possible design, the sending unit 802 is further configured to send the target path to the first device.
In this embodiment, the operations performed by the units in the controller are similar to those described in the embodiments shown in fig. 2 to 5, and are not repeated here.
In this embodiment, the sending unit 802 sends the communication path to the first device, that is, sends the communication path to the first device, where the network state parameter needs to be measured, 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 from the probe report.
It will be clear to those skilled in the art that, for convenience and brevity of description, specific working procedures of the above-described systems, apparatuses and units may refer to corresponding procedures in the foregoing method embodiments, which are not repeated herein.
Alternatively, 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 intelligent network card communicate through a control channel, which is used for issuing a source routing path table and receiving and transmitting INT detection packets, and the control channel can be a physical function (physical function, PF) channel or Virtual Function (VF) channel of a high-speed serial computer expansion bus (peripheral component interconnect express, PCIe) or other special interfaces. After the host finishes Top K routing, the path table is issued to the intelligent network card and stored in the intelligent network card, and according to different running services, the network card also maintains a service forwarding table or a flow table, and besides maintaining the state information of the specific flow, a source routing space is reserved in the flow table for storing the source routing forwarding label of the current flow.
The forwarding of the service comprises sending (TX) and Receiving (RX), when the service message needs to be sent, the network card can check the source route space in the flow table after searching the flow table, the space of the newly built flow is invalid, the source route path table needs to be further searched to obtain the corresponding label and stored in the source route space in the flow table, the subsequent message of the flow can directly obtain the source route label from the flow table without secondary table searching, and the efficiency is improved. In addition, the path table can be refreshed independently at any time, the source routing space in the flow table is not affected, and the consistent path of the existing service flow can be ensured. The unloading mode decouples the source route control plane and the service plane, only the network card configuration is used for association, the user and the service software do not sense the existence of a source route selection mechanism, if the source route forwarding needs to be closed, only the enabling configuration needs to be closed, and the network card can not be used for source route searching and packaging.
Because only one-time source route path table is required to be inquired when a new stream is established, the requirement on the table lookup performance is not high. The K equivalent paths to the same destination node are grouped into a group in the path table, and each time a new flow is established, the intelligent network card selects a new path in a polling route selection mode, so that load balancing among the K paths is realized. For traffic models with explicit elephant flows and mouse flows, weights may be considered in route balancing. The network card is used for balancing the route selection of the K paths and refreshing the Top K paths in real time in cooperation with the control surface, so that the existing congestion paths are actively avoided, and the effective whole network load balancing is realized.
After resolving the source route label number in the data packet, the forwarding device directly forwards the data packet to the corresponding output port, and no table look-up operation is performed during the process, so that the polar forwarding delay can be realized. The forwarding mode also greatly reduces the complexity of forwarding logic of forwarding equipment, and does not need to distinguish between switches at the edge and the center of the network in configuration management.
Referring to fig. 10, a possible schematic diagram of a communication device 1000 according to the foregoing embodiment of the present application is provided, where the communication device may specifically be a first device, a forwarding device, a controller, or a second device in the foregoing embodiment, and 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, where in the embodiment of the present application, the processor 1001 is used to perform control processing on actions of the communication device 1000.
Further, the processor 1001 may be a central processor unit, a general purpose processor, a digital signal processor, an application specific integrated circuit, a field programmable gate array or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof. Which may implement or perform the various exemplary logic blocks, modules and circuits described in connection with this disclosure. The processor may also be a combination that performs the function of a computation, e.g., a combination comprising one or more microprocessors, a combination of a digital signal processor and a microprocessor, and so forth. It will be clear to those skilled in the art that, for convenience and brevity of description, specific working procedures of the above-described systems, apparatuses and units may refer to corresponding procedures in the foregoing method embodiments, which are not repeated herein.
It should be noted that, the communication device shown in fig. 10 may be specifically configured to implement the functions of the steps executed by the first device, the forwarding device, the controller, or the second device in the method embodiments corresponding to fig. 2 to 5, and implement the technical effects corresponding to the first device, the forwarding device, the controller, or the second device, and the specific implementation manner of the communication device shown in fig. 10 may refer to descriptions in each method embodiment corresponding to fig. 2 to 5, which are not described herein in detail.
Embodiments of the present application further provide a computer readable storage medium storing one or more computer executable instructions, where when the computer executable instructions are executed by a processor, the processor performs a method as described in a possible implementation manner of the first device in the foregoing embodiment, where the first device may specifically be the first device in the foregoing method embodiments corresponding to fig. 2 to 5.
Embodiments of the present application further provide a computer readable storage medium storing one or more computer executable instructions, where when the computer executable instructions are executed by a processor, the processor performs a method as described in a possible implementation manner of the forwarding device in the foregoing embodiments, where the forwarding device may specifically be a forwarding device in an embodiment of a method corresponding to the foregoing fig. 2 to 5.
Embodiments of the present application further provide a computer readable storage medium storing one or more computer executable instructions, where when the computer executable instructions are executed by a processor, the processor performs a method as described in a possible implementation of the controller in the foregoing embodiments, where the controller may specifically be a controller in an embodiment of a method corresponding to the foregoing fig. 2 to 5.
Embodiments of the present application further provide a computer program product storing one or more computers, where the computer program product when executed by the processor performs a method of the foregoing possible implementation manner of the first device, where the first device may specifically be the first device in the foregoing method embodiments corresponding to fig. 2 to 5.
Embodiments of the present application further provide a computer program product storing one or more computers, where the computer program product when executed by the processor performs a method of the foregoing possible implementation manner of a forwarding device, where the forwarding device may specifically be a forwarding device in the foregoing method embodiments corresponding to fig. 2 to 5.
Embodiments of the present application further provide a computer program product storing one or more computers, where the computer program product when executed by the processor performs a method of the foregoing possible implementation manner of the controller, where the controller may specifically be a controller in the foregoing embodiment of the method corresponding to fig. 2 to 5.
Embodiments of the present application further provide a computer program product storing one or more computers, where the computer program product when executed by the processor performs a method according to the foregoing possible implementation manner of the second device, where the second device may specifically be the second device in the foregoing method embodiments corresponding to fig. 2 to 5.
The embodiment of the application also provides a chip system which comprises a processor and is used for supporting the first equipment to realize the functions related to the possible realization mode of the first equipment. In one possible design, the system on a chip may further include a memory to hold the program instructions and data necessary for the first device. The chip system may be formed by a chip, or may include a chip and other discrete devices, where the first device may specifically be a first device in an embodiment of a method corresponding to fig. 2 to 5.
The embodiment of the application also provides a chip system which comprises a processor and is used for supporting the forwarding equipment to realize the functions involved in the possible realization mode of the forwarding equipment. In one possible design, the system-on-chip may further include memory to hold the program instructions and data necessary for the forwarding device. The chip system may be formed by a chip, or may include a chip and other discrete devices, where the forwarding device may specifically be a forwarding device in an embodiment of a method corresponding to fig. 2 to 5.
The embodiment of the application also provides a chip system which comprises a processor and is used for supporting the controller to realize the functions related to the possible realization mode of the controller. In one possible design, the system on a chip may further include a memory to hold the program instructions and data necessary for the controller. The chip system may be formed by a chip, or may include a chip and other discrete devices, where the controller may specifically be a controller in an embodiment of a method corresponding to fig. 2 to 5.
The embodiment of the application also provides a chip system which comprises a processor and is used for supporting the second equipment to realize the functions related to the possible realization mode of the second equipment. In one possible design, the system on a chip may further include a memory to hold the program instructions and data necessary for the second device. The chip system may be formed by a chip, or may include a chip and other discrete devices, where the second device may specifically be a second device in an embodiment of a method corresponding to fig. 2 to 5.
The embodiment of the application also provides a network system architecture, which comprises the communication device, wherein the communication device can be specifically a first device, and/or a forwarding device, and/or a controller and/or a second device in the embodiment of the method corresponding to fig. 2 to 5.
In the several embodiments provided in the present application, it should be understood that the disclosed systems, devices, and methods may be implemented in other manners. For example, the apparatus embodiments described above are merely illustrative, e.g., the division of the units is merely a logical function division, and there may be additional divisions when actually implemented, e.g., multiple units or components may be combined or integrated into another system, or some features may be omitted or not performed. Alternatively, the coupling or direct coupling or communication connection shown or discussed with each other may be an indirect coupling or communication connection via some interfaces, devices or units, which may be in electrical, mechanical or other form.
The units described as separate units may or may not be physically separate, and units shown as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
In addition, each functional unit in the embodiments of the present application may be integrated in one processing unit, or each unit may exist alone physically, or two or more units may be integrated in one unit. The integrated units may be implemented in hardware or in software functional units.
The integrated units, if implemented in the form of software functional units and sold or used as stand-alone products, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present application may be embodied essentially or in part or all of the technical solution or in part in the form of a software product stored in a storage medium, including instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the method according to the embodiments of the present application. And the aforementioned storage medium includes: a U-disk, a removable hard disk, a read-only memory (ROM), a random access memory (random access memory, RAM), a magnetic disk, or an optical disk, or other various media capable of storing program codes.

Claims (14)

1. A service device, comprising a host and an intelligent network card, the host and the intelligent network card communicating through a control channel, wherein:
the host is used for selecting a plurality of paths, generating a routing path table and sending the routing path table to the intelligent network card;
The intelligent network card is used for searching paths of a plurality of service messages according to a preset rule based on the routing path table and balancing the service messages to different paths.
2. The service device according to claim 1, wherein the intelligent network card is configured to perform path searching on the plurality of service packets according to a preset rule based on the routing path table, and balance the plurality of service packets to different paths, and includes:
the intelligent network card is used for:
searching a flow table according to each service message in a plurality of service messages, under the condition that a path corresponding to the service message does not exist in the flow table,
loading a path corresponding to the service message in the routing path table into the flow table;
searching paths according to the preset rule, and determining a current path from the paths, wherein the current path corresponding to each service message is different, or the current paths of partial service messages in the service messages are different;
and equalizing the plurality of service messages to the corresponding different paths.
3. The service device according to claim 1, wherein the intelligent network card is configured to perform path searching on the plurality of service packets according to a preset rule based on the routing path table, and balance the plurality of service packets to different paths, and includes:
The intelligent network card is used for:
searching a flow table according to each service message in a plurality of service messages, and acquiring a plurality of paths corresponding to the service messages in the flow table, wherein the paths are loaded from the routing path table to the flow table by the intelligent network card; searching paths according to the preset rule, and determining a current path from the paths, wherein the current path corresponding to each service message is different, or the current paths of partial service messages in the service messages are different;
and equalizing the plurality of service messages to the corresponding different paths.
4. A service device according to claim 2 or 3, wherein the intelligent network card is configured to perform path searching according to the preset rule, and determining the current path from the plurality of paths includes:
the intelligent network card is used for selecting one of the paths as a current path in a polling route selection mode;
or the intelligent network card is used for determining one path from the paths based on the weights of the paths as the current path.
5. The service device according to any one of claims 1-4, wherein the intelligent network card is further configured to send each service packet to a router after encapsulating a path corresponding to the service packet.
6. The service device according to any one of claims 1 to 5, wherein the plurality of paths are paths with a path delay less than or equal to a first preset threshold value among the plurality of paths between the service device and a destination device; or alternatively
And the paths are paths with the bandwidth greater than or equal to a second preset threshold value in the paths between the service equipment and the destination equipment.
7. A communication method, applied to a service device, the service device comprising a host and an intelligent network card, the host and the intelligent network card communicating through a control channel, the method comprising:
the host selects a plurality of paths, generates a routing path table and sends the routing path table to the intelligent network card;
and the intelligent network card searches paths of a plurality of service messages according to a preset rule based on the routing path table, and equalizes the plurality of service messages to different paths.
8. The communication method according to claim 7, wherein the intelligent network card performs path searching on the plurality of service messages according to a preset rule based on the routing path table, and balancing the plurality of service messages to different paths includes:
the intelligent network card searches a flow table according to each service message in a plurality of service messages, and under the condition that a path corresponding to the service message does not exist in the flow table,
Loading a path corresponding to the service message in the routing path table into the flow table;
searching paths according to the preset rule, and determining a current path from the paths, wherein the current path corresponding to each service message is different, or the current paths of partial service messages in the service messages are different;
and equalizing the plurality of service messages to the corresponding different paths.
9. The communication method according to claim 7, wherein the intelligent network card performs path searching on the plurality of service messages according to a preset rule based on the routing path table, and balancing the plurality of service messages to different paths includes:
the intelligent network card searches a flow table according to each service message in a plurality of service messages, and obtains a plurality of paths corresponding to the service messages in the flow table, wherein the paths are loaded from the routing path table to the flow table by the intelligent network card;
searching paths according to the preset rule, and determining a current path from the paths, wherein the current path corresponding to each service message is different, or the current paths of partial service messages in the service messages are different;
And equalizing the plurality of service messages to the corresponding different paths.
10. The communication method according to claim 8 or 9, wherein the performing path search according to the preset rule, determining a current path from the plurality of paths includes:
selecting one of the paths as a current path in a polling route selection mode;
or, determining one of the paths as the current path based on the weights of the paths.
11. A communication method according to any of claims 7-10, characterized in that the communication method further comprises: and the intelligent network card packages a path corresponding to the service message in each service message and then sends the service message to a router.
12. The communication method according to any one of claims 7 to 11, wherein the plurality of paths are paths in which a path delay among the plurality of paths between the service device and the destination device is equal to or less than a first preset threshold; or alternatively
And the paths are paths with the bandwidth greater than or equal to a second preset threshold value in the paths between the service equipment and the destination equipment.
13. The data packet is characterized by comprising a source route SR label, indication information and an outlet port number, wherein the SR label is used for representing communication between forwarding devices on a communication path, the indication information is used for indicating whether the forwarding devices collect network state parameters, and the outlet port number represents the outlet port number to which the data packet is forwarded.
14. The data packet of claim 13, wherein the egress port number is an egress port number for the first device to forward to the forwarding device;
or the exit port number is the exit port number forwarded to the next hop forwarding device by the forwarding device.
CN202310849228.7A 2020-09-08 2020-09-08 Communication system, data processing method and related equipment Pending CN116866249A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310849228.7A CN116866249A (en) 2020-09-08 2020-09-08 Communication system, data processing method and related equipment

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010934858.0A CN114157595B (en) 2020-09-08 2020-09-08 Communication system, data processing method and related equipment
CN202310849228.7A CN116866249A (en) 2020-09-08 2020-09-08 Communication system, data processing method and related equipment

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202010934858.0A Division CN114157595B (en) 2020-09-08 2020-09-08 Communication system, data processing method and related equipment

Publications (1)

Publication Number Publication Date
CN116866249A true CN116866249A (en) 2023-10-10

Family

ID=80462267

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202310849228.7A Pending CN116866249A (en) 2020-09-08 2020-09-08 Communication system, data processing method and related equipment
CN202010934858.0A Active CN114157595B (en) 2020-09-08 2020-09-08 Communication system, data processing method and related equipment

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202010934858.0A Active CN114157595B (en) 2020-09-08 2020-09-08 Communication system, data processing method and related equipment

Country Status (2)

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

Families Citing this family (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

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101646218B (en) * 2009-08-14 2012-11-21 南京工业大学 Implementation method for multi-path source routing protocol based on 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
WO2016091311A1 (en) * 2014-12-11 2016-06-16 Telefonaktiebolaget Lm Ericsson (Publ) Methods and device for network tomography
US9736063B2 (en) * 2015-02-17 2017-08-15 Huawei Technologies Co., Ltd. Service chaining using source routing
CN104702468B (en) * 2015-03-05 2019-02-26 华为技术有限公司 Determine the method, apparatus and system of transmission path
US9742648B2 (en) * 2015-03-23 2017-08-22 Brocade Communications Systems, Inc. Efficient topology failure detection in SDN networks
CN104780095A (en) * 2015-04-30 2015-07-15 杭州华三通信技术有限公司 Path detection method and device in SDN
CN108092888B (en) * 2017-10-31 2021-06-08 华为技术有限公司 Transmission method, gateway and transmission system based on Overlay network
CN108111432B (en) * 2017-12-27 2021-07-02 新华三技术有限公司 Message forwarding method and device
CN110011915A (en) * 2018-01-04 2019-07-12 杭州达乎科技有限公司 SDN network framework, flow transmission control method and device based on SDN
CN108199924B (en) * 2018-01-26 2020-02-18 北京邮电大学 Whole network flow visualization method and device based on in-band network telemetry
CN116208525A (en) * 2018-06-06 2023-06-02 华为技术有限公司 Method, equipment and system for detecting data message
CN108566336A (en) * 2018-07-24 2018-09-21 迈普通信技术股份有限公司 A kind of network path acquisition methods and equipment
CN110890994B (en) * 2018-09-11 2022-06-28 华为技术有限公司 Method, device and system for determining message forwarding path
CN109756421B (en) * 2019-01-23 2021-07-16 华南理工大学 Congestion control system and method based on OpenFlow technology
CN110752993B (en) * 2019-10-24 2022-02-25 新华三信息安全技术有限公司 Message forwarding method and device

Also Published As

Publication number Publication date
CN114157595B (en) 2023-07-04
WO2022052800A1 (en) 2022-03-17
CN114157595A (en) 2022-03-08

Similar Documents

Publication Publication Date Title
US11228515B2 (en) Data packet detection method, device, and system
US9154394B2 (en) Dynamic latency-based rerouting
CN1659833B (en) Methods and apparatus for characterizing a route in a fibre channel fabric
US8427958B2 (en) Dynamic latency-based rerouting
CN104429029B (en) Being controlled based on the service rate for postponing by central controller in network
US10715446B2 (en) Methods and systems for data center load balancing
CN106031094B (en) Accurate measurement of distributed counters
US7835279B1 (en) Method and apparatus for shared shaping
US11272396B2 (en) Frame aggregation method, network setting frame sending method, and device
EP4024780A1 (en) Path detection method and apparatus, and computer storage medium
CN107483337A (en) Determine the method and its network equipment in path
US7801130B2 (en) Methods, systems and computer program products for integrating network traffic
CN101789949B (en) Method and router equipment for realizing load sharing
US9906437B2 (en) Communication system, control apparatus, control method and program
US20150036510A1 (en) Method and device for measuring ethernet performance
JP2023514790A (en) NETWORK PERFORMANCE DETECTION METHOD AND DEVICE, AND NETWORK DEVICE
CN105991338A (en) Network operation and maintenance management method and device
CN104580002B (en) The big balanced retransmission method of current load and device
CN114157595B (en) Communication system, data processing method and related equipment
US8064466B2 (en) Method for specifying input edge router
CN102195867A (en) Network system, edge node, and relay node
CN115225550B (en) On-demand whole network telemetry device based on clustering path planning algorithm
US10855593B1 (en) Methods and apparatus for load balancing in a network switching system
CN113595809B (en) Flow monitoring method, related equipment and system
CN114745227A (en) Power service network slice time delay calculation method and device based on Flexe and SPN technologies

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination