[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN106027208A - Feedback-based network code TCP (Transmission Control Protocol) decoding method and device - Google Patents

Feedback-based network code TCP (Transmission Control Protocol) decoding method and device Download PDF

Info

Publication number
CN106027208A
CN106027208A CN201610282604.9A CN201610282604A CN106027208A CN 106027208 A CN106027208 A CN 106027208A CN 201610282604 A CN201610282604 A CN 201610282604A CN 106027208 A CN106027208 A CN 106027208A
Authority
CN
China
Prior art keywords
coding
packet
tcp
window
packets
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.)
Pending
Application number
CN201610282604.9A
Other languages
Chinese (zh)
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.)
Institute of Information Engineering of CAS
Original Assignee
Institute of Information Engineering of CAS
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 Institute of Information Engineering of CAS filed Critical Institute of Information Engineering of CAS
Priority to CN201610282604.9A priority Critical patent/CN106027208A/en
Publication of CN106027208A publication Critical patent/CN106027208A/en
Pending legal-status Critical Current

Links

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/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0076Distributed coding, e.g. network coding, involving channel 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/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0289Congestion control

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The present invention provides a kind of network code TCP coding/decoding method and device based on feedback, which comprises when receiving the TCP data packet of TCP layer transmission, transmitting terminal is updated the coding packet quantity Sn for currently needing to send according to current ink packet loss; The feedback information carried in the response message sent by receiving end received according to current time determines the number Ln of current coding window lock; If the number Ln that current coding window is locked is not 0, regular coding window, and by W TCP data packet in coding window according to coding packet quantity Pre-arranged code is carried out, by what is encoded A data packet is sent to receiving end. The present invention can not only generate Active Compensation according to network environment, and can make corresponding adjustment based on feedback to accelerate decoding matrix full rank, reduce decoding and wait time delay.

Description

Feedback-based network coding TCP decoding method and device
Technical Field
The invention relates to the technical field of communication, in particular to a network coding TCP decoding method and device based on feedback.
Background
Network coding TCP is a communication technology that can effectively improve the transmission throughput and reliability of TCP in a wireless network. In a wireless network, a large amount of random packet loss often occurs due to the movement of a terminal, the shielding of an object and the like. While the most widely used transmission protocol TCP is originally designed for a common wired network, the congestion control algorithm of TCP only considers the packet loss caused by congestion. Network encoded TCP compensates for random packet loss in wireless networks by adding redundant information to TCP data packets. However, when network coded TCP is applied in online applications (such as real-time multimedia applications), the decoding delay caused by decoding is a challenge to be considered. The network coding TCP is sent by mixing and coding different TCP original data packets, and a receiving end can enable a decoding matrix to reach a full rank state only by receiving enough linearly independent coding packets, and can successfully decode only when the full rank is reached. And uncontrollable packet loss in the network can make the time for the decoding end to wait for the full rank uncontrollable. During this time, the encoded packets received in all buffers cannot be successfully decoded, nor can any data packets be delivered to the upper layer. Resulting in significant decoding delay and delivery jitter. While online applications require a smooth reception rate and tight delay control. According to the literature, amazon estimates that every 100ms increase in delay will lose 1% of the profit. Reducing the decoding delay plays an important role in improving the performance of network-coded TCP.
The decoding delay in network coded TCP refers to the time that a TCP original packet is first coded and sent out until it is finally decoded and delivered to the application layer successfully. The decoding delay mainly comprises three parts: transmission delay, latency and computational delay. The transmission delay is controlled by the parameters of the link, and cannot be changed. The waiting time delay is the time delay of waiting for the full rank, and the part can be controlled to be close to the ideal effect of complete elimination to the maximum extent by adjusting the redundant information to cooperate with the link packet loss. Since this part of the delay substantially determines the size of the overall decoding delay. The calculation of the time delay refers to the time from the full rank of the decoding matrix to the successful decoding, and currently, for random linear coding, the most widely adopted decoding algorithm is gaussian-jordan elimination. The time delay is O (n) with the size of the decoding matrix2) And (4) relationship.
In conclusion, the basis for controlling the network coding TCP decoding delay lies in correctly adjusting the fast full rank of the redundancy accelerated decoding matrix according to the network condition.
The existing online network coding TCP decoding method selects the number of original packets participating in coding each time by reasonably controlling the size of a coding window. The size of the coding window represents its ability to mask packet loss. The algorithm represented by TCP/NC aims at only covering wireless packet loss but not covering congestion packet loss, and reasonably controls retransmission and redundancy to achieve the aim of on-line coding and decoding. And the TCP/NC encodes and sends out W TCP original data packets which newly arrive at a network encoding layer each time, wherein W is the size of an encoding window. Such network-encoded TCP algorithms may be compatible with both packet loss and RTT-based TCP congestion control mechanisms. However, this type of algorithm uses a preset fixed redundancy value R:
R = 1 1 - P
wherein P is the average packet loss rate. In a specific decoding process, when a new TCP original data packet arrives at a network coding layer every time, a coding window of the TCP/NC always slides so that the latest arriving W TCP original data packets are always contained in the coding window, and wireless random packet loss in communication is compensated through a preset redundancy value R. However, the fixed preset redundancy value R is difficult to adapt to the real-time changing channel packet loss rate. Thus leading to packet loss and redundancy compensation mismatching, and finally leading to very large decoding matrix and uncontrolled decoding delay.
Disclosure of Invention
Aiming at the defects in the prior art, the invention provides a feedback-based network coding TCP decoding method and device, which not only can generate active compensation according to a basic network environment, but also can make corresponding adjustment based on feedback to accelerate the full rank of a decoding matrix, reduce decoding waiting time delay and smooth data delivery jitter.
In order to solve the technical problems, the invention provides the following technical scheme:
in a first aspect, the present invention provides a feedback-based network coding TCP decoding method, including:
when receiving a TCP data packet sent by an upper Transmission Control Protocol (TCP) layer, a sending end updates the number Sn of coding packets needing to be sent at present according to the packet loss rate of a present link:
Sn=Sn+R
wherein, R is a redundancy coefficient determined according to the packet loss rate of the current link, R is 1/(1-P), and P is the packet loss rate of the current link;
determining the number Ln of the current coding window lock according to the feedback information carried in the response message sent by the receiving end and received at the current moment;
if the number Ln of times of locking the current coding window is not 0, fixing the coding window, and counting the W TCP data packets in the coding window according to the number of the coding packetsPerforming preset encoding, and encodingSending the data packet to a receiving end;
where W is the size of the coding window.
Preferably, if the current number Ln of times of encoding window lock is 0, sliding the encoding window to include not more than W TCP packets received recently, and counting the number of TCP packets in the encoding window according to the number of encoding packetsPerforming preset encoding, and encodingAnd sending the data packet to a receiving end.
Preferably, the determining the current number Ln of coded window locks according to the feedback information carried in the response message received at the current time and sent by the receiving end includes:
determining the number Ln of the current coding window lock by adopting the following formula I according to the number ack.loss of data packets lacked by the receiving end to decode successfully and contained in the feedback information carried in the response message received at the current moment, the number last.loss of data packets lacked by the receiving end to decode successfully and contained in the feedback information carried in the response message received at the last moment, and the number Rn of redundant packets sent by the sending end after sending the data packets with the sequence number ack.trigSeq and calculated according to the sequence number ack.trigSeq of the data packets generated by the response information used for triggering the response message at the current moment and contained in the feedback information carried in the response message received at the current moment:
ln ═ max { Ln + ack.loss-last.loss-Rn,0} formula one
Where ack.loss-last.loss represents the new number of lost packets that occur between two reply messages.
Preferably, after being codedAfter the data packets are sent to the receiving end, the method further comprises the following steps of updating Ln:
preferably, after being codedAfter the data packets are sent to the receiving end, the method further comprises updating Sn to:
preferably, if the received TCP data packet sent by the upper TCP layer is a retransmission packet, the TCP data packet is directly sent to the receiving endNext, the process is carried out.
In a second aspect, the present invention further provides a network coding TCP decoding method based on any one of the above methods, including:
when the receiving end receives a coding packet C, the receiving end extracts a coding coefficient vector V from the coding packet C, adds the coding coefficient vector V into a decoding matrix, and performs Gaussian-Jordan elimination on the coding coefficient vector V;
if the coding coefficient vector V after the elimination becomes a full zero vector, discarding the coding packet C, otherwise adding the load part of the coding packet C into a decoding buffer area; wherein, the load part of the coding packet C is the data information part of the coding packet C except the head information;
executing Gaussian-Jordan elimination on the load part of the coding packet C, and if the data packets are decoded successfully in sequence, sending the successfully decoded data packets to an upper TCP layer;
and sending a response message to the sending end, wherein the response message carries feedback information, and the feedback information is used for enabling the sending end to determine the times Ln of the coding window lock.
Preferably, the feedback information carried in the response message includes a sequence number ack.seq of the oldest invisible packet, a number ack.loss of data packets that the receiving end lacks for successfully decoding at present, and a sequence number ack.trigseq of a data packet generated by triggering the response information at the present time;
seq is used for informing a sending end which data packets do not need to participate in coding and retransmission; for one C ═ Pi+ q, andis coded byBag, PiFor visible bag, Pl(l>i) As invisible package, Pi+1Is the oldest invisible pack of the packages that is,are encoded coefficients.
In a third aspect, the present invention further provides a feedback-based network coding TCP decoding apparatus, including:
an updating unit, configured to update, when receiving a TCP data packet sent by a TCP layer in an upper layer, the number Sn of coding packets that needs to be sent currently according to a current link packet loss rate:
Sn=Sn+R
wherein, R is a redundancy coefficient determined according to the packet loss rate of the current link, R is 1/(1-P), and P is the packet loss rate of the current link;
the determining unit is used for determining the current frequency Ln of the coding window lock according to the feedback information carried in the response message received at the current moment and sent by the receiving end;
the judging unit is used for judging whether the current frequency Ln of the coding window lock is 0 or not;
a processing unit, configured to fix the encoding window and number of W TCP packets in the encoding window according to the number of encoding packets when the determining unit determines that the current number Ln of encoding window locks is not 0Performing preset encoding, and encodingSending the data packet to a receiving end; where W is the size of the coding window.
In a fourth aspect, the present invention further provides a feedback-based network coding TCP decoding apparatus based on the above apparatus, including:
the first elimination unit is used for extracting a coding coefficient vector V from a coding packet C when the coding packet C is received, adding the coding coefficient vector V into a decoding matrix, and performing Gaussian-Jordan elimination on the coding coefficient vector V;
a judging unit, configured to judge whether the code coefficient vector V after the elimination is an all-zero vector;
a discarding unit, configured to discard the encoded packet C when the determining unit determines that the encoded coefficient vector V after the cell elimination is an all-zero vector;
a second elimination unit, configured to add the load portion of the coded packet C to a decoding buffer area and perform gaussian-jordan elimination on the load portion of the coded packet C when the determination unit determines that the coding coefficient vector V after elimination is not an all-zero vector;
the transmitting unit is used for transmitting the successfully decoded data packet to an upper TCP layer when the second element eliminating unit successfully decodes the data packet;
the sending unit is further configured to send a response message to the apparatus as described above, where the response message carries feedback information, and the feedback information is used to enable the apparatus as described above to determine the number Ln of times of the coded window lock.
According to the technical scheme, the feedback-based network coding TCP decoding method can generate active compensation according to a basic network environment, and can make corresponding adjustment based on feedback to accelerate the full rank of a decoding matrix, reduce decoding waiting time delay and smooth data delivery jitter. The method can reduce decoding delay while ensuring communication throughput in a wireless network, and meets the real-time requirement of user application.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below, and it is obvious that the drawings in the following description are some embodiments of the present invention, and for those skilled in the art, other drawings can be obtained according to these drawings without creative efforts.
Fig. 1 is a flowchart of a feedback-based network coding TCP decoding method according to a first embodiment of the present invention;
FIG. 2 is a flowchart of another feedback-based network coding TCP decoding method according to the first embodiment of the present invention;
FIG. 3 is a flowchart of a feedback-based network coding TCP decoding method according to a second embodiment of the present invention;
fig. 4 is a schematic structural diagram of a feedback-based network coding TCP decoding apparatus according to a third embodiment of the present invention;
fig. 5 is a schematic structural diagram of a network coding TCP decoding apparatus based on feedback according to a fourth embodiment of the present invention.
Detailed Description
In order to make the objects, technical solutions and advantages of the embodiments of the present invention clearer, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are some, but not all, embodiments of the present invention. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
The existing decoding methods are roughly the following: when a new TCP original data packet arrives at a network coding layer each time, the coding window of the TCP/NC always slides to ensure that the coding window always contains W newly arrived TCP original data packets, and wireless random packet loss in communication is compensated through preset redundancy. However, the preset redundancy is often not enough to compensate for the dynamically changing wireless random packet loss, thereby causing huge decoding delay. In the feedback-based online network coding TCP decoding method, which is referred to as FNC scheme below, when random wireless packet loss in communication cannot be completely compensated through preset redundancy, information of a decoding matrix is brought by using feedback, a coding window is fixed at a proper time to prevent the decoding matrix from sliding, and a proper TCP original data packet is selected to participate in coding to accelerate the full rank of the decoding matrix at a receiving end. In order to maintain good compatibility with existing TCP/IP architectures, the present invention preserves the framework in TCP/NC. The method provided by the application is realized at the encoding sending end and the decoding receiving end of the network encoding layer. The detailed steps of the FNC scheme at the transmitting end and the receiving end of the TCP network coding layer are introduced below, and an FNC scheme example is added to show the advantage of the fixed coding window in the FNC scheme.
The first embodiment of the present invention provides a feedback-based network coding TCP decoding method, referring to fig. 1, the method includes the following steps:
step 101: when receiving a TCP data packet sent by an upper Transmission Control Protocol (TCP) layer, a sending end updates the number Sn of coding packets needing to be sent at present according to the packet loss rate of a present link:
Sn=Sn+R
wherein, R is a redundancy coefficient determined according to the packet loss rate of the current link, R is 1/(1-P), and P is the packet loss rate of the current link.
In this step, a redundancy coefficient R is calculated according to the packet loss rate P of the current link, and then the number Sn of the coded packets that need to be sent currently is calculated according to the redundancy coefficient R.
In addition, since the operation of this step is at the network coding layer, it is necessary to receive the TCP packet sent by the upper TCP layer.
Step 102: and determining the current frequency Ln of the coded window lock according to the feedback information carried in the response message received at the current moment and sent by the receiving end.
In this step, determining the current number Ln of coded window locks according to the feedback information carried in the response message sent by the receiving end and received at the current time includes:
determining the number Ln of the current coding window lock by adopting the following formula I according to the number ack.loss of data packets lacked by the receiving end to decode successfully and contained in the feedback information carried in the response message received at the current moment, the number last.loss of data packets lacked by the receiving end to decode successfully and contained in the feedback information carried in the response message received at the last moment, and the number Rn of redundant packets sent by the sending end after sending the data packets with the sequence number ack.trigSeq and calculated according to the sequence number ack.trigSeq of the data packets generated by the response information used for triggering the response message at the current moment and contained in the feedback information carried in the response message received at the current moment:
ln ═ max { Ln + ack.loss-last.loss-Rn,0} formula one
Where ack.loss-last.loss represents the new number of lost packets that occur between two reply messages.
When Rn is obtained by calculation according to ack.trigseq, it is also necessary to obtain a data packet sequence sent by the sending end, where the data packet sequence includes the sequence number of each data packet sent by the sending end.
For example, assuming that the redundancy coefficient R calculated according to the current link packet loss rate P is 1.2, the transmitting end transmission sequence is 1,2,3,4,5, C,6,7,8,9,10, C,11,12, where C represents an added redundancy packet. Here, a queue is used to record the packet transmission situation of the transmitting end, when an acknowledgement message ACK is returned, if the feedback information tells that it is triggered by packet No. 5, the queue can know that two redundant packets are transmitted after packet No. 5 at this time, and Rn is 2.
Further, the feedback information carried in the response message received at the current time also includes a sequence number ack.seq of the oldest invisible packet, where the sequence number ack.seq of the oldest invisible packet is used to inform the transmitting end which data packets do not need to participate in encoding and retransmission any more. The sender can know which data packets do not need to participate in encoding and retransmission again according to the sequence number ack.seq of the oldest invisible packet, which has guiding significance for encoding in the subsequent step 103 a.
Wherein for one C ═ Pi+ q, andcoded packet of, PiFor visible bag, Pl(l>i) As invisible package, Pi+1The oldest invisible package.Are encoded coefficients.
Step 103: judging whether the current frequency Ln of the coding window lock is 0 or not; if not, go to step 103 a.
Step 103 a: fixing the coding window and counting the W TCP data packets in the coding window according to the number of the coding packetsPerforming preset encoding, and encodingSending the data packet to a receiving end; w is the size of the coding window.
In this step, when the current number Ln of times of encoding window lock is not 0, W TCP packets in the encoding window are encoded according to the number of encoding packets by using a fixed encoding window methodPerforming preset encoding, and encodingThe data packets are sent to the receiving end, where the preset coding may be performed by using a coding method commonly used in compensation coding, which is well known to those skilled in the art and thus will not be described in detail. Wherein,is a rounded-down symbol.
Compared with the sliding coding window mode in the prior art, the fixed coding window mode adopted in the step has the advantage of reducing the delivery speed of the received data packet. The reason why the fixed coding window has such an advantage is analyzed in detail below by a specific example.
For example, for an encoding TCP scheme TCP/NC with an encoding window W of 3, the TCP/NC sending end adopts a sliding encoding window mode, encodes and sends out original packets with the number not greater than W each time, and sends 7 encoding packets C in totalsi(i is more than or equal to 0 and less than or equal to 7) as follows:
wherein, Cs3=9P1+7P2+3P3,Cs4=2P2+8P3+3P4. If no packet is lost, the receiving end receives 7 linearly independent coded packets, the decoding matrix is full rank, after Gaussian elimination, the decoding matrix is converted into 7 rows and 7 columns of unit matrix, P1,P2,P3,P4,P5,P6,P7Are solved.
Suppose, during transmission, Cs4Lost, the receiving end can only receive 6 packets, and after Gaussian elimination, the receiving end can only successfully solve P1,P2,P3. A coding scheme in a sliding window manner will result in P4,P5,P6,P7Cannot be solved. Removing portions of the identity matrixThe decoding matrix form of the TCP/NC scheme is as follows:
suppose when the 6 th packet is ready to be sent, Cs5The triggered ACK brings back packet loss information. Since the receiving end receives the coded packet Cs5When passing through Gaussian elimination Cs5Conversion to Cr5=P4+q,q=4P5Then the current newest visible package is 4 and the oldest invisible package is 5. So Cs5The feedback information ack.loss ═ 1, ack.seq ═ 5, and ack.trigseq ═ 5 in the triggered ACK. Since the ACK is Cs5Trigseq is triggered, so ack. After calculation, the number Ln of times of the coding window lock in the FNC scheme is 1, the FNC locks the current coding window and prevents the current coding window from sliding forward, and at this time, the original packets in the coding window are P respectively3,P4,P5Instead of the newly arrived W packets P in the sliding window mode4,P5,P6So that the transmitted packet is C's6=11P3+2P4+3P5Instead of Cs6=2P4+9P5+15P6. C 'is successfully received's6The receiving end can successfully decode P through Gaussian elimination1,P2,P3,P4,P5. Only P6,P7Cannot be solved. Except for the identity matrix part, the FNC scheme decodes the matrix form as follows:
from the above example, it can be seen that the FNC feedback-based coding window lock scheme provided by the present embodiment can solve the original packet faster than the sliding window coding scheme. The FNC provided by this embodiment is advantageous in reducing the delivery rate of received packets, since packets can only be delivered to the application layer if they are resolved sequentially.
Of course, if the current number Ln of code window locks is 0, a normal sliding code window mode is adopted. Referring to fig. 2, if the current number Ln of the encoding window lock is 0, step 103b is executed to slide the encoding window to include the most recently received TCP packets not exceeding W, and to count the TCP packets in the encoding window according to the number of encoding packetsPerforming preset encoding, and encodingAnd sending the data packet to a receiving end.
Preferably, after being codedAfter the data packets are sent to the receiving end, the method further comprises the following steps of updating Ln:
preferably, after being codedAfter the data packets are sent to the receiving end, the method further comprises updating Sn to:
preferably, if the received TCP data packet sent by the upper TCP layer is a retransmission packet, the TCP data packet is directly sent to the receiving endNext, Sn is then updated to:otherwise, the TCP data packet is added into a buffer for encoding.
Wherein, whether the data packet is a retransmission packet or not can be judged according to the sequence number carried by the data packet. For example, in the example of step 102, if the sender uses the information of the packet with the largest sequence number transmitted so far, which is 12 in this example, the sequence number of the data packet from TCP is less than or equal to 12, and the packet is a retransmission packet.
As can be seen from the above, the data processing procedure of the sending end of the network coding layer is as follows:
(A) at the transmitting end of the TCP network coding layer, a queue is used to record the sequence number information of the transmitted redundant packet (i.e. the sequence number of the TCP original data packet with the largest sequence number of the coding in the coded redundant packet). When receiving the response message, such as an ACK packet, sent by the receiving end, the sending end performs the following steps:
1) extracting corresponding feedback information from the ACK packet: and the receiving end decodes the number ack.loss of the data packets required by the full rank of the matrix, namely the number of the data packets required by successful decoding, and triggers the number ack.trigseq of the data packets generated by the ACK.
2) And calculating the number Rn of redundant packets sent by the sending end after sending the data packet with the sequence number ack.trigSeq according to the ack.trigSeq.
3) And recording the information ack.loss, Ln brought by the previous ACK by last.loss to represent the number of times of the coded window lock, and updating Ln according to the latest feedback information:
Ln=max{Ln+Ack.loss-last.loss-Rn,0}
where ack.loss-last.loss represents the new number of packets lost that occurred between two ACKs
4) Load update of last
last.loss=Ack.loss
(B) When receiving a TCP data packet sent by an upper TCP layer, a sending end executes the following steps:
1) updating the number Sn of the code packets to be transmitted at this time:
Sn=Sn+R
wherein, the redundancy coefficient R is 1/(1-P), and P is the current link packet loss rate.
If the data packet is a retransmission packet, directly transmitting the data packetNext, the process is carried out. Jump to step 4), otherwise add the data packet into the buffer.
2) Checking Ln, if Ln is not zero, fixing the coding window. Otherwise, sliding the encoding window to include the latest no more than W TCP packets, and updating Ln:
3) encoding TCP data packets within an encoding windowAnd encoding the packet and sending out the packet in turn.
4) And updating Sn:
as can be seen from the above description, the feedback-based network coding TCP decoding method provided in this embodiment can not only generate active compensation according to the basic network environment (for example, obtain the redundancy coefficient R according to the current link packet loss rate, and then obtain the number of coded packets Sn:thatshould be currently sent according to the redundancy coefficient R), but also make corresponding adjustments based on the feedback to speed up the full rank of the decoding matrix (for example, when a certain condition is met, a fixed coding window is used for coding), reduce the decoding latency, and smooth the data delivery jitter. The method can reduce decoding delay while ensuring communication throughput in a wireless network, and meets the real-time requirement of user application.
A second embodiment of the present invention provides another feedback-based network coding TCP decoding method, which is different from the first embodiment in that the first embodiment provides the feedback-based network coding TCP decoding method applied to the sending end of the network coding layer, and the feedback-based network coding TCP decoding method provided in this embodiment is applied to the receiving end of the network coding layer, and both of them correspond to each other. Specifically, referring to fig. 3, the method for decoding network coding TCP based on feedback provided in this embodiment includes the following steps:
step 201: when the receiving end receives a coding packet C, the receiving end extracts a coding coefficient vector V from the coding packet C, adds the coding coefficient vector V into a decoding matrix, and performs Gaussian-Jordan elimination on the coding coefficient vector V.
Step 202: judging whether the code coefficient vector V after the elimination becomes an all-zero vector, if so, executing a step 202 a; otherwise, step 202b is performed.
Step 202 a: the coded packet C is discarded.
Step 202 b: adding the load part of the coded packet C into a decoding buffer area; the payload part of the encoded packet C is the data information part of the encoded packet C excluding the header information.
Step 203: and executing Gaussian-Jordan elimination on the load part of the coding packet C, and if the data packets are successfully decoded in sequence, sending the successfully decoded data packets to an upper TCP layer.
Step 204: and sending a response message to the sending end, wherein the response message carries feedback information, and the feedback information is used for enabling the sending end to determine the times Ln of the coding window lock.
In this step, preferably, the feedback information carried in the response message includes a sequence number ack.seq of an oldest invisible packet, a number ack.loss of data packets that a receiving end lacks to successfully decode currently, and a sequence number ack.trigseq of a data packet generated by triggering the response information at the current time;
seq is used to inform the sender which data packets do not need to participate in encoding and retransmission.
Wherein for one C ═ Pi+ q, andcoded packet of, PiFor visible bag, Pl(l>i) As invisible package, Pi+1The oldest invisible package.
Wherein the feedback information is used for enabling the sending end to determine the number Ln of the coded window lock, and comprises:
the sending end determines the number Ln of the current coding window lock by adopting the following formula according to the number ack.loss of the data packets lacked by the receiving end to successfully decode contained in the feedback information, the number last.loss of the data packets lacked by the receiving end to successfully decode contained in the feedback information received in the response message received at the previous moment, and the number Rn of the redundant packets sent by the sending end after sending the data packets with the sequence number ack.trigseq, which is calculated by the sequence number ack.trigseq of the data packets generated by the response message used for triggering the current moment contained in the feedback information:
ln ═ max { Ln + ack.loss-last.loss-Rn,0} formula one
Where ack.loss-last.loss represents the new number of lost packets that occur between two reply messages.
As can be seen from the above, the data processing procedure at the receiving end of the network coding layer is as follows:
(A) when the receiving end receives a coded packet C, the receiving end performs the following steps:
1) and extracting a coding coefficient vector V from the coding packet C, adding the coding coefficient vector V into a decoding matrix, and performing Gaussian-Jordan elimination. And if the code coefficient vector V after the elimination becomes an all-zero vector, the code packet C is a data packet which is linearly related, and the code packet C is discarded. Otherwise, the payload part of the coded packet C is added to the decoding buffer.
2) And performing Gaussian-Jordan elimination on the load part, and delivering the load part to an upper TCP layer if a packet is sequentially solved. And simultaneously generating a feedback ACK which comprises the sequence number ack.seq of the oldest invisible packet, the number ack.loss of the coding packets lacking the full rank of the current decoding matrix (namely the number ack.loss of the data packets lacking the current decoding success of the receiving end) and the sequence number ack.trigseq of the data packets generated by triggering the response information (the feedback ACK packet) at the current moment.
Seq is used to inform the sender which data packets do not need to participate in encoding and retransmission. For one C ═ Pi+ q, andcoded packet of, PiFor visible bag, Pl(l>i) As invisible package, Pi+1The oldest invisible package.
(B) When receiving the ACK from the upper TCP layer, the ACK sent by the TCP layer is discarded. Since the ACK is generated and returned by the network coding layer, the ACK at the TCP layer is not needed since the ACK generated by the network coding layer contains all the required information.
In order to verify the performance of the feedback-based network coding TCP decoding method (FNC algorithm for short) provided by the invention, a comparison test is carried out on an NS2 simulation platform, and the FNC algorithm in the invention is compared with a TCP/NC algorithm only based on preset compensation and a VON algorithm only based on feedback in other related documents. Since VON is only suitable for RTT-based TCP congestion control algorithms, experimental measurements of VON were made only under Vegas, while TCP-FNC and TCPNC were both experimentally compared under Vegas and Reno.
For comparison analysis, two performance indexes of the FNC, TCP/NC and VON, namely, the application layer throughput goodput and the average decoding delay, are compared under Vegas. The corresponding indices are then compared under Reno for FNC and TCP/NC. The three detailed protocol characteristics are shown in table 1 below:
TABLE 1 protocol characteristics
Scheme(s) Preset redundancy Feedback TCP-Vegas TCP-Reno
TCP/NC -
VON - -
FNC
The experimental topology structure is a two-hop wireless network, a sending end, a receiving end and a router, and the capacity of each link is C. The first link is a wired link and the propagation experiment is 10 ms. The last link is a wireless link, and the packet loss rate of the link is P. Here, the influence of the packet loss rate decoding delay is firstly studied, and at this time, the bandwidth is set to be a fixed value of 1 Mbps. And finally, changing the bandwidth to be 10Mbps and 20Mbps to research the influence of the bandwidth on the decoding delay. According to the relevant literature, the theoretical value of the redundancy factor R is 1/(1-P). However, according to the experimental results of some documents, the actually optimal redundancy should be slightly higher than the theoretical value, so that a redundancy adjustment factor a is introduced into the experimental time delay to set the preset redundancy value in the experimental time delay to be 1+ a (R-1). The parameters are set as in table 2 below:
TABLE 2 parameter settings
Parameter(s) Value of
Packet loss rate P 0.02,0.04,0.06,0.08,0.1
Redundant adjustment factor a 1.5,2
Coding window W 3,6
Link Capacity C (Mbps) 1,10,30
The experimental results for multiple bandwidths are shown in table 3:
TABLE 3 average decoding delay(s) -10M/20M
As can be seen from table 3, the feedback-based network coding TCP decoding method (FNC algorithm for short) provided by the present invention has obvious advantages in decoding delay compared to other decoding methods (TCPNC algorithm and VON algorithm).
Based on the above analysis, the feedback-based network coding TCP decoding method provided by the present application has the following advantages:
1. the feedback-based network coding TCP decoding method provided by the invention combines the forward preset redundancy and the feedback-based coding window adjustment. Active compensation can be generated according to a basic network environment, and reasonable coding window adjustment can be made based on feedback to accelerate decoding matrix full rank and finish decoding.
2. The feedback-based network coding TCP decoding method provided by the invention can well cope with the dynamic change of the network condition, the preset redundancy factor is used for resisting the average packet loss of the network, and in addition, the receiving end can feed back the real packet loss information of the network to the sending end in real time. Even if the packet loss information of the network fluctuates, the invention can adjust the coding according to the real-time packet loss information and accelerate the decoding of the receiving party.
3. In an existing decoding method based on feedback, ACK informs the sending end of packet loss information, i.e., the number N of data packets required by the decoding end for full rank. The sending end dynamically compensates N data packets to the decoding end through the feedback information. The coding window for this type of technique contains all packets that are not ACK. All packet losses are masked by the coding. This type of technique is only applicable to RTT-based TCP congestion control mechanisms. In addition, unlike the preset compensation of TCP/NC, this network coded TCP mechanism must compensate for packet loss by at least one RTT. And once packet loss occurs within one RTT, even if only one packet loss occurs, the round of compensation fails to successfully decode. Resulting in greater decoding latency. The network coding TCP decoding method based on feedback provided by the invention does not simply add redundancy. The method can compensate the real packet loss without influencing the judgment of the receiver on the congestion. The method is not only suitable for a TCP congestion control algorithm based on RTT, but also suitable for a congestion control algorithm based on packet loss.
The third embodiment of the present invention further provides a feedback-based network coding TCP decoding apparatus, referring to fig. 4, including: an updating unit 41, a determining unit 42, a judging unit 43, and a processing unit 44;
an updating unit 41, configured to update, when receiving a TCP data packet sent by an upper TCP layer, the number Sn of coding packets that needs to be sent currently according to a current link packet loss rate:
Sn=Sn+R
wherein, R is a redundancy coefficient determined according to the packet loss rate of the current link, R is 1/(1-P), and P is the packet loss rate of the current link;
a determining unit 42, configured to determine the number Ln of current coded window locks according to feedback information carried in a response message sent by a receiving end and received at the current time;
a judging unit 43, configured to judge whether the current number Ln of coded window locks is 0;
a processing unit 44, configured to fix the encoding window and encode the W TCP data in the encoding window if the determining unit 43 determines that the current number Ln of encoding window locks is not 0Packet according to the number of coded packetsPerforming preset encoding, and encodingSending the data packet to a receiving end; where W is the size of the coding window.
The apparatus of this embodiment can be used to perform the method of the first embodiment, and the principle and technical effects are similar, and will not be described in detail here.
The fourth embodiment of the present invention further provides another feedback-based network coding TCP decoding apparatus, referring to fig. 5, including: a first elimination unit 51, a judgment unit 52, a discarding unit 53, a second elimination unit 54, and a transmission unit 55;
a first elimination unit 51, configured to, when receiving an encoded packet C, extract an encoded coefficient vector V from the encoded packet C, add the encoded coefficient vector V to a decoding matrix, and perform gaussian-jordan elimination on the encoded coefficient vector V;
a judging unit 52, configured to judge whether the code coefficient vector V after the elimination is an all-zero vector;
a discarding unit 53, configured to discard the encoded packet C when the determining unit determines that the encoded coefficient vector V after the elimination is an all-zero vector;
a second elimination unit 54, configured to add the load portion of the coded packet C into a decoding buffer and perform gaussian-jordan elimination on the load portion of the coded packet C when the determination unit determines that the coding coefficient vector V after elimination is not an all-zero vector;
a sending unit 55, configured to send the successfully decoded data packet to an upper TCP layer when the second syntax element unit successfully decodes the data packet;
the sending unit 55 is further configured to send a response message to the apparatus according to the third embodiment, where the response message carries feedback information, and the feedback information is used to enable the apparatus according to the third embodiment to determine the number Ln of the coded window lock.
The apparatus of this embodiment can be used to perform the method of the second embodiment, and the principle and technical effects are similar, and will not be described in detail here.
The above examples are only for illustrating the technical solutions of the present invention, and not for limiting the same; although the present invention has been described in detail with reference to the foregoing embodiments, it will be understood by those of ordinary skill in the art that: the technical solutions described in the foregoing embodiments may still be modified, or some technical features may be equivalently replaced; and such modifications or substitutions do not depart from the spirit and scope of the corresponding technical solutions of the embodiments of the present invention.

