CN113098661A - Fountain code-based file transmission method under satellite channel - Google Patents
Fountain code-based file transmission method under satellite channel Download PDFInfo
- Publication number
- CN113098661A CN113098661A CN202110326956.0A CN202110326956A CN113098661A CN 113098661 A CN113098661 A CN 113098661A CN 202110326956 A CN202110326956 A CN 202110326956A CN 113098661 A CN113098661 A CN 113098661A
- Authority
- CN
- China
- Prior art keywords
- file
- decoding
- data block
- symbol
- matrix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0014—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the source coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Error Detection And Correction (AREA)
Abstract
The invention discloses a fountain code-based file transmission method under a satellite channel, and relates to a file transmission method under the satellite channel. The invention aims to solve the problem that the existing satellite communication channel has the characteristics of link time prolonging, frequent channel interruption and the like, so that the data transmission error rate is high. The process is as follows: firstly, dividing a file and transmitting the file into an encoder; secondly, encoding the file and outputting an encoding symbol; thirdly, sending the data by using a UDP protocol; fourthly, judging whether the receiving is finished or not; if not, executing the fifth step; if so, executing the step six; fifthly, judging whether the received data block numbers are equal; if so, continuing to receive; if not, judging whether the number of the data packets in the data block is more than K; if yes, transmitting the data packet into a decoder for decoding, and outputting a decoding symbol; if not, ending; sixthly, transmitting the coded data block coded by the last block into a decoder for decoding, and outputting a decoding symbol; and seventhly, writing the decoding symbols into a file and checking. The invention is used in the field of file transmission.
Description
Technical Field
The invention relates to a file transmission method under a satellite channel.
Background
With the progress and development of society and science and technology, communication network technology is rapidly developed and popularized, and plays an increasingly important role in daily life of people, and a traditional ground mobile communication network has a relatively fixed network topology structure, stable and reliable transmission and good service quality. But at the same time, the defects of the traditional ground network are also very significant, and the traditional ground network not only needs to rely on related infrastructure, but also has limited communication coverage and is limited in many scenes. Under the circumstances, the broadband satellite communication technology is developed, and the broadband satellite communication technology not only can transmit multimedia services at high speed, but also has the remarkable advantages of wide coverage, strong deployability, integrated network provision and low communication cost. However, with the continuous popularization of broadband satellite communication technology, the increasing data throughput is faced, which provides a new challenge to the transmission efficiency of the satellite communication system. And because the satellite communication channel has the characteristics of long link time, frequent channel interruption and the like, the traditional data transmission method of ARQ and FEC is difficult to ensure the reliability and timeliness of the service.
The history of fountain codes dates back to 1998 for the earliest, and John Byers and Michael Luby had the idea of digital fountain, and fountain codes were proposed to ensure the reliability of large amounts of data during broadcast. Then, the Luby designs a first practical fountain code, namely LT code, according to the concept of digital fountain, and then the Amin Shokrollahi provides Raptor code in an abstraction expanding mode, so that the Luby is an important theoretical and practical improvement on the LT code and is also a first fountain code for encoding and decoding in linear time. However, the fountain code adopts a design method of randomly generating encoding symbols, so that the problem of decoding time jitter is generated at a decoding end, which may cause overflow of the decoding end buffer when the decoding end buffer is insufficient, so that some data packets are directly lost, thereby affecting the normal file transmission process.
Disclosure of Invention
The invention aims to solve the problem that the existing satellite communication channel has the characteristics of link time prolonging, frequent channel interruption and the like, so that the data transmission error rate is high, and provides a fountain code-based file transmission method under the satellite channel.
A file transmission method under a satellite channel based on fountain codes is carried out according to the following steps:
a sending end:
reading a file, dividing the read file, and transmitting the divided file into an encoder in a data stream mode;
step two, judging whether the length of a file transmitted into an encoder is equal to the length T' of an encoded data block;
if so, encoding the file by using a fountain code mode, and outputting an encoding symbol;
if not, performing '0' complementing operation on the part, which is less than 1K, of the last encoded data packet in the file to enable the data length of the last encoded data packet in the file to reach 1K, obtaining the number of the encoded data packets contained in the file by using an upward rounding method according to K ═ ceil (T '/T' _ K), encoding the file by using a fountain code mode, and outputting an encoding symbol;
where K is the number of encoded packets contained in an encoded data block, T 'is a block length, and T' _ K is a constant number equal to 1024.
Step three, sending the data packet in the coded data block output in the step two by using a UDP protocol;
receiving end:
step four, receiving the coded data block by using a UDP protocol, and judging whether the receiving is finished; if not, executing the fifth step; if yes, executing the sixth step;
judging whether the coded data block numbers received by the UDP protocol are equal or not;
if yes, using UDP protocol to continue receiving coded data block;
if not, judging whether the number of data packets in the encoded data block received by using the UDP protocol is greater than K; if so, transmitting the data packet in the encoded data block received by using the UDP protocol into a decoder for decoding, and outputting a decoding symbol; if not, ending;
step six, the coded data block after the last block of codes is transmitted into a decoder for decoding, and a decoding symbol is output;
and step seven, writing the decoded symbols into a file, and checking all the decoded symbols.
The invention has the beneficial effects that:
1. the invention can use lower redundancy to resist the problem of packet loss. Under the condition that the packet loss rate of a channel is 10%, the requirement on the reliability of file transmission can be met by using the redundancy of 0.25, under the condition that the packet loss rate is 1%, the requirement on the reliability of file transmission can be met by using the redundancy of 0.1, under the condition that the packet loss rate of the channel is 0.1%, the requirement on the reliability can be met by using the redundancy of 0.05, and the error rate of data transmission is reduced.
2. The invention can ensure the speed of file transmission and adapt to the transmission rate (9.6 Kbps-30 Mbps) of a satellite channel, ensures the reliability of file transmission while ensuring high-speed transmission, and reduces the error rate of data transmission.
The invention has the beneficial effects that:
1. the invention can use lower redundancy to resist the problem of packet loss. Under the condition that the packet loss rate of a channel is 10% and the delay of the channel is 500ms, the requirement on the reliability of file transmission can be met by using the redundancy of 0.25, under the condition that the packet loss rate is 1%, the requirement on the reliability of file transmission can be met by using the redundancy of 0.1, under the condition that the packet loss rate of the channel is 0.1%, the requirement on the reliability can be met by using the redundancy of 0.05, and the error rate of data transmission is reduced.
2. The invention can ensure the speed of file transmission and adapt to the transmission rate (9.6 Kbps-30 Mbps) of a satellite channel, ensures the reliability of file transmission while ensuring high-speed transmission, and reduces the error rate of data transmission. Since the fountain code is a forward error correction type code, a feedback channel is not required, which is helpful for improving the channel utilization rate.
3. The invention aims at the problem of file transmission under a satellite channel, can adapt to the transmission requirements of various files, and can transmit files such as text files, pictures, videos and the like under the system. And the method can be generally used under different platforms, Windows systems and Linux systems, and has portability.
The problem of high data transmission error rate caused by the fact that a satellite communication channel has the characteristics of link time prolonging, frequent channel interruption and the like can be solved, and files can be transmitted efficiently and reliably.
Drawings
FIG. 1 is a flow chart of a transmitting end of the present invention;
FIG. 2 is a flow chart of a receiving end according to the present invention;
FIG. 3 is a graph showing the comparison between the decoding performance of the R10 Raptor code and the Raptor Q code according to the present invention;
FIG. 4 is a statistical graph of the decoding time of 4070 source blocks according to the present invention;
fig. 5 is a diagram of a precoding decoding matrix.
Detailed Description
In a first embodiment, the present embodiment is described with reference to fig. 1 and fig. 2, and a method for transmitting a file under a satellite channel based on fountain codes in the present embodiment is performed according to the following steps:
a sending end:
reading a file, dividing the read file, and transmitting the divided file into an encoder in a data stream mode;
step two, judging whether the length of a file transmitted into an encoder is equal to the length T' of an encoded data block;
if so, encoding the file by using a fountain code mode, and outputting an encoding symbol;
if not, performing '0' complementing operation on the part, which is less than 1K, of the last encoded data packet in the file to enable the data length of the last encoded data packet in the file to reach 1K, obtaining the number of the encoded data packets contained in the file by using an upward rounding method according to K ═ ceil (T '/T' _ K), encoding the file by using a fountain code mode, and outputting an encoding symbol;
where K is the number of encoded packets contained in an encoded data block, T 'is a block length (100K), and T' _ K is a constant equal to 1024 (1K).
The block length T is 100K, one data packet is 1K, and the block length T is equal to 100 data packets;
the length of each to-be-coded data packet (to-be-coded symbol) is 1K, and for the part which is less than 1K at last, the '0' complementing operation is carried out, so that the data length reaches 1K;
after the preparation of the coding is completed, the coder carries out coding, the channel coding used by us is a systematic Raptor code coding method, the design of a coding program is carried out according to a coding algorithm specified by RFC6330 standard, the length of the supporting information ranges from 1 to 56403, and 2 can be generated at most24The complexity of the Raptor code algorithm is O (KLn (1/epsilon)) which is a linear function related to K.
The encoding of the fountain code has different definitions of blocks and packets, one encoding block comprises a plurality of encoding packets, and one encoding takes the blocks as units to generate a plurality of packets;
and step two, the file divided in the step one is transmitted into the encoder in a data stream mode, after the file is divided into 100K data streams in the step one, a file transmitting function of the encoder is directly called, and a temporary cache address stored in the file is transmitted.
Step three, sending the data packet in the coded data block output in the step two by using a UDP protocol;
receiving end:
step four, receiving the coded data block by using a UDP protocol, and judging whether the receiving is finished; if not, executing the fifth step; if yes, executing the sixth step;
judging whether the coded data block numbers received by the UDP protocol are equal or not;
if yes, using UDP protocol to continue receiving coded data block;
if not, judging whether the number of data packets in the encoded data block received by using the UDP protocol is greater than K; if so, transmitting the data packet in the encoded data block received by using the UDP protocol into a decoder for decoding, and outputting a decoding symbol; if not, ending;
the decoder calls a decoding function to transmit data of one packet each time the decoder receives the data packet, a UDP receiving buffer at a decoding end needs to be set to be larger, the buffer length is at least 100T, and when the UDP protocol is used for receiving the data quickly, enough operation time is reserved for the decoder.
Step six, the coded data block after the last block of codes is transmitted into a decoder for decoding, and a decoding symbol is output;
and step seven, writing the decoded symbols into a file, and checking all the decoded symbols.
Since the file transmission requirement must be accurate, after one file is transmitted and the decoded data is written into the memory after the decoding is completed, the check is needed to determine whether the two files before and after transmission are completely consistent.
The second embodiment is as follows: the first embodiment is different from the first embodiment in that the file is read in the first step, the read file is divided, and the divided file is transmitted to the encoder in a data stream manner; the specific process is as follows:
after the storage position of a file to be transmitted is obtained, the file is read in a binary data stream mode, and the read file is divided by adopting a coding data block length T' (100K);
if the file is larger than or equal to one coding data block length T ' (100K), dividing the file according to the coding data block length T ' (100K), transmitting the divided file into an encoder, and directly transmitting data which does not meet the coding data block length T ' (100K) after division into the encoder;
if the file is smaller than one coded data block length T' (100K), the file is directly transmitted to the encoder.
Reading the file in the first step, dividing the file, and reading the file in a binary data stream mode after obtaining the storage position of the file to be transmitted. As the fountain code adopts a block coding mode, blocks with different sizes can also influence the performance of coding and decoding, 100K is adopted as a block size, if a file is larger than 100K, the file is divided according to 100K, data which do not meet the size of 100K at last can be directly transmitted, and corresponding processing can be carried out in subsequent steps, and for the file which is smaller than 100K, the file can be directly read according to a binary data mode.
Other steps and parameters are the same as those in the first embodiment.
The third concrete implementation mode: the difference between the second embodiment and the first or second embodiment is that in the second step, the file is encoded by using fountain codes, and encoding symbols are output;
the specific process is as follows:
the file is encoded by using a fountain code mode, and the encoding process is divided into two parts: a precoding section and an LT coding section.
Other steps and parameters are the same as those in the first or second embodiment.
The fourth concrete implementation mode: the difference between this embodiment and one of the first to third embodiments is that the specific process of the precoding part is as follows:
adding (S + H) all-zero symbols before the coded data block t to form a precoded input symbol D ═ Z1×(S+H),t]T;
Wherein T is transposition, Z1×(S+H)An all-zero matrix of order 1 × (S + H); t is an encoded data block; t ═ t0,t1,…,tK-1],t0,t1,…,tK-1To encode the data packet; s represents the number of Low Density Parity Check (LDPC) encoded data packets in the precoding process, S can be obtained by K looking up a data table attached in standard RFC6330, H represents the number of High Density Parity Check (HDPC) encoded data packets in the precoding process, and H is also obtained by K looking up a table;
multiplying the precoded input symbol D by the inverse matrix of the coding matrix a to obtain a precoded symbol C, as shown in the following equation:
C=A-1D
wherein the precoded symbol C ═ C0,c1,…cL-1]T,c0,c1,…cL-1The total number of data packets output for the L precodes in the precoded symbols, that is, L is K + S + H; and K is the number of the coded data packets.
The coding matrix a can be constructed from K according to the data table attached to standard RFC 6330.
Other steps and parameters are the same as those in one of the first to third embodiments.
The fifth concrete implementation mode: the difference between this embodiment and one of the first to fourth embodiments is that the LT encoding part specifically processes:
LT encoding of precoded symbols C:
encoding the precoded symbols C with the LT coding matrix GLT(1,2...N)Multiplying to generate fountain code Raptor code symbol E, namely coded code data block, as shown in the following formula:
E=GLT(1,2...N)C
wherein G isLT(1,2...N)Is a matrix of order NxL, where N > K; n is the number of the coding packets after LT coding is carried out on the pre-coding symbols C, namely the number of the coding packets of the fountain codes Raptor; e comprises K coded data packets and N-K redundant packets;
fountain code Raptor coding symbol E ═ E0,e1,…eN-1]T;
LT encoding matrix GLT(1,2...N)K can be constructed by looking up a data table attached in the standard RFC 6330;
adding a packet header to a data packet in the encoded data block, wherein the content of the packet header comprises: the total length of the packet header (4 bytes), the block number (4 bytes), the packet number (4 bytes), the block data length (4 bytes), the packet data length (4 bytes), the check bits (four bytes are "e", "n", "o", "p", respectively), the flag bit (4 bytes), and other information is 28 bytes.
Other steps and parameters are the same as in one of the first to fourth embodiments.
The sixth specific implementation mode: the difference between this embodiment and one of the first to fifth embodiments is that, in the third step, the data packet in the encoded data block output in the second step is sent using UDP; the specific process is as follows:
the UDP protocol is a connectionless protocol, which means that when a transmitting end and a receiving end use the UDP protocol as a transport layer protocol, when the transmitting end needs to transmit data, connection with the receiving end is not required to be established in advance, and feedback whether the receiving end receives is not required, so that overhead and time delay of the transmitting and receiving ends are reduced, and one-to-one, one-to-many, many-to-one, and many-to-many communication modes can be supported. This is why the Raptor coding in step three is used to ensure the accuracy and reliability of the file transmission.
The method comprises the steps of establishing a socket at a sending end, then carrying out binding operation, binding the socket with a computer IP address and a computer IP port number, monitoring a service request at the computer IP port, receiving a file to be transmitted, blocking the file before the receiving end sends the request, and sending the file after the receiving end sends the request.
Meanwhile, in order to adapt to different channel environments, when the UDP protocol is used for transmission, in order to prevent buffer overflow at a receiving end and a relay node, the data transmission rate must be controlled, and especially, in the case of a poor channel environment, sufficient forwarding time is set aside for the relay node, so that packet loss caused by buffer overflow of the relay node is reduced as much as possible.
Other steps and parameters are the same as those in one of the first to fifth embodiments.
The seventh embodiment: the difference between this embodiment and the first to the sixth embodiment is that, in the fourth step, the coded data block is received by using the UDP protocol, and whether the reception is finished is determined; if not, executing the fifth step; if yes, executing the sixth step; the specific process is as follows:
the method comprises the steps of establishing a socket at a receiving end, then selecting a binding operation, binding the socket with a computer IP address and a computer IP port number, monitoring a service request at the computer IP port, sending the request by the receiving end, making a response and transmitting a file by the sending end after receiving the request sent by the receiving end, closing the socket of the sending end after the sending end finishes data transmission, and releasing a memory of the sending end and occupied computer port resources.
Other steps and parameters are the same as those in one of the first to sixth embodiments.
The specific implementation mode is eight: the difference between this embodiment and one of the first to seventh embodiments is that, in the fifth step, the data packet in the encoded data block received by using the UDP protocol is sent to a decoder for decoding, and a decoded symbol is output; the specific process is as follows:
and the accumulated data packet reaches a certain condition to start decoding. The decoding start condition includes two conditions, the first is after detecting the header of the packet, if the block numbers of two adjacent packets change, the decoding operation can be performed to decode the data in the last block, and the second is the last block, when the UDP protocol cannot receive a new data packet, the decoding function is called to decode the last block.
Decoding the coded data block received by using the UDP protocol, wherein the decoding process is divided into two parts: a precoding decoding section and an LT decoding section;
a precoding decoding section:
assuming that a decoding end receives N 'coded data packets to form a data block E' to be decoded, adding (S + H) all-zero symbols before E 'to combine a precoded and decoded input symbol D' ═ Z1×(S+H),E']T;
Wherein T is transposition; z1×(S+H)An all-zero matrix of 1 x (S + H), wherein S represents the number of Low Density Parity Check (LDPC) encoded data packets in the precoding process, and S can be obtained by K looking up a data table attached to standard RFC6330, H represents the number of High Density Parity Check (HDPC) encoded data packets in the precoding process, and H is also obtained by K looking up the table; e' is a data block to be decoded, E ═ E0,e1,…,eN’-1]T,e0,e1,…,eN’-1The decoding end receives N' coded data packets; n' is the number of coded data packets received by the decoding end after coding, K<N'≤N;
During encoding, each data packet is added with an index for determining the data packet, so that a receiving end can know which encoded packet is received;
constructing a transformation matrix G corresponding to E 'according to the N' coded data packet serial numbers received by the decoding endLT(1,2...N')、GLDPC(1,2...S)、GHalf(1,2...H);
Setting an S-order identity matrix IsAnd H order identity matrix IH;
Based on a permutation matrix GLT(1,2...N')、GLDPC(1,2...S)、GHalf(1,2...H)、IsAnd IHAnd are combined into a precoding coding matrix A'M×L;
Wherein, M ═ N' + S + H, L ═ K + S + H;
m is an intermediate variable;
matrix GLT(1,2...N')、GLDPC(1,2...S)、GHalf(1,2...H)It can be obtained by looking up the data table attached in the standard RFC6330 by N';
most often, A'M×LThe inverse operation is not possible, so the intermediate symbol C ═ C is decoded0,c1,…cL-1]TThen, the solution is performed by a gaussian elimination method, as shown in the following formula:
solving and decoding an actual code intermediate symbol C' by a Gaussian elimination method;
if the intermediate symbol C' is solved, the intermediate symbol decoding is successful, otherwise, the intermediate symbol decoding is failed;
if the decoding of the intermediate symbol fails, the number of the data packets received at this time is proved to be too small to meet the decoding requirement, and at this time, the decoding end reports an error, the decoding fails, and more encoding symbols need to be sent;
an LT decoding part:
and performing LT decoding on the successfully decoded intermediate symbols, and outputting decoded symbols (recovering all coded data symbols).
Because the decoding receiving end receives enough number of coding symbols to successfully decode all the symbols, if the number of the symbols lost in the transmission process is too much, the data lost in one source block is too much, although the decoding process is triggered, the normal decoding process cannot be carried out, and the decoding process can be directly finished because the file transmission requires the transmission to be accurate. Such an abnormal situation may occur due to a sudden abnormal change in the channel environment, or due to buffer overflow at the relay or receiving end of the transmission, the former may be improved by adding redundancy in the case of a poor channel environment, and the latter may be avoided by controlling the transmission speed.
Other steps and parameters are the same as those in one of the first to seventh embodiments.
The specific implementation method nine: the difference between this embodiment and the first to eighth embodiments is that the actual code middle symbol C' is solved by gaussian elimination, and the expression is:
D′=A′M×LC′。
other steps and parameters are the same as those in one to eight of the embodiments.
The detailed implementation mode is ten: this embodiment is different from one of the first to ninth embodiments in that LT decoding is performed on the successfully decoded intermediate symbols, and decoded symbols are output (all encoded data symbols are recovered);
the expression is as follows:
T=GLT(1,2...K)C′
in the formula, GLT(1,2...K)Is a K L matrix, which is obtained by looking up the data table attached in standard RFC 6330.
Other steps and parameters are the same as those in one of the first to ninth embodiments.
The concrete implementation mode eleven: this embodiment is different from the first to tenth embodiments in that the permutation matrix G is based onLT(1,2...N')、GLDPC(1,2...S)、GHalf(1,2...H)、IsAnd IHAnd are combined into a precoding coding matrix A'M×L(ii) a The specific process is as follows:
A'M×Lthe first S row of (A) is composed of an S x K order matrix GLDPC(1,2...S)S order unit matrix IsAnd a matrix Z of S x H order 0;
the middle H rows are formed by H (K + S) order matrix GHalf(1,2...H)And H order identity matrix IHComposition is carried out;
the last N 'rows are formed by an N' x M order matrix GLT(1,2...N')And (4) forming. As shown in fig. 5.
Other steps and parameters are the same as in one of the first to tenth embodiments.
The specific implementation mode twelve: the difference between this embodiment and the first to the eleventh embodiments is that, in the seventh step, the decoded decoding symbols are written into a file, and all decoded decoding symbols are checked; the specific process is as follows:
and writing the decoded decoding symbols into a file, and performing md5 code check on all decoded decoding symbols.
Other steps and parameters are the same as those in one of the first to eleventh embodiments.
The following examples were used to demonstrate the beneficial effects of the present invention:
fig. 3 shows a comparison of decoding performance of R10 Raptor code (RFC5053 standard) and Raptor q code (RFC6330 standard), and it can be seen that, firstly, the decoding performance of Raptor code is greatly improved compared with LT code, and compared with LT code, Raptor code can realize successful decoding when decoding overhead is small. For the difference between the Raptor codes of the system, it can be seen that when K encoding packets are received, the decoding effect is not ideal under any condition; when the decoding overhead, namely overhead, is less than 0.03, the effect of the R10 Raptor code is slightly less than that of the Raptor Q code, but the decoding effect is not ideal; when the overhead is greater than 0.03, the decoding success rate of the RaptorQ code is higher than that of the R10 Raptor code; when the overhead is greater than 0.1, the decoding can be successfully completed by using the Raptor Q code, and the decoding success rate is not one hundred percent by using the R10 Raptor code. By combining the above situations, it can be found that in the erasure channel with an erasure probability of 0.1, the decoding efficiency of the Raptor q code is stronger than that of the R10 Raptor code, and as the decoding overhead increases, the gain of the Raptor q code decoding efficiency is also greater than that of the R10 Raptor code.
We therefore choose to use RaptorQ codes in a file transfer system.
The satellite channel has the characteristics of long delay and high error code, and in order to simulate the channel environment under different conditions, the delay of 500ms and the error code conditions of 0.1 percent, 1 percent and 10 percent are explained;
table 1 shows the time consumption for transmitting files under different bandwidths, wherein 1M files are transmitted under a bandwidth of 10Kbps, the transmission time is 819min when the packet loss rate is calculated as 0.1%, and the transmission speed is controlled at the transmitting end, the delay time of each packet is 850ms, and the delay time of each source block is 89.25 s. The 8Mbps, 30Mbps and 155Mbps transfer 98M files, the first two need to be delayed, each source block needs to be delayed for 1270ms and 340ms, and 155Mbps needs no delay, because the maximum transfer speed of the whole system is 100Mbps, and the bandwidth exceeding the speed does not need to control the transmission speed at the transmitting end.
TABLE 1 time consumption for file transmission and control delay at the sender under different bandwidths
Table 2 shows the number of source blocks divided by the sending end, the time consumed in the decoding process, and the average decoding time of each source block when the files with different sizes are transmitted under the same condition, and the conclusion can be drawn when there is an average consumed time in the column: under the system, although the time consumption of the files with different sizes is different, the average time consumption is basically equal to about 6.5ms, so that the system is basically consistent in the delay of the decoding process, and the system runs stably under different files.
TABLE 2 decoding times for different sized files
Table 3 shows the time consumption of different blocks in the decoding process when the file size is 397M and the decoding end is divided into 4070 blocks in one file transmission, and it can be seen from the table that: the symbols which take about 6ms for one decoding account for most of the symbols, and account for 45.55% of the total number, the symbols which take about 5ms account for the second row and account for 30.93% of the total number, the symbols which take about 7ms account for the third row and account for 7.86% of the total number, and the symbols which take about 12ms account for the least of the symbols, and account for 0.98% of the total number. Therefore, the system is stable in actual operation, and the decoding time is stable within 5-7 ms. The results shown in table 3 and fig. 4 are consistent, with table 3 being a representation of the data of fig. 4.
TABLE 3 decoding time of different source blocks of the same file
The present invention is capable of other embodiments and its several details are capable of modifications in various obvious respects, all without departing from the spirit and scope of the present invention.
Claims (12)
1. A file transmission method under a satellite channel based on fountain codes is characterized in that: the method comprises the following specific processes:
a sending end:
reading a file, dividing the read file, and transmitting the divided file into an encoder in a data stream mode;
step two, judging whether the length of a file transmitted into an encoder is equal to the length T' of an encoded data block;
if so, encoding the file by using a fountain code mode, and outputting an encoding symbol;
if not, performing '0' complementing operation on the part, which is less than 1K, of the last encoded data packet in the file to enable the data length of the last encoded data packet in the file to reach 1K, obtaining the number of the encoded data packets contained in the file by using an upward rounding method according to K ═ ceil (T '/T' _ K), encoding the file by using a fountain code mode, and outputting an encoding symbol;
where K is the number of encoded packets contained in an encoded data block, T 'is a block length, and T' _ K is a constant equal to 1024;
step three, sending the data packet in the coded data block output in the step two by using a UDP protocol;
receiving end:
step four, receiving the coded data block by using a UDP protocol, and judging whether the receiving is finished; if not, executing the fifth step; if yes, executing the sixth step;
judging whether the coded data block numbers received by the UDP protocol are equal or not;
if yes, using UDP protocol to continue receiving coded data block;
if not, judging whether the number of data packets in the encoded data block received by using the UDP protocol is greater than K; if so, transmitting the data packet in the encoded data block received by using the UDP protocol into a decoder for decoding, and outputting a decoding symbol; if not, ending;
step six, the coded data block after the last block of codes is transmitted into a decoder for decoding, and a decoding symbol is output;
and step seven, writing the decoded symbols into a file, and checking all the decoded symbols.
2. The method for file transmission under a fountain code-based satellite channel as claimed in claim 1, wherein: reading a file in the first step, dividing the read file, and transmitting the divided file into an encoder in a data stream mode; the specific process is as follows:
after the storage position of a file to be transmitted is obtained, the file is read in a binary data stream mode, and the read file is divided by adopting a coding data block length T';
if the file is larger than or equal to one coded data block length T ', dividing the file according to the one coded data block length T ', transmitting the divided file into an encoder, and directly transmitting data which does not meet the one coded data block length T ' after division into the encoder;
and if the file is smaller than one coded data block length T', directly transmitting the file into an encoder.
3. The method for file transmission under a fountain code-based satellite channel as claimed in claim 2, wherein: in the second step, the file is coded by using a fountain code mode, and a coding symbol is output; the specific process is as follows:
the file is encoded by using a fountain code mode, and the encoding process is divided into two parts: a precoding section and an LT coding section.
4. The method of claim 3, wherein the method for transmitting the file under the satellite channel based on the fountain code comprises: the specific process of the pre-coding part is as follows:
adding (S + H) all-zero symbols before the coded data block t to form a precoded input symbol D ═ Z1×(S+H),t]T;
Wherein T is transposition, Z1×(S+H)An all-zero matrix of order 1 × (S + H); t is an encoded data block; t ═ t0,t1,…,tK-1],t0,t1,…,tK-1To encode the data packet; s represents the number of the high-density parity check coded data packets in the pre-coding process, and H represents the number of the high-density parity check coded data packets in the pre-coding process;
multiplying the precoded input symbol D by the inverse matrix of the coding matrix a to obtain a precoded symbol C, as shown in the following equation:
C=A-1D
wherein the precoded symbol C ═ C0,c1,…cL-1]T,c0,c1,…cL-1The total number of data packets output for the L precodes in the precoded symbols, that is, L is K + S + H; k is the number of codesThe number of data packets.
5. The method of claim 4, wherein the method for transmitting the file under the satellite channel based on the fountain code comprises: the LT encoding part comprises the following specific processes:
LT encoding of precoded symbols C:
encoding the precoded symbols C with the LT coding matrix GLT(1,2...N)Multiplying to generate fountain code Raptor code symbol E, namely coded code data block, as shown in the following formula:
E=GLT(1,2...N)C
wherein G isLT(1,2...N)Is a matrix of order NxL, where N > K; n is the number of the coding packets after LT coding is carried out on the pre-coding symbols C, namely the number of the coding packets of the fountain codes Raptor; e comprises K coded data packets and N-K redundant packets;
adding a packet header to a data packet in the encoded data block, wherein the content of the packet header comprises: packet header length, block sequence number, packet sequence number, block data length, packet data length, check bit, and flag bit.
6. The method of claim 5, wherein the method for transmitting the file under the satellite channel based on the fountain code comprises: in the third step, the data packet in the coded data block output in the second step is sent by using a UDP protocol; the specific process is as follows:
the method comprises the steps of establishing a socket at a sending end, then carrying out binding operation, binding the socket with a computer IP address and a computer IP port number, monitoring a service request at the computer IP port, receiving a file to be transmitted, blocking the file before the receiving end sends the request, and sending the file after the receiving end sends the request.
7. The method of claim 6, wherein the method for transmitting the file under the satellite channel based on the fountain code comprises: in the fourth step, the coded data block is received by using a UDP protocol, and whether the receiving is finished or not is judged; if not, executing the fifth step; if yes, executing the sixth step; the specific process is as follows:
the method comprises the steps of establishing a socket at a receiving end, then selecting a binding operation, binding the socket with a computer IP address and a computer IP port number, monitoring a service request at the computer IP port, sending the request by the receiving end, making a response and transmitting a file by the sending end after receiving the request sent by the receiving end, closing the socket of the sending end after the sending end finishes data transmission, and releasing a memory of the sending end and occupied computer port resources.
8. The method of claim 7, wherein the method for transmitting the file under the satellite channel based on the fountain code comprises: in the fifth step, the data packet in the encoded data block received by using the UDP protocol is transmitted into a decoder for decoding, and a decoding symbol is output; the specific process is as follows:
decoding the coded data block received by using the UDP protocol, wherein the decoding process is divided into two parts: a precoding decoding section and an LT decoding section;
a precoding decoding section:
assuming that a decoding end receives N 'coded data packets to form a data block E' to be decoded, adding (S + H) all-zero symbols before E 'to combine a precoded and decoded input symbol D' ═ Z1×(S+H),E']T;
Wherein T is transposition; z1×(S+H)An all-zero matrix of 1 x (S + H), wherein S represents the number of the high-density parity check coded data packets in the pre-coding process, and H represents the number of the high-density parity check coded data packets in the pre-coding process; e' is a data block to be decoded, E ═ E0,e1,…,eN’-1]T,e0,e1,…,eN’-1The decoding end receives N' coded data packets; n' is the number of coded data packets received by the decoding end after coding, K<N'≤N;
Constructing a transformation matrix G corresponding to E 'according to the N' coded data packet serial numbers received by the decoding endLT(1,2...N')、GLDPC(1,2...S)、GHalf(1,2...H);
Setting upS order identity matrix IsAnd H order identity matrix IH;
Based on a permutation matrix GLT(1,2...N')、GLDPC(1,2...S)、GHalf(1,2...H)、IsAnd IHAnd are combined into a precoding coding matrix A'M×L;
Wherein, M ═ N' + S + H, L ═ K + S + H;
m is an intermediate variable;
solving and decoding an actual code intermediate symbol C' by a Gaussian elimination method;
if the intermediate symbol C' is solved, the intermediate symbol decoding is successful, otherwise, the intermediate symbol decoding is failed;
an LT decoding part:
and performing LT decoding on the successfully decoded intermediate symbol and outputting a decoded symbol.
9. The method of claim 8, wherein the method for transmitting the file under the satellite channel based on the fountain code comprises: the practical code intermediate symbol C' is solved and interpreted through a Gaussian elimination method, and the expression is as follows:
D′=A′M×LC′。
10. the method of claim 9, wherein the method for transmitting the file under the satellite channel based on the fountain code comprises: performing LT decoding on the successfully decoded intermediate symbol to output a decoded symbol; the expression is as follows:
T=GLT(1,2...K)C′
in the formula, GLT(1,2...K)Is a K x L matrix.
11. The method of claim 10, wherein the method for transmitting the file under the satellite channel based on the fountain code comprises: the base permutation matrix GLT(1,2...N')、GLDPC(1,2...S)、GHalf(1,2...H)、IsAnd IHAnd are combined into a precoding coding matrix A'M×L(ii) a The specific process is as follows:
A'M×Lthe first S row of (A) is composed of an S x K order matrix GLDPC(1,2...S)S order unit matrix IsAnd a matrix Z of S x H order 0;
the middle H rows are formed by H (K + S) order matrix GHalf(1,2...H)And H order identity matrix IHComposition is carried out;
the last N 'rows are formed by an N' x M order matrix GLT(1,2...N')And (4) forming.
12. The method of claim 11, wherein the method for transmitting the file under the satellite channel based on the fountain code comprises: writing the decoded decoding symbols into a file in the seventh step, and checking all the decoded decoding symbols; the specific process is as follows:
and writing the decoded decoding symbols into a file, and performing md5 code check on all decoded decoding symbols.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110326956.0A CN113098661B (en) | 2021-03-26 | 2021-03-26 | Fountain code-based file transmission method under satellite channel |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110326956.0A CN113098661B (en) | 2021-03-26 | 2021-03-26 | Fountain code-based file transmission method under satellite channel |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113098661A true CN113098661A (en) | 2021-07-09 |
CN113098661B CN113098661B (en) | 2022-08-30 |
Family
ID=76670160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110326956.0A Active CN113098661B (en) | 2021-03-26 | 2021-03-26 | Fountain code-based file transmission method under satellite channel |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113098661B (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114244472A (en) * | 2021-12-13 | 2022-03-25 | 上海交通大学宁波人工智能研究院 | Industrial automation fountain code data transmission device and method |
CN114301513A (en) * | 2021-12-20 | 2022-04-08 | 哈尔滨工业大学 | File transmission method based on feedback fountain codes |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051424A (en) * | 2013-01-07 | 2013-04-17 | 北京理工大学 | Wireless transmission method for varied error protective fountain code |
CN104243096A (en) * | 2014-09-15 | 2014-12-24 | 重庆邮电大学 | Deep space multi-file transmission method based on fountain codes |
WO2017161124A1 (en) * | 2016-03-16 | 2017-09-21 | University Of Florida Research Foundation, Incorporated | System for video streaming using delay-aware fountain codes |
CN109510687A (en) * | 2018-11-28 | 2019-03-22 | 南通先进通信技术研究院有限公司 | A kind of fountain code encoding method based on satellite communication |
CN109714130A (en) * | 2018-11-28 | 2019-05-03 | 南通先进通信技术研究院有限公司 | A kind of document transmission method based on fountain codes |
-
2021
- 2021-03-26 CN CN202110326956.0A patent/CN113098661B/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051424A (en) * | 2013-01-07 | 2013-04-17 | 北京理工大学 | Wireless transmission method for varied error protective fountain code |
CN104243096A (en) * | 2014-09-15 | 2014-12-24 | 重庆邮电大学 | Deep space multi-file transmission method based on fountain codes |
WO2017161124A1 (en) * | 2016-03-16 | 2017-09-21 | University Of Florida Research Foundation, Incorporated | System for video streaming using delay-aware fountain codes |
CN109510687A (en) * | 2018-11-28 | 2019-03-22 | 南通先进通信技术研究院有限公司 | A kind of fountain code encoding method based on satellite communication |
CN109714130A (en) * | 2018-11-28 | 2019-05-03 | 南通先进通信技术研究院有限公司 | A kind of document transmission method based on fountain codes |
Non-Patent Citations (4)
Title |
---|
ZHAOYANG ZHANG等: "Fountain-Coded File Spreading Over Mobile Networks", 《IEEE TRANSACTIONS ON WIRELESS COMMUNICATIONS》 * |
多滨等: "译码转发协作中继信道低复杂度极化乘积编码研究", 《高技术通讯》 * |
徐大专等: "一种新的基于数字喷泉码的传输协议", 《数据采集与处理》 * |
曾柯: "延迟容忍网络中的传输协议优化设计", 《信息科技》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114244472A (en) * | 2021-12-13 | 2022-03-25 | 上海交通大学宁波人工智能研究院 | Industrial automation fountain code data transmission device and method |
CN114244472B (en) * | 2021-12-13 | 2023-12-01 | 上海交通大学宁波人工智能研究院 | Industrial automatic fountain code data transmission device and method |
CN114301513A (en) * | 2021-12-20 | 2022-04-08 | 哈尔滨工业大学 | File transmission method based on feedback fountain codes |
CN114301513B (en) * | 2021-12-20 | 2024-04-12 | 哈尔滨工业大学 | File transmission method based on feedback fountain codes |
Also Published As
Publication number | Publication date |
---|---|
CN113098661B (en) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9118353B2 (en) | System and method for communicating with low density parity check codes | |
US8429503B2 (en) | Encoding device and decoding device | |
JP4274942B2 (en) | Method and system for reducing decoding complexity in a communication system | |
EP1116335B1 (en) | Lost packet recovery method for packet transmission protocols | |
EP1214793B9 (en) | Group chain reaction encoder with variable number of associated input data for each output group code | |
US6728924B1 (en) | Packet loss control method for real-time multimedia communications | |
US8737519B2 (en) | Apparatus and method for channel coding in a communication system | |
US8555146B2 (en) | FEC streaming with aggregation of concurrent streams for FEC computation | |
US20040075593A1 (en) | Systematic encoding and decoding of chain reaction codes | |
CN113098661B (en) | Fountain code-based file transmission method under satellite channel | |
WO2011071472A1 (en) | The application of fountain forward error correction codes in multi-link multi-path mobile networks | |
US7930617B1 (en) | Sliding window block codes for cross-packet coding | |
CN112600647B (en) | Multi-hop wireless network transmission method based on network coding endurance | |
CN101814923B (en) | Method and device for decoding fountain codes | |
JP2022516802A (en) | Data retransmission over wireless network | |
US20110060959A1 (en) | Method and Apparatus for Data Receiving | |
JP2023157921A (en) | Method, device, system, and medium for self-adaptive system code fec encoding and decoding based on media content | |
KR101615384B1 (en) | Apparatus and method for channel encoding in a communication system | |
JP2008501278A (en) | Extended convolution code | |
US8301961B2 (en) | Decoding method for low density generator matrix code | |
CN114301513B (en) | File transmission method based on feedback fountain codes | |
CN101162966A (en) | Method and system of using error-correcting code technique for data transmission | |
Chen | Analysis of forward error correcting codes | |
US20140115417A1 (en) | Encoding method for quasi-periodic fading channel | |
Semenov et al. | High Layer Coding for Video Transmission |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |