A red-blue collaborative fountain code communication method and device based on rail transit system
By introducing the red-blue collaborative fountain code communication method in the rail transit system, the communication reliability and efficiency problems caused by the high packet loss rate in the traditional solution are solved, and efficient data transmission is achieved under unstable network conditions.
Patent Information
- Application Number
- CN202510997471.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-07-19
- Publication Date
- 2025-09-23
- Estimated Expiration
- 2045-07-19
AI Technical Summary
Traditional rail transit red-blue collaborative communication solutions have poor communication reliability, insufficient network resource utilization, and low data transmission efficiency in high packet loss environments.
The red-blue collaborative fountain code communication method is adopted. By obtaining the data transmission requirements and transmission effect curve, the coding parameters are determined, the data is divided into equal lengths, and the coded data packets are generated and sent through the red and blue network dual channels.
It achieves flexibility and robustness of data transmission, improves the reliability and efficiency of data transmission, and optimizes the use of network resources.
Smart Images

Figure CN120498604B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of network communications, and in particular to a red-blue collaborative fountain code communication method and device based on a rail transit system. Background Art
[0002] With the rapid development and widespread adoption of rail transit systems, data communications are becoming increasingly important. Rail transit, particularly subways and high-speed rail, relies on efficient and reliable data transmission systems to ensure operational safety, vehicle scheduling, and passenger service. This data communication needs to be not only fast but also extremely reliable to meet various operational and safety requirements.
[0003] In the traditional rail transit red-blue collaborative communication solution, the equipment connects two independent communication networks, the red network and the blue network, and uses a two-way synchronous communication method to transmit data packets to enhance communication reliability. However, the communication reliability of this type of solution is highly dependent on network conditions. When the packet loss rate of the red network and the blue network is high, the overall communication effect is significantly impaired. In addition, the two-way synchronous communication mode of the red and blue networks requires the high-speed network to slow down to match the low-speed network, resulting in insufficient utilization of data transmission capacity, and due to the large amount of data redundancy, the network resources are not used efficiently. Therefore, the current red-blue collaborative communication solution has weak resistance to packet loss during communication, large communication redundancy, and insufficient utilization of the relatively high-speed network transmission capacity when the two channels are asymmetric, resulting in low data transmission efficiency.
[0004] Therefore, there is an urgent need for a red-blue collaborative fountain code communication method and device based on a rail transit system. Summary of the Invention
[0005] The present application provides a red-blue collaborative fountain code communication method and device based on a rail transit system, which improves the efficiency of data transmission.
[0006] In a first aspect of the present application, a red-blue collaborative fountain code communication method based on a rail transit system is provided. The rail transit system includes a sending server and a receiving server. The method is applied to the sending server. The method includes: obtaining data transmission requirements and a transmission effect curve diagram, and determining data packet encoding parameters based on the data transmission requirements and the transmission effect curve diagram, the data packet encoding parameters including the number of data segment segments, robust soliton distribution parameters and data packet redundancy; performing equal-length segmentation on the data to be transmitted to obtain multiple original data segments, and numbering each of the original data segments in sequence to obtain a number corresponding to each of the original data segments; encoding the multiple original data segments based on the data packet encoding parameters to obtain multiple encoded data packets, wherein one encoded data packet includes one or more original data segments; and sending the encoded data packet to the receiving server through the red and blue network dual-path channel.
[0007] By employing the above technical solution, by obtaining a data transmission demand and transmission performance curve and determining packet encoding parameters based on these curves, data transmission efficiency can be maximized while ensuring data transmission reliability, meeting the real-time and reliability requirements of the rail transit system. Segmenting the data to be transmitted into equal-length segments and numbering them facilitates subsequent encoding and management of the data segments. Encoding the original data segments based on the packet encoding parameters to generate multiple encoded packets improves the fault tolerance and robustness of data transmission. Even if some encoded packets are lost or damaged during transmission, the original data can be recovered from the remaining encoded packets. Transmitting the encoded packets over the dual red-blue network channel fully utilizes the multiple communication links in the rail transit system, improving data concurrency and reliability, and avoiding data interruptions caused by congestion or failure of a single channel. This solution introduces fountain code technology, effectively addressing the shortcomings of traditional red-blue collaborative communication solutions, such as weak packet loss resistance and high communication redundancy. The use of fountain codes allows for more flexible data transmission at varying network rates, improving adaptability to high packet loss environments while reducing necessary data redundancy and optimizing network resource utilization. This approach not only improves the efficiency of data transmission, but also enhances robustness in the face of unstable network conditions, providing a more reliable and efficient solution for communications in rail transit systems.
[0008] Optionally, based on the data packet encoding parameters, multiple original data segments are encoded to obtain multiple encoded data packets, specifically including: determining the degree value corresponding to the target encoded data packet according to the robust soliton distribution parameters, the degree value represents the number of original data segments required to generate the target encoded data packet, and the target encoded data packet is any one of the multiple encoded data packets; according to the degree value, randomly and non-repetitively selecting target original data segments from the multiple original data segments, the number of the target original data segments is equal to the degree value; performing a bitwise exclusive OR operation on the target original data segments to obtain encoded content segments, and generating encoded generation segments based on the encoded content segments, the encoded generation segments including the numbers corresponding to each of the target original data segments before encoding; splicing the encoded content segments and the encoded generation segments to obtain the target encoded data packet.
[0009] By adopting the above technical solution and introducing robust soliton distribution parameters, the number of original data segments required to generate a coded data packet—that is, the degree of the coded data packet—can be flexibly controlled. Properly setting the degree balances data transmission efficiency and reliability. The larger the degree, the more original data information the coded data packet carries, and the more efficient data recovery is. By randomly selecting target original data segments for the XOR operation, the randomness and diversity of the coded data packet can be improved, enhancing the security and confidentiality of data transmission. The coded generation segment records the number of the original data segment used to generate the coded data packet, facilitating data recovery and restoration on the receiving server. By concatenating the coded content segment and the coded generation segment to generate a coded data packet, both the data content and the coded information can be sent together, simplifying the communication process and protocol.
[0010] Optionally, before the data to be transmitted is divided into equal lengths to obtain multiple original data fragments, and each of the original data fragments is numbered in sequence to obtain a number corresponding to each of the original data fragments, the method also includes: determining whether the length of the data to be transmitted is an integer multiple of the number of data fragments; if the length of the data to be transmitted is not an integer multiple of the number of data fragments, then adding preset bytes to the end of the data to be transmitted so that the length of the supplemented data to be transmitted is an integer multiple of the number of data fragments.
[0011] By adopting the above technical solution, by determining whether the length of the data to be transmitted is an integer multiple of the number of data segments, it is possible to detect whether data segmentation will produce incomplete data segments, affecting the efficiency of encoding and transmission. In the case of non-divisible lengths, by adding preset bytes to the end of the data to be transmitted, the length of the data to be transmitted can be padded to an integer multiple of the number of data segments, ensuring the integrity and consistency of the data segmentation. The method of adding preset bytes is simple and easy, does not cause substantial modifications to the original data, and does not introduce additional data overhead and transmission delays. The supplemented data to be transmitted can be directly divided into equal lengths and encoded without the need for special processing of the supplemented preset bytes, thereby reducing the complexity of encoding and transmission.
[0012] Optionally, the obtaining of data transmission requirements and transmission effect curves, and determining data packet encoding parameters based on the data transmission requirements and the transmission effect curves, specifically includes: sending a data transmission requirement inquiry request to an upper-layer application, the data transmission requirement inquiry request including a throughput requirement parameter, a delay requirement parameter, and a reliability requirement parameter; receiving data transmission requirement parameters fed back by the upper-layer application, the data transmission requirement parameters including an expected throughput threshold, an allowed delay threshold, and a target bit error rate threshold; and drawing, based on historical data transmission records, a graph with the robust soliton distribution parameters and the data packet redundancy as independent variables. A transmission effect curve diagram with throughput, delay and bit error rate as dependent variables; extracting key feature points from the transmission effect curve diagram, wherein the key feature points include a throughput inflection point, a delay inflection point and a bit error rate inflection point, comparing the expected throughput threshold, the allowable delay threshold and the target bit error rate threshold with their respective corresponding inflection points, and screening a set of feature points that meet the data transmission requirement parameters; based on the throughput feature points, delay feature points and bit error rate feature points in the feature point set, using a weighted regression method to obtain the number of data segment divisions, the robust soliton distribution parameters and the data packet redundancy.
[0013] By employing the above technical solution, by sending a data transmission requirement query to the upper-layer application, the upper-layer application's expectations and requirements for data transmission performance, including key metrics such as throughput, latency, and reliability, can be proactively obtained, providing a basis for subsequent coding parameter setting. Receiving the data transmission requirement parameters fed back by the upper-layer application accurately identifies the upper-layer application's performance requirements and quantifies the data transmission goals and constraints. Plotting a transmission performance curve based on historical data transmission records visually demonstrates data transmission performance under different coding parameter values, providing a reference for coding parameter optimization and adjustment. Extracting key feature points from the transmission performance curve and comparing them with the data transmission requirement parameters can identify the range of coding parameter values that meet the upper-layer application's requirements, narrowing the search space for parameter optimization. Using a weighted regression method, the optimal number of data segments, robust soliton distribution parameters, and packet redundancy are determined. This allows adaptive optimization and dynamic adjustment of coding parameters while balancing transmission efficiency and reliability while meeting data transmission requirements.
[0014] Optionally, the sending of the encoded data packets to the receiving end through the red and blue network dual-path channel specifically includes: obtaining the transmission rate of each channel in the red and blue network dual-path channel and the size of each encoded data packet; determining the number of encoded data packets that can be sent by each channel per unit time based on the transmission rate of each channel and the size of each encoded data packet; randomly dividing the encoded data packets into multiple batches, the number of encoded data packets in each batch being equal to the number of encoded data packets that can be sent in the red and blue network dual-path channel; determining a target batch, and randomly and evenly distributing the encoded data packets in the target batch to the red and blue network dual-path channel for sending, the target batch being any one of the multiple batches.
[0015] By employing the above technical solution, by obtaining the transmission rate and packet size of each channel in the red and blue network dual channel, the data transmission capacity and load of different channels can be accurately assessed, providing a basis for the scheduling and distribution of packet data. Based on the channel transmission rate and packet size, the number of packet data that can be sent per unit time on each channel can be calculated, allowing for a reasonable assessment of the channel's real-time transmission capacity. By randomly dividing the packet data into batches, with the number of packets in each batch equal to the transmittable number of the channel, the packet data can be evenly distributed across multiple channels, avoiding the problem of overloading a single channel while underutilizing other channels, thereby improving channel utilization and concurrent transmission capacity. Within each batch, the packet data are randomly and evenly distributed across the red and blue network dual channels for transmission. This ensures load balancing across the different channels, fully leveraging the advantages of multi-channel parallel transmission and improving data transmission efficiency and reliability. This random and even distribution also enhances data transmission's robustness against interference. Even if a transmission failure or adverse environment occurs on an individual channel, the overall data transmission of the batch will not be significantly impacted.
[0016] A second aspect of the present application provides a red-blue collaborative fountain code communication method based on a rail transit system, the rail transit system including a sending end server and a receiving end server, characterized in that the method is applied to the receiving end server, the method comprising: receiving a plurality of coded data packets sent by the sending end server through a red-blue network dual-channel, the coded data packets being executed by the sending end server to obtain a data transmission requirement and a transmission effect curve diagram, and determining data packet coding parameters according to the data transmission requirement and the transmission effect curve diagram, the data packet coding parameters including the number of data segment segments, a robust soliton distribution parameter, and data packet redundancy; dividing the data to be transmitted into equal length segments to obtain a plurality of original data segments, and numbering each of the original data segments in sequence to obtain a number corresponding to each of the original data segments; encoding the plurality of original data segments based on the data packet coding parameters to obtain a plurality of coded data packets; determining a coded data packet with a degree value of a preset value from the plurality of coded data packets; repeatedly performing the step of determining a coded data packet with a degree value of the preset value from the plurality of coded data packets until the degree value of each of the plurality of coded data packets is the preset value.
[0017] By adopting the above technical solution, the receiving server receives multiple coded data packets sent by the sending server through the red and blue network dual channels, which can make full use of the multiple communication links in the rail transit system, improve the concurrency and reliability of data reception, and avoid data reception interruption caused by congestion or failure of a single channel. By determining the coded data packets with a degree value of the preset value from the received coded data packets, the coded data packets carrying the least original data information can be screened out as the starting point for data recovery, reducing the computational complexity and resource overhead of data recovery. Repeat the steps of determining the coded data packets with a degree value of the preset value until the degree values of all coded data packets are the preset value, and the original data fragments can be gradually restored to achieve distributed incremental data recovery, thereby improving the efficiency and success rate of data recovery. The coded data packets with a degree value of the preset value carry the least original data information. By giving priority to these coded data packets, the linear correlation between the coded data packets can be eliminated to the maximum extent, accelerating the convergence speed of data recovery.
[0018] Optionally, determining a coding data packet whose degree value is a preset value from a plurality of coding data packets specifically includes: traversing the coding data packets to determine a first coding data packet and a first data segment, wherein the first coding data packet is a coding data packet whose degree value is the preset value among the plurality of coding data packets, and the first data segment is a coded content segment of the first coding data packet; traversing the coding data packets whose degree value is greater than the preset value among the plurality of coding data packets to determine a second coding data packet, wherein the coded content segment of the second coding packet includes the first data segment; performing a bitwise XOR operation on the first data segment and the second data segment to obtain a third data segment, wherein the second data segment is the coded content segment of the second coding data packet; deleting the first data segment from the coded content segment of the second coding data packet to obtain a new degree value of the second coding data packet; judging whether the new degree value is the preset value; if it is determined that the new degree value is the preset value, using the third data segment as the new first data segment.
[0019] By adopting the above technical solution, by traversing the coded data packets and determining the first coded data packet with a preset degree value and the corresponding first data fragment, the starting point and foundation for data recovery can be found, reducing the complexity of subsequent data recovery. By traversing the coded data packets with a degree value greater than the preset value and determining the second coded data packet containing the first data fragment, a correlation can be established between the coded data packets, and a coded data packet that can eliminate the first data fragment can be found, providing clues for data recovery. By performing a bitwise exclusive OR operation on the first data fragment and the second data fragment, the first data fragment can be eliminated, resulting in a new third data fragment, thereby reducing the degree value of the coded data packet and partially recovering the data. By deleting the first data fragment from the second coded data packet and determining whether the new degree value is the preset value, data fragments can be eliminated and the degree value can be reduced recursively until the degree values of all coded data packets are the preset value, completing data recovery. Using the third data fragment as the new first data fragment can dynamically update the basis and starting point for recovery during the data recovery process, improving the continuity and efficiency of data recovery.
[0020] Optionally, the step of repeatedly determining a coding data packet whose degree value is a preset value from a plurality of the coding data packets is performed until the degree value of each of the plurality of the coding data packets is the preset value, the method further includes: extracting the coding generation fragments in each of the coding data packets to obtain the arrangement order of each original data fragment; splicing each of the original data fragments according to the arrangement order to obtain the data to be transmitted; if the data to be transmitted includes preset bytes, deleting the preset bytes.
[0021] By adopting the above technical solution, after the degree of the encoded data packet is reduced and the data fragments are recovered, the coded generated fragments within each coded data packet are extracted to obtain the order of the original data fragments, providing a basis for the final splicing and restoration of the data. The recovered data fragments are spliced together according to the order of the original data fragments to obtain the complete data to be transmitted, achieving lossless data recovery and restoration. If preset bytes exist in the spliced and restored data to be transmitted, they are deleted. This eliminates the redundant information introduced during data transmission for data alignment and restores the original data content to be transmitted. Deleting the preset bytes is simple and efficient, without any substantial impact on the recovered data, ensuring the accuracy and completeness of data recovery. Recording the order of the original data fragments in the coded generated fragments simplifies the data recovery and splicing process, eliminating the need for additional signaling interaction and metadata transmission, and improving the efficiency and reliability of data transmission.
[0022] In a third aspect of the present application, a red-blue collaborative fountain code communication device based on a rail transit system is provided, which is a sending end server. The sending end server includes a coding parameter determination module, a data segmentation module, a data packet encoding module, and a data packet sending module, wherein: the coding parameter determination module is used to obtain data transmission requirements and a transmission effect curve diagram, and determine the data packet encoding parameters according to the data transmission requirements and the transmission effect curve diagram, and the data packet encoding parameters include the number of data segment segments, the robust soliton distribution parameter, and the data packet redundancy; the data segment segmentation module is used to divide the data to be transmitted into equal length segments to obtain multiple original data segments, and number each of the original data segments in sequence to obtain a number corresponding to each of the original data segments; the data packet encoding module is used to encode the multiple original data segments based on the data packet encoding parameters to obtain multiple encoded data packets, wherein one encoded data packet includes one or more original data segments; the data packet sending module is used to send the encoded data packet to the receiving end server through the red and blue network dual channel.
[0023] In a fourth aspect of the present application, a red-blue collaborative fountain code communication device based on a rail transit system is provided. The device is a receiving-end server, and the receiving-end server includes a data packet receiving module and a data packet decoding processing module, wherein: the data packet receiving module is used to receive multiple coded data packets sent by the sending-end server through a red-blue network dual-channel, and the coded data packets are executed by the sending-end server to obtain data transmission requirements and a transmission effect curve diagram, and determine data packet encoding parameters based on the data transmission requirements and the transmission effect curve diagram, wherein the data packet encoding parameters include the number of data segment segments, robust soliton distribution parameters, and data packet redundancy; the data to be transmitted is divided into equal lengths to obtain multiple original data segments, and each of the original data segments is numbered in sequence to obtain a number corresponding to each of the original data segments; based on the data packet encoding parameters, the multiple original data segments are encoded to obtain multiple coded data packets; the data packet decoding processing module is used to determine a coded data packet with a preset degree value from the multiple coded data packets; the data packet decoding processing module is further used to repeatedly perform the step of determining a coded data packet with a preset degree value from the multiple coded data packets until the degree value of each of the multiple coded data packets is the preset value.
[0024] In the fifth aspect of the present application, an electronic device is provided, including a processor, a memory, a user interface and a network interface, the memory is used to store instructions, the user interface and the network interface are both used to communicate with other devices, and the processor is used to execute the instructions stored in the memory so that the electronic device executes any one of the methods described above.
[0025] In a sixth aspect of the present application, a computer-readable storage medium is provided, wherein the computer-readable storage medium stores instructions, and when the instructions are executed, any one of the methods described above is executed.
[0026] In summary, one or more technical solutions provided in the embodiments of the present application have at least the following technical effects or advantages:
[0027] 1. This solution introduces fountain code encoding technology, effectively addressing the shortcomings of traditional red-blue collaborative communication solutions in terms of weak packet loss resistance and high communication redundancy. The use of fountain codes allows for more flexible adjustment of data transmission at varying network rates, improving adaptability to high packet loss environments while reducing necessary data redundancy and optimizing network resource utilization. This approach not only improves data transmission efficiency but also enhances robustness in unstable network conditions, providing a more reliable and efficient solution for rail transit system communications. BRIEF DESCRIPTION OF THE DRAWINGS
[0028] Figure 1 This is a flow chart of a red-blue collaborative fountain code communication method based on a rail transit system disclosed in an embodiment of the present application;
[0029] Figure 2 This is an example schematic diagram of a red-blue collaborative fountain code communication method based on a rail transit system disclosed in an embodiment of the present application;
[0030] Figure 3 This is another flowchart of a red-blue collaborative fountain code communication method based on a rail transit system disclosed in an embodiment of the present application;
[0031] Figure 4 This is another example schematic diagram of a red-blue collaborative fountain code communication method based on a rail transit system disclosed in an embodiment of the present application;
[0032] Figure 5 This is a module diagram of a red-blue collaborative fountain code communication device based on a rail transit system disclosed in an embodiment of the present application;
[0033] Figure 6 This is another module diagram of a red-blue collaborative fountain code communication device based on a rail transit system disclosed in an embodiment of the present application;
[0034] Figure 7 This is a structural diagram of an electronic device disclosed in an embodiment of the present application.
[0035] Explanation of the accompanying drawings: 501, encoding parameter determination module; 502, data segment segmentation module; 503, data packet encoding module; 504, data packet sending module; 601, data packet receiving module; 602, data packet decoding processing module; 700, electronic device; 701, processor; 702, communication bus; 703, user interface; 704, network interface; 705, memory. DETAILED DESCRIPTION
[0036] In order to enable those skilled in the art to better understand the technical solutions in this specification, the technical solutions in the embodiments of this specification will be clearly and completely described below in conjunction with the drawings in the embodiments of this specification. Obviously, the described embodiments are only part of the embodiments of this application, not all of the embodiments.
[0037] In the description of the embodiments of this application, words such as "for example" or "for instance" are used to indicate examples, illustrations, or explanations. Any embodiment or design described as "for example" or "for instance" in the embodiments of this application should not be construed as being preferred or advantageous over other embodiments or designs. Rather, the use of words such as "for example" or "for instance" is intended to present the relevant concepts in a concrete manner.
[0038] In the description of the embodiments of the present application, the term "multiple" means two or more. For example, multiple systems refer to two or more systems, and multiple screen terminals refer to two or more screen terminals. In addition, the terms "first" and "second" are used for descriptive purposes only and are not to be understood as indicating or implying relative importance or implicitly indicating the indicated technical features. Thus, the features defined as "first" and "second" may explicitly or implicitly include one or more of the features. The terms "including", "comprising", "having" and their variations all mean "including but not limited to", unless otherwise specifically emphasized.
[0039] This application provides a red-blue collaborative fountain code communication method based on a rail transit system, the rail transit system includes a sending end server and a receiving end server, referring to Figure 1 , Figure 1 This is a flow chart illustrating a rail transit system-based red-blue collaborative fountain code communication method provided by an embodiment of the present application. This method is applied to a sending server, which is a server executing a rail transit system-based red-blue collaborative fountain code communication program. The sending server encodes the data to be transmitted and sends it to the receiving server. The sending and receiving servers communicate and exchange data via a dual-channel communication channel, the red network and the blue network.
[0040] The method includes steps S101 to S104, which are as follows:
[0041] Step S101: obtaining data transmission requirements and a transmission effect curve, and determining data packet encoding parameters according to the data transmission requirements and the transmission effect curve, wherein the data packet encoding parameters include the number of data segment divisions, robust soliton distribution parameters, and data packet redundancy.
[0042] In step S101, a data transmission demand and a transmission effect curve are obtained, and data packet encoding parameters are determined according to the data transmission demand and the transmission effect curve, specifically including: sending a data transmission demand inquiry request to an upper layer application, wherein the data transmission demand inquiry request includes a throughput demand parameter, a delay demand parameter, and a reliability demand parameter; receiving data transmission demand parameters fed back by the upper layer application, wherein the data transmission demand parameters include an expected throughput threshold, an allowable delay threshold, and a target bit error rate threshold; drawing a data packet encoding parameter with the robust soliton distribution parameter and the data packet redundancy as independent variables according to historical data transmission records; A transmission effect curve diagram with throughput, delay and bit error rate as dependent variables is drawn; key feature points are extracted from the transmission effect curve diagram, where the key feature points include a throughput inflection point, a delay inflection point and a bit error rate inflection point, and the expected throughput threshold, the allowable delay threshold and the target bit error rate threshold are compared with their respective corresponding inflection points to screen a set of feature points that meet the data transmission requirement parameters; based on the throughput feature points, delay feature points and bit error rate feature points in the feature point set, a weighted regression method is used to obtain the number of data segmentation, the robust soliton distribution parameters and the data packet redundancy.
[0043] Specifically, the sending server sends a data transmission requirement query to the upper-layer application. This request includes throughput requirement parameters, delay requirement parameters, and reliability requirement parameters. These parameters describe the upper-layer application's expectations for data transmission performance, such as the desired data rate, maximum allowable transmission delay, and acceptable error rate. After receiving the query from the sending server, the upper-layer application responds with corresponding data transmission requirement parameters based on its own service characteristics and requirements, including the desired throughput threshold, allowable delay threshold, and target bit error rate threshold. For example, a real-time video transmission application may require high throughput and low latency, while a file transfer application may prioritize transmission reliability and have relatively low latency requirements. After receiving the data transmission requirement parameters from the upper-layer application, the sending server plots a transmission performance curve based on historical data transmission records. This curve uses the robust soliton distribution parameter and packet redundancy as independent variables, and throughput, delay, and bit error rate as dependent variables, visually demonstrating the data transmission performance under different coding parameter values. For example, when the robust soliton distribution parameters and redundancy are high, transmission reliability improves, but throughput may decrease and latency may increase. The sending server analyzes the transmission performance curve and extracts key characteristic points, including the throughput inflection point, the latency inflection point, and the bit error rate inflection point. These inflection points represent sudden changes in transmission performance. For example, the throughput inflection point indicates that further increasing the coding parameters will not significantly improve throughput, while the latency inflection point indicates that further increasing the coding parameters will significantly increase latency. The sending server compares the expected throughput threshold, allowed latency threshold, and target bit error rate threshold obtained in step 2 with the corresponding inflection points to select a set of characteristic points that meet the data transmission requirements. For example, if the expected throughput threshold is greater than the throughput corresponding to the throughput inflection point, the current coding parameters cannot meet the throughput requirements and require further adjustment. Based on the selected characteristic point set, the sending server uses weighted regression to determine the optimal number of data segments, robust soliton distribution parameters, and packet redundancy. Weighted regression can comprehensively consider the importance of different performance indicators. For example, throughput can be given a higher weight to meet the core requirements of upper-layer applications.
[0044] For example, suppose the upper-layer application reports data transmission requirements: a desired throughput threshold of 100 Mbps, an acceptable latency threshold of 50 ms, and a target bit error rate threshold of 1e-6. The sending server plots the transmission performance curve and finds that the throughput inflection point is 80 Mbps, the latency inflection point is 30 ms, and the bit error rate inflection point is 1e-5. Clearly, the current throughput and bit error rate do not meet the requirements, while latency performance has some margin. Therefore, the sending server needs to sacrifice latency performance in exchange for higher throughput while maintaining the bit error rate. Ultimately, through weighted regression analysis, the sending server determines the optimal number of data segments to be 1000, the robust soliton distribution parameter to be 50, and the packet redundancy to be 10%.
[0045] Step S102: dividing the data to be transmitted into equal length segments to obtain a plurality of original data segments, and numbering each of the original data segments in sequence to obtain a number corresponding to each of the original data segments.
[0046] Before step S102, the method further includes: determining whether the length of the data to be transmitted is an integer multiple of the number of data segment segments; if the length of the data to be transmitted is not an integer multiple of the number of data segment segments, then adding preset bytes to the end of the data to be transmitted so that the length of the supplemented data to be transmitted is an integer multiple of the number of data segment segments.
[0047] In step S102, the sending server first determines how many equal-length data segments the data to be transmitted needs to be divided into based on the data segment segmentation number parameter. For example, if the data segment segmentation number is 1000, the data to be transmitted needs to be divided into 1000 equal-length segments.
[0048] The sending server then reads the data to be transmitted and segments it into byte streams. This segmentation ensures that each data segment is of equal length, meaning that each segment contains the same number of bytes. To ensure this, the sending server checks whether the total number of bytes in the data to be transmitted is evenly divisible by the number of segments. If not, the sending server adds a certain number of special padding bytes to the end of the data to be transmitted until the total number of bytes is evenly divisible by the number of segments.
[0049] After the data is segmented, the sending server assigns a unique number to each data segment. The numbers are usually incremented by natural numbers, starting at 1. These numbers are used to identify and restore the order of the data segments during subsequent encoding and decoding.
[0050] In the formula symbols introduced in the embodiments of the present application, [x] means x is rounded up, and a⊕b means a and b are bitwise exclusive ORed. Figure 2 As shown, Figure 2 This describes the process of the sending server splitting the data to be transmitted into equal lengths. Data is the data to be transmitted. The number of bytes that need to be added at the end when splitting Data is calculated: △L=K*[L / K]-L, where L is the length of the data to be transmitted, K is the number of data fragments, and [L / K] means L / K is rounded up. △L bytes are added after Data, and the value △L is cyclically stored in these bytes from the last byte to obtain the padded data Data'. Data' is divided into K equal parts to obtain multiple original data fragments. The number of original data fragments is the number of data fragments. The length of each original data fragment is recorded as l, where l=(L+△L) / K; these fragments are recorded as Data i , i=0, 1, K-1.
[0051] For example, suppose the data to be transmitted is a 2.5MB file, and the number of data segments is set to 1000. The sending server first calculates the length of each data segment: 2.5MB / 1000 = 2.5KB. However, 2.5MB = 2560KB, which is not evenly divisible by 1000. Therefore, the sending server adds 512 bytes of padding to the end of the file, bringing the file size to 2560.5KB, which can be divided into 1000 equal-length 2.5KB segments.
[0052] After segmentation, the sending server will number the 1000 data fragments, with the first fragment numbered 1 and the last fragment numbered 1000. These numbers correspond to each data fragment and are used to record the position and order of the fragments in the original data.
[0053] After segmentation and numbering, the sending server receives a set of numbered original data segments, which serve as the input for the fountain code to generate encoded data packets. The original data segment numbers are also recorded in the encoded data packets, allowing the receiving server to reassemble and recover the original data based on the numbers.
[0054] Step S103: encoding the plurality of original data segments based on the data packet encoding parameters to obtain a plurality of encoded data packets, wherein one encoded data packet includes one or more original data segments.
[0055] In step S103, based on the data packet encoding parameters, multiple original data segments are encoded to obtain multiple encoded data packets, specifically including: determining a degree value corresponding to a target encoded data packet according to the robust soliton distribution parameters, the degree value indicating the number of original data segments required to generate the target encoded data packet, the target encoded data packet being any one of the multiple encoded data packets; randomly and non-repetitively selecting target original data segments from the multiple original data segments according to the degree value, the number of the target original data segments being equal to the degree value; performing a bitwise exclusive OR operation on the target original data segments to obtain encoded content segments, and generating encoded generation segments according to the encoded content segments, the encoded generation segments including the numbers corresponding to the respective target original data segments before encoding; and splicing the encoded content segments and the encoded generation segments to obtain the target encoded data packet.
[0056] Specifically, the sending server first determines a degree value for each encoded data packet to be generated based on the parameters of the robust soliton distribution. The degree value represents the number of original data segments that need to be selected and combined to generate the encoded data packet. The robust soliton distribution is a specially designed probability distribution that controls the distribution characteristics of the degree values in the generated encoded data packets, resulting in different generation probabilities for packets of different degree values. Through appropriate parameter settings, the robust soliton distribution can ensure a certain degree of diversity and balance in the generated encoded data packets, with both low-degree packets to reduce decoding complexity and high-degree packets to improve data recovery capabilities.
[0057] After determining the target encoded data packet's degree, the sending server randomly selects an equal number of raw data segments from the set of raw data segments based on the degree as the target raw data segments. This selection process is random and non-repetitive, meaning each raw data segment has an equal probability of being selected, and previously selected segments will not be repeatedly selected. This random selection method ensures a high degree of randomness and dispersion in the generated encoded data packets, preventing the generation of highly correlated encoded data packets and improving encoding effectiveness.
[0058] After selecting the target original data segments, the sending server performs a bitwise exclusive OR operation on these segments to generate an encoded content segment. In addition to generating the encoded content segment, the sending server also generates a generated encoding segment based on the target original data segments involved in the bitwise exclusive OR operation. The generated encoding segment is essentially a list of segment numbers, containing the numbers of each original data segment used to generate the current encoded content segment. This number list serves as a decoding basis. The receiving server uses the information in the generated encoding segment to determine how to perform the bitwise exclusive OR operation to recover the original data. Finally, the sending server concatenates the encoded content segment and the generated encoding segment to form a complete encoded data packet. A typical encoded data packet structure is as follows: |packet header|generated encoding segment|encoded content segment|; the packet header contains necessary control information such as the packet sequence number and original data length; the generated encoding segment records the numbers of the original data segments involved in the bitwise exclusive OR operation; and the encoded content segment is the result of the bitwise exclusive OR operation. Through these steps, the sending server can iteratively generate a certain number of encoded data packets. The number of packets generated can be calculated based on the redundancy parameter and the number of original data segments. The total number of packets to be transmitted, N, is [K*(1+γ)], where K is the number of data segments and γ is the packet redundancy. The higher the redundancy, the more coded packets are generated, increasing the reliability of data transmission, but also reducing transmission efficiency. Therefore, a trade-off between reliability and efficiency is necessary to select an appropriate packet redundancy. Coded packets are generated using the following method:
[0059] a) Randomly generate the degree value D of the current coded data packet according to the robust soliton degree distribution j .
[0060] b) In the collection {Data i |i=0, 1, ..., K-1} choose D with medium probability j Different elements, recorded as Data j(k) , k=1, 2, ..., D j .
[0061] c) Calculate the jth coded content fragment Code' j =Data j(1) ⊕Data j(2) ⊕...Data j(k) , where Data j(1) ⊕Data j(2) Represents Data j(1) With Data j(2) Bitwise exclusive OR.
[0062] Repeat the above steps a to c until the number of generated encoded data packets reaches N.
[0063] Step S104: Send the encoded data packet to the receiving server via the red and blue network dual channel.
[0064] In step S104, the coded data packets are sent to the receiving end via the red-blue network dual-channel, specifically including: obtaining the transmission rate of each channel in the red-blue network dual-channel and the size of each coded data packet; determining the number of coded data packets that can be sent by each channel per unit time according to the transmission rate of each channel and the size of each coded data packet; randomly dividing the coded data packets into multiple batches, the number of coded data packets in each batch being equal to the number of coded data packets that can be sent in the red-blue network dual-channel; determining a target batch, and randomly and evenly distributing the coded data packets in the target batch to the red-blue network dual-channel for sending, the target batch being any one of the multiple batches.
[0065] Specifically, the sending server obtains the transmission rate of each channel in the red and blue network dual-channel and the size of the encoded data packets to be sent. The transmission rate can be measured in real time using network bandwidth detection tools such as iperf and netperf; the size of the encoded data packets can be directly calculated during the data encoding phase. Then, based on the transmission rate and encoded data packet size of each channel, the sending server calculates the number of encoded data packets that can be sent per channel per unit time. Assuming the transmission rate of the red network channel is 100Mbps, the transmission rate of the blue network channel is 50Mbps, and the average encoded data packet size is 1KB, the red network channel can send approximately 100,000 encoded data packets in 1 second, and the blue network channel can send approximately 50,000 encoded data packets. Next, the sending server randomly divides the encoded data packets to be sent into batches, with the number of encoded data packets in each batch equal to the transmittable number of the red and blue network dual-channel. In the above example, if the total number of coded data packets to be sent is 450,000, they can be randomly divided into 3 batches, with 150,000 coded data packets in each batch, which is equal to the number of coded data packets that can be sent within 1 second on the red and blue network dual channel.
[0066] Finally, the sending server determines a target batch and randomly and evenly distributes the coded packets within that batch across the red and blue network channels for transmission. "Random and even" means that each coded packet has an equal probability of being assigned to either the red or blue network, and that each channel receives a roughly equal number of coded packets. For example, in the aforementioned batch of 150,000 coded packets, the sending server can use a random number generator function to randomly generate a number between 0 and 1 for each coded packet. If this number is greater than or equal to 0.5, the coded packet is assigned to the red network channel for transmission; otherwise, it is assigned to the blue network channel for transmission. This ensures that the coded packets are distributed randomly and evenly across the two channels.
[0067] On the other hand, the present application also provides a red-blue collaborative fountain code communication method based on a rail transit system, which is applied to a receiving end server, such as Figure 3 As shown, the method includes steps S301 to S303, which are as follows:
[0068] Step S301: Receive multiple coded data packets sent by the transmitting end server through the red and blue network dual-channel, and the coded data packets are obtained by the transmitting end server executing the above steps S101 to S104.
[0069] In step S301, the receiving server monitors both the red and blue network channels, waiting to receive encoded data packets. The red and blue dual-channel communication mechanism is a redundant communication mechanism that improves data transmission reliability and fault tolerance by transmitting data simultaneously over two independent networks. Even if one network fails or becomes congested, data can continue to be transmitted over the other, ensuring communication continuity.
[0070] When a receiving server detects the arrival of a new data packet on the red or blue network channel, it immediately receives and verifies the packet. Verification includes the packet's integrity and correctness. After successfully receiving and verifying the encoded packet, the receiving server stores the packet in a dedicated receive buffer. The receive buffer is typically a first-in-first-out (FIFO) queue structure that temporarily stores received encoded packets and maintains their order of receipt. Because fountain codes generate unordered packets, the receiving server does not need to strictly receive and store them in the order they were sent. Instead, it can store them in the order they were actually received.
[0071] The receiving server will continue to receive coded packets until certain reception conditions are met. This reception condition can be a certain number of coded packets received, or the total size of the received coded packets reaches a certain threshold. This threshold is usually related to the original data size and redundancy parameters. The receiving server can use these parameters to estimate the number of coded packets to receive and determine the appropriate reception conditions.
[0072] During the reception process, the receiving server also collects real-time statistics on the quantity and quality of received encoded packets, such as reception rate and packet loss rate. This statistical information can be used to assess current network conditions and transmission quality, and fed back to the sending server as necessary to adjust the transmission strategy or retransmit lost packets. Furthermore, this statistical information can serve as a basis for triggering decoding. When a sufficient number or quality of encoded packets are received, decoding and data recovery can begin.
[0073] Step S302: Determine a coded data packet with a degree value of a preset value from the plurality of coded data packets.
[0074] In step S302, a coding data packet with a degree value of a preset value is determined from the multiple coding data packets, specifically including: traversing the coding data packets to determine a first coding data packet and a first data segment, wherein the first coding data packet is a coding data packet with a degree value of the preset value among the multiple coding data packets, and the first data segment is a coded content segment of the first coding data packet; traversing the coding data packets with a degree value greater than the preset value among the multiple coding data packets to determine a second coding data packet, wherein the coded content segment of the second coding packet includes the first data segment; performing a bitwise exclusive OR operation on the first data segment and the second data segment to obtain a third data segment, wherein the second data segment is the coded content segment of the second coding data packet; deleting the first data segment from the coded content segment of the second coding data packet to obtain a new degree value of the second coding data packet; judging whether the new degree value is the preset value; if it is determined that the new degree value is the preset value, using the third data segment as the new first data segment.
[0075] Specifically, the receiving server first iterates through all encoded packets in the receive buffer, searching for packets with a preset degree value. In this embodiment, the preset value is 1. A degree value of 1 indicates that the encoded packet is directly generated from a single original data segment, without undergoing a bitwise exclusive-or operation with other segments. Packets with a degree value of 1 are very simple to decode, as their encoded content is identical to the original data segment, requiring no computation.
[0076] Assume that the receiving server finds an encoded data packet with a degree value of 1, marks it as the first encoded data packet, and extracts its encoded content segment as the first data segment. This first data segment is actually a raw data segment and is the starting point and basis for decoding.
[0077] Next, the receiving server continues to iterate through the remaining encoded packets with a value greater than 1. For each high-value packet, the receiving server checks its encoded fragment to determine whether it contains the original fragment number corresponding to the first data fragment. If so, it indicates that the high-value packet is a bitwise XOR of the first data fragment and some other original fragments, and can be used for further decoding.
[0078] Assume that a data packet containing the height value of the first data segment is found and marked as the second encoded data packet. The receiving server extracts the encoded content segment of the second encoded data packet as the second data segment. Then, a bitwise exclusive OR operation is performed on the first and second data segments to obtain a new data segment, which is marked as the third data segment. This bitwise exclusive OR operation essentially removes the information of the first data segment from the second data segment, resulting in a new segment containing the original data segment.
[0079] After the bitwise XOR operation is complete, the receiving server updates the information of the second encoded data packet. Specifically, the original segment number corresponding to the first data segment is deleted from the encoded segment of the second encoded data packet, indicating that this segment has been processed. At the same time, the degree value of the second encoded data packet is reduced by 1 to obtain a new degree value. This new degree value reflects the number of undecoded original data segments still contained in the second encoded data packet after the bitwise XOR operation.
[0080] The receiving server determines whether the freshness value of the second encoded data packet is 1. If it is 1, this means that the third data segment is actually an original data segment and can be used directly as the decoding result. Therefore, the receiving server uses the third data segment as the new first data segment for subsequent decoding.
[0081] The receiving server repeats the above process of bitwise XOR and degree reduction until all the coded data packets are decoded and all the original data fragments are obtained. In this process, each new original data fragment is decoded and used to perform bitwise XOR or other operations on the coded data packets with different values, gradually reducing their degree values until the degree values of all data packets are 1.
[0082] For example, suppose the receiving server receives 5 encoded data packets, one of which has a degree value of 1 and an encoded content segment of A; the other four have degree values of 2, 3, 4, and 2, and their encoded content segments are A⊕B, A⊕C⊕D, A⊕B⊕C⊕E, and B⊕C, respectively.
[0083] First, the receiving server directly decodes the packet with a degree of 1 to obtain the original fragment A. Then, it traverses the remaining encoded packets and finds that the first packet with a degree of 2 contains fragment A. It then bitwise XORs the contents of this packet with A to obtain the original fragment B, and reduces the degree of this packet to 1. Next, it bitwise XORs A and B with packets with other degrees of 1, respectively, to obtain the original fragments C and D, and continues to reduce the degree of these packets. Finally, when the degree of all packets reaches 1, decoding is complete, and the original data fragments A, B, C, D, and E are restored.
[0084] Step S303: Repeat the step of determining a coded data packet having a degree value equal to the preset value from the plurality of coded data packets until the degree value of each of the plurality of coded data packets is the preset value.
[0085] In step S303, the receiving server enters a cyclic decoding process. In each cycle, the receiving server rescans all encoded data packets, searching for data packets with a degree value of 1. Because the degree values of some encoded data packets may have been updated during the previous decoding cycle, each scan may reveal a new data packet with a degree value of 1. Once a new data packet with a degree value of 1 is found, it indicates that a new original data segment can be decoded. The receiving server extracts this data segment and saves it as a decoded segment.
[0086] The receiving server then takes this newly decoded original fragment and performs a bitwise XOR operation on all the encoded packets with the same height value. This bitwise XOR operation removes the original fragment's information from these packets with the same height value, thereby reducing their degree. The specific bitwise XOR and degree update process is similar to the one described above: the encoded packet containing the original fragment is found, its content is bitwise XORed with the original fragment to obtain a new encoded content fragment, and the degree value of the encoded packet is reduced by 1.
[0087] The receiving server iterates over all the height-valued encoded packets, performing the aforementioned bitwise XOR and degree-value update operations. During this process, some originally high-degree-valued encoded packets may have their degrees reduced to 1 due to multiple bitwise XOR operations, becoming newly decodable packets. The receiving server promptly decodes these new degree-valued 1 packets to obtain more original data fragments.
[0088] The decoding process continues in this cycle, each time using the newly decoded original fragment to update other encoded packets, until the degree values of all encoded packets drop to 1. When all degree values are 1, it means that all encoded packets have been decoded and the original data fragments have been fully recovered. At this point, the receiving server has completed decoding the fountain code encoded packet and successfully restored the complete original data.
[0089] For example, if Figure 4 As shown in the figure, the decoding process based on the red-blue collaborative fountain code communication method is shown, in which the coded data packets with a degree value of a preset value (such as 1) are gradually determined, and the degree values of the coded data packets are gradually reduced by bitwise XOR operations on other coded data packets until the degree values of all coded data packets reach the preset value. Figure 4 To explain:
[0090] Initial state:
[0091] Code0: The value is 1, containing Data0.
[0092] Code1: The degree value is 2, including Data0⊕Data1.
[0093] Code2: The degree value is 2, which contains Data1⊕Data2.
[0094] The first step of decoding:
[0095] Code0 is identified as a coded data packet with a degree value of 1, containing Data0.
[0096] Use Data0 to perform bitwise XOR operation on other coded data packets with a degree greater than 1:
[0097] Execute Code0⊕(Data0⊕Data1) on Code1 to obtain Data1, and update the degree value of Code1 to 1.
[0098] Execute Code0⊕(Data1⊕Data2) on Code2 and update Code2 to Data1⊕Data2.
[0099] The second step is decoding:
[0100] Code1 is identified as a coded data packet with a degree value of 1, containing Data1.
[0101] Perform a bitwise XOR operation on Code2 using Data1:
[0102] Execute Data1⊕(Data1⊕Data2) on Code2 to obtain Data2, and update the degree value of Code2 to 1.
[0103] Final state:
[0104] The degree value of all coded data packets (Code0, Code1, Code2) is 1, and each contains the original data fragments Data0, Data1, and Data2.
[0105] After step S203, the method further includes: extracting the coded generated fragments in each of the coded data packets to obtain the arrangement order of each of the original data fragments; splicing each of the original data fragments according to the arrangement order to obtain the data to be transmitted; if the data to be transmitted includes preset bytes, deleting the preset bytes.
[0106] Specifically, the receiving server iterates over all encoded packets and extracts their generated code segments. A generated code segment is a list of original data segment numbers, reflecting the selection and combination of original data segments used to generate the encoded packet. By analyzing the generated code segments of all encoded packets, the receiving server can infer the order in which the original data segments were arranged.
[0107] For example, if the code-generated segments of a coded data packet are [1, 3, 5], this packet is generated by bitwise XORing the original data segments 1, 3, and 5. The code-generated segments of another coded data packet are [2, 4], which means this packet is generated by bitwise XORing the original data segments 2 and 4. By combining the code-generated segments of all coded data packets, the receiving server can obtain a complete sequence of original data segment numbers, such as [1, 2, 3, 4, 5].
[0108] After determining the order of the original data fragments, the receiving server will stitch the decoded original data fragments together in this order. The stitching process connects the data content of each fragment in order to form a complete data block. This data block is the original data to be transmitted, and after encoding and transmission, it is restored.
[0109] It's important to note that when splitting data, the sending server may add some pre-set bytes to the end of the original data to pad the data length to an integer multiple of the number of splits. These pre-set bytes are not part of the original data, so after the splicing is complete, the receiving server checks whether the restored data contains the pre-set bytes. If so, it removes them to ensure that the restored data is completely consistent with the original data.
[0110] Reference Figure 5The present application also provides a red-blue collaborative fountain code communication device based on a rail transit system. The device is a sending end server, which includes a coding parameter determination module 501, a data segmentation module 502, a data packet encoding module 503, and a data packet sending module 504. The coding parameter determination module 501 is used to obtain a data transmission requirement and a transmission effect curve diagram, and determine the data packet encoding parameters based on the data transmission requirement and the transmission effect curve diagram. The data packet encoding parameters include the number of data segment segments, the robust soliton distribution parameter, and the data packet redundancy. The data segmentation module 502 is used to divide the data to be transmitted into equal length segments to obtain multiple original data segments, and number each of the original data segments in sequence to obtain a number corresponding to each original data segment. The data packet encoding module 503 is used to encode the multiple original data segments based on the data packet encoding parameters to obtain multiple encoded data packets, wherein one encoded data packet includes one or more original data segments. The data packet sending module 504 is used to send the encoded data packet to the receiving end server via the red-blue network dual channel.
[0111] In one possible implementation, the data packet encoding module 503 encodes the plurality of original data segments based on the data packet encoding parameters to obtain a plurality of encoded data packets, specifically comprising: the data packet encoding module 503 determines a degree value corresponding to a target encoded data packet according to the robust soliton distribution parameters, where the degree value represents the number of original data segments required to generate the target encoded data packet, and the target encoded data packet is any one of the plurality of encoded data packets; the data packet encoding module 503 randomly and non-repetitively selects target original data segments from the plurality of original data segments according to the degree value, and the number of the target original data segments is equal to the degree value; the data packet encoding module 503 performs a bitwise exclusive OR operation on the target original data segments to obtain encoded content segments, and generates an encoded generation segment based on the encoded content segments, where the encoded generation segment includes the numbers corresponding to each of the target original data segments before encoding; the data packet encoding module 503 splices the encoded content segments and the encoded generation segment to obtain the target encoded data packet.
[0112] In a possible embodiment, before the data segmentation module 502 divides the data to be transmitted into equal lengths to obtain multiple original data segments, and numbers each of the original data segments in sequence to obtain the numbers corresponding to each of the original data segments, it also includes: the data segmentation module 502 determines whether the length of the data to be transmitted is an integer multiple of the number of data segment segments; if the length of the data to be transmitted is not an integer multiple of the number of data segment segments, the data segmentation module 502 supplements the preset bytes at the end of the data to be transmitted so that the length of the supplemented data to be transmitted is an integer multiple of the number of data segment segments.
[0113] In a possible implementation, the coding parameter determination module 501 obtains data transmission requirements and a transmission effect curve diagram, and determines data packet coding parameters based on the data transmission requirements and the transmission effect curve diagram, specifically including: the coding parameter determination module 501 sends a data transmission requirement inquiry request to an upper-layer application, wherein the data transmission requirement inquiry request includes a throughput requirement parameter, a delay requirement parameter, and a reliability requirement parameter; the coding parameter determination module 501 receives data transmission requirement parameters fed back by the upper-layer application, wherein the data transmission requirement parameters include an expected throughput threshold, an allowed delay threshold, and a target bit error rate threshold; the coding parameter determination module 501 draws a data packet encoding parameter based on historical data transmission records. The coding parameter determination module 501 extracts key feature points from the transmission effect curve, where the key feature points include a throughput inflection point, a delay inflection point, and a bit error rate inflection point, and compares the expected throughput threshold, the allowable delay threshold, and the target bit error rate threshold with their respective corresponding inflection points to screen a feature point set that meets the data transmission requirement parameters; the coding parameter determination module 501 uses a weighted regression method to obtain the number of data segment divisions, the robust soliton distribution parameters, and the packet redundancy based on the throughput feature points, delay feature points, and bit error rate feature points in the feature point set.
[0114] In one possible implementation, the data packet sending module 504 sends the coded data packet to the receiving end through the red and blue network dual-path channel, specifically including: the data packet sending module 504 obtains the transmission rate of each channel in the red and blue network dual-path channel and the size of each coded data packet; the data packet sending module 504 determines the number of coded data packets that can be sent by each channel per unit time based on the transmission rate of each channel and the size of each coded data packet; the data packet sending module 504 randomly divides the coded data packet into multiple batches, and the number of coded data packets in each batch is equal to the number of coded data packets that can be sent in the red and blue network dual-path channel; the data packet sending module 504 determines a target batch, and randomly and evenly distributes the coded data packets in the target batch to the red and blue network dual-path channel for transmission, and the target batch is any one of the multiple batches.
[0115] Reference Figure 6 The present application also provides a red-blue collaborative fountain code communication device based on a rail transit system, which is a receiving end server. The receiving end server includes a data packet receiving module 601 and a data packet decoding processing module 602, wherein: the data packet receiving module 601 is used to receive multiple coded data packets sent by the sending end server through the red and blue network dual-channel. The coded data packets are executed by the sending end server to obtain data transmission requirements and transmission effect curves, and determine data packet coding parameters according to the data transmission requirements and the transmission effect curves. The data packet coding parameters include the number of data segment divisions, robust soliton distribution parameters, and data packet redundancy; the transmitted data are processed by the transmitting end server. The data packet is divided into equal lengths to obtain multiple original data segments, and each of the original data segments is numbered in sequence to obtain a number corresponding to each of the original data segments; based on the data packet encoding parameters, the multiple original data segments are encoded to obtain multiple encoded data packets; the data packet decoding processing module 602 is used to determine the encoded data packet whose degree value is a preset value from the multiple encoded data packets; the data packet decoding processing module 602 is also used to repeatedly execute the step of determining the encoded data packet whose degree value is a preset value from the multiple encoded data packets until the degree value of each of the multiple encoded data packets is the preset value.
[0116] In one possible implementation, the data packet decoding processing module 602 determines, from the plurality of the encoded data packets, an encoded data packet having a degree value of a preset value, specifically including: the data packet decoding processing module 602 traverses the encoded data packets to determine a first encoded data packet and a first data segment, wherein the first encoded data packet is an encoded data packet having a degree value of the preset value among the plurality of the encoded data packets, and the first data segment is an encoded content segment of the first encoded data packet; the data packet decoding processing module 602 traverses the encoded data packets having a degree value greater than the preset value among the plurality of the encoded data packets to determine a second encoded data packet, wherein the encoded content segment of the second encoded data packet includes the first data segment; the data packet decoding processing module 602 performs a bitwise exclusive OR operation on the first data segment and the second data segment to obtain a third data segment, wherein the second data segment is an encoded content segment of the second encoded data packet; the data packet decoding processing module 602 deletes the first data segment from the encoded content segment of the second encoded data packet to obtain a new degree value of the second encoded data packet; the data packet decoding processing module 602 determines whether the new degree value is the preset value; if the data packet decoding processing module 602 determines that the new degree value is the preset value, the data packet decoding processing module 602 uses the third data segment as the new first data segment.
[0117] In one possible embodiment, the data packet decoding processing module 602 repeatedly performs the step of determining a coded data packet whose degree value is a preset value from a plurality of the coded data packets until the degree value of each of the plurality of the coded data packets is the preset value, and further includes: the data packet decoding processing module 602 extracts the coded generated fragments in each of the coded data packets to obtain the arrangement order of each original data fragment; according to the arrangement order, splices each of the original data fragments to obtain the data to be transmitted; if the data to be transmitted includes a preset byte, the data packet decoding processing module 602 deletes the preset byte.
[0118] It should be noted that the above embodiments provide devices that implement their functions using only the division of the above functional modules as examples. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. In addition, the device and method embodiments provided in the above embodiments are based on the same concept. The specific implementation process is detailed in the method embodiment and will not be repeated here.
[0119] This application also provides an electronic device. Figure 7 , Figure 7Schematic diagram of the structure of an electronic device provided by an embodiment of the present application. The electronic device 700 may include: at least one processor 701 , at least one network interface 704 , a user interface 703 , a memory 705 , and at least one communication bus 702 .
[0120] The communication bus 702 is used to implement the connection and communication between these components.
[0121] The user interface 703 may include a display screen (Display) and a camera (Camera). Optionally, the user interface 703 may also include a standard wired interface and a wireless interface.
[0122] The network interface 704 may optionally include a standard wired interface or a wireless interface (such as a Wi-Fi interface).
[0123] The processor 701 may include one or more processing cores. Using various interfaces and circuits, the processor 701 connects to various components within the server. It executes instructions, programs, code sets, or instruction sets stored in the memory 705, as well as accesses data stored in the memory 705, to perform various server functions and process data. Optionally, the processor 701 may be implemented using at least one of the following hardware forms: a digital signal processing (DSP), a field-programmable gate array (FPGA), or a programmable logic array (PLA). The processor 701 may integrate one or a combination of a central processing unit (CPU), a graphics processing unit (GPU), and a modem. The CPU primarily processes the operating system, user interface, and application programs; the GPU is responsible for rendering and drawing content displayed on the display screen; and the modem handles wireless communications. It is understood that the modem may also be implemented independently of the processor 701 and implemented on a separate chip.
[0124] Among them, the memory 705 may include a random access memory (RAM) or a read-only memory (Read-Only Memory). Optionally, the memory 705 includes a non-transitory computer-readable storage medium. The memory 705 can be used to store instructions, programs, codes, code sets or instruction sets. The memory 705 may include a program storage area and a data storage area, wherein the program storage area may store instructions for implementing an operating system, instructions for at least one function (such as a touch function, a sound playback function, an image playback function, etc.), instructions for implementing the above-mentioned various method embodiments, etc.; the data storage area may store data involved in the above-mentioned various method embodiments, etc. The memory 705 may also optionally be at least one storage device located away from the aforementioned processor 701. Refer to Figure 7 , the memory 705 as a computer storage medium may include an operating system, a network communication module, a user interface module, and an application program of a red-blue collaborative fountain code communication method based on a rail transit system.
[0125] exist Figure 7 In the electronic device 700 shown, the user interface 703 is mainly used to provide an input interface for the user and obtain the data input by the user; and the processor 701 can be used to call the application program stored in the memory 705 for a red-blue collaborative fountain code communication method based on a rail transit system. When executed by one or more processors 701, the electronic device 700 executes one or more of the methods described in the above embodiments. It should be noted that for the aforementioned method embodiments, for the sake of simplicity of description, they are all expressed as a series of action combinations, but those skilled in the art should know that this application is not limited to the order of the actions described, because according to this application, certain steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should also know that the embodiments described in the specification are all preferred embodiments, and the actions and modules involved are not necessarily required for this application.
[0126] The present application further provides a computer-readable storage medium storing instructions, which, when executed by one or more processors 701 , enable the electronic device 700 to perform one or more of the methods described in the above embodiments.
[0127] In the above embodiments, the description of each embodiment has its own focus. For parts that are not described in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.
[0128] In the several embodiments provided in this application, it should be understood that the disclosed devices can be implemented in other ways. For example, the device embodiments described above are only schematic, such as the division of units, which is only a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the mutual coupling or direct coupling or communication connection shown or discussed can be through some service interfaces, and the indirect coupling or communication connection of devices or units can be electrical or other forms.
[0129] Units described as separate components may or may not be physically separate, and components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected to achieve the purpose of this embodiment according to actual needs.
[0130] In addition, the functional units in the various embodiments of the present application may be integrated into a single processing unit, or each unit may exist physically separately, or two or more units may be integrated into a single unit. The aforementioned integrated units may be implemented in the form of hardware or software functional units.
[0131] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable memory. Based on this understanding, the technical solution of this application, or the portion that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a memory and includes several instructions for causing a computer device (which can be a personal computer, server, or network device, etc.) to execute all or part of the steps of the various embodiments of the method of this application. The aforementioned memory includes various media that can store program code, such as USB flash drives, mobile hard drives, magnetic disks, or optical disks.
[0132] The foregoing is merely an exemplary embodiment of the present disclosure and is not intended to limit the scope of the present disclosure. In other words, any equivalent variations and modifications made in accordance with the teachings of the present disclosure are still within the scope of the present disclosure. Those skilled in the art will readily conceive of other embodiments of the present disclosure after considering the disclosure and the practical implications thereof.
[0133] This application is intended to cover any variations, uses, or adaptations of the present disclosure that follow the general principles of the present disclosure and include common knowledge or customary techniques in the art not described herein. The description and examples are to be considered as exemplary only, and the scope and spirit of the present disclosure are to be defined by the claims.
Claims
1. A red-blue collaborative fountain code communication method based on a rail transit system, wherein the rail transit system includes a sending end server and a receiving end server, characterized in that: The method is applied to a sending server, and includes: Obtaining a data transmission requirement and a transmission effect curve graph, and determining data packet encoding parameters according to the data transmission requirement and the transmission effect curve graph, the data packet encoding parameters including the number of data segment segments, a robust soliton distribution parameter, and data packet redundancy; Splitting the data to be transmitted into equal lengths to obtain a plurality of original data segments, and numbering each of the original data segments in sequence to obtain a number corresponding to each of the original data segments; Encoding the plurality of original data segments based on the data packet encoding parameters to obtain a plurality of encoded data packets, wherein one encoded data packet includes one or more original data segments; Send the encoded data packet to the receiving end server via the red and blue network dual channel; The obtaining of the data transmission requirement and the transmission effect curve graph, and determining the data packet encoding parameters according to the data transmission requirement and the transmission effect curve graph, specifically includes: Sending a data transmission requirement inquiry request to an upper layer application, wherein the data transmission requirement inquiry request includes a throughput requirement parameter, a delay requirement parameter, and a reliability requirement parameter; receiving data transmission requirement parameters fed back by the upper layer application, wherein the data transmission requirement parameters include an expected throughput threshold, an allowed delay threshold, and a target bit error rate threshold; Based on historical data transmission records, a transmission effect curve is drawn with the robust soliton distribution parameter and the data packet redundancy as independent variables and the throughput, delay and bit error rate as dependent variables; Extracting key feature points from the transmission effect curve graph, the key feature points including a throughput inflection point, a delay inflection point, and a bit error rate inflection point, comparing the expected throughput threshold, the allowable delay threshold, and the target bit error rate threshold with their respective corresponding inflection points, and screening a set of feature points that meet the data transmission requirement parameters; According to the throughput characteristic point, the delay characteristic point and the bit error rate characteristic point in the characteristic point set, a weighted regression method is adopted to obtain the number of data segment divisions, the robust soliton distribution parameters and the data packet redundancy.
2. The method according to claim 1, characterized in that The encoding of the plurality of original data segments based on the data packet encoding parameters to obtain a plurality of encoded data packets specifically includes: Determining a degree value corresponding to a target coded data packet according to the robust soliton distribution parameter, wherein the degree value represents the number of original data segments required to generate the target coded data packet, and the target coded data packet is any one of the plurality of coded data packets; According to the degree value, randomly and non-repeatedly select target original data segments from the plurality of original data segments, where the number of the target original data segments is equal to the degree value; Performing a bitwise exclusive OR operation on the target original data segments to obtain coded content segments, and generating coded generation segments based on the coded content segments, wherein the coded generation segments include numbers corresponding to the target original data segments before encoding; The encoded content segment and the encoded generated segment are spliced together to obtain the target encoded data packet.
3. The method according to claim 1, characterized in that Before dividing the data to be transmitted into equal length segments to obtain a plurality of original data segments, and numbering the original data segments in sequence to obtain the corresponding numbers of the original data segments, the method further includes: Determining whether the length of the data to be transmitted is an integer multiple of the number of data segments; If the length of the data to be transmitted is not an integer multiple of the number of data segments, a preset byte is added to the end of the data to be transmitted so that the length of the supplemented data to be transmitted is an integer multiple of the number of data segments.
4. The method according to claim 1, wherein The step of sending the encoded data packet to the receiving end through the red and blue network dual channel specifically includes: Obtaining the transmission rate of each channel in the red and blue network dual-channel and the size of each encoded data packet; Determining the number of coded data packets that can be sent by each channel per unit time according to the transmission rate of each channel and the size of each coded data packet; Randomly dividing the coded data packets into a plurality of batches, wherein the number of coded data packets in each batch is equal to the number of coded data packets that can be transmitted in the red and blue network dual-channel; A target batch is determined, and the coded data packets in the target batch are randomly and evenly distributed to the red and blue network dual-path channels for transmission, wherein the target batch is any one of the multiple batches.
5. A red-blue collaborative fountain code communication method based on a rail transit system, wherein the rail transit system includes a sending end server and a receiving end server, characterized in that: The method is applied to a receiving-end server, and includes: receiving, via a red and blue network dual-channel, a plurality of encoded data packets sent by the sending end server, the encoded data packets being obtained by the sending end server executing the method according to claim 1; Determine, from the plurality of coded data packets, a coded data packet whose degree value is a preset value; The step of determining a coding data packet whose degree value is the preset value from the plurality of coding data packets is repeatedly performed until the degree value of each of the plurality of coding data packets is the preset value.
6. The method according to claim 5, characterized in that The step of determining the coded data packet with the degree value being the preset value from the plurality of coded data packets specifically includes: Traversing the encoded data packets, determining a first encoded data packet and a first data segment, wherein the first encoded data packet is an encoded data packet having a value among the plurality of encoded data packets being a preset value, and the first data segment is an encoded content segment of the first encoded data packet; Traversing the plurality of encoded data packets, the encoded data packets whose degree values are greater than the preset value, and determining a second encoded data packet, wherein the encoded content segment of the second encoded data packet includes the first data segment; performing a bitwise exclusive OR operation on the first data segment and the second data segment to obtain a third data segment, where the second data segment is an encoded content segment of the second encoded data packet; Deleting the first data segment from the encoded content segment of the second encoded data packet to obtain a newness value of the second encoded data packet; Determining whether the newness value is the preset value; If it is determined that the newness value is the preset value, the third data segment is used as a new first data segment.
7. The method according to claim 5, characterized in that After repeatedly performing the step of determining a coded data packet having a degree value of a preset value from the plurality of coded data packets until the degree value of each of the plurality of coded data packets reaches the preset value, the method further includes: Extracting the coded generated segments from each of the coded data packets to obtain the arrangement order of each of the original data segments; splicing the original data fragments according to the arrangement order to obtain the data to be transmitted; If the data to be transmitted includes a preset byte, the preset byte is deleted.
8. An electronic device, characterized in that: The electronic device (700) comprises a processor (701), a memory (705), a user interface (703) and a network interface (704), wherein the memory (705) is used to store instructions, the user interface (703) and the network interface (704) are used to communicate with other devices, and the processor (701) is used to execute the instructions stored in the memory (705) so that the electronic device (700) executes the method according to claim 1 or claim 5.
9. A computer-readable storage medium, characterized in that The computer-readable storage medium stores instructions, and when the instructions are executed, the method according to claim 1 or claim 5 is performed.
Citation Information
Patent Citations
Channel joint coding system and method applied to NAVDAT digital communication system
CN118138196A