WO2024093812A1 - 一种低延时传输控制的方法、接收终端和发送终端 - Google Patents

一种低延时传输控制的方法、接收终端和发送终端 Download PDF

Info

Publication number
WO2024093812A1
WO2024093812A1 PCT/CN2023/127012 CN2023127012W WO2024093812A1 WO 2024093812 A1 WO2024093812 A1 WO 2024093812A1 CN 2023127012 W CN2023127012 W CN 2023127012W WO 2024093812 A1 WO2024093812 A1 WO 2024093812A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
byte
frame
sequence number
fragment
Prior art date
Application number
PCT/CN2023/127012
Other languages
English (en)
French (fr)
Inventor
梁起存
王刚
王家宾
薛有义
邓健喆
刘博�
李康炎
Original Assignee
天翼数字生活科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 天翼数字生活科技有限公司 filed Critical 天翼数字生活科技有限公司
Publication of WO2024093812A1 publication Critical patent/WO2024093812A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2592Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Definitions

  • the present invention relates to the technical field of data transmission, and in particular to a low-delay transmission control method, a receiving terminal and a sending terminal.
  • the mobile terminal (which can be regarded as the receiving terminal) can directly view the real-time video of the camera (which can be regarded as the sending terminal), the historical video stored in the camera memory card, and voice intercom, etc.
  • a large amount of communication data will be transmitted between the two terminals.
  • P2P technology is usually used to enable the mobile terminal and the camera to communicate directly through the public network to reduce the resource consumption of the server.
  • P2P technology usually uses the UDP transmission protocol, and a reliable transmission protocol is required to properly control the transmission of data.
  • Video surveillance data has real-time requirements and the mobile terminal network conditions are changeable, and the camera upload bandwidth is low and often faces a high upload bandwidth demand.
  • the network conditions at either end of the entire communication link from the mobile terminal to the camera are bad, the uplink bandwidth on the camera side will cause the network status to further deteriorate due to congestion control. Therefore, how to meet the condition that the available network bandwidth at either end is bad, the user can still view the real-time video of the camera to the greatest extent to meet the sensory experience without further deteriorating the network bandwidth condition, which is a technical problem that technicians in this field need to solve urgently.
  • the present invention provides a low-latency transmission control method, a receiving terminal and a sending terminal, which solve the technical problem that when the network conditions at either end of the entire communication link from the receiving terminal to the sending terminal are bad, the uplink bandwidth on the sending terminal side is easily further deteriorated due to congestion control.
  • a first aspect of the present invention provides a method for low-latency transmission control, comprising:
  • the receiving terminal creates a three-segment data transmission protocol and sends a real-time data request to the sending terminal after initialization.
  • the three-segment data transmission protocol includes 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, where the request result includes a maximum cache time range of the sending terminal and the real-time data returned in segments;
  • the receiving terminal discards the fragmented data whose transmission time exceeds the maximum cache time range according to the request result, and forms a complete data frame with the data whose transmission time is within the maximum cache time range and in the temporary storage area.
  • the frame data is output to the application layer, and the fragmented data whose transmission time is within the maximum cache time range but does not constitute a complete data frame is temporarily stored in the temporary storage area.
  • the receiving terminal discards the fragmented data whose transmission time exceeds the maximum cache time range according to the request result, outputs the frame data whose transmission time is within the maximum cache time range and constitutes 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 cache time range but does not constitute a complete data frame in the temporary storage area, including:
  • 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 cache time range, the starting fragment data is discarded and the earliest data in the temporary storage area is used as the new starting fragment data sequence number.
  • the receiving terminal compares the sequence number of the arrived fragment data with the sequence number of the starting fragment data
  • the arrived fragment data will be discarded, where the fragment data sequence number is a two-byte unsigned integer value
  • the sequence number of the arrived fragment data is equal to the starting fragment sequence number, and it forms a frame of data with the data in the temporary storage area, the data constituting a frame will be output to the application layer. If it does not form a frame of data with the data in the temporary storage area, the arrived fragment data will be put into the cache area;
  • the arriving shard data will be put into the temporary storage area in sequence.
  • the receiving terminal discards the fragmented data whose transmission time exceeds the maximum cache time range according to the request result, outputs the frame data whose transmission time is within the maximum cache time range and constitutes 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 cache time range but does not constitute a complete data frame in the temporary storage area, further comprising:
  • the receiving terminal determines 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 fragment data;
  • the receiving terminal determines whether the packet loss timestamp of the lost fragmented data is within the maximum cache time range and whether the number of retransmissions is less than 3. If the packet loss timestamp of the lost fragmented data is within the maximum cache time range and the number of retransmissions is less than 3, the sending terminal is requested to retransmit the lost fragmented data and update the timestamp of the lost fragmented data.
  • the receiving terminal receives the lost fragmented data retransmitted by the sending terminal, and determines whether the retransmitted lost fragmented data and the data in the temporary storage area constitute a frame. If so, the data constituting a frame is output to the application layer, otherwise, the retransmitted lost fragmented data is stored in the temporary storage area.
  • the data header of the three-stage data transmission protocol has 8 bytes, wherein the protocol header occupies the first two bytes, the third byte is the type word, the fourth byte is the method word, the fifth byte and the sixth byte are the data length, the seventh byte is the encryption method, and the eighth byte is the retransmission data identifier.
  • the fragment 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 timestamps.
  • a second aspect of the present application provides a receiving terminal for low-latency transmission control, including:
  • An initialization module is used to create a three-stage data transmission protocol and send a real-time data request to the sending terminal after the initialization is completed.
  • the three-stage data transmission protocol includes a data header, a fragmentation data header, and data content;
  • a data receiving module used to receive a request result returned by a sending terminal in response to a real-time data request, wherein the request result includes a maximum cache time range of the sending terminal and real-time data returned in segments;
  • the selective packet loss output module is used to discard the fragmented data whose transmission time exceeds the maximum cache time range according to the request result, output the frame data whose transmission time is within the maximum cache time range and constitutes a complete data frame with the data in the temporary storage area to the application layer, and temporarily store the fragmented data whose transmission time is within the maximum cache time range but does not constitute a complete data frame in the temporary storage area.
  • the selective packet loss output module is specifically used for:
  • the sequence number of the arrived shard data is compared with the sequence number of the starting shard data
  • the arrived fragment data will be discarded, where the fragment data sequence number is a two-byte unsigned integer value
  • the sequence number of the arrived fragment data is equal to the starting fragment sequence number, and it forms a frame of data with the data in the temporary storage area, the data constituting a frame will be output to the application layer. If it does not form a frame of data with the data in the temporary storage area, the arrived fragment data will be put into the cache area;
  • the arriving shard data will be put into the temporary storage area in sequence.
  • the selective packet loss output module is further configured to:
  • the data header of the three-stage data transmission protocol has 8 bytes, wherein the protocol header occupies the first two bytes, the third byte is the type word, the fourth byte is the method word, the fifth byte and the sixth byte are the data length, the seventh byte is the encryption method, and the eighth byte is the retransmission data identifier;
  • the fragment data header of the three-segment data transmission protocol has 14 bytes, of which 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 timestamps.
  • a third aspect of the present application provides a transmitting terminal corresponding to any receiving terminal of the low-latency transmission control of the second aspect, including:
  • the response request module is used to respond to the real-time data request of the receiving terminal, send the maximum cache time range of the sending terminal to the receiving terminal, and encapsulate the real-time data according to the three-segment data transmission protocol and return it to the receiving terminal in segments.
  • the low-latency transmission control method, receiving terminal and sending terminal provided by the present invention have the following advantages:
  • the low-latency transmission control method provided by the present invention encapsulates and transmits the transmitted data in slices using a three-segment data transmission protocol including a data header, a slice data header and data content, takes the maximum cache time range of the sending terminal as the basis for packet loss, discards the slice data whose transmission time exceeds the maximum cache time range, outputs the frame data whose transmission time is within the maximum cache time range and constitutes a complete data frame with the data in the temporary storage area to the application layer, and temporarily stores the slice data whose transmission time is within the maximum cache time range but does not constitute a complete data frame in the temporary storage area, thereby realizing selective packet loss of data and ensuring low-latency transmission of key data, while also avoiding the problem of further deterioration of the network status caused by congestion control, and solving the problem of network status at any end on the entire communication link from the receiving terminal to the sending terminal.
  • a three-segment data transmission protocol including a data header, a slice data header and data content
  • FIG1 is a schematic flow chart of a method for low-latency transmission control provided in the present invention.
  • FIG2 is a schematic diagram of the structure of a three-stage data transmission protocol provided in the present invention.
  • FIG3 is a schematic diagram of the execution process of the method for low-latency transmission control provided in the present invention.
  • FIG4 is a schematic diagram of the basic principle of transmission control of the low-latency transmission control method provided in the present invention.
  • FIG5 is a schematic diagram of the structure of a receiving terminal for low-latency transmission control provided in the present invention.
  • the present invention provides an embodiment of a method for low-latency transmission control, including:
  • Step 101 The receiving terminal creates a three-segment data transmission protocol and sends a real-time data request to the sending terminal after initialization.
  • the three-segment data transmission protocol includes a data header, a slice data header, and data content.
  • the receiving terminal first creates a Time-based packet selective loss transport protocol (TSTP).
  • TSTP Time-based packet selective loss transport protocol
  • the structure of TSTP is shown in FIG2 , and includes three parts: a data header, a fragmentation header, and data content.
  • the data header is the first 8 bytes
  • the protocol header occupies the first two bytes
  • the third byte is the type word
  • the fourth byte is the method word
  • the fifth byte and the sixth byte are the data length
  • the seventh byte is the length of the data.
  • the first byte is the encryption method
  • the eighth byte is the retransmission data identifier.
  • each fragment data header has 14 bytes, of which the first two bytes are channel, the third byte and the fourth byte are sequence numbers, the fifth byte is the frame type (I frame or P frame), the sixth byte is the media type, the seventh byte to the tenth byte are the frame length, and the eleventh byte to the fourteenth byte are timestamps.
  • each fragment data After adding the fragment data header to each fragment data, each fragment data has key information such as sequence number, data time and data type.
  • the sending terminal that is, the camera, is requested for real-time data.
  • Step 102 The receiving terminal receives a request result returned by the sending terminal in response to the real-time data request.
  • the request result includes a maximum cache time range of the sending terminal and the real-time data returned in segments.
  • the sending terminal when the sending terminal receives the real-time data request sent by the receiving terminal, it calculates the maximum cache time range (the unit can be selected in milliseconds) based on its own cache data size, and collects real-time data at the same time, and segments and encapsulates the real-time data into sliced real-time data in TSTP format, and then returns the maximum cache time range and the actually collected sliced real-time data to the receiving terminal.
  • the sending terminal calculates the maximum cache time range (the unit can be selected in milliseconds) based on its own cache data size, and collects real-time data at the same time, and segments and encapsulates the real-time data into sliced real-time data in TSTP format, and then returns the maximum cache time range and the actually collected sliced real-time data to the receiving terminal.
  • the maximum cache time range the unit can be selected in milliseconds
  • Step 103 the receiving terminal discards the fragmented data whose transmission time exceeds the maximum cache time range according to the request result, outputs the frame data whose transmission time is within the maximum cache time range and constitutes 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 cache time range but does not constitute a complete data frame in the temporary storage area.
  • the receiving terminal when the receiving terminal receives the maximum cache time range, it stores the maximum cache time range, and then starts a timer every Interval ms (determined by the RTT time, RTT is Round-Trip Time) to detect whether it is necessary to request retransmission of data. At the same time, the receiving terminal receives the fragmented real-time data sent by the sending terminal. When the time difference between the arriving fragmented data and the starting fragmented data exceeds the maximum cache time range, the fragmented data that is not within the maximum cache time range is discarded. As shown in Figure 3, when the time difference between the timestamp of fragment 5 and the timestamp of fragment 1 is greater than the maximum cache time range, fragment 1 is discarded.
  • the P frame data following the subsequent I frame can be discarded.
  • the fragmented data within the maximum cache time range, it is determined whether it constitutes a complete data frame with the data in the temporary storage area of the receiving terminal. If so, the fragmented data that constitutes the complete data frame will be discarded.
  • the fragment data is output to the application layer together, otherwise, the fragment data is stored in the temporary storage area, and the data sequence number Sn in the temporary storage area is increased by 1.
  • the Interval ms timer If the Interval ms timer detects that the fragment data sent by the sending terminal to the receiving terminal is lost (the Interval ms timer determines 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 fragment data, such as fragment 3 in Figure 3), then enter the data retransmission process: determine whether the packet loss timestamp of the lost fragment data is within the maximum cache time range, and whether the number of retransmissions is less than 3.
  • the packet loss timestamp of the lost fragment data (that is, the timestamp of the next fragment data received after the lost fragment data is received, such as the packet loss timestamp of fragment 3 in Figure 3 is the timestamp of fragment 4 received) is within the maximum cache time range, and the number of retransmissions is less than 3, then send the packet loss timestamp to the sending terminal.
  • the terminal requests to retransmit the lost fragmented data and update the timestamp of the lost fragmented data.
  • the sending terminal After receiving the retransmission request from the receiving terminal, the sending terminal first determines whether there is any lost fragmented data in its own buffer (i.e., fragment 3 in Figure 3).
  • the lost fragmented data is sent to the receiving terminal after the retransmission data identification byte of the data header of the lost fragmented data is set to 1 (used by the receiving terminal to calculate the RTT time). If the sending terminal finds that there is no lost fragmented data in its own buffer after receiving the retransmission request from the receiving terminal, it will not respond to the retransmission request. After receiving the lost fragmented data retransmitted by the sending terminal, the receiving terminal determines whether the retransmitted lost fragmented data and the data in the temporary storage area constitute a frame. If so, the data constituting a frame is output to the application layer, otherwise, the retransmitted lost fragmented data is stored in the temporary storage area.
  • fragments 1 to 5 arrive in order, but in actual applications, the fragment data received by the receiving terminal may not be received in the order of the fragment data sent by the sending terminal, and may arrive out of order.
  • the fragment data that arrives out of order it is cached in order, and the lost fragment data is calculated, and the lost fragment data is retransmitted.
  • fragment 6 Since fragment 6 has not arrived before fragment 7 is received, it is judged that fragment 6 is lost, and a request for retransmission of fragment 6 should be initiated to enter the retransmission process. If fragment 6 has arrived before the retransmission request is initiated, no retransmission is initiated, and the record of the packet loss of fragment 6 is directly removed, and fragment 6 is cached in front of fragment 7. When fragment 7 arrives, the received fragment is fragment 9, then fragment 9 is cached, and it is determined that fragment 8 is lost, and then fragment 8 is retransmitted and enters the retransmission process. The process of fragments 10, 11 and 12 can be obtained in the same way, and will not be repeated.
  • 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 cache time range, the starting fragment data is discarded and the temporary storage is The earliest data in the area is used as the new starting fragment data sequence number. As shown in Figure 4, in Figure 4, black represents fragment data packets that have not arrived, and gray represents data packets that have arrived. The sequence number indicated by the solid arrow is the sequence number of the earliest fragment data packet that should arrive at present, which becomes the starting fragment data, such as 23 and 28 in Figure 4.
  • sequence number of the arrived fragmented data is earlier than the sequence number of the starting data, the arrived fragmented data is discarded, wherein the sequence number of the fragmented data is a two-byte unsigned integer value; if the sequence number of the arrived fragmented data is equal to the sequence number of the starting fragmented data, and forms a frame of data with the data in the temporary storage area, the data constituting a frame is output to the application layer, if it does not form a frame of data with the data in the temporary storage area, the arrived fragmented data is placed in the buffer area; if the sequence number of the arrived fragmented data is later than the sequence number of the starting data, the arrived fragmented data is placed in the temporary storage area in sequence, such as the fragmented data 27 in FIG4 is placed after 26.
  • the sequence number information of the fragmented data header only uses 2-byte unsigned integer data, so the value range is 0 to 65535, but the number of fragmented data required to be transmitted in a transmission cycle is very easy to exceed 65536 and enter a cycle starting from 0. Therefore, it is necessary to accurately determine which data is in the front and which is in the back according to the change of the sequence number, such as the fragment data with sequence number 0 can be the data after sequence number 65535. Therefore, the basis for judging whether the sequence number of the arrived fragment data is earlier than the sequence number of the starting data can be: the sequence number of the arrived fragment data - the sequence number of the starting fragment data> 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 can be: the sequence number of the arrived fragment data - the sequence number of the starting fragment data ⁇ 65536/2.
  • the low-latency transmission control method provided by the present invention encapsulates and transmits the transmitted data in slices using a three-segment data transmission protocol including a data header, a slice data header and data content, takes the maximum cache time range of the sending terminal as the basis for packet loss, discards the slice data whose transmission time exceeds the maximum cache time range, outputs the frame data whose transmission time is within the maximum cache time range and constitutes a complete data frame with the data in the temporary storage area to the application layer, and temporarily stores the slice data whose transmission time is within the maximum cache time range but does not constitute a complete data frame in the temporary storage area, thereby realizing selective packet loss of data and ensuring low-latency transmission of key data, while also avoiding the problem of further deterioration of the network status caused by congestion control, and solving the problem of network status at any end on the entire communication link from the receiving terminal to the sending terminal.
  • a three-segment data transmission protocol including a data header, a slice data header and data content
  • the low-latency transmission control method provided by the present invention performs selective packet loss for real-time media data in a weak network environment to ensure reliable transmission of key frame data and audio data, thereby ensuring low latency of the picture and continuous and smooth sound to achieve the effects of low latency, low memory usage and optimal visual and auditory sensory experience; on the other hand, compared with the TCP transmission protocol, the protocol provided by the present invention has the advantages of a high proportion of effective user data transmitted, low bandwidth occupancy, multiplexing without head-of-line blocking problems, migrateable data transmission channels and controllable traffic.
  • the present invention provides a receiving terminal for low-latency transmission control, including:
  • An initialization module is used to create a three-stage data transmission protocol and send a real-time data request to the sending terminal after the initialization is completed.
  • the three-stage data transmission protocol includes a data header, a fragmentation data header, and data content;
  • a data receiving module used to receive a request result returned by a sending terminal in response to a real-time data request, wherein the request result includes a maximum cache time range of the sending terminal and real-time data returned in segments;
  • the selective packet loss output module is used to discard the fragmented data whose transmission time exceeds the maximum cache time range according to the request result, output the frame data whose transmission time is within the maximum cache time range and constitutes a complete data frame with the data in the temporary storage area to the application layer, and temporarily store the fragmented data whose transmission time is within the maximum cache time range but does not constitute a complete data frame in the temporary storage area.
  • the selective packet loss output module is specifically used for:
  • the sequence number of the arrived shard data is compared with the sequence number of the starting shard data
  • the arrived fragment data will be discarded, where the fragment data sequence number is a two-byte unsigned integer value
  • the sequence number of the arrived fragment data is equal to the starting fragment sequence number, and it forms a frame of data with the data in the temporary storage area, the data constituting a frame will be output to the application layer. If it does not form a frame of data with the data in the temporary storage area, the arrived fragment data will be put into the cache area;
  • the arriving shard data will be placed in order. Enter the temporary storage area.
  • the Selective Packet Loss Output Module is also used to:
  • the data header of the three-stage data transmission protocol has 8 bytes, of which the protocol header occupies the first two bytes, the third byte is the type word, the fourth byte is the method word, the fifth and sixth bytes are the data length, the seventh byte is the encryption method, and the eighth byte is the retransmission data identifier;
  • the fragment data header of the three-segment data transmission protocol has 8 bytes, among which the first two bytes are channel, the third byte and the fourth byte are sequence number, the fifth byte is frame type, the sixth byte is media type, the seventh byte is frame length, and the eighth byte is timestamp.
  • the receiving terminal for low-latency transmission control provided in the embodiment of the present invention is used to execute the method for low-latency transmission control in the aforementioned method embodiment for low-latency transmission control.
  • the principle and technical effects achieved are the same as those of the method for low-latency transmission control in the aforementioned method embodiment for low-latency transmission control, and will not be repeated here.
  • the present invention also provides an embodiment of a sending terminal for low-latency transmission control, which is used in conjunction with a receiving terminal for low-latency transmission control provided in the present invention.
  • the sending terminal includes:
  • the response request module is used to respond to the real-time data request of the receiving terminal, send the maximum cache time range of the sending terminal to the receiving terminal, and encapsulate the real-time data according to the three-segment data transmission protocol and return it to the receiving terminal in segments.
  • the response request module is also used to determine whether there is any lost fragment data (i.e., fragment 3 in FIG3 ) in the buffer area of the sending terminal when receiving the fragment data retransmission request sent by the receiving terminal. If so, the retransmission data identification byte of the data header of the lost fragment data is set to 1 (for the receiving terminal to calculate the RTT time), update the timestamp of the data packet of the lost fragment, and send the lost fragment data to the receiving terminal. If the response request module finds that there is no lost fragment data in the buffer area of the sending terminal after receiving the retransmission request from the receiving terminal, it will not respond to the retransmission request.
  • lost fragment data i.e., fragment 3 in FIG3
  • the sending terminal of low-latency transmission control provided in the embodiment of the present invention is used in conjunction with the receiving terminal of low-latency transmission control provided in the present invention.
  • the principle and technical effects achieved are the same as the method of low-latency transmission control in the aforementioned method embodiment of low-latency transmission control, and will not be repeated here.

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

本发明公开了一种低延时传输控制的方法、接收终端和发送终端,以包括数据头、分片数据头和数据内容的三段式数据传输协议对传输的数据进行封装和分片传输,将传输时间超出最大缓存时间范围的分片数据丢弃,将传输时间在最大缓存时间范围内且与暂存区内的数据构成完整数据帧的帧数据输出至应用层,将传输时间在最大缓存时间范围内但未构成完整数据帧的分片数据暂存至暂存区,实现了对数据的选择性丢包,保证了关键数据的低延时传输,同时也避免了由于拥塞控制而造成的网络状态进一步恶化问题,解决了接收终端到发送终端整个通讯链路上任一端网络状况出现恶劣的情况时,易造成发送终端侧的上行带宽由于拥塞控制而进一步恶化的技术问题。

Description

一种低延时传输控制的方法、接收终端和发送终端 技术领域
本发明涉及数据传输技术领域,尤其涉及一种低延时传输控制的方法、接收终端和发送终端。
背景技术
看家视频监控系统中,手机终端(可视为接收终端)可直接查看摄像机(可视为发送终端)的实时视频、存储在摄像机存储卡的历史视频以及语音对讲等,两个终端间会传输大量的通讯数据,在保证用户体验不变的条件下,为节省带宽和服务端的消耗成本,通常会使用P2P技术使得手机终端与摄像机通过公网进行直连通讯而减少服务端的资源消耗。P2P技术通常使用UDP传输协议,需要可靠的传输协议对数据的传输进行合适的控制。视频监控数据存在实时性需求和手机终端网络状况多变,以及摄像机上传宽带较低且常面临上传带宽需求较高的情况,手机终端到摄像机整个通讯链路上任一端网络状况出现恶劣的情况时,会造成摄像机侧的上行宽带由于拥塞控制而造成网络状态的进一步恶化,因而,如何满足在任意一端的网络可用带宽状况恶劣的条件下,用户进行查看摄像机的实时视频依然能最大程度的满足感官体验而不进一步恶化网络带宽状况,是本领域技术人员亟待解决的技术问题。
发明内容
本发明提供了一种低延时传输控制的方法、接收终端和发送终端,解决了接收终端到发送终端整个通讯链路上任一端网络状况出现恶劣的情况时,易造成发送终端侧的上行带宽由于拥塞控制而进一步恶化的技术问题。
有鉴于此,本发明第一方面提供了一种低延时传输控制的方法,包括:
接收终端创建三段式数据传输协议,初始化完成后向发送终端发送实时数据请求,其中,三段式数据传输协议包括数据头、分片数据头和数据内容;
接收终端接收发送终端响应于实时数据请求返回的请求结果,请求结果包括发送终端的最大缓存时间范围和分片返回的实时数据;
接收终端根据请求结果丢弃传输时间超出最大缓存时间范围的分片数据,将传输时间在最大缓存时间范围内且与暂存区内的数据构成完整数据帧 的帧数据输出至应用层,将传输时间在最大缓存时间范围内但未构成完整数据帧的分片数据暂存至暂存区。
可选地,接收终端根据请求结果丢弃传输时间超出最大缓存时间范围的分片数据,将传输时间在最大缓存时间范围内且与暂存区内的数据构成完整数据帧的帧数据输出至应用层,将传输时间在最大缓存时间范围内但未构成完整数据帧的分片数据暂存至暂存区,包括:
接收终端将到达的分片数据的时间戳与起点分片数据的时间戳对比,若超出最大缓存时间范围,则将起点分片数据丢弃,将暂存区最早的数据作为新的起点分片数据序号;
若未超出最大缓存时间范围,则接收终端将到达的分片数据序号与起点分片数据序号进行比较;
若到达的分片数据序号比起点数据序号早,则将到达的分片数据丢弃,其中,分片数据序号为两字节无符号整型值;
若到达的分片数据序号等于起点分片序号,且与暂存区数据构成一帧数据,则将构成一帧的数据输出至应用层,若与暂存区数据未构成一帧数据,则将到达的分片数据放入缓存区;
若到达的分片数据序号比起点数据序号晚,则将到达的分片数据按序放入暂存区。
可选地,接收终端根据请求结果丢弃传输时间超出最大缓存时间范围的分片数据,将传输时间在最大缓存时间范围内且与暂存区内的数据构成完整数据帧的帧数据输出至应用层,将传输时间在最大缓存时间范围内但未构成完整数据帧的分片数据暂存至暂存区,还包括:
接收终端根据到达的分片数据序号和起点分片数据序号判断丢失的分片数据和对应的丢包时间戳;
接收终端判断丢失的分片数据的丢包时间戳是否在最大缓存时间范围内,且重传次数是否小于3,若丢失的分片数据的丢包时间戳在最大缓存时间范围内,且重传次数小于3,则向发送终端请求重传丢失的分片数据并更新丢失的分片数据的时间戳;
接收终端接收发送终端重传的丢失的分片数据,判断重传的丢失的分片数据与暂存区内的数据是否构成一帧,若是,则构成一帧的数据输出至应用层,否则,将重传的丢失的分片数据存入暂存区。
可选地,三段式数据传输协议的数据头具有8个字节,其中,协议头占前两个字节,第三个字节为类型字,第四个字节为方法字,第五个字节和第六个字节为数据长度,第七个字节为加密方式,第八个字节为重传数据标识。
可选地,三段式数据传输协议的分片数据头具有14个字节,其中,前两个字节为channel,第三个字节和第四个字节为序号,第五个字节为帧类型,第六个字节为媒体类型,第七个字节至第十个字节为帧长度,第十一个字节至第十四个字节为时间戳。
本申请第二方面提供了一种低延时传输控制的接收终端,包括:
初始化模块,用于创建三段式数据传输协议,初始化完成后向发送终端发送实时数据请求,其中,三段式数据传输协议包括数据头、分片数据头和数据内容;
数据接收模块,用于接收发送终端响应于实时数据请求返回的请求结果,请求结果包括发送终端的最大缓存时间范围和分片返回的实时数据;
选择性丢包输出模块,用于根据请求结果丢弃传输时间超出最大缓存时间范围的分片数据,将传输时间在最大缓存时间范围内且与暂存区内的数据构成完整数据帧的帧数据输出至应用层,将传输时间在最大缓存时间范围内但未构成完整数据帧的分片数据暂存至暂存区。
可选地,选择性丢包输出模块具体用于:
将到达的分片数据的时间戳与起点分片数据的时间戳对比,若超出最大缓存时间范围,则将起点分片数据丢弃,将暂存区最早的数据作为新的起点分片数据序号;
若未超出最大缓存时间范围,则将到达的分片数据序号与起点分片数据序号进行比较;
若到达的分片数据序号比起点数据序号早,则将到达的分片数据丢弃,其中,分片数据序号为两字节无符号整型值;
若到达的分片数据序号等于起点分片序号,且与暂存区数据构成一帧数据,则将构成一帧的数据输出至应用层,若与暂存区数据未构成一帧数据,则将到达的分片数据放入缓存区;
若到达的分片数据序号比起点数据序号晚,则将到达的分片数据按序放入暂存区。
可选地,选择性丢包输出模块还用于:
根据到达的分片数据序号和起点分片数据序号判断丢失的分片数据和对应的丢包时间戳;
判断丢失的分片数据的丢包时间戳是否在最大缓存时间范围内,且重传次数是否小于3,若丢失的分片数据的丢包时间戳在最大缓存时间范围内,且重传次数小于3,则向发送终端请求重传丢失的分片数据并更新丢失的分片数据的时间戳;
接收发送终端重传的丢失的分片数据,判断重传的丢失的分片数据与暂存区内的数据是否构成一帧,若是,则构成一帧的数据输出至应用层,否则,将重传的丢失的分片数据存入暂存区。
可选地,三段式数据传输协议的数据头具有8个字节,其中,协议头占前两个字节,第三个字节为类型字,第四个字节为方法字,第五个字节和第六个字节为数据长度,第七个字节为加密方式,第八个字节为重传数据标识;
三段式数据传输协议的分片数据头具有14个字节,其中,前两个字节为channel,第三个字节和第四个字节为序号,第五个字节为帧类型,第六个字节为媒体类型,第七个字节至第十个字节为帧长度,第十一个字节至第十四个字节为时间戳。
本申请第三方面提供了一种与第二方面任一种低延时传输控制的接收终端对应的发送终端,包括:
响应请求模块,用于对接收终端的实时数据请求作出响应,将发送终端的最大缓存时间范围发送给接收终端,并将实时数据按三段式数据传输协议封装后分片返回给接收终端。
从以上技术方案可以看出,本发明提供的低延时传输控制的方法、接收终端和发送终端具有以下优点:
本发明提供的低延时传输控制的方法,以包括数据头、分片数据头和数据内容的三段式数据传输协议对传输的数据进行封装和分片传输,以发送终端的最大缓存时间范围作为丢包依据,将传输时间超出最大缓存时间范围的分片数据丢弃,将传输时间在最大缓存时间范围内且与暂存区内的数据构成完整数据帧的帧数据输出至应用层,将传输时间在最大缓存时间范围内但未构成完整数据帧的分片数据暂存至暂存区,实现了对数据的选择性丢包,保证了关键数据的低延时传输,同时也避免了由于拥塞控制而造成的网络状态进一步恶化问题,解决了接收终端到发送终端整个通讯链路上任一端网络状 况出现恶劣的情况时,易造成发送终端侧的上行带宽由于拥塞控制而进一步恶化的技术问题。
附图说明
为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明中提供的一种低延时传输控制的方法的流程示意图;
图2为本发明中提供的三段式数据传输协议的结构示意图;
图3为本发明中提供的低延时传输控制的方法执行过程示意图;
图4为本发明中提供的低延时传输控制的方法的传输控制基本原理示意图;
图5为本发明中提供的低延时传输控制的接收终端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于理解,请参阅图1,本发明中提供了一种低延时传输控制的方法的实施例,包括:
步骤101、接收终端创建三段式数据传输协议,初始化完成后向发送终端发送实时数据请求,其中,三段式数据传输协议包括数据头、分片数据头和数据内容。
需要说明的是,本发明实施例中,接收终端首先创建基于数据时间的选择性丢包低延时传输协议(TSTP,Time-based packet selective loss transport protocol),TSTP的结构如图2所示,包括数据头、分片数据头和数据内容三个部分,数据头为前8个字节,协议头占前两个字节,第三个字节为类型字,第四个字节为方法字,第五个字节和第六个字节为数据长度,第七个字 节为加密方式,第八个字节为重传数据标识。当传输的数据类型为实时媒体流数据等大数据(大于1400字节)时,需要分片传输,因此,数据头后面接着的内容为分片数据头,分片数据头具有14个字节,其中,前两个字节为channel,第三个字节和第四个字节为序号,第五个字节为帧类型(I帧或P帧),第六个字节为媒体类型,第七个字节至第十个字节为帧长度,第十一个字节至第十四个字节为时间戳。对每个分片数据加上分片数据头后,每个分片数据有序号、数据时间和数据类型等关键信息。接收终端创建协议对象TSTP后,进行初始化:设置数据接收模式为选择性丢包模式,设置TSTP的通道和类型,初始化应到数据序号Sn=-1。初始化应到数据序号Sn=-1用于判断实际到达包是否发生丢包。初始化完成后,向发送终端,即摄像机请求实时数据。
步骤102、接收终端接收发送终端响应于实时数据请求返回的请求结果,请求结果包括发送终端的最大缓存时间范围和分片返回的实时数据。
需要说明的是,发送终端在接收到接收终端发送的实时数据请求时,根据自身的缓存数据大小计算得到最大缓存时间范围(单位可选为毫秒),同时采集实时数据,按TSTP格式对实时数据进行分片封装为分片实时数据,然后将最大缓存时间范围与实际采集到的分片实时数据一同返回给接收终端。
步骤103、接收终端根据请求结果丢弃传输时间超出最大缓存时间范围的分片数据,将传输时间在最大缓存时间范围内且与暂存区内的数据构成完整数据帧的帧数据输出至应用层,将传输时间在最大缓存时间范围内但未构成完整数据帧的分片数据暂存至暂存区。
需要说明的是,接收终端在接收到最大缓存时间范围时,存储最大缓存时间范围,然后启动每Interval ms(根据RTT时间而定,RTT即Round-Trip Time)检测是否需要请求重发数据的定时器。同时,接收终端接收发送终端发送的分片实时数据,当到达的分片数据与起点分片数据的时间差超出最大缓存时间范围时,则将不在最大缓存时间范围内的分片数据丢弃,如图3所示,当分片5的时间戳与分片1的时间戳的时间差大于最大缓存时间范围,则丢弃分片1。其中,若I帧数据因超时而丢弃,则后面的I帧后面的P帧数据都可以丢弃。对于在最大缓存时间范围内的分片数据,则判断其是否与接收终端暂存区内的数据构成完整数据帧,若是,则将构成完整数据帧的分 片数据一同输出至应用层,否则,将分片数据存至暂存区,将暂存区的数据序号Sn加1。若Interval ms定时器检测到发送终端发送给接收终端的分片数据发生丢包(Interval ms定时器根据到达的分片数据序号和起点分片数据序号判断丢失的分片数据和对应的丢包时间戳,如图3中的分片3),则进入数据重传进程:判断丢失的分片数据的丢包时间戳是否在最大缓存时间范围内,且重传次数是否小于3,若丢失的分片数据的丢包时间戳(即接收到丢失的分片数据的下一分片数据的时间戳,如图3中分片3的丢包时间戳为接收到分片4的时间戳)在最大缓存时间范围内,且重传次数小于3,则向发送终端请求重传丢失的分片数据并更新丢失的分片数据的时间戳,发送终端在接收到接收终端的重传请求之后,先判断自身缓存区内是否有丢失的分片数据(即图3中的分片3),若是,则在丢失的分片数据的数据头的重传数据标识字节置1(用于接收终端计算RTT时间)后将丢失的分片数据发送给接收终端,若发送终端在接收到接收终端的重传请求之后,发现自身缓存区中已没有丢失的分片数据,则将不对该重传请求作出响应。接收终端接收发送终端重传的丢失的分片数据后,判断重传的丢失的分片数据与暂存区内的数据是否构成一帧,若是,则构成一帧的数据输出至应用层,否则,将重传的丢失的分片数据存入暂存区。
图3中的分片1至分片5是按序到达的,但是实际应用中,由于接收终端接收到的分片数据可能并不是按照发送终端发送的分片数据顺序接收到的,可能是乱序到达的,对于乱序到达的分片数据,按序缓存,并计算丢失的分片数据,对丢失的分片数据进行重传处理。具体地,如图3所示的分片6至分片12,是乱序到达的,首先到达的是分片7,则先缓存分片7,由于分片5已构成一帧数据输出至应用层,则起点分片数据相应变更为6,即Sn=6。由于在接收到分片7之前,分片6并未到达,则判断分片6丢失,应发起重传分片6的请求,进入重传进程。若分片6在未发起重传请求之前已经到达了,则不发起重传,直接将分片6丢包的记录移除,将分片6缓存至分片7前面。当分片7到达之后,接收到的到达的分片为分片9,则将分片9进行缓存,判断分片8丢包,然后对分片8发起重传,进入重传进程。分片10、分片11和分片12的流程同理可得,不再赘述。
在一个实施例中,接收终端将到达的分片数据的时间戳与起点分片数据的时间戳对比,若超出最大缓存时间范围,则将起点分片数据丢弃,将暂存 区最早的数据作为新的起点分片数据序号。如图4所示,图4中,黑色表示未到达的分片数据包,灰色表示已到达的数据包,实线箭头所指序号为当前应到最早的分片数据包序号,成为起点分片数据,如图4中的23和28。在图4中,当27和41先后到达后,41与最早数据25的时间戳差值(13.2-11=2.2s)已大于2s(此处假设发送终端的最大缓存时间范围为2s),说明发送终端存储的数据中已丢弃了24及之前的数据,因此,放弃23和24的重传,同时判断25、26、27构成一帧数据,则输出25~27的数据值应用层,然后把起点分片数据序号更新为28。若未超出最大缓存时间范围,则接收终端将到达的分片数据序号与起点分片数据序号进行比较,若到达的分片数据序号比起点数据序号早,则将到达的分片数据丢弃,其中,分片数据序号为两字节无符号整型值;若到达的分片数据序号等于起点分片序号,且与暂存区数据构成一帧数据,则将构成一帧的数据输出至应用层,若与暂存区数据未构成一帧数据,则将到达的分片数据放入缓存区;若到达的分片数据序号比起点数据序号晚,则将到达的分片数据按序放入暂存区,如图4中到达的分片数据27放在26之后。需要说明的是,为尽量减少因传输控制增加的数据,分片数据头的序号信息只使用2字节的无符号整型数据,因此取值范围为0~65535,但一个传输周期所需要传输的分片数据个数很容易超过65536个而进入一个循环从0开始。因此需根据序号的变化准确判断哪个数据是在前面,哪个在后面,如序号为0的分片数据可以是序号为65535后的数据。因而,判断到达的分片数据序号是否比起点数据序号早的依据可以是:到达的分片数据序号-起点分片数据序号>65536/2。判断到达的分片数据序号是否比起点数据序号晚的依据可以是:到达的分片数据序号-起点分片数据序号≤65536/2。
本发明提供的低延时传输控制的方法,以包括数据头、分片数据头和数据内容的三段式数据传输协议对传输的数据进行封装和分片传输,以发送终端的最大缓存时间范围作为丢包依据,将传输时间超出最大缓存时间范围的分片数据丢弃,将传输时间在最大缓存时间范围内且与暂存区内的数据构成完整数据帧的帧数据输出至应用层,将传输时间在最大缓存时间范围内但未构成完整数据帧的分片数据暂存至暂存区,实现了对数据的选择性丢包,保证了关键数据的低延时传输,同时也避免了由于拥塞控制而造成的网络状态进一步恶化问题,解决了接收终端到发送终端整个通讯链路上任一端网络状 况出现恶劣的情况时,易造成发送终端侧的上行带宽由于拥塞控制而进一步恶化的技术问题。
同时,本发明提供的低延时传输控制的方法,一方面,针对实时媒体数据在弱网络环境时进行选择性丢包保证关键帧数据和音频数据可靠传输从而保证画面低延时和声音连续流畅以达到低延时、低内存占用且视觉和听觉感官体验最优的效果;另一方面,相对于TCP传输协议,本发明提供的协议具有传输有效用户数据占比高、带宽占用较低、多路复用且无队头阻塞问题、数据传输通道可迁移和流量可控制的优点。
为了便于理解,请参阅图5,本发明中提供了一种低延时传输控制的接收终端,包括:
初始化模块,用于创建三段式数据传输协议,初始化完成后向发送终端发送实时数据请求,其中,三段式数据传输协议包括数据头、分片数据头和数据内容;
数据接收模块,用于接收发送终端响应于实时数据请求返回的请求结果,请求结果包括发送终端的最大缓存时间范围和分片返回的实时数据;
选择性丢包输出模块,用于根据请求结果丢弃传输时间超出最大缓存时间范围的分片数据,将传输时间在最大缓存时间范围内且与暂存区内的数据构成完整数据帧的帧数据输出至应用层,将传输时间在最大缓存时间范围内但未构成完整数据帧的分片数据暂存至暂存区。
选择性丢包输出模块具体用于:
将到达的分片数据的时间戳与起点分片数据的时间戳对比,若超出最大缓存时间范围,则将起点分片数据丢弃,将暂存区最早的数据作为新的起点分片数据序号;
若未超出最大缓存时间范围,则将到达的分片数据序号与起点分片数据序号进行比较;
若到达的分片数据序号比起点数据序号早,则将到达的分片数据丢弃,其中,分片数据序号为两字节无符号整型值;
若到达的分片数据序号等于起点分片序号,且与暂存区数据构成一帧数据,则将构成一帧的数据输出至应用层,若与暂存区数据未构成一帧数据,则将到达的分片数据放入缓存区;
若到达的分片数据序号比起点数据序号晚,则将到达的分片数据按序放 入暂存区。
选择性丢包输出模块还用于:
根据到达的分片数据序号和起点分片数据序号判断丢失的分片数据和对应的丢包时间戳;
判断丢失的分片数据的丢包时间戳是否在最大缓存时间范围内,且重传次数是否小于3,若丢失的分片数据的丢包时间戳在最大缓存时间范围内,且重传次数小于3,则向发送终端请求重传丢失的分片数据并更新丢失的分片数据的时间戳;
接收发送终端重传的丢失的分片数据,判断重传的丢失的分片数据与暂存区内的数据是否构成一帧,若是,则构成一帧的数据输出至应用层,否则,将重传的丢失的分片数据存入暂存区。
三段式数据传输协议的数据头具有8个字节,其中,协议头占前两个字节,第三个字节为类型字,第四个字节为方法字,第五个字节和第六个字节为数据长度,第七个字节为加密方式,第八个字节为重传数据标识;
三段式数据传输协议的分片数据头具有8个字节,其中,前两个字节为channel,第三个字节和第四个字节为序号,第五个字节为帧类型,第六个字节为媒体类型,第七个字节为帧长度,第八个字节为时间戳。
本发明实施例中提供的低延时传输控制的接收终端,用于执行前述低延时传输控制的方法实施例中的低延时传输控制的方法,其原理与所取得的技术效果与前述低延时传输控制的方法实施例中的低延时传输控制的方法相同,在此不再赘述。
本发明中还提供了一种低延时传输控制的发送终端的实施例,该发送终端与本发明中提供的低延时传输控制的接收终端配套使用,该发送终端包括:
响应请求模块,用于对接收终端的实时数据请求作出响应,将发送终端的最大缓存时间范围发送给接收终端,并将实时数据按三段式数据传输协议封装后分片返回给接收终端。
响应请求模块还用于在接收到接收终端发送的分片数据重传请求时,先判断发送终端缓存区内是否有丢失的分片数据(即图3中的分片3),若是,则在丢失的分片数据的数据头的重传数据标识字节置1(用于接收终端计算RTT时间),更新分片丢失的数据包的时间戳,将丢失的分片数据发送给接 收终端。若响应请求模块在接收到接收终端的重传请求之后,发现发送终端缓存区中已没有丢失的分片数据,则将不对该重传请求作出响应。
本发明实施例中提供的低延时传输控制的发送终端,与本发明中提供的低延时传输控制的接收终端配套使用,其原理与所取得的技术效果与前述低延时传输控制的方法实施例中的低延时传输控制的方法相同,在此不再赘述。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

  1. 一种低延时传输控制的方法,其特征在于,包括:
    接收终端创建三段式数据传输协议,初始化完成后向发送终端发送实时数据请求,其中,三段式数据传输协议包括数据头、分片数据头和数据内容;
    接收终端接收发送终端响应于实时数据请求返回的请求结果,请求结果包括发送终端的最大缓存时间范围和分片返回的实时数据;
    接收终端根据请求结果丢弃传输时间超出最大缓存时间范围的分片数据,将传输时间在最大缓存时间范围内且与暂存区内的数据构成完整数据帧的帧数据输出至应用层,将传输时间在最大缓存时间范围内但未构成完整数据帧的分片数据暂存至暂存区。
  2. 根据权利要求1所述的低延时传输控制的方法,其特征在于,接收终端根据请求结果丢弃传输时间超出最大缓存时间范围的分片数据,将传输时间在最大缓存时间范围内且与暂存区内的数据构成完整数据帧的帧数据输出至应用层,将传输时间在最大缓存时间范围内但未构成完整数据帧的分片数据暂存至暂存区,包括:
    接收终端将到达的分片数据的时间戳与起点分片数据的时间戳对比,若超出最大缓存时间范围,则将起点分片数据丢弃,将暂存区最早的数据作为新的起点分片数据序号;
    若未超出最大缓存时间范围,则接收终端将到达的分片数据序号与起点分片数据序号进行比较;
    若到达的分片数据序号比起点数据序号早,则将到达的分片数据丢弃,其中,分片数据序号为两字节无符号整型值;
    若到达的分片数据序号等于起点分片序号,且与暂存区数据构成一帧数据,则将构成一帧的数据输出至应用层,若与暂存区数据未构成一帧数据,则将到达的分片数据放入缓存区;
    若到达的分片数据序号比起点数据序号晚,则将到达的分片数据按序放入暂存区。
  3. 根据权利要求2所述的低延时传输控制的方法,其特征在于,接收终端根据请求结果丢弃传输时间超出最大缓存时间范围的分片数据,将传输时间在最大缓存时间范围内且与暂存区内的数据构成完整数据帧的帧数据 输出至应用层,将传输时间在最大缓存时间范围内但未构成完整数据帧的分片数据暂存至暂存区,还包括:
    接收终端根据到达的分片数据序号和起点分片数据序号判断丢失的分片数据和对应的丢包时间戳;
    接收终端判断丢失的分片数据的丢包时间戳是否在最大缓存时间范围内,且重传次数是否小于3,若丢失的分片数据的丢包时间戳在最大缓存时间范围内,且重传次数小于3,则向发送终端请求重传丢失的分片数据并更新丢失的分片数据的时间戳;
    接收终端接收发送终端重传的丢失的分片数据,判断重传的丢失的分片数据与暂存区内的数据是否构成一帧,若是,则构成一帧的数据输出至应用层,否则,将重传的丢失的分片数据存入暂存区。
  4. 根据权利要求2所述的低延时传输控制的方法,其特征在于,三段式数据传输协议的数据头具有8个字节,其中,协议头占前两个字节,第三个字节为类型字,第四个字节为方法字,第五个字节和第六个字节为数据长度,第七个字节为加密方式,第八个字节为重传数据标识。
  5. 根据权利要求4所述的低延时传输控制的方法,其特征在于,三段式数据传输协议的分片数据头具有14个字节,其中,前两个字节为channel,第三个字节和第四个字节为序号,第五个字节为帧类型,第六个字节为媒体类型,第七个字节至第十个字节为帧长度,第十一个字节至第十四个字节为时间戳。
  6. 一种低延时传输控制的接收终端,其特征在于,包括:
    初始化模块,用于创建三段式数据传输协议,初始化完成后向发送终端发送实时数据请求,其中,三段式数据传输协议包括数据头、分片数据头和数据内容;
    数据接收模块,用于接收发送终端响应于实时数据请求返回的请求结果,请求结果包括发送终端的最大缓存时间范围和分片返回的实时数据;
    选择性丢包输出模块,用于根据请求结果丢弃传输时间超出最大缓存时间范围的分片数据,将传输时间在最大缓存时间范围内且与暂存区内的数据构成完整数据帧的帧数据输出至应用层,将传输时间在最大缓存时间范围内但未构成完整数据帧的分片数据暂存至暂存区。
  7. 根据权利要求6所述的低延时传输控制的接收终端,其特征在于, 选择性丢包输出模块具体用于:
    将到达的分片数据的时间戳与起点分片数据的时间戳对比,若超出最大缓存时间范围,则将起点分片数据丢弃,将暂存区最早的数据作为新的起点分片数据序号;
    若未超出最大缓存时间范围,则将到达的分片数据序号与起点分片数据序号进行比较;
    若到达的分片数据序号比起点数据序号早,则将到达的分片数据丢弃,其中,分片数据序号为两字节无符号整型值;
    若到达的分片数据序号等于起点分片序号,且与暂存区数据构成一帧数据,则将构成一帧的数据输出至应用层,若与暂存区数据未构成一帧数据,则将到达的分片数据放入缓存区;
    若到达的分片数据序号比起点数据序号晚,则将到达的分片数据按序放入暂存区。
  8. 根据权利要求7所述的低延时传输控制的接收终端,其特征在于,选择性丢包输出模块还用于:
    根据到达的分片数据序号和起点分片数据序号判断丢失的分片数据和对应的丢包时间戳;
    判断丢失的分片数据的丢包时间戳是否在最大缓存时间范围内,且重传次数是否小于3,若丢失的分片数据的丢包时间戳在最大缓存时间范围内,且重传次数小于3,则向发送终端请求重传丢失的分片数据并更新丢失的分片数据的时间戳;
    接收发送终端重传的丢失的分片数据,判断重传的丢失的分片数据与暂存区内的数据是否构成一帧,若是,则构成一帧的数据输出至应用层,否则,将重传的丢失的分片数据存入暂存区。
  9. 根据权利要求7所述的低延时传输控制的接收终端,其特征在于,三段式数据传输协议的数据头具有8个字节,其中,协议头占前两个字节,第三个字节为类型字,第四个字节为方法字,第五个字节和第六个字节为数据长度,第七个字节为加密方式,第八个字节为重传数据标识;
    三段式数据传输协议的分片数据头具有14个字节,其中,前两个字节为channel,第三个字节和第四个字节为序号,第五个字节为帧类型,第六个字节为媒体类型,第七个字节至第十个字节为帧长度,第十一个字节至第 十四个字节为时间戳。
  10. 一种与权利要求6-9任一种低延时传输控制的接收终端对应的发送终端,其特征在于,包括:
    响应请求模块,用于对接收终端的实时数据请求作出响应,将发送终端的最大缓存时间范围发送给接收终端,并将实时数据按三段式数据传输协议封装后分片返回给接收终端。
PCT/CN2023/127012 2022-10-31 2023-10-27 一种低延时传输控制的方法、接收终端和发送终端 WO2024093812A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202211347682.4A CN115695582A (zh) 2022-10-31 2022-10-31 一种低延时传输控制的方法、接收终端和发送终端
CN202211347682.4 2022-10-31

Publications (1)

Publication Number Publication Date
WO2024093812A1 true WO2024093812A1 (zh) 2024-05-10

Family

ID=85046180

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/127012 WO2024093812A1 (zh) 2022-10-31 2023-10-27 一种低延时传输控制的方法、接收终端和发送终端

Country Status (2)

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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115695582A (zh) * 2022-10-31 2023-02-03 天翼数字生活科技有限公司 一种低延时传输控制的方法、接收终端和发送终端

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9185045B1 (en) * 2015-05-01 2015-11-10 Ubitus, Inc. Transport protocol for interactive real-time media
CN113302887A (zh) * 2021-03-31 2021-08-24 华为技术有限公司 一种基于时间敏感传输协议的通信方法和相关装置
CN114024914A (zh) * 2021-10-27 2022-02-08 杭州海康威视数字技术股份有限公司 视频数据传输方法、装置及电子设备
CN114584560A (zh) * 2022-03-11 2022-06-03 西南科技大学 一种分片帧重组方法及装置
CN115695582A (zh) * 2022-10-31 2023-02-03 天翼数字生活科技有限公司 一种低延时传输控制的方法、接收终端和发送终端

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9185045B1 (en) * 2015-05-01 2015-11-10 Ubitus, Inc. Transport protocol for interactive real-time media
CN113302887A (zh) * 2021-03-31 2021-08-24 华为技术有限公司 一种基于时间敏感传输协议的通信方法和相关装置
CN114024914A (zh) * 2021-10-27 2022-02-08 杭州海康威视数字技术股份有限公司 视频数据传输方法、装置及电子设备
CN114584560A (zh) * 2022-03-11 2022-06-03 西南科技大学 一种分片帧重组方法及装置
CN115695582A (zh) * 2022-10-31 2023-02-03 天翼数字生活科技有限公司 一种低延时传输控制的方法、接收终端和发送终端