Claims (10)

1. A network coding TCP decoding method based on feedback is characterized by comprising the following steps:
when receiving a TCP data packet sent by an upper Transmission Control Protocol (TCP) layer, a sending end updates the number Sn of coding packets needing to be sent at present according to the packet loss rate of a present link:
Sn=Sn+R
wherein, R is a redundancy coefficient determined according to the packet loss rate of the current link, R is 1/(1-P), and P is the packet loss rate of the current link;
determining the number Ln of the current coding window lock according to the feedback information carried in the response message sent by the receiving end and received at the current moment;
if the number Ln of times of locking the current coding window is not 0, fixing the coding window, and counting the W TCP data packets in the coding window according to the number of the coding packetsPerforming preset encoding, and encodingSending the data packet to a receiving end;
where W is the size of the coding window.
2. The method of claim 1, wherein if the current number Ln of code window locks is 0, sliding the code window to include no more than W TCP packets received recently, and counting the number of TCP packets in the code window according to the number of code packetsPerforming preset encoding, and encodingAnd sending the data packet to a receiving end.
3. The method of claim 1 or 2, wherein the determining the current number Ln of the coded window locks according to the feedback information carried in the response message sent by the receiving end and received at the current time comprises:
determining the number Ln of the current coding window lock by adopting the following formula I according to the number ack.loss of data packets lacked by the receiving end to decode successfully and contained in the feedback information carried in the response message received at the current moment, the number last.loss of data packets lacked by the receiving end to decode successfully and contained in the feedback information carried in the response message received at the last moment, and the number Rn of redundant packets sent by the sending end after sending the data packets with the sequence number ack.trigSeq and calculated according to the sequence number ack.trigSeq of the data packets generated by the response information used for triggering the response message at the current moment and contained in the feedback information carried in the response message received at the current moment:
ln ═ max { Ln + ack.loss-last.loss-Rn,0} formula one
Where ack.loss-last.loss represents the new number of lost packets that occur between two reply messages.
4. Method according to claim 1 or 2, characterized in that the coded data is encodedAfter the data packets are sent to the receiving end, the method further comprises the following steps of updating Ln:
5. method according to claim 1 or 2, characterized in that the coded data is encodedAfter the data packets are sent to the receiving end, the method further comprises updating Sn to:
6. the method according to claim 1, wherein if the received TCP packet sent by the upper TCP layer is a retransmission packet, the TCP packet is directly sent to the receiving endNext, the process is carried out.
7. A network coding TCP decoding method based on any one of the methods of claims 1-6, characterized by comprising:
when the receiving end receives a coding packet C, the receiving end extracts a coding coefficient vector V from the coding packet C, adds the coding coefficient vector V into a decoding matrix, and performs Gaussian-Jordan elimination on the coding coefficient vector V;
if the coding coefficient vector V after the elimination becomes a full zero vector, discarding the coding packet C, otherwise adding the load part of the coding packet C into a decoding buffer area; wherein, the load part of the coding packet C is the data information part of the coding packet C except the head information;
executing Gaussian-Jordan elimination on the load part of the coding packet C, and if the data packets are decoded successfully in sequence, sending the successfully decoded data packets to an upper TCP layer;
and sending a response message to the sending end, wherein the response message carries feedback information, and the feedback information is used for enabling the sending end to determine the times Ln of the coding window lock.
8. The method according to claim 7, wherein the feedback information carried in the response message includes a sequence number ack.seq of an oldest invisible packet, a number ack.loss of data packets that a receiving end lacks to successfully decode currently, and a sequence number ack.trigseq of a data packet generated by triggering the response information at the current time;
seq is used for informing a sending end which data packets do not need to participate in coding and retransmission; for one C ═ Pi+ q, andcoded packet of, PiFor visible bag, Pl(l>i) As invisible package, Pi+1Is the oldest invisible pack of the packages that is,are encoded coefficients.
9. A feedback-based network coding TCP decoding apparatus, comprising:
an updating unit, configured to update, when receiving a TCP data packet sent by a TCP layer in an upper layer, the number Sn of coding packets that needs to be sent currently according to a current link packet loss rate:
Sn=Sn+R
wherein, R is a redundancy coefficient determined according to the packet loss rate of the current link, R is 1/(1-P), and P is the packet loss rate of the current link;
the determining unit is used for determining the current frequency Ln of the coding window lock according to the feedback information carried in the response message received at the current moment and sent by the receiving end;
the judging unit is used for judging whether the current frequency Ln of the coding window lock is 0 or not;
a processing unit, configured to fix the encoding window and number of W TCP packets in the encoding window according to the number of encoding packets when the determining unit determines that the current number Ln of encoding window locks is not 0Performing preset encoding, and encodingSending the data packet to a receiving end; where W is the size of the coding window.
10. A feedback-based network coding TCP decoding apparatus according to claim 9, comprising:
the first elimination unit is used for extracting a coding coefficient vector V from a coding packet C when the coding packet C is received, adding the coding coefficient vector V into a decoding matrix, and performing Gaussian-Jordan elimination on the coding coefficient vector V;
a judging unit, configured to judge whether the code coefficient vector V after the elimination is an all-zero vector;
a discarding unit, configured to discard the encoded packet C when the determining unit determines that the encoded coefficient vector V after the cell elimination is an all-zero vector;
a second elimination unit, configured to add the load portion of the coded packet C to a decoding buffer area and perform gaussian-jordan elimination on the load portion of the coded packet C when the determination unit determines that the coding coefficient vector V after elimination is not an all-zero vector;
the transmitting unit is used for transmitting the successfully decoded data packet to an upper TCP layer when the second element eliminating unit successfully decodes the data packet;
the sending unit is further configured to send a response message to the apparatus according to claim 9, where the response message carries feedback information, and the feedback information is used to enable the apparatus according to claim 9 to determine the number Ln of coded window locks.
CN201610282604.9A 2016-04-29 2016-04-29 Feedback-based network code TCP (Transmission Control Protocol) decoding method and device Pending CN106027208A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610282604.9A CN106027208A (en) 2016-04-29 2016-04-29 Feedback-based network code TCP (Transmission Control Protocol) decoding method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610282604.9A CN106027208A (en) 2016-04-29 2016-04-29 Feedback-based network code TCP (Transmission Control Protocol) decoding method and device

