WO2016045332A1 - 编码参数的调整、反馈信息的处理方法及装置 - Google Patents
编码参数的调整、反馈信息的处理方法及装置 Download PDFInfo
- Publication number
- WO2016045332A1 WO2016045332A1 PCT/CN2015/074984 CN2015074984W WO2016045332A1 WO 2016045332 A1 WO2016045332 A1 WO 2016045332A1 CN 2015074984 W CN2015074984 W CN 2015074984W WO 2016045332 A1 WO2016045332 A1 WO 2016045332A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data packet
- encoded data
- value
- encoding
- packet
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
Definitions
- the present invention relates to the field of communications, and in particular to a method for adjusting an encoding parameter and a method and a device for processing feedback information.
- Wireless LAN also plays an indispensable role in people's lives. Accessing the Internet through wireless broadband networks has become the main way of surfing in people's daily lives. Therefore, how to improve the transmission quality of wireless networks has become a hot topic in today's research.
- Network coding breaks the limitation that the traditional routing mechanism believes that packets transmitted in the network can only be forwarded and stored. The nodes in the network no longer simply forward the packets to the link, but can allow the nodes to receive them. The data packet is encoded and then sent.
- a random linear network coding based on Transmission Control Protocol (TCP) brings new ideas to solve the performance fading problem of TCP in wireless networks.
- FIG. 1 is a schematic diagram of a TCP-based random linear network coding according to the related art.
- a new protocol layer is added between the transport layer and the network layer of the traditional TCP protocol: the network coding layer.
- the network packet is used to mask the packet loss of the lower layer, so that TCP continues to maintain good transmission performance instead of actively reducing the congestion window to reduce the transmission rate, and the TCP protocol has good compatibility.
- TCP-based network coding while having the above advantages, is equally challenging.
- the problem that the irreversible data packet cannot be correctly decoded occurs during decoding.
- the fading of the channel often leads to a series of packet loss, and the errors generated during the transmission are often bursty. Therefore, how to deal with the impact of such continuous packet loss on network coding is crucial.
- the embodiments of the present invention provide a method for adjusting an encoding parameter and a method for processing feedback information, so as to at least solve the problem that the related art cannot overcome the inability to decode caused by continuous packet loss.
- a method of adjusting an encoding parameter is provided.
- the method for adjusting an encoding parameter includes: sending a plurality of consecutive encoded data packets to a decoding end; receiving feedback information determined by the decoding end according to a plurality of consecutive encoded data packets, wherein the feedback information is used to notify the current The effect of the network state on the transmission of multiple consecutive encoded data packets; the encoding parameters are adjusted according to the feedback information.
- the feedback information includes at least one of: a packet loss rate in the network estimated by the decoding end; a maximum continuous packet loss number in the network estimated by the decoding end; a base value of the received feedback data packet, where base is The sequence number initially assigned to each encoded data packet; the rank value of the received feedback data packet, where rank is the rank of the decoding matrix employed by the decoding end.
- the encoding parameter comprises at least one of the following: a redundancy factor, an encoding window.
- adjusting the encoding parameter according to the feedback information comprises at least one of: adjusting a redundancy factor according to a packet loss rate estimated in the network by the decoding end; and adjusting an encoding window according to a maximum continuous packet loss number in the network estimated by the decoding end; A new encoded data packet is regenerated in the case where it is determined that a part or all of the plurality of consecutive encoded data packets are lost according to the base value of the received feedback data packet and the rank value of the received feedback data packet.
- adjusting the redundancy factor according to the packet loss rate in the network estimated by the decoding end comprises: calculating a lower bound of the redundancy factor by using the following formula: Where R is the redundancy factor, p is the packet loss rate in the network estimated by the decoding end; the value of the redundancy factor is increased on the basis of satisfying the value lower than the lower bound, and the initial setting redundancy factor For comparison, set the larger value to the redundancy factor to be used.
- adjusting the coding window according to the maximum number of consecutive lost packets in the network estimated by the decoding end comprises one of: reducing the number of consecutive consecutive lost packets in the network estimated by the decoding end to be larger than the coding window, and then reducing The value of the encoding window; if it is determined that the maximum number of consecutive lost packets in the network estimated by the decoding end is less than or equal to the encoding window, then the size of the encoding window is continued.
- regenerating the new encoded data packet includes: The base value of the data packet is subtracted from the base value of the previous received feedback data packet, and the rank value of the currently fed back data packet is compared with the previous received feedback packet rank value; if the base difference is greater than or If the encoding window is equal and the rank value is the same, it is determined that some or all of the data packets are lost; and whether the currently fed data packet is the first encoded data after losing a plurality of consecutive data packets whose length is the encoding window Packet; if yes, the value of the encoding window is incremented by 1, and the new encoded data packet is regenerated according to the updated encoding window and the redundancy factor, and if not, the new encoded data packet is regenerated according to the redundancy factor.
- a method of processing feedback information is provided.
- the processing method of the feedback information includes: receiving a plurality of consecutive encoded data packets sent by the encoding end; generating feedback information according to the plurality of consecutive encoded data packets, wherein the feedback information is used to notify the current network state of the encoding end.
- the effect of transmitting a plurality of consecutively encoded data packets is such that the encoding end adjusts the encoding parameters; the feedback information is returned to the encoding end.
- the feedback information includes at least one of: a packet loss rate in the network estimated by itself; a maximum continuous packet loss number in the network estimated by itself; a base value of the feedback data packet to be sent, where base is initial The sequence number assigned to each encoded data packet; the rank value of the feedback data packet to be transmitted, where rank is the rank of the decoding matrix employed by the decoding end.
- the encoding parameter comprises at least one of the following: a redundancy factor, an encoding window.
- generating the feedback information according to the plurality of consecutive encoded data packets comprises at least one of: a packet loss rate in the network, and a maximum consecutive packet loss number in the network.
- the packet loss rate is calculated by dividing the sum of the difference values of the base values carried in each adjacent two encoded data packets in the received encoded data packet by the number of encoded data packets.
- the maximum number of lost packets in the network is obtained according to the maximum value of the difference of the base values carried in each adjacent two encoded data packets in the received encoded data packet.
- an apparatus for adjusting encoding parameters is provided.
- the apparatus for adjusting the encoding parameters includes: a sending module, configured to send a plurality of consecutive encoded data packets to the decoding end; and a receiving module configured to receive feedback information determined by the decoding end according to the plurality of consecutive encoded data packets The feedback information is used to notify the current network state of the impact on transmitting a plurality of consecutive encoded data packets; the adjustment module is configured to adjust the encoding parameters according to the feedback information.
- the feedback information includes at least one of: a packet loss rate in the network estimated by the decoding end; a maximum continuous packet loss number in the network estimated by the decoding end; a base value of the received feedback data packet, where base is The sequence number initially assigned to each encoded data packet; the rank value of the received feedback data packet, where rank is the rank of the decoding matrix employed by the decoding end.
- the encoding parameter comprises at least one of the following: a redundancy factor, an encoding window.
- the adjusting module comprises: a first adjusting unit, configured to adjust a redundancy factor according to a packet loss rate estimated by the decoding end; and a second adjusting unit configured to determine a maximum continuous packet loss in the network according to the decoding end And adjusting a coding window; the generating unit is configured to determine that part or all of the plurality of consecutive encoded data packets are lost according to the base value of the received feedback data packet and the rank value of the received feedback data packet Next, regenerate the new encoded packet.
- the first adjustment unit comprises: a calculation subunit configured to calculate a lower bound of the redundancy factor by using the following formula: Where R is the redundancy factor, p is the packet loss rate in the network estimated by the decoder; the adjustment subunit is set to increase the value of the redundancy factor based on the value of not lower than the lower bound, and the initial value The set redundancy factor is compared, and the larger value is set as the redundancy factor to be used.
- the second adjusting unit is configured to reduce the value of the coding window when determining that the maximum number of consecutive lost packets in the network estimated by the decoding end is greater than the coding window; or determining the network estimated at the decoding end If the maximum number of consecutive drops in the medium is less than or equal to the encoding window, the size of the encoding window continues to be maintained.
- the generating unit comprises: a comparing subunit, configured to subtract the base value of the previously received feedback data packet by subtracting the base value of the currently received data packet from the base value of the currently fed data packet, and comparing the rank value of the currently fed data packet with the previous one Whether the rank value of the received feedback data packet is the same; determining the subunit, setting to determine that part or all of the data packet is lost if the difference of the base is greater than or equal to the encoding window and the rank value is the same; processing the subunit, setting To determine whether the currently fed data packet is the first encoded data packet after losing a plurality of consecutive data packets of the encoding window; if yes, the value of the encoding window is incremented by 1, and according to the updated encoding window and The redundancy factor regenerates the new encoded data packet, and if not, the new encoded data packet is regenerated according to the redundancy factor.
- a comparing subunit configured to subtract the base value of the previously received feedback data packet by subtracting the
- a processing apparatus for feedback information is provided.
- the processing device for the feedback information includes: a receiving module, configured to receive a plurality of consecutive encoded data packets sent by the encoding end; and a generating module configured to generate feedback information according to the plurality of consecutive encoded data packets, wherein the feedback information It is used to notify the encoding end of the current network state to affect the transmission of multiple consecutive encoded data packets to enable the encoding end to adjust the encoding parameters; and the feedback module is configured to return feedback information to the encoding end.
- the feedback information includes at least one of: a packet loss rate in the network estimated by itself; a maximum continuous packet loss number in the network estimated by itself; a base value of the feedback data packet to be sent, where base is initial The sequence number assigned to each encoded data packet; the rank value of the feedback data packet to be transmitted, where rank is the rank of the decoding matrix employed by the decoding end.
- the encoding parameter comprises at least one of the following: a redundancy factor, an encoding window.
- the generating module comprises: a first estimating unit configured to adopt a sum of the received encoded data packets and a difference value of base values carried in each adjacent two encoded data packets in the received encoded data packets. Estimating the packet loss rate in the network; the second estimating unit is configured to obtain the continuous packet loss distribution by using the difference of the base value carried in each adjacent two encoded data packets in the received encoded data packet.
- Estimating the maximum number of consecutive lost packets in the network determining unit, configured to compare the base value of the previous feedback data packet with the base value of the currently received feedback data packet, and then compare with the encoding window, and compare the current feedback Whether the rank value of the data packet is the same as the rank value of the previous feedback data packet determines the correlation between the currently received data packet and the previous received data packet.
- a plurality of consecutive encoded data packets are sent to the decoding end, and the feedback information determined by the decoding end according to the plurality of consecutive encoded data packets is used, where the feedback information is used to notify the current network state to transmit multiple
- the effect of continuous coding data packets adjusting the coding parameters according to the feedback information, solving the problem that the related technology cannot overcome the unrepeatable problem caused by continuous packet loss, thereby improving the unresolvable situation caused by continuous packet loss. Improved decoding efficiency and decoding accuracy.
- FIG. 1 is a schematic diagram of a TCP-based random linear network coding according to the related art
- FIG. 2 is a flowchart of a method for adjusting coding parameters according to an embodiment of the present invention
- FIG. 3 is a flowchart of a method of processing feedback information according to an embodiment of the present invention.
- FIG. 4 is a flowchart of a transport layer network coding adaptive adjustment method according to a preferred embodiment of the present invention.
- FIG. 5 is a schematic diagram of a packet header structure of an encoded data packet according to a preferred embodiment of the present invention.
- FIG. 6 is a schematic diagram of a package structure of an ACK packet according to a preferred embodiment of the present invention.
- FIG. 7 is a structural block diagram of an apparatus for adjusting encoding parameters according to an embodiment of the present invention.
- FIG. 8 is a structural block diagram of an apparatus for adjusting encoding parameters according to a preferred embodiment of the present invention.
- FIG. 9 is a structural block diagram of a processing apparatus for feedback information according to an embodiment of the present invention.
- FIG. 10 is a block diagram showing the structure of a processing apparatus for feedback information according to a preferred embodiment of the present invention.
- the embodiment of the present invention provides an automatic repeat-reQuest (ARQ)-like and can dynamically adjust the coding window (Network Coding) for the irreversible data loss problem caused by the continuous loss of the transport layer network coding.
- Window abbreviated as W
- R Redundancy
- FIG. 2 is a flow chart of a method of adjusting encoding parameters in accordance with an embodiment of the present invention. As shown in FIG. 2, the method may include the following processing steps:
- Step S202 Send a plurality of consecutive encoded data packets to the decoding end;
- Step S204 Receive feedback information determined by the decoding end according to a plurality of consecutive encoded data packets, where the feedback information is used to notify the current network state of the impact on transmitting a plurality of consecutive encoded data packets;
- Step S206 Adjust the encoding parameters according to the feedback information.
- the related art cannot overcome the inability to decode caused by continuous packet loss.
- the foregoing feedback information may include, but is not limited to, at least one of the following:
- base is the sequence number initially allocated for each encoded data packet
- rank is the rank of the decoding matrix used by the decoding end.
- the foregoing coding parameters may include, but are not limited to, at least one of the following: a redundancy factor, an encoding window.
- adjusting the encoding parameter according to the feedback information may include at least one of the following operations:
- Step S1 adjusting a redundancy factor according to a packet loss rate estimated by the decoding end
- Step S2 adjusting the coding window according to the maximum number of consecutive lost packets in the network estimated by the decoding end;
- Step S3 Regenerate a new code if it is determined that some or all of the plurality of consecutive encoded data packets are lost according to the base value of the received feedback data packet and the rank value of the received feedback data packet. data pack.
- adjusting the redundancy factor according to the packet loss rate in the network estimated by the decoding end may include the following steps:
- Step S11 Calculate the lower bound of the redundancy factor by using the following formula: Where R is a redundancy factor and p is a packet loss rate in the network estimated by the decoding end;
- Step S12 Increase the value of the redundancy factor on the basis of satisfying the value of not lower than the lower bound, and compare with the initially set redundancy factor, and set the larger value as the redundancy factor to be used.
- the redundancy factor ACK_R corresponding to the packet loss rate estimated by the decoding end can be calculated by the calculation formula of the redundancy factor.
- the formula for calculating the lower bound of the redundancy factor based on the packet loss rate is (p is the packet loss rate):
- the packet loss rate estimated by the decoder is smaller than the value of the true packet loss rate in the network; if R ⁇ 1/1-p, it will cause severe performance degradation, because the network coding will not fully compensate for packet loss in the network. . In order to achieve maximum throughput, R ⁇ 1/1-p should choose the best value.
- the redundancy factor is greater than the lower limit of about 1%-5%.
- the ACK_R estimated in combination with these aspects needs to increase by more than 3%; otherwise, the redundancy factor may not be satisfied. /1-p condition.
- the resulting ACK_R needs to be compared to the initial R of the system, choosing the larger one as the redundancy factor used by the system.
- step S2 adjusting the coding window according to the maximum number of consecutive lost packets in the network estimated by the decoding end may include one of the following operations:
- Step S21 If it is determined that the maximum number of consecutive lost packets in the network estimated by the decoding end is greater than the coding window, the value of the coding window is decreased;
- Step S22 If it is determined that the maximum number of consecutive lost packets in the network estimated by the decoding end is less than or equal to the encoding window, then the size of the encoding window is continued.
- the decoder can estimate the maximum number of consecutive lost packets ACK_W that may occur, which can help the encoder to correct the actual coding window.
- the actual network coding window is larger than ACK_W, the value of the network coding window needs to be reduced, so as to avoid unnecessary waste caused by an excessive coding window; and when the actual network coding window is less than or equal to ACK_W, Indicates that the current network coding window does not exceed the estimated maximum value, and there is no need to modify the network coding window.
- regenerating the new encoded data packet may include the following step:
- Step S31 Subtracting the base value of the previously received feedback data packet by the base value of the currently fed data packet, and comparing whether the rank value of the currently fed data packet is the same as the rank value of the previous received feedback data packet. If the difference of the base value is greater than or equal to the coding window and the current rank value is the same as the previous rank value, it is determined that some or all of the data packets are lost;
- Step S32 determining whether the currently fed data packet is the first encoded data packet after losing a plurality of consecutive data packets of the encoding window; if yes, adding the value of the encoding window to 1, and following the updated encoding
- the window and the redundancy factor regenerate the new encoded data packet, and if not, the new encoded data packet is regenerated according to the redundancy factor.
- NC_ACK_QUEUE queue is empty, and the NC_ACK_QUEUE queue is a queue in which the packet that the sender cannot decode in time but has been ACKed is placed. If NC_ACK_QUEUE is empty, it means that this is the first received encoded packet with more than W consecutive lost packets.
- the transmitting end needs to transmit M more data packets; otherwise, it may cause Deterioration in system performance.
- the value of W is then updated to increase the value of W by one.
- update the transmission capability to W*R and finally start generating new encoded data packets again; if NC_ACK_QUEUE is not empty, it means that this is not the first ACK received after consecutive packet loss, so W is not updated, but The transmission capacity needs to be updated to 1*R, and finally the encoding is started to generate a new encoded data packet.
- FIG. 3 is a flowchart of a method of processing feedback information according to an embodiment of the present invention. As shown in FIG. 3, the method may include the following processing steps:
- Step S302 Receive a plurality of consecutive encoded data packets sent by the encoding end;
- Step S304 Generate feedback information according to the plurality of consecutive encoded data packets, where the feedback information is used to notify the encoding end of the current network state to affect the transmission of the plurality of consecutive encoded data packets, so that the encoding end adjusts the encoding parameters.
- Step S306 Return feedback information to the encoding end.
- the foregoing feedback information may include, but is not limited to, at least one of the following:
- base is the sequence number initially allocated for each encoded data packet
- rank is the rank of the decoding matrix used by the decoding end.
- the foregoing coding parameters may include, but are not limited to, at least one of the following: a redundancy factor, an encoding window.
- step S304 generating feedback information according to the plurality of consecutive encoded data packets may include at least one of the following: a packet loss rate in the network, and a maximum consecutive packet loss number in the network.
- the packet loss in the network may be estimated by using the sum of the received encoded data packets and the difference of the base values carried in each adjacent two encoded data packets in the received encoded data packets. rate;
- the value of the currently received encoded data packet base value and the base of the previous encoded data packet is recorded as base_old.
- Base is a sequence number value given to the encoded data packet by the encoding end, and is stored in the header of the network encoded data packet. By subtracting the value of base_old from base, the relationship between the current packet and the previous packet can be calculated. When the difference is 1, it indicates that it is normally received in order; when the difference is less than 1, it indicates that the current data packet is received by the redundant data packet; when the value is greater than 1, it indicates There is a packet loss between the two received packets.
- the specific number of lost packets is: base-base_old-1.
- num_lost By counting the difference between the bases of all received data packets, you can estimate the total number of lost packets. You can use num_lost to indicate the total number of lost packets. The number of received packets can be represented by num_recv. Then the estimated packet loss rate at the decoding end is: num_lost/(num_recv+num_lost).
- the continuous packet loss distribution may be obtained by using the difference of the base value carried in each adjacent two encoded data packets in the received encoded data packet to estimate the maximum continuous packet loss in the network.
- the distribution of consecutive packet loss numbers can be obtained.
- the maximum number of consecutive drops is the result of the estimated continuous maximum packet loss.
- the base value of the currently received data packet minus the base value of the previously received feedback data packet
- the base value of the previous received data packet is subtracted and compared with the coding window
- the rank value of the current feedback data packet is compared with the former Whether the rank value of a received feedback packet is the same, and determines the correlation between the currently received data packet and the previous received data packet.
- the newly arrived data packet may bring new information, and the received data packets may be related to each other due to continuous packet loss.
- the correlation of the arriving data is judged based on the definition of the above packet correlation.
- the newly arrived data contains new information and is related to the previously received data packet, it is considered that the data packet contributes to the decoding; if the newly received data contains new information but is received before The data packet is irrelevant and it is considered that this data packet does not contribute to the decoding.
- FIG. 4 is a flow chart of a transport layer network coding adaptive adjustment method in accordance with a preferred embodiment of the present invention. As shown in FIG. 4, the process may include the following processing steps:
- Step S402 The decoding end generates feedback information.
- the decoder receives and processes the data packets from the TCP sender.
- the decoding end first takes out the random coding coefficients carried in the data packet and adds them to the decoding matrix to update the matrix information; secondly, the random coding coefficients and the base values in the data packet header are taken out. Then, the obtained parameter values are added to the decoding matrix to calculate the rank of the matrix.
- FIG. 5 is a schematic diagram of a packet header structure of an encoded data packet in accordance with a preferred embodiment of the present invention. As shown in Figure 5, the parameters of each location information have the following meanings:
- Source and Destination post Source port and destination port information. During the encoding operation, the above information will participate in the encoding, which can be obtained from the TCP header.
- Base responsible for packet management of the sender and receiver buffers, which can also play a role in identifying a correspondence between the encoded data packet and the original data packet.
- n The number of packets participating in the encoding.
- Start i The byte of the start position of the i-th packet participating in the encoding.
- End i At the byte of the end position of the i-th packet participating in the encoding.
- ⁇ i the coefficient of the i-th packet participating in the coding in the linear combination.
- step S402 the following three steps may be further included:
- Step (1) estimating a packet loss rate in the network at the decoding end
- the decoding end extracts the base value from the current encoded data packet, and the base value of the previous received encoded data packet matrix is base_old. Recording the base minus the value of base_old can estimate the packet loss between the current data packet and the previous data packet.
- the difference indicates normal sequence reception; when the difference is less than 1, It indicates that the currently received data packet is an encoded data packet replaced by a redundant data packet; when the value is greater than 1, it indicates that there is a packet loss between the two received data packets, and the number of lost packets is: base -base_old-1.
- num_lost By counting the difference between the bases of all received data packets, it is possible to estimate the total number of lost data packets, which can use num_lost to indicate the total number of lost data packets, and the total number of received data packets. Can be represented by num_recv. Then the estimated packet loss rate at the decoding end is: num_lost/(num_recv+num_lost).
- Step (2) The decoding end estimates the number of consecutive maximum packets lost in the network
- the method for estimating the continuous maximum packet loss length may use the difference between the bases of all the received data packets calculated in the estimated network packet loss rate, and the difference between the data packets base may be obtained.
- Step (3) calculates the packet loss rate and the continuous maximum packet loss length at the decoding end, and also needs to write the value of the base of the data packet to the ACK packet to be fed back.
- FIG. 6 is a schematic diagram of a package structure of an ACK packet according to a preferred embodiment of the present invention. As shown in FIG. 6, an 8-byte ACK feedback information is added based on the 20-byte TCP header information.
- Step S404 The encoding end adjusts the encoding parameter according to the information fed back by the decoding end.
- the packet loss rate ACK_p and the continuous maximum packet loss length ACK_W are extracted from the fed back ACK information.
- the redundancy factor ACK_R corresponding to the packet loss rate estimated by the decoding end can be calculated by the calculation formula of the redundancy factor.
- the decoder estimates that the packet loss rate is smaller than the value of the true packet loss rate in the network; if R ⁇ 1/1-p causes severe performance degradation, the network coding will not fully compensate for packet loss in the network. In order to achieve maximum throughput, R ⁇ 1/1-p should choose the best value. However, setting the redundancy factor R to R>>1/1-p will result in a network Lost packets in the network will send too much excess packets compared to excessive redundancy. On the other hand, it is not advisable to set R exactly to 1/1-p for the following two reasons:
- the redundancy factor is greater than the lower limit of about 1%-5%.
- the ACK_R estimated in combination with these aspects needs to increase by more than 3%; otherwise, the redundancy factor may not be satisfied. /1-p condition.
- the resulting ACK_R needs to be compared to the initial R of the system, choosing the larger one as the redundancy factor used by the system.
- Using the decoder to estimate the maximum number of consecutive lost packets ACK_W may help the encoder to correct the actual coding window.
- the actual network coding window is larger than ACK_W, the value of the network coding window needs to be reduced, so as to avoid unnecessary waste caused by an excessive coding window; when the actual network coding window is smaller than ACK_W, the current The network encoding window has not exceeded the estimated maximum value, so there is no need to modify the network encoding window.
- Step S406 The encoding end adjusts the transmission policy according to the received feedback information.
- the base value is extracted from the feedback ACK information, and the base value in the previous received ACK is base_old.
- the rank information needs to be obtained from the feedback ACK, and the rank information obtained in the current ACK is recorded as rank; the rank value in the previous received ACK is rank_old.
- step S406 the following three steps can be further included:
- Step (1) whether the received data packet is related
- the corresponding encoded packet is useful for decoding; if the ACK packet is uncorrelated, then the corresponding encoded packet has no effect on decoding. of. Use the following formula to determine if the data is relevant and has an effect on decoding:
- Step (2) removes the ACK packet from the encoding queue and checks the status of NC_ACK_QUEUE.
- the encoded data packet corresponding to the ACK received by the TCP-Sink terminal increases the rank of the matrix and is related to the last received encoded data packet.
- the ACK packet is removed from the encoding queue and the status of the NC_ACK_QUEUE queue is checked; the ACK packet needs to be removed from the network encoding queue.
- the NC_ACK_QUEUE queue is a queue in which packets that the sender cannot decode in time but have been ACKed are placed.
- the next step is to determine whether NC_ACK_QUEUE is empty. If NC_ACK_QUEUE is empty, it skips directly to the end. Otherwise, all packets are removed from the NC_ACK_QUEUE queue and then ended.
- Step (3) updates the network coding window W according to the network condition.
- the encoded data packet corresponding to the ACK received by the TCP-Sink terminal is irrelevant to the last received encoded data packet.
- the reason for this situation is that there is a situation in which continuous packet loss exceeds W in the network, and the value W of the network coding window needs to be increased by one. Then adjust the transmission strategy.
- Step (4) preparing to start retransmission according to the state of the queue NC_ACK_QUEUE;
- NC_ACK_QUEUE queue It is determined whether the NC_ACK_QUEUE queue is empty. If NC_ACK_QUEUE is empty, it indicates that it is the first received encoded data packet with more than W consecutive lost packets. Because the number of data packets transmitted in the network is fixed, it is assumed that after the continuous loss of M data packets, in order to maintain the stability of the number of data packets transmitted in the network, the transmitting end needs to transmit M data packets. Otherwise, it may cause performance degradation, so you need to update the value of W immediately, and update the transmission capacity to W*R; if NC_ACK_QUEUE is not empty, it means that this is not the first ACK received after continuous packet loss. So W does not need to be updated, but only updates the transmission capacity to 1*R.
- Step (5) generating an encoded data packet
- the number of data packets that need to be generated in one coding can be determined at the encoding end, and the specific coding mode can adopt the existing random linear network coding mode.
- the signal adjusted as the transmission policy is updated according to the network coding window W in the step (4).
- the transmission policy adjustment is adopted immediately, and the specific adjustment manner is: moving the head pointer of the coding queue at the encoding end from the current position (generally adjacent to the tail of the queue) to the queue header. If the network coding window W update is not detected, the head pointer of the coding queue of the encoding side remains unchanged.
- combining the above transmission capability with the position of the head pointer of the encoding queue can determine the number of packets that need to be sent when resending the data packet and re-determine which packets have participated in the encoding operation.
- FIG. 7 is a structural block diagram of an apparatus for adjusting encoding parameters according to an embodiment of the present invention.
- the apparatus is located at the encoding end of the transport layer network.
- the apparatus for adjusting the encoding parameters may include: a sending module 10 configured to send a plurality of consecutive encoded data packets to the decoding end; and the receiving module 20 is configured to receive The decoding end determines the feedback information according to the plurality of consecutive encoded data packets, wherein the feedback information is used to notify the current network state of the impact on the transmission of the plurality of consecutive encoded data packets; the adjusting module 30 is configured to adjust according to the feedback information. Coding parameters.
- the device shown in FIG. 7 solves the problem that the related art cannot overcome the inability to decode caused by continuous packet loss, thereby improving the unresolvable situation caused by continuous packet loss, and improving decoding efficiency and decoding accuracy. .
- the foregoing feedback information may include, but is not limited to, at least one of the following:
- base is the sequence number initially allocated for each encoded data packet
- rank is the rank of the decoding matrix used by the decoding end.
- the foregoing coding parameters may include, but are not limited to, at least one of the following: a redundancy factor, an encoding window.
- the adjustment module 30 may include: a first adjustment unit 300 configured to adjust a redundancy factor according to a packet loss rate estimated in the network by the decoding end; and a second adjustment unit 302 configured to be based on the decoding end Estimating the maximum number of consecutive lost packets in the network to adjust the coding window; the generating unit 304 is configured to determine a plurality of consecutive encoded data packets according to the base value of the received feedback data packet and the rank value of the received feedback data packet In the case where some or all of the packets are lost, a new encoded packet is regenerated.
- the first adjusting unit 300 may include: a calculating subunit (not shown) configured to calculate a lower bound of the redundancy factor by using the following formula: Where R is the redundancy factor, p is the packet loss rate in the network estimated by the decoder; the adjustment subunit (not shown) is set to increase the redundancy factor based on the value of not lower than the lower bound. The value is compared with the initial set redundancy factor, and the larger value is set as the redundancy factor to be used.
- a calculating subunit (not shown) configured to calculate a lower bound of the redundancy factor by using the following formula: Where R is the redundancy factor, p is the packet loss rate in the network estimated by the decoder; the adjustment subunit (not shown) is set to increase the redundancy factor based on the value of not lower than the lower bound. The value is compared with the initial set redundancy factor, and the larger value is set as the redundancy factor to be used.
- the second adjusting unit 302 is configured to reduce the value of the coding window if the maximum number of consecutive lost packets in the network estimated by the decoding end is greater than the coding window, or to determine the estimated value of the decoding end. If the maximum number of consecutive lost packets in the network is less than or equal to the encoding window, the size of the encoding window continues to be maintained.
- the generating unit 304 may include: a comparison subunit (not shown) configured to subtract the base value of the previous received feedback packet by the base value of the currently fed data packet, and compare the current feedback Whether the rank value of the data packet is the same as the rank value of the previous received feedback data packet; determining the subunit (not shown), setting the case where the difference in the base is greater than or equal to the encoding window and the rank value is the same Next, determining that some or all of the data packets are lost; the processing subunit (not shown) is configured to determine whether the currently fed data packet is the first encoded data after the loss of the length of the plurality of consecutive data packets of the encoding window.
- the processing device for the feedback information may include: a receiving module 40, configured to receive a plurality of consecutive encoded data packets sent by the encoding end; and a generating module 50 configured to The plurality of consecutive encoded data packets generate feedback information, wherein the feedback information is used to notify an effect of a current network state of the encoding end on transmitting the plurality of consecutive encoded data packets to adjust the encoding end Encoding parameters; the feedback module 60 is configured to return the feedback information to the encoding end.
- the foregoing feedback information may include, but is not limited to, at least one of the following:
- base is the sequence number initially allocated for each encoded data packet
- rank is the rank of the decoding matrix used by the decoding end.
- the foregoing coding parameters may include, but are not limited to, at least one of the following: a redundancy factor, an encoding window.
- the generating module 50 may include: a first estimating unit 500, configured to adopt the number of received encoded data packets and in each adjacent two encoded data packets in the received encoded data packet. The sum of the difference values of the carried base values, the packet loss rate in the network is estimated; the second estimating unit 502 is set to be connected The difference between the base values carried in each adjacent two encoded data packets in the received encoded data packet is statistically obtained to obtain a continuous packet loss distribution, and the maximum number of consecutive lost packets in the network is estimated; determining unit 504, setting In order to compare the base value of the previously received feedback data packet with the base value of the currently received feedback data packet, and compare with the coding window, and compare the current feedback data packet with the rank value and the previous received feedback. Whether the rank value of the data packet is the same, and determines the correlation between the currently received data packet and the previous received data packet.
- Layer network coding can not effectively overcome the problem of excessively long continuous packet loss, and provides a new ACK form by taking into account factors such as redundancy factor, coding window and transmission strategy.
- the information carried by the ACK can estimate the packet loss rate and the maximum number of consecutive packet loss in the network, and the redundancy factor and the coding window can be dynamically adjusted according to the packet loss rate and the maximum continuous packet loss number.
- the network coding window will be added accordingly, and communication recovery will be performed.
- modules or steps of the present invention described above can be implemented by a general-purpose computing device that can be centralized on a single computing device or distributed across a network of multiple computing devices. Alternatively, they may be implemented by program code executable by the computing device such that they may be stored in the storage device by the computing device and, in some cases, may be different from the order herein.
- the steps shown or described are performed, or they are separately fabricated into individual integrated circuit modules, or a plurality of modules or steps thereof are fabricated as a single integrated circuit module.
- the invention is not limited to any specific combination of hardware and software.
- a new ACK is provided by comprehensively considering factors such as a redundancy factor, a coding window, and a transmission strategy. form.
- the information carried by the ACK can estimate the packet loss rate and the maximum number of consecutive packet loss in the network, and the redundancy factor and the coding window can be dynamically adjusted according to the packet loss rate and the maximum continuous packet loss number.
- the network coding window will be added accordingly, and communication recovery will be performed.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种编码参数的调整、反馈信息的处理方法及装置,在上述方法中,向解码端发送多个连续的编码数据包;接收解码端根据多个连续的编码数据包确定的反馈信息,其中,反馈信息用于通知当前的网络状态对传输多个连续的编码数据包所造成的影响;根据反馈信息调整编码参数。根据本发明提供的技术方案,改善了由连续丢包而引发的无法解码情况,提高了解码效率与解码准确度。
Description
本发明涉及通信领域,具体而言,涉及一种编码参数的调整、反馈信息的处理方法及装置。
随着因特网(Internet)和无线宽带网络的迅速发展和广泛部署,无线网络给人们的生活带来了巨大的变革。无线局域网在人们的生活中也同样占据了不可或缺的地位。通过无线宽带网络接入互联网已经成为了人们日常生活中主要上网方式。因此,如何提高无线网络的传输质量成为了当今研究问题的热点。
网络编码打破了传统上的路由机制认为在网络中传输的数据包只能转发和存储的限制,网络中的节点不再仅仅只是简单地转发数据包到链路,而是可以允许节点将接收到的数据包经过编码后再进行发送。一种基于传输控制协议(TCP)的随机线性网络编码为解决TCP在无线网络下的性能衰落问题带来新思路。
由J.K.Sundararajan等人首次提出了结合网络编码的TCP协议以提高TCP在无线环境下的传输性能。图1是根据相关技术的基于TCP的随机线性网络编码的示意图。如图1所示,在传统TCP协议的传输层和网络层之间加入一个新的协议层:网络编码层。通过网络编码将下层的丢包掩盖,使TCP继续保持良好传输的性能而不是主动缩小拥塞窗口降低发送速率,而且TCP协议具有良好的兼容性。
然而,基于TCP的网络编码尽管具有上述优势,但与此同时也同样面临着挑战。例如:在连续丢包的环境下,如果连续丢包长度超过网络编码窗口W,那么在解码时就会出现不可逆的数据包无法正确解码的问题。在通常情况下,信道的衰落往往会导致一连串的数据包丢失,传输的过程中产生的错误往往具有突发性。因此,如何应对这种连续丢包对网络编码产生的影响是至关重要的。
由此可见,相关技术中无法克服由连续丢包而造成的无法解码的问题。
发明内容
本发明实施例提供了一种编码参数的调整、反馈信息的处理方法及装置,以至少解决相关技术中无法克服由连续丢包而造成的无法解码的问题。
根据本发明实施例的一个方面,提供了一种编码参数的调整方法。
根据本发明实施例的编码参数的调整方法包括:向解码端发送多个连续的编码数据包;接收解码端根据多个连续的编码数据包确定的反馈信息,其中,反馈信息用于通知当前的网络状态对传输多个连续的编码数据包所造成的影响;根据反馈信息调整编码参数。
优选地,反馈信息包括以下至少之一:解码端估计的网络中的丢包率;解码端估计的网络中的最大连续丢包个数;接收到的反馈数据包的base值,其中,base为初始为每个编码数据包分配的序号;接收到的反馈数据包的rank值,其中,rank为解码端所采用的解码矩阵的秩。
优选地,编码参数包括以下至少之一:冗余因子、编码窗口。
优选地,根据反馈信息调整编码参数包括以下至少之一:根据解码端估计的网络中的丢包率调整冗余因子;根据解码端估计的网络中的最大连续丢包个数调整编码窗口;在根据接收到的反馈数据包的base值和接收到的反馈数据包的rank值确定多个连续的编码数据包中的部分或全部数据包发生丢失的情况下,重新生成新的编码数据包。
优选地,根据解码端估计的网络中的丢包率调整冗余因子包括:采用以下公式计算冗余因子的下界:其中,R为冗余因子,p为解码端估计的网络中的丢包率;在满足不低于下界取值的基础上加大冗余因子的取值,并且与初始设定的冗余因子进行比较,将取值较大者设置为待使用的冗余因子。
优选地,根据解码端估计的网络中的最大连续丢包个数调整编码窗口包括以下之一:在确定解码端估计的网络中的最大连续丢包个数大于编码窗口的情况下,则减小编码窗口的取值;在确定解码端估计的网络中的最大连续丢包个数小于或等于编码窗口的情况下,则继续保持编码窗口的大小。
优选地,在根据接收到的反馈数据包的base值和接收到的反馈数据包的rank值确定部分或全部数据包发生丢失的情况下,重新生成新的编码数据包包括:通过对当前反馈的数据包的base值减去前一个接收到的反馈数据包的base值,并且比较当前反馈的数据包的rank值与前一个接收到的反馈数据包rank值是否相同;若base的差值大于或等于编码窗口且rank值相同的情况,则确定部分或全部数据包发生丢失;判断当前反馈的数据包是否为在丢失长度为编码窗口的多个连续数据包后的首个编码数据
包;如果是,则将编码窗口的取值加1,并且按照更新后的编码窗口与冗余因子重新生成新的编码数据包,如果否,则按照冗余因子重新生成新的编码数据包。
根据本发明实施例的另一方面,提供了一种反馈信息的处理方法。
根据本发明实施例的反馈信息的处理方法包括:接收编码端发送的多个连续编码数据包;根据多个连续编码数据包生成反馈信息,其中,反馈信息用于通知编码端当前的网络状态对传输多个连续编码数据包所造成的影响以使编码端调整编码参数;向编码端返回反馈信息。
优选地,反馈信息包括以下至少之一:自身估计的网络中的丢包率;自身估计的网络中的最大连续丢包个数;待发送的反馈数据包的base值,其中,base为初始为每个编码数据包分配的序号;待发送的反馈数据包的rank值,其中,rank为解码端所采用的解码矩阵的秩。
优选地,编码参数包括以下至少之一:冗余因子、编码窗口。
优选地,根据多个连续编码数据包生成反馈信息包括以下至少之一:网络中的丢包率、网络中的最大连续丢包个数。
优选地,采用在接收到的编码数据包中每相邻两个编码数据包中所携带的base值的差值总和除以编码数据包的数量计算丢包率。
优选地,根据接收到的编码数据包中每相邻两个编码数据包中所携带的base值的差值的最大值得到网络中的最大丢包个数。
根据本发明实施例的又一方面,提供了一种编码参数的调整装置。
根据本发明实施例的编码参数的调整装置包括:发送模块,设置为向解码端发送多个连续的编码数据包;接收模块,设置为接收解码端根据多个连续的编码数据包确定的反馈信息,其中,反馈信息用于通知当前的网络状态对传输多个连续的编码数据包所造成的影响;调整模块,设置为根据反馈信息调整编码参数。
优选地,反馈信息包括以下至少之一:解码端估计的网络中的丢包率;解码端估计的网络中的最大连续丢包个数;接收到的反馈数据包的base值,其中,base为初始为每个编码数据包分配的序号;接收到的反馈数据包的rank值,其中,rank为解码端所采用的解码矩阵的秩。
优选地,编码参数包括以下至少之一:冗余因子、编码窗口。
优选地,调整模块包括:第一调整单元,设置为根据解码端估计的网络中的丢包率调整冗余因子;第二调整单元,设置为根据解码端估计的网络中的最大连续丢包个数调整编码窗口;生成单元,设置为在根据接收到的反馈数据包的base值和接收到的反馈数据包的rank值确定多个连续的编码数据包中的部分或全部数据包发生丢失的情况下,重新生成新的编码数据包。
优选地,第一调整单元包括:计算子单元,设置为采用以下公式计算冗余因子的下界:其中,R为冗余因子,p为解码端估计的网络中的丢包率;调整子单元,设置为在满足不低于下界取值的基础上加大冗余因子的取值,并且与初始设定的冗余因子进行比较,将取值较大者设置为待使用的冗余因子。
优选地,第二调整单元,设置为在确定解码端估计的网络中的最大连续丢包个数大于编码窗口的情况下,则减小编码窗口的取值;或者,在确定解码端估计的网络中的最大连续丢包个数小于或等于编码窗口的情况下,则继续保持编码窗口的大小。
优选地,生成单元包括:比较子单元,设置为通过对当前反馈的数据包的base值减去前一个接收到的反馈数据包的base值,并且比较当前反馈的数据包的rank值与前一个接收到的反馈数据包的rank值是否相同;确定子单元,设置为在base的差值大于或等于编码窗口且rank值相同的情况下,确定部分或全部数据包发生丢失;处理子单元,设置为判断当前反馈的数据包是否为在丢失长度为编码窗口的多个连续数据包后的首个编码数据包;如果是,则将编码窗口的取值加1,并且按照更新后的编码窗口与冗余因子重新生成新的编码数据包,如果否,则按照冗余因子重新生成新的编码数据包。
根据本发明实施例的再一方面,提供了一种反馈信息的处理装置。
根据本发明实施例的反馈信息的处理装置包括:接收模块,设置为接收编码端发送的多个连续编码数据包;生成模块,设置为根据多个连续编码数据包生成反馈信息,其中,反馈信息用于通知编码端当前的网络状态对传输多个连续编码数据包所造成的影响以使编码端调整编码参数;反馈模块,设置为向编码端返回反馈信息。
优选地,反馈信息包括以下至少之一:自身估计的网络中的丢包率;自身估计的网络中的最大连续丢包个数;待发送的反馈数据包的base值,其中,base为初始为每个编码数据包分配的序号;待发送的反馈数据包的rank值,其中,rank为解码端所采用的解码矩阵的秩。
优选地,编码参数包括以下至少之一:冗余因子、编码窗口。
优选地,生成模块包括:第一估计单元,设置为采用接收到的编码数据包的数量以及在接收到的编码数据包中每相邻两个编码数据包中所携带的base值的差值总和,估计网络中的丢包率;第二估计单元,设置为通过接收到的编码数据包中每相邻两个编码数据包中所携带的base值的差值进行统计获取连续丢包数量分布情况,估计网络中的最大连续丢包个数;确定单元,设置为根据对当前接收到的反馈数据包的base值减去前一个反馈数据包的base值再与编码窗口进行比较,同时比较当前反馈的数据包的rank值与前一个反馈数据包的rank值是否相同,确定当前接收到的数据包与前一个接收到的数据包的相关性。
通过本发明实施例,采用向解码端发送多个连续的编码数据包;接收解码端根据多个连续的编码数据包确定的反馈信息,其中,反馈信息用于通知当前的网络状态对传输多个连续的编码数据包所造成的影响;根据反馈信息调整编码参数,解决了相关技术中无法克服由连续丢包而造成的无法解码的问题,进而改善了由连续丢包而引发的无法解码情况,提高了解码效率与解码准确度。
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据相关技术的基于TCP的随机线性网络编码的示意图;
图2是根据本发明实施例的编码参数的调整方法的流程图;
图3是根据本发明实施例的反馈信息的处理方法的流程图;
图4是根据本发明优选实施例的传输层网络编码自适应调整方法的流程图;
图5是根据本发明优选实施例的编码数据包的包头结构示意图;
图6是根据本发明优选实施例的ACK数据包的封装结构示意图;
图7是根据本发明实施例的编码参数的调整装置的结构框图;
图8是根据本发明优选实施例的编码参数的调整装置的结构框图;
图9是根据本发明实施例的反馈信息的处理装置的结构框图;
图10是根据本发明优选实施例的反馈信息的处理装置的结构框图。
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明实施例针对传输层网络编码在连续丢失情况下产生的不可逆的数据丢失问题,提供了一种类似自动重传请求(Automatic Repeat-reQuest,简称为ARQ)并且可以动态调整编码窗口(Network Coding Window,简称为W)与冗余因子(Redundancy,简称为R)的方法,称为ARQ-AWR Network Coding,其中,W为大于或等于2的正整数;R为大于或等于1的正数。
图2是根据本发明实施例的编码参数的调整方法的流程图。如图2所示,该方法可以包括以下处理步骤:
步骤S202:向解码端发送多个连续的编码数据包;
步骤S204:接收解码端根据多个连续的编码数据包确定的反馈信息,其中,反馈信息用于通知当前的网络状态对传输多个连续的编码数据包所造成的影响;
步骤S206:根据反馈信息调整编码参数。
相关技术中无法克服由连续丢包而造成的无法解码。采用如图2所示的方法,通过从解码端获取反馈信息进而能够得知当前的网络状态对传输多个连续的编码数据包所造成的影响,从而调整编码参数并且进行通信恢复。由此解决了相关技术中无法克服由连续丢包而造成的无法解码的问题,进而改善了由连续丢包而引发的无法解码情况,能够实时根据网络状态进行自适应调整,提高了解码效率与解码准确度。
在优选实施过程中,上述反馈信息可以包括但不限于以下至少之一:
(1)解码端估计的网络中的丢包率;
(2)解码端估计的网络中的最大连续丢包个数;
(3)接收到的反馈数据包的base值,其中,base为初始为每个编码数据包分配的序号;
(4)接收到的反馈数据包的rank值,其中,rank为解码端所采用的解码矩阵的秩。
在优选实施过程中,上述编码参数可以包括但不限于以下至少之一:冗余因子、编码窗口。
优选地,在步骤S204中,根据反馈信息调整编码参数可以包括以下操作至少之一:
步骤S1:根据解码端估计的网络中的丢包率调整冗余因子;
步骤S2:根据解码端估计的网络中的最大连续丢包个数调整编码窗口;
步骤S3:在根据接收到的反馈数据包的base值和接收到的反馈数据包的rank值确定多个连续的编码数据包中的部分或全部数据包发生丢失的情况下,重新生成新的编码数据包。
优选地,在步骤S1中,根据解码端估计的网络中的丢包率调整冗余因子可以包括以下步骤:
步骤S12:在满足不低于下界取值的基础上加大冗余因子的取值,并且与初始设定的冗余因子进行比较,将取值较大者设置为待使用的冗余因子。
在优选实施例中,可以通过冗余因子的计算公式计算出解码端估算出的丢包率对应的冗余因子ACK_R。根据丢包率计算冗余因子下界的公式为(p为丢包率):然而,解码端估算出的丢包率较网络中真实丢包率的值偏小;如果R<1/1-p则会导致严重的性能下降,因为网络编码将不能完全补偿网络中的丢包。为了能够达到最大吞吐量,R≥1/1-p应当选择最佳的取值。然而,将冗余因子R设置为R>>1/1-p又会导致与网络中丢失的数据包相比过度的冗余,这将会发送过多超过的数据包。另一方面,基于以下2点原因,将R恰好设置为1/1-p也是不可取的:
原因一、精确的数值R=1/1-p几乎不可能或者很难在实际应用中获得;
原因二、因为R无线趋近于1/1-p也是不可以取的,因为,如此少的冗余数据包不会够精确补偿网络中的丢包。因此,基于之前的分析中得到冗余因子要大于其下限大约1%-5%,结合这几个方面估算出来的ACK_R需要增大约3%以上;否则可能会无法满足冗余因子一定要大于1/1-p的条件。最后,得到的ACK_R需要与系统初始R相比较,选择较大者作为系统使用的冗余因子。
优选地,在步骤S2中,根据解码端估计的网络中的最大连续丢包个数调整编码窗口可以包括以下操作之一:
步骤S21:在确定解码端估计的网络中的最大连续丢包个数大于编码窗口的情况下,则减小编码窗口的取值;
步骤S22:在确定解码端估计的网络中的最大连续丢包个数小于或等于编码窗口的情况下,则继续保持编码窗口的大小。
在优选实施例中,利用解码端估算可能出现的最大连续丢包个数ACK_W,可以帮助编码端修正实际的编码窗口。当实际网络编码窗口大于ACK_W时,则需要将网络编码窗口的值减小,以此来避免过大的编码窗口所带来的不必要的浪费;而当实际网络编码窗口小于或等于ACK_W时,表明当前的网络编码窗口没超过估计的最大值,则不需要修改网络编码窗口。
优选地,在步骤S3中,根据接收到的反馈数据包的base值和接收到的反馈数据包的rank值确定部分或全部数据包发生丢失的情况下,重新生成新的编码数据包可以包括以下步骤:
步骤S31:通过当前反馈的数据包的base值减去前一个接收到的反馈数据包的base值,并且比较当前反馈的数据包的rank值与前一个接收到的反馈数据包的rank值是否相同;若上述base值的差值大于或等于编码窗口且当前rank值与前一个rank值相同,则确定部分或全部数据包发生丢失;
步骤S32:判断当前反馈的数据包是否为在丢失长度为编码窗口的多个连续数据包后的首个编码数据包;如果是,则将编码窗口的取值加1,并且按照更新后的编码窗口与冗余因子重新生成新的编码数据包,如果否,则按照冗余因子重新生成新的编码数据包。
在优选实施例中,根据反馈的base值与前一个数据包的base值的差可以估算出网络中是否存在超过网络编码窗口的连续丢包。一旦出现了前后rank相等并且base值之
差超过了W的情况就可以判断网络中已经出现了长度超过编码窗口的连续丢包。然后需要继续判断NC_ACK_QUEUE队列是否为空,NC_ACK_QUEUE队列是将发送端不能及时解码但是已经ACK的包所放入的队列。如果NC_ACK_QUEUE为空,则表示这是第一个接收到的超过W个连续丢包后的编码数据包。因为网络中传输的数据包的个数是固定的,假设出现连续丢M个包后,为了稳定网络中传输数据包的总数,那么发送端需要再多传输M个数据包;否则有可能会引发系统性能的恶化。继而再更新W的值,将W的值增大1。然后再更新传输能力为W*R,最后重新开始产生新的编码数据包;而如果NC_ACK_QUEUE不为空,则说明这已经不是连续丢包后接收到的第一个ACK,所以W不更新,但需要更新传输能力为1*R,最后再开始编码产生新的编码数据包。
图3是根据本发明实施例的反馈信息的处理方法的流程图。如图3所示,该方法可以包括以下处理步骤:
步骤S302:接收编码端发送的多个连续编码数据包;
步骤S304:根据多个连续编码数据包生成反馈信息,其中,反馈信息用于通知编码端当前的网络状态对传输多个连续编码数据包所造成的影响以使编码端调整编码参数;
步骤S306:向编码端返回反馈信息。
在优选实施过程中,上述反馈信息可以包括但不限于以下至少之一:
(1)自身估计的网络中的丢包率;
(2)自身估计的网络中的最大连续丢包个数;
(3)待发送的反馈数据包的base值,其中,base为初始为每个编码数据包分配的序号;
(4)待发送的反馈数据包的rank值,其中,rank为解码端所采用的解码矩阵的秩。
在优选实施过程中,上述编码参数可以包括但不限于以下至少之一:冗余因子、编码窗口。
优选地,在步骤S304中,根据多个连续编码数据包生成反馈信息可以包括以下操作至少之一:网络中的丢包率、网络中的最大连续丢包个数。
在优选实施过程中,可以采用接收到的编码数据包的数量以及在接收到的编码数据包中每相邻两个编码数据包中所携带的base值的差值总和,估计网络中的丢包率;
在优选实施例中,记录当前接收到的编码数据包base值和前一个编码数据包的base的值为base_old。base是编码端赋予编码数据包的一个序号值,存放于网络编码数据包的包头中。利用base减去base_old的值就可以计算当前数据包与前一个数据包之间的关系。当其差值为1时,表示是正常按顺序接收;当其差值小于1时,表示接受到当前的数据包是冗余数据包所代替的编码数据包;当其值大于1时,表示接收到的两个数据包之间存在丢包的。具体的丢包个数为:base-base_old-1。统计所有的接收到的数据包之间的base的差值,就可以估算出一共丢失的数据包个数,可以采用num_lost表示当前一共丢失的数据包个数。接收到的数据包个数可以采用num_recv表示。那么在解码端估算出的丢包率为:num_lost/(num_recv+num_lost)。
在优选实施过程中,可以通过接收到的编码数据包中每相邻两个编码数据包中所携带的base值的差值进行统计获取连续丢包数量分布情况,估计网络中的最大连续丢包个数;
在优选实施例中,利用估计网络中丢包率中计算得到的所有的接收到的数据包之间的base的差值,统计这些数据包base的差值就可以得到连续丢包个数的分布情况,将从小到大99%的连续丢包情况都包括在内时,最大的连续丢包个数作为估计的连续最大丢包长度的结果。
此外,还可以根据对当前接收到的数据包的base值减去前一个接收到的反馈数据包的base值进行减法运算再与编码窗口进行比较,同时比较当前反馈的数据包的rank值与前一个接收到的反馈数据包的rank值是否相同,确定当前接收到的数据包与前一个接收到的数据包的相关性。
在优选实施例中,在没有进行网络编码处理时,所有的数据包{p1,p2,…,pn}均没有经过网络编码处理,统称为原始数据包;原始数据包之间是没有任何相关性的,即pi,pj在i≠j的情况下,pi,pj是线性无关的。那么其关系可以表示为公式:
在原始数据包{p1,p2,…,pn}经过网络编码后,产生的编码数据包{q1,q2,…,qn},那么在qi,qj在|i-j|<W的情况下,qi,qj是线性相关的;反之在|i-j|≥W的情况下,qi,qj是线性无关的。即可以采用以下公式表示:
对于网络编码的接收端,新到达的数据包可能会来带新的信息,而且接收到数据包之间可能会因为连续的丢包导致其相关性不同。依据上述数据包相关性的定义来判断到达数据的相关性。当新到达的数据包含有新的信息而且与之前接收到的数据包是相关的,认为这个数据包是对解码有贡献的;如果新接收到的数据包含有新的信息但是却与之前接收到的数据包是不相关的,认为这个数据包是对解码没有贡献的。
作为本发明的一个优选实施例。图4是根据本发明优选实施例的传输层网络编码自适应调整方法的流程图。如图4所示,该流程可以包括以下处理步骤:
步骤S402:解码端产生反馈信息;
解码端接收并处理来自于TCP发送端的数据包。解码端首先将数据包中携带的随机编码系数取出并且加入解码矩阵,更新矩阵信息;其次将数据包包头中的随机编码系数和base的值取出。然后再将获取到的参数值加入解码矩阵,以计算矩阵的秩。
在该优选实施例中,图5是根据本发明优选实施例的编码数据包的包头结构示意图。如图5所示,各个位置信息的参数含义如下:
Source and Destination post:源端口和目的端口信息。在编码操作过程中,上述信息将参与编码,其可以从TCP的头部中获取。
base:负责进行发送端与接收端缓存区的数据包管理,其同样能够起到标识编码数据包与原始数据包的一种对应关系的作用。
n:参与编码的数据包的个数。
Starti:参与编码的第i个数据包的开始位置的字节处。
Endi:参与编码的第i个数据包的结束位置的字节处。
αi:参与编码的第i个数据包在线性组合中的系数。
在步骤S402中,又可以进一步包含以下三个步骤:
步骤(1)在解码端估算网络中的丢包率;
在优选实施过程中,解码端从当前编码数据包中提取base值,前一个接收到的编码数据包矩阵的base值为base_old。记录下base减去base_old的值就可以估算当前数据包与前一个数据包之间的丢包情况,当其差值为1时,则表示是正常的顺序接收;当其差值小于1时,则表示当前接收的数据包是冗余数据包所代替的编码数据包;当其值大于1时,表示接收到的两个数据包之间存在丢包情况发生,且丢包个数为:base-base_old-1。统计全部接收到的数据包之间的base的差值,就可以估算出一共丢失的数据包个数,其可以采用num_lost表示当前总共丢失的数据包个数,而总共接收到的数据包个数可以用num_recv表示。那么在解码端估算出的丢包率为:num_lost/(num_recv+num_lost)。
步骤(2)解码端估计网络中出现的连续最大丢包个数;
在优选实施过程中,估计连续最大丢包长度的方法可以利用估计网络丢包率中计算得到的全部接收到的数据包之间的base的差值,统计这些数据包base的差值就可以得到连续丢包个数的分布情况,将从小到大99%的连续丢包情况都包括在内时,最大的连续丢包个数作为估计的连续最大丢包长度的结果。
步骤(3)将在解码端计算得到的丢包率和连续最大丢包长度,同时还需要将此数据包的base的值均写入至待反馈的ACK数据包中。图6是根据本发明优选实施例的ACK数据包的封装结构示意图。如图6所示,在20字节的TCP头信息的基础上新增了8字节的ACK反馈信息。
步骤S404:编码端根据解码端反馈的信息调整编码参数;
在优选实施例中,从反馈的ACK信息中提取丢包率ACK_p和连续最大丢包长度ACK_W。利用解码端估算出的网络中丢包率ACK_p,通过冗余因子的计算公式可以计算出与解码端估算出的丢包率对应的冗余因子ACK_R。根据丢包率计算冗余因子下界的公式为(p为丢包率):R=1/1-p。
然而,解码端估算出丢包率较网络中真实丢包率的值偏小;如果R<1/1-p导致严重的性能下降,因为网络编码将不能完全补偿网络中的丢包。为了达到最大吞吐量,R≥1/1-p应当选择最佳的取值。然而,将冗余因子R设置为R>>1/1-p会导致与网
络中的丢失的数据包相比过度的冗余,这将会发送过多超过的数据包。另一方面,基于以下2点原因,将R恰好设置为1/1-p也是不可取的:
原因一、精确的数值R=1/1-p几乎不可能或者很难在实际应用中获得;
原因二、因为R无线趋近于1/1-p也是不可以取的,因为,如此少的冗余数据包不会够精确补偿网络中的丢包。因此,基于之前的分析中得到冗余因子要大于其下限大约1%-5%,结合这几个方面估算出来的ACK_R需要增大约3%以上;否则可能会无法满足冗余因子一定要大于1/1-p的条件。最后,得到的ACK_R需要与系统初始R相比较,选择较大者作为系统使用的冗余因子。
利用解码端估算可能出现的最大连续丢包个数ACK_W,可以帮助编码端修正实际的编码窗口。当实际网络编码窗口大于ACK_W时,则需要将网络编码窗口的值减小,以此来避免过大的编码窗口所带来的不必要的浪费;当实际网络编码窗口小于ACK_W时,表明当前的网络编码窗口尚未超过估计的最大值,则不需要修改网络编码窗口。
步骤S406:编码端根据接收到的反馈信息调整传输策略;
从反馈的ACK信息中提取base值,前一个接收到的ACK中的base值为base_old。除此之外,还需要从反馈的ACK中得到rank的信息,当前ACK中得到的rank信息记为rank;前一个接收到的ACK中的rank值为rank_old。
在步骤S406中又可以进一步包含以下三个步骤:
步骤(1)接收到的数据包是否相关;
如果前后两个ACK所对应的数据包是相关的,那么其对应的编码包是对解码是有作用的;如果ACK的数据包是不相关的,那么其对应的编码包是对解码是没有作用的。通过下面公式来判断数据是否相关且对解码有作用:
如果满足rank==rank_old+1&&base<base_old+W,则表示前后两个ACK所对应的数据包是相关的,则执行步骤(2);
如果满足rank==rank_old&&base>=base_old+W,则表示前后两个ACK所对应的数据包是不相关的,则执行步骤(3)。
步骤(2)将被ACK的数据包从编码队列中移出,并检查NC_ACK_QUEUE的状态。
在这种情况下,表示TCP-Sink端接收到的这个ACK对应的编码数据包使矩阵的秩增加而且与上一个接收到的编码数据包是相关的。将被ACK的数据包从编码队列中移出,并检查NC_ACK_QUEUE队列的状态;需要将被ACK的数据包从网络编码队列中移出。NC_ACK_QUEUE队列是将发送端无法及时解码但是已经ACK的包所放入的队列。下一步判断NC_ACK_QUEUE是否为空,如果NC_ACK_QUEUE为空则直接跳过至结束,否则,从NC_ACK_QUEUE队列中移出所有数据包再结束。
步骤(3)根据网络状况更新网络编码窗口W。
在这种情况下,表示TCP-Sink端接收到的这个ACK对应的编码数据包与上一个接收到的编码数据包是不相关的。造成这种状况的原因在于网络中出现连续丢包超过W的情况,此时需要将网络编码窗口的值W增大1。然后再调整传输策略。
步骤(4)根据队列NC_ACK_QUEUE的状态准备开始重传;
判断NC_ACK_QUEUE队列是否为空,如果NC_ACK_QUEUE为空,则表示其为第一个接收到的超过W个连续丢包的编码数据包。因为网络中传输的数据包的个数是固定的,假设在出现连续丢失M个数据包后,为了保持网络中传输数据包个数的稳定性,那么发送端需要在多传输M个数据包,否则,有可能会引发性能的恶化,因而需要立刻更新W的值,并更新传输能力为W*R;如果NC_ACK_QUEUE不为空,则说明这已经不是连续丢包后接收到的第一个ACK,所以W无需更新,而仅更新传输能力为1*R。
步骤(5)产生编码数据包;
根据步骤(4)中所确定的当前的传输能力,在编码端可以确定一次编码需要产生数据包的个数,其具体的编码方式可以采用现有的随机线性网络编码的方式。根据步骤(4)中网络编码窗口W更新作为传输策略调整的信号。当检测到网络编码窗口W更新时,立刻采取传输策略调整,其具体的调整方式为:将在编码端的编码队列的头指针从当前位置(一般临近队列尾部)移动到队列头。如果没有检测到网络编码窗口W更新,则编码端的编码队列的头指针保持不动。
综上所述,结合上述的传输能力与编码队列的头指针的位置可以确定重新发送数据包时需要发送的个数并重新确定哪些数据包参与过编码操作。
图7是根据本发明实施例的编码参数的调整装置的结构框图。该装置位于传输层网络的编码端,如图7所示,该编码参数的调整装置可以包括:发送模块10,设置为向解码端发送多个连续的编码数据包;接收模块20,设置为接收解码端根据多个连续的编码数据包确定的反馈信息,其中,反馈信息用于通知当前的网络状态对传输多个连续的编码数据包所造成的影响;调整模块30,设置为根据反馈信息调整编码参数。
采用如图7所示的装置,解决了相关技术中无法克服由连续丢包而造成的无法解码的问题,进而改善了由连续丢包而引发的无法解码情况,提高了解码效率与解码准确度。
在优选实施过程中,上述反馈信息可以包括但不限于以下至少之一:
(1)解码端估计的网络中的丢包率;
(2)解码端估计的网络中的最大连续丢包个数;
(3)接收到的反馈数据包的base值,其中,base为初始为每个编码数据包分配的序号;
(4)接收到的反馈数据包的rank值,其中,rank为解码端所采用的解码矩阵的秩。
在优选实施过程中,上述编码参数可以包括但不限于以下至少之一:冗余因子、编码窗口。
优选地,如图8所示,调整模块30可以包括:第一调整单元300,设置为根据解码端估计的网络中的丢包率调整冗余因子;第二调整单元302,设置为根据解码端估计的网络中的最大连续丢包个数调整编码窗口;生成单元304,设置为在根据接收到的反馈数据包的base值和接收到的反馈数据包的rank值确定多个连续的编码数据包中的部分或全部数据包发生丢失的情况下,重新生成新的编码数据包。
优选地,第一调整单元300可以包括:计算子单元(图中未示出),设置为采用以下公式计算冗余因子的下界:其中,R为冗余因子,p为解码端估计的网络中的丢包率;调整子单元(图中未示出),设置为在满足不低于下界取值的基础上加大冗余因子的取值,并且与初始设定的冗余因子进行比较,将取值较大者设置为待使用的冗余因子。
优选地,第二调整单元302,设置为在确定解码端估计的网络中的最大连续丢包个数大于编码窗口的情况下,则减小编码窗口的取值;或者,在确定解码端估计的网络中的最大连续丢包个数小于或等于编码窗口的情况下,则继续保持编码窗口的大小。
优选地,生成单元304可以包括:比较子单元(图中未示出),设置为通过对当前反馈的数据包的base值减去前一个接收到的反馈数据包的base值,并且比较当前反馈的数据包的rank值与前一个接收到的反馈数据包的rank值是否相同;确定子单元(图中未示出),设置为在base的差值大于或等于编码窗口且rank值相同的情况下,确定部分或全部数据包发生丢失;处理子单元(图中未示出),设置为判断当前反馈的数据包是否为在丢失长度为编码窗口的多个连续数据包后的首个编码数据包;如果是,则将编码窗口的取值加1,并且按照更新后的编码窗口与冗余因子重新生成新的编码数据包,如果否,则按照冗余因子重新生成新的编码数据包。
图9是根据本发明实施例的反馈信息的处理装置的结构框图。该装置位于传输层网络的解码端,如图9所示,该反馈信息的处理装置可以包括:接收模块40,设置为接收编码端发送的多个连续编码数据包;生成模块50,设置为根据所述多个连续编码数据包生成反馈信息,其中,所述反馈信息用于通知所述编码端当前的网络状态对传输所述多个连续编码数据包所造成的影响以使所述编码端调整编码参数;反馈模块60,设置为向所述编码端返回所述反馈信息。
在优选实施过程中,上述反馈信息可以包括但不限于以下至少之一:
(1)自身估计的网络中的丢包率;
(2)自身估计的网络中的最大连续丢包个数;
(3)待发送的反馈数据包的base值,其中,base为初始为每个编码数据包分配的序号;
(4)待发送的反馈数据包的rank值,其中,rank为解码端所采用的解码矩阵的秩。
在优选实施过程中,上述编码参数可以包括但不限于以下至少之一:冗余因子、编码窗口。
优选地,如图10所示,生成模块50可以包括:第一估计单元500,设置为采用接收到的编码数据包的数量以及在接收到的编码数据包中每相邻两个编码数据包中所携带的base值的差值总和,估计网络中的丢包率;第二估计单元502,设置为通过接
收到的编码数据包中每相邻两个编码数据包中所携带的base值的差值进行统计获取连续丢包数量分布情况,估计网络中的最大连续丢包个数;确定单元504,设置为根据对当前接收到的反馈数据包的base值减去前一个接收到的反馈数据包的base值再与编码窗口进行比较,同时比较当前反馈的数据包的rank值与前一个接收到的反馈数据包的rank值是否相同,确定当前接收到的数据包与前一个接收到的数据包的相关性。
从以上的描述中,可以看出,上述实施例实现了如下技术效果(需要说明的是这些效果是某些优选实施例可以达到的效果):采用本发明实施例所提供的技术方案,针对传输层网络编码无法有效地克服过长连续丢包的问题,综合考虑到冗余因子、编码窗口和传输策略等因素提供了一种新的ACK形式。利用该ACK携带的信息一方面可以估算出网络中的丢包率和最大连续丢包个数,依据丢包率和最大连续丢包个数两部分信息可以动态地调整冗余因子和编码窗口以适应当前的网络状态;另一方面可以了解是否出现由过长连续丢包造成的无法解码的情况,如果出现该情况,则会相应的增加网络编码窗口,并且进行通信恢复。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
如上所述,本发明实施例提供的一种编码参数的调整、反馈信息的处理方法及装置具有以下有益效果:综合考虑到冗余因子、编码窗口和传输策略等因素提供了一种新的ACK形式。利用该ACK携带的信息一方面可以估算出网络中的丢包率和最大连续丢包个数,依据丢包率和最大连续丢包个数两部分信息可以动态地调整冗余因子和编码窗口以适应当前的网络状态;另一方面可以了解是否出现由过长连续丢包造成的无法解码的情况,如果出现该情况,则会相应的增加网络编码窗口,并且进行通信恢复。
Claims (24)
- 一种编码参数的调整方法,包括:向解码端发送多个连续的编码数据包;接收所述解码端根据所述多个连续的编码数据包确定的反馈信息,其中,所述反馈信息用于通知当前的网络状态对传输所述多个连续的编码数据包所造成的影响;根据所述反馈信息调整编码参数。
- 根据权利要求1所述的方法,其中,所述反馈信息包括以下至少之一:所述解码端估计的网络中的丢包率;所述解码端估计的网络中的最大连续丢包个数;接收到的反馈数据包的base值,其中,base为初始为每个编码数据包分配的序号;接收到的反馈数据包的rank值,其中,rank为所述解码端所采用的解码矩阵的秩。
- 根据权利要求1所述的方法,其中,所述编码参数包括以下至少之一:冗余因子、编码窗口。
- 根据权利要求1至3中任一项所述的方法,其中,根据所述反馈信息调整所述编码参数包括以下至少之一:根据所述解码端估计的网络中的丢包率调整冗余因子;根据所述解码端估计的网络中的最大连续丢包个数调整编码窗口;在根据接收到的反馈数据包的base值和接收到的反馈数据包的rank值确定所述多个连续的编码数据包中的部分或全部数据包发生丢失的情况下,重新生成新的编码数据包。
- 根据权利要求4所述的方法,其中,根据所述解码端估计的网络中的最大连续丢包个数调整所述编码窗口包括以下之一:在确定所述解码端估计的网络中的最大连续丢包个数大于所述编码窗口的情况下,则减小所述编码窗口的取值;在确定所述解码端估计的网络中的最大连续丢包个数小于或等于所述编码窗口的情况下,则继续保持所述编码窗口的大小。
- 根据权利要求4所述的方法,其中,在根据所述接收到的反馈数据包的base值和所述接收到的反馈数据包的rank值确定所述部分或全部数据包发生丢失的情况下,重新生成所述新的编码数据包包括:通过对当前反馈的数据包的base值减去前一个接收到的反馈数据包的base值,并且比较所述当前反馈的数据包的rank值与所述前一个接收到的反馈数据包的rank值是否相同;若所述base的差值大于或等于所述编码窗口且所述rank值相同的情况,则确定所述部分或全部数据包发生丢失;判断所述当前反馈的数据包是否为在丢失长度为所述编码窗口的多个连续数据包后的首个编码数据包;如果是,则将所述编码窗口的取值加1,并且按照更新后的编码窗口与所述冗余因子重新生成所述新的编码数据包,如果否,则按照所述冗余因子重新生成所述新的编码数据包。
- 一种反馈信息的处理方法,包括:接收编码端发送的多个连续编码数据包;根据所述多个连续编码数据包生成反馈信息,其中,所述反馈信息用于通知所述编码端当前的网络状态对传输所述多个连续编码数据包所造成的影响以使所述编码端调整编码参数;向所述编码端返回所述反馈信息。
- 根据权利要求8所述的方法,其中,所述反馈信息包括以下至少之一:自身估计的网络中的丢包率;自身估计的网络中的最大连续丢包个数;待发送的反馈数据包的base值,其中,base为初始为每个编码数据包分配的序号;待发送的反馈数据包的rank值,其中,rank为解码端所采用的解码矩阵的秩。
- 根据权利要求8所述的方法,其中,所述编码参数包括以下至少之一:冗余因子、编码窗口。
- 根据权利要求8至10中任一项所述的方法,其中,根据所述多个连续编码数据包生成所述反馈信息包括以下至少之一:网络中的丢包率;网络中的最大连续丢包个数。
- 根据权利要求11所述的方法,其中,采用在接收到的编码数据包中每相邻两个编码数据包中所携带的base值的差值总和除以编码数据包的数量计算所述丢包率。
- 根据权利要求要求11所述的方法,其中,根据所述接收到的编码数据包中每相邻两个编码数据包中所携带的base值的差值的最大值得到所述网络中的最大丢包个数。
- 一种编码参数的调整装置,包括:发送模块,设置为向解码端发送多个连续的编码数据包;接收模块,设置为接收所述解码端根据所述多个连续的编码数据包确定的反馈信息,其中,所述反馈信息用于通知当前的网络状态对传输所述多个连续的编码数据包所造成的影响;调整模块,设置为根据所述反馈信息调整编码参数。
- 根据权利要求14所述的装置,其中,所述反馈信息包括以下至少之一:所述解码端估计的网络中的丢包率;所述解码端估计的网络中的最大连续丢包个数;接收到的反馈数据包的base值,其中,base为初始为每个编码数据包分配的序号;接收到的反馈数据包的rank值,其中,rank为所述解码端所采用的解码矩阵的秩。
- 根据权利要求14所述的装置,其中,所述编码参数包括以下至少之一:冗余因子、编码窗口。
- 根据权利要求14至16中任一项所述的装置,其中,所述调整模块包括:第一调整单元,设置为根据所述解码端估计的网络中的丢包率调整冗余因子;第二调整单元,设置为根据所述解码端估计的网络中的最大连续丢包个数调整编码窗口;生成单元,设置为在根据接收到的反馈数据包的base值和接收到的反馈数据包的rank值确定所述多个连续的编码数据包中的部分或全部数据包发生丢失的情况下,重新生成新的编码数据包。
- 根据权利要求17所述的装置,其中,所述第二调整单元,设置为在确定所述解码端估计的网络中的最大连续丢包个数大于所述编码窗口的情况下,则减小所述编码窗口的取值;或者,在确定所述解码端估计的网络中的最大连续丢包个数小于或等于所述编码窗口的情况下,则继续保持所述编码窗口的大小。
- 根据权利要求17所述的装置,其中,所述生成单元包括:比较子单元,设置为通过对当前反馈的数据包的base值减去前一个接收到的反馈数据包的base值,并且比较所述当前反馈的数据包的rank值与所述前一个接收到的反馈数据包的rank值是否相同;确定子单元,设置为在所述base的差值大于或等于所述编码窗口且所述rank值相同的情况下,确定所述部分或全部数据包发生丢失;处理子单元,设置为判断所述当前反馈的数据包是否为在丢失长度为所述编码窗口的多个连续数据包后的首个编码数据包;如果是,则将所述编码窗口的取值加1,并且按照更新后的编码窗口与所述冗余因子重新生成所述新的编码数据包,如果否,则按照所述冗余因子重新生成所述新的编码数据包。
- 一种反馈信息的处理装置,包括:接收模块,设置为接收编码端发送的多个连续编码数据包;生成模块,设置为根据所述多个连续编码数据包生成反馈信息,其中,所述反馈信息用于通知所述编码端当前的网络状态对传输所述多个连续编码数据包所造成的影响以使所述编码端调整编码参数;反馈模块,设置为向所述编码端返回所述反馈信息。
- 根据权利要求21所述的装置,其中,所述反馈信息包括以下至少之一:自身估计的网络中的丢包率;自身估计的网络中的最大连续丢包个数;待发送的反馈数据包的base值,其中,base为初始为每个编码数据包分配的序号;待发送的反馈数据包的rank值,其中,rank为解码端所采用的解码矩阵的秩。
- 根据权利要求21所述的装置,其中,所述编码参数包括以下至少之一:冗余因子、编码窗口。
- 根据权利要求21至23中任一项所述的装置,其中,所述生成模块包括:第一估计单元,设置为采用接收到的编码数据包的数量以及在所述接收到的编码数据包中每相邻两个编码数据包中所携带的base值的差值总和,估计网络中的丢包率;第二估计单元,设置为通过所述接收到的编码数据包中每相邻两个编码数据包中所携带的base值的差值进行统计获取连续丢包数量分布情况,估计网络中的最大连续丢包个数;确定单元,设置为根据对当前接收到的反馈数据包的base值减去前一个反馈数据包的base值再与编码窗口进行比较,同时比较所述当前反馈的数据包的rank值与所述前一个反馈数据包的rank值是否相同,确定所述当前接收到的数据包与所述前一个接收到的数据包的相关性。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410495790.5A CN105450357B (zh) | 2014-09-24 | 2014-09-24 | 编码参数的调整、反馈信息的处理方法及装置 |
CN201410495790.5 | 2014-09-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016045332A1 true WO2016045332A1 (zh) | 2016-03-31 |
Family
ID=55560193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2015/074984 WO2016045332A1 (zh) | 2014-09-24 | 2015-03-24 | 编码参数的调整、反馈信息的处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105450357B (zh) |
WO (1) | WO2016045332A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112153693A (zh) * | 2020-09-23 | 2020-12-29 | 南京邮电大学 | 一种基于随机线性网络编码的双路径传输方法 |
CN113301387A (zh) * | 2020-02-21 | 2021-08-24 | 华为技术有限公司 | 数据编解码方法、相关设备及系统 |
CN115085859A (zh) * | 2021-03-15 | 2022-09-20 | 海能达通信股份有限公司 | 一种抗丢包方法、装置及计算机可读存储介质 |
CN115225209A (zh) * | 2022-09-20 | 2022-10-21 | 江苏为是科技有限公司 | 数据发送、传输方法、发送装置、传输系统和存储介质 |
US11556562B1 (en) * | 2021-07-29 | 2023-01-17 | Kyndryl, Inc. | Multi-destination probabilistic data replication |
WO2023160403A1 (zh) * | 2022-02-25 | 2023-08-31 | 阿里巴巴(中国)有限公司 | 数据处理方法及装置 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107666366B (zh) * | 2016-07-28 | 2020-02-14 | 华为技术有限公司 | 一种调整编码速率的方法、装置及系统 |
CN107707335B (zh) * | 2016-08-09 | 2021-07-06 | 中国移动通信集团内蒙古有限公司 | 一种数据传输方法和装置 |
CN106301714B (zh) * | 2016-08-16 | 2019-11-19 | 浙江大华技术股份有限公司 | 一种数据传输方法及装置 |
CN107769887B (zh) * | 2016-08-17 | 2021-02-12 | 华为技术有限公司 | 一种数据传输、数据处理方法及装置 |
CN109788509B (zh) * | 2017-11-15 | 2023-03-10 | 华为技术有限公司 | 连续数据包传输失败的规避方法及装置 |
CN109905162B (zh) * | 2017-12-11 | 2021-06-01 | 国广融合(北京)传媒科技发展有限公司 | 文件发送、接收方法及终端 |
WO2022027661A1 (zh) * | 2020-08-07 | 2022-02-10 | 华为技术有限公司 | 通信方法、装置及系统 |
CN115134047B (zh) * | 2021-03-29 | 2024-09-13 | 维沃移动通信有限公司 | 传输方法、装置、设备及可读存储介质 |
CN115473607A (zh) * | 2021-06-11 | 2022-12-13 | 华为技术有限公司 | 通信方法,装置及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101399630A (zh) * | 2007-09-24 | 2009-04-01 | 中国移动通信集团公司 | 一种自适应调制编码方法及装置 |
CN102148663A (zh) * | 2011-03-22 | 2011-08-10 | 东南大学 | 综合利用长时和短时信道状态信息的自适应传输方法 |
CN103763216A (zh) * | 2014-01-24 | 2014-04-30 | 深圳市华宝电子科技有限公司 | 一种数据传输的调整系统及方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102209079A (zh) * | 2011-06-22 | 2011-10-05 | 北京大学深圳研究生院 | 一种基于tcp协议的自适应网络控制传输方法和系统 |
CN102904689A (zh) * | 2012-10-15 | 2013-01-30 | 哈尔滨工业大学深圳研究生院 | 基于网络编码的传输控制协议的改进方法 |
US9515775B2 (en) * | 2012-11-08 | 2016-12-06 | Instart Logic, Inc. | Method and apparatus for improving the performance of TCP and other network protocols in a communication network |
CN103391164B (zh) * | 2013-07-19 | 2016-08-10 | 中国人民解放军国防科学技术大学 | 一种基于线性网络编码的报文发送冗余度动态调整方法 |
-
2014
- 2014-09-24 CN CN201410495790.5A patent/CN105450357B/zh active Active
-
2015
- 2015-03-24 WO PCT/CN2015/074984 patent/WO2016045332A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101399630A (zh) * | 2007-09-24 | 2009-04-01 | 中国移动通信集团公司 | 一种自适应调制编码方法及装置 |
CN102148663A (zh) * | 2011-03-22 | 2011-08-10 | 东南大学 | 综合利用长时和短时信道状态信息的自适应传输方法 |
CN103763216A (zh) * | 2014-01-24 | 2014-04-30 | 深圳市华宝电子科技有限公司 | 一种数据传输的调整系统及方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113301387A (zh) * | 2020-02-21 | 2021-08-24 | 华为技术有限公司 | 数据编解码方法、相关设备及系统 |
CN112153693A (zh) * | 2020-09-23 | 2020-12-29 | 南京邮电大学 | 一种基于随机线性网络编码的双路径传输方法 |
CN112153693B (zh) * | 2020-09-23 | 2024-05-10 | 南京邮电大学 | 一种基于随机线性网络编码的双路径传输方法 |
CN115085859A (zh) * | 2021-03-15 | 2022-09-20 | 海能达通信股份有限公司 | 一种抗丢包方法、装置及计算机可读存储介质 |
CN115085859B (zh) * | 2021-03-15 | 2023-11-24 | 海能达通信股份有限公司 | 一种抗丢包方法、装置及计算机可读存储介质 |
US11556562B1 (en) * | 2021-07-29 | 2023-01-17 | Kyndryl, Inc. | Multi-destination probabilistic data replication |
US20230033066A1 (en) * | 2021-07-29 | 2023-02-02 | Kyndryl, Inc. | Multi-destination probabilistic data replication |
WO2023160403A1 (zh) * | 2022-02-25 | 2023-08-31 | 阿里巴巴(中国)有限公司 | 数据处理方法及装置 |
CN115225209A (zh) * | 2022-09-20 | 2022-10-21 | 江苏为是科技有限公司 | 数据发送、传输方法、发送装置、传输系统和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105450357A (zh) | 2016-03-30 |
CN105450357B (zh) | 2019-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2016045332A1 (zh) | 编码参数的调整、反馈信息的处理方法及装置 | |
CN110855400B (zh) | 基于纠错码的自适应丢包恢复方法、计算设备及存储介质 | |
CN107508655B (zh) | 一种自适应端到端网络编码传输方法 | |
JP4454320B2 (ja) | 伝送装置、伝送制御プログラム、及び伝送方法 | |
US9007915B2 (en) | Method and node for transmitting data over a communication network using negative acknowledgment | |
CN107979449B (zh) | 一种数据传输方法及装置 | |
US9866351B2 (en) | Communication method and communication apparatus | |
RU2469482C2 (ru) | Способ и система для передачи данных в сети передачи данных | |
US8717871B2 (en) | Packet retransmission control system, method and program | |
JP5991598B2 (ja) | データ処理装置及びデータ処理方法 | |
US9565162B2 (en) | One-way transmission and reception with delayed TCP ACK message and monitoring for UDP and TCP frames | |
CN111082898B (zh) | 一种报文处理方法和装置 | |
US10491651B2 (en) | Method and system for streaming low-delay high-definition video with partially reliable transmission | |
CN104683259A (zh) | Tcp拥塞控制方法及装置 | |
CN111385055B (zh) | 一种数据传输方法和装置 | |
CN103152278A (zh) | 拥塞确定方法、装置和网络设备 | |
WO2017219216A1 (zh) | 一种数据传输方法、相关设备及系统 | |
Le et al. | Reliable user datagram protocol for airborne network | |
CN104796235B (zh) | 基于丢包率的卫星通信自适应拥塞控制方法 | |
US10200154B2 (en) | System and method for early packet header verification | |
EP3809748B1 (en) | Data transmitting method and device | |
JP2006109325A (ja) | 通信システム、通信装置、およびプログラム | |
CN109005011B (zh) | 一种用于水声网络的数据传输方法、系统及可读存储介质 | |
JP2009273094A (ja) | データ通信システム、データ通信端末、データ通信方法、およびプログラム | |
JP5229054B2 (ja) | パケット送受信システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15843482 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 15843482 Country of ref document: EP Kind code of ref document: A1 |