CN107508655A - A kind of adaptive end to end network coding and transmission method - Google Patents

A kind of adaptive end to end network coding and transmission method Download PDF

Info

Publication number
CN107508655A
CN107508655A CN201710588600.8A CN201710588600A CN107508655A CN 107508655 A CN107508655 A CN 107508655A CN 201710588600 A CN201710588600 A CN 201710588600A CN 107508655 A CN107508655 A CN 107508655A
Authority
CN
China
Prior art keywords
message
data message
network
layer
coding
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201710588600.8A
Other languages
Chinese (zh)
Other versions
CN107508655B (en
Inventor
刘勇
陈庆春
唐小虎
梁宏斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southwest Jiaotong University
Original Assignee
Southwest Jiaotong University
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 Southwest Jiaotong University filed Critical Southwest Jiaotong University
Priority to CN201710588600.8A priority Critical patent/CN107508655B/en
Publication of CN107508655A publication Critical patent/CN107508655A/en
Application granted granted Critical
Publication of CN107508655B publication Critical patent/CN107508655B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0076Distributed coding, e.g. network coding, involving channel coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1657Implicit acknowledgement of correct or incorrect reception, e.g. with a moving window

Landscapes

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

Abstract

The invention discloses a kind of adaptive end to end network coding and transmission method, mainly include:In network code layer, the transmit queue of this caching TCP layer initial data message is maintained, when sending message, coding window length is fixed as N, and the arrival of its data message that can be sent according to new needs is orderly to be slided backward;Confrontation network congestion packet loss is realized by redundancy encoding in network code layer;The processing for different pieces of information message is realized in the queue that receiving terminal maintains three decodings related, it is out of order or valuable packet buffer is decoded in pending data message queue to data message in future, wait the processing of network code layer, it is buffered in currently decoding valuable data message in the message queue decoded, in data message queue is decoded, wait is uploaded to TCP layer or waits TCP layer to receive to be confirmed the packet buffer decoded.The present invention can ensure good transmission rate, can also improve bandwidth availability ratio.

Description

A kind of adaptive end to end network coding and transmission method
Technical field
The present invention relates to network coding and decoding field, particularly a kind of adaptive end to end network coding and transmission method.
Background technology
With the rapid popularization and the arrival in 4G epoch of mobile communication equipment, various wireless network applications are gradually oozed Thoroughly more and more important role is play to the various aspects of people's life, wireless network.Therefore, how wireless network is improved The transmission quality of (including satellite network, aeronautical communications network, mobile radio network etc.) is standby as one in nowadays network research Concerned hot issue.
Today, many network applications all be unable to do without reliable data transport service.Transmission Control Protocol (transmission control protocol) due to Good transmitting service can be provided under cable network environment, thus be widely used.In the wireless network of reality In, traditional Transmission Control Protocol is still what transport layer used, but some exclusive features of wireless network have also triggered sternly The TCP degradation problems of weight.Transmission Control Protocol is designed to think congestion occurs in network once packet loss occurs, so as to take Adjust the strategies such as congestion window, congestion threshold, fast quick-recovery so that Transmission Control Protocol can work in cable network well.And In the wireless network, congestion packet loss is not only existed, and more situations are due to the random loss caused by radio transmission characteristics, Transmission Control Protocol cannot be distinguished by the reason for packet loss occurs, and packet loss processing is carried out only with single congestion policies.Lost for non-congested Bag, Transmission Control Protocol still will be handled using reduction congestion window to reduce the strategy of transmission rate, and this be lost for congestion The processing mode of bag can cause the increase of decline and the delay of handling capacity.In fact, for being wirelessly transferred non-caused by problem gather around Fill in packet loss, the correct measure that Transmission Control Protocol should be taken be improve transmission rate, and and non-reduced congestion window.Therefore how In the wireless network that packet loss is high, delay is big, the transmission performance for how lifting existing Transmission Control Protocol just seems particularly critical.
2000, Ahlswede R., Ning Cai, Li S.-Y.R., Yeung, R.W. were in document " Network information flow(IEEE Transactions on Information Theory,vol 43,pp.1204-1216, April 2000) " in first proposed network code (network coding, NC) concept, its core concept is in network Node carries out coding fusion to the multiple packets received, and the data after coding are forwarded again, and purpose node can foundation Corresponding code coefficient is decoded, and so as to restore original data, network throughput, can be lifted with network code Weigh network load and raising network bandwidth utilization factor etc..The it is proposed of network code is that one in network communication field is important prominent It is broken, and developed rapidly as an important field of research, to information theory, coding, communication network, network exchange it is theoretical, The research fields such as radio communication, computer science, cryptography, matrix theory generate far-reaching influence, it has also become most popular now One of research field.Many scholars start to consider to combine network code with the at all levels of osi model, derive Physical-layer network coding, network layer network coding, transport layer network coding, application layer network code etc..Net based on Transmission Control Protocol Network encoding scheme also becomes an important method for improving transmission in wireless network performance.
2011, JK Sundararajan, D Shah, M M é dard et al. were in document " Network coding meets TCP:Theory and implementation(Proceedings of the IEEE,vol.99,pp.490-512, March, 2011) a kind of communication transport protocols for being combined network code and TCP are first proposed in ", the agreement can The communication transmission quality being effectively lifted in packet loss network.It is main during Transmission Control Protocol and network code are combined It is related to two contents:Encoding mechanism and ACK affirmation mechanisms.Network coding scheme, it is broadly divided into determination coding and is compiled with random Code, by batch coding and the encoding scheme based on sliding window.2006, Tracey Ho, Muriel M é dard et al. were in document " A random linear network coding approach to multicast(IEEE Transactions on Information Theory, vol 52, October 2006) " in propose a kind of distributed random linear network encoding Method, this method are a kind of schemes of decentralization, it is not necessary to which Centroid is controlled, and can effectively tackle net Network changes, and makes full use of the redundancy of transmission to lift robustness.M Halloush, H Radha et al. is in document “Network coding with multi-generation mixing:A generalized framework for practical network coding(IEEE Transactions on Wireless Communications,vol.10, Pp.466-473, February 2011) " in put forward a kind of network code algorithm based on multiple batches of mixing, relative to tradition Single batch network code, this scheme can improve the decoding reliability and throughput of transmissions of receiving terminal.Y Lin,B Liang Et al. in document " SlideOR:Online opportunistic network coding in wireless mesh A kind of network coding scheme based on sliding window is proposed in networks (INFOCOM, 2010) ".
Research for ACK affirmation mechanisms, mainly there are these following work.JK Sundararajan et al. are in document One kind is proposed in " ARQ for network coding (IEEE ISIT 2008) " to be combined with network code in Transmission Control Protocol ACK affirmation mechanisms in journey, detailed packet when proposing decoding " seen " and " decoded " concept, this mechanism energy Enough reduce the requirement to cache size.Chien-Chia Chen, Clifford Chen et al. is in document " Multiple Network coded TCP sessions in disruptive wireless scenarios (IEEE MILCOM, 2011) solve the problems, such as that DATA-ACK is disturbed between the TCP flow of multiple network codes in ", the article pointed out to utilize Inter-flow network codes disturb to eliminate, and intra-flow codings can improve robustness.S Gheorghiu,AL Toledo et al. is in document " A network coding scheme for seamless interaction with TCP Put forward to be based on feedback mechanism in (2011International Symposium on Network Coding (NetCod)) " TCP real-time network coding transmission schemes.Wei Bao, Vahid Shah-Mansouri et al. is in document " TCP VON:Joint Congestion Control and Online Network Coding for Wireless Networks(2011IEEE GLOBECOM a kind of real-time network encryption algorithm for being combined TCP Vegas is proposed in) ", it was demonstrated that real-time TCP layer net Network coding can improve the handling capacity of system and the reliability of end-to-end communication, and decoding delay is relatively low.
Around the combination of network code and TCP transmission agreement, also there are many patent of invention achievements both at home and abroad.Middle promulgated by the State Council (a kind of high bit-error long time-delay network self-adapting transmission method based on network code, Sichuan are big by bright patent CN101841479A Learn) propose a kind of adaptive transmission method based on network code.Transmitting terminal is according to the size of transport layer flow to TCP message Adaptive network coding is carried out, the message after coding is then sent to receiving terminal, transmitting terminal is encoded to sending message Redundancy.Receiving terminal carries out network decoding, and only needs to receive segment message and can recover original message, so as to lift net Network tackles influence of the high packet loss to transmission performance, lifts the handling capacity of host-host protocol.As a result of adaptive encoding mode, Improve the confidentiality of information.And need not coordinate in the intermediate node of transmission, belong to transmission acceleration method end to end, energy It is compatible with the reliable transport protocol of current main-stream.The principal character of this method:1) according to transport layer flow transmitting terminal to transmission TCP message carry out adaptive network coding redundancy;If 2) monitoring time interval of the adaptive network coding in transport layer flow The message number of interior transmission is more than N, then implements network code, otherwise do not implement network code;3) when receiving terminal decodes, Ye Shibi Decoded operation must can be just proceeded by until receiving the packet more than or equal to N number of linear combination.This method is mainly one The network code algorithm according to batch is planted, transmitting terminal must wait until that N number of datagram literary talent can be encoded, and receiving terminal needs also exist for Receive more than or equal to can just proceed by decoding operate after N number of packet, and this patent do not account for ACK mechanism, from The problems such as adapting to the estimation of packet loss.
Chinese invention patent CN102904689A (improved method of the transmission control protocol based on network code, Harbin Shenzhen research institute of polytechnical university) provide a kind of transmission control protocol improved method based on network code.Changed in transport layer The mechanism of Transmission Control Protocol, add a network code window.Data are produced by application layer, are delivered to TCP window from top to bottom, The packet of network code window reception TCP window is simultaneously cached.After network code receives some packets, production Life specifies number coded data packet, and passes to Internet.The number of retransmissions of packet so can be substantially reduced, so as to improve The handling capacity of network.The principal character of the program:1) transport layer safeguards two windows --- TCP window and network code window; 2) the size B=m*k of coding window, the packet in coding window be divide into m fritter, wherein the packet of each fritter Number is k, and the data of a coding window are encoded into n packet (n=B/ (1-p), p are packet loss), and each fritter is then It is encoded into t (t=n/m) individual packet;3) after transmitting t times, certain fritter is still not able to decode, then makes this fritter with The packet of one fritter is encoded together, after transmitting 2t times, is still not able to decode, then by first three fritter Packet is encoded together, afterwards by that analogy --- the network coding method of multiple batches of mixing;3) ack msg bag is sent When, can be sent Num, Start, End domain of the coded data packet received as an ACK part together --- it is similar In a kind of feedback mechanism.The encryption algorithm of the program is exactly a network code algorithm based on multiple batches of mixing, and is received End ACK messages are also changed.
Chinese invention patent CN103152359A (a kind of wireless transmission control protocol linear network encoding end to end, weight Celebrating university) propose a kind of linear network encoding improved method end to end.The principal character of the program:1) network volume is optimized Harbour portion, the parameter of encoding and decoding is considered comprehensively, shorten network code head length, reduce the complexity of network code; 2) according to Wireless Losses situation, sliding window and coding window reasonable in design, and optimize order and both it is equal;3) have modified Message retransmission mechanism is lost, when coding message, which adds up packet loss, reaches sliding window size, starts and retransmits, above operation reduces network The complexity of coding, improve the efficiency and system TCP handling capacities end to end of network code.
A kind of Chinese invention patent CN103209064A (improvement of the transmission control protocol affirmation mechanism based on network code Method, University Of Chongqing) a kind for the treatment of mechanism in the case where confirmation message is lost is proposed, the program can substantially reduce report The number of retransmissions of text, so as to improve the handling capacity of network.The principal character of the program:1) affirmation mechanism is have modified, devises one The enhanced confirmation message (EACK) of kind;2) receiving terminal can select to send ACK or EACK after message is received, if should There are other to become so message before coding message to be not successfully received, then send EACK, otherwise ACK.Chinese CN103840928A Number patent of invention (being used for the system and method for the TCP of network code in Long Term Evolution, Broadcom Corp) is provided based on using Whether family equipment (UE) is configured as TCPNC to determine the configuration of the operator scheme of the communication link for the UE in communication system And method, including physical layer channel error return, modulation, Channel assignment.
U.S. patent Nos US20120218891A1 (Method and apparatus providing network Coding based flow control) thought based on random linear network encoding proposes a kind of new congestion control side Case and ACK affirmation mechanisms.In transmitting terminal, the linear combination of packet in current congestion window is sent according to sliding window protocol. In receiving terminal, what ACK mechanism confirmed is the free degree.If a linear combination can disclose the fresh information of a unit, even if Completely raw data packets can not be decoded out, just claim receiving terminal it can be seen that during (" seen ") new packet, just Send corresponding ACK.The principal character of the program:1) sending node performs operation and included:Datagram in transmit queue Text determines stochastic linear combination;The data message of linear combination is sent according to sliding window protocol;Receive ACK and determine which is counted It has been seen according to message, so as to delete corresponding data message from sliding window;2) operation performed by receiving node includes:Receive The data message of linear combination;Determine whether that new data message is seen;New data message according to being seen is sent Corresponding ACK.Code coefficient is extracted from the head of linear combination data message and is put it into decoding matrix, is then performed Gaussian elimination, determine which data message can be seen (" seen "), the data message not being decoded out is put into and connect Receive in caching, the data message decoded out is passed into TCP layer;3) operation that intermediate node performs:Receive the number of linear combination According to message;The stochastic linear that data message in transmission queue is sent according to sliding window protocol combines.The program can greatly The handling capacity being lifted under packet loss scene.
U.S. patent Nos US2010046371A1 (Feedback-based online network coding) is proposed A kind of real-time network encoding scheme based on feedback.The principal character of the program:1) define in receiving terminal, when being decoded " seen " and " decoded " concept, " seen " are represented when a data message can be by other sequence numbers data higher than it When the linear combination of message is indicated, being considered as this data message can then be represented by solution by " seen ", " decoded " When matrix a line after code only has the element that one is 1, it is believed that this data message is by " decoded ";As long as 2) datagram Text just sends ACK messages by " seen ", while transmitting terminal deletes the data message in sliding window according to this message, rather than " decoded " just sends ACK messages.
U.S. patent Nos US20120114481A1 (Coding Approach For A Robust And Flexible Communication Protocol) propose the coding staff of the multipath TCP transmission agreement that robustness and flexibility take into account a kind of Case, the characteristics of program can make full use of multipath in network, multiplex roles, multimedium, multiserver, can be by different Internet resources carry out load balancing quickly to be responded to the congestion of network, and the program is also applied for soft in heterogeneous network Switching.The principal character of the program:1) file can be divided into multiple pieces and be transmitted, can be according to the urgent of each block Degree realizes different coding strategies to different blocks;2) first and second access technologies are utilized, Multiple pieces can be transmitted in multiple access connections.
Comprehensive analysis both at home and abroad around network code combined with Transmission Control Protocol in terms of technical research results, at present It is many on network code algorithm, decoding scheme, ACK affirmation mechanisms feasible solution.But carefully analyze these Prior art, it is seen that, in the transmitting terminal of network code, the method around redundancy adjustment is not also a lot, and in net The receiving terminal of network coding, simply merely have modified the ACK mechanism of network code layer, by ACK mechanism and the congestion control of TCP layer The method that algorithm carries out united optimization design is yet few.
The content of the invention
The technical problems to be solved by the invention are to provide a kind of adaptive end to end network coding and transmission method, using this Method can ensure good transmission rate, can also improve bandwidth availability ratio.
In order to solve the above technical problems, the technical solution adopted by the present invention is:
A kind of adaptive end to end network coding and transmission method, comprises the following steps:
In coding side
1st, during connection is established, receiving-transmitting sides consult whether transmission control protocol stream carries out network code, if Network code is carried out, then network code layer control block corresponding to foundation, initialize control information, and set transmission control protocol company Connect the respective flag of control block;
2nd, when transmission control protocol layer sends initial data message, the processing method of transmission network coding layer is:
1) the network code layer link control module according to corresponding to being searched initial data message, if it is possible to find corresponding control Clamp dog, then demonstrate the need for performing network-encoding operation, perform step 2);If not finding corresponding control block, show not Need to perform network code, perform step 5);
2) it is the message for controlling message or carrying data to judge data message, if control message, then need not be performed Network-encoding operation, perform step 5);
3) data message is cached in sliding window, present encoding window is slided backward into a message;
4) coding counter NUM=NUM+R is set, wherein, R is the redundancy that current process adaptively adjusts, and is produced It is rawThe coding message that the linear combination of the individual message by present encoding window forms, fill corresponding coding head Portion, hereinRepresent the number for the coding message that needs generate;And update coding counter
5) coding message is sent to Internet protocol layer, and sent via Internet protocol layer, data link layer;
3rd, when receiving the confirmation ACK messages of receiving terminal feedback, method is handled as follows:
1) according to the acknowledged sequence number confirmed in ACK messages, the transmit queue of coding side is operated, byte sequence number is small Deleted in the data message of acknowledged sequence number from transmit queue;
2) according to the receive information of receiving terminal in the confirmation ACK headings of feedback, adaptive packet loss estimation is carried out Adjusted with redundancy;
3) the confirmation ACK messages of feedback are modified as the form for meeting transmission control protocol data message, then pass to biography Transport control protocol discusses layer;
In receiving terminal
1st, during connection is established, receiving-transmitting sides consult whether transmission control protocol stream carries out network code, if Network code is carried out, then network code layer control block corresponding to foundation, initialize control information, and set transmission control protocol company Connect the respective flag of control block;
2nd, when receiving the data message that Internet protocol layer is communicated up, the processing method of network code layer is:
1) the network code layer link control module according to corresponding to being searched data message, if it is possible to find corresponding control Block, then it represents that need to perform network-encoding operation, perform step 2);If corresponding control block can not be found, then it represents that no Need to perform network-encoding operation, perform step 7);
2) it is the message for controlling message or carrying data to judge message, if control message, then performs step 7);
3) data message is cached in the pending data message queue backlog of corresponding connection, backlog represents to treat Processing;
4) judge whether include next expectation in the data message in pending data message queue backlog one by one The information for the initial data message being decoded;If so, then needing to obtain the code coefficient vector of the message, and the message is added Into the data message queue decoding decoded, decoding represents to decode;
5) according to the code coefficient of the data message decoded in queue decoding vector, obtain decoding coefficient square Battle array, to decoding matrix carry out Gaussian elimination, obtained from the matrix after Gaussian elimination accordingly by " seen " and by " decoded " message;Wherein, " seen " is represented when a data message is by the linear of other sequence numbers data message higher than it When combination is indicated, being considered as this data message can be by " seen ", and " decoded " represents to pass through decoded matrix When a line only has the element that one is 1, it is believed that this data message is added to by " decoded " and has been decoded data In message queue decoded;
If 6) there is the message of new " seen ", corresponding confirmation ACK messages are sent;
7) message being decoded in data message queue decoded is sent into transmission control protocol layer to be handled;
3rd, when there is the message of new " seen ", it is necessary to which feedback reception end network code layer receives successful information, its mistake Journey is sent dependent on transmission control protocol layer confirms ACK messages;When transmission control protocol layer sends confirmation message:
1) according to transmission control protocol layer send confirmations ACK messages in confirmation ACK sequence numbers, by the sequence number renewal arrive pair In the network code layer link control module answered, and by for being decoded deleting for data message in data message queue decoded Division operation;
2) according to transmission control protocol layer confirmation number and window value size, transmission network coding layer window value size is calculated;
3) confirmation number of network code floor and window value are modified in confirmation message, then sent.
Further, the method for redundancy adjustment is:
In transmitting terminal, the data message for reaching network code layer when data are sent to transmission control protocol layer adds sequence number, This sequence number, which does not differentiate between, retransmits message and normal message, and whether do not differentiate between has band data, as long as the connection of this transmission control protocol Message, all uniformly it is numbered, and writes in packet networks coding stem;
In receiving terminal, it is first determined the counting period of a calculating packet loss;It is first by network code when receiving data Sequence number value in portion, every 100 sequence numbers carry out a packet loss and calculated, and write-in is worked as in the network code stem of ACK messages Preceding packet loss;
In transmitting terminal, after have received ACK messages, the packet loss loss_rate that receiving terminal calculates is read, according to packet loss Redundancy is calculated, redundancy R calculation formula are as follows:
Wherein, m and n is constant.
Further, the network code layer connection, corresponding a set of network code layer control information, including network code layer Control information, network code layer connection status, data message maximum burst length MSS and the Window Scale information of connection, decoding Parameter information, privately owned control information, queue management information.
Further, the sliding method of sliding window is:An original transmitted for participating in coding is maintained in network code layer Control protocol data message queue, when each initial data message needs to carry out coding transmission, select current original transmitted Control protocol data message and 4 original transmitted control protocol data messages before it are encoded, then are transferred out.
Compared with prior art, beneficial effects of the present invention:
1st, present invention uses a kind of adaptive redundancy Regulation mechanism, the relative packet loss of network can be estimated in real time Rate, so as to adjust redundancy.This mechanism can tackle the packet loss real-time change of network well, can preferably tackle Packet loss nondeterministic network environment, particularly wireless network.
2nd, to the modification of fast retransmission mechanism so that the present invention quick-recovery can also gulp down soon in the case of a large amount of packet losses that happen suddenly The amount of telling, the transmission performance of network is set to keep stable.
3rd, held consultation during TCP connections are established and whether select to carry out network code, if without network code, The data message of TCP layer is directly then sent to IP layers, then sent, without network code layer, receiving terminal is also such as This, if the result consulted is to need to carry out network code, transmitting-receiving two-end is required to by network code layer so that program energy It is enough perfect compatible with the progress of existing Transmission Control Protocol.
Brief description of the drawings
Fig. 1 is the form of network code layer stem in the present invention.
Fig. 2 is coding window strategy --- sliding window in transmit queue in the present invention.
Fig. 3 is that system realizes framework in the present invention.
Fig. 4 is the data message form in the present invention.
Fig. 5 is the formulae express of the coded data message received in the present invention.
Fig. 6 is the simplified formula statement of the coded data message received in the present invention.
Fig. 7 is that transmission packet is queue snd_buf_head in the present invention.
Fig. 8 be in the present invention decode flow in pending (backlog), decode (decoding), decoded (decoded) data message queue.
Fig. 9 is network code layer queue and the graph of a relation of private control information in the present invention.
Figure 10 is three-way handshake implementation process figure in the present invention.
Figure 11 is four implementation process figures of waving in the present invention.
Figure 12 is the coding implementation process schematic diagram of the present invention.
Figure 13 is realization of decoding schematic flow sheet in the present invention.
Figure 14 is the actual measurement scene frame diagram of the present invention.
Figure 15 is the transmission performance comparison diagram under packet loss 5%, RTT=100ms, Bandwidth Dynamic change.
Figure 16 is to change the influence schematic diagram to transmission performance with a width of 1Mbps, RTT=100ms, packet loss.
Embodiment
The present invention is further detailed explanation with reference to the accompanying drawings and detailed description.The basic realization of the present invention Framework is to add a layer network coding layer among the TCP layer and IP layers of traditional layer network models of OSI seven to realize compiling Code transfer function, as shown in Figure 3.
Network code functional module is directed to each TCP connection and encoded, and the data message of difference connection is not It can be encoded, the datagram literary talent of only same connection can be encoded.Being held consultation during TCP connections are established is No selection carries out network code, if without network code, the data message of TCP layer directly is sent into IP layers, Ran Houfa See off, without network code layer, if receiving terminal is also in this way, the result consulted is to need to carry out network code, receive and dispatch Both ends are required to by network code layer so that the program can carry out perfect compatible with existing Transmission Control Protocol.
Data message form after network code is as shown in Figure 4.In conventional network protocols, data message is by IP Stem, TCP stems, TCP data load three parts composition.The data message of scheme is by IP layer stems, network code layer stem, net Network coding layer data load, wherein, network code layer data load is by TCP stems and the TCP data load of conventional network protocols Lotus performs the encoding operation what is obtained, and network code layer stem is due to then to introduce some corresponding coding and decodings after network code layer Control information.IP layers header length is 20~60 bytes (similar with Traditional IP layer head), and network code layer header length is 48 Byte, network code layer data loaded length are the length sum of TCP stems and TCP data load.
The form of network code stem layer by layer is as shown in Figure 1.Network code layer stem is made up of 48 bytes.Wherein, Source port and Destination port represent the source port and destination interface of network code data message respectively, due to Traditional ICP/IP protocol that network code layer utilizes, port herein are the port of TCP layer;Base domain representations transmitting terminal is sent out Send byte sequence number minimum in queue;The first character of 1 domain representations of Start, first original TCP data message for participating in coding Sequence number is saved, is absolute value herein, therefore length is 32;Resv domain representation reserved parts, in current version, the net of filling Network coding layer header length;Last byte sequence of 1 domain representations of End, first original TCP data message for participating in coding Number, it is the relative value relative to Start 1, length is 16;2 domain representations of Start, second original TCP number for participating in coding It is the relative value relative to Start 1, length is 16, when an only TCP data report according to the first character section sequence number of message When text participates in coding, the value is filled with 0;The implication in the domain of Start 3, Start 4, Start 5 is similar with Start 2;The tables of End 2 Show last byte sequence number of second original TCP data message for participating in coding, be the relative value relative to Start 1, Length is 16, and when only a TCP data message participates in coding, the value is filled with 0;The domain of End 3, End 4, End 5 Implication is similar with End 2;N domain representations participate in the original TCP data message number of coding;I-th of participation coding of a [i] domain representation Original TCP data message corresponding to code coefficient, if participated in without i-th of original TCP data message, for 0; Wscale represents the Window Scale factor of network code packet;The byte sequence number that ncack domain representation network codes layer confirms, i.e., The network code layer for sending network code data message it is expected the sequence number of the next byte received;Recv window domains table Show the current reception window value of the network code layer to send datagram;Private 1 and the domains of private 2 are that progress is adaptive The feedback parameter for answering redundancy to adjust.
The principle of network code is considered as following matrix operation:
Wherein, qiRepresent i-th of original TCP data message for participating in coding, and data message to be decoded, PjRepresent J-th of encoded later network code data message.Wherein by element aijThe matrix A of composition is relative code coefficient square Battle array, the data message P of its corresponding coding per a linejCoefficient vector, its it is each row then correspond to each participate in coding Original TCP data message, therefore element aijRepresent in i-th of coded data message corresponding to j-th of original TCP data message Code coefficient.It is to connect 3 original TCP data message codings into 4 network code data messages in above-mentioned matrix operation Receiving end only needs to guarantee each row linear independence for the data message and coefficient matrix for receiving 3 network codes, former The TCP data message of beginning is that decodable code comes out.Here with thought be redundancy encoding thought, so as to realize confrontation network number According to the loss of message.
The loss of confrontation network message is realized using redundancy encoding, is related to the design of redundancy.The rise meeting of redundancy Cause the effective speed of transmission to have certain decline, but speed caused by can be seen that packet loss by the test of reality decline it is remote The loss brought higher than unnecessary redundancy.Therefore, best situation is that redundancy can be higher than its corresponding packet loss, and with The change for packet loss dynamically adjusts.A kind of self-adaptive redundant degree algorithm is proposed in the present invention, its principle is:Passed through sending When crossing the data message of coding, a data test serial number is filled in network code layer stem, this sequence number is different from TCP layer word Sequence number is saved, TCP layer byte sequence number is that the data message sequence number of network code layer is for reality in order to ensure the transmitting of byte The estimation of existing self-adaptive redundant degree;In receiving terminal, by obtaining network code layer data test serial number, and by calculating current number According to the data message number lost in stream a period of time to estimate packet loss, and the packet loss of the estimation is fed back into transmitting terminal; In transmitting terminal, by the packet loss of feedback, carry out computing redundancy degree, in theory redundancyThe redundancy actually calculated Degree is often bigger than theoretical value.
Although the window size of network code is fixed, actual data message coding is to use sliding window machine System, as shown in Fig. 2 an original TCP data message queue for participating in coding is maintained in network code layer, in each original number When needing to carry out coding transmission according to message, current original TCP data message and 4 original TCP datas before it are selected Message is encoded, and is then transferred out.Such as when TCP layer sends initial data message qkWhen, then currently participate in the original encoded Beginning data message is (qk-4, qk-3, qk-2, qk-1, qk), then when TCP layer next time sends initial data message qk+1When, participate in compiling The initial data message of code is (qk-3, qk-2, qk-1, qk, qk+1), it is original sending every time although so coding window is 5 During TCP data message, window can slide backward a data message length, by that analogy, until data message is sent completely.
In the receiving terminal of network code layer, decode-history table can be stated into formula as shown in Figure 5.Wherein, pjRepresent J-th of encoding transmission data message received, qiRepresent the original TCP data message that i-th of TCP layer is sent, middle square Battle array is coefficient matrix.The data message p of a coding is corresponded in above-mentioned coefficient matrix per a linejCoefficient vector, its each row Then correspond to each original TCP data message for participating in coding.Moved after being slided due to coding window, therefore its columns With the increase of more newly arriving of coding window;Its line number over time and the coded data message number that receives and increase.Translate Code process solves above-mentioned original TCP data message qi, therefore only need coefficient matrix being transformed into unit matrix, then decodable code goes out Original TCP data message.
During decoded operation is performed, even if having no idea coefficient matrix being transformed into unit matrix, i.e., it can not decode Go out original TCP data message, but if can be by coefficient matrix abbreviation into following form as shown in fig. 6, i.e. coefficient matrix Become two submatrixs, the submatrix on the left side is unit matrix, and the submatrix on the right is non-zero matrix, is also in this case Significant.If matrix a line only has a nonzero element, original TCP data corresponding to this nonzero element column Message can be by " decoded (decoding) ", than the first row of such as above-mentioned matrix;If coefficient matrix can abbreviation into above-mentioned shape Formula, then it can consider that original TCP data message corresponding to each row can consider by " seen " in the unit matrix of the left side, because at this In the case of kind, follow-up coded data message can not include the original TCP data message, as long as receiving terminal receives others Data packet messages, such as q6,q7, can also be by q5Decoding comes out, on the other hand, receiving terminal can send the datagram of " seen " in advance The confirmation being properly received of text, the data message can be deleted so as to notice transmitting terminal.In network code layer, it is expected what is received Next byte sequence number is to include the data message of next byte sequence number for it is expected to be arrived Bei " seen ".Therefore realizing Journey, the byte sequence number of confirmation are the sequence numbers of " seen ".
In network code layer, fed back when there is new data message byte by " seen ", it is necessary to send confirmation (ACK) message Corresponding reception successful information is noticed to transmitting terminal;, it is necessary to will be corresponding when there is new data message byte by " decoded " The byte of decoding out passes to TCP layer.
Similar with TCP layer, network code layer also possesses corresponding network code layer connection control information.Due to network code Functional module is directed to each TCP connection and encoded, therefore in order to ensure to be reliably connected, scheme also define one Individual network code layer connection, is uniquely identified using the four-tuple of (source IP, purpose IP, source tcp port, purpose TCP port) One network code layer connection.
Connected for each network code layer, it includes many network code layer states (state), and major function is Establishment of connection, the maintenance of connection, the release of connection, process, the compiling of TCP establishment of connections (three-way handshake) are corresponded to respectively The process of code transmission, the process of the release (four times wave) of TCP connections.Main state includes:NCSYN_SENT、NCSYN_ RECV、NCSYN_ACK_SENT、NCSYN_ACK_RECV、NCESTABILISHED、NCFIN_WAIT_1、NCFIN_RECV、 NCFIN_WAIT_2、NCCLOSE_WAIT、NCLAST_ACK、NCLAST_ACK_RECV、NCTIME_WAIT、NCCLOSED.On The state of stating is mainly used in connection and establishes and discharge.The coding and decoding transmission of information only can just enter under NCESTABILISHED states OK.
The control information got in network code layer control information comprising a part from TCP connections, control information Acquisition is mainly analyzed what is obtained by analyzing original TCP data message.These control information include:Corresponding TCP connects The sock information that connects, the Window Scale factor (wscale), the biggest subsection (MSS), the reception window value (tcp_ of TCP connections Wnd), the confirmation number (tcp_ack) of TCP connections.
The privately owned control information of network code layer, mainly includes:It is next it is expected by the byte sequence number (nxt_ of " seen " Seen), next expectation is decoded the byte sequence number (nxt_decoded) of " decoded ", next expectation is delivered to TCP The byte sequence number (nxt_kernel) of layer, next expectation are added to the byte sequence number (nxt_newbytes) of decoding queue, net Network coding layer confirms but does not also confirm (net in advance by the data message number (num_ncpkt) of kernel confirmation, network code layer The byte number that the byte number that network coding layer confirms-TCP layer confirms), this is it is also assumed that be the data for being temporarily stored in network code layer Byte number (nc_len).
For decoding coefficient matrix, because its each row then corresponds to each original TCP data message for participating in coding. In the coefficient matrix of decoding, each row represent an original TCP data message respectively, then how to distinguish an initial data Message, an original TCP data message is uniquely determined respectively with its start byte sequence number and length.COEFF_LEN is most The raw data packets number of row decoding, i.e., be up to COEFF_LEN row are entered in big permission simultaneously.Schema definition therefore two Control information:The start byte sequence number (nc_dseq [COEFF_LEN]) of data message corresponding to each row of decoding matrix, decoding The length (nc_dend [COEFF_LEN]) of data message corresponding to each row of matrix.For original TCP corresponding to coefficient matrix Data message can be updated according to decoding situation, that is, the TCP data message being decoded and to subsequently decoding no valency Value, then the original TCP data message will be moved out of decoding matrix, same to have a new original TCP data message When needing to add, decoding matrix can also update.
The main of network code layer includes four data message queues:A. message queue (snd_buf_head) is sent;b. The pending data message queue (backlog) of receiving terminal;C. the current data message queue (decoding) decoded;d. The data message queue (decoded) decoded.
The buffer queue that message queue is the original TCP data message of storage is sent, as shown in Figure 7.It adds criterion When TCP layer needs to send original TCP data message, in network code layer, the data message is replicated, then discharges former number According to message, and the data message of duplication is added to and sent in message queue, then etc. pending coding, send operation;It is deleted Except criterion be check corresponding to receive the ACK of data message and confirm number, byte representation before the confirmation number receiving end Decoding is come out or can decode out, then the byte before the confirmation number can be deleted, therefore the sequence of last byte Number be less than sending datagram for the value will remove and delete from the queue.
Pending data message queue (backlog) is functionally similar to backlog queue, mainly stores out of order to working as Decoded operation valuable data message of the preceding decoded operation without value but for future.It inserts criterion, in network After coding layer receives coded data message, first it is added in pending queue;It removes criterion, in reception processing Cheng Zhong, whether the data message first checked in pending queue is valuable to current decoded operation, if so, then by it from treating Removed in reason data message queue, be added to decoding queues, otherwise, continue to be buffered in pending data message queue.
Data message queue (decoding) caching decoded is to the valuable datagram of current decoded operation Text, it is synchronous that it, which inserts criterion with the removal criterion of pending data message queue, i.e., is moved from pending data message queue Except just along with the insertion for decoding queue;It removes criterion, when data message is decoded out, and for follow-up Decoded operation, which does not have to be worth, (i.e. with the minimum byte not being decoded not in a coding window, then to be affirmed to minimum not The decoding for being decoded byte is not worth), meet above-mentioned two condition, then data message can be moved from decoding queues Remove, remove operation and be usually associated with coefficient matrix decoding parameter nc_dseq [COEFF_LEN], nc_dend [COEFF_LEN] Renewal.It should be noted that for the data message that each is being decoded, a code coefficient vector is all corresponded to, for representing The code coefficient of the original TCP data message of coding, and a decoded state variable, including NC_UNSEEN, NC_SEEN are participated in, NC_DECODED, NC_REDUNDANCE, state can update in decoded operation, and NC_UNSEEN represents that current data message does not have also Have by " seen ", it is impossible to confirm the data message in advance, the original state of all data messages for being just added to queue is NC_ UNSEEN;NC_SEEN represents that the data message can be by " seen ", you can is confirmed in advance to transmitting terminal with receiving end;NC_ DECODED represents that current data message can be decoded out, state is set into the state must is fulfilled for coefficient vector and translating Code during allow for being transformed into only one for 1 it is original, it is 0 that remaining is original;
NC_REDUNDANCE represents that current data message is the data message of redundancy, to be set to the state, it is necessary to meets system Number vector allows for being transformed into during decoding is all 0, and in such cases, the data message is not worth to decoding, Can directly it be deleted.
Be decoded data message queue (decoded) caching be decoded but it is also not true by TCP layer The data message recognized.Its insert criterion be ought decode queue data message be decoded out after, be directly inserted into To decoded queues;It is (successfully to be received after data message is confirmed by TCP layer by TCP layer that it, which removes criterion, To), then it can be removed from decoded queues.For the data message in decoded queues, a state variable is all corresponded to, is used To identify the state for passing to local TCP layer, principal states have:NC_UNSENTUP (does not pass to TCP layer also), NC_ SENTUP_UNACK (passes to TCP layer, but also does not confirm to receive successfully by TCP layer), and NC_SENTUP_ACK is (by TCP Layer confirms to receive successfully), and NC_SENTUP_SACK (selection ACK, i.e., a part of data message confirm to receive successfully by TCP layer, and one Part not confirmed is properly received), NC_RESENTUP_SACK (is confirmed by SACK, but not confirmed successfully to receive in order, then Again upload), NC_DUPSENTUP (is not successfully authenticated reception, then upload again).
Some packet is to be present in the queue (decoding) decoded and the queue being decoded simultaneously (decoded), because although these data messages are decoded out, but it is also valuable to follow-up decoding.Meeting In the case of corresponding, packet removes from queue first, then judges whether to be also present in other queues, if not having, directly The data message can be deleted by connecing.
Pending (backlog) in Fig. 8 decoding flows, decode (decoding), decoded ((decoded) number According to message queue.Although a data message may be simultaneously present with two data message queues, still in fact only have a number According to message body, data message is pointed to simply by two different pointers.
The queue mechanism of network code layer is corresponding with its privately owned control information.As shown in figure 9, the number being decoded According to message queue, from tcp_ack (i.e. the desired next byte sequence number of TCP layer), to nxt_decoded, (network code layer is next The individual byte sequence number for it is expected to be decoded);The current data message queue decoded is from nc_dseq [0] to nxt_ Newbytes (i.e. next expectation is added into the byte sequence number of decoding queue).It is (next from tcp_ack to nxt_kernel It is expected to be sent to the byte sequence number of TCP layer) represent to have been communicated to TCP layer but byte number that also not confirmed is properly received; Represent to be decoded from nxt_kernel to nxt_decoded but do not pass to the byte number of TCP layer also;nxt_ Decoded to nxt_seen represents the byte number that can be in advance confirmed by network code layer but can not successfully be decoded;Here Nxt_seen to nxt_newbytes represents the byte number that can not be identified in advance.
Foregoing control information collectively forms the control information of network code layer, the connection of each network code layer, and corresponding one Control information as set, including the connection of network code layer control information (uniquely determine the connection of network code layer, and Connection status), data message maximum burst length and Window Scale information, decoding parameter information, privately owned control information, queue pipe Manage information.
The process of three-way handshake, it is exactly the mistake for building NC layers link control module and initializing some coding and decoding parameters in fact Journey, mainly decode parameter.Therefore main parameter initialization be last Control Cooling of reception packet when Wait.As shown in Figure 10, the specific implementation flow of three-way handshake is:
1) Client TCP layer sends SYN messages, and after Client NC layers receive SYN messages, it understands that Client is needed A connection is initiated, therefore it needs to build NC layer control blocks for such TCP connections, and NC layer connection status is set to NCSYN_SENT, SYN messages are directly then sent to Server;
2) after Server NC layers receive Client SYN messages, it understands that a Client is asking a company Connect, therefore be also required to create NC layer control blocks for this connection, and NC layer connection status is set to NCSYN_RECV, then will SYN messages are sent to TCP layer;
3) Server TCP layer sends SYN+ACK messages, and after Server NC layers receive the message, NC layers are connected The state of connecing is set to NCSYN_ACK_SENT, and message directly is sent into Client;
4) Client NC layers receive the SYN+ACK messages of Server transmissions, and NC connection status is set to by it first NCSYN_ACK_RECV, because the message is the last control message before Client receives the message with data, therefore need Initialize the decoding parameter of NC layers connection, including NC layers it is expected to be added to the byte sequence number, next time of decoding queue next time It is expected the byte sequence number of " seen ", the byte sequence number for it is expected to be decoded next time, it is expected to pass to the syllable sequence of kernel next time Number, the sequence number that these byte sequence numbers are equal to current SYN+ACK packets adds 1, in addition to the ACK sequence numbers of distal end and reception window Size.Then message is directly passed into TCP layer;
5) Client TCP layer sends ACK messages, and expression acknowledges receipt of SYN+ACK, in NC layers, NC is connected into shape first State is set to NCESTABILISHED, and current ACK messages then are added into a NC header, are then sent to Server;
6) Server NC layers are when receiving above-mentioned ACK messages, when how to judge ACK messages now with transmission data ACK messages difference, need bonding state to be judged herein, i.e., if NC connection status is NCSYN_ACK_SENT, and And receive ACK messages, then it represents that the message that this ACK message is shaken hands for third time, be first set to NC connection status NCESTABILISHED;Because the message is the last control message before Server receives the message with data, therefore need Initialize the decoding parameter of NC layers connection, including NC layers it is expected to be added to the byte sequence number, next time of decoding queue next time It is expected the byte sequence number of " seen ", the byte sequence number for it is expected to be decoded next time, it is expected to pass to the syllable sequence of kernel next time Number, these byte sequence numbers are equal to the sequence number of current SYN+ACK packets, in addition to ACK sequence numbers of distal end and to receive window big It is small.Then message is transmitted into TCP layer;
Based on aforesaid operations, the negotiation of three-way handshake is just completed, Server connects with Client NC layers all to be located In NCESTABILISHED states.Therefore the coding and decoding operation that can be transmitted.
Four processes waved, it is exactly to discharge NC layers resource and the process of link control module in fact.As shown in figure 11, it is led Process is wanted, is illustrated so that Client sends FIN packets first as an example:
1) Client TCP layer sends FIN messages, when the NC layers of local receive FIN messages, first by FIN data Bag is placed on NC layers, waits data message all in transmit queue to confirm, after all data messages are all identified, then The transmit queue of NC connections is emptied, it is NCFIN_WAIT_1 to put connection status, and FIN messages are sent into Server;
2) when Server NC layers receive the FIN messages of Client transmissions, the local number being decoded out is first looked at According to whether thering is packet to be not issued to TCP layer in bag queue, if any TCP layer being then immediately sent to, when TCP layer confirms own Packet when, then the queue relevant with decoding of NC connections is emptied, it is NCFIN_RECV to put connection status, by FIN messages Pass to TCP layer;
3) Server TCP layer sends ACK messages, is NCFIN_RECV when determining current NC connection status, and send out When what is sent is ACK messages, expression is the confirmation of the FIN messages sent to opposite end, and it is NC_CLOSEWAIT to put NC connection status, will ACK messages are transmitted directly to Client;
4) Client NC layers receive ACK messages, are NCFIN_WAIT_1 when determining current NC connection status, and When what is received is ACK messages, expression is the confirmation to the FIN messages of transmission, and it is NCFIN_WAIT2 to put NC connection status, by ACK Message is transmitted directly to TCP layer;
5) Server TCP layer sends FIN messages, when the NC layers of local receive FIN messages, first by FIN data Bag is placed on NC layers, waits data message all in transmit queue to confirm, after all data messages are all identified, then The transmit queue of NC connections is emptied, it is NCLAST_ACK to put connection status, and FIN messages are sent into Client;
6) when Client NC layers receive the FIN messages of Server transmissions, the local number being decoded out is first looked at According to whether thering is packet to be not issued to TCP layer in bag queue, if any TCP layer being then immediately sent to, when TCP layer confirms own Packet when, then the queue relevant with decoding of NC connections is emptied, it is NCLAST_ACK_RECV to put connection status, by FIN Message passes to TCP layer;
7) Client TCP layer sends ACK messages, is NCLAST_ACK_RECV when determining current NC connection status, and And send be ACK messages when, expression be to opposite end send FIN messages confirmation, it is NCTIME_ to put NC connection status WAIT, ACK messages are transmitted directly to Server;
8) Server NC layers receive ACK messages, are NCLAST_ACK when determining current NC connection status, and connect When what is received is ACK messages, expression is the confirmation to the FIN messages of transmission, and it is NCCLOSED to put NC connection status, by ACK messages TCP layer is transmitted directly to, and discharges all resources of NC layer control blocks and control block message;
9) NC connection status is set to by Client after two maximum segment lifetime times are waited NCCLOSED, and discharge all resources of NC layer control blocks and control block message.
The encoding operation that network code layer performs data message must be carried out under NCESTABILISHED states, and its is specific Implementation process it is as shown in figure 12:
1) during foundation is connected, receiving-transmitting sides consult whether TCP flow carries out network code, and set connection control The corresponding mark of block;
2) establish network code layer by three-way handshake to connect, and ensure that the connection of network code layer is in Under NCESTABILISHED states;
3) when TCP layer needs to send original TCP data message, the processing method of network code layer is:1) report is judged Text is the message for controlling message or carrying data, if control message, is then directly entered 4);2) data message is cached to cunning In dynamic window, present encoding window is slided backward into a message;3) set NUM=NUM+R (wherein R as current process from The redundancy of adjustment is adapted to, is directly obtained from the control information of connection), and produceThe individual report by present encoding window The coded data message that the linear combination of text forms, and fill corresponding coding head, setting 4) coding message is sent into IP layers to be handled.
The implementation process of self-adaptive redundant degree algorithm is:
1) sequence number is added in transmitting terminal, the data message for reaching network code layer when data are sent to TCP layer, this sequence number is not TCP sequence numbers are same as, it, which is not differentiated between, retransmits message and normal message, and whether also do not differentiate between has band data, as long as this TCP connection Message, all uniformly it is numbered, and writes in packet networks coding stem.
2) in receiving terminal, a counting period for calculating packet loss (generally 100 packets) is determined;Receiving data When by the sequence number value in network code stem, every 100 sequence numbers carry out a packet loss and calculated, and in the network of ACK messages Present packet loss is write in coding stem.
3) in transmitting terminal, after have received ACK messages, the packet loss loss_rate that receiving terminal calculates is read, according to packet loss Rate calculates redundancy.Redundancy calculation formula is as follows:
Wherein m and n is coefficient;General m selects 1.1, n selections 1.
The specific implementation flow for decoding flow is as shown in figure 13:
1) during foundation is connected, receiving-transmitting sides consult whether TCP flow carries out network code, and set TCP connections The respective flag of control block;
2) when receiving the data message that IP layers are communicated up, the processing method of network code layer:1) judge that message is Control message still carries the message of data, if control message, is then directly entered 5);2) data message is cached to pending In data message queue (backlog), 3) data message in pending data message queue (backlog) is added to Decoding data message queue (decoding), according to the code coefficient vector of data message in current decoding queues, obtain Corresponding decoding matrix;4) Gaussian elimination is carried out to decoding matrix, quilt accordingly is obtained from the matrix after Gaussian elimination " seen " and by " decoded " message;If 5) there is the message of new " seen ", corresponding ACK messages are sent;6) according to height The matrix and transformation matrix of this member that disappears, update the data message in decoding queues;7) data message of " decoded " is sent out TCP layer is given to be handled.
3) when TCP layer is to transmitting terminal feeding back ACK message, it is necessary to according to the decoding information of local network coding layer, modification ACK sequence numbers and reception window value, then again send ACK messages.
When TCP layer is to transmitting terminal feeding back ACK message, what original ACK messages confirmed is the word being properly received of TCP acknowledgment Save sequence number.After network code layer is introduced, encoded transmission, even if network code layer can not decode corresponding data message Out, if ensure network code layer can " seen " with the data message, should even if not including in follow-up coding message then Data message information, as long as comprising the later information of enough messages, the data message can also be decoded out, therefore net Network coding layer is actual, and confirm is the byte sequence number for it is expected seen next time.The ACK messages sent for TCP layer are, it is necessary to by ACK Confirmation number is revised as nxt_seen sequence numbers, and at the same time corresponding window value is also required to change.In theory, rear hatch value etc. is changed Window value size in current original ACK messages subtracts the expense of the byte number (nxt_seen-tcp_ack) confirmed in advance. In actual implementation process, the calculation expression of window value (nc_recvwnd) is:
Nc_recvwnd=tcp_wnd- [(nxt_seen-tcp_ack)+num_ncpkt*overhead]
Wherein, tcp_wnd represents the window value size of the original ACK messages of TCP layer, and num_ncpkt represents network code Layer needs the data message number confirmed in advance, and overhead represents the volume that each network code layer data message may take Outer window expense, including IP layers stem, MAC layer stem, data message structure expense etc..
To verify beneficial effects of the present invention, it is as shown in figure 14 that the present invention surveys scene framework.Two Linux network manager services Device channel simulation equipment connects, and two Linux gateways are respectively connected with a Windows computer, two Windows computers Data are transmitted by corresponding Linux gateway servers.Method of testing:Network code layer is with Linux kernel module (.ko) Form is loaded into two Linux gateway servers.Transmission performance is tested by Jperf softwares in two Windows terminals.
Broadband measured result:Consideration 100Mbps, 20Mbps two kinds of different bandwidths, 0%, 3%, 5%, 10%, 20% 5 kind Packet loss, 100ms, under two kinds of time delay scenes of 1000ms, two Windows computers of test reliable information transfer speed end to end Rate.Specific test result is as shown in Table 1 and Table 2.
The bandwidth 100Mbps performance tests of table 1 contrast
The bandwidth 20Mbps performance tests of table 2 contrast
Test result:Traditional Transmission Control Protocol is can be seen that in transmission environment deterioration, packet loss from above-mentioned test result During rise, transmission rate, which occurs, drastically to be deteriorated.As shown in table 2, when with a width of 20Mbps, packet loss becomes from 0% to be turned to 3%, transmission performance reduces 29 times or so.When using network code agreement, the lifting of packet loss will not cause transmission rate Drastically decline, transmission rate can be ensured well.As shown in table 1, with a width of 100Mbps, during RTT=100ms, When packet loss is less than or equal to 10%, the transmission rate of network coding technique is in more than 50Mbps, even if packet loss is 20%, Transmission rate is still able to stable in 32Mbps.Contrast Tables 1 and 2, it can be seen that after there is packet loss in network, conventional TCP Agreement transmission performance is substantially not related with bandwidth, and the bottleneck of transmission performance is Network Packet Loss.Network coding technique can Preferably overcome adverse effect of the Network Packet Loss to transmission performance, improve bandwidth availability ratio.
Arrowband measured result:For 2 kinds of different bandwidths, 0% such as 1Mbps, 512Kbps, 3%, 5%, 10%, 20% grade 5 Two kinds of kind packet loss, 100ms, 1000ms time delays configurations, test the reliable rate of information throughput end to end.Specific test result As shown in Table 3 and Table 4.
The bandwidth 1Mbps performance tests of table 3 contrast
The bandwidth 512Kbps performance tests of table 4 contrast
Test result:From above-mentioned test result, it can be seen that conventional TCP protocols are in transmission environment under narrowband condition When deterioration, packet loss rise, transmission rate, which occurs, drastically to be deteriorated, and under high packet loss situation, deterioration is more serious.Such as table Shown in 4, when with a width of 512Kbps, packet loss becomes from 10% turns to 20%, and transmission performance is reduced close to 9 times or so.Make During with network code agreement, under high packet loss situation, transmission rate can be kept well.As shown in table 4, in bandwidth For 512Kbps, during RTT=100ms, when packet loss is 20%, transmission rate can still reach 240Kbps.Contrast tradition The test data of Transmission Control Protocol and network code agreement, it can be seen that under low bandwidth configuration, network coding technique can be preferable Ground overcomes adverse effect of the Network Packet Loss to transmission performance, improves bandwidth availability ratio.
Network bandwidth dynamic change measured result.Verification method:Slowly varying, a width of 1Mbps of initial strip of bandwidth, every 30s bandwidth increases 2Mbps, increases to after 11Mbps, then reduces 2Mbps every 30s bandwidth, and test result is as shown in figure 15.
Test result:Conventional TCP host-host protocol is can be seen that when network packet loss rate is 5% from above-mentioned test result, Although bandwidth is sufficiently large, transmission rate is still very low.In Configuration network coding protocol, its transmission performance, which has, substantially to be carried Rise, and the transmission rate of its different time sections is consistent with corresponding bandwidth, improves bandwidth availability ratio.But conventional TCP transmits Agreement Mean Speed then very little always, this shows that the bandwidth availability ratio of conventional TCP protocols is very low.
Network packet loss rate dynamic change measured result.For two kinds of bandwidth of 1Mbps, 20Mbps, 100ms time delay scenes, survey Try the packet loss influence of dynamic change for the rate of information throughput end to end under the conditions of 3%, 5%, 10%, 20% 4 kind. The specific test scene of dynamic change of packet loss is configured to:0~60s, packet loss 3%;60~120s, packet loss 5%; 120~180s, packet loss 10%;180~240s, packet loss 20%, specific test result are as shown in figure 16.
Test result:Conventional TCP host-host protocol is can be seen that when network has packet loss from above-mentioned test result, its Transmission rate is much smaller than bandwidth, and deteriorates in transmission environment, and when packet loss raises, deterioration occurs in transmission rate.Configuring During network code agreement, its transmission performance is significantly better than non-reinforced TCP transmission agreement, and its average transmission rate will not go out Now acutely decline, transmission rate can be ensured that bandwidth availability ratio is higher well.