Publications (1)

Publication Number Publication Date
CN106027208A true CN106027208A (en) 2016-10-12

Family

ID=57081607

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610282604.9A Pending CN106027208A (en) 2016-04-29 2016-04-29 Feedback-based network code TCP (Transmission Control Protocol) decoding method and device

Country Status (1)

Country Link
CN (1) CN106027208A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109639684A (en) * 2018-12-17 2019-04-16 北京微吼时代科技有限公司 The method and system of dynamic application bandwidth
CN110224788A (en) * 2019-05-27 2019-09-10 中国联合网络通信集团有限公司 A kind of method and device of data transmission
CN110430018A (en) * 2019-08-02 2019-11-08 电子科技大学 A kind of sliding window BATS decoding transmission method of balance protection
CN113259432A (en) * 2021-05-12 2021-08-13 北京杰迈科技股份有限公司 Communication method based on TCP (Transmission control protocol) and robot remote control system
CN115134047A (en) * 2021-03-29 2022-09-30 维沃移动通信有限公司 Transmission method, device, equipment and readable storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101714915A (en) * 2009-11-02 2010-05-26 清华大学 Data retransmission method and system
CN102013966A (en) * 2010-11-30 2011-04-13 北京星河亮点通信软件有限责任公司 Data packet retransmission method based on network coding
CN102904689A (en) * 2012-10-15 2013-01-30 哈尔滨工业大学深圳研究生院 Improved method for transmission control protocol based on network coding
CN103200192A (en) * 2013-03-28 2013-07-10 中国科学院声学研究所 Encoding and decoding method used for data packets by network encoding layer

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101714915A (en) * 2009-11-02 2010-05-26 清华大学 Data retransmission method and system
CN102013966A (en) * 2010-11-30 2011-04-13 北京星河亮点通信软件有限责任公司 Data packet retransmission method based on network coding
CN102904689A (en) * 2012-10-15 2013-01-30 哈尔滨工业大学深圳研究生院 Improved method for transmission control protocol based on network coding
CN103200192A (en) * 2013-03-28 2013-07-10 中国科学院声学研究所 Encoding and decoding method used for data packets by network encoding layer

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JIYAN SUN,YAN ZHANG: "TCP-FNC: A Novel TCP with Network Coding for Wireless Networks", 《2015 IEEE INTERNATIONAL CONFERENCE ON COMMUNICATIONS》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109639684A (en) * 2018-12-17 2019-04-16 北京微吼时代科技有限公司 The method and system of dynamic application bandwidth
CN110224788A (en) * 2019-05-27 2019-09-10 中国联合网络通信集团有限公司 A kind of method and device of data transmission
CN110430018A (en) * 2019-08-02 2019-11-08 电子科技大学 A kind of sliding window BATS decoding transmission method of balance protection
CN115134047A (en) * 2021-03-29 2022-09-30 维沃移动通信有限公司 Transmission method, device, equipment and readable storage medium
CN113259432A (en) * 2021-05-12 2021-08-13 北京杰迈科技股份有限公司 Communication method based on TCP (Transmission control protocol) and robot remote control system
CN113259432B (en) * 2021-05-12 2022-07-08 北京杰迈科技股份有限公司 Communication method based on TCP protocol and robot remote control system

