Background technology
During transmission of digital signals, because channel transfer characteristic is paid no attention to and thought of The noise, signal waveform can degenerate on actual channel, and the packet that receiving node is received just might be damaged.Simultaneously, because queuing in the network, influence such as congested, packet also might be lost in transmission course.For the packet that recovers to make mistakes in the transmission course or lose, must use effective error control method.
June nineteen ninety, the 9th IEEE computer and federation of corresponding society (INFOCOM ' 90) the 1st volume 124-131 page or leaf disclose one piece of article, the author is N.Shacham, P.McKenney etc., article name is " data packet recovery method that uses coding and cache management in the express network " (Packet recovery in high-speed networks using coding andbuffer management), provided multiple forward error correction data bag restoration methods, wherein the restoration methods of individual data bag is described below.
Fig. 1 is the schematic diagram of existing redundant correcting bag generation method.At sending node, the redundant correcting bag is to be generated according to certain coding method by the packet of the k in this group in each data packet group, and as can be seen, every group redundant correcting bag only is associated with packet in this group.This error correction packets generation method may further comprise the steps:
1), k packet continuous in time be as one group, the packet of transmission has sequence-number field and Cyclical Redundancy Check (Cyclic Redundancy check, CRC) check field;
2), at sending node, with k packet step-by-step xor operation in a group (Exclusive-Or XOR) generates error correction packets:
i=0,1,2,…m-1
Wherein, C
J, iBe the i position of j packet, C
C, iBe the i position of error correction packets, m represents that each data is surrounded by m bit.F among the figure
0() represents a kind of coding method, used parity check coding method here.
The code efficiency of said method is k/k+1, and k is all packet numbers in a group, and k+1 is all packet numbers and a redundancy packet number sum in a group.As seen, redundancy packet is few more, and code efficiency is high more.
The method of the packet that recovers in the packet receiving course to make mistakes or lose may further comprise the steps:
1), each packet that receives is carried out CRC check, and judged whether data-bag lost according to sequence number;
2) if in this group packet that receiving node is received, there is not packet to make mistakes or lose, ignore the redundant correcting bag of following;
3) if in this group packet that receiving node is received, there are and only have data to contract out mistake or lose, can know according to sequence number the position of this packet to be assumed to be t packet in the data packet group, utilize the XOR relation between the packet, then
I=0,1,2 ..., m-1, and j ≠ t
The packet of makeing mistakes or losing can recover fully.
As shown in the above, existing forward error correction (Forward Error Collection, FEC) data packet recovery method has the place of its deficiency: redundant corrected data packets only with own place group in packet relevant, the place one's entire reliance upon error correcting capability of error correction packets in this group of error correcting capability; In data package can the data recovered bag number, be subjected to the restriction of the error correcting capability of the corrected data packets in this group; In order to improve error correcting capability, must increase the length of error correction packets, will increase the burden of bandwidth consumption so; Because the error correcting capability of error correction packets is limited in data package, this method also is not suitable for makeing mistakes or losing of continuous packet.
Embodiment
Below in conjunction with the drawings and specific embodiments the present invention is elaborated.
Fig. 2 is the schematic diagram of redundant correcting bag generation method according to an embodiment of the invention.In the present embodiment, total l data package is associated, and promptly each a data packet group and front l-1 data package is associated, and generates the error correction packets of this group with parity check coding method.
The following describes the process that generates the redundant correcting bag at sending node.
Each packet that will send among the present invention all has the CRC check field, is used for the error code of check data bag itself.Each packet also has sequence-number field, is used for the position that designation data wraps in sequence.When data-bag lost, can number know which data-bag lost by checking sequence.For the sake of simplicity, stipulate in the present embodiment that each length of data package is fixed as mbits.Certainly this not necessarily, length of data package can change.
At first, with continuous data packet stream segmentation, a k continuous in time packet is as a data package.Here stipulate that the packet number in each data packet group fixes, but this neither be necessary.U supposes k<m as group sequence number (u 〉=0).
Then, in each data packet group, add a redundant data packets that is used for error correction, be called error correction packets.This error correction packets is that the information by current data package and front l-1 data package calculates with parity check coding method, that is to say that l continuous in time in the present embodiment data package is interrelated.Because the coding method that present embodiment adopts, each error correction packets has only the recovery capability of a packet.
Suppose that u data package is the current data package, a current data package and front l-1 data package is associated, according to the error correction packets B in the parity check coding method generation current data package
uFormula as follows:
Wherein, B
J, u(u-l+1≤j≤u) is defined as in l the data package that is associated packet in j the data package for B
uContribution.As seen B
uAll relevant with the information of each data packet group of l data package.
B so
J, uHow to obtain? B
J, uBy all packet A to the j group
J, u(0≤n≤k-1) be offset xor operation (XOR) to obtain,
Wherein, s represents the bit of packet skew, and the computational methods of s will be discussed in more detail below.
A
J, n(n packet in j data package of the expression of 0≤n≤k-1), it is a capable single-row vector of m in formula (2)
A
J, n, 0The 0th bit of representing j n packet in the data package ..., the rest may be inferred, A
J, n, mThe m bit of representing j n packet in the data package.
I
mRepresentation unit diagonal matrix, m are line number and columns; 0
S (k-1) * m0 matrix of expression s (k-1) row m row ..., 0
S (k-n-1) * m0 matrix of expression s (k-n-l) row m row; 0
S * m0 matrix of the capable m row of expression s ..., 0
Ns * m0 matrix of the capable m row of expression ns.
In the present embodiment, for simply, length of data package is fixed as the m bit, the packet number of each data packet group also all is k, but this just the present invention for convenience of explanation, those skilled in the art should be able to understand data packet length among the present invention by the present invention and the packet number of data packet group all can change.
Fig. 3 is that j organizes the contribution B of packet to current group of error correction packets according to an embodiment of the invention
J, uThe calculating schematic diagram.The result of calculation of this schematic diagram is identical with the result that formula (1) and (2) obtain, and Fig. 3 is the schematic form with concrete packet, and formula (1) and (2) are the forms with math equation.B
I, uCalculating be for A
I, n(the skew xor operation (XOR) of 0≤n≤k-1).The 1st packet (n=0) in j data package is placed on the 1st row; The 2nd packet (n=1) is placed on the 2nd row, and is offset the s bit to the right, s=jmod (l) wherein, and just j is divided by the remainder of l, and l is the data packet group number that is associated here, and j is the sequence number of the data packet group that receives of receiving node; Corresponding, it is capable that n packet is placed on n, and be offset the ns bit to the right.Fill with 0 in the room that is produced, and obtains a matrix.This matrix is just obtained B with xor operation
J, u
Used parity check coding method computing error correction bag in the present embodiment, also can use other coding method, as reed solomon coding method or other coding method.
In the present embodiment, can obtain the redundancy rate R of this coding method
e, redundancy rate is defined as the ratio of total redundancy packet length and total long data packet, according to formula (1),
Traditional packet FEC method with a packet recovery capability, redundancy rate R
tJustice is
For most application, data packet length m is far longer than k and l, R like this
eVery near R
tCompare with the redundancy rate of traditional data packet recovery method, it is big that the redundancy rate of the inventive method does not become basically.Particularly work as l and equal 1, that is to say that redundant data packets only depends on the notebook data group and produces, we obtain R
e=R
t
After error correction packets generated, after all packets sent in one group, the error correction packets of this group was followed by transmission.
The following describes corresponding data packet recovery method.After receiving node receives a data package, just carry out error detection occurs and recovery.
At first, each packet that receives is carried out CRC check, and whether judged whether data-bag lost continuously according to sequence number.Here suppose not go wrong in the relevant data packet group in current data package front, perhaps have mistake still successfully to recover the packet of makeing mistakes or losing.
If in the current group of packet that receiving node is received, there is not packet to make mistakes or lose, ignore the redundant correcting bag of following.
If there is and only has 1 data to contract out mistake in the current data package, according to top supposition, error correction is surrounded by the ability of recovering a packet, then can recover the packet of makeing mistakes or losing by this error correction packets, establishes this and makes mistakes or the packet sequence number of losing is kl.
According to hypothesis, the packet that does not have data-bag lost, makes mistakes or lose, makes mistakes in the l-1 that is associated previously data package recovers, and u data package is the current data package, B
uBe the error correction packets of current data package, then according to the generation method of error correction packets as can be known, front l-1 data package is for B
uContribution B
J, u(u-l+1≤j≤u-1) is known, with they substitution formula (1), obtains the contribution B of current group of packet to current group of error correction packets
U, u,
Then with B
U, uSubstitution formula (2) obtains
Any packet A then
J, nLose or make mistakes and from formula (4), to be restored.
If n is arranged in the current data package, and (2≤n≤l) individual data contract out mistake, and the error correcting capability of current data package is a packet, the error correction packets that then must wait for follow-up data packet group arrives, and uniting a plurality of error correction packets provides the recovery capability of the individual packet of l (l 〉=2) at the most:
Suppose that u data package is the current data package, the packet of losing in the current data package is
(0≤n
0<n
1<...<n
(l-1)≤ k-1), and back l-1 data package do not have data-bag lost;
Error correction packets B with the current data package
uAnd all packets can obtain packet in the current data package to the contribution B of current group error correction packets to the contribution substitution formula (1) of u data package in front l-1 the data package being associated of current data package
U, u, see formula (3),
After follow-up l-1 data package arrives, with the error correction packets B of u+1 data package
U+1And all packets except that current group of u can obtain the contribution B of current data package to the error correction packets of u+1 data package to the contribution substitution formula (1) of u+1 data package in front l-1 the data package being associated of u+1 data package
U, u+1,
Equally, can obtain the contribution B of current data package to the error correction packets of u+2 data package
U, u+2..., the current data package is to the contribution B of the error correction packets of u+l-1 data package
U, u+l-1,
Above-mentioned these values, known related data packets value and error correction packets value are updated to formula (2), obtain following formula after dissolving,
In this formula, B
E0, B
E1, B
E2..B
E (u+l-1)Be known value, finding the solution this equation group can obtain
(0≤n
0<n
1<...<n
(l-1)≤ k-1).
Situation about above relating to is such: if in the current data package n is arranged
1(2≤n
1≤ l) individual data contract out mistake, and the error correcting capability of current data package is a packet, then must wait for follow-up n
1The error correction packets of individual data package arrives, and uniting a plurality of error correction packets provides n
1The recovery capability of individual packet.Be depicted as l the schematic diagram that the data package carries out error correction to u1 data package as Fig. 4 (a) by being associated.If so follow-up n
1Does individual data package also have packet to make mistakes or lose? if this occurs, then must recover earlier wherein last error data package, and the like, up to makeing mistakes or lose all and recover in all data packet group.This is above doing detailed description,,
Fig. 4 (b) expression is carried out the schematic diagram of error correction by l the data package that is associated to makeing mistakes in two data packages.Shown in the figure, suppose follow-up n at u1
1Data-bag lost is also arranged, as at u in-1 data packet group
2(u in the individual data package
1<u
2≤ u
1+ n
1-1) n is arranged
2Individual data packet loss.Because u
1The recovery of data packet group must be used u
2So the information of data packet group is u
1The recovery of data packet group must be waited until u
2Data packet group is carried out after recovering successfully.u
1Data packet group has the packet mistake, and according to the generating algorithm of error correction packets, u
iData packet group (u
2≤ u
i≤ u
1+ error correction packets in l-1) generates all and u
1Data packet group is relevant, like this u
iData packet group (u
2≤ u
i≤ u
1+ error correction packets in l-1) all can not be used for other error correction data packet.Sequence number (u only
1+ l-1) afterwards data packet group can be used for u
2The error correction of data packet group.If satisfy
u
1+ l+n
2-1≤u
2+ l-1, perhaps u
1+ n
2≤ u
2... ... ... ... .. (7)
Then from sequence number (u
1+ l) to (u
1+ l-1+n
2) n
2Individual data package can be united and is used for u
2The error correction of data packet group, the promptly selected associated data package that is used for error correction can not have makes mistakes, otherwise losing of packet can not be resumed.The recovery that also can use the same method that makes mistakes in other the follow-up data package.
Than traditional data packet recovery method, under the situation of close code efficiency and redundancy, the inventive method has tangible advantage.Traditional data packet recovery method in a data package can data recovered the number of bag, be subjected to the restriction of the error correcting capability of the corrected data packets in this group, if just cannot recover when makeing mistakes error correcting capability above error correction packets.And in the method for the present invention, when the error data bag in the data package surpasses the error correcting capability of error correction packets in this group,, provide bigger error correcting capability by uniting follow-up error correction packets, than original method, bigger error correcting capability is arranged.And the present invention can effectively recover the packet of makeing mistakes or losing, thereby reduces the error rate in the transmission course.
Though the present invention is described, yet according to the description of front, many to substitute, revise with changing be conspicuous for a person skilled in the art in conjunction with specific embodiment.Therefore, the present invention will comprise that this within design that all drop on accompanying Claim and the scope substitutes, revises and change.