Data transmission method and apparatus, electronic device, and storage medium
By calculating the throughput of candidate paths in real time and selecting high-speed paths to transmit video data, the problem of unstable video quality in multi-path transmission is solved, and efficient and stable video data transmission and playback are achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- SHENZHEN MSU-BIT UNIVERSITY
- Filing Date
- 2026-03-24
- Publication Date
- 2026-06-05
AI Technical Summary
When transmitting video via multiple paths, differences in network transmission speeds lead to low video data transmission efficiency and poor video quality on the client side. This is especially true in complex network environments, where video resources are wasted and stuttering is severe.
By obtaining the round-trip time and congestion level of candidate paths, the path throughput is calculated, and high-speed paths are selected for data transmission using preset thresholds. The transmission strategy is dynamically adjusted to ensure that video data is transmitted on high-speed paths until the transmission is completed.
It improves data transmission efficiency, ensures stable and high-definition video playback, avoids video stuttering, and enhances the user viewing experience.
Smart Images

Figure CN122160325A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technology, specifically to a data transmission method, apparatus, electronic device, and storage medium. Background Technology
[0002] With the widespread adoption of online video services, Dynamic Adaptive Streaming over HTTP (DASH), based on the Hypertext Transfer Protocol (HTTP), has become the mainstream transmission solution due to its ability to intelligently adjust the video bitrate (ABR) according to network conditions. In this technology, the playback platform automatically adjusts the video resolution based on the current network transmission speed to ensure smooth playback.
[0003] However, when the server transmits video through multiple paths, the network transmission speeds of each path are often different or even very different. In practical applications, this difference in transmission speed can mislead the client's video bitrate adjustment logic, resulting in low video data transmission efficiency and consequently poor video quality played by the client. Summary of the Invention
[0004] This application provides a data transmission method, apparatus, electronic device, and storage medium that can improve data transmission efficiency to enhance video playback quality.
[0005] To achieve the above objectives, one embodiment of this application provides a data transmission method, including: Obtain the transmission request, and retrieve the data to be transmitted based on the transmission request; The source and destination addresses of the data to be transmitted are determined by parsing the transmission request, and multiple candidate paths are determined based on the source and destination addresses. Obtain multiple round-trip times and multiple path congestion values for each candidate path, and determine the path throughput corresponding to each candidate path based on the multiple round-trip times and multiple path congestion values; For each path throughput, the path throughput is compared with a preset throughput threshold. If the path throughput is greater than the preset throughput threshold, the candidate path corresponding to the path throughput is taken as the target path, so as to determine at least one target path from multiple candidate paths. During the current data transmission cycle, at least a portion of the data to be transmitted will be transmitted to the user equipment based on all target paths; If the data to be transmitted is in an incomplete transmission state, then in the next data transmission cycle, the process of obtaining multiple round-trip times and multiple path congestion values for each candidate path will be repeated until the data to be transmitted is completely transmitted to the user equipment, thus completing the transmission of the data to be transmitted.
[0006] In some embodiments, transmitting at least a portion of the data to be transmitted to the user equipment based on all target paths includes: Obtain the average round-trip time and average path congestion level for each target path, and obtain the round-trip time threshold; For each target path, when the average round-trip time of the data corresponding to the target path is greater than the round-trip time threshold, a smoothing factor is obtained, the average path congestion value is updated according to the smoothing factor, the updated average path congestion value is obtained, and the target transmission window is determined according to the updated average path congestion value. When the average round-trip time of the target path is less than the round-trip time threshold, the target transmission window is determined based on the average path congestion level. Based on at least one target path, the data to be transmitted is divided into at least one group of data packets to be transmitted; Based on the target transmission window corresponding to each target path, the data packets to be transmitted for each target path are transmitted to the user equipment, so as to transmit at least a portion of the data to be transmitted to the user equipment.
[0007] In some embodiments, obtaining the round-trip time threshold includes: Obtain the round-trip time of multiple historical data points for the target path within a preset historical time window; Obtain the first preset weight corresponding to each historical data round-trip time, and perform weighted calculation on the corresponding historical data round-trip time according to the first preset weight to obtain the weighted historical data round-trip time corresponding to each historical data round-trip time; Sum the round-trip times of all weighted historical data to obtain the average round-trip time of historical data. Obtain the fluctuation determination coefficient, and multiply the fluctuation determination coefficient by the average historical data round-trip time to obtain the round-trip time threshold.
[0008] In some embodiments, obtaining the smoothing factor includes: Obtain the bandwidth utilization of the target path and obtain the second preset weight corresponding to each target path; The total weight is determined based on the second preset weight corresponding to each target path, and the weight ratio between the corresponding second preset weights of the target paths is determined. Multiply the bandwidth utilization rate and the weight ratio to obtain the smoothing factor.
[0009] In some embodiments, obtaining multiple data round-trip times and multiple path congestion values for each candidate path includes: For each candidate path, multiple probe data packets are sent to the user equipment through the candidate path, and the data transmission time and data return time corresponding to each probe data packet are recorded; Based on the data transmission time and data return time corresponding to each probe data packet, the round-trip time of multiple data packets for the candidate path is determined; The path congestion level is determined based on the round-trip time of each data point to obtain multiple path congestion level values for candidate paths.
[0010] In some embodiments, determining the path throughput corresponding to each candidate path based on multiple data round-trip times and multiple path congestion values includes: Obtain the maximum segment size corresponding to each candidate path; For each path congestion level value of each candidate path, the path congestion level value is multiplied by the maximum segment length to obtain the multiplication result. The instantaneous throughput of the candidate path is determined based on the ratio between the multiplication result and the data round-trip time corresponding to the path congestion level value. For each candidate path, the instantaneous throughput of all candidate paths is averaged and smoothed to obtain the path throughput corresponding to the candidate path.
[0011] In some embodiments, for each path throughput, the path throughput is compared with a preset throughput threshold. If the path throughput is greater than the preset throughput threshold, the candidate path corresponding to the path throughput is taken as the target path, so as to determine at least one target path from multiple candidate paths, including: When a buffer emergency signal is received from a user equipment, the first throughput threshold is used as the preset throughput threshold. When no buffer emergency signal is received from a user equipment, the second throughput threshold is used as the preset throughput threshold. The first throughput threshold is less than the second throughput threshold. For each path throughput, the path throughput is compared with a preset throughput threshold. If the path throughput is greater than the preset throughput threshold, the candidate path corresponding to the path throughput is taken as the target path, so as to determine at least one target path from multiple candidate paths.
[0012] To achieve the above objectives, one embodiment of this application provides a data transmission method, including: The acquisition module is used to acquire transmission requests and obtain the data to be transmitted based on the transmission requests. The candidate path determination module is used to determine the source address and destination address of the data to be transmitted by parsing the transmission request, and to determine multiple candidate paths based on the source address and destination address; The path throughput determination module is used to obtain multiple round-trip times and multiple path congestion values for each candidate path, and determine the path throughput corresponding to each candidate path based on the multiple round-trip times and multiple path congestion values. The target path determination module is used to compare the path throughput with a preset throughput threshold for each path throughput. If the path throughput is greater than the preset throughput threshold, the candidate path corresponding to the path throughput is taken as the target path, so as to determine at least one target path from multiple candidate paths. The first transmission module is used to transmit at least a portion of the data to be transmitted to the user equipment based on all target paths during the current data transmission cycle. The second transmission module is used to return to the steps of obtaining multiple round-trip times and multiple path congestion values for each candidate path in the next data transmission cycle if the data to be transmitted is in an incomplete transmission state, until the data to be transmitted is completely transmitted to the user equipment, thus completing the transmission of the data to be transmitted.
[0013] To achieve the above objectives, one aspect of this application provides a computer-readable storage medium storing multiple instructions adapted for loading by a processor to execute the steps in the data transmission method provided in this application.
[0014] To achieve the above objectives, one aspect of this application provides a computer device, including a memory, a processor, and a computer program stored in the memory and capable of running on the processor. When the processor executes the computer program, it implements the steps in the data transmission method provided in this application.
[0015] To achieve the above objectives, one aspect of this application provides a computer program product, including a computer program or instructions, which, when executed by a processor, implement the steps in the data transmission method provided in this application.
[0016] The data transmission method, apparatus, electronic device, and storage medium proposed in this application acquire a transmission request and acquire data to be transmitted based on the transmission request; determine the source address and destination address corresponding to the data to be transmitted by parsing the transmission request, and determine multiple candidate paths based on the source address and destination address; acquire multiple round-trip times and multiple path congestion values for each candidate path, and determine the path throughput corresponding to each candidate path based on the multiple round-trip times and multiple path congestion values; for each path throughput, compare the path throughput with a preset throughput threshold; if the path throughput is greater than the preset throughput threshold, then the candidate path corresponding to the path throughput is taken as the target path, so as to determine at least one target path from multiple candidate paths; within the current data transmission cycle, based on all target paths, transmit at least a portion of the data to be transmitted to the user equipment; if the data to be transmitted is in an incomplete transmission state, then in the next data transmission cycle, return to the step of acquiring multiple round-trip times and multiple path congestion values for each candidate path until the data to be transmitted is completely transmitted to the user equipment, thus completing the transmission of the data to be transmitted.
[0017] This application embodiment calculates the path throughput of each candidate path in real time during each data transmission cycle and uses a preset threshold for dynamic comparison and filtering to eliminate paths with transmission speeds below the standard, retaining only high-speed paths as target paths for subsequent data transmission. This dynamic filtering mechanism fundamentally cuts off the drag on the overall transmission progress caused by local slow paths, avoiding the problem of misleading the client's clarity adjustment logic due to the delayed delivery of some data. As a result, the client can make correct judgments based on a more accurate high-speed transmission status, which not only maximizes the use of high-quality network channel resources and greatly improves the overall data transmission efficiency, but also ensures that the video playback platform can continuously and stably request and output high-definition images, effectively avoiding video stuttering, and ultimately significantly improving the user's actual viewing experience and playback quality.
[0018] Other features and advantages of this application will be set forth in the following description and will be apparent in part from the description or may be learned by practicing the application. The objectives and other advantages of this application may be realized and obtained by means of the structures particularly pointed out in the description, claims and drawings. Attached Figure Description
[0019] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0020] Figure 1 This is a schematic diagram of the system framework corresponding to the data transmission method provided in the embodiments of this application; Figure 2 This is a flowchart illustrating the data transmission method provided in an embodiment of this application; Figure 3 This is a schematic diagram of the client device structure provided in an embodiment of this application; Figure 4 This is a schematic diagram of the server-side device structure provided in an embodiment of this application; Figure 5 This is a schematic diagram of the module structure of the data transmission device provided in an embodiment of this application; Figure 6 This is a schematic diagram of the hardware structure of the electronic device provided in the embodiments of this application. Detailed Implementation
[0021] To enable those skilled in the art to better understand the solutions of this application, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0022] It should be noted that in all specific embodiments of this application, when it is necessary to obtain data to be transmitted, permission or consent from the administrator of the client user device will be obtained first. Furthermore, the collection, use, and processing of this data will comply with relevant laws, regulations, and standards. In addition, when this application embodiment needs to obtain sensitive personal information of relevant personnel, separate permission or consent from the relevant personnel will be obtained through pop-up windows or redirection to a confirmation page. Only after obtaining the separate permission or consent of the relevant personnel will the necessary data to be transmitted for the normal operation of this application embodiment be obtained. Other data obtained in this application embodiment are all authorized and legal data, and will not be described in detail here.
[0023] This application can be used in a wide variety of general-purpose or special-purpose computer system environments or configurations. Examples include: personal computers, server computers, handheld or portable devices, tablet devices, multiprocessor systems, microprocessor-based systems, programmable consumer computer devices, minicomputers, mainframe computers, and distributed computing environments including any of the above systems or devices. This application can be described in the general context of computer-executable instructions executed by a computer, such as program modules. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform specific tasks or implement specific abstract data types. This application can also be practiced in distributed computing environments where tasks are performed by remote processing devices connected via a communication network. In distributed computing environments, program modules can reside in local and remote computer storage media, including storage devices.
[0024] The technical problems existing in the related technologies are as follows: With the widespread adoption of online video services, Dynamic Adaptive Streaming over HTTP (DASH), based on the Hypertext Transfer Protocol (HTTP), has become the mainstream transmission solution due to its ability to intelligently adjust the video bitrate (ABR) according to network conditions. In this technology, the playback platform automatically adjusts the video resolution based on the current network transmission speed to ensure smooth playback.
[0025] However, when the server transmits video through multiple paths, the network transmission speeds of each path are often different or even very different. In practical applications, this difference in transmission speed can mislead the client's video bitrate adjustment logic, resulting in low video data transmission efficiency and consequently poor video quality played by the client.
[0026] For example, in ultra-high-definition live streaming scenarios with multi-path transmission, the video server simultaneously pushes DASH video clips to the client via the backbone fiber optic network and a 5G backup link. The backbone fiber optic network has ample bandwidth but occasionally experiences sudden congestion, while the 5G link has fluctuating bandwidth but lower latency. When the backbone network experiences a decrease in path throughput due to localized congestion, the client's ABR algorithm, based on traditional single-path logic, misjudges this as a deterioration in the overall network environment and switches to a lower bitrate version. Simultaneously, the 5G backup link is actually transmitting high-bitrate data clips at a high rate, but because the client fails to distinguish path differences, it uses the average rate or the lowest path rate after multi-path mixing as the decision basis, leading to the erroneous continuous request for low-definition video. This misjudgment results in the idle waste of valuable 5G link bandwidth resources, causing users to see blurry, choppy, low-quality images even when the network's actual carrying capacity is sufficient. This severely weakens the transmission efficiency of online video services in complex network environments and negatively impacts the user viewing experience.
[0027] The data transmission method, apparatus, electronic device, and storage medium proposed in this application acquire a transmission request and acquire data to be transmitted based on the transmission request; determine the source address and destination address corresponding to the data to be transmitted by parsing the transmission request, and determine multiple candidate paths based on the source address and destination address; acquire multiple round-trip times and multiple path congestion values for each candidate path, and determine the path throughput corresponding to each candidate path based on the multiple round-trip times and multiple path congestion values; for each path throughput, compare the path throughput with a preset throughput threshold; if the path throughput is greater than the preset throughput threshold, then the candidate path corresponding to the path throughput is taken as the target path, so as to determine at least one target path from multiple candidate paths; within the current data transmission cycle, based on all target paths, transmit at least a portion of the data to be transmitted to the user equipment; if the data to be transmitted is in an incomplete transmission state, then in the next data transmission cycle, return to the step of acquiring multiple round-trip times and multiple path congestion values for each candidate path until the data to be transmitted is completely transmitted to the user equipment, thus completing the transmission of the data to be transmitted.
[0028] This application embodiment calculates the path throughput of each candidate path in real time during each data transmission cycle and uses a preset threshold for dynamic comparison and filtering to eliminate paths with transmission speeds below the standard, retaining only high-speed paths as target paths for subsequent data transmission. This dynamic filtering mechanism fundamentally cuts off the drag on the overall transmission progress caused by local slow paths, avoiding the problem of misleading the client's clarity adjustment logic due to the delayed delivery of some data. As a result, the client can make correct judgments based on a more accurate high-speed transmission status, which not only maximizes the use of high-quality network channel resources and greatly improves the overall data transmission efficiency, but also ensures that the video playback platform can continuously and stably request and output high-definition images, effectively avoiding video stuttering, and ultimately significantly improving the user's actual viewing experience and playback quality.
[0029] The specific details regarding the data transmission method, apparatus, electronic device, and storage medium provided in the embodiments of this application will be described in detail below.
[0030] Please see Figure 1 , Figure 1 This is a schematic diagram of the system framework corresponding to the data transmission method provided in the embodiments of this application. The data transmission method provided in the embodiments of this application can be applied to this system framework.
[0031] It includes terminal (client) 140, Internet 130, gateway 120, server 110, etc.
[0032] Terminal 140 or server 110 can be a device that performs a data transmission method.
[0033] Terminal 140 includes, but is not limited to, mobile phones, tablets, computers, and intelligent computing centers. Terminal 140 can be a single device or a collection of multiple devices. For example, multiple computers can be interconnected via a local area network, sharing a single monitor to work collaboratively, thus forming a terminal 140. Terminal 140 can communicate with the Internet 130 via wired or wireless means to exchange data.
[0034] Server 110 refers to a computer system that can provide certain services to terminal 140. Compared to ordinary terminal 140, server 110 has higher requirements in terms of stability, security, and performance. Server 110 can be a standalone physical server, 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 communication, middleware services, domain name services, security services, content delivery networks (CDN), and big data and artificial intelligence platforms.
[0035] Gateway 120, also known as an internetwork connector or protocol converter, is a computer system or device that acts as a translator, enabling network interconnection at the transport layer. It bridges the gap between two systems using different communication protocols, data formats, languages, or even completely different architectures. Gateways can also provide filtering and security functions. Messages sent from terminal 140 to server 110 are forwarded to the corresponding server 110 via gateway 120. Messages sent from server 110 to terminal 140 are also forwarded to the corresponding terminal 140 via gateway 120.
[0036] The embodiments of this application can be applied to various scenarios, such as smart city operation security situation awareness, industrial internet and supply chain security risk prediction, and cross-industry risk collaborative assessment of critical information infrastructure. Of course, the above are merely illustrative examples; the data transmission method proposed in this application involves far more application scenarios than those shown in the examples. The specific method proposed in this application can be selected according to the actual situation.
[0037] Next, we will describe the data transmission device (hereinafter referred to as "device" for ease of description), which is located on the server side, such as... Figure 2 As shown, Figure 2 This is a flowchart illustrating the data transmission method provided in an embodiment of this application. The data transmission method is applied to a data transmission device. Figure 2 The method may include, but is not limited to, the following steps 210 to 260. When the data transmission device executes the data transmission method, the specific process is as follows. It should be noted first that this embodiment... Figure 2 The order of steps 210 to 260 is not specifically limited. The order of steps can be adjusted or some steps can be reduced or added according to actual needs.
[0038] Step 210: Obtain the transmission request and obtain the data to be transmitted based on the transmission request; Step 220: Determine the source and destination addresses of the data to be transmitted by parsing the transmission request, and determine multiple candidate paths based on the source and destination addresses; Step 230: Obtain multiple round-trip times and multiple path congestion values for each candidate path, and determine the path throughput corresponding to each candidate path based on the multiple round-trip times and multiple path congestion values. Step 240: For each path throughput, compare the path throughput with a preset throughput threshold. If the path throughput is greater than the preset throughput threshold, then the candidate path corresponding to the path throughput is taken as the target path, so as to determine at least one target path from multiple candidate paths. Step 250: During the current data transmission cycle, based on all target paths, at least a portion of the data to be transmitted is transmitted to the user equipment; Step 260: If the data to be transmitted is in an incomplete transmission state, then in the next data transmission cycle, return to the step of obtaining multiple round-trip times and multiple path congestion values for each candidate path, until the data to be transmitted is completely transmitted to the user equipment, and the transmission of the data to be transmitted is completed.
[0039] Steps 210 to 260 are described in detail below.
[0040] In step 210, a transmission request is obtained, and the data to be transmitted is obtained according to the transmission request.
[0041] In some embodiments, the device first receives a transmission request from a user device. The transmission request is an HTTP request from the user device for specific media content, and it also includes the desired quality of service (QoS) corresponding to the specific media content. For example, the specific media content may be a video to be played, and the desired QoS is the desired playback resolution of the video. The desired playback resolution includes, but is not limited to, standard (480p), high-definition (720p), and ultra-high-definition (1080p). Typically, when the data to be transmitted is a long video, the user device requests to play one video segment sequentially. The user device is a client device, such as a mobile phone, tablet, or computer. Next, the device obtains the data to be transmitted according to the transmission request. The data to be transmitted corresponds to the specific media content and includes multiple data packets to be transmitted. In a DASH-based video streaming scenario, the server pre-stores multiple different bitrate versions of the target video (i.e., multiple different versions of the data to be transmitted). The server determines which version of the video data to send based on the transmission request sent by the user device.
[0042] In step 220, the source address and destination address corresponding to the data to be transmitted are determined by parsing the transmission request, and multiple candidate paths are determined based on the source address and destination address.
[0043] In some embodiments, the transmission request includes not only specific media content and its corresponding expected quality of service information, but also source and destination address information. The device deployed on the server side determines the source and destination addresses of the data to be transmitted by parsing the transmission request. The source address is the Internet Protocol address and port number of the sending end (e.g., a server providing video services), and the destination address is the Internet Protocol address and port number of the receiving end (e.g., a mobile terminal with multiple network interfaces). In a network environment using Multipath Transmission Control Protocol (MPTCP), there are often multiple available candidate paths between the sending and receiving ends. For example, candidate paths may include Wi-Fi 1, Cellular 1, and Cellular 2.
[0044] MPTCP is an extended version of the standard Transmission Control Protocol (TCP). It allows a single network connection to use multiple physical paths (such as Wi-Fi and 4G / 5G cellular networks) for data transmission simultaneously. When one path is broken, the protocol allows automatic switching to other paths, thereby significantly improving transmission throughput and enhancing connection reliability without changing the upper-layer application logic.
[0045] In step 230, multiple data round-trip times and multiple path congestion values are obtained for each candidate path, and the path throughput corresponding to each candidate path is determined based on the multiple data round-trip times and multiple path congestion values.
[0046] Among them, the data round-trip time refers to the total time required for data to be sent from the server and received from the client, which reflects the transmission delay level of the corresponding path; the path congestion value refers to the maximum amount of data that the sender is allowed to send before receiving an acknowledgment in the transmission control protocol, which reflects the channel carrying capacity of the corresponding path.
[0047] Furthermore, after obtaining the data round-trip time and path congestion level value of each candidate path, the device determines the path throughput of each candidate path based on the data round-trip time and path congestion level value, so as to subsequently select the target path based on the path throughput of each candidate path.
[0048] In some embodiments, obtaining multiple data round-trip times and multiple path congestion values for each candidate path includes: (1.1) For each candidate path, send multiple probe data packets to the user equipment through the candidate path, and record the data transmission time and data return time corresponding to each probe data packet; (1.2) Determine the round-trip times of multiple data packets for each candidate path based on the data transmission time and data return time corresponding to each probe data packet; (1.3) Determine the corresponding path congestion level value based on the round-trip time of each data to obtain multiple path congestion level values for candidate paths.
[0049] In some embodiments, to obtain the real-time transmission status of the underlying network, probe packets are used as data carriers to measure network conditions and determine the data round-trip time corresponding to each candidate path. Probe packets typically contain a small amount of data. The device continuously sends multiple probe packets to the user equipment along multiple established candidate paths and records the data transmission time of each probe packet leaving the sending network interface. After the probe packets arrive at the user equipment via the candidate paths, the user equipment, according to the acknowledgment mechanism of the underlying network transmission protocol, replies to the server with a reception signal indicating successful reception. The server records the corresponding data return time upon receiving this signal.
[0050] Furthermore, by subtracting the initial data transmission time from the data return time of the probe data packet, the time difference between the two is obtained. This time difference represents the time consumed for the data packet to be sent from the sender, traverse the network to reach the user equipment, and for its acknowledgment signal to return to the sender. This time is the round-trip time of the corresponding probe data packet. Therefore, the round-trip time of the data packet is used as the data round-trip time to characterize the candidate path.
[0051] Furthermore, based on the congestion control algorithm logic built into the transport layer protocol, the congestion status of the current link is determined according to the data round-trip time to obtain the path congestion level value, which in turn characterizes the current channel carrying capacity of the corresponding path.
[0052] It is understood that the embodiments of this application, by sending multiple probe data packets and accurately recording the complete transmission and reception time cycle, effectively overcome the shortcomings of single network probes being susceptible to instantaneous jitter, occasional packet loss, or background noise interference, and significantly improve the accuracy of data round-trip time measurement. The path congestion level value derived from this high-confidence delay data can more realistically reflect the actual carrying capacity and congestion status of candidate paths at the current moment, thereby providing accurate underlying data support for subsequent calculation of path throughput and selection of high-quality target paths, and avoiding misjudgment in target path selection.
[0053] In some embodiments, determining the path throughput corresponding to each candidate path based on multiple data round-trip times and multiple path congestion values includes: (2.1) Obtain the preset maximum segment size for each candidate path; (2.2) For each path congestion level value of each candidate path, the path congestion level value is multiplied by the maximum segment length to obtain the multiplication result, and the instantaneous throughput of the candidate path is determined according to the ratio between the multiplication result and the data round-trip time corresponding to the path congestion level value. (2.3) Obtain the influence range factor. For each candidate path, perform average smoothing on all instantaneous throughputs of the candidate path based on the influence range factor to obtain the path throughput corresponding to the candidate path.
[0054] In some embodiments, multiple instantaneous throughput SendRate for each candidate path are determined using the following formula: SendRate = MSS × cwnd / rtt. Here, MSS represents the preset maximum segment size for each candidate path, cwnd represents the congestion level of any path, and rtt represents the round-trip time for the data corresponding to the current path's congestion level.
[0055] The Maximum Segment Size (MSS) is usually determined automatically by the server and client through the exchange of Synchronize Sequence Numbers (SYN) packets during the initial stage of TCP connection establishment.
[0056] Furthermore, after calculating the instantaneous throughput, due to the complexity of the wireless network environment, links often experience severe state jitter due to sudden background traffic, channel fading, or brief signal congestion. If the instantaneous throughput at a single moment is directly used as the basis for path evaluation and data scheduling, the device is prone to becoming overly sensitive to transient network fluctuations, resulting in frequent and blind switching between multiple candidate paths. This not only increases computational overhead but may also affect the user's viewing experience. Therefore, this embodiment of the application also determines the path throughput corresponding to the candidate path based on multiple instantaneous throughputs.
[0057] Specifically, the obtained influence range factor is used to smooth multiple instantaneous throughputs of the current candidate path to eliminate interference caused by short-term network jitter. The influence range factor defines the time window or data span parameter that allows historical instantaneous throughput to substantially influence the current path throughput evaluation result. For example, when the influence range factor is 3, the three nearest instantaneous throughputs of the current candidate path are selected for subsequent calculations to determine the path throughput of the current candidate path. The specific value of the influence range factor can be determined according to actual conditions, and this embodiment does not impose any limitations on it.
[0058] Furthermore, the path throughput corresponding to each candidate path is determined using the following formula. : Where N is the influence range factor, representing the throughput at the i-th instant.
[0059] It is understood that path throughput reflects the current data transmission capacity of the corresponding path. This application embodiment estimates the path throughput of each candidate path in real time, laying the foundation for subsequent screening of multiple candidate paths.
[0060] In step 240, for each path throughput, the path throughput is compared with a preset throughput threshold. If the path throughput is greater than the preset throughput threshold, the candidate path corresponding to the path throughput is taken as the target path, so as to determine at least one target path from multiple candidate paths.
[0061] In some embodiments, to eliminate low-quality links, the device introduces a preset throughput threshold as a filtering benchmark. By traversing and comparing all candidate paths, it automatically identifies high-quality candidate paths with acceptable transmission rates and marks them as target paths, while disabling low-quality candidate paths with unacceptable throughput. Thus, only paths with acceptable data transmission rates can be added to the target path set. Sending data through the target path set ensures that data transmission time is controlled within a reasonable range. Consequently, the user equipment can more accurately determine the expected quality of service for the next data transmission cycle based on the data transmission time corresponding to the current data transmission cycle.
[0062] The preset throughput threshold can be pre-set or dynamically and adaptively adjusted based on the statistical characteristics of the path throughput of each candidate path. For example, a specific percentage (such as 60% of the maximum throughput or 80% of the average throughput) of the average, median, or highest path throughput of all candidate paths can be calculated in real time as a dynamic threshold. Alternatively, a baseline can be established based on the performance data of paths that have successfully completed transmissions in historical transmission cycles. This ensures that the threshold can effectively filter out inferior paths that are significantly lower than the current overall network level, while also flexibly adapting to overall fluctuations in the network environment. This avoids situations where no paths are available due to an excessively high threshold or inefficient paths are mixed in due to an excessively low threshold. The specific value of the preset throughput threshold can be set according to actual conditions, and this embodiment does not impose any limitations on this.
[0063] For example, suppose a user device requests a 1080p video clip with a bitrate of 8 megabits per second (Mbps). The server sets a preset throughput threshold of 5 Mbps. Three candidate paths are detected: path A (fiber optic, throughput 50 Mbps), path B (4G network, throughput 12 Mbps), and path C (weak 2G signal, throughput 1 Mbps). Without using the method proposed in this embodiment, the device would allocate data to all three paths. Since path C has an extremely slow transmission speed, the data blocks allocated to it would experience severe transmission delays, forcing the entire video clip to wait for the slowest path, C, to complete its transmission before it can be assembled and played, resulting in overall playback stuttering.
[0064] If the method proposed in the embodiments of this application is used, the device eliminates path C by comparing the 1Mbps and 5Mbps thresholds, and only marks paths A and B as target paths. In this way, video data is transmitted only on the high-speed link. Assuming that a segment that originally took 5 seconds to transmit can now be completed in only 1.5 seconds, the user equipment detects that the transmission time is extremely short and there is no waiting, and can then continue to request video with a bitrate of 8Mbps or even higher in the next cycle, thereby maintaining the high-definition quality of the video.
[0065] It is understood that the embodiments of this application actively filter multiple candidate paths by introducing a preset throughput threshold, thereby ensuring that the final selected set of target paths all have reliable transmission capabilities that meet the current video bitrate requirements. This not only significantly improves the overall success rate and stability of multi-path aggregation transmission, but also effectively avoids the user equipment's incorrect quality of service request determination caused by the excessively long overall transmission time due to the participation of inferior links in data transmission.
[0066] In some embodiments, for each path throughput, the path throughput is compared with a preset throughput threshold. If the path throughput is greater than the preset throughput threshold, the candidate path corresponding to the path throughput is taken as the target path, so as to determine at least one target path from multiple candidate paths, including: (3.1) When a buffer emergency signal is received from a user equipment, the first throughput threshold is used as the preset throughput threshold. When no buffer emergency signal is received from a user equipment, the second throughput threshold is used as the preset throughput threshold. The first throughput threshold is less than the second throughput threshold. (3.2) For each path throughput, the path throughput is compared with the preset throughput threshold. If the path throughput is greater than the preset throughput threshold, the candidate path corresponding to the path throughput is taken as the target path, so as to determine at least one target path from multiple candidate paths.
[0067] The buffer emergency signal refers to the signal sent by a user device to the sending end when the video data it has received locally is about to run out and there is a risk of buffering and playback interruption. When a buffer emergency signal is received from a user device, the first throughput threshold is used as the preset throughput threshold. By automatically lowering the filtering criteria, the requirements for network channel speed are relaxed, allowing more backup channels that were originally at the edge to join in and participate in data transmission.
[0068] Furthermore, after determining the preset throughput threshold, the device will traverse all currently available candidate paths and obtain their corresponding path throughput. By comparing the path throughput of each candidate path with the determined preset throughput threshold, only those candidate paths whose actual transmission rate can exceed the preset threshold will be selected and configured as the target paths for actually carrying data delivery tasks. Candidate paths that do not meet the throughput threshold standard will be excluded from the set of available paths in the current transmission cycle.
[0069] Furthermore, if poor-quality paths are allowed to transmit data during the current data transmission cycle, the time taken to transmit video during the current data transmission cycle will inevitably be longer. To avoid affecting the quality of service (QoS) request for the next data transmission cycle, if a buffer emergency signal is received from the user equipment during the current data transmission cycle, the device will generate an emergency transmission flag and send it along with the data or independently back to the user equipment. This instructs the user equipment to remove or weight and correct the longer transmission time caused by the use of low-speed paths when calculating the expected QoS for the next cycle, preventing the client from misjudging temporary network fluctuations as a normal decrease in bandwidth and causing subsequent QoS request errors.
[0070] Furthermore, if a buffer emergency signal is received for several consecutive cycles, the device stops generating and sending emergency transmission markers. In this way, the user equipment will generate the next transmission request according to the current video data transmission time. This will prompt the user equipment to actively reduce the expected quality of service when the network condition is poor. By sacrificing some image quality, the device can exchange data filling speed and playback continuity for the sake of speed, ensuring that the user can still obtain an acceptable minimum continuous viewing experience in a weak network environment.
[0071] It is understood that this application embodiment achieves coordinated linkage between transport layer path filtering and application layer playback status by introducing a dynamic threshold adjustment mechanism based on the user device's cache state. Under normal conditions where the user device has sufficient cache, the device adopts a higher throughput filtering threshold, effectively eliminating low-speed paths and ensuring the efficiency of multi-path concurrent transmission and high-speed data delivery. However, in extreme scenarios where the user device faces cache shortages, impending service interruption, or playback stuttering, the device can adaptively lower the path filtering threshold requirement, promptly enabling some suboptimal candidate paths to maximize the aggregated total bandwidth, thereby accelerating the transmission of video data to the user device.
[0072] In step 250, within the current data transmission cycle, at least a portion of the data to be transmitted is transmitted to the user equipment based on all target paths.
[0073] In some embodiments, a data transmission cycle refers to a time window or working round in which the device performs one path state sampling and data transmission. Since the data to be transmitted is often large in size, it is usually impossible to transmit it all at once, so multiple data transmission cycles are required. Furthermore, within the current data transmission cycle, the device only uses the target path to send down at least a portion of the data to be transmitted. In this way, it ensures that the data stream being transmitted will only be transmitted through the high-speed channel, avoiding the participation of inefficient channels.
[0074] In this context, "at least part" in "at least part of the data to be transmitted" means that during the current data transmission cycle, some of the data to be transmitted, i.e., some of the video, may be transmitted to the user equipment, or all of the data to be transmitted, i.e., the complete video, may be transmitted to the user equipment; and then, at least part of the data to be transmitted is transmitted through all the target paths determined within the current data transmission cycle.
[0075] In some embodiments, transmitting at least a portion of the data to be transmitted to the user equipment based on all target paths includes: (4.1) Obtain the average round-trip time and average path congestion level for each target path, and obtain the round-trip time threshold; (4.2) For each target path, when the average round-trip time of the target path is greater than the round-trip time threshold, a smoothing factor is obtained, the average path congestion value is updated according to the smoothing factor, the updated average path congestion value is obtained, and the target transmission window is determined according to the updated average path congestion value. (4.3) When the average round-trip time of the target path is less than the round-trip time threshold, the target transmission window is determined based on the average path congestion level. (4.4) Divide the data to be transmitted into at least one group of data packets to be transmitted based on at least one target path; (4.5) Based on the target transmission window corresponding to each target path, transmit the data packets to be transmitted for each target path to the user equipment, so as to transmit at least part of the data to be transmitted to the user equipment.
[0076] In some embodiments, the data round-trip time and path congestion level are determined based on lightweight probe packets to filter target paths. After filtering target paths, due to the highly dynamic and time-varying nature of the network state and the different data sizes of the data to be transmitted and the probe packets, it is necessary to re-determine the average data round-trip time and average path congestion level for each target path at the current moment. The average data round-trip time is obtained by averaging the round-trip times of each data sub-stream sent on the target path, and the average path congestion level is obtained by averaging the path congestion levels of multiple data sub-streams. The path congestion level is determined by the corresponding data sub-stream round-trip times.
[0077] Furthermore, after determining the average round-trip time and average path congestion level for each target path, if the device detects that the real-time delay (i.e., average round-trip time) of the target path exceeds the preset round-trip time threshold, it indicates that the path is experiencing network congestion or severe fluctuations. In this case, to avoid the traditional control algorithm directly and drastically reducing the transmission window, which would cause a sharp drop in throughput, a dynamically changing smoothing factor is introduced. This smoothing factor is used to suppressively adjust the current average path congestion level, calculate the updated average path congestion level, and determine the actual target transmission window (i.e., congestion window, cwnd) of the path in the current state based on this. This achieves smooth control over sudden changes in the congestion window.
[0078] For example, suppose the average path congestion level of a target path is 100 data segments, and the preset round-trip time threshold is 50ms. When network congestion causes the average data round-trip time of this path to surge to 60ms, exceeding the threshold, the traditional method will directly halve the average path congestion level to 50 data segments to deal with the risk. This will cause the throughput to be halved instantly and cause video stuttering. The embodiments of this application introduce a smoothing factor, multiply the average path congestion level by the smoothing factor to obtain an updated average path congestion level, and determine the target transmission window based on the updated average path congestion level.
[0079] Furthermore, if the average round-trip time of the target path is less than the round-trip time threshold, it means that the current transmission status of the target path is relatively stable, the network latency is within a reasonable range, and the smoothing control conditions of the system have not been triggered. In this case, there is no need to make additional smoothing suppression adjustments to the congestion control parameters. Instead, the existing average path congestion level value is directly used or updated according to the standard multipath transmission control protocol algorithm, and it is used as the target transmission window of the target path to maintain compatibility with the existing network transmission mechanism and maintain normal high-speed data transmission.
[0080] Furthermore, since the multipath transmission architecture allows data to be sent in parallel through multiple independent physical or logical links, a data splitting operation is required. Specifically, the device determines how many independent data units the data to be transmitted needs to be divided into based on all transmission paths identified in the current data transmission cycle, so that these data can be allocated to different target paths for concurrent network transmission.
[0081] Furthermore, after the data packets are divided and the final transmission control limit for each path is determined, the data packets allocated to each target path are sent to the receiving user equipment according to the target transmission window size corresponding to that path. The target transmission window specifies the maximum amount of data allowed to be sent on that path in the current period, thereby ensuring that the actual amount of data sent on each path matches its current real network capacity, and thus completing the concurrent data transmission operation in the current period safely and efficiently.
[0082] It is understood that the embodiments of this application monitor the round-trip time of each target path in real time, and when a significant delay occurs and exceeds the round-trip time threshold, a smoothing factor is introduced to suppress the update of the path congestion level value. This effectively avoids the problem of drastic fluctuations in total throughput caused by sudden drops in window size in traditional protocols. This control mechanism enables the device to maintain normal transmission when the network is stable and to smoothly transition when the network is jittery. It retains the high throughput advantage of multi-path aggregation bandwidth and greatly improves the stability of data transmission rate, thereby effectively reducing the bitrate switching frequency in the adaptive video stream transmission process and significantly improving the overall experience quality of video playback.
[0083] In some embodiments, obtaining the round-trip time threshold includes: (4.1.1) Obtain the round-trip time of the target path in multiple historical data within a preset historical time window; (4.1.2) Obtain the first preset weight corresponding to each historical data round-trip time, and perform weighted calculation on the corresponding historical data round-trip time according to the first preset weight to obtain the weighted historical data round-trip time corresponding to each historical data round-trip time; (4.1.3) Sum up all the weighted historical data round-trip times to obtain the average historical data round-trip time; (4.1.4) Obtain the fluctuation determination coefficient, and multiply the fluctuation determination coefficient by the average historical data round-trip time to obtain the round-trip time threshold.
[0084] In some embodiments, in order to more accurately determine the round-trip time threshold, the device refers to the network performance of the path over a period of time in the past, and retrieves multiple round-trip delay data that have occurred continuously or discretely on the target path within a preset historical time window to obtain multiple historical data round-trip times, so as to subsequently determine the round-trip time threshold based on the multiple historical data round-trip times.
[0085] The preset historical time window refers to a sliding time observation interval set by the device to evaluate the network stability of the target path. For example, the past 5 seconds, the past 10 seconds, or the past 3 transmission cycles can all be used as the preset historical time window. Each sampling time period in the preset historical time window can be continuous or discontinuous. The preset historical time window can be set according to the actual situation, and this application embodiment does not limit it.
[0086] Furthermore, in a network transmission environment, the latency data generated at different times has different reference value for assessing the current network status. Generally, the closer the data is to the current time, the higher its accuracy in reflecting the recent network congestion trend. The device assigns a corresponding first preset weight to each extracted historical data round-trip time. The higher the value of the first preset weight, the more important the corresponding subordinate data round-trip time is. Then, the device multiplies each historical data round-trip time by its own corresponding first preset weight to obtain the weighted historical data round-trip time corresponding to each historical data round-trip time.
[0087] Furthermore, after completing the weighted processing of each independent historical data sample within the time window, these scattered weighted results are integrated. By summing and accumulating, the round-trip times of all weighted historical data generated within the preset historical time window are added together to determine the overall delay of the target path in a recent period, i.e., the average historical data round-trip time.
[0088] Furthermore, this application embodiment introduces a fluctuation determination coefficient, which represents the proportional parameter limit of the normal physical fluctuation amplitude of the network. The specific value of the fluctuation determination coefficient can be set according to the actual situation. Multiplying the fluctuation determination coefficient by the average historical data round-trip time, the resulting product is the round-trip time threshold. The round-trip time threshold will be used as the basis for subsequently determining whether each target path triggers the congestion smoothing mechanism. For example, when RTT > 1.5 × Γr, RTT is the average data round-trip time corresponding to the target path, and when 1.5 × Γr is the round-trip time threshold, 1.5 is the fluctuation determination coefficient, and Γr is the average historical data round-trip time. In this way, this application embodiment can overcome the lag and high false positive rate defects caused by using a fixed threshold or a single instantaneous measurement value as the congestion judgment standard in traditional transmission protocols. By dynamically adjusting the round-trip time threshold, the accuracy and anti-interference capability of network congestion state determination are greatly improved.
[0089] In some embodiments, obtaining the smoothing factor includes: (4.2.1) Obtain the bandwidth utilization of the target path and obtain the second preset weight corresponding to each target path; (4.2.2) Determine the total weight based on the second preset weight corresponding to each target path, and determine the weight ratio between the corresponding second preset weights of the target paths; (4.2.3) Multiply the bandwidth utilization rate and the weight ratio to obtain the smoothing factor.
[0090] Bandwidth utilization refers to the ratio between the actual data throughput transmitted on a specific target path within a specific transmission cycle and the maximum available bandwidth supported by its physical link. This parameter, as a dynamic underlying network status indicator, objectively and in real-time reflects the actual congestion load of the current physical network channel. In a multi-path concurrent transmission architecture, due to differences in the hardware media and basic transmission performance of different physical networks (such as wireless LANs or cellular networks), the device also pre-configures a second preset weight for each target path to characterize its transmission capacity priority. At the initial stage of the smoothing mechanism calculation process, the device needs to accurately extract these two types of basic parameters from the transmission control protocol stack or network monitoring module, which are located in different dimensions, to provide necessary data support for subsequent quantitative calculations of congestion suppression levels.
[0091] Furthermore, after obtaining the second preset weight values of all target paths currently in concurrent state, the weights of all paths are accumulated to obtain the total weight representing the overall basic transmission capacity of the entire multi-path network connection. Next, the device divides the second preset weight corresponding to the specific target path by the total weight to determine the weight ratio of the target path in the system. This weight ratio quantifies the relative importance of the corresponding specific target path in the entire concurrent data transmission architecture. Then, the bandwidth utilization rate and the weight ratio are multiplied to obtain a smoothing factor.
[0092] In some embodiments, the smoothing adjustment is dynamically correlated with the current actual load of the path and its relative importance in the multi-path system: the current busyness of the path is perceived by introducing bandwidth utilization; the higher the utilization, the closer it is to saturation, and the more sensitive it is to congestion; the contribution of the path to the entire transmission task is quantified by a weight ratio; the larger the weight, the more data it carries, and the greater the impact of its fluctuations on the overall system; then, the two are multiplied to calculate a larger smoothing factor on the critical path with high load and high weight, thereby implementing a more accurate and targeted window suppression strategy when latency exceeds the limit, avoiding excessive intervention on low-load or edge paths, and also preventing core paths from exacerbating congestion due to insufficient adjustment, thus ensuring the overall stability and fairness of multi-path cooperative transmission under complex network fluctuations.
[0093] In step 260, if the data to be transmitted is in an incomplete transmission state, then in the next data transmission cycle, the step of obtaining multiple round-trip times and multiple path congestion values for each candidate path is returned until the data to be transmitted is completely transmitted to the user equipment, thus completing the transmission of the data to be transmitted.
[0094] In some embodiments, since the network environment is constantly changing, a high-quality path in the previous cycle may become congested in the next second. Therefore, as long as there is still data left to be sent, the device will return to the step of obtaining multiple round-trip times and multiple path congestion values for each candidate path when entering the next data transmission cycle. By continuously optimizing path selection to adapt to dynamic network changes, the device will continue to optimize path selection until all data is safely and completely delivered to the user equipment.
[0095] Understandably, this embodiment of the application periodically probes the underlying state parameters of each candidate path and calculates the path throughput. Combined with a threshold filtering mechanism, it precisely disables slow, low-quality paths in the network, ensuring that data is always transmitted concurrently only on efficient target paths. This design effectively avoids the problem of slow local paths slowing down the overall data block download progress, and prevents underlying transmission delays from misleading the adaptive bitrate adjustment logic of upper-layer applications on the client. It not only significantly improves the overall data transmission efficiency in a multi-path environment, but also fundamentally guarantees the smoothness of data interaction, greatly enhancing the overall experience quality of end users.
[0096] Furthermore, in practical application deployment, only local modifications are needed to the underlying kernel module of the multipath transmission control protocol on the server side, without any changes to the hardware and software configuration of the receiving end user equipment. This means that the solution can seamlessly connect to and be fully compatible with various existing user terminal devices, standard dynamic adaptive streaming media protocols, and mature upper-layer application service systems, which can greatly reduce industrial manufacturing costs.
[0097] Specifically, such as Figure 3 , Figure 4 As shown, Figure 3 This is a schematic diagram of the client device structure provided in an embodiment of this application. Figure 4 This is a schematic diagram of the server-side device structure provided in the embodiments of this application. Applying the method proposed in these embodiments requires no modification to the client's code or configuration; it completely retains the original device state and directly accesses the network through the device's existing WIFI or cellular multi-network interfaces. It uses an MPTCP client that supports standard protocols to receive concurrent data from multiple paths and ultimately delivers complete data fragments to the DASH player for video stream parsing and playback. On the server side, the method proposed in these embodiments can be used to modify the MPTCP+ kernel module. This module integrates a path decision unit responsible for intelligently selecting high-quality links and a congestion control unit responsible for suppressing window fluctuations. Furthermore, the module generated using the method of this application can seamlessly interface with the original version of the Apache2 HTTP server, the DASH video data source storing 1080p fragments, and the wondershaper tool responsible for network traffic shaping.
[0098] The path decision unit is responsible for accurately calculating the actual path throughput in scenarios with concurrent transmission across multiple network channels by collecting the round-trip time and congestion level of each candidate path in real time. This calculation is then compared with a dynamically set preset throughput threshold to disable low-speed, low-quality paths, ensuring that video segments are transmitted efficiently and concurrently only on selected high-speed target paths. The congestion control unit specifically manages the transmission rate against jitter for these target paths. By continuously monitoring the round-trip time of the target path, it innovatively introduces a smoothing factor combining bandwidth utilization and global weight ratio to suppressively and smoothly update the current congestion level of the path once the real-time latency exceeds the preset round-trip time threshold. This effectively avoids the problem of traditional network protocols blindly reducing the sending window when faced with random jitter in the underlying network. Thus, the MPTCP+ kernel module can be matched with server-side devices in related technologies for data transmission, providing the client playback platform with continuous, stable, and high-definition data stream support without buffering.
[0099] like Figure 5 As shown, Figure 5 This is a schematic diagram of the module structure of the data transmission device provided in this application embodiment. The data transmission device 300 may include the following modules 310 to 360: The acquisition module 310 is used to acquire a transmission request and acquire the data to be transmitted based on the transmission request. The candidate path determination module 320 is used to determine the source address and destination address corresponding to the data to be transmitted by parsing the transmission request, and to determine multiple candidate paths based on the source address and destination address; The path throughput determination module 330 is used to obtain the data round-trip time and path congestion level value of each candidate path, and determine the path throughput corresponding to each candidate path based on the data round-trip time and path congestion level value. The target path determination module 340 is used to compare the path throughput with a preset throughput threshold for each path throughput. If the path throughput is greater than the preset throughput threshold, the candidate path corresponding to the path throughput is taken as the target path, so as to determine at least one target path from multiple candidate paths. The first transmission module 350 is used to transmit at least a portion of the data to be transmitted to the user equipment based on all target paths during the current data transmission cycle. The second transmission module 360 is used to return to the step of obtaining multiple round-trip times and multiple path congestion values for each candidate path in the next data transmission cycle if the data to be transmitted is in an incomplete transmission state, until the data to be transmitted is completely transmitted to the user equipment, thus completing the transmission of the data to be transmitted.
[0100] In some embodiments, the first transmission module 350 is used for: Obtain the average round-trip time and average path congestion level for each target path, and obtain the round-trip time threshold; For each target path, when the average round-trip time of the data corresponding to the target path is greater than the round-trip time threshold, a smoothing factor is obtained, the average path congestion value is updated according to the smoothing factor, the updated average path congestion value is obtained, and the target transmission window is determined according to the updated average path congestion value. When the average round-trip time of the target path is less than the round-trip time threshold, the target transmission window is determined based on the average path congestion level. Based on at least one target path, the data to be transmitted is divided into at least one group of data packets to be transmitted; Based on the target transmission window corresponding to each target path, the data packets to be transmitted for each target path are transmitted to the user equipment, so as to transmit at least a portion of the data to be transmitted to the user equipment.
[0101] In some embodiments, the first transmission module 350 is further configured to: Obtain the round-trip time of multiple historical data points for the target path within a preset historical time window; Obtain the first preset weight corresponding to each historical data round-trip time, and perform weighted calculation on the corresponding historical data round-trip time according to the first preset weight to obtain the weighted historical data round-trip time corresponding to each historical data round-trip time; Sum the round-trip times of all weighted historical data to obtain the average round-trip time of historical data. Obtain the fluctuation determination coefficient, and multiply the fluctuation determination coefficient by the average historical data round-trip time to obtain the round-trip time threshold.
[0102] In some embodiments, the first transmission module 350 is further configured to: Obtain the bandwidth utilization of the target path and obtain the second preset weight corresponding to each target path; The total weight is determined based on the second preset weight corresponding to each target path, and the weight ratio between the corresponding second preset weights of the target paths is determined. Multiply the bandwidth utilization rate and the weight ratio to obtain the smoothing factor.
[0103] In some embodiments, the path throughput determination module 330 is used for: For each candidate path, multiple probe data packets are sent to the user equipment through the candidate path, and the data transmission time corresponding to each probe data packet is recorded; When a received signal is received from the user equipment, the data return time corresponding to each probe data packet is recorded; Based on the data transmission time and data return time corresponding to each probe data packet, the round-trip time of a single data packet is determined; The round-trip time of candidate paths is determined based on multiple single data round-trip times, and the path congestion level is determined based on the round-trip time.
[0104] In some embodiments, the path throughput determination module 330 is used for: Obtain the maximum segment size corresponding to each candidate path; For each candidate path, the path congestion level value corresponding to the candidate path is multiplied by the maximum segment length to obtain the multiplication result; The path throughput corresponding to the candidate path is determined by the ratio between the multiplication result and the round-trip time of the data corresponding to the candidate path.
[0105] In some embodiments, the target path determination module 340 is used for: When a buffer emergency signal is received from a user equipment, the first throughput threshold is used as the preset throughput threshold. When no buffer emergency signal is received from a user equipment, the second throughput threshold is used as the preset throughput threshold. The first throughput threshold is less than the second throughput threshold. For each path throughput, the path throughput is compared with a preset throughput threshold. If the path throughput is greater than the preset throughput threshold, the candidate path corresponding to the path throughput is taken as the target path, so as to determine at least one target path from multiple candidate paths.
[0106] The data transmission method, apparatus, electronic device, and storage medium proposed in this application acquire a transmission request and acquire data to be transmitted based on the transmission request; determine the source address and destination address corresponding to the data to be transmitted by parsing the transmission request, and determine multiple candidate paths based on the source address and destination address; acquire multiple round-trip times and multiple path congestion values for each candidate path, and determine the path throughput corresponding to each candidate path based on the multiple round-trip times and multiple path congestion values; for each path throughput, compare the path throughput with a preset throughput threshold; if the path throughput is greater than the preset throughput threshold, then the candidate path corresponding to the path throughput is taken as the target path, so as to determine at least one target path from multiple candidate paths; within the current data transmission cycle, based on all target paths, transmit at least a portion of the data to be transmitted to the user equipment; if the data to be transmitted is in an incomplete transmission state, then in the next data transmission cycle, return to the step of acquiring multiple round-trip times and multiple path congestion values for each candidate path until the data to be transmitted is completely transmitted to the user equipment, thus completing the transmission of the data to be transmitted.
[0107] This application embodiment calculates the path throughput of each candidate path in real time during each data transmission cycle and uses a preset threshold for dynamic comparison and filtering to eliminate paths with transmission speeds below the standard, retaining only high-speed paths as target paths for subsequent data transmission. This dynamic filtering mechanism fundamentally cuts off the drag on the overall transmission progress caused by local slow paths, avoiding the problem of misleading the client's clarity adjustment logic due to the delayed delivery of some data. As a result, the client can make correct judgments based on a more accurate high-speed transmission status, which not only maximizes the use of high-quality network channel resources and greatly improves the overall data transmission efficiency, but also ensures that the video playback platform can continuously and stably request and output high-definition images, effectively avoiding video stuttering, and ultimately significantly improving the user's actual viewing experience and playback quality.
[0108] like Figure 6 As shown, Figure 6 This is a schematic diagram of the hardware structure of an electronic device provided in an embodiment of this application. The electronic device includes: The processor 401 can be implemented using a general-purpose CPU, a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits, and is used to execute relevant programs to implement the technical solutions provided in the embodiments of this application. The memory 402 can be implemented as a read-only memory (ROM), a static storage device, a dynamic storage device, or a random access memory (RAM). The memory 402 can store the operating system and other applications. When the technical solutions provided in the embodiments of this specification are implemented through software or firmware, the relevant program code is stored in the memory 402 and is called and executed by the processor 401 using the data transmission method of the embodiments of this application. Input / output interface 403 is used to implement information input and output; The communication interface 404 is used to enable communication and interaction between this device and other devices. Communication can be achieved through wired means (such as USB, Ethernet cable, etc.) or wireless means (such as mobile network, WIFI, Bluetooth, etc.). Bus 405 transmits information between various components of the device (e.g., processor 401, memory 402, input / output interface 403, and communication interface 404); The processor 401, memory 402, input / output interface 403 and communication interface 404 are connected to each other within the device via bus 405.
[0109] This application also provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the above-described data transmission method.
[0110] Memory, as a non-transitory computer-readable storage medium, can be used to store non-transitory software programs and non-transitory computer-executable programs. Furthermore, memory may include high-speed random access memory, and may also include non-transitory memory, such as at least one disk storage device, flash memory device, or other non-transitory solid-state storage device. In some embodiments, memory may optionally include memory remotely located relative to the processor, and these remote memories can be connected to the processor via a network. Examples of such networks include, but are not limited to, the Internet, intranets, local area networks, mobile communication networks, and combinations thereof.
[0111] The data transmission method, apparatus, electronic device, and storage medium proposed in this application acquire a transmission request and acquire data to be transmitted based on the transmission request; determine the source address and destination address corresponding to the data to be transmitted by parsing the transmission request, and determine multiple candidate paths based on the source address and destination address; acquire multiple round-trip times and multiple path congestion values for each candidate path, and determine the path throughput corresponding to each candidate path based on the multiple round-trip times and multiple path congestion values; for each path throughput, compare the path throughput with a preset throughput threshold; if the path throughput is greater than the preset throughput threshold, then the candidate path corresponding to the path throughput is taken as the target path, so as to determine at least one target path from multiple candidate paths; within the current data transmission cycle, based on all target paths, transmit at least a portion of the data to be transmitted to the user equipment; if the data to be transmitted is in an incomplete transmission state, then in the next data transmission cycle, return to the step of acquiring multiple round-trip times and multiple path congestion values for each candidate path until the data to be transmitted is completely transmitted to the user equipment, thus completing the transmission of the data to be transmitted.
[0112] This application embodiment calculates the path throughput of each candidate path in real time during each data transmission cycle and uses a preset threshold for dynamic comparison and filtering to eliminate paths with transmission speeds below the standard, retaining only high-speed paths as target paths for subsequent data transmission. This dynamic filtering mechanism fundamentally cuts off the drag on the overall transmission progress caused by local slow paths, avoiding the problem of misleading the client's clarity adjustment logic due to the delayed delivery of some data. As a result, the client can make correct judgments based on a more accurate high-speed transmission status, which not only maximizes the use of high-quality network channel resources and greatly improves the overall data transmission efficiency, but also ensures that the video playback platform can continuously and stably request and output high-definition images, effectively avoiding video stuttering, and ultimately significantly improving the user's actual viewing experience and playback quality.
[0113] The embodiments described in this application are for the purpose of more clearly illustrating the technical solutions of the embodiments of this application, and do not constitute a limitation on the technical solutions provided by the embodiments of this application. As those skilled in the art will know, with the evolution of technology and the emergence of new application scenarios, the technical solutions provided by the embodiments of this application are also applicable to similar technical problems.
[0114] Those skilled in the art will understand that the technical solutions shown in the figures do not constitute a limitation on the embodiments of this application, and may include more or fewer steps than shown, or combine certain steps, or different steps.
[0115] The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs.
[0116] Those skilled in the art will understand that all or some of the steps in the methods disclosed above, as well as the functional modules / units in the systems and devices, can be implemented as software, firmware, hardware, or suitable combinations thereof.
[0117] The terms “first,” “second,” “third,” “fourth,” etc. (if present) in the specification and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of this application described herein can be implemented in orders other than those illustrated or described herein. Furthermore, the terms “comprising” and “having,” and any variations thereof, are intended to cover non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.
[0118] It should be understood that in this application, "at least one (item)" means one or more, and "more than" means two or more. "And / or" is used to describe the relationship between related objects, indicating that three relationships can exist. For example, "A and / or B" can represent three cases: only A exists, only B exists, and both A and B exist simultaneously, where A and B can be singular or plural. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship. "At least one (item) of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one (item) of a, b, or c can represent: a, b, c, "a and b", "a and c", "b and c", or "a and b and c", where a, b, and c can be single or multiple.
[0119] In the several embodiments provided in this application, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of the units described above is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.
[0120] The units described above as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0121] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0122] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes multiple instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods of the various embodiments of this application. The aforementioned storage medium includes various media capable of storing programs, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0123] The preferred embodiments of the present application have been described above with reference to the accompanying drawings, but this does not limit the scope of the claims of the present application. Any modifications, equivalent substitutions, and improvements made by those skilled in the art without departing from the scope and substance of the embodiments of the present application shall be within the scope of the claims of the present application.
Claims
1. A data transmission method, characterized in that, include: Obtain a transmission request, and obtain the data to be transmitted based on the transmission request; The source and destination addresses corresponding to the data to be transmitted are determined by parsing the transmission request, and multiple candidate paths are determined based on the source and destination addresses. Obtain multiple data round-trip times and multiple path congestion values for each candidate path, and determine the path throughput corresponding to each candidate path based on the multiple data round-trip times and multiple path congestion values; For each path throughput, the path throughput is compared with a preset throughput threshold. If the path throughput is greater than the preset throughput threshold, the candidate path corresponding to the path throughput is taken as the target path, so as to determine at least one target path from multiple candidate paths. During the current data transmission cycle, based on all the target paths, at least a portion of the data to be transmitted is transmitted to the user equipment; If the data to be transmitted is in an incomplete transmission state, then in the next data transmission cycle, the step of obtaining multiple round-trip times and multiple path congestion values for each candidate path is returned until the data to be transmitted is completely transmitted to the user equipment, thus completing the transmission of the data to be transmitted.
2. The data transmission method according to claim 1, characterized in that, The step of transmitting at least a portion of the data to be transmitted to the user equipment based on all the target paths includes: Obtain the average round-trip time and average path congestion level for each target path, and obtain the round-trip time threshold. For each target path, when the average round-trip time of the data corresponding to the target path is greater than the round-trip time threshold, a smoothing factor is obtained, the average path congestion value is updated according to the smoothing factor, the updated average path congestion value is obtained, and the target transmission window is determined according to the updated average path congestion value. When the average round-trip time of the target path is less than the round-trip time threshold, the target transmission window is determined based on the average path congestion level value. Based on all the target paths, the data to be transmitted is divided into at least one group of data packets to be transmitted; According to the target transmission window corresponding to each target path, the data packets to be transmitted for each target path are transmitted to the user equipment, so as to transmit at least a portion of the data to be transmitted to the user equipment.
3. The data transmission method according to claim 2, characterized in that, The process of obtaining the round-trip time threshold includes: Obtain the round-trip times of the target path within a preset historical time window; Obtain the first preset weight corresponding to each historical data round-trip time, and perform weighted calculation on the corresponding historical data round-trip time according to the first preset weight to obtain the weighted historical data round-trip time corresponding to each historical data round-trip time. The average historical data round-trip time is obtained by summing up all the weighted historical data round-trip times. Obtain the fluctuation determination coefficient, and multiply the fluctuation determination coefficient by the average historical data round-trip time to obtain the round-trip time threshold.
4. The data transmission method according to claim 2, characterized in that, The process of obtaining the smoothing factor includes: Obtain the bandwidth utilization of the target path, and obtain the second preset weight corresponding to each target path; The total weight is determined based on the second preset weight corresponding to each target path, and the weight ratio between the corresponding second preset weights of the target paths is determined. Multiplying the bandwidth utilization rate and the weight ratio yields the smoothing factor.
5. The data transmission method according to claim 1, characterized in that, The process of obtaining multiple round-trip times and multiple path congestion values for each candidate path includes: For each candidate path, multiple probe data packets are sent to the user equipment through the candidate path, and the data transmission time and data return time corresponding to each probe data packet are recorded; Based on the data transmission time and data return time corresponding to each of the probe data packets, multiple data round-trip times of the candidate path are determined; Based on the round-trip time of each data item, a corresponding path congestion level value is determined to obtain multiple path congestion level values for the candidate path.
6. The data transmission method according to claim 1, characterized in that, The step of determining the path throughput corresponding to each candidate path based on multiple data round-trip times and multiple path congestion levels includes: Obtain the preset maximum segment size corresponding to each candidate path; For each path congestion level value of each candidate path, the path congestion level value is multiplied by the maximum segment length to obtain a multiplication result, and the instantaneous throughput of the candidate path is determined based on the ratio between the multiplication result and the data round-trip time corresponding to the path congestion level value. Obtain the influence range factor, and for each candidate path, perform average smoothing on all the instantaneous throughputs of the candidate path according to the influence range factor to obtain the path throughput corresponding to the candidate path.
7. The data transmission method according to claim 1, characterized in that, For each path throughput, the path throughput is compared with a preset throughput threshold. If the path throughput is greater than the preset throughput threshold, the candidate path corresponding to the path throughput is taken as the target path, so as to determine at least one target path from multiple candidate paths, including: When a buffer emergency signal is received from the user equipment, a first throughput threshold is used as a preset throughput threshold. When no buffer emergency signal is received from the user equipment, a second throughput threshold is used as a preset throughput threshold. The first throughput threshold is less than the second throughput threshold. For each path throughput, the path throughput is compared with a preset throughput threshold. If the path throughput is greater than the preset throughput threshold, the candidate path corresponding to the path throughput is taken as the target path, so as to determine at least one target path from multiple candidate paths.
8. A data transmission device, characterized in that, include: The acquisition module is used to acquire a transmission request and acquire the data to be transmitted based on the transmission request. The candidate path determination module is used to determine the source address and destination address corresponding to the data to be transmitted by parsing the transmission request, and to determine multiple candidate paths based on the source address and the destination address; The path throughput determination module is used to obtain multiple data round-trip times and multiple path congestion values for each candidate path, and determine the path throughput corresponding to each candidate path based on the multiple data round-trip times and multiple path congestion values. The target path determination module is used to compare the path throughput with a preset throughput threshold for each path throughput. If the path throughput is greater than the preset throughput threshold, the candidate path corresponding to the path throughput is taken as the target path, so as to determine at least one target path from multiple candidate paths. The first transmission module is configured to transmit at least a portion of the data to be transmitted to the user equipment based on all the target paths during the current data transmission cycle. The second transmission module is used to, if the data to be transmitted is in an incomplete transmission state, return to the step of obtaining multiple round-trip times and multiple path congestion values for each candidate path in the next data transmission cycle, until the data to be transmitted is completely transmitted to the user equipment, thereby completing the transmission of the data to be transmitted.
9. An electronic device, characterized in that, The electronic device includes a memory and a processor, the memory storing a computer program, and the processor executing the computer program to implement the data transmission method according to any one of claims 1 to 7.
10. A computer-readable storage medium storing a computer program, characterized in that, When the computer program is executed by a processor, it implements the data transmission method according to any one of claims 1 to 7.