CN110324256A - A kind of Transmitting Data Stream control method - Google Patents

A kind of Transmitting Data Stream control method Download PDF

Info

Publication number
CN110324256A
CN110324256A CN201910393920.7A CN201910393920A CN110324256A CN 110324256 A CN110324256 A CN 110324256A CN 201910393920 A CN201910393920 A CN 201910393920A CN 110324256 A CN110324256 A CN 110324256A
Authority
CN
China
Prior art keywords
data
precision
sending
data segment
value
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
CN201910393920.7A
Other languages
Chinese (zh)
Other versions
CN110324256B (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.)
Guangdong Chanming Information Technology Co ltd
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 CN201910393920.7A priority Critical patent/CN110324256B/en
Publication of CN110324256A publication Critical patent/CN110324256A/en
Application granted granted Critical
Publication of CN110324256B publication Critical patent/CN110324256B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • 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/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • H04L47/2433Allocation of priorities to traffic types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers

Landscapes

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

Abstract

The invention patent relates to communication data transfer controls, and in particular to a kind of Transmitting Data Stream control method, including following operation: being divided into data segment for data, and each data segment is divided into multiple grades, setting accuracy grade threshold by data significance level;Use the ratio of congestion window and round-trip delay that the sending probability of each accuracy class data segment is calculated and updated according to the value as the best transmission rate estimated value of data;Selected data segment is successively sent according to the data transmitting mechanisms of TCP;The congestion condition and available bandwidth of estimation network are fed back according to ACK, congestion window are updated with this, and active accommodation data send precision, control the amount for the data transmitted.If network bandwidth improves, increase the precision for sending data;No person reduces the precision for sending data, it is ensured that the progress of transmission.

Description

Streaming data transmission control method
Technical Field
The invention relates to communication data transmission control, in particular to a streaming data transmission control method.
Background
At present, in the construction of an end-to-end data transmission service, a network mainly provides two types of service models: one is link-oriented, providing ordered and reliable data delivery services, typically represented by data transmission based on TCP (transmission control protocol); the other is connectionless oriented, offering out-of-order, unreliable data transfer delivery services, typically represented by UDP (user datagram protocol) based data transfer.
The TCP transmission protocol can establish an end-to-end bidirectional link through a complex design, provide an ordered and reliable streaming data transmission service, and dynamically adjust the sending rate of data according to the load and congestion conditions of the network.
The UDP protocol provides a very primitive and simple data transmission and listening interface, providing only best effort data transmission capabilities. If ordered and reliable data delivery is required, it needs to be implemented by the application itself. At the same time, the UDP protocol itself does not include a congestion control mechanism.
As networking applications continue to enrich, emerging applications (e.g., streaming media applications) place new demands on the service model for network transport that do not require fully reliable data delivery, but do not want data transport to be completely unreliable.
Disclosure of Invention
The invention aims to provide a streaming data transmission control method which can ensure the progress of data transmission by adjusting the sending precision of data.
In order to achieve the above object, the present application adopts a technical solution that is a streaming data transmission control method, including the following operations:
1) dividing data into data segments, dividing each data segment into a plurality of levels according to the importance degree of the data, and setting a precision level threshold;
2) using the ratio of the congestion window to the round trip delay as the optimal sending rate estimation value of the data, and calculating and updating the sending probability of the data segment of each precision grade according to the value;
3) sequentially sending the selected data segments according to a data sending mechanism of the TCP;
4) estimating the congestion state and available bandwidth of the network according to the ACK feedback, updating a congestion window according to the congestion state and the available bandwidth, and enabling the value of the congestion window to be less than or equal to the expected sending rate of the data segment and the round trip delay; wherein,
when the grade value of the data segment is less than the precision grade threshold value, the data is basic precision data;
when the grade value of the data segment is larger than or equal to the precision grade threshold value, the data is enhanced precision data;
when the selected basic precision data ACK (Acknowledgement character) is overtime, carrying out retransmission and updating the sending probability of the congestion window and the data segments of each precision grade;
when the selected enhanced precision data ACK is overtime, retransmission is not carried out, and only the sending probability of the congestion window and the data segments of each precision grade is updated;
and when the received ACK comprises the ECN mark, updating the congestion window and the sending probability of the data segment with each precision level.
The data that the application needs to stream is divided into a plurality of data levels, wherein one part needs reliable and ordered data delivery, and the other part can tolerate unreliable data delivery; applications expect the network to provide a "semi-reliable" transmission control protocol between the two. The protocol can ensure ordered and reliable delivery of reliable data on one hand, and can dynamically adjust the accuracy of unreliable data transmission according to the load condition of a link in a transmission path on the other hand.
The transmission protocol can provide higher-level transmission service than UDP, is simpler than TCP, can more fully utilize network bandwidth, and can better meet the data transmission requirement of application.
The ecn (explicit Congestion notification) is an explicit Congestion notification, which is a mechanism for some versions of TCP to let the intermediate device inform the sender of Congestion in the network in advance. The above-mentioned one data segment corresponds to the data segment (segment) in the TCP message.
Furthermore, in the data segment sending process, the maximum precision grading number, the precision grade threshold value and the expected sending rate of the tasks are negotiated and confirmed according to the preset flow by using the reserved fields in the TCP options of the SYN message and the ACK message. SYN, synchronization Sequence Numbers (syncronize Sequence Numbers), is a synchronization flag that is only valid when a TCP connection is established by a three-way handshake. It prompts the server of the TCP connection to check the sequence number, which is the initial sequence number of the initial end (typically the client) of the TCP connection. ACK is an Acknowledgement Number (Acknowledgement Number). The acknowledgement number contained in the acknowledgement number field in the TCP header is the next expected sequence number, and also indicates to the remote system that all data prior to that number has been successfully received.
Further, the preset process includes the following operations:
the negotiation of the maximum precision grading number, the precision grade threshold value and the expected sending rate occurs in a TCP link establishing stage; at this time, the sending end carries a P value and an RD _ MAX value in a TCP options field of the SYN, which respectively represent the maximum precision grading number and the maximum expected sending rate that the sending end can support; and PD _ DEFAULT and RD _ DEFAULT represent the maximum number of precision steps recommended by the transmitting end and the desired transmission rate;
the receiving end stores the received P, RD _ MAX, PD _ DEFAULT and RD _ DEFAULT values in the local; in the process of carrying out ACK on the SYN message, the receiving end confirms the required precision grade threshold value and the required expected sending rate to the sending end through TCP options of the ACK message;
wherein, the precision grade threshold value fed back by the receiving end is less than the maximum precision grading number announced by the transmitting end, and the expected transmitting speed is less than or equal to the RD _ MAX value announced by the transmitting end;
if the receiving end does not feed back, the transmitting end adopts PD _ DEFAULT and RD _ DEFAULT as the accuracy level threshold value and the expected transmission rate of the transmission task corresponding to the receiving end by DEFAULT. (for P, RD _ MAX, PD _ DEFAULT and RD _ DEFAULT, the sending end will send to the receiving end in the connection phase, at this time, the receiving end can feed back own PD, RD, and at other times, the receiving end can feed back new PD, RD again to achieve the purpose of updating the value.)
Furthermore, the receiving end makes up a plurality of consecutive data segments into data blocks, and decodes the data blocks as units, so that the loss of the enhanced precision data segments can be tolerated. Numbering the data segments according to a sending sequence when data are sent, and sending a value j of the sent data segment number from 0 to the data segments; when the receiving end receives the data segment, the receiving end can calculate that the number value of the data block corresponding to the data segment is k ═ j div P, wherein div represents integer division operation; the corresponding precision grade information is i ═ j mod P, where mod is the remainder operation.
If all data segments in the data block k have been received, decoding the data block;
and if the number value of the receiving end is smaller than k, decoding the data block which is completely received but not decoded in the data segment of the basic precision data.
Further, numbering and configuring all data segments to be transmitted; each data segment carries the number of the data segment and the precision grade number indicating the importance degree of the data segment; and the grade number and the data segment number are stored in a TCP options reserved field of the TCP data segment, wherein the data segment number is independent from the seq sequence number in the TCP message header.
Further, when the ratio of the congestion window to the network round trip delay is used as the optimal sending rate estimation value of the data, a first preset strategy is adopted to randomly select and transmit the data segment to be transmitted; the first preset strategy is as follows:
p is the maximum precision grading number;
PD is a precision grade threshold;
i is a grade number;
RD is the desired transmission rate;
for each data segment with the accuracy grade i, selecting the data segment with the data segment sending probability Pr (i);
assuming that the round trip delay of the current network is rtt and the size of the congestion control window is cwnd, the values of pr (i) are:
for a precision level of i < PD, pr (i) ═ 1;
for a precision rating of PD ≦ i ≦ P-1, Pr (i) 1-max (0, min (1, i-cwnd/rtt P/RD)).
The sender transmits data at a desired sending rate when bandwidth is sufficient, and dynamically reduces transmission accuracy when bandwidth is insufficient to maintain the same or similar transmission schedule while avoiding congestion.
The data accuracy or data accuracy level is characterized by the probability of data segment transmission. Pr (i) is a number between 0 and 1, indicating how likely a data segment with a level of accuracy i is to be selected for transmission. If the transmission rate is 1, the data segment representing the grade is transmitted by one hundred percent; if it is 0, all data segments indicating the level are not transmitted.
Further, the sending end judges whether packet loss occurs in the transmission process according to whether the feedback ACK and the TCP data segment confirmation number confirmed by the ACK are received or not;
if the ACK of the basic precision data is overtime, retransmitting the data segment, adjusting the size of a sliding window according to the original strategy of the TCP and updating the sending probability of the data segment of each precision grade;
if the ACK of the enhanced precision data is overtime, retransmission is not carried out, the size of the sliding window is adjusted according to a second preset strategy, and the sending probability of each precision grade data segment is updated at the same time;
and if the ACK received by the sending end carries the ECN mark, adjusting the size of the sliding window according to the original strategy of the TCP, and updating the sending probability of the data segments of each precision grade according to the new value of the sliding window.
When some versions of TCP protocols receive a plurality of ACKs with the same acknowledgement number, the TCP protocols also consider that packet loss occurs in the network and can actively retransmit the packet; meanwhile, some versions of TCP also introduce SACK and other mechanisms. Under the conditions, the sending end adjusts the size of the sliding window according to the original strategy of the corresponding version TCP and updates the sending probability of the data segment with each precision level.
Further, the second preset strategy is as follows: the adjusted congestion control window size is equal to the congestion control window size before adjustment-1.
Further, for the data block which is already received and not yet decoded by the basic precision data segment, when the time for receiving the basic precision data segment exceeds the preset value time T, the data block is immediately decoded.
Further, if the network intermediate device supports strict multi-priority queue scheduling, the number of supported priorities is set to be PS, and the data segment of the basic precision data carries the highest priority 0; the data segments of the enhanced precision data with precision grade values of PD, PD +1, …, min (P-1, PD + PS-1) carry priority values of 1, 2, 3, …, PS-1 respectively, and the data segments of the other precision grades carry priority values of PS-1.
The invention comprises at least one of the following beneficial effects:
the sending precision of the data can be actively adjusted according to the fed back link available bandwidth information, and the quantity of the data to be transmitted is controlled. If the network bandwidth becomes better, the accuracy of data transmission is increased; otherwise, the accuracy of the data transmission is reduced, so that the amount of data to be transmitted is reduced, and the transmission progress is ensured.
Data is divided into two types requiring reliable transmission and not requiring reliable transmission according to the precision level. When packet loss occurs in transmission, only the lost reliable data is retransmitted, so that the reduction of the effective throughput rate of the network is avoided, and the transmission protocol is not blocked by the packet loss of the unreliable data.
The invention is further described with reference to the following figures and detailed description. Additional aspects and advantages of the invention will be set forth in part in the description which follows and, in part, will be obvious from the description. Or may be learned by practice of the invention.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, are included to assist in understanding the invention, and are included to explain the invention and their equivalents and not limit it unduly. In the drawings:
fig. 1 is a schematic diagram for explaining a streaming data transmission control method in an embodiment;
FIG. 2 is a diagram illustrating data segment, data block transmission, and numbering order in an embodiment;
Detailed Description
The invention will be described more fully hereinafter with reference to the accompanying drawings. Those skilled in the art will be able to implement the invention based on these teachings. Before describing the present invention in conjunction with fig. 1 and 2, it should be particularly noted that:
the technical solutions and features provided in the present invention in the respective sections including the following description may be combined with each other without conflict.
Moreover, the embodiments of the present invention described in the following description are generally only examples of a part of the present invention, and not all examples. Therefore, all other embodiments obtained by a person of ordinary skill in the art based on the embodiments of the present invention without any creative effort shall fall within the protection scope of the present invention.
With respect to terms and units in the present invention. The term "comprises" and any variations thereof in the description and claims of this invention and the related sections are intended to cover non-exclusive inclusions.
Referring to fig. 1 and 2, the present embodiment employs a bandwidth-aware hierarchical multi-precision data semi-reliable streaming data transmission control method. The control method can be realized by expanding the existing TCP transmission protocol (supporting the expansion on different versions of TCP). The method is implemented by three types of participants: the system comprises a data sending end, a data receiving end and one or more network intermediate forwarding devices. The transmission control scheme is completed by cooperation of the transmitting end and the receiving end.
The network service model adopted is as follows:
in this control method, the requirements of each data transfer task are described by the triplet < P, PD, RD >. P is the maximum number of precision stages, PD is the precision level threshold, and RD is the optimal sending rate of data. Each data to be transmitted by the application can be divided into 0,1, …, P-1 with P precision levels (the lower the grade value is, the more important the higher the precision level is); the data segment with the precision grade value smaller than the PD needs reliable and ordered data delivery, and is called as basic precision data; the data segment with the precision grade value larger than or equal to the PD only needs best-effort data transmission service, which is called enhanced precision data; the application's desired data transmission rate is referred to as RD, which is the desired transmission rate. The values of < P, PD, RD > are negotiated by the data sending end and the receiving end in the process of establishing the link or sending the data.
As shown in fig. 2, one row is a data block, and k, k +1, … are data block numbers. Each row contains a plurality of data segments, and j is a data segment number. A data segment is placed into exactly one TCP data segment for transmission.
I.e., k is the data block number and j is the data segment number. Each data block contains at most P data segments. When decoding, the more complete the data segment received in a data block, the more accurate the data obtained by decoding. i and j will be carried in the data segment for transmission. For the receiving end, the k value corresponding to the data segment can be back-calculated by j and P which is notified to the receiving end by the transmitting end when the link is established.
In the scheme, data to be transmitted is uniformly split into a plurality of data blocks, and each data block is encoded into P precision levels; and packing the data with the same precision grade in each data block into the same data segment, and numbering and transmitting layer by layer. One data segment corresponds to one packet in a TCP transmission, and the size of the data segment is determined according to the Maximum Segment Size (MSS) of the TCP in the network. The number in the data segment adopts a circular number mode and is independent of the data segment sequence number value seq of the TCP. And after receiving the data segments, the receiving end decodes and recovers the content of each data block. If some precision hierarchical data in a data block is missing (i.e. data insufficiency), the receiving end can still perform decoding recovery, however, the decoding result may be inaccurate. For each data block, the more complete the data segment received by the receiving end, the more accurate the data obtained by decoding; and, the data segment having the lower rank value contributes more to the decoding accuracy.
In the face of the transmission requirement, a network transmission link similar to TCP is established between the sending end and the receiving end, and data transmission is carried out in a streaming way; and disconnecting the link after the transmission is finished.
In the link establishment process, the sending end and the receiving end negotiate and confirm the < P, PD, RD > parameters of the transmission task. During the transmission process, the receiving end can update the parameter.
And setting the congestion window size of the current sending end as cwnd and the network round-trip delay value as rtt.
Referring to fig. 1, the steps of the method may be performed as follows:
1. the sending end uses the ratio of cwnd to rtt as the optimal sending rate estimation value of data, and determines which precision data segments are selected for transmission according to the optimal sending rate estimation value, and the specific method is to adjust the value of sending probability Pr (i) of each precision grade data segment, wherein i is 0,1, … and P-1; for the data segment with the accuracy grade of i, the sending end randomly selects whether to send or not according to the probability Pr (i);
2. the sending end sends the selected data segments in sequence according to the data sending mechanism of the TCP, and the receiving end confirms the received data segments;
3. the sending end estimates the congestion state and the available bandwidth of the network according to the ACK feedback, so as to update the congestion window cwnd and ensure that the value of cwnd does not exceed the product of the expected sending rate RD and the round-trip delay rtt;
if the selected basic precision data ACK is overtime, the transmitting end retransmits and updates cwnd, Pr (i); if the selected enhanced precision data ACK is overtime, the transmitting end does not retransmit and only updates cwnd and Pr (i); cwnd and pr (i) are updated if ECN flag is included in the received ACK.
In implementation, the method can be modified and expanded based on the existing TCP protocols of various versions, so that corresponding control design is realized, and complete redesign can also be performed. The implementation scheme based on the existing TCP for extension can be compatible with the existing network equipment and can be realized by multiplexing the existing TCP codes, thereby being taken as a preferred embodiment of the invention.
In the method, in the process of link establishment (or data transmission), a sending end and a receiving end negotiate and confirm < P, PD, RD > parameters of a task according to a preset flow by using a SYN message (or a normal data message, namely a data message when data is sent after TCP link establishment is finished, except that negotiation configuration of related parameters is carried out in the initial stage of link establishment, the negotiation can be carried out again in the process of data transmission.
The preset flow here is:
the negotiation of < P, PD, RD > occurs in the TCP link establishment/handshake phase, at this time, the sending end carries a P value and an RD _ MAX value in the TCP options field of SYN, which respectively represent the maximum precision grading number and the maximum sending speed that the sending end can support; and PD _ DEFAULT and RD _ DEFAULT indicate a PD value and RD value recommended to be used by the transmitting end. The receiving end stores the P, RD _ MAX, PD _ DEFAULT, RD _ DEFAULT values received locally.
And in the process of carrying out ACK on the SYN message, the receiving end confirms the needed PD value and RD value to the sending end through the TCP options of the ACK message. The PD receiving the feedback must be smaller than the P value advertised by the sender, and the RD value is not higher than the RD _ MAX value advertised by the sender.
If the receiving end does not feed back, the sending end adopts PD _ DEFAULT and RD _ DEFAULT as the PD and RD values of the transmission task corresponding to the receiving end by DEFAULT.
In the data segment sending process, the receiving segment can also update the PD and RD, but does not guarantee certain success. At this time, the receiving end piggybacks new PD values and RD values in TCP options of M consecutive ACK packets to the transmitting end, and the value of M is set according to the network condition, with a typical value of 5. And after receiving the data, the sending end updates the PD value and the RD value corresponding to the receiving node.
The design of using reserved fields in TCP options to transmit relevant information is as follows:
TABLE 1
And the sending end numbers and configures all the data segments to be transmitted. Each data segment carries a data segment number j (this number is independent of the seq sequence number in the TCP header). j is stored in the TCP options reserved field of the TCP data segment.
The sending end randomly selects the data segments to be transmitted sequentially through a first strategy according to the cwnd value of the current link and transmits the data segments; the goal of the first strategy is that the protocol transmits data at rate RD when bandwidth is sufficient, and dynamically reduces transmission accuracy when bandwidth is insufficient to maintain the same or similar transmission schedule while avoiding congestion. The adopted method is random packet loss, and for each data segment with the accuracy grade of i, the probability of Pr (i) is selected. Assuming that the round trip delay of the current network is rtt and the congestion control window size is cwnd, then the values of pr (i) are as follows:
for a precision level of i < PD, pr (i) ═ 1;
for a precision rating of PD ≦ i ≦ P-1, Pr (i) 1-max (0, min (1, i-cwnd/rtt P/RD)).
And the sending end judges whether packet loss occurs in the transmission process according to whether the ACK fed back by the receiving end is received or not and the TCP data segment confirmation number confirmed by the ACK. If the ACK of the basic precision data segment is overtime, retransmitting the data segment, and adjusting the size of a sliding window according to the original strategy of the TCP; if the enhanced accuracy ACK is overtime, retransmission is not carried out, and the size of the sliding window is adjusted according to a second strategy; and if the received ACK carries the ECN mark or in other cases, adjusting the size of the sliding window according to the original strategy of the TCP. The aforementioned second strategy is cwnd ═ cwnd-1.
When a receiving end receives a data segment j, the number value k of a data block corresponding to the data segment is j div P, wherein the number value k represents integer division operation; the corresponding precision grade information is i ═ j mod P, where mod is the remainder operation.
If all data segments in the data block k have been received, decoding the data block; and if the serial number value of the receiving end is smaller than k, and the data segments of the basic precision data are all received as the data blocks which are not decoded, decoding the data blocks.
And for the data block which is completely received by the basic precision data segment but is not decoded, if the time for completely receiving the basic precision data exceeds T (T can be regarded as rtt), immediately decoding.
If the network intermediary supports strict multi-priority queue scheduling. Assuming that the number of supported priorities is PS, then the data segment of the basic precision data carries the highest priority 0; the data segments of the enhanced precision data with precision grade values of PD, PD +1, …, min (P-1, PD + PS-1) carry priority values of 1, 2, 3, …, PS-1 respectively, and the data segments of the other precision grades carry priority values of PS-1.
By adopting the streaming data transmission control method of the embodiment, the sending end can actively adjust the sending precision of the data according to the link available bandwidth information fed back by the receiving end, and control the amount of the data to be transmitted. If the network bandwidth becomes better, the accuracy of data transmission is increased; otherwise, the accuracy of the data transmission is reduced, so that the amount of data to be transmitted is reduced, and the transmission progress is ensured. Data is divided into two types requiring reliable transmission and not requiring reliable transmission according to the precision level. When packet loss occurs in transmission, only the lost reliable data is retransmitted, so that the reduction of the effective throughput rate is avoided, and the transmission protocol is not blocked by the packet loss of the unreliable data.
The contents of the present invention have been explained above. Those skilled in the art will be able to implement the invention based on these teachings. All other embodiments, which can be derived by a person skilled in the art from the above description without inventive step, shall fall within the scope of protection of the present invention.

Claims (10)

1. A streaming data transmission control method, comprising the operations of:
1) dividing data into data segments, dividing each data segment into a plurality of levels according to the importance degree of the data, and setting a precision level threshold;
2) using the ratio of the congestion window to the round trip delay as the optimal sending rate estimation value of the data, and calculating and updating the sending probability of the data segment of each precision grade according to the value;
3) sequentially sending the selected data segments according to a data sending mechanism of the TCP;
4) estimating the congestion state and available bandwidth of the network according to the ACK feedback, updating a congestion window according to the congestion state and the available bandwidth, and enabling the value of the congestion window to be less than or equal to the expected sending rate of the data segment and the round trip delay; wherein,
when the grade value of the data segment is less than the precision grade threshold value, the data is basic precision data;
when the grade value of the data segment is larger than or equal to the precision grade threshold value, the data is enhanced precision data;
when the selected basic precision data ACK is overtime, retransmission is carried out, and the sending probability of the congestion window and the data segments of each precision grade is updated;
when the selected enhanced precision data ACK is overtime, retransmission is not carried out, and only the sending probability of the congestion window and the data segments of each precision grade is updated;
and when the received ACK comprises the ECN mark, updating the congestion window and the sending probability of the data segment with each precision level.
2. The streaming data transmission control method according to claim 1, wherein during the data segment transmission process, the reserved fields in the TCP options of the SYN packet and the ACK packet are used to negotiate and confirm the maximum precision classification number, the precision classification threshold value, and the expected transmission rate of the task according to a preset flow.
3. The streaming data transmission control method according to claim 2, wherein the predetermined procedure comprises the following operations:
the negotiation of the maximum precision grading number, the precision grade threshold value and the expected sending rate occurs in a TCP link establishing stage; at this time, the sending end carries a P value and an RD _ MAX value in a TCP options field of the SYN, which respectively represent the maximum precision grading number and the maximum expected sending rate that the sending end can support; and PD _ DEFAULT and RD _ DEFAULT represent the maximum number of precision steps recommended by the transmitting end and the desired transmission rate;
the receiving end stores the received P, RD _ MAX, PD _ DEFAULT and RD _ DEFAULT values in the local; in the process of carrying out ACK on the SYN message, the receiving end confirms the required precision level threshold value and the required expected sending rate to the sending end through TCPoptions of the ACK message;
wherein, the precision grade threshold value fed back by the receiving end is less than the maximum precision grading number announced by the transmitting end, and the expected transmitting speed is less than or equal to the RD _ MAX value announced by the transmitting end;
if the receiving end does not feed back, the transmitting end adopts PD _ DEFAULT and RD _ DEFAULT as the accuracy level threshold value and the expected transmission rate of the transmission task corresponding to the receiving end by DEFAULT.
4. The streaming data transmission control method according to claim 1, wherein the receiving end composes a plurality of consecutive data segments into a data block, and decodes in units of data blocks; numbering the data segments according to a sending sequence when data are sent, and taking a value j of the sent data segment number; when the receiving end receives the data segment, the receiving end can calculate that the number value of the data block corresponding to the data segment is k ═ j div P, wherein div represents integer division operation; the corresponding precision grade information is i ═ j mod P, where mod is the remainder operation.
If all data segments in the data block k have been received, decoding the data block;
and if the number value of the receiving end is smaller than k, decoding the data block which is completely received but not decoded in the data segment of the basic precision data.
5. The streaming data transmission control method according to claim 4, wherein the receiving end performs decoding immediately when a time for which the base-precision data is received exceeds a predetermined time T for a data block for which the base-precision data is received and not yet decoded.
6. The streaming data transmission control method according to claim 1, wherein when a ratio of a congestion window to a network round trip delay is used as an optimal sending rate estimation value of data, a first preset strategy is adopted to randomly select and transmit a data segment to be transmitted; the first preset strategy is as follows:
p is the maximum precision grading number;
PD is a precision grade threshold;
i is a grade number;
RD is the desired transmission rate;
for each data segment with the accuracy grade i, selecting the data segment with the data segment sending probability Pr (i);
assuming that the round trip delay of the current network is rtt and the size of the congestion control window is cwnd, the values of pr (i) are:
for a precision level of i < PD, pr (i) ═ 1;
for a precision rating of PD ≦ i ≦ P-1, Pr (i) 1-max (0, min (1, i-cwnd/rtt P/RD)).
7. The streaming data transmission control method according to claim 1, wherein the sending end determines whether packet loss occurs in the transmission process according to whether the feedback ACK and the TCP data segment acknowledgment number acknowledged by the ACK are received;
if the ACK of the basic precision data is overtime, retransmitting the data segment, adjusting the size of a sliding window according to the original strategy of the TCP and updating the sending probability of the data segment of each precision grade;
if the ACK of the enhanced precision data is overtime, retransmission is not carried out, the size of the sliding window is adjusted according to a second preset strategy, and the sending probability of each precision grade data segment is updated at the same time;
and if the ACK received by the sending end carries the ECN mark, adjusting the size of the sliding window according to the original strategy of the TCP, and updating the sending probability of the data segments of each precision grade according to the new value of the sliding window.
8. The streaming data transmission control method of claim 7, wherein the second preset policy is: the adjusted congestion control window size is equal to the congestion control window size before adjustment-1.
9. The streaming data transmission control method according to claim 1, wherein all data segments to be transmitted are numbered and configured; each data segment carries the number of the data segment and the precision grade number indicating the importance degree of the data segment; and the grade number and the data segment number are stored in a TCP options reserved field of the TCP data segment, wherein the data segment number is independent from the seq sequence number in the TCP message header.
10. The streaming data transmission control method according to claim 1, wherein if the network intermediate device supports strict multi-priority queue scheduling, the supported number of priorities is set to PS, and the data segment of the basic precision data carries the highest priority 0; the data segments of the enhanced precision data with precision grade values of PD, PD +1, …, min (P-1, PD + PS-1) carry priority values of 1, 2, 3, …, PS-1 respectively, and the data segments of the other precision grades carry priority values of PS-1.
CN201910393920.7A 2019-05-13 2019-05-13 Streaming data transmission control method Active CN110324256B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910393920.7A CN110324256B (en) 2019-05-13 2019-05-13 Streaming data transmission control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910393920.7A CN110324256B (en) 2019-05-13 2019-05-13 Streaming data transmission control method

Publications (2)

Publication Number Publication Date
CN110324256A true CN110324256A (en) 2019-10-11
CN110324256B CN110324256B (en) 2022-10-14

Family

ID=68119076

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910393920.7A Active CN110324256B (en) 2019-05-13 2019-05-13 Streaming data transmission control method

Country Status (1)

Country Link
CN (1) CN110324256B (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110943803A (en) * 2019-12-09 2020-03-31 西南交通大学 Data transmission control method based on erasure coding
CN110958078A (en) * 2019-11-01 2020-04-03 南通先进通信技术研究院有限公司 Low-delay stream code packet transmission method for high-loss link
CN111163013A (en) * 2020-03-02 2020-05-15 西南交通大学 Semi-reliable data transmission congestion control method based on UDP
CN111614572A (en) * 2020-04-28 2020-09-01 网络通信与安全紫金山实验室 TCP network congestion control method based on RTT
CN113300967A (en) * 2021-02-05 2021-08-24 阿里巴巴集团控股有限公司 RDMA (remote direct memory Access) network transmission method and device and RDMA network communication system
CN114238219A (en) * 2021-12-10 2022-03-25 广西电网有限责任公司电力科学研究院 Interactive dynamic collection method and system for daily statistical report of transmission, transformation and distribution

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1511396A (en) * 2001-04-04 2004-07-07 ����ɭ�绰�ɷ����޹�˾ Data flow control method
US20050013246A1 (en) * 2003-03-25 2005-01-20 Motoharu Miyake Communication device, transmission control method, and program product
US20080181109A1 (en) * 2007-01-24 2008-07-31 Ntt Docomo, Inc. Communication Terminal, Congestion Control Method, and Congestion Control Program
CN103929370A (en) * 2013-01-11 2014-07-16 中国科学院声学研究所 TCP congestion control method for bandwidth reservation network
US20150236966A1 (en) * 2014-02-18 2015-08-20 Alcatel-Lucent Usa Inc. Control of congestion window size of an information transmission connection

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1511396A (en) * 2001-04-04 2004-07-07 ����ɭ�绰�ɷ����޹�˾ Data flow control method
US20050013246A1 (en) * 2003-03-25 2005-01-20 Motoharu Miyake Communication device, transmission control method, and program product
US20080181109A1 (en) * 2007-01-24 2008-07-31 Ntt Docomo, Inc. Communication Terminal, Congestion Control Method, and Congestion Control Program
CN103929370A (en) * 2013-01-11 2014-07-16 中国科学院声学研究所 TCP congestion control method for bandwidth reservation network
US20150236966A1 (en) * 2014-02-18 2015-08-20 Alcatel-Lucent Usa Inc. Control of congestion window size of an information transmission connection

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110958078A (en) * 2019-11-01 2020-04-03 南通先进通信技术研究院有限公司 Low-delay stream code packet transmission method for high-loss link
CN110958078B (en) * 2019-11-01 2022-06-24 南通先进通信技术研究院有限公司 Low-delay stream code packet transmission method for high-loss link
CN110943803A (en) * 2019-12-09 2020-03-31 西南交通大学 Data transmission control method based on erasure coding
CN110943803B (en) * 2019-12-09 2021-10-08 西南交通大学 Data transmission control method based on erasure coding
CN111163013A (en) * 2020-03-02 2020-05-15 西南交通大学 Semi-reliable data transmission congestion control method based on UDP
CN111163013B (en) * 2020-03-02 2022-04-29 西南交通大学 Semi-reliable data transmission congestion control method based on UDP
CN111614572A (en) * 2020-04-28 2020-09-01 网络通信与安全紫金山实验室 TCP network congestion control method based on RTT
CN113300967A (en) * 2021-02-05 2021-08-24 阿里巴巴集团控股有限公司 RDMA (remote direct memory Access) network transmission method and device and RDMA network communication system
CN113300967B (en) * 2021-02-05 2024-03-12 阿里巴巴集团控股有限公司 RDMA network transmission method, RDMA network transmission device and RDMA network communication system
CN114238219A (en) * 2021-12-10 2022-03-25 广西电网有限责任公司电力科学研究院 Interactive dynamic collection method and system for daily statistical report of transmission, transformation and distribution

Also Published As

Publication number Publication date
CN110324256B (en) 2022-10-14

Similar Documents

Publication Publication Date Title
CN110324256B (en) Streaming data transmission control method
KR100785293B1 (en) System and Method for TCP Congestion Control Using Multiple TCP ACKs
EP1568180B1 (en) A method for enhancing transmission quality of streaming media
US20080101290A1 (en) Apparatus for Arq Controlling in Wireless Portable Internet System and Method Thereof
EP1797663B1 (en) Data unit sender and data unit relay device
US20170149675A1 (en) Packet retransmission method and apparatus
JP4878391B2 (en) Scheduling and queue management with adaptive queue latency
US6650623B1 (en) Adaptive link layer for point to multipoint communication system
JP4654926B2 (en) COMMUNICATION SYSTEM, COMMUNICATION DEVICE, AND CONgestion Control Method Used In Them
JP4112277B2 (en) Error recovery system and method using NAK (negative response)
KR101081039B1 (en) Delaying retransmission requests in multi-carrier systems
US8085669B2 (en) Session relay device and session relay method
EP1708400B1 (en) Loss tolerant transmission control protocol
CN107979449A (en) A kind of data transmission method and device
CN111193577B (en) Network system communication method and communication device using transmission timeout
GB2437349A (en) Optimised packet data transmission protocol in a communication system employing a transmission window
JP2005509370A (en) Improving communication efficiency and performance in unreliable communication environments
WO2008049018A2 (en) Method and system for traffic flow control in a communication network
KR100913897B1 (en) Method for controlling congestion of TCP for reducing the number of retransmission timeout
US20140369189A1 (en) Method of controlling packet transmission in network system and network system transmitting packet using pseudo-tcp agent
JP4531302B2 (en) Packet relay apparatus and method thereof
JP2006237968A (en) System and method for communication
EP1733527B1 (en) Technique for handling outdated information units
Liu et al. Mpmtp-ar: Multipath message transport protocol based on application-level relay
EP3389206B1 (en) Multipath error correction

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231007

Address after: 518000 1104, Building A, Zhiyun Industrial Park, No. 13, Huaxing Road, Henglang Community, Longhua District, Shenzhen, Guangdong Province

Patentee after: Shenzhen Hongyue Information Technology Co.,Ltd.

Address before: 610031 No. 111, North Section of Second Ring Road, Chengdu City, Sichuan Province

Patentee before: SOUTHWEST JIAOTONG University

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231213

Address after: Room 1613-1616, 16th Floor, Block 2, Yuexiu Xinghui Yunjin Plaza, No. 84 Nanhai Avenue North, Guicheng Street, Nanhai District, Foshan City, Guangdong Province, 528000 (Residence Declaration)

Patentee after: Guangdong Chanming Information Technology Co.,Ltd.

Address before: 518000 1104, Building A, Zhiyun Industrial Park, No. 13, Huaxing Road, Henglang Community, Longhua District, Shenzhen, Guangdong Province

Patentee before: Shenzhen Hongyue Information Technology Co.,Ltd.