The present disclosure generally relates to communication method and system based on network coding.
Network coding has emerged as an approach to the operation of communication networks, especially wireless networks. In this scheme, a network coding layer is embedded below Transmission Control Protocol (TCP) layer and above Internet Protocol (IP) layer on a source side or a receiver side to improve the capacity and efficiency of network transmissions. However, the computational overhead of the network coding layer is high.
In one embodiment, a communication method is provided. The method may include: obtaining N native data packets; obtaining M linearly independent coefficient vectors; encoding the N native data packets using the M linearly independent coefficient vectors respectively, to obtain M encoded data packets; and sending, through a network, at least one of the N native data packets and the M encoded data packets together, where N≥1 and M≥1.
In some embodiments, M may be determined based on a packet loss rate of the network and N.
In some embodiments, each of the data packets sent out through the network may have a header which contains a piece of information indicating whether the data packet is an encoded data packet or a native data packet.
In some embodiments, the M linearly independent coefficient vectors may be obtained from a look up table based on N and M.
In some embodiments, at least one of the M encoded data packets may have a header which contains a piece of information indicating N and M.
In some embodiments, each of the M encoded data packets may have a header which contains a sequence number of the encoded data packet.
In one embodiment, a communication method is provided. The method may include: receiving, through a network, R encoded data packets and S native data packets, where the R encoded data packets are generated based on N native data packets, and the N native data packets include the S native data packets; obtaining R linearly independent coefficient vectors; and decoding the R encoded data packets using the R linearly independent coefficient vectors and the S native data packets to obtain the N native data packets.
In some embodiments, each of the data packets received through the network may have a header which contains a piece of information indicating whether the data packet is an encoded data packet or a native data packet.
In some embodiments, at least of one of the R encoded data packets may have a header which contains a piece of information indicating N and M, M stands for the total number of encoded data packets which are generated based on the N native data packets, and the R linearly independent coefficient vectors may be obtained from a look up table based on N and M.
In some embodiments, each of the R encoded data packets may have a header which contains a sequence number of the encoded data packet, and the R linearly independent coefficient vectors may be selected based on N, M and sequence numbers of the R encoded data packets.
In one embodiment, a communication system is provided. The communication system may include a transceiver and a processing device configured to: obtain N native data packets; obtain M linearly independent coefficient vectors; encode the N native data packets using the M linearly independent coefficient vectors respectively, to obtain M encoded data packets; and control the transceiver to send, through a network, at least one of the N native data packets and the M encoded data packets together, where N≥1 and M≥1.
In some embodiments, M may be determined based on a packet loss rate of the network and N.
In some embodiments, each of the data packets sent out through the network may have a header which contains a piece of information indicating whether the data packet is an encoded data packet or a native data packet.
In some embodiments, the M linearly independent coefficient vectors may be obtained from a look up table based on N and M.
In some embodiments, at least one of the M encoded data packets may have a header which contains a piece of information indicating N and M.
In some embodiments, each of the M encoded data packets may have a header which contains a sequence number of the encoded data packet.
In one embodiment, a communication system is provided. The system may include a transceiver and a processing device configured to: after the transceiver receives, through a network, R encoded data packets and S native data packets, obtain R linearly independent coefficient vectors, where the R encoded data packets are generated based on N native data packets, and the N native data packets include the S native data packets; and decode the R encoded data packets using the R linearly independent coefficient vectors and the S native data packets to obtain the N native data packets.
In some embodiments, each of the data packets received through the network may have a header which contains a piece of information indicating whether the data packet is an encoded data packet or a native data packet.
In some embodiments, at least of one of the R encoded data packets may have a header which contains a piece of information indicating N and M, M stands for the total number of encoded data packets which are generated based on the N native data packets, and the R linearly independent coefficient vectors may be obtained from a look up table based on N and M.
In some embodiments, each of the R encoded data packets may have a header which contains a sequence number of the encoded data packet, and the R linearly independent coefficient vectors may be selected based on N, M and sequence numbers of the R encoded data packets.
The foregoing and other features of the present disclosure will become more fully apparent from the following description and appended claims, taken in conjunction with the accompanying drawings. Understanding that these drawings depict only several embodiments in accordance with the disclosure and are, therefore, not to be considered limiting of its scope, the disclosure will be described with additional specificity and detail through use of the accompanying drawings.
In the following detailed description, reference is made to the accompanying drawings, which form a part hereof. In the drawings, similar symbols typically identify similar components, unless context dictates otherwise. The illustrative embodiments described in the detailed description, drawings, and claims are not meant to be limiting. Other embodiments may be utilized, and other changes may be made, without departing from the spirit or scope of the subject matter presented here. It will be readily understood that the aspects of the present disclosure, as generally described herein, and illustrated in the Figures, can be arranged, substituted, combined, and designed in a wide variety of different configurations, all of which are explicitly contemplated and make part of this disclosure.
In S101, obtaining N native data packets.
In S103, obtaining M linearly independent coefficient vectors.
In some embodiments, the M linearly independent coefficient vectors may be generated based on a random number generation algorithm. For example, elements of a coefficient vector are randomly selected from a field with a size of 256, and linearly independent estimation processes may be performed on the random generated coefficient vectors.
In some embodiments, the M linearly independent coefficient vectors may be selected from a look up table based on N and M. The look up table may be stored in the source side. The look up table includes a plurality of sets of linearly independent coefficient vectors. Each set of linearly independent coefficient vectors corresponds to a different pair of native data packet quantity and encoded data packet quantity. An example of the look up table is shown in Table 1. For example, if M=M4 and N=N3, M linearly independent coefficient vectors in a set of S43 may be selected. Because the M linearly independent coefficient vectors are selected from the look up table, linearly independent estimation processes performed on the coefficient vectors are not needed. Therefore, the computational overhead on the source side is reduced.
In S105, encoding the N native data packets using the M linearly independent coefficient vectors respectively, to obtain M encoded data packets.
In some embodiments, each of the M encoded data packets is a linear combination of the N native data packets based on a corresponding linearly independent coefficient vector of the M linearly independent coefficient vectors. For example, each of the M encoded data packets are obtained by Equation (1):
q=Σ
i=1
i=Nαipi Equation (1)
where q represents one of the M encoded data packets, pi represents an ith data packet of the N native data packets, and αi represents an ith element of a corresponding coefficient vector.
In S107, appending each of the M encoded data packets and at least one of the N native data packets with a header which contains a piece of information indicating whether the data packet is an encoded data packet or a native data packet.
The M encoded data packets and the at least one of the N native data packets may be sent out through a network in subsequent steps. Due to the random packet loss of the network, the total number of data packets sent out should be chosen carefully, so that the receiver side can receive enough data packets to obtain the N native data packets. In some embodiments, the number of the data packets sent out may be greater than N. In some embodiments, the number of the data packets sent out may be determined based on a packet loss rate of the network and N.
In some embodiments, the number of the data packets sent out may be calculated by Equation (2):
K=N/(1−Pe) Equation (2)
where K represents the number the data packets sent out, and Pe represents the packet loss rate of the network.
After the number of the data packets sent out is determined, each of the data packets sent out may be appended with a header which contains a piece of information indicating whether the data packet is an encoded data packet or a native data packet.
The header 300 may further include N “Starti” fields, N “Endi” fields and N “αi” fields. For encoding operations on the source side, the N native data packets are adjusted to have a fixed packet length. The “Starti” field may indicate the starting byte of an ith data packet in a corresponding fixed-length data packet, and the “Endi” field may indicate the last byte of the ith data packet in the corresponding fixed-length data packet. The “αi” field represents an ith coefficient used for the ith data packet. For the encoded data packets, the n “αi” fields represent a corresponding coefficient vector of an encoded data packet. For the native data packets, the “αi” field of an ith native data packet is set to 1, and other “α” fields of the ith native data packets is set to 0. Therefore, the n “αi” fields of the header 300 can indicate whether the data packet is an encoded data packet or a native data packet.
In some embodiments, in the case of the M linearly independent coefficient vectors are selected from a look up table based on N and M, a header 400, as shown in
Referring to
Referring to
In S109, sending, through the network, the M encoded data packets and the at least one of the N native data packets together.
As shown in
At the receiver side, instead of the N native data packets, encoded data packets and native data packets may be received.
In S111, receiving, through the network, R encoded data packets and S native data packets.
As shown in
Because the random packet loss of the network, maybe not all of the M encoded data packets and the at least one native data packets sent by the source side can be received by the receiver side. In some embodiments, R of the M encoded data packets and S of the at least one of the N native data packets are received by the receiver side. Until the number of the data packets in the decoding buffer reaches N, the N native data packets can be obtained by decoding the data packets in the decoding buffer. That is, a sum of the R encoded data packets and the S native data packets should be equal to or greater than N.
In S113, obtaining R linearly independent coefficient vectors.
The network coding layer 213 can determine whether the data packets received are encoded data packets or native data packets based on their headers. In some embodiments, each of the data packets received is appended with a header 300 as shown in
In some embodiments, if each of the R encoded data packets is appended with the header 300, the R linearly independent coefficient vectors can be obtained from the “α” fields in the R headers of the R encoded data packets.
In some embodiments, if each of the R encoded data packets is appended with the header 400, the network coding layer may unpack the header 400 to obtain N and M in the “Group” field. In some embodiments, a look up table, which is the same as the look up table in the source side, is stored in the receiver side. The look up table includes a plurality of sets of linearly independent coefficient vectors. Each set of linearly independent coefficient vectors corresponds to a different pair of N and M. The network coding layer may search the look up table to obtain a set of linearly independent coefficient vectors based on N and M.
Moreover, as shown in
In S115, decoding the R encoded data packets using the R linearly independent coefficient vectors and the S native data packets to obtain the N native data packets.
In some embodiments, the R linearly independent coefficient vectors and the S native data packets may be put into a decoding coefficient matrix. A Gaussian elimination may be performed on the decoding coefficient matrix to decode the R encoded data packets, so that adjusted data packets with a fixed-length may be obtained. As shown in
Thereafter, as shown in
As described above, because the source side sends both of native data packets and encoded data packets to the receiver side, encoding operations on the source side and decoding operations on the receiver side can be reduced. Therefore, computation overhead on both of the source side and the receiver side can be reduced. Furthermore, because the header 400 and the header 500 don't contain the coefficient vectors, the network overhead can be reduced.
According to one embodiment, a communication system is provided. The communication system may be disposed at a source side or a receiver side in a network.
If the communication system 600 is disposed at a source side. The processing device 603 may be configured to: obtain N native data packets; obtain M linearly independent coefficient vectors; encode the N native data packets using the M linearly independent coefficient vectors respectively, to obtain M encoded data packets; and control the transceiver 601 to send, through a network, at least one of the N native data packets and the M encoded data packets together, where N≥1 and M≥1. Detail configurations of the processing device 603 may be obtained by referring detail descriptions in S101 to S109.
If the communication system 600 is disposed at a receiver side. The processing device 603 may be configured to: after the transceiver 601 receives, through a network, R encoded data packets and S native data packets, obtain R linearly independent coefficient vectors, where the R encoded data packets are generated based on N native data packets, and the N native data packets include the S native data packets; and decode the R encoded data packets using the R linearly independent coefficient vectors and the S native data packets to obtain the N native data packets. Detail configurations of the processing device 603 may be obtained by referring detail descriptions in S111 to S115.
There is little distinction left between hardware and software implementations of aspects of systems; the use of hardware or software is generally a design choice representing cost vs. efficiency tradeoffs. For example, if an implementer determines that speed and accuracy are paramount, the implementer may opt for a mainly hardware and/or firmware vehicle; if flexibility is paramount, the implementer may opt for a mainly software implementation; or, yet again alternatively, the implementer may opt for some combination of hardware, software, and/or firmware.
While various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various aspects and embodiments disclosed herein are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/IB2016/057295 | 12/2/2016 | WO | 00 |