Also Published As

Publication number Publication date
CN115695582A (zh) 2023-02-03

Similar Documents

Publication Publication Date Title
US7355971B2 (en) Determining packet size in networking
JP5816718B2 (ja) 通信装置、通信システム、およびデータ通信の中継方法
US6694471B1 (en) System and method for periodic retransmission of messages
US7643480B2 (en) Method and system for reliably and efficiently transporting data over a network
CN113271316B (zh) 多媒体数据的传输控制方法和装置、存储介质及电子设备
US7027450B2 (en) Frame batching and compression for IP transmission
US7656800B2 (en) Transmission control protocol (TCP)
US20100005178A1 (en) Method and system for firewall friendly real-time communication
US20060165029A1 (en) Protecting real-time data in wireless networks
US20110044338A1 (en) Throughput in a lan by managing tcp acks
EP1427146A1 (en) Packet transmission system and packet reception system
US9565118B1 (en) Methods and apparatus for handling management packets in an audio video bridging (AVB) network
WO2024093812A1 (zh) 一种低延时传输控制的方法、接收终端和发送终端
KR20030020968A (ko) 스트리밍 애플리케이션들에서의 실시간 패킷화 및 재전송
CN1842052A (zh) 无线链路控制层的数据传输方法
Liang et al. TCP-RTM: Using TCP for real time multimedia applications
US7355976B2 (en) Method and apparatus for providing retry control, buffer sizing and management
WO2000072532A1 (en) System and method for network packet reduction
CN114979011B (zh) 一种应用于园区网络的拥塞控制方法
US20020015409A1 (en) Broadband Ethernet video data transmission
Hurtig et al. SCTP: designed for timely message delivery?
Rajiullah et al. Optimizing PR-SCTP performance using NR-SACKs
US20080095192A1 (en) Batching and Compression for Ip Transmission
Wang et al. Performance of MPEG-4 transmission over SCTP multi-streaming in wireless networks
CN116743660A (zh) 一种面向广域网的拥塞控制方法及装置

Legal Events

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

Ref document number: 23884744

Country of ref document: EP

Kind code of ref document: A1