CN115695582A - Low-delay transmission control method, receiving terminal and transmitting terminal - Google Patents

Low-delay transmission control method, receiving terminal and transmitting terminal Download PDF

Info

Publication number
CN115695582A
CN115695582A CN202211347682.4A CN202211347682A CN115695582A CN 115695582 A CN115695582 A CN 115695582A CN 202211347682 A CN202211347682 A CN 202211347682A CN 115695582 A CN115695582 A CN 115695582A
Authority
CN
China
Prior art keywords
data
byte
fragment
fragment data
frame
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.)
Pending
Application number
CN202211347682.4A
Other languages
Chinese (zh)
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.)
Tianyi Shilian Technology Co ltd
Original Assignee
Tianyi Digital Life Technology Co Ltd
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 Tianyi Digital Life Technology Co Ltd filed Critical Tianyi Digital Life Technology Co Ltd
Priority to CN202211347682.4A priority Critical patent/CN115695582A/en
Publication of CN115695582A publication Critical patent/CN115695582A/en
Priority to PCT/CN2023/127012 priority patent/WO2024093812A1/en
Pending legal-status Critical Current

Links

Images

Abstract

The invention discloses a low-delay transmission control method, a receiving terminal and a sending terminal, which are used for packaging and transmitting transmitted data in a three-section data transmission protocol comprising a data head, a fragment data head and data contents in a fragment mode, discarding fragment data of which the transmission time exceeds the maximum buffer time range, outputting frame data of which the transmission time is in the maximum buffer time range and forms a complete data frame with data in a temporary storage area to an application layer, temporarily storing fragment data of which the transmission time is in the maximum buffer time range but does not form the complete data frame into the temporary storage area, realizing selective packet loss of the data, ensuring low-delay transmission of key data, avoiding the problem of further deterioration of a network state caused by congestion control, and solving the technical problem that when the network state at any end of a whole communication link from the receiving terminal to the sending terminal is severe, the uplink bandwidth at the sending terminal side is further deteriorated by the congestion control.

Description

Low-delay transmission control method, receiving terminal and transmitting terminal
Technical Field
The present invention relates to the field of data transmission technologies, and in particular, to a low latency transmission control method, a receiving terminal, and a sending terminal.
Background
In a video monitoring system of a house keeper, a mobile phone terminal (which can be regarded as a receiving terminal) can directly check real-time video of a camera (which can be regarded as a sending terminal), historical video stored in a memory card of the camera, voice talkback and the like, a large amount of communication data can be transmitted between the two terminals, and under the condition of ensuring that user experience is unchanged, the consumption cost of a bandwidth and a service end is saved, the P2P technology can be usually used for enabling the mobile phone terminal and the camera to directly connect for communication through a public network, so that the resource consumption of the service end is reduced. P2P technology typically uses UDP transport protocols, which require reliable transport protocols for proper control of the transmission of data. The video monitoring data has real-time requirements and variable network conditions of a mobile phone terminal, and the uploading broadband of a camera is low and often faces the situation of high uploading bandwidth requirements, when the network conditions of any end on the whole communication link from the mobile phone terminal to the camera are severe, the uplink broadband of the camera side can be further deteriorated due to congestion control, so that how to meet the condition that the network available bandwidth condition of any end is severe, a user can still meet the sensory experience to the maximum extent without further deteriorating the network bandwidth condition by checking the real-time video of the camera, and the technical problem to be solved by technical personnel in the field is urgently needed.
Disclosure of Invention
The invention provides a low-delay transmission control method, a receiving terminal and a sending terminal, which solve the technical problem that when the network condition at any end on the whole communication link from the receiving terminal to the sending terminal is severe, the uplink bandwidth at the sending terminal side is easy to further deteriorate due to congestion control.
In view of this, a first aspect of the present invention provides a method for low latency transmission control, including:
the method comprises the steps that a receiving terminal establishes a three-section type data transmission protocol, and a real-time data request is sent to a sending terminal after initialization is completed, wherein the three-section type data transmission protocol comprises a data header, a fragment data header and data contents;
the receiving terminal receives a request result returned by the sending terminal in response to the real-time data request, wherein the request result comprises the maximum cache time range of the sending terminal and the real-time data returned by the fragmentation;
the receiving terminal discards the fragment data of which the transmission time exceeds the maximum caching time range according to the request result, outputs frame data of which the transmission time is within the maximum caching time range and which forms a complete data frame with the data in the temporary storage area to the application layer, and temporarily stores the fragment data of which the transmission time is within the maximum caching time range and which does not form the complete data frame into the temporary storage area.
Optionally, the receiving terminal discards the fragmented data whose transmission time exceeds the maximum buffering time range according to the request result, outputs frame data whose transmission time is within the maximum buffering time range and forms a complete data frame with the data in the temporary storage area to the application layer, and temporarily stores the fragmented data whose transmission time is within the maximum buffering time range but does not form a complete data frame to the temporary storage area, including:
the receiving terminal compares the time stamp of the arriving fragment data with the time stamp of the starting fragment data, if the time stamp exceeds the maximum cache time range, the starting fragment data is discarded, and the earliest data of the temporary storage area is used as a new starting fragment data sequence number;
if the maximum caching time range is not exceeded, the receiving terminal compares the arrived fragment data serial number with the starting fragment data serial number;
if the sequence number of the arrived fragment data is earlier than the sequence number of the starting point data, discarding the arrived fragment data, wherein the sequence number of the fragment data is a two-byte unsigned integer value;
if the sequence number of the arrived fragment data is equal to the sequence number of the starting fragment and forms a frame of data with the data of the temporary storage area, outputting the data forming a frame to the application layer, and if the data of the temporary storage area does not form a frame of data, putting the arrived fragment data into the temporary storage area;
if the sequence number of the arrived fragment data is later than that of the starting data, the arrived fragment data is put into the temporary storage area in sequence.
Optionally, the receiving terminal discards the fragmented data whose transmission time exceeds the maximum buffering time range according to the request result, outputs frame data whose transmission time is within the maximum buffering time range and forms a complete data frame with the data in the temporary storage area to the application layer, and temporarily stores the fragmented data whose transmission time is within the maximum buffering time range but does not form a complete data frame to the temporary storage area, and further includes:
the receiving terminal judges the lost fragment data and the corresponding packet loss timestamp according to the sequence number of the arrived fragment data and the sequence number of the starting point fragment data;
the receiving terminal judges whether the packet loss time stamp of the lost fragment data is in the maximum cache time range or not and whether the retransmission times are less than 3 or not, if the packet loss time stamp of the lost fragment data is in the maximum cache time range and the retransmission times are less than 3, the receiving terminal requests the transmitting terminal to retransmit the lost fragment data and update the time stamp of the lost fragment data;
and the receiving terminal receives the lost fragment data retransmitted by the sending terminal, judges whether the retransmitted lost fragment data and the data in the temporary storage region form a frame or not, if so, outputs the data forming the frame to the application layer, and otherwise, stores the retransmitted lost fragment data in the temporary storage region.
Optionally, a data header of the three-segment data transmission protocol has 8 bytes, where the protocol header occupies the first two bytes, the third byte is a type word, the fourth byte is a method word, the fifth byte and the sixth byte are data lengths, the seventh byte is an encryption manner, and the eighth byte is a retransmission data identifier.
Optionally, the fragmented data header of the three-segment data transmission protocol has 14 bytes, where the first two bytes are channel, the third byte and the fourth byte are sequence numbers, the fifth byte is frame type, the sixth byte is media type, the seventh byte to the tenth byte are frame length, and the eleventh byte to the fourteenth byte are time stamps.
A second aspect of the present application provides a receiving terminal for low latency transmission control, including:
the initialization module is used for establishing a three-section type data transmission protocol and sending a real-time data request to the sending terminal after initialization is completed, wherein the three-section type data transmission protocol comprises a data header, a fragment data header and data contents;
the data receiving module is used for receiving a request result returned by the sending terminal in response to the real-time data request, wherein the request result comprises the maximum cache time range of the sending terminal and the real-time data returned by the fragments;
and the selective packet loss output module is used for discarding the fragmented data of which the transmission time exceeds the maximum caching time range according to the request result, outputting frame data of which the transmission time is in the maximum caching time range and forms a complete data frame with the data in the temporary storage area to the application layer, and temporarily storing the fragmented data of which the transmission time is in the maximum caching time range and does not form the complete data frame to the temporary storage area.
Optionally, the selective packet loss output module is specifically configured to:
comparing the time stamp of the arrived fragment data with the time stamp of the starting fragment data, if the time stamp exceeds the maximum cache time range, discarding the starting fragment data, and taking the earliest data of the temporary storage area as a new starting fragment data sequence number;
if the maximum cache time range is not exceeded, comparing the sequence number of the arrived fragment data with the sequence number of the starting fragment data;
if the sequence number of the arrived fragment data is earlier than the sequence number of the starting point data, discarding the arrived fragment data, wherein the sequence number of the fragment data is a two-byte unsigned integer value;
if the sequence number of the arrived fragment data is equal to the sequence number of the starting fragment and forms a frame of data with the data of the temporary storage area, outputting the data forming a frame to the application layer, and if the data of the temporary storage area does not form a frame of data, putting the arrived fragment data into the temporary storage area;
if the sequence number of the arrived fragment data is later than the sequence number of the start point data, the arrived fragment data is put into the temporary storage area in sequence.
Optionally, the selective packet loss output module is further configured to:
judging lost fragment data and a corresponding packet loss timestamp according to the sequence number of the arrived fragment data and the sequence number of the starting point fragment data;
judging whether the packet loss time stamp of the lost fragment data is in the maximum cache time range or not and whether the retransmission times are less than 3 or not, if the packet loss time stamp of the lost fragment data is in the maximum cache time range and the retransmission times are less than 3, requesting the retransmission of the lost fragment data to the sending terminal and updating the time stamp of the lost fragment data;
and receiving lost fragment data retransmitted by the sending terminal, judging whether the retransmitted lost fragment data and the data in the temporary storage region form a frame, if so, outputting the data forming the frame to an application layer, and otherwise, storing the retransmitted lost fragment data in the temporary storage region.
Optionally, a data header of the three-segment data transmission protocol has 8 bytes, where the protocol header occupies the first two bytes, the third byte is a type word, the fourth byte is a method word, the fifth byte and the sixth byte are data lengths, the seventh byte is an encryption mode, and the eighth byte is a retransmission data identifier;
the fragment data head of the three-section data transmission protocol has 14 bytes, wherein the first two bytes are channels, the third byte and the fourth byte are serial numbers, the fifth byte is a frame type, the sixth byte is a media type, the seventh byte to the tenth byte are frame lengths, and the eleventh byte to the fourteenth byte are timestamps.
A third aspect of the present application provides a transmitting terminal corresponding to a receiving terminal controlled by any one of the low latency transmissions of the second aspect, including:
and the response request module is used for responding to the real-time data request of the receiving terminal, sending the maximum cache time range of the sending terminal to the receiving terminal, and packaging the real-time data according to a three-section data transmission protocol and then feeding the real-time data back to the receiving terminal in a fragmentation manner.
It can be seen from the above technical solutions that the low-latency transmission control method, the receiving terminal and the sending terminal provided by the present invention have the following advantages:
the invention provides a low-delay transmission control method, which encapsulates and transmits transmitted data in a fragmentation mode by a three-stage data transmission protocol comprising a data head, a fragmentation data head and data contents, takes the maximum buffer time range of a sending terminal as a packet loss basis, discards the fragmentation data of which the transmission time exceeds the maximum buffer time range, outputs frame data of which the transmission time is in the maximum buffer time range and forms a complete data frame with data in a temporary storage area to an application layer, temporarily stores the fragmentation data of which the transmission time is in the maximum buffer time range but does not form the complete data frame to the temporary storage area, realizes selective packet loss of the data, ensures low-delay transmission of key data, simultaneously avoids the problem of further deterioration of a network state caused by congestion control, and solves the technical problem that when the network state at any end of a whole communication link from a receiving terminal to the sending terminal is severe, the uplink bandwidth at the sending terminal side is further deteriorated due to the congestion control.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below, it is obvious that the drawings in the following description are only some embodiments of the present invention, and for those skilled in the art, other related drawings can be obtained according to the drawings without creative efforts.
Fig. 1 is a schematic flow chart of a method for low latency transmission control provided in the present invention;
FIG. 2 is a schematic structural diagram of a three-stage data transmission protocol provided in the present invention;
fig. 3 is a schematic diagram illustrating an implementation process of a method for low latency transmission control provided in the present invention;
fig. 4 is a schematic diagram of a basic transmission control principle of a low-latency transmission control method provided in the present invention;
fig. 5 is a schematic structural diagram of a receiving terminal for low latency transmission control provided in the present invention.
Detailed Description
In order to make the technical solutions of the present invention better understood, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
For ease of understanding, referring to fig. 1, an embodiment of a method for low latency transmission control is provided in the present invention, including:
step 101, a receiving terminal creates a three-stage data transmission protocol, and sends a real-time data request to a sending terminal after initialization is completed, wherein the three-stage data transmission protocol comprises a data header, a fragment data header and data content.
It should be noted that, in this embodiment of the present invention, a receiving terminal first creates a Time-based packet selective low latency transport protocol (TSTP), where the structure of the TSTP is shown in fig. 2, and the TSTP includes a data header, a fragment data header, and data content, where the data header is the first 8 bytes, the protocol header occupies the first two bytes, the third byte is a type word, the fourth byte is a method word, the fifth byte and the sixth byte are data lengths, the seventh byte is an encryption manner, and the eighth byte is a retransmission data identifier. When the data type to be transmitted is big data (more than 1400 bytes) such as real-time media stream data, fragment transmission is required, and therefore, the content following the data header is a fragment data header which has 14 bytes, wherein the first two bytes are channels, the third byte and the fourth byte are serial numbers, the fifth byte is a frame type (I frame or P frame), the sixth byte is a media type, the seventh byte to the tenth byte are frame lengths, and the eleventh byte to the fourteenth byte are timestamps. After a fragment data head is added to each fragment data, each fragment data has key information such as a serial number, data time, data type and the like. After the receiving terminal establishes a protocol object TSTP, initialization is carried out: setting a data receiving mode as a selective packet loss mode, setting a channel and a type of TSTP, and initializing to a data sequence number Sn = -1. The initialization is applied to the data sequence number Sn = -1 for judging whether the packet loss occurs in the actual arriving packet. After the initialization is completed, the real-time data is requested to a sending terminal, namely, a camera.
And 102, the receiving terminal receives a request result returned by the sending terminal in response to the real-time data request, wherein the request result comprises the maximum cache time range of the sending terminal and the real-time data returned in a slicing mode.
It should be noted that, when receiving a real-time data request sent by a receiving terminal, a sending terminal calculates a maximum cache time range (unit may be selected as millisecond) according to the size of its own cache data, collects real-time data at the same time, performs fragmentation and encapsulation on the real-time data according to the TSTP format to obtain fragmented real-time data, and then returns the maximum cache time range and the actually collected fragmented real-time data to the receiving terminal.
And 103, the receiving terminal discards the fragmented data of which the transmission time exceeds the maximum buffering time range according to the request result, outputs frame data of which the transmission time is in the maximum buffering time range and which forms a complete data frame with the data in the temporary storage area to the application layer, and temporarily stores the fragmented data of which the transmission time is in the maximum buffering time range and which does not form the complete data frame into the temporary storage area.
It should be noted that, when receiving the maximum buffering Time range, the receiving terminal stores the maximum buffering Time range, and then starts a timer for detecting whether to request retransmission of data every Interval ms (RTT, i.e., round-Trip Time, depends on RTT Time). Meanwhile, the receiving terminal receives the fragmented real-time data sent by the sending terminal, and discards fragmented data that is not within the maximum buffering time range when the time difference between the arriving fragmented data and the starting point fragmented data exceeds the maximum buffering time range, as shown in fig. 3, and discards the fragmented data 1 when the time difference between the time stamp of the fragment 5 and the time stamp of the fragment 1 is greater than the maximum buffering time range. If the I frame data is discarded due to timeout, the P frame data following the following I frame can be discarded. And judging whether the fragment data in the maximum buffer time range and the data in the temporary storage area of the receiving terminal form a complete data frame, if so, outputting the fragment data forming the complete data frame to an application layer together, otherwise, storing the fragment data in the temporary storage area, and adding 1 to the data serial number Sn of the temporary storage area. If the Interval ms timer detects that packet loss occurs in the fragment data sent by the sending terminal to the receiving terminal (the Interval ms timer judges the lost fragment data and the corresponding packet loss timestamp according to the arriving fragment data sequence number and the starting fragment data sequence number, as shown in fragment 3 in fig. 3), the data retransmission process is started: judging whether a packet loss timestamp of the lost fragment data is within a maximum cache time range or not, and whether retransmission times are less than 3 or not, if the packet loss timestamp of the lost fragment data (namely, a timestamp of receiving next fragment data of the lost fragment data, such as a timestamp of receiving fragment 4 by using a packet loss timestamp of fragment 3 in fig. 3) is within the maximum cache time range and the retransmission times are less than 3, requesting the retransmission of the lost fragment data and updating the timestamp of the lost fragment data to a sending terminal, after receiving a retransmission request of a receiving terminal, the sending terminal firstly judging whether the lost fragment data (namely, fragment 3 in fig. 3) exists in a self cache region or not, if so, sending the lost fragment data to the receiving terminal after setting a retransmission data identification byte of a data head of the lost fragment data to be 1 (used for the receiving terminal to calculate RTT time), and if after receiving the request retransmission of the receiving terminal, the sending terminal finds that the fragment data has not been lost in the self cache region, and does not respond to the retransmission request. And after receiving the lost fragment data retransmitted by the sending terminal, the receiving terminal judges whether the retransmitted lost fragment data and the data in the temporary storage region form a frame, if so, the data forming the frame is output to an application layer, and otherwise, the retransmitted lost fragment data is stored in the temporary storage region.
The fragments 1 to 5 in fig. 3 arrive in sequence, but in practical application, since the fragment data received by the receiving terminal may not be received in the sequence of the fragment data sent by the sending terminal, and may arrive out of sequence, for the fragment data arriving out of sequence, the fragment data arriving in sequence is buffered in sequence, and the lost fragment data is calculated, and the lost fragment data is retransmitted. Specifically, as shown in fig. 3, the slices 6 to 12 arrive out of order, and if the slice 7 arrives first, the slice 7 is buffered first, and since the slice 5 already constitutes one frame of data and outputs the frame to the application layer, the starting-point slice data is changed to 6, that is, sn =6. Since the fragment 6 does not arrive before the fragment 7 is received, it is determined that the fragment 6 is lost, and a request for retransmitting the fragment 6 is initiated to enter a retransmission process. If the fragment 6 arrives before the retransmission request is not initiated, retransmission is not initiated, the record of packet loss of the fragment 6 is directly removed, and the fragment 6 is cached in front of the fragment 7. When the fragment 7 arrives and the received arrived fragment is the fragment 9, caching the fragment 9, judging that the fragment 8 loses a packet, then initiating retransmission to the fragment 8, and entering a retransmission process. The processes of slicing 10, slicing 11 and slicing 12 are the same and will not be described again.
In one embodiment, the receiving terminal compares the timestamp of the arriving fragment data with the timestamp of the starting fragment data, if the timestamp exceeds the maximum buffering time range, the starting fragment data is discarded, and the earliest data in the temporary storage area is used as a new starting fragment data sequence number. As shown in fig. 4, black indicates a non-arrived fragmented packet, gray indicates an arrived packet, and the sequence number indicated by the solid arrow is the sequence number of the current to earliest fragmented packet, which becomes the starting fragmented data, as shown in fig. 4 as 23 and 28. In fig. 4, when 27 and 41 arrive one after the other, the timestamp difference (13.2-11 = 2.2s) between 41 and the earliest data 25 is already greater than 2s (it is assumed here that the maximum buffering time range of the transmitting terminal is 2 s), which indicates that 24 and the previous data have been discarded in the data stored by the transmitting terminal, and therefore, the retransmission of 23 and 24 is abandoned, and at the same time, it is determined that 25, 26, and 27 constitute one frame of data, the data value application layer of 25 to 27 is output, and then the starting point fragment data sequence number is updated to 28. If the maximum caching time range is not exceeded, the receiving terminal compares the sequence number of the arrived fragment data with the sequence number of the starting fragment data, and if the sequence number of the arrived fragment data is earlier than the sequence number of the starting fragment data, the arrived fragment data is discarded, wherein the sequence number of the fragment data is a two-byte unsigned integer value; if the sequence number of the arrived fragment data is equal to the sequence number of the starting fragment and forms a frame of data with the data of the temporary storage area, outputting the data forming a frame to the application layer, and if the data of the temporary storage area does not form a frame of data, putting the arrived fragment data into the temporary storage area; if the sequence number of the arriving fragment data is later than the sequence number of the starting data, the arriving fragment data is put into the temporary storage area in sequence, for example, the arriving fragment data 27 is put after 26 in fig. 4. It should be noted that, in order to minimize the data increased by transmission control, the sequence number information of the slice data header only uses 2 bytes of unsigned integer data, so the value range is 0 to 65535, but the number of slice data required to be transmitted in one transmission cycle easily exceeds 65536, and enters a cycle starting from 0. Therefore, it is necessary to accurately determine which data is the preceding data and which is the following data according to the change of the sequence number, for example, the fragmented data with sequence number 0 may be the data with sequence number 65535. Therefore, the basis for determining whether the arriving fragment data sequence number is earlier than the starting data sequence number may be: arrived fragment data sequence number-start fragment data sequence number >65536/2. The basis for judging whether the sequence number of the arrived fragment data is later than the sequence number of the starting data may be: the sequence number of the arrived fragment data-the sequence number of the starting fragment data is less than or equal to 65536/2.
The invention provides a low-delay transmission control method, which encapsulates and transmits transmitted data in a fragmentation mode by a three-stage data transmission protocol comprising a data head, a fragmentation data head and data contents, takes the maximum buffer time range of a sending terminal as a packet loss basis, discards the fragmentation data of which the transmission time exceeds the maximum buffer time range, outputs frame data of which the transmission time is in the maximum buffer time range and forms a complete data frame with data in a temporary storage area to an application layer, temporarily stores the fragmentation data of which the transmission time is in the maximum buffer time range but does not form the complete data frame to the temporary storage area, realizes selective packet loss of the data, ensures low-delay transmission of key data, simultaneously avoids the problem of further deterioration of a network state caused by congestion control, and solves the technical problem that when the network state at any end of a whole communication link from a receiving terminal to the sending terminal is severe, the uplink bandwidth at the sending terminal side is further deteriorated due to the congestion control.
Meanwhile, on one hand, the method for controlling the low-delay transmission ensures the reliable transmission of key frame data and audio data by selectively losing packets of real-time media data in a weak network environment, thereby ensuring the low delay of pictures and the continuous and smooth sound so as to achieve the effects of low delay, low memory occupation and optimal visual and auditory sensory experiences; on the other hand, compared with a TCP transmission protocol, the protocol provided by the invention has the advantages of high data occupation ratio of transmission effective users, lower bandwidth occupation, multiplexing, no problem of head of line blocking, migratable data transmission channels and controllable flow.
For easy understanding, referring to fig. 5, the present invention provides a receiving terminal for low latency transmission control, including:
the initialization module is used for establishing a three-section type data transmission protocol and sending a real-time data request to the sending terminal after initialization is completed, wherein the three-section type data transmission protocol comprises a data header, a fragment data header and data contents;
the data receiving module is used for receiving a request result returned by the sending terminal in response to the real-time data request, wherein the request result comprises the maximum cache time range of the sending terminal and the real-time data returned by the fragments;
and the selective packet loss output module is used for discarding the fragmented data of which the transmission time exceeds the maximum caching time range according to the request result, outputting frame data of which the transmission time is in the maximum caching time range and forms a complete data frame with the data in the temporary storage area to the application layer, and temporarily storing the fragmented data of which the transmission time is in the maximum caching time range and does not form the complete data frame to the temporary storage area.
The selective packet loss output module is specifically configured to:
comparing the time stamp of the arrived fragment data with the time stamp of the starting fragment data, if the time stamp exceeds the maximum cache time range, discarding the starting fragment data, and taking the earliest data of the temporary storage area as a new starting fragment data sequence number;
if the maximum cache time range is not exceeded, comparing the sequence number of the arrived fragment data with the sequence number of the starting fragment data;
if the sequence number of the arrived fragment data is earlier than that of the starting data, discarding the arrived fragment data, wherein the sequence number of the fragment data is a two-byte unsigned integer value;
if the sequence number of the arrived fragment data is equal to the sequence number of the starting fragment and forms a frame of data with the data of the temporary storage area, outputting the data forming a frame to the application layer, and if the data of the temporary storage area does not form a frame of data, putting the arrived fragment data into the temporary storage area;
if the sequence number of the arrived fragment data is later than that of the starting data, the arrived fragment data is put into the temporary storage area in sequence.
The selective packet loss output module is further configured to:
judging lost fragment data and a corresponding packet loss timestamp according to the sequence number of the arrived fragment data and the sequence number of the starting point fragment data;
judging whether the packet loss time stamp of the lost fragment data is in the maximum cache time range or not and whether the retransmission times is less than 3 or not, if the packet loss time stamp of the lost fragment data is in the maximum cache time range and the retransmission times is less than 3, requesting the retransmission of the lost fragment data to the sending terminal and updating the time stamp of the lost fragment data;
and receiving lost fragment data retransmitted by the sending terminal, judging whether the retransmitted lost fragment data and the data in the temporary storage region form a frame, if so, outputting the data forming the frame to an application layer, and otherwise, storing the retransmitted lost fragment data in the temporary storage region.
The data head of the three-section data transmission protocol has 8 bytes, wherein the protocol head occupies the first two bytes, the third byte is a type word, the fourth byte is a method word, the fifth byte and the sixth byte are data length, the seventh byte is an encryption mode, and the eighth byte is a retransmission data identifier;
the fragment data head of the three-section data transmission protocol has 8 bytes, wherein the first two bytes are channels, the third byte and the fourth byte are sequence numbers, the fifth byte is a frame type, the sixth byte is a media type, the seventh byte is a frame length, and the eighth byte is a timestamp.
The principle and the obtained technical effect of the low-latency transmission control receiving terminal provided in the embodiment of the present invention are the same as those of the low-latency transmission control method in the embodiment of the low-latency transmission control method, and are not described herein again.
The present invention also provides an embodiment of a low latency transmission controlled transmitting terminal, which is used in cooperation with a low latency transmission controlled receiving terminal provided in the present invention, and the transmitting terminal includes:
and the response request module is used for responding to the real-time data request of the receiving terminal, sending the maximum cache time range of the sending terminal to the receiving terminal, and packaging the real-time data according to a three-section data transmission protocol and then feeding the real-time data back to the receiving terminal in a fragmentation manner.
The response request module is further configured to, when receiving a fragment data retransmission request sent by the receiving terminal, first determine whether there is lost fragment data (i.e., fragment 3 in fig. 3) in the sending terminal buffer, if so, set a retransmission data identifier byte of a data header of the lost fragment data to 1 (used for the receiving terminal to calculate RTT time), update a timestamp of a data packet of the fragment loss, and send the lost fragment data to the receiving terminal. If the response request module finds that the sending terminal has no lost fragment data in the buffer after receiving the retransmission request of the receiving terminal, the response request module does not respond to the retransmission request.
The principle and the obtained technical effect of the transmitting terminal of the low-delay transmission control provided in the embodiment of the present invention, which is used in cooperation with the receiving terminal of the low-delay transmission control provided in the present invention, are the same as the method of the low-delay transmission control in the foregoing method embodiment of the low-delay transmission control, and are not described herein again.
The above embodiments are only used to illustrate the technical solution of the present invention, and not to limit the same; although the present invention has been described in detail with reference to the foregoing embodiments, it should be understood by those of ordinary skill in the art that: the technical solutions described in the foregoing embodiments may still be modified, or some technical features may be equivalently replaced; and such modifications or substitutions do not depart from the spirit and scope of the corresponding technical solutions of the embodiments of the present invention.

Claims (10)

1. A method for low latency transmission control, comprising:
the method comprises the steps that a receiving terminal creates a three-section type data transmission protocol, and sends a real-time data request to a sending terminal after initialization is completed, wherein the three-section type data transmission protocol comprises a data header, a fragment data header and data content;
the receiving terminal receives a request result returned by the sending terminal in response to the real-time data request, wherein the request result comprises the maximum cache time range of the sending terminal and the real-time data returned in a slicing mode;
the receiving terminal discards the fragment data of which the transmission time exceeds the maximum buffer time range according to the request result, outputs frame data of which the transmission time is in the maximum buffer time range and which forms a complete data frame with the data in the temporary storage area to the application layer, and temporarily stores the fragment data of which the transmission time is in the maximum buffer time range and which does not form the complete data frame into the temporary storage area.
2. The method of claim 1, wherein the receiving terminal discards the fragmented data with transmission time exceeding the maximum buffering time range according to the request result, outputs frame data with transmission time within the maximum buffering time range and forming a complete data frame with the data in the buffer to the application layer, and buffers the fragmented data with transmission time within the maximum buffering time range and not forming a complete data frame to the buffer, comprising:
the receiving terminal compares the time stamp of the arriving fragment data with the time stamp of the starting fragment data, if the time stamp exceeds the maximum cache time range, the starting fragment data is discarded, and the earliest data of the temporary storage area is used as a new starting fragment data sequence number;
if the maximum caching time range is not exceeded, the receiving terminal compares the arrived fragment data serial number with the starting fragment data serial number;
if the sequence number of the arrived fragment data is earlier than that of the starting data, discarding the arrived fragment data, wherein the sequence number of the fragment data is a two-byte unsigned integer value;
if the sequence number of the arrived fragment data is equal to the sequence number of the starting fragment data and forms a frame of data with the data of the temporary storage area, outputting the data forming a frame to the application layer, and if the sequence number of the arrived fragment data does not form a frame of data with the data of the temporary storage area, putting the arrived fragment data into the buffer storage area;
if the sequence number of the arrived fragment data is later than the sequence number of the start point data, the arrived fragment data is put into the temporary storage area in sequence.
3. The method of claim 2, wherein the receiving terminal discards the fragmented data with the transmission time exceeding the maximum buffering time range according to the request result, outputs frame data with the transmission time within the maximum buffering time range and forming a complete data frame with the data in the buffer to the application layer, and buffers the fragmented data with the transmission time within the maximum buffering time range and not forming the complete data frame to the buffer, further comprising:
the receiving terminal judges the lost fragment data and the corresponding packet loss timestamp according to the sequence number of the arrived fragment data and the sequence number of the starting point fragment data;
the receiving terminal judges whether the packet loss time stamp of the lost fragment data is in the maximum cache time range or not and whether the retransmission times are less than 3 or not, and if the packet loss time stamp of the lost fragment data is in the maximum cache time range and the retransmission times are less than 3, the receiving terminal requests the transmitting terminal to retransmit the lost fragment data and update the time stamp of the lost fragment data;
and the receiving terminal receives the lost fragment data retransmitted by the sending terminal, judges whether the retransmitted lost fragment data and the data in the temporary storage region form a frame or not, if so, outputs the data forming the frame to the application layer, and otherwise, stores the retransmitted lost fragment data in the temporary storage region.
4. The method of claim 2, wherein the data header of the three-segment data transmission protocol has 8 bytes, wherein the protocol header includes the first two bytes, the third byte is a type word, the fourth byte is a method word, the fifth byte and the sixth byte are data length, the seventh byte is an encryption mode, and the eighth byte is a retransmission data identifier.
5. The method of claim 4, wherein the fragmented data header of the three-segment data transmission protocol has 14 bytes, wherein the first two bytes are channel, the third byte and the fourth byte are sequence numbers, the fifth byte is frame type, the sixth byte is media type, the seventh byte to the tenth byte are frame length, and the eleventh byte to the fourteenth byte are time stamps.
6. A receiving terminal for low latency transmission control, comprising:
the initialization module is used for establishing a three-section data transmission protocol and sending a real-time data request to the sending terminal after initialization is completed, wherein the three-section data transmission protocol comprises a data header, a fragment data header and data content;
the data receiving module is used for receiving a request result returned by the sending terminal in response to the real-time data request, wherein the request result comprises the maximum cache time range of the sending terminal and the real-time data returned by the fragments;
and the selective packet loss output module is used for discarding the fragmented data of which the transmission time exceeds the maximum caching time range according to the request result, outputting frame data of which the transmission time is within the maximum caching time range and which forms a complete data frame with the data in the temporary storage area to the application layer, and temporarily storing the fragmented data of which the transmission time is within the maximum caching time range and which does not form the complete data frame to the temporary storage area.
7. The receiving terminal for low latency transmission control according to claim 6, wherein the selective packet loss output module is specifically configured to:
comparing the time stamp of the arrived fragment data with the time stamp of the starting fragment data, if the time stamp exceeds the maximum cache time range, discarding the starting fragment data, and taking the earliest data of the temporary storage area as a new starting fragment data sequence number;
if the maximum cache time range is not exceeded, comparing the sequence number of the arrived fragment data with the sequence number of the starting fragment data;
if the sequence number of the arrived fragment data is earlier than the sequence number of the starting point data, discarding the arrived fragment data, wherein the sequence number of the fragment data is a two-byte unsigned integer value;
if the sequence number of the arrived fragment data is equal to the sequence number of the starting fragment data and forms a frame of data with the data of the temporary storage area, outputting the data forming a frame to the application layer, and if the sequence number of the arrived fragment data does not form a frame of data with the data of the temporary storage area, putting the arrived fragment data into the buffer storage area;
if the sequence number of the arrived fragment data is later than that of the starting data, the arrived fragment data is put into the temporary storage area in sequence.
8. The receiving terminal controlled by low latency transmission according to claim 7, wherein the selective packet loss output module is further configured to:
judging lost fragment data and a corresponding packet loss timestamp according to the sequence number of the arrived fragment data and the sequence number of the starting point fragment data;
judging whether the packet loss time stamp of the lost fragment data is in the maximum cache time range or not and whether the retransmission times are less than 3 or not, if the packet loss time stamp of the lost fragment data is in the maximum cache time range and the retransmission times are less than 3, requesting the retransmission of the lost fragment data to the sending terminal and updating the time stamp of the lost fragment data;
and receiving lost fragment data retransmitted by the sending terminal, judging whether the retransmitted lost fragment data and data in the temporary storage region form a frame, if so, outputting the data forming the frame to an application layer, otherwise, storing the retransmitted lost fragment data in the temporary storage region.
9. The receiving terminal of claim 7, wherein the data header of the three-segment data transmission protocol has 8 bytes, wherein the protocol header occupies the first two bytes, the third byte is a type word, the fourth byte is a method word, the fifth byte and the sixth byte are data length, the seventh byte is an encryption mode, and the eighth byte is a retransmission data identifier;
the fragment data header of the three-segment data transmission protocol has 14 bytes, wherein the first two bytes are channels, the third byte and the fourth byte are sequence numbers, the fifth byte is a frame type, the sixth byte is a media type, the seventh byte to the tenth byte are frame lengths, and the eleventh byte to the fourteenth byte are timestamps.
10. A transmitting terminal corresponding to the receiving terminal of the low-latency transmission control of any one of claims 6 to 9, comprising:
and the response request module is used for responding to the real-time data request of the receiving terminal, sending the maximum cache time range of the sending terminal to the receiving terminal, and packaging the real-time data according to a three-section data transmission protocol and then fragmenting and returning the real-time data to the receiving terminal.
CN202211347682.4A 2022-10-31 2022-10-31 Low-delay transmission control method, receiving terminal and transmitting terminal Pending CN115695582A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211347682.4A CN115695582A (en) 2022-10-31 2022-10-31 Low-delay transmission control method, receiving terminal and transmitting terminal
PCT/CN2023/127012 WO2024093812A1 (en) 2022-10-31 2023-10-27 Low-latency transmission control method, receiving terminal and sending terminal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211347682.4A CN115695582A (en) 2022-10-31 2022-10-31 Low-delay transmission control method, receiving terminal and transmitting terminal

Publications (1)

Publication Number Publication Date
CN115695582A true CN115695582A (en) 2023-02-03

Family

ID=85046180

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211347682.4A Pending CN115695582A (en) 2022-10-31 2022-10-31 Low-delay transmission control method, receiving terminal and transmitting terminal

Country Status (2)

Country Link
CN (1) CN115695582A (en)
WO (1) WO2024093812A1 (en)

Also Published As

Publication number Publication date
WO2024093812A1 (en) 2024-05-10

Similar Documents

Publication Publication Date Title
US7643480B2 (en) Method and system for reliably and efficiently transporting data over a network
US8306058B2 (en) Communication system and techniques for transmission from source to destination
US9191297B2 (en) Providing feedback to media senders over real time transport protocol (RTP)
US20040098748A1 (en) MPEG-4 live unicast video streaming system in wireless network with end-to-end bitrate-based congestion control
EP3322145A1 (en) Method, server side and system for computing bandwidth of network transmission of streaming media
EP1427146A1 (en) Packet transmission system and packet reception system
US20100005178A1 (en) Method and system for firewall friendly real-time communication
US20050152397A1 (en) Communication system and techniques for transmission from source to destination
US20040015591A1 (en) Collective TCP control for improved wireless network performance
US20110044338A1 (en) Throughput in a lan by managing tcp acks
CN113271316B (en) Multimedia data transmission control method and device, storage medium and electronic equipment
KR20030020968A (en) Real-time packetization and retransmission in streaming applications
JPH09191314A (en) Continuous data transmission method and its transmitter
CN112436924B (en) Data transmission method and electronic equipment
WO2020147453A1 (en) Data transmission method and related apparatus
JP3871661B2 (en) Multimedia content receiving apparatus and multimedia content receiving method
CA2940077C (en) Buffer bloat control
CN115695582A (en) Low-delay transmission control method, receiving terminal and transmitting terminal
CN113424578B (en) Acceleration method and device for transmission control protocol
CA2308027A1 (en) Transmission control for minimizing congestion in digital communications networks
CN115348481B (en) Data transmission method, device, transmitter and receiver
Guduru et al. Reliable Session Initiation Protocol (RSIP) signaling with UDP transport using piggybacking method
Rajiullah et al. Optimizing PR-SCTP performance using NR-SACKs
CN115766747A (en) Reliable and efficient transmission method suitable for wireless channel
KR20050013777A (en) Method for controlling congestion of TCP for reducing the number of retransmission timeout

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

Effective date of registration: 20240318

Address after: Unit 1, Building 1, China Telecom Zhejiang Innovation Park, No. 8 Xiqin Street, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province, 311100

Applicant after: Tianyi Shilian Technology Co.,Ltd.

Country or region after: China

Address before: 200000 room 1423, No. 1256 and 1258, Wanrong Road, Jing'an District, Shanghai

Applicant before: Tianyi Digital Life Technology Co.,Ltd.

Country or region before: China

TA01 Transfer of patent application right