CN113098661B - Fountain code-based file transmission method under satellite channel - Google Patents

Fountain code-based file transmission method under satellite channel Download PDF

Info

Publication number
CN113098661B
CN113098661B CN202110326956.0A CN202110326956A CN113098661B CN 113098661 B CN113098661 B CN 113098661B CN 202110326956 A CN202110326956 A CN 202110326956A CN 113098661 B CN113098661 B CN 113098661B
Authority
CN
China
Prior art keywords
file
decoding
symbol
data block
coded data
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.)
Active
Application number
CN202110326956.0A
Other languages
Chinese (zh)
Other versions
CN113098661A (en
Inventor
朱礼智
王振永
李德志
师鹏程
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Institute of Technology
Original Assignee
Harbin Institute of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Harbin Institute of Technology filed Critical Harbin Institute of Technology
Priority to CN202110326956.0A priority Critical patent/CN113098661B/en
Publication of CN113098661A publication Critical patent/CN113098661A/en
Application granted granted Critical
Publication of CN113098661B publication Critical patent/CN113098661B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0014Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the source coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

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

Fountain code-based file transmission method under satellite channel
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 conventional terrestrial network are also very significant, and the conventional terrestrial network needs to rely on related infrastructure, has limited communication coverage and is limited in many scenarios. 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 error rate of data transmission is high due to the fact that an existing satellite communication channel has the characteristics of link time prolonging, frequent channel interruption and the like, and provides a file transmission method based on fountain codes 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;
judging whether the length of a file transmitted into an encoder is equal to one coded data block length T';
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, can ensure 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 method can solve the problem of high data transmission error rate caused by the characteristics of link time extension, frequent channel interruption and the like of a satellite communication channel, and efficiently and reliably transmits files.
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;
judging whether the length of a file transmitted into an encoder is equal to one coded data block length T';
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 most 24 For different coded data packets, the complexity of the Raptor code algorithm is O (KLn (1/epsilon)), and the Raptor code algorithm 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, using UDP protocol to receive coded data block and judging whether 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 into the decoder each time the data packet is received, a UDP receiving buffer at a decoding end needs to be set to be larger, the buffer length is at least 100T, and enough operation time is reserved for the decoder when the UDP protocol is used for receiving the data quickly.
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.
Because 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 finished, the verification is needed to judge 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 one coding data block length T' (100K);
if the file is larger than or equal to one coded data block length T ' (100K), dividing the file according to the coded data block length T ' (100K), transmitting the divided file into an encoder, and directly transmitting data which does not meet the coded 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 combine a precoded input symbol D ═ Z 1×(S+H) ,t] T
Wherein T is transpose, Z 1×(S+H) An all-zero matrix of order 1 × (S + H); t is an encoded data block; t ═ t 0 ,t 1 ,…,t K-1 ],t 0 ,t 1 ,…,t K-1 To 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 -1 D
wherein the precoded symbol C ═ C 0 ,c 1 ,…c L-1 ] T ,c 0 ,c 1 ,…c L-1 The 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:
precoding symbols C and LT coding matrix G LT(1,2...N) Multiplying to generate fountain code Raptor code symbol E, namely coded code data block, as shown in the following formula:
E=G LT(1,2...N) C
wherein G is LT(1,2...N) Is a matrix of order NxL, where N > K; n is the number of code packets after LT coding the pre-coded symbols C, namely the code packets of fountain codes RaptorThe number of the particles; e comprises K coded data packets and N-K redundant packets;
fountain code Raptor coding symbol E ═ E 0 ,e 1 ,…e N-1 ] T
LT encoding matrix G LT(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 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 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 concrete implementation mode: the difference between this embodiment and the first to sixth embodiments is that, in the fourth step, the coded data block is received using 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 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 transmitted 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 UDP protocol, 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' ═ Z 1×(S+H) ,E'] T
Wherein T is transposition; z 1×(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 ═ E 0 ,e 1 ,…,e N’-1 ] T ,e 0 ,e 1 ,…,e N’-1 The 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 knows which encoding packet is received;
constructing a transformation matrix G corresponding to E 'according to the N' coded data packet serial numbers received by a decoding end LT(1,2...N') 、G LDPC(1,2...S) 、G Half(1,2...H)
Setting an S-order identity matrix I s And H order identity matrix I H
Based on a permutation matrix G LT(1,2...N') 、G LDPC(1,2...S) 、G Half(1,2...H) 、I s And I H And 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 G LT(1,2...N') 、G LDPC(1,2...S) 、G Half(1,2...H) It can be obtained by looking up the data table attached in the standard RFC6330 by N';
most often, A' M×L The inverse operation is not possible, so the intermediate symbol C ═ C is decoded 0 ,c 1 ,…c L-1 ] T Then, 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 coding 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×L C′。
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=G LT(1,2...K )C′
in the formula, G LT(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 on LT(1,2...N') 、G LDPC(1,2...S) 、G Half(1,2...H) 、I s And I H Combining into a precoding coding matrix A' M×L (ii) a The specific process is as follows:
A' M×L the first S row of (A) is composed of an S x K order matrix G LDPC(1,2...S) S order unit matrix I s And a 0 matrix Z of S x H order;
the middle H rows are formed by H (K + S) order matrix G Half(1,2...H) And H order identity matrix I H Composition is carried out;
the last N 'rows are formed by an N' x M order matrix G LT(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 the decoded decoding symbols.
Other steps and parameters are the same as those in one of the first to eleventh embodiments.
The following examples were employed 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 a 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 transmitting end under different bandwidths
Figure BDA0002995000770000101
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
Figure BDA0002995000770000111
Table 3 shows the time consumption of different blocks in the decoding process when the file size is 397M in one file transmission and the decoding end is divided into 4070 blocks, 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
Figure BDA0002995000770000112
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 (9)

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 1KB, of the last coded data packet in the file to enable the data length of the last coded data packet in the file to reach 1KB, obtaining the number of the coded 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, using UDP protocol to receive coded data block and judging whether 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;
step seven, writing the decoded symbols into a file, and checking all decoded symbols;
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;
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 ═ Z 1×(S+H) ,t] T
Wherein T is transposition, Z 1×(S+H) An all-zero matrix of order 1 × (S + H); t is an encoded data block; t ═ t 0 ,t 1 ,…,t K-1 ],t 0 ,t 1 ,…,t K-1 To encode the data packet; s represents the number of the low-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 -1 D
wherein the precoding symbol C ═ C 0 ,c 1 ,…c L-1 ] T ,c 0 ,c 1 ,…c L-1 The 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 the coding data packets;
the LT encoding part comprises the following specific processes:
LT encoding of precoded symbols C:
precoding symbols C and LT coding matrix G LT(1,2...N) Multiplying to generate fountain code Raptor code symbol E, namely coded code data block, as shown in the following formula:
E=G LT(1,2...N) C
wherein G is LT(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.
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 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 binding, 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 before the receiving end sends the request, and sending the file after the receiving end sends the request.
4. The method of claim 3, 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.
5. The method for file transmission under a satellite channel based on fountain codes according to claim 4, wherein: in the fifth step, the data packet in the encoded data block received by using the UDP protocol is transmitted into a decoder to be decoded, 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' ═ Z 1×(S+H) ,E'] T
Wherein T is transposition; z 1×(S+H) Is an all-zero matrix of 1 x (S + H), S represents the number of the low-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 block of data to be decoded, E ═ E 0 ,e 1 ,…,e N’-1 ] T ,e 0 ,e 1 ,…,e N’-1 The 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 a decoding end LT(1,2...N') 、G LDPC(1,2...S) 、G Half(1,2...H)
Setting an S-order identity matrix I s And H order identity matrix I H
Based on a permutation matrix G LT(1,2...N') 、G LDPC(1,2...S) 、G Half(1,2...H) 、I s And I H And 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.
6. The method for file transmission under a satellite channel based on fountain codes according to claim 5, wherein: the practical code intermediate symbol C' is solved and interpreted through a Gaussian elimination method, and the expression is as follows:
D′=A′ M×L C′。
7. the method for file transmission under a satellite channel based on fountain codes according to claim 6, wherein: performing LT decoding on the successfully decoded intermediate symbol to output a decoded symbol; the expression is as follows:
T=G LT(1,2...K) C′
in the formula, G LT(1,2...K) Is a K x L matrix.
8. The method for file transmission under a satellite channel based on fountain codes according to claim 7, wherein: the base permutation matrix G LT(1,2...N') 、G LDPC(1,2...S) 、G Half(1,2...H) 、I s And I H And are combined into a precoding coding matrix A' M×L (ii) a The specific process is as follows:
A' M×L the first S row of (A) is composed of an S x K order matrix G LDPC(1,2...S) S order unit matrix I s And a matrix Z of S x H order 0;
the middle H rows are formed by H (K + S) order matrix G Half(1,2...H) And H order identity matrix I H Composition is carried out;
the last N 'rows are formed by an N' x M order matrix G LT(1,2...N') And (4) forming.
9. The method of claim 8, 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.
CN202110326956.0A 2021-03-26 2021-03-26 Fountain code-based file transmission method under satellite channel Active CN113098661B (en)

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 CN113098661A (en) 2021-07-09
CN113098661B true 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)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114244472B (en) * 2021-12-13 2023-12-01 上海交通大学宁波人工智能研究院 Industrial automatic fountain code data transmission device and method
CN114301513B (en) * 2021-12-20 2024-04-12 哈尔滨工业大学 File transmission method based on feedback fountain codes

Citations (1)

* Cited by examiner, † Cited by third party
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

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104243096B (en) * 2014-09-15 2017-10-27 重庆邮电大学 A kind of deep space multifile 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
CN109714130B (en) * 2018-11-28 2020-05-15 南通先进通信技术研究院有限公司 Fountain code-based file transmission method
CN109510687A (en) * 2018-11-28 2019-03-22 南通先进通信技术研究院有限公司 A kind of fountain code encoding method based on satellite communication

Patent Citations (1)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
CN113098661A (en) 2021-07-09

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
KR101143282B1 (en) Systematic encoding and decoding of chain reaction codes
JP4274942B2 (en) Method and system for reducing decoding complexity in a communication system
CN101453297B (en) Encoding method and apparatus for low density generation matrix code, and decoding method and apparatus
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
CN101217352B (en) A buffering setting method of phase rate matching
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
CN101814923B (en) Method and device for decoding fountain codes
CN112600647B (en) Multi-hop wireless network transmission method based on network coding endurance
US20110060959A1 (en) Method and Apparatus for Data Receiving
JP2022516802A (en) Data retransmission over wireless network
Roca et al. Rs+ ldpc-staircase codes for the erasure channel: Standards, usage and performance
US7908544B2 (en) Extended convolutional codes
EP3654556A1 (en) Media content-based adaptive method, device and system for fec coding and decoding of systematic code, and medium
CN101286745A (en) Coding method and device by interleaving
CN108667557A (en) A kind of adaptive FEC encoder matrix design method based on media content
US8301961B2 (en) Decoding method for low density generator matrix code
CN101162966A (en) Method and system of using error-correcting code technique for data transmission
Cocco et al. Cross-packet coding for delay-constrained streaming applications
CN102263606A (en) Channel data coding and decoding method and device
US20140115417A1 (en) Encoding method for quasi-periodic fading channel

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