WO2024022334A1 - 数据传输方法、装置和系统 - Google Patents
数据传输方法、装置和系统 Download PDFInfo
- Publication number
- WO2024022334A1 WO2024022334A1 PCT/CN2023/109109 CN2023109109W WO2024022334A1 WO 2024022334 A1 WO2024022334 A1 WO 2024022334A1 CN 2023109109 W CN2023109109 W CN 2023109109W WO 2024022334 A1 WO2024022334 A1 WO 2024022334A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- frame
- transmitted
- offset
- receiving end
- 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.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
Definitions
- the present disclosure relates to the field of communication technology, and in particular to a data transmission method, a data transmission device, a data transmission system, a non-volatile computer-readable storage medium, a computer program and a computer program product.
- the QUIC (Quick UDP Internet Connection, Quick User Datagram Protocol Internet Connection) transmission protocol is a secure universal transmission protocol that provides reliable multi-channel connections for application data transmission.
- the QUIC transmission protocol can use multiple streams to transmit data, which is called the multi-stream function.
- the QUIC transmission protocol is usually used in full-duplex mode. In full-duplex mode, a device may be either a sender or a receiver. Both the server and the client can create streams independently of each other, and can also set the priority of transmission.
- a data transmission method including: the sending end sending to the receiving end an expired offset frame for indicating data that does not need to be repeatedly transmitted, a boundary frame for indicating independent data blocks, or a At least one of the related frames of multiple data streams of the same request is associated, so that the receiving end transmits data according to at least one of the expired offset frame, the boundary frame, or the related frame.
- a data transmission method on the sending end side including: establishing a connection with the receiving end of the data to be transmitted; sending to the receiving end a message indicating that the data in the data to be transmitted is not to be retransmitted.
- the end transmits data to be transmitted based on at least one of an expired offset frame, a boundary frame, or a related frame. If the receiving end does not confirm receipt of the data block within the preset time, an expired offset frame is sent to the receiving end.
- a data transmission method including: a receiving end receives a sending end At least one of the expired offset frame sent to indicate data that does not need to be retransmitted, the boundary frame used to indicate independent data blocks, or the related frame used to associate multiple data streams of the same request; the receiving end uses the expired offset Data is transmitted in at least one of frames, boundary frames or related frames.
- another data transmission method on the receiving end side including: establishing a connection with the sending end of the data to be transmitted; receiving a message sent by the sending end to indicate that the data to be transmitted is not to be re-transmitted. At least one of the expired offset frame of the data to be transmitted, the boundary frame used to indicate the boundary position of the data block in the data stream of the data to be transmitted, or the related frame used to associate multiple data streams created based on the same request in the data to be transmitted. One; transmitting data to be transmitted according to at least one of an expired offset frame, a boundary frame or a related frame.
- a data transmission device is provided.
- the transmission device is provided at the sending end, including: a sending unit configured to send an expired offset frame for indicating data that does not need to be repeatedly transmitted to the receiving end; At least one of a boundary frame used to indicate an independent data block or a related frame used to associate multiple data streams of the same request, so that the receiving end transmits data according to at least one of the expired offset frame, the boundary frame, or the related frame.
- a data transmission device is provided.
- the transmission device is provided at the sending end and includes: a connection unit for establishing a connection with the receiving end of data to be transmitted; and a sending unit for sending data to the receiving end.
- Expired offset frames used to indicate data that will not be retransmitted in the data to be transmitted, boundary frames used to indicate the boundary positions of data blocks in the data stream of the data to be transmitted, or used to associate multiple data created based on the same request in the data to be transmitted.
- the expired offset frame is sent by the transmitting end so that the receiving end can adjust the expired offset frame according to the expiration offset frame.
- the data to be transmitted is transmitted in at least one of the , boundary frame or related frame.
- the sending unit sends an expired offset frame to the receiving end when the receiving end does not confirm receipt of the data block within a preset time.
- a data transmission device is provided.
- the transmission device is provided at the receiving end and includes: a receiving unit configured to receive an expiration offset sent by the transmitting end to indicate data that does not need to be transmitted repeatedly. At least one of a frame, a boundary frame for indicating an independent data block, or a related frame for associating multiple data streams of the same request; a transmission unit for at least one of an offset frame, a boundary frame, or a related frame based on expiration Carry out data transmission.
- a data transmission device the transmission device is arranged at the receiving end, including: a connection unit, used to establish a connection with the sending end of data to be transmitted; a receiving unit, used to receive a message sent by the sending end to indicate that the data to be transmitted is not to be re-transmitted.
- Expiration offset frame of the data to be transmitted boundary frame used to indicate the boundary position of the data block in the data stream of the data to be transmitted, or related frame used to correlate multiple data streams created based on the same request in the data to be transmitted.
- the expired offset frame is sent by the sending end; the transmission unit is used to calculate the expired offset frame, boundary frame, or At least one of the relevant frames carries out the transmission of data to be transmitted.
- a data transmission system including: a sending end, used to perform the transmission method on the sending end side in any of the above embodiments; a receiving end, used to perform any of the above embodiments The transmission method of the receiving end.
- a data transmission device including: a memory; and a processor coupled to the memory, the processor being configured to, based on instructions stored in the memory device, Execute the data transmission method in any of the above embodiments.
- a non-volatile computer-readable storage medium on which a computer program is stored.
- the program is executed by a processor, the data transmission method described in any of the above embodiments is implemented.
- a computer program including: instructions, which when executed by a processor cause the processor to perform the data transmission method according to any of the above embodiments.
- a computer program product including instructions that, when executed by a processor, cause the processor to perform the data transmission method according to any of the above embodiments.
- FIG. 1a to 1b illustrate flowcharts of some embodiments of data transmission methods according to the present disclosure
- FIGS. 2a to 2c show schematic diagrams of some embodiments of frame structures according to the present disclosure
- Figure 3 shows a schematic diagram of some embodiments of a data transmission method according to the present disclosure
- FIGS. 4a-4b show block diagrams of some embodiments of the data transmission device of the present disclosure
- Figure 5 shows a block diagram of other embodiments of the data transmission device of the present disclosure.
- Figure 6 shows a block diagram of further embodiments of the data transmission device of the present disclosure.
- FIG. 7 illustrates a block diagram of some embodiments of the data transmission system of the present disclosure
- the QUIC transmission protocol has ORTT (Round-Trip Time, round trip time) connection establishment (ORTT means that when both communicating parties initiate a communication connection, the first data packet can carry valid business data), congestion control, link migration, Safe and reliable transmission and other functions.
- ORTT Red-Trip Time, round trip time
- Most UDP (User Datagram Protocol) applications can be migrated to QUIC, but the current QUIC transmission protocol still has some technical problems in real-time communication scenarios.
- QUIC is a reliable transmission protocol, and data transmitted in a stream will still suffer from the technical problem of head-of-line blocking. This technical problem is more serious in real-time streaming.
- the main frame formats in this solution are as follows: DATAGRAM type frames are used to transmit application data in an unreliable manner; the format of the 'Type' field in the DATAGRAM frame is 0b0011000X, and the value can be 0x30, 0x31 .
- the last bit of the 'Type' field is significant, it is the length identification (LEN) bit (0x01), which indicates whether there is a length field next. If the last bit of the 'Type' field is 0, it means there is no length field, and the length of the entire message data will continue to the end of the packet; if the last bit of the 'Type' field is 1, it means there is a length field.
- LSN length identification
- DATAGRAM frame format is as follows:
- the DATAGRAM frame contains fields with the following semantics.
- Length is a variable-length integer that represents the data content length of DATAGRAM in bytes. This field only exists when the LEN bit is 1. When LEN is 0, the data in DATAGRAM will be continued into the entire QUIC data packet. Note that the length of the data content can be 0.
- Datagram Data is the data content that needs to be transmitted.
- the specifications and usage of the technical solutions in the above embodiments in the QUIC transmission protocol are as follows.
- QUIC when an application needs to send data via QUIC, QUIC generates a new DATAGRAM frame; it is then sent out in the first available QUIC data packet.
- This DATAGRAM frame will be sent out as quickly as possible (actually depends on some actual conditions, such as congestion control that will be introduced later).
- the DATAGRAM frame will also be combined with other frames into a QUIC data packet.
- the data needs to be returned to the application layer immediately as long as the application layer can process the DATAGRAM frame and has memory to store it. Similar to the Stream frame, the application layer data carried by the DATAGRAM frame needs to be protected with an 0RTT key or a 1RTT key.
- the max_datagram_frame_size transmission parameter represents the maximum value limit of DATAGRAM, However, in fact, this limit will be reduced due to the max_udp_payload_size transmission parameter and the maximum transmission unit (Maximum Transmission Unit, MTU) between end-to-end. DATAGRAM frames cannot be split. Therefore, the application layer protocol needs to deal with the problem that the maximum value is affected by the actual situation.
- MTU Maximum Transmission Unit
- DATAGRAM frames belong to the entire QUIC connection, rather than being associated with streams at the QUIC layer.
- the application wishes to distinguish different DATAGRAM frames through different identifiers.
- QUIC logical shunting of data packets or distinguishing different types of data packets.
- Defining the identification of multiplexing or logical splitting is an application layer obligation using the QUIC protocol, and the application defines the syntax and parsing method of the data content. If an application needs to support multiple simultaneous packet streams, one approach is to use a "variable length" field at the beginning of the data content. This is a simple method that allows a large number of streams to be encoded using minimal space.
- QUIC implementations SHOULD provide an API to applications to assign relative priorities to datagram frames relative to each other and to QUIC streams.
- DATAGRAM frames are not retransmitted during loss detection, they can trigger acknowledgment (ACK), that is, 'ACK trigger frame'.
- ACK acknowledgment
- the sender suspects that the DATAGRAM may have been lost, and sends a probe packet to trigger an ACK response faster. If the sending end detects that the data packet containing the DATAGRAM frame is lost, it needs to send a notification to the application layer to inform the application layer that the data packet is lost.
- a data packet containing a DATAGRAM frame is responded to, the application layer also needs to be notified that the message was successfully transmitted and received. Due to out-of-order reasons, a data packet may be confirmed as lost, but then received and acknowledged.
- the response to the DATAGRAM frame only represents that the transport layer has received and processed it, but does not guarantee that the receiving application layer successfully processed the data. Therefore, this does not replace the successful processing of the application layer message with ACK.
- DATAGRAM frames do not explicitly provide flow control signaling, nor do they effect any QUIC stream-level or QUIC connection-level flow control.
- the risk of DATAGRAM frames not providing flow control is that the receiving end may not obtain enough resources to process the data. For example, the application does not have enough memory to store data. However, because the DATAGRAM frame itself is unreliable, the receiving end can Discard data.
- DATAGRAM frames use QUIC's congestion control, so the connection may not be able to send DATAGRAM frames created by the application layer until data congestion control allows sending.
- the sender must wait until congestion control allows, or drop the data. If racing is used in the implementation, sending may be delayed due to racing. In actual implementation, it can be supported to allow applications to set a sending timeout, which is the maximum time for delaying packet sending until data is discarded due to congestion control.
- QUIC's reliable transmission algorithm will continue to retransmit the lost data until the data is successfully received. While this ensures data reliability, it also increases data transmission delays due to head-of-line congestion.
- the present disclosure finds that the following problems exist in the above-mentioned related technologies: data transmission delay increases. In view of this, the present disclosure proposes a data transmission technical solution.
- FIG. 1a-1b illustrate flowcharts of some embodiments of data transmission methods according to the present disclosure.
- a connection with the receiving end of the data to be transmitted is established. For example, at least one of an expiration offset frame for indicating data that does not need to be transmitted repeatedly, a boundary frame for indicating independent data blocks, or a correlation frame for correlating multiple data streams of the same request is generated.
- the expired offset frame includes a first offset
- the first offset is used to indicate that data before the first offset relative to the expired offset frame in the data stream to be transmitted is not to be reset. transmission.
- the boundary position includes an end position
- the boundary frame includes a second offset
- the second offset is used to indicate an end position of the data block.
- the boundary frame is used to save information related to the transmission of the data segment, information related to the retransmission, or information related to the retransmission request in the case where the data segment included in the data block has been lost and will not be retransmitted. interest.
- boundary frames are used to assign the same transmission priority to multiple data segments included in a data block. For example, the same transmission priority is used to indicate that if some data segments in a data block are lost and are not retransmitted, another part of the data segments in the data block will not be retransmitted either.
- an expired offset frame used to indicate data that is not to be retransmitted in the data to be transmitted, a boundary frame used to indicate the boundary position of the data block in the data stream of the data to be transmitted, or a boundary frame used for association is sent to the receiving end.
- the related frame includes a related stream ID that is the same for each of multiple data streams created based on the same request. For example, multiple data streams associated with related frames are presented together.
- the receiving end when establishing a connection, it is confirmed whether the receiving end supports QUICU based on the receiving end's identifier. At least one of an expired offset frame, a boundary frame, or a correlation frame is sent if the receiving end supports QUICU.
- step 110b a connection with the sending end of the data to be transmitted is established.
- step 120b receive an expired offset frame sent by the sending end for indicating data that is not to be retransmitted in the data to be transmitted, a boundary frame for indicating the boundary position of the data block in the data stream of the data to be transmitted, or a boundary frame for Correlate at least one of the related frames of multiple data streams created based on the same request in the data to be transmitted.
- step 130b the data to be transmitted is transmitted according to at least one of an expired offset frame, a boundary frame, or a related frame.
- an identifier is sent to the sending end to identify whether the receiving end of the data to be transmitted supports QUICU. At least one of an expired offset frame, a boundary frame, or a correlation frame is sent if the receiving end supports QUICU.
- the present disclosure provides a QUIC unreliable transmission protocol (QUICU), which is an extension of the QUIC protocol and is used to transmit unreliable data, with the purpose of reducing data transmission delay.
- QUICU QUIC unreliable transmission protocol
- QUIC's excellent transmission features (such as retransmission, congestion control, multiplexing, etc.) are reused and packet loss features are added.
- QUICU controls the time and range of packet loss, reduces useless transmission to improve transmission efficiency, and reduces line congestion to improve transmission timeliness, which is beneficial to delay-sensitive applications, especially audio and video applications.
- the present disclosure proposes a mechanism involving defining three new frame types, namely, Expire Offset Frame (Expire Offset Frame), Boundary Frame (Boundary Frame), and Correlation Frame (Correlation Frame).
- Expire Offset Frame Expire Offset Frame
- Boundary Frame Boundary Frame
- Correlation Frame Correlation Frame
- Each of these frames carries a type field that indicates the frame type (Type) and stream ID (Stream ID) of the current stream (the stream containing the frame).
- each of the above frames contains a special field as follows.
- the expired offset frame carries the offset of the data stream and is used to notify the receiving end that data before the offset in the data stream will not be retransmitted. After receiving this notification, the receiving end will not wait for any data before the offset in the data stream.
- boundary frames also carry offsets into the data stream and are used to indicate the end of individual data blocks in the data stream. All data segments of an independent data block should be coupled in transmission. Because, a data segment is only meaningful if all data segments of the same independent data block are successfully received. This information can be used to save transmissions or retransmissions or retransmission requests for certain data segments in situations where it is known that certain data segments of the same independent block have been lost and will not be retransmitted.
- This information can also be used, for example, to assign the same priority to all data segments of independent data blocks. For example, if a portion of an encoded picture is lost and will not be retransmitted, all subsequent pictures in the same independent group of pictures are usually useless even if they are received. Since they usually rely on the lost (or partially lost) previous picture for inter-frame prediction reference, in this case, the transmission, retransmission, and retransmission request of the data of these pictures can be skipped.
- the related frame carries the related flow ID, which is the flow ID of the flow containing the request based on which the current flow is created, and is used to associate multiple flows created based on the same request.
- the streaming system can store multiplexed media content (for example, in FLV format, i.e. Flash video format) in the origin server and edge server, while using QUIC to transmit the media in separate streams components to take advantage of the different priorities and other properties of different media components.
- multiple streams can be created based on one request (download request or upload request).
- an entity receiving these multiple streams will not be able to determine which of the received streams are from the same request.
- Related frames in these received streams should therefore be presented together to provide such additional information; those received streams with the same related stream ID value, from the same request, should be presented together.
- This unreliable transmission method of the present disclosure will achieve a balance between delay and transmission quality.
- the following will describe the solution through several aspects such as transmission negotiation, data sending, data receiving, and data expiration, and provide some examples of the protocol.
- the QUICU identifier needs to be used to confirm whether the receiving end supports QUICU.
- a value of 0 for the QUICU identifier indicates that QUICU is not supported, a value of 1 indicates that QUICU is supported. HOLD QUICU.
- the QUICU identifier needs to be registered with IANA (Internet Assigned Numbers Authority Services, Internet Numbers Assignment Authority), and needs to be carried through ALPN (Application-Layer Protocol Negotiation, application layer protocol negotiation) to indicate whether the QUICU protocol is supported.
- IANA Internet Assigned Numbers Authority Services, Internet Numbers Assignment Authority
- ALPN Application-Layer Protocol Negotiation, application layer protocol negotiation
- a bidirectional stream can be created like normal QUIC.
- the receiver Before the boundary frame is received, the receiver can respond to data like a normal QUIC stream, and after the boundary frame is received, it starts entering QUICU mode.
- boundary frames, correlation frames, and expired offset frames must not be sent to a peer when the peer's QUICU identifier is not received during handshake negotiation. If a party receives a QUICU-specific frame from a peer that does not itself carry the QUICU identifier, it should disconnect and indicate to the other party that it does not support the QUICU protocol.
- QUICU mode will be used for the entire life cycle of the flow.
- QUICU mode may be one-way. Receiving a boundary frame indicates that the entity's incoming stream is in QUICU mode. However, the entity's outgoing streams can still be in normal QUIC mode.
- the data is usually encapsulated in stream frames, and boundary frames can be used to indicate the boundaries between independent blocks of data in the data stream.
- the beginning and end of an independent data block may be determined by two boundary frames. Except for the first independent data block and the last independent data block, the starting position of the first independent data block is the beginning of the data flow, and the end position of the last independent data block is the end of the data flow.
- the way of dividing the data blocks includes dividing according to the length of the data each time the user calls the write interface.
- the packaging measures include placing the Boundary Frame and the first byte of the corresponding data block in the same QUIC packet, which facilitates retransmission of the Boundary Frame.
- priorities can be set at the interface. For example, QUIC The protocol stack creates different Streams for different priorities, which are not application-aware.
- a Correlation Frame needs to be sent, in which the Stream ID is the ID that initiated the request, and the Correlation ID is the ID corresponding to the Stream built by the protocol stack. For example, in the same request, there is only one stream ID, but there can be multiple correlation IDs.
- the data in each Boundary frame is delivered to the application layer in order, and the minimum delivery unit is a Boundary frame, that is, the data of the entire Boundary frame has been received in order. , can be delivered to the application. However, when the data of a Boundary frame expires, the data of subsequent Boundary frames can continue to be delivered to the application layer.
- the callback is performed in units of boundary frames, that is, a data callback can be performed each time a continuous stream offset is greater than or equal to the first boundary offset is received.
- the stream needs to be set to block state and wait for relevant frames. After the relevant frame arrives, associate the quic stream created by the server with the quic stream created by the client. After association, data callback is performed in units of boundary frames.
- an Expire Frame is received, it means that the sender will no longer retransmit the content before the Offset corresponding to the StreamID specified in the Expire Frame. The receiving end needs to discard the block content. If there is a complete block later, it can continue to return data to the user.
- the sending data segment of the flow may be considered to have been lost.
- an expired offset frame can be sent to notify the other party that some data of the stream has been lost and will not be retransmitted, and the expired offset frame needs to be sent as soon as possible.
- the unreliable implementation of the technical solution of the present disclosure is to notify the other party that the data has been lost by sending an Expire Frame.
- the frame needs to be sent out as quickly as possible and is not guaranteed to be reliable.
- the expiration time may be a fixed value or set by the user through the application. For example, use a fixed expiration time, or use a callback to let the user decide how to expire. Regardless of application layer implementation or protocol stack implementation, each Boundary frame will be indexed.
- three new regular frames are added.
- the frame type requires IANA registration. These frames can be used in the above-mentioned transmission negotiation, data sending, data receiving, and data expiration processes.
- the timeout period can be configured by the sender itself, or the timeout period can be determined through negotiation.
- FIGS 2a-2c show schematic diagrams of some embodiments of frame structures according to the present disclosure.
- the boundary frame (Boundary Frame) includes the following content.
- Stream ID is the ID of a common QUIC stream (A common quic stream ID).
- Offset is the offset of the stream ID data (Stream ID's data offset), indicating the position offset of the stream corresponding to the "Stream ID”. "Offset" is the end position of an independent data block. Multiple boundary frames constitute multiple independent discardable content blocks. The starting offset of the first boundary data received is 0.
- the Stream ID in the Boundary Frame is the stream ID that transmits the data block.
- the offset in the Boundary Frame corresponds to the end position of the data block in the Stream.
- the start and end of a block can be determined by two blocks. The start position of the first block is 0 by default.
- the correlation frame includes the following content.
- Stream ID is the ID of a common QUIC stream (A common quic stream ID).
- Correlation Stream ID is the ID of a common QUIC stream (A common quic stream ID), which is the stream ID where the client initiates a request.
- the client delivers data from multiple streams to the buffer called by the same application layer through related frames.
- the Expire Offset Frame includes the following contents.
- Stream ID is the ID of a common QUIC stream (A common quic stream ID).
- Offset is the offset of the stream ID's data (Stream ID's data offset), which represents the position offset of the stream corresponding to the "Stream ID”. The data before "offset” has been lost and the data will not be retransmitted. The offset is also the value of a boundary frame.
- the Stream ID of the Expire Offset Frame is used to indicate which Stream is to be expired. Offset is the offset of the Stream Data Frame, which means that the server will no longer retransmit the data before the offset.
- the goal of QUICU is to provide applications with controllable unreliable data transmission capabilities. This capability has two modes, single-stream mode and multi-stream mode.
- multi-stream mode different types of data can be put into different streams. These streams can be mapped to the same request stream through related frames, thus solving the problem of single-stream mode.
- Each stream's data block must be completely A block of data is delivered to the application buffer before another stream can be delivered. If a stream's data chunks are blocked on delivery due to buffer size, all streams corresponding to the request should be blocked until the data can be delivered.
- the technical solution of the present disclosure may also include an error handling process. If the receiving end does not support QUICU mode but receives a boundary, expire offset or correlation frame, it should close the link and return to "QUICU not supported" mode.
- Figure 3 shows a schematic diagram of some embodiments of a data transmission method according to the present disclosure.
- a streaming media application is transmitting HTTP (HyperText Transfer Protocol, Hypertext Transfer Protocol)-FLV (FLASH VIDEO) video data. Due to real-time reasons, audio and video need to be transmitted separately.
- HTTP HyperText Transfer Protocol
- Hypertext Transfer Protocol Hypertext Transfer Protocol
- FLASH VIDEO FLASH VIDEO
- two streams are created on the server side, respectively used to transmit audio and video, that is, "data of different priorities" in Figure 3.
- the stream of the received request is used to reply to the http response and send the header information of flv, that is, the "file header" in Figure 3.
- the server first responds to the relevant header through the client's stream, then creates a stream and sends a CORRELATION frame, and finally transmits audio and video data.
- this process does not guarantee the order in which the data actually arrives at the client. Therefore, a state is needed to maintain their relationship. Audio and video streams, that is, data of different priorities and file headers, are all controlled by the state, and are in a blocking state under state control.
- the status control after receiving the CORRELATION frame, it will act on the status control; the status control will set the non-priority data and file header indicated by the CORRELATION frame to the non-blocking state, that is, start transmitting data to the application. .
- FIGS 4a-4b show block diagrams of some embodiments of the data transmission device of the present disclosure.
- the data transmission device 4a is provided at the sending end and includes: a connection unit 41a, used to establish a connection with the receiving end of the data to be transmitted; a sending unit 42a, used to send an indication to the receiving end of the data to be transmitted.
- An expired offset frame for data that is not to be retransmitted a boundary frame used to indicate the boundary position of a data block in a data stream of data to be transmitted, or a correlation used to correlate multiple data streams created based on the same request in the data to be transmitted.
- At least one of the frames so that the receiving end transmits the data to be transmitted according to at least one of the expired offset frame, the boundary frame or the related frame.
- the transmission device 4a includes: a generating unit 43a, configured to generate at least one of an expired offset frame, a boundary frame or a related frame.
- the expired offset frame includes a first offset indicating that it is to be transmitted Data in the data stream before the first offset relative to the expired offset frame is not retransmitted.
- the boundary position includes an end position
- the boundary frame includes a second offset
- the second offset is used to indicate an end position of the data block.
- the boundary frame is used to save information related to transmission of a data segment, information related to retransmission, or information related to a retransmission request in the case where the data segment included in the data block has been lost and is not retransmitted.
- boundary frames are used to assign the same transmission priority to multiple data segments included in a data block.
- the same transmission priority is used to indicate that in the event that a part of the data segments in the data block is lost and is not retransmitted, another part of the data segments in the data block is not retransmitted either.
- the related frame includes a related stream ID that is the same for each of multiple data streams created based on the same request.
- multiple data streams associated with related frames are presented together.
- the sending unit 42a when establishing a connection, the sending unit 42a confirms whether the receiving end supports QUICU according to the identifier of the receiving end. At least one of an expired offset frame, a boundary frame, or a correlation frame is sent if the receiving end supports QUICU.
- the data transmission device 4b is provided at the receiving end and includes: a connection unit 43b, used to establish a connection with the sending end of the data to be transmitted; a receiving unit 41b, used to receive instructions sent by the sending end to be transmitted.
- the transmission unit 42b is configured to transmit the data to be transmitted according to at least one of the expired offset frame, the boundary frame or the relevant frame.
- FIG. 5 shows a block diagram of other embodiments of the data transmission device of the present disclosure.
- the data transmission device 5 of this embodiment includes: a memory 51 and a processor 52 coupled to the memory 51 .
- the processor 52 is configured to execute the instructions of the present disclosure based on instructions stored in the memory 51 .
- Data transmission method in any embodiment.
- the memory 51 may include, for example, system memory, fixed non-volatile storage media, etc.
- System memory stores, for example, operating systems, applications, boot loaders, databases, and other programs.
- Figure 6 shows a block diagram of further embodiments of the data transmission device of the present disclosure.
- the data transmission device 6 of this embodiment includes: a memory 610 and a memory 610 coupled to the memory 610.
- the processor 620 of the memory 610 is configured to execute the data transmission method in any of the foregoing embodiments based on instructions stored in the memory 610.
- Memory 610 may include, for example, system memory, fixed non-volatile storage media, and the like.
- System memory stores, for example, operating systems, applications, boot loaders, and other programs.
- the data transmission device 6 may also include an input/output interface 630, a network interface 640, a storage interface 650, etc. These interfaces 630, 640, 650, the memory 610 and the processor 620 may be connected through a bus 660, for example. Among them, the input and output interface 630 provides connection interfaces for input and output devices such as monitors, mice, keyboards, touch screens, microphones, and speakers. Network interface 640 provides a connection interface for various networked devices. The storage interface 650 provides a connection interface for external storage devices such as SD cards and USB disks.
- Figure 7 illustrates a block diagram of some embodiments of the data transmission system of the present disclosure.
- the data transmission system 7 includes: a sending end 71, used to perform the data transmission method on the sending side in any of the above embodiments; a receiving end 72, used to perform the receiving end in any of the above embodiments. Data transfer method.
- a streaming media application is transmitting video data. It writes 5 FLV Video Tags to the QUIC unreliable stream (the stream data before A, B, C, D, and E have all been delivered to the application layer. For simplicity, this example only represents a non-reliable stream).
- QUIC generates the corresponding BOUNDARY frame (boundary frame) every time the application writes.
- the BOUNDARY frame is used to indicate the starting position of a data block (such as Tag A ⁇ E) in the data stream.
- Tag A was truncated into part 1 and part 2 due to its excessive size, but QUIC ensures that the BOUNDARY frame of A and the beginning part of A (such as part 1 of Tag A) are sent in the same QUIC packet.
- the receiving end receives the BOUNDARY frame of A and the beginning of A. However, it cannot deliver A to the application at this time because it has not received the next BOUNDARY frame.
- the receiving end successively receives the remaining part of A (such as part 2 of Tag A), the starting stream data of B (such as part 1 of Tag B) and the corresponding BOUNDARY frame. Since the receiving end has received two BOUNDARY frames, and the continuous content in the middle has been received, and the previous data has been delivered, it delivers A to the application layer.
- the data segments between the boundary frame and the previous boundary frame are delivered to the application by the receiving end.
- the sending end decides to actively expire B.
- the sending end sends an EXPIRE_OFFSET frame (not shown in the figure) out, that is, expired offset frame).
- the receiving end After receiving the EXPIRE_OFFSET frame, the receiving end increases the minimum offset value (buffer offset) of the buffered data of the received data to the position specified by the EXPIRE_OFFSET frame, which is the position where B ends. Notify the receiving end through EXPIRE_OFFSET that the data segment before the offset of EXPIRE_OFFSET will not be retransmitted.
- the receiving end does not confirm receipt of the data block within a preset time, send an expired offset frame to the receiving end.
- the remaining data of B is not retransmitted by the sending end, and the receiving end receives the stream data of C and D and their BOUNDARY frames. Since the BOUNDARY frames of C and D have been received, and the continuous data in the middle has been received, the previous data has been expired, so the receiving end can deliver the stream data of C to the application (indicated in bold in the figure).
- both ends send/receive the remaining data.
- the sender sends an empty BOUNDARY frame before the end to indicate that the data block is sent and received. complete.
- unreliable transmission can also be achieved.
- the receiving end's data reading strategy needs to be modified. Under this semantics, the receiving end only needs one BOUNDARY frame to know the end position of a piece of data, and the starting position can be calculated from the position of the BOUNDARY frame.
- embodiments of the present disclosure may be provided as methods, systems, or computer program products. Accordingly, the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment that combines software and hardware aspects. Furthermore, the present disclosure may take the form of a computer program product embodied on one or more computer-usable non-transitory storage media (including, but not limited to, disk memory, CD-ROM, optical storage, etc.) having computer-usable program code embodied therein. .
- the methods and systems of the present disclosure may be implemented in many ways.
- the methods and systems of the present disclosure may be implemented through software, hardware, firmware, or any combination of software, hardware, and firmware.
- the above order for the steps of the methods is for illustration only, and the steps of the methods of the present disclosure are not limited to the order specifically described above unless otherwise specifically stated.
- the present disclosure may also be implemented as programs recorded in recording media, and these programs include machine-readable instructions for implementing methods according to the present disclosure. Therefore, this disclosure A recording medium storing a program for executing the method according to the present disclosure is also covered.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
Description
Claims (19)
- 一种数据传输方法,包括:建立与待传输数据的接收端的连接;向所述接收端发送用于指示所述待传输数据中不被重新传输的数据的过期偏移帧、用于指示所述待传输数据的数据流中数据块的边界位置的边界帧或者用于关联所述待传输数据中基于同一请求创建的多个数据流的相关帧中的至少一个,以便所述接收端根据所述过期偏移帧、所述边界帧或者所述相关帧中的至少一个进行所述待传输数据的传输,其中,在所述接收端在预设时间内没有确认接收到所述数据块的情况下,向所述接收端发送所述过期偏移帧。
- 根据权利要求1所述的数据传输方法,其中,在接收到所述边界帧且所述边界帧与上一边界帧之间的数据段均已被接收端接收到的情况下,所述边界帧与上一边界帧之间的数据段被所述接收端交付给应用。
- 根据权利要求1或2所述的数据传输方法,其中,所述过期偏移帧包括第一偏移量,所述第一偏移量用于指示所述待传输数据的数据流中相对于所述过期偏移帧的所述第一偏移量之前的数据不被重新传输。
- 根据权利要求1~3任一项所述的数据传输方法,其中,所述边界位置包括结束位置,所述边界帧包括第二偏移量,所述第二偏移量用于指示所述数据块的结束位置。
- 根据权利要求1~4任一项所述的数据传输方法,其中,所述边界帧用于在所述数据块包括的数据段已丢失且不被重新传输的情况下,保存所述数据段的传输的相关信息、重新传输的相关信息或重新传输请求的相关信息。
- 根据权利要求1~5任一项所述的数据传输方法,其中,所述边界帧用于为所述数据块包括的多个数据段分配相同的传输优先级。
- 根据权利要求6所述的数据传输方法,其中,所述相同的传输优先级用于指示在所述数据块中的一部分数据段丢失且不被重新传输的情况下,所述数据块中的另一部分数据段也不被重新传输。
- 根据权利要求1~7任一项所述的数据传输方法,其中,所述相关帧包括相关流ID,所述基于同一请求创建的多个数据流中的每一个的相关流ID相同。
- 根据权利要求1~8任一项所述的数据传输方法,其中,所述相关帧关联的所述多个数据流被一起呈现。
- 根据权利要求1-9任一项所述的数据传输方法,还包括:在建立所述连接时,根据所述接收端的标识符,确认所述接收端是否支持扩展的快速用户数据报协议互联网连接QUICU,其中,所述过期偏移帧、所述边界帧或者所述相关帧中的至少一个在所述接收端支持QUICU的情况下被发送。
- 一种数据传输方法,包括:建立与待传输数据的发送端的连接;接收所述发送端发送的用于指示所述待传输数据中不被重新传输的数据的过期偏移帧、用于指示所述待传输数据的数据流中数据块的边界位置的边界帧或者用于关联所述待传输数据中基于同一请求创建的多个数据流的相关帧中的至少一个,在所述待传输数据的接收端在预设时间内没有确认接收到所述数据块的情况下,所述过期偏移帧被所述发送端发送;根据所述过期偏移帧、所述边界帧或者所述相关帧中的至少一个进行所述待传输数据的传输。
- 根据权利要求11所述的数据传输方法,还包括:在建立所述连接时,向所述发送端发送标识符,用于标识所述待传输数据的接收端是否支持扩展的快速用户数据报协议互联网连接QUICU,其中,所述过期偏移帧、所述边界帧或者所述相关帧中的至少一个在所述接收端 支持QUICU的情况下被发送。
- 一种数据传输装置,所述传输装置设置在发送端,包括:连接单元,用于建立与待传输数据的接收端的连接;发送单元,用于向所述接收端发送用于指示所述待传输数据中不被重新传输的数据的过期偏移帧、用于指示所述待传输数据的数据流中数据块的边界位置的边界帧或者用于关联所述待传输数据中基于同一请求创建的多个数据流的相关帧中的至少一个,以便所述接收端根据所述过期偏移帧、所述边界帧或者所述相关帧中的至少一个进行所述待传输数据的传输;其中,所述发送单元在所述接收端在预设时间内没有确认接收到所述数据块的情况下,向所述接收端发送所述过期偏移帧。
- 一种数据传输装置,所述传输装置设置在接收端,包括:连接单元,用于建立与待传输数据的发送端的连接;接收单元,用于接收所述发送端发送的用于指示所述待传输数据中不被重新传输的数据的过期偏移帧、用于指示所述待传输数据的数据流中数据块的边界位置的边界帧或者用于关联所述待传输数据中基于同一请求创建的多个数据流的相关帧中的至少一个,在所述待传输数据的接收端在预设时间内没有确认接收到所述数据块的情况下,所述过期偏移帧被所述发送端发送;传输单元,用于根据所述过期偏移帧、所述边界帧或者所述相关帧中的至少一个进行所述待传输数据的传输。
- 一种数据传输系统,包括:发送端,用于执行权利要求1~10任一项所述的数据传输方法;接收端,用于执行权利要求11或12所述的数据传输方法。
- 一种数据传输装置,包括:存储器;和耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器装置中的指令,执行权利要求1~12任一项所述的数据传输方法。
- 一种非易失性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1~12任一项所述的数据传输方法。
- 一种计算机程序,包括:指令,所述指令当由处理器执行时使所述处理器执行根据权利要求1~12任一项所述的数据传输方法。
- 一种计算机程序产品,包括指令,所述指令当由处理器执行时使所述处理器执行根据权利要求1~12任一项所述的数据传输方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202380054941.0A CN119563299A (zh) | 2022-07-26 | 2023-07-25 | 数据传输方法、装置和系统 |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CNPCT/CN2022/107952 | 2022-07-26 | ||
| CN2022107952 | 2022-07-26 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024022334A1 true WO2024022334A1 (zh) | 2024-02-01 |
Family
ID=89705531
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2023/109109 Ceased WO2024022334A1 (zh) | 2022-07-26 | 2023-07-25 | 数据传输方法、装置和系统 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN119563299A (zh) |
| WO (1) | WO2024022334A1 (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119547414A (zh) * | 2022-07-26 | 2025-02-28 | 抖音视界有限公司 | 数据传输方法、装置和系统 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107040343A (zh) * | 2016-02-03 | 2017-08-11 | 中国移动通信集团公司 | 一种重传调度方法及装置 |
| CN111740808A (zh) * | 2019-03-25 | 2020-10-02 | 华为技术有限公司 | 一种数据传输方法及装置 |
| US20220166832A1 (en) * | 2020-04-16 | 2022-05-26 | Huawei Technologies Co., Ltd. | Device and Method for Romote Direct Memory Access |
| US20220191139A1 (en) * | 2020-12-16 | 2022-06-16 | Nokia Solutions And Networks Oy | Reliable generic routing encapsulation tunnels |
| CN114697240A (zh) * | 2020-12-31 | 2022-07-01 | 华为技术有限公司 | 数据传输方法、装置、系统及存储介质 |
-
2023
- 2023-07-25 WO PCT/CN2023/109109 patent/WO2024022334A1/zh not_active Ceased
- 2023-07-25 CN CN202380054941.0A patent/CN119563299A/zh active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107040343A (zh) * | 2016-02-03 | 2017-08-11 | 中国移动通信集团公司 | 一种重传调度方法及装置 |
| CN111740808A (zh) * | 2019-03-25 | 2020-10-02 | 华为技术有限公司 | 一种数据传输方法及装置 |
| US20220166832A1 (en) * | 2020-04-16 | 2022-05-26 | Huawei Technologies Co., Ltd. | Device and Method for Romote Direct Memory Access |
| US20220191139A1 (en) * | 2020-12-16 | 2022-06-16 | Nokia Solutions And Networks Oy | Reliable generic routing encapsulation tunnels |
| CN114697240A (zh) * | 2020-12-31 | 2022-07-01 | 华为技术有限公司 | 数据传输方法、装置、系统及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN119563299A (zh) | 2025-03-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI559717B (zh) | 互動式即時媒體之傳輸協議 | |
| CN102006283B (zh) | 数据传输的方法和装置 | |
| JP5816718B2 (ja) | 通信装置、通信システム、およびデータ通信の中継方法 | |
| EP3108639B1 (en) | Transport accelerator implementing extended transmission control functionality | |
| US20200358886A1 (en) | Data Transmission Method, Apparatus, And System | |
| CN115883680B (zh) | 一种基于arq的udp协议数据传输方法、系统及设备 | |
| CN114051173B (zh) | 一种基于rtp扩展头部的视频帧可靠传输方法、装置及设备 | |
| CN102143137A (zh) | 媒体流发送及接收方法、装置和系统 | |
| CN106612284B (zh) | 一种流数据的传输方法和装置 | |
| CN101854286A (zh) | 基于用户数据报协议的数据流发送、接收方法及装置 | |
| EP3742746A1 (en) | Method and device for realizing video service, and communication system and computer-readable storage medium | |
| CN112769526B (zh) | 数据包重传方法、系统和存储介质 | |
| CN117978787A (zh) | 数据传输方法、装置、系统、电子设备及存储介质 | |
| US12192003B2 (en) | Network equipment and method for delivering data packets | |
| US20190387029A1 (en) | Method and system for upload optimization | |
| WO2024022334A1 (zh) | 数据传输方法、装置和系统 | |
| CN115801199A (zh) | 一种确认报文的处理方法和通信装置以及存储介质 | |
| WO2024022335A1 (zh) | 数据传输方法、装置和系统 | |
| CN115348336B (zh) | 异构数据流的通用传输架构 | |
| US11811877B2 (en) | Universal transport framework for heterogeneous data streams | |
| Hurtig et al. | SCTP: designed for timely message delivery? | |
| WO2025251782A1 (zh) | 图像帧处理方法、网络设备、存储介质和程序产品 | |
| WO2023280405A1 (en) | Multiple data flows management | |
| WO2009138365A1 (en) | Method of communication between a source unit and a destination unit and communication node | |
| JP2004186737A (ja) | 通信装置及び通信システム |
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: 23845543 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 202380054941.0 Country of ref document: CN |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWP | Wipo information: published in national office |
Ref document number: 202380054941.0 Country of ref document: CN |
|
| 32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205 DATED 03.06.2025) |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 23845543 Country of ref document: EP Kind code of ref document: A1 |