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

Communication system, data processing method and related equipment Download PDF

Info

Publication number
CN114157595A
CN114157595A CN202010934858.0A CN202010934858A CN114157595A CN 114157595 A CN114157595 A CN 114157595A CN 202010934858 A CN202010934858 A CN 202010934858A CN 114157595 A CN114157595 A CN 114157595A
Authority
CN
China
Prior art keywords
network
data packet
forwarding
forwarding device
controller
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.)
Granted
Application number
CN202010934858.0A
Other languages
Chinese (zh)
Other versions
CN114157595B (en
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 CN202010934858.0A priority Critical patent/CN114157595B/en
Priority to CN202310849228.7A priority patent/CN116866249A/en
Priority to PCT/CN2021/114187 priority patent/WO2022052800A1/en
Publication of CN114157595A publication Critical patent/CN114157595A/en
Application granted granted Critical
Publication of CN114157595B publication Critical patent/CN114157595B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

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

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 present application includes: the device comprises a first device, a forwarding device, a controller and a second device, wherein the first device is used for generating a first data packet according to a communication path, the first data packet comprises indication information, and the indication information is used for indicating the forwarding device to acquire network state parameters; the first device is further configured to send the first data packet to the forwarding device, so that the forwarding device can acquire the network state parameter. And the forwarding equipment is used for sending the second data packet to the second equipment, so that the subsequent determination of the target path with better network performance in the communication path is facilitated.

Description

Communication system, data processing method and related equipment
Technical Field
The present invention relates to the field of communications, and in particular, to a communication system, a data processing method, and a related device.
Background
Equal-Cost Multi-Path Routing (ECMP) is a hop-by-hop flow-based load balancing strategy. When a flow has multiple optional paths, the ECMP can adopt multiple strategies to perform routing, thereby realizing load balancing to a certain extent.
Currently, the routing strategy of ECMP mainly includes: based on hash (e.g., selecting a path for a flow based on a hash of the quintuple), round robin (i.e., each flow polls between multiple paths), and based on path weight (i.e., a path with a large weight is assigned a larger number of flows).
However, when the difference between different streams is large, such as elephant and rat streams, the 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 via the network status parameters.
A first aspect of an embodiment of the present application provides a communication system, including: the system comprises a controller, a first device, a forwarding device and a second device; a controller to determine a communication path for a first device to communicate with a second device; a controller further configured to transmit 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 acquire network state parameters; the first equipment is also used for sending a first data packet to the forwarding equipment; the forwarding equipment is used for acquiring network state parameters according to the indication information, and the network state parameters correspond to the forwarding equipment one by one; the forwarding equipment is also used for adding a network state parameter in the first data packet to obtain a second data packet; the forwarding equipment is also used for sending a second data packet to the second equipment; and the second equipment is used for sending a detection report to the controller according to the second data packet, and the detection report is used for determining a target path in the communication paths.
In the embodiment of the application, the first device is configured to generate a first data packet according to a communication path, where the first data packet includes indication information, and the indication information is used to indicate the forwarding device to acquire a network state parameter; the first device is further configured to send the first data packet to the forwarding device, so that the forwarding device can acquire the network state parameter. And the forwarding equipment is used for sending the second data packet to the second equipment, so that the subsequent determination of the 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 communication of a forwarding device on a communication path; the forwarding device is specifically configured to add a network state parameter to the first data packet from which the SR tag is deleted to obtain a second data packet; and the forwarding device is specifically configured to send the second data packet to the second device according to the SR tag.
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 adds the network state parameter to the first data packet from which the SR tag is deleted to obtain a second data packet after acquiring the network state parameter, and the forwarding device is configured to send the second data packet to the second device according to the SR tag. Therefore, the forwarding equipment does not need to do any table look-up operation, and extremely low forwarding time delay can be realized.
Optionally, in a possible implementation manner of the first aspect, in the above, when the communication path includes multiple forwarding devices, the SR tags are multiple, and the forwarding devices are specifically configured to add a network state parameter to a first data packet in which the SR tag corresponding to the forwarding device is deleted to obtain a second data packet, where the second data packet includes an SR tag of a next forwarding device.
In this possible implementation manner, when a plurality of forwarding devices are provided, each forwarding device only deletes its corresponding SR tag, so that the SR tags are not reused, and each forwarding device can simply determine which SR tag is its own, and does not use an additional index to indicate the SR tag corresponding to the forwarding device, thereby reducing the number of bytes of the data packet.
Optionally, in a possible implementation manner of the first aspect, the SR tag includes an outgoing 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 egress port after resolving the SR tag in the first data packet, and no table lookup operation is performed in the period, which may realize an extremely low forwarding delay.
Optionally, in a possible implementation manner of the first aspect, the probe 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 the network index information to the first equipment; the first device is further used for determining a target path in the communication paths according to the network index information.
In this possible implementation manner, the controller may calculate network index information, and the first device may determine the target path according to the network index information. On one hand: the first device can communicate with the second device through the target path with better network performance, and the communication quality and efficiency of the first device and the second device are improved. On the other hand: the first device determines the target path, and under the condition that the network topology is complex, namely when the number of the first devices is multiple, the memory consumption caused by the determination of the target path by the controller is reduced.
Optionally, in a possible implementation manner of the first aspect, the probe 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 further used for determining a target path in the communication paths according to the network index information; the controller is further used for sending the target path to the first device.
In this possible implementation, the controller may calculate network index information and determine the target path according to the network index information. The controller sends the target path to the first device. On one hand: the first device can communicate with the second device through the target path with better network performance, and the communication quality and efficiency of the first device and the second device are improved. On the other hand: the controller determines the target path, which is beneficial for the controller to master the network performance of each communication path in the network topology.
Optionally, in a possible implementation manner of the first aspect, the probe report includes a network status parameter; the controller is also used for sending the network state parameters to the first equipment; the first equipment is also used for determining network index information according to the network state parameters; the first device is further used for determining a target path in the communication paths according to the network index information.
In this possible implementation manner, the first device may calculate network index information, and the first device may determine the target path according to the network index information. On one hand: the first device can communicate with the second device through the target path with better network performance, and the communication quality and efficiency of the first device and the second device are improved. On the other hand: the first device calculates the network index information and determines the target path, and under the condition that the network topology is complex, namely when a plurality of first devices are arranged, the memory consumption caused by the fact that the controller calculates the network index information and determines the target path is reduced.
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 an egress port data packet byte total number 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 by 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 possible implementation manner, the first device may perform service communication with the second device through a target path with better network performance, so as to improve quality and efficiency of service communication between the first device and the second device.
A second aspect of the embodiments of the present application provides a data processing method, where the data processing method may be executed by a first device, and may also be executed by a component (e.g., a processor, a chip, or a system-on-chip) of the first device. The method comprises the following steps: the method comprises the steps that a first device obtains a communication path, and the communication path is used for the first device to communicate with a second device; the first equipment generates a first data packet according to the communication path, wherein the first data packet comprises indication information which 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, wherein the first data packet is used for determining a target path in the communication path.
In the embodiment of the application, the first device generates a first data packet according to the communication path, and instructs forwarding devices on the communication path to acquire network state parameters through the indication information, so that the first data packet can be used for determining the target path. Namely, the communication path of the first device and the second device can be determined through the network performance, and the quality and the 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 step further includes: the method comprises the steps that first equipment obtains network index information, and the network index information is obtained by processing network state parameters; the first device determines a target path in the communication paths according to the network index information.
In this possible implementation manner, the communication path for the communication between 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, the network index information in the above step includes: the first device receives the 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 grasp 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, the network index information in the above step includes: the first equipment receives the network state parameters sent by the controller; the first equipment calculates the network state parameter to obtain the network indication information.
In this possible implementation, the first device calculates network index information. On one hand: the first device can communicate with the second device through the target path with better network performance, and the communication quality and efficiency of the first device and the second device are improved. On the other hand: the first device calculates the network index information, and memory consumption caused by the calculation of the network index information by the controller is reduced under the condition that the network topology is complex, namely a plurality of first devices are provided.
Optionally, in a possible implementation manner of the second aspect, the step further includes: 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 this possible implementation manner, the first device may perform service communication with the second device through a target path with better network performance, so as to improve quality and efficiency of service communication between the first device and the second device.
Optionally, in a possible implementation manner of the second aspect, the network status parameter in the foregoing step includes an ingress port timestamp of the forwarding device and an egress port timestamp of the forwarding device, or the network status parameter includes an egress port data packet byte total number 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, the network index information in the above step includes: the first device calculates the network index information in the following way:
Figure BDA0002671571400000041
the current value of the total number of bytes comprises a byte value of a first data packet, the historical value of the total number of bytes comprises a byte value or 0 of the last data packet, the current value of the time stamp of the output port comprises a time stamp when the first data packet is output from the port, and the historical value of the time stamp of the output port comprises a time stamp or 0 when the last data packet is output from the port.
In this possible implementation, a specific way of calculating network index information is provided.
Optionally, in a possible implementation manner of the second aspect, the acquiring, by the first device, the network index information in the above step includes: and the first equipment calculates the transmission delay of the forwarding equipment, wherein the transmission delay is the difference value of the time stamp of the inlet port of the first data packet and the time stamp of the outlet port of the first data packet.
In this possible implementation manner, the transmission efficiency of 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 step further includes: the first device receives 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.
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 packet in the foregoing step further includes a source route SR tag, and the SR tag is used for forwarding communication of the device.
In this possible implementation manner, after the forwarding device receives the first data packet sent by the first device, the next-hop device on the communication path may be determined according to the SR tag in the first data packet, so that the forwarding device does not need to perform any table lookup operation, and may implement an extremely low forwarding delay.
Optionally, in a possible implementation manner of the second aspect, the SR tag in the above step includes an outgoing port number of the forwarding device.
In this possible implementation manner, the SR tag includes an 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 can be determined according to the SR tag in the first data packet, that is, the next-hop device on the communication path can be determined, so that the forwarding device does not need to perform any table lookup operation, and thus, an extremely low forwarding delay can be achieved.
Optionally, in a possible implementation manner of the second aspect, the first data packet in the above 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 may complete the acquisition of the network state parameters in real time by using the above method to the detection packet or the service data packet, and further determine a more appropriate target path.
Optionally, in a possible implementation manner of the second aspect, the acquiring, by the first device, the communication path includes: the first device receives the communication path transmitted by the controller.
In the possible implementation manner, the communication path is determined by the controller and then sent to the first device, so that 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 data processing method may be executed by a forwarding device, or may be executed by a component (e.g., a processor, a chip, or a system-on-chip) of the forwarding device. The method comprises the following steps: the forwarding equipment receives a first data packet from first equipment, and the first data packet indicates information which is used for indicating the forwarding equipment to acquire network state parameters, wherein the network state parameters are related to the forwarding equipment; the forwarding equipment acquires network state parameters according to the indication information to obtain a second data packet; the forwarding device sends the second packet to the second device.
In this possible implementation manner, the forwarding device may acquire the network state parameter according to the indication information in the first data packet to obtain the second data packet. And sending the second data packet to the second device, so that the second device learns 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 the forwarding device, and the SR tag is used for communication of the forwarding device; the forwarding device acquires the network state parameter according to the indication information to obtain a second data packet, and the method comprises the following steps: the forwarding equipment collects network state parameters; the forwarding equipment adds a network state parameter 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, and the second data packet comprises: and the forwarding equipment sends the second data packet to the second equipment according to the SR label.
In this possible implementation manner, after acquiring the network state parameter, the forwarding device directly adds the network state parameter to the first data packet from which the SR tag is deleted to obtain a second data packet, and the forwarding device is configured to send the second data packet to the second device according to the SR tag. Therefore, the forwarding equipment does not need to do any table look-up operation, and extremely low forwarding time delay can be realized.
Optionally, in a possible implementation manner of the third aspect, the SR tag in the above step includes an outgoing port number of the forwarding device.
In this possible implementation manner, the SR tag includes an 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 can be determined according to the SR tag in the first data packet, that is, the next-hop device on the communication path can be determined, so that the forwarding device does not need to perform any table lookup operation, and thus, an extremely low forwarding delay can be achieved.
Optionally, in a possible implementation manner of the third aspect, the network status parameter in the foregoing step includes an ingress port timestamp of the forwarding device and an egress port timestamp of the forwarding device, or the network status 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 above 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 data processing method may be executed by a controller or a component of the controller (e.g., a processor, a chip, or a system of chips). The method comprises the following steps: the controller determines 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, wherein the probe report is related to a network state parameter, the network state parameter is related to a forwarding device on the communication path, and the probe report is further used for determining a target path in the communication path.
In the embodiment of the application, the controller sends the communication path to the first device, that is, sends the communication path requiring network state parameter measurement to the first device, so that memory consumption caused by 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 foregoing step includes network index information, and the network index information is obtained by processing a network status parameter.
Optionally, in a possible implementation manner of the fourth aspect, the probe report in the foregoing step includes a network status parameter.
Optionally, in a possible implementation manner of the fourth aspect, the network status parameter in the foregoing step includes an ingress port timestamp of the forwarding device and an egress port timestamp of the forwarding device, or the network status 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 step further includes: the controller calculates network index information; the controller sends the network indicator information to the first device to enable the first device to determine a target path in the communication paths according to 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, a first device may determine a target path of communication paths based on 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 above step includes: the controller calculates the transmission delay of the forwarding device, wherein the transmission delay is the difference between the input port timestamp and the output port timestamp.
In this possible implementation manner, the transmission efficiency of 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 above 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 an average bandwidth value of the forwarding device by using:
Figure BDA0002671571400000061
the current value of the total number of bytes comprises a byte value of a first data packet, the historical value of the total number of bytes comprises a byte value or 0 of the last data packet, the current value of the time stamp of the output port comprises a time stamp when the first data packet is output from the port, and the historical value of the time stamp of the output port comprises a time stamp or 0 when the last data packet is output from the port.
In this possible implementation, a specific way of calculating network index information is provided.
Optionally, in a possible implementation manner of the fourth aspect, the step further includes: 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 index information and determine the target path according to the network index information. The controller sends the target path to the first device. On one hand: the first device can communicate with the second device through the target path with better network performance, and the communication quality and efficiency of the first device and the second device are improved. On the other hand: the controller determines the target path, which is beneficial for the controller to master the network performance of each communication path in the network topology.
A fifth aspect of embodiments of the present application provides a first device, including:
a receiving unit configured to acquire a communication path for a first device to communicate with 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 sending unit is used for sending 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 index information, where the network index information is obtained by processing a network state parameter; and the processing unit is further used for determining a target path in the communication paths 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 the network index 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 by 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 status parameter includes an ingress port timestamp of the forwarding device and an egress port timestamp of the forwarding device, or the network status parameter includes an egress port data packet byte total number 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 index information by using the following method:
Figure BDA0002671571400000071
the current value of the total number of bytes comprises a byte value of a first data packet, the historical value of the total number of bytes comprises a byte value or 0 of the last data packet, the current value of the time stamp of the output port comprises a time stamp when the first data packet is output from the port, and the historical value of the time stamp of the output port comprises a time stamp or 0 when the last data packet is output from the port.
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 packet further includes a source routing SR tag, where the SR tag is used for forwarding communication of a device.
Optionally, in a possible implementation manner of the fifth aspect, the SR tag includes an outgoing port number of the forwarding device.
A sixth aspect of an embodiment of the present application provides a forwarding apparatus, including:
the receiving unit is used for receiving a first data packet from the first equipment, and 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 the network state parameters according to the indication information to obtain a second data packet;
and a sending unit, configured to send 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 the forwarding device, and the SR tag is used for communication of the forwarding device; the processing unit is specifically used for acquiring network state parameters; adding a network state parameter in the first data packet with the SR label deleted to obtain a second data packet; and a sending unit, configured to send the second data packet to the second device according to the SR tag.
Optionally, in a possible implementation manner of the sixth aspect, the SR tag includes an outgoing port number of the forwarding device.
Optionally, in a possible implementation manner of the sixth aspect, the network status parameter includes an ingress port timestamp of the forwarding device and an egress port timestamp of the forwarding device, or the network status parameter includes a total number of egress port data 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 embodiments of the present application provides a controller, including:
a processing unit for determining a communication path for a first device to communicate with a 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, the detection report is related to network state parameters, the network state parameters are related to forwarding devices 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 probe report includes network index information, and the network index information is obtained by processing a network status parameter.
Optionally, in a possible implementation manner of the seventh aspect, the probe report includes a network status parameter.
Optionally, in a possible implementation manner of the seventh aspect, the network status parameter includes an ingress port timestamp of the forwarding device and an egress port timestamp of the forwarding device, or the network status parameter includes an egress port packet byte total number 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 index information; and the sending unit is further used for sending the network index information to the first equipment so that the first equipment 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 by:
Figure BDA0002671571400000081
the current value of the total number of bytes comprises a byte value of a first data packet, the historical value of the total number of bytes comprises a byte value or 0 of the last data packet, the current value of the time stamp of the output port comprises a time stamp when the first data packet is output from the port, and the historical value of the time stamp of the output port comprises a time stamp or 0 when the last data packet is output from the port.
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 paths according to the network index information; and the sending unit is also used for sending the target path to the first equipment.
An eighth aspect of embodiments of the present application provides a first device, including: a processor coupled to a memory for storing a program or instructions which, when executed by the processor, cause the first device to carry out the method of the second aspect described above or any possible implementation of the second aspect.
A ninth aspect 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, causes 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 described above or any possible implementation of the fourth aspect.
An eleventh aspect of embodiments of the present application provides a communication system, including the first device provided in the eighth aspect, and/or the forwarding device of the ninth aspect, and/or the controller of the tenth aspect.
A twelfth aspect of the present application provides a chip comprising a processor and an interface circuit, the interface circuit being coupled to the processor, the processor being configured to execute a computer program or instructions to implement the method as in the second aspect or any possible implementation manner of the second aspect, the third aspect or any possible implementation manner of the third aspect, the fourth aspect or any possible implementation manner of the fourth aspect, the interface circuit being configured to communicate with other modules outside the chip.
A thirteenth aspect of 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 manner of the second aspect, any possible implementation manner of the third aspect or the third aspect, or any possible implementation manner of the fourth aspect.
A fourteenth aspect of embodiments of the present application provides a computer program product, which, when executed on a computer, causes the computer to execute the foregoing second aspect or any possible implementation manner of the second aspect, the third aspect or any possible implementation manner of the third aspect, or the method in any possible implementation manner of the fourth aspect.
For technical effects brought by the fifth aspect, the eighth aspect, the eleventh aspect, the twelfth aspect, the thirteenth aspect, the fourteenth aspect, or any one of possible implementation manners, reference may be made to technical effects brought by different possible implementation manners of the second aspect or the second aspect, and details are not described here again.
For technical effects brought by the sixth aspect, the ninth aspect, the eleventh aspect, the twelfth aspect, the thirteenth aspect, the fourteenth aspect, or any one of possible implementation manners, reference may be made to technical effects brought by different possible implementation manners of the third aspect or the third aspect, and details are not described here again.
For technical effects brought by the seventh aspect, the tenth aspect, the eleventh aspect, the twelfth aspect, the thirteenth aspect, the fourteenth aspect, or any one of possible implementation manners, reference may be made to technical effects brought by different possible implementation manners of the fourth aspect or the fourth aspect, and details are not described here.
According to the technical scheme, the embodiment of the application has the following advantages: the first device is used for generating a first data packet according to the communication path, the first data packet comprises a Source Routing (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 acquire network state parameters; the first device is further configured to send the first data packet to the forwarding device, so that the forwarding device can acquire 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 favorable for the first device to subsequently determine a target path with better network performance in the communication path.
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 illustrating a data processing method according to an embodiment of the present application;
FIG. 3 is a schematic diagram of a communication path in an embodiment of the present application;
FIG. 4 is a diagram illustrating a format of a first packet in an embodiment of the present application;
FIG. 5 is another schematic diagram of communication paths in an embodiment of the present application;
FIG. 6 is a schematic structural diagram of a first apparatus in an embodiment of the present application;
fig. 7 is a schematic structural diagram of a forwarding device in an embodiment of the present application;
FIG. 8 is a schematic structural diagram of a controller according to an embodiment of the present disclosure;
FIG. 9 is another schematic structural diagram of the first apparatus in the embodiment of the present application;
fig. 10 is a schematic structural diagram of a communication device in an embodiment of the present application.
Detailed Description
The embodiments of the present application are described below with reference to the drawings, and it can be known by those skilled in the art that with the development of technology and the emergence of new scenarios, the technical solutions provided in the embodiments of the present application are also 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 a network state parameter.
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, a network architecture in an embodiment of the present application 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 the backbone switches 101 and 102, the leaf switches 103 to 105 and the 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, respectively, 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 taken as an example for illustration, in practical application, there may be more backbone switches, leaf switches, and service devices in a network architecture, and the specific implementation is not limited herein.
The access manner of each service device to the leaf switch may also be different, fig. 1 is schematically illustrated by taking only one service device to access one leaf switch, and multiple service devices may also access one leaf switch, which is not limited herein.
The connections between the backbone switch 101 and the leaf switches 103 to 105 are typically wired or wireless, and if wired, the connection may be in the form of a fiber optic network.
The leaf switch and the service device are generally connected through a wireless network or through a wired network, if the leaf switch and the service device are connected through the wired network, the connection form can be a fiber network, if the leaf switch and the service device are connected through a wireless network, the connection form can be a cellular wireless network, or a WiFi network, or other types of wireless networks.
The communication between the service devices can be interacted through the leaf switch, and can also be interacted with the backbone switch through the leaf switch.
The main function of the controller 100 is to manage the devices in the network (backbone switches 101 and 102, leaf switches 103 to 105, and service devices 106 to 108).
The main function of the backbone switches 101 and 102 is to ensure communication between any two leaf switches within the network.
The main functions of the leaf switches 103 to 105 are data relay, connecting the backbone switches and the service equipment, and transmitting data.
The main function of the service devices 106 to 108 is to provide services to users or other devices.
In this embodiment of the application, the service device may be a rack server, a blade server, a computing node, a storage node, or the like, and is not limited herein.
In the embodiment of the present application, the first device and the second device correspond to a service device 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 should be understood that the architecture in fig. 1 is only an example, in an actual application, a core switch (core) may be further connected above the backbone switch, and a top of rack (TOR) switch may be further connected below the leaf switch, that is, for a specific layer number of the forwarding device, the specific layer number is not limited herein, and the specific layer number may be a spine-leaf, a spine-leaf-TOR, or a core-spine-leaf-TOR.
The network (DCN) state of the current data center is complex, the path load is not controllable due to the influence of various factors (network congestion, switch routing algorithm and the like), the load nonuniformity and congestion of multiple nodes cause the bandwidth value of the whole DCN link to be lower, and along with the increase of the DCN scale, the traditional load balancing methods such as ECMP cannot meet the load balancing requirement of the DCN due to the lack of perception of the whole network state, and the optimization is urgently needed.
In addition, multi-protocol label switching (MPLS) is a system for fast packet switching and routing, and provides capabilities for addressing, routing, forwarding, and switching network data traffic.
A plurality of network devices supporting MPLS are interconnected to form an MPLS domain, and on a forwarding path, a node entering the MPLS domain is called an ingress node, a node leaving the MPLS domain is called an egress node, and nodes on the forwarding path are all called intermediate nodes. As shown in fig. 1, when a packet enters an MPLS domain, an ingress node queries an entry such as a forwarding information table (FIB) to obtain information such as an egress interface and an egress label, then presses an MPLS label in an original packet, and then forwards the packet to a next hop. After receiving the message, the intermediate node checks the corresponding table entry according to the MPLS label value to obtain the output 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 last but one jump forwarding node, and at the moment, the label needs to be popped up and then forwarding is carried out. The outgoing node directly transmits the traditional IP message after receiving the message.
Wherein the content of the first and second substances,
however, the nodes in the MPLS domain need to distinguish different identities of ingress, intermediate, egress, etc., which results in a relatively complex management plane.
The communication method in the embodiment of the present application is applicable to a data center network shown in fig. 1, and may also be applicable to a cloud network scenario, in particular, a public cloud scenario, where network services are divided into Overlay layers and Underlay layers, currently, main network services have been migrated to an Overlay network, and Underlay network services become very single, and are mainly focused on network connection and congestion control. The use of the private protocol on the Underlay network does not affect Overlay service, and is suitable for introducing the source routing message with the private format to reduce the end-to-end forwarding delay, and the introduction of the INT technology can realize the real-time monitoring of the network state so as to realize load balancing and improve the network operation and maintenance efficiency.
In view of the foregoing problems, embodiments of the present application provide a communication system, a data processing method, and a related device. The following describes a communication system in an embodiment of the present application.
The present application provides a communication system, comprising: the device 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 telemetering detection path of the whole network by using a telemetering path planning algorithm according to topology information of the whole network, the path planning is only executed once under the condition that the network topology is not changed, and the whole network telemetering path planning is triggered again when new nodes are added or events such as path faults occur. The controller distributes the planned paths to each server, and the servers generate INT detection packets with corresponding source routing labels based on each detection path according to a certain time interval to complete path information collection of the whole network. After the aggregated link status of the whole network is obtained, the controller synchronizes information to each server node in the network through the management network.
The service device runs its own control plane process, which mainly implements two functions:
(1) INT detection messages sent by the controller are forwarded to the intelligent network card, INT reports sent by the network card are forwarded to the controller, and full-network state collection is assisted to be completed;
(2) after acquiring the state information of the whole network from a control plane, selecting a plurality of optimal paths to other hosts in the network through a certain path selection algorithm, generating a source routing path table and issuing the source routing path table to the intelligent network card;
the intelligent network card searches the path of the service message at the sending end according to a certain rule (such as quintuple or destination IP) and encapsulates the corresponding source routing label. Because a plurality of available paths exist for each destination node, the intelligent network card is also responsible for balancing a plurality of service flows onto different paths and ensuring that the forwarding paths of the service flows established before are not influenced when the path table is dynamically refreshed.
The forwarding device is responsible for source routing forwarding and INT information acquisition of the message, and after analyzing a source routing tag number in the message, the forwarding device directly forwards the message to a corresponding output port, and does not perform any table look-up operation in the process, so that extremely low forwarding delay can be realized. And the INT acquisition unit on the forwarding equipment judges whether to acquire the INT information according to whether the message carries the INT acquisition identifier.
Referring to fig. 2, an embodiment of a communication method in the 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 devices in the network.
Alternatively, when the topology of the whole network changes, that is, when an event such as a newly added point or a path failure occurs, the controller may re-determine the communication path.
The communication path in the embodiment of the present application may be a single path or multiple paths, and is not limited herein.
In this embodiment of the present application, there are multiple algorithms for determining a communication path by a controller, which may be a hop-by-hop link utilization sensing-based load balancing architecture (HULA) algorithm or an INT-path algorithm based on deep-first search (DFS), and the specific details are not limited herein.
202. The controller transmits the communication path to the first device. This step is optional.
Optionally, after determining the communication path, the controller sends the communication path to the first device.
After the controller determines the communication path, the controller may issue 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 information of the communication path that the controller needs to detect.
The communication path information in this embodiment of the present application may include an egress port, an IP address, or a device identifier of a forwarding device on a 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, in the embodiment of the present application, the first device may also obtain the full network topology first, and determine the communication path according to the full network topology. The communication path may also be determined by other devices, and is not limited herein.
Optionally, the first device may send the first data packet at a certain time interval, and the specific time interval may be adjusted according to the network size.
Illustratively, the number of forwarding devices on the communication path is multiple, and the communication path acquired by the first device is as shown in fig. 3. Wherein one communication path: "first device-first forwarding device-second forwarding device-third forwarding device-fourth forwarding device-fifth forwarding device-second device". The other communication path is: "first device-first forwarding device-second forwarding device-sixth forwarding device-fourth forwarding device-fifth forwarding device-second device". The first device is connected with the first forwarding device through a port 3 of the first forwarding device, a port 1 of the first forwarding device is connected with a port 3 of the second forwarding device, a port 1 of the second forwarding device is connected with a port 1 of the third forwarding device, a port 2 of the third forwarding device is connected with a port 1 of the fourth forwarding device, a port 3 of the fourth forwarding device is connected with a port 1 of the fifth forwarding device, and the fifth forwarding device is connected with the second device through a port 3. And 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 acquires 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 includes an SR tag, and the SR tag is used for communication between forwarding devices on the communication path. Wherein one forwarding device corresponds to one SR tag.
The present embodiment provides a fusion packet format of Source Routing (SR) and in-band network telemetry (INT).
As shown in fig. 4. Wherein, the first data packet adopts Ethernet (ETH) to identify the high-level protocol, and the reserved Ethernet type 0x0700 is used as the protocol type of SR in the first data packet; the SR _ len field value in SR _ OPTION is SR _ OPTION and the total length of all SR tag fields; SR _1 represents an SR tag of a first forwarding device, where INT _ flag is used to indicate whether INT information acquisition needs to be performed on the first forwarding device, INT _ flag is 1 and may indicate acquisition, and INT _ flag is 0 and may indicate non-acquisition, and a next _ port field indicates an egress port number to which the first device needs to forward the first data packet. The Rsvd is used to indicate a reserved field, and can be specifically set according to needs. SR _ N denotes an SR tag of the nth forwarding device. The first packet may also use reserved ethertype 0x0701 as the protocol type for INT, immediately following the SR tag. The INT _ type field in the INT _ OPTION is used to indicate whether the first packet is a first packet sent by the control plane. INT _ num is used to record the amount of INT information collected.
In fig. 4, SR _1 and SR _ N are SR tags, and the int _ flag field is indication information in the first packet.
In the INT message format of the P4 alliance or IOAM standard, the INT information exists as an option header of an inner layer message, and the INT information can be inserted only by deep message analysis of the switch, thereby increasing the complexity and 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 better sealing performance and a public cloud scene.
It is understood that the format of the first data packet may be set according to 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 this embodiment may be a probe packet or a service data packet, and is not limited herein.
Additionally, the first device may cause the plurality of sets of data packets to cover the full network path by generating the plurality of sets of data packets for the plurality of 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 the network performance (network state parameter or network index information) of the communication path through the first data packet, and further determine a target path for performing service communication.
204. The first device sends a first data packet to the forwarding device.
In this embodiment of the application, the forwarding device is a device that can forward data, such as a switch or a router, and the number of the forwarding devices may be one or more, which is not limited herein.
And after generating the first data packet, the first device sends the first data packet to the forwarding device.
205. And the forwarding equipment generates a second data packet according to the first data packet.
The forwarding device receives a first data packet from the first device, acquires a network state parameter of the forwarding device according to indication information (for example, int _ flag field in fig. 3) in the first data packet, and adds the network state parameter to 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 in the first data packet to obtain a second data packet.
Optionally, under the condition that the indication information indicates the forwarding device to acquire the network state parameter (for example, an int _ flag field in fig. 4 is 1), the forwarding device acquires the network state parameter, deletes the SR tag corresponding to the forwarding device, and adds the network state parameter to the first data packet with the SR tag deleted to obtain a second data packet.
Optionally, under the condition that the indication information indicates that the forwarding device does not acquire the network state parameter (for example, the int _ flag field in fig. 4 is 0), the forwarding device does not acquire the network state parameter, and deletes the SR tag corresponding to the forwarding device in the first data packet to obtain the second data packet.
In this embodiment of the present application, the network status parameter may be, for example, a port number of the quasi forwarding device, an egress port number of the forwarding device, an ingress port timestamp of the forwarding device, an egress port timestamp of the forwarding device, a queue depth when entering an egress port, a queue depth when leaving the egress port, a total number of egress port data packet bytes of the forwarding device, or a total number of egress port bytes, and the like, and is not limited herein.
For convenience of understanding, the above example is continued, and the number of the forwarding devices on the communication path is taken as 5 for an example to perform an exemplary explanation, and the number of the forwarding devices may be one or more, and is not limited herein.
As shown in fig. 5, one of the communication paths is taken as an example for schematic explanation. The number of forwarding devices on the communication path is 5, and the forwarding devices are respectively a first forwarding device, a second forwarding device, a third forwarding device, a fourth forwarding device and a fifth forwarding device. Wherein, it is assumed that int _ flag field in fig. 4 is 1, that is, the indication information indicates 5 forwarding devices to acquire the network state 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 parameters need to be acquired according to the indication information in the a data packet 500. The first forwarding device acquires the network state parameters of the first forwarding device to obtain INT1 information, deletes the SR tag-SR 1(1) corresponding to the first forwarding device, and adds the acquired INT1 information to obtain the B data packet 501. The first forwarding device knows that the first forwarding device has forwarded the B packet 501 out of port No. 1 according to SR1 (1). I.e. to send the B packet 501 to the second forwarding device. The 1 in parentheses of SR1(1) corresponds to the next _ port in fig. 4.
After the second forwarding device acquires the B data packet 501, it determines that the network state parameters need to be acquired according to the indication information in the B data packet 501. The second forwarding device acquires the network state parameter of the second forwarding device to obtain INT2 information, deletes the SR tag-SR 2(1) corresponding to the second forwarding device, and adds the acquired INT2 information to obtain the C data packet 502. The second forwarding device knows that the second forwarding device has forwarded the C packet 502 out of port No. 1 according to SR2 (1). I.e., send C packet 502 to the third forwarding device.
After the third forwarding device acquires the C data packet 502, it determines that network state parameters need to be acquired according to the indication information in the C data packet 502. The third forwarding device acquires the network state parameter of the third forwarding device to obtain INT3 information, deletes the SR tag-SR 3(2) corresponding to the third forwarding device, and adds the acquired INT3 information to obtain the D data packet 503. The third forwarding device knows that the third forwarding device forwards the D packet 503 out from port No. 2 according to SR3 (2). I.e. D packet 503 is sent to the fourth forwarding device.
The operation of the fourth forwarding device is similar to the operation of the other forwarding devices, and is not described herein again.
After receiving the E data packet 504 sent by the fourth forwarding device, the fifth forwarding device determines that network state parameters need to be acquired according to the indication information in the E data packet 504. And the fifth forwarding device acquires the network state parameters of the fifth forwarding device to obtain INT5 information, deletes the SR tag-SR 5(3) corresponding to the fifth forwarding device, and adds the acquired INT5 information to obtain the F data packet 505. The fifth forwarding device knows that the fifth forwarding device forwards the F packet 505 from port No. 3 according to SR5 (3). I.e. send F packet 505 to the second device.
Optionally, the fifth forwarding device is a last hop forwarding device, and the fifth forwarding device may resolve that all SR tags are exhausted, and further strip off an ethertype field and an SR tag header that identify the SR.
The number of forwarding devices in the communication path shown in fig. 5 and the specific communication path are only examples, and are not limited herein.
Based on the above description, the forwarding device directly uses the next _ port value in the first SR label parsed as the roll-out port number, so that no routing table or label lookup is needed, polar forwarding delay is implemented, and the used SR label is deleted to prevent reuse. Meanwhile, whether INT information is added into the first data packet or not is determined according to an INT _ flag field in the SR.
Alternatively, the INT information is arranged in a stack (i.e., the first INT information is followed by the second INT information).
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) Means of
sw_id 16 Switch identification
ingress_port 16 Number of input port
egress_port 16 Number of outlet port
ingress_global_timestamp 48 Ingress port timestamp
egress_global_timestamp 48 Port time stamp
enq_qdepth 24 Queue depth on ingress to egress port
deq_qdepth 24 Queue depth on exit port
egress_packet_count 32 Total number of bytes of data packet at output port
egress_byte_count 32 Total number of bytes at output port
The INT information field name, the length of the INT information field, and the meaning of the INT information shown in table 1 are examples only, and are not limited herein.
Optionally, for subsequent calculation of the network metrics information, the forwarding device may record the total number of bytes that each port cumulatively passes through and a timestamp.
The first device in this embodiment may be a sending end or a receiving end, and 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 also 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 packet to the second device.
And after the forwarding equipment generates the second data packet, sending the second data packet to the second equipment according to the SR label.
Illustratively, continuing the above example, after the fifth forwarding device obtains the F packet 505, the fifth forwarding device knows that the fifth forwarding device forwards the F packet 505 from port No. 3 according to SR5 (3). I.e. send F packet 505 to the second device.
207. The second device generates a probe report from the second data packet.
There are various detection report conditions in the detection report in the embodiment of the present application, and the following description is respectively given:
1. the probe report includes network status parameters.
And after the second device receives the second data packet sent by the forwarding device, packing the network state parameters in the second data packet to generate a detection report.
Illustratively, and continuing the above example, the second device packages INT1 information, INT2 information, INT3 information, INT4 information, and INT5 information to generate a probe report.
2. The probe report includes network indicator information.
The network index information in the embodiment of the present application may be an average bandwidth value, a transmission delay, an error rate, or the like of the forwarding device, and is not limited herein.
And after the second device receives a second data packet sent by the forwarding device, calculating network index information according to the network state parameters in the second data packet.
Illustratively, the second device obtains an ingress port timestamp and an egress port timestamp of the forwarding device from the second data packet, and calculates a difference between the ingress port timestamp and the egress port timestamp to obtain the transmission delay of the forwarding device.
Illustratively, the second device obtains the current value of the total number of egress port bytes and the current value of the egress port timestamp of the forwarding device from the second data packet. The second device may receive a history of the total number of bytes sent by the forwarding device and an egress port timestamp history value. And calculating the average bandwidth value of the forwarding device by using the following formula:
Figure BDA0002671571400000171
if the number of the forwarding devices is multiple, determining the maximum value of the average bandwidth values in the multiple forwarding devices as the link bandwidth value; if the number of forwarding devices is one, the average bandwidth value of the forwarding device may be determined to be the link bandwidth value. It is to be understood that, if the number of forwarding devices is multiple, any one of the average bandwidth values in the multiple forwarding devices may also be determined as the link bandwidth value, and the details are not limited herein.
Alternatively, after calculating the average bandwidth value, the average bandwidth value may be divided by the full bandwidth to obtain the average link utilization.
If the first data packet is a primary data packet for transmission, the default of the historical value in the formula is 0; if the first data packet is the Nth time data packet transmitted, the first device records the total number of bytes of each transmitted data packet and the output 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 a data packet is lost, the average link utilization rate in the period of time can still be accurately reflected by the information of the next data packet, and only the statistical interval is increased, but the statistical information is not lost.
There are many cases of the detection report in the embodiment of the present application, and the above two cases are only examples, and are not limited herein.
208. The second device sends a probe report to the controller.
And after the second equipment generates the detection report, the second equipment sends the detection report to the controller.
209. The controller determines network indicator information from the probe report. This step is optional.
In the embodiment of the present application, there are various ways for the controller to determine the network index information according to the probe report, which are described below:
1. when the detection report comprises the network state parameter, the controller obtains the network index information by calculating the network state parameter. The calculation is similar to the way of calculating the network index information by the forwarding device in step 207, and is not limited herein.
2. When the probe report includes the network index information, the controller determines the network index information by receiving the probe report transmitted by the second device.
In the embodiment of the present application, there are various ways for the controller to determine the network indicator information according to the probe report, and the two ways are only examples, and are not limited herein.
After the controller determines the network indicator information, the network indicator information may be stored in a database of the controller.
For example, for the network indicator information being an average bandwidth value, the controller may record the network status parameter and the network indicator information in an average bandwidth value table, as shown in table 2:
TABLE 2
Switch identification Port number Byte total history value Timestamp historical value of output port Average bandwidth value
The content recorded in table 2 is only an example, and the recorded content is set according to actual needs, and is not limited herein.
210. The controller sends the network indicator information to the first device.
The controller transmits the network indicator information to the first device after determining the network indicator information.
Optionally, a master-slave copy relationship is established between the database of the first device and the database of the controller, 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 that data synchronization is realized.
211. The first device determines a target path in the communication paths 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 paths according to the network index information.
After the first device obtains the network index information of the multiple through paths, the target path is determined.
Illustratively, the a communication path passes through three forwarding devices, the average bandwidth value of the first forwarding device is 20Gbit/s, the average bandwidth value of the second forwarding device is 40Gbit/s, and the average bandwidth value of the third forwarding device is 30 Gbit/s. The first device determines that the link bandwidth value of the a communication path is 40 Gbit/s. Similarly, if the link bandwidth value of the B communication path is 10Gbit/s, the first device determines the communication path with the smaller link bandwidth value as the target path, that is, the first device determines the B communication path as the target path.
Illustratively, the communication path a passes through three forwarding devices, the transmission delay of the first forwarding device is 3-10 microseconds, the transmission delay of the second forwarding device is 0.03s, and the transmission delay of the third forwarding device is 0.04 s. The first device determines that the transmission delay of the a communication path is 0.09 s. Similarly, if the transmission delay of the communication path B is 0.11ms, the first device determines that the communication path with less 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 scale is large, the number of communication paths may be tens of, hundreds of, 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 computations.
1. When the paths of all the service devices under the leaf switch are calculated, the selectable paths on the backbone switches (the switches above the leaf) are the same, so that each service device does not need to be used as an end point for calculation, and only the leaf switch needs to be used as the end point for routing. I.e. the selection of the optimal end point.
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 multi-node parallel calculation is introduced, and the destination leaf switch is divided into multiple groups, and each group is used as the input of one thread or path calculation node for independent calculation. I.e. each service device calculates a portion of the network indicator information.
3. The available paths from all the service equipment under each leaf switch to other leaf switches are completely the same, only one service equipment is needed to complete the calculation, and the calculation tasks grouped according to the target leaf switch can be distributed to a plurality of service equipment under the current leaf switch for parallel calculation by combining the point 2. I.e. the selection of the optimal starting point.
Illustratively, the data center network includes 30 backbone switches and 30 leaf switches, each backbone switch is connected with 30 service devices downstream, and there are 900 nodes in total, there are 30 paths between every two service devices across the backbone switches, and assuming that K takes 16, each service device node needs to calculate about 870 times of 30-to-16 calculations to other nodes, and after the above-mentioned manner of reducing the calculations, each service device only needs to calculate one 30-to-16 calculation to a certain destination backbone switch.
In this embodiment of the application, the first device may generate a first data packet according to the communication path, where the first data packet may include a source route SR tag and indication information, the SR tag 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 acquire whether to acquire the network state parameters, and the first device is favorable for subsequently determining the target path with better network performance in the communication path.
Corresponding to the method provided by the above method embodiment, the embodiment of the present application further provides a corresponding apparatus, which includes a module for executing the above embodiment. The module may be software, hardware, or a combination of software and hardware.
Referring to fig. 6, in an embodiment of the first apparatus in the embodiment of the present application, the first apparatus 600 includes:
a receiving unit 601, configured to acquire a communication path, where the communication path is used for a first device to communicate with a second device;
a processing unit 602, configured to generate a first data packet according to a communication path, where the first data packet includes indication information, and the indication information is used to indicate a forwarding device on the communication path to acquire a network state parameter;
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 a possible design, the receiving unit 601 is further configured to obtain network index information, where the network index information is obtained by processing a network status parameter;
the processing unit 602 is further configured to determine a target path in the communication paths according to the network index 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, operations performed by each unit in the first device are similar to those described in the embodiments shown in fig. 2 to fig. 5, and are not described again here.
In this embodiment, the processing unit 602 generates a first data packet according to the communication path, and instructs, 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. Namely, the communication path of the first device and the second device can be determined through the network performance, and the quality and the efficiency of communication between the first device and the second device are further improved.
Referring to fig. 7, in an embodiment of a forwarding device in the 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 indicate a forwarding device to acquire a network status parameter, where the network status parameter is related to the forwarding device;
a processing unit 702, configured to acquire a network state parameter according to the indication information to obtain a second data packet;
a sending unit 703 is configured to send the second data packet to the second device.
In one possible design, the first data packet further includes a source routing SR tag, where the SR tag corresponds to the forwarding device, and the SR tag is used for communication of the forwarding device;
in a possible design, the processing unit 702 is specifically configured to acquire a network state parameter, and add the network state parameter to the first data packet from which the SR tag is deleted to obtain a second data packet;
in one possible design, the sending unit 703 is specifically configured to send the second packet to the second device according to the SR tag.
In this embodiment, operations performed by each unit in the forwarding device are similar to those described in the embodiments shown in fig. 2 to fig. 5, and are not described again here.
In this embodiment, the processing unit 702 acquires the network status parameter according to the indication information in the first data packet to obtain a second data packet. The sending unit 703 sends the second packet to the second device, so that the second device learns the network status parameter of the forwarding device.
Referring to fig. 8, in an embodiment of a controller according to the present application, the controller 800 includes:
a processing unit 801 configured to determine a communication path, where the communication path is used for a first device to communicate with a second device;
a sending unit 802, configured to send 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 is related to a network status parameter, the network status parameter is related to a forwarding device on the communication path, and the probe report is further used to determine a target path in the communication path.
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 an average bandwidth value of the forwarding device by:
Figure BDA0002671571400000201
the current value of the total number of bytes comprises a byte value of a first data packet, the historical value of the total number of bytes comprises a byte value or 0 of the last data packet, the current value of the time stamp of the output port comprises a time stamp when the first data packet is output from the port, and the historical value of the time stamp of the output port comprises a time stamp or 0 when the last data packet is output from the port.
In one possible design, the processing unit 801 is further configured to determine a target path in the communication paths according to the network index information;
in one possible design, the sending unit 802 is further configured to send the target path to the first device.
In this embodiment, operations performed by each unit in the controller are similar to those described in the embodiments shown in fig. 2 to 5, and are not described again here.
In this embodiment, the sending unit 802 sends a communication path to the first device, that is, sends a communication path that needs to measure the network status parameter to the first device, so as to reduce 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 is clear to those skilled in the art that, for convenience and brevity of description, the specific working processes of the above-described systems, apparatuses and units may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again.
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 with each other through a control channel, and the control channel is used for issuing a source routing path table and receiving and sending an INT detection packet, and the form of the control channel can be a Physical Function (PF) channel or a Virtual Function (VF) channel of a high-speed serial computer expansion bus (PCIe), or other special interfaces. After the host finishes Top K route selection, the path table is issued to the intelligent network card and stored in the path table, a service forwarding table or a flow table is also maintained on the network card according to different running services, and a source route space is reserved in the flow table for storing a source route forwarding label of the current flow besides maintaining the state information of the specific flow.
When a service message needs to be sent, the network card can check a source routing space in the flow table after searching the flow table, the space of the newly-built flow is invalid, the source routing path table needs to be further inquired to obtain a corresponding label, and the label is stored in the source routing space in the flow table, so that subsequent messages of the flow can directly obtain the source routing label from the flow table without secondary table searching, and the efficiency is improved. In addition, the path table can be independently refreshed at any time, the source routing space in the flow table is not affected, and the paths of the existing service flows can be ensured to be consistent all the time. The unloading mode enables the control surface and the service surface of the source route to be decoupled, only the network card configuration is used for association, the user and the service software do not perceive the existence of a routing mechanism of the source route, and if the forwarding of the source route is required to be closed, only the enabling configuration is required to be closed, the network card does not perform source route searching and packaging.
Because the source routing path table is only required to be inquired once when the stream is newly built, the requirement on the table searching performance is not high, only the cache part of the path table is arranged on the network card in the unloading frame, and the full amount of the path table is stored in the memory of the control surface of the host, thereby greatly reducing the requirement on the network card resource. The K equivalent paths to the same destination node are grouped in the path table, and when a new flow is established, the intelligent network card selects a new path in a polling and routing mode, so that the load balance among the K paths is realized. For traffic models with significant elephant and rat flows, weights may be considered in routing balancing. And the route selection of the K paths is balanced through the network card, the Top K paths are refreshed in real time by matching with the control surface, and the existing congested paths are actively avoided, so that the effective load balance of the whole network is realized.
After the forwarding device analyzes the source routing tag number in the data packet, the forwarding device directly forwards the data packet to the corresponding output port, and no table lookup operation is performed in the process, so that polar forwarding delay can be realized. The forwarding mode also greatly reduces the complexity of forwarding logic of the forwarding equipment, and switches at the edge and the center of the network do not need to be distinguished in configuration management.
Referring to fig. 10, a possible schematic diagram of a communication device 1000 according to the foregoing embodiments is provided for an embodiment of the present application, where the communication device may specifically be a first device, a forwarding device, a controller, or a second device in the foregoing embodiments, 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, and in the embodiment of the present application, the processor 1001 is used for controlling and processing an action of the communication device 1000.
Further, the processor 1001 may be a central processing unit, a general purpose processor, a digital signal processor, an application specific integrated circuit, a field programmable gate array or other programmable logic device, transistor logic, a hardware component, or any combination thereof. Which may implement or perform the various illustrative logical blocks, modules, and circuits described in connection with the disclosure. The processor may also be a combination of computing functions, e.g., comprising one or more microprocessors, a digital signal processor and a microprocessor, or the like. It is clear to those skilled in the art that, for convenience and brevity of description, the specific working processes of the above-described systems, apparatuses and units may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again.
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 fig. 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 the descriptions in each of the method embodiments corresponding to fig. 2 to fig. 5, which is not described in detail herein.
An embodiment of the present application further provides a computer-readable storage medium storing one or more computer-executable instructions, where the computer-executable instructions are executed by a processor, and the processor executes the method according to 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 fig. 5.
An embodiment of the present application further provides a computer-readable storage medium storing one or more computer-executable instructions, where the computer-executable instructions are executed by a processor, and the processor executes a method according to a possible implementation manner of a forwarding device in the foregoing embodiment, where the forwarding device may specifically be the forwarding device in the foregoing method embodiments corresponding to fig. 2 to fig. 5.
The present application further provides a computer-readable storage medium storing one or more computer-executable instructions, which, when executed by a processor, perform the method according to the possible implementation manner of the controller in the foregoing embodiments, where the controller may specifically be the controller in the foregoing method embodiments corresponding to fig. 2 to fig. 5.
An embodiment of the present application further provides a computer program product storing one or more computers, and when the computer program product is executed by the processor, the processor executes the method that may be implemented by the first device, where the first device may specifically be the first device in the method embodiments corresponding to fig. 2 to fig. 5.
An embodiment of the present application further provides a computer program product storing one or more computers, and when the computer program product is executed by the processor, the processor executes a method that may be implemented by the foregoing forwarding device, where the forwarding device may specifically be the forwarding device in the method embodiments corresponding to fig. 2 to fig. 5.
The embodiment of the present application further provides a computer program product storing one or more computers, and when the computer program product is executed by the processor, the processor executes the method that may be implemented by the controller, where the controller may specifically be the controller in the method embodiments corresponding to the foregoing fig. 2 to fig. 5.
An embodiment of the present application further provides a computer program product storing one or more computers, and when the computer program product is executed by the processor, the processor executes the method that may be implemented by the second device, where the second device may specifically be the second device in the method embodiments corresponding to fig. 2 to fig. 5.
The embodiment of the present application further provides a chip system, where the chip system includes a processor, and is configured to support the first device to implement the functions related to the possible implementation manners of the first device. In one possible design, the system-on-chip may further include a memory, the memory being configured to store 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 apparatus may specifically be the first apparatus in the method embodiment corresponding to fig. 2 to fig. 5.
An embodiment of the present application further provides a chip system, where the chip system includes a processor, and is configured to support a forwarding device to implement functions related to possible implementation manners of the forwarding device. In one possible design, the system-on-chip may further include a memory, which stores 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 the forwarding device in the method embodiments corresponding to fig. 2 to fig. 5.
The embodiment of the present application further provides a chip system, where the chip system includes a processor, and is configured to support a controller to implement functions related to possible implementation manners of the controller. In one possible design, the system-on-chip may further include a memory, which stores 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 the controller in the method embodiments corresponding to fig. 2 to fig. 5.
The embodiment of the present application further provides a chip system, where the chip system includes a processor, and is configured to support a second device to implement the functions related to the possible implementation manners of the second device. In one possible design, the system-on-chip may further include a memory, the memory being configured to store 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 apparatus may specifically be the second apparatus in the method embodiments corresponding to fig. 2 to fig. 5.
An embodiment of the present application further provides a network system architecture, where the network system architecture includes the communication device, and the communication device may specifically be the first device, and/or the forwarding device, and/or the controller and/or the second device in the method embodiments corresponding to fig. 2 to fig. 5.
In the several embodiments provided in the present application, it should be understood that the disclosed system, apparatus and method may be implemented in other manners. For example, the above-described apparatus embodiments are merely illustrative, and for example, the division of the units is only one logical division, and other divisions may be realized in practice, for example, a plurality of units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed 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 can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit. The integrated unit can be realized in a form of hardware, and can also be realized in a form of a software functional unit.
The integrated unit, if implemented in the form of a software functional unit and sold or used as a stand-alone product, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present application may be substantially implemented or contributed to by the prior art, or all or part of the technical solution may be embodied in a software product, which is stored in a storage medium and includes instructions for causing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the method according to the embodiments of the present application. And the aforementioned storage medium includes: various media capable of storing program codes, such as a usb disk, a removable hard disk, a read-only memory (ROM), a Random Access Memory (RAM), a magnetic disk, or an optical disk.

Claims (39)

1. A communication system, the communication system comprising: the system comprises a controller, a first device, a forwarding device and a second device;
the controller is configured to determine a communication path for the first device to communicate with the second device;
the controller is further configured to send the communication path to the first device;
the first device is configured to generate a first data packet according to the communication path, where the first data packet includes indication information, and the indication information is used to indicate the forwarding device to acquire a network state parameter;
the first device is further configured to send the first data packet to the forwarding device;
the forwarding device is used for acquiring network state parameters according to the indication information, and the network state parameters correspond to the forwarding devices one to one;
the forwarding device is further configured to add the network state parameter to the first data packet to obtain a second data packet;
the forwarding device is further configured to send the second packet to the second device;
the second device is configured to send a probe report to the controller according to the second data packet, where the probe report is used to determine a target path in the communication paths.
2. The communication system of claim 1, wherein the first packet further comprises a Source Routing (SR) tag, and wherein the SR tag is used for communication of a forwarding device on the communication path;
the forwarding device is specifically configured to add the network state parameter to the first data packet from which the SR tag is deleted to obtain the second data packet;
the forwarding device is specifically configured to send the second data packet to the second device according to the SR tag.
3. The communication system of claim 1,
and when the communication path includes a plurality of forwarding devices, the plurality of SR tags are multiple, where the forwarding devices are specifically configured to add the network state parameter to the first data packet in which the SR tag corresponding to the forwarding device is deleted to obtain the second data packet, and the second data packet includes an SR tag of a next hop forwarding device.
4. A communication system according to claim 2 or 3, wherein the SR tag comprises an egress port number of the forwarding device.
5. The communication system according to any of claims 1 to 4, wherein the probing report comprises the network status parameter;
the controller is further used for determining network index information according to the network state parameters;
the controller is further configured to send the network indicator information to the first device;
the first device is further configured to determine the target path in the communication paths according to the network index information.
6. The communication system according to any of claims 1 to 4, wherein the probing report comprises the network status parameter;
the controller is further used for determining network index information according to the network state parameters;
the controller is further configured to determine the target path of the communication paths according to the network index information;
the controller is further configured to send the target path to the first device.
7. The communication system according to any of claims 1 to 4, wherein the probing report comprises the network status parameter;
the controller is further configured to send the network status parameter to the first device;
the first device is further configured to determine network index information according to the network state parameter;
the first device is further configured to determine the target path in the communication paths according to the network index information.
8. The communication system according to any one of claims 5 to 7, wherein the network status parameter comprises an ingress port timestamp of the forwarding device and an egress port timestamp of the forwarding device, or the network status parameter comprises an egress port packet byte count of the forwarding device, and the network indicator information comprises at least one of an average bandwidth value, a transmission delay, or an error rate of the forwarding device.
9. The communication system according to any of claims 1 to 8,
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.
10. A method of communication, comprising:
a first device acquires a communication path, wherein the communication path is used for the first device to communicate with a second device;
the first device 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 devices on the communication path to acquire network state parameters;
the first device sends the first data packet to the forwarding device, and the first data packet is used for determining a target path in the communication paths.
11. The method of claim 10, further comprising:
the first equipment acquires network index information, and the network index information is obtained by processing the network state parameters;
the first device determines the target path of the communication paths according to the network index information.
12. The method of claim 11, wherein the first device obtains network metrics information, comprising:
and the first equipment receives the network index information sent by the controller.
13. The method of claim 11, wherein the first device obtains network metrics information, comprising:
the first equipment receives the network state parameters sent by a controller;
and the first equipment calculates the network state parameter to obtain the network indication information.
14. The method of claim 11, further comprising:
and the first equipment sends a service data packet to the second equipment by using the target path, wherein the service data packet is used for transmitting service information between the first equipment and the second equipment.
15. The method according to any one of claims 11 to 13, wherein the network status parameter comprises an ingress port timestamp of the forwarding device and an egress port timestamp of the forwarding device, or the network status parameter comprises an egress port packet byte count of the forwarding device, and the network indicator information comprises at least one of an average bandwidth value, a transmission delay, or an error rate of the forwarding device.
16. The method of claim 15, wherein the first device obtains network metrics information, comprising:
the first device calculates the network indicator information in the following manner:
Figure FDA0002671571390000021
wherein the current value of the total number of bytes comprises a byte value of the first packet, the historical value of the total number of bytes comprises a byte value or 0 of the last packet, the current value of the egress port timestamp comprises a timestamp of the first packet when it exits the port, and the historical value of the egress port timestamp comprises a timestamp or 0 of the last packet when it exits the port.
17. The method of claim 15, wherein the first device obtains network metrics information, comprising:
and the first equipment calculates the transmission time delay of the forwarding equipment, wherein the transmission time delay is the difference value of the first data packet input port time stamp and the first data packet output port time stamp.
18. The method according to any one of claims 10 to 17, further comprising:
the first device receives 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 between the first device and the third device.
19. The method according to any of claims 10 to 18, wherein the first data packet further comprises a source routing, SR, label, the SR label being used for communication by the forwarding device.
20. The method according to any of claims 10-19, wherein the SR tag comprises an egress port number of the forwarding device.
21. A method of communication, comprising:
the method comprises the steps that forwarding equipment receives a first data packet from first equipment, wherein the first data packet indicates information, the indication information is used for indicating the forwarding equipment to collect network state parameters, and the network state parameters are relevant to the forwarding equipment;
the forwarding equipment acquires the network state parameters according to the indication information to obtain a second data packet;
and the forwarding equipment sends the second data packet to second equipment.
22. The method of claim 21, wherein the first packet further comprises a Source Routing (SR) label, wherein the SR label corresponds to the forwarding device, and wherein the SR label is used for communication by the forwarding device;
the forwarding device acquires the network state parameter according to the indication information to obtain a second data packet, and the method comprises the following steps:
the forwarding equipment collects the network state parameters;
the forwarding device adds the network state parameter to the first data packet in which the SR label is deleted to obtain a second data packet;
the forwarding device sends the second packet to a second device, including:
and the forwarding equipment sends the second data packet to second equipment according to the SR label.
23. The method of claim 22, wherein the SR tag comprises an egress port number of the forwarding device.
24. The method according to any of claims 21 to 23, wherein the network status parameter comprises an ingress port timestamp of the forwarding device and an egress port timestamp of the forwarding device, or wherein the network status parameter comprises an egress port packet byte count of the forwarding device.
25. The method according to any of claims 21 to 23, wherein the first data packet and the second data packet are used for obtaining the network status parameter, and/or wherein the first data packet and the second data packet are used for transmitting traffic information between the first device and the second device.
26. A method of communication, comprising:
a controller determines a communication path for the first device to communicate with a second device;
the controller sending the communication path to the first device;
the controller receives a probe report sent by the second device, where the probe report is related to a network status parameter, the network status parameter is related to a forwarding device on the communication path, and the probe report is further used for determining a target path in the communication path.
27. The method of claim 26, wherein the probe report includes network metric information processed from the network status parameters.
28. The method of claim 26, wherein the probing report comprises the network status parameter.
29. The method according to any of claims 26 to 28, wherein the network status parameter comprises an ingress port timestamp of the forwarding device and an egress port timestamp of the forwarding device, or wherein the network status parameter comprises an egress port packet byte count of the forwarding device.
30. The method of claim 28, further comprising:
the controller calculates network index information;
the controller sends the network indicator information to the first device to enable the first device to determine a target path in the communication paths according to the network indicator information.
31. The method of claim 30, wherein the controller calculates network metrics information, comprising:
and the controller calculates the transmission delay of the forwarding equipment, wherein the transmission delay is the difference between the input port timestamp and the output port timestamp.
32. The method of claim 30, wherein the controller calculates network metrics information, comprising:
the controller calculates an average bandwidth value for the forwarding device.
33. The method of claim 32, wherein the controller calculates the average bandwidth value for the forwarding device by:
Figure FDA0002671571390000041
wherein the current value of the total number of bytes comprises a byte value of the first packet, the historical value of the total number of bytes comprises a byte value or 0 of the last packet, the current value of the egress port timestamp comprises a timestamp of the first packet when it exits the port, and the historical value of the egress port timestamp comprises a timestamp or 0 of the last packet when it exits the port.
34. The method of claim 27, further comprising:
the controller determines a target path in the communication paths according to the network index information;
the controller sends the target path to the first device.
35. A first device comprising a processor coupled with a memory, the memory for storing a computer program or instructions, the processor for executing the computer program or instructions in the memory such that the method of any of claims 10 to 20 is performed.
36. A forwarding device comprising a processor coupled with a memory for storing a computer program or instructions, the processor being configured to execute the computer program or instructions in the memory such that the method of any of claims 21 through 25 is performed.
37. A controller comprising a processor coupled to a memory for storing a computer program or instructions for executing the computer program or instructions in the memory such that the method of any of claims 26 to 34 is performed.
38. A communication system, comprising: first device according to claims 10 to 20, and/or forwarding device according to claims 21 to 25, and/or controller according to claims 26 to 34.
39. A computer storage medium having stored therein instructions that, when executed on a computer, cause the computer to perform the method of any of claims 10 to 20, or cause the computer to perform the method of any of claims 21 to 25, or cause the computer to perform the method of any of claims 26 to 34.
CN202010934858.0A 2020-09-08 2020-09-08 Communication system, data processing method and related equipment Active CN114157595B (en)

Priority Applications (3)

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
PCT/CN2021/114187 WO2022052800A1 (en) 2020-09-08 2021-08-24 Communication system, data processing method and related device

Applications Claiming Priority (1)

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

Related Child Applications (1)

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

Publications (2)

Publication Number Publication Date
CN114157595A true CN114157595A (en) 2022-03-08
CN114157595B CN114157595B (en) 2023-07-04

Family

ID=80462267

Family Applications (2)

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
CN202310849228.7A Pending CN116866249A (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
CN202310849228.7A Pending CN116866249A (en) 2020-09-08 2020-09-08 Communication system, data processing method and related equipment

Country Status (2)

Country Link
CN (2) CN114157595B (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

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101646218A (en) * 2009-08-14 2010-02-10 南京工业大学 Implementation method for multi-path source routing protocol based on GOP
US20120307629A1 (en) * 2011-06-01 2012-12-06 Cisco Technology, Inc. Source routing convergence in constrained computer networks
US20130223237A1 (en) * 2012-02-28 2013-08-29 Cisco Technology, Inc. Diverse paths using a single source route in computer networks
CN104780095A (en) * 2015-04-30 2015-07-15 杭州华三通信技术有限公司 Path detection method and device in SDN
CN105379188A (en) * 2013-07-26 2016-03-02 华为技术有限公司 Protection switched source routing
US9350654B1 (en) * 2013-07-18 2016-05-24 Juniper Networks, Inc. Microloop protection for multi-protocol label switching paths
US20160285750A1 (en) * 2015-03-23 2016-09-29 Brocade Communications Systems, Inc. Efficient topology failure detection in sdn networks
CN107211048A (en) * 2015-02-17 2017-09-26 华为技术有限公司 Use the service chaining of source routing
CN108092888A (en) * 2017-10-31 2018-05-29 华为技术有限公司 A kind of transmission method based on Overlay networks, gateway and Transmission system
CN108111432A (en) * 2017-12-27 2018-06-01 新华三技术有限公司 Message forwarding method and device
CN108199924A (en) * 2018-01-26 2018-06-22 北京邮电大学 The whole network traffic visualization method and device based on band network telemetering
CN108566336A (en) * 2018-07-24 2018-09-21 迈普通信技术股份有限公司 A kind of network path acquisition methods and equipment
CN110011915A (en) * 2018-01-04 2019-07-12 杭州达乎科技有限公司 SDN network framework, flow transmission control method and device based on SDN
CN110752993A (en) * 2019-10-24 2020-02-04 新华三信息安全技术有限公司 Message forwarding method and device

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016091311A1 (en) * 2014-12-11 2016-06-16 Telefonaktiebolaget Lm Ericsson (Publ) Methods and device for network tomography
CN104702468B (en) * 2015-03-05 2019-02-26 华为技术有限公司 Determine the method, apparatus and system of transmission path
CN110572293B (en) * 2018-06-06 2023-02-14 华为技术有限公司 Data message detection method, equipment and system
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

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101646218A (en) * 2009-08-14 2010-02-10 南京工业大学 Implementation method for multi-path source routing protocol based on GOP
US20120307629A1 (en) * 2011-06-01 2012-12-06 Cisco Technology, Inc. Source routing convergence in constrained computer networks
US20130223237A1 (en) * 2012-02-28 2013-08-29 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
CN105379188A (en) * 2013-07-26 2016-03-02 华为技术有限公司 Protection switched source routing
CN107211048A (en) * 2015-02-17 2017-09-26 华为技术有限公司 Use the service chaining of source routing
US20160285750A1 (en) * 2015-03-23 2016-09-29 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
CN108092888A (en) * 2017-10-31 2018-05-29 华为技术有限公司 A kind of transmission method based on Overlay networks, gateway and Transmission system
CN108111432A (en) * 2017-12-27 2018-06-01 新华三技术有限公司 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
CN108199924A (en) * 2018-01-26 2018-06-22 北京邮电大学 The whole network traffic visualization method and device based on band network telemetering
CN108566336A (en) * 2018-07-24 2018-09-21 迈普通信技术股份有限公司 A kind of network path acquisition methods and equipment
CN110752993A (en) * 2019-10-24 2020-02-04 新华三信息安全技术有限公司 Message forwarding method and device

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HOON OH;MINH DO NGOC: "Group Source Routing Protocol with Selective Forwarding for Mobile Ad Hoc Networks", 《WFFCP》 *
黄敏;刘琼;奚建清;: "一种基于生存时间的Ad hoc网络不相交多路径路由算法", 计算机应用研究, no. 03 *

Also Published As

Publication number Publication date
CN114157595B (en) 2023-07-04
WO2022052800A1 (en) 2022-03-17
CN116866249A (en) 2023-10-10

Similar Documents

Publication Publication Date Title
US11533258B2 (en) In-situ passive performance measurement in a network environment
US20230171332A1 (en) Packet Processing Method, Network Node, and System
US11228515B2 (en) Data packet detection method, device, and system
DK2730059T3 (en) Oam open flow driven by controller
US9154394B2 (en) Dynamic latency-based rerouting
EP3735762B1 (en) In-band telemetry with limited extra bytes
CN106031094B (en) Accurate measurement of distributed counters
US11272396B2 (en) Frame aggregation method, network setting frame sending method, and device
WO2020086160A9 (en) Scalable distributed end-to-end performance delay measurement for segment routing policies
US20220078106A1 (en) Packet Measurement Method, Device, and System
US20220407791A1 (en) Network performance detection method and apparatus, and network device
US9906437B2 (en) Communication system, control apparatus, control method and program
CN101789949B (en) Method and router equipment for realizing load sharing
CN114157595B (en) Communication system, data processing method and related equipment
US20230318970A1 (en) Packet Processing Method and Apparatus
CN113132179A (en) Measuring packet residence and propagation times
CN113595809B (en) Flow monitoring method, related equipment and system
US20170288994A1 (en) Packet transfer device and method for setting counter
CN114745227A (en) Power service network slice time delay calculation method and device based on Flexe and SPN technologies
CN112152867B (en) Flow matrix measuring method, system and storage medium
CN115225550B (en) On-demand whole network telemetry device based on clustering path planning algorithm
EP4243368A1 (en) Data obtaining method and apparatus, device, and storage medium
US20230009602A1 (en) Path Assurance in Shared Transport
WO2023206165A1 (en) Multicast data message sending method and apparatus, and device and storage medium
CN108075939B (en) Network quality detection system and method

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
GR01 Patent grant
GR01 Patent grant