Transmission performance optimization method and device, equipment, storage medium and program product

By generating the first file corresponding to the path, obtaining the transmission performance parameters, determining the path weight and adjusting the number of data blocks, the problem of low traffic allocation efficiency in multi-path transmission is solved, and more efficient and reliable data transmission is achieved.

CN120342947AInactive Publication Date: 2025-07-18CHINA TELECOM CORP LTD +1

Patent Information

Application Number
CN202510798297.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-06-13
Publication Date
2025-07-18
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

The traffic allocation efficiency in existing multipath transmission technologies is low, resulting in low transmission performance optimization efficiency and ineffective response to the problems of insufficient network bandwidth and path instability.

Method used

By generating the first file corresponding to each path, obtaining the transmission performance parameters, determining the path weight according to the parameters, and adjusting the number of data blocks to optimize traffic allocation.

Benefits of technology

It improves the efficiency and reliability of data transmission, reduces transmission delay, and is suitable for high-throughput data transmission and weak network environments, especially cloud network converged data transmission systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120342947A_ABST
    Figure CN120342947A_ABST
Patent Text Reader

Abstract

The invention provides a transmission performance optimization method and device, equipment, a storage medium and a program product, and relates to the technical field of data transmission. The method comprises the following steps: generating a first file corresponding to each path according to an original data file and erasure code parameters; transmitting the corresponding first file through each path, and acquiring a transmission performance parameter of each path; determining the weight of each path according to the transmission performance parameter of each path; and adjusting the number of data blocks transmitted by each path according to the weight of each path. According to the scheme, the real transmission performance data is obtained in the multi-path transmission process through the first file, the transmission performance of the paths is evaluated from the transmission result level, the distribution strategy of the data blocks of all the paths is dynamically adjusted according to the fed-back real transmission performance parameters, the data transmission efficiency and reliability are effectively improved, and transmission delay is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0002] With the rapid development of Internet applications, especially the popularization of high-bandwidth applications such as high-definition video, cloud computing, and big data, the traditional network transmission method is facing increasing pressure. In order to address the problems of insufficient network bandwidth and unstable transmission paths, multi-path transmission technology (Multi-path Transmission) has emerged as the times require.

[0003] In related technologies, the traffic allocation method in multi-path transmission technology: The network performance monitoring module monitors the network performance parameters of each path, such as transmission delay, bandwidth, jitter and other parameters, and then allocates the traffic of each path.

[0004] Since the actual transmission performance of the path is also related to the application layer and the transport layer in addition to the network performance, the traffic allocation efficiency is not high, which in turn leads to low transmission performance optimization efficiency. Summary of the Invention

[0005] The present disclosure provides a transmission performance optimization method, device, equipment, storage medium and program product, which at least overcome the problem of low transmission efficiency in related technologies to a certain extent.

[0006] Other features and advantages of the present disclosure will become apparent through the following detailed description, or will be learned in part through the practice of the present disclosure.

[0007] According to one aspect of the present disclosure, a transmission performance optimization method is provided, including: generating a first file corresponding to each path according to the original data file and erasure code parameters; transmitting the corresponding first file through each path respectively, and obtaining the transmission performance parameters of each path; determining the weight of each path according to the transmission performance parameters of each path; adjusting the number of data blocks transmitted by each path according to the weight of each path.

[0008] In some exemplary embodiments of the present disclosure, the transmission performance parameters include at least one of the following: transmission delay, transmission rate, transmission rate fluctuation amount; determining the weight of each path according to the transmission performance parameters of each path includes: calculating the weight of each path according to at least one of the transmission delay, transmission rate and transmission rate fluctuation amount corresponding to each path.

[0009] In some exemplary embodiments of the present disclosure, the transmission rate includes an effective transmission rate, a maximum transmission rate, and an average transmission rate, and the transmission rate fluctuation amount includes a current transmission rate fluctuation amount and a maximum transmission rate fluctuation amount; the weight of a path is determined by any one of a first weighting term, a second weighting term, a third weighting term, and a fourth weighting term; the first weighting term is inversely proportional to the transmission delay; the second weighting term is directly proportional to the effective transmission rate and inversely proportional to the maximum transmission rate; the third weighting term is directly proportional to the average transmission rate and inversely proportional to the maximum transmission rate; the fourth weighting term is inversely proportional to the current transmission rate fluctuation amount and directly proportional to the maximum transmission rate fluctuation amount.

[0010] In some exemplary embodiments of the present disclosure, adjusting the number of data blocks transmitted by each path according to the weights of each path includes: performing a normalization calculation on the weights of each path; calculating the amount of data transmitted by each path according to the normalized weights of each path and the total amount of data of the file to be transmitted; and determining the number of data blocks transmitted by each path according to the amount of data of each path and the size of the data block.

[0011] In some exemplary embodiments of the present disclosure, the number of data blocks transmitted by a path is directly proportional to the amount of data transmitted by the path, and the number of data blocks transmitted by a path is inversely proportional to the size of the data block.

[0012] In some exemplary embodiments of the present disclosure, generating a first file corresponding to each path according to the original data file and the erasure code parameters includes: slicing the original data file to obtain a plurality of first data blocks; generating a plurality of second data blocks according to the plurality of first data blocks and the erasure code parameters; and grouping the plurality of second data blocks to obtain a first file corresponding to each path, where the first file includes a plurality of second data blocks.

[0013] In some exemplary embodiments of the present disclosure, the number of second data blocks included in each first file is the same.

[0014] In some exemplary embodiments of the present disclosure, each first file includes a file header and a payload; wherein, the file header of the first file includes at least one of the following parameters: erasure code parameters, path identifier corresponding to the first file, file identifier of the first file, identifiers of each second data block included in the first file, size of the second data block, transmission timestamp of the first file; the payload of the first file includes a plurality of second data blocks.

[0015] In some exemplary embodiments of the present disclosure, the total number of second data blocks included in a plurality of first files remains unchanged.

[0016] In some exemplary embodiments of the present disclosure, it further includes: grouping a plurality of first data blocks to obtain a second file corresponding to each path, where the second file includes a plurality of first data blocks; adjusting the number of data blocks transmitted by each path according to the weight of each path, including: adjusting the number of second data blocks included in the first file corresponding to each path and the number of first data blocks included in the second file corresponding to each path according to the weight of each path; transmitting the adjusted first file corresponding to each path and the adjusted second file corresponding to each path through each path respectively.

[0017] In some exemplary embodiments of the present disclosure, transmitting the first file corresponding to each path through each path respectively and obtaining the transmission performance parameters of each path includes: transmitting the first file corresponding to each path to the receiving end through each path respectively, so that the receiving end collects the transmission performance parameters of each path; obtaining the transmission performance parameters of each path sent by the receiving end.

[0018] According to another aspect of the present disclosure, there is also provided a transmission performance optimization device, including: a first file generation module, configured to generate a first file corresponding to each path according to the original data file and the erasure code parameters; a performance parameter acquisition module, configured to transmit the first file corresponding to each path through each path respectively and obtain the transmission performance parameters of each path; a path weight determination module, configured to determine the weight of each path according to the transmission performance parameters of each path; a data block number determination module, configured to adjust the number of data blocks transmitted by each path according to the weight of each path.

[0019] According to another aspect of the present disclosure, there is also provided an electronic device, which includes: a processor; and a memory, configured to store executable instructions of the processor; wherein, the processor is configured to execute the transmission performance optimization method of any one of the above through executing the executable instructions.

[0020] According to another aspect of the present disclosure, there is also provided a computer-readable storage medium, on which a computer program is stored, and when the computer program is executed by a processor, the transmission performance optimization method of any one of the above is implemented.

[0021] According to another aspect of the present disclosure, there is also provided a computer program product, including: a computer program or instruction, and when the computer program or instruction is executed by a processor, the transmission performance optimization method of any one of the above is implemented.

[0022] The technical solutions provided by the embodiments of the present disclosure may include the following beneficial effects: In the embodiments of the present disclosure, the provided transmission performance optimization method utilizes a first file to obtain real transmission performance parameters during multipath transmission, evaluates the path transmission performance from the perspective of the transmission result, and the obtained transmission performance parameters are closer to the actual transmission rate, enabling more accurate allocation of the traffic of each path, improving data transmission efficiency, and reducing transmission latency.

[0023] Dynamically adjust the allocation strategy of data blocks for each path according to the feedback of real transmission performance parameters, effectively improving the efficiency and reliability of data transmission. It can be applied to scenarios such as high-throughput data transmission and distribution, data transmission in weak network environments, and is particularly suitable for data transmission systems with cloud-network integration, providing an efficient and stable solution for improving data transmission quality.

[0024] During one transmission, keep the erasure code parameters unchanged, and by adjusting the number of second data blocks included in a single first file, make the size of the first file match the transmission performance of each path, avoiding the high computational complexity and high requirements for devices brought by dynamically adjusting the erasure code parameters, reducing additional transmission delay, and being more lightweight and efficient.

[0025] It should be understood that the above general description and the following detailed description are only exemplary and explanatory, and cannot limit the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0026] The accompanying drawings herein are incorporated into the specification and form a part of the specification, showing embodiments consistent with the present disclosure, and are used together with the specification to explain the principles of the present disclosure. Obviously, the accompanying drawings in the following description are only some embodiments of the present disclosure, and those of ordinary skill in the art can obtain other drawings based on these drawings without creative efforts.

[0027] Figure 1 Show a flowchart of a transmission performance optimization method in an embodiment of the present disclosure; Figure 2 Show a flowchart of another transmission performance optimization method in an embodiment of the present disclosure; Figure 3 Show a schematic diagram of the composition of a first file in an embodiment of the present disclosure; Figure 4 Show a schematic diagram of the composition of a second file in an embodiment of the present disclosure; Figure 5 Show a schematic diagram of the generation of a first file and a second file in an embodiment of the present disclosure; Figure 6 Show a flowchart of yet another transmission performance optimization method in an embodiment of the present disclosure; Figure 7 Show a schematic diagram of the structure of a data transmission system in an embodiment of the present disclosure; Figure 8Shows the schematic structural diagram of a transmission performance optimization system in an embodiment of the present disclosure; Figure 9 Shows the schematic diagram of a transmission performance optimization device in an embodiment of the present disclosure; and Figure 10 Shows the structural block diagram of an electronic device in an embodiment of the present disclosure. Detailed implementation manners

[0028] Now, example embodiments will be described more fully with reference to the accompanying drawings. However, the example embodiments can be implemented in various forms and should not be construed as limited to the examples set forth herein; rather, these embodiments are provided so that this disclosure will be more thorough and complete, and will fully convey the concept of the example embodiments to those skilled in the art. The features, structures, or characteristics described may be combined in any suitable manner in one or more embodiments.

[0029] In addition, the accompanying drawings are only schematic illustrations of the present disclosure and are not necessarily drawn to scale. The same reference numerals in the drawings denote the same or similar parts, and thus their repeated description will be omitted. Some of the block diagrams shown in the drawings are functional entities and do not necessarily correspond to physically or logically independent entities. These functional entities can be implemented in software form, or in one or more hardware modules or integrated circuits, or in different networks and / or processor devices and / or microcontroller devices.

[0030] For ease of understanding, before introducing the embodiments of the present disclosure, several terms involved in the embodiments of the present disclosure are first explained as follows: Erasure code: A data protection technology used to improve the reliability and fault tolerance of data. By encoding data blocks to generate parity data blocks, it enables the recovery of lost data even if some data is lost or damaged. The working principle of erasure codes mainly includes two parts: encoding and decoding. Encoding means dividing the original data into k data blocks, and then generating m parity data blocks according to a specific encoding algorithm, resulting in a total of n = k + m data blocks. Decoding means that as long as the receiving end obtains any k of these data blocks (whether they are original data blocks or parity data blocks), the complete original data can be restored.

[0031] Multipath transmission: A data transmission technology that improves transmission reliability, bandwidth, and transmission efficiency by simultaneously using multiple network paths for data transmission.

[0032] Erasure code k parameter: Represents the number of data blocks into which the original data is divided. Each data block usually contains a part of the original data. Assuming the size of the original data is D bytes, the size of each data block is D / k bytes.

[0033] Erasure code m parameter: It represents the number of parity data blocks generated for fault tolerance. The parity data blocks can help recover the original data when some original data blocks are lost or damaged. Specifically, as long as at least k blocks (either data blocks or parity data blocks) are retained, the original data can be fully recovered.

[0034] Figure 1 The flowchart of a transmission performance optimization method in an embodiment of the present disclosure is shown. In an embodiment of the present disclosure, a transmission performance optimization method is provided, and this method can be executed by any electronic device with computing and processing capabilities. As Figure 1 shown, the transmission performance optimization method provided in an embodiment of the present disclosure includes the following steps.

[0035] S102. Generate the first file corresponding to each path according to the original data file and the erasure code parameters.

[0036] Among them, the original data file can be understood as a data set that needs to be transmitted to the receiving end through multiple paths. The original data file includes, but is not limited to: a single file, a group of files, a part of a large file. In erasure code technology, the original data file is segmented and encoded. The original data file includes, but is not limited to: video files, audio files, text files, database files, etc.

[0037] The erasure code parameters can be understood as the specific parameters for encoding the original data file to generate redundant information. The erasure code parameters include: the number (k) parameter of the first data blocks and the number (m) parameter of the second data blocks; among them, the number k parameter of the first data blocks represents the number of original data blocks into which the original data file is segmented. The number m parameter of the second data blocks represents the number of additional parity data blocks generated for fault tolerance.

[0038] A path can be understood as different channels or connections for file transmission, that is, different routes in the network, connections between servers, or communication links between nodes in a distributed system. Each path represents a different physical or logical transmission route.

[0039] The first file can be understood as a probing file that needs to be transmitted to the receiving end through the path to measure the transmission performance of the path. Among them, each path corresponds to a first file, and the corresponding relationship between the path and the first file can be understood as that the path is used to transmit the first file, or the first file is transmitted on this path.

[0040] In a possible implementation, according to the value of k in the erasure code parameters, the original data file is split into k equally sized first data blocks. The selected erasure code algorithm is used to encode the k first data blocks to generate an additional m second data blocks. There are a total of n = k + m data blocks, and the n data blocks are grouped according to the number of paths. Each group of data blocks forms a first file. That is, the first file can include first data blocks and second data blocks.

[0041] In another possible implementation, according to the value of k in the erasure code parameters, the original data file is split into k equally sized first data blocks. The selected erasure code algorithm is used to encode the k first data blocks to generate an additional m second data blocks. The m second data blocks are grouped according to the number of paths. Each group of data blocks forms a first file. That is, the first file can only include second data blocks.

[0042] It should be noted that in the embodiments of the present application, the type of data blocks included in the first file is not limited, nor is the grouping method of the data blocks.

[0043] S104: Transmit the corresponding first file through each path respectively, and obtain the transmission performance parameters of each path.

[0044] Among them, the transmission performance parameter can be understood as the relevant indicators collected about the path performance during or after the transmission of the first file. The transmission performance parameters include but are not limited to: transmission rate, transmission delay, transmission rate fluctuation amount, etc. Among them, the transmission rate can be understood as the amount of data successfully transmitted per unit time. The transmission delay can be understood as the time difference between the start of data transmission from the sending end to the receipt of data at the receiving end of the first file. The transmission rate fluctuation amount refers to the magnitude of the fluctuation of the transmission rate during data transmission.

[0045] Each first file corresponds to a path, and the first file is transmitted to the receiving end through its corresponding path respectively. Exemplarily, path 1 corresponds to first file A, path 2 corresponds to first file B, and path 3 corresponds to first file C. Among them, the sending ends and receiving ends of the 3 paths are the same. First file A is sent from the sending end to the receiving end through path 1, first file B is sent from the sending end to the receiving end through path 2, and first file C is sent from the sending end to the receiving end through path 3.

