WO2012174763A1 - 一种基于tcp协议的自适应网络控制传输方法和系统 - Google Patents

一种基于tcp协议的自适应网络控制传输方法和系统 Download PDF

Info

Publication number
WO2012174763A1
WO2012174763A1 PCT/CN2011/077329 CN2011077329W WO2012174763A1 WO 2012174763 A1 WO2012174763 A1 WO 2012174763A1 CN 2011077329 W CN2011077329 W CN 2011077329W WO 2012174763 A1 WO2012174763 A1 WO 2012174763A1
Authority
WO
WIPO (PCT)
Prior art keywords
loss
packet
layer
network
network coding
Prior art date
Application number
PCT/CN2011/077329
Other languages
English (en)
French (fr)
Inventor
李挥
宋思聪
潘凯
李硕彦
樊旭东
李锐源
Original Assignee
北京大学深圳研究生院
深圳市利德嘉实业有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 北京大学深圳研究生院, 深圳市利德嘉实业有限公司 filed Critical 北京大学深圳研究生院
Priority to US13/514,641 priority Critical patent/US9553956B2/en
Publication of WO2012174763A1 publication Critical patent/WO2012174763A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Definitions

  • the present invention relates to the TCP (Transmission Control Protocol) in the field of data communication, and more particularly to the field of network control transmission of the TCP protocol based on network coding theory.
  • TCP Transmission Control Protocol
  • the TCP protocol (Network Coding TCP, hereinafter referred to as NC-TCP) proposes an algorithm that uses random linear coding techniques to mask the loss of TCP packets and effectively improve throughput. This approach also ensures that the transmitted packet has a new information guarantee property with a high probability that it will usually be received by each recipient unless it already has as much information as the sender. New information. Therefore, the receiver will get new information every time it receives successfully.
  • NC-TCP Network Coding TCP
  • the NC-TCP protocol requires some modifications to the existing TCP protocol.
  • the sender sends not the original data packet, but a random linear combination of data packets.
  • the coefficients of each random linear combination are randomly selected elements from a large domain, even if one has been sent.
  • the linear combination is lost, and the next successful linear combination can still complete the decoding successfully, which can cover the loss of TCP packets.
  • the loss of the link is like an additional delay for TCP. The delay will cause a new effective round trip time (RTT).
  • RTT round trip time
  • the timeout retransmission mechanism in the original TCP has been replaced by the redundancy R, which indicates the number of times the sender performs a linear combination of the packets to be transmitted.
  • RTT has a new explanation here, which represents the network for reliable transmission of a degree of freedom (a new dimension of the information linear combination vector space, can also be understood, the degree of freedom characterizes the number of linear combinations received, when the degree of freedom
  • the effective time spent on solving all the data packets can be solved by a similar solution equation, that is, the time between the transmission of a combination from the sender to the receipt of the receiver acknowledgement signal.
  • the more link loss the greater the effective RTT.
  • the TCP-Vegas version is selected to be integrated with the network coding theory.
  • the sender records the transmission time of each linear combination. When the confirmation arrives, it is compared with the corresponding transmission time to calculate the RTT.
  • the concept of "seeing the package” is entered.
  • q is a linear combination of packets whose index value is greater than k.
  • the ACK corresponding to the packet can be immediately sent back without having to wait for the packet to be completely decoded.
  • the introduction of the concept of "seeing the packet” solves the shortcoming that the ACK response packet may not be generated in time due to the decoding delay, and the network coding theory is well integrated into the TCP protocol.
  • node knowledge and virtual queues are also introduced in the NC-TCP protocol.
  • the so-called node knowledge is what a node can
  • the calculated set of linear combinations of all the original data packets is received, and the vector space formed by the coefficient vectors of these linear combinations is called the knowledge space of the node.
  • the number of virtual queues is equal to the number of receivers, and the length of the jth virtual queue is defined as the difference between the dimension of the sender's knowledge space and the dimension of the jth receiver's knowledge space.
  • the sending module receives the data packets from the TCP source and saves them in a code buffer representing the encoding window until the recipient's acknowledgment is received.
  • the sender generates and transmits a random linear combination of data packets in the coding window, and the linear combination coefficients are transmitted through the packet header.
  • R is the redundancy coefficient, which is the reciprocal of the successful reception probability, which may not be an integer, so it will be rounded down during the operation
  • R is the redundancy coefficient, which is the reciprocal of the successful reception probability, which may not be an integer, so it will be rounded down during the operation
  • R is too small, it will not be enough to cover the loss of data packets. Therefore, a large number of timeouts will occur, resulting in low throughput.
  • the transmission rate will be limited by the encoding rate itself, which will also reduce the throughput and send too much.
  • a linear combination also blocks the network.
  • the module retrieves the coding coefficient vector from the packet header and adds it to the base matrix of the knowledge space.
  • the length of the virtual queue is zero, that is, the dimension and reception of the sender's knowledge space.
  • decoding can be started, and the Gaussian elimination method is used for decoding.
  • the receiving module passes these packets to TCP.
  • the receiver maintains a cache that stores a linear combination of undecoded packets.
  • the receiver "sees" a packet, its
  • the sender will be notified and it will be convenient to send this packet.
  • NC-TCP protocol solves the problem of integrating the network coding theory with the TCP protocol, since the idea is to cover the loss of the packet in the transmission by transmitting the coded redundancy packet, it is necessary to determine by setting the redundancy coefficient R. The number of encoded redundant packets sent. When the network condition is relatively stable and the packet loss rate does not change much, the network throughput and link utilization can be improved by setting a fixed optimal redundancy coefficient R (the optimal redundancy coefficient R is equal to the reciprocal of the successful reception rate). rate.
  • the NC-TCP protocol with fixed redundancy coefficients will appear in the following two cases: (1) When the set redundancy coefficient R is greater than the optimal redundancy coefficient value, The sender will send unnecessary unnecessary code redundancy packets, resulting in waste of bandwidth. (2) When the set redundancy coefficient R is smaller than the optimal redundancy coefficient value, the code redundancy packet sent by the sender cannot cover the actual The loss of the packet causes the receiver to decode the original packet due to insufficient information. Therefore, the NC-TCP protocol with fixed redundancy coefficient values is not well adapted to the changing environment of the network environment, especially in the wireless environment that is greatly affected by external interference. [Summary of the Invention]
  • the present invention proposes an adaptive network control transmission method based on the TCP protocol based on the network coding theory of the TCP protocol; the present invention also proposes an adaptive network control transmission system based on the TCP protocol, And simulated.
  • the method of the present invention adds the judgment information of the current network environment to the data packet header by adding the network coding layer, and dynamically adjusts the redundancy coefficient R at the sender network coding layer.
  • An adaptive network control transmission method based on TCP protocol which comprises adding a network coding layer in the middle of the transmission layer and the network layer of the transmitting end and the receiving end in the traditional TCP/IP protocol architecture of the network, and coding in the network coding layer
  • the packet and ACK response packet adds a network coding header containing a specific variable, and these variables are passed and updated between the receiving end and the transmitting end by using the encoding packet and the ACK response packet, and these variables are used to adjust the redundancy coefficient at the transmitting end network coding layer. 1 ⁇ .
  • the present invention is based on an adaptive network control transmission method of the TCP protocol, in which a network coding header including a specific variable is added to an encoded packet and an ACK response packet, and these variables are used at the receiving end and the transmitting end by using an encoding packet and an ACK response packet.
  • the specific methods that are passed between and updated are as follows:
  • adding a specific variable to the network coding header in the network coding layer includes: generating a linear coefficient vector Y and a variable pktID of the encoded packet, the variable information being extracted by the network coding layer of the receiving end, wherein the linear coefficient of the encoded packet is generated
  • the vector Y is passed to the decoding module for decoding of the original packet; the variable pktID is assigned to the variable echo_pktID in the network coding layer of the receiving end.
  • the network coding layer adds a specific variable to the ACK response packet network coding header.
  • the variable echo_pktID and the variable loss, loss pktID - id.
  • the echo_pktID is used to indicate the unique coding sequence number of the encoded packet that causes the ACK packet to be generated.
  • the loss value indicates the difference between the pktID sequence number of the encoded packet and the latest seen original packet sequence identifier id, and the two variables are transmitted by means of the ACK response packet. Go back to the sender.
  • the network coding layer of the sender When the network coding layer of the sender receives the ACK response packet, the network coding header of the ACK response packet is stripped, and the variable information echo_pktID and Bloss is extracted.
  • the adaptive network control transmission method based on TCP protocol proposed by the invention further comprises adjusting the redundancy coefficient R at the network coding layer of the transmitting end, and the specific method is: adding the following variables in the network coding layer of the transmitting end: R_old indicates the current Redundancy coefficient; W represents the theoretical minimum value of echo_pktID when the redundancy coefficient R value was last adjusted. When the echo_pktID satisfies one of the two conditions equal to or equal to the first time (W+R_old), the adjustment redundancy coefficient R is performed. Value:
  • the present invention provides an adaptive network control transmission system based on the TCP protocol, which includes a transmitting end and a receiving end.
  • the system respectively sets a network coding layer between the transmitting layer and the receiving layer of the transmitting end and the receiving end, wherein:
  • the network coding layer of the transmitting end includes two control transmission modules: a packet for processing a data packet or a management link sent from the TCP transmission layer of the transmitting end, and the control transmission module performs network coding on the data packet and adds a specific variable. Network coding header.
  • the specific variable added includes: a linear coefficient vector Y and a variable pktID for generating an encoded packet, the variable information being extracted by a control transmission module of the network coding layer of the receiving end for processing the encoded data packet transmitted from the transmitting end, wherein The linear coefficient vector Y that generates the encoded packet is used for decoding of the original packet; the variable pktID is assigned to the variable echo_pktID in the network coding layer of the receiving end.
  • Another control transmission module is configured to process the ACK response packet transmitted from the receiving end, and the module strips the network coding packet header from the ACK response packet transmitted from the lower layer network layer of the transmitting end, and extracts the variable echo_pktID in the packet header, according to the extracted The value of the variable echo_pktID determines whether the redundancy coefficient R value should be updated at this time.
  • the redundancy coefficient R value is updated: from the network of the ACK response packet
  • the network coding layer of the receiving end also contains two control transmission modules: one for processing from the receiving end
  • the module determines whether the ACK packet sent from the TCP transport layer of the receiving end is a control packet that will establish a link, and if yes, delivers it to the lower layer network layer of the receiving end, and if not, discards it Return to the wait state.
  • Another control transmission module is configured to process the encoded data packet transmitted from the transmitting end. If the module receives the data packet delivered from the lower layer network layer, the module extracts the network coding packet header in the data packet, and extracts the coding coefficient vector Y and the variable. pktID, performs the decoding operation, obtains the original packet, and generates a new ACK response packet with the added network coding header.
  • the added network coding header includes the variable loss and the variable echo_pktID, and delivers the newly generated ACK response packet to the lower network layer. .
  • the application layer, the transport layer, the network layer, and the data link are respectively from top to bottom.
  • the road layer and the physical layer are composed.
  • the technical solution of the present invention is to add a network coding layer between the transmission layer and the network layer of the transmitting end and the receiving end, and add a network coding header including a specific variable to the coding packet and the ACK response packet, and use the coding.
  • the packet and the ACK response packet pass and update these variables between the receiving end and the transmitting end to receive real-time network environment parameters and perform corresponding processing, thereby adjusting the network transmission control mode to adapt to the actual network needs.
  • the present invention uniformly encodes the data packets collected from the upper layer of the transport layer and delivers them to the next layer, that is, the network layer (IP layer).
  • IP layer the network layer
  • the network coding header added at the transmitting end contains specific information for decoding processing of the receiving network coding layer and detecting and recording the current network environment.
  • the specific information includes: (1) generating a linear coefficient vector Y of the encoded packet. Since the encoded packet is linearly combined by all the original packets in the encoding buffer, the linear coefficient vector ⁇ records the random coefficients added before each original packet. (2) Variable pktID. The code number used to uniquely represent the current encoded packet.
  • the network coding layer receives the network encoded data packets delivered by the lower layer network layer. After receiving the encoded packet, the network coding layer strips the network coding header in the encoded packet, extracts the information in the network coding header, and adds the encoded packet to the decoding module for decoding and "seeing the packet". If it is found that "see” the new original packet, the corresponding ACK is generated and delivered to the lower network layer; if a new original packet is decoded, the original packet is delivered to the upper transport layer, and the corresponding encoded packet is deleted in the decoding matrix. .
  • the information extracted in the network coding header includes: (1) A linear coefficient vector Y that generates an encoded packet. This vector is passed to the decoding module for decoding of the original packet. (2) Variable pktID. This variable is assigned to the variable echo_pktID in the network coding layer of the receiving end. Among them, the meaning of echo_pktID will be explained in the step of generating ACK.
  • the ACK packet generated in the network coding layer of the receiving end also adds a network coding header, and the feedback information contained therein is used to adjust the control parameters of the network coding layer of the receiving end.
  • the information contained in the network coding header of the ACK packet includes: (1) The variable echo_pktID. A unique code sequence number used to represent the encoded packet that caused this ACK packet to be generated. (2) Variable loss. The loss value is generated during the decoding of the decoding module and the process of "seeing" the packet, indicating the difference between the pktID sequence number of the encoded packet and the latest seen original packet sequence number id. Specifically, each ACK packet is generated because a new original packet is seen in the decoding module.
  • Each original package has its own unique original serial number identifier id.
  • the original packet sequence identifier id is always less than or equal to the encoded packet sequence number pktID due to the inevitable loss of the packet.
  • the network coding layer may also receive the original ACK packet delivered by the upper transport layer. If the ACK is a control packet for link management, it is forwarded to the underlying network layer; otherwise, it is discarded.
  • the network coding layer may receive the ACK packet delivered by the lower layer network layer in addition to the original data packet and the management control packet transmitted from the upper layer transport layer.
  • the network coding layer of the transmitting end receives the ACK packet
  • the network coding header of the ACK packet is stripped, and the information therein is extracted.
  • the extracted information includes: (1) The variable echo_pktID.
  • R_old represents the current redundancy factor
  • W represents the theoretical minimum value of echo_pktID when the redundancy coefficient R value was last adjusted.
  • variable diff_loss_new loss - loss_old.
  • loss_old indicates the value of loss in the received ACK packet when the redundancy coefficient R was last adjusted.
  • Diff_loss_new indicates the difference in the loss value of the ACK packet received when the redundancy coefficient R value is adjusted twice.
  • diff_loss_old represents the value of diff_lo SS _ new obtained when the redundancy coefficient R was last adjusted.
  • the network coding layer will delete the original packet that has been acknowledged in the encoding buffer and pass this ACK to the upper transport layer.
  • Figure 1 shows the TCP/IP protocol architecture of the system after joining the network coding layer.
  • FIG. 2 is a flow chart of the operation of the network coding layer of the transmitting end.
  • Figure 3 is a flow chart of the operation of the network coding layer at the receiving end.
  • Figure 4 is a simulation structure topology diagram.
  • Figure 5 is a simulation of the same SANC-TCP flow competition for a TCP-Vegas stream.
  • Figure 6 is a simulation diagram of a SANC-TCP flow competing with another SANC-TCP flow.
  • Figure 7 is a simulation diagram of five SANC-TCP streams competing for a link.
  • Figure 8 is a schematic diagram of throughput simulation of three protocols at different loss rates.
  • Figure 9 is a schematic diagram of the throughput simulation of the NC-TCP protocol and the SANC-TCP protocol at different loss rates.
  • Figure 10 is a schematic diagram of the instantaneous throughput simulation of the three protocols in case of burst loss.
  • the embodiment of the invention provides an adaptive network control transmission scheme based on the TCP protocol, which has unique advantages in a wireless network whose network transmission quality is greatly affected by external influences and whose network performance is unstable.
  • each node can perform both the function of the sender and the function of the receiver.
  • the application layer 101 generates data to be delivered to the lower layer transport layer 102.
  • the transport layer 102 adds the TCP packet header
  • the data packet is delivered to the lower layer network coding layer 103, and the encoding layer 103 encodes the original packet in the encoding buffer.
  • the network coding header is added, the generated coding package is delivered to the next layer network layer 104.
  • the packet processing in the sender network layer 104, the data link layer 105, and the physical layer 106 is then transparent to our adaptive system.
  • Data is transmitted to the receiving end via network transmission.
  • the processing of the data packets in the physical layer 107, the data link layer 108, and the network layer 109 is also transparent to our adaptive system.
  • the system decodes the received encoded packet, and generates a corresponding data response packet ACK to be delivered to the lower layer network layer 109.
  • the decoded original packet is delivered to the upper transport layer 111, and the transport layer 111 passes the data to a specific process in the application layer 112.
  • the ACK packet generated by the receiving end network coding layer 110 is transmitted to the transmitting end through the network transmission.
  • the ACK packet is delivered to the sender network coding layer 103 via the physical layer 106, the data link layer 105, and the network layer 104.
  • the network coding layer 103 according to the information in the received ACK packet, the original packet that has been confirmed by the coding buffer is deleted, the redundancy coefficient R is updated, the network coding layer parameters of the sender are updated, and the like, and the stripping process is performed.
  • the ACK packet after the network coding header is delivered to the upper transport layer 102.
  • the transmitting end network coding layer 103 needs to respond to the packets from the upper transmission layer 102 of the transmitting end and the acknowledgement packet ACK from the receiving side delivered by the lower layer network layer 104, respectively.
  • the specific process of the network coding layer 103 at the transmitting end is as follows:
  • 201 When a packet enters the network coding layer 103, the system determines the type of the packet, and then performs a corresponding operation.
  • step 203 If the packet received in step 202 is a control packet for network communication link management, no processing is performed, and the packet is directly delivered to the lower layer network layer 104, and returns to the waiting state.
  • the header information includes: (1) The linear coefficient vector Y when the encoded packet is generated. (2) The variable pktID used to uniquely specify the sequence number of this package.
  • 207 Determine whether an ACK response packet delivered from the lower layer network layer 104 of the transmitting end is received. If no, continue to wait for the status. 208: If an ACK response packet is received, the network coding header in the ACK packet is stripped, and the variable echo_pktID stored in the packet header is extracted.
  • step 209 Determine, according to the variable echo_pktID value extracted in step 208, whether the redundancy coefficient R value should be updated at this time. If echo_pktID is equal to W + 10*R_old or echo_pktID is greater than W + 10*R_old for the first time, the redundancy coefficient R value is updated, and the process proceeds to step 211. Otherwise, without updating, go directly to step 210.
  • the confirmed packet is deleted from the encoding buffer, and the ACK after the stripping of the network encoding header is uploaded to the upper layer 102. Ending the process of transmitting the network coding layer 103, the process returns to the wait state.
  • the main work that the sender network coding layer 103 needs to accomplish is: (1) Encoding the data packet. (2) The redundancy coefficient R value is automatically updated based on the information of the ACK packet.
  • the adaptive network transmission control method proposed by the present invention is completed.
  • the network coding layer 110 needs to deal with two cases, gp: an ACK packet delivered from the upper layer transport layer 111 of the receiving end and an encoded data packet delivered from the lower layer network layer 109. Referring to FIG. 3, the specific steps of the network coding layer 110 at the receiving end are as follows:
  • step 301 If it is determined in step 301 that the network coding layer 110 receives the ACK response packet from the upper layer transport layer 111, then it is determined whether the ACK packet is a control packet for establishing a link.
  • step 302 If the ACK in step 302 is a control packet for establishing a link, deliver it to the lower layer network layer 109 of the receiving end, and return to the waiting state.
  • step 304 If the ACK in step 302 is not a control packet for establishing a link, discard it and return to the wait state.
  • the information in the header includes the variable loss and the variable echo_pktID, where loss indicates how many linearly independent coding packets are currently needed at the receiver to fully decode all the original packets; the echo_pktID value is equal to the received source data. The value of the pktID in the packet encoding header.
  • the generated ACK is delivered to the lower layer network layer 09, and returns to the waiting state.
  • step 310 After the packet is stripped of the network coding header in step 306, the payload is added to the decoding buffer to perform a Gaussian elimination operation on the content in the cache.
  • 311 Determine whether a new original packet is decoded in the decoding buffer. If no, it returns to the wait state.
  • the main work that the receiving end network coding layer 110 needs to complete includes: (1) performing a decoding operation to obtain an original packet; and (2) generating an ACK response packet.
  • the embodiment of the present invention constructs a complete network coding adaptive TCP protocol. It is based on the NC-TCP protocol proposed by MIT [JKSundararajan, D.Shah, M.Medard, M.Mitzenmacher, and J.Barros "Network Coding Meets TCP, "in IEEE INFOCOM, Apr 2009], proposed adaptive theory, by collecting real-time information at the network coding layer of the transmitting end, dynamically adjusting the redundancy coefficient R to improve the fixed redundancy coefficient R of the NC-TCP protocol in an unstable network environment Transmission performance. Therefore, with the method of the present invention, our new protocol can be called Self-Adaptive Network Coding TCP, referred to as SANC-TCP.
  • SANC-TCP Self-Adaptive Network Coding TCP
  • FIG. 4 is a simulated topology diagram of a network of 8 hops and 9 nodes.
  • the fairness of the TCP-Vegas protocol depends on the variables ⁇ and ⁇ .
  • the values chosen by these two variables can make the TCP-Vegas protocol a fair or unfair protocol.
  • we first select a specific set of alpha and beta values ie, ⁇ is 28, and ⁇ is 30), making it clear that TCP-Vegas is fair before it is added to our mechanism.
  • ARNC-TCP we select the same alpha and beta values and simulate in the following three cases to verify the fairness of the protocol.
  • Case 1 A TCP-Vegas stream competes for the same SANC-TCP stream.
  • the number of redundant packets sent by the NC-TCP stream cannot cover the loss of the packet, causing the receiver to be unable to decode and a large number of timeout retransmissions, resulting in a sharp drop in throughput.
  • the SANC-TCP flow shows good robustness, which proves that it has obvious advantages in the network environment with changing loss rate.
  • the network environment loss rate is less than 10%, the NC-TCP stream at this time will send a large number of redundant redundant packets, resulting in waste of network bandwidth; while the SANC-TCP flow will lower the R value in time to ensure the efficiency of the network. use.
  • Figure 10 is the simulation result for this case. Still using the topology shown in Figure 4, the R value of the NC-TCP stream is fixed at 1.1. At 0.6 seconds, the loss rate of the intermediate link remains at 10%; at 500 seconds, the link loss rate suddenly rises to 30% due to an unknown burst condition, and the loss rate is not restored until 600 seconds. 1 0% until the end of the simulation.
  • both the NC-TCP stream and the BARNC-TCP stream fluctuate around the link theoretical limit throughput of 0.9 Mbs. But when it is 500 seconds, the link loss suddenly increases to 30%, and the instantaneous throughput of the NC-TCP stream and the TCP-Vegas stream drops sharply, almost to zero, and the ARNC-TCP stream still maintains good characteristics. It floats up and down at a link theoretical limit throughput of 0.7 Mbs. It can be proved that our ARNC-TCP protocol has better resistance than the other two protocols in dealing with the sudden loss that often occurs in the actual network. It is guaranteed that even in the above-mentioned emergencies, a higher network link utilization can be obtained.
  • the proposed TCP-based adaptive network control transmission method of the present invention can form a complete network coding-based adaptive TCP protocol, which is called SANC-TCP protocol, and is constructed according to this method.
  • the control transmission system solves the problem of packet loss by transmitting redundant packets and dynamically adjusting the redundancy coefficient R.
  • This design has little change to the previous protocol stack, and can combine the network coding theory with the TCP protocol. It has greater throughput and better robustness to sudden loss than the normal NC-TCP protocol.

Landscapes

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

Abstract

一种基于TCP协议的自适应网络控制传输方法,通过在网络传统的TCP/IP协议体系结构中的发送端和接收端的传输层和网络层中间分别添加网络编码层,在网络编码层中给编码包和ACK应答包添加包含特定变量的网络编码包头,利用编码包和ACK应答包将这些变量在接收端和发送端之间传递并更新,并利用这些变量在发送端网络编码层调整冗余系数R。这种动态调整冗余系数的方法,可以增强协议对突发丢失的抵抗力,并在丢失率不断变化的网络环境中,使冗余系数R尽可能维持在最优值,提高网络吞吐率和链路利用率。

Description

一种基于 TCP协议的自适应网络控制传输方法和系统
【技术领域】
本发明涉及数据通信领域的 TCP协议 (TCP: Transmission Control Protocol ) , 特别涉及 基于网络编码理论的 TCP协议的网络控制传输领域。
【背景技术】
基于网络编码理论的 TCP协议(Network Coding TCP,本文后面简称为 NC-TCP )提出的 算法是利用随机线性编码技术掩盖 TCP数据包的丢失, 有效提高吞吐量。 这种方法同时确保 被传送的数据包在很大概率上具有新信息保证性质, 即对每个接收方来说, 除非其已经具备 了和发送方一样多的信息, 否则它通常都能收到新的信息。 因此, 接收方每次成功的接收都 会获得新信息。
NC-TCP协议为了引入网络编码技术, 需要对现有的 TCP协议进行一些修改。首先, 在发 送端, 发送方发送的不是原始数据包, 而是数据包的随机线性组合, 每个随机线性组合的系 数都是从一个很大的域中随机选取的元素, 即使一个已发送的线性组合丢失了, 下个成功接 收的线性组合仍可使解码顺利完成, 这样便可以掩盖 TCP数据包的丢失, 换句话说, 链路的 损失对于 TCP就像是一个附加的时延, 该时延将引起一个新的有效往返时间(RTT)。这里, 原来 TCP中的超时重传机制已被冗余度 R所替代, R表明了发送方执行待发送数据包线性组合 的次数。 上述 RTT在此有新的解释, 其代表网络用于可靠传输一个自由度 (信息线性组合向 量空间的一个新维数, 也可以这样理解, 自由度表征收到线性组合的个数, 当自由度大于等 于未知数据包个数时便可利用类似解方程的方法解出所有数据包) 所耗费的有效时间, 即一 个组合从发送方发出到收到接收方确认信号之间的时间。 当然, 链路损失越多, 有效 RTT就 越大。 选择 TCP-Vegas 版本与网络编码理论相融合, 发送方记下每个线性组合的发送时间, 当确认到达时, 就与对应的发送时间进行比较以计算 RTT。 其次, 在接收端, 弓 I入了 "看见 包"的概念。"看见包"机制解释为:如果一个节点有足够的信息来计算一个线性组合 pk + q, 其中 q =∑i>fc alPl, 且对于所有 1 > /c有 £ Fq,那么可以说这个节点看见了一个包 pk。在这里, q是一个索引值大于 k的包的线性组合。 当在接收端判断看见一个包 pk时, 可以立即发送这个 包对应的 ACK回发送端, 而不必等到将此包完全解码。 "看见包"概念的引入解决了可能因解 码时延而造成的 ACK应答包不能及时产生发出的缺点, 使网络编码理论很好地融入到了 TCP 协议中。
NC-TCP协议中还引入了节点知识和虚拟队列的概念。 所谓节点知识就是一个节点所能 计算的收到所有原始数据包的线性组合的集合, 同时这些线性组合的系数向量所形成的向量 空间称作该节点的知识空间。 虚拟队列的个数等于接收方的个数, 第 j条虚拟队列的长度被定 义为发送方知识空间的维数和第 j个接收方知识空间的维数之差。
所有思想在现有的 TCP协议上的实现需要尽可能采用一种非强加的方式, 因而美国麻省 理工学院(MIT)有人提出一种新的 NC-TCP协议, 即在发送方和接收方的 TCP层和 IP层间嵌 入单独的网络编码层 (参见 【 J.K.Sundararajan, D.Shah, M.Medard, M.Mitzenmacher, and J.Barros "Network Coding Meets TCP," in IEEE INFOCOM, Apr 2009】 ) , 其中的操作描述如下:
发送模块从 TCP源端收到数据包并将它们保存在一个代表编码窗口的编码缓存中, 直到 收到接收方的确认。 发送方在编码窗口中生成并发送数据包的随机线性组合, 线性组合系数 通过包头来传输。
对于编码窗口中的数据包, 将进行 R次随机线性组合(R是冗余系数, 为成功接收概率的 倒数, 其可能不是整数, 故在运算时将向下取整) 发送出去。 如果 R太小, 将不足以掩盖数 据包的丢失, 因此, 会出现大量的超时从而导致吞吐量低下; 反之, 发送速率会受到编码自 身速率的限制, 也会降低吞吐量, 而且发送太多的线性组合也会阻塞网络。
当接收模块收到一个线性组合时, 模块便从包头中检索出编码系数向量, 将其添加到知 识空间的基矩阵中, 当虚拟队列的长度为零, 即发送方知识空间的维数和接收方知识空间的 维数之差为零时, 便可开始解码, 解码使用高斯消元法。 一旦解码完成, 接收模块就将这些 数据包传给 TCP。 此外, 接收方还维持一个存储未解码数据包的线性组合的缓存。 另外, 当 接收方 "看见"某一数据包时, 其
会通知发送方, 发送方便将这一数据包丢弃。
上述 NC-TCP协议虽然解决了将网络编码理论与 TCP协议融合的难题,但由于其思想是通 过发送编码冗余包来掩盖传输中的包的丢失,因此需要通过冗余系数 R的设置来确定编码冗余 包发送的数量。 当网络情况较为稳定, 丢包率变化不大的情况下, 可以通过设置固定最优的 冗余系数 R (最优冗余系数 R等于成功接收率的倒数) 来提高网络吞吐量和链路利用率。 但在 网络情况不明,丢包率经常变化的环境下,固定冗余系数的 NC-TCP协议会出现以下两种情况: ( 1 ) 当设置的冗余系数 R大于最优冗余系数值时, 发送方会发送多余的无用编码冗余包, 造 成带宽的浪费; (2) 当设置的冗余系数 R小于最优冗余系数值时, 发送方发送的编码冗余包 不能很好地掩盖实际包的丢失, 造成接收方因信息不足而无法解码出原始包。 因此, 固定冗 余系数值的 NC-TCP协议不能很好地适应网络环境不断变化的情况,特别是受外界干扰影响较 大的无线环境的情况。 【发明内容】
为了改进 NC-TCP协议的上述缺点, 本发明基于 TCP协议的网络编码理论提出一种基于 TCP协议的自适应网络控制传输方法; 本发明还提出一种基于 TCP协议的自适应网络控制传 输系统, 并进行了模拟仿真。
本发明所述的方法是通过加入网络编码层, 在数据包包头添加对当前网络环境的判断信 息, 在发送方网络编码层动态地对冗余系数 R进行调整。
一种基于 TCP协议的自适应网络控制传输方法, 包括在网络传统的 TCP/IP协议体系结构 中的发送端和接收端的传输层和网络层中间分别添加网络编码层, 在网络编码层中给编码包 和 ACK应答包添加包含特定变量的网络编码包头,利用编码包和 ACK应答包将这些变量在接收 端和发送端之间传递并更新, 并利用这些变量在发送端网络编码层调整冗余系数1^。
更具体地, 本发明基于 TCP协议的自适应网络控制传输方法, 其中给编码包和 ACK应 答包添加包含特定变量的网络编码包头并且利用编码包和 ACK应答包将这些变量在接收端 和发送端之间传递并更新的具体方法表述如下:
在发送端, 在网络编码层给网络编码包头中加入特定的变量包含: 生成编码包的线性系数 向量 Y和变量 pktID, 该变量信息被接收端的网络编码层提取, 其中, 生成编码包的线性系数 向量 Y被交予解码模块用于原始包的解码; 变量 pktID被赋值给接收端网络编码层中的变量 echo_pktID。
在接收端, 在网络编码层给 ACK应答包网络编码包头加入特定的变量包含: 变量 echo_pktID和变量 loss, loss =pktID - id。 其中 echo_pktID用以表示导致此 ACK包产生的编码包 的唯一编码序号, loss值表示编码包的 pktID序号和最新看见的原始包序号 id之间的差值, 依 靠 ACK应答包将这两个变量传回发送端。
当发送端的网络编码层收到 ACK应答包时, 剥去 ACK应答包的网络编码包头, 提取变量信 息 echo_pktID禾 Bloss。
本发明提出的基于 TCP协议的自适应网络控制传输方法的特点还包括在发送端网络编码 层调整冗余系数 R, 具体方法是: 在发送端的网络编码层中还添加了如下变量: R_old表示当 前冗余系数; W表示上一次调整冗余系数 R值时 echo_pktID的理论最小值, 当 echo_pktID满足等 于或者第一次大于 (W+R_old) 值这两个条件之一时, 则进行调整冗余系数 R值:
利用从 ACK包头里提取出的 loss值计算得出当前发送端网络编码层中变量 diff_loSS_new 的值, 即 diff_loss_new = loss - loss_old,其中 loss_old表示上一次调整冗余系数 R时收到的 ACK 包中 loss的值, diff_loss_new表示相邻两次调整冗余系数 R值时收到 ACK包中 loss值的差值; 利 用 变 量 diff_loss_new 计 算 得 出 新 的 冗 余 系 数 R_new 的 值 , 即 R_new = R_old+2*(diff_loss_new/10)+ (diff_loss_old/10) ; 其中 diff_loss_old表示上一次调整冗余系数 R 时得出的 diff_loss_new的值;更新发送端网络编码层中的参数变量,即1 _01(1 = R_new, loss_old = loss, diff_loss_old = diff_loss_new, W = W + 10*R_new。
这种动态调整冗余系数的方法, 可以增强协议对突发丢失的抵抗力, 并在丢失率不断变 化的网络环境中, 使冗余系数 R尽可能维持在最优值, 提高网络吞吐率和链路利用率。 根据上述方法, 本发明提出一种基于 TCP协议的自适应网络控制传输系统, 包括发送端 和接收端, 该系统分别在发送端和接收端的传输层和网络层中间设置了网络编码层, 其中: 发送端的网络编码层包含的两个控制传输模块: 一个用于处理从发送端 TCP传输层送来 的数据包或者管理链接的包, 该控制传输模块给数据包进行网络编码并加入特定的变量在网 络编码包头中。 加入的特定变量包含: 生成编码包的线性系数向量 Y和变量 pktID, 该变量信 息被接收端网络编码层的用于处理从发送端传来的编码数据包的控制传输模块提取, 其中, 所述生成编码包的线性系数向量 Y被用于原始包的解码; 所述变量 pktID被赋值给接收端网络 编码层中的变量 echo_pktID。
另一个控制传输模块用于处理从接收端传来的 ACK应答包, 该模块对来自发送端下层网 络层传来的 ACK应答包剥去网络编码包头, 提取包头中的变量 echo_pktID, 根据提取出的变 量 echo_pktID值判断此时是否应该更新冗余系数 R值, 若 echo_pktID等于 W + 10*R_old或者 echo_pktID第一次大于 W + 10*R_old, 则开始更新冗余系数 R值: 从 ACK应答包的网络编码包 头中提取变量 loss值, 利用从 ACK包头里提取出的 loss值计算得出当前发送端网络编码层中变 量 diff_loss_new的值, 即 diff_loss_new = loss- loss_old; 其中 loss_old表示上一次调整冗余系 数 R时收到的 ACK包中 loss的值, diff_loss_new表示相邻两次调整冗余系数 R值时收到 ACK包中 loss值的差值; 利用变量 diff_loss_new计算得出新的冗余系数R_new的值, 即R_new = R_old + 2*(diff_loss_new/10) + (diff_loss_old/10); 其中 diff_loss_old表示上一次调整冗余系数 R时得出 的 diff_loss_new的值,更新发送端网络编码层中的参数变量,即1 _01(1 = R_new, loss_old = loss, diff_loss_old = diff_loss_new, W = W + 10*R_new。
接收端的网络编码层同样包含的两个控制传输模块: 一个用于处理从接收端
TCP传输层送来的 ACK包, 该模块判断从接收端 TCP传输层送来的 ACK包是否是将建立链接 的控制包, 若是则交付给接收端下层网络层, 若不是, 则将其丢弃并返回等待状态。
另一个控制传输模块用于处理从发送端传来的编码数据包, 该模块若收到来自下层网络 层交付的数据包, 则剥去数据包中的网络编码包头,提取编码系数向量 Y和变量 pktID,进行解 码操作, 得到原始包, 并生成一个新的添加网络编码包头的 ACK应答包, 所添加的网络编码 包头中包含变量 loss和变量 echo_pktID, 将新生成的 ACK应答包交付予下层网络层。 为更清楚地表达本发明的内容, 现对本发明的技术方案做进一步详细阐述: 在网络传统 的 TCP/IP协议体系结构中, 从上到下分别由应用层、 传输层、 网络层、 数据链路层、 物理层 组成。 为了添加控制处理模块, 本发明的技术方案是在发送端和接收端的传输层和网络层中 间分别添加了网络编码层, 并给编码包和 ACK应答包添加包含特定变量的网络编码包头, 利 用编码包和 ACK应答包将这些变量在接收端和发送端之间传递并更新, 用以接收实时网络环 境参数, 并做出相应的处理, 进而调整网络传输控制模式, 以适应实际网络需要。
在发送端的网络编码层中, 本发明将从上一层传输层收集到的数据包统一编码后交给下 一层, 即网络层 (IP层) 。 其中, 在网络编码层中设有特定的网络编码缓冲区, 用以接收从 传输层中交付的数据包。 每一次编码时, 将缓冲区中所有的数据包进行线性组合, 并添加网 络编码包头, 生成编码包交付给网络层。
在所述的发送端添加的网络编码包头中包含特定信息用以接收端网络编码层的解码处理 以及探测和记录当前网络环境。 所述特定信息包括: (1 )生成编码包的线性系数向量 Y。 因 为编码包是由编码缓冲区中所有的原始包经由线性组合而成, 线性系数向量 Υ记录每一个原 始包前添加的随机系数。 (2) 变量 pktID。 用以唯一表示当前编码包的编码序号。
在接收端,网络编码层会收到由下层网络层交付的网络编码数据包。当接收到编码包后, 网络编码层将剥去编码包中的网络编码包头, 提取网络编码包头中的信息, 并将此编码包加 入解码模块进行解码和 "看见包" 的判断。 若发现 "看见"新的原始包, 则生成相应的 ACK 交付给下层网络层; 若解码出新的原始包, 则将这个原始包交付给上层传输层, 并在解码矩 阵中删除相应的编码包。
在网络编码包头中提取的信息包括: (1 ) 生成编码包的线性系数向量 Y。 该向量被交予 解码模块用于原始包的解码。 (2) 变量 pktID。 该变量被赋值给接收端网络编码层中的变量 echo_pktID。 其中, echo_pktID的含义将在生成 ACK步骤中解释。
在接收端网络编码层中生成的 ACK包也添加了网络编码包头, 其中包含的反馈信息用以接 收端网络编码层调整控制参数。 ACK包的网络编码包头中所包含的信息包括: (1 ) 变量 echo_pktID。 用以表示导致此 ACK包产生的编码包的唯一编码序号。 (2)变量 loss。 其中 loss 值是在解码模块的解码和判断 "看见"包过程中产生的, 表示编码包的 pktID序号和最新看见 的原始包序号 id之间的差值。 具体来说, 每生成一个 ACK包是因为在解码模块中看见了一个 新的原始包。 而每一个原始包都有自己唯一的原始序号标识 id。 在编码包的传输过程中, 由 于不可避免地存在包的丢失而导致原始包序号标识 id总是小于或者等于编码包序号 pktID的。 而 loss值表示这两个序号之间的差值, 即 loss = pktID - id。 它指示了当前在接收端, 网络编码 层还需要收到多少个线性无关的编码包, 才能完全 "看见"或者解码出当前在解码模块中存 在的原始包。
在接收端, 网络编码层还可能收到由上层传输层交付下来的原始的 ACK包。 若该 ACK是一 个用于链接管理的控制包, 则将它转发给下层网络层; 否则, 将它丢弃。
在发送端, 网络编码层除了收到上层传输层传来的原始数据包和管理控制包, 还可能收 到由下层网络层交付的 ACK包。当发送端网络编码层收到 ACK包时,剥去 ACK包的网络编码包头, 提取其中的信息。 提取的信息包括: (1 ) 变量 echo_pktID。 当 echo_pktID等于或者第一次大 于 (W+R_old) 值时, 则进入调整冗余系数 R值的状态。 其中, R_old表示当前冗余系数, W 表示上一次调整冗余系数 R值时 echo_pktID的理论最小值。 否则, 在网络编码缓冲区中删去已 确认的原始包, 并将剥去网络编码包头后的 ACK直接交付给上层传输层。 (2 ) 变量 loss。 当 系统进入调整冗余系数 R状态时, 利用从 ACK包头里提取出的 loss值计算得出当前发送端网络 编码层中变量 diff_loss_new的值, 即 diff_loss_new = loss - loss_old。 其中 loss_old表示上一次 调整冗余系数 R时, 收到的 ACK包中 loss的值。 diff_loss_new则表示相邻两次调整冗余系数 R 值时, 收到 ACK包中 loss值的差值。 进而利用变量 diff_loss_new计算得出新的冗余系数R_new 的值, 即1 _^\¥ = R_old + 2*(diff_loss_new/10) + (diff_loss_old/10)。其中 diff_loss_old表示上一 次调整冗余系数 R时得出的 diff_loSS_new的值。更新发送端网络编码层中的参数变量, 即1 _01(1 = R_new, loss_old = loss, diff_loss_old = diff_loss_new, W = W + 10*R_new。至此, 在发送端更 新冗余系数 R过程结束, 网络编码层将删去编码缓冲区中已确认的原始包, 并将此 ACK传递给 上层传输层。
【附图说明】
结合后面将要给出的描述,以及下述附图,将会对本发明的特点及优势有更透彻的理解。 图 1是加入网络编码层后系统的 TCP/IP协议体系结构。
图 2是发送端网络编码层操作流程图。
图 3是接收端网络编码层操作流程图。
图 4是仿真结构拓扑图。
图 5是一条 TCP-Vegas流同一条 SANC-TCP流竞争仿真图。
图 6是一条 SANC-TCP流同另一条 SANC-TCP流竞争仿真图。
图 7是五条 SANC-TCP流竞争一段链路仿真图。
图 8是三个协议在不同丢失率下的吞吐率仿真示意图。
图 9是 NC-TCP协议与 SANC-TCP协议在不同丢失率下的吞吐率仿真示意图。
图 10是突发丢失情况下三种协议的瞬时吞吐率仿真示意图。
【实施方式】
在下面的描述中, 给出了许多特殊的细节, 以提供对于本发明的透彻理解。 但是, 本领 域的熟练技术人员可以看出, 本发明的实施并不依赖于这些特殊细节。 在其它场合, 为了避 免引起不必要的混淆, 对已有的方法、 过程、 元件将不再详细描述。
1自适应网络传输控制系统的具体算法描述和实现过程: 为使本发明的目的、 技术方案和优点更加清楚, 下面将结合附图对本发明实施方式作进 一步地详细描述。
本发明实施例提供了一种基于 TCP协议的自适应网络控制传输方案, 在网络传输质量受 外界影响较大, 网络性能不稳定的无线网络中有其独特的优越性。
我们考虑简单的点对点通信。 在点对点通信中, 每个节点既可以完成发送端的功能, 也 可以完成接收端的功能。 为了把本发明的具体过程描述清楚, 我们将一个节点只作为发送端 处理, 而将与之通信的另一个节点作为接收端处理。 参见图 1, 在发送端, 应用层 101产生数 据交付给下层传输层 102, 传输层 102添加 TCP包头后将数据包交付下层网络编码层 103, 编码 层 103将编码缓冲区中的原始包进行编码并添加网络编码包头后,再将生成的编码包交付给下 一层网络层 104。 之后在发送端网络层 104、 数据链路层 105、 物理层 106中的数据包处理对于 我们的自适应系统来说是透明的。
数据经过网络传输发送至接收端。 同样, 在接收端中, 物理层 107、 数据链路层 108、 网 络层 109中对数据包的处理对于我们的自适应系统来说也是透明的。 在接收端的网络编码层 110中,系统对收到的编码包进行解码处理,生成相应的数据应答包 ACK交付给下层网络层 109。 并将解码后得到的原始包交付给上层传输层 111,再由传输层 111将数据传给应用层 112中的特 定进程。
接收端网络编码层 110生成的 ACK包经过网络传输传送到发送端。 ACK包经物理层 106、 数据链路层 105、 网络层 104, 交付至发送端网络编码层 103。 在网络编码层 103中, 根据收到 的 ACK包中的信息进行删去编码缓冲区已确认的原始包, 更新冗余系数 R, 更新发送端网络 编码层参数等一系列处理, 并将剥去网络编码包头后的 ACK包交付给上层传输层 102。
至此, 我们的系统完成了一个特定编码包从发送端传输至接收端, 并返回 ACK包给接收 端的过程。 下面, 我们对在发送端网络编码层 103中的处理过程做一个详细的说明。
发送端网络编码层 103需要对来自发送端上层传输层 102的包以及通过下层网络层 104交 付的来自接收方的确认包 ACK分别做出响应。参见图 2, 在发送端网络编码层 103具体执行过程 步骤如下:
200: 一开始, 当发送端网络编码层 103既没有收到来自上层传输层 102的包, 也没有收到 来自下层网络层 104交付的 ACK应答包时, 系统处于等待状态。 将编码层中变量 NUM初始化 为 0。
201: 当有包进入网络编码层 103时, 系统判断此包的类型, 进而执行相对应的操作。 202: 若收到来自发送端上层传输层 102的包, 判断此包是否为数据包, 或是用于链接管 理的控制包。
203: 如果在步骤 202中收到的包是用于网络通信链接管理的控制包, 则不做任何处理, 直接将此包交付予下层网络层 104, 并返回等待状态。
204: 如果在步骤 202中收到的包是来自上层传输层 102的数据包, 且该数据包没有在网络 编码层 103中的编码缓冲区中,则将这个数据包加入编码缓冲区。并设置变量 NUM = NUM + R。
205: 重复执行以下操作 L«U次:
1 ) 将编码缓冲区中所有原始数据包进行线性组合编码, 生成所需的编码数据包。
2 )对编码数据包添加网络编码包头。 包头信息包括: (1 ) 生成编码包时的线性系数 向量 Y。 (2 ) 用于唯一指定此编码包序号的变量 pktID。
3 ) 将生成的编码包传递给下层网络层 104。
206: 设置变量值 NUM, 即 NUM = NUM的小数部分。 返回等待状态。
207:判断是否收到来自发送端下层网络层 104交付的 ACK应答包。若否,则继续等待状态。 208: 若收到 ACK应答包, 则剥去 ACK包中的网络编码包头, 提取出包头中存储的变量 echo_pktID。
209: 根据步骤 208提取出的变量 echo_pktID值判断此时是否应该更新冗余系数 R值。 若 echo_pktID等于 W + 10*R_old或者 echo_pktID第一次大于 W + 10*R_old, 则开始更新冗余系数 R值, 进入步骤 211。 否则, 不进行更新, 直接进入步骤 210。
210: 从编码缓冲区中删除已确认的包, 并将此剥去网络编码包头后的 ACK上传给上层传 输层 102。 结束发送端网络编码层 103处理过程, 返回等待状态。
211:从 ACK的网络编码包头中提取出变量 loss值,并利用其计算出当前 diff_loSS_new的值, 即: diff_loss_new = loss - loss_old。 其中, loss_old为上一次更新冗余系数 R值时, 相应 ACK 包中提取出的 loss值。
212:更新冗余系数 R的值,即: R_new = R_old + 2*(diff_loss_new/10) + (diff_loss_old/10)。 其中 diff_loss_old表示上一次调整冗余系数时得出的 diff_loss_new的值。
213:更新存储在发送端网络编码层中的变量值,即: R_new = R_old + 2*(diff_loss_new/10) + (diff_loss_old/10) o 其中 diff_loss_old表示上一次调整冗余系数 R时得出的 diff_loss_new的值。 更新完毕后, 进入步骤 210。
总的来说, 发送端网络编码层 103需要完成的主要工作既是: (1 ) 对数据包进行编码操 作。 (2 ) 根据 ACK包的信息, 自动更新冗余系数 R值。 通过这些操作, 完成本发明提出的自 适应网络传输控制方法。 在接收端, 同样的, 网络编码层 110需要对两种情况做出处理, gp : 来自接收端上层传输 层 111交付的 ACK包和来自下层网络层 109交付的编码数据包。参见图 3,在接收端网络编码层 110具体执行过程步骤如下:
300: 当接收端网络编码层 110既没有收到来自上层传输层 111的 ACK包, 也没有收到来自 下层网络层 109的数据包时, 系统处于等待状态。
301: 判断网络编码层 110是否收到了来自接收端上层传输层 111传来的 ACK应答包。
302: 若在步骤 301中判断网络编码层 110收到来自上层传输层 111传来的 ACK应答包, 则 此时判断此 ACK包是否是用于建立链接的控制包。
303: 若在步骤 302中的 ACK是用于建立链接的控制包, 则将其交付给接收端下层网络层 109, 并返回等待状态。
304:若在步骤 302中的 ACK不是用于建立链接的控制包,则将其丢弃,并返回等待状态。
305: 判断接收端网络编码层 110是否收到来自下层网络层 109交付的数据包。 若否, 则返 回等待状态。
306: 若收到来自下层网络层 109交付的数据包, 则剥去数据包中的网络编码包头, 提取 出编码系数向量 Y和变量 pktID。
307:将该编码向量作为新的一行添加到编码系数矩阵中,对编码系数矩阵进行高斯消元, 得到新 "看见"包的序号值。
308: 生成一个新的 ACK,它的序号等于新"看见"的原始包的序号。添加网络编码包头, 在包头中的信息包括变量 loss和变量 echo_pktID, 其中 loss表示当前在接收方还需要多少个线 性无关的编码包才能完全解码出所有的原始包; echo_pktID值等于收到信源数据包网络编码 包头中 pktID的值。
309: 将生成的 ACK交付予下层网络层 09, 并返回等待状态。
310: 在步骤 306中将数据包剥去网络编码包头后, 将有效载荷添加到解码缓存中, 对缓 存中的内容进行高斯消元法操作。
311: 判断在解码缓存中是否有新的原始包被解码出来。 若否, 则返回等待状态。
312: 当在 310中有新的原始包被解码出来时, 则将它转发给接收端上层传输层, 并将相 应载荷从缓存中删除。 返回等待状态。
总的来说, 接收端网络编码层 110需要完成的主要工作包括: (1 ) 进行解码操作, 得到原 始包; (2 ) 生成 ACK应答包。
至此,本发明实施例构建了一套完整的网络编码的自适应 TCP协议。它以 MIT提出的 NC-TCP 协议为基础【J.K.Sundararajan, D.Shah, M.Medard, M.Mitzenmacher, and J.Barros "Network Coding Meets TCP," in IEEE INFOCOM, Apr 2009】, 提出自适应理论, 通过在发送端网络编码层收集实时信息, 动态调整冗余系数 R来改进固定冗余系数 R的 NC-TCP协议在不稳定网络环境的传输性能。所以, 采用本发明的方法,我们的新协议可称为 Self- Adaptive Network Coding TCP,简称 SANC-TCP。
2仿真结果证明其优越性
我们利用伯克利大学开发的开源仿真工具 Network Simulator-2对三种不同的协议 TCP-Vegas、固定冗余系数值 R的 NC-TCP协议和动态调整 R值的 SANC-TCP协议在丢失率不 同的网络环境中的表现进行了仿真。 图 4是仿真的拓扑图, 它是一个包含 8跳, 9个节点的网 络。
我们首先论证了新协议 SANC-TCP的公平性。 在图 4的拓扑中, 分别有不同的 FTP应用程 序产生的流。 其中, 从节点 0产生的 FTP流将发送数据到节点 7; 从节点 1产生的 FTP流将发送 数据到节点 8, 这些流将争用中间的节点和链路。我们设置每条链路的带宽为 1 MB, 传输时延 为 10ms, 节点容量设为 200, TCP接收窗口设置为 40个包, 每个包的大小设置为 1000比特。 Vegas参数 α、 β和 γ分别被设置为 28、 30和 2。公平性指的是当两条相似的流竞争同一段链 路时, 他们会得到大致相似的链路利用率。 并且, 这样的特性不会因为流加入链路时间的不 同而改变。 众所周知, TCP-Vegas协议的公平性取决于变量 α和 β, 这两个变量选取的值不 同可以使 TCP-Vegas协议成为公平或者不公平的协议。 在我们的仿真过程中, 我们首先选取 一组特定的 α和 β值(即 α取 28, β取 30),使其确保在未加入我们的机制之前, TCP-Vegas 是公平的。 接着, 在我们的新协议 ARNC-TCP中, 我们选取相同的 α和 β值, 在以下三种情 况下进行仿真, 验证协议的公平性。
情况 1: 一条 TCP-Vegas流同一条 SANC-TCP流竞争。
情况 2: —条 SANC-TCP流同另一条 SANC-TCP流竞争。
情况 3: 五条 SANC-TCP流同时竞争一段链路。
仿真结果分别如附图 5-7所示, 由此证明当选取合适的 α值和 β值时, 我们的新协议 SANC-TCP是公平的协议。
接下来, 我们讨论在不同的丢失率的网络环境下, TCP-Vegas协议、 NC-TCP协议、 SANC-TCP协议控制的流的吞吐率表现情况。 依然采取如图 3所示的拓扑结构, 不过此时每 次仿真时, 分别只有一条 FTP流从节点 0发送数据到节点 7。 并在节点 2到节点 6中间的链路中 设置了随机丢失模型。图 8比较了在不同丢失率情况下,三个协议控制的 FTP流的吞吐率表现。 需要说明的是, 对于 NC-TCP协议, 在不同丢失率情况下, 我们都人为将其冗余系数 R设置为 最优值。 如在丢失率为 20%的环境下, 设置 R值为 1 /(1 -20%)=1 .25。 从图 8可以看出, 当丢失 率为 0时, 三个协议控制的 FTP流的吞吐率都接近理论最优值。 但随着丢失率的提高, TCP-Vegas流的吞吐率急剧下降, 而将 R值设置为最优值的 NC-TCP流和我们的 SANC-TCP 流表现出很好的鲁棒性, 即使丢失率增大到 45%, 其吞吐量也接近信道的理论最优值。 而 SANC-TCP流的吞吐率还略高于将 R值设置为最优值的 NC-TCP流的吞吐率。
在图 8中, 相对于每一个丢失率, 我们都将 NC-TCP流中的 R值设置成为了其对应的最优 值。依然采用图 4所示的拓扑结构,我们考虑这样一种情况。即将 NC-TCP流的 R值固定为 1 .1 1, 在丢失率在 1 0%到 45%变化情况下, 比较 NC-TCP流和 SANC-TCP流的吞吐率情况。 从图 9 可以看出,当丢失率为 1 0%时, NC-TCP流的 R值处在最优情况,其获得的吞吐率和 SANC-TCP 流大致相同。 但随着丢失率的增加, 由于 NC-TCP流发送的冗余包数量无法掩盖包的丢失, 造成接收端不能解码以及大量的超时重传等待, 导致吞吐率急剧下降。 而 SANC-TCP流则表 现出很好的鲁棒性, 证明其在丢失率不断变化的网络环境中有明显的优势。 另外, 若网络环 境丢失率小于 10%, 此时的 NC-TCP流会发送大量多余的冗余包, 造成网络带宽的浪费; 而 SANC-TCP流则会及时调低 R值, 保证网络的高效利用。
最后, 在实际网络环境中, 特别是易受外界干扰的无线网络环境中, 突发丢失是一种很 常见的情况。 如何在突发丢失的情况下, 依然保持网络的畅通, 以及如何在网络恢复正常状 态后迅速提高吞吐率是一个重要的课题。 图 10即是对这样情况的仿真结果。 依然采用图 4所 示的拓扑结构, NC-TCP流的 R值固定为 1 .1 1。 在 0.6秒时, 中间链路的丢失率保持在 1 0%; 在 500秒时, 由于出现未知突发状况, 链路丢失率突然升至 30%, 直到 600秒时才重新恢复到 丢失率为 1 0%, 直至仿真结束。 从图 1 0可以看出, 在 500秒之前, NC-TCP流禾 BARNC-TCP 流都在链路理论极限吞吐率 0.9Mbs上下浮动。 但当到 500秒时, 链路丢失突然提高到 30%, NC-TCP流和 TCP-Vegas流的瞬时吞吐率都急速下降, 几乎降至 0, 而 ARNC-TCP流依然保 持很好的特性, 在链路理论极限吞吐率 0.7Mbs上下浮动。 由此可以证明, 在应对实际网络中 常常出现的突发丢失情况, 我们的 ARNC-TCP协议相对于其他两种协议有更好的抵抗力。 保 证了即使出现上述突发状况, 也能获得较高的网络链路利用率。
由此可见, 本发明的所提出的基于 TCP协议的自适应网络控制传输方法可形成一套完整 的基于网络编码的自适应 TCP协议, 即我们称之为 SANC-TCP协议, 以及按照此方法构建的控 制传输系统通过发送冗余包并动态调整冗余系数 R很好地解决了数据包的丢失问题。 该设计 对于之前协议栈的改动很小,能够将网络编码理论与 TCP协议很好地结合,相比普通 NC-TCP 协议拥有更大的吞吐率和对突发性丢失更好的鲁棒性。

Claims

权利要求书
1、 一种基于 TCP协议的自适应网络控制传输方法, 包括在网络传统的 TCP/IP协议体 系结构中的发送端和接收端的传输层和网络层中间分别添加网络编码层, 其特征在于: 在网 络编码层中给编码包和 ACK应答包添加包含特定变量的网络编码包头, 利用编码包和 ACK应 答包将所述特定变量在接收端和发送端之间传递并更新, 并利用所述特定变量在发送端网络 编码层调整冗余系数。
2、 根据权利要求 1所述的基于 TCP协议的自适应网络控制传输方法, 其特征在于 所述给编码包和 ACK应答包添加包含特定变量的网络编码包头, 利用编码包和 ACK应答包 将这些变量在接收端和发送端之间传递并更新, 是按照如下方法进行:
在发送端, 在网络编码层给网络编码包头中加入特定的变量包括: 生成编码包的线性系 数向量 Y和变量 pktID, 该变量信息被接收端的网络编码层提取, 其中, 所述生成编码包的线 性系数向量 Y被交予解码模块用于原始包的解码, 所述变量 pktID被赋值给接收端网络编码层 中的变量 echo_pktID;
在接收端, 在网络编码层给 ACK应答包的网络编码包头加入特定的变量包括: 变量 echo_pktID和变量 loss, loss = pktID - id, 其中 echo_pktID用以表示导致此 ACK包产生的编码 包的唯一编码序号, loss值表示编码包的 pktID序号和最新看见的原始包序号 id之间的差值, 依靠 ACK应答包将这两个变量传回发送端;
当发送端的网络编码层收到 ACK应答包时,剥去 ACK应答包的网络编码包头,提取变量 信息 echo_pktID禾 Bloss;
所述在发送端网络编码层调整冗余系数 R是指在发送端的网络编码层中还添加了如下变 量: R_old表示当前冗余系数; W表示上一次调整冗余系数 R值时 echo_pktID的理论最小值, 若 echo_pktID满足等于或者第一次大于 W + 10*R_old值这两个条件之一时, 则进行调整冗余 系数 R值:
利用从 ACK包头里提取出的 loss值计算得出当前发送端网络编码层中变量 diff_loSS_new 的值,即 diff_loss_new = loss - loss_old;其中 loss_old表示上一次调整冗余系数 R时收到的 ACK 包中 loss的值,
diff_loSS_new表示相邻两次调整冗余系数 R值时收到 ACK包中 loss值的差值; 利用变量 diff_loss_new计算得出新的冗余系数1 _^\¥的值, 即1 _^\¥ = R_old+2*(diff_loss_new/10)+ (diff_loss_old/10);
其中 diff_loss_old表示上一次调整冗余系数 R时得出的 diff_loss_new的值;更新发送端网络 编码层中的参数变量, 即1 _01(1 = 1 _^\¥, loss_old = loss, diff_loss_old = diff_loss_new, W = W + 10*R_new。
3、 一种基于 TCP协议的自适应网络控制传输系统, 包括发送端和接收端, 该系统分 别在发送端和接收端的传输层和网络层中间设置了网络编码层, 其特征在于:
发送端的网络编码层包含的两个控制传输模块: 一个模块用于处理从发送端 TCP传输 层送来的数据包或者管理链接的包, 该控制传输模块给数据包进行网络编码并加入特定的变 量在网络编码包头中, 所述特定变量包含: 生成编码包的线性系数向量 Y和变量 pktID, 该变 量信息被接收端网络编码层的用于处理从发送端传来的编码数据包的控制传输模块提取, 其 中, 所述生成编码包的线性系数向量 Y被用于原始包的解码; 所述变量 pktID被赋值给接收端 网络编码层中的变量 echo_pktID;
另一个控制传输模块用于处理从接收端传来的 ACK应答包, 该模块对来自发送端下层 网络层传来的 ACK应答包剥去网络编码包头, 提取包头中的变量 echo_pktID, 根据提取出的 变量 echo_pktID值判断此时是否应该更新冗余系数 R值, 若 echo_pktID等于 W + 10*R_old或者 echo_pktID第一次大于 W + 10*R_old, 则开始更新冗余系数 R值: 从 ACK应答包的网络编码包 头中提取变量 loss值, 利用从 ACK包头里提取出的 loss值计算得出当前发送端网络编码层中变 量 diff_loss_new的值, 即 diff_loss_new = loss - loss_old; 其中 loss_old表示上一次调整冗余系 数 R时收到的 ACK包中 loss的值, diff_loss_new表示相邻两次调整冗余系数 R值时收到 ACK包 中 loss值的差值; 利用变量 diff_loss_new计算得出新的冗余系数R_new的值, 即R_new = R_old + 2*(diff_loss_new/10) + (diff_loss_old/10);其中 diff_loss_old表示上一次调整冗余系数 R时得出 的 diff_loss_new的值,更新发送端网络编码层中的参数变量,即1 _01(1 = R_new, loss_old = loss, diff_loss_old = diff_loss_new, W = W + 10*R_new;
接收端的网络编码层包含的两个控制传输模块: 一个模块用于处理从接收端 TCP传输 层送来的 ACK包,该模块判断从接收端 TCP传输层送来的 ACK包是否是将建立链接的控制包, 若是则交付给接收端下层网络层, 若不是, 则将其丢弃并返回等待状态;
另一个控制传输模块用于处理从发送端传来的编码数据包, 该模块若收到来自下层网 络层交付的数据包, 则剥去数据包中的网络编码包头,提取编码系数向量 Y和变量 pktID,进行 解码操作, 得到原始包, 并生成一个新的添加网络编码包头的 ACK应答包, 所添加的网络编 码包头中包含变量 loss和变量 echo_pktID, 将新生成的 ACK应答包交付予下层网络层。
PCT/CN2011/077329 2011-06-22 2011-07-19 一种基于tcp协议的自适应网络控制传输方法和系统 WO2012174763A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/514,641 US9553956B2 (en) 2011-06-22 2011-07-19 Self-adaptive network control transmission method and system based on TCP

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2011101695362A CN102209079A (zh) 2011-06-22 2011-06-22 一种基于tcp协议的自适应网络控制传输方法和系统
CN201110169536.2 2011-06-22

Publications (1)

Publication Number Publication Date
WO2012174763A1 true WO2012174763A1 (zh) 2012-12-27

Family

ID=44697743

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2011/077329 WO2012174763A1 (zh) 2011-06-22 2011-07-19 一种基于tcp协议的自适应网络控制传输方法和系统

Country Status (3)

Country Link
US (1) US9553956B2 (zh)
CN (1) CN102209079A (zh)
WO (1) WO2012174763A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103152359A (zh) * 2013-03-25 2013-06-12 重庆大学 一种端到端无线传输控制协议线性网络编码的改进方法
CN106788905A (zh) * 2017-03-06 2017-05-31 苏州汉辰数字科技有限公司 一种编码tcp方法及系统
CN110024313A (zh) * 2016-12-02 2019-07-16 哈曼国际工业有限公司 通信方法和系统

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102904689A (zh) * 2012-10-15 2013-01-30 哈尔滨工业大学深圳研究生院 基于网络编码的传输控制协议的改进方法
US9398474B2 (en) * 2012-11-23 2016-07-19 Broadcom Corporation System and method for network coded TCP in long term evolution (LTE)
CN103391164B (zh) * 2013-07-19 2016-08-10 中国人民解放军国防科学技术大学 一种基于线性网络编码的报文发送冗余度动态调整方法
CN103354490B (zh) * 2013-07-19 2017-05-10 中国人民解放军国防科学技术大学 一种结合补偿和前瞻的编码报文自适应重传方法
CN103532954B (zh) * 2013-10-17 2016-07-20 南京大学镇江高新技术研究院 一种面向数据中心的编码网络系统及其工作方法
US9503948B1 (en) 2014-03-04 2016-11-22 Sprint Spectrum L.P. Managing data redundancy of wireless device communication
US9313136B1 (en) * 2014-03-07 2016-04-12 Sprint Spectrum L.P. Managing data retransmission to a wireless device
CN105450357B (zh) * 2014-09-24 2019-02-01 中兴通讯股份有限公司 编码参数的调整、反馈信息的处理方法及装置
US9930145B2 (en) 2015-05-27 2018-03-27 Huawei Technologies Co., Ltd. System and method of header compression for online network codes
CN106230560A (zh) * 2016-09-28 2016-12-14 西北工业大学 无线网络中协作多媒体多播数据传输方法
CN107196991A (zh) * 2017-04-06 2017-09-22 暨南大学 一种面向网络编码集群系统的数据更新方法
CN107634823B (zh) * 2017-07-19 2020-03-20 西南交通大学 基于网络编码的传输控制协议的数据传输方法
CN107508655B (zh) * 2017-07-19 2020-08-07 西南交通大学 一种自适应端到端网络编码传输方法
CN112039727B (zh) * 2020-08-26 2022-04-01 北京字节跳动网络技术有限公司 数据传输方法、装置、电子设备及存储介质
US11601935B2 (en) * 2020-08-28 2023-03-07 Trellisware Technologies, Inc. Multi-channel time-division multiplexing access methods and systems
CN112564712B (zh) * 2020-11-26 2023-10-10 中国科学院计算技术研究所 一种基于深度强化学习的智能网络编码方法和设备
CN112491658B (zh) * 2020-12-02 2023-01-03 广州虎牙科技有限公司 带宽估计方法、装置、电子设备及计算机可读存储介质
CN115473607A (zh) * 2021-06-11 2022-12-13 华为技术有限公司 通信方法,装置及可读存储介质
WO2023123515A1 (zh) * 2021-12-31 2023-07-06 Oppo广东移动通信有限公司 数据处理方法、终端设备和网络设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101026553A (zh) * 2005-11-09 2007-08-29 索尼株式会社 分组传输装置、通信系统和程序
CN101841479A (zh) * 2010-04-28 2010-09-22 四川大学 一种基于网络编码的高误码率长时延网络自适应传输方法
CN101938334A (zh) * 2010-09-21 2011-01-05 上海大学 随机网络编码和自动重传请求联合的自适应差错控制方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6003084A (en) * 1996-09-13 1999-12-14 Secure Computing Corporation Secure network proxy for connecting entities
KR100781525B1 (ko) * 2006-04-06 2007-12-03 삼성전자주식회사 가중 평균합을 이용하여 fgs 계층을 인코딩 및디코딩하는 방법 및 장치
US8582908B2 (en) * 2007-08-07 2013-11-12 Texas Instruments Incorporated Quantization method and apparatus
US8130776B1 (en) * 2009-08-28 2012-03-06 Massachusetts Institute Of Technology Method and apparatus providing network coding based flow control
US8312329B1 (en) * 2011-06-13 2012-11-13 Litepoint Corporation System and method for using a single vector signal generator to verify device under test
US8780693B2 (en) * 2011-11-08 2014-07-15 Massachusetts Institute Of Technology Coding approach for a robust and flexible communication protocol

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101026553A (zh) * 2005-11-09 2007-08-29 索尼株式会社 分组传输装置、通信系统和程序
CN101841479A (zh) * 2010-04-28 2010-09-22 四川大学 一种基于网络编码的高误码率长时延网络自适应传输方法
CN101938334A (zh) * 2010-09-21 2011-01-05 上海大学 随机网络编码和自动重传请求联合的自适应差错控制方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103152359A (zh) * 2013-03-25 2013-06-12 重庆大学 一种端到端无线传输控制协议线性网络编码的改进方法
CN110024313A (zh) * 2016-12-02 2019-07-16 哈曼国际工业有限公司 通信方法和系统
CN106788905A (zh) * 2017-03-06 2017-05-31 苏州汉辰数字科技有限公司 一种编码tcp方法及系统

Also Published As

Publication number Publication date
US9553956B2 (en) 2017-01-24
US20140112352A1 (en) 2014-04-24
CN102209079A (zh) 2011-10-05

Similar Documents

Publication Publication Date Title
WO2012174763A1 (zh) 一种基于tcp协议的自适应网络控制传输方法和系统
CN107508655B (zh) 一种自适应端到端网络编码传输方法
US9515775B2 (en) Method and apparatus for improving the performance of TCP and other network protocols in a communication network
RU2469482C2 (ru) Способ и система для передачи данных в сети передачи данных
CN107547436B (zh) 基于网络编码的传输控制协议的编译码方法
KR101610715B1 (ko) 단방향 데이터 송수신 시스템 및 방법
US20150236819A1 (en) Method & apparatus for improving the performance of tcp and other network protocols in a communications network using proxy servers
WO2016045332A1 (zh) 编码参数的调整、反馈信息的处理方法及装置
JP2003521155A (ja) 無線ネットワーク・システムおよび方法
CN107592185B (zh) 一种适用于网络编码传输控制协议的前向重传方法
CN107634823B (zh) 基于网络编码的传输控制协议的数据传输方法
CN114337928A (zh) 一种基于arq与fec自适应选择的实时视频传输方法
CN114666831A (zh) 一种基于流编码和带宽估计驱动的分组传输方法及其系统
Su et al. ORIT: A transport layer protocol design for underwater DTN sensor networks
WO2015074279A1 (zh) 一种基于udp协议的网络编码及传输方法
Karetsi et al. A low complexity network-coded ARQ protocol for ultra-reliable low latency communication
Ha et al. TCP Network Coding with Enhanced Retransmission for heavy and bursty loss
KR101116265B1 (ko) 무선 통신 장치 및 이들의 통신 방법
Bao et al. TCP VON: joint congestion control and online network coding for wireless networks
WO2012155662A1 (zh) 状态报告的处理方法、通信设备和通信系统
CN107566083B (zh) 一种适用于网络编码传输控制协议的补偿重传方法
WO2009030560A1 (en) Packet-type based resilience using network coding
Chen et al. Effective retransmission in network coding for TCP
CN112822718B (zh) 一种基于强化学习和流编码驱动的分组传输方法及系统
Ha et al. TCP network coding with forward retransmission

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 13514641

Country of ref document: US

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11868162

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: 11868162

Country of ref document: EP

Kind code of ref document: A1