CN118353850A - Data packet scheduling method and related device - Google Patents
Data packet scheduling method and related device Download PDFInfo
- Publication number
- CN118353850A CN118353850A CN202310094107.6A CN202310094107A CN118353850A CN 118353850 A CN118353850 A CN 118353850A CN 202310094107 A CN202310094107 A CN 202310094107A CN 118353850 A CN118353850 A CN 118353850A
- Authority
- CN
- China
- Prior art keywords
- window
- network
- network link
- data packet
- congestion
- 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
- 238000000034 method Methods 0.000 title claims abstract description 84
- 238000009825 accumulation Methods 0.000 claims description 29
- 238000003860 storage Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 18
- 239000000872 buffer Substances 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 15
- 230000001934 delay Effects 0.000 claims description 9
- 238000012790 confirmation Methods 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 abstract description 50
- 230000000694 effects Effects 0.000 abstract description 5
- 230000008569 process Effects 0.000 abstract description 4
- 238000005516 engineering process Methods 0.000 description 21
- 230000008859 change Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000037406 food intake Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000010791 quenching Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
The embodiment of the application discloses a data packet scheduling method and a related device, wherein if a target data packet to be allocated is received, window parameters of congestion windows of all network links are obtained. Congestion windows are variables of the transport protocol used in the transport process that are able to adapt to the network state of the network link. And determining the routing probability corresponding to each network link according to the window parameters of the congestion window, namely determining the probability of distributing the target data packet to each network link according to the window parameters of the congestion window. The larger the window parameter of the congestion window is, the better the network state of the corresponding network link is, so the larger the corresponding routing probability is, so that the target data packet is distributed to the network link according to the routing probability, the more the network link with the larger routing probability is distributed with the target data packet, the data packet can be distributed to the network link with the better network state with the larger probability, the dispatching effect of the data packet is improved as a whole, and the transmission speed of the data packet is improved.
Description
Technical Field
The present application relates to the field of computer technologies, and in particular, to a data packet scheduling method and a related device.
Background
With the development of computer technology, access between devices may be achieved through devices including various network access modes. For example, a mobile internet user may access various applications in the cloud server through various network access modes including mobile hotspot (Wi-Fi), long term evolution (Long Term Evolution, LTE), and fifth generation mobile communication technology (5th Generation Mobile Communication Technology,5G) included in the terminal device.
During access, data is typically transmitted using a network link. But the bandwidth of a single network link is limited, and the delay is unstable, so that the data transmission speed is slow. Based on this, a plurality of network links are generally used for data transmission in the related art. For example, a video is packetized into a plurality of data packets, and the plurality of data packets are transmitted through a plurality of network links, respectively, so that the data transmission speed is increased.
However, the method for scheduling the multipath data packets in the related art is generally applicable to a wired network, and the method for scheduling the multipath data packets in the related art cannot be applicable to a wireless network or a mobile network because of the characteristics of isomerism, dynamic property and the like of the wireless network or the mobile network.
Disclosure of Invention
In order to solve the technical problems, the application provides a data packet scheduling method and a related device, which are used for solving the problem that the multi-path data packet scheduling method cannot be applied to a wireless network or a mobile network.
The embodiment of the application discloses the following technical scheme:
in one aspect, an embodiment of the present application provides a method for scheduling a data packet, where the method includes:
If a target data packet to be distributed is received, window parameters of congestion windows corresponding to a plurality of network links respectively are obtained, wherein the network links are channels for transmitting the target data packet, and the window parameters of the congestion windows are used for describing the network states of the corresponding network links;
determining routing probabilities corresponding to the network links respectively according to window parameters of the congestion windows, wherein the routing probabilities are used for describing the probability that the corresponding network links are distributed with the target data packet; the larger the window parameter of the congestion window is, the larger the corresponding routing probability is;
and distributing the target data packet to a plurality of network links according to a plurality of routing probabilities.
In another aspect, an embodiment of the present application provides a packet scheduling apparatus, where the apparatus includes: the device comprises an acquisition unit, a determination unit and a sending unit;
The acquiring unit is configured to acquire window parameters of congestion windows corresponding to a plurality of network links, respectively, if a target data packet to be allocated is received, where the network links are channels for transmitting the target data packet, and the window parameters of the congestion windows are used to describe network states of the corresponding network links;
The determining unit is configured to determine routing probabilities corresponding to the plurality of network links respectively according to window parameters of a plurality of congestion windows, where the routing probabilities are used to describe probabilities that the corresponding network links are distributed with the target data packet; the larger the window parameter of the congestion window is, the larger the corresponding routing probability is;
And the sending unit is used for distributing the target data packet to the network links according to the routing probabilities.
In another aspect, an embodiment of the present application provides a computer device including a processor and a memory:
the memory is used for storing a computer program and transmitting the computer program to the processor;
the processor is configured to perform the method of the above aspect according to instructions in the computer program.
In another aspect, embodiments of the present application provide a computer-readable storage medium storing a computer program for executing the method described in the above aspect.
In another aspect, embodiments of the present application provide a computer program product or computer program comprising computer instructions stored in a computer readable storage medium. The processor of the computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device performs the method described in the above aspect.
According to the technical scheme, if the target data packet to be distributed is received, the target data packet needs to be distributed to the network links for transmission, and at the moment, window parameters of congestion windows of the network links are obtained. The congestion window is a variable of a transmission protocol used in a transmission process, and can adapt to a network state of a network link, namely, the network state of each network link can be comprehensively reflected through window parameters of the congestion window. And determining the routing probability corresponding to each network link according to the window parameters of the congestion window, namely determining the probability of distributing the target data packet to each network link according to the window parameters of the congestion window. The larger the window parameter of the congestion window, the better the network state of the corresponding network link is, so the larger the corresponding routing probability is, so that the target data packet is distributed to the network link according to the routing probability, and the network link with the larger routing probability has more opportunities to be distributed with the target data packet. Therefore, the routing probability is determined through the window parameters of the congestion window, and the data packet to be distributed is distributed according to the routing probability, so that the data packet can be distributed to a network link with better network condition with higher probability, the scheduling effect of the data packet is improved from the whole, and the transmission speed of the data packet is further improved. In addition, because the window parameters of the congestion window are adjusted in real time according to the network state of the network link, the network state change of the wireless link can be accurately detected, and the routing probability of each network link is calculated respectively, so that the congestion window is effectively suitable for the isomerism and the dynamic property of the mobile network or the wireless network.
Drawings
In order to more clearly illustrate the embodiments of the application or the technical solutions in the prior art, the drawings that are required in the embodiments or the description of the prior art will be briefly described, it being obvious that the drawings in the following description are only some embodiments of the application, and that other drawings may be obtained according to these drawings without inventive effort for a person skilled in the art.
Fig. 1 is a schematic diagram of an application scenario of a data packet scheduling method according to an embodiment of the present application;
fig. 2 is a flow chart of a data packet scheduling method according to an embodiment of the present application;
fig. 3 is a schematic application scenario diagram of a data packet scheduling method according to an embodiment of the present application;
Fig. 4 is a schematic diagram of a packet scheduling system according to an embodiment of the present application;
fig. 5 is a flowchart of a method for scheduling a data packet according to an embodiment of the present application;
Fig. 6 is a flowchart of a method for scheduling a data packet according to an embodiment of the present application;
Fig. 7 is a schematic structural diagram of a packet scheduling device according to an embodiment of the present application;
fig. 8 is a schematic structural diagram of a server according to an embodiment of the present application;
Fig. 9 is a schematic structural diagram of a terminal device according to an embodiment of the present application.
Detailed Description
Embodiments of the present application are described below with reference to the accompanying drawings.
The network links generally have different parameters, such as time delay, bandwidth, jitter, and the like, so that the network links have different transmission capacities, or the network states of the network links are different, that is, the wireless network or the mobile network has the characteristic of isomerism, and the network links can be dynamically changed at different times due to the instability of the network states, that is, the wireless network or the mobile network has the characteristic of dynamism. In addition, the wireless network link is also influenced by the signal strength of the wireless network, is easily interfered by surrounding media, has great uncertainty on the signal strength due to the change of the distance between the wireless network link and a base station or a hot spot in a mobile environment, and is more unstable than the wired link state. Therefore, the scheduling method applicable to the multipath data packets of the wired network in the related technology cannot be applicable to the wireless network or the mobile network.
Based on this, the embodiment of the application provides a scheduling method and a related device for data packets, which determine the routing probability through the window parameters of the congestion window, and distribute the data packets to be distributed according to the routing probability.
The data packet scheduling method provided by the embodiment of the application can be applied to data packet scheduling equipment with data processing capacity, such as terminal equipment and servers. The terminal equipment comprises, but is not limited to, a mobile phone, a computer, intelligent voice interaction equipment, intelligent household appliances, vehicle-mounted terminals, aircrafts and the like. The server may be an independent physical server, a server cluster or a distributed system formed by a plurality of physical servers, or a cloud server providing cloud computing service. The terminal and the server may be directly or indirectly connected through wired or wireless communication, and the present application is not limited herein. The embodiment of the application can be applied to various scenes, including but not limited to cloud technology, artificial intelligence, intelligent transportation, auxiliary driving and the like.
The data packet scheduling method provided by the embodiment of the application is realized based on a Cloud computing technology, wherein the Cloud technology refers to a hosting technology for integrating hardware, software, network and other series of resources in a wide area network or a local area network to realize calculation, storage, processing and sharing of data.
Cloud technology (Cloud technology) is based on the general terms of network technology, information technology, integration technology, management platform technology, application technology and the like applied by Cloud computing business models, and can form a resource pool, so that the Cloud computing business model is flexible and convenient as required. Cloud computing technology will become an important support. Background services of technical networking systems require a large amount of computing, storage resources, such as video websites, picture-like websites, and more portals. Along with the high development and application of the internet industry, each article possibly has an own identification mark in the future, the identification mark needs to be transmitted to a background system for logic processing, data with different levels can be processed separately, and various industry data needs strong system rear shield support and can be realized only through cloud computing.
In the embodiment of the application, the data packet scheduling method can be applied to scenes with high requirements on bandwidth, time delay and stability, such as online education, live broadcast of electronic commerce, cloud games and the like. Among them, cloud game (Cloud game) may also be called game on demand (game on demand), which is an online game technology based on Cloud computing technology. Cloud gaming technology enables lightweight devices (THIN CLIENT) with relatively limited graphics processing and data computing capabilities to run high quality games. In a cloud game scene, the game is not run in a player game terminal, but is run in a cloud server, the cloud server renders the game scene into a video and audio stream, and the video and audio stream is transmitted to the player game terminal through a network. The player game terminal does not need to have strong graphic operation and data processing capability, and only needs to have basic streaming media playing capability and the capability of acquiring player input instructions and sending the player input instructions to the cloud server.
In order to facilitate understanding of the packet scheduling method provided by the embodiment of the present application, an application scenario of the packet scheduling method is described below by taking an execution body of the packet scheduling method as an example of a server.
Referring to fig. 1, the application scenario of the packet scheduling method provided by the embodiment of the present application is shown. As shown in fig. 1, the application scenario includes a plurality of terminal devices 110 and a server 120. Wherein the terminal device 110 may install a video source client so that video is uploaded to the server 120 through the video source client. The server 120, as an ingest server, can receive and store video uploaded by the terminal device 110.
Taking one terminal device of the plurality of terminal devices 110 as an example, after the terminal device 110 receives the target data packet to be allocated, the target data packet needs to be uploaded to the server 120. Since both network links can upload the target data packet, the terminal device 110 needs to determine which network link to upload through before uploading the target data packet, so as to ensure transmission performance.
Wherein the two network links are respectively network link one: wi-Fi path and network link two: LTE/5G path. After receiving the target data packet, the terminal device 110 obtains window parameters of congestion windows corresponding to the two network links, where the window parameters are used to describe network states of the corresponding network links. For example, the window parameter of the congestion window of the network link one is 4096 bytes, and the window parameter of the congestion window of the network link two is 2048 bytes.
The terminal device 110 determines the routing probabilities corresponding to the network links respectively according to the window parameters of the congestion window. For example, the routing probability of network link one is 0.7 and the routing probability of network link two is 0.3. It should be noted that the congestion window is a variable of a transmission protocol used in the transmission process, and is capable of adapting to a network state of a network link. The larger the window parameter of the congestion window, the better the network state of the corresponding network link, and the larger the corresponding routing probability, so that the terminal device 110 distributes the target data packet to the network link according to the routing probability, and the network link with the larger routing probability has more opportunities to distribute the target data packet. For example, in the application scenario of fig. 1, the terminal device 110 may send the target data packet to the server 120 through the network link.
Therefore, the routing probability is determined through the window parameters of the congestion window, and the data packet to be distributed is distributed according to the routing probability, so that the data packet can be distributed to a network link with better network condition with higher probability, the scheduling effect of the data packet is improved from the whole, and the transmission speed of the data packet is further improved. In addition, because the window parameters of the congestion window are adjusted in real time according to the network state of the network link, the network state change of the wireless link can be accurately detected, and the routing probability of each network link is calculated respectively, so that the congestion window is effectively suitable for the isomerism and the dynamic property of the mobile network or the wireless network.
The data packet scheduling method provided by the embodiment of the application can be executed by a server. However, in other embodiments of the present application, the terminal device may also have a similar function to the server, so as to perform the packet scheduling method provided in the embodiment of the present application, or the terminal device and the server together perform the packet scheduling method provided in the embodiment of the present application, which is not limited in this embodiment.
The method for scheduling data packets provided by the application is described in detail by the method embodiment.
Referring to fig. 2, the flow chart of the packet scheduling method according to the embodiment of the present application is shown. For convenience of description, the following embodiments will take an execution body of the packet scheduling method as an example of a terminal device. As shown in fig. 2, the packet scheduling method includes the following steps:
S201: and if the target data packet to be distributed is received, acquiring window parameters of congestion windows respectively corresponding to the network links.
In practical applications, a terminal device as a transmitting end generally has a plurality of ports, each of which is connected to a network link, for example, a Wi-Fi port, a subscriber identity module (Subscriber Identity Module, SIM card) port, etc. in a mobile phone are all connected to the corresponding network link. Because the network links generally have different parameters, the network links have different transmission capacities, and the network links can dynamically change at different times, i.e. the wireless network or the mobile network has the characteristics of isomerism and dynamism. In order to ensure data transmission performance, a network link with a better network state needs to be selected after the data packet is obtained. The network status generally refers to the condition of the network uploading data packets, whether blocking, etc.
Taking a target data packet of the plurality of data packets as an example, the target data packet is a data packet of a network link to be allocated, and is sent to a terminal device or a server serving as a receiving end through the network link after the network link is allocated. Wherein the network link is a channel for transmitting the target data packet.
In the related art, the network state is generally determined based on the change conditions of network features such as bandwidth, round Trip Time (RTT) and packet loss, but the network features such as bandwidth, RTT and packet loss can only reflect one side of the network state, for example, the overall delay can only be minimized based on RTT, the bandwidth can not be adjusted, that is, the network state can not be comprehensively reflected, and it is difficult to accurately estimate the condition of a wireless link with severe fluctuation, for example, the change amplitude of various network features is very large when the network signal is bad or severely blocked, and the current network state can not be accurately estimated based on only one network feature.
Based on this, the embodiment of the application adopts the window parameters of the congestion window of the network link to determine the network state. The congestion window refers to how many data packets can be sent in a unit time, is a window for congestion avoidance, is a slidable window at a transmitting end, and the size of the congestion window depends on the congestion degree of the network and dynamically changes. The principle of the sending end controlling the congestion window is as follows: as long as the network is not congested, the congestion window is increased a little more in order to send out more packets. But the congestion window is reduced somewhat as long as the network is congested. Thus, the window parameter of the congestion window can embody the size of the congestion window and can describe the network state of the corresponding network link.
It should be noted that, the congestion window is a variable of a transmission protocol used in the transmission process, and can adapt to a network state of a network link, that is, the network state of each network link can be comprehensively reflected through a window parameter of the congestion window. The network characteristic is an index of the network state, and only one side of the network state can be represented. Therefore, the network state determined by the window parameters of the congestion window is more accurate.
S202: and determining the routing probability corresponding to each of the network links according to the window parameters of the congestion windows.
From the foregoing, it can be seen that the window parameter of the congestion window can represent the size of the congestion window, and can describe the network state of the corresponding network link. For example, the window value of the congestion window that is adjusted last time may be used as a window parameter, and an average value of window values of congestion windows that are adjusted multiple times within a period of time may be used as a window parameter, which is not particularly limited in the embodiment of the present application.
The window parameters of the congestion window can comprehensively reflect the network state of the corresponding network link, and the larger the window parameters of the congestion window, the better the network state of the corresponding network link, so that the larger the corresponding routing probability, and the probability that the corresponding network link is distributed with the target data packet can be described through the routing probability. And then distributing the target data packet to each network link according to the routing probability of each network link.
The manner of determining the routing probability according to the window parameter is not particularly limited in the embodiments of the present application, for example, the routing probability of the jth network link in the m network links may be represented as p j r, where j=1, 2, …, m. The normalization of the routing probability can be expressed as:
pj r=cwndj T/∑u cwndu T
Wherein Σ j pj r=1,u=1,2,…,m,cwndj T represents the window parameters of the jth network link and Σ ucwndu T represents the sum of the window parameters of the m network links.
In addition, because the window parameters of the congestion window are adjusted in real time according to the network state of the network link, the network state change of the wireless link can be accurately detected, and the routing probabilities of the network links are calculated respectively and do not affect each other, so that a plurality of network links of a transmitting end can be fully utilized to transmit the data packet, and the transmission speed of the data packet is improved as a whole.
S203: and distributing the target data packet to a plurality of network links according to the plurality of routing probabilities.
The routing probability is used to describe the probability that the corresponding network link is assigned the target data packet, such that the greater the routing probability, the greater the probability that the target data packet is assigned through the corresponding network link. As a possible implementation manner, the target data packet may be sent to the network link with the highest routing probability, or the target data packet may be sent randomly to the network links with the top ranking of the routing probabilities, which is not specifically limited in the present application, and will be described in a few ways hereinafter as examples, which are not repeated here.
According to the technical scheme, if the target data packet to be distributed is received, the target data packet needs to be distributed to the network links for transmission, and at the moment, window parameters of congestion windows of the network links are obtained. The congestion window is a variable of a transmission protocol used in a transmission process, and can adapt to a network state of a network link, namely, the network state of each network link can be comprehensively reflected through window parameters of the congestion window. And determining the routing probability corresponding to each network link according to the window parameters of the congestion window, namely determining the probability of distributing the target data packet to each network link according to the window parameters of the congestion window. The larger the window parameter of the congestion window, the better the network state of the corresponding network link is, so the larger the corresponding routing probability is, so that the target data packet is distributed to the network link according to the routing probability, and the network link with the larger routing probability has more opportunities to be distributed with the target data packet.
Therefore, the routing probability is determined through the window parameters of the congestion window, and the data packet to be distributed is distributed according to the routing probability, so that the data packet can be distributed to the network link with better network condition with larger probability, namely, the current more suitable network link is selected to send the target data packet, thereby improving the dispatching effect of the data packet from the whole, and further improving the transmission speed of the data packet. In addition, because the window parameters of the congestion window are adjusted in real time according to the network state of the network link, the network state change of the wireless link can be accurately detected, and the routing probability of each network link is calculated respectively, so that the congestion window is effectively suitable for the isomerism and the dynamic property of the mobile network or the wireless network.
As one possible implementation manner, the embodiment of the present application provides a specific implementation manner of S203, that is, a specific implementation manner of distributing the target data packet to the plurality of network links according to the plurality of routing probabilities, specifically see A1-A4.
A1: m consecutive accumulation intervals are constructed from the plurality of routing probabilities.
The start value of the ith accumulation interval corresponding to the jth network link is the sum of the routing probabilities of the previous j-1 network links, the end value of the ith accumulation interval is the sum of the routing probabilities of the previous j network links, and both i and j are positive integers less than or equal to m.
For example, if the number of the plurality of network links is m, m consecutive accumulation intervals may be constructed according to m routing probabilities. If the sum of the routing probabilities of the m network links is 1, the m consecutive accumulation intervals may be denoted [0,p1 r),[p1 r,p1 r+p2 r),…,[∑j=1 m-1pj r,1](∑j=1 m pj r=1)., where the start value of the 1 st accumulation interval corresponding to the 1 st network link is 0, that is, the sum of the routing probabilities of the first 0 network links is 0, and the end value of the 1 st accumulation interval corresponding to the 1 st network link is p 1 r, that is, the routing probability of the 1 st network link is. The start value of the 2 nd accumulation interval corresponding to the 2 nd network link is p 1 r, namely the sum of the routing probabilities of the first 1 network link is p 1 r, and the end value of the 2 nd accumulation interval corresponding to the 2 nd network link is p 1 r+p2 r, namely the sum of the routing probabilities of the first 2 network links. And so on, and will not be described in detail herein.
A2: a random number is generated.
Wherein, the random number is greater than or equal to the start value of the 1 st accumulation interval, and the random number is less than or equal to the end value of the m-th accumulation interval, i.e. a random number is randomly generated in the interval covered by the m accumulation intervals, such as [0,1 ].
A3: and determining the network link corresponding to the accumulation interval in which the random number falls as the network link to be transmitted.
For example, a random number x between [0,1] is generated and the accumulation interval to which it belongs is observed, and for x epsilon [ Σ j=1 v-1pj r,∑j=1 v pj r), the v-th network link is selected as the network link to be transmitted, and is used for transmitting the target data packet to be allocated. For another example, if the generated random number falls into the 3 rd accumulation interval, the 3 rd network link is the network link to be transmitted.
A4: and distributing the target data packet to the network link to be transmitted.
According to the technical scheme, the accumulation interval corresponding to each network link is constructed according to the routing probability, the network link corresponding to the accumulation interval in which the generated random number falls is used as the network link to be transmitted, and then the target data packet is transmitted through the network link to be transmitted. Therefore, compared with the mode that the data packet is sent through the network link with the highest routing probability, the method can send the target data packet through the network link with the smaller routing probability in a random number mode, and therefore each network link is fully utilized, network link idling is avoided, and the data packet is sent according to the routing probability distribution of each link as a whole. Furthermore, since decisions can be made in real time for each data packet to be allocated, and the network links selected as a whole can be made to conform to the routing probability distribution situation of the respective network links.
As a possible implementation manner, the network link corresponding to the highest routing probability in the plurality of routing probabilities may be determined as the network link to be sent, where the network link to be sent is the network link with the best network state in the plurality of network links, and the target data packet is distributed to the network link to be sent, so that the target data packet is sent through the network link with the best network state, and the sending speed of the target data packet is faster.
As a possible implementation manner, the embodiment of the present application further provides two manners of determining window parameters, which are described below respectively.
Mode one: the last window value is taken as a window parameter.
B1: if the window value of the congestion window of the identified target network link changes, the updated window value and the updated time are recorded.
From the foregoing, it can be seen that the window value of the congestion window, i.e. the size of the congestion window, changes with the change of the network status, and each change of the window value, i.e. the updated window value and the update time, needs to be recorded for the subsequent use. The following description will take one network link among a plurality of network links, that is, a target network link as an example.
It should be noted that, the updated window value and the updated time may be obtained according to a transmission protocol used between the receiving end and the transmitting end, which is not particularly limited in the present application.
B2: and determining an updated window value corresponding to the update time closest to the current time as a window parameter of the congestion window corresponding to the target network link.
According to the update time of the target network link, determining an updated window value corresponding to the update time closest to the current time, namely, the current latest update time and the current latest window value of the congestion window, and determining the current latest window value of the congestion window as the window parameter of the congestion window corresponding to the target network link.
B3: and respectively taking the plurality of network links as target network links, and acquiring window parameters of congestion windows corresponding to the plurality of network links.
Thus, by using each network link as a target network link, the window parameters of the congestion window of each network link can be determined by B1-B2.
According to the technical scheme, the window value and the updating time after each updating are recorded, the window value updated last time is determined according to the updating time, and the window value is determined to be the window parameter of the congestion window corresponding to the target network link. Therefore, the latest window value at each time is continuously used as the window parameter of the congestion window, and the network state of each network link can be continuously determined, so that the real-time property of data packet distribution to be distributed is improved.
Mode two: and taking the average value of the window values in a period of time as a window parameter.
C1: if the window value of the congestion window of the identified target network link changes, the updated window value and the updated time are recorded.
From the foregoing, it can be seen that the window value of the congestion window, i.e. the size of the congestion window, changes with the change of the network status, and each change of the window value, i.e. the updated window value and the update time, needs to be recorded for the subsequent use. The following description will take one network link among a plurality of network links, that is, a target network link as an example.
As a possible implementation manner, since some network links are updated at a slower speed, a window value of an initial congestion window corresponding to each network link may be recorded, and may be denoted as cwnd j 0, where j=1, 2, …, m, and m is the number of multiple network links. When the window value of the congestion window of the jth network link changes, if the window value received by the receiving end is different from the window value used in transmission, the window value of the congestion window is considered to change. The congestion window after the ith update of the jth network link may be denoted as cwnd j i, and the corresponding update time after the ith update of the jth network link may be denoted as t j i.
C2: and determining the window value of the congestion window of the target network link in the link influence period according to the updating time.
As a possible implementation manner, the window parameter may be predetermined, or may be determined at a time when there is a need, for example, when there is a target packet waiting to be allocated as the target packet at time T c, the window value of the congestion window of each network link is searched in the link influencing period T a, and may be denoted as cwnd j k, where T j k∈[tc-Ta,tc is the window value of the congestion window updated in the link influencing period.
The link influencing period is a preset time period. Through a large number of experiments, when the link influence period is 100 milliseconds, the aggregate throughput of a plurality of network links can be maximized.
And C3: and determining window parameters of the congestion window of the target network link according to the window value of the congestion window of the target network link in the link influence period.
According to the technical scheme, the window parameters of the congestion windows of the network links are determined by taking the window values of the congestion windows in a period of time, namely the link influence period as the basis. Therefore, the influence of the emergency can be avoided, so that the overall state of each network link can be more accurately determined within a short period of time (namely, within the link influence period), and the method can be used for comparing the network states among different network links, and further determining the network link for distributing the target data packet.
The embodiment of the application is not particularly limited to a specific manner of determining the window parameters of the congestion window of the target network link according to the window values of the congestion window of the target network link in the link influence period, and is exemplified by two manners.
First kind: window parameters are determined by means of an arithmetic mean.
D1: an arithmetic average of window values of congestion windows of the target network link over a link impact period is determined.
D2: the arithmetic average is determined as a window parameter of a congestion window of the target network link.
Therefore, the average value of the window values of the congestion window in a period of time, namely in the link influence period, is used as the window parameter of the congestion window, so that the emergency can be avoided, and the stability of the network state is improved.
Second kind: window parameters are determined by means of weighted harmonic mean.
E1: and determining the window adjustment times of the target network link in the link influence period according to the window value of the congestion window of the target network link in the link influence period.
Because each network link has different transmission capability, or the network states of the network links are different, the window value of each network link may be different, and the window adjustment times of each network link in the link influence period may be different.
It should be noted that, although the plurality of updated window values are all within the link influencing period, the influence degree of each window value on the network state is different, for example, the greater the influence degree of the window value with the update time being closer to the current time, the smaller the influence degree of the window value with the update time being farther to the current time on the network state, so in order to improve the accuracy of the window parameters, the window values with different update times are given different weights by means of weighted harmonic mean.
E2: and obtaining the difference value between the target updating time and the time of waiting for distribution of the target data packet.
The target update time is one of update times of the target network link in the link influence period.
E3: and obtaining the ratio of the difference value to the window value of the congestion window corresponding to the target updating time.
E4: and taking the update time of the target network link in the link influence period as the target update time respectively, and obtaining the sum of a plurality of ratios.
E5: and determining the ratio of the sum of the window adjustment times and the ratio as the window parameter of the congestion window of the target network link.
E2-E5 may be represented as cwndj T=Na/∑k[(tc-tj k)/cwndj k].
Where cwnd j T is the window parameter of the congestion window of the jth network link. N a is the window adjustment times of the jth network link in the link influencing period. t c is the time at which the target packet waits for allocation. t j k is the update time of the kth update of the congestion window of the jth network link. cwnd j k is the kth updated window value of the congestion window of the jth network link.
Therefore, the harmonic average value of the window values of the congestion window in the link influence period is used as the window parameter of the congestion window, so that not only can the emergency be avoided and the stability of the network state be improved, but also the influence degree of the congestion window with different update time in the link influence period on the network state is considered, so that the accuracy of the window parameter is improved, the accuracy of the network state evaluation is further improved, and the comparison of the network states among all network links is determined.
As a possible implementation manner, the embodiment of the present application further provides two congestion window adjustment methods, so that the adjustment of the congestion window is more fit to the network state change of the network link. The following is a detailed description.
Congestion window adjustment mode one: based on the packet loss situation.
F1: and acquiring a response signal returned by the receiving end.
In practical application, the transmitting end sends a data packet to the receiving end through the network link, and the receiving end sends a response signal to the transmitting end so as to inform the transmitting end of the self situation through the response signal, such as whether the data packet is received or not.
It should be noted that, the adjustment timing of the congestion window may be after the sending end sends the target data packet through the network link to be sent, or may be before the sending end sends the target data packet through the network link to be sent, which is not specifically limited in the present application. The following describes an example of adjusting a congestion window of a network link to be transmitted after a transmitting end transmits a target data packet through the network link to be transmitted.
F2: if the response signal does not include an acknowledgement character, a first number of data packets in a buffer queue of the network link to be transmitted is determined.
If the response signal does not include the acknowledgement character (Acknowledge character, ACK), it indicates that there is a packet loss currently, that is, after the transmitting end transmits the target data packet through the network to be transmitted, the receiving end may not receive the target data packet. At this time, a first number of data packets in a buffer queue of a network link to be transmitted is determined, so as to determine two cases in which packet loss exists, which are described below through F3 and F4, respectively.
In the data communication, the ACK is a transmission type control character sent by the receiving end to the transmitting end. Indicating that the transmitted data has been acknowledged with no errors. For example, in the transmission control protocol/internet protocol (Transmission Control Protocol/Internet Protocol, TCP/IP), if the receiving end successfully receives data, a response signal including ACK data is returned. Typically the ACK data has its own fixed format, length size, etc.
As one possible implementation, the first number may be determined by the following formula:
Ncg=(cwndj T/RTT-cwndj T/RTTcg)*RTTmin
where N cg is a first number, cwnd j T is a window parameter of a congestion window of a jth network link, and in an embodiment of the present application, the window parameter of the congestion window of the network link to be sent may be a window parameter of the congestion window of the network link to be sent. RTT is the round trip delay of the network link to be sent. RTT min is the minimum round trip delay among the round trip delays of the multiple network links. RTT cg may be expressed as RTT cg=(1-β)*RTTcg +β SRTT, SRTT being the smooth round trip delay of network link transmission, β being the attenuation factor. As a possible implementation β may be taken to be 0.2.
F3: if the first number is greater than the first packet threshold, the congestion window is reduced by a first downweighting.
If the first number is greater than the first data packet threshold, it indicates that the number of data packets buffered in the buffer queue of the network link to be sent is smaller, and the reason for packet loss at this time may be the immediate packet loss caused by the network instability of the network link to be sent, that is, the low packet loss rate. The network state may be instantly restored to the normal state or may continue to be in an unstable state, so that the congestion window can be reduced, that is, the congestion window of the network to be sent is reduced through the first dropping weight, so as to avoid that the network state of the network link to be sent is always bad.
The embodiment of the application is not particularly limited to the first data packet threshold, and a person skilled in the art can set the first data packet threshold according to actual needs. As a possible implementation, it has been found through experiments that the aggregate throughput can be maximized when the first packet threshold is taken to be 2.
F4: if the first number is less than or equal to the first packet threshold, the congestion window is reduced by the second drop weight.
If the first number is smaller than or equal to the first data packet threshold, it indicates that the number of data packets buffered in the buffer queue of the network link to be transmitted is large, so that the buffer queue cannot continuously receive new data packets, and the situation that the transmitting end cannot transmit the data packets to the receiving end, and then the high packet loss rate is caused can occur. At this time, the window value of the congestion window of the network link to be sent needs to be quickly reduced, that is, the congestion window of the network to be sent is reduced through the second reducing weight with larger value, so that fewer data packets are sent through the network link to be sent, and the number of lost packets is further reduced.
It should be noted that the first dropping weight is smaller than the second dropping weight. if, for example, the first number N cg > the first packet threshold θ c, the setting of the first drop weight may be denoted as w d r, The congestion window adjusted at this time may be denoted as cwnd j T+1=(1-wd r)*cwndj T. Wherein cwnd j T is the window parameter of the congestion window of the jth network link, and cwnd j T+1 is the window parameter of the congestion window after updating of the jth network link. If the first number N cg < = the first packet threshold θ c, setting the second drop weight may be denoted as w d c, the congestion window adjusted at this time may be denoted as cwnd j T+1=(1-wd c)*cwndj T. As one possible implementation, the value of the first drop weight w d r may be 0.2 and the value of the second drop weight w d c may be 0.3.
According to the technical scheme, the congestion window of the network link where the high packet loss rate is located needs to be quickly reduced, and the congestion window of the network link where the low packet loss rate is located can be slowly reduced. Therefore, the window value of the congestion window is adjusted in a targeted manner according to different packet loss conditions, so that the adjustment of the congestion window is more similar to the network state change of a wireless network link or a mobile network link.
Congestion window adjustment mode two: based on the time delay situation.
F1: and acquiring a response signal returned by the receiving end.
And F5: and if the response signal comprises the confirmation character, acquiring the round trip delay corresponding to the network links respectively, and determining a reference delay from the round trip delay corresponding to the network links respectively.
If the response signal includes a determination character, it indicates that the receiving end receives the target data packet, and at this time, the round trip delay corresponding to each of the plurality of network links may be obtained. For example, round trip delays for individual network links over a period of time are counted. And determining one round trip delay from the round trip delays corresponding to the network links as a reference delay, such as the minimum round trip delay or the maximum round trip delay.
F6: and determining the updating rate of the congestion window of the network link to be transmitted according to the round trip delay and the reference delay of the network link to be transmitted.
For example, if the reference delay is the smallest round trip delay among the round trip delays of the plurality of network links, that is, the smallest round trip delay, the update rate of the congestion window for determining the network link to be transmitted may be represented as γ j. Where γ j=RTTj/RTTmin.RTTmin is the minimum round trip delay among the round trip delays of the multiple network links, and RTT j is the round trip delay of the jth network link.
F7: and if the update rate is greater than or equal to the update rate threshold, reducing the congestion window of the network link to be transmitted.
If the update rate is greater than or equal to the update rate threshold, it indicates that the network link to be sent is in a high-delay condition, so as to avoid that the update speed of the congestion window with high delay is too high, so that the delay difference of different network links is larger, and the stability of throughput is affected, at this time, the congestion window can be reduced, that is, the update rate of the congestion window is limited, and the congestion window enters the attenuation stage.
As a possible implementation manner, the congestion window of the network link to be sent may be reduced in an exponentially weighted moving average manner, which may be expressed as follows:
cwndj T+1=β*cwndj T+(1-β)*(cwndj T/γj)
Wherein cwnd j T is the window parameter of the congestion window of the jth network link, and cwnd j T+1 is the window parameter of the congestion window after updating of the jth network link. Gamma j is the update rate of the congestion window of the network link to be sent. And b is an attenuation factor, β may be 0.2 as one possible implementation.
The embodiment of the application does not specifically limit the magnitude of the update rate threshold, and a person skilled in the art can set the update rate threshold according to actual needs. As one possible implementation, the aggregate throughput is maximized when the update rate threshold is 3.
F8: and if the update rate is smaller than the update rate threshold, increasing the congestion window of the network link to be sent.
If the update rate is less than the update rate threshold, it indicates that the network link to be sent is in a low delay condition, and at this time, the congestion window of the network link to be sent may be increased, for example, a conventional congestion control algorithm such as an Opportunistic LINKED INCREASES Algorithm (OLIA) is used for adjustment.
As one possible implementation manner, determining a second number of data packets in a buffer queue of the network link to be transmitted; if the second number exceeds the second data packet threshold, after waiting to receive a confirmation character, increasing the congestion window of the network link to be sent; and if the second number is smaller than the second data packet threshold value, increasing the congestion window of the network link to be sent. The second data packet threshold may be equal to the first data packet threshold, which is not particularly limited in the present application, and those skilled in the art may perform society according to actual needs. Therefore, by increasing the window value of the congestion window after the network link with low packet loss receives one ACK, and increasing the congestion window size after the network link with high packet loss receives two ACKs, the congestion window is more conservative when the network link is blocked, and more data packet transmission is slowed down.
As a possible implementation, if the congestion window is still in the slow start phase, the slow start threshold is additionally set to the original congestion window size cwnd j t.
According to the technical scheme, the operation of reducing the congestion window is performed on the congestion window of the network link where the high delay is located, and the operation of increasing the congestion window is performed on the congestion window of the network link where the low delay is located, so that the situation that the delay difference of different network links is increased and the stability of throughput is affected due to the fact that the congestion window of the high delay is updated too fast is avoided.
In order to facilitate further understanding of the technical solution provided by the embodiments of the present application, an execution body of the packet scheduling method provided by the embodiments of the present application is taken as an example of a terminal device, and the packet scheduling method is described in an overall exemplary manner.
First, an application scenario of the packet scheduling method will be described.
The data packet scheduling method provided by the embodiment of the application can be suitable for various multi-access mobile applications, namely, the scenes of sending the data packets to the mobile applications through a plurality of or various network links, especially streaming media applications with higher requirements on data transmission bandwidth, time delay and stability, such as online education, live broadcast by electronic commerce, VR/AR cloud games and the like. Wherein, the streaming media is a new media transmission mode, which refers to a technology and a process that after a series of multimedia data are compressed, the data are sent by internet segments, and video and audio can be transmitted in real time for viewing; the most important technical feature of streaming media is streaming, which enables data to be transmitted like streaming.
The following describes an example of a process of multiplexing video from a video source to an ingest server deployed in the cloud or edge during live video.
Referring to fig. 3, the application scenario of a data packet scheduling method according to an embodiment of the present application is shown. In fig. 3, a video source is a transmitting end, a video frame can be continuously captured by using a mobile phone or a network camera as the video source, after the encoding of the transmitting end, a data packet is sent to an ingestion server through a network router by using a plurality of network links such as WiFi, LTE/5G, etc., and the ingestion server (INGEST SERVER) is connected with a plurality of content delivery network (Content Delivery Network, CDN) servers, so that the received data packet is sent to the CDN servers.
Next, a description will be given of a packet scheduling system to which the packet scheduling method provided by the embodiment of the present application is applied, and the description will be made with reference to fig. 4.
Referring to fig. 4, a schematic diagram of a packet scheduling system according to an embodiment of the present application is shown. Fig. 4 can also be seen as an end-to-end framework running on both sides of the video source and ingest server. The packet scheduling system includes a video source 410 and an ingest server 420. Data transfer between the video source 410 and the ingest server 420 is accomplished via a transmission control protocol over UDP fast internet connection (Quick UDP Internet Connection, QUIC), as described below.
The video source 410 includes a video capture module 411, a frame conversion module 412, a packet scheduling module 413, and a congestion control module 414. Wherein, the video capturing module 411 continuously captures video frames, and encodes the video frames and then buffers the video frames in a transmission queue of the video source. The frame conversion module 412 extracts the video frames from the transmit queue in turn and encapsulates them into quench packets. The packet scheduling module 413 selects an appropriate network link based on the window value of the congestion window of the network link for each encapsulated packet, as described above for the target packet, i.e. performs the above-described S201-S203. The congestion control module 414 adjusts the window value of the congestion window of each network link according to the round trip delay and/or packet loss of each network link, i.e., performs F1-F8 described above.
The QUIC packets are sent over multiple network links to ingest server 420, which ingest server 420 buffers them into a receive queue. Ingest server 420 includes a frame conversion module 421 and a video buffering module 422. The frame conversion module 421 sequentially extracts the QUIC data packets from the receive queue, reorders the QUIC data packets according to the packet numbers of the QUIC data packets, reconstructs the video frames, and sends the video frames to the video buffer module 422. The video buffering module 422 performs operations such as content distribution on video frames.
In addition, the data packet scheduling system in the related art establishes an application layer in a user mode and establishes a transmission layer in a system kernel, so that the application layer and the transmission layer cannot be directly accessed. In the data packet scheduling system provided by the embodiment of the application, a cross-layer network architecture is designed to integrate a transmission layer and an application layer, the application layer and the transmission layer are both built in a user mode, a video stream generated by a video source is transmitted to a server on line, two-layer redundant configuration and operation are reduced, and the transmission time can be reduced.
Finally, a scheduling method of the data packet will be described with reference to fig. 5 and 6.
Referring to fig. 5, the flow chart of a scheduling method of a data packet according to an embodiment of the present application is shown. The packet scheduling method may be applied to the packet scheduling module 413 in fig. 4, which is described in detail below.
S501: starting.
S502: the initial window value of the congestion window of each network link is recorded.
S503: judging whether the congestion window of each network link is adjusted, if so, executing S504; if not, S505 is executed.
S504: if it is recognized that the window value of the congestion window of a certain network link is changed, the updated window value and the updated time are recorded, and S503 is executed.
S505: judging whether each network link has a target data packet to be allocated, if so, executing S506; if not, S509 is performed.
S506: window parameters of congestion windows of the network links are obtained.
See B2-B3 for details, which are not described in detail herein.
S507: and determining the routing probability corresponding to each of the network links according to the window parameters of the congestion windows.
Reference may be made specifically to A1-A4, which are not described in detail herein.
S508: distributing the target data packet to the plurality of network links according to the plurality of routing probabilities, S505 is performed.
S509: judging whether to stop sending the target data packet, if so, executing S510; if not, S503 is performed.
S510: and (5) ending.
Referring to fig. 6, the flow chart of a scheduling method of a data packet according to an embodiment of the present application is shown. The packet scheduling method may be applied to the congestion control module 414 in fig. 4, which is described in detail below.
S601: starting.
S602: and acquiring a response signal returned by the receiving end.
S603: judging whether the response signal comprises a determined character, if so, executing S604; if not, S609 is performed.
S604: a first number of data packets in a buffer queue of a network link to be transmitted is determined.
S605: judging whether the first number is larger than a first data packet threshold, if so, executing S606; if not, then S607 is performed.
S606: the congestion window is reduced by the first falling weight, S608 is performed.
S607: the congestion window is reduced by the second falling weight, S608 is performed.
S608: judging whether to continue to acquire the response signal returned by the receiving end, if so, executing S602; if not, then S616 is performed.
S609: an update rate of a congestion window of a network link to be transmitted is determined.
Specific reference may be made to F5-F6, which will not be described in detail herein.
S610: judging whether the update rate threshold is exceeded, if so, executing S611; if not, S612 is performed.
S611: the congestion window of the network link to be transmitted is reduced in an exponentially weighted moving average manner, and S608 is performed.
S612: a second number of data packets in a buffer queue of a network link to be transmitted is determined.
S613: judging whether the second number exceeds a second data packet threshold, if so, executing S614; if not, then S615 is performed.
S614: waiting for a further receipt of one of the acknowledgement characters.
S615: the congestion window of the network link to be transmitted is increased.
S616: and (5) ending.
According to the technical scheme, the routing probability is determined based on the window value of the congestion window, the target data packet is distributed probabilistically through the random number, the congestion control mechanism is optimized to sense the time delay and the packet loss condition in real time, the change of the wireless link network state is accurately detected, the transmission path is reasonably selected to fully utilize the whole available bandwidth, and inaccurate link state prediction, queue head blocking phenomenon and extra network overhead are effectively avoided. Various multi-access mobile applications with higher requirements on data transmission bandwidth, time delay and stability can provide high-efficiency data transmission support, effectively adapt to mobile network isomerism and dynamic property, fully utilize the whole available bandwidth and avoid extra network overhead. Experiments show that compared with the existing mainstream multipath scheduling method, the aggregate throughput and the video transmission bit rate are obviously improved by more than 20%. The video transmission bit rate refers to the number of bits corresponding to the video stream transmitted in a unit time in the streaming media application.
The application also provides a corresponding data packet scheduling device aiming at the data packet scheduling method, so that the data packet scheduling method is practically applied and realized.
Referring to fig. 7, the structure of a packet scheduling apparatus according to an embodiment of the present application is shown. As shown in fig. 7, the packet scheduling apparatus 700 includes: an acquisition unit 701, a determination unit 702, and a transmission unit 703;
the obtaining unit 701 is configured to obtain window parameters of congestion windows corresponding to a plurality of network links, respectively, if a target data packet to be allocated is received, where the network links are channels for transmitting the target data packet, and the window parameters of the congestion windows are used to describe a network state of the corresponding network links;
The determining unit 702 is configured to determine, according to window parameters of a plurality of congestion windows, routing probabilities corresponding to the plurality of network links, where the routing probabilities are used to describe probabilities that the corresponding network links are distributed to the target data packet; the larger the window parameter of the congestion window is, the larger the corresponding routing probability is;
The sending unit 703 is configured to distribute the target data packet to the plurality of network links according to a plurality of routing probabilities.
According to the technical scheme, if the target data packet to be distributed is received, the target data packet needs to be distributed to the network links for transmission, and at the moment, window parameters of congestion windows of the network links are obtained. The congestion window is a variable of a transmission protocol used in a transmission process, and can adapt to a network state of a network link, namely, the network state of each network link can be comprehensively reflected through window parameters of the congestion window. And determining the routing probability corresponding to each network link according to the window parameters of the congestion window, namely determining the probability of distributing the target data packet to each network link according to the window parameters of the congestion window. The larger the window parameter of the congestion window, the better the network state of the corresponding network link is, so the larger the corresponding routing probability is, so that the target data packet is distributed to the network link according to the routing probability, and the network link with the larger routing probability has more opportunities to be distributed with the target data packet. Therefore, the routing probability is determined through the window parameters of the congestion window, and the data packet to be distributed is distributed according to the routing probability, so that the data packet can be distributed to a network link with better network condition with higher probability, the scheduling effect of the data packet is improved from the whole, and the transmission speed of the data packet is further improved. In addition, because the window parameters of the congestion window are adjusted in real time according to the network state of the network link, the network state change of the wireless link can be accurately detected, and the routing probability of each network link is calculated respectively, so that the congestion window is effectively suitable for the isomerism and the dynamic property of the mobile network or the wireless network.
As a possible implementation manner, the number of the plurality of network links is m, where m is an integer greater than 1, and the sending unit 703 is specifically configured to:
Constructing m continuous accumulation intervals according to a plurality of routing probabilities; the starting value of the j accumulation interval corresponding to the j network links is the sum of the routing probabilities of the first j-1 network links, the ending value of the j accumulation interval is the sum of the routing probabilities of the first j network links, and j is a positive integer less than or equal to m;
Generating a random number, wherein the random number is larger than or equal to a start value of a1 st accumulation interval, and the random number is smaller than or equal to a termination value of an m-th accumulation interval;
Determining a network link corresponding to an accumulation interval in which the random number falls as a network link to be transmitted;
and distributing the target data packet to the network link to be sent.
As a possible implementation manner, the sending unit 703 is specifically configured to:
Determining a network link corresponding to the largest routing probability in the routing probabilities as a network link to be sent;
and distributing the target data packet to the network link to be sent.
As a possible implementation manner, the apparatus further includes a window parameter determining unit, configured to:
If the window value of the congestion window of the target network link is identified to be changed, recording the updated window value and the updated time, wherein the target network link is one network link in the network links;
Determining an updated window value corresponding to the update time closest to the current time as a window parameter of a congestion window corresponding to the target network link;
and respectively taking the plurality of network links as the target network links, and acquiring window parameters of congestion windows corresponding to the plurality of network links respectively.
As a possible implementation manner, the apparatus further includes a window parameter determining unit, configured to:
If the window value of the congestion window of the target network link is identified to be changed, recording the updated window value and the updated time, wherein the target network link is one network link in the network links;
Determining a window value of a congestion window of the target network link in a link influence period according to the update time, wherein the link influence period is a preset time period;
and determining window parameters of the congestion window of the target network link according to the window values of the congestion window of the target network link in the link influence period.
As a possible implementation manner, the apparatus further includes a window parameter determining unit, configured to:
Determining window adjustment times of the target network link in the link influence period according to the window value of the congestion window of the target network link in the link influence period;
Acquiring a difference value between a target update time and a time of waiting for distribution of the target data packet, wherein the target update time is one of update times of the target network link in the link influence period;
Acquiring the ratio of the difference value to the window value of the congestion window corresponding to the target updating time;
Taking the update time of the target network link in the link influence period as the target update time respectively, and obtaining the sum of a plurality of ratios;
and determining the ratio of the sum of the window adjustment times and the ratio as a window parameter of the congestion window of the target network link.
As a possible implementation manner, the apparatus further includes a window parameter determining unit, configured to:
Determining an arithmetic average of window values of congestion windows of the target network link during the link impact period;
and determining the arithmetic average value as a window parameter of a congestion window of the target network link.
As a possible implementation manner, the apparatus further includes a congestion window adjusting unit, configured to:
After the target data packet is sent through a network link to be sent, a response signal returned by a receiving end is obtained;
if the response signal does not comprise the confirmation character, determining a first number of data packets in a buffer queue of the network link to be sent;
if the first number is greater than a first data packet threshold, reducing the congestion window by a first dropping weight;
And if the first number is smaller than or equal to the first data packet threshold value, reducing the congestion window through a second descending weight, wherein the first descending weight is smaller than the second descending weight.
As a possible implementation manner, the apparatus further includes a congestion window adjusting unit, configured to:
If the response signal comprises a confirmation character, acquiring the round trip time delays corresponding to the network links respectively, and determining a reference time delay from the round trip time delays corresponding to the network links respectively;
Determining the update rate of the congestion window of the network link to be transmitted according to the round trip delay and the reference delay of the network link to be transmitted;
if the update rate is greater than or equal to an update rate threshold, reducing the congestion window of the network link to be sent;
and if the update rate is smaller than the update rate threshold, increasing the congestion window of the network link to be sent.
As a possible implementation manner, the apparatus further includes a congestion window adjusting unit, configured to:
and reducing the congestion window of the network link to be sent in an exponentially weighted moving average mode.
As a possible implementation manner, the apparatus further includes a congestion window adjusting unit, configured to:
determining a second number of data packets in a buffer queue of the network link to be transmitted;
if the second number exceeds a second data packet threshold, after waiting to receive one more confirmation character, increasing the congestion window of the network link to be sent;
And if the second number is smaller than the second data packet threshold value, increasing the congestion window of the network link to be sent.
The embodiment of the application also provides a computer device, which is the computer device introduced above, the computer device can be a server or a terminal device, the data packet scheduling device can be built in the server or the terminal device, and the computer device provided by the embodiment of the application is introduced from the aspect of hardware materialization. Fig. 8 is a schematic structural diagram of a server, and fig. 9 is a schematic structural diagram of a terminal device.
Referring to fig. 8, which is a schematic diagram of a server structure according to an embodiment of the present application, the server 1400 may have a relatively large difference between configurations or performances, and may include one or more processors 1422, such as a central processing unit (Central Processing Units, CPU), a memory 1432, one or more application programs 1442, or a storage medium 1430 (such as one or more mass storage devices) for data 1444. Wherein the memory 1432 and storage medium 1430 can be transitory or persistent storage. The program stored in the storage medium 1430 may include one or more modules (not shown), each of which may include a series of instruction operations on a server. Still further, a processor 1422 may be provided in communication with a storage medium 1430 to execute a series of instructions operations on the storage medium 1430 on the server 1400.
The Server 1400 can also include one or more power supplies 1426, one or more wired or wireless network interfaces 1450, one or more input/output interfaces 1458, and/or one or more operating systems 1441, such as a Windows Server TM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM, or the like.
The steps performed by the server in the above embodiments may be based on the server structure shown in fig. 8.
Wherein, the CPU 1422 is configured to perform the following steps:
If a target data packet to be distributed is received, window parameters of congestion windows corresponding to a plurality of network links respectively are obtained, wherein the network links are channels for transmitting the target data packet, and the window parameters of the congestion windows are used for describing the network states of the corresponding network links;
determining routing probabilities corresponding to the network links respectively according to window parameters of the congestion windows, wherein the routing probabilities are used for describing the probability that the corresponding network links are distributed with the target data packet; the larger the window parameter of the congestion window is, the larger the corresponding routing probability is;
and distributing the target data packet to a plurality of network links according to a plurality of routing probabilities.
Optionally, the CPU 1422 may further perform method steps of any specific implementation of the packet scheduling method in the embodiment of the present application.
Referring to fig. 9, the structure of a terminal device according to an embodiment of the present application is shown. Fig. 9 is a block diagram showing a part of a structure of a smart phone related to a terminal device provided by an embodiment of the present application, where the smart phone includes: radio Frequency (RF) circuitry 1510, memory 1520, input unit 1530, display unit 1540, sensor 1550, audio circuitry 1560, wireless fidelity (WiFi) module 1570, processor 1580, power supply 1590, and the like. Those skilled in the art will appreciate that the smartphone structure shown in fig. 9 is not limiting of the smartphone and may include more or fewer components than shown, or may combine certain components, or a different arrangement of components.
The following describes each component of the smart phone in detail with reference to fig. 9:
The RF circuit 1510 may be used for receiving and transmitting signals during a message or a call, and particularly, after receiving downlink information of a base station, the signal is processed by the processor 1580; in addition, the data of the design uplink is sent to the base station.
The memory 1520 may be used to store software programs and modules, and the processor 1580 implements various functional applications and data processing of the smartphone by running the software programs and modules stored in the memory 1520.
The input unit 1530 may be used to receive input numerical or character information and generate key signal inputs related to user settings and function control of the smart phone. In particular, the input unit 1530 may include a touch panel 1531 and other input devices 1532. The touch panel 1531, also referred to as a touch screen, may collect touch operations on or near the user and drive the corresponding connection device according to a predetermined program. The input unit 1530 may include other input devices 1532 in addition to the touch panel 1531. In particular, other input devices 1532 may include, but are not limited to, one or more of a physical keyboard, function keys (e.g., volume control keys, switch keys, etc.), a trackball, mouse, joystick, etc.
The display unit 1540 may be used to display information input by a user or information provided to the user and various menus of the smart phone. The display unit 1540 may include a display panel 1541, and optionally, the display panel 1541 may be configured in the form of a Liquid Crystal Display (LCD) CRYSTAL DISPLAY, an Organic Light-Emitting Diode (OLED), or the like.
The smartphone may also include at least one sensor 1550, such as a light sensor, a motion sensor, and other sensors. Other sensors such as gyroscopes, barometers, hygrometers, thermometers, infrared sensors, etc. that may also be configured with the smart phone are not described in detail herein.
Audio circuitry 1560, speaker 1561, and microphone 1562 may provide an audio interface between a user and a smart phone. The audio circuit 1560 may transmit the received electrical signal converted from audio data to the speaker 1561, and be converted into a sound signal by the speaker 1561 for output; on the other hand, the microphone 1562 converts the collected sound signals into electrical signals, which are received by the audio circuit 1560 for conversion into audio data, which is processed by the audio data output processor 1580 for transmission to, for example, another smart phone via the RF circuit 1510 or for output to the memory 1520 for further processing.
Processor 1580 is a control center of the smartphone, connects various parts of the entire smartphone with various interfaces and lines, performs various functions of the smartphone and processes data by running or executing software programs and/or modules stored in memory 1520, and invoking data stored in memory 1520. In the alternative, processor 1580 may include one or more processing units.
The smart phone also includes a power source 1590 (e.g., a battery) for powering the various components, which may preferably be logically connected to the processor 1580 via a power management system, such as to provide for managing charging, discharging, and power consumption.
Although not shown, the smart phone may further include a camera, a bluetooth module, etc., which will not be described herein.
In an embodiment of the present application, the memory 1520 included in the smart phone may store program codes and transmit the program codes to the processor.
The processor 1580 included in the smart phone may execute the packet scheduling method provided in the foregoing embodiment according to the instruction in the program code.
The embodiment of the application also provides a computer readable storage medium for storing a computer program for executing the data packet scheduling method provided in the above embodiment.
Embodiments of the present application also provide a computer program product or computer program comprising computer instructions stored in a computer readable storage medium. The processor of the computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions to cause the computer device to perform the packet scheduling method provided in various alternative implementations of the above aspects.
Those of ordinary skill in the art will appreciate that: all or part of the steps for implementing the above method embodiments may be implemented by hardware related to program instructions, where the above program may be stored in a computer readable storage medium, and when the program is executed, the program performs steps including the above method embodiments; and the aforementioned storage medium may be at least one of the following media: read-Only Memory (ROM), RAM, magnetic disk or optical disk, etc.
It should be noted that, in the present specification, each embodiment is described in a progressive manner, and identical and similar parts of each embodiment are all referred to each other, and each embodiment is mainly described in a different point from other embodiments. In particular, for the apparatus and system embodiments, since they are substantially similar to the method embodiments, the description is relatively simple, with reference to the description of the method embodiments in part. The apparatus and system embodiments described above are merely illustrative, in which elements illustrated as separate elements may or may not be physically separate, and elements shown as elements may or may not be physical elements, may be located in one place, or may be distributed over a plurality of network elements. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of this embodiment. Those of ordinary skill in the art will understand and implement the present invention without undue burden.
The foregoing is only one specific embodiment of the present application, but the scope of the present application is not limited thereto, and any changes or substitutions easily contemplated by those skilled in the art within the technical scope of the present application should be included in the scope of the present application. Further combinations of the present application may be made to provide further implementations based on the implementations provided in the above aspects. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.
Claims (15)
1. A method for scheduling data packets, the method comprising:
If a target data packet to be distributed is received, window parameters of congestion windows corresponding to a plurality of network links respectively are obtained, wherein the network links are channels for transmitting the target data packet, and the window parameters of the congestion windows are used for describing the network states of the corresponding network links;
determining routing probabilities corresponding to the network links respectively according to window parameters of the congestion windows, wherein the routing probabilities are used for describing the probability that the corresponding network links are distributed with the target data packet; the larger the window parameter of the congestion window is, the larger the corresponding routing probability is;
and distributing the target data packet to a plurality of network links according to a plurality of routing probabilities.
2. The method of claim 1, wherein the number of the plurality of network links is m, m being an integer greater than 1, and wherein distributing the destination data packet to the plurality of network links based on the plurality of routing probabilities comprises:
Constructing m continuous accumulation intervals according to a plurality of routing probabilities; the starting value of the j accumulation interval corresponding to the j network links is the sum of the routing probabilities of the first j-1 network links, the ending value of the j accumulation interval is the sum of the routing probabilities of the first j network links, and j is a positive integer less than or equal to m;
Generating a random number, wherein the random number is larger than or equal to a start value of a1 st accumulation interval, and the random number is smaller than or equal to a termination value of an m-th accumulation interval;
Determining a network link corresponding to an accumulation interval in which the random number falls as a network link to be transmitted;
and distributing the target data packet to the network link to be sent.
3. The method of claim 1, wherein said distributing said target data packet to said plurality of network links according to a plurality of said routing probabilities comprises:
Determining a network link corresponding to the largest routing probability in the routing probabilities as a network link to be sent;
and distributing the target data packet to the network link to be sent.
4. The method according to claim 1, wherein the method further comprises:
If the window value of the congestion window of the target network link is identified to be changed, recording the updated window value and the updated time, wherein the target network link is one network link in the network links;
Determining an updated window value corresponding to the update time closest to the current time as a window parameter of a congestion window corresponding to the target network link;
and respectively taking the plurality of network links as the target network links, and acquiring window parameters of congestion windows corresponding to the plurality of network links respectively.
5. The method according to claim 1, wherein the method further comprises:
If the window value of the congestion window of the target network link is identified to be changed, recording the updated window value and the updated time, wherein the target network link is one network link in the network links;
Determining a window value of a congestion window of the target network link in a link influence period according to the update time, wherein the link influence period is a preset time period;
and determining window parameters of the congestion window of the target network link according to the window values of the congestion window of the target network link in the link influence period.
6. The method of claim 5, wherein determining the window parameter of the congestion window of the target network link based on the window value of the congestion window of the target network link during the link influencing period comprises:
Determining window adjustment times of the target network link in the link influence period according to the window value of the congestion window of the target network link in the link influence period;
Acquiring a difference value between a target update time and a time of waiting for distribution of the target data packet, wherein the target update time is one of update times of the target network link in the link influence period;
Acquiring the ratio of the difference value to the window value of the congestion window corresponding to the target updating time;
Taking the update time of the target network link in the link influence period as the target update time respectively, and obtaining the sum of a plurality of ratios;
and determining the ratio of the sum of the window adjustment times and the ratio as a window parameter of the congestion window of the target network link.
7. The method of claim 5, wherein determining the window parameter of the congestion window of the target network link based on the window value of the congestion window of the target network link during the link influencing period comprises:
Determining an arithmetic average of window values of congestion windows of the target network link during the link impact period;
and determining the arithmetic average value as a window parameter of a congestion window of the target network link.
8. The method of claim 1, wherein after transmitting the target data packet over the network link to be transmitted, the method further comprises:
Acquiring a response signal returned by a receiving end;
if the response signal does not comprise the confirmation character, determining a first number of data packets in a buffer queue of the network link to be sent;
if the first number is greater than a first data packet threshold, reducing the congestion window by a first dropping weight;
And if the first number is smaller than or equal to the first data packet threshold value, reducing the congestion window through a second descending weight, wherein the first descending weight is smaller than the second descending weight.
9. The method of claim 8, wherein the method further comprises:
If the response signal comprises a confirmation character, acquiring the round trip time delays corresponding to the network links respectively, and determining a reference time delay from the round trip time delays corresponding to the network links respectively;
Determining the update rate of the congestion window of the network link to be transmitted according to the round trip delay and the reference delay of the network link to be transmitted;
if the update rate is greater than or equal to an update rate threshold, reducing the congestion window of the network link to be sent;
and if the update rate is smaller than the update rate threshold, increasing the congestion window of the network link to be sent.
10. The method of claim 9, wherein said reducing the congestion window of the network link to be transmitted comprises:
and reducing the congestion window of the network link to be sent in an exponentially weighted moving average mode.
11. The method of claim 9, wherein the increasing the congestion window of the network link to be transmitted comprises:
determining a second number of data packets in a buffer queue of the network link to be transmitted;
if the second number exceeds a second data packet threshold, after waiting to receive one more confirmation character, increasing the congestion window of the network link to be sent;
And if the second number is smaller than the second data packet threshold value, increasing the congestion window of the network link to be sent.
12. A packet scheduling apparatus, the apparatus comprising: the device comprises an acquisition unit, a determination unit and a sending unit;
The acquiring unit is configured to acquire window parameters of congestion windows corresponding to a plurality of network links, respectively, if a target data packet to be allocated is received, where the network links are channels for transmitting the target data packet, and the window parameters of the congestion windows are used to describe network states of the corresponding network links;
The determining unit is configured to determine routing probabilities corresponding to the plurality of network links respectively according to window parameters of a plurality of congestion windows, where the routing probabilities are used to describe probabilities that the corresponding network links are distributed with the target data packet; the larger the window parameter of the congestion window is, the larger the corresponding routing probability is;
And the sending unit is used for distributing the target data packet to the network links according to the routing probabilities.
13. A computer device, the computer device comprising a processor and a memory:
the memory is used for storing a computer program and transmitting the computer program to the processor;
The processor is configured to perform the method of any of claims 1-11 according to instructions in the computer program.
14. A computer readable storage medium, characterized in that the computer readable storage medium is for storing a computer program for executing the method of any one of claims 1-11.
15. A computer program product comprising a computer program which, when run on a computer device, causes the computer device to perform the method of any of claims 1-11.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310094107.6A CN118353850A (en) | 2023-01-13 | 2023-01-13 | Data packet scheduling method and related device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310094107.6A CN118353850A (en) | 2023-01-13 | 2023-01-13 | Data packet scheduling method and related device |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118353850A true CN118353850A (en) | 2024-07-16 |
Family
ID=91817662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310094107.6A Pending CN118353850A (en) | 2023-01-13 | 2023-01-13 | Data packet scheduling method and related device |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118353850A (en) |
-
2023
- 2023-01-13 CN CN202310094107.6A patent/CN118353850A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114145001B (en) | Rate optimized congestion management | |
US9596281B2 (en) | Transport accelerator implementing request manager and connection manager functionality | |
US11558302B2 (en) | Data transmission method and apparatus | |
US20190394527A1 (en) | Machine learning based packet service classification methods for experience-centric cellular scheduling | |
EP3709663B1 (en) | Video transmission methods and apparatuses | |
US20220286402A1 (en) | Method and apparatus for controlling data packet sending, model training method and apparatus, and system | |
US11924255B2 (en) | Data transmission method and apparatus, server, storage medium, and program product | |
US11223862B2 (en) | Controlled uplink adaptive streaming based on server performance measurement data | |
US11190430B2 (en) | Determining the bandwidth of a communication link | |
EP4161029A1 (en) | System and method for adapting transmission rate computation by a content transmitter | |
CN110012324A (en) | A kind of the code rate adaptive approach and system of embedded radio transmission of video | |
CN112714081B (en) | Data processing method and device | |
CN118041833A (en) | Quality evaluation method, device, equipment and storage medium for communication link | |
US20230231810A1 (en) | System and method for adapting transmission rate computation by a content transmitter | |
CN118353850A (en) | Data packet scheduling method and related device | |
CN107302504B (en) | Multipath transmission scheduling method and system based on virtual sending queue | |
WO2020108020A1 (en) | Congestion control processing method, message forwarding apparatus, and message receiving apparatus | |
Zhang et al. | LearningCC: An online learning approach for congestion control | |
Velayutham | Congestion control and traffic shaping in high-bandwidth applications: Techniques to manage network congestion and optimize traffic flow in gaming, ar/vr, and cloud services | |
Tosic et al. | Soft sensors in wireless networking as enablers for SDN based management of content delivery | |
US12041303B1 (en) | Bandwidth estimation for video encoding | |
CN116389363A (en) | Congestion control for networks using deployable INT | |
Vainio et al. | Flow Control Solution to Avoid Bottlenecks in Edge Computing for Video Analytics | |
WO2020143509A1 (en) | Method for transmitting data and network device | |
CN118018775A (en) | Self-adaptive method for DASH video stream code rate of wireless network based on eBPF monitoring |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |