Real-time data broadcasting method based on dynamic adjustment of sending rate

Through dynamically adjusting the transmission rate and Reed Solomon encoding technology, the problems of low transmission efficiency and poor reliability in traditional instant data broadcasting methods are solved, and efficient data transmission and error correction are achieved in wireless networks, suitable for real-time shared desktops and multimedia Live broadcast and other scenes.

CN119211223APending Publication Date: 2024-12-27NANJING DUOWEIXINLIAN TECH
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411374791.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-29
Publication Date
2024-12-27

AI Technical Summary

Technical Problem

Traditional instant data broadcasting methods have problems of low transmission efficiency and poor reliability in wireless networks, especially when the number of receiving hosts is large and bandwidth is limited.

Method used

Using the instant data broadcast method based on dynamic adjustment of the transmission rate, the combination technology of data segmentation, Reed Solomon encoding, data transmission, reception and reorganization, and dynamic adjustment of multicast and unicast data transmission rates, the finite domain and generation polynomials are used for the Encoding and error correction, dynamically adjusting multicast and unicast sending rates to maximize bandwidth utilization.

Benefits of technology

It improves the efficiency and reliability of data transmission, can efficiently utilize limited multicast transmission bandwidth, and meet application scenarios with high real-time requirements, such as real-time shared desktop demonstrations and multimedia live broadcasts.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader

Abstract

The invention discloses an instant data broadcasting method based on dynamic adjustment of a sending rate, which belongs to the technical field of instant data broadcasting methods and comprises the following steps of: 1, segmenting data; 2, Reed-Solomon coding; 3, sending data; 4, receiving and recombining data; 5, dynamically adjusting the multicast and unicast data sending rate, wherein the sending host dynamically adjusts the multicast and unicast data sending rate according to the maximum multicast bandwidth BWmulticast, the maximum unicast bandwidth BWunicast and the number of the receiving ends of the current network environment; and 6, file distribution is completed. Through the mode, the method has the characteristics of efficiently utilizing limited multicast transmission bandwidth, solving the problem of high real-time requirement and improving the reliability of data transmission, and is suitable for application scenes of real-time shared desktop demonstration, multimedia live broadcast, real-time data synchronization and the like.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of real-time data broadcasting methods, and in particular to a real-time data broadcasting method based on dynamically adjusting a sending rate. Background Art

[0002] With the popularization and application of wireless networks, real-time data broadcasting has become increasingly important in wireless environments. Real-time data broadcasting refers to the process of quickly transmitting data to multiple receivers in scenarios with high real-time requirements. For example, application scenarios such as real-time shared desktop presentations, multimedia live broadcasts, and real-time data synchronization all require efficient real-time data broadcasting methods.

[0003] Traditional file distribution methods include sending via TCP unicast and sending via UDP multicast. In the TCP unicast sending method, the sending host sends the file to each receiving host through the TCP protocol in a loop. The advantage of this method is that it is simple and easy to implement, but its disadvantages are also obvious. First, since it needs to be sent multiple times, the transmission time is increased. Second, when the number of receiving hosts is large, the bandwidth and processing power of the sending host may become a bottleneck, resulting in a decrease in transmission efficiency. In addition, the TCP protocol itself has high requirements for reliability, which may cause transmission failure or require retransmission, further increasing the transmission time and bandwidth consumption. In the UDP multicast sending method, the sending host uses the UDP protocol to send the file to multiple receiving hosts at one time. Compared with TCP unicast sending, UDP multicast sending has lower transmission time and bandwidth consumption. However, UDP multicast sending also has some disadvantages. First, the UDP protocol itself does not provide reliability guarantees and cannot guarantee the integrity and reliability of the data. Second, the multicast transmission bandwidth is limited, especially in a wireless network environment, the multicast transmission bandwidth is even more limited, and cannot meet the needs of high-speed data transmission.

[0004] In summary, traditional file distribution methods still have problems such as low transmission efficiency and poor reliability.

[0005] Based on this, the present invention designs a real-time data broadcasting method based on dynamically adjusting the sending rate to solve the above problem. Summary of the invention

[0006] In view of the above-mentioned shortcomings of the prior art, the present invention provides a real-time data broadcasting method based on dynamically adjusting the sending rate.

[0007] To achieve the above objectives, the present invention is implemented through the following technical solutions:

[0008] A real-time data broadcasting method based on dynamically adjusting the sending rate comprises the following steps:

[0009] 1. Data segmentation: Divide the file to be transmitted into k transmission task units Ci, and define the size of each task unit Ci as n*B bytes;

[0010] 2. Reed-Solomon coding: For each task unit Ci, Reed-Solomon coding is used for encoding; assuming that r times redundancy needs to be achieved, that is, each task unit Ci generates r redundant coding blocks; therefore, the number of encoded data blocks for each task unit Ci is n+r;

[0011] 3. Data transmission: The encoded data blocks are sent through unicast and multicast respectively;

[0012] 4. Data reception and reassembly: The receiving end reassembles the received data blocks;

[0013] 5. Dynamically adjust the multicast and unicast data transmission rate: The sending host dynamically adjusts the multicast and unicast data transmission rate according to the maximum multicast bandwidth BW_multicast, the maximum unicast bandwidth BW_unicast and the number of receiving terminals in the current network environment;

[0014] 6. File distribution is completed: When the data blocks of all transmission task units are received and reassembled, the file distribution is completed.

[0015] Furthermore, in step one, assuming that the size of the file F to be transmitted is S bytes, it is divided into k transmission task units Ci; each task unit Ci contains n data blocks, and the size of each data block is B bytes; therefore, the size of each task unit Ci is n*B bytes.

[0016] Furthermore, in step 2, the encoding process using Reed-Solomon encoding is as follows:

[0017] 2.1. Generate coefficient field: First, choose a suitable finite field GF(2^m), where m is an integer, which is used to define the operation on the finite field;

[0018] 2.2. Construct a generating polynomial: For the required redundancy r, select a generating polynomial g(x) of degree r;

[0019] 2.3. Encode data into a polynomial: Consider the task unit Ci as a polynomial f(x) represented by k coefficients, where k represents the number of data elements contained in the task unit Ci;

[0020] 2.4. Encode the polynomial: Use the following formula to calculate the encoded polynomial: c(x) = f(x)*x^r + remainder (f(x)*x^r / g(x));

[0021] Among them, c(x) is the encoded polynomial, which contains the original data and r redundant coefficients;

[0022] 2.5. Generate encoded blocks: Divide the encoded polynomial c(x) into n + r coefficients, and each coefficient corresponds to an element in the finite field GF(2^m); these n + r elements are the encoded data blocks.

[0023] Furthermore, in step 2.1, usually m = 8 is selected, that is, GF(2^8). Such a finite field contains 2^8 = 256 elements.

[0024] Furthermore, in step four, it is assumed that the receiving end correctly receives m data blocks;

[0025] When m >= n, the data can be reconstructed through Reed - Solomon coding; that is to say, as long as the number of lost data blocks is less than r, the original data can be restored through the algorithm.

[0026] Furthermore, when m < n, only n - m data blocks need to be requested from the sending end for re - transmission; the re - transmitted data blocks can be any n - m of the n + r - m un - received data blocks.

[0027] Furthermore, in step five, dynamically adjust the multicast and unicast data sending rates, including the following steps:

[0028] (1) Calculate the multicast sending rate Rm:

[0029] Rm = min(Bm / (N + r), Bm)

[0030] Among them, Bm is the maximum multicast bandwidth in the current network environment; N is the number of receiving ends of the sending task; r is the number of redundant encoded blocks, which can be determined according to the coding scheme; Rm is the multicast sending rate;

[0031] (2) Calculate the unicast sending rate Ru:

[0032] Ru = min(Bu / N, Bm / (N + r))

[0033] Among them, Bu is the maximum unicast bandwidth in the current network environment; Ru is the unicast sending rate;

[0034] (3) Dynamically adjust the sending rate;

[0035] (4) Send data using the adjusted sending rate: Send the original data block to the receiving end in unicast mode, and the sending rate is Ru; send the redundant encoded block to all receiving ends in multicast mode, and the sending rate is Rm.

[0036] Furthermore, in step (3), an adaptive algorithm or a feedback control algorithm is used to dynamically adjust the multicast sending rate Rm and the unicast sending rate Ru according to the real-time network bandwidth and the processing capability of the receiving end.

[0037] Furthermore, in step (2), the unicast sending rate Ru does not exceed the maximum unicast bandwidth Bu, and does not exceed the multicast sending rate Rm.

[0038] Beneficial Effects

[0039] The present invention is achieved by dynamically adjusting the data transmission rate and utilizing Reed-Solomon coding, combining multicast and unicast, dynamically adjusting and allocating the multicast and unicast data transmission rates, and utilizing Reed-Solomon coding to maximize the use of limited multicast transmission bandwidth, thereby improving data transmission efficiency and reliability.

[0040] The present invention has the characteristics of efficiently utilizing limited multicast transmission bandwidth, solving the problem of high real-time requirements, and improving the reliability of data transmission, and is suitable for application scenarios such as real-time shared desktop demonstration, multimedia live broadcast, and real-time data synchronization. DETAILED DESCRIPTION

[0041] In order to make the purpose, technical solution and advantages of the embodiments of the present invention clearer, the technical solution in the embodiments of the present invention will be clearly and completely described in combination with the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.

[0042] The present invention will be further described below in conjunction with the embodiments.

[0043] Example 1

[0044] This embodiment provides a method for real-time data broadcasting based on dynamically adjusting the sending rate, comprising the following steps:

[0045] 1. Data segmentation: Assuming that the size of the file F to be transmitted is S bytes, divide it into k transmission task units Ci; each task unit Ci contains n data blocks, and the size of each data block is B bytes; therefore, the size of each task unit Ci is n*B bytes.

[0046] 2. Reed-Solomon coding: For each task unit Ci, Reed-Solomon coding is used for encoding; assuming that r times redundancy needs to be achieved, that is, each task unit Ci generates r redundant coding blocks; therefore, the number of encoded data blocks for each task unit Ci is n+r.

[0047] Reed-Solomon coding is a commonly used error correction coding method that can effectively detect and correct errors in data. For task unit Ci, the encoding process using Reed-Solomon coding is as follows:

[0048] 2.1. Generate coefficient field: First, choose a suitable finite field GF(2^m), where m is an integer used to define operations on the finite field; usually m=8, i.e. GF(2^8), such a finite field contains 2^8=256 elements;

[0049] 2.2. Construct a generating polynomial: For the required redundancy r, select a generating polynomial g(x) of degree r;

[0050] The choice of the generator polynomial g(x) depends on the required redundancy r. Usually, the generator polynomial g(x) is pre-designed and has been extensively tested and verified in practical applications.

[0051] Here are some examples of commonly used generator polynomials:

[0052] 2.2.1. First-order primitive polynomial: g(x)=x+c;

[0053] Where c is a non-zero constant. For example, when r=2, g(x)=x+1 can be selected.

[0054] 2.2.2, Second order primitive polynomial: g(x) = x2 + c1x + c0;

[0055] Where c1 and c0 are non-zero constants. For example, when r=3, g(x)=x2+x+1 can be selected.

[0056] 2.2.3. Minimal polynomial on Galois field: On the Galois field, the generating polynomial can be selected as the minimal polynomial.

[0057] For example, on GF(2^8), the minimum polynomial can be selected as g(x)=x8+x4+x3+x2+1.

[0058] 2.3.4 Other designed generating polynomials: In some specific application scenarios, customized generating polynomials may be designed according to specific requirements.

[0059] 2.3. Encode data into a polynomial: Consider the task unit Ci as a polynomial f(x) represented by k coefficients, where k represents the number of data elements contained in the task unit Ci; the unit of k depends on the specific situation, for example: if Ci represents a byte block, then k is the number of bytes.

[0060] For example: Assume Ci represents a byte block consisting of 8 bytes, then k is 8.

[0061] 2.4. Encode the polynomial: Calculate the encoded polynomial using the following formula: c(x) = f(x) * x^r + remainder(f(x) * x^r / g(x));

[0062] where c(x) is the encoded polynomial, which contains the original data and r redundant coefficients; x is a variable representing the number of terms of the polynomial.

[0063] 2.5. Generate encoded blocks: Divide the encoded polynomial c(x) into n + r coefficients, each corresponding to an element in the finite field GF(2^m); these n + r elements are the encoded data blocks;

[0064] Therefore, for task unit Ci, after Reed - Solomon encoding, the data is split into n + r encoded blocks. Among them, the first n blocks are the original data blocks, and the last r blocks are the redundant encoded blocks. Through these redundant blocks, errors that occur during the transmission of the encoded blocks can be detected and corrected.

[0065] III. Data transmission: Send the encoded data blocks through unicast and multicast respectively. Send the original data blocks at the rate R_unicast and the redundant encoded blocks at the rate R_multicast;

[0066] IV. Data reception and recombination: The receiving end recombines the received data blocks; assume that the receiving end correctly receives m data blocks;

[0067] When m >= n, the data can be reconstructed through Reed - Solomon encoding; that is, as long as the number of lost data blocks is less than r, all can be corrected by the algorithm to restore the original data;

[0068] When m < n, only need to apply to the sending end to re - send n - m data blocks; the re - sent data blocks can be any n - m of the n + r - m un - received data blocks.

[0069] V. Dynamically adjust the multicast and unicast data transmission rates: The sending host dynamically adjusts the multicast and unicast data transmission rates according to the maximum multicast bandwidth BW_multicast, the maximum unicast bandwidth BW_unicast of the current network environment and the number of receiving ends.

[0070] VI. File distribution completion: When all the data blocks of the transmission task units are received and recombined, the file distribution is completed; the receiving end can verify the integrity of the file and perform subsequent processing or use.

[0071] The present invention has the following technical effects:

[0072] Efficient use of limited multicast transmission bandwidth: By dynamically adjusting the data transmission rate and using Reed-Solomon coding, the limited multicast transmission bandwidth can be used to the greatest extent possible to improve data transmission efficiency.

[0073] Solve the problem of high real-time requirements: By dynamically adjusting the multicast and unicast data sending rates and optimizing the transmission algorithm, fast and instant data broadcasting can be achieved to meet the needs of application scenarios such as real-time shared desktop demonstrations.

[0074] Improve the reliability of data transmission: Utilize the error correction and retransmission mechanism of Reed-Solomon coding to improve the reliability of data transmission and reduce transmission errors and losses.

[0075] Example 2

[0076] Based on Example 1, in step 5, dynamically adjusting the multicast and unicast data transmission rates includes the following steps:

[0077] (1) Calculate the multicast sending rate Rm:

[0078] Rm=min(Bm / (N+r),Bm)

[0079] Among them, Bm is the maximum multicast bandwidth in the current network environment; N is the number of receiving ends of the sending task; r is the number of redundant coding blocks, which can be determined according to the coding scheme; Rm is the multicast sending rate;

[0080] (2) Calculate the unicast sending rate Ru:

[0081] Ru=min(Bu / N,Bm / (N+r))

[0082] Where, Bu is the maximum unicast bandwidth in the current network environment; Ru is the unicast sending rate;

[0083] The unicast sending rate Ru does not exceed the maximum unicast bandwidth Bu, and does not exceed the multicast sending rate Rm.

[0084] (3) Dynamically adjust the sending rate: Adaptive algorithms or feedback control algorithms are used to dynamically adjust the multicast sending rate Rm and the unicast sending rate Ru according to the real-time network bandwidth and the processing capability of the receiving end.

[0085] The specific method is:

[0086] 3.1 Real-time monitoring of network bandwidth: Use network interface statistics or third-party network monitoring tools to monitor network bandwidth in real time;

[0087] 3.2 Evaluate the processing capacity of the receiving end: Use the CPU utilization of the receiving end, the memory usage of the receiving end, and / or the network throughput of the receiving end to evaluate the processing capacity of the receiving end;

[0088] 3.3 Based on the real-time monitoring results of network bandwidth and receiving end processing capability, use adaptive algorithms or feedback control algorithms to dynamically adjust Rm and Ru.

[0089] Commonly used adaptive algorithms include: TCP congestion control algorithm, rate control algorithm based on packet loss rate, and rate control algorithm based on fairness:

[0090] Commonly used feedback control algorithms include: delay-based feedback control algorithm, packet loss rate-based feedback control algorithm, and congestion information-based feedback control algorithm.

[0091] (4) Use the adjusted sending rate to send data: use unicast to send the original data block to the receiving end, and the sending rate is Ru; use multicast to send the redundant coding block to all receiving ends, and the sending rate is Rm.

[0092] Example 3

[0093] The present invention can be applied in the following scenarios:

[0094] (1) Real-time shared desktop presentation: In remote conferences or distance education, the presentation content is transmitted to multiple participants in real time, enabling real-time desktop sharing and interaction.

[0095] (2) Multimedia live broadcast: In audio and video live broadcast scenarios, real-time audio and video data is quickly transmitted to multiple viewers to achieve a high-quality multimedia live broadcast experience.

[0096] (3) Real-time data synchronization: In a distributed system, real-time data is quickly synchronized to multiple nodes to achieve data consistency and real-time performance.

[0097] The above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit the same. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that the technical solutions described in the aforementioned embodiments may still be modified, or some of the technical features may be replaced by equivalents. Such modifications or replacements will not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of the present invention.

Claims

1. A method for real-time data broadcasting based on dynamic adjustment of transmission rate, characterized in that: It includes the following steps:

1. Data segmentation: Divide the file to be transmitted into k transmission task units Ci, and define the size of each task unit Ci as n*B bytes; 2. Reed-Solomon coding: For each task unit Ci, perform coding using Reed-Solomon coding; assume that r-fold redundancy needs to be achieved, that is, each task unit Ci generates r redundant coding blocks; therefore, the number of coded data blocks for each task unit Ci is n+r; 3. Data sending: Send the coded data blocks through unicast and multicast methods respectively; 4. Data receiving and recombination: The receiving end recombines the received data blocks; 5. Dynamically adjust the multicast and unicast data sending rates: The sending host dynamically adjusts the multicast and unicast data sending rates according to the maximum multicast bandwidth BW_multicast, the maximum unicast bandwidth BW_unicast of the current network environment, and the number of receiving ends; 6. File distribution completed: When all the data blocks of the transmission task units have been received and recombined, the file distribution is completed.

2. The method for real-time data broadcasting based on dynamic adjustment of transmission rate according to claim 1, characterized in that: In step 1, assume that the size of the file F to be transmitted is S bytes, and it is divided into k transmission task units Ci; each task unit Ci contains n data blocks, and the size of each data block is B bytes; therefore, the size of each task unit Ci is n*B bytes.

3. The method for real-time data broadcasting based on dynamically adjusting the sending rate according to claim 2, characterized in that: In the said step 2, the process of performing coding using Reed-Solomon coding is as follows: 2.

1. Generate the coefficient domain: First, select a suitable finite field GF(2^m), where m is an integer, to define the operations on the finite field; 2.

2. Construct the generating polynomial: For the required redundancy r, select a generating polynomial g(x) of degree r; 2.

3. Encode the data as a polynomial: Consider the task unit Ci as a polynomial f(x) represented by k coefficients, where k represents the number of data elements contained in the task unit Ci; 2.

4. Encode the polynomial: Calculate the encoded polynomial using the following formula: c(x) = f(x)*x^r + remainder(f(x)*x^r / g(x)); where c(x) is the encoded polynomial, containing the original data and r redundant coefficients; 2.

5. Generate the coding blocks: Divide the encoded polynomial c(x) into n+r coefficients, and each coefficient corresponds to an element in the finite field GF(2^m); these n+r elements are the coded data blocks.

4. The method for real-time data broadcasting based on dynamic adjustment of transmission rate according to claim 3, characterized in that: In the said step 2.1, usually m = 8 is selected, that is, GF(2^8), so that a finite field contains 2^8 = 256 elements.

5. The method for real-time data broadcasting based on dynamic adjustment of transmission rate according to claim 3, characterized in that: In the said step 4, assume that the receiving end has correctly received m data blocks; When m >= n, the data can be reconstructed through Reed-Solomon coding; that is to say, as long as the number of lost data blocks is less than r, the original data can be corrected and restored through the algorithm.

6. The method for real-time data broadcasting based on dynamic adjustment of transmission rate according to claim 5, characterized in that: When m < n, only need to apply to the sending end for retransmitting n - m data blocks; the retransmitted data blocks can be any n - m of the n + r - m unreceived data blocks.

7. The method for real-time data broadcasting based on dynamic adjustment of transmission rate according to claim 6, characterized in that: In the said step 5, dynamically adjusting the multicast and unicast data sending rates includes the following steps: (1) Calculate the multicast sending rate Rm: Rm=min(Bm / (N+r),Bm) Among them, Bm is the maximum multicast bandwidth in the current network environment; N is the number of receiving ends of the sending task; r is the number of redundant coding blocks, which can be determined according to the coding scheme; Rm is the multicast sending rate; (2) Calculate the unicast sending rate Ru: Ru=min(Bu / N,Bm / (N+r)) Where, Bu is the maximum unicast bandwidth in the current network environment; Ru is the unicast sending rate; (3) Dynamically adjust the sending rate; (4) Use the adjusted sending rate to send data: use unicast to send the original data block to the receiving end, and the sending rate is Ru; use multicast to send the redundant coding block to all receiving ends, and the sending rate is Rm.

8. The method for real-time data broadcasting based on dynamic adjustment of transmission rate according to claim 7, characterized in that: In step (3), an adaptive algorithm or a feedback control algorithm is used to dynamically adjust the multicast sending rate Rm and the unicast sending rate Ru according to the real-time network bandwidth and the processing capability of the receiving end.

9. The method for real-time data broadcasting based on dynamic adjustment of transmission rate according to claim 7, characterized in that: In step (2), the unicast sending rate Ru does not exceed the maximum unicast bandwidth Bu, and does not exceed the multicast sending rate Rm.