WO2024250827A1 - 流量数据传输方法、装置、计算机设备、计算机可读存储介质和计算机程序产品 - Google Patents
流量数据传输方法、装置、计算机设备、计算机可读存储介质和计算机程序产品 Download PDFInfo
- Publication number
- WO2024250827A1 WO2024250827A1 PCT/CN2024/086929 CN2024086929W WO2024250827A1 WO 2024250827 A1 WO2024250827 A1 WO 2024250827A1 CN 2024086929 W CN2024086929 W CN 2024086929W WO 2024250827 A1 WO2024250827 A1 WO 2024250827A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- packet loss
- time
- media stream
- stream data
- confirmation message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
- H04L1/1671—Details of the supervisory signal the supervisory signal being transmitted together with control information
- H04L1/1678—Details of the supervisory signal the supervisory signal being transmitted together with control information where the control information is for timing, e.g. time stamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1825—Adaptation of specific ARQ protocol parameters according to transmission conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1864—ARQ related signaling
-
- 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/28—Flow control; Congestion control in relation to timing considerations
-
- 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
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
- H04L47/323—Discarding or blocking control packets, e.g. ACK packets
Definitions
- the present application relates to the field of computer technology, and in particular to a flow data transmission method, apparatus, computer equipment, computer-readable storage medium, and computer program product.
- the quality of experience (QoE) on the user side is an important basis for measuring the service quality of different cloud service providers. Effectively improving the user experience quality is the goal pursued by major cloud platforms.
- the main approaches to current traffic data transmission are concentrated in the following two aspects: First, research, design and deploy congestion control algorithms that are more suitable for network environments and business types, such as BBR. The core idea of these methods is to try to "accurately" identify whether the current network is congested. If congestion occurs, timely adjustments are made to the congestion problem in the hope that packet loss will not occur or will occur as little as possible during subsequent traffic transmission. Second, from the perspective of protocol innovation, the latest network transmission protocol is designed to improve traffic transmission efficiency through the advantages of the protocol itself. For example, multi-path transmission speeds up the flow completion time by adding a traffic transmission path, which will significantly improve the user-side service experience in most scenarios.
- All the solutions adjust the sending strategy from the perspective of network congestion to reduce the packet loss rate and improve data transmission efficiency, but fail to fully consider the service experience on the user terminal side. That is, in actual situations, sometimes even if the packet loss rate is high during traffic transmission, the service experience of the user terminal is not necessarily very poor.
- the key factor affecting the service experience on the user terminal side is whether the network packet loss is repaired in time within a certain period of time. If it is not repaired in time, the service experience on the user terminal side, such as audio and video playback, will experience freezes, black screens, and other features that seriously affect the user experience. Therefore, how to quickly and effectively repair network packet loss while ensuring that it does not affect the service experience on the user terminal side has become an urgent problem to be solved.
- a flow data transmission method, apparatus, computer equipment, computer-readable storage medium, and computer program product are provided.
- the present application provides a method for transmitting traffic data, which is executed by a terminal.
- the method includes: in the process of receiving media stream data sent by a server, querying the cache time of the media stream data; encapsulating the cache time in a confirmation message to obtain a target confirmation message; sending the target confirmation message to the server, so that when the server determines that the media stream data has packet loss, the server adapts the packet loss retransmission parameter according to the packet loss repair time and the cache time in the target confirmation message, and transmits the media loss packet according to the packet loss retransmission parameter before repairing the media stream data; receiving the media loss packet transmitted by the server based on the packet loss retransmission parameter.
- the present application also provides a traffic data transmission device.
- the device includes: a query module, which is used to query the cache time of the media stream data in the process of receiving the media stream data sent by the server; an encapsulation module, which is used to encapsulate the cache time in a confirmation message to obtain a target confirmation message; a sending module, which is used to send the target confirmation message to the server, so that when the server determines that the media stream data has packet loss, it will adapt the packet loss retransmission parameters according to the packet loss repair time and the cache time in the target confirmation message, and before repairing the media stream data, it will adapt the packet loss retransmission parameters according to the packet loss repair time and the cache time in the target confirmation message.
- the packet loss retransmission parameter is used to transmit the media loss packet; and the receiving module is used to receive the media loss packet transmitted by the server based on the packet loss retransmission parameter.
- the present application also provides a computer device.
- the computer device includes a memory and a processor, the memory stores a computer program, and the processor implements the following steps when executing the computer program: in the process of receiving media stream data sent by a server, query the cache time of the media stream data; encapsulate the cache time in a confirmation message to obtain a target confirmation message; send the target confirmation message to the server, so that when the server determines that the media stream data has packet loss, the server adapts the packet loss retransmission parameter according to the packet loss repair time and the cache time in the target confirmation message, and transmits the media loss packet according to the packet loss retransmission parameter before repairing the media stream data; receive the media loss packet transmitted by the server based on the packet loss retransmission parameter.
- the present application also provides a computer program product.
- the computer program product includes a computer program, which implements the following steps when executed by a processor: in the process of receiving media stream data sent by a server, query the cache time of the media stream data; encapsulate the cache time in a confirmation message to obtain a target confirmation message; send the target confirmation message to the server, so that when the server determines that the media stream data has packet loss, it adapts the packet loss retransmission parameter according to the packet loss repair time and the cache time in the target confirmation message, and transmits the media loss packet according to the packet loss retransmission parameter before repairing the media stream data; receive the media loss packet transmitted by the server based on the packet loss retransmission parameter.
- the present application provides a method for transmitting traffic data, which is executed by a server.
- the method includes: in the process of transmitting media stream data to a terminal, receiving a target confirmation message returned by the terminal; the target confirmation message carries the cache time of the terminal for the media stream data; when it is determined based on the target confirmation message that the media stream data has packet loss, adaptively adjusting the packet loss retransmission parameter according to the packet loss repair time and the cache time in the target confirmation message; transmitting the media loss packet corresponding to the media stream data according to the packet loss retransmission parameter, so that the terminal receives the media loss packet before repairing the media stream data.
- the present application also provides a flow data transmission device.
- the device includes: a receiving module, which is used to receive a target confirmation message returned by the terminal during the process of transmitting media stream data to the terminal; the target confirmation message carries the cache time of the terminal for the media stream data; an adaptive module, which is used to adapt the packet loss retransmission parameters according to the packet loss repair time and the cache time in the target confirmation message when it is determined that the media stream data has packet loss based on the target confirmation message; a transmission module, which is used to transmit the media loss packet corresponding to the media stream data according to the packet loss retransmission parameters, so that the terminal receives the media loss packet before repairing the media stream data.
- the present application further provides a computer device.
- the computer device includes a memory and a processor, the memory stores a computer program, and the processor implements the following steps when executing the computer program: in the process of transmitting media stream data to a terminal, receiving a target confirmation message returned by the terminal; the target confirmation message carries the cache time of the terminal for the media stream data; when it is determined based on the target confirmation message that the media stream data is lost, adaptively retransmitting packet loss parameters according to the packet loss repair time and the cache time in the target confirmation message; according to the The packet loss retransmission parameter transmits the media loss packet corresponding to the media stream data, so that the terminal receives the media loss packet before repairing the media stream data.
- the present application further provides a computer-readable storage medium.
- the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the following steps are implemented: in the process of transmitting media stream data to a terminal, receiving a target confirmation message returned by the terminal; the target confirmation message carries the cache time of the terminal for the media stream data; when it is determined based on the target confirmation message that the media stream data has packet loss, adaptively adjusting a packet loss retransmission parameter according to the packet loss repair time and the cache time in the target confirmation message; transmitting a media loss packet corresponding to the media stream data according to the packet loss retransmission parameter, so that the terminal receives the media loss packet before repairing the media stream data.
- the present application also provides a computer program product.
- the computer program product includes a computer program, which implements the following steps when executed by a processor: in the process of transmitting media stream data to a terminal, receiving a target confirmation message returned by the terminal; the target confirmation message carries the cache time of the terminal for the media stream data; when it is determined based on the target confirmation message that the media stream data has packet loss, adaptively adjusting a packet loss retransmission parameter according to the packet loss repair time and the cache time in the target confirmation message; transmitting a media loss packet corresponding to the media stream data according to the packet loss retransmission parameter, so that the terminal receives the media loss packet before repairing the media stream data.
- FIG1 is an application environment diagram of a flow data transmission method according to an embodiment
- FIG2a is a schematic flow chart of a flow data transmission method according to an embodiment
- FIG2 b is a schematic flow chart of a flow data transmission method according to another embodiment
- FIG3 is a schematic diagram of an application status information table of a user terminal in one embodiment
- FIG4 is a schematic diagram of a user terminal periodically acquiring cache information of an application receiving queue in one embodiment
- FIG5 is a flow chart of a step of determining cache information based on media stream data in an application receiving queue in one embodiment
- FIG6 is a flow chart of a method for transmitting flow data in another embodiment
- FIG7 is a schematic diagram of packet loss and user-side freeze in one embodiment
- FIG8 is a schematic diagram of a flow chart of an adaptive packet loss repair and traffic transmission method based on multi-party collaboration in one embodiment
- FIG9 is a schematic diagram of the overall process of an adaptive packet loss repair and traffic transmission method based on multi-party collaboration in one embodiment
- FIG10 is a schematic diagram of a data transmitting end adjusting a bit rate in one embodiment
- FIG11 is a structural block diagram of a flow data transmission device in one embodiment
- FIG12 is a structural block diagram of a flow data transmission device in another embodiment
- FIG. 13 is a diagram showing the internal structure of a computer device in one embodiment.
- first, second, and third are only used to distinguish similar objects, and do not represent a specific order for the objects. It is understandable that the specific order or sequence of "first, second, and third” can be interchanged where permitted, so that the embodiments of the present application described herein can be used in addition to those illustrated or described herein. The operations may be performed in any order other than that described above.
- the flow data transmission method provided in the embodiment of the present application can be applied to the application environment shown in Figure 1.
- the terminal 102 communicates with the server 104 through the network.
- the data storage system can store the data that the server 104 needs to process.
- the data storage system can be integrated on the server 104, or it can be placed on the cloud or other network servers.
- the terminal 102 queries the cache time of the media stream data, and encapsulates the cache time in the confirmation message to obtain the target confirmation message; the terminal 102 sends the target confirmation message to the server 104, so that when the server 104 determines that the media stream data has been lost, the server 104 adapts the packet loss retransmission parameters according to the packet loss repair time and the cache time in the target confirmation message, and transmits the media loss packet according to the packet loss retransmission parameters before repairing the media stream data; the terminal 102 receives the media loss packet transmitted by the server 104 based on the packet loss retransmission parameters.
- the terminal 102 may be a smart phone, a tablet computer, a laptop computer, a desktop computer, a smart speaker, a smart watch, an IoT device, and a portable wearable device.
- the IoT device may be a smart speaker, a smart TV, a smart air conditioner, and a smart vehicle-mounted device, etc.
- the portable wearable device may be a smart watch, a smart bracelet, a head-mounted device, etc.
- Server 104 can be an independent physical server or a service node in a blockchain system.
- a peer-to-peer (P2P) network is formed between the service nodes in the blockchain system.
- the P2P protocol is an application layer protocol running on top of the Transmission Control Protocol (TCP).
- server 104 can also be a server cluster composed of multiple physical servers, and can be a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content distribution networks (CDN, Content Delivery NetworkCDN), as well as big data and artificial intelligence platforms.
- cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content distribution networks (CDN, Content Delivery NetworkCDN), as well as big data and artificial intelligence platforms.
- the terminal 102 and the server 104 can be connected via Bluetooth, USB (Universal Serial Bus) or network and other communication connection methods, which are not limited in this application.
- USB Universal Serial Bus
- a method for transmitting traffic data is provided.
- the method can be executed by a server or a terminal alone, or by the server and the terminal together.
- the method is applied to the terminal in FIG. 1 as an example for description, and includes the following steps:
- Step 202 In the process of receiving the media stream data sent by the server, query the cache time of the media stream data.
- stream data refers to a set of data sequences that arrive in order, in large quantities, quickly and continuously, and the data sequence can be a sequence composed of multiple data packets.
- stream data can be regarded as a dynamic data set that grows infinitely over time.
- the media stream data in this application is streaming media data, which can also be called media data.
- the media stream data in this application can be a media data sequence composed of multiple media data packets, including multiple types of data.
- the media stream data can include at least one of video data, audio data, image data, application installation data, etc.
- the video data in this embodiment can also include at least one of on-demand video, live video, etc.
- the media stream data in this embodiment can be at least one of point-to-point streaming media data or video call data, etc.
- the cache time refers to the cache duration of the media stream data cached in the application layer.
- the cache time in this application can be expressed as a cache moment or a cache duration.
- the terminal can determine the cache duration by the difference between different cache moments.
- the terminal can query the cache time of the media stream data in the application layer. For example, a user can play an audio or video in an application through a trigger operation, and the terminal responds to the above-mentioned trigger operation of the user and sends a traffic request message to the server, so that the server transmits the requested media stream data to the terminal, that is, the server can send a traffic request message to the terminal.
- the end transmits a traffic message carrying the requested media stream data.
- the media stream data is audio and video data.
- the user can select audio and video A in application A through a selection operation, and terminal A responds to the user's selection operation and sends a traffic request message to the server, so that the server transmits the media stream data corresponding to the requested audio and video A to terminal A, that is, the server can transmit a traffic message carrying the media stream data corresponding to the requested audio and video A to terminal A.
- the terminal A queries the cache time of the media stream data corresponding to the audio and video A to be played in the local application layer. For example, the terminal A can query the cache time of the media stream data corresponding to the application that plays the audio and video A from the state information table maintained by itself.
- the state information table is used to store the cache information info_l7_buffer of different applications running in the terminal A.
- the cache information info_l7_buffer of different applications in this application includes but is not limited to the cache time, and may also include other cache information.
- the cache information may also include the number of complete audio and video frames l7_buffer_frame_amount in the application receiving queue corresponding to the application, the information frame_last of the last audio and video frame in the application cache queue, etc.
- Step 204 encapsulate the cache time into a confirmation message to obtain a target confirmation message.
- the confirmation message refers to the message confirmation message that the data receiving end (terminal) receives the traffic message from the data sending end (server) and periodically sends to the server.
- the message confirmation message is the confirmation message.
- the target confirmation message refers to a message confirmation message carrying a cache time. That is, before the terminal in this application sends a message confirmation message pkt_ack to the server, the terminal can first query the cache time of the media stream data from the status information table maintained by itself, and encapsulate the queried cache time in the message confirmation message pkt_ack, and then obtain the target confirmation message pkt_ack_l7_buffer carrying the cache time.
- the terminal may encapsulate the inquired cache time in a confirmation message to obtain a target confirmation message carrying the cache time.
- the media stream data is audio and video data.
- info_l7_buffer (l7_buffer_time_len)
- the cache information info_l7_buffer includes the cache time l7_buffer_time_len
- the terminal A can encapsulate the queried cache information info_l7_buffer (l7_buffer_time_len) in the message confirmation message pkt_ack, and obtain the target confirmation message pkt_ack_l7_buffer carrying the cache time l7_buffer_time_len.
- the terminal when receiving media stream data sent by a server, determines whether there is packet loss based on the received media data packet. If there is packet loss, the terminal determines the identifier of the media loss packet (such as a sequence number), and encapsulates the identifier of the media loss packet and the cache time in a confirmation message, so that the server determines the media loss packet based on the identifier of the media loss packet.
- the identifier of the media loss packet such as a sequence number
- the server sends media data packets with sequence numbers 1 to 10 and the terminal receives media data packets with sequence numbers 1 to 4 and media data packets with sequence numbers 6 to 10, it can be determined that the media data packet with sequence number 5 is lost.
- the sequence number of the lost media data packet and the cache time can be encapsulated in a confirmation message, and then the encapsulated target confirmation message is sent to the server, so that the server can determine the lost media data packet based on the sequence number.
- Step 206 sending a target confirmation message to the server, so that when the server determines that the media stream data is lost, it can adapt the packet loss retransmission parameters according to the packet loss repair time and the buffer time in the target confirmation message, and Media lost packets are transmitted based on the packet loss retransmission parameters.
- Packet loss refers to the inability of one or more data packets to reach the destination through the Internet. For example, in the process of the server sending media stream data to the terminal in this application, some data packets may not reach the terminal.
- the packet loss repair time refers to the preset time threshold for packet loss repair.
- the packet loss retransmission parameter refers to a parameter used to reflect the retransmission strategy.
- the packet loss retransmission parameter in the present application may include packet loss retransmission parameters corresponding to different retransmission strategies.
- the packet loss retransmission parameter corresponding to the aggressive retransmission strategy is the first packet loss retransmission parameter; the packet loss retransmission parameter corresponding to the redundant backhaul strategy is the second packet loss retransmission parameter.
- Repairing media stream data refers to repairing packet loss data during the transmission of media stream data.
- the packet loss rate is high during traffic data transmission, the service experience on the terminal side may not be very poor.
- the key factor for the user experience on the terminal side is whether the network packet loss is repaired in time within a certain period of time. If it is repaired in time, there will be no lag when playing audio and video data on the terminal side.
- Media loss packets refer to media data packets lost during the transmission of media stream data. For example, if the server sends media data packets with sequence numbers 1 to 10, and the terminal receives media data packets with sequence numbers 1 to 4 and media data packets with sequence numbers 6 to 10, then the media data packet with sequence number 5 is the media loss packet.
- Step 208 receiving the media loss packet transmitted by the server based on the packet loss retransmission parameter.
- the terminal encapsulates the queried cache time in a confirmation message.
- the terminal can send a target confirmation message carrying the cache time to the server, so that when the server determines that packet loss occurs in the media stream data, the server can adapt the packet loss retransmission parameters based on the packet loss repair time and the cache time in the target confirmation message, and transmit the media loss packet based on the packet loss retransmission parameters before repairing the media stream data; further, the terminal can receive the media loss packet transmitted by the server based on the packet retransmission parameters.
- terminal A receives the media stream data corresponding to audio and video A sent by the server, it is assumed that terminal A encapsulates the queried cache information info_l7_buffer (l7_buffer_time_len) in the message confirmation message pkt_ack, and after obtaining the target confirmation message pkt_ack_l7_buffer carrying the cache time, terminal A can send the target confirmation message pkt_ack_l7_buffer to the server. After the server receives the above target confirmation message pkt_ack_l7_buffer sent by terminal A, the server can determine whether packet loss occurs when transmitting the media stream data.
- info_l7_buffer l7_buffer_time_len
- the server can adaptively adjust the retransmission strategy of the lost packet according to the preset packet loss repair time and the cache time l7_buffer_time_len in the target confirmation message pkt_ack_l7_buffer, and obtain the packet loss retransmission parameters corresponding to the retransmission strategy; further, the server can retransmit the media loss packet according to the obtained packet loss retransmission parameters, so that the terminal receives the media loss packet before repairing the media stream data, and repairs the media stream data (i.e., repairs the lost data) according to the media loss packet, so as to ensure as much as possible that there is enough media stream data for the next stage of use (such as audio and video playback) before the cache time is consumed.
- the server can adaptively adjust the retransmission strategy of the lost packet according to the preset packet loss repair time and the cache time l7_buffer_time_len in the target confirmation message pkt_ack_l7_buffer, and obtain the packet loss retransmission parameters corresponding
- the receiving end i.e. the terminal
- the sending end i.e. the server
- the receiving end i.e. the terminal
- the receiving end is in a state of "always waiting" for the lost message until the receiving end, i.e. the terminal, receives the retransmitted lost message and plays the subsequent traffic messages for audio and video.
- the cache time of the media stream data is queried; the cache time is encapsulated in a confirmation message to obtain a target confirmation message; the target confirmation message is sent to the server, so that when the server determines that the media stream data has been lost, it adapts the packet loss retransmission parameters according to the packet loss repair time and the cache time in the target confirmation message, and transmits the media loss packet according to the packet loss retransmission parameters before repairing the media stream data; and the media loss packet transmitted by the receiving server based on the packet loss retransmission parameters.
- the server can adaptively adjust the packet loss retransmission parameters according to the packet loss repair time and the cache time in the target confirmation message. That is, after receiving the above cache time, the server can adaptively adjust the packet loss retransmission parameters corresponding to the retransmission strategy of the lost message.
- the packet loss repair method involved in this embodiment can well balance the relationship between traffic sending and packet loss repair. While optimizing the user-side freeze caused by packet loss, it reduces the impact on the subsequent traffic transmission efficiency. It can quickly and effectively repair network packet loss while ensuring that the service experience on the user terminal side is not affected, which is conducive to improving the user-side experience quality of Internet services mainly based on audio and video.
- the media stream data is cached in an application receiving queue corresponding to the application program; before querying the cache time of the media stream data, the method further includes:
- the application refers to a target application that uses the transmitted media stream data. For example, after receiving the media stream data sent by the server, the terminal plays the received media stream data through application A, and application A is the target application.
- the application receiving queue refers to the application receiving queue corresponding to the application program, which may also be called the application cache queue in some cases.
- each application program corresponds to an application receiving queue, for example, the application receiving queue corresponding to application program A is Q1.
- the cache information refers to the cache information of the application receiving queue corresponding to the application.
- the cache information in this application may include:
- the cache duration of the data in the application cache queue is l7_buffer_time_len;
- frame_last Information about the last audio and video frame in the application cache queue, frame_last, specifically including:
- info_l7_buffer ⁇ l7_buffer_time_len,l7_buffer_frame_amount, frame_last ⁇ (2)
- the status information table refers to a table used to store cache information of different applications running in the terminal.
- the status information table in this application may include: the application identifier of the application, the cache information corresponding to the application, and the update time.
- the update time refers to the update time of the cache information corresponding to the application.
- Figure 3 it is a schematic diagram of the application status information table of the user terminal. It can be seen from Figure 3 that the cache information of the application corresponding to the application identifier 1 currently running in the terminal is Info_l7_buffer_1, and the update time corresponding to the cache information Info_l7_buffer_1 is Time_1.
- the terminal can cache the received media stream data in the application receiving queue corresponding to the application.
- the terminal can periodically obtain the cache information info_l7_buffer of each application receiving queue through the monitoring module, and feed back the obtained cache information info_l7_buffer to the transport layer.
- the terminal can maintain the status table shown in Figure 3 through the monitoring module, and periodically update the cache information info_l7_buffer of different applications in the table.
- the terminal can monitor the media stream data in the application receiving queue corresponding to each application through the monitoring module, that is, the monitoring module in the terminal can determine the cache information info_l7_buffer of each application based on the media stream data in the application receiving queue corresponding to each application, and periodically update the cache information info_l7_buffer of each application in the status information table maintained by itself as shown in Figure 3.
- the terminal can periodically query the cache time of the application playing the media stream data from the status information table shown in FIG3 according to a preset strategy or preset protocol.
- the time interval T_gain_l7 for the terminal to periodically obtain the cache information info_l7_buffer of each application can be pre-configured by the administrator and reflected in the configuration file.
- the media stream data is audio and video data.
- FIG 4 it is a schematic diagram of the user terminal periodically obtaining the cache information of the application receiving queue.
- the monitoring module in Figure 4 is located between the application layer and the transport layer, and its main goal is to obtain the cache information info_l7_buffer of different applications in a timely manner, that is, in the method provided in the present application, in order to obtain the cache information info_l7_buffer in the application receiving queue corresponding to each application, a monitoring module can be added in the application layer, or a monitoring module can be added between the application layer and the transport layer.
- terminal A In the process of terminal A receiving the media stream data corresponding to the audio and video A sent by the server, assuming that terminal A caches the received media stream data corresponding to the audio and video A in the application receiving queue Q1 corresponding to application 1, then terminal A can determine the cache information as Info_l7_buffer_1 based on the media stream data corresponding to the audio and video A to be played in the application receiving queue Q1, wherein the cache information Info_l7_buffer_1 includes the cache duration l7_buffer_time_len1.
- terminal A can store cache information Info_l7_buffer_1 in the state information table shown in FIG3, that is, terminal A can update cache information Info_l7_buffer_1 in the entry of application identifier 1 corresponding to application 1 as shown in FIG3, so that when terminal A needs to send a target confirmation message to the server, terminal A can query the cache time of the media stream data corresponding to audio and video A from the state information table shown in FIG3 as l7_buffer_time_len1, and encapsulate the cache time l7_buffer_time_len1 found in the confirmation message pkt_ack, and obtain the target confirmation message pkt_ack_l7_buffer.
- the data sending end i.e., the server
- the server can adaptively adjust the packet loss repair strategy according to the cache information sent by the receiving end, i.e., the terminal.
- the server can timely grasp whether the terminal side (taking audio and video as an example) will (will) have a stuck phenomenon, and adjust the aggressiveness of the packet loss repair according to this information, effectively reducing the waiting time for a certain packet loss data on the user terminal side, thereby optimizing the service experience on the user terminal side.
- the method further includes: when the application is switched to a closed state, deleting the application status bar of the application from the status information table; when other applications are switched to an open state, adding application status bars corresponding to application identifiers of other applications to the status information table.
- the closed state refers to a state in which the application stops running. For example, the user closes the application A through a trigger operation, and the terminal switches the application A from the open state to the closed state in response to the user's trigger operation.
- the application status bar refers to the application status entry in the status information table.
- each row in the status information table can be used as the application status bar of the application.
- the information contained in the application status bar of the application includes the application identifier of the application, cache information (Info_l7_buffer) and update time.
- Other applications refer to applications other than the application currently using the transmitted media stream data, that is, other applications and applications in this application are used to distinguish different applications.
- application A in the terminal is the application that plays the media stream data
- other applications can be other applications in the terminal except application A, for example, other applications can be application B and application C in the terminal.
- the open state refers to the state in which the application is open and running. For example, the user opens application A through a trigger operation, and the terminal switches application A from the closed state to the open state in response to the user's trigger operation.
- the application identifier is an identifier used to uniquely identify an application.
- the other applications may be application B and application C in the terminal.
- the application identifier of other application B is B
- the application identifier of other application C is C.
- the terminal can maintain the status table as shown in Figure 3 through the monitoring module, and periodically update the cache information info_l7_buffer of different applications in the table, that is, the terminal can monitor the media stream data in the application receiving queue corresponding to each application through the monitoring module, and determine the cache information info_l7_buffer of each application based on the media stream data in the application receiving queue corresponding to each application.
- the terminal After the terminal periodically updates the cache information info_l7_buffer of each application in the status information table maintained by itself as shown in Figure 3, when the terminal detects that the target application is switched to the closed state, the terminal can delete the application status bar of the target application from the status information table as shown in Figure 3; or, when the terminal detects that other applications are switched to the open state, the terminal can add the application status bar corresponding to the application identifier of the other application in the status information table as shown in Figure 3.
- the other applications may be other applications in the terminal except application 1, for example, the other applications may be application 2 and application 3 in the terminal.
- the terminal may delete the application status bar of application 1 from the status information table as shown in FIG3, that is, the terminal may delete the application status bar of the row corresponding to application identifier 1 of application 1 from the status information table as shown in FIG3;
- the terminal may add the application status bar corresponding to application identifier 3 of other application 3 in the status information table as shown in FIG3, for example, the terminal may add the application status bar of the row corresponding to application identifier 3 of application 3 from the status information table as shown in FIG3.
- the data sending end i.e. the server
- the server can promptly understand whether there will be (or will be) a freeze on the terminal side (taking audio and video as an example), and adjust the aggressiveness of the packet loss repair based on this information, effectively reducing the waiting time for a certain packet loss data on the user terminal side, thereby optimizing the service experience on the user terminal side.
- the step of encapsulating the cache time in a confirmation message to obtain a target confirmation message includes: when it is detected that the cache time in the status information table is updated, encapsulating the updated cache time in the confirmation message to obtain a target confirmation message.
- the updated cache time refers to the updated cache time. For example, at time T1, the cache time of application 1 in the status information table is S1. At time T2, the cache time of application 1 in the status information table is updated and the updated cache time is S2.
- the terminal in the process of receiving media stream data sent by the server, when the terminal detects that the cache time of the media stream data in the status information table is updated, the terminal can obtain the updated cache time and encapsulate the updated cache time in the confirmation message to obtain the target confirmation message; further, after the terminal obtains the target confirmation message, the process of the terminal sending the target confirmation message to the server can be immediately triggered. That is, the cache time in the latest cache information in this application will trigger the automatic generation of the target confirmation message.
- the terminal can obtain the updated cache time S2, and encapsulate the updated cache time S2 in the confirmation message pkt_ack to obtain the target confirmation message pkt_ack_l7_buffer; further, when the terminal obtains the target confirmation message pkt_ack_l7_buffer, the terminal can obtain the updated cache time S2.
- the process of the terminal sending the target confirmation message pkt_ack_l7_buffer to the server can be immediately triggered, so that the server can receive the target confirmation message in time, and based on the cache time carried in the target confirmation message, timely and accurately grasp whether the terminal side is (about to) experience a freeze, and adjust the aggressiveness of packet loss repair based on this information, thereby optimizing the service experience.
- the method before querying the cache time of the media stream data, the method further includes: generating a confirmation message when the media stream data is received; and querying the cache time of the media stream data includes: when the confirmation message is detected, querying the cache time of the media stream data.
- the terminal can generate a confirmation message.
- the terminal can query the latest cache time of the transmitted media stream data from the state information table maintained by itself, and encapsulate the latest cache time queried in the confirmation message to obtain the target confirmation message.
- the process of the terminal sending the target confirmation message to the server can be immediately triggered. That is, the latest generated confirmation message in this application will trigger the automatic acquisition of the latest cache time and automatically generate the target confirmation message.
- the terminal can generate a pkt_ack message.
- the terminal can query the latest cache information info_l7_buffer corresponding to the application that plays the media stream data A from the status information table maintained by itself as shown in Figure 3.
- the latest cache information info_l7_buffer includes the latest cache time S2, and the queried latest cache time S2 is encapsulated in the pkt_ack message to obtain the target confirmation message pkt_ack_l7_buffer.
- the process of the terminal sending the target confirmation message pkt_ack_l7_buffer to the server can be immediately triggered, so that the server can receive the target confirmation message in time, and based on the cache time carried in the target confirmation message, timely and accurately grasp whether the terminal side is (about to) experience a freeze, and adjust the aggressiveness of packet loss repair based on this information, thereby optimizing the service experience.
- the step of determining cache information based on the media stream data in the application receiving queue includes:
- Step 502 Obtain the start frame data and the end frame data of the media stream data in the application receiving queue
- Step 504 determining media cache data according to the start frame data and the end frame data
- Step 506 Determine the buffering time according to the time interval between the start frame data and the end frame data.
- the starting frame data refers to the first available data in the application receiving queue.
- the starting frame data in the present application may be the first available frame data in the application receiving queue.
- the end frame data refers to the last available data in the application receiving queue.
- the end frame data in the present application may be the last available frame data in the application receiving queue.
- Media cache data refers to data used to reflect relevant information of media stream data in the application receiving queue.
- the media cache data in this application includes at least: a) the cache length of data in the application receiving queue l7_buffer_time_len; b) the number of complete audio and video frames in the application receiving queue l7_buffer_frame_amount; c) the information frame_last of the last audio and video frame in the application receiving queue.
- the terminal can cache the received media stream data in the application receiving queue corresponding to the application, and the terminal can periodically obtain the cache information info_l7_buffer of each application receiving queue through the monitoring module, that is, the terminal can obtain the starting frame data and the ending frame data of the media stream data from the application receiving queue corresponding to each application through the monitoring module, and determine the media cache data according to the starting frame data and the ending frame data.
- the terminal can determine the number of complete audio and video frames l7_buffer_frame_amount in the application receiving queue according to the frame sequence number of the starting frame data and the ending frame data; further, the terminal can determine the cache time according to the time interval between the starting frame data and the ending frame data.
- the terminal determines that the time interval between the starting frame data and the ending frame data is S according to the timestamp of the starting frame data and the timestamp of the ending frame data, and the terminal can use the time interval S as the cache time. It can be understood that in some cases, the terminal can also use the timestamp of the starting frame data and the timestamp of the ending frame data as the cache time.
- the identifier of the audio and video frame frame_last_id f6 and the reception degree of the audio and video frame frame_last_rcv, where frame_last_rcv specifically includes the number of messages shared by the audio and video frame frame_last_pkt_amount and the number of messages currently received frame_last_pkt_rcv_amount;
- the information frame_last of the last audio and video frame in the application receiving queue can be expressed by the aforementioned formula (1), and the reception degree frame_last_rcv of the audio and video frame can be calculated based on the two parameters of the number of packets currently received frame_last_pkt_rcv_amount and the number of packets shared by the audio and video frame frame_last_pkt_amount.
- the calculation method can be shown in the following formula (3):
- the terminal can maintain the status table shown in Figure 3 through the monitoring module, and periodically update the cache information info_l7_buffer of different applications in the table.
- the data sending end i.e. the server
- the server can adaptively adjust the packet loss repair strategy according to the cache information sent by the receiving end, i.e. the terminal.
- the server can promptly understand whether there will be (or will be) a freeze on the terminal side (taking audio and video as an example), and adjust the aggressiveness of the packet loss repair based on this information, effectively reducing the waiting time for a certain packet loss data on the user terminal side, thereby optimizing the service experience on the user terminal side.
- the buffering time is determined according to the time interval between the start frame data and the end frame data. It includes: obtaining a first timestamp of the starting frame data and a second timestamp of the ending frame data; the first timestamp is the playback time point of the starting frame data in the player of the application, and the second timestamp is the playback time point of the ending data in the player; based on the difference between the second timestamp and the first timestamp, determining the cache time.
- the first timestamp and the second timestamp in the present application are only used to distinguish the timestamps corresponding to different frame data.
- the terminal can cache the received media stream data in the application receiving queue corresponding to the application, and the terminal can periodically obtain the cache information info_l7_buffer of each application receiving queue through the monitoring module, that is, the terminal can obtain the start frame data and end frame data of the media stream data from the application receiving queue corresponding to each application through the monitoring module, and obtain the first timestamp of the start frame data and the second timestamp of the end frame data. Further, the terminal can calculate the difference between the second timestamp and the first timestamp, and take the absolute value of the difference as the cache time. It can be understood that in some cases, the terminal can also use the first timestamp of the start frame data and the second timestamp of the end frame data as the cache time.
- s of the difference d 20s as the cache time.
- the terminal can maintain the status table shown in Figure 3 through the monitoring module, and periodically update the cache time in the cache information info_l7_buffer of different applications in the table.
- the data sending end i.e. the server
- the server can adaptively adjust the packet loss repair strategy according to the cache information sent by the receiving end, i.e. the terminal.
- the server can promptly understand whether there will be (or will be) a freeze on the terminal side (taking audio and video as an example), and adjust the aggressiveness of the packet loss repair based on this information, effectively reducing the waiting time for a certain packet loss data on the user terminal side, thereby optimizing the service experience.
- the method further includes: obtaining first start frame data and first end frame data of the media stream data in an application receiving queue of the application layer; obtaining second start frame data and second end frame data of the media stream data in a data receiving queue of the transport layer; and determining the cache time based on a first time interval between the first start frame data and the first end frame data and a second time interval between the second start frame data and the second end frame data.
- the first start frame data and the second start frame data are used to distinguish the start frame data in different queues, and the first end frame data and the second end frame data are used to distinguish the end frame data in different queues.
- the terminal can cache the received media stream data in a queue.
- the queue in the embodiment of the present application includes a cache queue of the application layer player (also referred to as an application receiving queue) and a data receiving queue of the transport layer.
- the terminal can obtain the first start frame data and the first end frame data of the media stream data in the application receiving queue of the application layer; at the same time, if the data in the data receiving queue of the transport layer is not empty, the terminal can obtain the second start frame data and the second end frame data of the media stream data in the data receiving queue of the transport layer; further, the terminal can determine the cache time based on the first time interval between the first start frame data and the first end frame data, and the second time interval between the second start frame data and the second end frame data, that is, the terminal can calculate the first time interval between the first start frame data and the first end frame data, and the second time interval between the second start frame data and the second end frame data, and determine the sum value between the first time interval and the second time interval, and use the determined sum value as the final cache time; or, in some cases, the terminal can take the absolute values of the first time interval and the second time interval respectively, determine the sum value between the absolute values of the first time interval and the second time interval, and use the determined sum value as the final cache time
- the calculation method adopted by the terminal to calculate the first time interval between the first start frame data and the first end frame data, and the second time interval between the second start frame data and the second end frame data includes: the terminal calculates the difference between the timestamp of the first start frame data and the timestamp of the first end frame data, and takes the absolute value of the difference as the first time interval; similarly, the terminal calculates the difference between the timestamp of the second start frame data and the timestamp of the second end frame data, and takes the absolute value of the difference as the second time interval.
- the user terminal carries the information of the current application layer (such as a player) data cache time when replying to the message confirmation message, so that the data sending end (cloud server) can adaptively adjust the retransmission strategy of the previously lost message after receiving the above cache time, and can well balance the relationship between traffic sending and packet loss repair. While optimizing the user-side lag caused by packet loss, it reduces the impact on subsequent traffic transmission efficiency, and can quickly and effectively repair network packet loss while ensuring that the service experience on the user terminal side is not affected, which is conducive to improving the user-side experience quality of Internet services mainly based on audio and video.
- the data sending end cloud server
- transmitting the media loss packet according to the packet loss retransmission parameter includes: before repairing the media stream data, transmitting the media loss packet to the routing node according to the packet loss retransmission parameter, and when the packet loss retransmission parameter meets the priority condition, instructing the routing node to forward the media loss packet according to the priority condition.
- the routing node refers to the intermediate routing node in the process of the terminal receiving the media stream data sent by the server.
- the routing node in this application can be a gateway, an intermediate node router, etc.
- the routing node is used to forward the received media stream data.
- the priority condition refers to the condition used to filter the packet loss retransmission parameter.
- the priority condition in the present application can be set to: determine whether the packet loss retransmission parameter meets the preset target value.
- the preset target value can be 1, that is, when the packet loss retransmission parameter meets the preset target value of 1, it means that the packet loss retransmission parameter meets the priority condition.
- the terminal sends a target confirmation message to the server, so that when the server determines that the media stream data has packet loss, the server can adapt the packet loss retransmission parameter according to the packet loss repair time and the cache time in the target confirmation message, and before repairing the media stream data, the server transmits the media loss packet according to the adaptive packet loss retransmission parameter, that is, before repairing the media stream data, the server can transmit the media loss packet to the routing node according to the adaptive packet loss retransmission parameter, and when the routing node detects that the packet loss retransmission parameter meets the priority condition, it instructs the routing node to forward the media loss packet according to the priority condition, that is, when the routing node detects that the packet loss retransmission parameter meets the priority condition, the routing node can adjust the processing priority of the message containing the media loss packet, for example, the routing node can set the processing priority of the message containing the media loss packet to high, so that the routing node forwards the message through a high priority forwarding queue.
- the server
- the step of sending a target confirmation message to the server includes: when the cache time is less than the packet loss repair time, returning a preset number of target confirmation messages to the server; the packet loss repair time is determined based on the delay information of the media stream data during the transmission process.
- the delay information in this application may include SRTT and RTT, and RTT (Rround-Trip Time) represents the round-trip delay.
- the terminal encapsulates the queried cache time in the confirmation message.
- the terminal can adopt an aggressive return strategy when returning the target confirmation message to the server. For example, the terminal can return a preset number of target confirmation messages to the server. That is, when the cache time is less than the packet loss repair time, the terminal can return the target confirmation message to the server.
- the repair time When the repair time is reached, it means that the application playing the media stream data will soon be able to play the remaining cached data; in particular, if the player of the application has finished playing all the data in its cache, and the terminal has not promptly "informed" the sender (server), problems such as freezing may occur; in the actual transmission process, the target confirmation message fed back by the terminal may be delayed, for example, the terminal may reply to a target confirmation message for every 5 messages received, and the target confirmation message may also be lost. Therefore, in the embodiment of the present application, when the terminal determines that the cache time is less than the packet loss repair time, the terminal can return the same M copies of the target confirmation message to the server to prevent the target confirmation message from being lost during the return process.
- the terminal encapsulates the queried cache time l7_buffer_time_len in the confirmation message, and after obtaining the target confirmation message pkt_ack_l7_buffer, when the terminal determines that the cache time l7_buffer_time_len is less than the packet loss repair time Time_threshold, the terminal will adopt an "aggressive" redundant return strategy when returning pkt_ack_l7_buffer, that is, the terminal returns the same M copies of pkt_ack_l7_buffer to prevent pkt_ack_l7_buffer from being lost during the return process;
- the data sending end i.e. the server
- the server can promptly understand whether there will be (or will be) a freeze on the terminal side (taking audio and video as an example), and adjust the aggressiveness of the packet loss repair based on this information, effectively reducing the waiting time for a certain packet loss data on the user terminal side, thereby optimizing the service experience.
- FIG6 another method for transmitting traffic data is provided.
- the method can be executed by a server or a terminal alone, or by a server and a terminal together.
- the method is applied to the server in FIG1 as an example for description, and includes the following steps:
- Step 602 During the process of transmitting the media stream data to the terminal, a target confirmation message returned by the terminal is received; the target confirmation message carries the buffering time of the terminal for the media stream data.
- Step 604 When it is determined based on the target confirmation message that the media stream data has packet loss, adaptive packet loss retransmission parameters are set according to the packet loss repair time and the buffer time in the target confirmation message.
- Step 606 Transmit the media loss packet corresponding to the media stream data according to the packet loss retransmission parameter, so that the terminal receives the media loss packet before repairing the media stream data.
- the server in the process of transmitting media stream data from the server to the terminal, the server periodically receives a target confirmation message returned by the terminal, and the target confirmation message carries the terminal's cache time for the media stream data.
- the server determines that the media stream data has packet loss based on the target confirmation message, the server can adaptively adjust the packet loss retransmission parameter according to the packet loss repair time and the cache time in the target confirmation message, and transmit the media loss packet corresponding to the media stream data according to the packet loss retransmission parameter, so that the terminal receives the media loss packet before repairing the media stream data.
- the media stream data is audio and video data.
- terminal A receives the media stream data corresponding to the audio and video A sent by the server, it is assumed that terminal A encapsulates the queried cache information info_l7_buffer (l7_buffer_time_len) in the message confirmation message pkt_ack, and obtains the target confirmation message pkt_ack_l7_buffer carrying the cache time.
- Terminal A can send the target confirmation message pkt_ack_l7_buffer to the server.
- the server After the server receives the above-mentioned target confirmation message pkt_ack_l7_buffer sent by terminal A, the server can determine whether the media stream data has packet loss based on the target confirmation message.
- the server can adaptively adjust the retransmission strategy of the lost message according to the preset packet loss repair time and the cache time l7_buffer_time_len in the target confirmation message pkt_ack_l7_buffer, and obtain the packet loss retransmission parameter corresponding to the retransmission strategy. Further, the server can transmit the media loss corresponding to the media stream data according to the obtained packet loss retransmission parameter.
- the terminal receives the media loss packet before repairing the media stream data, and repairs the lost data based on the media loss packet, so as to ensure that there is enough media data for the next stage of use (such as audio and video playback) before the cache time is consumed.
- the judgment method in the embodiment of FIG2a can be used to judge whether the media stream data has packet loss.
- the receiving end i.e. the terminal
- the sending end i.e. the server
- the receiving end i.e. the terminal
- the receiving end is in a state of "always waiting" for the lost message, and can only play the subsequent traffic messages for audio and video after the receiving end, i.e. the terminal, receives the retransmitted lost message.
- a target confirmation message returned by the terminal is received; the target confirmation message carries the cache time of the terminal for the media stream data; when it is determined based on the target confirmation message that the media stream data has packet loss, a packet loss retransmission parameter is adaptively set according to the packet loss repair time and the cache time in the target confirmation message; and a media loss packet corresponding to the media stream data is transmitted according to the packet loss retransmission parameter, so that the terminal receives the media loss packet before repairing the media stream data.
- the server can adaptively adjust the packet loss retransmission parameters based on the packet loss repair time and the cache time in the target confirmation message. That is, after receiving the above cache time, the server can adaptively adjust the packet loss retransmission parameters corresponding to the retransmission strategy of the lost message.
- the packet loss repair method involved in this embodiment can well balance the relationship between traffic sending and packet loss repair. While optimizing the user-side freeze caused by packet loss, it reduces the impact on subsequent traffic transmission efficiency. It can quickly and effectively repair network packet loss while ensuring that the service experience on the user terminal side is not affected, which is conducive to improving the user-side experience quality of Internet services mainly based on audio and video.
- the step of adaptively adjusting the packet loss retransmission parameters according to the packet loss repair time and the cache time in the target confirmation message includes: comparing the packet loss repair time with the cache time in the target confirmation message to obtain a comparison result; when the comparison result indicates that the cache time is less than the packet loss repair time, adaptively adjusting the first packet loss retransmission parameters; when the comparison result indicates that the cache time is greater than or equal to the packet loss repair time, adaptively adjusting the second packet loss retransmission parameters.
- the comparison result refers to the size relationship between the packet loss repair time and the cache time in the target confirmation message.
- the comparison results in this application may include three situations: the first situation is that the cache time is less than the packet loss repair time, the second situation is that the cache time is equal to the packet loss repair time, and the third situation is that the cache time is greater than the packet loss repair time.
- the first packet loss retransmission parameter and the second packet loss retransmission parameter are used to distinguish the packet loss retransmission parameters corresponding to different backhaul strategies.
- the packet loss retransmission parameter when the "aggressive" redundant backhaul strategy is adopted is the first packet loss retransmission parameter
- the packet loss retransmission parameter when the default backhaul strategy is adopted is the second packet loss retransmission parameter.
- the server can adapt the packet loss retransmission parameter according to the packet loss repair time and the cache time in the target confirmation message, that is, the server compares the packet loss repair time with the cache time in the target confirmation message to obtain a comparison result; when the comparison result indicates that the cache time is less than the packet loss repair time, the server adapts the first packet loss retransmission parameter; when the comparison result indicates that the cache time is greater than or equal to the packet loss repair time, the server adapts the second packet loss retransmission parameter.
- the cache time T_buffer ⁇ packet loss repair time T_recovery it means that the packet loss can be repaired within the cache time, and the player on the terminal side will not be stuck at this time; if the cache time T_buffer ⁇ packet loss repair time T_recovery, it means that the packet loss has not been repaired when the data in the queue is consumed, and the player on the terminal side will be stuck at this time; in summary, different packet losses will have different impacts on the QoE on the terminal side, so the server needs to adapt the packet loss repair mechanism to this differentiated impact.
- T_buffer is much larger than T_recovery, for example, T_buffer ⁇ 3 times T_recovery, it means that the packet loss is not urgent to repair.
- the sender i.e., the server
- the sender will adopt a relatively mild packet loss retransmission strategy, i.e., the server will automatically Adapt to the second packet loss retransmission parameter corresponding to the relatively mild packet loss retransmission strategy; if T_buffer is slightly greater than or equal to T_recovery, it means that the packet loss must be repaired within T_buffer.
- the sender i.e.
- the server will adopt a relatively aggressive packet loss retransmission strategy to ensure that the packet loss will not be lost again, that is, the server adapts to the second packet loss retransmission parameter corresponding to the relatively aggressive packet loss retransmission strategy; if T_buffer is less than T_recovery, it means that the packet loss is facing a more severe repair problem.
- the sender i.e. the server, will adopt a more aggressive packet loss retransmission strategy, that is, the server adapts to the first packet loss retransmission parameter corresponding to the more aggressive packet loss retransmission strategy.
- the end-cloud collaborative method used in this embodiment can accurately grasp the service experience on the user side, which is beneficial to improving the competitiveness of cloud server providers in optimizing QoE (Quality of Experience) indicators such as audio and video freezes, screen distortion, and mosaics.
- QoE Quality of Experience
- the method further includes: when the comparison result indicates that the cache time is less than the packet loss repair time, retransmitting a preset number of media loss packets according to a preset sending time interval; wherein the sending time interval is determined based on the delay information of the media stream data during the transmission process and the preset number; when the comparison result indicates that the cache time is greater than or equal to the packet loss repair time, retransmitting the media loss packet once.
- the delay information may include SRTT and RTT
- RTT Red-Trip Time
- SRTT represents the smooth round-trip time
- the server when the server determines that packet loss occurs in the media stream data based on the target confirmation message, the server can adaptively adjust the packet loss retransmission parameters according to the packet loss repair time and the cache time in the target confirmation message, that is, the server compares the packet loss repair time with the cache time in the target confirmation message to obtain a comparison result; when the comparison result indicates that the cache time is less than the packet loss repair time, the server can retransmit a preset number of media loss packets according to the preset sending time interval.
- the sender i.e., the server
- the sender retransmits 4 identical pkt_loss messages to the terminal
- the sender i.e., the server
- the sender retransmits one pkt_loss message to the terminal.
- the packet loss repair method involved in this embodiment has a good balance between traffic transmission and packet loss repair. While optimizing the freeze on the terminal side caused by packet loss, it reduces the impact on the subsequent traffic transmission efficiency, which is conducive to improving the user experience of existing Internet services based on audio and video, and enhancing the competitiveness of server manufacturers.
- the method after receiving the target confirmation message returned by the terminal, the method further includes: when it is determined based on the target confirmation message that the media stream data has not been lost, adaptively transmitting the bit rate according to the packet loss repair time and the buffer time in the target confirmation message; or adaptively transmitting the bit rate according to the preset number of frames and the number of buffered frames in the target confirmation message; based on Transmission bit rate, transmitting media stream data to the terminal.
- the transmission bit rate refers to the bit rate for transmitting media stream data, that is, the server can select different bit rates to transmit the target media stream data. For example, at time T1, the server transmits media stream data A to the terminal according to the original bit rate A1; after a period of time, at time T2, the server can select a bit rate A2 lower than the original bit rate A1 to transmit media stream data A to the terminal, so that the server can send as many audio and video frames as possible to the terminal under limited network resources.
- the preset frame number refers to the preset frame number.
- the preset frame number can be set to 10 in advance. That is, when the number of cached frames in the target confirmation message is less than the preset frame number 10, it means that there are fewer audio and video frames cached on the terminal side. At this time, the server needs to send as many audio and video frames as possible to the production terminal under limited network resources to prevent freezes and other phenomena.
- the number of cached frames in the target confirmation message refers to the number of frames cached on the terminal side. For example, if the number of cached frames in the application receiving queue of the application that plays the media stream data is 30, then the number of cached frames in the target confirmation message is 30.
- the server can adapt the transmission bit rate according to the packet loss repair time and the cache time in the target confirmation message; or, the server can adapt the transmission bit rate according to the preset number of frames and the number of cached frames in the target confirmation message; further, the server can transmit the media stream data to the terminal based on the adaptive transmission bit rate.
- the server determines that the media stream data A has not been lost based on the target confirmation message, that is, when the server does not detect the loss of the message, if the cache time l7_buffer_time_len in the cache information info_l7_buffer ⁇ the packet loss repair time Time_threshold; or, if the cache frame number l7_buffer_frame_amount in the cache information info_l7_buffer ⁇ the preset frame number l7_buffer_frame_amount_threshold, it means that the cache time and cached audio and video frames on the terminal side are small. At this time, the server needs to send as many audio and video frames as possible under limited network resources.
- the server can Select audio and video frames with a lower bitrate as the data source. For example, the server can record the bitrate_(i-1) of the audio and video frames sent in the past period of time.
- the server will select the latest audio and video bitrate bitrate_i, where bitrate_i ⁇ bitrate_(i-1), that is, the server will send media stream data A to the terminal based on the latest audio and video bitrate bitrate_i.
- l7_buffer_frame_amount_threshold can be configured by the administrator and declared in the configuration file.
- the data sending end i.e. the server
- the server can adaptively adjust the packet loss repair strategy based on the cache information sent by the receiving end, i.e. the terminal.
- the server can promptly understand whether there will (or will be) a freeze on the terminal side (taking audio and video as an example), and automatically adjust the transmission bit rate when no packet loss occurs, thereby optimizing the service experience.
- the step of adaptively transmitting the bit rate according to the packet loss repair time and the cache time in the target confirmation message includes: when the cache time in the target confirmation message is less than the packet loss repair time, reducing the original bit rate value of the media stream data to obtain the transmission bit rate; the step of adaptively transmitting the bit rate according to the preset frame number and the cache frame number in the target confirmation message includes: when the cache frame number in the target confirmation message is less than the preset frame number, reducing the original bit rate value of the media stream data to obtain the transmission bit rate.
- the original bit rate value refers to the initial bit rate value in the process of the server transmitting media stream data to the terminal.
- the server responds to the traffic request message of the terminal, selects the data source with the bit rate value A1, and transmits the media stream data to the terminal based on the bit rate value A1, then the original bit rate value is A1.
- the server can adapt the transmission bit rate according to the packet loss repair time and the cache time in the target confirmation message, that is, when the cache time in the target confirmation message is less than the packet loss repair time, the server can reduce the original bit rate value of the media stream data to obtain the reduced transmission bit rate; or, when the number of cached frames in the target confirmation message is less than the preset number of frames, the server can also reduce the original bit rate value of the media stream data.
- the original bit rate value is used to obtain the reduced transmission bit rate.
- the method provided by the present application when the cache time is less than the packet loss repair time, and the number of cached frames is less than the preset number of frames, indicates that the cache time and cached audio and video frames on the terminal side are less.
- the server needs to send as many audio and video frames as possible under limited network resources. Therefore, the server needs to reduce the original bit rate value of the media stream data and send the media stream data to the terminal based on the reduced transmission bit rate.
- the data sending end i.e., the server
- the server can adaptively adjust the packet loss repair strategy according to the cache information sent by the receiving end, i.e., the terminal.
- the server can promptly grasp whether the terminal side is (about to) experience a freeze (taking audio and video as an example), and automatically adjust the transmission bit rate when no packet loss occurs, thereby optimizing the service experience.
- the transmission code rate is a first code rate value; the method also includes: when the cache time in the target confirmation message is greater than the packet loss repair time, and the number of cached frames in the target confirmation message is greater than the preset number of frames, selecting a second code rate value as the transmission code rate; wherein the second code rate value is greater than the first code rate value.
- the second bit rate value and the first bit rate value are used to distinguish different bit rate values.
- the server can adaptively adjust the transmission bit rate according to the packet loss repair time and the cache time in the target confirmation message, that is, when the cache time in the target confirmation message is greater than the packet loss repair time, and the number of cached frames in the target confirmation message is greater than the preset number of frames, the server can select the second bit rate value as the transmission bit rate; wherein the second bit rate value is greater than the first bit rate value. That is, the method provided by the present application, when the cache time is greater than the packet loss repair time, and the number of cached frames is greater than the preset number of frames, indicates that the cache time and cached audio and video frames on the terminal side are large.
- the server does not need to send as many audio and video frames as possible under limited network resources. Therefore, the server can increase the original bit rate value of the media stream data, and send the media stream data to the terminal based on the increased transmission bit rate. Therefore, the data sending end, i.e., the server, can adaptively adjust the packet loss repair strategy according to the cache information sent by the receiving end, i.e., the terminal. By adding the cache information on the terminal side in the message confirmation message, the server can timely understand whether there will be (or will be) a freeze on the terminal side (taking audio and video as an example), and automatically adjust the transmission bit rate when no packet loss occurs, thereby optimizing the service experience.
- the target confirmation message carries the end frame identifier and reception degree parameter of the media stream data; the method further includes: when the reception degree parameter meets the preset conditions, the end frame data corresponding to the end frame identifier has not been sent completely, and the transmission window of the media stream data is limited, the end frame data continues to be transmitted to the terminal.
- the end frame identifier refers to the identifier of the last audio or video frame in the application receiving queue of the application that plays or uses the media stream data.
- the identifier of the last audio or video frame of media stream data A is f203
- the end frame identifier of the media stream data carried by the target confirmation message is f203.
- the reception degree parameter refers to the reception degree parameter of the last audio or video frame in the application receiving queue of the application that plays or uses the media stream data.
- the reception degree parameter can be represented by frame_last_rcv.
- the reception degree frame_last_rcv of the audio or video frame can be calculated based on two parameters: the number of messages currently received, frame_last_pkt_rcv_amount, and the number of messages shared by the audio or video frame, frame_last_pkt_amount. For example, the calculation method can be as shown in the aforementioned formula (3).
- Window limitation refers to the window limitation specified in the congestion control method. If the window is limited, no traffic packets can be sent until the window is no longer limited.
- the server can temporarily ignore the influence of the window limit, that is, the server can continue to transmit the end frame data to the terminal until all the remaining messages of the audio and video frame are sent to the terminal. That is, in this implementation, when the server is transmitting the media stream data, the server will optimize the last audio and video frame frame_last received by the user terminal.
- the server can determine whether the last audio and video frame frame_last_id has been sent. If the last audio and video frame frame_last_id has not been sent, the server can continue to send the remaining content corresponding to the last audio and video frame frame_last_id.
- the above process is not affected by window limitations, that is, if the window is limited and messages cannot be sent, the last audio and video frame on the terminal side cannot be completely received.
- the terminal side will cause problems such as freeze, screen distortion, and mosaic. It can be understood that before sending a certain audio and video frame, the server will know how many messages there are in this frame. For example, a certain video frame contains a total of 20 messages, and its message numbers are: 10-19. The server sends messages (numbers: 10-16) in sequence. The remaining messages (numbers: 17-19) may not be sent in time due to window restrictions and other reasons.
- the method provided in the embodiment of the present application enables the server to continue to implement an aggressive traffic sending strategy when the window is limited, that is, if the window is limited and more than half of the messages of the audio and video frame have been sent, the server will automatically ignore the impact of the window restriction and continue to send the remaining messages of the audio and video frame. Therefore, by optimizing the last audio and video frame received by the user terminal to ensure that the last audio and video frame on the terminal side can be fully received, the phenomenon of freeze, screen distortion, mosaic, etc. on the terminal side is effectively avoided, which is conducive to improving the user experience of existing Internet services based on audio and video and enhancing the competitiveness of server manufacturers.
- the step of transmitting a media loss packet corresponding to media stream data according to a packet loss retransmission parameter includes: transmitting the media loss packet to a routing node according to the packet loss retransmission parameter, and when the packet loss retransmission parameter meets a priority condition, instructing the routing node to forward the media loss packet according to the priority condition.
- the terminal sends a target confirmation message to the server, so that when the server determines that the media stream data has packet loss, the server can adapt the packet loss retransmission parameter according to the packet loss repair time and the cache time in the target confirmation message, and before repairing the media stream data, the server transmits the media loss packet according to the adaptive packet loss retransmission parameter, that is, before repairing the media stream data, the server can transmit the media loss packet to the routing node according to the adaptive packet loss retransmission parameter, when the routing node detects that the packet loss retransmission parameter meets the priority condition, instruct the routing node to forward the media loss packet according to the priority condition, that is, when the routing node detects that the packet loss retransmission parameter meets the priority condition, the routing node can adjust the processing priority of the message containing the media loss packet, for example, the routing node can set the processing priority of the message containing the media loss packet to high, so that the routing node forwards the message through a forwarding queue with a high priority, thereby
- a media loss packet is transmitted to a routing node according to a packet loss retransmission parameter, and when the packet loss retransmission parameter satisfies a priority condition, the step of instructing the routing node to forward the media loss packet according to the priority condition includes: adding a target identification field to the media loss packet based on the packet loss retransmission parameter; transmitting the media loss packet to the routing node according to the packet loss retransmission parameter, and when the target identification field is a target value, instructing the routing node to preferentially forward the media loss packet; wherein, when the target identification field is the target value, it indicates that the packet loss retransmission parameter satisfies the priority condition.
- the target identification field refers to a pre-set identification field as the target identification field.
- the target identification field in this application can be set to loss_l7_buffer.
- the target value refers to the field value of the target identification field being a specific value.
- the target value can be set to 1.
- the field value of the target identification field is 1, it means that the field value of the target identification field is the target value.
- the server can add a target identification field in the media loss packet based on the packet loss retransmission parameters, and transmit the media loss packet to the routing node according to the packet loss retransmission parameters.
- the target identification field is a target value
- the routing node is instructed to give priority to forwarding the media loss packet; wherein, when the target identification field is a target value, it indicates that the packet loss retransmission parameters meet the priority conditions.
- the routing node sets the forwarding priority of the message pkt_loss to high, which is specifically manifested in that the routing node forwards the message pkt_loss through a forwarding queue with a high priority;
- the intermediate routing node if the intermediate routing node encounters a packet loss repair message with a specific identifier used to avoid terminal freezes, the forwarding priority of the message is increased, the forwarding efficiency of such messages is improved, the waiting time of the user terminal for certain packet loss data is reduced, and the service experience is optimized.
- a flow data transmission system comprising:
- a server used for transmitting media stream data to a terminal
- the terminal is used to query the cache time of the media stream data during the process of receiving the media stream data sent by the server; encapsulate the cache time in a confirmation message to obtain a target confirmation message; and send the target confirmation message to the server;
- the server is further configured to, when determining that packet loss occurs in the media stream data, adaptively configure packet loss retransmission parameters according to the packet loss repair time and the cache time in the target confirmation message, and transmit the media loss packet corresponding to the media stream data according to the packet loss retransmission parameters before repairing the media stream data;
- the terminal is further used to receive the media loss packet transmitted by the server based on the packet loss retransmission parameter.
- system further comprises:
- the server is further configured to transmit the media loss packet to the routing node according to the packet loss retransmission parameter before repairing the media stream data;
- the routing node is used to forward the media loss packet according to the priority condition when the packet loss retransmission parameter meets the priority condition.
- the media stream data is cached in an application receiving queue corresponding to the application program; the system further includes:
- the terminal is further used to determine cache information based on the media stream data in the application receiving queue; store the cache information in a status information table corresponding to the application; and query the cache time of the media stream data from the status information table.
- system further comprises:
- the terminal is further configured to delete the application status bar of the application from the status information table when the application is switched to the closed state; and to add the application status bar of the other application to the status information table when the other application is switched to the open state.
- the application status bar corresponding to the application logo of the program.
- system further comprises:
- the terminal is further configured to encapsulate the updated cache time in a confirmation message when detecting that the cache time in the status information table is updated, so as to obtain a target confirmation message.
- system further comprises:
- the terminal is further configured to generate the confirmation message when receiving the media stream data; and query the cache time of the media stream data when detecting the confirmation message.
- system further comprises:
- the terminal is also used to obtain the starting frame data and the ending frame data of the media stream data in the application receiving queue; determine the media cache data according to the starting frame data and the ending frame data; and determine the cache time according to the time interval between the starting frame data and the ending frame data.
- system further comprises:
- the terminal is also used to obtain a first timestamp of the start frame data and a second timestamp of the end frame data; the first timestamp is the playback time point of the start frame data in the player of the application, and the second timestamp is the playback time point of the end data in the player; based on the difference between the second timestamp and the first timestamp, the cache time is determined.
- system further comprises:
- the terminal is also used to return a preset number of the target confirmation messages to the server when the cache time is less than the packet loss repair time; the packet loss repair time is determined based on the delay information of the media stream data during the transmission process.
- system further comprises:
- the server is also used to compare the packet loss repair time with the cache time in the target confirmation message to obtain a comparison result; when the comparison result indicates that the cache time is less than the packet loss repair time, the first packet loss retransmission parameter is adaptively used; when the comparison result indicates that the cache time is greater than or equal to the packet loss repair time, the second packet loss retransmission parameter is adaptively used.
- system further comprises:
- the server is further configured to, when it is determined based on the target confirmation message that no packet loss occurs in the media stream data, adaptively adjust the transmission bit rate according to the packet loss repair time and the buffering time in the target confirmation message; or adaptively adjust the transmission bit rate according to a preset number of frames and the number of buffered frames in the target confirmation message; and transmit the media stream data to the terminal based on the transmission bit rate;
- the terminal is further used to receive the media loss packet transmitted by the server based on the packet loss retransmission parameter.
- system further comprises:
- the server is also used to reduce the original bit rate value of the media stream data to obtain the transmission bit rate when the cache time in the target confirmation message is less than the packet loss repair time; when the number of cached frames in the target confirmation message is less than the preset number of frames, reduce the original bit rate value of the media stream data to obtain the transmission bit rate.
- the transmission code rate is a first code rate value; the system further comprises:
- the server is also used to select a second code rate value as the transmission code rate when the cache time in the target confirmation message is greater than the packet loss repair time and the number of cached frames in the target confirmation message is greater than the preset number of frames; wherein the second code rate value is greater than the first code rate value.
- the target confirmation message carries an end frame identifier and a reception degree parameter of the media stream data;
- the system further comprises:
- the server is further configured to continue transmitting the end frame data to the terminal when the acceptance degree parameter meets a preset condition, the end frame data corresponding to the end frame identifier has not been completely sent, and the window for transmitting the media stream data is limited.
- system further comprises:
- the server is further configured to add a target identification field to the media loss packet based on the packet loss retransmission parameter; and transmit the media loss packet to the routing node according to the packet loss retransmission parameter;
- the routing node is used to preferentially forward the media loss packet when the target identification field is a target value; wherein, when the target identification field is the target value, it indicates that the packet loss retransmission parameter meets the priority condition.
- the present application further provides an application scenario, and the application scenario applies the above-mentioned flow data transmission method.
- the application of the flow data transmission method in the application scenario is as follows:
- the above-mentioned traffic data transmission method can be used, that is, in scenarios such as audio and video on demand, live broadcast services, and real-time communication, the user terminal sends a request message to the server, so that the server transmits the corresponding media stream data to the terminal in response to the request message.
- the user terminal can query the cache time of the application that plays the media stream data, and encapsulate the cache time in a confirmation message to obtain a target confirmation message; further, the user terminal sends a target confirmation message to the server, so that when the server determines that packet loss occurs in the media stream data, the server can adaptively adjust the packet loss retransmission parameters according to the packet loss repair time and the cache time in the target confirmation message, and before repairing the media stream data, the server transmits the media loss packet according to the packet loss retransmission parameters, and the user terminal receives the media loss packet transmitted by the server based on the packet loss retransmission parameters.
- the adaptive packet loss repair method based on multi-party collaboration designed in the embodiment of the present application strikes a good balance between traffic sending and packet loss repair. While optimizing the user-side lag caused by packet loss, it reduces the impact on subsequent traffic transmission efficiency, which is beneficial to improving the user experience of existing Internet services based on audio and video, and enhancing the competitiveness of server manufacturers.
- the method provided in the embodiment of the present application can be applied to improve audio and video on demand, live broadcast services, real-time communication and other scenarios.
- the following takes the Internet service scenario mainly based on audio and video as an example to illustrate the traffic data transmission method provided in the embodiment of the present application.
- TCP Transport Control Protocol, transmission control protocol.
- QUIC Quick UDP Internet Connection, fast UDP Internet connection.
- QoE Quality of Experience, (user) experience quality.
- QoS Quality of Services, quality of service.
- RTT Rround-Trip Time, round-trip time delay.
- IP Internet Protocol
- Network packet loss is an important factor affecting traffic transmission efficiency, and is also a key indicator that affects user service experience and evaluates the quality of cloud service providers.
- a high packet loss rate will lead to a deterioration in traffic transmission performance, that is, the amount of data transmitted by the user terminal in the same period of time is relatively low, which may cause buffering, freezing, screen distortion, mosaics, black screens, and other features that seriously affect the user experience during the use of terminal applications. Therefore, improving the packet loss rate of network transmission and thus increasing the effective data throughput has become a key breakthrough point for optimizing the terminal-side service experience.
- the main ways to reduce packet loss rate and improve data transmission efficiency are mainly concentrated in the following two aspects: First, research, design and deploy congestion control algorithms that are more suitable for network environment and service type, such as BBR, Reno, TIMELY, etc.
- the core idea of these methods is to try to "accurately" identify whether the current network is congested. If congestion occurs, appropriately reduce the sending parameters (such as sending rate or sending window) in the hope that there will be no or as little packet loss as possible in the subsequent traffic transmission process.
- packet second, from the perspective of protocol innovation, design the latest network transmission protocol, and improve the traffic transmission efficiency through the advantages of the protocol itself.
- multi-path transmission (such as MPTCP) speeds up the flow completion time by adding a traffic transmission path, which will significantly improve the user-side service experience in most scenarios;
- UDP-based QUIC protocol that improves end-to-end transmission performance by supporting 0-RTT and alleviating head-of-line blocking.
- the above solution only looks at network congestion from the perspective of the data sender and adjusts the sending strategy, but fails to fully consider the service experience of the user terminal.
- the service experience of the user terminal is the most critical factor in measuring a CDN manufacturer. In this case, if the packet loss rate is high during traffic transmission, the service experience of the user terminal is not necessarily very bad.
- the key factor of user experience lies in whether the network packet loss is repaired in a certain period of time. If it is repaired in time, the audio and video player of the terminal will not be stuck.
- FIG. 7 it is a schematic diagram of packet loss and user-side jamming.
- reliable transmission protocols such as TCP, QUIC, etc.
- the receiving end if a traffic message is lost during transmission, the receiving end "informs" the sending end to retransmit the lost message through a message confirmation message, and the receiving end is in a state of "always waiting" for the lost message until the lost message is received and the subsequent traffic messages are played for audio and video.
- T_recovery N*(RTT+T_detect), where N is the number of repairs;
- T_buffer can be represented by the time interval between the timestamp of the first available data in the queue and the timestamp of the last available data, where the above-mentioned "queue” includes the application layer player cache queue and the transport layer data receiving queue; the data's "timestamp” refers to the playback time point of the data in the player, generally expressed by the time interval from a certain (such as the first) audio or video frame.
- the timestamp of the data can be understood as the playback time of the data in the player.
- the timestamp of the first data in the player queue is time_0, indicating that the player will play the data immediately
- the timestamp of the last data in the player queue is time_1, indicating that the data will be played at time_1, and the time interval between the above two data is time_1-time_0
- the "queue” here includes at least one of the cache queue of the application layer player or the queue of the transport layer.
- the former is used in the audio and video application to store the audio and video data to be played soon, and the latter is used in the mobile device to store the data received from the sender and pass the data to the audio and video application queue.
- T_recovery T_buffer
- T_recovery>T_buffer it means that the packet loss in the queue has not been repaired when the data is consumed, and the player on the terminal will freeze
- the present application provides a solution, that is, the present application proposes an adaptive packet loss repair and traffic transmission method based on multi-party collaboration, which enables the user terminal to carry information such as cache time in the message confirmation message through end-cloud collaboration, so that the sending end (cloud server) can adaptively decide the packet loss retransmission strategy based on the relationship between the above cache time and the packet loss repair time.
- the method proposed in the present application can be used to improve the user experience in scenarios such as audio and video on demand, live broadcast services, and real-time communications, and belongs to the field of computer network transmission optimization.
- the user terminal when the user terminal feeds back a message confirmation message to the data sending end, it carries the cache length of the application buffer; when the data sending end detects packet loss, it can adaptively adjust the packet loss repair strategy according to the data cache length on the user terminal side; in this process, if the cache time is longer, the data sending end adopts a "mild" packet loss retransmission strategy; if the cache time is shorter, the data sending end adopts an "aggressive" packet loss retransmission strategy; if the cache time is moderate, the data sender will adaptively adjust the packet loss retransmission strategy based on the latest measured end-to-end delay, packet loss rate and other information.
- the packet loss repair method involved in the embodiment of the present application has a good balance between traffic sending and packet loss repair. While optimizing the user-side freeze caused by packet loss, it reduces the impact on the subsequent traffic transmission efficiency, which is conducive to improving the user experience of existing Internet services mainly based on audio and video, and enhancing the competitiveness of CDN manufacturers.
- the purpose of the method provided in this application is to solve the problem that the existing transmission protocol and congestion control algorithm did not consider the "linkage” with the user terminal service experience at the beginning of the design, which led to the data sender "blindly” adjusting the sending parameters and failing to truly ensure that the client service experience is in a good state.
- An adaptive packet loss repair method based on end-cloud collaboration is proposed.
- the user terminal carries the information of the current application layer (such as the player) data cache time when replying to the message confirmation message; after receiving the above cache time, the data sender (cloud server) adaptively adjusts the retransmission strategy of the previously lost message; specifically, when the cache time is long, the task of packet loss repair is not urgent, and the sender will retransmit the lost packet data once; when the cache time is short, the task of packet loss repair is more urgent, and the real-time performance of the lost packet data reaching the user terminal must be improved, otherwise the user terminal will experience a jamming phenomenon.
- the sender will use a more aggressive method to repair the previously lost data, so as to ensure that there is enough data for the next stage of use (such as audio and video playback) before the above cache time is consumed.
- FIG 8 it is a schematic diagram of the adaptive packet loss repair and traffic transmission method based on multi-party collaboration.
- the data receiving end queries the cache information (such as cache time, number of cache messages, size) of the application corresponding to these traffic messages; 2 the data receiving end embeds the above cache information into the message confirmation message and sends the above message confirmation message to the data sending end; 3 after receiving the message confirmation message, the data sending end adjusts the packet loss repair and sending strategy according to the cache information of the above user terminal; 4 after receiving the packet loss repair message due to the relatively tight terminal cache information, the intermediate routing node increases the forwarding priority of the message, enhances the transmission efficiency of the retransmitted message, reduces the time the user terminal waits for the data packet loss, and optimizes QoE indicators such as audio and video freeze.
- the cache information such as cache time, number of cache messages, size
- the server in the embodiments of the present application can be an independent physical server, or a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, CDN, and big data and artificial intelligence platforms.
- the terminal can be a smart phone, a tablet computer, a laptop computer, a desktop computer, a smart speaker, a smart watch, etc., but is not limited to this.
- the terminal and the server can be directly or indirectly connected via wired or wireless communication, and this application does not limit this.
- FIG. 9 it is a schematic diagram of the entire process of the adaptive packet loss repair and traffic transmission method based on multi-party collaboration provided by this application.
- the idea of the method provided by this application is to enable the data sender to adaptively adjust the packet loss repair strategy according to the cache information of the receiving end, and to add the cache information of the user terminal in the message confirmation message, so that the server can timely understand whether the user terminal is (about to) experience a freeze (taking audio and video as an example), and adjust the aggressiveness of the packet loss repair based on this information; at the same time, during the data forwarding process, if the intermediate routing node encounters a packet loss repair message with a specific identifier used to avoid terminal freezes, the forwarding priority of the message is increased, the forwarding efficiency of such messages is improved, and the waiting time of the user terminal for a certain packet loss data is reduced, thereby optimizing the service experience.
- the data receiving end receives the traffic message from the data sending end (cloud server) and periodically sends a message confirmation message to the server, where the message carries the data cache information of the user terminal, as follows:
- the reception level of the audio and video frame, frame_last_rcv specifically includes the number of packets in the audio and video frame, frame_last_pkt_amount, and the number of packets currently received, frame_last_pkt_rcv_amount;
- info_l7_buffer ⁇ l7_buffer_time_len,l7_buffer_frame_amount, frame_last ⁇ (2)
- a monitoring module is added to the application layer to periodically obtain the cache information info_l7_buffer of the application receiving queue and feed it back to the transport layer, as shown in the user terminal monitoring schematic diagram in FIG4 .
- the time interval T_gain_17 for the user terminal to obtain info_17_buffer can be configured by the administrator and reflected in the configuration file.
- T_gain_17 5ms
- the monitoring module of the user terminal is located between the application layer and the transport layer, and its main goal is to obtain the info_l7_buffer of different applications in a timely manner;
- the monitoring module maintains a status table as shown in FIG. 3 for the currently used application, and periodically updates the info_l7_buffer of different applications in the table:
- the user terminal When an application is closed, the user terminal deletes the corresponding application status entry from the above status information table; when an application is opened, the user terminal adds the corresponding application status entry to the above status information table;
- the user terminal before sending a message confirmation message pkt_ack to the server, the user terminal obtains the info_l7_buffer of the corresponding application through the monitoring module, and embeds the info_l7_buffer into the pkt_ack to obtain the final message confirmation message pkt_ack_l7_buffer;
- the user terminal decides the pkt_ack_l7_buffer feedback strategy based on the status of its own info_l7_buffer, as follows:
- the user terminal adopts an "aggressive" redundant return strategy when returning pkt_ack_l7_buffer, that is, returning the same M copies of pkt_ack_l7_buffer to prevent the loss of pkt_ack_l7_buffer during the return process;
- step 2) If the monitoring module detects that the l7_buffer_time_len of a certain application is small, and the judgment condition is as shown in step 1), the transport layer will be triggered to reply pkt_ack_l7_buffer immediately, without waiting for the pkt_ack to be generated in the existing method before making a judgment, thus avoiding the phenomenon of delayed data transmission due to slow pkt_ack reply;
- the user terminal After receiving the traffic, the user terminal does not reply with a pkt_ack for each traffic message, but “aggregates” and “packs” together to reply whether certain messages have been received.
- the above step 2) It can effectively avoid the problem of untimely reply to message confirmation messages;
- the pkt_ack message will trigger the acquisition of the latest info_l7_buffer and form pkt_ack_l7_buffer; it can also be: the l7_buffer_time_len in the latest info_l7_buffer will also trigger pkt_ack to generate pkt_ack_l7_buffer;
- the data sender (cloud server) adaptively decides the packet loss retransmission strategy and traffic sending strategy based on the info_l7_buffer information, as follows:
- the data sender Before retransmitting the lost message pkt_loss, the data sender adds a new identification field loss_l7_buffer in the message, where the field occupies 1 bit. If the value is binary 1, it means that the retransmitted packet loss is used to alleviate the problem that the terminal application cache time is too short and may cause jamming;
- the data sender needs to overcome the limited network resources and send as many audio and video frames as possible; among which, l7_buffer_frame_amount_threshold can be configured by the administrator and declared in the configuration file; it can be understood that if the data cached in the player queue in L7 is short, it means that the player can quickly play the remaining buffered data; in particular, if the player does not "inform" the sender in time when it has played all the data in its cache, it may be stuck; in fact, the message confirmation message fed back by the user terminal may be delayed (such as replying an ACK message for every 5 messages received), and the returned message may be lost.
- l7_buffer_frame_amount_threshold can be configured by the administrator and declared in the configuration file; it can be understood that if the data cached in the player queue in L7 is short, it means that the player can quickly play the remaining buffered data; in particular, if the player does not "inform" the sender in time when it has played all the
- the data sending end selects the audio and video frames with a lower bit rate as the data source and sends them to the data receiving end, see step b) for details;
- the data transmitter records the audio and video frame bitrate bitrate_(i-1) sent in the past period of time. When the conditions in step a) are met, the data transmitter will select the latest audio and video bitrate bitrate_i, where bitrate_i ⁇ bitrate_(i-1);
- FIG. 10 it is a schematic diagram of the data transmitter adjusting the bit rate.
- the data transmitter initially sends high-bitrate audio and video content to the user terminal. After a period of time, if the following conditions are met: l7_buffer_time_len ⁇ Time_threshold or l7_buffer_frame_amount ⁇ l7_buffer_frame_amount_threshold, the data transmitter switches the audio and video content from high bit rate to medium bit rate; after a period of time, if l7_buffer_time_len ⁇ Time_threshold or l7_buffer_frame_amount ⁇ l7_buffer_frame_amount_threshold, the data transmitter Then it switches from medium bit rate to low bit rate; after a period of time, if l7_buffer_time_len>Time_threshold and l7_buffer_frame_amount>l7_buffer_frame_amount_thres
- the intermediate network node After receiving the traffic message, the intermediate network node checks whether the message carries loss_l7_buffer with a value of binary 1, as follows:
- the packet loss repair method involved in the present invention has a good balance between traffic sending and packet loss repair. While optimizing the user-side lag caused by packet loss, it reduces the impact on subsequent traffic transmission efficiency, which is beneficial to improving the user experience of existing Internet services mainly based on audio and video, and enhancing the competitiveness of CDN manufacturers.
- the embodiment of the present application also provides a flow data transmission device for implementing the flow data transmission method involved above.
- the implementation solution provided by the device to solve the problem is similar to the implementation solution recorded in the above method, so the specific limitations in one or more flow data transmission device embodiments provided below can refer to the limitations of the flow data transmission method above, and will not be repeated here.
- the encapsulation module 1104 is used to encapsulate the cache time into a confirmation message to obtain a target confirmation message.
- the sending module 1106 is used to send the target confirmation message to the server, so that when the server determines that packet loss occurs in the media stream data, it adapts the packet loss retransmission parameters according to the packet loss repair time and the cache time in the target confirmation message, and transmits the media loss packet according to the packet loss retransmission parameters before repairing the media stream data.
- the receiving module 1108 is configured to receive the media loss packet transmitted by the server based on the packet loss retransmission parameter.
- the media stream data is cached in an application receiving queue corresponding to the application; the device also includes: a determination module and a storage module, the determination module is used to determine the cache information based on the media stream data in the application receiving queue; the storage module is used to store the cache information in a status information table corresponding to the application; the query module is also used to query the cache time of the media stream data from the status information table.
- the device also includes: a deletion module and an addition module, the deletion module is used to delete the application status bar of the application from the status information table when the application is switched to a closed state; the addition module is used to add an application status bar corresponding to the application identifier of the other application to the status information table when the other application is switched to an open state.
- the encapsulation module is further configured to encapsulate the updated cache time in a confirmation message when it is detected that the cache time in the status information table is updated, so as to obtain a target confirmation message.
- the device further comprises: a generating module, configured to generate the confirmation message when the media stream data is received; and a querying module, configured to query the cache time of the media stream data when the confirmation message is detected.
- the device also includes: an acquisition module, used to obtain the starting frame data and the ending frame data of the media stream data in the application receiving queue; the determination module is also used to determine the media cache data based on the starting frame data and the ending frame data; and determine the cache time based on the time interval between the starting frame data and the ending frame data.
- the acquisition module is also used to obtain a first timestamp of the start frame data and a second timestamp of the end frame data; the first timestamp is the playback time point of the start frame data in the player of the application, and the second timestamp is the playback time point of the end data in the player; the determination module is also used to determine the cache time based on the difference between the second timestamp and the first timestamp.
- the device also includes: a transmission module, which is used to transmit the media loss packet to the routing node according to the packet loss retransmission parameter before repairing the media stream data, and when the packet loss retransmission parameter meets the priority condition, instruct the routing node to forward the media loss packet according to the priority condition.
- a transmission module which is used to transmit the media loss packet to the routing node according to the packet loss retransmission parameter before repairing the media stream data, and when the packet loss retransmission parameter meets the priority condition, instruct the routing node to forward the media loss packet according to the priority condition.
- the transmission module is also used to transmit a preset number of the target confirmation messages back to the server when the cache time is less than the packet loss repair time; the packet loss repair time is determined based on the delay information of the media stream data during the transmission process.
- another flow data transmission device including: a receiving module 1202, an adaptive module 1204 and a transmission module 1206, wherein:
- the receiving module 1202 is configured to receive a target confirmation message returned by a terminal during the process of transmitting media stream data to the terminal; the target confirmation message carries a cache time of the terminal for the media stream data.
- the adaptive module 1204 is configured to adaptively adjust packet loss retransmission parameters according to packet loss repair time and the buffer time in the target confirmation message when it is determined based on the target confirmation message that packet loss occurs in the media stream data.
- the transmission module 1206 is configured to transmit the media loss packet corresponding to the media stream data according to the packet loss retransmission parameter, so that the terminal receives the media loss packet before repairing the media stream data.
- the adaptive module is also used to adapt the transmission bit rate according to the packet loss repair time and the cache time in the target confirmation message when it is determined based on the target confirmation message that the media stream data has not been lost; or, to adapt the transmission bit rate according to a preset number of frames and the number of cached frames in the target confirmation message; the transmission module is also used to transmit the media stream data to the terminal based on the transmission bit rate.
- the device also includes: an adjustment module, which is used to reduce the original bit rate value of the media stream data to obtain the transmission bit rate when the cache time in the target confirmation message is less than the packet loss repair time; when the number of cached frames in the target confirmation message is less than the preset number of frames, reduce the original bit rate value of the media stream data to obtain the transmission bit rate.
- an adjustment module which is used to reduce the original bit rate value of the media stream data to obtain the transmission bit rate when the cache time in the target confirmation message is less than the packet loss repair time; when the number of cached frames in the target confirmation message is less than the preset number of frames, reduce the original bit rate value of the media stream data to obtain the transmission bit rate.
- the transmission bit rate is a first bit rate value
- the device also includes: a selection module, which is used to select a second bit rate value as the transmission bit rate when the cache time in the target confirmation message is greater than the packet loss repair time and the number of cached frames in the target confirmation message is greater than the preset number of frames; wherein the second bit rate value is greater than the first bit rate value.
- the target confirmation message carries the end frame identifier and reception degree parameter of the media stream data; the transmission module is also used to continue transmitting the end frame data to the terminal when the reception degree parameter meets a preset condition, the end frame data corresponding to the end frame identifier has not been sent completely, and the window for transmitting the media stream data is limited.
- the transmission module is further used to transmit the media loss packet to the routing node according to the packet loss retransmission parameter, and when the packet loss retransmission parameter meets the priority condition, instruct the routing node to forward the media loss packet according to the priority condition.
- the device also includes: a new adding module, used to add a target identification field in the media loss packet based on the packet loss retransmission parameter; the transmission module is also used to transmit the media loss packet to the routing node according to the packet loss retransmission parameter, and when the target identification field is a target value, instruct the routing node to preferentially forward the media loss packet; wherein, when the target identification field is the target value, it indicates that the packet loss retransmission parameter meets the priority condition.
- a new adding module used to add a target identification field in the media loss packet based on the packet loss retransmission parameter
- the transmission module is also used to transmit the media loss packet to the routing node according to the packet loss retransmission parameter, and when the target identification field is a target value, instruct the routing node to preferentially forward the media loss packet; wherein, when the target identification field is the target value, it indicates that the packet loss retransmission parameter meets the priority condition.
- Each module in the above-mentioned flow data transmission device can be implemented in whole or in part by software, hardware and a combination thereof.
- Each of the above-mentioned modules can be embedded in or independent of the processor in the computer device in the form of hardware, or can be stored in the memory in the computer device in the form of software, so that the processor can call and execute the corresponding operations of each of the above modules.
- a computer device is provided.
- the computer device may be a terminal or a server.
- the computer device is a terminal as an example for explanation.
- Its internal structure diagram may be as shown in FIG13.
- the computer device includes a processor, a memory, an input/output interface, a communication interface, a display unit, and an input device.
- the processor, The memory and the input/output interface are connected through a system bus, and the communication interface, the display unit and the input device are connected to the system bus through the input/output interface.
- the processor of the computer device is used to provide computing and control capabilities.
- the memory of the computer device includes a non-volatile storage medium and an internal memory.
- the non-volatile storage medium stores an operating system and a computer program.
- the internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium.
- the input/output interface of the computer device is used to exchange information between the processor and the external device.
- the communication interface of the computer device is used to communicate with an external terminal in a wired or wireless manner, and the wireless manner can be realized through WIFI, a mobile cellular network, NFC (near field communication) or other technologies.
- the display unit of the computer device is used to form a visually visible picture, which can be a display screen, a projection device or a virtual reality imaging device, the display screen can be a liquid crystal display screen or an electronic ink display screen, and the input device of the computer device can be a touch layer covered on the display screen, or a key, trackball or touchpad set on the computer device shell, or an external keyboard, touchpad or mouse, etc.
- FIG. 13 is merely a block diagram of a partial structure related to the scheme of the present application, and does not constitute a limitation on the computer device to which the scheme of the present application is applied.
- the specific computer device may include more or fewer components than shown in the figure, or combine certain components, or have a different arrangement of components.
- a computer device including a memory and a processor, wherein a computer program is stored in the memory, and the processor implements the steps in the above-mentioned method embodiments when executing the computer program.
- a computer-readable storage medium on which a computer program is stored.
- the computer program is executed by a processor, the steps in the above-mentioned method embodiments are implemented.
- a computer program product including a computer program, which implements the steps in the above method embodiments when executed by a processor.
- user information including but not limited to user device information, user personal information, etc.
- data including but not limited to data used for analysis, stored data, displayed data, etc.
- any reference to the memory, database or other medium used in the embodiments provided in the present application can include at least one of non-volatile and volatile memory.
- Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetoresistive random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc.
- Volatile memory can include random access memory (RAM) or external cache memory, etc.
- RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM).
- SRAM static random access memory
- DRAM dynamic random access memory
- the database involved in each embodiment provided in this application may include at least one of a relational database and a non-relational database.
- Non-relational databases may include distributed databases based on blockchains, etc., but are not limited to this.
- the processor involved in each embodiment provided in this application may be a general-purpose processor, a central processing unit, a graphics processor, a digital signal processor, a programmable logic unit, a data processing logic unit based on quantum computing, etc., but are not limited to this.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
frame_last = {frame_last_id, frame_last_rcv} (1)
info_l7_buffer = {l7_buffer_time_len,l7_buffer_frame_amount, frame_last} (2)
frame_last = {frame_last_id, frame_last_rcv} (1)
info_l7_buffer = {l7_buffer_time_len,l7_buffer_frame_amount, frame_last} (2)
Claims (20)
- 一种流量数据传输方法,由终端执行,其中,所述方法包括:在接收服务器发送媒体流数据的过程中,查询所述媒体流数据的缓存时间;将所述缓存时间封装于确认报文,得到目标确认报文;向所述服务器发送所述目标确认报文,以使所述服务器在确定所述媒体流数据出现丢包时,依据丢包修复时间和所述目标确认报文中的缓存时间自适应丢包重传参数,并在修复所述媒体流数据之前依据所述丢包重传参数传输媒体丢失包;接收所述服务器基于所述丢包重传参数传输的所述媒体丢失包。
- 根据权利要求1所述的方法,其中,所述媒体流数据缓存于应用程序对应的应用接收队列中;所述查询所述媒体流数据的缓存时间之前,所述方法还包括:基于所述应用接收队列中的媒体流数据确定缓存信息;将所述缓存信息存储于所述应用程序对应的状态信息表;所述查询所述媒体流数据的缓存时间,包括:从所述状态信息表查询所述媒体流数据的缓存时间。
- 根据权利要求2所述的方法,其中,所述查询所述媒体流数据的缓存时间之前,所述方法还包括:在接收到所述媒体流数据时,生成所述确认报文;所述从所述状态信息表查询所述媒体流数据的缓存时间,包括:当检测到所述确认报文时,从所述状态信息表查询所述媒体流数据的缓存时间;所述将所述缓存时间封装于确认报文,得到目标确认报文,包括:当检测到所述状态信息表中的缓存时间发生更新时,将更新的所述缓存时间封装于确认报文,得到目标确认报文。
- 根据权利要求2或3所述的方法,其中,所述基于所述应用接收队列中的媒体流数据确定缓存信息,包括:在所述应用接收队列中,获取所述媒体流数据的起始帧数据和结尾帧数据;根据所述起始帧数据和所述结尾帧数据,确定媒体缓存数据;根据所述起始帧数据和所述结尾帧数据之间的时间间隔,确定缓存时间。
- 根据权利要求4所述的方法,其中,所述根据所述起始帧数据和所述结尾帧数据之间的时间间隔,确定缓存时间,包括:获取所述起始帧数据的第一时间戳和所述结尾帧数据的第二时间戳;所述第一时间戳为所述起始帧数据在所述应用程序的播放器中的播放时间点,所述第二时间戳为所述结尾数据在所述播放器中的播放时间点;基于所述第二时间戳与所述第一时间戳之间的差值,确定缓存时间。
- 根据权利要求1至5任一项所述的方法,其中,所述向所述服务器发送所述目标确认报文,包括:当所述缓存时间小于所述丢包修复时间时,向所述服务器回传预设数量的所述目标确认报文;所述丢包修复时间是基于所述媒体流数据在传输过程中的时延信息确定的;所述在修复所述媒体流数据之前依据所述丢包重传参数传输媒体丢失包,包括:在修复所述媒体流数据之前,依据所述丢包重传参数传输媒体丢失包至路由节点,当所述丢包重传参数满足优先级条件时,指示所述路由节点按照所述优先级条件转发所述媒体丢 失包。
- 一种流量数据传输方法,由服务器执行,其中,所述方法包括:在向终端传输媒体流数据的过程中,接收所述终端返回的目标确认报文;所述目标确认报文携带所述终端的针对所述媒体流数据的缓存时间;当基于所述目标确认报文确定所述媒体流数据出现丢包时,依据丢包修复时间和所述目标确认报文中的缓存时间自适应丢包重传参数;根据所述丢包重传参数传输所述媒体流数据对应的媒体丢失包,以使所述终端在修复所述媒体流数据之前接收到所述媒体丢失包。
- 根据权利要求7所述的方法,其中,所述依据丢包修复时间和所述目标确认报文中的缓存时间自适应丢包重传参数,包括:对比所述丢包修复时间与所述目标确认报文中的缓存时间,得到对比结果;当所述对比结果表示所述缓存时间小于所述丢包修复时间时,自适应第一丢包重传参数;当所述对比结果表示所述缓存时间大于或者等于所述丢包修复时间时,自适应第二丢包重传参数。
- 根据权利要求7或8所述的方法,其中,所述接收所述终端返回的目标确认报文之后,所述方法还包括:当基于所述目标确认报文确定所述媒体流数据未出现丢包时,依据所述丢包修复时间和所述目标确认报文中的缓存时间自适应传输码率;或者,依据预设帧数量和所述目标确认报文中的缓存帧数量自适应所述传输码率;基于所述传输码率,向所述终端传输所述媒体流数据。
- 根据权利要求9所述的方法,其中,所述依据所述丢包修复时间和所述目标确认报文中的缓存时间自适应传输码率,包括:当所述目标确认报文中的缓存时间小于所述丢包修复时间时,调小所述媒体流数据的原始码率值,得到所述传输码率;所述依据预设帧数量和所述目标确认报文中的缓存帧数量自适应所述传输码率,包括:当所述目标确认报文中的缓存帧数量小于预设帧数量时,调小所述媒体流数据的原始码率值,得到所述传输码率。
- 根据权利要求10所述的方法,其中,所述传输码率为第一码率值;所述方法还包括:当所述目标确认报文中的缓存时间大于所述丢包修复时间、且所述目标确认报文中的缓存帧数量大于预设帧数量时,选择第二码率值作为所述传输码率;其中,所述第二码率值大于所述第一码率值。
- 根据权利要求7至11任一项所述的方法,其中,所述目标确认报文携带所述媒体流数据的结尾帧标识和接收程度参数;所述方法还包括:当所述接受程度参数满足预设条件、所述结尾帧标识对应的结尾帧数据未发送完毕、且传输所述媒体流数据窗口受限时,将所述结尾帧数据继续传输至所述终端。
- 根据权利要求7至11任一项所述的方法,其中,所述根据所述丢包重传参数传输所述媒体流数据对应的媒体丢失包,包括:依据所述丢包重传参数传输媒体丢失包至路由节点,当所述丢包重传参数满足优先级条件时,指示所述路由节点按照所述优先级条件转发所述媒体丢失包。
- 根据权利要求13所述的方法,其中,所述依据所述丢包重传参数传输媒体丢失包至 路由节点,当所述丢包重传参数满足优先级条件时,指示所述路由节点按照所述优先级条件转发所述媒体丢失包,包括:基于所述丢包重传参数,在所述媒体丢失包中新增目标标识字段;依据所述丢包重传参数传输媒体丢失包至路由节点,当所述目标标识字段为目标值时,指示所述路由节点优先转发所述媒体丢失包;其中,所述目标标识字段为所述目标值时,表示所述丢包重传参数满足优先级条件。
- 一种流量数据传输装置,其中,所述装置包括:查询模块,用于在接收服务器发送媒体流数据的过程中,查询所述媒体流数据的缓存时间;封装模块,用于将所述缓存时间封装于确认报文,得到目标确认报文;发送模块,用于向所述服务器发送所述目标确认报文,以使所述服务器在确定所述媒体流数据出现丢包时,依据丢包修复时间和所述目标确认报文中的缓存时间自适应丢包重传参数,并在修复所述媒体流数据之前依据所述丢包重传参数传输媒体丢失包;接收模块,用于接收所述服务器基于所述丢包重传参数传输的所述媒体丢失包。
- 一种流量数据传输装置,其中,所述装置包括:接收模块,用于在向终端传输媒体流数据的过程中,接收所述终端返回的目标确认报文;所述目标确认报文携带所述终端的针对所述媒体流数据的缓存时间;自适应模块,用于当基于所述目标确认报文确定所述媒体流数据出现丢包时,依据丢包修复时间和所述目标确认报文中的缓存时间自适应丢包重传参数;传输模块,用于根据所述丢包重传参数传输所述媒体流数据对应的媒体丢失包,以使所述终端在修复所述媒体流数据之前接收到所述媒体丢失包。
- 一种流量数据传输系统,其中,所述系统包括:服务器,用于向终端传输媒体流数据;终端,用于在接收所述服务器发送所述媒体流数据的过程中,查询所述媒体流数据的缓存时间;将所述缓存时间封装于确认报文,得到目标确认报文;向所述服务器发送所述目标确认报文;所述服务器,还用于在确定所述媒体流数据出现丢包时,依据丢包修复时间和所述目标确认报文中的缓存时间自适应丢包重传参数,并在修复所述媒体流数据之前依据所述丢包重传参数传输所述媒体流数据对应的媒体丢失包;所述终端,还用于接收所述服务器基于所述丢包重传参数传输的所述媒体丢失包。
- 一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其中,所述处理器执行所述计算机程序时实现权利要求1至6,或7至14中任一项所述的方法的步骤。
- 一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1至6,或7至14中任一项所述的方法的步骤。
- 一种计算机程序产品,包括计算机程序,其中,该计算机程序被处理器执行时实现权利要求1至6,或7至14中任一项所述的方法的步骤。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP24818364.2A EP4629596A4 (en) | 2023-06-08 | 2024-04-10 | METHOD AND APPARATUS FOR TRANSMITTING TRAFFIC DATA, COMPUTER DEVICE, COMPUTER-READABLE STORAGE MEDIA AND COMPUTER PROGRAM PRODUCT |
| US19/234,177 US20250310393A1 (en) | 2023-06-08 | 2025-06-10 | Method and apparatus for transmitting streammethod for transmitting stream data |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310676826.9 | 2023-06-08 | ||
| CN202310676826.9A CN116405470B (zh) | 2023-06-08 | 2023-06-08 | 流量数据传输方法、装置、计算机设备、存储介质 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US19/234,177 Continuation US20250310393A1 (en) | 2023-06-08 | 2025-06-10 | Method and apparatus for transmitting streammethod for transmitting stream data |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024250827A1 true WO2024250827A1 (zh) | 2024-12-12 |
Family
ID=87018435
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2024/086929 Ceased WO2024250827A1 (zh) | 2023-06-08 | 2024-04-10 | 流量数据传输方法、装置、计算机设备、计算机可读存储介质和计算机程序产品 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20250310393A1 (zh) |
| EP (1) | EP4629596A4 (zh) |
| CN (1) | CN116405470B (zh) |
| WO (1) | WO2024250827A1 (zh) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119420673B (zh) * | 2024-10-30 | 2026-03-20 | 浙江吉利控股集团有限公司 | 报文传输的管控方法、装置、电子设备及存储介质 |
| CN120017224B (zh) * | 2025-04-17 | 2025-07-25 | 中国铁塔股份有限公司云南省分公司 | 一种双通道无人机视距通信系统 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106850595A (zh) * | 2017-01-17 | 2017-06-13 | 烽火通信科技股份有限公司 | 一种流媒体传输优化方法及装置 |
| US20190104079A1 (en) * | 2016-09-22 | 2019-04-04 | Tencent Technology (Shenzhen) Company Limited | Calling method and device, computer storage medium, and terminal |
| CN111385241A (zh) * | 2018-12-27 | 2020-07-07 | 北京紫荆视通科技有限公司 | 多媒体数据的丢包修复方法、装置、系统和可读存储介质 |
| CN114025389A (zh) * | 2021-11-01 | 2022-02-08 | 网易(杭州)网络有限公司 | 数据传输方法、装置、计算机设备及存储介质 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1200368C (zh) * | 2000-08-18 | 2005-05-04 | 清华大学 | 一种将tcp用于不可靠传输网络的局域重传方法 |
| GB2485765B (en) * | 2010-11-16 | 2014-02-12 | Canon Kk | Client based congestion control mechanism |
| CN112073331A (zh) * | 2017-05-31 | 2020-12-11 | 华为技术有限公司 | 一种流量控制方法、设备及系统 |
-
2023
- 2023-06-08 CN CN202310676826.9A patent/CN116405470B/zh active Active
-
2024
- 2024-04-10 WO PCT/CN2024/086929 patent/WO2024250827A1/zh not_active Ceased
- 2024-04-10 EP EP24818364.2A patent/EP4629596A4/en active Pending
-
2025
- 2025-06-10 US US19/234,177 patent/US20250310393A1/en active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20190104079A1 (en) * | 2016-09-22 | 2019-04-04 | Tencent Technology (Shenzhen) Company Limited | Calling method and device, computer storage medium, and terminal |
| CN106850595A (zh) * | 2017-01-17 | 2017-06-13 | 烽火通信科技股份有限公司 | 一种流媒体传输优化方法及装置 |
| CN111385241A (zh) * | 2018-12-27 | 2020-07-07 | 北京紫荆视通科技有限公司 | 多媒体数据的丢包修复方法、装置、系统和可读存储介质 |
| CN114025389A (zh) * | 2021-11-01 | 2022-02-08 | 网易(杭州)网络有限公司 | 数据传输方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP4629596A4 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN116405470A (zh) | 2023-07-07 |
| CN116405470B (zh) | 2023-08-04 |
| EP4629596A4 (en) | 2025-12-31 |
| EP4629596A1 (en) | 2025-10-08 |
| US20250310393A1 (en) | 2025-10-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7664407B2 (ja) | データ再送処理方法、装置、コンピュータ機器及びコンピュータプログラム | |
| Matsuzono et al. | Low latency low loss streaming using in-network coding and caching | |
| CN101834879B (zh) | 一种适应不同网络环境的智能高效视音频数据传输方法 | |
| WO2024250827A1 (zh) | 流量数据传输方法、装置、计算机设备、计算机可读存储介质和计算机程序产品 | |
| US12010016B2 (en) | Data stream transmission method and device | |
| CN106341738B (zh) | 流媒体网络传输的带宽计算方法、服务器端和系统 | |
| Xu et al. | CMT-NC: Improving the concurrent multipath transfer performance using network coding in wireless networks | |
| CN111740808A (zh) | 一种数据传输方法及装置 | |
| JP6685621B2 (ja) | マルチキャストネットワークにおいてデータの再送を要求すること | |
| CN102843257A (zh) | 一种路径评估方法及装置 | |
| WO2011000200A1 (zh) | 一种高效的流媒体传输方法 | |
| WO2020078448A1 (zh) | 一种报文处理方法和装置 | |
| CN105392157A (zh) | 一种拥塞窗口的调整方法、相关装置和系统 | |
| CN115767143A (zh) | 播放卡顿的判断方法、装置、电子设备和可读存储介质 | |
| CN110602568A (zh) | 一种基于rtp的视频流传输丢包重传方法、设备及存储设备 | |
| CN113783942A (zh) | 基于优先分级队列的mpquic数据包快速传输方法和系统 | |
| WO2011009403A1 (zh) | 一种实现流业务的方法及通信系统以及相关设备 | |
| CN101060717B (zh) | 服务质量保障方法与装置 | |
| CN105262643B (zh) | 一种基于td-lte移动网络传输特征的丢包区分方法 | |
| WO2013036453A1 (en) | Methods, system and apparatus for packet routing using a hop-by-hop protocol in multi-homed environments | |
| JP3793446B2 (ja) | パケット交換通信ネットワークのための中継装置及び中継方法 | |
| CN106954240B (zh) | 智能移动端接口选择系统与方法 | |
| HK40089606A (zh) | 流量数据传输方法、装置、计算机设备、存储介质 | |
| HK40089606B (zh) | 流量数据传输方法、装置、计算机设备、存储介质 | |
| WO2024244337A1 (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: 24818364 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2024818364 Country of ref document: EP |
|
| ENP | Entry into the national phase |
Ref document number: 2024818364 Country of ref document: EP Effective date: 20250630 |
|
| WWP | Wipo information: published in national office |
Ref document number: 2024818364 Country of ref document: EP |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |