CN116686332A - Data exchange control method and device - Google Patents

Data exchange control method and device Download PDF

Info

Publication number
CN116686332A
CN116686332A CN202180060636.3A CN202180060636A CN116686332A CN 116686332 A CN116686332 A CN 116686332A CN 202180060636 A CN202180060636 A CN 202180060636A CN 116686332 A CN116686332 A CN 116686332A
Authority
CN
China
Prior art keywords
data
edge node
data stream
information
exchange
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180060636.3A
Other languages
Chinese (zh)
Inventor
林云
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN116686332A publication Critical patent/CN116686332A/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/10Flow control between communication endpoints

Abstract

The application provides a control method and a device for data exchange, which relate to the technical field of communication and are used for avoiding congestion in a data exchange network and improving exchange efficiency. The method is applied to a data exchange network comprising a first edge node and a second edge node, and comprises the following steps: the first edge node counts a first data volume of data to be exchanged in the input data stream; the first edge node acquires indication information from a second edge node, wherein the indication information is used for indicating second data quantity, and the second edge node is an edge node outputting the data stream; the first edge node controls the switching of the data stream according to the first data volume and the second data volume.

Description

Data exchange control method and device Technical Field
The embodiment of the application relates to the technical field of communication, in particular to a control method and device for data exchange.
Background
A data center network (dater center network, DCN) is a network that is used in a data center to provide a fully connected network for a plurality of servers (servers) in the data center to exchange data between different servers.
Currently, the plurality of switching nodes in the DCN are interconnected by standard protocols such as Ethernet (Ethernet) protocol or internet protocol (internet protocol, IP), so that the processing between the plurality of switching nodes is independent. However, with the continuous expansion of the bandwidth and the scale of DCNs, the number of data flows in the network is increasing, which easily causes problems such as network congestion and failure, and thus the switching efficiency of DCNs is low.
Disclosure of Invention
The application provides a control method and a device for data exchange, which are used for avoiding congestion in a data exchange network and improving exchange efficiency.
In order to achieve the above purpose, the embodiment of the present application adopts the following technical scheme:
in a first aspect, a control method for data exchange is provided, which is applied to a data exchange network including a first edge node and a second edge node, and the method includes: the first edge node counts a first data volume of data to be exchanged in the input data stream; the first edge node acquires indication information from a second edge node, wherein the indication information is used for indicating second data quantity, and the second edge node is an edge node outputting the data stream; the first edge node controls the switching of the data stream according to the first data volume and the second data volume. The first edge node obtaining the indication information may mean that a processor in the first edge node obtains the indication information, for example, the first edge node may receive the indication information from the second edge node through a communication interface or a transceiver, and at this time, the processor in the first edge node may obtain the indication information from the communication interface or the transceiver.
In the above technical solution, when data exchange is performed between the first edge node and the second edge node, the first edge node may count a first data amount of data to be exchanged in the data flow, and the second edge node may indicate, to the first edge node, a second data amount allowed to be sent by the first edge node through the indication information, where the second data amount may be determined by the second edge node according to parameters such as state information and data flow information, so that the first edge node may control exchange of the data flow according to the first data amount and the second data amount, thereby implementing control of the ingress traffic by the first edge node, and control of the egress traffic by the second edge node, so as to avoid congestion in the data exchange network, and improve exchange efficiency.
In a possible implementation manner of the first aspect, the first edge node controls the exchange of the data flow according to the first data volume and the second data volume, including: the first edge node determines a third data volume according to the first data volume and the second data volume; if the third data amount is greater than the preset threshold, the first edge node controls the exchange of the data stream. In the above possible implementation manner, when the third data size is greater than the preset threshold, the data size of the data to be exchanged in the first edge node is larger, and the data size that the second edge node can output is limited, so that the first edge node can avoid congestion in the data exchange network by controlling the exchange of the data flow, and improve the exchange efficiency.
In a possible implementation manner of the first aspect, the first edge node controls switching of the data stream, including: the first edge node controls the flow of the data to be exchanged; and/or the first edge node controls the flow of the source server corresponding to the data flow. In the above possible implementation manner, the first edge node may perform flow control on the data to be exchanged to avoid congestion of the data exchange network caused by the data to be exchanged, or may perform flow control on the source server corresponding to the data flow to avoid congestion of the data exchange network caused by sending more data.
In a possible implementation manner of the first aspect, the first edge node performs flow control on the data to be exchanged, including: the first edge node caches or discards the data to be exchanged, or controls the sending rate of the data to be exchanged to the second edge node; the first edge node performs flow control on the source server, and the method comprises the following steps: the first edge node sends flow control information to the source server, the flow control information being used to indicate at least one of: instruct the source server to suspend sending the data stream; instructing the source server to transmit the transmission rate of the data stream; indicating the amount of data that the origin server is allowed to send the data stream. In the possible implementation manners, the first edge node may perform flow control on the data flow in a plurality of manners, so as to improve flexibility and effectiveness of flow control.
In a possible implementation manner of the first aspect, the second data amount relates to status information of the second edge node; and/or at least one of a time point, an interval and granularity at which the second edge node transmits the indication information is related to the state information of the second edge node. In the possible implementation manner, the second edge node determines the second data amount allowed to be sent by the first edge node, the time point, the interval, the granularity and the like corresponding to the sending of the indication information according to the state information of the second edge node, so that the accuracy of the first edge node in controlling the flow of the data stream can be improved.
In a possible implementation manner of the first aspect, the state information of the second edge node includes at least one of the following: the amount of data of the data stream that has been output, the buffer status of the second edge node, the status of the destination server of the data stream. In the above possible implementation manner, the second edge node may determine the second data amount and the indication information according to a plurality of different state information.
In a possible implementation manner of the first aspect, the method further includes: the first edge node sends request information to the second edge node, the request information being used to determine the second data amount, the request information comprising at least one of: the number of remaining data packets, the amount of remaining data, and service level agreement SLA information. Optionally, the request information is carried in a data packet of the data stream. In the possible implementation manner, the first edge node sends the request information to the second edge node, so that the second edge node determines the second data volume and the indication information according to the information carried by the request information and the state information of the second edge node, thereby improving the accuracy of the second data volume and the indication information determined by the second edge node under the conditions of different users, different data streams or different transmission states and the like, and further improving the accuracy of the first edge node for controlling the flow of the data stream.
In a possible implementation manner of the first aspect, before the first edge node obtains the indication information from the second edge node, the method further includes: and the first edge node sends the data to be exchanged to the second edge node according to the preset data quantity. In the above possible implementation manner, when the first edge node directly uses the preset data amount to send part or all of the data to be exchanged to the second edge node, the part or all of the data can be sent without waiting for round trip delay, so that signaling interaction between the first edge node and the second edge node is reduced, and data transmission efficiency is improved.
In a possible implementation manner of the first aspect, the data stream is a data stream divided according to a network output port or a destination network card; and/or the data exchange network comprises one or more virtual extended local area networks (VXLANs), the data stream being a data stream divided according to the VXLANs; and/or the data stream is a data stream divided according to five tuples. Further, the partitioning of the data streams is also priority dependent. According to the possible implementation mode, the flexibility and the diversity of the data flow division are improved, so that the flow control can be realized for the data flows with different granularities and priorities, congestion in a data exchange network is avoided, and the exchange efficiency is improved.
In a second aspect, a control method for data exchange is provided, which is applied to a data exchange network including a first edge node and a second edge node, and the method includes: the second edge node determines indication information corresponding to the data flow, the indication information is used for indicating second data quantity, and the second edge node is an edge node outputting the data flow; the second edge node sends the indication information to the first edge node so that the first edge node controls the exchange of the data to be exchanged according to a first data amount and a second data amount of the data to be exchanged in the data stream, wherein the first data amount is obtained by statistics of the first edge node.
In the above technical solution, when data exchange is performed between the first edge node and the second edge node, the first edge node may count a first data amount of data to be exchanged in the data flow, and the second edge may indicate, to the first edge node, a second data amount allowed to be sent by the first edge node through the indication information, where the second data amount may be determined by the second edge node according to parameters such as state information and data flow information, so that the first edge node may control exchange of the data flow according to the first data amount and the second data amount, thereby implementing control of the ingress traffic by the first edge node, and control of the egress traffic by the second edge node, thereby avoiding congestion in the data exchange network, and improving exchange efficiency.
In a possible implementation manner of the second aspect, the second data amount relates to status information of the second edge node; and/or at least one of a time point, an interval and granularity at which the second edge node transmits the indication information is related to the state information of the second edge node. In the possible implementation manner, the second edge node determines the second data amount allowed to be sent by the first edge node, the time point, the interval, the granularity and the like corresponding to the sending of the indication information according to the state information of the second edge node, so that the accuracy of the first edge node in controlling the flow of the data stream can be improved. .
In a possible implementation manner of the second aspect, the state information of the second edge node includes at least one of the following: the amount of data of the data stream that has been output, the buffer status of the second edge node, the status of the destination server of the data stream. In the above possible implementation manner, the second edge node may determine the second data amount and the indication information according to a plurality of different state information.
In a possible implementation manner of the second aspect, before the second edge node determines the indication information of the data flow, the method further includes: the second edge node obtains request information from the first edge node, the request information being used to determine a second amount of data, the request information including at least one of: the number of remaining data packets, the amount of remaining data, and service level agreement SLA information. Optionally, the request information is carried in a data packet of the data stream. In the possible implementation manner, the first edge node sends the request information to the second edge node, so that the second edge node determines the second data volume and the indication information according to the information carried by the request information and the state information of the second edge node, thereby improving the accuracy of the second data volume and the indication information determined by the second edge node under the conditions of different users, different data streams or different transmission states and the like, and further improving the accuracy of the first edge node for controlling the flow of the data stream.
In a possible implementation manner of the second aspect, before the second edge node determines the indication information of the data flow, the method further includes: the second edge node obtains the data to be exchanged, which is sent by the first edge node according to the preset data quantity. In the above possible implementation manner, when the first edge node directly uses the preset data amount to send part or all of the data to be exchanged to the second edge node, the part or all of the data can be sent without waiting for round trip delay, so that signaling interaction between the first edge node and the second edge node is reduced, and data transmission efficiency is improved.
In a possible implementation manner of the second aspect, the data stream is a data stream divided according to a network port or a destination network card; and/or the data exchange network comprises one or more virtual extended local area networks (VXLANs), the data stream being a data stream divided according to the VXLANs; and/or the data stream is a data stream divided according to five tuples. Further, the partitioning of the data streams is also priority dependent. According to the possible implementation mode, the flexibility and the diversity of the data flow division are improved, so that the flow control can be realized for the data flows with different granularities and priorities, congestion in a data exchange network is avoided, and the exchange efficiency is improved.
In a third aspect, a control device for data exchange is provided, applied to a data exchange network including a first edge node and a second edge node, where the device is used as the first edge node, and includes: the processing unit is used for counting a first data volume of data to be exchanged in the input data stream; a receiving unit, configured to obtain indication information from a second edge node, where the indication information is used to indicate a second data amount, and the second edge node is an edge node outputting the data stream; and the processing unit is also used for controlling the exchange of the data flow according to the first data volume and the second data volume.
In a possible implementation manner of the third aspect, the processing unit is further configured to: determining a third data amount according to the first data amount and the second data amount; and if the third data volume is larger than the preset threshold value, controlling the exchange of the data flow.
In a possible implementation manner of the third aspect, the processing unit is further configured to: performing flow control on the data to be exchanged; and/or, performing flow control on the source server corresponding to the data flow.
In a possible implementation manner of the third aspect, the processing unit is further configured to: caching or discarding the data to be exchanged, or controlling a sending rate of the data to be exchanged to a second edge node; the device comprises: a sending unit, configured to send flow control information to the source server, where the flow control information is used to indicate at least one of the following: instruct the source server to suspend sending the data stream; instructing the source server to transmit the transmission rate of the data stream; indicating the amount of data that the origin server is allowed to send the data stream.
In a possible implementation manner of the third aspect, the second data amount relates to status information of the second edge node; and/or at least one of a time point, an interval and granularity at which the second edge node transmits the indication information is related to the state information of the second edge node.
In a possible implementation manner of the third aspect, the state information of the second edge node includes at least one of the following: the amount of data of the data stream that has been output, the buffer status of the second edge node, the status of the destination server of the data stream.
In a possible implementation manner of the third aspect, the apparatus includes: the sending unit is further configured to send request information to the second edge node, where the request information is used to determine the second data amount, and the request information includes at least one of the following information: the number of remaining data packets, the amount of remaining data, and service level agreement SLA information. Optionally, the request information is carried in a data packet of the data stream.
In a possible implementation manner of the third aspect, the apparatus includes: and the sending unit is also used for sending the data to be exchanged to the second edge node according to the preset data quantity.
In a possible implementation manner of the third aspect, the data stream is a data stream divided according to a network port or a destination network card; and/or the data exchange network comprises one or more virtual extended local area networks (VXLANs), the data stream being a data stream divided according to the VXLANs; and/or the data stream is a data stream divided according to five tuples. Further, the partitioning of the data streams is also priority dependent.
In a fourth aspect, a control device for data exchange is provided, which is applied to a data exchange network including a first edge node and a second edge node, and the device is used as the second edge node, and includes: the processing unit is used for determining indication information corresponding to the data flow, the indication information is used for indicating second data quantity, and the second edge node is an edge node outputting the data flow; and the sending unit is used for sending the indication information to the first edge node so that the first edge node controls the exchange of the data to be exchanged according to the first data quantity and the second data quantity of the data to be exchanged in the data stream, wherein the first data quantity is obtained by statistics of the first edge node.
In a possible implementation manner of the fourth aspect, the second data amount relates to status information of the second edge node; and/or at least one of a time point, an interval and granularity at which the second edge node transmits the indication information is related to the state information of the second edge node.
In a possible implementation manner of the fourth aspect, the state information of the second edge node includes at least one of the following: the amount of data of the data stream that has been output, the buffer status of the second edge node, the status of the destination server of the data stream.
In a possible implementation manner of the fourth aspect, the apparatus further includes: a receiving unit for obtaining request information from the first edge node, the request information being used for determining the second data amount, the request information comprising at least one of: the number of remaining data packets, the amount of remaining data, and service level agreement SLA information. Optionally, the request information is carried in a data packet of the data stream.
In a possible implementation manner of the fourth aspect, the apparatus further includes: the receiving unit is further configured to obtain the data to be exchanged sent by the first edge node according to a preset data amount.
In a possible implementation manner of the fourth aspect, the data stream is a data stream divided according to a network port or a destination network card; and/or the data exchange network comprises one or more virtual extended local area networks (VXLANs), the data stream being a data stream divided according to the VXLANs; and/or the data stream is a data stream divided according to five tuples. Further, the partitioning of the data streams is also priority dependent.
In a fifth aspect, there is provided a control apparatus for data exchange, the apparatus comprising: the device comprises a processor, a memory, a communication interface and a bus, wherein the processor, the memory and the communication interface are connected through the bus; the memory is for storing program code which, when executed by the processor, causes the apparatus to perform a control method of data exchange as provided by the first aspect or any one of the possible implementations of the first aspect.
In a sixth aspect, there is provided a control apparatus for data exchange, the apparatus comprising: the device comprises a processor, a memory, a communication interface and a bus, wherein the processor, the memory and the communication interface are connected through the bus; the memory is for storing program code which, when executed by the processor, causes the apparatus to perform a control method of data exchange as provided by any one of the possible implementations of the second or third aspect.
In a further aspect of the application, a data switching network is provided, the data switching network comprising a first edge node comprising the control means of the data switching provided in the third aspect, any one of the possible implementations of the third aspect or the fifth aspect, and a second edge node comprising the control means of the data switching provided in the fourth aspect, any one of the possible implementations of the fourth aspect or the sixth aspect.
In a further aspect of the application, there is provided a computer readable storage medium having stored therein a computer program or instructions which, when executed, implement a method of controlling data exchange as provided by the first aspect or any one of the possible implementations of the first aspect.
In a further aspect of the application, there is provided a computer readable storage medium having stored therein a computer program or instructions which, when executed, implement a method of controlling data exchange as provided by the second aspect or any one of the possible implementations of the second aspect.
In yet another aspect of the present application, there is provided a computer program product comprising: a computer program (which may also be referred to as code, or instructions) which, when executed, causes a computer to perform a method of controlling data exchange as provided by the first aspect or any one of the possible implementations of the first aspect.
In yet another aspect of the present application, there is provided a computer program product comprising: a computer program (which may also be referred to as code, or instructions) which, when executed, causes the computer to perform a method of controlling data exchange as provided by the second aspect or any one of the possible implementations of the second aspect.
It will be appreciated that the above-mentioned advantages achieved by any of the data exchange control apparatus, data exchange network, computer readable storage medium and computer program product may correspond to those of the data exchange control method provided above, and will not be described herein.
Drawings
FIG. 1 shows a schematic diagram of a switch fabric;
fig. 2 is a schematic structural diagram of a data exchange network according to an embodiment of the present application;
fig. 3 is a schematic structural diagram of another data exchange network according to an embodiment of the present application;
fig. 4 is a schematic structural diagram of still another data exchange network according to an embodiment of the present application;
fig. 5 is a schematic structural diagram of a switching system according to an embodiment of the present application;
fig. 6 is a schematic structural diagram of a source node according to an embodiment of the present application;
fig. 7 is a schematic structural diagram of a destination node according to an embodiment of the present application;
fig. 8 is a flow chart of a control method for data exchange according to an embodiment of the present application;
FIG. 9 is a flow chart of another method for controlling data exchange according to an embodiment of the present application;
fig. 10 is a schematic structural diagram of a first edge node according to an embodiment of the present application;
FIG. 11 is a schematic diagram illustrating a structure of another first edge node according to an embodiment of the present application;
fig. 12 is a schematic structural diagram of a second edge node according to an embodiment of the present application;
fig. 13 is a schematic structural diagram of another second edge node according to an embodiment of the present application.
Detailed Description
The technical solutions in the embodiments of the present application will be described below with reference to the accompanying drawings in the embodiments of the present application. In the present application, "at least one" means one or more, and "a plurality" means two or more. "and/or", describes an association relationship of an association object, and indicates that there may be three relationships, for example, a and/or B, and may indicate: a alone, a and B together, and B alone, wherein a, B may be singular or plural. The character "/" generally indicates that the context-dependent object is an "or" relationship. "at least one of" or the like means any combination of these items, including any combination of single item(s) or plural items(s). For example, at least one (one) of a, b or c may represent: a, b, c, a and b, a and c, b and c or a, b and c, wherein a, b and c can be single or multiple. In addition, in the embodiments of the present application, the words "first", "second", and the like do not limit the number and order.
In the present application, the words "exemplary" or "such as" are used to mean serving as an example, instance, or illustration. Any embodiment or design described herein as "exemplary" or "for example" should not be construed as preferred or advantageous over other embodiments or designs. Rather, the use of words such as "exemplary" or "such as" is intended to present related concepts in a concrete fashion.
The technical scheme provided by the application can be applied to various different data exchange networks, for example, the data exchange networks can comprise physical networks such as a data center network (dater center network, DCN), a high-performance computing (high performance computing, HPC) network, a cloud network and the like, and can also comprise virtual networks running on the physical networks and the like. Wherein the data switching network may comprise a plurality of switching nodes, which switching nodes may also be referred to as nodes. In practical applications, the switching node may be a switching device such as a switch or a router, or may be a Switch Element (SE), a switch board, or a switching element. A switch box may include a plurality of line cards (line cards) and a plurality of switch boards, which may be disposed on a backplane (backplane), and each switch board may include a plurality of switch units therein. The switch board may also be referred to as a Switch Card (SC), which may also be referred to as a network interface card (network interface card, NIC). Fig. 1 shows a schematic structure of a switch frame, and a plurality of line cards are denoted as LC1-LCi, and switch units included in a plurality of switch boards are denoted as SE1-SEk, where i and k are positive integers. The structure of the data switching network is described in detail below.
Fig. 2 is a schematic structural diagram of a data exchange network according to an embodiment of the present application, where the data exchange network may include at least two exchange layers, and the at least two exchange layers include a plurality of nodes. Alternatively, the plurality of nodes may each be an optical node. The nodes located at the edge of the data exchange network among the plurality of nodes may be referred to as edge nodes, where the edge nodes may be switching devices for accessing a server, or the edge nodes may be network cards in a server accessing the data exchange network, and fig. 2 illustrates an edge device as a switching device. Other nodes of the plurality of nodes than between the edge nodes may be referred to as intermediate nodes, which are not shown in fig. 2.
Wherein an edge node may be referred to as a source node when the edge node is configured to receive a data stream incoming to the data switching network; when an edge node is used to output a data stream to the outside of the data switching network, the edge node may be referred to as a destination node. In an embodiment of the application, the source node and the destination node may be used to manage traffic to and from the data switching network, such that the source node may act as an ingress traffic manager (ingress traffic manager, ITM) for the data switching network and the destination node may act as an egress traffic manager for the data switching network. Only 3 edge nodes in the data switching network are shown in fig. 2, and the 3 edge nodes include a destination node (denoted as D1) and two source nodes (denoted as S1 and S2) for switching data to the destination node are illustrated, and the above-described fig. 2 does not limit the embodiment of the present application.
Referring to fig. 2, as shown in fig. 3, another schematic structure of a data exchange network according to an embodiment of the present application is shown, where the data exchange network includes three exchange layers. Referring to fig. 3, the data exchange network includes an access layer, a convergence layer and a core layer, the access layer includes a plurality of access (access) nodes, the convergence layer includes a plurality of convergence (aggregation) nodes, the core layer includes a plurality of core (core) nodes, a downlink port of the access node is connected with a server (server) needing to exchange data traffic, an uplink port of the access node is connected with a downlink port of the convergence node, and an uplink port of the convergence node is connected with the core node.
The aggregation layer and the access layer may be divided into a plurality of groups (pod), and one group may include a plurality of access nodes and a plurality of aggregation nodes, and each access node is fully connected with the plurality of aggregation nodes. Multiple core nodes connected to the same sink node may be referred to as a core plane, each core plane being connected to a different sink node in a respective group. In fig. 3, only 3 groups are illustrated in the data exchange network, where one group includes 3 access nodes and 4 aggregation nodes, and each core plane includes two core nodes. The access nodes in fig. 3 may be denoted as A1-A9, the sink nodes as B1-B12, the core nodes as C1-C8, and the 3 groups as P1-P3, respectively.
When data traffic exchange is performed between servers connected by different access nodes in a group, the data traffic exchange may be performed by a sink node in the same group as the access node, for example, the servers connected by the access node A1 and the access node A3 need to perform data traffic exchange, and then the access node A1 may send the data stream of the server connected by the sink node B1 to the access node A3. When data traffic exchange is performed between servers connected by access nodes in different groups, the data traffic exchange can be performed by the sink node in the same group as the access node and the core node connected with the sink node, for example, the servers connected by the access node A1 and the access node A5 need to perform data traffic exchange, the access node A1 can send the data stream of the server connected by the access node A1 to the sink node B1, the data stream is forwarded to the core node C1 by the sink node B1, and then the data stream is sent to the access node A5 by the C1 through the sink node B5.
It should be noted that the structure of the data exchange network shown in fig. 3 is merely exemplary, and does not limit the structure thereof. In practical applications, each switching layer of the data switching network may further include more or fewer nodes than those illustrated, or the data switching network may further be a network including two switching layers, or a plurality of core nodes in a core layer may be divided into a plurality of core planes, or may not be divided into a plurality of core planes, which is not specifically limited in the embodiment of the present application.
Referring to fig. 2, as shown in fig. 4, a schematic structural diagram of yet another data exchange network according to an embodiment of the present application is provided, where the data exchange network includes a physical network and a virtual network running on the physical network. The physical network may also be referred to as an underlay network (underlaynetwork) for providing an underlay control plane (underlay control plane). The physical network may include a plurality of switching devices, where a switching device located at an edge of the physical network may be referred to as an edge device (edge device), and the edge device may be used to access a server (e.g., a terminal or a host, etc.). The virtual network may also be referred to as an overlay network (overlay network) for providing a bearer control plane (overlay control plane).
In one example, the bearer network may include one or more virtual extended local area networks (virtual extensible local area network, VXLAN). The VXLAN may be formed on the physical network by VXLAN tunnel endpoints (VXLAN tunnel end point, VTEP). Different VXLANs may be distinguished by different VXLAN network identifiers (VXLAN network identifier, VNI/VNID). The interconnection with the accessed VXLAN is equivalent to the user in the same VXLAN, i.e., the user in VXLAN does not perceive the presence of other xvans and physical networks. When different users in the VXLAN are accessed to exchange data traffic, the data traffic can be realized through the VTEP corresponding to the VXLAN and the physical network.
It should be noted that, the above description is given taking VXLAN created based on VXLAN protocol as an example, and in practical application, the virtual network may also be a bearer network created based on other bearer protocols, and fig. 4 is not limited to the embodiment of the present application.
In addition, the physical network in fig. 4 has a similar structure to the data switching network in fig. 3, and may include a plurality of switching layers, for example, two switching layers or three switching layers.
For ease of understanding, a plurality of aggregation nodes (e.g., n) connected to the same core plane and a plurality of core nodes within a core plane in a data switching network including three switching layers are referred to herein as an n×n Switching Fabric (SF) system. As shown in fig. 5, the n×n SF includes n source nodes (S) and n destination nodes (D), and m switching nodes SN of the intermediate stage. In fig. 5, si and Di are the same sink node (i has values of 1 to n in sequence), that is, n source nodes and n destination nodes are nodes functionally divided when n sink nodes connected to the same core plane are respectively used as a transmitting node and a receiving node. Each of the n sink nodes may include a plurality of ports, which are input ports (input ports) for S and output ports (output ports) for D. The data switching network can be seen as being made up of a plurality of switching networks, each employing the same control mechanism.
Similarly, a data switching network comprising two switching layers may also be considered as being made up of a plurality of switching networks, with the difference that n source nodes and n destination nodes are nodes functionally divided when they are respectively transmitting nodes and receiving nodes, and the embodiments of the present application will not be described in detail.
The switching network can complete the operation of switching the data packet (packet) received from the S to the D, and when the data packet passes through the SE, the format of the original variable-length packet (variable-length packet) can be maintained, or the data packet can be sent by the S after being cut into cells, and after the D receives all cells, the data packet is recombined into a complete data packet. In such a switching network, the S can generally distribute the received data packets to the SNs as uniformly as possible. The data packet sent by the S usually carries the information of the D, and the SN forwards the data packet to the corresponding D according to the carried information.
S receives data packets from outside the system through an input port, and usually S is internally provided with a plurality of virtual output queues (virtual output queue, VOQ) for buffering data packets destined for different D (or for buffering data packets destined for different output ports of different D; or a plurality of VOQ corresponding to streams with finer granularity, i.e. a plurality of VOQ for buffering data packets of streams with different granularity), the VOQ can be used for guaranteeing end-to-end service quality (quality of service, qoS), and is a means for preventing head-of-line blocking (HOL blocking). For an n×n switching network, typically at least n VOQs in each S correspond to n D, and if further subdivided according to D output ports or a higher granularity requirement, more VOQs may be included.
Fig. 6 is a schematic diagram of a source node (S). Included in this S are a plurality of input ports, a Queue Manager (QM), an ingress scheduler (ingress scheduler, ISC), and a fabric interface (fabric interface). The QM may be used to manage K VOQs (K is a positive integer), the ISC may be used to schedule K VOQs in the QM, and the data packet scheduled for output may be cut into cells through the network interface, and sent to the SE after adding a cell Header (Header), or directly sent to the SE according to the data packet.
Fig. 7 is a schematic diagram of a destination node (D). The D includes a plurality of output ports, a Queue Manager (QM), an Egress Scheduler (ESC), and a fabric interface (fabric). Wherein, QM can be used to manage L Output Queues (OQs), L being a positive integer, L OQs are used to buffer packets destined for different outputs, and ESC can be used to schedule L OQs in QM.
For example, the ISC in S may send a request to the corresponding D according to the state of the VOQ in S, and the ESC in D completes the scheduling after receiving the request, and informs the ISC of the scheduling result. The ISC schedules the data packets in the VOQ in the S to dequeue according to the scheduling result. Wherein the ESC in D can take into account QoS characteristics of different requests and congestion levels of the OQs in D during scheduling.
It will be understood by those skilled in the art that the data exchange network and the structures of the source node and the destination node described in the embodiments of the present application are for more clearly describing the technical solutions of the embodiments of the present application, and do not constitute a limitation on the technical solutions provided by the embodiments of the present application.
Fig. 8 is a schematic diagram of a control method for data exchange according to an embodiment of the present application, where the method may be applied to the data exchange network provided above, and the method includes the following steps.
S201: the first edge node counts a first amount of data in the incoming data stream to be exchanged.
The first edge node may be a node located at an edge position in the data exchange network and configured to receive a data flow externally input into the data exchange network. Alternatively, the first edge node may be a switching device in the data switching network, for example, the switching device may be a switch or a router, etc.; the first edge node may also be a source network card SNIC, which may refer to a network card in the source server.
In addition, the input data stream may refer to a data stream input to the first edge node. The first edge node may receive one or more data streams from the outside, and the input data stream may be any one of the one or more data streams. The second edge node in the data exchange network may be used to output the data stream out of the data exchange network, and the second edge node may be a switching device in the data exchange network, or may be a destination network card DNIC, where the destination network card may refer to a network card in a destination server.
Furthermore, the data to be exchanged in the data stream may refer to the data of the data stream stored in the first edge node, that is, the data to be exchanged includes the data of the data stream that has been received by the first edge node but not output to the downstream node. Further, the data to be exchanged may further include data of the data stream that has been output by the first edge node to the downstream node, but has not been output by the second edge node. The data to be exchanged is described below by taking as an example the data of the data stream stored in the first edge node.
In one embodiment, the first edge node includes a first counter (counter), by which the first edge node can count a first amount of data in the data stream to be exchanged. Alternatively, the first data amount may be the number of data bits/bytes in the data to be exchanged, the number of data packets, the number of cells, or the number of data blocks, which is not limited in particular by the embodiment of the present application.
For example, taking the first data amount as the number of data packets in the data to be exchanged as an example, the first edge node may increment the value of the first counter every time a data packet of the data stream is received, and decrement the value of the first counter every time a data packet of the data stream is output, so that the value of the first counter is the first data amount. Of course, the first edge node may also decrease the value of the first counter by one every time a packet of the data stream is received, and increase the value of the first counter by one every time a packet of the data stream is output, which is not particularly limited in the embodiment of the present application.
The data stream may refer to data sent from the same source and destined for the same purpose. In the application process, different data streams can be obtained according to different granularity sources or different granularity targets, and several possible partitioning modes are described below.
And dividing the data flow according to the network output port or the destination network card. Specifically, taking the first edge node as an example, all data which are received by the first edge node and are destined for the same network output port or destined for the same destination network card are considered as data in the same data stream. The network output port may refer to a port for outputting data to the outside of the data switching network, and the destination network card may refer to a network card of the destination server.
When the data exchange network comprises a bearing network, the bearing network and the network output port or the destination network card have corresponding relations, so that data flow can be divided for data in the bearing network according to the network output port or the destination network card. For example, when the data exchange network includes at least one VXLAN, a data flow corresponding to data of the at least one VXLAN may be determined according to a correspondence between the at least one VXLAN and a network output port or a correspondence between the at least one VXLAN and a destination network card.
Optionally, when the first edge node counts the data amounts of the data to be exchanged in different data flows through the plurality of counters, a corresponding relationship may exist between the plurality of counters and the plurality of network output ports, or a corresponding relationship may exist between the plurality of counters and the plurality of destination network cards. For example, each counter in the first edge node may be used to count the amount of data corresponding to one network output port or one destination network card.
The second type of partitioning the data flow according to the bearer network may be, for example, VXLAN. Specifically, taking the first edge node as an example, the data of the same bearer network (e.g., the same VXLAN) received by the first edge node is considered as the data in the same data stream.
For the data of the physical network in the data exchange network, the bearing network and the network output port or the destination network card have corresponding relations, so that the data of the physical network can be divided into data flows according to the bearing network. For example, when the data exchange network includes at least one VXLAN, a data flow corresponding to data in the physical network may be determined according to a correspondence between the at least one VXLAN and a network output port or a correspondence between the at least one VXLAN and a destination network card.
Optionally, when the first edge node counts the data amounts of the data to be exchanged in different data flows through a plurality of counters, a corresponding relationship may exist between the plurality of counters and at least one VXLAN included in the data exchange network. For example, each counter in the first edge node may be used to count the amount of data corresponding to one VXLAN.
Third, the data streams are partitioned according to five tuples. Specifically, taking the first edge node as an example, the data corresponding to the same five-tuple received by the first edge node is considered as the data in the same data stream. The five-tuple may include: a source IP address, a source port, a destination IP address, a destination port, and a transport layer protocol. Similarly, in practical applications, the data stream may be divided according to four-tuple or seven-tuple, and the embodiment of the present application is not described herein again.
When the data exchange network includes a bearing network, the bearing network and the five-tuple have a corresponding relation, so that the data flow of the data in the bearing network can be divided according to the five-tuple.
Optionally, when the first edge node counts the data amounts of the data to be exchanged in different data flows through a plurality of counters, each counter in the plurality of counters may be used to count the data amounts of different data flows obtained according to five-tuple partitioning at different times, and count the data amounts of the same data flow at the same time.
Further, when the data stream is divided in several different manners as described above, the division may be performed in combination with the priority (priority) of the data. Where the priority may refer to information for distinguishing a priority or type of a data packet, the priority may be generally transmitted together with data, for example, the priority may originate from a differentiated services code point (differentiated services code point, DSCP) field in an IPv4 data packet, and the DSCP field may also be referred to as a type of service (ToS).
For example, taking the destination network card DNIC and the priority as an example, the data that is received by the first edge node and is destined for the same DNIC and corresponds to the same priority may be considered as the data of the same data stream, so that the number of counters may also be set in the first edge node according to the dimension of { DNIC, priority }. Alternatively, taking the example of division according to VXLAN and priority, the data received by the first edge node and destined for the same VXLAN (i.e. corresponding to the same VXLAN network identifier VNI) and corresponding to the same priority may be considered as the data of the same data flow, so that the number of counters may also be set in the first edge node according to the dimension of { VNI, priority }.
It should be noted that the above-mentioned several possible data stream dividing manners are merely exemplary, and in practical applications, other dividing data streams with different granularity may be used, for example, dividing according to one or more key fields in a header (header) specified by a user, which is an example and limits embodiments of the present application.
S202: the second edge node sends indication information to the first edge node, the indication information being used to indicate the second data amount.
The second data amount may be an amount of data determined by the second edge node to allow the first edge node to transmit. The indication information may include information for directly indicating the second data amount, or may include information for indirectly indicating the second data amount. When the indication information includes information for directly indicating the second data amount, the information may be a value corresponding to the second data amount directly, for example, the indication information includes a value 200, and is used for indicating that the second data amount is 200KB. When the indication information includes information for indirectly indicating the second data amount, the indication information may include a sequence number of a data packet corresponding to the second data amount (a difference between the sequence number and a sequence number of a last data packet that has been currently exchanged may be used to indicate the second data amount), or the indication information includes a first value, a product of the first value and a unit data amount is used to indicate the second data amount, for example, the first value is 6, the second data amount may be 6×Δf, Δf represents the unit data amount, for example, Δf may be 4KB, 8KB, and the unit data amount may be set or configured in advance.
In one embodiment, during the process of the first edge node exchanging the data stream with the second edge node, the second edge node may generate the indication information according to the related information of the data stream and/or the state information of the second edge node, and send the indication information to the first edge node. Further, the indication information may also be used to indicate the data amount (such as the length of the data packet) of the data stream just sent by the second edge node, and other possible information such as status information of the second edge node.
The second edge node may also determine, according to the related information of the data flow and/or the state information of the second edge node, other possible information such as a time point, an interval, granularity (may also be referred to as granularity) of sending the indication information. The granularity of sending the indication information may refer to the granularity of data correspondingly sent when the second edge node is triggered to send the indication information.
Optionally, the state information of the second edge node includes at least one of: the data volume of the data stream that has been output, the buffer status of the second edge node, the output port status of the second edge node. The buffer status of the second edge node may include the buffer status of the data stream in the second edge node, and may also include the buffer status of other data streams. The output port state of the second edge node may include the bandwidth and the rate of the output port corresponding to the data flow in the second edge node, or may include the bandwidth and the rate of the output port.
The related information of the data stream may include at least one of: the state of the destination server, the state of the source server, the information of the remaining data of the data stream, and the service-level agreement (SLA) information of the data stream. The state of the destination server may include the receiving bandwidth and rate of the destination server, etc.; the state of the source server may include a first data amount, a transmission bandwidth, a rate, etc.; the information of the remaining data may include the number of remaining data packets or the amount of remaining data; SLA information may include user level or priority, data type, traffic type, etc.
In another embodiment, before the second edge node sends the indication information to the first edge node (i.e., before S202), the first edge node may send request information to the second edge node, the request information being used to determine the second data amount, the request information may include at least one of the following information: the expected amount of data (i.e., the amount of data the first edge node is expected to send), the first amount of data, the state of the origin server, information of the remaining data, etc. Thus, when the second edge node receives the request information, the second edge node may generate the indication information according to the above manner and send the indication information to the first edge node.
Optionally, the first edge node may send the request information to the second edge node by means of control signaling; alternatively, the first edge node carries the request information in a packet of the data stream, i.e. the request information is carried in a packet of the data stream.
In summary, the first edge node may not send any request information, and the second edge node feeds back an indication information to the first edge node after sending out the data transmitted by the first edge node. Or the first edge node sends a request message to the second edge node, and the second edge node feeds back an indication message to the first edge node after sending out the data transmitted by the first edge node.
S203: and when the first edge node acquires the indication information, controlling the exchange of the data flow according to the first data volume and the second data volume.
The first edge node obtaining the indication information may mean that a processor in the first edge node obtains the indication information. For example, the first edge node may receive the indication information sent by the second edge node through the communication interface or transceiver, at which point the processor in the first edge node may be able to obtain the indication information from the communication interface or transceiver.
In one embodiment, when the first edge node receives the indication information, the first edge node may determine a third data amount according to the first data amount and the second data amount, for example, the third data amount is a difference between the first data amount and the second data amount, and if the third data amount is greater than a preset threshold, the first edge node may control the exchange of the data stream, and the preset threshold may be set in advance. The first edge node controlling the switching of the data stream may include performing flow control on the data to be switched and/or performing flow control on an origin server corresponding to the data stream.
Specifically, the first edge node controlling the switching of the data stream may include: the first edge node caches or discards at least part of the data in the data to be exchanged, or controls the sending rate of the data to be exchanged to the second edge node to be smaller than a preset rate, wherein the preset rate can be preset. The first edge node performing flow control on the source server may include: the first edge node sends flow control information to the source server, the flow control information being used to indicate at least one of: instruct the origin server to suspend sending the data stream, such as sending a shutdown (Xoff) signal or a pause (pause) signal; instructing the source server to transmit the transmission rate of the data stream; indicating the amount of data that the origin server is allowed to send the data stream.
When the flow control information is used to instruct the source server to suspend sending the data stream, the first edge node may further instruct the source server to resume sending the data stream, for example, send an open (Xon) signal to the source server when the condition of the first edge node satisfies a certain condition.
In the embodiment of the application, when data exchange is performed between the first edge node and the second edge node, the first edge node can count the first data amount of the data to be exchanged in the data stream, the second edge can indicate the second data amount allowed to be sent by the first edge node to the first edge node through the indication information, and the second data amount can be determined by the second edge node according to parameters such as state information, data stream information and the like, so that the first edge node can control the exchange of the data stream according to the first data amount and the second data amount, thereby realizing the control of the first edge node on the inlet flow, and the second edge node controls the outlet flow, further avoiding congestion in a data exchange network and improving the exchange efficiency.
Further, as shown in fig. 9, before S202, the method may further include S204, and S204 may be located after S201.
S204: and the first edge node sends the data to be exchanged to the second edge node according to the preset data quantity.
When the first edge node has the preset data quantity, the first edge node can directly use the preset data quantity to send the data to be exchanged to the second edge node, so that the second edge can receive the data to be exchanged sent by the first edge node by using the preset data quantity. When the first edge node sends the data to be exchanged by using the preset data quantity, the specifically sent data may be part or all of the data in the data to be exchanged, and is specifically related to the first data quantity and the size of the preset data quantity.
The preset data amount may be set in advance, for example, the preset data amount may be 50KB, 100KB, 150KB, or the like, which is not limited in the embodiment of the present application.
Further, when the preset data size is smaller than the first data size, that is, the first edge node uses the preset data size to not send all the data to be exchanged to the second edge node, the first edge node and the second edge node may also send all the data of the data stream to the second edge node in the manner provided above. When the preset data size is larger than the first data size, for the data of the data stream subsequently received by the first edge node, the first edge node may use the difference value between the preset data size and the first data size, and the second data size indicated by the indication information sent by the second edge node, as the data size allowed to be sent by the second edge node for transmitting the subsequently received data of the data stream.
In the embodiment of the application, when the first edge node directly uses the preset data volume to send part or all of the data to be exchanged to the second edge node, the part or all of the data can be sent without waiting for round-trip time (RTT), so that signaling interaction between the first edge node and the second edge node can be reduced, and data transmission efficiency is improved.
The scheme provided by the embodiment of the application is mainly introduced from the interaction point of each node. It will be appreciated that the respective network elements, e.g. the first edge node and the second edge node, etc., comprise, in order to implement the above-described functionality, corresponding hardware structures and/or software modules performing the respective functions. Those of skill in the art will readily appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as hardware or combinations of hardware and computer software. Whether a function is implemented as hardware or computer software driven hardware depends upon the particular application and design constraints imposed on the solution. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
The embodiment of the application can divide the functional modules of the first edge node and the second edge node according to the method example, for example, each functional module can be divided corresponding to each function, or two or more functions can be integrated in one module. The integrated modules can be realized in a hardware mode or a soft functional module mode. It should be noted that, in the embodiment of the present application, the division of the modules is schematic, which is merely a logic function division, and other division manners may be implemented in actual implementation. The following description will take the case of dividing each functional module into corresponding functions as an example:
in the case of an integrated unit, fig. 10 shows a schematic diagram of a possible configuration of the control device for data exchange involved in the above-described embodiment. The device may be a first edge node or a chip built in the first edge node, and the device includes: a processing unit 301 and a receiving unit 302. Wherein, the processing unit 301 is configured to support S201 and/or S203 in the embodiment of the method performed by the apparatus; the receiving unit 302 supports the apparatus to perform the step of receiving the indication information sent by S202 in the method embodiment. Optionally, the apparatus may further include a transmitting unit 303, where the transmitting unit 303 is configured to support the apparatus to perform the step of transmitting the request information. All relevant contents of each step related to the above method embodiment may be cited to the functional descriptions of the corresponding functional modules, which are not described herein.
On the basis of a hardware implementation, the processing unit 301 in the present application may be a processor of a control device for data exchange, the receiving unit 302 may be a receiver of the device, the transmitting unit 303 may be a transmitter of the device, and the transmitter may be integrated with the receiver to be used as a transceiver, and a specific transceiver may be also referred to as a communication interface.
Fig. 11 is a schematic diagram showing a possible logic structure of the control device for data exchange according to the above embodiment according to the embodiment of the present application. The device may be a first edge node or a chip built in the first edge node, and the device includes: a processor 312 and a communication interface 313. The processor 31 is configured to control and manage the device actions, for example, the processor 312 is configured to support the device to perform the request information, parse the indication information, count the data to be exchanged, and/or other processes for the techniques described herein in embodiments of methods. In addition, the device may further include a memory 311 and a bus 314, the processor 312, the communication interface 313, and the memory 311 being connected to each other through the bus 314; the communication interface 313 is used to support the device to communicate; the memory 311 is used to store program codes and data of the apparatus.
The processor 312 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, a transistor logic device, a hardware component, or any combination thereof. Which may implement or perform the various exemplary logic blocks, modules and circuits described in connection with this disclosure. The processor may also be a combination that performs the function of a computation, e.g., a combination comprising one or more microprocessors, a combination of a digital signal processor and a microprocessor, and so forth. Bus 314 may be a peripheral component interconnect standard (peripheral component interconnect, PCI) bus or an extended industry standard architecture (extended industry standard architecture, EISA) bus, among others. The buses may be classified as address buses, data buses, control buses, etc. For ease of illustration, only one thick line is shown in FIG. 11, but not only one bus or one type of bus.
In the case of an integrated unit, fig. 12 shows a possible structural diagram of the control device for data exchange involved in the above-described embodiment. The device may be the second edge node or a chip built in the second edge node, and the device includes: a processing unit 401 and a transmitting unit 402. Wherein the processing unit 401 is configured to support the steps of the apparatus determining a second data amount and generating indication information; the transmitting unit 402 supports the apparatus to perform S202 in the method embodiment. Optionally, the apparatus may further include a receiving unit 403, where the receiving unit 403 is configured to support the apparatus to perform the step of receiving the request information. All relevant contents of each step related to the above method embodiment may be cited to the functional descriptions of the corresponding functional modules, which are not described herein.
On the basis of a hardware implementation, the processing unit 401 in the present application may be a processor of a control device for data exchange, the transmitting unit 402 may be a transmitter of the device, the receiving unit 403 may be a receiver of the device, and the transmitter may be integrated with the receiver to be used as a transceiver, and a specific transceiver may be also referred to as a communication interface.
Fig. 13 is a schematic diagram showing a possible logic structure of the control device for data exchange according to the above embodiment according to the embodiment of the present application. The device may be the second edge node or a chip built in the second edge node, and the device includes: a processor 412 and a communication interface 413. The processor 412 is configured to control and manage the device actions, e.g., the processor 412 is configured to support the device to perform the parsing of the request information, the determining of the second data amount, the generating of the indication information, and/or other processes for the techniques described herein in embodiments of the method. In addition, the apparatus may further include a memory 411 and a bus 414, the processor 412, the communication interface 413, and the memory 411 being connected to each other through the bus 414; the communication interface 413 is used to support the device for communication; the memory 411 is used to store program codes and data of the apparatus.
The processor 412 may be a central processor unit, a general purpose processor, a digital signal processor, an application specific integrated circuit, a field programmable gate array or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof. Which may implement or perform the various exemplary logic blocks, modules and circuits described in connection with this disclosure. The processor may also be a combination that performs the function of a computation, e.g., a combination comprising one or more microprocessors, a combination of a digital signal processor and a microprocessor, and so forth. Bus 414 may be a peripheral component interconnect standard (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, among others. The buses may be classified as address buses, data buses, control buses, etc. For ease of illustration, only one thick line is shown in fig. 13, but not only one bus or one type of bus.
The first edge node and the second edge node of the embodiment of the apparatus may correspond to the first edge node and the second edge node, respectively, in the embodiment of the method of the present application. In addition, for the purpose of implementing the respective flows of the above method embodiments, the descriptions of the method embodiments of the present application may be applicable to the device embodiments for brevity, and further details are not repeated herein.
The beneficial effects of the embodiment of the apparatus of the present application may refer to the beneficial effects of the corresponding method embodiments described above, and will not be described herein. In addition, the description of the related content in the embodiment of the device of the present application may also refer to the corresponding method embodiment.
Based on this, the embodiment of the application also provides a data exchange network, which comprises a first edge node and a second edge node. The first edge node may be a first edge node provided by the above apparatus embodiment, and configured to execute the step of the first edge node in the above method embodiment; the second edge node may be a second edge node provided by the above apparatus embodiment, and configured to perform the step of the second edge node in the above method embodiment.
Those of ordinary skill in the art will appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, or combinations of computer software and electronic hardware. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the solution. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
It will be clear to those skilled in the art that, for convenience and brevity of description, specific working procedures of the data exchange network, apparatus and units described above may refer to corresponding procedures in the foregoing method embodiments, which are not described herein again.
In the several embodiments provided in the present application, it should be understood that the disclosed data exchange network, apparatus and method may be implemented in other manners. For example, the apparatus embodiments described above are merely illustrative, e.g., the division of the units is merely a logical function division, and there may be additional divisions when actually implemented, e.g., multiple units or components may be combined or integrated into another system, or some features may be omitted or not performed. Alternatively, the coupling or direct coupling or communication connection shown or discussed with each other may be an indirect coupling or communication connection via some interfaces, devices or units, which may be in electrical, mechanical or other form.
The units described as separate units may or may not be physically separate, and units shown as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
In addition, each functional unit in the embodiments of the present application may be integrated in one processing unit, or each unit may exist alone physically, or two or more units may be integrated in one unit.
The functions, if implemented in the form of software functional units and sold or used as a stand-alone product, may be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application may be embodied essentially or in a part contributing to the prior art or in a part of the technical solution, in the form of a software product stored in a storage medium, comprising several instructions for causing a computer device (which may be a personal computer, a server, a network device, etc.) to perform all or part of the steps of the method according to the embodiments of the present application.
In another embodiment of the present application, a readable storage medium is provided, where computer-executable instructions are stored in the readable storage medium, where a device (may be a single-chip microcomputer, a chip, etc.) or a processor executes the steps of the first edge node in the control method for data exchange provided in the foregoing method embodiment. The aforementioned readable storage medium may include: various media capable of storing program codes, such as a U disk, a mobile hard disk, a read-only memory, a random access memory, a magnetic disk or an optical disk.
In another embodiment of the present application, a readable storage medium is further provided, where computer executable instructions are stored in the readable storage medium, where a device (may be a single-chip microcomputer, a chip, etc.) or a processor performs the steps of the second edge node in the control method for data exchange provided in the foregoing method embodiment. The aforementioned readable storage medium may include: various media capable of storing program codes, such as a U disk, a mobile hard disk, a read-only memory, a random access memory, a magnetic disk or an optical disk.
In another embodiment of the present application, there is also provided a computer program product comprising computer-executable instructions stored in a computer-readable storage medium; at least one processor of the device may read the computer-executable instructions from the computer-readable storage medium, the at least one processor executing the computer-executable instructions to cause the device to perform the steps of the first edge node in the method of controlling data exchange provided by the method embodiments described above.
In another embodiment of the present application, there is also provided a computer program product comprising computer-executable instructions stored in a computer-readable storage medium; the at least one processor of the device may read the computer-executable instructions from the computer-readable storage medium, the at least one processor executing the computer-executable instructions causing the device to perform the steps of the second edge node in the provided data communication method.
Finally, it should be noted that: the foregoing is merely illustrative of specific embodiments of the present application, and the scope of the present application is not limited thereto, but any changes or substitutions within the technical scope of the present application should be covered by the scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.

Claims (27)

  1. A method of controlling data switching in a data switching network comprising a first edge node and a second edge node, the method comprising:
    the first edge node counts a first data volume of data to be exchanged in an input data stream;
    the first edge node obtains indication information from a second edge node, wherein the indication information is used for indicating second data quantity, and the second edge node is an edge node outputting the data flow;
    the first edge node controls the exchange of the data stream according to the first data volume and the second data volume.
  2. The method of claim 1, wherein the first edge node controlling the exchange of the data stream based on the first data amount and the second data amount comprises:
    The first edge node determines a third data volume according to the first data volume and the second data volume;
    and if the third data volume is larger than a preset threshold value, the first edge node controls the exchange of the data flow.
  3. The method of claim 2, wherein the first edge node controls the switching of the data stream, comprising:
    the first edge node controls the flow of the data to be exchanged; and/or the number of the groups of groups,
    and the first edge node controls the flow of the source server corresponding to the data flow.
  4. A method according to claim 2 or 3, wherein the first edge node performs flow control on the data to be exchanged, comprising: the first edge node caches or discards the data to be exchanged, or controls the sending rate of the data to be exchanged to the second edge node;
    the first edge node performs flow control on the source server, and includes: the first edge node sends flow control information to the source server, wherein the flow control information is used for indicating at least one of the following: instructing the source server to suspend sending the data stream; instructing the source server to transmit the transmission rate of the data stream; indicating the amount of data that the origin server is allowed to send the data stream.
  5. The method according to any of claims 1-4, wherein the second amount of data relates to status information of the second edge node; and/or the number of the groups of groups,
    at least one of a time point, an interval and granularity at which the second edge node transmits the indication information is related to state information of the second edge node.
  6. The method of claim 5, wherein the state information of the second edge node comprises at least one of: the data volume of the data stream, the buffer status of the second edge node, the status of the destination server of the data stream have been output.
  7. The method according to any one of claims 1-6, further comprising:
    the first edge node sends request information to the second edge node, the request information is used for determining the second data volume, and the request information comprises at least one of the following information: the number of remaining data packets, the amount of remaining data, and service level agreement SLA information.
  8. The method of claim 7, wherein the request information is carried in packets of the data stream.
  9. The method according to any of claims 1-8, wherein before the first edge node obtains the indication information from the second edge node, the method further comprises:
    And the first edge node sends the data to be exchanged to the second edge node according to the preset data quantity.
  10. The method according to any of claims 1-9, wherein the data stream is a data stream divided according to a network output port or a destination network card.
  11. The method according to any of claims 1-10, wherein the data switching network comprises one or more virtual extended local area networks VXLANs, the data streams being data streams partitioned according to VXLANs.
  12. The method according to any of claims 1-11, wherein the data stream is a data stream divided according to five tuples.
  13. The method according to any of claims 10-12, wherein the partitioning of the data stream is further related to priority.
  14. A method of controlling data switching in a data switching network comprising a first edge node and a second edge node, the method comprising:
    the second edge node determines indication information corresponding to the data flow, wherein the indication information is used for indicating second data quantity, and the second edge node is an edge node outputting the data flow;
    the second edge node sends the indication information to the first edge node so that the first edge node controls the exchange of the data to be exchanged according to a first data volume and the second data volume of the data to be exchanged in the data stream, and the first data volume is obtained by statistics of the first edge node.
  15. The method of claim 14, wherein the second amount of data relates to state information of the second edge node; and/or the number of the groups of groups,
    at least one of a time point, an interval and granularity at which the second edge node transmits the indication information is related to state information of the second edge node.
  16. The method of claim 15, wherein the state information of the second edge node comprises at least one of: the data volume of the data stream, the buffer status of the second edge node, the status of the destination server of the data stream have been output.
  17. The method according to any of claims 14-16, wherein before the second edge node determines the indication information of the data flow, the method further comprises:
    the second edge node obtains request information from the first edge node, the request information being used to determine the second data amount, the request information including at least one of: the number of remaining data packets, the amount of remaining data, and service level agreement SLA information.
  18. The method of claim 17, wherein the request information is carried in packets of the data stream.
  19. The method according to any of claims 14-18, wherein before the second edge node determines the indication information of the data flow, the method further comprises:
    the second edge node obtains the data to be exchanged, which is sent by the first edge node according to a preset data volume.
  20. The method according to any of claims 14-19, wherein the data stream is a data stream divided according to a network port or destination network card.
  21. The method according to any of claims 14-20, wherein the data switching network comprises one or more virtual extended local area networks VXLANs, the data streams being data streams partitioned according to VXLANs.
  22. The method according to any of claims 14-21, wherein the data stream is a data stream divided according to five tuples.
  23. The method according to any of claims 14-22, wherein the partitioning of the data stream is further related to priority.
  24. A control device for data exchange, the device comprising: the device comprises a processor, a memory, a communication interface and a bus, wherein the processor, the memory and the communication interface are connected through the bus; the memory is configured to store program code which, when executed by the processor, causes the apparatus to perform the method of controlling data exchange of any of claims 1-13.
  25. A control device for data exchange, the device comprising: the device comprises a processor, a memory, a communication interface and a bus, wherein the processor, the memory and the communication interface are connected through the bus; the memory is configured to store program code which, when executed by the processor, causes the apparatus to perform the method of controlling data exchange of any of claims 14-23.
  26. A computer-readable storage medium, in which a computer program or instructions is stored which, when executed, implements a method of controlling data exchange according to any one of claims 1 to 13.
  27. A computer-readable storage medium, in which a computer program or instructions is stored which, when executed, implements a method of controlling data exchange according to any one of claims 14-23.
CN202180060636.3A 2021-12-29 2021-12-29 Data exchange control method and device Pending CN116686332A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/142564 WO2023123075A1 (en) 2021-12-29 2021-12-29 Data exchange control method and apparatus

Publications (1)

Publication Number Publication Date
CN116686332A true CN116686332A (en) 2023-09-01

Family

ID=86996841

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180060636.3A Pending CN116686332A (en) 2021-12-29 2021-12-29 Data exchange control method and device

Country Status (2)

Country Link
CN (1) CN116686332A (en)
WO (1) WO2023123075A1 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102025640A (en) * 2010-12-24 2011-04-20 北京星网锐捷网络技术有限公司 Flow control method, device and network device
CN110856222B (en) * 2018-08-20 2022-06-28 华为技术有限公司 Flow control method and device
WO2021078936A1 (en) * 2019-10-23 2021-04-29 Telefonaktiebolaget Lm Ericsson (Publ) Edge nodes, ue and methods performed therein
CN112512080A (en) * 2020-10-22 2021-03-16 中兴通讯股份有限公司 Flow control method, device, equipment and storage medium, link state notification method, device and equipment

Also Published As

Publication number Publication date
WO2023123075A1 (en) 2023-07-06

Similar Documents

Publication Publication Date Title
US11818037B2 (en) Switch device for facilitating switching in data-driven intelligent network
Sharma et al. Approximating fair queueing on reconfigurable switches
US20200296049A1 (en) Automatic rate limiting based on explicit network congestion notification in smart network interface card
US7916718B2 (en) Flow and congestion control in switch architectures for multi-hop, memory efficient fabrics
US7573821B2 (en) Data packet rate control
US20150029853A1 (en) Congestion control enforcement in a virtualized environment
US11290388B2 (en) Flow control method and apparatus
CN110650099A (en) Queuing system for predicting packet lifetime in computing devices
US10728156B2 (en) Scalable, low latency, deep buffered switch architecture
Liu et al. Floodgate: Taming incast in datacenter networks
US11646978B2 (en) Data communication method and apparatus
CN109995608B (en) Network rate calculation method and device
Avci et al. Congestion aware priority flow control in data center networks
US11805071B2 (en) Congestion control processing method, packet forwarding apparatus, and packet receiving apparatus
CN116686332A (en) Data exchange control method and device
US11870708B2 (en) Congestion control method and apparatus
US20240056385A1 (en) Switch device for facilitating switching in data-driven intelligent network
Chen et al. On meeting deadlines in datacenter networks
Khan et al. Receiver-driven flow scheduling for commodity datacenters
US20230060893A1 (en) Scalable loss tolerant remote direct memory access over optical infrastructure with shaped quota management
CN117041166A (en) Congestion control method and device, switch and computer readable storage medium
CN116868554A (en) Method for controlling data stream transmission and communication device

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