Similar Documents

Publication Publication Date Title
CN104159166B (en) Based on the live video data transmission error control method of mobile network's packet loss state
CN108111434B (en) Reliable transmission method of aviation ad hoc network based on reliable UDP (user Datagram protocol) and fountain codes
CN107508655B (en) Self-adaptive end-to-end network coding transmission method
EP1786136B1 (en) Packet retransmission apparatus, communication system and program
EP2810180B1 (en) Multi-path data transfer using network coding
CN106027208A (en) Feedback-based network code TCP (Transmission Control Protocol) decoding method and device
WO2016045332A1 (en) Method and device for encoding parameter adjustment and feedback information processing
CN107547436B (en) Coding and decoding method of transmission control protocol based on network coding
US20150117468A1 (en) Apparatus and method for transmitting data
US10320520B2 (en) Communication device, system and method
CN107592185B (en) Forward retransmission method suitable for network coding transmission control protocol
WO2012174763A1 (en) Tcp-based adaptive network control transmission method and system
CN107634823B (en) Data transmission method of transmission control protocol based on network coding
CN114337928A (en) Real-time video transmission method based on ARQ and FEC self-adaptive selection
Luo et al. FRUDP: A reliable data transport protocol for aeronautical ad hoc networks
CN113329413B (en) Multipath transmission data pre-scheduling method and system for high-speed rail scene
CN104980365A (en) TCP transmission acceleration method based on continuous packet losing congestion judgment
CN110602568B (en) Video stream transmission packet loss retransmission method, device and storage device based on RTP
CN104270320B (en) A kind of method of distributed communication system active flow control
CN115134307B (en) Load balancing method based on packet loss rate coding in cloud computing
Sarwar et al. eCMT-SCTP: Improving performance of multipath SCTP with erasure coding over lossy links
Thai et al. Online multipath convolutional coding for real-time transmission
Ma et al. Sliding-window based batch forwarding using intra-flow random linear network coding
CN106100797B (en) A kind of method for transmitting deep space file based on the asynchronous acceleration re-transmission policy of LTP
CN118316941B (en) Data intelligent segmentation method and system based on FTTR gateway

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20161012

RJ01 Rejection of invention patent application after publication