WO2023087639A1 - Data packet sending method and apparatus, electronic device, and storage medium - Google Patents

Data packet sending method and apparatus, electronic device, and storage medium Download PDF

Info

Publication number
WO2023087639A1
WO2023087639A1 PCT/CN2022/092569 CN2022092569W WO2023087639A1 WO 2023087639 A1 WO2023087639 A1 WO 2023087639A1 CN 2022092569 W CN2022092569 W CN 2022092569W WO 2023087639 A1 WO2023087639 A1 WO 2023087639A1
Authority
WO
WIPO (PCT)
Prior art keywords
data packets
time
network
difference
sending
Prior art date
Application number
PCT/CN2022/092569
Other languages
French (fr)
Chinese (zh)
Inventor
吴文俊
周超
Original Assignee
北京达佳互联信息技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 北京达佳互联信息技术有限公司 filed Critical 北京达佳互联信息技术有限公司
Publication of WO2023087639A1 publication Critical patent/WO2023087639A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback

Definitions

  • the present disclosure relates to the technical field of data transmission, and in particular to a method, device, electronic device and storage medium for sending data packets.
  • Congestion control algorithms customized for low-latency transmission such as BBR, detect the bottleneck bandwidth in the current network path by periodically oversending data (an equivalent sliding window greater than the bandwidth detection value), real-time and more accurate bandwidth detection It obtains a higher bandwidth throughput, but periodic oversending data will make the data inflow speed of the network bottleneck node faster than the speed of network consumption, introduce unnecessary queuing delay to network transmission, and even cause transmission congestion. , does not meet the basic requirements of low-latency transmission.
  • a method for sending data packets including: determining the minimum network transmission delay within a predetermined time window at the current moment; determining the network transmission of N data packets sent simultaneously The unit data packet transmission delay increment between the delays, wherein, N is greater than or equal to 2; according to the minimum network transmission delay within the predetermined time window at the current moment and the unit data packet transmission between the N data packets The ratio of the delay increment determines the target number of data packets to be sent at the current moment; based on the congestion level of the network at the current moment and the number of target data packets to be sent at the same time, the number of data packets to be sent at the same time is determined to be sent at the same time according to the number of simultaneous transmissions Send packets.
  • sending the data packets according to the simultaneous sending quantity includes: sending the data packets simultaneously in a burst mode.
  • determining the minimum network transmission delay within the predetermined time window at the current moment includes: obtaining the receiving time of the ACK packet received within the predetermined time window at the current moment and the time of the ACK packet The sending time of the corresponding data packet; calculating the time difference between the receiving time of the ACK packet and the corresponding sending time of the ACK packet, and using the minimum time difference in the calculated time difference as the minimum network transmission delay.
  • determining the unit data packet transmission delay increment between the network transmission delays of the N data packets sent at the same time to the receiving end includes: according to the N data packets returned from the receiving end for the N The sending time recorded in the ACK packet of the N data packets and the current moment determine the respective network transmission delays of the N data packets; the N data packets are calculated based on the time difference between the respective network transmission delays of the N data packets The unit data packet transmission delay increment between the network transmission delays of each data packet.
  • N when it is determined that out-of-order network transmission occurs at the current moment, N is a first value; when it is determined that there is no out-of-order network transmission, N is a second value, and the first value is greater than the second value.
  • the unit data packet transmission delay increase between the network transmission delays of the N data packets is calculated based on the time difference between the respective network transmission delays of the N data packets.
  • the quantity includes: statistics of the expectation of the average ratio of the time difference of the received ACK packets corresponding to the N data packets to the difference in the sending order; update based on the weighted value of the expectation and the unit data packet transmission delay increment at the previous moment The unit packet transmission delay increment at the current moment.
  • determining the number of data packets to be sent simultaneously based on the congestion degree of the network and the target number of data packets to be sent at the same time includes: determining the number of data packets that have not received the corresponding ACK packet at the current time t Quantity IF (t); Acquire the difference between the number of data packets cwnd (t) and the number IF (t) of the data packets that have not received the corresponding ACK packet at the current moment t, as the first difference; based on the The first difference is used to obtain the number of simultaneous transmissions of the data packets to be transmitted simultaneously.
  • the difference between the quantity Q(t) of the data packets is used as the second difference; the smaller value of the first difference and the second difference is used as the number of simultaneous transmissions of the data packets to be sent at the same time .
  • determining the number of data packets to be sent at the same time according to the degree of congestion of the network and the number of target data packets to be sent at the same time includes: requesting N( The larger one of t) and the simultaneous transmission number s(t) of data packets to be simultaneously sent at the current time t is determined as the final simultaneous transmission number.
  • a device for sending data packets including: a transmission delay determining unit configured to determine the minimum network transmission delay within a predetermined time window at the current moment; delay increase The amount determination unit is configured to determine the unit data packet transmission delay increment between the network transmission delays of the N data packets sent at the same time, wherein, N is greater than or equal to 2; the first number determination unit is configured as According to the ratio of the minimum network transmission delay in the predetermined time window at the current moment and the unit data packet transmission delay increment between the N data packets, determine the target number of data packets to be sent at the current moment; the second quantity determining unit , configured to determine the number of data packets to be sent simultaneously according to the congestion degree of the network at the current moment and the target number of data packets to be sent, so as to send the data packets according to the number of data packets to be sent simultaneously.
  • the transmission delay determining unit is configured to: obtain the receiving time of the ACK packet received within the predetermined time window at the current moment and the sending time of the data packet corresponding to the ACK packet; Calculate the time difference between the receiving time of the ACK packet and the corresponding sending time of the ACK packet, and use the minimum time difference in the calculated time difference as the minimum network transmission delay.
  • the delay increment determining unit is configured to: determine the N The respective network transmission delays of the N data packets; the unit data packet transmission delay increment between the network transmission delays of the N data packets based on the time difference between the respective network transmission delays of the N data packets .
  • N is the first value
  • N is the second value
  • the first value is greater than the second value
  • the delay increment determining unit is further configured to: count the expectation of the average ratio of the time difference of the received ACK packets corresponding to the N data packets to the sending order difference; based on the The unit data packet transmission delay increment at the current time is updated by using the weighted value of the above expectation and the unit data packet transmission delay increment at the previous time.
  • the second quantity determining unit is configured to determine the quantity IF(t) of data packets for which no corresponding ACK packet is received at the current moment t; obtain the target number of data packets sent at the current moment t The difference between cwnd (t) and the number IF (t) of the data packets that have not received the corresponding ACK packet is used as the first difference; based on the first difference, the number of simultaneous transmissions of the data packets to be sent at the same time is obtained .
  • the second quantity determination unit is further configured to: use the number requirement N(t) of the paired transmission data packets at the current time t and the simultaneity of the data packets to be simultaneously transmitted at the current time t The larger of the sending numbers s(t) is determined as the final simultaneous sending number.
  • an electronic device comprising: at least one processor; at least one memory storing computer-executable instructions, wherein the computer-executable instructions are processed by the at least one When the processor is running, the at least one processor is prompted to execute the method for sending a data packet according to any one of the embodiments of the first aspect.
  • a non-volatile computer-readable storage medium When instructions in the non-volatile computer-readable storage medium are executed by a processor of an electronic device, such that The electronic device can execute the method for sending a data packet according to any one of the embodiments of the first aspect.
  • a computer program product including computer programs/instructions, and when the computer program/instructions are executed by a processor, the transmission described in any one of the embodiments of the first aspect is implemented. Packet method.
  • a computer program includes computer program code, and when the computer program code is run on a computer, the computer executes any of the embodiments of the first aspect.
  • the method and device for sending data packets use the data packets sent in pairs at the same time to calculate the transmission time of the data packets, and determine the target transmission according to the minimum end-to-end network delay and the unit data packet transmission time Congestion control window, while considering the degree of congestion in the network to limit the instantaneous sending speed, so that the maximum network throughput can be pursued on the basis of ensuring that the end-to-end transmission delay is close to the base delay, and the network path can be reduced as much as possible. congestion packet loss.
  • FIG. 1 is a system environment illustrating a method and an apparatus for transmitting a data packet according to an exemplary embodiment.
  • FIG. 2 is a flowchart illustrating a method of transmitting a data packet according to an exemplary embodiment.
  • Fig. 3 is a block diagram showing an apparatus for sending data packets according to an exemplary embodiment.
  • FIG. 4 is a diagram illustrating a process of transmitting a data packet according to an exemplary embodiment.
  • FIG. 5 is a schematic diagram illustrating an electronic device transmitting a data packet according to an exemplary embodiment.
  • FIG. 6 is a schematic diagram illustrating an electronic device transmitting a data packet according to another exemplary embodiment.
  • FIG. 1 shows a system environment for implementing a method and an apparatus for transmitting a data packet according to an exemplary embodiment of the present disclosure.
  • the transmitting end and the receiving end may be any devices serving as nodes in the network, such as mobile terminal devices, base stations, servers, and the like.
  • a mobile terminal device may be any electronic device with wired and wireless communication capabilities, for example, a mobile phone, a tablet computer, a desktop, a laptop, a handheld computer, a notebook computer, a netbook, a personal digital assistant (personal digital assistant, PDA), augmented reality (augmented reality, AR)/virtual reality (virtual reality, VR) equipment, etc.
  • Transport networks may include, but are not limited to, wired and wireless communication networks.
  • the network bandwidth detection algorithm based on periodic oversending data will introduce unnecessary delay to network transmission, and even lead to congestion, which does not meet the requirements of low-latency transmission.
  • periodically emptying the network sending queue to detect the minimum end-to-end transmission delay will greatly reduce the throughput of network transmission.
  • the data packet sending method can send data packets in pairs, and count their arrival time difference at the opposite end, and use the ratio of the minimum transmission time of end-to-end transmission to the transmission delay difference of paired data packets as the optimal congestion Control the window, then estimate the bottleneck queue length in the network and the queuing degree of the current network path, and use the bottleneck queue length on the network path to limit the instantaneous sending speed (that is, the queuing degree of the data packet does not exceed the bottleneck queue length of the data packet). Therefore, the data packet sending method and device according to the embodiments of the present disclosure can ensure that the end-to-end transmission delay is close to the base delay, while pursuing the maximum network throughput and avoiding local intermittent congestion of the network as much as possible packet loss.
  • FIG. 2 is a flowchart illustrating a method of transmitting a data packet according to an exemplary embodiment.
  • the method for sending data packets is applied to various electronic devices to send data packets. As shown in FIG. 2, the method includes the following steps S210 to S240.
  • Step S210 determining the minimum network transmission delay within the predetermined time window at the current moment.
  • a plurality of data packets can be sent at one time through a burst mode (burst), and at least two data packets are sent at the same time each time, thus forming a right packet.
  • the paired data packets may be two adjacent sequential data packets among the multiple data packets sent at the same time, and the sending time of the data packets is recorded in each data packet. Paired data packets will enter the network at the same time and be queued in the network path, and will be sent sequentially in the network according to the order of generation.
  • the receiving end records the sending time of the data packet in the corresponding ACK packet of the data packet and returns it to the sending end.
  • the time before the data packet was sent can be read from the ACK packet returned by the receiving end, and then the network transmission delay of the data packet can be calculated according to the current time of the sending end and the sending time of the data packet corresponding to the ACK packet.
  • Step S220 determining the unit data packet transmission delay increment between the network transmission delays of the N data packets sent at the same time arriving at the receiving end, where N is greater than or equal to 2.
  • determining the unit data packet transmission delay increment between the network transmission delays of the N data packets sent at the same time to the receiving end may include: according to the N data packets returned from the receiving end The sending time recorded in the ACK packet of the data packet and the current moment determine the respective network transmission delays of the N data packets; the N data packets are calculated based on the time difference between the respective network transmission delays of the N data packets The unit packet transmission delay increment between network transmission delays of packets.
  • the unit data packet transmission delay increment reflects the network transmission time consumption of sending a data packet.
  • N may be a first number (for example, 2), and if it is determined that disorder occurs, then N is a second number greater than the first number (for example, 6). It should be understood that the numbers here are only examples, and N can take other values (N is greater than or equal to 2 and N in the case of out-of-order is greater than N in the case of no out-of-order). According to an embodiment of the present disclosure, whether out-of-sequence occurs can be determined according to the order of time recorded in the ACK of the data packet received at the previous moment, that is, as shown in the following equation:
  • N(t) represents the number of data packets sent at the current moment
  • rtt t represents the difference between the arrival time and the sending time of the data packets sent at time t.
  • the transmission delay increment can be made smoother.
  • the average value of the 5 transmission delay increments is determined as the unit data packet transmission delay increment.
  • Step S230 according to the ratio of the minimum network transmission delay within the predetermined time window at the current moment to the unit data packet transmission delay increment among the N data packets, determine the target number of data packets to be sent at the current moment.
  • the unit data packet transmission delay increment (Delta) reflects the increased data packet round-trip time (RTT) when sending a data packet (that is, the number of data packets staying in the network is increased by one).
  • RTT round-trip time
  • RTT prop the optimal window for sending packets is RTT prop /Delta.
  • the base delay RTT prop can be approximated by determining the minimum network transmission delay RTT min (t) within a predetermined time window. Therefore, the target number of data packets to be sent at the current moment can be determined (ie, the optimal window for sending data packets)
  • step S240 the number of data packets to be sent at the same time is determined based on the congestion degree of the network at the current moment and the target number of data packets to be sent.
  • step S240 the simultaneous sending number of data packets to be sent simultaneously is determined based on the current network congestion level and the target number of data packets to be sent, so as to send data packets according to the simultaneous sending number. That is to say, the higher the congestion degree of the network, the fewer data packets can be sent relative to the target data packets to be sent, and the lower the network congestion degree, the closer the number of data packets to be sent can be closer to the target number of data packets to be sent.
  • the upper limit of the number of data packets that can be sent without packet loss can be determined according to the congestion level of the network, and the number of data packets to be sent simultaneously can be determined according to the target number of data packets to be sent and the upper limit value the number of packets.
  • the length of the bottleneck queuing queue in the network can be counted in real time (when the value is greater than this value, active packet loss will occur), and the number of data packets sent in real time and the data consumption in the network can be calculated in real time.
  • Speed to estimate the queuing degree of the current network path.
  • the sending data at any time is subject to the bottleneck queue length of the network, that is, the estimated queuing degree of the current network path at any time is less than or equal to the network bottleneck queue length, so as to ensure that on the basis of no queuing packet loss in the network, the actual average sending window can Infinitely close to the optimal sending window, that is, to pursue the maximum network transmission throughput.
  • it may be based on the number Q(t) of accumulated data packets in the network at time t, the number IF(t) of data packets that have not received corresponding ACK packets, and the network path bottleneck queue length Q max ( t) to reflect the degree of network congestion, and determine the number of data packets that can be sent without packet loss according to Q(t), IF(t) and Q max (t).
  • determining the number of data packets to be sent at the same time based on the congestion degree of the network and the target number of data packets to be sent at the same time may include: determining the number of data packets that have not received the corresponding ACK packet at the current time t IF(t), obtain the difference between the number of data packets cwnd(t) sent by the target at the current moment t and the number of data packets IF(t) that have not received the corresponding ACK packet, as the first difference cwnd(t) -IF(t), and obtain the number of simultaneous transmissions of the data packets to be transmitted simultaneously based on the first difference.
  • the first difference may be used as the number of data packets sent at the same time, or the first difference may be compared with the number calculated by other methods, and the smaller value thereof may be used as the number of simultaneous transmissions.
  • the difference Qmax (t)-Q(t) between the network path bottleneck queue length Qmax (t) and the number Q(t) of data packets accumulated by the network can be obtained as the second difference, and
  • the long run it can be controlled by cwnd and IF(t) so that the average sending rate of data packets is not greater than the network transmission bandwidth, that is, the number of data packets that have not received ACK packets cannot exceed the optimal send window.
  • Q max and Q(t) can be controlled so that the instantaneous sending speed will not cause congestion. That is to say, the speed of increasing the number of data packets that have not received the ACK packet cannot be too fast, otherwise the processing speed of the network nodes cannot keep up, and packet loss will occur.
  • determining the number of data packets to be sent at the same time according to the degree of congestion of the network and the target number of data packets to be sent includes taking the number requirement N(t) and The larger of the simultaneous sending numbers s(t) of the data packets to be sent simultaneously at the current time t is determined as the final simultaneous sending number.
  • the optimal number S best (t) of data packets to be sent can be determined from the number requirements N(t) and s(t) of the paired data packets to be sent at the current moment t according to the following equation:
  • N(t) may be a first number (for example, 6), and if no out-of-order occurs, N(t) may be a second number (for example, ,2). Similar to the above, the numbers here are only examples, and N(t) can take other values, as long as the first number is greater than the second number and the second number is greater than 2.
  • the method for sending data packets utilizes the ratio of network end-to-end delay and unit data packet transmission time as the optimal transmission congestion control window (that is, the target number of data packets to be sent).
  • the number of packets that have not received ACK is equivalent to the bandwidth-delay product (BDP, bandwidth-delay product).
  • BDP bandwidth-delay product
  • the calculation method of the congestion control window is different from the traditional detection method of oversending data and clearing data, and has the following two advantages: 1) It will not introduce additional delay to the network, because the congestion control window is strictly controlled to be less than or equal to the corresponding network bandwidth 2) It will not cause waste of network bandwidth, because the window of network transmission is always maintained near the optimal window, which avoids the transmission interruption caused by periodically clearing the window.
  • the data packet sending method estimates the queuing degree of the current network path according to the real-time sending quantity of data packets and the data consumption speed in the network, and makes the sending data at any time subject to the maximum queue length of the network , that is, the estimated queuing degree of the current network path at any time is less than or equal to the length of the network bottleneck queue, so as to ensure that the actual average sending window can be infinitely close to the optimal sending window on the basis of no queuing packet loss in the network, that is, the pursuit of the largest network transfer throughput.
  • the offline comparative experimental data shows that compared with the BBR congestion control algorithm, the data packet sending method of the embodiment of the present disclosure has similar bandwidth throughput, and at the same time, the 95th percentile of end-to-end transmission delay is significantly reduced by 11.16% to 50.29% %, and the overall low-latency viewing experience of users has improved by 2.23%.
  • FIG. 3 is a block diagram illustrating an apparatus 300 for sending data packets according to the present disclosure. It should be understood that the apparatus 300 may be implemented in various types of electronic devices in the form of hardware/software or a combination of software and hardware.
  • the device 300 for sending data packets may include a transmission delay determining unit 310, a delay increment determining unit 320, a first quantity determining unit 330, a second quantity determining unit 340 and a sending unit 350 .
  • the transmission delay determining unit 310 is configured to determine the minimum network transmission delay within the predetermined time window at the current moment.
  • the delay increment determining unit 320 is configured to determine a unit data packet transmission delay increment between network transmission delays of N data packets sent at the same time, where N is greater than or equal to 2.
  • the first quantity determining unit 330 is configured to determine the target transmission at the current moment according to the ratio of the minimum network transmission delay within the predetermined time window at the current moment to the unit data packet transmission delay increment between the N data packets number of packets.
  • the second quantity determination unit 340 is configured to determine the simultaneous transmission quantity of the data packets to be transmitted simultaneously according to the congestion degree of the network at the current moment and the target quantity of transmitted data packets.
  • the sending unit 350 may be configured to send data packets in a burst mode.
  • N data packets are sent simultaneously in the burst mode, and the sending times of the N data packets are written into the N data packets.
  • the transmission delay determining unit 310 may be configured to: obtain the receiving time of the ACK packet received within the predetermined time window at the current moment and the sending time of the data packet corresponding to the ACK packet; calculate the ACK The time difference between the receiving time of the packet and the sending time corresponding to the ACK packet, and the minimum time difference in the calculated time difference is used as the minimum network transmission delay.
  • the delay increment determining unit 320 may be configured to: determine the N data packets according to the sending time recorded in the ACK packet for the N data packets returned from the receiving end and the current time The respective network transmission delays of the packets; the unit data packet transmission delay increment between the network transmission delays of the N data packets is calculated based on the time difference between the respective network transmission delays of the N data packets, wherein , when it is determined that the network transmission is out of order, N is the first value, and when it is currently determined that the network transmission is not out of order, N is the second value, and the first value is greater than the second value.
  • the sending time can also be recorded in the corresponding returned ACK packet for calculating the network transmission delay of the data packet.
  • the delay increment determining unit 320 may also be configured to: count the expectation of the average ratio of the time difference of the received ACK packets corresponding to the N data packets to the difference in the sending order; based on the expectation and The weighted value of the unit data packet transmission delay increment at the previous time is used to update the unit data packet transmission delay increment at the current time.
  • the second quantity determining unit 340 may be configured to determine the quantity IF(t) of data packets that have not received corresponding ACK packets at the current moment t, and obtain the target number of data packets to be sent at the current moment t cwnd( The difference between t) and the number IF(t) of data packets that have not received the corresponding ACK packet is used as the first difference cwnd(t)-IF(t), and based on the first difference, the number of packets to be sent simultaneously is obtained. The number of packets sent at the same time.
  • the difference Qmax (t)-Q(t) between the network path bottleneck queue length Qmax (t) and the number Q(t) of data packets accumulated by the network can be obtained as the second difference, and
  • the second quantity determining unit 340 is further configured to: use the number requirement N(t) of the paired transmission data packets at the current time t and the simultaneous transmission number s of the data packets to be simultaneously transmitted at the current time t The larger of (t) is determined as the final number of simultaneous transmissions.
  • the final sending data can be determined from the number N(t) of the paired sending data packets at the current time t and the simultaneous sending number s(t) of the data packets to be sent simultaneously at the current time t according to the following equation
  • N(t) is the first value
  • N(t) is the second value
  • the second value is greater than the first value
  • FIG. 4 is a schematic diagram illustrating an overall process of sending a data packet according to an exemplary embodiment of the present disclosure.
  • the process of sending data packets according to the present disclosure can be generally divided into two parts, that is, the process of calculating the sending window and the process of avoiding congestion.
  • the expectation of the average ratio of the time difference of the ACK packets corresponding to the N data packets sent at the same time to the sending order difference can be counted
  • the optimal sending window cwnd(t) at the current moment is obtained by obtaining the ratio of RTT min (t) and ⁇ (t).
  • the network path bottleneck queue length Q max (t) can be determined.
  • the smaller of s c and s q s(t) min(cwnd(t)-IF(t), Q max (t)-Q(t)) and the number of data packets sent in pairs require N( t) for comparison, and select the larger number max(N(t), s(t)) of the two as the final number S(t) of simultaneously sent data packets.
  • FIG. 5 is a schematic diagram illustrating an electronic device 500 for transmitting data packets according to an exemplary embodiment of the present disclosure.
  • the electronic device 500 can be, for example, a smart phone, a tablet computer, an MP4 (Moving Picture Experts Group Audio Layer IV, Moving Picture Experts Group Audio Layer IV) player, a notebook computer or a desktop computer.
  • the electronic device 500 may also be called user equipment, portable terminal, laptop terminal, desktop terminal and other names.
  • the electronic device 500 includes: a processor 501 and a memory 502 .
  • the processor 501 may include one or more processing cores, such as a 4-core processor, an 8-core processor, and the like.
  • Processor 501 can be realized by at least one hardware form in DSP (Digital Signal Processing, digital signal processing), FPGA (Field Programmable Gate Array, field programmable gate array), PLA (Programmable Logic Array, programmable logic array) .
  • Processor 501 may also include a main processor and a coprocessor, and the main processor is a processor for processing data in a wake-up state, also known as a CPU (Central Processing Unit, central processing unit); the coprocessor is Low-power processor for processing data in standby state.
  • CPU Central Processing Unit, central processing unit
  • the coprocessor is Low-power processor for processing data in standby state.
  • the processor 501 may be integrated with a GPU (Graphics Processing Unit, image processor), and the GPU is used for rendering and drawing the content to be displayed on the display screen.
  • the processor 501 may further include an AI (Artificial Intelligence, artificial intelligence) processor, where the AI processor is configured to process computing operations related to machine learning.
  • AI Artificial Intelligence, artificial intelligence
  • Memory 502 may include one or more computer-readable storage media, which may be non-transitory.
  • the memory 502 may also include high-speed random access memory and non-volatile memory, such as one or more magnetic disk storage devices and flash memory storage devices.
  • the non-transitory computer-readable storage medium in the memory 502 is used to store at least one instruction, and the at least one instruction is used to be executed by the processor 501 to implement the sending data of the exemplary embodiments of the present disclosure. method of the package.
  • the electronic device 500 may optionally further include: a peripheral device interface 503 and at least one peripheral device.
  • the processor 501, the memory 502, and the peripheral device interface 503 may be connected through buses or signal lines.
  • Each peripheral device can be connected to the peripheral device interface 503 through a bus, a signal line or a circuit board.
  • the peripheral device includes: at least one of a radio frequency circuit 504 , a touch screen 505 , a camera 506 , an audio circuit 507 , a positioning component 508 and a power supply 509 .
  • the peripheral device interface 503 may be used to connect at least one peripheral device related to I/O (Input/Output, input/output) to the processor 501 and the memory 502 .
  • the processor 501, memory 502 and peripheral device interface 503 are integrated on the same chip or circuit board; in some other embodiments, any one of the processor 501, memory 502 and peripheral device interface 503 or The two can be implemented on a separate chip or circuit board, which is not limited in this embodiment.
  • the radio frequency circuit 504 is used to receive and transmit RF (Radio Frequency, radio frequency) signals, also called electromagnetic signals.
  • the radio frequency circuit 504 communicates with the communication network and other communication devices through electromagnetic signals.
  • the radio frequency circuit 504 converts electrical signals into electromagnetic signals for transmission, or converts received electromagnetic signals into electrical signals.
  • the radio frequency circuit 504 includes: an antenna system, an RF transceiver, one or more amplifiers, a tuner, an oscillator, a digital signal processor, a codec chipset, a subscriber identity module card, and the like.
  • the radio frequency circuit 504 can communicate with other terminals through at least one wireless communication protocol.
  • the wireless communication protocol includes but is not limited to: metropolitan area network, mobile communication networks of various generations (2G, 3G, 4G and 5G), wireless local area network and/or WiFi (Wireless Fidelity, wireless fidelity) network.
  • the radio frequency circuit 504 may also include circuits related to NFC (Near Field Communication, short-range wireless communication), which is not limited in the present disclosure.
  • the display screen 505 is used to display a UI (User Interface, user interface).
  • the UI can include graphics, text, icons, video, and any combination thereof.
  • the display screen 505 also has the ability to collect touch signals on or above the surface of the display screen 505 .
  • the touch signal can be input to the processor 501 as a control signal for processing.
  • the display screen 505 can also be used to provide virtual buttons and/or virtual keyboards, also called soft buttons and/or soft keyboards.
  • there may be one display screen 505 which is set on the front panel of the electronic device 500 .
  • the display screen 505 may be a flexible display screen, which is arranged on the curved surface or the folded surface of the terminal 500 . Even, the display screen 505 can also be set as a non-rectangular irregular figure, that is, a special-shaped screen.
  • the display screen 505 can be made of LCD (Liquid Crystal Display, liquid crystal display), OLED (Organic Light-Emitting Diode, organic light-emitting diode) and other materials.
  • the camera assembly 506 is used to capture images or videos.
  • the camera assembly 506 includes a front camera and a rear camera.
  • the front camera is set on the front panel of the terminal, and the rear camera is set on the back of the terminal.
  • there are at least two rear cameras which are any one of the main camera, depth-of-field camera, wide-angle camera, and telephoto camera, so as to realize the fusion of the main camera and the depth-of-field camera to realize the background blur function.
  • camera assembly 506 may also include a flash.
  • the flash can be a single-color temperature flash or a dual-color temperature flash. Dual color temperature flash refers to the combination of warm light flash and cold light flash, which can be used for light compensation under different color temperatures.
  • Audio circuitry 507 may include a microphone and speakers.
  • the microphone is used to collect sound waves of the user and the environment, and convert the sound waves into electrical signals and input them to the processor 501 for processing, or input them to the radio frequency circuit 504 to realize voice communication.
  • the microphone can also be an array microphone or an omnidirectional collection microphone.
  • the speaker is used to convert the electrical signal from the processor 501 or the radio frequency circuit 504 into sound waves.
  • the loudspeaker can be a conventional membrane loudspeaker or a piezoelectric ceramic loudspeaker.
  • the audio circuit 507 may also include a headphone jack.
  • the positioning component 508 is used to locate the current geographic location of the electronic device 500, so as to realize navigation or LBS (Location Based Service, location-based service).
  • the positioning component 508 may be a positioning component based on the GPS (Global Positioning System, Global Positioning System) of the United States, the Beidou system of China, the Greinus system of Russia or the Galileo system of the European Union.
  • the power supply 509 is used to supply power to various components in the electronic device 500 .
  • Power source 509 may be AC, DC, disposable or rechargeable batteries.
  • the rechargeable battery may support wired charging or wireless charging.
  • the rechargeable battery can also be used to support fast charging technology.
  • the electronic device 500 further includes one or more sensors 510 .
  • the one or more sensors 510 include, but are not limited to: an acceleration sensor 511 , a gyro sensor 512 , a pressure sensor 513 , a fingerprint sensor 514 , an optical sensor 515 and a proximity sensor 516 .
  • the acceleration sensor 511 can detect the acceleration on the three coordinate axes of the coordinate system established by the terminal 500 .
  • the acceleration sensor 511 can be used to detect the components of the acceleration of gravity on the three coordinate axes.
  • the processor 501 may control the touch display screen 505 to display the user interface in a landscape view or a portrait view according to the gravitational acceleration signal collected by the acceleration sensor 511 .
  • the acceleration sensor 511 can also be used for collecting game or user's motion data.
  • the gyro sensor 512 can detect the body direction and rotation angle of the terminal 500 , and the gyro sensor 512 can cooperate with the acceleration sensor 511 to collect 3D actions of the user on the terminal 500 .
  • the processor 501 can realize the following functions: motion sensing (such as changing the UI according to the user's tilt operation), image stabilization during shooting, game control and inertial navigation.
  • the pressure sensor 513 may be disposed on a side frame of the terminal 500 and/or a lower layer of the touch screen 505 .
  • the pressure sensor 513 When the pressure sensor 513 is set on the side frame of the terminal 500 , it can detect the user's grip signal on the terminal 500 , and the processor 501 performs left and right hand recognition or shortcut operation according to the grip signal collected by the pressure sensor 513 .
  • the processor 501 controls the operable controls on the UI according to the user's pressure operation on the touch screen 505.
  • the operable controls include at least one of button controls, scroll bar controls, icon controls, and menu controls.
  • the fingerprint sensor 514 is used to collect the user's fingerprint, and the processor 501 recognizes the identity of the user according to the fingerprint collected by the fingerprint sensor 514, or the fingerprint sensor 514 recognizes the user's identity according to the collected fingerprint. When the identity of the user is recognized as a trusted identity, the processor 501 authorizes the user to perform relevant sensitive operations, such sensitive operations include unlocking the screen, viewing encrypted information, downloading software, making payment, and changing settings.
  • the fingerprint sensor 514 may be disposed on the front, back or side of the electronic device 500 . When the electronic device 500 is provided with a physical button or a manufacturer's logo, the fingerprint sensor 514 may be integrated with the physical button or the manufacturer's Logo.
  • the optical sensor 515 is used to collect ambient light intensity.
  • the processor 501 can control the display brightness of the touch screen 505 according to the ambient light intensity collected by the optical sensor 515 . Specifically, when the ambient light intensity is high, the display brightness of the touch screen 505 is increased; when the ambient light intensity is low, the display brightness of the touch screen 505 is decreased.
  • the processor 501 may also dynamically adjust shooting parameters of the camera assembly 506 according to the ambient light intensity collected by the optical sensor 515 .
  • the proximity sensor 516 also called a distance sensor, is usually arranged on the front panel of the electronic device 500 .
  • the proximity sensor 516 is used to collect the distance between the user and the front of the electronic device 500 .
  • the processor 501 controls the touch display 505 to switch from the bright screen state to the off screen state; when the proximity sensor 516 detects When the distance between the user and the front of the electronic device 500 gradually increases, the processor 501 controls the touch display screen 505 to switch from the off-screen state to the on-screen state.
  • FIG. 5 does not constitute a limitation to the electronic device 500, and may include more or less components than shown in the figure, or combine some components, or adopt different component arrangements.
  • FIG. 6 shows a structural block diagram of another electronic device 600 .
  • the electronic device 600 may be provided as a server.
  • an electronic device 600 includes one or more processing processors 610 and a memory 620 .
  • the memory 620 may include one or more programs for performing the above sending data packets.
  • the electronic device 600 may also include a power supply component 630 configured to perform power management of the electronic device 600, a wired or wireless network interface 650 configured to connect the electronic device 600 to a network, and an input-output (I/O) interface 650 .
  • the electronic device 600 can operate based on an operating system stored in the memory 620, such as Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM or the like.
  • FIG. 6 does not constitute a limitation to the electronic device 600, and may include more or less components than shown in the figure, or combine some components, or adopt a different arrangement of components.
  • a computer-readable storage medium storing instructions, wherein, when the instructions are executed by at least one processor, at least one processor is prompted to execute the method described in any one of the embodiments of the present disclosure.
  • the computer readable storage medium may be a non-transitory computer readable storage medium.
  • Examples of computer readable storage media herein include: Read Only Memory (ROM), Random Access Programmable Read Only Memory (PROM), Electrically Erasable Programmable Read Only Memory (EEPROM), Random Access Memory (RAM) , Dynamic Random Access Memory (DRAM), Static Random Access Memory (SRAM), Flash Memory, Non-Volatile Memory, CD-ROM, CD-R, CD+R, CD-RW, CD+RW, DVD-ROM , DVD-R, DVD+R, DVD-RW, DVD+RW, DVD-RAM, BD-ROM, BD-R, BD-R LTH, BD-RE, Blu-ray or Optical Memory, Hard Disk Drive (HDD), Solid State Hard disks (SSD), memory cards (such as MultiMediaCards, Secure Digital (SD) or Extreme Digital (XD) cards), magnetic tapes, floppy disks, magneto-optical data storage devices, optical data storage devices, hard disks, solid
  • the computer program in the above-mentioned computer-readable storage medium can run in an environment deployed in computer equipment such as a client, a host, an agent device, a server, etc.
  • the computer program and any associated data and data files and data structures are distributed over network-connected computer systems so that the computer programs and any associated data, data files and data structures are stored, accessed and executed in a distributed fashion by one or more processors or computers.
  • a computer program product is also provided, and instructions in the computer program product can be executed by a processor of a computer device to complete the method for sending a data packet described in any one of the embodiments of the present disclosure.
  • a computer program including computer program code, when the computer program code is run on a computer, so that the computer executes the method described in any one of the embodiments of the present disclosure.
  • Method for sending packets Method for sending packets.
  • the method, device, electronic device, computer-readable storage medium, computer program product, and computer program according to the embodiments of the present disclosure can enable the pursuit of Maximize network throughput and minimize packet loss due to congestion in the network path.

Landscapes

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

Abstract

A data packet sending method and apparatus, an electronic device, and a storage medium, the method comprising: determining a minimum network transmission delay within a predetermined time window at a current time; determining a unit packet transmission delay increment between network transmission delays of a number N of packets sent at the same time, N being greater than or equal to 2; according to the ratio of the minimum network transmission delay within the predetermined time window at the current time and the unit packet transmission delay increment between the N packets, determining a target number of packets to be sent at the current time; determining a simultaneous transmission number of data packets to be sent at the same time on the basis of a network congestion level at the current time and the target number of data packets to be sent at the same time, so as to send data packets according to the simultaneous transmission number.

Description

发送数据包的方法、装置、电子设备和存储介质Method, device, electronic device and storage medium for sending data packets
相关申请的交叉引用Cross References to Related Applications
本申请基于申请号为202111367459.1、申请日为2021年11月18日的中国专利申请提出,并要求该中国专利申请的优先权,该中国专利申请的全部内容在此引入本申请作为参考。This application is based on a Chinese patent application with application number 202111367459.1 and a filing date of November 18, 2021, and claims the priority of this Chinese patent application. The entire content of this Chinese patent application is hereby incorporated by reference into this application.
技术领域technical field
本公开涉及数据传输技术领域,尤其涉及一种发送数据包的方法、装置、电子设备和存储介质。The present disclosure relates to the technical field of data transmission, and in particular to a method, device, electronic device and storage medium for sending data packets.
背景技术Background technique
当今互联网正变得越来越及时,各种新兴应用的实时交互需求对其数据的传输延时有着更加严格的要求,需确保当前生产的数据在特定的时间范围内到达对端;不然超过一定时间阈值的数据会被主动丢弃,以避免影响用户的实时体验。比如,VR云游戏要求画面和声音的传输延时控制在50毫秒以内,确保数据传输的及时性和稳定性,以避免头晕等不适症状。同时,在线会议、实时通信等也需要严格控制通话内容传输的延时,以保证用户的互动性、连贯性等体验。Today's Internet is becoming more and more timely, and the real-time interaction requirements of various emerging applications have stricter requirements on the transmission delay of their data. It is necessary to ensure that the currently produced data reaches the peer within a specific time range; otherwise, it exceeds a certain time limit. Data with a time threshold will be actively discarded to avoid affecting the user's real-time experience. For example, VR cloud games require that the transmission delay of pictures and sounds be controlled within 50 milliseconds to ensure the timeliness and stability of data transmission and avoid discomfort symptoms such as dizziness. At the same time, online conferences, real-time communications, etc. also need to strictly control the delay of call content transmission to ensure user interaction and continuity.
为低延时传输定制的拥塞控制算法,例如BBR,通过周期性的超发数据(大于带宽检测值的等效滑动窗口)以探测当前网络路径中的瓶颈带宽大小,实时并较为准确的带宽检测使其获得了较高的带宽吞吐量,但是周期性的超发数据会使得网络瓶颈节点数据流入的速度大于网络消耗的速度,给网络传输引入不必要的排队延时,甚至导致传输拥塞的发生,不符合低延时传输的基本要求。Congestion control algorithms customized for low-latency transmission, such as BBR, detect the bottleneck bandwidth in the current network path by periodically oversending data (an equivalent sliding window greater than the bandwidth detection value), real-time and more accurate bandwidth detection It obtains a higher bandwidth throughput, but periodic oversending data will make the data inflow speed of the network bottleneck node faster than the speed of network consumption, introduce unnecessary queuing delay to network transmission, and even cause transmission congestion. , does not meet the basic requirements of low-latency transmission.
发明内容Contents of the invention
根据本公开的第一方面的实施例,提供了一种发送数据包的方法,包括:确定当前时刻的预定时间窗口内的最小网络传输延时;确定被同时发送的N个数据包的网络传输延时之间的单位数据包传输延时增量,其中,N大于或等于2;根据当前时刻的预定时间窗口内的最小网络传输延时和所述N个数据包之间的单位数据包传输延时增量的比值,确定当前时刻的目标发送数据包数量;基于当前时刻的网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的同时发送数量,以根据所述同时发送数量发送数据包。According to an embodiment of the first aspect of the present disclosure, a method for sending data packets is provided, including: determining the minimum network transmission delay within a predetermined time window at the current moment; determining the network transmission of N data packets sent simultaneously The unit data packet transmission delay increment between the delays, wherein, N is greater than or equal to 2; according to the minimum network transmission delay within the predetermined time window at the current moment and the unit data packet transmission between the N data packets The ratio of the delay increment determines the target number of data packets to be sent at the current moment; based on the congestion level of the network at the current moment and the number of target data packets to be sent at the same time, the number of data packets to be sent at the same time is determined to be sent at the same time according to the number of simultaneous transmissions Send packets.
根据本公开的第一方面的实施例,根据所述同时发送数量发送数据包包括:以突发模式同时发送所述数据包。According to an embodiment of the first aspect of the present disclosure, sending the data packets according to the simultaneous sending quantity includes: sending the data packets simultaneously in a burst mode.
根据本公开的第一方面的实施例,确定当前时刻的预定时间窗口内的最小的网络传输延时包括:获取当前时刻的预定时间窗口内接收到的ACK包的接收时间和所述ACK包所对应的数据包的发送时间;计算ACK包的接收时间和所述ACK包所对应的发送时间之 间的时间差,并将计算出的时间差中的最小时间差作为所述最小的网络传输延时。According to an embodiment of the first aspect of the present disclosure, determining the minimum network transmission delay within the predetermined time window at the current moment includes: obtaining the receiving time of the ACK packet received within the predetermined time window at the current moment and the time of the ACK packet The sending time of the corresponding data packet; calculating the time difference between the receiving time of the ACK packet and the corresponding sending time of the ACK packet, and using the minimum time difference in the calculated time difference as the minimum network transmission delay.
根据本公开的第一方面的实施例,确定被同时发送的N个数据包到达接收端的网络传输延时之间的单位数据包传输延时增量包括:根据从接收端返回的针对所述N个数据包的ACK包中所记录的发送时间和当前时刻确定所述N个数据包各自的网络传输延时;基于所述N个数据包各自的网络传输延时之间的时间差计算所述N个数据包的网络传输延时之间的单位数据包传输延时增量。According to an embodiment of the first aspect of the present disclosure, determining the unit data packet transmission delay increment between the network transmission delays of the N data packets sent at the same time to the receiving end includes: according to the N data packets returned from the receiving end for the N The sending time recorded in the ACK packet of the N data packets and the current moment determine the respective network transmission delays of the N data packets; the N data packets are calculated based on the time difference between the respective network transmission delays of the N data packets The unit data packet transmission delay increment between the network transmission delays of each data packet.
根据本公开的第一方面的实施例,当在当前时刻确定网络传输发生乱序时,N为第一数值,当确定网络传输没有乱序时,N为第二数值,第一数值大于第二数值。According to the embodiment of the first aspect of the present disclosure, when it is determined that out-of-order network transmission occurs at the current moment, N is a first value; when it is determined that there is no out-of-order network transmission, N is a second value, and the first value is greater than the second value.
根据本公开的第一方面的实施例,基于所述N个数据包各自的网络传输延时之间的时间差计算所述N个数据包的网络传输延时之间的单位数据包传输延时增量包括:统计收到与所述N个数据包对应的ACK包的时间差与发送顺序差的平均比值的期望;基于所述期望和先前时刻的单位数据包传输延时增量的加权值来更新当前时刻的单位数据包传输延时增量。According to an embodiment of the first aspect of the present disclosure, the unit data packet transmission delay increase between the network transmission delays of the N data packets is calculated based on the time difference between the respective network transmission delays of the N data packets The quantity includes: statistics of the expectation of the average ratio of the time difference of the received ACK packets corresponding to the N data packets to the difference in the sending order; update based on the weighted value of the expectation and the unit data packet transmission delay increment at the previous moment The unit packet transmission delay increment at the current moment.
根据本公开的第一方面的实施例,基于网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的同时发送数量包括:确定在当前时刻t未收到对应ACK包的数据包的数量IF(t);获取当前时刻t的目标发送数据包数量cwnd(t)与未收到对应ACK包的数据包的数量IF(t)之间的差值,作为第一差值;基于所述第一差值得到要同时发送的数据包的同时发送数量。According to an embodiment of the first aspect of the present disclosure, determining the number of data packets to be sent simultaneously based on the congestion degree of the network and the target number of data packets to be sent at the same time includes: determining the number of data packets that have not received the corresponding ACK packet at the current time t Quantity IF (t); Acquire the difference between the number of data packets cwnd (t) and the number IF (t) of the data packets that have not received the corresponding ACK packet at the current moment t, as the first difference; based on the The first difference is used to obtain the number of simultaneous transmissions of the data packets to be transmitted simultaneously.
根据本公开的第一方面的实施例,基于所述第一差值得到要同时发送的数据包的同时发送数量包括:确定在当前时刻t网络堆积的数据包的数量Q(t)和网络路径瓶颈队列长度Q max(t)=max(IF(i)),i∈[t-k,t],其中k表示所述预定时间窗口的长度;获取网络路径瓶颈队列长度Q max(t)与网络堆积的数据包的数量Q(t)之间的差值,作为第二差值;将所述第一差值以及所述第二差值的较小值作为要同时发送的数据包的同时发送数量。 According to an embodiment of the first aspect of the present disclosure, obtaining the number of data packets to be sent simultaneously based on the first difference includes: determining the number Q(t) of data packets accumulated in the network at the current moment t and the network path Bottleneck queue length Q max (t)=max(IF(i)), i∈[tk,t], where k represents the length of the predetermined time window; obtain network path bottleneck queue length Q max (t) and network accumulation The difference between the quantity Q(t) of the data packets is used as the second difference; the smaller value of the first difference and the second difference is used as the number of simultaneous transmissions of the data packets to be sent at the same time .
根据本公开的第一方面的实施例,根据网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的同时发送数量包括:将当前时刻t的成对发送数据包的数量要求N(t)和当前时刻t要同时发送的数据包的同时发送数量s(t)中的较大者确定为最终的同时发送数量。According to an embodiment of the first aspect of the present disclosure, determining the number of data packets to be sent at the same time according to the degree of congestion of the network and the number of target data packets to be sent at the same time includes: requesting N( The larger one of t) and the simultaneous transmission number s(t) of data packets to be simultaneously sent at the current time t is determined as the final simultaneous transmission number.
根据本公开的第二方面的实施例,提供了一种发送数据包的装置,包括:传输延时确定单元,被配置为确定当前时刻的预定时间窗口内的最小网络传输延时;延时增量确定单元,被配置为确定被同时发送的N个数据包的网络传输延时之间的单位数据包传输延时增量,其中,N大于或等于2;第一数量确定单元,被配置为根据当前时刻的预定时间窗口内的最小网络传输延时和所述N个数据包之间的单位数据包传输延时增量的比值,确定当前时刻的目标发送数据包数量;第二数量确定单元,被配置为根据当前时刻的网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的同时发送数量,以根据所述同时发送数量发送数据包。According to an embodiment of the second aspect of the present disclosure, a device for sending data packets is provided, including: a transmission delay determining unit configured to determine the minimum network transmission delay within a predetermined time window at the current moment; delay increase The amount determination unit is configured to determine the unit data packet transmission delay increment between the network transmission delays of the N data packets sent at the same time, wherein, N is greater than or equal to 2; the first number determination unit is configured as According to the ratio of the minimum network transmission delay in the predetermined time window at the current moment and the unit data packet transmission delay increment between the N data packets, determine the target number of data packets to be sent at the current moment; the second quantity determining unit , configured to determine the number of data packets to be sent simultaneously according to the congestion degree of the network at the current moment and the target number of data packets to be sent, so as to send the data packets according to the number of data packets to be sent simultaneously.
根据本公开的第二方面的实施例,传输延时确定单元被配置为:获取当前时刻的预 定时间窗口内接收到的ACK包的接收时间和所述ACK包所对应的数据包的发送时间;计算ACK包的接收时间和所述ACK包所对应的发送时间之间的时间差,并将计算出的时间差中的最小时间差作为所述最小的网络传输延时。According to an embodiment of the second aspect of the present disclosure, the transmission delay determining unit is configured to: obtain the receiving time of the ACK packet received within the predetermined time window at the current moment and the sending time of the data packet corresponding to the ACK packet; Calculate the time difference between the receiving time of the ACK packet and the corresponding sending time of the ACK packet, and use the minimum time difference in the calculated time difference as the minimum network transmission delay.
根据本公开的第二方面的实施例,延时增量确定单元被配置为:根据从接收端返回的针对所述N个数据包的ACK包中所记录的发送时间和当前时刻确定所述N个数据包各自的网络传输延时;基于所述N个数据包各自的网络传输延时之间的时间差计算所述N个数据包的网络传输延时之间的单位数据包传输延时增量。According to an embodiment of the second aspect of the present disclosure, the delay increment determining unit is configured to: determine the N The respective network transmission delays of the N data packets; the unit data packet transmission delay increment between the network transmission delays of the N data packets based on the time difference between the respective network transmission delays of the N data packets .
根据本公开的第二方面的实施例,当延时增量确定单元在当前时刻确定网络传输发生乱序时,N为第一数值,当确定网络传输没有乱序时,N为第二数值,第一数值大于第二数值。According to an embodiment of the second aspect of the present disclosure, when the delay increment determining unit determines that the network transmission is out of sequence at the current moment, N is the first value, and when it is determined that the network transmission is not out of sequence, N is the second value, The first value is greater than the second value.
根据本公开的第二方面的实施例,延时增量确定单元还被配置为:统计收到与所述N个数据包对应的ACK包的时间差与发送顺序差的平均比值的期望;基于所述期望和先前时刻的单位数据包传输延时增量的加权值来更新当前时刻的单位数据包传输延时增量。According to an embodiment of the second aspect of the present disclosure, the delay increment determining unit is further configured to: count the expectation of the average ratio of the time difference of the received ACK packets corresponding to the N data packets to the sending order difference; based on the The unit data packet transmission delay increment at the current time is updated by using the weighted value of the above expectation and the unit data packet transmission delay increment at the previous time.
根据本公开的第二方面的实施例,第二数量确定单元被配置为确定在当前时刻t未收到对应ACK包的数据包的数量IF(t);获取当前时刻t的目标发送数据包数量cwnd(t)与未收到对应ACK包的数据包的数量IF(t)之间的差值,作为第一差值;基于所述第一差值得到要同时发送的数据包的同时发送数量。According to an embodiment of the second aspect of the present disclosure, the second quantity determining unit is configured to determine the quantity IF(t) of data packets for which no corresponding ACK packet is received at the current moment t; obtain the target number of data packets sent at the current moment t The difference between cwnd (t) and the number IF (t) of the data packets that have not received the corresponding ACK packet is used as the first difference; based on the first difference, the number of simultaneous transmissions of the data packets to be sent at the same time is obtained .
根据本公开的第二方面的实施例,第二数量确定单元被配置为:确定在当前时刻t网络堆积的数据包的数量Q(t)和网络路径瓶颈队列长度Q max(t)=max(IF(i)),i∈[t-k,t],其中k表示所述预定时间窗口的长度;获取网络路径瓶颈队列长度Q max(t)与网络堆积的数据包的数量Q(t)之间的差值,作为第二差值;将所述第一差值以及所述第二差值的较小值作为要同时发送的数据包的同时发送数量。 According to an embodiment of the second aspect of the present disclosure, the second quantity determination unit is configured to: determine the quantity Q(t) of data packets accumulated in the network at the current moment t and the network path bottleneck queue length Q max (t)=max( IF(i)), i∈[tk,t], where k represents the length of the predetermined time window; obtain the network path bottleneck queue length Q max (t) and the number of data packets accumulated in the network Q(t) The difference value is used as the second difference value; the smaller value of the first difference value and the second difference value is used as the number of data packets to be sent simultaneously.
根据本公开的第二方面的实施例,第二数量确定单元还被配置为:将当前时刻t的成对发送数据包的数量要求N(t)和当前时刻t要同时发送的数据包的同时发送数量s(t)中的较大者确定为最终的同时发送数量。According to an embodiment of the second aspect of the present disclosure, the second quantity determination unit is further configured to: use the number requirement N(t) of the paired transmission data packets at the current time t and the simultaneity of the data packets to be simultaneously transmitted at the current time t The larger of the sending numbers s(t) is determined as the final simultaneous sending number.
根据本公开的第三方面的实施例,提供了一种电子设备,包括:至少一个处理器;至少一个存储计算机可执行指令的存储器,其中,所述计算机可执行指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行第一方面的实施例任一项所述的发送数据包的方法。According to an embodiment of a third aspect of the present disclosure, there is provided an electronic device, comprising: at least one processor; at least one memory storing computer-executable instructions, wherein the computer-executable instructions are processed by the at least one When the processor is running, the at least one processor is prompted to execute the method for sending a data packet according to any one of the embodiments of the first aspect.
根据本公开的第四方面的实施例,提供了一种非易失性计算机可读存储介质,当所述非易失性计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行第一方面的实施例任一项所述的发送数据包的方法。According to an embodiment of the fourth aspect of the present disclosure, a non-volatile computer-readable storage medium is provided. When instructions in the non-volatile computer-readable storage medium are executed by a processor of an electronic device, such that The electronic device can execute the method for sending a data packet according to any one of the embodiments of the first aspect.
根据本公开的第五方面的实施例,提供了一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现第一方面的实施例任一项所述的发送数据包的方法。According to an embodiment of the fifth aspect of the present disclosure, a computer program product is provided, including computer programs/instructions, and when the computer program/instructions are executed by a processor, the transmission described in any one of the embodiments of the first aspect is implemented. Packet method.
根据本公开的第六方面的实施例,提供了一种计算机程序,所述计算机程序包括计 算机程序代码,当所述计算机程序代码在计算机上运行时,以使得计算机执行第一方面的实施例任一项所述的发送数据包的方法。According to an embodiment of the sixth aspect of the present disclosure, a computer program is provided, the computer program includes computer program code, and when the computer program code is run on a computer, the computer executes any of the embodiments of the first aspect. A method of sending data packets described herein.
根据本公开实施例的发送数据包的方法和装置利用同时成对发送的数据包来计算数据包的传输耗时,并根据网络端到端最小延时与单位数据包传输耗时来确定目标传输拥塞控制窗口,同时考虑网络中的拥塞程度来限制瞬时发送速度,从而能够在保证端到端传输延时在基底延时附近的基础上,追求最大的网络吞吐量,并尽可能减少网络路径中的拥塞丢包。The method and device for sending data packets according to the embodiments of the present disclosure use the data packets sent in pairs at the same time to calculate the transmission time of the data packets, and determine the target transmission according to the minimum end-to-end network delay and the unit data packet transmission time Congestion control window, while considering the degree of congestion in the network to limit the instantaneous sending speed, so that the maximum network throughput can be pursued on the basis of ensuring that the end-to-end transmission delay is close to the base delay, and the network path can be reduced as much as possible. congestion packet loss.
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the present disclosure.
附图说明Description of drawings
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。The accompanying drawings here are incorporated into the specification and constitute a part of the specification, show embodiments consistent with the disclosure, and are used together with the description to explain the principle of the disclosure, and do not constitute an improper limitation of the disclosure.
图1是示出用于实现根据示例性实施例的发送数据包的方法和装置的系统环境。FIG. 1 is a system environment illustrating a method and an apparatus for transmitting a data packet according to an exemplary embodiment.
图2是示出根据示例性实施例的发送数据包的方法的流程图。FIG. 2 is a flowchart illustrating a method of transmitting a data packet according to an exemplary embodiment.
图3是示出根据示例性实施例示出的发送数据包的装置的框图。Fig. 3 is a block diagram showing an apparatus for sending data packets according to an exemplary embodiment.
图4是示出根据示例性实施例的发送数据包的过程的示意图。FIG. 4 is a diagram illustrating a process of transmitting a data packet according to an exemplary embodiment.
图5是示出根据示例性实施例的发送数据包的电子设备的示意图。FIG. 5 is a schematic diagram illustrating an electronic device transmitting a data packet according to an exemplary embodiment.
图6是示出根据另一示例性实施例的发送数据包的电子设备的示意图。FIG. 6 is a schematic diagram illustrating an electronic device transmitting a data packet according to another exemplary embodiment.
具体实施方式Detailed ways
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。In order to enable ordinary persons in the art to better understand the technical solutions of the present disclosure, the technical solutions in the embodiments of the present disclosure will be clearly and completely described below in conjunction with the accompanying drawings.
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。It should be noted that the terms "first" and "second" in the specification and claims of the present disclosure and the above drawings are used to distinguish similar objects, but not necessarily used to describe a specific sequence or sequence. It is to be understood that the data so used are interchangeable under appropriate circumstances such that the embodiments of the disclosure described herein can be practiced in sequences other than those illustrated or described herein. The implementations described in the following examples do not represent all implementations consistent with this disclosure. Rather, they are merely examples of apparatuses and methods consistent with aspects of the present disclosure as recited in the appended claims.
在此需要说明的是,在本公开中出现的“若干项之中的至少一项”均表示包含“该若干项中的任意一项”、“该若干项中的任意多项的组合”、“该若干项的全体”这三类并列的情况。例如“包括A和B之中的至少一个”即包括如下三种并列的情况:(1)包括A;(2)包括B;(3)包括A和B。又例如“执行步骤一和步骤二之中的至少一个”,即表示如下三种并列的情况:(1)执行步骤一;(2)执行步骤二;(3)执行步骤一和步骤二。What needs to be explained here is that "at least one of several items" appearing in this disclosure all means to include "any one of the several items", "a combination of any of the several items", The three categories of "the whole of the several items" are juxtaposed. For example, "including at least one of A and B" includes the following three parallel situations: (1) including A; (2) including B; (3) including A and B. Another example is "execute at least one of step 1 and step 2", which means the following three parallel situations: (1) execute step 1; (2) execute step 2; (3) execute step 1 and step 2.
图1示出了实现根据本公开的示例性实施例的发送数据包的方法和装置的系统环境。FIG. 1 shows a system environment for implementing a method and an apparatus for transmitting a data packet according to an exemplary embodiment of the present disclosure.
如图1所示,在超低延时的互动场景下,数据包依次从发送端向外发送,经过传输 网络最终到达接收端。在收到数据包后,接收端依次发送对应的ACK包,同样经过传输网络后返回发送端。这里,发送端和接收端可以是用作网络中的节点的任何设备,诸如移动终端设备、基站、服务器等。根据本公开的示例性实施例,移动终端设备例如可以是具有有线无线通信能力的任何电子设备,例如,手机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、上网本、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备等。传输网络可以包括但不限于有线和无线通信网络。As shown in Figure 1, in the ultra-low-latency interactive scenario, data packets are sent out from the sender in sequence, and finally reach the receiver through the transmission network. After receiving the data packets, the receiving end sends corresponding ACK packets in turn, and returns to the sending end after passing through the transmission network. Here, the transmitting end and the receiving end may be any devices serving as nodes in the network, such as mobile terminal devices, base stations, servers, and the like. According to an exemplary embodiment of the present disclosure, a mobile terminal device may be any electronic device with wired and wireless communication capabilities, for example, a mobile phone, a tablet computer, a desktop, a laptop, a handheld computer, a notebook computer, a netbook, a personal digital assistant (personal digital assistant, PDA), augmented reality (augmented reality, AR)/virtual reality (virtual reality, VR) equipment, etc. Transport networks may include, but are not limited to, wired and wireless communication networks.
由于是超低延时的业务场景,整个系统对数据端到端的传输延时有特定要求。基于周期性超发数据的网络带宽检测算法,会给网络传输引入不必要的延时,甚至导致拥塞的发生,不符合低延时传输的要求。同时,周期性地清空网络发送队列以检测端到端最小传输延时,会大大降低网络传输的吞吐量。根据本公开的实施例的数据包发送方法可成对地发送数据包,并统计它们到达对端的时间差,以端到端传输最小传输时间与成对数据包传输延时差的比值作为最佳拥塞控制窗口,然后预估网络中的瓶颈队列长度和当前网络路径的排队程度,使用网络路径上的瓶颈队列长度限制瞬时发送速度(即,数据包的排队程度不超过数据包的瓶颈队列长度)。因此,根据本公开的实施例的数据包发送方法和装置能够保证端到端传输延时在基底延时附近的基础上,同时追求最大的网络吞吐量并尽可能地避免网络局部的间歇性拥塞丢包。Since it is an ultra-low-latency business scenario, the entire system has specific requirements for end-to-end data transmission delay. The network bandwidth detection algorithm based on periodic oversending data will introduce unnecessary delay to network transmission, and even lead to congestion, which does not meet the requirements of low-latency transmission. At the same time, periodically emptying the network sending queue to detect the minimum end-to-end transmission delay will greatly reduce the throughput of network transmission. The data packet sending method according to the embodiment of the present disclosure can send data packets in pairs, and count their arrival time difference at the opposite end, and use the ratio of the minimum transmission time of end-to-end transmission to the transmission delay difference of paired data packets as the optimal congestion Control the window, then estimate the bottleneck queue length in the network and the queuing degree of the current network path, and use the bottleneck queue length on the network path to limit the instantaneous sending speed (that is, the queuing degree of the data packet does not exceed the bottleneck queue length of the data packet). Therefore, the data packet sending method and device according to the embodiments of the present disclosure can ensure that the end-to-end transmission delay is close to the base delay, while pursuing the maximum network throughput and avoiding local intermittent congestion of the network as much as possible packet loss.
图2是示出根据示例性实施例的发送数据包的方法的流程图。所述发送数据包的方法应用于各类电子设备以发送数据包。如图2所示,该方法包含以下步骤S210至S240。FIG. 2 is a flowchart illustrating a method of transmitting a data packet according to an exemplary embodiment. The method for sending data packets is applied to various electronic devices to send data packets. As shown in FIG. 2, the method includes the following steps S210 to S240.
步骤S210,确定当前时刻的预定时间窗口内的最小网络传输延时。Step S210, determining the minimum network transmission delay within the predetermined time window at the current moment.
在根据本公开的实施例的发送数据包的方法中,例如,可以通过突发模式(burst)来一次性同时发送多个数据包,每次同时发送的数据包至少为2个,从而形成成对的数据包。这里,成对的数据包可以是同时发送的多个数据包中的两个相邻顺序的数据包,并且数据包的发送时间被记录在每个数据包中。成对的数据包会同时进入网络并在网络路径中排队,并在网络中按照产生的先后次序被依次发送。接收端在接收到该数据包时,将该数据包的发送时间记录到该数据包相应的ACK包并返回到发送端。这样,从接收端返回的ACK包中可以读取出数据包之前被发送的时间,然后可根据当前发送端的时间和ACK包所对应的数据包的发送时间计算出数据包的网络传输延时。In the method for sending a data packet according to an embodiment of the present disclosure, for example, a plurality of data packets can be sent at one time through a burst mode (burst), and at least two data packets are sent at the same time each time, thus forming a right packet. Here, the paired data packets may be two adjacent sequential data packets among the multiple data packets sent at the same time, and the sending time of the data packets is recorded in each data packet. Paired data packets will enter the network at the same time and be queued in the network path, and will be sent sequentially in the network according to the order of generation. When receiving the data packet, the receiving end records the sending time of the data packet in the corresponding ACK packet of the data packet and returns it to the sending end. In this way, the time before the data packet was sent can be read from the ACK packet returned by the receiving end, and then the network transmission delay of the data packet can be calculated according to the current time of the sending end and the sending time of the data packet corresponding to the ACK packet.
例如,假设t号数据包的ACK包返回到发送端,统计当前发送端的绝对时间T now,并从ACK包解析出当初发送该数据包t的绝对时间st t,计算到达时间和发送时间差rtt t=T now-st t,从而可以更新预定时间窗口(也称为,滑动时间窗口)内传输路径的最小延时(又称为,基底延时)RTT min(t)=min(rtt i),i∈[t-k,t],这里,k可表示滑动时间窗口的长度,通常k取值可以为1000。 For example, assuming that the ACK packet of data packet t is returned to the sender, the absolute time T now of the current sender is counted, and the absolute time st t when the data packet t was originally sent is analyzed from the ACK packet, and the difference between the arrival time and the sending time rtt t is calculated =T now -st t , so that the minimum delay (also called, base delay) of the transmission path in the predetermined time window (also called, sliding time window) can be updated RTT min (t)=min(rtt i ), i∈[tk,t], here, k can represent the length of the sliding time window, usually the value of k can be 1000.
步骤S220,确定被同时发送的N个数据包到达接收端的网络传输延时之间的单位数据包传输延时增量,其中,N大于或等于2。Step S220, determining the unit data packet transmission delay increment between the network transmission delays of the N data packets sent at the same time arriving at the receiving end, where N is greater than or equal to 2.
根据本公开的示例性实施例,确定被同时发送的N个数据包到达接收端的网络传输 延时之间的单位数据包传输延时增量可包括:根据从接收端返回的针对所述N个数据包的ACK包中所记录的发送时间和当前时刻确定所述N个数据包各自的网络传输延时;基于所述N个数据包各自的网络传输延时之间的时间差计算所述N个数据包的网络传输延时之间的单位数据包传输延时增量。这里,单位数据包传输延时增量反映的是发送一个数据包的网络传输耗时。According to an exemplary embodiment of the present disclosure, determining the unit data packet transmission delay increment between the network transmission delays of the N data packets sent at the same time to the receiving end may include: according to the N data packets returned from the receiving end The sending time recorded in the ACK packet of the data packet and the current moment determine the respective network transmission delays of the N data packets; the N data packets are calculated based on the time difference between the respective network transmission delays of the N data packets The unit packet transmission delay increment between network transmission delays of packets. Here, the unit data packet transmission delay increment reflects the network transmission time consumption of sending a data packet.
这里,如果在当前时刻确定数据包的网络传输发生乱序,则可以采用更多的数据包来计算单位数据包传输延时增量以确保准确性。例如,如果在当前时刻确定数据包的网络传输没有发生乱序,则N可以为第一数量(例如,2),如果确定发生乱序,则N为大于第一数量的第二数量(例如,6)。应理解,这里的数字仅是示例,N可以采用其他的取值(满足N大于等于2且乱序情况下的N大于没有乱序情况下的N)。根据本公开的实施例,可根据前一时刻接收到的数据包的ACK中记录的时间的顺序情况来确定是否发生乱序,即,如以下的等式所示:Here, if it is determined that out-of-sequence network transmission of data packets occurs at the current moment, more data packets may be used to calculate unit data packet transmission delay increment to ensure accuracy. For example, if it is determined at the current moment that there is no disorder in the network transmission of the data packet, N may be a first number (for example, 2), and if it is determined that disorder occurs, then N is a second number greater than the first number (for example, 6). It should be understood that the numbers here are only examples, and N can take other values (N is greater than or equal to 2 and N in the case of out-of-order is greater than N in the case of no out-of-order). According to an embodiment of the present disclosure, whether out-of-sequence occurs can be determined according to the order of time recorded in the ACK of the data packet received at the previous moment, that is, as shown in the following equation:
Figure PCTCN2022092569-appb-000001
Figure PCTCN2022092569-appb-000001
这里,N(t)表示当前时刻发送的数据包的数量,rtt t表示时刻t发送的数据包的到达时间和发送时间差。 Here, N(t) represents the number of data packets sent at the current moment, and rtt t represents the difference between the arrival time and the sending time of the data packets sent at time t.
根据本公开的实施例,可统计收到同时刻发送的N个数据包对应的ACK包的时间差与发送顺序差的平均比值的期望
Figure PCTCN2022092569-appb-000002
然后通过加权滑动窗口基于先前时刻的单位数据包传输延时增量的加权值来更新当前时刻的单位数据包传输延时增量Δ(t)=Δ(t-1)*α+δ(t)*(1-α),α取值可以根据需要设置,例如α取值可以为0.875。通过加权处理,可以使得传输延时增量更加平滑。例如,当N=2时,可确定两个数据包的传输延时之间的差作为单位数据包传输延时增量,而当N=6时,可将6个数据包的传输延时之间的5个传输延时增量的平均值确定为单位数据包传输延时增量。
According to the embodiment of the present disclosure, the expectation of the average ratio of the time difference and the sending order difference of the ACK packets corresponding to the N data packets sent at the same time can be calculated
Figure PCTCN2022092569-appb-000002
Then, the unit data packet transmission delay increment at the current moment is updated Δ(t)=Δ(t-1)*α+δ(t )*(1-α), the value of α can be set as required, for example, the value of α can be 0.875. Through weighting processing, the transmission delay increment can be made smoother. For example, when N=2, the difference between the transmission delays of two data packets can be determined as the unit data packet transmission delay increment, and when N=6, the difference between the transmission delays of 6 data packets can be determined The average value of the 5 transmission delay increments is determined as the unit data packet transmission delay increment.
步骤S230,根据当前时刻的预定时间窗口内的最小网络传输延时和所述N个数据包之间的单位数据包传输延时增量的比值,确定当前时刻的目标发送数据包数量。Step S230, according to the ratio of the minimum network transmission delay within the predetermined time window at the current moment to the unit data packet transmission delay increment among the N data packets, determine the target number of data packets to be sent at the current moment.
这里,单位数据包传输延时增量(Delta)反映的是发送一个数据包(即,停留在网络中的数据包增加一个)所增加的数据包往返时间(RTT)。根据BBR的控制策略,RTT会在一个基底延时(RTT prop)附近波动。每发送一个数据包,RTT会增加Delta,相应的吞吐量也会增加,然而,当RTT增加到基底延时RTT prop之后,吞吐量不再增加反而网络延时开始增加。因此,最佳的发送数据包的窗口为RTT prop/Delta。 Here, the unit data packet transmission delay increment (Delta) reflects the increased data packet round-trip time (RTT) when sending a data packet (that is, the number of data packets staying in the network is increased by one). According to the control strategy of BBR, RTT will fluctuate around a base delay (RTT prop ). Every time a data packet is sent, the RTT will increase Delta, and the corresponding throughput will also increase. However, when the RTT increases to the base delay RTT prop , the throughput will no longer increase but the network delay will start to increase. Therefore, the optimal window for sending packets is RTT prop /Delta.
如上所述,根据本公开的实施例,可通过确定预定时间窗口内的最小网络传输延时RTT min(t)来近似作为基底延时RTT prop。因此,可确定当前时刻的目标发送数据包数量(即,发送数据包的最佳窗口)
Figure PCTCN2022092569-appb-000003
As described above, according to the embodiments of the present disclosure, the base delay RTT prop can be approximated by determining the minimum network transmission delay RTT min (t) within a predetermined time window. Therefore, the target number of data packets to be sent at the current moment can be determined (ie, the optimal window for sending data packets)
Figure PCTCN2022092569-appb-000003
步骤S240,基于当前时刻的网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的数量。In step S240, the number of data packets to be sent at the same time is determined based on the congestion degree of the network at the current moment and the target number of data packets to be sent.
在步骤S240中,基于当前时刻的网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的同时发送数量,以根据同时发送数量来发送数据包。也就是说,网络的拥塞程度越高,相对于目标发送数据包来说可以发送较少的数据包,网络的拥塞程度越低,发送的数据包的数量可以越接近目标发送数据包数量。In step S240, the simultaneous sending number of data packets to be sent simultaneously is determined based on the current network congestion level and the target number of data packets to be sent, so as to send data packets according to the simultaneous sending number. That is to say, the higher the congestion degree of the network, the fewer data packets can be sent relative to the target data packets to be sent, and the lower the network congestion degree, the closer the number of data packets to be sent can be closer to the target number of data packets to be sent.
根据本公开的示例性实施例,可根据网络的拥塞程度确定不丢包的情况下能够发送数据包的数量的上限值,并根据目标发送数据包数量和所述上限值确定要同时发送的数据包的数量。According to an exemplary embodiment of the present disclosure, the upper limit of the number of data packets that can be sent without packet loss can be determined according to the congestion level of the network, and the number of data packets to be sent simultaneously can be determined according to the target number of data packets to be sent and the upper limit value the number of packets.
根据本公开的实施例,通过对丢包事件的处理,可实时统计网络中的瓶颈排队队列长度(大于该值时,会发生主动丢包),并依据数据包实时发送数量和网络中数据消耗速度,预估当前网络路径的排队程度。任意时刻的发送数据都受制于网络的瓶颈队列长度,即任意时刻预估当前网络路径的排队程度小于等于网络瓶颈队列长度,从而保证在网络不发生排队丢包的基础上,实际平均发送窗口能无限接近于最佳发送窗口,即追求最大的网络传输吞吐量。According to the embodiment of the present disclosure, by processing the packet loss event, the length of the bottleneck queuing queue in the network can be counted in real time (when the value is greater than this value, active packet loss will occur), and the number of data packets sent in real time and the data consumption in the network can be calculated in real time. Speed, to estimate the queuing degree of the current network path. The sending data at any time is subject to the bottleneck queue length of the network, that is, the estimated queuing degree of the current network path at any time is less than or equal to the network bottleneck queue length, so as to ensure that on the basis of no queuing packet loss in the network, the actual average sending window can Infinitely close to the optimal sending window, that is, to pursue the maximum network transmission throughput.
根据本公开的示例性实施例,可根据在时刻t的网络堆积数据包的数量Q(t)、未收到对应ACK包的数据包的数量IF(t)和网络路径瓶颈队列长度Q max(t)来反映网络拥塞程度,并根据Q(t)、IF(t)和Q max(t)确定不发生丢包的前提下能够发送的数据包的数量。 According to an exemplary embodiment of the present disclosure, it may be based on the number Q(t) of accumulated data packets in the network at time t, the number IF(t) of data packets that have not received corresponding ACK packets, and the network path bottleneck queue length Q max ( t) to reflect the degree of network congestion, and determine the number of data packets that can be sent without packet loss according to Q(t), IF(t) and Q max (t).
根据本公开的示例性实施例,基于网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的同时发送数量可包括:确定在当前时刻t未收到对应ACK包的数据包的数量IF(t),获取当前时刻t的目标发送数据包数量cwnd(t)与未收到对应ACK包的数据包的数量IF(t)之间的差值,作为第一差值cwnd(t)-IF(t),并基于第一差值得到要同时发送的数据包的同时发送数量。According to an exemplary embodiment of the present disclosure, determining the number of data packets to be sent at the same time based on the congestion degree of the network and the target number of data packets to be sent at the same time may include: determining the number of data packets that have not received the corresponding ACK packet at the current time t IF(t), obtain the difference between the number of data packets cwnd(t) sent by the target at the current moment t and the number of data packets IF(t) that have not received the corresponding ACK packet, as the first difference cwnd(t) -IF(t), and obtain the number of simultaneous transmissions of the data packets to be transmitted simultaneously based on the first difference.
例如,可以是将第一差值作为同时发送的数据包的同时发送数量,也可以是将第一差值与其他方式计算得到的数量进行比较,将其中的较小值作为同时发送数量。For example, the first difference may be used as the number of data packets sent at the same time, or the first difference may be compared with the number calculated by other methods, and the smaller value thereof may be used as the number of simultaneous transmissions.
根据本公开的示例性实施例,基于第一差值得到要同时发送的数据包的同时发送数量可包括:确定在当前时刻t网络堆积的数据包的数量Q(t)和网络路径瓶颈队列长度Q max(t)=max(IF(i)),i∈[t-k,t],其中k表示所述预定时间窗口的长度。接下来,可获取网络路径瓶颈队列长度Q max(t)与网络堆积的数据包的数量Q(t)之间的差值Q max(t)-Q(t),作为第二差值,并将第一差值cwnd(t)-IF(t)以及第二差值Q max(t)-Q(t)的较小值s(t)=min(cwnd(t)-IF(t),Q max(t)-Q(t))作为要同时发送的数据包的同时发送数量。 According to an exemplary embodiment of the present disclosure, obtaining the number of data packets to be sent simultaneously based on the first difference may include: determining the number Q(t) of data packets accumulated in the network at the current time t and the length of the network path bottleneck queue Q max (t)=max(IF(i)), i∈[tk,t], where k represents the length of the predetermined time window. Next, the difference Qmax (t)-Q(t) between the network path bottleneck queue length Qmax (t) and the number Q(t) of data packets accumulated by the network can be obtained as the second difference, and The smaller value s(t)=min(cwnd(t)-IF(t) of the first difference cwnd(t)-IF(t) and the second difference Qmax (t)-Q(t), Q max (t)-Q(t)) is used as the number of simultaneous transmissions of data packets to be transmitted simultaneously.
这里,每发送一个数据包,可更新当前网络传输路径中数据包堆积队列长度(数量)Q(t)=Q(t)+1。另外,可更新当前网络路径中发送但未收到的数据数量IF(t)=IF(t)+1。每收到一个ACK包,依据当前时间T now和上一个ACK包的接收时间T last,更新堆积队列长度
Figure PCTCN2022092569-appb-000004
是上文中描述的单位数据包传输延时增量),并更新发送但未收到的包数量IF(t)=IF(t)-1。
Here, every time a data packet is sent, the length (quantity) of the data packet accumulation queue in the current network transmission path can be updated Q(t)=Q(t)+1. In addition, the number of data sent but not received in the current network path IF(t)=IF(t)+1 may be updated. Each time an ACK packet is received, the accumulation queue length is updated according to the current time T now and the receiving time T last of the last ACK packet
Figure PCTCN2022092569-appb-000004
is the unit data packet transmission delay increment described above), and update the number of packets sent but not received IF(t)=IF(t)-1.
也就是说,长期看来,可通过cwnd和IF(t)来控制使得数据包的平均发送速率不大 于网络传输带宽,也就是说,使得未接收到ACK包的数据包的数量不能超过最佳发送窗口。短期来看,通过Q max和Q(t)可控制使得瞬时发送速度不会造成拥塞。也就是说,使未接收到ACK包的数据包的数量的增加速度不能太快,否则网络节点的处理速度跟不上,就会发生丢包。这是因为,由于每个网络节点都有自己的局部缓存,因此,可通过Qmax(t)来指示网络节点的瓶颈缓存,而网络节点上数据的消耗速度为1/Delta,网络节点上数据的堆积速度为发送包的速度,所以节点的堆积数据Q(t)=发送的数据包-节点消耗速度,需要保证Q(t)不能超过Qmax(t)才不会造成丢包。 That is to say, in the long run, it can be controlled by cwnd and IF(t) so that the average sending rate of data packets is not greater than the network transmission bandwidth, that is, the number of data packets that have not received ACK packets cannot exceed the optimal send window. In the short term, Q max and Q(t) can be controlled so that the instantaneous sending speed will not cause congestion. That is to say, the speed of increasing the number of data packets that have not received the ACK packet cannot be too fast, otherwise the processing speed of the network nodes cannot keep up, and packet loss will occur. This is because, since each network node has its own local cache, Qmax(t) can be used to indicate the bottleneck cache of the network node, and the consumption speed of data on the network node is 1/Delta, and the data consumption on the network node The accumulation speed is the speed of sending packets, so the accumulation data Q(t) of the node = sent data packets - node consumption speed, it is necessary to ensure that Q(t) cannot exceed Qmax(t) so as not to cause packet loss.
根据本公开的示例性实施例,根据网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的同时发送数量包括将当前时刻t的成对发送数据包的数量要求N(t)和当前时刻t要同时发送的数据包的同时发送数量s(t)中的较大者确定为最终的同时发送数量。具体地,可根据以下等式来从当前时刻t的成对发送数据包的数量要求N(t)和s(t)中确定最佳的发送数据包的数量S best(t): According to an exemplary embodiment of the present disclosure, determining the number of data packets to be sent at the same time according to the degree of congestion of the network and the target number of data packets to be sent includes taking the number requirement N(t) and The larger of the simultaneous sending numbers s(t) of the data packets to be sent simultaneously at the current time t is determined as the final simultaneous sending number. Specifically, the optimal number S best (t) of data packets to be sent can be determined from the number requirements N(t) and s(t) of the paired data packets to be sent at the current moment t according to the following equation:
Figure PCTCN2022092569-appb-000005
Figure PCTCN2022092569-appb-000005
其中,如果在当前时刻确定数据包的网络传输发生乱序,则N(t)可以是第一数量(例如,6),如果没有发生乱序,则N(t)可以是第二数量(例如,2)。与前面类似的,这里的数字仅是示例,N(t)可以采用其他的取值,只要保证第一数量大于第二数量并且第二数量大于2即可。Wherein, if it is determined that out-of-sequence occurs in network transmission of data packets at the current moment, N(t) may be a first number (for example, 6), and if no out-of-order occurs, N(t) may be a second number (for example, ,2). Similar to the above, the numbers here are only examples, and N(t) can take other values, as long as the first number is greater than the second number and the second number is greater than 2.
如上所述,根据本公开的发送数据包的方法利用网络端到端延时和单位数据包传输耗时的比值作为最佳传输拥塞控制窗口(即,目标发送数据包数量),此时发送但未收到ACK的包数量等效于带宽延时积(BDP,bandwidth-delay product)。该拥塞控制窗口的计算方式区别于传统的超发数据、清空数据的探测方式,具有以下两个好处:1)不会给网络引入额外的延时,因为严格控制拥塞控制窗口小于等于网络带宽对应的最佳控制窗口(不需要超发数据);2)也不会造成网络带宽的浪费,因为网络传输的窗口一直维持在最佳窗口附近,避免了周期性清空窗口造成的发送中断。As mentioned above, the method for sending data packets according to the present disclosure utilizes the ratio of network end-to-end delay and unit data packet transmission time as the optimal transmission congestion control window (that is, the target number of data packets to be sent). The number of packets that have not received ACK is equivalent to the bandwidth-delay product (BDP, bandwidth-delay product). The calculation method of the congestion control window is different from the traditional detection method of oversending data and clearing data, and has the following two advantages: 1) It will not introduce additional delay to the network, because the congestion control window is strictly controlled to be less than or equal to the corresponding network bandwidth 2) It will not cause waste of network bandwidth, because the window of network transmission is always maintained near the optimal window, which avoids the transmission interruption caused by periodically clearing the window.
此外,根据本公开的实施例的数据包发送方法依据数据包实时发送数量和网络中数据消耗速度来预估当前网络路径的排队程度,并且使得任意时刻的发送数据都受制于网络的最大队列长度,即任意时刻预估当前网络路径的排队程度小于等于网络瓶颈队列长度,从而保证在网络不发生排队丢包的基础上,实际平均发送窗口能无限接近于最佳发送窗口,即追求最大的网络传输吞吐量。In addition, the data packet sending method according to the embodiment of the present disclosure estimates the queuing degree of the current network path according to the real-time sending quantity of data packets and the data consumption speed in the network, and makes the sending data at any time subject to the maximum queue length of the network , that is, the estimated queuing degree of the current network path at any time is less than or equal to the length of the network bottleneck queue, so as to ensure that the actual average sending window can be infinitely close to the optimal sending window on the basis of no queuing packet loss in the network, that is, the pursuit of the largest network transfer throughput.
通过离线的对比实验数据表明,相比于BBR拥塞控制算法,本公开的实施例的数据包发送方法有着相近的带宽吞吐量,同时端到端传输延时95分位数显著下降11.16%~50.29%,整体用户低延时观看体验提升2.23%。The offline comparative experimental data shows that compared with the BBR congestion control algorithm, the data packet sending method of the embodiment of the present disclosure has similar bandwidth throughput, and at the same time, the 95th percentile of end-to-end transmission delay is significantly reduced by 11.16% to 50.29% %, and the overall low-latency viewing experience of users has improved by 2.23%.
图3是示出根据本公开的发送数据包的装置300的框图。应理解,装置300可以以硬件/软件或软硬件结合的方式实现在各种类型的电子设备中。FIG. 3 is a block diagram illustrating an apparatus 300 for sending data packets according to the present disclosure. It should be understood that the apparatus 300 may be implemented in various types of electronic devices in the form of hardware/software or a combination of software and hardware.
如图3所示,根据本公开的发送数据包的装置300可包括传输延时确定单元310、 延时增量确定单元320、第一数量确定单元330、第二数量确定单元340和发送单元350。As shown in FIG. 3 , the device 300 for sending data packets according to the present disclosure may include a transmission delay determining unit 310, a delay increment determining unit 320, a first quantity determining unit 330, a second quantity determining unit 340 and a sending unit 350 .
传输延时确定单元310被配置为确定当前时刻的预定时间窗口内的最小网络传输延时。The transmission delay determining unit 310 is configured to determine the minimum network transmission delay within the predetermined time window at the current moment.
延时增量确定单元320被配置为确定被同时发送的N个数据包的网络传输延时之间的单位数据包传输延时增量,其中,N大于或等于2。The delay increment determining unit 320 is configured to determine a unit data packet transmission delay increment between network transmission delays of N data packets sent at the same time, where N is greater than or equal to 2.
第一数量确定单元330被配置为根据当前时刻的预定时间窗口内的最小网络传输延时和所述N个数据包之间的单位数据包传输延时增量的比值,确定当前时刻的目标发送数据包数量。The first quantity determining unit 330 is configured to determine the target transmission at the current moment according to the ratio of the minimum network transmission delay within the predetermined time window at the current moment to the unit data packet transmission delay increment between the N data packets number of packets.
第二数量确定单元340被配置为根据当前时刻的网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的同时发送数量。The second quantity determination unit 340 is configured to determine the simultaneous transmission quantity of the data packets to be transmitted simultaneously according to the congestion degree of the network at the current moment and the target quantity of transmitted data packets.
发送单元350可被配置为以突发模式来发送数据包。The sending unit 350 may be configured to send data packets in a burst mode.
根据本公开的实施例,N个数据包在突发模式被同时发送,并且所述N个数据包的发送时间被写入所述N个数据包中。According to an embodiment of the present disclosure, N data packets are sent simultaneously in the burst mode, and the sending times of the N data packets are written into the N data packets.
根据本公开的实施例,传输延时确定单元310可被配置为:获取当前时刻的预定时间窗口内接收到的ACK包的接收时间和所述ACK包所对应的数据包的发送时间;计算ACK包的接收时间和所述ACK包所对应的发送时间之间的时间差,并将计算出的时间差中的最小时间差作为所述最小的网络传输延时。According to an embodiment of the present disclosure, the transmission delay determining unit 310 may be configured to: obtain the receiving time of the ACK packet received within the predetermined time window at the current moment and the sending time of the data packet corresponding to the ACK packet; calculate the ACK The time difference between the receiving time of the packet and the sending time corresponding to the ACK packet, and the minimum time difference in the calculated time difference is used as the minimum network transmission delay.
根据本公开的实施例,延时增量确定单元320可被配置为:根据从接收端返回的针对所述N个数据包的ACK包中所记录的发送时间和当前时刻确定所述N个数据包各自的网络传输延时;基于所述N个数据包各自的网络传输延时之间的时间差计算所述N个数据包的网络传输延时之间的单位数据包传输延时增量,其中,当确定网络传输发生乱序时,N为第一数值,当前确定网络传输没有乱序时,N为第二数值,第一数值大于第二数值。如前面所述,由于被同时发送的数据包中记录有发送时间,所以返回的对应的ACK包中可同样记录该发送时间以用于计算该数据包的网络传输延时。According to an embodiment of the present disclosure, the delay increment determining unit 320 may be configured to: determine the N data packets according to the sending time recorded in the ACK packet for the N data packets returned from the receiving end and the current time The respective network transmission delays of the packets; the unit data packet transmission delay increment between the network transmission delays of the N data packets is calculated based on the time difference between the respective network transmission delays of the N data packets, wherein , when it is determined that the network transmission is out of order, N is the first value, and when it is currently determined that the network transmission is not out of order, N is the second value, and the first value is greater than the second value. As mentioned above, since the sending time is recorded in the data packets sent at the same time, the sending time can also be recorded in the corresponding returned ACK packet for calculating the network transmission delay of the data packet.
根据本公开的实施例,延时增量确定单元320可还被配置为:统计收到与所述N个数据包对应ACK包的时间差与发送顺序差的平均比值的期望;基于所述期望和先前时刻的单位数据包传输延时增量的加权值来更新当前时刻的单位数据包传输延时增量。According to an embodiment of the present disclosure, the delay increment determining unit 320 may also be configured to: count the expectation of the average ratio of the time difference of the received ACK packets corresponding to the N data packets to the difference in the sending order; based on the expectation and The weighted value of the unit data packet transmission delay increment at the previous time is used to update the unit data packet transmission delay increment at the current time.
根据本公开的实施例,第二数量确定单元340可被配置为确定在当前时刻t未收到对应ACK包的数据包的数量IF(t),获取当前时刻t的目标发送数据包数量cwnd(t)与未收到对应ACK包的数据包的数量IF(t)之间的差值,作为第一差值cwnd(t)-IF(t),并基于第一差值得到要同时发送的数据包的同时发送数量。According to an embodiment of the present disclosure, the second quantity determining unit 340 may be configured to determine the quantity IF(t) of data packets that have not received corresponding ACK packets at the current moment t, and obtain the target number of data packets to be sent at the current moment t cwnd( The difference between t) and the number IF(t) of data packets that have not received the corresponding ACK packet is used as the first difference cwnd(t)-IF(t), and based on the first difference, the number of packets to be sent simultaneously is obtained. The number of packets sent at the same time.
根据本公开的示例性实施例,第二数量确单元340可确定确定在当前时刻t网络堆积的数据包的数量Q(t)和网络路径瓶颈队列长度Q max(t)=max(IF(i)),i∈[t-k,t],其中k表示所述预定时间窗口的长度。接下来,可获取网络路径瓶颈队列长度Q max(t)与网络堆积的数据包的数量Q(t)之间的差值Q max(t)-Q(t),作为第二差值,并将第一差值cwnd(t)-IF(t)以及第二差值Q max(t)-Q(t)的较小值s(t)=min(cwnd(t)-IF(t),Q max(t)-Q(t))作为要同 时发送的数据包的同时发送数量。 According to an exemplary embodiment of the present disclosure, the second quantity determination unit 340 may determine the quantity Q(t) of data packets accumulated in the network at the current moment t and the network path bottleneck queue length Q max (t)=max(IF(i )), i∈[tk,t], where k represents the length of the predetermined time window. Next, the difference Qmax (t)-Q(t) between the network path bottleneck queue length Qmax (t) and the number Q(t) of data packets accumulated by the network can be obtained as the second difference, and The smaller value s(t)=min(cwnd(t)-IF(t) of the first difference cwnd(t)-IF(t) and the second difference Qmax (t)-Q(t), Q max (t)-Q(t)) is used as the number of simultaneous transmissions of data packets to be transmitted simultaneously.
根据本公开的实施例,第二数量确定单元340还被配置为:将当前时刻t的成对发送数据包的数量要求N(t)和当前时刻t要同时发送的数据包的同时发送数量s(t)中的较大者确定为最终的同时发送数量。According to an embodiment of the present disclosure, the second quantity determining unit 340 is further configured to: use the number requirement N(t) of the paired transmission data packets at the current time t and the simultaneous transmission number s of the data packets to be simultaneously transmitted at the current time t The larger of (t) is determined as the final number of simultaneous transmissions.
具体地,可根据以下等式来从当前时刻t的成对发送数据包的数量要求N(t)和当前时刻t要同时发送的数据包的同时发送数量s(t)中确定最终的发送数据包的数量S best(t): Specifically, the final sending data can be determined from the number N(t) of the paired sending data packets at the current time t and the simultaneous sending number s(t) of the data packets to be sent simultaneously at the current time t according to the following equation The number of packages S best (t):
Figure PCTCN2022092569-appb-000006
Figure PCTCN2022092569-appb-000006
其中,如果在当前时刻确定数据包的网络传输没有发生乱序,则N(t)为第一数值,如果确定发生乱序,则N(t)为第二数值,第二数值大于第一数值。Wherein, if it is determined at the current moment that the network transmission of the data packet is not out of order, then N(t) is the first value, if it is determined that out of order occurs, then N(t) is the second value, and the second value is greater than the first value .
以上已经参照图2对装置300的各个单元执行的操作进行了详细的说明,在此不再重复。The operations performed by each unit of the device 300 have been described in detail above with reference to FIG. 2 , and will not be repeated here.
图4是示出根据本公开的示例性实施例的发送数据包的整体过程的示意图。FIG. 4 is a schematic diagram illustrating an overall process of sending a data packet according to an exemplary embodiment of the present disclosure.
如图4所示,根据本公开的发送数据包的过程可总体上分为两个部分,即计算发送窗口过程和避免拥塞过程。As shown in FIG. 4 , the process of sending data packets according to the present disclosure can be generally divided into two parts, that is, the process of calculating the sending window and the process of avoiding congestion.
在计算发送窗口过程中,当收到同时发送的数据包的ACK包时,可计算相应数据包的到达时间和发送时间差rtt t=T now-st t,从而可以更新预定时间窗口内传输路径的最小延时RTT min(t)=min(rtt i)。同样地,可统计收到同时刻发送的N个数据包对应的ACK包的时间差与发送顺序差的平均比值的期望
Figure PCTCN2022092569-appb-000007
Figure PCTCN2022092569-appb-000008
然后通过加权滑动窗口基于先前时刻的单位数据包传输延时增量的加权值来更新当前时刻的单位数据包传输延时增量Δ(t)=Δ(t-1)*α+δ(t)*(1-α)。在得到RTT min(t)和Δ(t)的比值获得当前时刻的最佳发送窗口cwnd(t)。
In the process of calculating the sending window, when the ACK packet of the data packet sent at the same time is received, the arrival time of the corresponding data packet and the sending time difference rtt t =T now -st t can be calculated, so that the transmission path within the predetermined time window can be updated Minimum time delay RTT min (t)=min(rtt i ). Similarly, the expectation of the average ratio of the time difference of the ACK packets corresponding to the N data packets sent at the same time to the sending order difference can be counted
Figure PCTCN2022092569-appb-000007
Figure PCTCN2022092569-appb-000008
Then, the unit data packet transmission delay increment at the current moment is updated Δ(t)=Δ(t-1)*α+δ(t )*(1-α). The optimal sending window cwnd(t) at the current moment is obtained by obtaining the ratio of RTT min (t) and Δ(t).
在避免拥塞过程中,需要计算时刻t的网络堆积数据包的数量Q(t)、未收到对应ACK包的数据包的数量IF(t)和网络路径瓶颈队列长度Q max(t)来反映网络拥塞程度,并根据Q(t)、IF(t)和Q max(t)确定不发生丢包的前提下能够发送的数据包的数量。如图4所示,每发送一个数据包,可更新当前网络传输路径中数据包堆积队列长度(数量)Q(t)=Q(t)+1,另外,可更新当前网络路径中发送但未收到的数据数量IF(t)=IF(t)+1。每收到一个ACK包,依据当前时间T now和上一个ACK包的接收时间T last,更新堆积队列长度
Figure PCTCN2022092569-appb-000009
Figure PCTCN2022092569-appb-000010
并更新发送但未收到的包数量IF(t)=IF(t)-1。在收到丢包时,可确定网络路径瓶颈队列长度Q max(t)。
In the process of avoiding congestion, it is necessary to calculate the number Q(t) of network accumulated data packets at time t, the number IF(t) of data packets that have not received corresponding ACK packets, and the length of network path bottleneck queue Q max (t) to reflect The degree of network congestion, and according to Q(t), IF(t) and Q max (t), determine the number of data packets that can be sent without packet loss. As shown in Figure 4, every time a data packet is sent, the length (quantity) Q(t)=Q(t)+1 of the data packet accumulation queue in the current network transmission path can be updated. The received data amount IF(t)=IF(t)+1. Each time an ACK packet is received, the accumulation queue length is updated according to the current time T now and the receiving time T last of the last ACK packet
Figure PCTCN2022092569-appb-000009
Figure PCTCN2022092569-appb-000010
And update the number of packets sent but not received IF(t)=IF(t)-1. Upon receipt of packet loss, the network path bottleneck queue length Q max (t) can be determined.
这样,结合之前确定的最佳发送窗口cwnd(t),可计算出当前时刻不超过最佳发送窗口的情况下期望的最大发送数据包的数量s c=cwnd(t)-IF(t)以及不丢包的情况下可以发送的最大发送数据包的数量s q=Q max(t)-Q(t)。将s c和s q中的较小者s(t)=min(cwnd(t)-IF(t),Q max(t)-Q(t))与成对发送数据包的数量要求N(t)进行比较,并选择两者中较大的数量max(N(t),s(t))作为最终的同时发送数据包的数量S(t)。 In this way, combined with the previously determined optimal sending window cwnd(t), the expected maximum number of sending data packets sc =cwnd(t)-IF(t) and The maximum number of data packets that can be sent without packet loss s q =Q max (t)-Q(t). The smaller of s c and s q s(t)=min(cwnd(t)-IF(t), Q max (t)-Q(t)) and the number of data packets sent in pairs require N( t) for comparison, and select the larger number max(N(t), s(t)) of the two as the final number S(t) of simultaneously sent data packets.
以上已经参照附图2详细说明了确定最终发送数据包的数量的过程,在此不再重复 说明。The process of determining the number of finally sent data packets has been described in detail above with reference to the accompanying drawing 2, and the description will not be repeated here.
图5是示出根据本公开的示例性实施例的用于发送数据包的电子设备500的示意图。该电子设备500例如可以是:智能手机、平板电脑、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。电子设备500还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。FIG. 5 is a schematic diagram illustrating an electronic device 500 for transmitting data packets according to an exemplary embodiment of the present disclosure. The electronic device 500 can be, for example, a smart phone, a tablet computer, an MP4 (Moving Picture Experts Group Audio Layer IV, Moving Picture Experts Group Audio Layer IV) player, a notebook computer or a desktop computer. The electronic device 500 may also be called user equipment, portable terminal, laptop terminal, desktop terminal and other names.
通常,电子设备500包括有:处理器501和存储器502。Generally, the electronic device 500 includes: a processor 501 and a memory 502 .
处理器501可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器501可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器501也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器501可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。在本公开的示例性实施例中,处理器501还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。The processor 501 may include one or more processing cores, such as a 4-core processor, an 8-core processor, and the like. Processor 501 can be realized by at least one hardware form in DSP (Digital Signal Processing, digital signal processing), FPGA (Field Programmable Gate Array, field programmable gate array), PLA (Programmable Logic Array, programmable logic array) . Processor 501 may also include a main processor and a coprocessor, and the main processor is a processor for processing data in a wake-up state, also known as a CPU (Central Processing Unit, central processing unit); the coprocessor is Low-power processor for processing data in standby state. In some embodiments, the processor 501 may be integrated with a GPU (Graphics Processing Unit, image processor), and the GPU is used for rendering and drawing the content to be displayed on the display screen. In an exemplary embodiment of the present disclosure, the processor 501 may further include an AI (Artificial Intelligence, artificial intelligence) processor, where the AI processor is configured to process computing operations related to machine learning.
存储器502可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器502还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器502中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器501所执行以实现本公开的示例性实施例的发送数据包的方法。 Memory 502 may include one or more computer-readable storage media, which may be non-transitory. The memory 502 may also include high-speed random access memory and non-volatile memory, such as one or more magnetic disk storage devices and flash memory storage devices. In some embodiments, the non-transitory computer-readable storage medium in the memory 502 is used to store at least one instruction, and the at least one instruction is used to be executed by the processor 501 to implement the sending data of the exemplary embodiments of the present disclosure. method of the package.
在一些实施例中,电子设备500还可选包括有:外围设备接口503和至少一个外围设备。处理器501、存储器502和外围设备接口503之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口503相连。具体地,外围设备包括:射频电路504、触摸显示屏505、摄像头506、音频电路507、定位组件508和电源509中的至少一种。In some embodiments, the electronic device 500 may optionally further include: a peripheral device interface 503 and at least one peripheral device. The processor 501, the memory 502, and the peripheral device interface 503 may be connected through buses or signal lines. Each peripheral device can be connected to the peripheral device interface 503 through a bus, a signal line or a circuit board. Specifically, the peripheral device includes: at least one of a radio frequency circuit 504 , a touch screen 505 , a camera 506 , an audio circuit 507 , a positioning component 508 and a power supply 509 .
外围设备接口503可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器501和存储器502。在一些实施例中,处理器501、存储器502和外围设备接口503被集成在同一芯片或电路板上;在一些其他实施例中,处理器501、存储器502和外围设备接口503中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。The peripheral device interface 503 may be used to connect at least one peripheral device related to I/O (Input/Output, input/output) to the processor 501 and the memory 502 . In some embodiments, the processor 501, memory 502 and peripheral device interface 503 are integrated on the same chip or circuit board; in some other embodiments, any one of the processor 501, memory 502 and peripheral device interface 503 or The two can be implemented on a separate chip or circuit board, which is not limited in this embodiment.
射频电路504用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路504通过电磁信号与通信网络以及其他通信设备进行通信。射频电路504将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。在一些实施例中,射频电路504包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路504可以通过至少一种无线 通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路504还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本公开对此不加以限定。The radio frequency circuit 504 is used to receive and transmit RF (Radio Frequency, radio frequency) signals, also called electromagnetic signals. The radio frequency circuit 504 communicates with the communication network and other communication devices through electromagnetic signals. The radio frequency circuit 504 converts electrical signals into electromagnetic signals for transmission, or converts received electromagnetic signals into electrical signals. In some embodiments, the radio frequency circuit 504 includes: an antenna system, an RF transceiver, one or more amplifiers, a tuner, an oscillator, a digital signal processor, a codec chipset, a subscriber identity module card, and the like. The radio frequency circuit 504 can communicate with other terminals through at least one wireless communication protocol. The wireless communication protocol includes but is not limited to: metropolitan area network, mobile communication networks of various generations (2G, 3G, 4G and 5G), wireless local area network and/or WiFi (Wireless Fidelity, wireless fidelity) network. In some embodiments, the radio frequency circuit 504 may also include circuits related to NFC (Near Field Communication, short-range wireless communication), which is not limited in the present disclosure.
显示屏505用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏505是触摸显示屏时,显示屏505还具有采集在显示屏505的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器501进行处理。此时,显示屏505还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏505可以为一个,设置在电子设备500的前面板。在另一些实施例中,显示屏505可以为至少两个,分别设置在终端500的不同表面或呈折叠设计。在又一些实施例中,显示屏505可以是柔性显示屏,设置在终端500的弯曲表面上或折叠面上。甚至,显示屏505还可以设置成非矩形的不规则图形,也即异形屏。显示屏505可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。The display screen 505 is used to display a UI (User Interface, user interface). The UI can include graphics, text, icons, video, and any combination thereof. When the display screen 505 is a touch display screen, the display screen 505 also has the ability to collect touch signals on or above the surface of the display screen 505 . The touch signal can be input to the processor 501 as a control signal for processing. At this time, the display screen 505 can also be used to provide virtual buttons and/or virtual keyboards, also called soft buttons and/or soft keyboards. In some embodiments, there may be one display screen 505 , which is set on the front panel of the electronic device 500 . In other embodiments, there may be at least two display screens 505, which are respectively arranged on different surfaces of the terminal 500 or in a folding design. In still other embodiments, the display screen 505 may be a flexible display screen, which is arranged on the curved surface or the folded surface of the terminal 500 . Even, the display screen 505 can also be set as a non-rectangular irregular figure, that is, a special-shaped screen. The display screen 505 can be made of LCD (Liquid Crystal Display, liquid crystal display), OLED (Organic Light-Emitting Diode, organic light-emitting diode) and other materials.
摄像头组件506用于采集图像或视频。在一些实施例中,摄像头组件506包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件506还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。The camera assembly 506 is used to capture images or videos. In some embodiments, the camera assembly 506 includes a front camera and a rear camera. Usually, the front camera is set on the front panel of the terminal, and the rear camera is set on the back of the terminal. In some embodiments, there are at least two rear cameras, which are any one of the main camera, depth-of-field camera, wide-angle camera, and telephoto camera, so as to realize the fusion of the main camera and the depth-of-field camera to realize the background blur function. Combined with the wide-angle camera to achieve panoramic shooting and VR (Virtual Reality, virtual reality) shooting functions or other fusion shooting functions. In some embodiments, camera assembly 506 may also include a flash. The flash can be a single-color temperature flash or a dual-color temperature flash. Dual color temperature flash refers to the combination of warm light flash and cold light flash, which can be used for light compensation under different color temperatures.
音频电路507可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器501进行处理,或者输入至射频电路504以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端500的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器501或射频电路504的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路507还可以包括耳机插孔。 Audio circuitry 507 may include a microphone and speakers. The microphone is used to collect sound waves of the user and the environment, and convert the sound waves into electrical signals and input them to the processor 501 for processing, or input them to the radio frequency circuit 504 to realize voice communication. For the purpose of stereo sound collection or noise reduction, there may be multiple microphones, which are respectively arranged at different parts of the terminal 500 . The microphone can also be an array microphone or an omnidirectional collection microphone. The speaker is used to convert the electrical signal from the processor 501 or the radio frequency circuit 504 into sound waves. The loudspeaker can be a conventional membrane loudspeaker or a piezoelectric ceramic loudspeaker. When the speaker is a piezoelectric ceramic speaker, it is possible not only to convert electrical signals into sound waves audible to humans, but also to convert electrical signals into sound waves inaudible to humans for purposes such as distance measurement. In some embodiments, the audio circuit 507 may also include a headphone jack.
定位组件508用于定位电子设备500的当前地理位置,以实现导航或LBS(Location Based Service,基于位置的服务)。定位组件508可以是基于美国的GPS(Global Positioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。The positioning component 508 is used to locate the current geographic location of the electronic device 500, so as to realize navigation or LBS (Location Based Service, location-based service). The positioning component 508 may be a positioning component based on the GPS (Global Positioning System, Global Positioning System) of the United States, the Beidou system of China, the Greinus system of Russia or the Galileo system of the European Union.
电源509用于为电子设备500中的各个组件进行供电。电源509可以是交流电、直流电、一次性电池或可充电电池。当电源509包括可充电电池时,该可充电电池可以支持 有线充电或无线充电。该可充电电池还可以用于支持快充技术。The power supply 509 is used to supply power to various components in the electronic device 500 . Power source 509 may be AC, DC, disposable or rechargeable batteries. When the power source 509 includes a rechargeable battery, the rechargeable battery may support wired charging or wireless charging. The rechargeable battery can also be used to support fast charging technology.
在一些实施例中,电子设备500还包括有一个或多个传感器510。该一个或多个传感器510包括但不限于:加速度传感器511、陀螺仪传感器512、压力传感器513、指纹传感器514、光学传感器515以及接近传感器516。In some embodiments, the electronic device 500 further includes one or more sensors 510 . The one or more sensors 510 include, but are not limited to: an acceleration sensor 511 , a gyro sensor 512 , a pressure sensor 513 , a fingerprint sensor 514 , an optical sensor 515 and a proximity sensor 516 .
加速度传感器511可以检测以终端500建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器511可以用于检测重力加速度在三个坐标轴上的分量。处理器501可以根据加速度传感器511采集的重力加速度信号,控制触摸显示屏505以横向视图或纵向视图进行用户界面的显示。加速度传感器511还可以用于游戏或者用户的运动数据的采集。The acceleration sensor 511 can detect the acceleration on the three coordinate axes of the coordinate system established by the terminal 500 . For example, the acceleration sensor 511 can be used to detect the components of the acceleration of gravity on the three coordinate axes. The processor 501 may control the touch display screen 505 to display the user interface in a landscape view or a portrait view according to the gravitational acceleration signal collected by the acceleration sensor 511 . The acceleration sensor 511 can also be used for collecting game or user's motion data.
陀螺仪传感器512可以检测终端500的机体方向及转动角度,陀螺仪传感器512可以与加速度传感器511协同采集用户对终端500的3D动作。处理器501根据陀螺仪传感器512采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。The gyro sensor 512 can detect the body direction and rotation angle of the terminal 500 , and the gyro sensor 512 can cooperate with the acceleration sensor 511 to collect 3D actions of the user on the terminal 500 . According to the data collected by the gyroscope sensor 512, the processor 501 can realize the following functions: motion sensing (such as changing the UI according to the user's tilt operation), image stabilization during shooting, game control and inertial navigation.
压力传感器513可以设置在终端500的侧边框和/或触摸显示屏505的下层。当压力传感器513设置在终端500的侧边框时,可以检测用户对终端500的握持信号,由处理器501根据压力传感器513采集的握持信号进行左右手识别或快捷操作。当压力传感器513设置在触摸显示屏505的下层时,由处理器501根据用户对触摸显示屏505的压力操作,实现对UI上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。The pressure sensor 513 may be disposed on a side frame of the terminal 500 and/or a lower layer of the touch screen 505 . When the pressure sensor 513 is set on the side frame of the terminal 500 , it can detect the user's grip signal on the terminal 500 , and the processor 501 performs left and right hand recognition or shortcut operation according to the grip signal collected by the pressure sensor 513 . When the pressure sensor 513 is arranged on the lower layer of the touch screen 505, the processor 501 controls the operable controls on the UI according to the user's pressure operation on the touch screen 505. The operable controls include at least one of button controls, scroll bar controls, icon controls, and menu controls.
指纹传感器514用于采集用户的指纹,由处理器501根据指纹传感器514采集到的指纹识别用户的身份,或者,由指纹传感器514根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器501授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器514可以被设置电子设备500的正面、背面或侧面。当电子设备500上设置有物理按键或厂商Logo时,指纹传感器514可以与物理按键或厂商Logo集成在一起。The fingerprint sensor 514 is used to collect the user's fingerprint, and the processor 501 recognizes the identity of the user according to the fingerprint collected by the fingerprint sensor 514, or the fingerprint sensor 514 recognizes the user's identity according to the collected fingerprint. When the identity of the user is recognized as a trusted identity, the processor 501 authorizes the user to perform relevant sensitive operations, such sensitive operations include unlocking the screen, viewing encrypted information, downloading software, making payment, and changing settings. The fingerprint sensor 514 may be disposed on the front, back or side of the electronic device 500 . When the electronic device 500 is provided with a physical button or a manufacturer's Logo, the fingerprint sensor 514 may be integrated with the physical button or the manufacturer's Logo.
光学传感器515用于采集环境光强度。在一个实施例中,处理器501可以根据光学传感器515采集的环境光强度,控制触摸显示屏505的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏505的显示亮度;当环境光强度较低时,调低触摸显示屏505的显示亮度。在另一个实施例中,处理器501还可以根据光学传感器515采集的环境光强度,动态调整摄像头组件506的拍摄参数。The optical sensor 515 is used to collect ambient light intensity. In one embodiment, the processor 501 can control the display brightness of the touch screen 505 according to the ambient light intensity collected by the optical sensor 515 . Specifically, when the ambient light intensity is high, the display brightness of the touch screen 505 is increased; when the ambient light intensity is low, the display brightness of the touch screen 505 is decreased. In another embodiment, the processor 501 may also dynamically adjust shooting parameters of the camera assembly 506 according to the ambient light intensity collected by the optical sensor 515 .
接近传感器516,也称距离传感器,通常设置在电子设备500的前面板。接近传感器516用于采集用户与电子设备500的正面之间的距离。在一个实施例中,当接近传感器516检测到用户与终端500的正面之间的距离逐渐变小时,由处理器501控制触摸显示屏505从亮屏状态切换为息屏状态;当接近传感器516检测到用户与电子设备500的正面之间的距离逐渐变大时,由处理器501控制触摸显示屏505从息屏状态切换为亮屏状态。The proximity sensor 516 , also called a distance sensor, is usually arranged on the front panel of the electronic device 500 . The proximity sensor 516 is used to collect the distance between the user and the front of the electronic device 500 . In one embodiment, when the proximity sensor 516 detects that the distance between the user and the front of the terminal 500 gradually decreases, the processor 501 controls the touch display 505 to switch from the bright screen state to the off screen state; when the proximity sensor 516 detects When the distance between the user and the front of the electronic device 500 gradually increases, the processor 501 controls the touch display screen 505 to switch from the off-screen state to the on-screen state.
本领域技术人员可以理解,图5中示出的结构并不构成对电子设备500的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。Those skilled in the art can understand that the structure shown in FIG. 5 does not constitute a limitation to the electronic device 500, and may include more or less components than shown in the figure, or combine some components, or adopt different component arrangements.
图6示出了另一种电子设备600的结构框图。例如,电子设备600可以被提供为一服务器。参照图6,电子设备600包括一个或多个处理处理器610以及存储器620。存储器620可以包括用于执行以上的发送数据包的一个或一个以上的程序。电子设备600还可以包括一个电源组件630被配置为执行电子设备600的电源管理,一个有线或无线网络接口650被配置为将电子设备600连接到网络,和一个输入输出(I/O)接口650。电子设备600可以操作基于存储在存储器620的操作系统,例如Windows ServerTM、Mac OS XTM、UnixTM、LinuxTM、FreeBSDTM或类似。FIG. 6 shows a structural block diagram of another electronic device 600 . For example, the electronic device 600 may be provided as a server. Referring to FIG. 6 , an electronic device 600 includes one or more processing processors 610 and a memory 620 . The memory 620 may include one or more programs for performing the above sending data packets. The electronic device 600 may also include a power supply component 630 configured to perform power management of the electronic device 600, a wired or wireless network interface 650 configured to connect the electronic device 600 to a network, and an input-output (I/O) interface 650 . The electronic device 600 can operate based on an operating system stored in the memory 620, such as Windows Server™, Mac OS X™, Unix™, Linux™, FreeBSD™ or the like.
本领域技术人员可以理解,图6中示出的结构并不构成对电子设备600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。Those skilled in the art can understand that the structure shown in FIG. 6 does not constitute a limitation to the electronic device 600, and may include more or less components than shown in the figure, or combine some components, or adopt a different arrangement of components.
根据本公开的实施例,还提供了一种存储指令的计算机可读存储介质,其中,当指令被至少一个处理器运行时,促使至少一个处理器执行根据本公开实施例任一项所述的发送数据包的方法。According to an embodiment of the present disclosure, there is also provided a computer-readable storage medium storing instructions, wherein, when the instructions are executed by at least one processor, at least one processor is prompted to execute the method described in any one of the embodiments of the present disclosure. Method for sending packets.
该计算机可读存储介质可以是非易失性计算机可读存储介质。这里的计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态硬盘(SSD)、卡式存储器(诸如,多媒体卡、安全数字(SD)卡或极速数字(XD)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为以非暂时性方式存储计算机程序以及任何相关联的数据、数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程序。上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,此外,在一个示例中,计算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。The computer readable storage medium may be a non-transitory computer readable storage medium. Examples of computer readable storage media herein include: Read Only Memory (ROM), Random Access Programmable Read Only Memory (PROM), Electrically Erasable Programmable Read Only Memory (EEPROM), Random Access Memory (RAM) , Dynamic Random Access Memory (DRAM), Static Random Access Memory (SRAM), Flash Memory, Non-Volatile Memory, CD-ROM, CD-R, CD+R, CD-RW, CD+RW, DVD-ROM , DVD-R, DVD+R, DVD-RW, DVD+RW, DVD-RAM, BD-ROM, BD-R, BD-R LTH, BD-RE, Blu-ray or Optical Memory, Hard Disk Drive (HDD), Solid State Hard disks (SSD), memory cards (such as MultiMediaCards, Secure Digital (SD) or Extreme Digital (XD) cards), magnetic tapes, floppy disks, magneto-optical data storage devices, optical data storage devices, hard disks, solid-state disks, and any other means configured to store a computer program and any associated data, data files and data structures in a non-transitory manner and to provide said computer program and any associated data, data files and data structures to the processor or the computer to enable the processor or the computer to execute the computer program. The computer program in the above-mentioned computer-readable storage medium can run in an environment deployed in computer equipment such as a client, a host, an agent device, a server, etc. In addition, in one example, the computer program and any associated data and data files and data structures are distributed over network-connected computer systems so that the computer programs and any associated data, data files and data structures are stored, accessed and executed in a distributed fashion by one or more processors or computers.
根据本公开的实施例,还提供了一种计算机程序产品,该计算机程序产品中的指令可由计算机设备的处理器执行以完成本公开实施例任一项所述的发送数据包的方法。According to an embodiment of the present disclosure, a computer program product is also provided, and instructions in the computer program product can be executed by a processor of a computer device to complete the method for sending a data packet described in any one of the embodiments of the present disclosure.
根据本公开的实施例,还提供了一种计算机程序,所述计算机程序包括计算机程序代码,当所述计算机程序代码在计算机上运行时,以使得计算机执行本公开实施例任一项所述的发送数据包的方法。According to an embodiment of the present disclosure, there is also provided a computer program, the computer program including computer program code, when the computer program code is run on a computer, so that the computer executes the method described in any one of the embodiments of the present disclosure. Method for sending packets.
根据本公开实施例的发送数据包的方法、装置、电子设备、计算机可读存储介质、计算机程序产品以及计算机程序可以使得能够在保证端到端传输延时在基底延时附近的基础上,追求最大的网络吞吐量,并尽可能减少网络路径中的拥塞丢包。The method, device, electronic device, computer-readable storage medium, computer program product, and computer program according to the embodiments of the present disclosure can enable the pursuit of Maximize network throughput and minimize packet loss due to congestion in the network path.
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它 实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围由下面的权利要求指出。Other embodiments of the present disclosure will be readily apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. The present disclosure is intended to cover any modification, use or adaptation of the present disclosure. These modifications, uses or adaptations follow the general principles of the present disclosure and include common knowledge or conventional technical means in the technical field not disclosed in the present disclosure. . The specification and examples are to be considered exemplary only, with the true scope of the disclosure being indicated by the following claims.
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。It should be understood that the present disclosure is not limited to the precise constructions which have been described above and shown in the drawings, and various modifications and changes may be made without departing from the scope thereof. The scope of the present disclosure is limited only by the appended claims.
本公开所有实施例均可以单独被执行,也可以与其他实施例相结合被执行,均视为本公开要求的保护范围。All the embodiments of the present disclosure can be implemented independently or in combination with other embodiments, which are all regarded as the scope of protection required by the present disclosure.

Claims (20)

  1. 一种发送数据包的方法,其特征在于,包括:A method for sending data packets, comprising:
    确定当前时刻的预定时间窗口内的最小网络传输延时;Determine the minimum network transmission delay within the predetermined time window at the current moment;
    确定被同时发送的N个数据包的网络传输延时之间的单位数据包传输延时增量,其中,N大于或等于2;Determine the unit data packet transmission delay increment between the network transmission delays of the N data packets sent at the same time, where N is greater than or equal to 2;
    根据当前时刻的预定时间窗口内的最小网络传输延时和所述N个数据包之间的单位数据包传输延时增量的比值,确定当前时刻的目标发送数据包数量;According to the ratio of the minimum network transmission delay within the predetermined time window at the current moment and the unit data packet transmission delay increment between the N data packets, determine the target number of data packets to be sent at the current moment;
    基于当前时刻的网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的同时发送数量,以根据所述同时发送数量发送数据包。The simultaneous transmission quantity of data packets to be simultaneously transmitted is determined based on the congestion degree of the network at the current moment and the target transmission quantity of data packets, so as to transmit the data packets according to the simultaneous transmission quantity.
  2. 如权利要求1所述的方法,其特征在于,确定当前时刻的预定时间窗口内的最小的网络传输延时包括:The method according to claim 1, wherein determining the minimum network transmission delay within the predetermined time window at the current moment comprises:
    获取当前时刻的预定时间窗口内接收到的ACK包的接收时间和所述ACK包所对应的数据包的发送时间;Obtain the receiving time of the ACK packet received in the predetermined time window at the current moment and the sending time of the data packet corresponding to the ACK packet;
    计算ACK包的接收时间和所述ACK包所对应的发送时间之间的时间差,并将计算出的时间差中的最小时间差作为所述最小的网络传输延时。Calculate the time difference between the receiving time of the ACK packet and the corresponding sending time of the ACK packet, and use the minimum time difference in the calculated time difference as the minimum network transmission delay.
  3. 如权利要求1或2所述的方法,其特征在于,确定被同时发送的N个数据包到达接收端的网络传输延时之间的单位数据包传输延时增量包括:The method according to claim 1 or 2, wherein determining the unit data packet transmission delay increment between the network transmission delays of the N data packets sent at the same time arriving at the receiving end comprises:
    根据从接收端返回的针对所述N个数据包的ACK包中所记录的发送时间和当前时刻确定所述N个数据包各自的网络传输延时;Determine the respective network transmission delays of the N data packets according to the sending time recorded in the ACK packets for the N data packets returned from the receiving end and the current moment;
    基于所述N个数据包各自的网络传输延时之间的时间差计算所述N个数据包的网络传输延时之间的单位数据包传输延时增量。The unit data packet transmission delay increment between the network transmission delays of the N data packets is calculated based on the time difference between the respective network transmission delays of the N data packets.
  4. 如权利要求1至3中任一项所述的方法,其特征在于,当在当前时刻确定网络传输发生乱序时,N为第一数值,当确定网络传输没有乱序时,N为第二数值,第一数值大于第二数值。The method according to any one of claims 1 to 3, wherein when it is determined that the network transmission is out of order at the current moment, N is the first value, and when it is determined that the network transmission is not out of order, N is the second value Values, the first value is greater than the second value.
  5. 如权利要求3所述的方法,其特征在于,基于所述N个数据包各自的网络传输延时之间的时间差计算所述N个数据包的网络传输延时之间的单位数据包传输延时增量包括:The method according to claim 3, wherein the unit data packet transmission delay between the network transmission delays of the N data packets is calculated based on the time difference between the respective network transmission delays of the N data packets Time increments include:
    统计收到与所述N个数据包对应的ACK包的时间差与发送顺序差的平均比值的期望;Statistically receive the expectation of the average ratio of the time difference of the ACK packets corresponding to the N data packets and the sending sequence difference;
    基于所述期望和先前时刻的单位数据包传输延时增量的加权值来更新当前时刻的单位数据包传输延时增量。The unit data packet transmission delay increment at the current time is updated based on the weighted value of the expected and the unit data packet transmission delay increment at the previous time.
  6. 如权利要求1至5中任一项所述的方法,其特征在于,基于网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的同时发送数量包括:The method according to any one of claims 1 to 5, characterized in that, determining the simultaneous sending number of data packets to be sent simultaneously based on the degree of congestion of the network and the number of target sending data packets includes:
    确定在当前时刻t未收到对应ACK包的数据包的数量IF(t);Determine the number IF(t) of data packets that have not received the corresponding ACK packet at the current moment t;
    获取当前时刻t的目标发送数据包数量cwnd(t)与未收到对应ACK包的数据包的数 量IF(t)之间的差值,作为第一差值;Obtain the difference between the number of data packets IF (t) of the target sending data packet quantity cwnd (t) of current moment t and the data packet that has not received corresponding ACK packet, as the first difference;
    基于所述第一差值得到要同时发送的数据包的同时发送数量。The simultaneous sending quantity of the data packets to be sent simultaneously is obtained based on the first difference.
  7. 如权利要求6所述的方法,其特征在于,基于所述第一差值得到要同时发送的数据包的同时发送数量包括:The method according to claim 6, wherein obtaining the number of simultaneous transmissions of data packets to be simultaneously transmitted based on the first difference comprises:
    确定在当前时刻t网络堆积的数据包的数量Q(t)和网络路径瓶颈队列长度Q max(t)=max(IF(i)),i∈[t-k,t],其中k表示所述预定时间窗口的长度; Determine the quantity Q(t) of data packets accumulated in the network at the current moment t and the network path bottleneck queue length Q max (t)=max(IF(i)), i∈[tk,t], where k represents the predetermined the length of the time window;
    获取网络路径瓶颈队列长度Q max(t)与网络堆积的数据包的数量Q(t)之间的差值,作为第二差值; Obtain the difference between the network path bottleneck queue length Q max (t) and the quantity Q (t) of the data packets accumulated by the network, as the second difference;
    将所述第一差值以及所述第二差值的较小值作为要同时发送的数据包的同时发送数量。The smaller value of the first difference value and the second difference value is used as the number of data packets to be sent simultaneously.
  8. 如权利要求1至7中任一项所述的方法,其特征在于,根据网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的同时发送数量包括:The method according to any one of claims 1 to 7, characterized in that, determining the number of simultaneous transmissions of data packets to be sent simultaneously according to the degree of congestion of the network and the number of target data packets to be sent comprises:
    将当前时刻t的成对发送数据包的数量要求N(t)和当前时刻t要同时发送的数据包的同时发送数量s(t)中的较大者确定为最终的同时发送数量。The larger one of the number of data packets to be sent in pairs at the current time t N(t) and the number of simultaneous transmissions s(t) of data packets to be sent simultaneously at the current time t is determined as the final number of simultaneous transmissions.
  9. 一种发送数据包的装置,其特征在于,包括:A device for sending data packets, characterized in that it comprises:
    传输延时确定单元,被配置为确定当前时刻的预定时间窗口内的最小网络传输延时;A transmission delay determination unit configured to determine the minimum network transmission delay within a predetermined time window at the current moment;
    延时增量确定单元,被配置为确定被同时发送的N个数据包的网络传输延时之间的单位数据包传输延时增量,其中,N大于或等于2;The delay increment determination unit is configured to determine the unit data packet transmission delay increment between the network transmission delays of the N data packets sent at the same time, where N is greater than or equal to 2;
    第一数量确定单元,被配置为根据当前时刻的预定时间窗口内的最小网络传输延时和所述N个数据包之间的单位数据包传输延时增量的比值,确定当前时刻的目标发送数据包数量;The first quantity determining unit is configured to determine the target transmission at the current moment according to the ratio of the minimum network transmission delay within the predetermined time window at the current moment to the unit data packet transmission delay increment between the N data packets number of packets;
    第二数量确定单元,被配置为根据当前时刻的网络的拥塞程度和目标发送数据包数量确定要同时发送的数据包的同时发送数量,以根据所述同时发送数量发送数据包。The second quantity determination unit is configured to determine the simultaneous transmission quantity of the data packets to be sent simultaneously according to the congestion degree of the network at the current moment and the target transmission quantity of data packets, so as to transmit the data packets according to the simultaneous transmission quantity.
  10. 如权利要求9所述的装置,其特征在于,传输延时确定单元被配置为:The device according to claim 9, wherein the transmission delay determining unit is configured to:
    获取当前时刻的预定时间窗口内接收到的ACK包的接收时间和所述ACK包所对应的数据包的发送时间;Obtain the receiving time of the ACK packet received in the predetermined time window at the current moment and the sending time of the data packet corresponding to the ACK packet;
    计算ACK包的接收时间和所述ACK包所对应的发送时间之间的时间差,并将计算出的时间差中的最小时间差作为所述最小的网络传输延时。Calculate the time difference between the receiving time of the ACK packet and the corresponding sending time of the ACK packet, and use the minimum time difference in the calculated time difference as the minimum network transmission delay.
  11. 如权利要求9或10所述的装置,其特征在于,延时增量确定单元被配置为:The device according to claim 9 or 10, wherein the delay increment determining unit is configured to:
    根据从接收端返回的针对所述N个数据包的ACK包中所记录的发送时间和当前时刻确定所述N个数据包各自的网络传输延时;Determine the respective network transmission delays of the N data packets according to the sending time recorded in the ACK packets for the N data packets returned from the receiving end and the current moment;
    基于所述N个数据包各自的网络传输延时之间的时间差计算所述N个数据包的网络传输延时之间的单位数据包传输延时增量。The unit data packet transmission delay increment between the network transmission delays of the N data packets is calculated based on the time difference between the respective network transmission delays of the N data packets.
  12. 如权利要求9至11中任一项所述的装置,其特征在于,当延时增量确定单元在当前时刻确定网络传输发生乱序时,N为第一数值,当确定网络传输没有乱序时,N为第二数值,第一数值大于第二数值。The device according to any one of claims 9 to 11, wherein when the delay increment determining unit determines that the network transmission is out of order at the current moment, N is the first value, and when it is determined that the network transmission is not out of order , N is the second value, and the first value is greater than the second value.
  13. 如权利要求11所述的装置,其特征在于,延时增量确定单元还被配置为:The device according to claim 11, wherein the delay increment determining unit is further configured to:
    统计收到与所述N个数据包对应的ACK包的时间差与发送顺序差的平均比值的期望;Statistically receive the expectation of the average ratio of the time difference of the ACK packets corresponding to the N data packets and the sending sequence difference;
    基于所述期望和先前时刻的单位数据包传输延时增量的加权值来更新当前时刻的单位数据包传输延时增量。The unit data packet transmission delay increment at the current time is updated based on the weighted value of the expected and the unit data packet transmission delay increment at the previous time.
  14. 如权利要求9至13中任一项所述的装置,其特征在于,第二数量确定单元被配置为:The device according to any one of claims 9 to 13, wherein the second quantity determination unit is configured to:
    确定在当前时刻t未收到对应ACK包的数据包的数量IF(t);Determine the number IF(t) of data packets that have not received the corresponding ACK packet at the current moment t;
    获取当前时刻t的目标发送数据包数量cwnd(t)与未收到对应ACK包的数据包的数量IF(t)之间的差值,作为第一差值;Obtain the difference between the number of data packets cwnd (t) of the target sending data packets at the current moment t and the number of data packets IF (t) that have not received the corresponding ACK packet, as the first difference;
    基于所述第一差值得到要同时发送的数据包的同时发送数量。The simultaneous sending quantity of the data packets to be sent simultaneously is obtained based on the first difference.
  15. 如权利要求14所述的装置,其特征在于,第二数量确定单元被配置为:The device according to claim 14, wherein the second quantity determination unit is configured to:
    确定在当前时刻t网络堆积的数据包的数量Q(t)和网络路径瓶颈队列长度Q max(t)=max(IF(i)),i∈[t-k,t],其中k表示所述预定时间窗口的长度; Determine the quantity Q(t) of data packets accumulated in the network at the current moment t and the network path bottleneck queue length Q max (t)=max(IF(i)), i∈[tk,t], where k represents the predetermined the length of the time window;
    获取网络路径瓶颈队列长度Q max(t)与网络堆积的数据包的数量Q(t)之间的差值,作为第二差值; Obtain the difference between the network path bottleneck queue length Q max (t) and the quantity Q (t) of the data packets accumulated by the network, as the second difference;
    将所述第一差值以及所述第二差值的较小值作为要同时发送的数据包的同时发送数量。The smaller value of the first difference value and the second difference value is used as the number of data packets to be sent simultaneously.
  16. 如权利要求9至15中任一项所述的装置,其特征在于,第二数量确定单元还被配置为:The device according to any one of claims 9 to 15, wherein the second quantity determining unit is further configured to:
    将当前时刻t的成对发送数据包的数量要求N(t)和当前时刻t要同时发送的数据包的同时发送数量s(t)中的较大者确定为最终的同时发送数量。The larger one of the number of data packets to be sent in pairs at the current time t N(t) and the number of simultaneous transmissions s(t) of data packets to be sent simultaneously at the current time t is determined as the final number of simultaneous transmissions.
  17. 一种电子设备,其特征在于,包括:An electronic device, characterized in that it comprises:
    至少一个处理器;at least one processor;
    至少一个存储计算机可执行指令的存储器,at least one memory storing computer-executable instructions,
    其中,所述计算机可执行指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行如权利要求1至8中任一项所述的方法。Wherein, the computer-executable instructions, when executed by the at least one processor, cause the at least one processor to perform the method according to any one of claims 1-8.
  18. 一种非易失性计算机可读存储介质,当所述非易失性计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至8中任一项所述的方法。A non-volatile computer-readable storage medium, when the instructions in the non-volatile computer-readable storage medium are executed by the processor of the electronic device, the electronic device can perform any one of claims 1 to 8 method described in the item.
  19. 一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现如权利要求1至8中任一项所述的方法。A computer program product, comprising computer programs/instructions, wherein the computer program/instructions implement the method according to any one of claims 1 to 8 when executed by a processor.
  20. 一种计算机程序,其特征在于,所述计算机程序包括计算机程序代码,当所述计算机程序代码在计算机上运行时,以使得计算机执行如权利要求1到8中任一项所述的方法。A computer program, characterized in that the computer program includes computer program code, and when the computer program code is run on a computer, the computer executes the method according to any one of claims 1 to 8.
PCT/CN2022/092569 2021-11-18 2022-05-12 Data packet sending method and apparatus, electronic device, and storage medium WO2023087639A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111367459.1 2021-11-18
CN202111367459.1A CN114095437B (en) 2021-11-18 2021-11-18 Method, device, electronic equipment and storage medium for transmitting data packet

Publications (1)

Publication Number Publication Date
WO2023087639A1 true WO2023087639A1 (en) 2023-05-25

Family

ID=80301514

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/092569 WO2023087639A1 (en) 2021-11-18 2022-05-12 Data packet sending method and apparatus, electronic device, and storage medium

Country Status (2)

Country Link
CN (1) CN114095437B (en)
WO (1) WO2023087639A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117014637A (en) * 2023-09-28 2023-11-07 腾讯科技(深圳)有限公司 Media data transmission control method, device, computer equipment and storage medium

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114095437B (en) * 2021-11-18 2024-04-09 北京达佳互联信息技术有限公司 Method, device, electronic equipment and storage medium for transmitting data packet
CN115086235B (en) * 2022-05-31 2024-03-26 北京达佳互联信息技术有限公司 Network congestion detection method, device, electronic equipment and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150085648A1 (en) * 2013-09-24 2015-03-26 Douglas Leith Congestion control in data networks
CN110809288A (en) * 2019-11-04 2020-02-18 腾讯科技(深圳)有限公司 Network congestion control method, device, equipment and medium
CN111683393A (en) * 2020-05-25 2020-09-18 华中科技大学 Adaptive congestion control method for dynamically adjusting gain coefficient
CN111919423A (en) * 2018-04-06 2020-11-10 华为技术有限公司 Congestion control in network communications
CN114095437A (en) * 2021-11-18 2022-02-25 北京达佳互联信息技术有限公司 Method and device for sending data packet, electronic equipment and storage medium

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102468941B (en) * 2010-11-18 2014-07-30 华为技术有限公司 Network packet loss processing method and device
CN106330761B (en) * 2015-06-30 2020-09-15 中兴通讯股份有限公司 Congestion control method and device based on queue time delay
CN111314022B (en) * 2020-02-12 2021-04-06 四川大学 Screen updating transmission method based on reinforcement learning and fountain codes
CN111970208B (en) * 2020-08-27 2024-03-05 腾讯科技(深圳)有限公司 Network transmission method, device, equipment and computer readable storage medium
CN113438181B (en) * 2021-08-26 2021-11-09 北京邮电大学 Network congestion control method and device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150085648A1 (en) * 2013-09-24 2015-03-26 Douglas Leith Congestion control in data networks
CN111919423A (en) * 2018-04-06 2020-11-10 华为技术有限公司 Congestion control in network communications
CN110809288A (en) * 2019-11-04 2020-02-18 腾讯科技(深圳)有限公司 Network congestion control method, device, equipment and medium
CN111683393A (en) * 2020-05-25 2020-09-18 华中科技大学 Adaptive congestion control method for dynamically adjusting gain coefficient
CN114095437A (en) * 2021-11-18 2022-02-25 北京达佳互联信息技术有限公司 Method and device for sending data packet, electronic equipment and storage medium

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HUANG, JUNLIN ET AL.: "BBR based congestion control algorithm for NDN", JOURNAL OF CHONGQING UNIVERSITY OF POSTS AND TELECOMMUNICATIONS (NATURAL SCIENCE EDITION), vol. 30, no. 01, 15 February 2018 (2018-02-15), XP009545571 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117014637A (en) * 2023-09-28 2023-11-07 腾讯科技(深圳)有限公司 Media data transmission control method, device, computer equipment and storage medium
CN117014637B (en) * 2023-09-28 2024-01-30 腾讯科技(深圳)有限公司 Media data transmission control method, device, computer equipment and storage medium

Also Published As

Publication number Publication date
CN114095437B (en) 2024-04-09
CN114095437A (en) 2022-02-25

Similar Documents

Publication Publication Date Title
WO2023087639A1 (en) Data packet sending method and apparatus, electronic device, and storage medium
US9626985B2 (en) Audio processing method and apparatus
US10616489B2 (en) Dynamic control of audio resources in a device with multiple displays
CN111614549B (en) Interaction processing method and device, computer equipment and storage medium
EP4000700A1 (en) Camera shot movement control method, device, apparatus, and storage medium
US9408243B2 (en) Line of sight initiated handshake
CN111510482B (en) Method and device for determining failed network request and computer storage medium
WO2021114592A1 (en) Video denoising method, device, terminal, and storage medium
WO2019129092A1 (en) Frame rate-lowered photographing method, mobile terminal and storage medium
WO2018219267A1 (en) Exposure method and device, computer-readable storage medium, and mobile terminal
WO2021179667A1 (en) Data transmission method and apparatus, storage medium, and device
CN109698794A (en) A kind of jamming control method, device, electronic equipment and storage medium
WO2019137535A1 (en) Object distance measurement method and terminal device
CN111479219B (en) Mobile communication method, device, terminal and storage medium
CN111106902B (en) Data message transmission method, device, equipment and computer readable storage medium
CN110381202B (en) Display adjustment method, mobile terminal and computer-readable storage medium
CN114339294B (en) Method, device and equipment for confirming network jitter and storage medium
WO2021143388A1 (en) Bitrate switching method and device
CN113144622A (en) Node switching method, device, equipment and computer readable storage medium
WO2024001853A1 (en) Processing method, intelligent terminal and storage medium
CN107728789B (en) Starting method of one-hand operation mode, terminal and storage medium
US20220174356A1 (en) Method for determining bandwidth, terminal, and storage medium
CN112260845B (en) Method and device for accelerating data transmission
CN110087013B (en) Video chat method, mobile terminal and computer readable storage medium
CN107613194B (en) Focusing method, mobile terminal and computer readable storage medium

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22894184

Country of ref document: EP

Kind code of ref document: A1