Patent ID: 9553956
Date: 2017-01-24
CPC Classifications: H04L

Claim:
1. A self-adaptive network control transmission method based on TCP, comprising adding network coding layers between a transmission layer and an IP layer of both a sender and receiver, adding network-coding headers which contains specific variables in coding packets and ACK packets, transmitting and refreshing those variables through the coding packets and ACK packets, and adjusting a redundancy factor R indicating send times of linear combinations in the network coding layer of the sender according to the variables, wherein: on the sender, in the network coding layer, the specific variables which are added in the network-coding header of the coding packet include a linear coefficient vector γ and a variable pktID indicating a sequence number of a coding packet, those variables are subtracted by the network coding layer in the receiver, the vector γ is for decoding, and the variable pktID is evaluated to a new variable echo_pktID in the network coding layer of the receiver; on the receiver, in the network coding layer, the specific variables which are added in the network-coding header of the ACK packet include echo_pktID and loss, wherein loss=pktID−id, echo_pktID indicates the only sequence number that results in generating the ACK packet, and the loss indicates the difference between pktID and id where id is an initial packet identification and is less than or equal to pktID, the ACK packet transmits the two variables to the sender; when the network coding layer of the sender receives the ACK packet, it subtracts the network-coding header of the ACK packet and gets the echo_pktID and the loss; wherein adjusting redundancy factor R in the network coding layer of the sender contains adding the following variables: R_old, which indicates the right-now redundancy factor, variable W indicates the minimum number of echo_pktID when the last time R changed, if echo_pktID equals the number of W+10*R_old or is larger than W+10*R_old for the first time, then the redundancy factor R is changed as follows: use the loss to figure out the number of diff_loss_new in the network coding layer of the sender, that is diff_loss_new=loss−loss_old, wherein loss_old indicates the value of loss in ACK packet when the last time R changed, and diff_loss_new indicates the difference between the two adjacent losses; use diff_loss_new to figure out the value of R_new, that is R_new=R_old+2*(diff_loss_new/10)+(diff_loss_old/10), wherein diff_loss_old indicates the value of diff_loss_new when the last time R changed; refresh the variables in the network coding layer of the sender, that is R_old=R_new, loss_old=loss, diff_loss_old=diff_loss_new, W=W+10*R_new.