[0046] In a possible implementation, record the timestamp when the first file is sent from the sending end and the timestamp when the receiving end receives the first file. The difference between the receiving timestamp and the sending timestamp is used as the transmission delay of the path corresponding to the first file.

[0047] In a possible implementation, the data transfer volume over a period of time is measured by a network monitoring tool and then divided by the time to obtain the average transfer rate. Alternatively, the transfer rate is estimated based on the total amount of data in the first file and the time taken to transfer the first file.

[0048] In a possible implementation, a fixed time period is used as a window. The average transfer rate is calculated within this window. As the window slides along the time axis, the changes in the average rate in different time periods are monitored to evaluate the rate fluctuation, which is used to evaluate the amount of transfer rate fluctuation.

[0049] It should be noted that in this embodiment, only the method of obtaining the transmission performance parameters is described, rather than being limited.

[0050] S106. Determine the weights of each path according to the transmission performance parameters of each path.

[0051] The weight can refer to a value assigned to different paths, which is used to represent the importance or priority of this path relative to other paths. A path with a higher weight is assigned a larger proportion of the data volume or a larger number of data blocks, while a path with a lower weight has the amount of data or the number of data blocks allocated to it reduced.

[0052] In a possible implementation, a single transmission performance parameter can be used to determine the weights of each path. If the transmission performance parameter includes the transfer rate, the transfer rate of each path is used as the basis for its weight. For example, if the transfer rate of one path is twice that of another path, it is assigned twice the weight, indicating that this path can handle more traffic. If the transmission performance parameter includes the transmission delay, the low-delay path obtains a higher weight, and the high-delay path obtains a lower weight.

[0053] In a possible implementation, the weights of the paths are determined according to multiple transmission performance parameters.

[0054] The weighted summation method is used to determine the weights of the paths. A weight factor is set for each transmission performance parameter, and then all the transmission performance parameters are multiplied by their corresponding weight factors and added together to obtain the total score. The weights of each path are assigned according to the total scores corresponding to each path.

[0055] The analytic hierarchy process is used to determine the weights of the paths. A judgment matrix is constructed by pairwise comparison of different transmission performance parameters, and the relative weights of each path are calculated accordingly.

[0056] The fuzzy logic algorithm is used to determine the weights of the paths. When the relationship between multiple transmission performance parameters is complex and difficult to accurately quantify, fuzzy logic can be used to handle the uncertainty, and a comprehensive evaluation score of the path is given and the weights of each path are assigned accordingly.

[0057] S108. Adjust the number of data blocks transmitted on each path according to the weight of each path.

[0058] Determine the number of data blocks that each path should be responsible for transmitting according to the weight of the path. Specifically, for a path with a higher weight, since this path can provide faster and more stable transmission services, a larger number of data blocks are allocated for transmission. On the contrary, for a path with a lower weight, fewer data blocks may be allocated due to slow transmission rate, high latency or other performance issues.

[0059] In a possible implementation, allocate the number of data blocks corresponding to each path according to the ratio of the path weights. For example, if there are three paths: Path 1, Path 2, and Path 3, with weights of 3, 2, and 1 respectively, the total data blocks can be allocated to Path 1, Path 2, and Path 3 in the ratio of 3:2:1.

[0060] After adjusting the number of data blocks transmitted on each path, transmit the adjusted data blocks to the receiving end on the corresponding path.

[0061] Adjust the total amounts of the first data block and the second data block transmitted on each path according to the weight of each path, transmit the adjusted first data block and second data block to the receiving end through the corresponding path, and the receiving end decodes according to the received first data block and second data block to obtain the original data file.

[0062] After determining the weights of each path in step S106, in multi-path transmission, the weights of each path can be used to adjust the number of data blocks that each path needs to transmit in the subsequent transmission process.

[0063] During the process of using multi-path to transmit data blocks, in each round of transmission process, obtain the transmission performance parameters of each path, and recalculate the new weights of each path for adjusting the number of data blocks transmitted on each path in the next round of data transmission.

[0064] This embodiment provides a transmission performance optimization method, including: generating the first file corresponding to each path according to the original data file and the erasure code parameters; transmitting the corresponding first file through each path respectively, and obtaining the transmission performance parameters of each path; determining the weights of each path according to the transmission performance parameters of each path; adjusting the number of data blocks transmitted on each path according to the weights of each path. In this solution, the first file is used to obtain the real transmission performance parameters during the multi-path transmission process, evaluate the path transmission performance from the perspective of the transmission result, and dynamically adjust the data block allocation strategy of each path according to the feedback real transmission performance parameters, effectively improving the efficiency and reliability of data transmission and reducing the transmission delay.

[0065] Based on the above embodiments, the present embodiment further optimizes the transmission performance optimization method, as Figure 2 shown, the transmission performance optimization method shown in this embodiment mainly includes the following steps.

[0066] S202. Slice the original data file to obtain multiple first data blocks.

[0067] The slicing process can be understood as the process of splitting the original data file into multiple smaller parts according to certain rules or algorithms. The first data block can be understood as the small part of the data file generated after slicing.

[0068] In a possible implementation, using the k parameter of the erasure code, the original data file is divided into k first data blocks of equal size. For example, when the k parameter of the erasure code is 5, the original data file is divided into 5 first data blocks of equal size.

[0069] S204. Generate multiple second data blocks according to the multiple first data blocks and the erasure code parameters.

[0070] The second data block can be understood as the data block generated by encoding the first data block according to the erasure code algorithm.

[0071] In a possible implementation, the first data blocks are encoded according to the erasure code algorithm to generate m second data blocks. Exemplarily, 5 first data blocks are D1, D2, D3, D4, D5. Encoding the 5 first data blocks results in 3 second data blocks, which are: P1 = D1 + D2 + D3 + D4 + D5; P2 = 1×D1 + 2×D2 + 3×D3 + 4×D4 + 5×D5; P3 = 5×D1 + 4×D2 + 3×D3 + 2×D4 + 1×D5.

[0072] It should be noted that only an exemplary description of the erasure code algorithm is given in this embodiment, and a suitable erasure code algorithm can be selected according to specific application scenarios and requirements.

[0073] Each path corresponds to an independent first file, which is easier to manage than streaming transmission. The receiving end can directly parse the file boundary without additional metadata. The first file is not only used for path detection but also for data recovery, evaluating the path quality and providing redundant data in case of transmission failure.

[0074] S206. Group the multiple second data blocks to obtain the first file corresponding to each path, and the first file includes multiple second data blocks.

[0075] The first file refers to a detection file prepared for each path to detect the path performance.

[0076] In a possible implementation, the m second data blocks are evenly distributed across each path. For example, if there are p paths, each path is assigned approximately m / p second data blocks.

[0077] In a possible implementation, as Figure 3 shown, each first file includes a file header 310 and a payload 320; wherein, the file header of the first file includes at least one of the following parameters: an erasure code parameter, a path identifier corresponding to the first file, a file identifier of the first file, identifiers of each second data block included in the first file, the size of the second data block, a transmission timestamp of the first file; the payload of the first file includes a plurality of second data blocks, as Figure 3 shown, second data block 1, second data block 2... second data block i, and so on.

[0078] The file header of the first file contains the identifier and index information of the first file, which is used for path allocation and tracking of transmission performance detection results. The payload of the first file contains a plurality of second data blocks generated by the erasure code parameter. During the entire transmission process, the erasure code parameter remains unchanged, and by adjusting the number of second data blocks included in a single first file, the size of the first file is ensured to match the transmission performance of each path.

[0079] Among them, the number of second data blocks included in the first file can be dynamically adjusted according to transmission performance parameters.

[0080] The erasure code parameter can be understood as the erasure code configuration parameters k and m used on the original data file, and the erasure code parameter is mainly used for decoding and data recovery.

[0081] The path identifier corresponding to the first file is used to indicate that the first file will be transmitted through the corresponding path identified, and the path identifier corresponding to the first file is used to track the data transmission path and ensure that the data can be correctly routed to the destination.

[0082] The file identifier of the first file refers to the number or label that uniquely identifies each first file, which is used to manage a large number of files, avoid confusion, and support subsequent operations.

[0083] The identifiers of each second data block are used to identify all the second data blocks included in the first file. The user confirms which data blocks have been packed into the current file and provides a basis for data recovery.

[0084] The size of the second data block is used to indicate the specific size of each second data block, in bytes. It is used to optimize transmission efficiency and storage space planning.

[0085] The transmission timestamp of the first file is used to record the exact time when the first file is created or ready to be sent. It is used for synchronization operations, version control, and calculation of transmission performance parameters.

[0086] In this embodiment, by setting the structure of the first file, the controllability and transparency during data transmission are enhanced, providing a data basis for the calculation of subsequent transmission performance parameters and the recovery of original data.

[0087] Among them, the number of second data blocks included in each first file is the same.

[0088] In this embodiment, each first file contains the same number of second data blocks. For example, if there are m second data blocks to be distributed to p paths, then each first file on each path will contain m / p second data blocks.

[0089] The first file only contains second data blocks and does not include first data blocks, mainly used to evaluate the basic transmission capacity of the path.

[0090] In the initial detection stage, the path performance is evaluated by sending first files of the same size. The size of the first files remains consistent to ensure fairness and improve the reliability and accuracy of the transmission performance evaluation.

[0091] In this embodiment, the parity data blocks generated by the erasure code parameters, that is, the second data blocks, are used for transmission performance detection, improving the accuracy of the detection results and thus improving the transmission efficiency.

[0092] S208. Group multiple first data blocks to obtain second files corresponding to each path. The second file includes multiple first data blocks.

[0093] The second file can be understood as a file composed of the original data blocks prepared for each path, which is used to enable the receiving end to recover the original data file after being transmitted to the receiving end.

[0094] In a possible implementation, k first data blocks are evenly distributed to each path. For example, if there are p paths, then each path is allocated approximately k / p second data blocks.

[0095] In a possible implementation, as Figure 4 shown, the second file includes a file header 410 and a payload 420; among them, the file header of the second file includes at least one of the following parameters: erasure code parameters, path identifier corresponding to the second file, file identifier of the second file, identifiers of each first data block included in the second file, size of the first data block, transmission timestamp of the second file; the payload of the second file includes multiple first data blocks, as Figure 4 shown, first data block 1, first data block 2... first data block j, and so on.

[0096] The structure information of the second file is the same as that of the first file, and specific reference can be made to the description in the above example.

[0097] The file header of the second file contains the identification and index information of the second file for path allocation. The payload of the second file contains multiple first data blocks generated by erasure code parameters. During the entire transmission process, the erasure code parameters remain unchanged. By adjusting the number of first data blocks included in a single second file, the size of the second file is ensured to match the transmission performance of each path.

[0098] In a possible implementation, as Figure 5 shown, the original data file 510 is logically sliced to obtain the sliced file 520. The sliced file 520 includes multiple data blocks. The original data in the sliced file 520 forms k first data blocks 530, and the m second data blocks 540 formed by the erasure code algorithm in the sliced file 520. The k first data blocks 530 are grouped to obtain the second files 550 corresponding to each path, and the m second data blocks 540 are grouped to obtain the first files 560 corresponding to each path.

[0099] S210: Transmit the corresponding first file through each path respectively, and obtain the transmission performance parameters of each path.

[0100] S212: Determine the weights of each path according to the transmission performance parameters of each path.

[0101] S214: Adjust the number of second data blocks included in the first file corresponding to each path and the number of first data blocks included in the second file corresponding to each path according to the weights of each path.

[0102] In this embodiment, based on the weights of each path, the size of the first file is adjusted. For the path with poor performance and small weight, the size of the corresponding first file will be reduced. On the contrary, for the path with good performance and large weight, the size of the first file will be increased to more accurately evaluate the path performance.

[0103] This adjustment process ensures that the system can dynamically optimize the size of the probe file according to the performance of different paths to improve the efficiency of probing.

[0104] In an exemplary embodiment of the present disclosure, for each path, determine the size of the first file corresponding to the path and the size of the corresponding second file according to the weight of the path. Then, according to the size of each data block, based on the size of the first file and the size of the data block, calculate the number of second data blocks included in the first file, and based on the size of the second file and the size of the data block, calculate the number of first data blocks included in the second file.

[0105] S216: Transmit the adjusted first file corresponding to each path and the adjusted second file corresponding to each path through each path respectively.

[0106] Distribute the multiple first data blocks obtained in step S202 to the second files according to the number of first data blocks included in each of the calculated second files. For example, the number of first data blocks included in second file 1 is 6, the number of first data blocks included in second file 2 is 4, and the number of first data blocks included in second file 3 is 2. Then, the first data blocks included in second file 1 are: D1, D2, D3, D4, D5, D6; the first data blocks included in second file 2 are: D7, D8, D9, D10; the first data blocks included in second file 3 are: D11, D12.

[0107] Distribute the multiple second data blocks obtained in step S204 to the first files according to the number of second data blocks included in each of the calculated first files. For example, the number of second data blocks included in first file 1 is 3, the number of second data blocks included in first file 2 is 2, and the number of second data blocks included in first file 3 is 1. Then, the second data blocks included in first file 1 are: P1, P2, P3; the second data blocks included in first file 2 are: P4, P5; the second data blocks included in first file 3 are: P6.

[0108] After adjusting the data blocks included in the first files and the second files according to the above method, transmit the first files and the second files corresponding to each path to the receiving end through the corresponding paths. For example, transmit D1, D2, D3, D4, D5, D6 included in second file 1 and P1, P2, P3 included in first file 1 to the receiving end through path 1; transmit D7, D8, D9, D10 included in second file 2 and P4, P5 included in first file 2 to the receiving end through path 2; transmit D11, D12 included in second file 3 and P6 included in first file 3 to the receiving end through path 3.

[0109] After the receiving end receives the data blocks transmitted through each path, aggregate the data blocks transmitted through each path and then perform decoding to obtain the original data file.

[0110] In this embodiment, a method for adjusting data blocks in the first file and the second file is provided, which further improves the data transmission efficiency.

[0111] Based on the above embodiment, this embodiment further optimizes the transmission performance optimization method. As Figure 6 shown, the transmission performance optimization method shown in this embodiment mainly includes the following steps.

[0112] S602. Generate the first files corresponding to each path according to the original data file and the erasure code parameters.

[0113] S604. Transmit the first file corresponding to each path to the receiving end through each path respectively, so that the receiving end collects the transmission performance parameters of each path; the transmission performance parameters include at least one of the following: transmission delay, transmission rate, and transmission rate fluctuation; the transmission rate includes effective transmission rate, maximum transmission rate, and average transmission rate, and the transmission rate fluctuation includes current transmission rate fluctuation and maximum transmission rate fluctuation.

[0114] The transmission delay can be understood as measuring the time delay of the first file from being sent by the sending end to being received by the receiving end, reflecting the delay performance of the path. The effective transmission rate can be understood as measuring the effective transmission rate during the transmission of the first file, used to evaluate the bandwidth utilization rate of the path. The average transmission rate can be understood as the average rate calculated during the entire transmission process of the first file, used to evaluate the performance stability of the path. The maximum transmission rate can be understood as the maximum value of the transmission rates among multiple paths. The transmission rate fluctuation of the current path can be understood as the magnitude of the rate fluctuation during the transmission process, reflecting the stability of the path. The maximum transmission rate fluctuation can be understood as the maximum value of the transmission rate fluctuations among multiple paths.

[0115] In a possible implementation, carry the sending timestamp in the file header of the first file. After the receiving end receives the first file, record the receiving timestamp, and use the difference between the receiving timestamp and the sending timestamp as the transmission delay.

[0116] Take the ratio of the data volume of the first file to the transmission delay as the average transmission rate.

[0117] Take the ratio of the data volume used by the application layer in the first file to the transmission delay as the effective transmission rate.

[0118] In a possible implementation, divide the transmission process of the first file into several time periods, and measure the data volume transmitted within each time period to obtain the transmission rate within each time period. Calculate the average transmission rate during the entire transmission process based on the transmission rates of all time periods; calculate the deviation of the transmission rate in each time period from the average value: for each time period, calculate the square of the difference between its transmission rate and the average transmission rate. Take the average value of the squared results of the above differences for all time periods to obtain the variance, and then take the square root of the variance to obtain the standard deviation, which is the transmission rate fluctuation.

[0119] S606. Obtain the transmission performance parameters of each path sent by the receiving end.

[0120] After calculating the transmission performance parameters of each path, the calculation end sends the transmission performance parameters to the receiving end.

[0121] S608. Calculate the weight of each path based on at least one of the transmission delay, transmission rate, and transmission rate fluctuation amount corresponding to each path. Wherein, the weight of the path is determined by any one of the first weighting term, the second weighting term, the third weighting term, and the fourth weighting term; the first weighting term is inversely proportional to the transmission delay; the second weighting term is directly proportional to the effective transmission rate and inversely proportional to the maximum transmission rate; the third weighting term is directly proportional to the average transmission rate and inversely proportional to the maximum transmission rate; the fourth weighting term is inversely proportional to the current transmission rate fluctuation amount and directly proportional to the maximum transmission rate fluctuation amount.

[0122] Wherein, the weight of the path can be any one of the first weighting term, the second weighting term, the third weighting term, and the fourth weighting term. Or, the weight of the path can be the sum of any two or more of the first weighting term, the second weighting term, the third weighting term, and the fourth weighting term.

[0123] The first weighting term is determined by the first weighting factor and the transmission delay. The first weighting term is shown in formula (1).

[0124] (1) Wherein, A i1 represents the first weighting term corresponding to the i-th path, ω 1 represents the first weighting factor, Frist BlockArrival Time i represents the transmission delay of the i-th path. It can be seen from formula (1) that the smaller the transmission delay, the larger the first weighting term, and the larger the transmission delay, the smaller the first weighting term.

[0125] The second weighting term is determined by the second weighting factor, the effective transmission rate, and the maximum transmission rate. The second weighting term is shown in formula (2).

[0126] (2) Wherein, A i2 represents the second weighting term corresponding to the i-th path, ω 2 represents the second weighting factor, ApplicationLyer Throughput i represents the effective transmission rate of the i-th path, and max(Throughput) represents the maximum effective transmission rate among all paths. It can be seen from formula (2) that the larger the effective transmission rate, the larger the second weighting term, and the smaller the effective transmission rate, the smaller the second weighting term.

[0127] The third weighting term is determined by the third weighting factor, the average transmission rate, and the maximum transmission rate. The third weighting term is shown in formula (3).

[0128] (3) Wherein, A i3 represents the third weighting term corresponding to the i-th path, ω 3 represents the third weighting factor, averageThroughput i represents the average transmission rate of the i-th path. It can be seen from formula (3) that the larger the average transmission rate, the larger the third weighting term, and the smaller the average transmission rate, the smaller the third weighting term.

[0129] The fourth weighting term is determined by the fourth weighting factor, the amount of transmission rate fluctuation, and the maximum amount of transmission rate fluctuation. The fourth weighting term is shown in formula (4).

[0130] (4) Wherein, A i4 represents the fourth weighting term corresponding to the i-th path, ω 4 represents the fourth weighting factor, TransmissionStability i represents the amount of transmission rate fluctuation of the i-th path, and max(Transmission Stability) represents the maximum amount of transmission rate fluctuation among all paths. It can be seen from formula (4) that the larger the amount of transmission rate fluctuation, the smaller the fourth weighting term, and the smaller the amount of transmission rate fluctuation, the larger the fourth weighting term.

[0131] The above first weighting factor, second weighting factor, third weighting factor, and fourth weighting factor can be set according to actual situations and are not specifically limited in this embodiment.

[0132] In a possible implementation, the weight of a path is obtained by adding the first weighting term, the second weighting term, the third weighting term, and the fourth weighting term. As shown in formula (5).

[0133] (5) Wherein, Path Weight i represents the weight of the i-th path. It can be seen from formula (5) that the smaller the transmission delay, the larger the weight of the path, and the larger the transmission delay, the smaller the weight of the path. The larger the effective transmission rate, the larger the weight of the path, and the smaller the effective transmission rate, the smaller the weight of the path. The larger the average transmission rate, the larger the weight of the path, and the smaller the average transmission rate, the smaller the weight of the path. The larger the amount of transmission rate fluctuation, the smaller the weight of the path, and the smaller the amount of transmission rate fluctuation, the larger the weight of the path.

[0134] Calculate the weight of each path according to the above formula (5).

[0135] In this embodiment, by introducing multiple transmission performance metrics and constructing a weight model in combination with proportional relationships, the efficiency and stability of data transmission are improved.

[0136] In this embodiment, first, send the first file to all paths to collect the transmission performance parameters of each path, calculate the weight (Path Weight) of each path. The weight of the path comprehensively considers factors such as transmission delay, transmission rate, and transmission stability. Then, adjust the number of data blocks in each first file according to the weight of the path, control the redundant load, and further determine the number of data blocks in the second file. After each round of transmission, recalculate the weight and adjust the file size so that the number of data blocks transmitted by the path is more adapted to the transmission performance of the path, improving the data transmission efficiency.

[0137] S610. Perform a normalization calculation on the weights of each path.

[0138] Performing a normalization calculation on the weights of each path means converting the weights of different paths to a unified standard range, usually between 0 and 1, for easy comparison and analysis. The normalization process can eliminate the influence brought by different dimensions or orders of magnitude, enabling the weights of different paths to be compared on the same scale.

[0139] After determining the weight of each path, determine the maximum value and the minimum value among the weights of all paths, and use the method of linear transformation to perform a normalization calculation on the weights of the paths, as shown in formula (6).

[0140] (6) where Normalized Path Weight i represents the normalized weight of the i-th path, (min)PathWeight represents the maximum value among the weights of all paths, and (max)Path Weight represents the minimum value among the weights of all paths.

[0141] Perform a normalization calculation on the weight of each path according to the above formula (6) to obtain the normalized weight.

[0142] S612. Calculate the data volume of each path according to the normalized weights of each path and the total data volume of the file to be transmitted; among them, the number of data blocks transmitted by the path is in a direct proportional relationship with the data volume of the path, and the number of data blocks transmitted by the path is in an inverse proportional relationship with the size of the data block.

[0143] The total data volume of the file to be transmitted can be understood as the size of the file that needs to be transmitted through multiple paths, expressed in bits or bytes. For example, a file may be 5MB (megabytes) or 40Mb (megabits). Among them, the file to be transmitted can be the first file or the second file. The file to be transmitted can also be any file that needs to be transmitted through multiple paths after the path weights are determined.

[0144] The data volume of a path can be understood as the data volume allocated to a specific path for transmission. The data volume of a path is determined by the normalized weight of the path and the total data volume of the entire file to be transmitted. The higher the weight of the path, the higher the corresponding data volume.

[0145] In a possible implementation, the data volume of a path can be calculated by formula (7).

[0146] (7) Among them, Probe File Size i represents the data volume of the i-th path, and Total Probe File Size represents the total data volume of the file to be transmitted.

[0147] In this embodiment, according to the weight of each path, the data volume of the file to be transmitted is allocated. The higher the weight of the path, the more data volume is allocated, so as to maximize the utilization of the capabilities of efficient paths, thereby improving the overall network resource utilization efficiency and data transmission efficiency.

[0148] S614. Determine the number of data blocks transmitted by each path according to the data volume of each path and the size of the data block.

[0149] Take the ratio of the data volume of each path to the size of the data block as the number of data blocks transmitted by each path.

[0150] In a possible implementation, the number of data blocks transmitted by a path is calculated by formula (8).

[0151] (8) Among them, Block Count i represents the number of data blocks transmitted by the i-th path, Probe File Size i represents the data volume of the i-th path, and Block Size represents the size of the data block.

[0152] Calculate the number of data blocks transmitted by each path according to the above formula (8).

[0153] In a possible implementation, according to the steps of S612 - S614, first calculate the number of data blocks in the first file corresponding to each path. According to the same calculation method, calculate the number of data blocks in the second file corresponding to each path.

[0154] In a possible implementation, after transmitting the adjusted first file and second file to the receiving end through multipath transmission, obtain new transmission performance parameters, recalculate the new path weights, and adjust the number of data blocks included in the first file and the second file respectively during the next round of transmission.

[0155] By normalizing the path weights and reasonably allocating the data volume of the file to be transmitted according to their weights, it can ensure the efficient utilization of network resources and improve the data transmission efficiency.

[0156] Based on the above embodiments, this embodiment provides a data transmission system. The data transmission system 700 includes a sending detection and policy module 710, a receiving feedback and caching module 720, a data block forwarding and retransmission module 730, and a data recovery and synthesis module 740. Among them, the sending detection and policy module 710 includes a first transmission performance monitoring unit 711, a first file and second file generation unit 712, and a data block allocation unit 713; the receiving feedback and caching module 720 includes a transmission performance feedback unit 721, a second transmission performance monitoring unit 722, and an erasure code receiving and caching unit 723. The data block forwarding and retransmission module 730 includes a second file forwarding unit 731 and a second file retransmission unit 732; the data recovery and synthesis module 740 includes a data block recovery unit 741 and a data block synthesis unit 742.

[0157] The sending detection and policy module 710 includes a first transmission performance monitoring unit 711, a first file and second file generation unit 712, and a data block allocation unit 713, which are mainly used to generate corresponding erasure code blocks, source data block indexes, and formulate allocation strategies before data transmission.

[0158] The receiving feedback and caching module 720 includes a transmission performance feedback unit 721, a second transmission performance monitoring unit 722, and an erasure code receiving and caching unit 723, which are used to receive and cache erasure code blocks (second data blocks), monitor the transmission performance of each path using the erasure code blocks, and feedback to the sending monitoring and policy module.

[0159] The data block forwarding and retransmission module 730 includes a second file forwarding unit 731 and a second file retransmission unit 732, which are used to perform data block forwarding and retransmission according to the instructions of sending monitoring and policies. Specifically, the sending end distributes the first data block and the second data block to each path according to the calculated weights according to the multi-path allocation policy. The number of blocks is allocated in the transmission queue of each path according to the number of the first data blocks and the number of the second data blocks, and is sent to the receiving end through the UDP protocol. When the receiving end detects the loss of a data block, if the erasure code cannot be recovered (that is, the number of lost blocks > m), a retransmission request is sent to the sending end, and the sending end selects the optimal path to retransmit the lost blocks according to the path weights. Each data block and redundant block has a corresponding identifier. When retransmitting, it is the receiving end that sends the retransmission instruction and the identifier of the retransmitted data block.

[0160] The data recovery and synthesis module 740 includes a data block recovery unit 741 and a data block synthesis unit 742, which are used for the synthesis of data blocks. If a data block is missing, it is recovered by the erasure code. When the erasure code cannot be recovered, the corresponding data block is retransmitted. The receiving end collects at least k valid blocks (data or redundant blocks), and restores the original data through the erasure code decoding algorithm. The restored data blocks are reorganized into a complete file in index order. If the recovery fails, the retransmission process is triggered.

[0161] Further, as Figure 8 shown, after the original data file is transmitted to the data transmission system, the file generation unit 810 generates k first data blocks and m second data blocks according to the erasure code parameters and the erasure code algorithm, then groups the m second data blocks to obtain multiple first files, then each path corresponds to a first file, and then the first file 1 is transmitted through path 1, the first file 2 is transmitted through path 2,..., the first file N is transmitted through path N. The data block cache and performance monitoring unit 830 receives multiple first files transmitted by each path. The data block cache and performance monitoring unit 830 obtains the transmission performance parameters of each path during the transmission of multiple first files, and feeds the obtained transmission performance parameters of each path back to the file generation unit 810. After the file generation unit 810 obtains the transmission performance parameters of each path, it transmits the transmission performance parameters to the multi-path allocation unit 820. The multi-path allocation unit 820 calculates the weights of each path, adjusts the number of data blocks in each first file and second file according to the weights of each path, and the total number of data blocks in all first files and second files remains unchanged. The adjusted first files and second files are transmitted through their respective corresponding paths. The multi-path data synthesis unit 840 receives all the first data blocks in the second file and performs synthesis. If a first data block is missing, the multi-path data synthesis unit 840 uses the second data block to recover the first data block.

[0162] In an embodiment, the first file generated by using the erasure code technology obtains real transmission performance data during the multi-path transmission process, and evaluates the performance from the level of the transmission result. The first file is composed of a second data block generated by a fixed erasure code ratio (k:m) and a file header containing identification and index information, and the erasure code ratio remains unchanged during the entire transmission process.

[0163] During a transmission process, the erasure code k parameter and m parameter are kept unchanged. By controlling the number of erasure code blocks included in a single first file, lightweight dynamic adjustment of the erasure code and data block size is achieved, so that the size of the first file matches the transmission performance of each path, realizing traffic allocation and transmission optimization. Compared with the traditional method that relies on network performance parameters, the obtained parameters are closer to the actual transmission rate, can allocate traffic more accurately, improve data transmission efficiency, reduce transmission delay, and are applicable to high-throughput data transmission and distribution scenarios.

[0164] By keeping the erasure code k parameter and m parameter unchanged and adopting a small data block combination mechanism, the high computational complexity and high requirements for devices brought about by dynamically adjusting the erasure code parameters are avoided, the additional delay is reduced, and the system becomes more lightweight and efficient, and can also operate stably in a weak network environment.

[0165] The application of the erasure code technology and the dynamic adjustment mechanism ensure that when transmission problems occur in some paths, the complete transmission of data can still be guaranteed through redundant data recovery and path adjustment. The data recovery and synthesis module uses the erasure code to recover the missing data blocks, and if it cannot be recovered, it will retransmit, improving the reliability of data transmission.

[0166] The technical solution of this embodiment can be widely applied to the data transmission system of cloud-network integration, optimize the data transmission between the cloud platform and the user terminal, enhance the experience of users accessing services such as cloud applications, online videos, and online games, strengthen the service competitiveness of operators, and at the same time can improve the transmission efficiency of the content distribution transmission system and reduce costs.

[0167] It should be noted that the acquisition, storage, use, processing, etc. of data in the technical solution of the present disclosure all comply with the relevant regulations of relevant laws and regulations. For various types of data such as personal identity data, operation data, and behavior data related to individuals, customers, and groups obtained in the embodiments of the present disclosure, the consent of the users has been obtained.

[0168] According to the same inventive concept, an apparatus for optimizing transmission performance is also provided in the embodiments of the present disclosure, as described in the following embodiments. Since the principle of solving problems in the apparatus embodiment is similar to that in the above method embodiment, the implementation of the apparatus embodiment can refer to the implementation of the above method embodiment, and the repeated parts will not be described again.

[0169] Figure 9 The following shows a schematic diagram of an apparatus for optimizing transmission performance in the embodiments of the present disclosure, asFigure 9 As shown in Figure 9 , the device includes: a first file generation module 910, a performance parameter acquisition module 920, a path weight determination module 930, and a data block number determination module 940.

[0170] Among them, the first file generation module 910 is configured to generate a first file corresponding to each path according to the original data file and the erasure code parameters; the performance parameter acquisition module 920 is configured to transmit the corresponding first file through each path and acquire the transmission performance parameters of each path; the path weight determination module 930 is configured to determine the weight of each path according to the transmission performance parameters of each path; the data block number determination module 940 is configured to adjust the number of data blocks transmitted by each path according to the weight of each path.

[0171] In some exemplary embodiments of the present disclosure, the transmission performance parameters include at least one of the following: transmission delay, transmission rate, and transmission rate fluctuation amount; the weight determination module 930 is specifically configured to calculate the weight of each path according to at least one of the transmission delay, transmission rate, and transmission rate fluctuation amount corresponding to each path.

[0172] In some exemplary embodiments of the present disclosure, the transmission rate includes an effective transmission rate, a maximum transmission rate, and an average transmission rate, and the transmission rate fluctuation amount includes a current transmission rate fluctuation amount and a maximum transmission rate fluctuation amount; the weight of the path is determined by any one of a first weighting term, a second weighting term, a third weighting term, and a fourth weighting term; the first weighting term is inversely proportional to the transmission delay; the second weighting term is directly proportional to the effective transmission rate and inversely proportional to the maximum transmission rate; the third weighting term is directly proportional to the average transmission rate and inversely proportional to the maximum transmission rate; the fourth weighting term is inversely proportional to the current transmission rate fluctuation amount and directly proportional to the maximum transmission rate fluctuation amount.

[0173] In some exemplary embodiments of the present disclosure, the data block number determination module 940 performs a normalization calculation on the weights of each path; calculates the amount of data transmitted by each path according to the normalized weights of each path and the total amount of data of the file to be transmitted; and determines the number of data blocks transmitted by each path according to the amount of data of each path and the size of the data block.

[0174] In some exemplary embodiments of the present disclosure, the number of data blocks transmitted by a path is directly proportional to the amount of data transmitted by the path, and the number of data blocks transmitted by a path is inversely proportional to the size of the data block.

[0175] In some exemplary embodiments of the present disclosure, the first file generation module 910 is specifically configured to slice the original data file to obtain a plurality of first data blocks; generate a plurality of second data blocks according to the plurality of first data blocks and erasure code parameters; group the plurality of second data blocks to obtain a first file corresponding to each path, and the first file includes a plurality of second data blocks.

[0176] In some exemplary embodiments of the present disclosure, the number of second data blocks included in each first file is the same.

[0177] In some exemplary embodiments of the present disclosure, each first file includes a file header and a payload; wherein, the file header of the first file includes at least one of the following parameters: erasure code parameters, path identifiers corresponding to the first file, file identifiers of the first file, identifiers of each second data block included in the first file, sizes of the second data blocks, transmission timestamps of the first file; the payload of the first file includes a plurality of second data blocks.

[0178] In some exemplary embodiments of the present disclosure, the total number of second data blocks included in the plurality of first files remains unchanged.

[0179] In some exemplary embodiments of the present disclosure, it further includes: a second file generation module, configured to group the plurality of first data blocks to obtain a second file corresponding to each path, and the second file includes a plurality of first data blocks; a data block number determination module 940, specifically configured to adjust the number of second data blocks included in the first file corresponding to each path and the number of first data blocks included in the second file corresponding to each path according to the weights of each path; transmit the adjusted first file corresponding to each path and the adjusted second file corresponding to each path through each path respectively.

[0180] In some exemplary embodiments of the present disclosure, the performance parameter acquisition module 920 is specifically configured to transmit the first file corresponding to each path to the receiving end through each path respectively, so that the receiving end collects the transmission performance parameters of each path; acquire the transmission performance parameters of each path sent by the receiving end.

[0181] It should be noted here that the examples and application scenarios implemented by each module in the above device embodiments are the same as the corresponding steps in the method embodiments, but are not limited to the content disclosed in the above method embodiments. It should be noted that the above modules, as part of a device, can be executed in a computer system such as a set of computer executable instructions.

[0182] Those skilled in the art can understand that various aspects of the present disclosure can be specifically implemented in the following forms, namely: a complete hardware implementation, a complete software implementation (including firmware, microcode, etc.), or an implementation combining hardware and software aspects, which can be collectively referred to as "circuits", "modules", or "systems" here.

[0183] According to the same inventive concept, an electronic device is further provided in an embodiment of the present disclosure. The electronic device includes: a processor; and a memory for storing executable instructions of the processor; wherein the processor is configured to execute the transmission performance optimization method of any one of the above via executing the executable instructions. Since the principle of solving problems in this embodiment of the electronic device is similar to that of the above method embodiment, the implementation of this embodiment of the electronic device can refer to the implementation of the above method embodiment, and the repeated parts will not be elaborated.

[0184] Next, refer to Figure 10 to describe the electronic device 1000 according to this embodiment of the present disclosure. Figure 10 The shown electronic device 1000 is only an example and should not bring any limitation to the functions and usage scope of the embodiments of the present disclosure.

[0185] As Figure 10 shown, the electronic device 1000 is presented in the form of a general computing device. The components of the electronic device 1000 may include but are not limited to: the above-mentioned processing unit 1010, the above-mentioned storage unit 1020, and a bus 1030 connecting different system components (including the storage unit 1020 and the processing unit 1010).

[0186] Among them, the storage unit 1020 stores program codes, and the program codes can be executed by the processing unit 1010, so that the processing unit 1010 executes the steps according to various exemplary embodiments of the present disclosure described in the above "Exemplary Method" part of this specification. For example, the processing unit 1010 can execute the following steps of the above method embodiment: generating a first file corresponding to each path according to the original data file and the erasure code parameters; respectively transmitting the corresponding first file through each path and obtaining the transmission performance parameters of each path; determining the weights of each path according to the transmission performance parameters of each path; and adjusting the number of data blocks transmitted by each path according to the weights of each path.

[0187] The storage unit 1020 may include a readable medium in the form of a volatile storage unit, such as a random access storage unit (RAM) 10201 and / or a cache 10202, and may further include a read-only storage unit (ROM) 10203.

[0188] The storage unit 1020 may also include a program / utility 10204 having a set of at least one program module 10205. Such program modules 10205 include, but are not limited to: an operating system, one or more application programs, other program modules, and program data. Each or some combination of these examples may include an implementation of a network environment.

[0189] The bus 1030 may represent one or more of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, a processing unit, or a local bus using any of a variety of bus structures.

[0190] The electronic device 1000 may also communicate with one or more external devices 1040 (such as a keyboard, a pointing device, a Bluetooth device, etc.), may also communicate with one or more devices that enable a user to interact with the electronic device 1000, and / or may communicate with any device that enables the electronic device 1000 to communicate with one or more other computing devices (such as a router, a modem, etc.). Such communication may be carried out through the input / output (I / O) interface 1050. Moreover, the electronic device 1000 may also communicate with one or more networks (such as a local area network (LAN), a wide area network (WAN), and / or a public network, such as the Internet) through the network adapter 1060. As shown in the figure, the network adapter 1060 communicates with other modules of the electronic device 1000 through the bus 1030. It should be understood that, although not shown in the figure, other hardware and / or software modules may be used in conjunction with the electronic device 1000, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems, etc.

[0191] Through the description of the above embodiments, those skilled in the art can easily understand that the example embodiments described herein can be implemented by software, or can be implemented by a combination of software and necessary hardware. Therefore, the technical solutions according to the embodiments of the present disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, a USB flash drive, a mobile hard disk, etc.) or on a network, including several instructions to enable a computing device (which can be a personal computer, a server, a terminal device, or a network device, etc.) to execute the method according to the embodiments of the present disclosure.

[0192] According to the same inventive concept, embodiments of the present disclosure also provide a computer-readable storage medium having a computer program stored thereon, and when the computer program is executed by a processor, the above-mentioned transmission performance optimization method of any one of the above is implemented. Since the principle of solving problems in the embodiment of the computer-readable storage medium is similar to that of the above method embodiment, the implementation of the embodiment of the computer-readable storage medium can refer to the implementation of the above method embodiment, and the repeated parts will not be described again.

[0193] More specific examples of the computer-readable storage medium in the present disclosure may include, but are not limited to: electrical connections having one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the above.

[0194] In the present disclosure, the computer-readable storage medium may include a data signal propagated in a baseband or as part of a carrier wave, in which the readable program code is carried. Such a propagated data signal may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. The readable signal medium may also be any readable medium other than the readable storage medium, and the readable medium may send, propagate, or transmit a program for use by or in conjunction with an instruction execution system, apparatus, or device.

[0195] Optionally, the program code included on the computer-readable storage medium may be transmitted using any appropriate medium, including but not limited to wireless, wired, optical fiber, RF, etc., or any suitable combination of the above.

[0196] In specific implementation, the program code for performing the operations of the present disclosure may be written in any combination of one or more programming languages. The programming languages include object-oriented programming languages such as Java, C++, etc., and also include conventional procedural programming languages such as the "C" language or similar programming languages. The program code may be executed entirely on the user computing device, partially on the user device, executed as an independent software package, partially on the user computing device and partially on a remote computing device, or entirely on a remote computing device or server. In the case of a remote computing device, the remote computing device may be connected to the user computing device through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computing device (for example, by using an Internet service provider to connect through the Internet).

[0197] According to the same inventive concept, embodiments of the present disclosure also provide a computer program product, including: a computer program or instruction, which when executed by a processor implements the transmission performance optimization method in any one of the above method embodiments. Since the principle of solving problems in this computer program product embodiment is similar to that of the above method embodiments, the implementation of this computer program product embodiment can refer to the implementation of the above method embodiments, and repeated parts will not be elaborated.

[0198] It should be noted that although several modules or units of devices for action execution are mentioned in the above detailed description, this division is not mandatory. In fact, according to the embodiments of the present disclosure, the features and functions of the two or more modules or units described above can be embodied in one module or unit. Conversely, the features and functions of one module or unit described above can be further divided and embodied by multiple modules or units.

[0199] In addition, although the steps of the methods in the present disclosure are described in a specific order in the drawings, this does not require or imply that these steps must be executed in this specific order, or that all the steps shown must be executed to achieve the desired result. Additionally or alternatively, some steps may be omitted, multiple steps may be combined into one step for execution, and / or one step may be decomposed into multiple steps for execution, etc.

[0200] Through the description of the above embodiments, those skilled in the art can easily understand that the exemplary embodiments described here can be implemented by software, or by a combination of software and necessary hardware. Therefore, the technical solutions according to the embodiments of the present disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, a USB flash drive, a mobile hard disk, etc.) or on a network, including several instructions to enable a computing device (which can be a personal computer, a server, a mobile terminal, or a network device, etc.) to execute the method according to the embodiments of the present disclosure.

[0201] After considering the specification and practicing the invention disclosed herein, those skilled in the art will readily conceive of other embodiments of the present disclosure. The present disclosure is intended to cover any variations, uses, or adaptations of the present disclosure, which follow the general principles of the present disclosure and include well-known common general knowledge or conventional technical means in the technical field not disclosed in the present disclosure. The specification and embodiments are only regarded as exemplary, and the true scope and spirit of the present disclosure are pointed out by the appended claims.

Claims

1. A method for optimizing transmission performance, characterized in that, including: generating a first file corresponding to each path according to the original data file and the erasure code parameters; transmitting the corresponding first file through each of the paths respectively, and obtaining the transmission performance parameters of each of the paths; determining the weights of each of the paths according to the transmission performance parameters of each of the paths; adjusting the number of data blocks transmitted by each of the paths according to the weights of each of the paths.

2. The transmission performance optimization method according to claim 1, wherein The transmission performance parameters include at least one of the following: transmission delay, transmission rate, transmission rate fluctuation amount; Determining the weights of each of the paths according to the transmission performance parameters of each of the paths includes: calculating the weights of each of the paths according to at least one of the transmission delay, the transmission rate, and the transmission rate fluctuation amount corresponding to each of the paths.

3. The transmission performance optimization method according to claim 2, wherein The transmission rate includes an effective transmission rate, a maximum transmission rate, and an average transmission rate, and the transmission rate fluctuation amount includes a current transmission rate fluctuation amount and a maximum transmission rate fluctuation amount; The weight of the path is determined by any one of a first weighting term, a second weighting term, a third weighting term, and a fourth weighting term; The first weighting term is inversely proportional to the transmission delay; The second weighting term is directly proportional to the effective transmission rate and inversely proportional to the maximum transmission rate; The third weighting term is directly proportional to the average transmission rate and inversely proportional to the maximum transmission rate; The fourth weighting term is inversely proportional to the current transmission rate fluctuation amount and directly proportional to the maximum transmission rate fluctuation amount.

4. The transmission performance optimization method according to any one of claims 1-3, characterized in that The adjusting the number of data blocks transmitted by each of the paths according to the weights of each of the paths includes: performing a normalization calculation on the weights of each of the paths; calculating the amount of data transmitted by each of the paths according to the normalized weights of each of the paths and the total amount of data of the file to be transmitted; determining the number of data blocks transmitted by each of the paths according to the amount of data transmitted by each of the paths and the size of the data block.

5. The transmission performance optimization method according to claim 4, wherein The number of data blocks transmitted by the path is directly proportional to the amount of data transmitted by the path, and the number of data blocks transmitted by the path is inversely proportional to the size of the data block.

6. The transmission performance optimization method according to claim 1, wherein The generating a first file corresponding to each path according to the original data file and the erasure code parameters includes: performing slicing processing on the original data file to obtain a plurality of first data blocks; generating a plurality of second data blocks according to the plurality of first data blocks and the erasure code parameters; grouping the plurality of second data blocks to obtain a first file corresponding to each path, and the first file includes a plurality of the second data blocks.

7. The transmission performance optimization method according to claim 6, wherein The number of the second data blocks included in each of the first files is the same.

8. The transmission performance optimization method according to claim 6, wherein Each of the first files includes a file header and a payload; wherein, the file header of the first file includes at least one of the following parameters: erasure code parameters, path identifier corresponding to the first file, file identifier of the first file, identifiers of each of the second data blocks included in the first file, size of the second data block, transmission timestamp of the first file; The payload of the first file includes a plurality of second data blocks.

9. The transmission performance optimization method according to claim 7, wherein also including: Group the multiple first data blocks to obtain a second file corresponding to each of the paths, where the second file includes multiple of the first data blocks; The adjusting the number of data blocks transmitted through each of the paths according to the weights of the paths includes: Adjusting the number of the second data blocks included in the first file corresponding to each of the paths and the number of the first data blocks included in the second file corresponding to each of the paths according to the weights of the paths; Transmitting the adjusted first file corresponding to each of the paths and the adjusted second file corresponding to each of the paths through each of the paths respectively.

10. The transmission performance optimization method according to claim 1, characterized in that The transmitting the first file corresponding to each of the paths through each of the paths and obtaining the transmission performance parameters of the paths includes: Transmitting the first file corresponding to each of the paths to a receiving end through each of the paths respectively, so that the receiving end collects the transmission performance parameters of the paths; Obtaining the transmission performance parameters of the paths sent by the receiving end.

11. A transmission performance optimization device, characterized in that, Includes: A first file generation module, configured to generate a first file corresponding to each path according to an original data file and erasure code parameters; A performance parameter acquisition module, configured to transmit the first file corresponding to each of the paths through each of the paths respectively and obtain the transmission performance parameters of the paths; A path weight determination module, configured to determine the weights of the paths according to the transmission performance parameters of the paths; A data block number determination module, configured to adjust the number of data blocks transmitted through each of the paths according to the weights of the paths.

12. An electronic device, characterized in that, Includes: A processor; And A memory, configured to store executable instructions of the processor; Wherein, the processor is configured to execute the transmission performance optimization method according to any one of claims 1 to 10 by executing the executable instructions.

13. A computer-readable storage medium having a computer program stored thereon, characterized in that, The computer program, when executed by a processor, implements the transmission performance optimization method according to any one of claims 1 to 10.

14. A computer program product, comprising: A computer program or instruction, characterized in that the computer program or instruction, when executed by a processor, implements the transmission performance optimization method according to any one of claims 1 to 10.

Citation Information

Patent Citations

  • Erasure code based multi-path reliable satellite-ground transmission method for satellite networks

    CN104393960A

  • Method and device for distributing links for mobile terminal

    CN114423043A

  • Load balancing information transmission method and device and storage medium

    CN117042048A

  • Incremental data fusion method based on hudi

    CN118445294A

  • Adaptive error correction method and system in broadcast digital audio transmission

    CN119995790A

Cited By

  • Data transmission method and system of heterogeneous network

    CN122120834A