Claims (4)

1. a kind of adaptive end to end network coding and transmission method, it is characterised in that comprise the following steps:
In coding side
1), during connection is established, receiving-transmitting sides consult whether transmission control protocol stream carries out network code, if carried out Network code, then network code layer control block corresponding to foundation, initializes control information, and sets transmission control protocol connection control The respective flag of clamp dog;
2), when transmission control protocol layer sends initial data message, the processing method of transmission network coding layer is:
(1) the network code layer link control module according to corresponding to being searched initial data message, if it is possible to find corresponding control Block, then demonstrate the need for performing network-encoding operation, perform step (2);If not finding corresponding control block, show to be not required to Network code is performed, performs step (5);
(2) it is the message for controlling message or carrying data to judge data message, if control message, then need not perform network Encoding operation, perform step (5);
(3) data message is cached in sliding window, present encoding window is slided backward into a message;
(4) coding counter NUM=NUM+R is set, wherein, R is the redundancy that current process adaptively adjusts, and is producedThe coding message that the linear combination of the individual message by present encoding window forms, corresponding coding head is filled, hereinRepresent the number for the coding message that needs generate;And update coding counter
(5) coding message is sent to Internet protocol layer, and sent via Internet protocol layer, data link layer;
3), when receiving the confirmation ACK messages of receiving terminal feedback, method is handled as follows:
(1) according to the acknowledged sequence number confirmed in ACK messages, the transmit queue of coding side is operated, byte sequence number is less than The data message of acknowledged sequence number is deleted from transmit queue;
(2) according to the receive information of receiving terminal in the confirmation ACK headings of feedback, adaptive packet loss estimation and superfluous is carried out Remaining adjusts;
(3) the confirmation ACK messages of feedback are modified as the form for meeting transmission control protocol data message, then pass to transmission control Protocol layer processed;
In receiving terminal
1), during connection is established, receiving-transmitting sides consult whether transmission control protocol stream carries out network code, if carried out Network code, then network code layer control block corresponding to foundation, initializes control information, and sets transmission control protocol connection control The respective flag of clamp dog;
2), when receiving the data message that Internet protocol layer is communicated up, the processing method of network code layer is:
(1) the network code layer link control module according to corresponding to being searched data message, if it is possible to find corresponding control block, then Expression needs to perform network-encoding operation, performs step (2);If corresponding control block can not be found, then it represents that need not Network-encoding operation is performed, performs step (7);
(2) it is the message for controlling message or carrying data to judge message, if control message, then performs step (7);
(3) data message is cached in the pending data message queue backlog of corresponding connection, backlog represents to wait to locate Reason;
(4) judge whether include next expectation quilt in the data message in pending data message queue backlog one by one The information of the initial data message of decoding;If so, then needing to obtain the code coefficient vector of the message, and the message is added to In the data message queue decoding decoded, decoding represents to decode;
(5) according to the code coefficient of the data message decoded in queue decoding vector, obtain decoding coefficient matrix, it is right Decoding matrix carries out Gaussian elimination, obtains from the matrix after Gaussian elimination and is reported accordingly by " seen " and by " decoded " Text;Wherein, " seen " is represented when a data message carries out table by the linear combination of other sequence numbers data message higher than it When showing, being considered as this data message can be by " seen ", and " decoded " represents there was only one by decoded matrix a line It is individual be 1 element when, it is believed that this data message is added to and has been decoded data message queue by " decoded " In decoded;
(6) if there is the message of new " seen ", corresponding confirmation ACK messages are sent;
(7) message being decoded in data message queue decoded is sent into transmission control protocol layer to be handled;
3), when there is the message of new " seen ", it is necessary to feedback reception end network code layer receives successful information, its process according to Rely to send in transmission control protocol layer and confirm ACK messages;When transmission control protocol layer sends confirmation message:
(1) the confirmation ACK sequence numbers in the confirmation ACK messages of transmission control protocol layer transmission, sequence number renewal is arrived corresponding Network code layer link control module in, and by the deletion for being decoded data message in data message queue decoded Operation;
(2) according to transmission control protocol layer confirmation number and window value size, transmission network coding layer window value size is calculated;
(3) confirmation number of network code floor and window value are modified in confirmation message, then sent.
2. a kind of adaptive end to end network coding and transmission method as claimed in claim 1, it is characterised in that redundancy adjusts Method be:
In transmitting terminal, the data message for reaching network code layer when data are sent to transmission control protocol layer adds sequence number, this sequence Number do not differentiate between and to retransmit message and normal message, whether do not differentiate between has band data, as long as the message of this transmission control protocol connection, All uniformly it is numbered, and writes in packet networks coding stem;
In receiving terminal, it is first determined the counting period of a calculating packet loss;When receiving data by network code stem Sequence number value, every 100 sequence numbers carry out a packet loss and calculated, and write in the network code stem of ACK messages and currently lose Bag rate;
In transmitting terminal, after have received ACK messages, the packet loss loss_rate that receiving terminal calculates is read, is calculated according to packet loss Go out redundancy, redundancy R calculation formula are as follows:
<mrow> <mi>R</mi> <mo>=</mo> <mi>m</mi> <mo>*</mo> <mfrac> <mn>100</mn> <mrow> <mn>100</mn> <mo>-</mo> <mi>l</mi> <mi>o</mi> <mi>s</mi> <mi>s</mi> <mo>_</mo> <mi>r</mi> <mi>a</mi> <mi>t</mi> <mi>e</mi> </mrow> </mfrac> <mo>+</mo> <mi>n</mi> <mo>*</mo> <mi>l</mi> <mi>o</mi> <mi>s</mi> <mi>s</mi> <mo>_</mo> <mi>r</mi> <mi>a</mi> <mi>t</mi> <mi>e</mi> </mrow>
Wherein, m and n is constant.
3. a kind of adaptive end to end network coding and transmission method as claimed in claim 1, it is characterised in that the network is compiled Code layer connects, and corresponding a set of network code layer control information, including the control information of network code layer connection, network code layer connect Connect state, data message maximum burst length MSS and Window Scale information, decoding parameter information, privately owned control information, queue pipe Manage information.
4. a kind of adaptive end to end network coding and transmission method as claimed in claim 1, it is characterised in that sliding window Sliding method is:An original transmitted control protocol data message queue for participating in coding is maintained in network code layer, each Initial data message need carry out coding transmission when, select current original transmitted control protocol data message and its before 4 original transmitted control protocol data messages are encoded, then are transferred out.
CN201710588600.8A 2017-07-19 2017-07-19 Self-adaptive end-to-end network coding transmission method Expired - Fee Related CN107508655B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710588600.8A CN107508655B (en) 2017-07-19 2017-07-19 Self-adaptive end-to-end network coding transmission method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710588600.8A CN107508655B (en) 2017-07-19 2017-07-19 Self-adaptive end-to-end network coding transmission method

Publications (2)

Publication Number Publication Date
CN107508655A true CN107508655A (en) 2017-12-22
CN107508655B CN107508655B (en) 2020-08-07

Family

ID=60679835

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710588600.8A Expired - Fee Related CN107508655B (en) 2017-07-19 2017-07-19 Self-adaptive end-to-end network coding transmission method

Country Status (1)

Country Link
CN (1) CN107508655B (en)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109088874A (en) * 2018-08-21 2018-12-25 北京睦合达信息技术股份有限公司 A kind of data transmission method and equipment
CN109714132A (en) * 2019-01-23 2019-05-03 中国电子科技集团公司第二十八研究所 A kind of anti-interference live transmission method of multilink under complex electromagnetic environment
CN109862061A (en) * 2018-09-29 2019-06-07 中国民航科学技术研究院 A kind of load system and method for WQAR data distribution
CN110048818A (en) * 2019-05-05 2019-07-23 华中科技大学 The TID of feedback information confirmation a kind of to(for) user and processing system and processing method
CN110138680A (en) * 2019-05-08 2019-08-16 京信通信系统(中国)有限公司 Packet loss processing method, device and the base station equipment of PDCP queue
CN110166166A (en) * 2018-02-14 2019-08-23 瑞昱半导体股份有限公司 Network data prediction technique, network data processing device and method
CN110299970A (en) * 2018-03-23 2019-10-01 天地融科技股份有限公司 A kind of data message sending method and device
CN110299972A (en) * 2018-03-23 2019-10-01 天地融科技股份有限公司 A kind of data transmission method for uplink and device
CN110299969A (en) * 2018-03-23 2019-10-01 天地融科技股份有限公司 A kind of sending method and device of data scrolling transmission
CN110324255A (en) * 2019-07-05 2019-10-11 中南大学 A kind of switch/router buffer queue management method of data-oriented central site network coding
CN110830819A (en) * 2019-11-19 2020-02-21 聚好看科技股份有限公司 Encoding method, decoding method, encoding end and decoding end
CN111343668A (en) * 2020-03-03 2020-06-26 重庆邮电大学 Coding sensing routing method based on backpressure strategy
CN111404650A (en) * 2020-03-17 2020-07-10 许昌泛网信通科技有限公司 Vehicle control message processing method
CN112436920A (en) * 2020-11-23 2021-03-02 南通大学 Network coding and decoding method suitable for multi-hop relay communication
CN113064047A (en) * 2021-03-05 2021-07-02 万向一二三股份公司 Testing device and testing method for end-to-end protection between electronic control units
CN114363370A (en) * 2021-12-29 2022-04-15 中汽创智科技有限公司 Vehicle-mounted equipment communication method, device and system and vehicle
CN114938235A (en) * 2022-04-08 2022-08-23 北京邮电大学 Data transmission method and device in satellite network integrating multipath and network coding
CN115134307A (en) * 2022-06-27 2022-09-30 长沙理工大学 Load balancing method based on packet loss rate coding in cloud computing
CN115134047A (en) * 2021-03-29 2022-09-30 维沃移动通信有限公司 Transmission method, device, equipment and readable storage medium
EP4038841A4 (en) * 2019-10-02 2024-02-14 Aps Tech 1 Llc Invoking a random linear network coding communications protocol

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102111820A (en) * 2009-12-29 2011-06-29 上海摩波彼克半导体有限公司 Method for realizing scheduling control of network encoding perceived by transmission control protocol in wireless network
CN102209079A (en) * 2011-06-22 2011-10-05 北京大学深圳研究生院 Transmission control protocol (TCP)-based adaptive network control transmission method and system
CN102291226A (en) * 2011-09-02 2011-12-21 北京大学深圳研究生院 Self-adaptive network transmission control method and system based on TCP (Transmission Control Protocol) protocol
US8130776B1 (en) * 2009-08-28 2012-03-06 Massachusetts Institute Of Technology Method and apparatus providing network coding based flow control
CN103152359A (en) * 2013-03-25 2013-06-12 重庆大学 Method for improving end-to-end wireless transmission control protocol (TCP) linear network coding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8130776B1 (en) * 2009-08-28 2012-03-06 Massachusetts Institute Of Technology Method and apparatus providing network coding based flow control
CN102111820A (en) * 2009-12-29 2011-06-29 上海摩波彼克半导体有限公司 Method for realizing scheduling control of network encoding perceived by transmission control protocol in wireless network
CN102209079A (en) * 2011-06-22 2011-10-05 北京大学深圳研究生院 Transmission control protocol (TCP)-based adaptive network control transmission method and system
CN102291226A (en) * 2011-09-02 2011-12-21 北京大学深圳研究生院 Self-adaptive network transmission control method and system based on TCP (Transmission Control Protocol) protocol
CN103152359A (en) * 2013-03-25 2013-06-12 重庆大学 Method for improving end-to-end wireless transmission control protocol (TCP) linear network coding

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110166166A (en) * 2018-02-14 2019-08-23 瑞昱半导体股份有限公司 Network data prediction technique, network data processing device and method
CN110299969A (en) * 2018-03-23 2019-10-01 天地融科技股份有限公司 A kind of sending method and device of data scrolling transmission
CN110299969B (en) * 2018-03-23 2022-04-08 天地融科技股份有限公司 Method and device for transmitting data in rolling mode
CN110299970B (en) * 2018-03-23 2022-04-05 天地融科技股份有限公司 Data message sending method and device
CN110299970A (en) * 2018-03-23 2019-10-01 天地融科技股份有限公司 A kind of data message sending method and device
CN110299972A (en) * 2018-03-23 2019-10-01 天地融科技股份有限公司 A kind of data transmission method for uplink and device
CN109088874A (en) * 2018-08-21 2018-12-25 北京睦合达信息技术股份有限公司 A kind of data transmission method and equipment
CN109862061A (en) * 2018-09-29 2019-06-07 中国民航科学技术研究院 A kind of load system and method for WQAR data distribution
CN109714132B (en) * 2019-01-23 2021-04-20 中国电子科技集团公司第二十八研究所 Multi-link anti-interference real-time transmission method used in complex electromagnetic environment
CN109714132A (en) * 2019-01-23 2019-05-03 中国电子科技集团公司第二十八研究所 A kind of anti-interference live transmission method of multilink under complex electromagnetic environment
CN110048818A (en) * 2019-05-05 2019-07-23 华中科技大学 The TID of feedback information confirmation a kind of to(for) user and processing system and processing method
CN110138680B (en) * 2019-05-08 2022-08-23 京信网络系统股份有限公司 Method and device for discarding packet of PDCP queue and base station equipment
CN110138680A (en) * 2019-05-08 2019-08-16 京信通信系统(中国)有限公司 Packet loss processing method, device and the base station equipment of PDCP queue
CN110324255B (en) * 2019-07-05 2021-01-29 中南大学 Data center network coding oriented switch/router cache queue management method
CN110324255A (en) * 2019-07-05 2019-10-11 中南大学 A kind of switch/router buffer queue management method of data-oriented central site network coding
EP4038841A4 (en) * 2019-10-02 2024-02-14 Aps Tech 1 Llc Invoking a random linear network coding communications protocol
CN110830819A (en) * 2019-11-19 2020-02-21 聚好看科技股份有限公司 Encoding method, decoding method, encoding end and decoding end
CN111343668A (en) * 2020-03-03 2020-06-26 重庆邮电大学 Coding sensing routing method based on backpressure strategy
CN111343668B (en) * 2020-03-03 2022-05-03 重庆邮电大学 Coding sensing routing method based on backpressure strategy
CN111404650A (en) * 2020-03-17 2020-07-10 许昌泛网信通科技有限公司 Vehicle control message processing method
CN111404650B (en) * 2020-03-17 2023-05-19 许昌泛网信通科技有限公司 Vehicle control message processing method
CN112436920A (en) * 2020-11-23 2021-03-02 南通大学 Network coding and decoding method suitable for multi-hop relay communication
CN112436920B (en) * 2020-11-23 2021-10-26 南通大学 Network coding and decoding method suitable for multi-hop relay communication
CN113064047A (en) * 2021-03-05 2021-07-02 万向一二三股份公司 Testing device and testing method for end-to-end protection between electronic control units
CN113064047B (en) * 2021-03-05 2024-03-08 万向一二三股份公司 Testing device and testing method for end-to-end protection between electronic control units
CN115134047A (en) * 2021-03-29 2022-09-30 维沃移动通信有限公司 Transmission method, device, equipment and readable storage medium
WO2022206475A1 (en) * 2021-03-29 2022-10-06 维沃移动通信有限公司 Transmission methods, apparatus and device, and readable storage medium
CN114363370B (en) * 2021-12-29 2023-12-26 中汽创智科技有限公司 Vehicle-mounted device communication method, device and system and vehicle
CN114363370A (en) * 2021-12-29 2022-04-15 中汽创智科技有限公司 Vehicle-mounted equipment communication method, device and system and vehicle
CN114938235A (en) * 2022-04-08 2022-08-23 北京邮电大学 Data transmission method and device in satellite network integrating multipath and network coding
CN115134307A (en) * 2022-06-27 2022-09-30 长沙理工大学 Load balancing method based on packet loss rate coding in cloud computing
CN115134307B (en) * 2022-06-27 2024-01-26 长沙理工大学 Load balancing method based on packet loss rate coding in cloud computing

Also Published As

Publication number Publication date
CN107508655B (en) 2020-08-07

Similar Documents

Publication Publication Date Title
CN107508655A (en) A kind of adaptive end to end network coding and transmission method
CN103119881B (en) The block acknowledgement distinguished with re-transmission policy
RU2461147C2 (en) Method of processing radio protocol in mobile communication system and mobile communication transmitter
CN101589565B (en) Method and apparatus for data transmission of radio link control layer in mobile communication system
Xu et al. CMT-NC: improving the concurrent multipath transfer performance using network coding in wireless networks
TWI405445B (en) Method and apparatus of handling tti bundling
CN104202414B (en) Method for reliable transmission based on UDP
CN110401962B (en) LoRaWAN system and method for automatically adjusting length of data message
CN106788911A (en) A kind of method and apparatus of message retransmission
TWI646814B (en) Data transmission method and related equipment
US10230496B2 (en) Method and apparatus for processing control message which requests retransmitting data
JP2009506608A (en) Optimization of radio link control unacknowledged mode header
JP6806411B2 (en) Systems and methods for maintaining synchronization in connectionless transmission
KR100342122B1 (en) System and method for medium access control in a wireless data communication
KR20090055550A (en) Communications equipment
BR0107756B1 (en) METHOD AND APPARATUS FOR SELECTIVE RECOGNITION SCHEME
JP2015188255A (en) Method for wirelessly charging mobile terminal
CN107592185A (en) A kind of forward direction repeating method suitable for network code transmission control protocol
CN107801211A (en) A kind of non-sequential of message submits method and RLC entities, base station
Sayenko et al. Performance analysis of the IEEE 802.16 ARQ mechanism
CN109525374A (en) Method, wireless access point, user equipment and the transmission device of data transmission
KR20200014155A (en) Method and apparatus for wireless communication of wireless node in wireless communication system
CN104837206B (en) A kind of GMR-1 3G terminal data receiving-transmitting system
CN108200605B (en) Data transmission method and device for base station
CN113141631B (en) Dual-connection data distribution method, device, equipment and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200807

Termination date: 20210719

CF01 Termination of patent right due to non-payment of annual fee