WO2022001175A1 - 数据包发送的方法、装置 - Google Patents
数据包发送的方法、装置 Download PDFInfo
- Publication number
- WO2022001175A1 WO2022001175A1 PCT/CN2021/080359 CN2021080359W WO2022001175A1 WO 2022001175 A1 WO2022001175 A1 WO 2022001175A1 CN 2021080359 W CN2021080359 W CN 2021080359W WO 2022001175 A1 WO2022001175 A1 WO 2022001175A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- sending
- rate
- data
- application
- queue
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 114
- 230000005540 biological transmission Effects 0.000 claims abstract description 63
- 238000012545 processing Methods 0.000 claims description 86
- 238000004891 communication Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 12
- 230000003449 preventive effect Effects 0.000 abstract 1
- 239000000872 buffer Substances 0.000 description 43
- 230000006870 function Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 12
- 230000004622 sleep time Effects 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 230000007423 decrease Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/0289—Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B5/00—Near-field transmission systems, e.g. inductive or capacitive transmission systems
- H04B5/70—Near-field transmission systems, e.g. inductive or capacitive transmission systems specially adapted for specific purposes
- H04B5/72—Near-field transmission systems, e.g. inductive or capacitive transmission systems specially adapted for specific purposes for local intradevice communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/22—Traffic shaping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/263—Rate modification at the source after receiving feedback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/0278—Traffic management, e.g. flow control or congestion control using buffer status reports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/16—Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
- H04W28/18—Negotiating wireless communication parameters
- H04W28/22—Negotiating communication rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/0231—Traffic management, e.g. flow control or congestion control based on communication conditions
- H04W28/0242—Determining whether packet losses are due to overload or to deterioration of radio communication conditions
Definitions
- the embodiments of the present application relate to the field of network transmission, and in particular, to a method for sending data packets.
- the TCP/IP (transmission control protocol/internet protocol) communication protocol is a connection-oriented, reliable, byte stream-based transport layer communication protocol.
- the TCP protocol implements congestion control by maintaining a congestion window. .
- the principle of congestion control is that when the network is not congested, the value of the congestion window is increased to send more data packets; when the network is congested, the value of the congestion window is reduced to reduce the number of data packets injected into the network. quantity.
- the core of the congestion control algorithm is to choose an effective strategy to control the change of the congestion window.
- the classical algorithm steps include: slow start, congestion avoidance, fast retransmission and fast recovery.
- the existing congestion algorithm of the TCP protocol is based on packet loss or packet round-trip time (RTT) to achieve congestion control:
- the protocol based on packet loss feedback is a passive congestion control mechanism, which makes network congestion judgment based on packet loss events in the network.
- This protocol can improve the throughput when there is no packet loss, but as the throughput increases, packet loss will inevitably occur, which in turn will reduce the throughput. Therefore, this passive congestion control will increase the network packet loss rate and also cause network jitter.
- the protocol based on RTT makes the network congestion judgment based on the round-trip delay of the data packet in the network.
- this protocol estimates the sending rate based on the RTT, due to the large jitter of the RTT, the sending rate will also be unstable; and the congestion window of the data flow with a smaller RTT increases faster than the flow with a larger RTT, occupying more of network resources, it will introduce RTT unfairness.
- the application provides a method and device for sending data packets, which are applied to the field of network transmission and solve the following problems:
- an embodiment of the present application provides a method for sending data packets of an application, which is applied to a sending node in a near field communication scenario, where the application is deployed on the sending node, and the method includes: the sending node according to a target sending rate
- the data packets of the application are sent according to the occupancy of the data transmission queue.
- the rate at which the data packets of the application are sent is proportional to the target transmission rate.
- the occupancy of the data transmission queue limits one transmission cycle. The number of packets sent within the application.
- the sending period may be set by the system according to an empirical value, for example, the sending period may be set to 5ms. It can be understood that, the sending period may also be set to other durations, which are not limited in this embodiment of the present application.
- the target sending rate and the occupancy of the data sending queue are comprehensively considered, so that the data sending queue will not be overloaded in the process of sending the data packets, thereby Reduce the packet loss rate, improve the efficiency of data transmission, and improve throughput performance.
- the sending node receives a feedback message from the receiving node, where the feedback message indicates the capability of the receiving node to process the received data packets of the application; the sending node is based on the feedback message , adjust the rate at which packets of the application are sent.
- the sending node adjusts the rate at which the data packets of the application are sent according to the ability of the receiving node to process the data packets of the application, so that the rate at which the sending node sends the data packets of the application and the processing data of the receiving node The capacity of the packet is more matched, thereby improving the efficiency of data transmission and improving the throughput performance.
- the capability of the receiving node to process the received data packets may be indicated by the data packet receiving rate of the data receiving queue of the receiving node.
- the capability of the receiving node to process the received data packets may be indicated by the packet loss status of the data receiving queue of the receiving node.
- processing rate of the application deployed by the receiving node is indicated by the processing rate of the application deployed by the receiving node, where the processing rate represents the number of data packets processed by the application per second.
- the space occupation of the processing queue of the application deployed by the receiving node is indicated by the space occupation of the processing queue of the application deployed by the receiving node. It can be understood that the space occupation of the application layer queue can be indicated by the ratio of the used space, or the size of the space such as the size of the remaining space or the size of the used space.
- the capability of the receiving node to process the received data packet may also be indicated by other parameters, which is not particularly limited in this application.
- adjusting the rate at which the data packets of the application are sent may be adjusted according to the ability of the receiving node to process the received data packets of the application indicated by the feedback message, and then the target sending rate may be adjusted according to the adjusted rate.
- the target sending rate and the current space occupancy of the data sending queue adjust the rate at which data packets of the application are sent.
- the target sending rate is adjusted to be between the target sending rate and the data packet receiving rate of the data receiving queue. minimum value.
- the target sending rate is adjusted to the target sending rate and the processing rate of the application deployed by the receiving node the smallest of the two.
- the target sending rate is adjusted to the target sending rate.
- the target sending rate can also be adjusted periodically according to the period set by the sending node.
- the target sending rate can also be adjusted in other ways, which is not particularly limited in this application.
- the feedback message is sent periodically by the receiving node, and the period is preset by the system.
- the feedback message is sent when the packet loss status of the data receiving queue of the receiving node satisfies a preset condition.
- a preset condition e.g., when the packet loss status of the data receiving queue of the receiving node is true, or when the packet loss rate reaches a preset value, or when the number of lost packets reaches a preset value, the receiving node sends a feedback message to the sending node.
- the feedback message is sent when the space occupation of the processing queue of the application deployed by the receiving node satisfies a preset condition.
- the receiving node when the space occupation of the processing queue of the application deployed by the receiving node reaches the occupancy upper limit, the receiving node sends a feedback message to the sending node.
- the receiving node when the used ratio Q of the processing queue of the application deployed by the receiving node reaches the upper limit Q1 of the ratio, the receiving node sends a feedback message to the sending node.
- the upper limit of the ratio Q1 can be preset by the system. For example, when the used ratio of the processing queue of the application deployed by the receiving node reaches 70%, the receiving node sends a feedback message to the sending node.
- the receiving node when the space occupation of the processing queue of the application deployed by the receiving node decreases from the upper limit of occupation to the lower limit of occupation, the receiving node sends a feedback message to the sending node.
- the receiving node when the used ratio Q of the processing queue of the application deployed by the receiving node decreases from the upper ratio limit Q1 to the lower ratio limit Q2, the receiving node sends a feedback message to the sending node.
- the ratio lower limit Q1 may be preset by the system. For example, when the used ratio of the processing queue of the application deployed by the receiving node reaches 30%, the receiving node sends a feedback message to the sending node.
- the sending method of the feedback message may also be that when the packet loss status of the data receiving queue of the receiving node is true, and the space occupancy of the processing queue of the application deployed by the receiving node reaches the occupancy limit, The receiving node sends a feedback message to the sending node.
- the sending manner of the feedback message may also be when the packet loss status of the data receiving queue of the receiving node is true, and the space occupation of the processing queue of the application deployed by the receiving node is reduced from the upper limit of occupation to When the lower limit is occupied, the receiving node sends a feedback message to the sending node.
- the sending manners of the feedback message can also be mixed, for example, the feedback message is sent when the above conditions are met, and is sent periodically when the above conditions are not met.
- the above conditions include that the packet loss status is true, the space occupation of the processing queue of the application reaches the upper limit of occupation, or the space occupation of the processing queue of the application decreases from the upper limit of occupation to the lower limit of occupation.
- the sending method of the feedback message may also be sent under other circumstances, which is not limited in this application.
- the application deployed on the sending node calculates, according to the target sending rate, the data packets within a sending period.
- the target number of packets sent the application determines the actual number of packets sent in the sending period according to the target number of packets sent and the remaining space of the data sending queue, where the actual number of packets sent is the target number of packets sent and the data sent The minimum of the remaining space in the queue; the application then sends data based on the actual number of packets sent.
- the transmission period may be set by the system according to an empirical value, and for example, the transmission period may be set to 5ms. It can be understood that, the sending period may also be set to other durations, which are not limited in this embodiment of the present application.
- the target sending rate and the space occupancy of the data sending queue are comprehensively considered, and then the actual number of data packets to be sent is determined, so that the data sending queue will not be overloaded during the process of sending data packets, thereby reducing the transmission process. Packet loss rate.
- the initial value of the target sending rate indicates the ability of the physical layer of the sending node to send data packets.
- the target sending rate may be obtained through physical layer information, such as obtaining the negotiated rate of the network card through the physical layer information, and calculating the target sending rate in combination with the physical layer channel information.
- the physical layer channel information includes a received signal strength indication (RSSI).
- the ability of the physical layer to send data packets can also be acquired through other physical layer information, which is not limited in this application.
- the present application provides a method for receiving data packets of an application, the method is applied to a receiving node in a near field communication scenario, the application is deployed on the receiving node, and the method includes: receiving data from a sending node packet; save the capability information of the receiving node to process the received data packet, the capability information includes at least one of the following parameters: the data packet reception rate of the data reception queue, the packet loss status of the data reception queue, the application the processing rate and the space occupation of the processing queue of the application; the receiving node sends a feedback message to the sending node, the feedback message includes the capability information, and the feedback message is used to instruct the sending node to adjust The rate at which the application sends packets.
- the receiving node sends the capability information of the node to process the received data packets to the sending node through the feedback message, so that the sending node can adjust the rate of sending data packets by the application according to the feedback message, so that the sending node can send the data packets of the application.
- the rate of the data packet is more matched with the ability of the receiving node to process data packets, thereby improving the efficiency of data transmission and improving the throughput performance.
- the feedback message is sent periodically by the receiving node, and the period is preset by the system.
- the feedback message is sent when the packet loss status of the data receiving queue of the receiving node satisfies a preset condition.
- a preset condition e.g., when the packet loss status of the data receiving queue of the receiving node is true, or when the packet loss rate reaches a preset value, or when the number of lost packets reaches a preset value, the receiving node sends a feedback message to the sending node.
- the feedback message is sent when the space occupation of the processing queue of the application deployed by the receiving node satisfies a preset condition.
- the receiving node when the space occupation of the processing queue of the application deployed by the receiving node reaches the occupancy upper limit, the receiving node sends a feedback message to the sending node.
- the receiving node when the used ratio Q of the processing queue of the application deployed by the receiving node reaches the upper limit Q1 of the ratio, the receiving node sends a feedback message to the sending node.
- the upper limit of the ratio Q1 may be preset by the system. For example, when the used ratio of the processing queue of the application deployed by the receiving node reaches 70%, the receiving node sends a feedback message to the sending node.
- the receiving node when the space occupation of the processing queue of the application deployed by the receiving node decreases from the upper limit of occupation to the lower limit of occupation, the receiving node sends a feedback message to the sending node.
- the receiving node when the used ratio Q of the processing queue of the application deployed by the receiving node decreases from the upper ratio limit Q1 to the lower ratio limit Q2, the receiving node sends a feedback message to the sending node.
- the ratio lower limit Q1 may be preset by the system. For example, when the used ratio of the processing queue of the application deployed by the receiving node reaches 30%, the receiving node sends a feedback message to the sending node.
- the sending method of the feedback message may also be that when the packet loss status of the data receiving queue of the receiving node is true, and the space occupancy of the processing queue of the application deployed by the receiving node reaches the occupancy limit, The receiving node sends a feedback message to the sending node.
- the sending manner of the feedback message may also be when the packet loss status of the data receiving queue of the receiving node is true, and the space occupation of the processing queue of the application deployed by the receiving node is reduced from the upper limit of occupation to When the lower limit is occupied, the receiving node sends a feedback message to the sending node.
- the sending manners of the feedback message can also be mixed, for example, the feedback message is sent when the above conditions are met, and is sent periodically when the above conditions are not met.
- the above conditions include that the packet loss status is true, the space occupation of the processing queue of the application reaches the upper limit of occupation, or the space occupation of the processing queue of the application decreases from the upper limit of occupation to the lower limit of occupation.
- the sending method of the feedback message may also be sent under other circumstances, which is not limited in this application.
- an embodiment of the present application provides an apparatus for sending a data packet of an application, where the apparatus has the function of implementing the method of the first aspect or any possible implementation manner of the first aspect.
- This function can be implemented by hardware or by executing corresponding software by hardware.
- the hardware or software includes one or more modules corresponding to the above functions.
- an embodiment of the present application provides an apparatus for receiving a data packet of an application, where the apparatus has the function of implementing the method of the second aspect or any possible implementation manner of the second aspect.
- This function can be implemented by hardware or by executing corresponding software by hardware.
- the hardware or software includes one or more modules corresponding to the above functions.
- an embodiment of the present application provides a computer device, including a memory and one or more processors, wherein the memory is used to store a program; and one or more processors are used to execute the program in the memory,
- the computer device is caused to execute the method of the first aspect or any possible implementation manner of the first aspect in the embodiments of the present application. wherein the one or more processors and the memory may be coupled together.
- an embodiment of the present application provides a computer device, including a memory and one or more processors, wherein the memory is used to store a program; one or more processors are used to execute the program in the memory, The computer device is caused to execute the method of the second aspect or any possible implementation manner of the second aspect of the embodiments of the present application.
- the one or more processors and the memory may be coupled together.
- an embodiment of the present application provides a data transmission system, including the aforementioned sending node and the aforementioned receiving node.
- embodiments of the present application provide a computer-readable storage medium, where instructions are stored in the computer-readable storage medium, and when the instructions are executed on a computer, the computer can execute the first aspect or any of the first aspects.
- the embodiments of the present application provide a computer program or computer program product that, when the computer program or computer program product runs on a computer, enables the computer to execute the first aspect or any of the possible implementations of the first aspect.
- a computer can execute the method of the second aspect or any possible implementation manner of the second aspect.
- an embodiment of the present application provides a chip, the chip includes at least one processor and at least one interface circuit, the interface circuit is coupled to the processor, and the at least one interface circuit is configured to perform a transceiving function and send an instruction to At least one processor, at least one processor is used to run a computer program or instruction, which has the function of implementing the method as described above in the first aspect or any possible implementation manner of the first aspect, or has the function of implementing the method as described above in the second aspect or the second aspect
- the function of a method of any possible implementation The function may be implemented by hardware, software, or a combination of hardware and software, where the hardware or software includes one or more modules corresponding to the above functions.
- the interface circuit is used to communicate with other modules outside the chip.
- FIG. 1 is a schematic diagram of a typical application scenario provided by an embodiment of the present application
- FIG. 2 is a schematic diagram of a protocol stack and caches of various layers during data transmission and reception provided by an embodiment of the present application;
- FIG. 3 is a schematic flowchart of a method for sending a data packet of an application provided by an embodiment of the present application
- FIG. 4 is a schematic diagram of the remaining space of the device packet sending queue provided by the embodiment of the present application that the number of target packets sent is less than that of the device;
- FIG. 5 is a schematic diagram of the remaining space of the device packet sending queue provided by the embodiment of the present application that the number of target packets sent is greater than or equal to;
- FIG. 6 is a schematic diagram of the content of a feedback message provided by an embodiment of the present application.
- FIG. 8 is a schematic diagram of the logical structure of an apparatus for sending data packets of an application provided by the present application
- FIG. 9 is a schematic diagram of a logical structure of an apparatus for receiving data packets of an application provided by the present application.
- the network architecture and service scenarios described in the embodiments of the present invention are for the purpose of illustrating the technical solutions of the embodiments of the present invention more clearly, and do not constitute a limitation on the technical solutions provided by the embodiments of the present invention.
- the evolution of the architecture and the emergence of new business scenarios, the technical solutions provided by the embodiments of the present invention are also applicable to similar technical problems.
- plural means two or more.
- the term “and/or” or the character “/” in this application is only an association relationship to describe associated objects, indicating that there can be three relationships, for example, A and/or B, or A/B, which can indicate: There are three cases where A exists alone, A and B exist at the same time, and B exists alone.
- Kernel packet receiving queue The receiving node drives the kernel receiving queue on the CPU side of the protocol stack, such as the softnet_data (per-cpu) queue of the Linux system.
- the kernel packet receiving queue is one of the data receiving queues described above.
- Device packet sending queue The device sending queue from the CPU side of the sending node protocol stack to the driver side, such as the qdisc device sending queue of the Linux system.
- the device packet sending queue is one of the data sending queues described above.
- Application processing queue The queue used by applications to store received packets from the kernel, including but not limited to socket buffers and application storage queues.
- the application processing queue is the processing queue of the application described above.
- a typical scenario involved in this application is a scenario in which the throughput performance bottleneck is at an end node, such as P2P (peer-to-peer) or D2D in a near field communication scenario.
- D2D can support short-range point-to-point or point-to-multipoint communication between two or more devices.
- Typical D2D devices include Bluetooth, WiFi-Direct, etc.
- FIG. 1 a schematic diagram of a typical application scenario provided by an embodiment of the present application, in which UE1 (user equipment, user equipment) performs data transmission with UE2 based on a transmission protocol, for example, cell phone cloning, or files, pictures, or videos. transmission, etc.
- TCP Transmission Control Protocol
- Transmission Control Protocol Transmission Control Protocol
- the window-based transmission mechanism, congestion control, timeout retransmission and other mechanisms introduced by TCP to ensure the reliability of data transmission will greatly limit the transmission rate of data and reduce link utilization.
- the purpose of this application is to design a set of data packet transmission methods for the scenario where the throughput performance bottleneck is at the end node, so as to achieve high throughput transmission performance with very little packet loss.
- TCP/IP Internet Protocol
- TCP/IP reference model is an abstract layered model, which is usually also Commonly known as the TCP/IP protocol stack, in this model, all network protocols are classified into five abstract "layers": physical layer, link layer, network layer, transport layer and application layer. The definitions of are all in the prior art, and are not repeated in this embodiment of the present invention.
- the present application can also be applied to a data transmission system in which there is little or no packet loss in the network, and an intermediate device in the network does not become a bottleneck.
- execution body of the present application may be an operating system, a kernel, or an application program.
- the user equipment UE involved in this application may include various handheld devices, in-vehicle devices, wearable devices, and computing devices with communication functions such as PCs (personal computers), smart phones, notebook computers, tablet computers, and DCs (digital cameras). And various forms of user equipment (User Equipment, referred to as UE), mobile station (Mobile station, referred to as MS), terminal (terminal), terminal equipment (Terminal Equipment) and so on.
- UE User Equipment
- MS mobile station
- terminal terminal
- Terminal Equipment Terminal Equipment
- FIG. 2 it is a schematic diagram of the protocol stack and the buffering of each layer when data is sent and received.
- the sending node and the receiving node can be independent physical devices or virtual machines.
- the sending node may be a user equipment
- the receiving node may be a server.
- the roles of the user equipment and the server can also be interchanged, that is, the server acts as a sending node, and the user equipment acts as a receiving node.
- the sending node and the receiving node may also be both user equipments, or both servers, which are not particularly limited in the present invention.
- a public network, a private network, the Internet, a portion of a local area network, and/or any combination thereof may be included between the sending node and the receiving node.
- the embodiment of the present invention mainly optimizes the transmission of data packets on the sending node and the receiving node to reduce the packet loss rate and improve the data transmission rate, regardless of the network type between the sending node and the receiving node .
- Figure 2 does not show the network between the sending node and the receiving node. It can be understood that different devices transmit data through wired or wireless networks, for example, between different UEs through wireless networks (such as Wi-Fi networks, cellular networks), or between servers through wired or wireless data transmission. In any scenario, the methods provided by the embodiments of the present invention can be used.
- the sending node and the receiving node respectively include protocol stacks. Applications can transfer data based on the protocol stack. Among other things, the functions of the protocol stack may be performed by a suitable combination of software, hardware and/or firmware. In addition, those skilled in the art can understand that the sending node and the receiving node may include fewer or more components than those shown in FIG. 2 , which only shows the difference between the multiple implementations disclosed in the embodiments of the present invention. more relevant parts.
- Application layer provides services for the user's application process.
- Socket buffer Each TCP Socket has a send buffer and a receive buffer in the kernel.
- the send buffer send socket buffer
- the kernel will send the data of the socket send buffer to the receiver's Socket receive buffer.
- the receive buffer receive socket buffer
- the application calls the read function
- the data is copied from the receiver's socket receive buffer to the application buffer. If the application has not called the read function, the data will always be buffered in the corresponding socket receive buffer.
- TCP/IP protocol stack defines some protocols and port numbers for transmitting data, as well as providing connection and routing between two host systems in a network located in different geographical locations. The process of sending and receiving data packets is implemented in the TCP/IP protocol stack of the kernel.
- Device sending queue The data sending queue from the CPU side of the sending node TCP/IP protocol stack to the driver side, such as the queue discipline (qdisc) device sending queue of the Linux system.
- queue discipline qdisc
- Driver/NIC It mainly defines the physical device standards, such as the interface type of the network cable, the interface type of the optical fiber, the transmission rate of various transmission media, etc.
- a ring buffer is a first-in, first-out circular buffer that provides mutually exclusive access to the buffer to the communicating program.
- TX Ring Buf sending ring buffer
- RX Ring Buf receiving ring buffer
- the TX Ring Buf is used to transfer data packets from memory to direct memory access (Direct Memory Access, DMA) to the buffer on the network card
- DMA Direct Memory Access
- RX Ring Buf is used to copy from the buffer on the network card to the memory by DMA.
- Kernel receiving queue The receiving node drives the data receiving queue on the CPU side of the TCP/IP protocol stack, such as the softnet_data (per-cpu) queue of the Linux system.
- the application program creates data and copies it into the socket send buffer. If the buffer has no memory available, the system call returns failure or blocks. Therefore, the flow of data from the application to the kernel is limited by the socket buffer size.
- the TCP protocol stack creates and sends data packets, and sends them to the network interface controller (NIC) driver through the data transmission queue qdisc.
- NIC network interface controller
- the ring transmit buffer (TX ring buffer) is located between the NIC driver and the NIC, and the Tx ring buffer can be considered as a transmit request queue. If the Tx ring buffer is full and the NIC driver cannot send a send request, the data packets to be sent will be accumulated in the qdisc between the TCP/IP protocol stack and the NIC driver. The packet will be dropped directly.
- the NIC stores the data packets to be sent in its own buffer, and the rate at which the data packets are sent is mainly determined by the physical speed of the NIC.
- the data packets received by the receiving node will be sent to the upper layer by the NIC, in which the Rx ring buffer between the NIC and the NIC driver can be used as a buffer, and the NIC driver will take out the request for the received data packet from the Rx ring , sent to the upper layer, the driver can hang the data packet to the kernel data receiving queue, and the kernel system will fetch it.
- the data part of the network packet will be uploaded and cached in the receiving buffer of the socket, and the application will then receive the data from the socket. The data is read into the application buffer from the buffer, and then the data packet is processed.
- the application when the application itself may not have a buffer, the application directly reads data from the socket receive buffer, and then processes the data packet.
- the processing queue of the application at this time is the receive buffer of the socket. This scenario is not shown in Figure 2, but is also a possible scenario in packet transmission.
- the method for sending application data packets according to the embodiment of the present application is described below. As shown in FIG. 3 , the method mainly includes the following steps:
- Step S301 The sending node sends the data packet of the application according to the target sending rate and the occupancy of the data sending queue.
- Step S302 The sending node receives a feedback message from the receiving node, where the feedback message indicates the capability of the receiving node to process the received data packets of the application.
- Step S303 The sending node adjusts the rate of sending the data packets of the application based on the feedback message.
- Step S304 Determine whether the transmission of the data packet is completed:
- the target sending rate, the occupancy of the data sending queue, and the ability of the receiving node to process the received application data packets are comprehensively considered to actively adjust the data packets.
- the rate of sending application data packets may also be adjusted only according to the target sending rate and the occupancy of the data sending queue.
- the receiving node may or may not send feedback messages.
- step S301 the sending node sends the data packet of the application according to the target sending rate and the occupancy of the data sending queue:
- the sending node obtains the negotiation rate V nego of the network card from the network card;
- the negotiation rate of the network card changes with the change of the network state, and the rate obtained here is the rate corresponding to the time of acquisition.
- RSSI Received Signal Strength Indication
- p is the proportional coefficient calculated according to the physical layer channel information such as Received Signal Strength Indication (RSSI), etc.
- RSSI is the received signal strength indication, an optional part of the wireless transmission layer, used to determine the link quality and whether to increase Broadcast transmission strength.
- RSSI is the information obtained from the network card.
- Table 1 the corresponding relationship between RSSI and p can be as shown in Table 1. When RSSI is greater than (-50dB), p can be 1; when RSSI is less than (-50dB) and RSSI is greater than (-60dB) , p can take a value of 0.9, and so on.
- the value relationship between the RSSI and the proportional coefficient p may also be other corresponding relationships, which are not limited in this embodiment of the present application.
- the sending node calculates the target number of packets sent according to the target sending rate V and the sending period T:
- the sending period is set by the system according to an empirical value.
- the sending period T may be set to 5 ms, or may be set to other durations, which are not limited in this embodiment of the present application.
- the sending period T can be set during the data packet sending process, which is a relatively common way to actively limit the sending rate.
- the purpose of actively limiting the sending rate can also be achieved in other ways, which is not limited in this application.
- the sending node obtains the occupancy status of the data sending queue.
- the total length is N and the remaining space length is N c .
- the queue is not overloaded to send data packets to prevent packet loss in the data receiving queue. It can be understood that, r may also be set to other values, which are not limited in this embodiment of the present application.
- the following two examples will be used to illustrate the calculation method of the sleep time. That is, according to the usage of the device's packet sending queue, it can be divided into two situations:
- T 2 T-T 1 ;
- T 1 the time consumed to send N tx data packets
- the data packet transmission of the current cycle T is exited, and the data packet is continued to be sent in the next transmission cycle.
- N tx the device's packet sending queue will continue to be filled;
- the setting of the proportional coefficient is to prevent the qdisc device's packet sending queue from being idle but still in a dormant state and unable to send packets, resulting in a waste of resources. It can be understood that, q may also be set to other values, which are not limited in this embodiment of the present application.
- the reasonable setting of the sleep time is to control the number of packets sent so that the packet sending queue of the device will not be overloaded, thereby reducing the packet loss rate during the sending process; it can also prevent the waste of resources due to the fact that the sending queue is idle but cannot send data packets because it is still in the dormant state. .
- step S302 the sending node receives a feedback message from the receiving node, where the feedback message indicates the capability of the receiving node to process the received data packets of the application.
- the receiving node monitors the dynamic changes of the kernel packet receiving queue and the application processing queue and feeds back the receiving status.
- the receiving node calculates the data packet receiving rate V nr according to the number of packets received per unit time in the kernel packet receiving queue, which can be calculated in the following ways:
- the interval time between T 2 and T 1 can be set to 200ms; it is understandable that the interval time between T 2 and T 1 Other values may also be set, which are not limited in this embodiment of the present application. It can be understood that, the calculation method of the data packet reception rate may also be calculated by other methods, which is not limited in this embodiment of the present application.
- This embodiment of the present application does not limit the setting standard of the packet loss state.
- the processing rate V ap of the application that is, the number of data packets processed by the application per unit time.
- the application can count the number of processed data packets and the time used to process these data packets, and then calculate V according to the number/time. ap ; It can be understood that the processing rate of the application may also be calculated in other ways, which is not limited in the embodiment of the present application.
- the receiving node sends a feedback message to the sending node, wherein the feedback message may include information such as V nr and S drop recorded in the kernel packet receiving queue, and V ap and/or Q recorded in the application processing queue.
- An example feedback message is shown in FIG. 6 . It can be understood that the feedback message in this embodiment of the present application is not limited to the content and format shown in FIG. 6 , and may also include various formats and protocol content that the receiving node notifies the sending node.
- Ways to send feedback messages include:
- the receiving node periodically sends feedback messages to the sending node
- the period for sending the feedback message may be set to 200ms, and it can be understood that the period for sending the feedback message may also be set to other values, which is not limited in this embodiment of the present application;
- the receiving node When the receiving node detects that the utilization ratio Q of the application processing queue has risen to Q1 or Q has dropped from Q1 to Q2, it sends a feedback message to the sending node;
- Q1 and Q2 respectively represent the usage ratio of the application queue
- Q1 and Q2 are set according to the empirical value during system initialization; for example, Q1 can be set to 70%, and Q2 can be set to 30%. That is, when the application processing queue is used to 70%, the receiving node sends a feedback message to the sending node; or when the usage ratio of the application processing queue drops from 70% to 30%, the receiving node sends a feedback message to the sending node.
- the receiving node sends a feedback message to the sending node.
- the receiving node sends a feedback message to the sending node.
- step S303 the sending node adjusts the rate of sending the data packets of the application based on the feedback message.
- the sending node adjusts the target sending rate according to the ability of the receiving node to process the received data packets of the application indicated by the feedback message:
- the sending node can determine the target sending rate according to the physical layer information at the time of receiving the feedback message, and the sending node can also periodically adjust the target sending rate, such as periodically negotiating the rate and RSSI according to the network card of the physical layer. Calculation.
- Q 1 represents the usage ratio of the application processing queue. For example, when the queue ratio reaches Q 1 (such as 70%), flow control should be enabled to send at the application processing rate V ap . When the queue ratio drops to Q 2 (such as 30%) ), the target sending rate is not affected by the application processing rate.
- Q 1 such as 70%
- Q 2 such as 30%
- the values of Q1 and Q2 here are only examples, and can also be set to other values in the actual application process.
- the space occupancy of the application processing queue can also be judged by the size of the space, such as the size of the used space or the size of the remaining space, and then the target sending rate can be adjusted.
- the sending node when the sending node sends application data packets, the target sending rate and the occupancy of the data sending queue are comprehensively considered, so that the data sending queue will not be overloaded in the process of sending data packets, thereby reducing packet loss
- the sending node adjusts the rate at which the data packets of the application are sent according to the ability of the receiving node to process the data packets of the application received, so that the rate at which the sending node sends the data packets of the application is equal to the ability of the receiving node to process the data packets. More matching, thereby improving the efficiency of data transmission and improving throughput performance.
- the existing TCP congestion control algorithm BBR controls the transmission of data packets according to the RTT round-trip delay, which may easily lead to relatively large jitter in the transmission rate and cannot give full play to the link transmission performance.
- the existing BBR technology only considers the delay of intermediate nodes in network transmission when sending data packets, and does not consider the space occupancy of buffer queues at various layers on terminals such as mobile phones, which is prone to queue loss. Bag.
- the ability of the physical layer of the sending node to send data packets, the data packet receiving rate of the data receiving queue of the receiving node, the packet loss status of the data receiving queue of the receiving node, and the application deployed by the receiving node are comprehensively considered.
- the target sending rate is adjusted by the processing rate or the space occupancy of the processing queue of the application deployed by the receiving node, and then the data packets sent by the application are adjusted according to the adjusted target sending rate and the current space occupancy of the data sending queue. This can reduce packet loss in buffer queues at various layers on the terminal and maximize network transmission performance.
- Fig. 7 shows the comparison of the effect of sending data packets using the TCP congestion control algorithm BBR for application and using the method for sending data packets for applications provided by the embodiments of the present application.
- the average sending rate is 38.8MB/s when using the technology, but when the solution provided by the embodiment of the present application is used, the average sending rate is 53.3MB/s. It can be seen that the technology for sending application data packets according to the embodiment of the present application can improve the data transmission rate.
- FIG. 8 is a schematic diagram of a logical structure of an apparatus for sending application data packets provided by the present application.
- the apparatus 800 for sending application data packets includes a sending module 810 , a receiving module 820 and an adjusting module 830 . in,
- the sending module 810 is configured to send the data packets of the application according to the target sending rate and the occupancy of the data sending queue, and the rate of sending the data packets of the application is proportional to the target sending rate, and the data sending queue occupancy limits the number of packets sent by the application. ; Described sending module is specifically used for calculating the number of target sending packets in a sending period according to the target sending rate; According to the number of target sending packets and the remaining space of the data sending queue, determine the actual sending packets in the sending period Quantity; data is sent based on the actual number of packets sent.
- the receiving module 820 is configured to receive a feedback message from the receiving node, where the feedback message indicates the capability of the receiving node to process the received data packets of the application; the data packet receiving rate of the data receiving queue of the receiving node , the packet loss status of the data receiving queue of the receiving node, the processing rate of the application deployed by the receiving node, and the space occupancy of the processing queue of the application deployed by the receiving node. It is used to receive data packets from the device driver layer.
- the sending mode of the feedback message is at least one of the following modes: periodic sending; sending when the packet loss status of the data receiving queue of the receiving node meets a preset condition; and when the receiving node deploys Sent when the space occupation of the processing queue of the application satisfies a preset condition.
- the adjustment module 830 is configured to adjust the rate of sending the data packets of the application based on the feedback message.
- the adjustment module 830 is specifically configured to adjust the target sending rate according to the ability of the receiving node to process the received data packets of the application indicated by the feedback message, and then adjust the target sending rate according to the adjusted target sending rate and the The current space occupancy of the data sending queue adjusts the rate at which data packets of the application are sent.
- the adjustment module 830 is specifically configured to adjust the target sending rate to be the same as the target sending rate and the data packet receiving rate of the data receiving queue when the packet loss status of the data receiving queue of the receiving node is true.
- the target sending rate is adjusted to the target sending rate and all the The minimum value between the two processing rates of the application; when the packet loss status of the data receiving queue of the receiving node is true, and the space occupancy of the processing queue of the application deployed by the receiving node reaches the upper limit of occupancy , adjusting the target sending rate to the minimum value among the target sending rate, the data packet receiving rate of the data receiving queue, and the processing rate of the application deployed by the receiving node.
- the apparatus 800 for sending application data packets may also only include a sending module.
- the embodiment of the present application considers a scenario in which the receiving node sends a feedback message, and therefore also includes a receiving module and an adjusting module. In a scenario where the receiving node does not send a feedback message, the device will only include a sending module.
- FIG. 9 is a schematic diagram of a logical structure of an apparatus for receiving data packets of an application provided by the present application.
- the apparatus 900 for sending application data packets includes a receiving module 910 , a saving module 920 and a sending module 930 . in,
- the receiving module 910 is used for receiving data packets from the sending node.
- the saving module 920 is configured to save capability information when receiving data packets, and the capability information includes at least one of the following parameters: the data packet reception rate of the data reception queue, the packet loss status of the data reception queue, and the processing rate of the application and the space occupancy of the processing queue of the application.
- the sending module 930 is configured to send a feedback message to the sending node, where the feedback message includes the capability information, and the feedback message is used to instruct the sending node to adjust the rate at which the application sends data packets.
- the sending method of the feedback message is at least one of the following methods: sending periodically; sending when the packet loss status of the data receiving queue satisfies a preset condition; and when the space occupation of the processing queue of the application meets the requirements Sent on preset conditions.
- present application also provides storage media, computer program products, computer programs, etc. related to the solutions provided by the present application.
- storage media computer program products, computer programs, etc. related to the solutions provided by the present application.
- the computer program product includes one or more computer instructions.
- the computer may be a general purpose computer, special purpose computer, computer network, or other programmable device.
- the computer instructions may be stored in or transmitted from one computer readable storage medium to another computer readable storage medium, for example, the computer instructions may be downloaded from a website site, computer, server or data center Transmission to another website site, computer, server, or data center is by wire (eg, coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (eg, infrared, wireless, microwave, etc.).
- wire eg, coaxial cable, fiber optic, digital subscriber line (DSL)
- wireless eg, infrared, wireless, microwave, etc.
- the computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. that includes an integration of one or more available media.
- the usable media may be magnetic media (eg, floppy disks, hard disks, magnetic tapes), optical media (eg, DVD), or semiconductor media (eg, Solid State Disk (SSD)), and the like.
- the apparatus embodiments described above are only illustrative, for example, the division of modules is only a division of logical functions.
- the units described therein as separate components may or may not be physically separate. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution in this embodiment.
- the modules may be communicatively connected through one or more communication buses or signal lines. Those of ordinary skill in the art can understand and implement it without creative effort.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请提供一种数据包发送的方法,该方法包括:发送节点根据目标发送速率和数据发送队列的被占用情况发送应用的数据包,其中,所述发送所述应用的数据包的速率与所述目标发送速率成正比,所述数据发送队列的被占用情况限制了所述应用的数据包的发送数量。所述方法还包括发送节点接收来自接收节点的反馈消息,该反馈消息指示所述接收节点处理接收到的所述应用的数据包的能力;发送节点基于反馈消息,调整发送所述应用的数据包的速率。该方法采用主动预防式控制发送数据包速率,在发送节点发送数据包之前,确定发送应用的数据包的速率,解决了数据包发送过程中端节点成为网络传输瓶颈的问题,降低了丢包率,提升了吞吐量性能。
Description
本申请实施例涉及网络传输领域,尤其是涉及一种数据包发送的方法。
TCP/IP(transmission control protocol/internet protocol,传输控制/因特网互联协议)通信协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,TCP协议通过维护拥塞窗口来实现拥塞控制。拥塞控制的原则是,当网络未出现拥塞时,增大拥塞窗口值,把更多的数据包发送出去;当网络出现拥塞时,则减小拥塞窗口值,以减少注入到网络中的数据包数量。拥塞控制算法的核心是选择一个有效的策略来控制拥塞窗口的变化。在TCP拥塞控制中,经典算法步骤包括:慢启动,拥塞避免,快速重传和快速恢复。TCP协议现有拥塞算法是基于丢包或包往返时延(round-trip time,RTT)来实现拥塞控制:
基于丢包反馈的协议,是一种被动式的拥塞控制机制,它根据网络中的丢包事件来做出网络拥塞判断。这种协议在不丢包时可以提高吞吐量,但随着吞吐量提升必然会出现丢包,进而又会降低吞吐量,所以这种被动式拥塞控制会加大网络丢包率,同时也造成了网络的抖动。
基于RTT的协议,是根据数据包在网络中的往返时延做出网络拥塞判断。这种协议在根据RTT估算发送速率时,由于RTT的抖动较大,也会导致发送速率不稳定;而且拥有较小RTT的数据流的拥塞窗口增加速率快于较大RTT的流,占据更多的网络资源,会引入RTT不公平性。
随着WIFI-Direct技术以及第五代移动通信技术(5th-generation,5G)设备到设备(device-to-device,D2D)技术的发展普及,近场通信场景下高吞吐量传输的性能要求越来越高,现有的TCP协议拥塞控制机制并不能够达到最佳性能。因此,需要设计一种数据包发送方法,实现在极少丢包的前提下实现高吞吐传输性能。
发明内容
本申请提供了一种数据包发送的方法和装置,应用于网络传输领域,解决如下问题:
在近场通信场景下,如何减少丢包、提升吞吐量性能。
第一方面,本申请实施例提供一种发送应用的数据包的方法,应用于近场通信场景下的发送节点,所述应用部署于发送节点,该方法包括:所述发送节点根据目标发送速率和数据发送队列的被占用情况发送所述应用的数据包,所述发送所述应用的数据包的速率与所述目标发送速率成正比,所述数据发送队列的被占用情况限制了一个发送周期内所述应用的数据包的发送数量。
其中,发送周期可以由***根据经验值设置,示例性的,发送周期可以设置为5ms。可以理解的是,发送周期也可以设置为其他时长,本申请实施例不限制。
在本申请的上述实施例中,在发送节点发送应用的数据包时,综合考虑目标发送速率和数据发送队列的被占用情况,使得在发送数据包过程中数据发送队列不会超负荷使用,从而降低丢包率,提高数据传输的效率、提高吞吐量性能。
在一种可能的实现方式中,发送节点接收来自接收节点的反馈消息,所述反馈消息指示 所述接收节点处理接收到的所述应用的数据包的能力;所述发送节点基于所述反馈消息,调整发送所述应用的数据包的速率。在这种实现方式中,发送节点根据接收节点处理接收到的应用的数据包的能力来调整发送所述应用的数据包的速率,使得发送节点发送应用的数据包的速率和接收节点的处理数据包的能力的更匹配,从而提高数据传输的效率、提高吞吐量性能。
在一种可能的实现方式中,接收节点处理接收到的数据包的能力可以通过接收节点的数据接收队列的数据包接收速率来指示。
在一种可能的实现方式中,接收节点处理接收到的数据包的能力可以通过接收节点的数据接收队列的丢包状态来指示。
在一种可能的实现方式中,接收节点部署的应用的处理速率来指示,该处理速率表示应用程序每秒处理的数据包数量。
在一种可能的实现方式中,接收节点部署的所述应用的处理队列的空间占用情况来指示。可以理解的是,应用层队列的空间占用情况可以通过已使用空间的比例,或者空间大小比如剩余空间大小或者已使用空间大小来指示。
可以理解的是,接收节点处理接收到的数据包的能力还可以通过其他参数来指示,本申请不做特别限制。
在一种可能的实现方式中,调整发送所述应用的数据包的速率可以根据反馈消息指示的接收节点处理接收到的所述应用的数据包的能力,调整目标发送速率,进而根据调整后的目标发送速率和数据发送队列当前的空间占用情况调整发送所述应用的数据包的速率。
具体的,在一种可能的实现方式中,当接收节点的数据接收队列的丢包状态为真时,将目标发送速率调整为目标发送速率和数据接收队列的数据包接收速率两者之中的最小值。
在另一种可能的实现方式中,当接收节点部署的所述应用的处理队列的空间占用情况达到占用上限时,将目标发送速率调整为目标发送速率和接收节点部署的所述应用的处理速率两者之中的最小值。
在另一种可能的实现方式中,当接收节点的数据接收队列的丢包状态为真,并且接收节点部署的应用的处理队列的空间占用情况达到占用上限时,将目标发送速率调整为目标发送速率、数据接收队列的数据包接收速率和接收节点部署的所述应用的处理速率三者之中的最小值。
可以理解的是,目标发送速率也可以根据发送节点设置的周期进行周期性调整。目标发送速率还可以通过其他方式来调整,本申请不做特别限制。
在一种可能的实现方式中,反馈消息的发送方式为接收节点周期性发送,所述周期由***预设。
在另一种可能的实现方式中,反馈消息的发送方式为当接收节点的数据接收队列的丢包状态满足预设条件时发送。示例性的,当接收节点的数据接收队列的丢包状态为真时,或者丢包率达到预设的值时,或者丢包数量达到预设的值时,接收节点发送反馈消息给发送节点。
在另一种可能的实现方式中,反馈消息的发送方式为当接收节点部署的应用的处理队列的空间占用情况满足预设条件时发送。
具体的,在这种方式下,在一种可能的实现方式中,当接收节点部署的应用的处理队列的空间占用达到占用上限时,接收节点发送反馈消息给发送节点。示例性的,当接收节点部署的应用的处理队列的已使用比例Q达到比例上限Q1时,接收节点发送反馈消息给发送节点。其中,比例上限Q1可以由***预设,例如,当接收节点部署的应用的处理队列的已使用比例 达到70%时,接收节点发送反馈消息给发送节点。在另一种可能的实现方式中,当接收节点部署的应用的处理队列的空间占用从占用上限下降到占用下限时,接收节点发送反馈消息给发送节点。示例性的,当接收节点部署的应用的处理队列的已使用比例Q从比例上限Q1下降到比例下限Q2时,接收节点发送反馈消息给发送节点。其中,比例下限Q1可以由***预设,例如,当接收节点部署的应用的处理队列的已使用比例达到30%时,接收节点发送反馈消息给发送节点。
在另一种可能的实现方式中,反馈消息的发送方式也可以为当接收节点的数据接收队列的丢包状态为真,并且接收节点部署的应用的处理队列的空间占用情况达到占用上限时,接收节点向发送节点发送反馈消息。
在另一种可能的实现方式中,反馈消息的发送方式也可以为当接收节点的数据接收队列的丢包状态为真,并且接收节点部署的应用的处理队列的空间占用情况从占用上限下降到占用下限时,接收节点向发送节点发送反馈消息。
可以理解的是,反馈消息的发送方式也可以混合使用,比如,当满足上述条件时发送反馈消息,当不满足上述条件时,则周期性发送。其中,上述条件包括丢包状态为真、应用的处理队列的空间占用达到占用上限或者应用的处理队列的空间占用从占用上限下降到占用下限。反馈消息的发送方式也可以在其他情况下发送,本申请不进行限制。
在一种可能的实现方式中,发送节点根据目标发送速率和数据发送队列空间占用情况发送所述应用的数据包前,部署在发送节点的应用根据所述目标发送速率计算在一个发送周期内的目标发包数量,应用根据所述目标发包数量和所述数据发送队列的剩余空间,确定所述发送周期内的实际发包数量,其中,所述实际发包数量为所述目标发包数量和所述数据发送队列的剩余空间两者之中的最小值;然后,应用基于实际发包数量发送数据。发送周期可以由***根据经验值设置,示例性的,发送周期可以设置为5ms。可以理解的是,发送周期也可以设置为其他时长,本申请实施例不限制。
需要说明的是,当数据发送队列没有剩余空间时,则在相应的发送周期内不发送数据包。
在应用发送数据包前综合考虑目标发送速率和数据发送队列空间占用情况,再确定待发送的实际数据包数量,使得在发送数据包过程中数据发送队列不会超负荷使用,从而降低发送过程的丢包率。
在一种可能的实现方式中,目标发送速率的初始值指示发送节点的物理层发送数据包的能力。示例性的,目标发送速率可以通过物理层信息获取,比如通过物理层信息获取到网卡协商速率,并结合物理层信道信息计算目标发送速率。其中,物理层信道信息包括接收信号的强度指示(received signal strength indication,RSSI)。
可以理解的是,物理层发送数据包的能力还可以通过其他物理层信息获取到,本申请不进行限制。
第二方面,本申请提供一种接收应用的数据包的方法,该方法应用于近场通信场景下的接收节点,所述应用部署于所述接收节点,该方法包括:接收来自发送节点的数据包;保存所述接收节点处理接收到的数据包的能力信息,所述能力信息包括以下参数中的至少一种:数据接收队列的数据包接收速率、数据接收队列的丢包状态、所述应用的处理速率和所述应用的处理队列的空间占用情况;所述接收节点向所述发送节点发送反馈消息,所述反馈消息包含所述能力信息,所述反馈消息用于指示所述发送节点调整所述应用发送数据包的速率。
通过该方法,接收节点将本节点处理接收到的数据包的能力信息通过反馈消息发送给发送节点,使得发送节点可以根据反馈消息调整应用发送数据包的速率,从而使得发送节点发送应用的数据包的速率和接收节点的处理数据包的能力的更匹配,从而提高数据传输的效率、提高吞吐量性能。
在一种可能的实现方式中,反馈消息的发送方式为接收节点周期性发送,所述周期由***预设。
在另一种可能的实现方式中,反馈消息的发送方式为当接收节点的数据接收队列的丢包状态满足预设条件时发送。示例性的,当接收节点的数据接收队列的丢包状态为真时,或者丢包率达到预设的值时,或者丢包数量达到预设的值时,接收节点发送反馈消息给发送节点。
在另一种可能的实现方式中,反馈消息的发送方式为当接收节点部署的应用的处理队列的空间占用情况满足预设条件时发送。
具体的,在这种方式下,在一种可能的实现方式中,当接收节点部署的应用的处理队列的空间占用达到占用上限时,接收节点发送反馈消息给发送节点。示例性的,当接收节点部署的应用的处理队列的已使用比例Q达到比例上限Q1时,接收节点发送反馈消息给发送节点。其中,比例上限Q1可以由***预设,例如,当接收节点部署的应用的处理队列的已使用比例达到70%时,接收节点发送反馈消息给发送节点。在另一种可能的实现方式中,当接收节点部署的应用的处理队列的空间占用从占用上限下降到占用下限时,接收节点发送反馈消息给发送节点。示例性的,当接收节点部署的应用的处理队列的已使用比例Q从比例上限Q1下降到比例下限Q2时,接收节点发送反馈消息给发送节点。其中,比例下限Q1可以由***预设,例如,当接收节点部署的应用的处理队列的已使用比例达到30%时,接收节点发送反馈消息给发送节点。
在另一种可能的实现方式中,反馈消息的发送方式也可以为当接收节点的数据接收队列的丢包状态为真,并且接收节点部署的应用的处理队列的空间占用情况达到占用上限时,接收节点向发送节点发送反馈消息。
在另一种可能的实现方式中,反馈消息的发送方式也可以为当接收节点的数据接收队列的丢包状态为真,并且接收节点部署的应用的处理队列的空间占用情况从占用上限下降到占用下限时,接收节点向发送节点发送反馈消息。
可以理解的是,反馈消息的发送方式也可以混合使用,比如,当满足上述条件时发送反馈消息,当不满足上述条件时,则周期性发送。其中,上述条件包括丢包状态为真、应用的处理队列的空间占用达到占用上限或者应用的处理队列的空间占用从占用上限下降到占用下限。反馈消息的发送方式也可以在其他情况下发送,本申请不进行限制。
第三方面,本申请实施例提供一种发送应用的数据包的装置,该装置具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第四方面,本申请实施例提供一种接收应用的数据包的装置,该装置具有实现上述第二方面或第二方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第五方面,本申请实施例提供一种计算机设备,包括存储器和一个或多个处理器,其中,存储器,用于存储程序;一个或多个处理器,用于执行所述存储器中的程序,使得所述计算机设备执行本申请实施例第一方面或第一方面任意一种可能实现方式的方法。其中,所述一 个和多个处理器与所述存储器可以耦合在一起。
第六方面,本申请实施例提供一种计算机设备,包括存储器和一个或多个处理器,其中,存储器,用于存储程序;一个或多个处理器,用于执行所述存储器中的程序,使得所述计算机设备执行本申请实施例第二方面或第二方面任意一种可能实现方式的方法。其中,所述一个和多个处理器与所述存储器可以耦合在一起。
第七方面,本申请实施例提供一种数据传输***,包括前述的发送节点和前述的接收节点。
第八方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机可以执行上述第一方面或第一方面任意一种可能实现方式的方法;或者,使得计算机可以执行上述第二方面或第二方面任意一种可能实现方式的方法。
第九方面,本申请实施例提供一种计算机程序或计算机程序产品,当该计算机程序或计算机程序产品在计算机上运行时,使得计算机执行上述第一方面或第一方面任意一种可能实现方式的方法;或者,得计算机可以执行上述第二方面或第二方面任意一种可能实现方式的方法。
第十方面,本申请实施例提供一种芯片,该芯片包括至少一个处理器和至少一个接口电路,该接口电路和该处理器耦合,至少一个接口电路用于执行收发功能,并将指令发送给至少一个处理器,至少一个处理器用于运行计算机程序或指令,其具有实现如上述第一方面或第一方面任意一种可能实现方式的方法的功能或者具有实现如上述第二方面或第二方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过软件实现,还可以通过硬件和软件组合实现,该硬件或软件包括一个或多个与上述功能相对应的模块。此外,该接口电路用于与该芯片之外的其它模块进行通信。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种典型应用场景示意图;
图2为本申请实施例提供的为数据发送、接收时的协议栈及各层缓存示意图;
图3为本申请实施例提供的发送应用的数据包的方法的流程示意图;
图4为本申请实施例提供的目标发包数量小于设备发包队列的剩余空间示意图;
图5为本申请实施例提供的目标发包数量大于等于设备发包队列的剩余空间的示意图;
图6为本申请实施例提供的反馈消息的内容示意图;
图7为本申请实施例的应用效果图;
图8为本申请提供的发送应用的数据包的装置的逻辑结构示意图;
图9为本申请提供的接收应用的数据包的装置的逻辑结构示意图。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属 于本申请保护的范围。
本发明实施例描述的网络架构以及业务场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。本申请中的术语“和/或”或字符“/”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,或A/B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
为了便于理解,首先对本申请中所涉及的一些技术名词进行解释,具体如下:
内核收包队列:接收节点驱动到协议栈CPU侧的内核接收队列,如Linux***的softnet_data(per-cpu)队列。内核收包队列为上文描述的数据接收队列的一种。
设备发包队列:发送节点协议栈CPU侧到驱动侧的设备发送队列,如Linux***的qdisc设备发送队列。设备发包队列为上文描述的数据发送队列的一种。
应用处理队列:应用程序用于存储从内核接收数据包的队列,包括且不限于socket缓冲区和应用程序存储队列。应用处理队列为上文描述的应用的处理队列。
本申请涉及的典型场景为吞吐性能瓶颈在端节点的场景,例如近场通信场景下的P2P(peer-to-peer)或D2D。D2D可以支持两个或多个设备之间近距离的点对点或点对多点的通信,典型的D2D设备有蓝牙,WiFi-Direct等。如图1所示,为本申请实施例提供的一种典型应用场景示意图,其中,UE1(user equipment,用户设备)基于传输协议与UE2进行数据传输,比如,手机克隆,或者文件、图片或视频传输,等等。UE之间可以通过有线或无线链路传输数据,因为链路等因素,同样也存在数据包丢失的情况。因此为了保证数据的可靠传输,TCP(Transmission Control Protocol,传输控制协议)成为不同设备之间传输协议的首选。但是TCP为了保障数据传输可靠性而引入的基于窗口的发送机制,拥塞控制、超时重传等机制会极大的限制数据的传送速率,降低链路利用率。本申请旨在针对吞吐性能瓶颈在端节点的场景,设计一套数据包发送方法,实现在极少丢包的前提下实现高吞吐传输性能。可以理解的是,任何基于TCP/IP(Internet Protocol)参考模型的通信***都适用于本发明实施例的提供的技术方案,其中,TCP/IP参考模型是一个抽象的分层模型,它通常也被通称为TCP/IP协议栈,这个模型中,所有的网络协议都被归类到5个抽象的"层"中:物理层、链路层、网络层、传输层以及应用层,关于各层的定义均为现有技术,本发明实施例不再赘述。
可以理解的是,本申请也可以适用于网络极少丢包或者不会出现丢包,网络中的中间设备不会成为瓶颈的数据传输***。
可以理解的是,本申请的执行主体可以是操作***,也可以是内核,还可以是应用程序。
本申请所涉及到的用户设备UE可以包括PC(个人电脑)、智能手机、笔记本电脑、平板电脑、DC(数字相机)等各种具有通信功能的手持设备、车载设备、可穿戴设备、计算设备以及各种形式的用户设备(User Equipment,简称UE),移动台(Mobile station,简称MS),终端(terminal),终端设备(Terminal Equipment)等等。
如图2所示,为数据发送、接收时的协议栈及各层缓存示意图。
发送节点和接收节点可以独立的物理设备,也可以是虚拟机。在一种场景下,发送节点可以是用户设备,接收节点可以是服务器。在另一种场景下,用户设备和服务器的角色也可以互换,即服务器作为发送节点,而用户设备作为接收节点。可以理解的是,发送节点和接收节点也可以均为用户设备,或者均为服务器,本发明不做特别限制。
发送节点和接收节点之间可包括公用网络、专用网络、因特网、局域网的一部分和/或其任何组合。另外还需要说明的是,本发明实施例主要是对发送节点和接收节点上的数据包发送进行优化,以降低丢包率和提升数据传输速率,与发送节点和接收节点之间的网络类型无关。图2并未示出发送节点与接收节点之间的网络。可以理解的是,不同的设备之间通过有线或无线网络传输数据,例如,不同UE之间通过无线网络(如Wi-Fi网络、蜂窝网络),或者服务器之间通过有线或无线方式传输数据的场景下,均可使用本发明实施例提供的方法。
发送节点和接收节点分别包括协议栈。应用程序可以基于协议栈进行数据传送。其中,协议栈的功能可由软件、硬件和/或固件的适当组合执行。此外,所属领域的技术人员可以理解发送节点和接收节点可包括比图2中所示部件更少或更多的部件,图2仅示出了与本发明实施例所公开的多个实现方式的更加相关的部件。
以下将对发送节点和接收节点中的涉及的部分协议栈和缓冲区进行介绍。
其中,
应用层:为用户的应用进程提供服务。
套接字缓冲区(socket buffer):每个TCP Socket在内核中都有一个发送缓冲区和一个接收缓冲区。其中,发送缓冲区(send socket buffer)把应用程序缓冲区中的数据拷贝到套接字的发送缓冲区中,在适当的时机,内核会把套接字发送缓冲区的数据发送到接收方的套接字接收缓冲区。接收缓冲区(receive socket buffer)用于缓存数据,在应用程序调用读取函数时,从接收方的套接字接收缓冲区中把数据拷贝到应用程序缓冲区中。如果应用程序一直没有调用读取函数,则数据会一直缓存在相应的套接字接收缓冲区。
TCP/IP协议栈:定义了一些传输数据的协议和端口号,以及在位于不同地理位置的网络中的两个主机***之间提供连接和路径选择。数据包的发送和接收的处理过程是在内核的TCP/IP协议栈实现的。
设备发送队列:发送结点TCP/IP协议栈CPU侧到驱动侧的数据发送队列,如Linux***的queue discipline(qdisc)设备发送队列。
Driver/NIC:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。
环形缓冲区(TX Ring Buf):在通信程序中,经常使用环形缓冲区作为数据结构来存放通信中发送和接收的数据。环形缓冲区是一个先进先出的循环缓冲区,可以向通信程序提供对缓冲区的互斥访问。在本申请实施例中,涉及发送环形缓冲区(TX Ring Buf)和接收环形缓冲区(RX Ring Buf),其中,TX Ring Buf用于把数据包从内存以直接内存存取(Direct Memory Access,DMA)方式复制到网卡上的缓存区;RX Ring Buf用于从网卡上的缓存区以DMA方式复制到内存。
内核接收队列:接收结点驱动到TCP/IP协议栈CPU侧的数据接收队列,如Linux***的softnet_data(per-cpu)队列。
在一次数据发送过程中,应用程序创建数据,拷贝到套接字发送缓冲区中,如果缓冲区没有内存可用,则***调用返回失败或者堵塞。因此,应用程序流向内核的数据流速由套接字缓冲区大小来限制。
TCP协议栈创建和发送数据包,通过数据发送队列qdisc向网卡(network interface controller,NIC)驱动发送。
环形发送缓冲区(TX ring buffer)处于NIC驱动和NIC之间,Tx ring buffer可被认为是发送请求队列。如果Tx ring buffer满,此时NIC驱动不能发出发送请求,那么待发送的数据包将会累积在TCP/IP协议栈和NIC驱动之间的qdisc中,如果累积数据包超过qdisc大小,发送的新数据包将会被直接丢弃。
NIC将待发送数据包存储在自身缓冲区中,发送数据包的速率主要由NIC的物理速度决定。
在一次数据接收过程中,接收节点收到的数据包将由NIC向上层发送,其中,NIC和NIC驱动之间的Rx ring buffer可作为缓存,NIC驱动从Rx ring中将已接收数据包的请求取出,发给上层,驱动可以把数据包挂到内核数据接收队列,由内核***去取,网络包的数据部分将上传缓存在套接字的接收缓冲区中,应用程序随后从套接字的接收缓冲区中将数据读取到应用程序缓冲区中,再对数据包进行处理。
需要说明的是,应用程序本身也可能没有缓冲区时,应用程序直接从套接字接收缓冲区读取数据,然后对数据包进行处理。此时的应用的处理队列为套接字的接收缓冲区。这种场景在图2中并未示出,但也是数据包传输中的一种可能的场景。
基于上述的协议栈和各层缓存原理,下面描述本申请实施例的发送应用的数据包的方法,如图3所示,该方法主要包括以下步骤:
步骤S301:发送节点根据目标发送速率和数据发送队列的被占用情况发送应用的数据包。
步骤S302:发送节点接收来自接收节点的反馈消息,所述反馈消息指示所述接收节点处理接收到的所述应用的数据包的能力。
步骤S303:发送节点基于所述反馈消息,调整发送所述应用的数据包的速率。
步骤S304:判断数据包是否传输完成:
如果是,则结束本流程;
如果否,则继续步骤S301。
示例性的,在本申请实施例的发送应用的数据包的方法中,综合考虑了目标发送速率和数据发送队列的被占用情况,以及接收节点处理接收到的应用的数据包的能力来主动调整发送所述应用的数据包的速率,使得在发送数据包过程中数据发送队列不会超负荷使用,从而降低丢包率;使得发送节点发送应用的数据包的速率和接收节点的处理数据包的能力的更匹配,从而提高数据传输的效率、提高吞吐量性能。
可以理解的是,在本申请实施例的应用过程中,也可以只根据目标发送速率和数据发送队列的被占用情况来调整发送应用的数据包的速率。接收节点可以发送反馈消息,也可以不发送反馈消息。
下面通过具体示例来展示本申请实施例中的发送和接收应用的数据包的详细流程。
针对步骤S301:发送节点根据目标发送速率和数据发送队列的被占用情况发送应用的数 据包:
首先,发送节点从网卡获取到网卡协商速率V
nego;
需要说明的是,网卡协商速率随着网络状态的变化而变化,这里获取到的速率为获取的时刻对应的速率。
其次,发送节点计算目标发送速率V:V=V
nego/8*p;
其中,p是根据物理层信道信息如Received Signal Strength Indication(RSSI)等计算出来的比例系数,RSSI为接收的信号强度指示,无线发送层的可选部分,用来判定链接质量,以及是否增大广播发送强度。RSSI是从网卡获取到的信息。作为一种示例,RSSI和p的对应关系可取值如表1所示,当RSSI大于(-50dB)时,p可取值为1;当RSSI小于(-50dB)并且RSSI大于(-60dB),p可取值为0.9,等等。
表1
RSSI>-50dB | p=1.0 |
RSSI<-50dB&&RSSI>-60dB | p=0.9 |
RSSI<-60dB&&RSSI>-70dB | p=0.8 |
RSSI<-70dB | p=0.7 |
可以理解的是,RSSI与比例系数p的取值关系也可以是其他对应关系,本申请实施例不限制。
接着,发送节点根据目标发送速率V和发送周期T计算目标发包数量:
目标发包数量S=V*T;
其中,发送周期为***根据经验值设置的,例如,发送周期T可设置为5ms,也可以设置为其他时长,本申请实施例不限制。
数据包在发送过程中可以设置发送周期T,这是主动限制发送速率的一种比较通用的方式。也可以通过其他方式达到主动限制发送速率的目的,本申请不进行限制。
再者,发送节点获取数据发送队列的被占用情况,在本实施例中,以qdisc设备发包队列为例,假设总长度为N,剩余空间长度为N
c。
然后,计算实际发包数量;
实际发包数量可通过如下方式计算:N
tx=min(S,N
c*r),作为一种示例,比例系数r建议可取值为0.95;比例系数r为一种保护机制,为了保护设备发包队列不超负荷发送数据包,防止数据接收队列丢包。可以理解的是,r也可以设置为其他值,本申请实施例不限制。
最后,N
tx中的数据包发送完成,计算休眠时间,然后再进行下一周期的数据包发送。
其中,以下将通过两个例子来说明休眠时间的计算方式。即根据设备发包队列的使用情况,可分为两种情况:
当S<N
c*r时,即发送周期T内的目标发包数量小于设备发包队列的剩余空间时,如图 4所示;在这种情况下,休眠时间T
2=T–T
1;其中,T为***设置的发送周期,T
1为发送N
tx数据包消耗的时间,T
1可根据***时间来计算:如在数据包发送之前获取时间a,在数据包发送完成后获取时间b,则T
1=b-a,可以理解的是,这种计算方式仅为一种示例,也可以通过其他方式进行计算,本申请实施例不做限制。
休眠时间到期后,退出本周期T的数据包传输,进入下一发送周期继续发送数据包。
当S>=N
c*r,即发送周期T内的目标发包数量大于等于设备发包队列的剩余空间时,如图5所示;在这种情况下:
1)计算发送N
tx数据包消耗时间T
1:T
1可根据***时间来计算:如在数据包发送之前获取时间a,在数据包发送完成后获取时间b,则T
1=b-a。当N
tx发送完成后,设备发包队列将继续被填满;
2)计算发送一定比例的队列长度的数据后的等待时间T
3:例如,等待队列发送队列长度(N*q)的数据所消耗的时间,其中,q为设备发包队列待发送数据包的比例系数,建议设置为1/2,即等待发送完设备发包队列总长度N的一半长度的数据后,重新触发数据包的发送。
其中,比例系数的设置是为了防止qdisc设备发包队列出现空闲但是还处于休眠状态不能发包而导致资源浪费。可以理解的是,q也可以设置为其他值,本申请实施例不进行限制。
3)计算休眠时间:休眠时间选择为min(T
2,T
3):其中T
2=T–T
1;T
3=N*q/V;
4)休眠时间到期后,退出本周期T的数据包传输,进入下一发送周期继续发送数据包。
休眠时间的合理设置是为了控制发包数量使得设备发包队列不会超负荷使用,从而降低发送过程的丢包率;也可以防止发包队列空闲后但由于还处于休眠状态不能发送数据包而导致资源浪费。
针对步骤S302:发送节点接收来自接收节点的反馈消息,所述反馈消息指示所述接收节点处理接收到的所述应用的数据包的能力。
首先,接收节点监控内核收包队列与应用处理队列动态变化并反馈接收状态。
接收节点根据内核收包队列单位时间收包数量计算数据包接收速率V
nr,可通过如下方式进行计算:
T
1时刻记录内核收包队列总收包数量S
1;
T
2时刻记录内核收包队列总收包数量S
2;
计算内核收包队列接收速率V
nr=(S
2–S
1)/(T
2–T
1),T
2与T
1间隔时间可以设置为200ms;可以理解的是,T
2与T
1间隔时间也可以设置为其他值,本申请实施例不进行限制。可以理解的是,数据包接收速率的计算方式也可以通过其他方式计算,本申请实施例不进行限制。
其次,根据内核收包队列丢包数据,记录丢包状态:S
drop,可通过如下方式进行计算:
T
1时刻记录内核收包队列总丢包数量D
1;
T
2时刻记录内核收包队列总丢包数量D
2;
计算内核收包队列丢包数D=(D
2–D
1),T
2与T
1间隔时间可以设置为200ms;可以理解的是,T
2与T
1间隔时间也可以设置为其他值,本申请实施例不进行限制;
如果D>0,则S
drop=true,否则S
drop=false;
可以理解的是,丢包状态的设置也可以是D达到某个***预设的值时,将丢包状态设置 为S
drop=true,否则S
drop=false。丢包状态的判断还可以根据丢包率来判断,比如丢包率达到***预设的值时,将丢包状态设置为S
drop=true,否则S
drop=false。本申请实施例对丢包状态的设置标准不做限制。
接着,计算应用的处理速率V
ap,即应用程序单位时间内处理的数据包数量,可以通过应用程序统计处理数据包的数量,以及处理这些数据包使用的时间,然后根据数量/时间计算出V
ap;可以理解的是,应用的处理速率也可以通过其他方式计算,本申请实施例不进行限制。
然后,记录应用处理队列已使用比例信息Q。
最后,接收节点发送反馈消息给发送节点,其中,反馈消息可包含内核收包队列记录的V
nr,S
drop,应用处理队列记录的V
ap和/或Q等信息。一种示例的反馈消息如图6所示。可以理解的是,本申请实施例反馈消息不局限于图6所示的内容、格式,还可以包含接收节点通知发送节点的各种格式及协议内容。
发送反馈消息的方式包括:
1)接收节点周期性发送反馈消息到发送节点;
其中,发送反馈消息的周期可以设置为200ms,可以理解的是,发送反馈消息的周期也可以设置为其他值,本申请实施例不进行限制;
2)接收节点在检测到S
drop=true时,发送反馈消息给发送节点;
3)当接收节点检测到应用处理队列已使用比例Q上升到Q1或Q从Q1下降到Q2时,发送反馈消息给发送节点;
其中,Q1和Q2分别代表应用队列使用比例,Q1,Q2为***初始化时根据经验值设置的;例如Q1可取值为70%,Q2可取值为30%。即当应用处理队列使用到70%时,接收节点发送反馈消息给发送节点;或者应用处理队列的使用比例从70%下降到30%后,接收节点发送反馈消息给发送节点。
4)当接收节点的数据接收队列的丢包状态为真,并且接收节点部署的应用的处理队列的空间占用情况达到占用上限时,接收节点向发送节点发送反馈消息。
5)当接收节点的数据接收队列的丢包状态为真,并且接收节点部署的应用的处理队列的空间占用情况从占用上限下降到占用下限时,接收节点向发送节点发送反馈消息。
可以理解的是,以上反馈消息的发送方式仅为示例性的,反馈消息也可以在其他情况下发送,本申请实施例不进行限制。
针对步骤S303:发送节点基于所述反馈消息,调整发送所述应用的数据包的速率。
首先,发送节点根据所述反馈消息指示的所述接收节点处理接收到的所述应用的数据包的能力,调整所述目标发送速率:
1)发送节点根据物理层信道信息确定目标发送速率V
new=V
nego'/8*p';这里V
nego'区别于步骤S301的V
nego,为收到反馈消息时的网卡协商速率,p'为该时刻物理层信道信息如RSSI对应的比例系数。
需要说明的是,发送节点可以根据收到反馈消息的时刻的物理层信息来确定目标发送速率,发送节点也可以周期性的调整目标发送速率,比如周期性的根据物理层的网卡协商速率和RSSI进行计算。
2)检测到接收节点出现丢包S
drop=true时,调整目标发送速率为V
new=min(V
new,V
nr);或者
当Q上升到Q
1时,调整目标发送速率为V
new=min(V
new,V
ap);
Q
1代表应用处理队列使用比例,例如当队列占比达到Q
1(如70%)时,应开启流控,以应用处理速率V
ap来发送,当队列占比降到Q
2(如30%)时,则目标发送速率不受应用处理速率影响。
可以理解的是,这里Q1,Q2的取值仅是示例,在实际应用过程中也可以设置为其他值。在实际应用过程中也可以通过空间大小如已使用空间大小或者剩余空间大小来判断应用处理队列的空间占用情况,进而调整目标发送速率。
以上为对本申请实施例提供的发送、接收应用的数据包的方法的详细说明。
本申请实施例中,在发送节点发送应用的数据包时,综合考虑目标发送速率和数据发送队列的被占用情况,使得在发送数据包过程中数据发送队列不会超负荷使用,从而降低丢包率;同时发送节点根据接收节点处理接收到的应用的数据包的能力来调整发送所述应用的数据包的速率,使得发送节点发送应用的数据包的速率和接收节点的处理数据包的能力的更匹配,从而提高数据传输的效率、提高吞吐量性能。
请参见图7,为针对同一终端上,采用TCP拥塞控制算法瓶颈带宽与往返时间(Bottleneck Bandwidth and RTT,BBR)进行应用的数据包发送与采用本申请实施例提供的应用的数据包发送的方法发送数据包的效果对比图。方案对比如下:
优化前:
在发送速率获取方面:现有TCP拥塞控制算法BBR是根据RTT往返时延来控制数据包发送,容易导致发送速率会有比较大的抖动,无法充分发挥链路发送性能。
在计算发包数量方面:现有BBR技术发送数据包时仅考虑了网络传输中的中间节点的时延,不会考虑终端上如手机上的各层缓冲区队列的空间占用情况,易出现队列丢包。
优化后:
在近场通信场景下综合考虑发送节点的物理层发送数据包的能力以及接收节点的数据接收队列的数据包接收速率、接收节点的数据接收队列的丢包状态、接收节点部署的所述应用的处理速率或接收节点部署的所述应用的处理队列的空间占用情况来调整目标发送速率,进而根据调整后的目标发送速率和所述数据发送队列当前的空间占用情况调整发送所述应用的数据包的速率,从而能够减少终端上各层缓冲区队列丢包,实现网络传输性能最大化。
图7中从发送速率方面,给出了采用TCP拥塞控制算法BBR进行应用的数据包发送与采用本申请实施例提供的应用的数据包发送的方法发送数据包的效果对比,在使用现有BBR技术时发送速率平均值为38.8MB/s,而在使用本申请实施例提供的方案时,发送速率平均值为53.3MB/s,可见,本申请实施例的发送应用的数据包的技术可以提高数据发送速率。
以上主要介绍了本申请实施例提供的方法的具体流程,下面将介绍本申请的装置实施例。
请参考图8,为本申请提供的发送应用的数据包的装置的逻辑结构示意图。示例性的,如图所述,该发送应用的数据包的装置800包括发送模块810、接收模块820以及调整模块830。其中,
发送模块810用于根据目标发送速率和数据发送队列的被占用情况发送所述应用的数据 包,所述发送所述应用的数据包的速率与所述目标发送速率成正比,所述数据发送队列的被占用情况限制了所述应用的数据包的发送数量。;所述发送模块具体用于根据所述目标发送速率计算在一个发送周期内的目标发包数量;根据所述目标发包数量和所述数据发送队列的剩余空间,确定所述发送周期内的实际发包数量;基于实际发包数量发送数据。
接收模块820用于接收来自所述接收节点的反馈消息,所述反馈消息指示所述接收节点处理接收到的所述应用的数据包的能力;所述接收节点的数据接收队列的数据包接收速率、所述接收节点的数据接收队列的丢包状态、所述接收节点部署的所述应用的处理速率和所述接收节点部署的所述应用的处理队列的空间占用情况,所述数据接收队列用于接收来自设备驱动层的数据包。其中,所述反馈消息的发送方式为以下方式中的至少一种:周期性发送;当所述接收节点的数据接收队列的丢包状态满足预设条件时发送;和当所述接收节点部署的所述应用的处理队列的空间占用情况满足预设条件时发送。
调整模块830用于基于所述反馈消息调整发送所述应用的数据包的速率。
所述调整模块830具体用于根据所述反馈消息指示的所述接收节点处理接收到的所述应用的数据包的能力,调整所述目标发送速率,进而根据调整后的目标发送速率和所述数据发送队列当前的空间占用情况调整发送所述应用的数据包的速率。
所述调整模块830具体用于当所述接收节点的数据接收队列的丢包状态为真时,将所述目标发送速率调整为所述目标发送速率和所述数据接收队列的数据包接收速率两者之中的最小值;当所述接收节点部署的所述应用的处理队列的空间占用情况达到占用上限时,将所述目标发送速率调整为所述目标发送速率和所述接收节点部署的所述应用的处理速率两者之中的最小值;当所述接收节点的数据接收队列的丢包状态为真,并且所述接收节点部署的所述应用的处理队列的空间占用情况达到占用上限时,将所述目标发送速率调整为所述目标发送速率、所述数据接收队列的数据包接收速率和所述接收节点部署的所述应用的处理速率三者之中的最小值。
可以理解的是,本申请实施例提供的发送应用的数据包的装置800也可以只包含发送模块。本申请实施例考虑了接收节点会发送反馈消息的场景,所以还包含了接收模块和调整模块。在接收节点不发送反馈消息的场景下,该装置将只包含发送模块。
本申请实施例提供的发送应用的数据包的装置800的效果可以参考前述方法实施例,在此不再赘述。
请参考图9,为本申请提供的接收应用的数据包的装置的逻辑结构示意图。如图所述,该发送应用的数据包的装置900包括接收模块910、保存模块920以及发送模块930。其中,
接收模块910用于接收来自发送节点的数据包。
保存模块920用于保存接收数据包时的能力信息,所述能力信息包括以下参数中的至少一种:数据接收队列的数据包接收速率、数据接收队列的丢包状态、所述应用的处理速率和所述应用的处理队列的空间占用情况。
发送模块930用于向所述发送节点发送反馈消息,所述反馈消息包含所述能力信息,所述反馈消息用于指示所述发送节点调整所述应用发送数据包的速率。所述反馈消息的发送方式为以下方式中的至少一种:周期性发送;当所述数据接收队列的丢包状态满足预设条件时发送;和当所述应用的处理队列的空间占用情况满足预设条件时发送。
另外,本申请还提供与本申请提供的方案相关的存储介质、计算机程序产品、计算机程 序等。具体实现可参考前述实施例。
本领域普通技术人员可以意识到,在上述实施例的描述的各示例的模块及算法步骤,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
以上所描述的装置实施例仅仅是示意性的,例如,所述的模块的划分仅仅是一种逻辑功能的划分。其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间可通过一条或多条通信总线或信号线进行通信连接。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一些具体实施方式,但本申请的保护范围并不局限于此。
Claims (25)
- 一种发送应用的数据包的方法,其特征在于,所述方法应用于近场通信场景,所述应用部署于发送节点,包括:所述发送节点根据目标发送速率和数据发送队列的被占用情况发送所述应用的数据包,所述发送所述应用的数据包的速率与所述目标发送速率成正比,所述数据发送队列的被占用情况限制了一个发送周期内所述应用的数据包的发送数量。
- 根据权利要求1所述的方法,其特征在于,所述方法还包括:所述发送节点接收来自接收节点的反馈消息,所述反馈消息指示所述接收节点处理接收到的所述应用的数据包的能力;所述发送节点基于所述反馈消息,调整发送所述应用的数据包的速率。
- 根据权利要求2所述的方法,其特征在于,所述应用还部署于所述接收节点,所述接收节点处理接收到的数据包的能力通过以下参数中的至少一种来指示:所述接收节点的数据接收队列的数据包接收速率、所述接收节点的数据接收队列的丢包状态、所述接收节点部署的所述应用的处理速率和所述接收节点部署的所述应用的处理队列的空间占用情况,所述数据接收队列用于接收来自设备驱动层的数据包。
- 根据权利要求2所述的方法,其特征在于,所述发送节点基于所述反馈消息,调整发送所述应用的数据包的速率包括:根据所述反馈消息指示的所述接收节点处理接收到的所述应用的数据包的能力,调整所述目标发送速率,进而根据调整后的目标发送速率和所述数据发送队列当前的空间占用情况调整发送所述应用的数据包的速率。
- 根据权利要求2所述的方法,其特征在于,所述反馈消息的发送方式为以下方式中的至少一种:周期性发送;当所述接收节点的数据接收队列的丢包状态满足预设条件时发送;和当所述接收节点部署的所述应用的处理队列的空间占用情况满足预设条件时发送。
- 根据权利要求1所述的方法,其特征在于,所述发送节点根据目标发送速率和数据发送队列被占用情况确定发送所述应用的数据包的速率包括:根据所述目标发送速率计算在一个发送周期内的目标发包数量;根据所述目标发包数量和所述数据发送队列的剩余空间,确定所述发送周期内的实际发包数量,其中,所述实际发包数量为所述目标发包数量和所述数据发送队列的剩余空间两者之中的最小值;基于实际发包数量发送数据包。
- 根据权利要求1所述的方法,其特征在于,所述目标发送速率的初始值指示所述发送节点的物理层发送数据包的能力。
- 根据权利要求4所述的方法,其特征在于,所述根据所述反馈消息指示的所述接收节点处理接收到的所述应用的数据包的能力,调整所述目标发送速率,进而根据调整后的目标发送速率和所述数据发送队列当前的空间占用情况调整发送所述应用的数据包的速率,包括:当所述接收节点的数据接收队列的丢包状态为真时,将所述目标发送速率调整为所述目标发送速率和所述数据接收队列的数据包接收速率两者之中的最小值;当所述接收节点部署的所述应用的处理队列的空间占用情况达到占用上限时,将所述目标发送速率调整为所述目标发送速率和所述接收节点部署的所述应用的处理速率两者之中 的最小值;当所述接收节点的数据接收队列的丢包状态为真,并且所述接收节点部署的所述应用的处理队列的空间占用情况达到占用上限时,将所述目标发送速率调整为所述目标发送速率、所述数据接收队列的数据包接收速率和所述接收节点部署的所述应用的处理速率三者之中的最小值。
- 一种接收应用的数据包的方法,其特征在于,所述方法应用于近场通信场景下的接收节点,所述应用部署于发送节点和所述接收节点,包括:接收来自所述发送节点的数据包;保存所述接收节点处理接收到的数据包的能力信息,所述能力信息包括以下参数中的至少一种:数据接收队列的数据包接收速率、数据接收队列的丢包状态、所述应用的处理速率和所述应用的处理队列的空间占用情况;向所述发送节点发送反馈消息,所述反馈消息包含所述能力信息,所述反馈消息用于指示所述发送节点调整所述应用发送数据包的速率。
- 根据权利要求9所述的方法,其特征在于,所述反馈消息的发送方式为以下方式中的至少一种:周期性发送;当所述数据接收队列的丢包状态满足预设条件时发送;和当所述应用的处理队列的空间占用情况满足预设条件时发送。
- 一种发送应用的数据包的装置,其特征在于,包括:发送模块,用于根据目标发送速率和数据发送队列的被占用情况发送所述应用的数据包,所述发送所述应用的数据包的速率与所述目标发送速率成正比,所述数据发送队列的被占用情况限制了一个发送周期内所述应用的数据包的发送数量。
- 根据权利要求11所述的装置,其特征在于,所述装置还包括:接收模块,用于接收来自接收节点的反馈消息,所述反馈消息指示所述接收节点处理接收到的所述应用的数据包的能力;调整模块,用于基于所述反馈消息调整发送所述应用的数据包的速率。
- 根据权利要求12所述的装置,其特征在于,所述接收节点处理接收到的数据包的能力通过以下参数中的至少一种来指示:所述接收节点的数据接收队列的数据包接收速率、所述接收节点的数据接收队列的丢包状态、所述接收节点部署的所述应用的处理速率和所述接收节点部署的所述应用的处理队列的空间占用情况,所述数据接收队列用于接收来自设备驱动层的数据包。
- 根据权利要求12所述的装置,其特征在于,所述调整模块具体用于:根据所述反馈消息指示的所述接收节点处理接收到的所述应用的数据包的能力,调整所述目标发送速率,进而根据调整后的目标发送速率和所述数据发送队列当前的被占用情况调整发送所述应用的数据包的速率。
- 根据权利要求12所述的装置,其特征在于,所述反馈消息的发送方式为以下方式中的至少一种:周期性发送;当所述接收节点的数据接收队列的丢包状态满足预设条件时发送;和当所述接收节点部署的所述应用的处理队列的空间占用情况满足预设条件时发送。
- 根据权利要求11所述的装置,其特征在于,所述发送模块具体用于:根据所述目标发送速率计算在一个发送周期内的目标发包数量;根据所述目标发包数量和所述数据发送队列的剩余空间,确定所述发送周期内的实际发包数量,其中,所述实际发包数量为所述目标发包数量和所述数据发送队列的剩余空间两者之中的最小值;基于实际发包数量发送数据包。
- 根据权利要求11所述的装置,其特征在于,所述目标发送速率的初始值指示所述发送节点的物理层发送数据包的能力。
- 根据权利要求14所述的装置,其特征在于,所述调整模块具体用于:当所述接收节点的数据接收队列的丢包状态为真时,将所述目标发送速率调整为所述目标发送速率和所述数据接收队列的数据包接收速率两者之中的最小值;当所述接收节点部署的所述应用的处理队列的空间占用情况达到占用上限时,将所述目标发送速率调整为所述目标发送速率和所述接收节点部署的所述应用的处理速率两者之中的最小值;当所述接收节点的数据接收队列的丢包状态为真,并且所述接收节点部署的所述应用的处理队列的空间占用情况达到占用上限时,将所述目标发送速率调整为所述目标发送速率、所述数据接收队列的数据包接收速率和所述接收节点部署的所述应用的处理速率三者之中的最小值。
- 一种接收应用的数据包的装置,其特征在于,包括:接收模块,用于接收来自发送节点的数据包;保存模块,用于保存接收数据包时的能力信息,所述能力信息包括以下参数中的至少一种:数据接收队列的数据包接收速率、数据接收队列的丢包状态、所述应用的处理速率和所述应用的处理队列的空间占用情况;发送模块,用于向所述发送节点发送反馈消息,所述反馈消息包含所述能力信息,所述反馈消息用于指示所述发送节点调整所述应用发送数据包的速率。
- 根据权利要求19所述的装置,其特征在于,所述反馈消息的发送方式为以下方式中的至少一种:周期性发送;当所述数据接收队列的丢包状态满足预设条件时发送;和当所述应用的处理队列的空间占用情况满足预设条件时发送。
- 一种计算机设备,包括存储器和一个或多个处理器,所述一个和多个处理器与所述存储器耦合,其特征在于,所述存储器,用于存储程序;所述一个或多个处理器,用于执行所述存储器中的程序,使得所述计算机设备执行如权利要求1-8中任一项所述的发送应用的数据包的方法;或者,使得所述计算机设备执行如权利要求9-10中任一项所述的接收应用的数据包的方法。
- 一种数据传输***,其特征在于,包括发送节点和接收节点,其中:所述发送节点用于执行权利要求1至8所述方法的操作步骤;所述接收节点用于执行权利要求9至10所述方法的操作步骤。
- 一种计算机可读存储介质,包括计算机可读指令,当所述计算机可读指令在计算机上运行时,使得计算机执行如权利要求1-8中任一项所述的方法;或者,使得计算机执行如权利要求9-10中任一项所述的方法。
- 一种计算机程序产品,包括计算机可读指令,当所述计算机可读指令在计算机上运行时,使得计算机执行如权利要求1-8中任一项所述的方法;或者,使得计算机执行如权利要求9-10中任一项所述的方法。
- 一种芯片,其特征在于,所述芯片包括存储器和一个或多个处理器,所述芯片用于读取存储器中存储的计算机程序,使得所述一个或多个处理器执行如权利要求1-8任一项所述的方法;或者,使得所述一个或多个处理器执行如权利要求9-10任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21833006.6A EP4156766A4 (en) | 2020-06-29 | 2021-03-12 | METHOD AND APPARATUS FOR SENDING DATA PACKETS |
US18/147,467 US20230139633A1 (en) | 2020-06-29 | 2022-12-28 | Data Packet Sending Method and Apparatus |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010604021.X | 2020-06-29 | ||
CN202010604021.XA CN113938945B (zh) | 2020-06-29 | 2020-06-29 | 数据包发送的方法、装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/147,467 Continuation US20230139633A1 (en) | 2020-06-29 | 2022-12-28 | Data Packet Sending Method and Apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022001175A1 true WO2022001175A1 (zh) | 2022-01-06 |
Family
ID=79272883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2021/080359 WO2022001175A1 (zh) | 2020-06-29 | 2021-03-12 | 数据包发送的方法、装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230139633A1 (zh) |
EP (1) | EP4156766A4 (zh) |
CN (1) | CN113938945B (zh) |
WO (1) | WO2022001175A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114499777A (zh) * | 2022-04-15 | 2022-05-13 | 四川腾盾科技有限公司 | 一种集群无人***数据传输方法 |
CN117135682A (zh) * | 2023-02-09 | 2023-11-28 | 荣耀终端有限公司 | 获取发送速率的方法、第一电子设备及存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114173314B (zh) * | 2022-02-10 | 2022-07-12 | 荣耀终端有限公司 | 数据传输方法及装置 |
CN114268936B (zh) * | 2022-03-01 | 2022-07-12 | 荣耀终端有限公司 | 数据传输方法及装置 |
CN114928553A (zh) * | 2022-06-16 | 2022-08-19 | 浙江大华技术股份有限公司 | 数据上报方法、装置、存储介质及电子装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040013124A1 (en) * | 2002-07-18 | 2004-01-22 | Peebles Brian E. | Apparatus and method for virtual output queue feedback |
US20070058651A1 (en) * | 2005-08-30 | 2007-03-15 | International Business Machines Corporation | Method, system and program product for setting a transmission rate in a network |
CN103415042A (zh) * | 2013-06-20 | 2013-11-27 | 北京傲天动联技术股份有限公司 | 一种wifi多用户环境性能提升方法及装置 |
US20160294505A1 (en) * | 2015-03-31 | 2016-10-06 | Qualcomm Technologies International, Ltd. | Data rate adaptation in a wireless transmitter |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI380654B (en) * | 2009-02-11 | 2012-12-21 | Univ Nat Chiao Tung | The control method of transmitting streaming audio/video data and architecture thereof |
CN106878191B (zh) * | 2015-12-14 | 2018-11-16 | 华为技术有限公司 | 一种数据传送方法、发送节点、接收节点及数据传送*** |
CN109120544B (zh) * | 2018-09-30 | 2021-03-26 | 华中科技大学 | 一种数据中心网络中基于主机端流量调度的传输控制方法 |
-
2020
- 2020-06-29 CN CN202010604021.XA patent/CN113938945B/zh active Active
-
2021
- 2021-03-12 EP EP21833006.6A patent/EP4156766A4/en active Pending
- 2021-03-12 WO PCT/CN2021/080359 patent/WO2022001175A1/zh unknown
-
2022
- 2022-12-28 US US18/147,467 patent/US20230139633A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040013124A1 (en) * | 2002-07-18 | 2004-01-22 | Peebles Brian E. | Apparatus and method for virtual output queue feedback |
US20070058651A1 (en) * | 2005-08-30 | 2007-03-15 | International Business Machines Corporation | Method, system and program product for setting a transmission rate in a network |
CN103415042A (zh) * | 2013-06-20 | 2013-11-27 | 北京傲天动联技术股份有限公司 | 一种wifi多用户环境性能提升方法及装置 |
US20160294505A1 (en) * | 2015-03-31 | 2016-10-06 | Qualcomm Technologies International, Ltd. | Data rate adaptation in a wireless transmitter |
Non-Patent Citations (1)
Title |
---|
See also references of EP4156766A4 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114499777A (zh) * | 2022-04-15 | 2022-05-13 | 四川腾盾科技有限公司 | 一种集群无人***数据传输方法 |
CN114499777B (zh) * | 2022-04-15 | 2022-07-22 | 四川腾盾科技有限公司 | 一种集群无人***数据传输方法 |
CN117135682A (zh) * | 2023-02-09 | 2023-11-28 | 荣耀终端有限公司 | 获取发送速率的方法、第一电子设备及存储介质 |
CN117135682B (zh) * | 2023-02-09 | 2024-05-14 | 荣耀终端有限公司 | 获取发送速率的方法、第一电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113938945B (zh) | 2023-11-28 |
EP4156766A4 (en) | 2023-11-08 |
EP4156766A1 (en) | 2023-03-29 |
US20230139633A1 (en) | 2023-05-04 |
CN113938945A (zh) | 2022-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022001175A1 (zh) | 数据包发送的方法、装置 | |
US10038639B2 (en) | Congestion control based on flow control | |
CN110278157B (zh) | 拥塞控制方法及网络设备 | |
JP5969068B2 (ja) | ワイヤレスリンクにおけるチャネル効率を改善するためのシステムおよび方法 | |
JP2014524092A (ja) | 単一ソケットポイントツーマルチポイント性能による高信頼性仮想双方向データストリーム通信のためのシステムおよび方法 | |
US20200252337A1 (en) | Data transmission method, device, and computer storage medium | |
WO2017214871A1 (zh) | 业务数据分流方法及装置 | |
EP4145780A1 (en) | Method for controlling network congestion and network device | |
KR20170088183A (ko) | 전자 장치, 그의 무선 통신 방법 및 비일시적 컴퓨터 판독가능 기록매체 | |
EP2922365B1 (en) | Method, system, and station for efficient block acknowledgement connection | |
US9930565B2 (en) | Controlling apparatus for communication-quality measuring, communication apparatus, and program | |
TWI609579B (zh) | 資料封包訊務形塑技術 | |
CN113950099B (zh) | 一种网络拥塞控制方法及设备 | |
WO2021197133A1 (zh) | 一种数据递交方法及装置 | |
US9544235B2 (en) | Scaling WiFi performance for large-audience environments via access points | |
JP6973511B2 (ja) | 通信装置、通信システム、通信方法及びプログラム | |
JP2014099743A (ja) | 通信装置、通信装置の制御方法、および、プログラム | |
WO2019179792A1 (en) | Application notifications from network for throughput and flow control adaptation | |
EP2177064B1 (en) | Control of data flow | |
WO2023273555A1 (zh) | 多路径传输调度控制方法及装置、终端、存储介质 | |
WO2021136278A1 (zh) | 报文传输方法及电子设备 | |
WO2019001568A1 (zh) | Wlan链路建立方法及设备 | |
WO2014205708A1 (zh) | 一种数据报文发送方法、装置和设备 |
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: 21833006 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2021833006 Country of ref document: EP Effective date: 20221222 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |