CN117579903A - Data flow control method, device, electronic device and storage medium - Google Patents
Data flow control method, device, electronic device and storage medium Download PDFInfo
- Publication number
- CN117579903A CN117579903A CN202311619222.7A CN202311619222A CN117579903A CN 117579903 A CN117579903 A CN 117579903A CN 202311619222 A CN202311619222 A CN 202311619222A CN 117579903 A CN117579903 A CN 117579903A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- target data
- state
- current
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/647—Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
- H04N21/64746—Control signals issued by the network directed to the server or the client
- H04N21/64753—Control signals issued by the network directed to the server or the client directed to the client
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6373—Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/647—Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
- H04N21/64723—Monitoring of network processes or resources, e.g. monitoring of network load
- H04N21/64738—Monitoring network characteristics, e.g. bandwidth, congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/647—Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
- H04N21/64784—Data processing by the network
- H04N21/64792—Controlling the complexity of the content stream, e.g. by dropping packets
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
The embodiment of the disclosure provides a data flow control method, a data flow control device, electronic equipment and a storage medium. The method is applied to the client, and comprises the following steps: acquiring data transmission information of a target data stream in a data link, wherein at least two target data streams exist in the data link, and a server corresponding to the target data stream transmits data to a client through the target data stream in response to a data request sent by the client; determining the data stream state of the target data stream according to the data transmission information of the at least two target data streams; and adjusting the request sending rate of the target data stream based on the data stream state, wherein the request sending rate is the rate of sending the data request to the service end corresponding to the target data stream by the client. By utilizing the technical scheme, the embodiment of the disclosure can provide a congestion control scheme aiming at a multi-source transmission scene, and the congestion control effect under the multi-source transmission scene is improved.
Description
Technical Field
The embodiment of the disclosure relates to the technical field of computers, in particular to a data flow control method, a data flow control device, electronic equipment and a storage medium.
Background
In a short video scene, data storage and transmission of short video on demand application are business pain points concerned by the industry, and the efficiency of data transmission has great influence on the quality of user experience. The use of small nodes can effectively reduce transmission costs compared to conventional content delivery networks (Content Delivery Network, CDN), but can affect transmission performance to some extent. By using the multi-source transmission technology, a plurality of transmission connections are established, and data is downloaded from a plurality of sources, so that the bandwidth of the last hop can be fully utilized, and the influence of link instability on the transmission performance is reduced. At present, multi-source transmission has been widely used for streaming media services such as on demand.
However, currently, there is a lack of congestion control schemes for multi-source transmission scenarios, resulting in poor congestion control effects in multi-source transmission scenarios.
Disclosure of Invention
The embodiment of the disclosure provides a data flow control method, a data flow control device, electronic equipment and a storage medium, so as to provide a congestion control scheme aiming at a multi-source transmission scene and improve the congestion control effect under the multi-source transmission scene.
In a first aspect, an embodiment of the present disclosure provides a data flow control method, applied to a client, where the method includes:
Acquiring data transmission information of a target data stream in a data link, wherein at least two target data streams exist in the data link, and a server corresponding to the target data stream transmits data to a client through the target data stream in response to a data request sent by the client;
determining the data stream state of the target data stream according to the data transmission information of the at least two target data streams;
and adjusting the request sending rate of the target data stream based on the data stream state, wherein the request sending rate is the rate of sending the data request to the service end corresponding to the target data stream by the client.
In a second aspect, an embodiment of the present disclosure further provides a data flow control device configured to a client, where the device includes:
the information acquisition module is used for acquiring data transmission information of target data streams in a data link, wherein at least two target data streams exist in the data link, and a server corresponding to the target data streams responds to a data request sent by a client and transmits data to the client through the target data streams;
the state determining module is used for determining the data flow state of the target data flow according to the data transmission information of the at least two target data flows;
And the rate adjustment module is used for adjusting the request sending rate of the target data stream based on the data stream state, wherein the request sending rate is the rate of sending the data request to the server corresponding to the target data stream by the client.
In a third aspect, an embodiment of the present disclosure further provides an electronic device, including:
one or more processors;
a memory for storing one or more programs,
the one or more programs, when executed by the one or more processors, cause the one or more processors to implement a data flow control method as described in embodiments of the present disclosure.
In a fourth aspect, the disclosed embodiments also provide a computer readable storage medium having stored thereon a computer program which, when executed by a processor, implements a data flow control method as described in the disclosed embodiments.
The data flow control method, the data flow control device, the electronic equipment and the storage medium provided by the embodiment of the disclosure acquire data transmission information of target data flows in a data link, wherein at least two target data flows exist in the data link, and a server corresponding to the target data flows to a client through the target data flows in response to a data request sent by the client; determining a data stream state of the target data stream according to the data transmission information of the at least two target data streams; and adjusting the request sending rate of the target data stream based on the data stream state, wherein the request sending rate is the rate of sending the data request to the service end corresponding to the target data stream by the client. According to the technical scheme, the data transmission information of the target data flows is used for jointly judging the data flow state of each target data flow, and congestion control is carried out on each target data flow, so that a congestion control scheme aiming at a multi-source transmission scene can be provided, competition and packet loss among the target data flows are relieved, and the congestion control effect under the multi-source transmission scene is improved.
Drawings
The above and other features, advantages, and aspects of embodiments of the present disclosure will become more apparent by reference to the following detailed description when taken in conjunction with the accompanying drawings. The same or similar reference numbers will be used throughout the drawings to refer to the same or like elements. It should be understood that the figures are schematic and that elements and components are not necessarily drawn to scale.
Fig. 1 is a flow chart of a data flow control method according to an embodiment of the disclosure;
fig. 2 is a flow chart of another data flow control method according to an embodiment of the disclosure;
fig. 3 is a system architecture diagram of a method for controlling congestion in multiplexing according to an embodiment of the present disclosure;
FIG. 4 is a block diagram of a data flow control device according to an embodiment of the present disclosure;
fig. 5 is a schematic structural diagram of an electronic device according to an embodiment of the present disclosure.
Detailed Description
Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. While certain embodiments of the present disclosure have been shown in the accompanying drawings, it is to be understood that the present disclosure may be embodied in various forms and should not be construed as limited to the embodiments set forth herein, but are provided to provide a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are for illustration purposes only and are not intended to limit the scope of the present disclosure.
It should be understood that the various steps recited in the method embodiments of the present disclosure may be performed in a different order and/or performed in parallel. Furthermore, method embodiments may include additional steps and/or omit performing the illustrated steps. The scope of the present disclosure is not limited in this respect.
The term "including" and variations thereof as used herein are intended to be open-ended, i.e., including, but not limited to. The term "based on" is based at least in part on. The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments. Related definitions of other terms will be given in the description below.
It should be noted that the terms "first," "second," and the like in this disclosure are merely used to distinguish between different devices, modules, or units and are not used to define an order or interdependence of functions performed by the devices, modules, or units.
It should be noted that references to "one", "a plurality" and "a plurality" in this disclosure are intended to be illustrative rather than limiting, and those of ordinary skill in the art will appreciate that "one or more" is intended to be understood as "one or more" unless the context clearly indicates otherwise.
The names of messages or information interacted between the various devices in the embodiments of the present disclosure are for illustrative purposes only and are not intended to limit the scope of such messages or information.
It will be appreciated that prior to using the technical solutions disclosed in the embodiments of the present disclosure, the user should be informed and authorized of the type, usage range, usage scenario, etc. of the personal information related to the present disclosure in an appropriate manner according to the relevant legal regulations.
For example, in response to receiving an active request from a user, a prompt is sent to the user to explicitly prompt the user that the operation it is requesting to perform will require personal information to be obtained and used with the user. Thus, the user can autonomously select whether to provide personal information to software or hardware such as an electronic device, an application program, a server or a storage medium for executing the operation of the technical scheme of the present disclosure according to the prompt information.
As an alternative but non-limiting implementation, in response to receiving an active request from a user, the manner in which the prompt information is sent to the user may be, for example, a popup, in which the prompt information may be presented in a text manner. In addition, a selection control for the user to select to provide personal information to the electronic device in a 'consent' or 'disagreement' manner can be carried in the popup window.
It will be appreciated that the above-described notification and user authorization process is merely illustrative and not limiting of the implementations of the present disclosure, and that other ways of satisfying relevant legal regulations may be applied to the implementations of the present disclosure.
Fig. 1 is a flow chart of a data flow control method according to an embodiment of the disclosure. The method can be applied to a client and can be executed by a data flow control device, wherein the device can be realized by software and/or hardware, can be configured in electronic equipment, and can be configured in a mobile phone or a tablet computer. The data flow control method provided by the embodiment of the disclosure is suitable for a scene of controlling the data flow, and is particularly suitable for a scene of congestion control of the data flow in a multi-source transmission scene.
Congestion control techniques during transmission have a very important impact on transmission performance. In a multi-source transmission scenario, such as a multi-source download scenario, the last hop is typically the bottleneck for all sub-streams to share bandwidth. Taking the case that the client is a mobile phone as an example, the last hop is often a home router wireless hop or a mobile base station to mobile phone wireless hop. The physical link condition of the wireless network is unstable and is more prone to fluctuation. If congestion control is performed on all sub-flows respectively during network fluctuation, accurate estimation cannot be performed on link bandwidths, queues and the like sharing bottlenecks, so that network conditions cannot be quickly adapted.
Previous congestion control schemes have mainly included two categories: single path congestion control and multipath congestion control. The single-path congestion control scheme, such as a Cubic congestion control algorithm or a BBR congestion control algorithm, is applied to a multi-source downloading scene to cause lack of perception among a plurality of sub-streams, so that unnecessary mutual competition, packet loss and bandwidth waste are caused, and therefore, the data transmission efficiency and the user downloading speed are reduced, and the catton or the image quality is damaged, thereby influencing the user experience. The multipath congestion control scheme is mainly applied to multipath transmission control protocol (Multi Path Transmission Control Protocol, MPTCP), but the existing multipath congestion control is not suitable for a multi-source download scenario: firstly, the design principle adopted by MPTCP congestion control is to reduce unfairness, the sum of bandwidths on a single link cannot exceed the bandwidth of a single connection, and the principle is not applicable to a multi-source downloading scene with a sharing last hop; secondly, the sending end and the receiving end of the MPTCP are unique, congestion control is carried out on the basis of the sending end as in a single-flow scene, but multi-source combined flow control cannot be carried out on the sending end and can only be driven on the basis of the receiving end; finally, most research on MPTCP focuses on the scenario of two sub-streams, whereas multi-source downloads tend to face more streams and more heterogeneous network conditions.
In summary, the congestion control scheme for the multi-source transmission scenario in the prior art is obviously insufficient, so the embodiments of the present disclosure provide a congestion control scheme for the multi-source transmission scenario to improve the congestion control effect in the multi-source transmission scenario.
As shown in fig. 1, the data flow control method provided in this embodiment may include:
s101, acquiring data transmission information of target data streams in a data link, wherein at least two target data streams exist in the data link, and a server corresponding to the target data streams transmits data to a client through the target data streams in response to a data request sent by the client.
The data link may be a link that currently needs to perform data flow control, and the location of the data link is not limited, and in an exemplary multi-source transmission scenario, the data link may be the last hop from the server to the client. The data link may be a wired data link and/or a wireless data link, and the data link will be described below as a wireless data link.
There may be multiple data flows in the data link, and in a multi-source transmission scenario, different data flows in the data link may correspond to different servers and to the same client. The client may request the server corresponding to the data stream to transmit data to the client through the data stream by sending a data request to the server corresponding to the data stream, e.g. send data to the client. In other words, the server corresponding to the data stream may transmit data to the client through the data stream in response to the data request sent by the client.
At least part of the data streams in the data link may be target data streams. The target data flow may be understood as a data flow controlled by the data flow control method provided in this embodiment in the data link. Alternatively, the target data stream may be a data stream sharing a bottleneck in the data link, such as a data stream having the same data transmission bottleneck.
The data transmission information of the target data stream may be information describing a data transmission condition of the target data stream. The data transfer information may be used to determine a data stream state of the target data stream. Optionally, the data transmission information includes a packet loss rate and/or a delay gradient. The packet loss rate may be used to describe a packet loss condition of the target data stream in the data transmission process, and may be a proportion of the data packet lost by the target data stream in the data transmission process in the transmitted data packet. The delay gradient may be used to describe the delay of a data stream during data transmission by calculating the difference between the delay of a subsequently received data packet and the delay of a previously received data packet in two consecutively received data packets. The data transfer information of the target data stream may be determined based on at least some of the data packets in the target data stream, such as based on the last received n data packets in the target data stream. Wherein n is a positive integer, and the value of n can be set according to the requirement.
In this embodiment, the data transmission information of the target data stream in the data link may be obtained, for example, for each target data stream in the data link, the packet loss rate and/or the delay gradient of the target data stream may be calculated as the data transmission information of the target data stream.
In some embodiments, before the acquiring the data transmission information of the target data stream in the data link, the method further includes: and determining a target data flow in the data link according to the data packet arrival interval information of each data flow in the data link, wherein the target data flow shares a bottleneck in the data link.
The packet arrival interval information of the data stream may be information describing arrival intervals of packets in the data stream, such as a time length between transmission of the packets to the client in the data stream. The packet inter-arrival information for a data stream may be determined based on at least some of the packets in the data stream, such as based on the most recently received m packets in the data stream. m is a positive integer, and the value of m can be set according to the requirement.
In the above embodiment, the target data stream sharing the bottleneck in the data link may be determined so as to facilitate subsequent adjustment of the request transmission rate of the target data stream based on the data stream state of the target data stream.
For example, packet inter-arrival information for each of the data flows in the data link may be obtained and the data flows with the close packet inter-arrival information may be determined to be target data flows sharing the bottleneck. For example, a data stream in which the difference between the packet arrival intervals is within a preset range may be determined as the target data stream; or, the data flows in the data link may be clustered according to the packet arrival intervals to obtain at least one group of data flows, and the data flow in the data flow group with the largest number of the contained data flows is used as the target data flow, or the data flow in the data flow group with the proportion of the contained data flows in all the data flows in the data link being greater than or equal to the preset proportion threshold is used as the target data flow, and so on.
S102, determining the data flow state of the target data flow according to the data transmission information of the at least two target data flows.
The data stream state of the target data stream may be a data transmission state of the target data stream. For example, the data flow state of each target data flow may be determined for the link state of the data link or based on the link state of the data link and the packet loss rate and/or delay gradient of the target data flow itself. The following description will take, as an example, a link state of a data link as a data flow state of a target data flow in the data link. The link states may include, for example, a congestion state, a normal state, and an idle state. The congestion status may be used to indicate that the data link is congested; the idle state may be used to indicate that there is an idle bandwidth of the data link, i.e., that the bandwidth of the data link is underutilized; the normal state may be used to indicate that the data link is in a relatively stable state of bandwidth without excessive overswing or underutilization of bandwidth.
In this embodiment, the data flow state of the target data flow may be determined according to the data transmission information of the target data flow in the data link, for example, the link state of the data link may be determined according to the data transmission information of each target data flow in the data link, as the data flow state of each target data flow in the data link.
In some embodiments, the determining the data flow state of the target data flow according to the data transmission information of the at least two target data flows includes at least one of the following: if the first proportion value is larger than or equal to a first packet loss proportion threshold value and the second proportion value is larger than or equal to a first delay proportion threshold value, determining that the data flow state of the target data flow is a congestion state; if the first proportion value is smaller than or equal to the second packet loss proportion threshold value and the second proportion value is smaller than or equal to the second delay proportion threshold value, determining that the data stream state of the target data stream is an idle state; if the first proportion value is larger than or equal to the first packet loss proportion threshold value and the second proportion value is smaller than the first delay proportion threshold value, the first proportion value is smaller than or equal to the second packet loss proportion threshold value and the second proportion value is larger than the second delay proportion threshold value, or the first proportion value is larger than the second packet loss proportion threshold value and smaller than the first packet loss proportion threshold value, the data flow state of the target data flow is determined to be a normal state; the first proportion value is a proportion value of the target data stream with the packet loss rate larger than zero in the at least two target data streams, the second proportion value is a proportion value of the target data stream with the delay gradient being a positive number in the at least two target data streams, the second packet loss proportion threshold value is smaller than the first packet loss proportion threshold value, and the second delay proportion threshold value is smaller than the first delay proportion threshold value.
The first proportion value may be the proportion of the target data stream with the packet loss rate greater than zero in each target data stream contained in the data link, and if the packet loss rate of a certain target data stream is greater than zero, the packet loss condition of the target data stream may be indicated. The second ratio value may be a ratio of the target data stream with a positive delay gradient to each target data stream included in the data link, and a delay gradient of a certain target data stream with a positive delay gradient may indicate an increase in delay of a data packet in the target data stream. The first packet loss ratio threshold and the second packet loss ratio threshold may be two preset thresholds related to the first ratio value, where the first packet loss ratio threshold is greater than the second packet loss ratio threshold. The first delay ratio threshold and the second delay ratio threshold may be two preset thresholds associated with a second ratio value, the first delay ratio threshold being greater than the second delay ratio threshold.
In the above embodiment, the link state of the data link may be determined according to the packet loss rate and the delay gradient of each target data stream, for example, the link state of the data link may be determined according to the proportion of the target data stream having the packet loss rate greater than zero in each target data stream of the data link and the proportion of the target data stream having the positive delay gradient in each target data stream of the data link, as the data stream state of the target data stream.
For example, when the data transmission information includes a packet loss rate and a delay gradient, a proportion of the target data stream with the packet loss rate greater than zero in the data link in each target data stream in the data link may be calculated as a first proportion value according to the packet loss rate of each target data stream in the data link; and calculating the proportion of the target data stream with the delay gradient being positive number in each target data stream contained in the target link as a second proportion value according to the delay gradient of each target data stream in the data link.
If the first proportion value is greater than or equal to the first packet loss proportion threshold value and the second proportion value is greater than or equal to the first delay proportion threshold value, the situation that the data link is possibly congested due to the fact that more target data flows with packet loss and more target data flows with delay increase exist in the data link is indicated, at this time, the link state of the data link can be determined to be a congestion state, and then the data flow state of each target data flow in the data link can be determined to be a congestion state.
If the first proportion value is smaller than or equal to the second packet loss proportion threshold value and the second proportion value is smaller than or equal to the second delay proportion threshold value, the condition that the target data stream with less packet loss and the target data stream with less delay increase exist in the data link is indicated, and the data link is likely to be idle is indicated.
If the first proportion value is greater than or equal to the first packet loss proportion threshold value and the second proportion value is less than the first delay proportion threshold value, the first proportion value is less than or equal to the second packet loss proportion threshold value and the second proportion value is greater than the second delay proportion threshold value, or the first proportion value is greater than the second packet loss proportion threshold value and less than the first packet loss proportion threshold value, the link state of the data link can be determined to be a normal state, and then the data flow state of each item of standard data flow in the data link can be determined to be a normal state.
It should be noted that, in this embodiment, the data stream state of the target data stream may be determined only according to the packet loss rate or the delay gradient of each target data stream.
Taking the example of determining the data stream state of each target data stream according to the packet loss rate of the corresponding target data stream, for example, if the first proportion value is greater than or equal to the first packet loss proportion threshold value, the data stream state of the target data stream may be determined to be a congestion state; if the first proportion value is smaller than or equal to the second packet loss proportion threshold value, determining the data stream state of the target data stream as an idle state; if the first proportion value is larger than the second packet loss proportion threshold value and smaller than the first packet loss proportion threshold value, the data stream state of the target data stream can be determined to be a normal state.
Taking as an example the determination of the data flow state of each target data flow according to the delay gradient of the corresponding target data flow, for example, if the second ratio value is greater than or equal to the first delay ratio threshold value, the data flow state of the target data flow may be determined as a congestion state; if the second ratio value is less than or equal to the second delay ratio threshold, determining a data stream state of the target data stream as an idle state; if the first ratio value is greater than the second delay ratio threshold and less than the first delay ratio threshold, a data stream state of the target data stream may be determined to be a normal state.
S103, adjusting the request sending rate of the target data stream based on the data stream state, wherein the request sending rate is the rate of sending the data request to the server corresponding to the target data stream by the client.
The request sending rate of a certain target data stream may be understood as a rate at which the client sends a data request to a server corresponding to the target data stream. The request sending rate of the target data stream is positively correlated with the rate at which the server corresponding to the target data stream transmits data to the client in response to the data request sent by the client.
Specifically, after determining the data flow state of the target data flow, the request sending rate of the target data flow may be adjusted according to the data flow state of each target data flow, for example, the request sending rate of the target data flow may be adjusted by adjusting the size of the sending window corresponding to the target data flow. A transmission window may be understood as a window for transmitting a data request, the size of which is positively correlated with the request transmission rate.
For example, for a case where the target data flow is in a congestion state, the request transmission rate of the target data flow may be reduced, or the increase amplitude of the request transmission rate of the target data flow may be reduced; for the situation that the target data stream is in an idle state, the request sending rate of the target data stream can be increased, or the reduction amplitude of the request sending rate of the target data stream can be reduced; for the case that the target data stream is in a normal state, the request transmission rate of the target data stream may be kept unchanged, or the increasing amplitude or decreasing amplitude of the target data stream may be kept unchanged, or the like.
In this embodiment, after the request sending rate of the target data stream is adjusted based on the data stream state, a data request may be sent to a server corresponding to the target data stream according to the adjusted request sending rate of the target data stream, so as to request the server corresponding to the target data stream to send data corresponding to the data request to the client. At this time, optionally, after the adjusting the request sending rate of the target data stream based on the data stream state, the method further includes: and sending a data request to a server corresponding to the target data stream according to the request sending rate adjusted by the target data stream.
It can be understood that the client may periodically execute the data flow control method provided in this embodiment to periodically adjust the request sending rate of the target data flow, and the execution period of the data flow control method provided in this embodiment is not limited.
According to the data flow control method provided by the embodiment, data transmission information of target data flows in a data link is obtained, wherein at least two target data flows exist in the data link, and a server corresponding to the target data flows respond to a data request sent by a client and transmit data to the client through the target data flows; determining a data stream state of the target data stream according to the data transmission information of the at least two target data streams; and adjusting the request sending rate of the target data stream based on the data stream state, wherein the request sending rate is the rate of sending the data request to the service end corresponding to the target data stream by the client. According to the technical scheme, the data flow state of each target data flow is judged through the data transmission information of the target data flows, and congestion control is carried out on each target data flow, so that a congestion control scheme aiming at a multi-source transmission scene can be provided, competition and packet loss among the target data flows are relieved, and the congestion control effect under the multi-source transmission scene is improved.
Fig. 2 is a flow chart of another data flow control method according to an embodiment of the disclosure. The aspects of this embodiment may be combined with one or more of the alternatives of the embodiments described above. Optionally, the adjusting the request sending rate of the target data stream based on the data stream state includes: for each target data stream, acquiring an original adjustment value of a current request sending rate, wherein the current request sending rate is the request sending rate of the current target data stream; processing the original adjustment value according to a current data stream state to obtain a target adjustment value of the current request sending rate, wherein the current data stream state is a data stream state of the current target data stream; and adjusting the current request sending rate by adopting the target adjustment value.
Accordingly, as shown in fig. 2, the data flow control method provided in this embodiment may include:
s201, acquiring data transmission information of target data streams in a data link, wherein at least two target data streams exist in the data link, and a server corresponding to the target data streams transmits data to a client through the target data streams in response to a data request sent by the client.
S202, determining the data flow state of the target data flow according to the data transmission information of the at least two target data flows.
S203, acquiring an original adjustment value of a current request sending rate for each target data stream, wherein the current request sending rate is a request sending rate of a current target data stream, and the request sending rate is a rate at which the client sends the data request to a server corresponding to the target data stream.
The current target data stream may be a data stream for which rate adjustment is currently performed. The current request transmission rate is the request transmission rate of the current target data stream. The original adjustment value may be a rate adjustment value corresponding to the current target data stream before the current adjustment, where the rate adjustment value may be used to adjust the size of the rate value of the current requested sending rate. In other words, the original adjustment value may be a value that the current request rate originally needs to be increased or decreased.
Specifically, for each target data stream in the data link, an original adjustment value of the request sending rate of the target data stream may be obtained, so that the request sending rate of the target data stream is adjusted by adjusting the original adjustment value.
In this embodiment, the manner of obtaining the original adjustment value of the current request sending rate may be set as required. Illustratively, the original adjustment value of the current requested sending rate may be determined by a target congestion control algorithm, for example, invoking the target congestion control algorithm to congestion control the current target data flow, and calculating the original adjustment value of the current requested sending rate of the current target data flow. At this time, optionally, the obtaining the original adjustment value of the current request sending rate includes: and calling a target congestion control algorithm to determine an original adjustment value of the current request sending rate, wherein the target congestion control algorithm comprises a congestion control algorithm for a single data flow. The target congestion control algorithm may include a congestion control algorithm for a single data flow, such as a single-path congestion control algorithm, among others. The type of single-path congestion control algorithm is not limited, and may include, by way of example, a Cubic congestion control algorithm, a BBR congestion control algorithm, an OLIA congestion control algorithm, and/or the like.
S204, processing the original adjustment value according to a current data stream state to obtain a target adjustment value of the current request sending rate, wherein the current data stream state is the data stream state of the current target data stream.
The target adjustment value may be an adjustment value obtained by processing the original adjustment value. The current data flow state may be understood as the data flow state of the current target data flow.
In this embodiment, after the original adjustment value of the current request sending rate is obtained, the original adjustment value may be processed according to the data flow state of the current target data flow, so as to obtain the target adjustment value of the current request sending rate, so that the speed value of the current request sending rate is adjusted by using the target adjustment value.
The processing mode of the original adjustment value can be set according to the need, and the size of the original adjustment value can be adjusted according to the current data stream state, for example, the original adjustment value is increased or decreased by a certain value or a certain amplitude according to the current data stream state, so as to obtain the target adjustment value of the current request sending rate.
In some embodiments, the processing manner of determining the original adjustment value based on the current data stream state may be performed without considering the packet loss rate of the current target data stream. At this time, optionally, the processing the original adjustment value according to the current data flow state to obtain a target adjustment value of the current request sending rate includes at least one of the following: if the current data flow state is a congestion state or an idle state, processing the original adjustment value according to the current data flow state and the original adjustment value to obtain a target adjustment value of the current request sending rate; and if the current data flow state is a normal state, taking the original adjustment value as a target adjustment value of the current request sending rate.
For example, in the case that the current data flow state is a congestion state or an idle state, the original adjustment value may be processed according to the current data flow state and the positive and negative of the original adjustment value, to obtain a target adjustment value of the current request sending rate; and/or, under the condition that the current data stream is in a normal state, the original adjustment value can be directly determined as the target adjustment value of the current request sending rate without adjusting the size of the original adjustment value.
In other embodiments, the packet loss rate of the current target data stream may be considered, and the processing manner of the original adjustment value may be determined based on the current data stream state and the packet loss rate of the current target data stream. At this time, optionally, the processing the original adjustment value according to the current data flow state to obtain a target adjustment value of the current request sending rate includes at least one of the following: if the current data flow state is a congestion state and the packet loss rate of the current target data flow is greater than zero, or if the current data flow state is an idle state and the packet loss rate of the current target data flow is equal to zero, processing the original adjustment value according to the current data flow state and the original adjustment value to obtain a target adjustment value of the current request sending rate; and if the current data flow state is a congestion state and the packet loss rate of the target data flow is equal to zero, or if the current data flow state is an idle state and the packet loss rate of the current target data flow is greater than zero, taking the original adjustment value as a target adjustment value of the current request sending rate.
For example, in the case that the current data stream state is a congestion state and the packet loss rate of the current target data stream is greater than zero, or in the case that the current data stream state is an idle state and the packet loss rate of the current target data stream is equal to zero, the original adjustment value may be processed according to the current data stream state and the positive and negative of the original adjustment value, so as to obtain the target adjustment value of the current request sending rate; and/or, in the case that the current data stream state is a congestion state and the packet loss rate of the current target data stream is equal to zero, in the case that the current data stream state is an idle state and the packet loss rate of the current target data stream is greater than zero, or in the case that the current data stream is a normal state, the original adjustment value may not be adjusted, and the original adjustment value is directly determined as the target adjustment value of the current request sending rate.
In the above embodiment, the manner of adjusting the original data stream according to the current data stream state and the original adjustment value is not limited. For example, the original adjustment value may be processed according to the current data stream state and the positive and negative of the original adjustment value, so as to obtain the target adjustment value of the current request sending rate.
At this time, optionally, the processing the original adjustment value according to the current data stream state and the original adjustment value to obtain a target adjustment value of the current request sending rate includes at least one of the following: calculating the product of the original adjustment value and a first adjustment coefficient as a target adjustment value of the current request sending rate when the current data flow state is a congestion state and the original adjustment value is greater than zero, or when the current data flow state is an idle state and the original adjustment value is less than zero, wherein the first adjustment coefficient is less than 1; and calculating the product of the original adjustment value and a second adjustment coefficient as a target adjustment value of the current request sending rate under the condition that the current data flow state is a congestion state and the original adjustment value is smaller than zero, or under the condition that the current data flow state is an idle state and the original adjustment value is larger than zero, wherein the second adjustment coefficient is larger than 1.
The first adjustment coefficient may be an adjustment coefficient greater than 0 and less than 1, and the second adjustment coefficient may be an adjustment coefficient greater than 1. The specific values of the first adjustment coefficient and the second adjustment coefficient are not limited. The absolute value of the difference between the first adjustment coefficient and 1 and the difference between the second adjustment coefficient and 1 may be the same or different. The absolute value of the difference between the first adjustment coefficient and 1 and the difference between the second adjustment coefficient and 1 may be the same, for example. For example, the first adjustment coefficient may be a difference between 1 and a preset adjustment coefficient, and the second adjustment coefficient may be a sum between 1 and a preset adjustment coefficient. The preset adjustment coefficient can be between 0 and 1, and can be flexibly set according to the requirement.
Specifically, in the case where the current data flow state is a congestion state and the original adjustment value is a positive number, or in the case where the current data flow state is an idle state and the original adjustment value is a negative number, the adjustment amplitude of the current requested transmission rate may be reduced, for example, a product of the original adjustment value and the first adjustment coefficient is calculated as a target adjustment value of the current requested transmission rate; in the case where the current data flow state is a congestion state and the original adjustment value is a negative number, or in the case where the current data flow state is an idle state and the original adjustment value is a positive number, the adjustment amplitude of the current requested transmission rate may be increased, for example, a product of the original adjustment value and the second adjustment coefficient may be calculated as the target adjustment value of the current requested transmission rate.
S205, adjusting the current request sending rate by adopting the target adjustment value.
In this embodiment, after the target adjustment value of the current request sending rate is obtained, the current request sending rate may be adjusted by using the target adjustment value, for example, the original rate value of the current request sending rate may be added to the target adjustment value to obtain the target rate value of the current request sending rate. The original rate value of the current request sending rate can be the rate value of the current request sending rate before the current adjustment; the target rate value of the current request sending rate may be the rate value of the current request sending rate after the current adjustment, that is, the rate value of the current request sending rate after the adjustment.
According to the data flow control method provided by the embodiment, the request sending rate of the target data flow is adjusted based on the data flow state of the target data flow and the original adjustment value of the target data flow, so that the convergence of the request sending rate of the target data flow can be improved, and the occurrence of packet loss in the target data flow is reduced.
Fig. 3 is a system architecture diagram of a method for controlling congestion in multiplexing according to an embodiment of the present disclosure, as shown in fig. 3, in an alternative embodiment, the method for controlling data flow provided in this embodiment may include a scenario applied to multi-source downloading, for example, a service scenario such as video on demand, live broadcast, etc. Taking the example of a multi-source download scenario of a video-on-demand application, the control procedure of the data stream in the data link can be described as:
a1, when the on-demand program starts, a receiving end (namely a client) sends a data request aiming at the original video, and a transmission layer of the receiving end limits the sending rate of the request by using the initial size of a sending window.
A2, when receiving the acknowledgement character (Acknowledge character, ACK) or detecting that the packet loss event occurs, the receiving end invokes a lower congestion control algorithm (for example, the lower congestion control algorithm can be cube, BBR or OLIA, etc.), normally adjusts the size of the sending window, and records the changed value (namely, the original adjustment value) of the sending window.
And, the receiving end may record information of each stream (i.e., each data stream), including packet arrival interval (i.e., packet arrival interval), packet loss rate, delay gradient, etc.
The arrival interval may be an interval between the arrival time of the current data packet and the arrival time of the last data packet, and may be used to characterize the bottleneck instantaneous bandwidth of the current stream. The packet loss rate may be the proportion of the packets with packet loss in each packet of the current flow, and may be used to determine the state of the bottleneck link. Packet loss may include random packet loss and congestion packet loss. The gradient of the delay may represent a dequeue condition from which an increase in delay may infer that the bottleneck queue is piling up and that the bottleneck bandwidth may have been full.
A3, classifying the link congestion state of each flow twice according to the recorded data:
first, whether the arrival interval of the packets of a plurality of streams is close is judged according to the arrival interval of the packets of each stream, if so, the streams with close arrival intervals are judged as sharing bottlenecks.
And secondly, determining the link state of the bottleneck link (namely the data link) according to the packet loss rate and the delay gradient (namely the data transmission information) of each stream (namely the target data stream) of the shared bottleneck, and further obtaining the data stream state of each stream of the shared bottleneck. For example, when flows sharing a bottleneck simultaneously experience packet loss or delay rise, then congestion of the bottleneck link is likely to occur.
By way of example, the flow of the shared link may include the following four states:
1) The inactive state.
2) Normal state: the bottleneck link is in a relatively stable bandwidth state without excessive overstock or underutilization of bandwidth. In which case no adjustment is required to represent the state of the current flow.
3) Positive state (i.e., idle state): and judging that the bottleneck link is possibly in an underutilized state of the bandwidth according to the data of all the streams. In this state, the current flow can be accelerated.
4) Positive state (i.e., congestion state): and judging that the bottleneck link is possibly in a congestion state according to the data of all the flows. In this case, the current flow may be limited in its speed (i.e., request-to-send rate) even if congestion is not observed.
Taking the data stream state of the current stream as an example, if the packet arrival interval of the current stream is the bottleneck interval of the bottleneck link and the packet loss rate of the current stream is greater than or equal to the first packet loss ratio threshold, it may be determined that the current stream is in a congestion state; if the packet of the current flow reaches the bottleneck interval of which the interval is the bottleneck link and the packet loss rate of the current flow is smaller than or equal to the second packet loss ratio threshold value, determining that the current flow is in an idle state; otherwise, determining that the current flow is in a normal state.
And A4, combining the decision and bottleneck state of the lower congestion control to jointly perform window adjustment.
For example, assuming that the size of the transmission window before the current adjustment by the lower congestion control algorithm is oldwd, the size of the transmission window needs to be adjusted to be wnd by the lower congestion control algorithm, the packet loss rate of the current flow is loss, and the preset adjustment coefficient is adjust_coeffient, the size of the transmission window of the current flow may be adjusted in the following manner:
when the current flow is in a normal state, the size of the sending window can be adjusted to be wnd without intervention of a lower congestion control algorithm.
When the current flow is in a congested state, if oldwd > wnd and loss > 0, the size of the transmission window may be adjusted to wnd-adjust_coeffcient× (oldwnd-wnd); if oldwnd < wnd and loss > 0, the size of the transmission window may be adjusted to wnd-adjust_coeffcient× (wnd-oldwnd).
When the current stream is in an idle state, if oldwd > wnd and loss=0, the size of the transmission window may be adjusted to wnd+adjust_coeffcient× (oldwnd-wnd); if oldwd < wnd and loss=0, the size of the transmission window may be adjusted to wnd+adjust_coeffcient× (wnd-oldwnd).
In this embodiment, the aggressiveness of the transmission window change may be adjusted by changing the coefficient of the transmission window adjustment, so as to adapt to network environments with different change amplitudes. The data flow control method provided by the embodiment can accelerate the common convergence by accurately judging the bottle neck state by the receiving end on the premise of protecting the congestion control of a single flow, reduce the competitive packet loss among a plurality of flows and can work together with the existing congestion control algorithm.
The above embodiment provides a data flow control method driven by a receiving end aiming at a multi-source download scene, and the position of a bottleneck and the congestion condition are judged through the combination of information of a plurality of streams, so that the congestion control of each stream is performed respectively. For example, by detecting the arrival interval of the data packets, judging whether the flows share the bottleneck, and eliminating factors of the bottleneck state judgment such as congestion of the network condition of the single flow; based on packet loss and delay conditions of a plurality of streams, the state classification of the bottleneck link can be rapidly, accurately and comprehensively carried out; by means of the mode of increasing and decreasing the amplitude of the sending window based on the traditional congestion control, convergence can be enhanced, packet loss can be reduced, judgment of single-stream congestion conditions and the direction of sending window adjustment are not affected, and the method and the system can coexist with other congestion control algorithms. Compared with the traditional single-flow congestion control (namely single-path congestion control) and multi-path congestion control, the data flow control method provided by the embodiment focuses on the perception of sharing bottleneck and congestion avoidance, can relieve competition and packet loss between flows, and can rapidly perceive and analyze the change of network conditions when the network conditions fluctuate, so that faster adaptation speed and more accurate rate adjustment are achieved.
Fig. 4 is a structural diagram of a data flow control device according to an embodiment of the present disclosure. The device may be configured at a client, the device may be implemented in software and/or hardware, may be configured in an electronic device, typically may be configured in a mobile phone or a tablet computer, and may control a data flow by performing a data flow control method, for example, congestion control of the data flow in a multi-source transmission scenario. As shown in fig. 4, the data flow control device provided in this embodiment may include: an information acquisition module 401, a status determination module 402, and a rate adjustment module 403, wherein,
an information obtaining module 401, configured to obtain data transmission information of a target data stream in a data link, where at least two target data streams exist in the data link, and a server corresponding to the target data stream transmits data to a client through the target data stream in response to a data request sent by the client;
a state determining module 402, configured to determine a data flow state of the target data flow according to data transmission information of the at least two target data flows;
and the rate adjustment module 403 is configured to adjust a request sending rate of the target data stream based on the data stream state, where the request sending rate is a rate at which the client sends the data request to a server corresponding to the target data stream.
According to the data flow control device provided by the embodiment, the information acquisition module is used for acquiring the data transmission information of the target data flow in the data link, wherein at least two target data flows exist in the data link, and the server corresponding to the target data flows to the client through the target data flow in response to the data request sent by the client to transmit data; determining, by a state determining module, a data stream state of the target data stream according to the data transmission information of the at least two target data streams; and adjusting the request sending rate of the target data stream based on the data stream state by a rate adjusting module, wherein the request sending rate is the rate of sending a data request to a server corresponding to the target data stream by a client. According to the technical scheme, the data flow state of each target data flow is judged through the data transmission information of the target data flows, and congestion control is carried out on each target data flow, so that a congestion control scheme aiming at a multi-source transmission scene can be provided, competition and packet loss among the target data flows are relieved, and the congestion control effect under the multi-source transmission scene is improved.
In the above solution, the rate adjustment module 403 may include: an adjustment value obtaining unit, configured to obtain, for each target data stream, an original adjustment value of a current request sending rate, where the current request sending rate is a request sending rate of a current target data stream; the adjustment value processing unit is used for processing the original adjustment value according to a current data stream state to obtain a target adjustment value of the current request sending rate, wherein the current data stream state is the data stream state of the current target data stream; and the rate adjusting unit is used for adjusting the current request sending rate by adopting the target adjusting value.
In the above aspect, the adjustment value processing unit may be configured to perform at least one of: if the current data flow state is a congestion state or an idle state, processing the original adjustment value according to the current data flow state and the original adjustment value to obtain a target adjustment value of the current request sending rate; and if the current data flow state is a normal state, taking the original adjustment value as a target adjustment value of the current request sending rate.
In the above aspect, the adjustment value processing unit may be configured to perform at least one of: if the current data flow state is a congestion state and the packet loss rate of the current target data flow is greater than zero, or if the current data flow state is an idle state and the packet loss rate of the current target data flow is equal to zero, processing the original adjustment value according to the current data flow state and the original adjustment value to obtain a target adjustment value of the current request sending rate; and if the current data flow state is a congestion state and the packet loss rate of the target data flow is equal to zero, or if the current data flow state is an idle state and the packet loss rate of the current target data flow is greater than zero, taking the original adjustment value as a target adjustment value of the current request sending rate.
In the above aspect, the adjustment value processing unit may be configured to perform at least one of: calculating the product of the original adjustment value and a first adjustment coefficient as a target adjustment value of the current request sending rate when the current data flow state is a congestion state and the original adjustment value is greater than zero, or when the current data flow state is an idle state and the original adjustment value is less than zero, wherein the first adjustment coefficient is less than 1; and calculating the product of the original adjustment value and a second adjustment coefficient as a target adjustment value of the current request sending rate under the condition that the current data flow state is a congestion state and the original adjustment value is smaller than zero, or under the condition that the current data flow state is an idle state and the original adjustment value is larger than zero, wherein the second adjustment coefficient is larger than 1.
In the above aspect, the adjustment value acquisition unit may be configured to: and calling a target congestion control algorithm to determine an original adjustment value of the current request sending rate, wherein the target congestion control algorithm comprises a congestion control algorithm for a single data flow.
Further, the data control device provided in this embodiment may further include: and the data flow determining module is used for determining the target data flow in the data link according to the data packet arrival interval information of each data flow in the data link before the data transmission information of the target data flow in the data link is acquired, and the target data flow shares a bottleneck in the data link.
In the above scheme, the data transmission information may include a packet loss rate and/or a delay gradient.
In the above scenario, the state determination module 402 may be configured to perform at least one of: if the first proportion value is larger than or equal to a first packet loss proportion threshold value and the second proportion value is larger than or equal to a first delay proportion threshold value, determining that the data flow state of the target data flow is a congestion state; if the first proportion value is smaller than or equal to the second packet loss proportion threshold value and the second proportion value is smaller than or equal to the second delay proportion threshold value, determining that the data stream state of the target data stream is an idle state; if the first proportion value is larger than or equal to the first packet loss proportion threshold value and the second proportion value is smaller than the first delay proportion threshold value, the first proportion value is smaller than or equal to the second packet loss proportion threshold value and the second proportion value is larger than the second delay proportion threshold value, or the first proportion value is larger than the second packet loss proportion threshold value and smaller than the first packet loss proportion threshold value, the data flow state of the target data flow is determined to be a normal state; the first proportion value is a proportion value of the target data stream with the packet loss rate larger than zero in the at least two target data streams, the second proportion value is a proportion value of the target data stream with the delay gradient being a positive number in the at least two target data streams, the second packet loss proportion threshold value is smaller than the first packet loss proportion threshold value, and the second delay proportion threshold value is smaller than the first delay proportion threshold value.
Further, the data control device provided in this embodiment may further include: and the request sending module is used for sending a data request to a server corresponding to the target data stream according to the request sending rate adjusted by the target data stream after the request sending rate of the target data stream is adjusted based on the data stream state.
The data flow control device provided by the embodiment of the disclosure can execute the data flow control method provided by any embodiment of the disclosure, and has the corresponding functional modules and beneficial effects of executing the data flow control method. Technical details not described in detail in this embodiment may be referred to the data flow control method provided in any embodiment of the present disclosure.
Referring now to fig. 5, a schematic diagram of an electronic device (e.g., terminal device) 500 suitable for use in implementing embodiments of the present disclosure is shown. The terminal devices in the embodiments of the present disclosure may include, but are not limited to, mobile terminals such as mobile phones, notebook computers, digital broadcast receivers, PDAs (personal digital assistants), PADs (tablet computers), PMPs (portable multimedia players), in-vehicle terminals (e.g., in-vehicle navigation terminals), and the like, and stationary terminals such as digital TVs, desktop computers, and the like. The electronic device shown in fig. 5 is merely an example and should not be construed to limit the functionality and scope of use of the disclosed embodiments.
As shown in fig. 5, the electronic device 500 may include a processing means (e.g., a central processing unit, a graphics processor, etc.) 501, which may perform various appropriate actions and processes according to a program stored in a Read Only Memory (ROM) 502 or a program loaded from a storage means 508 into a Random Access Memory (RAM) 503. In the RAM 503, various programs and data required for the operation of the electronic apparatus 500 are also stored. The processing device 501, the ROM 502, and the RAM 503 are connected to each other via a bus 504. An input/output (I/O) interface 505 is also connected to bus 504.
In general, the following devices may be connected to the I/O interface 505: input devices 506 including, for example, a touch screen, touchpad, keyboard, mouse, camera, microphone, accelerometer, gyroscope, etc.; an output device 507 including, for example, a Liquid Crystal Display (LCD), a speaker, a vibrator, and the like; storage 508 including, for example, magnetic tape, hard disk, etc.; and communication means 509. The communication means 509 may allow the electronic device 500 to communicate with other devices wirelessly or by wire to exchange data. While fig. 5 shows an electronic device 500 having various means, it is to be understood that not all of the illustrated means are required to be implemented or provided. More or fewer devices may be implemented or provided instead.
In particular, according to embodiments of the present disclosure, the processes described above with reference to flowcharts may be implemented as computer software programs. For example, embodiments of the present disclosure include a computer program product comprising a computer program embodied on a non-transitory computer readable medium, the computer program comprising program code for performing the method shown in the flow chart. In such an embodiment, the computer program may be downloaded and installed from a network via the communication means 509, or from the storage means 508, or from the ROM 502. The above-described functions defined in the methods of the embodiments of the present disclosure are performed when the computer program is executed by the processing device 501.
It should be noted that the computer readable medium described in the present disclosure may be a computer readable signal medium or a computer readable storage medium, or any combination of the two. The computer readable storage medium can be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or a combination of any 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 the context of this 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 the present disclosure, however, the computer-readable signal medium may include a data signal propagated in baseband or as part of a carrier wave, with the computer-readable program code embodied therein. Such a propagated data signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination of the foregoing. A computer readable signal medium may also 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, fiber optic cables, RF (radio frequency), and the like, or any suitable combination of the foregoing.
In some implementations, the clients, servers may communicate using any currently known or future developed network protocol, such as HTTP (HyperText Transfer Protocol ), and may be interconnected with any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), the internet (e.g., the internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently known or future developed networks.
The computer readable medium may be contained in the electronic device; or may exist alone without being 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 data transmission information of a target data stream in a data link, wherein at least two target data streams exist in the data link, and a server corresponding to the target data stream transmits data to a client through the target data stream in response to a data request sent by the client; determining the data stream state of the target data stream according to the data transmission information of the at least two target data streams; and adjusting the request sending rate of the target data stream based on the data stream state, wherein the request sending rate is the rate of sending the data request to the service end corresponding to the target data stream by the client.
Computer program code for carrying out operations of the present disclosure may be written in one or more programming languages, including, but not limited to, 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 kind of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or may be connected to an external computer (for example, through the Internet using an Internet service provider).
The flowcharts 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 involved in the embodiments of the present disclosure may be implemented by means of software, or may be implemented by means of hardware. Wherein the name of the module does not constitute a limitation of the unit itself in some cases.
The functions described above herein may be performed, at least in part, by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include: a Field Programmable Gate Array (FPGA), an Application Specific Integrated Circuit (ASIC), an Application Specific Standard Product (ASSP), a system on a chip (SOC), a Complex Programmable Logic Device (CPLD), and the like.
In the context of this disclosure, a machine-readable medium may be a tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. The machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. The machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of a machine-readable storage medium would include an electrical connection based on 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.
According to one or more embodiments of the present disclosure, example 1 provides a data flow control method, applied to a client, the method comprising:
acquiring data transmission information of a target data stream in a data link, wherein at least two target data streams exist in the data link, and a server corresponding to the target data stream transmits data to a client through the target data stream in response to a data request sent by the client;
determining the data stream state of the target data stream according to the data transmission information of the at least two target data streams;
and adjusting the request sending rate of the target data stream based on the data stream state, wherein the request sending rate is the rate of sending the data request to the service end corresponding to the target data stream by the client.
According to one or more embodiments of the present disclosure, example 2 is the method of example 1, the adjusting the request sending rate of the target data stream based on the data stream state, comprising:
for each target data stream, acquiring an original adjustment value of a current request sending rate, wherein the current request sending rate is the request sending rate of the current target data stream;
Processing the original adjustment value according to a current data stream state to obtain a target adjustment value of the current request sending rate, wherein the current data stream state is a data stream state of the current target data stream;
and adjusting the current request sending rate by adopting the target adjustment value.
According to one or more embodiments of the present disclosure, example 3 is the method according to example 2, wherein the processing the original adjustment value according to the current data flow state obtains a target adjustment value of the current requested transmission rate, including at least one of:
if the current data flow state is a congestion state or an idle state, processing the original adjustment value according to the current data flow state and the original adjustment value to obtain a target adjustment value of the current request sending rate;
and if the current data flow state is a normal state, taking the original adjustment value as a target adjustment value of the current request sending rate.
According to one or more embodiments of the present disclosure, example 4 is the method according to example 2, wherein the processing the original adjustment value according to the current data flow state obtains a target adjustment value of the current requested transmission rate, including at least one of:
If the current data flow state is a congestion state and the packet loss rate of the current target data flow is greater than zero, or if the current data flow state is an idle state and the packet loss rate of the current target data flow is equal to zero, processing the original adjustment value according to the current data flow state and the original adjustment value to obtain a target adjustment value of the current request sending rate;
and if the current data flow state is a congestion state and the packet loss rate of the target data flow is equal to zero, or if the current data flow state is an idle state and the packet loss rate of the current target data flow is greater than zero, taking the original adjustment value as a target adjustment value of the current request sending rate.
According to one or more embodiments of the present disclosure, example 5 is the method of example 3 or 4, wherein the processing the original adjustment value according to the current data flow state and the original adjustment value, to obtain the target adjustment value of the current request sending rate, includes at least one of:
calculating the product of the original adjustment value and a first adjustment coefficient as a target adjustment value of the current request sending rate when the current data flow state is a congestion state and the original adjustment value is greater than zero, or when the current data flow state is an idle state and the original adjustment value is less than zero, wherein the first adjustment coefficient is less than 1;
And calculating the product of the original adjustment value and a second adjustment coefficient as a target adjustment value of the current request sending rate under the condition that the current data flow state is a congestion state and the original adjustment value is smaller than zero, or under the condition that the current data flow state is an idle state and the original adjustment value is larger than zero, wherein the second adjustment coefficient is larger than 1.
According to one or more embodiments of the present disclosure, example 6 is the method of example 2, the obtaining the original adjustment value of the current requested transmission rate, comprising:
and calling a target congestion control algorithm to determine an original adjustment value of the current request sending rate, wherein the target congestion control algorithm comprises a congestion control algorithm for a single data flow.
According to one or more embodiments of the present disclosure, example 7 is the method of example 1, further comprising, prior to the acquiring the data transmission information of the target data flow in the data link:
and determining a target data flow in the data link according to the data packet arrival interval information of each data flow in the data link, wherein the target data flow shares a bottleneck in the data link.
According to one or more embodiments of the present disclosure, example 8 is the method of any one of examples 1-4 and 6-7, wherein the data transmission information comprises a packet loss rate and/or a delay gradient.
According to one or more embodiments of the present disclosure, example 9 is the method of example 8, the determining the data flow state of the target data flow according to the data transmission information of the at least two target data flows, including at least one of:
if the first proportion value is larger than or equal to a first packet loss proportion threshold value and the second proportion value is larger than or equal to a first delay proportion threshold value, determining that the data flow state of the target data flow is a congestion state;
if the first proportion value is smaller than or equal to the second packet loss proportion threshold value and the second proportion value is smaller than or equal to the second delay proportion threshold value, determining that the data stream state of the target data stream is an idle state;
if the first proportion value is larger than or equal to the first packet loss proportion threshold value and the second proportion value is smaller than the first delay proportion threshold value, the first proportion value is smaller than or equal to the second packet loss proportion threshold value and the second proportion value is larger than the second delay proportion threshold value, or the first proportion value is larger than the second packet loss proportion threshold value and smaller than the first packet loss proportion threshold value, the data flow state of the target data flow is determined to be a normal state;
the first proportion value is a proportion value of the target data stream with the packet loss rate larger than zero in the at least two target data streams, the second proportion value is a proportion value of the target data stream with the delay gradient being a positive number in the at least two target data streams, the second packet loss proportion threshold value is smaller than the first packet loss proportion threshold value, and the second delay proportion threshold value is smaller than the first delay proportion threshold value.
According to one or more embodiments of the present disclosure, example 10, after the adjusting the request-to-send rate of the target data stream based on the data stream state, further comprises:
and sending a data request to a server corresponding to the target data stream according to the request sending rate adjusted by the target data stream.
Example 11 provides a data flow control apparatus configured at a client, according to one or more embodiments of the present disclosure, the apparatus comprising:
the information acquisition module is used for acquiring data transmission information of target data streams in a data link, wherein at least two target data streams exist in the data link, and a server corresponding to the target data streams responds to a data request sent by a client and transmits data to the client through the target data streams;
the state determining module is used for determining the data flow state of the target data flow according to the data transmission information of the at least two target data flows;
and the rate adjustment module is used for adjusting the request sending rate of the target data stream based on the data stream state, wherein the request sending rate is the rate of sending the data request to the server corresponding to the target data stream by the client.
Example 12 provides an electronic device according to one or more embodiments of the present disclosure, comprising:
one or more processors;
a memory for storing one or more programs,
the one or more programs, when executed by the one or more processors, cause the one or more processors to implement the data flow control method as described in any of examples 1-10.
Example 13 provides a computer-readable storage medium having stored thereon a computer program which, when executed by a processor, implements a data flow control method as in any of examples 1-10, according to one or more embodiments of the present disclosure.
The foregoing description is only of the preferred embodiments of the present disclosure and description of the principles of the technology being employed. It will be appreciated by persons skilled in the art that the scope of the disclosure referred to in this disclosure is not limited to the specific combinations of features described above, but also covers other embodiments which may be formed by any combination of features described above or equivalents thereof without departing from the spirit of the disclosure. Such as those described above, are mutually substituted with the technical features having similar functions disclosed in the present disclosure (but not limited thereto).
Moreover, although operations are depicted in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order. In certain circumstances, multitasking and parallel processing may be advantageous. Likewise, while several specific implementation details are included in the above discussion, these should not be construed as limiting the scope of the present disclosure. Certain features that are described in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are example forms of implementing the claims.
Claims (13)
1. A data flow control method, applied to a client, the method comprising:
acquiring data transmission information of a target data stream in a data link, wherein at least two target data streams exist in the data link, and a server corresponding to the target data stream transmits data to a client through the target data stream in response to a data request sent by the client;
Determining the data stream state of the target data stream according to the data transmission information of the at least two target data streams;
and adjusting the request sending rate of the target data stream based on the data stream state, wherein the request sending rate is the rate of sending the data request to the service end corresponding to the target data stream by the client.
2. The method of claim 1, wherein said adjusting the request-to-send rate of the target data stream based on the data stream status comprises:
for each target data stream, acquiring an original adjustment value of a current request sending rate, wherein the current request sending rate is the request sending rate of the current target data stream;
processing the original adjustment value according to a current data stream state to obtain a target adjustment value of the current request sending rate, wherein the current data stream state is a data stream state of the current target data stream;
and adjusting the current request sending rate by adopting the target adjustment value.
3. The method of claim 2, wherein the processing the original adjustment value according to the current data flow state to obtain the target adjustment value of the current request sending rate comprises at least one of:
If the current data flow state is a congestion state or an idle state, processing the original adjustment value according to the current data flow state and the original adjustment value to obtain a target adjustment value of the current request sending rate;
and if the current data flow state is a normal state, taking the original adjustment value as a target adjustment value of the current request sending rate.
4. The method of claim 2, wherein the processing the original adjustment value according to the current data flow state to obtain the target adjustment value of the current request sending rate comprises at least one of:
if the current data flow state is a congestion state and the packet loss rate of the current target data flow is greater than zero, or if the current data flow state is an idle state and the packet loss rate of the current target data flow is equal to zero, processing the original adjustment value according to the current data flow state and the original adjustment value to obtain a target adjustment value of the current request sending rate;
and if the current data flow state is a congestion state and the packet loss rate of the target data flow is equal to zero, or if the current data flow state is an idle state and the packet loss rate of the current target data flow is greater than zero, taking the original adjustment value as a target adjustment value of the current request sending rate.
5. The method according to claim 3 or 4, wherein said processing said original adjustment value according to said current data flow state and said original adjustment value to obtain a target adjustment value of said current requested transmission rate comprises at least one of:
calculating the product of the original adjustment value and a first adjustment coefficient as a target adjustment value of the current request sending rate when the current data flow state is a congestion state and the original adjustment value is greater than zero, or when the current data flow state is an idle state and the original adjustment value is less than zero, wherein the first adjustment coefficient is less than 1;
and calculating the product of the original adjustment value and a second adjustment coefficient as a target adjustment value of the current request sending rate under the condition that the current data flow state is a congestion state and the original adjustment value is smaller than zero, or under the condition that the current data flow state is an idle state and the original adjustment value is larger than zero, wherein the second adjustment coefficient is larger than 1.
6. The method of claim 2, wherein the obtaining the original adjustment value of the current requested transmission rate comprises:
And calling a target congestion control algorithm to determine an original adjustment value of the current request sending rate, wherein the target congestion control algorithm comprises a congestion control algorithm for a single data flow.
7. The method of claim 1, further comprising, prior to said acquiring data transmission information for a target data stream in the data link:
and determining a target data flow in the data link according to the data packet arrival interval information of each data flow in the data link, wherein the target data flow shares a bottleneck in the data link.
8. The method according to any of claims 1-4 and 6-7, wherein the data transmission information comprises packet loss rate and/or delay gradient.
9. The method of claim 8, wherein said determining the data flow state of the target data flow based on the data transfer information of the at least two target data flows comprises at least one of:
if the first proportion value is larger than or equal to a first packet loss proportion threshold value and the second proportion value is larger than or equal to a first delay proportion threshold value, determining that the data flow state of the target data flow is a congestion state;
if the first proportion value is smaller than or equal to the second packet loss proportion threshold value and the second proportion value is smaller than or equal to the second delay proportion threshold value, determining that the data stream state of the target data stream is an idle state;
If the first proportion value is larger than or equal to the first packet loss proportion threshold value and the second proportion value is smaller than the first delay proportion threshold value, the first proportion value is smaller than or equal to the second packet loss proportion threshold value and the second proportion value is larger than the second delay proportion threshold value, or the first proportion value is larger than the second packet loss proportion threshold value and smaller than the first packet loss proportion threshold value, the data flow state of the target data flow is determined to be a normal state;
the first proportion value is a proportion value of the target data stream with the packet loss rate larger than zero in the at least two target data streams, the second proportion value is a proportion value of the target data stream with the delay gradient being a positive number in the at least two target data streams, the second packet loss proportion threshold value is smaller than the first packet loss proportion threshold value, and the second delay proportion threshold value is smaller than the first delay proportion threshold value.
10. The method according to any one of claims 1-4 and 6-7, further comprising, after said adjusting the request-to-send rate of the target data stream based on the data stream status:
and sending a data request to a server corresponding to the target data stream according to the request sending rate adjusted by the target data stream.
11. A data flow control device, configured at a client, the device comprising:
the information acquisition module is used for acquiring data transmission information of target data streams in a data link, wherein at least two target data streams exist in the data link, and a server corresponding to the target data streams responds to a data request sent by a client and transmits data to the client through the target data streams;
the state determining module is used for determining the data flow state of the target data flow according to the data transmission information of the at least two target data flows;
and the rate adjustment module is used for adjusting the request sending rate of the target data stream based on the data stream state, wherein the request sending rate is the rate of sending the data request to the server corresponding to the target data stream by the client.
12. An electronic device, comprising:
at least one processor; and
a memory communicatively coupled to the at least one processor; wherein,
the memory stores a computer program executable by the at least one processor to enable the at least one processor to perform the data flow control method of any one of claims 1-10.
13. A computer readable storage medium storing computer instructions for causing a processor to implement the data flow control method of any one of claims 1-10 when executed.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202311619222.7A CN117579903A (en) | 2023-11-29 | 2023-11-29 | Data flow control method, device, electronic device and storage medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202311619222.7A CN117579903A (en) | 2023-11-29 | 2023-11-29 | Data flow control method, device, electronic device and storage medium |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN117579903A true CN117579903A (en) | 2024-02-20 |
Family
ID=89884262
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202311619222.7A Pending CN117579903A (en) | 2023-11-29 | 2023-11-29 | Data flow control method, device, electronic device and storage medium |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN117579903A (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2026001864A1 (en) * | 2024-06-24 | 2026-01-02 | 中国移动通信有限公司研究院 | Traffic flow transmission method, first node, control device, storage medium, and computer program product |
-
2023
- 2023-11-29 CN CN202311619222.7A patent/CN117579903A/en active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2026001864A1 (en) * | 2024-06-24 | 2026-01-02 | 中国移动通信有限公司研究院 | Traffic flow transmission method, first node, control device, storage medium, and computer program product |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12052179B2 (en) | Network packet latency management | |
| US10880226B2 (en) | Scheduled transmission of data | |
| CN112312229A (en) | Video transmission method and device, electronic equipment and storage medium | |
| CN109040230B (en) | File downloading method, device, equipment/terminal/server and storage medium | |
| JP2017516188A (en) | Transport accelerator implementing request manager and connection manager functionality | |
| US11190430B2 (en) | Determining the bandwidth of a communication link | |
| CN109660467B (en) | Method and apparatus for controlling flow | |
| CN113423143A (en) | Multipath data transmission method and device and electronic equipment | |
| US10687341B2 (en) | Systems, methods, and media for scheduling traffic of a communication session between an application on a WiFi network and another device | |
| CN118233400A (en) | A method, device, equipment and medium for adaptively adjusting congestion window | |
| CN116346743A (en) | A bandwidth control method, device, equipment and storage medium | |
| CN117579903A (en) | Data flow control method, device, electronic device and storage medium | |
| US9369509B2 (en) | Stream sharing method, apparatus, and system | |
| CN114039926B (en) | Transmission control protocol determining method and device, readable medium and electronic equipment | |
| JP6885463B2 (en) | Transmitter, bandwidth estimation device, bandwidth estimation system, method | |
| CN117201418A (en) | A data sending method, device, equipment and storage medium | |
| CN114024917A (en) | Method, device, device and storage medium for Internet service bandwidth guarantee | |
| CN119728602B (en) | RDMA (remote direct memory Access) on-network transmission control method, device and medium | |
| JP6348377B2 (en) | Communication device and program for content distribution network | |
| CN120151296A (en) | Data transmission method, device, electronic device, storage medium and program product | |
| CN120897095A (en) | Data transmission methods, devices, media, electronic equipment and software products | |
| CN117319752A (en) | Audio and video processing method and device, electronic equipment and storage medium | |
| CN118714085A (en) | Traffic transmission control method, device, medium, electronic device and program product | |
| CN117459470A (en) | Code rate adjusting method, device, electronic equipment, medium and product | |
| CN117544575A (en) | Network congestion response method, device, equipment and storage medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination |