CN109660467B - Method and apparatus for controlling flow - Google Patents

Method and apparatus for controlling flow Download PDF

Info

Publication number
CN109660467B
CN109660467B CN201910140814.8A CN201910140814A CN109660467B CN 109660467 B CN109660467 B CN 109660467B CN 201910140814 A CN201910140814 A CN 201910140814A CN 109660467 B CN109660467 B CN 109660467B
Authority
CN
China
Prior art keywords
intermediate network
target service
average value
value
network product
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
Application number
CN201910140814.8A
Other languages
Chinese (zh)
Other versions
CN109660467A (en
Inventor
邵勇
王少岩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201910140814.8A priority Critical patent/CN109660467B/en
Publication of CN109660467A publication Critical patent/CN109660467A/en
Application granted granted Critical
Publication of CN109660467B publication Critical patent/CN109660467B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets

Landscapes

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

Abstract

The embodiment of the disclosure discloses a method and a device for controlling flow. One embodiment of the method comprises: acquiring the total flow of the target service accessed by the intermediate network product cluster at a preset period; in response to detecting that the total traffic exceeds a first traffic threshold of the target service, calculating a sending window average value according to a preset maximum transmission rate and a round trip time; and sending the average value of the sending window to the intermediate network products in the intermediate network product cluster so that the intermediate network products in the intermediate network product cluster modify the receiving window value of each data stream of the target service to be not more than the average value of the sending window. The embodiment realizes the suppression of flow increase from the flow source end and improves the flow control reaction speed.

Description

Method and apparatus for controlling flow
Technical Field
The embodiment of the disclosure relates to the technical field of computers, in particular to a method and a device for controlling flow.
Background
Cloud computing is self-evident as the beginning of the fourth information revolution, and has become a hotspot in the information field. The cloud infrastructure network is an important infrastructure of cloud computing, and a TCP protocol in the network is a transmission basis in the cloud network and bears most of service traffic. Since the TCP Incast communication mode (1-to-many, or many-to-many) initiates data requests to multiple service nodes of the backend at the same time, in some cases, the service cluster may respond to these requests at the same time. Then there may be a large number of instances in which the service node may send data to the same machine or service for a certain period of time. Thus, the traffic received by the intermediate network product is suddenly increased in a short time and even reaches the limit value thereof, so that the network is congested, the delay is increased, and other services are influenced. Therefore, it is necessary to provide a generic current limiting mechanism for the corresponding service, so as to reduce the influence of link fullness on other traffic flows.
Disclosure of Invention
The embodiment of the disclosure provides a method and a device for controlling flow.
In a first aspect, an embodiment of the present disclosure provides a method for controlling traffic, which is applied to a control end of an intermediate network product cluster, where the method includes: acquiring the total flow of the target service accessed by the intermediate network product cluster at a preset period; in response to detecting that the total traffic exceeds a first traffic threshold of the target service, calculating a sending window average value according to a preset maximum transmission rate and a round trip time; and sending the average value of the sending window to the intermediate network products in the intermediate network product cluster so that the intermediate network products in the intermediate network product cluster modify the receiving window value of each data stream of the target service to be not more than the average value of the sending window.
In some embodiments, the transmission window average is calculated by the following formula: wavg = (T: (RTTavg + δ) - ξ)/n, where Wavg is a sending window average value, T is a maximum transmission rate, RTTavg is an average round-trip time of each data flow of a target service under a non-congestion condition, n is the number of data flows of the target service, and δ and ξ are variables to be adjusted.
In some embodiments, the method further comprises: in response to detecting that the total traffic is between a first traffic threshold and a second traffic threshold for the target service, increasing ξ values by a predetermined first step length and then recalculating Wavg into a first average, where the first traffic threshold is less than the second traffic threshold; and sending the recalculated first average value to the intermediate network products in the intermediate network product cluster, so that the intermediate network products in the intermediate network product cluster modify the receiving window value of each data stream of the target service to be not more than the recalculated first average value.
In some embodiments, the method further comprises: in response to the fact that the total flow is detected to be between a second flow threshold and a third flow threshold of the target service, continuing to increase a xi value by a preset second step length, and then recalculating Wavg to obtain a second average value, wherein the second flow threshold is smaller than the third flow threshold, and the second step length is larger than the first step length; and sending the recalculated second average value to the intermediate network products in the intermediate network product cluster, so that the intermediate network products in the intermediate network product cluster modify the receiving window value of each data stream of the target service to be not greater than the recalculated second average value.
In some embodiments, the method further comprises: in response to detecting that the total flow exceeds a third flow threshold of the target service, continuing to increase the xi value by a predetermined third step length, and then recalculating Wavg to obtain a third average value, wherein the third step length is larger than the second step length; and sending the recalculated third average value to the intermediate network products in the intermediate network product cluster, so that the intermediate network products in the intermediate network product cluster modify the receiving window value of each data stream of the target service to be not greater than the recalculated third average value.
In some embodiments, the method further comprises: after the recalculated third average value is issued to the intermediate network products in the intermediate network product cluster, in response to detecting that the total flow is less than the first flow threshold, increasing the delta value and then recalculating to obtain a fourth average value; and sending the recalculated fourth average value to the intermediate network products in the intermediate network product cluster, so that the intermediate network products in the intermediate network product cluster modify the receiving window values of the data streams of the target service to be not greater than the recalculated fourth average value.
In some embodiments, the method further comprises: after issuing the recalculated fourth average value to an intermediate network product in the cluster of intermediate network products, in response to detecting that the total traffic is less than a fourth traffic threshold and the delta value has increased to a predetermined upper limit, sending an instruction to an intermediate network product in the cluster of intermediate network products to stop modifying the receive window value for each data flow of the target service, wherein the fourth traffic threshold is less than the first traffic threshold.
In a second aspect, an embodiment of the present disclosure provides a method for controlling traffic, which is applied to an intermediate network product, where the method includes: receiving a sending window average value of each data stream of a target service sent by a control end of an intermediate network product cluster; responding to the received ACK message of each data stream of the target service, and determining whether a window in the ACK message is larger than the average value of sending windows; if the window in the ACK message is larger than the average value of the sending windows, the window in the ACK message is modified into the average value of the sending windows, and the check value is recalculated; and continuously forwarding the modified ACK message.
In some embodiments, the method further comprises: and in response to receiving the instruction of stopping modifying the receiving window value of each data flow of the target service, directly forwarding the received ACK message of each data flow of the target service.
In a third aspect, an embodiment of the present disclosure provides an apparatus for controlling traffic, which is applied to a control end of an intermediate network product cluster, where the apparatus includes: an acquisition unit configured to acquire total flow of the intermediate network product cluster accessing the target service at a predetermined cycle; a calculation unit configured to calculate, in response to detecting that the total traffic exceeds a first traffic threshold of the target service, a sending window average according to a preset maximum transmission rate and a round trip time; and the sending unit is configured to send the sending window average value to the intermediate network products in the intermediate network product cluster, so that the intermediate network products in the intermediate network product cluster modify the receiving window value of each data stream of the target service to be not greater than the sending window average value.
In some embodiments, the transmission window average is calculated by the following formula: wavg = (T: (RTTavg + δ) - ξ)/n, where Wavg is a transmission window average value, T is a maximum transmission rate, RTTavg is an average round trip time of each data flow of a target service under a non-congestion condition, n is the number of data flows of the target service, and δ and ξ are variables to be adjusted.
In some embodiments, the apparatus further comprises an update unit configured to: in response to detecting that the total traffic is between a first traffic threshold and a second traffic threshold for the target service, increasing ξ values by a predetermined first step size and then recalculating Wavg into a first average, wherein the first traffic threshold is less than the second traffic threshold; and sending the recalculated first average value to the intermediate network products in the intermediate network product cluster, so that the intermediate network products in the intermediate network product cluster modify the receiving window value of each data stream of the target service to be not more than the recalculated first average value.
In some embodiments, the update unit is further configured to: in response to the fact that the total flow is detected to be between a second flow threshold and a third flow threshold of the target service, continuing to increase a xi value by a preset second step length, and then recalculating Wavg to obtain a second average value, wherein the second flow threshold is smaller than the third flow threshold, and the second step length is larger than the first step length; and sending the recalculated second average value to the intermediate network products in the intermediate network product cluster, so that the intermediate network products in the intermediate network product cluster modify the receiving window value of each data stream of the target service to be not greater than the recalculated second average value.
In some embodiments, the update unit is further configured to: in response to the fact that the total flow exceeds a third flow threshold of the target service, continuously increasing the xi value by a preset third step length, then recalculating Wavg to obtain a third average value, wherein the third step length is larger than the second step length; and sending the recalculated third average value to the intermediate network products in the intermediate network product cluster, so that the intermediate network products in the intermediate network product cluster modify the receiving window value of each data stream of the target service to be not greater than the recalculated third average value.
In some embodiments, the update unit is further configured to: after the recalculated third average value is sent to the intermediate network products in the intermediate network product cluster, in response to detecting that the total flow is less than the first flow threshold value, increasing a delta value, and then recalculating Wavg to obtain a fourth average value; and sending the recalculated fourth average value to the intermediate network products in the intermediate network product cluster, so that the intermediate network products in the intermediate network product cluster modify the receiving window values of the data streams of the target service to be not greater than the recalculated fourth average value.
In some embodiments, the apparatus further comprises a stopping unit configured to: after issuing the recalculated fourth average value to the intermediate network products in the cluster of intermediate network products, in response to detecting that the total traffic is less than a fourth traffic threshold and the delta value has increased to the predetermined upper limit, sending instructions to the intermediate network products in the cluster of intermediate network products to stop modifying the receive window value for each data flow of the target service, wherein the fourth traffic threshold is less than the first traffic threshold.
In a fourth aspect, an embodiment of the present disclosure provides an apparatus for controlling traffic, which is applied to an intermediate network product, where the apparatus includes: the receiving unit is configured to receive a sending window average value of each data stream of the target service sent by a control end of the intermediate network product cluster; a determining unit configured to determine whether a window in an ACK message is larger than a transmission window average value in response to receiving the ACK message of each data stream of the target service; the modification unit is configured to modify the window in the ACK message into a sending window average value and recalculate the check value if the window is larger than the sending window average value; and the forwarding unit is configured to forward the modified ACK message continuously.
In some embodiments, the forwarding unit is further configured to: and in response to receiving the instruction of stopping modifying the receiving window value of each data flow of the target service, directly forwarding the received ACK message of each data flow of the target service.
In a fifth aspect, an embodiment of the present disclosure provides an electronic device, including: one or more processors; a storage device having one or more programs stored thereon which, when executed by one or more processors, cause the one or more processors to implement a method as in any one of the first aspects.
In a sixth aspect, embodiments of the present disclosure provide a computer readable medium having a computer program stored thereon, where the program is to implement a method as in any one of the first aspect when executed by a processor.
The method and the device for controlling the flow rate provided by the embodiment of the disclosure control the flow rate by controlling the flow rate sending window value by judging whether the flow rate exceeds the speed limit. The flow control mechanism of the present disclosure is compatible with the current TCP protocol stack without modifying the TCP protocol stack according to Ws = min (Wc, wr) wherein: ws is the sending window value, wc is the congestion window value, and Wr is the receiving window value. By updating Wr's value, the send window value is reduced, thereby reducing the on-line traffic. The flow is suppressed from the flow source end to increase, and the flow control response is quick. The flow increase is suppressed from the flow source end, and the influence of the flow on other services on the intermediate link due to the congestion of the intermediate link when the flow exceeds the speed limit value is effectively prevented.
Drawings
Other features, objects and advantages of the present disclosure will become more apparent upon reading of the detailed description of non-limiting embodiments made with reference to the following drawings:
FIG. 1 is an exemplary system architecture diagram in which one embodiment of the present disclosure may be applied;
FIG. 2 is a flow diagram of one embodiment of a method for controlling traffic according to the present disclosure;
FIG. 3 is a flow chart of yet another embodiment of a method for controlling flow according to the present disclosure;
FIG. 4 is a schematic diagram of one application scenario of a method for controlling traffic in accordance with the present disclosure;
FIG. 5 is a schematic block diagram of one embodiment of an apparatus for controlling flow in accordance with the present disclosure;
FIG. 6 is a schematic construction of yet another embodiment of an apparatus for controlling flow in accordance with the present disclosure;
FIG. 7 is a schematic block diagram of a computer system suitable for use with an electronic device implementing embodiments of the present disclosure.
Detailed Description
The present disclosure is described in further detail below with reference to the accompanying drawings and examples. It is to be understood that the specific embodiments described herein are merely illustrative of the invention and are not to be construed as limiting the invention. It should be noted that, for convenience of description, only the portions related to the related invention are shown in the drawings.
It should be noted that, in the present disclosure, the embodiments and the features of the embodiments may be combined with each other without conflict. The present disclosure will be described in detail below with reference to the accompanying drawings in conjunction with embodiments.
Fig. 1 illustrates an exemplary system architecture 100 to which embodiments of the disclosed method for controlling traffic or apparatus for controlling traffic may be applied.
As shown in fig. 1, system architecture 100 may include a client 101, an intermediate network product 102, a server 103, and a control end 104. The network serves as a medium for providing communication links between clients 101, intermediate network products 102, and servers 103. The network may include various connection types, such as wired, wireless communication links, or fiber optic cables, to name a few.
A user may use client 101 to interact with server 103 through intermediary network product 102 to receive or send messages or the like. Various messaging client applications, such as a web browser application, a shopping-like application, a search-like application, an instant messaging tool, a mailbox client, social platform software, etc., may be installed on the client 101.
The client 101 may be hardware or software. When the client 101 is a hardware, it may be various electronic devices having a display screen and supporting web browsing, including but not limited to a smart phone, a tablet computer, an e-book reader, an MP3 player (Moving Picture Experts Group Audio Layer III, motion Picture Experts Group Audio Layer 3), an MP4 player (Moving Picture Experts Group Audio Layer IV, motion Picture Experts Group Audio Layer 4), a laptop portable computer, a desktop computer, and the like. When the client 101 is software, it can be installed in the electronic devices listed above. It may be implemented as a plurality of software or software modules (for example to provide distributed services) or as a single software or software module. And is not particularly limited herein.
The intermediate network product 102 may be a modem, router, firewall, switch, wireless AP, cabinet, patch panel, organizer, module, or the like.
The control end 104 is configured to control and manage the intermediate network product 102, for example, obtain statistical information such as a window and a bandwidth for ACK packet feedback from the intermediate network product 102.
The server 103 may be a server that provides various services, such as a background web server that provides support for web pages displayed on the client 101. The background web server may analyze and process the received data such as the web page request, and feed back the processing result (e.g., the web page data) to the client.
The server may be hardware or software. When the server is hardware, it may be implemented as a distributed server cluster formed by multiple servers, or may be implemented as a single server. When the server is software, it may be implemented as multiple pieces of software or software modules (e.g., multiple pieces of software or software modules used to provide distributed services), or as a single piece of software or software module. And is not particularly limited herein.
It should be noted that the method for controlling traffic provided by the embodiments of the present disclosure is generally performed by an intermediate network product and a control end, and accordingly, the apparatus for controlling traffic is generally disposed in the intermediate network product and the control end.
It should be understood that the number of clients, servers, intermediate network products, and control ends in fig. 1 is merely illustrative. There may be any number of clients, servers, intermediate network products, and control ends, as desired for an implementation.
With continued reference to fig. 2, a flow 200 of one embodiment of a method for controlling traffic in accordance with the present disclosure is shown. The method for controlling the flow comprises the following steps:
step 201, acquiring the total flow of the target service accessed by the intermediate network product cluster in a preset period.
In this embodiment, an execution subject of the method for controlling traffic (e.g., a control end of the intermediate network product cluster shown in fig. 1) may obtain the total traffic of accessing the target service from the intermediate network product cluster through a wired connection manner or a wireless connection manner. The traffic passing through an intermediate network product may belong to different services, so that the traffic information in the intermediate network product cluster is collected and integrated. For example, data traffic information of each network product accessing different services is acquired every 1s, and the traffic information is aggregated to obtain total traffic of accessing each service. And then comparing the service speed limit values with the speed limit values of the services one by one. Different speed limit values can be set for different services. The total traffic for different services may be calculated simultaneously and then the speed limit function may be performed separately for each service.
In response to detecting that the total traffic exceeds the first traffic threshold of the target service, a sending window average is calculated based on a preset maximum transmission rate and a round trip time, step 202.
In this embodiment, the first traffic threshold may be 90% of the speed limit value of the target service. And if the service A with the flow value larger than 90% of the speed limit value occurs, starting the cluster speed limit function. The maximum transmission rate may be a bandwidth. The Round Trip Time (RTT) may be an average value actually measured by the room. There are n data streams, which access the server service through the cluster network product. If forwarding at maximum rate, the following equation is satisfied:
t = W/RTT (equation 1)
RTT is the average round trip time of n data streams, T is the maximum transmission rate, and W is the average value of the transmission window.
From the above equation, the average value of the transmission window is the product of the maximum transmission rate and the round trip time.
In some optional implementations of this embodiment, T and RTT may be adjusted by the variable to be adjusted to obtain different W. As shown in the following formula:
RTT = RTTavg + δ (formula 2)
(RTTavg is the measured average value in the uncongested case, and delta is the variable to be adjusted)
Figure BDA0001978473350000081
(w i For the value of the transmission window of the ith stream,
Figure BDA0001978473350000082
sending the sum of the window values for n streams, xi being the variable to be adjusted)
Substituting (equation 2) (equation 3) into (equation 1):
Figure BDA0001978473350000083
thus, there are:
wavg = (T (RTTavg + δ) - ξ)/n (formula 5)
(Wavg is the average value of the transmission window)
And the following are known:
ws = min (Wc, wr) (Ws is the transmit window value, wc is the congestion window value, wr is the receive window value)
In a scenario with a large flow, wc is large and Wr is usually smaller than Wc, then Ws can be controlled by controlling Wr value. And Wavg that calculates through our preset transmission rate assigns the value to Wr, thus can control the sending end window value, thus influence the sending end.
Step 203, sending the average value of the sending window to the intermediate network products in the intermediate network product cluster, so that the intermediate network products in the intermediate network product cluster modify the receiving window value of each data stream of the target service to be not greater than the average value of the sending window.
In this embodiment, when the traffic threshold of the access service a reaches the first traffic threshold (for example, 90% of the speed limit value), the average value Wavg of the sending window is calculated and sent to each intermediate network product. And suppressing the flow with a larger flow and a window value larger than Wavg, and releasing the flow with a window value smaller than Wavg, so that the flow is allowed to continue to increase, and the flow is ensured to be stable. The newly built traffic is also allowed to continue to increase. If the window value in the ACK message received by the intermediate network product is smaller than Wavg, the ACK message is directly forwarded without being modified, and if the window value in the ACK message is larger than Wavg, the ACK message is regenerated and forwarded after the window value in the ACK message is modified to Wavg.
In some optional implementations of this embodiment, the method further includes: in response to detecting that the total traffic is between the first traffic threshold and the second traffic threshold for the target service, the ξ value is incremented by a predetermined first step size and then the Wavg is recalculated to a first average. And sending the recalculated first average value to the intermediate network products in the intermediate network product cluster, so that the intermediate network products in the intermediate network product cluster modify the receiving window value of each data stream of the target service to be not more than the recalculated first average value. The second flow threshold may be 96% of the limit speed. For example, when access service A traffic reaches interval 1: [90% -96% ], the value ξ is increased by the first step size, causing the flow to drop. And continuously and repeatedly increasing the xi value by the first step length to recalculate the Wavg and then transmitting the Wavg to an intermediate network product, so that the flow fluctuates in the interval 1. The purpose is to keep the flow in the interval 1 by feeding back the current flow value and dynamically adjusting the xi value.
In some optional implementations of this embodiment, the method further includes: the method further comprises the following steps: in response to the fact that the total flow is detected to be between a second flow threshold and a third flow threshold of the target service, continuing to increase a xi value by a preset second step length, and then recalculating Wavg to obtain a second average value, wherein the second flow threshold is smaller than the third flow threshold, and the second step length is larger than the first step length; and sending the recalculated second average value to the intermediate network products in the intermediate network product cluster, so that the intermediate network products in the intermediate network product cluster modify the receiving window value of each data stream of the target service to be not greater than the recalculated second average value. The third flow threshold may be 98% of the speed limit. For example, when access service A traffic reaches interval 2: [96% -98% ], the value ξ is increased by a second step, causing the flow to drop. And continuously and repeatedly increasing the xi value to recalculate the Wavg and then sending the Wavg to an intermediate network product by the second step length, so that the flow fluctuates in the interval 1. The second step size is larger than the first step size. The purpose is to accelerate the speed of regulating xi value and make the flow quickly return to the interval 1.
In some optional implementations of this embodiment, the method further includes: in response to detecting that the total flow exceeds a third flow threshold of the target service, continuously increasing the xi value by a preset third step length, then recalculating Wavg to obtain a third average value, wherein the third step length is larger than the second step length; and sending the recalculated third average value to the intermediate network products in the intermediate network product cluster, so that the intermediate network products in the intermediate network product cluster modify the receiving window value of each data stream of the target service to be not greater than the recalculated third average value. For example, when the flow of the access service A reaches 98% of the speed limit value, the xi value is dynamically adjusted greatly, the Wavg is recalculated and then is issued to the intermediate network product, so that the flow is reduced to the interval 1.
In some optional implementations of this embodiment, the method further includes: after the recalculated third average value is issued to the intermediate network products in the cluster of intermediate network products, in response to detecting that the total flow is less than the first flow threshold, increasing the delta value and then recalculating Wavg to obtain a fourth average value; and sending the recalculated fourth average value to the intermediate network products in the intermediate network product cluster, so that the intermediate network products in the intermediate network product cluster modify the receiving window values of the data streams of the target service to be not greater than the recalculated fourth average value. For example, when the flow of the access service A is reduced from more than 90% to less than 90% through the speed limit, the delta value is gradually increased, the interval is 1min or the upper limit value set by the delta is reached. So that the traffic returns to interval 1.
In some optional implementations of this embodiment, the method further includes: after issuing the recalculated fourth average value to the intermediate network products in the cluster of intermediate network products, in response to detecting that the total traffic is less than the fourth traffic threshold and the delta value has increased to the predetermined upper limit, sending instructions to the intermediate network products in the cluster of intermediate network products to stop modifying the receive window values for the data streams of the target service. The fourth flow threshold may be 80% of the limit. And if the flow is still lower than 80% of the speed limit value after reaching the upper limit value set by delta, no longer performing flow prediction and modification treatment, and issuing a window closing updating instruction to the intermediate network products in the intermediate network product cluster to enable the intermediate network products to stop modifying the receiving window value of each data stream of the target service.
With further reference to fig. 3, a flow 300 of yet another embodiment of a method for controlling flow is illustrated. The process 300 of the method for controlling flow includes the steps of:
step 301, receiving a sending window average value of each data stream of a target service sent by a control end of an intermediate network product cluster.
In this embodiment, an execution subject of the method for controlling traffic (e.g., the intermediate network product shown in fig. 1) may receive the average value of the transmission windows of the data streams of the target service from the control end of the intermediate network product cluster through a wired connection manner or a wireless connection manner. The intermediate network product then begins the speed limit function.
Step 302, receiving ACK messages of each data stream of the target service.
In this embodiment, the ACK message includes a 16-bit window value field for indicating the buffer size of the recipient that can accept the data of the other party.
Step 303, determine whether the window in the ACK message is greater than the send window average.
In this embodiment, the window value is parsed from the ACK packet, and then compared with the average value of the transmission window received from the control terminal.
And 304, if the value is larger than the threshold value, modifying the window in the ACK message into the average value of the sending window, recalculating the check value, and continuously forwarding the modified ACK message.
In this embodiment, after receiving the instruction of modifying the window by the service a, the intermediate network product modifies the ACK packet of the service to Wavg if the window is greater than Wavg, recalculates the check value, and continues forwarding. And when the issued window updating command is received and the window is closed, the updating operation is not carried out.
And 305, if the number is smaller than or equal to the number, directly forwarding the ACK message of each data flow of the target service.
In this embodiment, the packet is directly forwarded without limiting the speed of the data stream with small traffic.
The method provided by the above embodiment of the present disclosure sends the modification window modification instruction in advance through the predictive computation of the control end. Compared with the traditional flow limiting mechanism, the flow window adjustment is carried out only by waiting for 3 times of repeated ACK or even overtime of the message, the speed is higher, and the corresponding algorithm mechanism can be conveniently adjusted instead of only waiting for 3 times of repeated ACK for processing.
With continued reference to fig. 4, fig. 4 is a schematic diagram of an application scenario of the method for controlling flow according to the present embodiment. In the application scenario of fig. 4, a user sends a TCP packet for service a to a server through a client. The TCP message is transferred through the intermediate network product. The control end monitors the total flow of the service A by collecting the flow information of the intermediate network products. If the total traffic of the service A reaches 90% of the speed limit value, the average value of the sending window is calculated according to the preset maximum transmission rate and the round trip time. And the control end sends the average value of the sending window to the intermediate network product, and the intermediate network product starts a speed limiting function. When the intermediate network product receives the ACK message, if the window value in the message is larger than the average value of the sending windows, the intermediate network product modifies the window value and regenerates the ACK message and forwards the ACK message to the client, otherwise, the intermediate network product directly forwards the ACK message.
The method provided by the embodiment of the disclosure modifies the ACK window value by prejudging the increase of the flow, suppresses the flow increase from the flow source end, and effectively prevents the flow from exceeding the speed limit value and jamming the middle link to influence other services.
The method disclosed by the invention has the following advantages:
1. the flow is suppressed from the flow source end to increase, and the flow control response is quick.
2. The method is a general flow limiting technology, is suitable for different TCP services, can flexibly adjust different speed limit values, and can also facilitate compiling different speed limit mechanisms.
3. The flow of each flow is balanced, and the extreme imbalance of the limited flow is prevented.
4. The sending window value is influenced by modifying the ACK window value without modifying a protocol stack, so that the applicability is high.
5. The speed limit is adjusted in advance before the speed limit value, instead of limiting the speed after a large amount of packet loss, and the link flow is optimized.
With further reference to fig. 5, as an implementation of the methods shown in the above-mentioned figures, the present disclosure provides an embodiment of an apparatus for controlling traffic, which is applied to a control end of an intermediate network product cluster, and the embodiment of the apparatus corresponds to the embodiment of the method shown in fig. 2, and the apparatus may be applied to various electronic devices in particular.
As shown in fig. 5, the apparatus 500 for controlling flow rate of the present embodiment includes: acquisition section 501, calculation section 502, and transmission section 503. Wherein, the obtaining unit 501 is configured to obtain the total flow of the intermediate network product cluster accessing the target service in a predetermined period. A calculating unit 502 configured to calculate a sending window average value according to a preset maximum transmission rate and a round trip time in response to detecting that the total traffic exceeds a first traffic threshold of the target service. A sending unit 503 configured to send the sending window average value to the intermediate network products in the intermediate network product cluster, so that the intermediate network products in the intermediate network product cluster modify the receiving window value of each data stream of the target service to be not greater than the sending window average value.
In this embodiment, the specific processing of the acquiring unit 501, the calculating unit 502 and the sending unit 503 of the apparatus 500 for controlling flow rate may refer to step 201, step 202 and step 203 in the corresponding embodiment of fig. 2.
In some optional implementations of this embodiment, the transmission window average is calculated by the following formula: wavg = (T: (RTTavg + δ) - ξ)/n, where Wavg is a transmission window average value, T is a maximum transmission rate, RTTavg is an average round trip time of each data flow of a target service under a non-congestion condition, n is the number of data flows of the target service, and δ and ξ are variables to be adjusted.
In some optional implementations of this embodiment, the apparatus 500 further comprises an updating unit (not shown in the drawings) configured to: in response to detecting that the total traffic is between a first traffic threshold and a second traffic threshold for the target service, increasing ξ values by a predetermined first step length and then recalculating Wavg into a first average, where the first traffic threshold is less than the second traffic threshold; and sending the recalculated first average value to the intermediate network products in the intermediate network product cluster, so that the intermediate network products in the intermediate network product cluster modify the receiving window value of each data stream of the target service to be not more than the recalculated first average value.
In some optional implementations of this embodiment, the update unit is further configured to: in response to the fact that the total flow is detected to be between a second flow threshold and a third flow threshold of the target service, continuing to increase a xi value by a preset second step length, and then recalculating Wavg to obtain a second average value, wherein the second flow threshold is smaller than the third flow threshold, and the second step length is larger than the first step length; and sending the recalculated second average value to the intermediate network products in the intermediate network product cluster, so that the intermediate network products in the intermediate network product cluster modify the receiving window value of each data stream of the target service to be not more than the recalculated second average value.
In some optional implementations of this embodiment, the update unit is further configured to: in response to the fact that the total flow exceeds a third flow threshold of the target service, continuously increasing the xi value by a preset third step length, then recalculating Wavg to obtain a third average value, wherein the third step length is larger than the second step length; and sending the recalculated third average value to the intermediate network products in the intermediate network product cluster, so that the intermediate network products in the intermediate network product cluster modify the receiving window value of each data stream of the target service to be not greater than the recalculated third average value.
In some optional implementations of this embodiment, the update unit is further configured to: after the recalculated third average value is sent to the intermediate network products in the intermediate network product cluster, in response to detecting that the total flow is less than the first flow threshold value, increasing a delta value, and then recalculating Wavg to obtain a fourth average value; and sending the recalculated fourth average value to the intermediate network products in the intermediate network product cluster, so that the intermediate network products in the intermediate network product cluster modify the receiving window value of each data stream of the target service to be not greater than the recalculated fourth average value.
In some optional implementations of this embodiment, the apparatus further comprises a stopping unit (not shown in the drawings) configured to: after issuing the recalculated fourth average value to the intermediate network products in the cluster of intermediate network products, in response to detecting that the total traffic is less than a fourth traffic threshold and the delta value has increased to the predetermined upper limit, sending instructions to the intermediate network products in the cluster of intermediate network products to stop modifying the receive window value for each data flow of the target service, wherein the fourth traffic threshold is less than the first traffic threshold.
With further reference to fig. 6, as an implementation of the methods shown in the above-mentioned figures, the present disclosure provides an embodiment of an apparatus for controlling traffic, which is applied to an intermediate network product, and the apparatus embodiment corresponds to the method embodiment shown in fig. 3, and the apparatus may be applied to various electronic devices in particular.
As shown in fig. 6, the apparatus 600 for controlling a flow rate of the present embodiment includes: a receiving unit 601, a determining unit 602, a modifying unit 603 and a forwarding unit 604. The receiving unit 601 is configured to receive a sending window average value of each data stream of the target service sent by the control end of the intermediate network product cluster. A determining unit 602, configured to determine, in response to receiving an ACK message of each data flow of the target service, whether a window in the ACK message is greater than a sending window average value. A modifying unit 603 configured to modify the window in the ACK message to the sending window average value and recalculate the check value if the window is larger than the sending window average value. And a forwarding unit 604 configured to forward the modified ACK packet continuously.
In this embodiment, the specific processing of the receiving unit 601, the determining unit 602, the modifying unit 603 and the forwarding unit 604 of the apparatus 600 for controlling traffic may refer to step 301, step 302, step 303 and step 304 in the corresponding embodiment of fig. 3.
In some optional implementations of this embodiment, the forwarding unit 604 is further configured to: and in response to receiving the instruction of stopping modifying the receiving window value of each data flow of the target service, directly forwarding the received ACK message of each data flow of the target service.
Referring now to fig. 7, a schematic diagram of an electronic device (e.g., a control end or an intermediate network product of fig. 1) 700 suitable for use in implementing embodiments of the present disclosure is shown. The control end or the intermediate network product shown in fig. 7 is only an example, and should not bring any limitation to the functions and the use range of the embodiments of the present disclosure.
As shown in fig. 7, electronic device 700 may include a processing means (e.g., central processing unit, graphics processor, etc.) 701 that may perform various appropriate actions and processes in accordance with a program stored in a Read Only Memory (ROM) 702 or a program loaded from a storage means 708 into a Random Access Memory (RAM) 703. In the RAM 703, various programs and data necessary for the operation of the electronic apparatus 700 are also stored. The processing device 701, the ROM 702, and the RAM 703 are connected to each other by a bus 704. An input/output (I/O) interface 705 is also connected to bus 704.
Generally, the following devices may be connected to the I/O interface 705: input devices 706 including, for example, a touch screen, touch pad, keyboard, mouse, camera, microphone, accelerometer, gyroscope, etc.; an output device 707 including, for example, a Liquid Crystal Display (LCD), a speaker, a vibrator, and the like; storage 708, including, for example, magnetic tape, hard disk, etc.; and a communication device 709. The communication means 709 may allow the electronic device 700 to communicate wirelessly or by wire with other devices to exchange data. While fig. 7 illustrates an electronic device 700 having various means, it is to be understood that not all illustrated means are required to be implemented or provided. More or fewer devices may be alternatively implemented or provided. Each block shown in fig. 7 may represent one device or may represent multiple devices as desired.
In particular, the processes described above with reference to the flow diagrams may be implemented as computer software programs, according to embodiments of the present disclosure. For example, embodiments of the present disclosure include a computer program product comprising a computer program embodied on a computer readable medium, the computer program comprising program code for performing the method illustrated in the flow chart. In such an embodiment, the computer program may be downloaded and installed from a network via the communication means 709, or may be installed from the storage means 708, or may be installed from the ROM 702. The computer program, when executed by the processing device 701, performs the above-described functions defined in the methods of embodiments of the present disclosure. It should be noted that the computer readable medium described in the embodiments of the present disclosure may be a computer readable signal medium or a computer readable storage medium or any combination of the two. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples of the computer readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In embodiments of the disclosure, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. In embodiments of the present disclosure, however, a computer readable signal medium may comprise a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated data signal may take many forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to: electrical wires, optical cables, RF (radio frequency), etc., or any suitable combination of the foregoing.
The computer readable medium may be embodied in the electronic device; or may be separate and not incorporated into the electronic device. The computer readable medium carries one or more programs which, when executed by the electronic device, cause the electronic device to: acquiring the total flow of the target service accessed by the intermediate network product cluster at a preset period; in response to detecting that the total traffic exceeds a first traffic threshold of the target service, calculating a sending window average value according to a preset maximum transmission rate and a round trip time; and sending the average value of the sending window to the intermediate network products in the intermediate network product cluster so that the intermediate network products in the intermediate network product cluster modify the receiving window value of each data stream of the target service to be not more than the average value of the sending window. Or cause the electronic device to: receiving a sending window average value of each data stream of a target service sent by a control end of an intermediate network product cluster; responding to the received ACK message of each data stream of the target service, and determining whether a window in the ACK message is larger than the average value of the sending windows; if the window in the ACK message is larger than the average value of the sending windows, the window in the ACK message is modified into the average value of the sending windows, and the check value is recalculated; and continuously forwarding the modified ACK message.
Computer program code for carrying out operations for embodiments of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, smalltalk, C + +, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider).
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The units described in the embodiments of the present disclosure may be implemented by software or hardware. The described units may also be provided in a processor, and may be described as: a processor includes an acquisition unit, a calculation unit, and a transmission unit. The names of these units do not in some cases constitute a limitation to the unit itself, and for example, the acquisition unit may also be described as a "unit that acquires the total flow of the intermediate network product cluster to the target service at a predetermined cycle".
The foregoing description is only exemplary of the preferred embodiments of the disclosure and is illustrative of the principles of the technology employed. It will be appreciated by those skilled in the art that the scope of the invention in the present disclosure is not limited to the specific combination of the above-mentioned features, but also encompasses other embodiments in which any combination of the above-mentioned features or their equivalents is made without departing from the inventive concept. For example, the above features and the technical features disclosed in the present disclosure (but not limited to) having similar functions are replaced with each other to form the technical solution.

Claims (20)

1. A method for controlling traffic, applied to a control end of an intermediate network product cluster, wherein the method comprises:
acquiring data traffic information of different services accessed by the intermediate network product cluster in a preset period, and aggregating the data traffic information of the different services respectively to obtain respective total traffic of the different services;
in response to detecting that the total traffic of the target service exceeds a first traffic threshold of the target service, calculating a sending window average value according to a preset maximum transmission rate and a round trip time;
and sending the average sending window value to an intermediate network product in the intermediate network product cluster, so that the intermediate network product in the intermediate network product cluster modifies the receiving window value of each data stream of the target service to be not more than the average sending window value.
2. The method of claim 1, wherein the transmission window average is calculated by the following formula:
wavg = (T: (RTTavg + δ) - ξ)/n, where Wavg is a sending window average value, T is a maximum transmission rate, RTTavg is an average round-trip time of each data flow of the target service in a non-congestion situation, n is the number of data flows of the target service, and δ and ξ are variables to be adjusted.
3. The method of claim 2, wherein the method further comprises:
in response to detecting that the total flow of the target service is between a first flow threshold and a second flow threshold of the target service, increasing a ξ value by a predetermined first step length and then recalculating Wavg into a first average value, wherein the first flow threshold is less than the second flow threshold;
and sending the recalculated first average value to the intermediate network products in the intermediate network product cluster, so that the intermediate network products in the intermediate network product cluster modify the receiving window value of each data stream of the target service to be not greater than the recalculated first average value.
4. The method of claim 3, wherein the method further comprises:
in response to detecting that the total flow of the target service is between a second flow threshold and a third flow threshold of the target service, continuing to increase a ξ value by a predetermined second step size, and then recalculating Wavg to obtain a second average value, wherein the second flow threshold is smaller than the third flow threshold, and the second step size is larger than the first step size;
sending the recalculated second average value to an intermediate network product in the intermediate network product cluster, so that the intermediate network product in the intermediate network product cluster modifies the reception window value of each data stream of the target service to be not greater than the recalculated second average value.
5. The method of claim 4, wherein the method further comprises:
in response to detecting that the total flow of the target service exceeds a third flow threshold of the target service, continuing to increase a ξ value by a predetermined third step size, and then recalculating Wavg to obtain a third average value, wherein the third step size is larger than the second step size;
and sending the recalculated third average value to the intermediate network products in the intermediate network product cluster, so that the intermediate network products in the intermediate network product cluster modify the receiving window value of each data stream of the target service to be not greater than the recalculated third average value.
6. The method of claim 5, wherein the method further comprises:
after the recalculated third average value is issued to the intermediate network products in the intermediate network product cluster, in response to detecting that the total flow of the target service is less than the first flow threshold, increasing a delta value, and then recalculating Wavg to obtain a fourth average value;
sending the recalculated fourth average value to an intermediate network product in the intermediate network product cluster, so that the intermediate network product in the intermediate network product cluster modifies the receive window value of each data stream of the target service to be not greater than the recalculated fourth average value.
7. The method of claim 6, wherein the method further comprises:
after issuing the recalculated fourth average to the intermediate network products in the intermediate network product cluster, in response to detecting that the total traffic of the target service is less than a fourth traffic threshold and that the delta value has increased to a predetermined upper limit, sending an instruction to the intermediate network products in the intermediate network product cluster to stop modifying receive window values for the data flows of the target service, wherein the fourth traffic threshold is less than the first traffic threshold.
8. A method for controlling traffic, applied to an intermediate network product, wherein the method comprises:
receiving a sending window average value of each data stream of a target service sent by a control end of an intermediate network product cluster according to the method of any one of claims 1-7;
responding to the received ACK message of each data stream of the target service, and determining whether a window in the ACK message is larger than the average value of the sending windows;
if so, modifying the window in the ACK message into the average value of the sending window, and recalculating the check value;
and continuously forwarding the modified ACK message.
9. The method of claim 8, wherein the method further comprises:
and in response to receiving an instruction of stopping modifying the receiving window value of each data flow of the target service, directly forwarding the received ACK message of each data flow of the target service.
10. An apparatus for controlling traffic, applied to a control end of an intermediate network product cluster, wherein the apparatus comprises:
the acquisition unit is configured to acquire data traffic information of different services accessed by the intermediate network product cluster at a preset period, and aggregate the data traffic information of the different services respectively to obtain respective total traffic of the different services;
a calculation unit configured to calculate a sending window average according to a preset maximum transmission rate and a round trip time in response to detecting that a total traffic of a target service exceeds a first traffic threshold of the target service;
a sending unit configured to send the sending window average to an intermediate network product in the intermediate network product cluster, so that the intermediate network product in the intermediate network product cluster modifies a receiving window value of each data stream of the target service to be not greater than the sending window average.
11. The apparatus of claim 10, wherein the transmission window average is calculated by the following formula:
wavg = (T: (RTTavg + δ) - ξ)/n, where Wavg is a sending window average value, T is a maximum transmission rate, RTTavg is an average round-trip time of each data flow of the target service in a non-congestion situation, n is the number of data flows of the target service, and δ and ξ are variables to be adjusted.
12. The apparatus of claim 11, wherein the apparatus further comprises an update unit configured to:
in response to detecting that the total flow of the target service is between a first flow threshold and a second flow threshold of the target service, increasing a ξ value by a predetermined first step length and then recalculating Wavg into a first average value, wherein the first flow threshold is less than the second flow threshold;
and sending the recalculated first average value to the intermediate network products in the intermediate network product cluster, so that the intermediate network products in the intermediate network product cluster modify the receiving window value of each data stream of the target service to be not greater than the recalculated first average value.
13. The apparatus of claim 12, wherein the update unit is further configured to:
in response to detecting that the total flow of the target service is between a second flow threshold and a third flow threshold of the target service, continuously increasing a ξ value by a predetermined second step size, and then recalculating Wavg into a second average value, wherein the second flow threshold is smaller than the third flow threshold, and the second step size is larger than the first step size;
and sending the recalculated second average value to the intermediate network products in the intermediate network product cluster, so that the intermediate network products in the intermediate network product cluster modify the receiving window value of each data stream of the target service to be not greater than the recalculated second average value.
14. The apparatus of claim 13, wherein the update unit is further configured to:
in response to detecting that the total flow of the target service exceeds a third flow threshold of the target service, continuing to increase a ξ value by a predetermined third step size, and then recalculating Wavg to obtain a third average value, wherein the third step size is larger than the second step size;
and sending the recalculated third average value to the intermediate network products in the intermediate network product cluster, so that the intermediate network products in the intermediate network product cluster modify the receiving window value of each data stream of the target service to be not greater than the recalculated third average value.
15. The apparatus of claim 14, wherein the update unit is further configured to:
after the recalculated third average value is issued to the intermediate network products in the intermediate network product cluster, in response to detecting that the total flow of the target service is less than the first flow threshold, increasing a delta value, and then recalculating Wavg to obtain a fourth average value;
sending the recalculated fourth average value to an intermediate network product in the intermediate network product cluster, so that the intermediate network product in the intermediate network product cluster modifies the receive window value of each data stream of the target service to be not greater than the recalculated fourth average value.
16. The apparatus of claim 15, wherein the apparatus further comprises a stopping unit configured to:
after issuing the recalculated fourth average value to an intermediate network product in the intermediate network product cluster, in response to detecting that the total traffic of the target service is less than a fourth traffic threshold and that the delta value has increased to a predetermined upper limit, sending an instruction to the intermediate network product in the intermediate network product cluster to stop modifying receive window values for data streams of the target service, wherein the fourth traffic threshold is less than the first traffic threshold.
17. An apparatus for controlling traffic applied to an intermediate network product, wherein the apparatus comprises:
a receiving unit configured to receive a sending window average value of each data flow of a target service sent by a control end of an intermediate network product cluster according to the method of any one of claims 1-7;
a determining unit configured to determine, in response to receiving an ACK message of each data flow of the target service, whether a window in the ACK message is greater than the sending window average value;
a modification unit configured to modify the window in the ACK message to the sending window average value and recalculate the check value if the window is larger than the sending window average value;
and the forwarding unit is configured to forward the modified ACK message continuously.
18. The apparatus of claim 17, wherein the forwarding unit is further configured to:
and in response to receiving an instruction of stopping modifying the receiving window value of each data flow of the target service, directly forwarding the received ACK message of each data flow of the target service.
19. An electronic device, comprising:
one or more processors;
a storage device having one or more programs stored thereon,
when executed by the one or more processors, cause the one or more processors to implement the method of any one of claims 1-9.
20. A computer-readable medium, on which a computer program is stored which, when being executed by a processor, carries out the method according to any one of claims 1-9.
CN201910140814.8A 2019-02-26 2019-02-26 Method and apparatus for controlling flow Active CN109660467B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910140814.8A CN109660467B (en) 2019-02-26 2019-02-26 Method and apparatus for controlling flow

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910140814.8A CN109660467B (en) 2019-02-26 2019-02-26 Method and apparatus for controlling flow

Publications (2)

Publication Number Publication Date
CN109660467A CN109660467A (en) 2019-04-19
CN109660467B true CN109660467B (en) 2022-12-23

Family

ID=66123733

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910140814.8A Active CN109660467B (en) 2019-02-26 2019-02-26 Method and apparatus for controlling flow

Country Status (1)

Country Link
CN (1) CN109660467B (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114095443B (en) * 2020-08-24 2023-11-03 百度在线网络技术(北京)有限公司 Method, device, electronic equipment and readable storage medium for controlling flow
CN112073329B (en) * 2020-08-25 2023-01-24 北京五八信息技术有限公司 Distributed current limiting method and device, electronic equipment and storage medium
CN113328906B (en) * 2021-04-22 2023-01-06 成都欧珀通信科技有限公司 Flow real-time monitoring method and device, storage medium and electronic equipment
CN113709056B (en) * 2021-08-26 2022-09-09 无锡沐创集成电路设计有限公司 Memory flow control method and device, storage medium and electronic equipment
CN117319312B (en) * 2023-11-29 2024-03-08 凯美瑞德(苏州)信息科技股份有限公司 Data flow control method and device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103647722A (en) * 2013-11-19 2014-03-19 中国科学院计算技术研究所 Reputation-based link congestion control method

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1324862C (en) * 2004-01-06 2007-07-04 北京邮电大学 Method for regulating congest window in communication network
CN101982951B (en) * 2010-11-19 2012-07-11 华为技术有限公司 Data transmission control method and intermediate node
CN102201997A (en) * 2011-06-03 2011-09-28 华为技术有限公司 Data transmission control method and equipment
US8831041B2 (en) * 2011-06-27 2014-09-09 Citrix Systems, Inc. Prioritizing highly compressed traffic to provide a predetermined quality of service
CN105323187B (en) * 2014-07-31 2020-02-07 北京网康科技有限公司 Congestion control method and device
CN104796350B (en) * 2015-04-29 2018-03-09 广西大学 A kind of multipath TCP jamming control methods based on continuous packet labeling

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103647722A (en) * 2013-11-19 2014-03-19 中国科学院计算技术研究所 Reputation-based link congestion control method

Also Published As

Publication number Publication date
CN109660467A (en) 2019-04-19

Similar Documents

Publication Publication Date Title
CN109660467B (en) Method and apparatus for controlling flow
JP6029074B2 (en) Reduce inter-arrival delay in network traffic
JP6178523B2 (en) Transport accelerator implementing request manager and connection manager functionality
CN106789718B (en) Data transmission congestion control method, equipment, server and programmable equipment
CN110022264B (en) Method for controlling network congestion, access device and computer readable storage medium
US20130185406A1 (en) Communication method of target node to prefetch segments of content in content-centric network (ccn) and target node
WO2015096692A1 (en) Method and system for controlling data reception traffic and computer storage medium
JP6542866B2 (en) Method and system for buffer based bandwidth measurement and adaptive data transmission in a real time live environment
US11258717B2 (en) Method for sending service packet, network device, and system
CN113453045B (en) Network bandwidth prediction method, system, device and storage medium
US11411865B2 (en) Network resource scheduling method, apparatus, electronic device and storage medium
US20180091631A1 (en) Systems and methods for writing prioritized http/2 data to a socket buffer
WO2020026018A1 (en) Method for downloading file, device, apparatus/terminal/ server, and storage medium
WO2024021777A1 (en) Data transmission method, related apparatus, device and storage medium
US9584420B2 (en) Switching between loss-based and delay-based mode for real-time media congestion controllers
CN114389959A (en) Network congestion control method and device, electronic equipment and storage medium
CN107786371B (en) Data acceleration method and device and storage medium
EP3560152B1 (en) Determining the bandwidth of a communication link
JP5308364B2 (en) Transmission device, transmission method, and program
CN110858844A (en) Service request processing method, control method, device, system and electronic equipment
US9369509B2 (en) Stream sharing method, apparatus, and system
CN117014379A (en) Code rate control method, device, electronic equipment and storage medium
CN112737971B (en) Data processing method, device, storage medium and network equipment
JP2022100218A (en) Methods and apparatus to facilitate data transmission
CN114095907A (en) Bluetooth connection control method, device and equipment

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
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20190419

Assignee: Beijing Intellectual Property Management Co.,Ltd.

Assignor: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd.

Contract record no.: X2023110000096

Denomination of invention: Method and device for controlling flow

Granted publication date: 20221223

License type: Common License

Record date: 20230821

EE01 Entry into force of recordation of patent licensing contract