CN110336759B - RDMA (remote direct memory Access) -based protocol message forwarding method and device - Google Patents
RDMA (remote direct memory Access) -based protocol message forwarding method and device Download PDFInfo
- Publication number
- CN110336759B CN110336759B CN201910260947.9A CN201910260947A CN110336759B CN 110336759 B CN110336759 B CN 110336759B CN 201910260947 A CN201910260947 A CN 201910260947A CN 110336759 B CN110336759 B CN 110336759B
- Authority
- CN
- China
- Prior art keywords
- service type
- queue
- initial
- protocol
- forwarded
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/50—Overload detection or protection within a single switching element
- H04L49/501—Overload detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/50—Overload detection or protection within a single switching element
- H04L49/505—Corrective measures
- H04L49/506—Backpressure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
- H04L49/555—Error detection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
The invention discloses a protocol message forwarding method and a device based on RDMA, wherein the method comprises the following steps: determining a first service type of a received protocol message to be forwarded; determining a first initial inlet queue corresponding to the first service type according to the corresponding relation between the service type and the initial inlet queue; if the first initial inlet queue is determined to be congested, re-detecting the bandwidth load of a virtual channel between each initial inlet queue and the corresponding outlet queue, and then selecting a back-pressure inlet queue from each initial inlet queue based on the re-detected bandwidth load; and adding the protocol message to be forwarded to the back pressure inlet queue. The scheme can ensure that the protocol message to be forwarded can be normally forwarded, and further ensure that the data center is normally communicated.
Description
Technical Field
The present invention relates to the field of communications technologies, and in particular, to a method and an apparatus for forwarding a protocol packet based on Remote Direct data Access (RDMA).
Background
The data volume generated by the data stream of the data center is in the T level every day when the data stream enters the big data era, for example, the volume of trading of a new york stock is 1TB every day, the volume of data of FaceBook per billion photos is 1PB, the volume of data of Tencent every day is 300TB, and the like. Because the amount of data generated by a data center per day is very large, in order to meet the requirements of high bandwidth and low latency, the data center usually employs RDMA. RDMA transfers data directly to the server's memory over a network, quickly moving data from one system to a remote system memory without any impact on the operating system. It eliminates the overhead of external memory copy and context switch, thus freeing up memory bandwidth and Central Processing Unit (CPU) and improving application system performance.
When the network equipment of the data center forwards the messages, the received messages are firstly distributed to each inlet queue, each inlet queue is connected with the corresponding outlet queue through a virtual channel, the priority of each inlet queue is different, and then each outlet queue is scheduled to be forwarded through the interface of the network equipment. When the data center adopts the RDMA technology, the traffic between the network device and the server is very large, the virtual channels between the ingress queues and the egress queues in the network device are very easy to be congested to cause packet loss, once the packet loss occurs in the protocol packet, the normal communication of the data center is directly affected, and how to control the congestion is the key for ensuring the normal communication of the data center.
Disclosure of Invention
The embodiment of the invention provides a protocol message forwarding method and device based on RDMA (remote direct memory Access), which are used for solving the problem that the normal communication of a data center is directly influenced by the occurrence of packet loss of a protocol message in the prior art.
According to the embodiment of the invention, the RDMA-based protocol message forwarding method is applied to RDMA-based network equipment, and is characterized by comprising the following steps:
determining a first service type of a received protocol message to be forwarded;
determining a first initial inlet queue corresponding to the first service type according to the corresponding relation between the service type and the initial inlet queue;
if the first initial inlet queue is determined to be congested, re-detecting the bandwidth load of a virtual channel between each initial inlet queue and the corresponding outlet queue, and then selecting a back-pressure inlet queue from each initial inlet queue based on the re-detected bandwidth load;
and adding the protocol message to be forwarded to the back pressure inlet queue for forwarding.
Specifically, after re-detecting the bandwidth load of the virtual channel between each initial ingress queue and the corresponding egress queue, selecting a back-pressure ingress queue from each initial ingress queue, specifically including:
detecting the bandwidth load of a virtual channel between each initial ingress queue and the corresponding egress queue through keep-alive detection;
comparing the obtained bandwidth loads;
and selecting an initial entrance queue corresponding to the virtual channel with the minimum bandwidth load to obtain the back pressure entrance queue.
Specifically, still include:
determining the initial identifiers and the termination identifiers of all protocol messages of the first service type and the sequencing identifiers of the protocol messages to be forwarded in all protocol messages of the first service type;
and adding the first service type, the initial identifier, the termination identifier and the sequencing identifier in the message header of the protocol message to be forwarded.
Optionally, the method further includes:
counting the packet loss rate of the protocol message of each service type according to the service type, the initial identifier, the termination identifier and the sequencing identifier carried by the protocol message forwarded by each interface of the network equipment;
comparing the packet loss rate of the protocol message of each service type with a set threshold value respectively;
determining that packet loss occurs in the protocol message of the second service type with the packet loss rate larger than the set threshold;
determining a second initial inlet queue corresponding to the second service type according to the corresponding relation;
determining that the second initial ingress queue is congested.
Specifically, the method for counting the packet loss rate of the protocol packet of each service type according to the service type, the start identifier, the end identifier and the sequencing identifier carried by the protocol packet forwarded by each interface of the network device specifically includes:
for each traffic type, performing:
acquiring a sequencing identifier of a lost protocol message of a current service type;
counting a first number of the lost protocol messages of the current service type;
calculating a second number of all protocol messages of the current service type according to the initial identifications and the termination identifications of all protocol messages of the current service type;
and taking the ratio of the first quantity to the second quantity as the packet loss rate of the protocol packet of the current service type.
According to an embodiment of the present invention, there is also provided an RDMA-based protocol packet forwarding apparatus, applied in an RDMA-based network device, the apparatus including:
the first determining module is used for determining a first service type of the received protocol message to be forwarded;
a second determining module, configured to determine, according to a correspondence between a service type and an initial ingress queue, a first initial ingress queue corresponding to the first service type;
a selecting module, configured to, if it is determined that the first initial ingress queue is congested, re-detect a bandwidth load of a virtual channel between each initial ingress queue and a corresponding egress queue, and select a backpressure ingress queue from each initial ingress queue based on the re-detected bandwidth load;
and the adding module is used for adding the protocol message to be forwarded to the back pressure inlet queue for forwarding.
Specifically, the selecting module is configured to select, after re-detecting a bandwidth load of a virtual channel between each initial ingress queue and a corresponding egress queue, a back-pressure ingress queue from each initial ingress queue, and specifically is configured to:
detecting the bandwidth load of a virtual channel between each initial ingress queue and the corresponding egress queue through keep-alive detection;
comparing the obtained bandwidth loads;
and selecting an initial entrance queue corresponding to the virtual channel with the minimum bandwidth load to obtain the back pressure entrance queue.
Optionally, the first determining module is further configured to determine start identifiers and end identifiers of all protocol packets of the first service type, and sequence identifiers of the protocol packets to be forwarded in all protocol packets of the first service type;
the adding module is further configured to add the first service type, the start identifier, the end identifier, and the sequencing identifier to a packet header of the protocol packet to be forwarded.
Optionally, the apparatus further comprises:
a counting module, configured to count packet loss rates of protocol packets of each service type according to service types, start identifiers, end identifiers, and sequencing identifiers carried by protocol packets forwarded by each interface of the network device;
the comparison module is used for comparing the packet loss rate of the protocol message of each service type with a set threshold value respectively;
a third determining module, configured to determine that packet loss occurs in a protocol packet of the second service type with a packet loss rate greater than the set threshold;
a fourth determining module, configured to determine, according to the correspondence, a second initial ingress queue corresponding to the second service type; determining that the second initial ingress queue is congested.
Specifically, the statistics module is configured to count a packet loss rate of a protocol packet of each service type according to a service type, an initial identifier, a termination identifier, and a sequencing identifier carried by the protocol packet forwarded by each interface of the network device, and is specifically configured to:
for each traffic type, performing:
acquiring a sequencing identifier of a lost protocol message of a current service type;
counting a first number of the lost protocol messages of the current service type;
calculating a second number of all protocol messages of the current service type according to the initial identifications and the termination identifications of all protocol messages of the current service type;
and taking the ratio of the first quantity to the second quantity as the packet loss rate of the protocol packet of the current service type.
The invention has the following beneficial effects:
the embodiment of the invention provides a protocol message forwarding method and a device based on RDMA (remote direct memory Access), which are used for determining a first service type of a received protocol message to be forwarded; determining a first initial inlet queue corresponding to the first service type according to the corresponding relation between the service type and the initial inlet queue; if the first initial inlet queue is determined to be congested, re-detecting the bandwidth load of a virtual channel between each initial inlet queue and the corresponding outlet queue, and then selecting a back-pressure inlet queue from each initial inlet queue based on the re-detected bandwidth load; and adding the protocol message to be forwarded to the back pressure inlet queue. According to the scheme, when the protocol message to be forwarded is forwarded, after the first initial inlet queue corresponding to the protocol message to be forwarded is determined, whether the first initial inlet queue is congested or not is further determined, if the congestion is detected again, the back-pressure inlet queue is selected from the initial inlet queues, the message to be forwarded is added to the back-pressure inlet queue for forwarding, and therefore the protocol message to be forwarded can be forwarded normally, and normal communication of a data center is further guaranteed.
Drawings
Fig. 1 is a flowchart of a RDMA-based protocol packet forwarding method according to an embodiment of the present invention;
fig. 2 is a flowchart for determining whether each initial ingress queue is congested according to a service type, a start identifier, a stop identifier, and a sequencing identifier carried in a protocol packet in the embodiment of the present invention;
fig. 3 is a schematic structural diagram of an RDMA-based protocol packet forwarding apparatus according to an embodiment of the present invention;
fig. 4 is a schematic structural diagram of another RDMA-based protocol packet forwarding apparatus according to an embodiment of the present invention.
Detailed Description
Aiming at the problem that the normal communication of a data center is directly influenced by the occurrence of packet loss of a protocol message in the prior art, the embodiment of the invention provides an RDMA-based protocol message forwarding method which is applied to RDMA-based network equipment, the flow of the method is shown in figure 1, and the execution steps are as follows:
s11: and determining a first service type of the received protocol message to be forwarded.
Generally, Protocol packets all have corresponding service types, such as Virtual Router Redundancy Protocol (VRRP) packets, Address Resolution Protocol (ARP) packets, Dynamic Host Configuration Protocol (DHCP) packets, well-known multicast routing Protocol packets, and so on, and therefore, when receiving a Protocol packet to be forwarded, first, a service type of the Protocol packet to be forwarded needs to be determined, which may be defined as a first service type.
S12: and determining a first initial entrance queue corresponding to the first service type according to the corresponding relation between the service type and the initial entrance queue.
The corresponding relationship between the service type and the initial ingress queue is generally preset, so that after receiving the protocol packet to be forwarded, the initial ingress queue to which the protocol packet to be forwarded is added can be determined according to the corresponding relationship, and the determined initial ingress queue can position the first initial ingress queue.
S13: and if the congestion of the first initial inlet queue is determined, re-detecting the bandwidth load of the virtual channel between each initial inlet queue and the corresponding outlet queue, and then selecting the back-pressure inlet queue from each initial inlet queue based on the re-detected bandwidth load.
After the first initial ingress queue is determined, because the protocol packet is a protocol packet to be forwarded, in order to ensure that the protocol packet to be forwarded is forwarded normally, it is further necessary to further determine whether the first initial ingress queue is congested, if the first initial ingress queue is congested, the ingress queue needs to be re-determined, an initial ingress queue may be selected from each initial ingress queue by re-detecting a bandwidth load of a virtual channel between each initial ingress queue and a corresponding egress queue, and the selected initial ingress queue may be defined as a back-pressure ingress queue.
S14: and adding the protocol message to be forwarded to the back pressure inlet queue for forwarding.
The back-pressure ingress queue determined in S13 may be used to forward the protocol packet to be forwarded.
According to the scheme, when the protocol message to be forwarded is forwarded, after the first initial inlet queue corresponding to the protocol message to be forwarded is determined, whether the first initial inlet queue is congested or not is further determined, if the congestion is detected again, the back-pressure inlet queue is selected from the initial inlet queues, the message to be forwarded is added to the back-pressure inlet queue for forwarding, and therefore the protocol message to be forwarded can be forwarded normally, and normal communication of a data center is further guaranteed.
Specifically, after re-detecting the bandwidth load of the virtual channel between each initial ingress queue and the corresponding egress queue in S13, selecting a back-pressure ingress queue from each initial ingress queue, where the implementation process specifically includes:
detecting the bandwidth load of a virtual channel between each initial inlet queue and the corresponding outlet queue through keep-alive detection;
comparing the obtained bandwidth loads;
and selecting an initial entrance queue corresponding to the virtual channel with the minimum bandwidth load to obtain a back pressure entrance queue.
Generally, the virtual channels between each initial ingress queue and the corresponding egress queue are subjected to keep-alive detection, and therefore, in this embodiment, bandwidth loads of the virtual channels between each initial ingress queue and the corresponding egress queue may be detected by means of the keep-alive detection, and then, based on each detected bandwidth load, the initial ingress queue corresponding to the virtual channel with the smallest bandwidth load is selected from the detected bandwidth loads, where the smallest bandwidth load indicates that the initial ingress queue is the most idle, so as to obtain a backpressure ingress queue, so as to ensure that the protocol packet to be forwarded can be normally forwarded.
Optionally, the RDMA-based protocol packet forwarding method further includes:
determining initial identifiers and termination identifiers of all protocol messages of a first service type and sequencing identifiers of the protocol messages to be forwarded in all protocol messages of the first service type;
and adding a first service type, an initial identifier, a termination identifier and a sequencing identifier at the head of the protocol message to be forwarded.
Usually, the number of all protocol packets of a service type is determined, and therefore, the start identifier and the end identifier of all protocol packets of the first service type may be determined, for example, the start identifier may be 1, and the end identifier may be 100, and also, the ordering identifier of all protocol packets of the first service type in the protocol packet to be forwarded may be determined, and the ordering identifier may be any value between (1, 100), and then the first service type, the start identifier, the end identifier, and the ordering identifier may be added to the packet header of the protocol packet to be forwarded.
Accordingly, an optional implementation manner may determine whether each initial ingress queue is congested according to a service type, a start identifier, a stop identifier, and a sequencing identifier carried in a protocol packet, as shown in fig. 2, specifically including:
s21: and counting the packet loss rate of the protocol message of each service type according to the service type, the initial identifier, the termination identifier and the sequencing identifier carried by the protocol message forwarded by each interface of the network equipment.
The above describes that the protocol packet to be forwarded can carry information of the service type, the start identifier, the stop identifier, and the sequencing identifier, and then after the protocol packet to be forwarded is forwarded, the packet loss rate of the protocol packet of each service type can be counted based on the information, and specifically, the statistics can be carried out according to the service type, the start identifier, the stop identifier, and the sequencing identifier carried by the protocol packet forwarded by each interface of the network device.
S22: and comparing the packet loss rate of the protocol message of each service type with a set threshold value respectively.
A set threshold value may be set in advance according to actual needs, and then the packet loss rate of the protocol packet of each service type is compared with the set threshold value.
S23: and determining that packet loss occurs in the protocol message of the second service type with the packet loss rate larger than the set threshold value.
The protocol packet of the service type with the packet loss rate greater than the set threshold is defined as a protocol packet of a second service type, and it can be determined that the protocol packet of the second service type is lost.
S24: and determining a second initial inlet queue corresponding to the second service type according to the corresponding relation.
According to the previous corresponding relation, an initial ingress queue corresponding to the second service type can be further determined and defined as a second initial ingress queue.
S25: a second initial ingress queue congestion is determined.
In an alternative embodiment, a congestion flag may be added to the second initial ingress queue in the corresponding relationship, so as to facilitate the subsequent direct identification of the congested initial ingress queue.
Through the steps of S21-S25, whether each initial ingress queue is congested can be determined according to the service type, the start identifier, the stop identifier, and the sequencing identifier carried in the protocol packet, so that whether the initial ingress queue is congested can be directly determined after the initial ingress queue of the protocol packet to be forwarded is determined.
Specifically, in the above S21, the packet loss rate of the protocol packet of each service type is counted according to the service type, the start identifier, the end identifier, and the sequencing identifier carried in the protocol packet forwarded by each interface of the network device, and the implementation process specifically includes:
for each traffic type, performing:
acquiring a sequencing identifier of a lost protocol message of a current service type;
counting a first number of lost protocol messages of the current service type;
calculating the second number of all protocol messages of the current service type according to the initial identifiers and the termination identifiers of all protocol messages of the current service type;
and taking the ratio of the first quantity to the second quantity as the packet loss rate of the protocol message of the current service type.
According to the current retransmission mechanism, after the network device sends out a message, the opposite end can feed back the message which is not received, and the network device can determine the message which is lost and retransmit the message based on the message which is not received. In this embodiment, since the previously forwarded protocol packet may carry the service type, the start identifier, the end identifier, and the sorting identifier, the network device may directly obtain the sorting identifier of the dropped protocol packet of the current service type, so as to count the number of the dropped protocol packet of the current service type, where the number may be defined as a first number, and the first number is assumed to be 20; calculating the number of all protocol messages of the current service type based on the initial identifiers and the termination identifiers of all protocol messages of the current service type, and defining the number as a second number, wherein the second number is 100 if the initial identifiers are 1 and the termination identifiers are 100; taking the ratio of the first number to the second number as the packet loss rate of the protocol packet of the current service type, where the ratio of the first number 20 to the second number 100 is 0.2 before, may be taken as the packet loss rate of the protocol packet of the current service type.
The RDMA-based protocol packet forwarding method is introduced above, and based on the same inventive concept, an embodiment of the present invention provides an RDMA-based protocol packet forwarding apparatus, which is applied to an RDMA-based network device, and a structure of the apparatus is shown in fig. 3, and includes:
a first determining module 31, configured to determine a first service type of a received protocol packet to be forwarded;
a second determining module 32, configured to determine, according to a correspondence between the service type and the initial ingress queue, a first initial ingress queue corresponding to the first service type;
a selecting module 33, configured to, if it is determined that the first initial ingress queue is congested, re-detect bandwidth loads of virtual channels between each initial ingress queue and a corresponding egress queue, and then select a backpressure ingress queue from each initial ingress queue based on the re-detected bandwidth loads;
and the adding module 34 is configured to add the protocol packet to be forwarded to the back-pressure entry queue for forwarding.
According to the scheme, when the protocol message to be forwarded is forwarded, after the first initial inlet queue corresponding to the protocol message to be forwarded is determined, whether the first initial inlet queue is congested or not is further determined, if the congestion is detected again, the back-pressure inlet queue is selected from the initial inlet queues, the message to be forwarded is added to the back-pressure inlet queue for forwarding, and therefore the protocol message to be forwarded can be forwarded normally, and normal communication of a data center is further guaranteed.
Specifically, the selecting module 33 is configured to select the backpressure ingress queues from each initial ingress queue after re-detecting the bandwidth load of the virtual channel between each initial ingress queue and the corresponding egress queue, and specifically configured to:
detecting the bandwidth load of a virtual channel between each initial inlet queue and the corresponding outlet queue through keep-alive detection;
comparing the obtained bandwidth loads;
and selecting an initial entrance queue corresponding to the virtual channel with the minimum bandwidth load to obtain a back pressure entrance queue.
Optionally, the first determining module 31 is further configured to determine start identifiers and end identifiers of all protocol packets of the first service type, and sequence identifiers of the protocol packets to be forwarded in all protocol packets of the first service type;
the adding module 34 is further configured to add a first service type, an initial identifier, a termination identifier, and a sequencing identifier to a header of the protocol packet to be forwarded.
Optionally, an embodiment of the present invention provides another RDMA-based protocol packet forwarding apparatus, as shown in fig. 4, on the basis of the apparatus shown in fig. 3, further including:
the statistical module 35 is configured to perform statistics on packet loss rates of protocol packets of each service type according to service types, start identifiers, end identifiers, and sequencing identifiers carried by protocol packets forwarded by each interface of the network device;
a comparing module 36, configured to compare packet loss rates of protocol packets of each service type with a set threshold respectively;
a third determining module 37, configured to determine that a protocol packet of the second service type with a packet loss rate greater than a set threshold has a packet loss;
a fourth determining module 38, configured to determine, according to the corresponding relationship, a second initial ingress queue corresponding to the second service type; a second initial ingress queue congestion is determined.
Specifically, the counting module 35 is configured to count the packet loss rate of the protocol packet of each service type according to the service type, the start identifier, the end identifier, and the sequencing identifier carried by the protocol packet forwarded by each interface of the network device, and is specifically configured to:
for each traffic type, performing:
acquiring a sequencing identifier of a lost protocol message of a current service type;
counting a first number of lost protocol messages of the current service type;
calculating the second number of all protocol messages of the current service type according to the initial identifiers and the termination identifiers of all protocol messages of the current service type;
and taking the ratio of the first quantity to the second quantity as the packet loss rate of the protocol message of the current service type.
The present invention is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
While alternative embodiments of the present invention have been described, additional variations and modifications in those embodiments may occur to those skilled in the art once they learn of the basic inventive concepts. It is therefore intended that the following appended claims be interpreted as including alternative embodiments and all such alterations and modifications as fall within the scope of the invention.
It will be apparent to those skilled in the art that various modifications and variations can be made in the embodiments of the present invention without departing from the spirit or scope of the embodiments of the invention. Thus, if such modifications and variations of the embodiments of the present invention fall within the scope of the claims of the present invention and their equivalents, the present invention is also intended to encompass such modifications and variations.
Claims (8)
1. A protocol message forwarding method based on remote direct data access (RDMA) is applied to a network device based on the RDMA, and is characterized by comprising the following steps:
determining a first service type of a received protocol message to be forwarded;
determining a first initial inlet queue corresponding to the first service type according to the corresponding relation between the service type and the initial inlet queue;
if the first initial inlet queue is determined to be congested, re-detecting the bandwidth load of a virtual channel between each initial inlet queue and the corresponding outlet queue, and then selecting a back-pressure inlet queue from each initial inlet queue based on the re-detected bandwidth load;
adding the protocol message to be forwarded to the back pressure inlet queue for forwarding;
after re-detecting the bandwidth load of the virtual channel between each initial ingress queue and the corresponding egress queue, selecting a back-pressure ingress queue from each initial ingress queue based on the re-detected bandwidth load, specifically including:
detecting the bandwidth load of a virtual channel between each initial ingress queue and the corresponding egress queue through keep-alive detection;
comparing the obtained bandwidth loads;
and selecting an initial entrance queue corresponding to the virtual channel with the minimum bandwidth load to obtain the back pressure entrance queue.
2. The method of claim 1, further comprising:
determining the initial identifiers and the termination identifiers of all protocol messages of the first service type and the sequencing identifiers of the protocol messages to be forwarded in all protocol messages of the first service type;
and adding the first service type, the initial identifier, the termination identifier and the sequencing identifier in the message header of the protocol message to be forwarded.
3. The method of claim 2, further comprising:
counting the packet loss rate of the protocol message of each service type according to the service type, the initial identifier, the termination identifier and the sequencing identifier carried by the protocol message forwarded by each interface of the network equipment;
comparing the packet loss rate of the protocol message of each service type with a set threshold value respectively;
determining that packet loss occurs in the protocol message of the second service type with the packet loss rate larger than the set threshold;
determining a second initial inlet queue corresponding to the second service type according to the corresponding relation;
determining that the second initial ingress queue is congested.
4. The method according to claim 3, wherein counting packet loss rates of the protocol packets of the respective service types according to the service types, the start identifiers, the end identifiers, and the sequencing identifiers carried by the protocol packets forwarded by the respective interfaces of the network device specifically includes:
for each traffic type, performing:
acquiring a sequencing identifier of a lost protocol message of a current service type;
counting a first number of the lost protocol messages of the current service type;
calculating a second number of all protocol messages of the current service type according to the initial identifications and the termination identifications of all protocol messages of the current service type;
and taking the ratio of the first quantity to the second quantity as the packet loss rate of the protocol packet of the current service type.
5. An RDMA-based protocol packet forwarding apparatus for use in an RDMA-based network device, the apparatus comprising:
the first determining module is used for determining a first service type of the received protocol message to be forwarded;
a second determining module, configured to determine, according to a correspondence between a service type and an initial ingress queue, a first initial ingress queue corresponding to the first service type;
a selecting module, configured to, if it is determined that the first initial ingress queue is congested, re-detect a bandwidth load of a virtual channel between each initial ingress queue and a corresponding egress queue, and select a backpressure ingress queue from each initial ingress queue based on the re-detected bandwidth load;
the adding module is used for adding the protocol message to be forwarded to the back pressure inlet queue for forwarding; the selecting module is configured to, after re-detecting a bandwidth load of a virtual channel between each initial ingress queue and a corresponding egress queue, select a back-pressure ingress queue from each initial ingress queue based on the re-detected bandwidth load, and specifically configured to:
detecting the bandwidth load of a virtual channel between each initial ingress queue and the corresponding egress queue through keep-alive detection;
comparing the obtained bandwidth loads;
and selecting an initial entrance queue corresponding to the virtual channel with the minimum bandwidth load to obtain the back pressure entrance queue.
6. The apparatus according to claim 5, wherein the first determining module is further configured to determine start identifiers and end identifiers of all protocol packets of the first service type, and ordering identifiers of the protocol packets to be forwarded in all protocol packets of the first service type;
the adding module is further configured to add the first service type, the start identifier, the end identifier, and the sequencing identifier to a packet header of the protocol packet to be forwarded.
7. The apparatus of claim 6, wherein the apparatus further comprises:
a counting module, configured to count packet loss rates of protocol packets of each service type according to service types, start identifiers, end identifiers, and sequencing identifiers carried by protocol packets forwarded by each interface of the network device;
the comparison module is used for comparing the packet loss rate of the protocol message of each service type with a set threshold value respectively;
a third determining module, configured to determine that packet loss occurs in a protocol packet of the second service type with a packet loss rate greater than the set threshold;
a fourth determining module, configured to determine, according to the correspondence, a second initial ingress queue corresponding to the second service type; determining that the second initial ingress queue is congested.
8. The apparatus of claim 7, wherein the statistics module is configured to perform statistics on packet loss rates of protocol packets of each service type according to service types, start identifiers, termination identifiers, and sequencing identifiers carried by protocol packets forwarded by each interface of the network device, and is specifically configured to:
for each traffic type, performing:
acquiring a sequencing identifier of a lost protocol message of a current service type;
counting a first number of the lost protocol messages of the current service type;
calculating a second number of all protocol messages of the current service type according to the initial identifications and the termination identifications of all protocol messages of the current service type;
and taking the ratio of the first quantity to the second quantity as the packet loss rate of the protocol packet of the current service type.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2018116048475 | 2018-12-26 | ||
CN201811604847 | 2018-12-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110336759A CN110336759A (en) | 2019-10-15 |
CN110336759B true CN110336759B (en) | 2022-04-26 |
Family
ID=68139261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910260947.9A Active CN110336759B (en) | 2018-12-26 | 2019-04-02 | RDMA (remote direct memory Access) -based protocol message forwarding method and device |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110336759B (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118120209A (en) * | 2022-09-29 | 2024-05-31 | 新华三技术有限公司 | Data processing method, device, network equipment and storage medium |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075963A (en) * | 2007-07-02 | 2007-11-21 | 中兴通讯股份有限公司 | Method and device for controlling dynamically based on network QoS |
CN102325092A (en) * | 2011-10-27 | 2012-01-18 | 杭州华三通信技术有限公司 | Message processing method and equipment |
CN104756451A (en) * | 2012-10-30 | 2015-07-01 | 瑞典爱立信有限公司 | A method for dynamic load balancing of network flows on lag interfaces |
CN106953742A (en) * | 2017-02-16 | 2017-07-14 | 广州海格通信集团股份有限公司 | A kind of wireless isomer network bandwidth safeguard method based on SDN |
CN106982169A (en) * | 2017-03-30 | 2017-07-25 | 新华三技术有限公司 | Message forwarding method and device |
CN107005483A (en) * | 2014-12-27 | 2017-08-01 | 英特尔公司 | Technology for high performance network structure safety |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10187310B2 (en) * | 2015-10-13 | 2019-01-22 | Oracle International Corporation | System and method for efficient network isolation and load balancing in a multi-tenant cluster environment |
-
2019
- 2019-04-02 CN CN201910260947.9A patent/CN110336759B/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075963A (en) * | 2007-07-02 | 2007-11-21 | 中兴通讯股份有限公司 | Method and device for controlling dynamically based on network QoS |
CN102325092A (en) * | 2011-10-27 | 2012-01-18 | 杭州华三通信技术有限公司 | Message processing method and equipment |
CN104756451A (en) * | 2012-10-30 | 2015-07-01 | 瑞典爱立信有限公司 | A method for dynamic load balancing of network flows on lag interfaces |
CN107005483A (en) * | 2014-12-27 | 2017-08-01 | 英特尔公司 | Technology for high performance network structure safety |
CN106953742A (en) * | 2017-02-16 | 2017-07-14 | 广州海格通信集团股份有限公司 | A kind of wireless isomer network bandwidth safeguard method based on SDN |
CN106982169A (en) * | 2017-03-30 | 2017-07-25 | 新华三技术有限公司 | Message forwarding method and device |
Also Published As
Publication number | Publication date |
---|---|
CN110336759A (en) | 2019-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109412964B (en) | Message control method and network device | |
US9762497B2 (en) | System, method and apparatus for network congestion management and network resource isolation | |
US11032205B2 (en) | Flow control method and switching device | |
CN108432194B (en) | Congestion processing method, host and system | |
US7860009B2 (en) | Providing backpressure flow control to specific traffic flows | |
CN106330742B (en) | Flow control method and network controller | |
US20210006502A1 (en) | Flow control method and apparatus | |
WO2020244422A1 (en) | Queue congestion control method, apparatus, device and storage medium | |
CN107566293B (en) | Method and device for limiting message speed | |
CN108243117B (en) | Flow monitoring method and device and electronic equipment | |
CN114157609B (en) | PFC deadlock detection method and device | |
CN112104564A (en) | Load sharing method and equipment | |
US20150195209A1 (en) | Congestion Notification in a Network | |
CN110336759B (en) | RDMA (remote direct memory Access) -based protocol message forwarding method and device | |
CN111262792B (en) | Message forwarding method, device, network equipment and storage medium | |
CN111404839B (en) | Message processing method and device | |
CN111431812B (en) | Message forwarding control method and device | |
US9537764B2 (en) | Communication apparatus, control apparatus, communication system, communication method, method for controlling communication apparatus, and program | |
CN108322402B (en) | Message processing method, device and system | |
CN115037688A (en) | Flow congestion control method and device | |
JP2005102104A (en) | Ip multicast delivery system, its rate controlling method, its program and recording medium | |
CN113518046A (en) | Message forwarding method and frame type switching equipment | |
CN116032852B (en) | Flow control method, device, system, equipment and storage medium based on session | |
CN109347678B (en) | Method and device for determining routing loop | |
WO2023207461A1 (en) | Congestion flow identification method and apparatus, device, and computer readable storage medium |
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 |