Multi-channel data transmission method and device

By negotiating reliable, unreliable, and semi-reliable channels between devices and dynamically adjusting the transmission method, the problem of insufficient flexibility of the transmission protocol is solved, and the flexibility and efficiency of data transmission are improved, especially the stable transmission of delay-sensitive data.

CN115914438BActive Publication Date: 2025-09-05ZHEJIANG DAHUA TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202211117482.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-09-14
Publication Date
2025-09-05
Estimated Expiration
2042-09-14

AI Technical Summary

Technical Problem

Existing transmission protocols are not flexible enough when transmitting data between devices, which affects data transmission efficiency, especially for delay-sensitive data such as audio and video streams.

Method used

By negotiating reliable channels, unreliable channels, and semi-reliable channels under the preset transmission protocol connection between devices, hierarchical transmission is performed according to data characteristics, and data is transmitted using reliable channels, unreliable channels, and semi-reliable channels. The transmission method is dynamically adjusted to adapt to different reliability and latency requirements.

Benefits of technology

It improves the flexibility and efficiency of data transmission, ensures the stable transmission of delay-sensitive data, and reduces the impact of data loss and delay.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115914438B_ABST
    Figure CN115914438B_ABST
Patent Text Reader

Abstract

This application discloses a multi-channel data transmission method and apparatus. The multi-channel data transmission method includes: a first device negotiates a data connection with a second device using a predetermined transmission protocol, using at least one of a reliable channel, an unreliable channel, and a semi-reliable channel; and transmitting data via the at least one of the reliable channel, the unreliable channel, and the semi-reliable channel. This application can improve the flexibility of data transmission.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of data transmission, and in particular to a multi-channel data transmission method and device. Background Art

[0002] With the development of Internet technology, data transmission between devices can be carried out over the Internet. Currently, data transmission between devices is carried out through various transmission protocols. However, the transmission methods of these transmission protocols are not flexible enough, which to some extent affects data transmission efficiency. Summary of the Invention

[0003] The present application provides a multi-channel data transmission method and device, which can improve the flexibility of the transmission mode.

[0004] To achieve the above objectives, the present application provides a multi-channel data transmission method, the method comprising:

[0005] The first device negotiates with the second device a data connection using a preset transmission protocol, including at least one of a reliable channel and an unreliable channel, and a semi-reliable channel;

[0006] Data is transmitted through at least one of a reliable channel and an unreliable channel and a semi-reliable channel.

[0007] The first device negotiates at least one of a reliable channel and an unreliable channel and a semi-reliable channel under a data connection of a preset transmission protocol with the second device, including:

[0008] Negotiate a maximum delay threshold for each semi-reliable channel under a data connection of a preset transmission protocol with the second device;

[0009] Transmitting data through at least one of a reliable channel and an unreliable channel and a semi-reliable channel, including:

[0010] transmitting first data through at least half of the reliable channels;

[0011] Transmitting data through at least one of a reliable channel and an unreliable channel and a semi-reliable channel, and then including:

[0012] Detect the transmission delay of the currently used semi-reliable channel;

[0013] If the transmission delay of the currently used semi-reliable channel is greater than the maximum delay threshold, semi-reliable channels other than the at least half-reliable channel are enabled to perform subsequent transmission of the first data.

[0014] Wherein, the first data is video data;

[0015] Enabling a semi-reliable channel other than the at least half-reliable channel for subsequent transmission of first data includes:

[0016] discarding remaining frames in a current group of pictures of the video data in the application layer of the first device;

[0017] The group of images subsequent to the current group of images is sent to the second device using a semi-reliable channel other than the at least half-reliable channel.

[0018] The enabling of the semi-reliable channels other than the at least half-reliable channels for subsequent transmission of the first data includes:

[0019] When it is confirmed that the transmission delay of the currently used semi-reliable channel exceeds the maximum delay threshold, if the sending end has not encoded and generated the image group after the current image group, the first device forcibly encodes and generates a new I frame to forcibly generate the image group data after the current image group.

[0020] Wherein, at least one channel includes an unreliable channel, and transmitting data through at least one of the reliable channel and the unreliable channel and the semi-reliable channel includes: transmitting second data through at least one unreliable channel;

[0021] Transmitting data through at least one of a reliable channel and an unreliable channel and a semi-reliable channel, and then including:

[0022] Detect whether there is data loss in the currently used unreliable channel transmission;

[0023] If data loss occurs, a transmission mode for the second data is determined based on the data transmission status of the currently used unreliable channel.

[0024] The determining of the transmission mode of the second data based on the data transmission status of the currently used unreliable channel includes:

[0025] When the data transmission situation meets the worst transmission condition of the unreliable channel, reducing the amount of the second data, and transmitting the second data with the reduced amount of data through the currently used unreliable channel;

[0026] When the data transmission condition meets the second poor transmission condition of the unreliable channel, redundantly sending the second data through the currently used unreliable channel and an unreliable channel other than the currently used unreliable channel;

[0027] In a case where the data transmission situation meets the third worst transmission condition of the unreliable channel, a semi-reliable channel other than the currently used semi-reliable channel is used to replace the currently used unreliable channel for sending the second data.

[0028] The data transmission situation includes the packet loss rate and maximum transmission delay of the currently used unreliable channel;

[0029] If the packet loss rate of the currently used unreliable channel is less than the first lower limit and the maximum transmission delay is less than the second lower limit, then the data transmission situation meets the third poor transmission condition of the unreliable channel;

[0030] If the packet loss rate of the currently used unreliable channel is less than the first upper limit and the maximum transmission delay is less than the second upper limit, and the packet loss rate is greater than the first lower limit or the maximum transmission delay is greater than the second lower limit, then the data transmission situation meets the second poor transmission condition of the unreliable channel;

[0031] If the packet loss rate of the currently used unreliable channel is greater than the first upper limit or the maximum transmission delay is greater than the second upper limit, the data transmission situation meets the worst transmission condition of the unreliable channel.

[0032] The preset transmission protocol is a QUIC connection, and the first device negotiates at least one of a reliable channel and an unreliable channel and a semi-reliable channel under a data connection of the preset transmission protocol between the first device and the second device, including:

[0033] Negotiate at least one of a reliable channel identifier set and an unreliable channel identifier set and a semi-reliable channel identifier set under a QUIC connection with the second device;

[0034] Transmitting data through at least one of a reliable channel and an unreliable channel and a semi-reliable channel, comprising: processing third data into first stream data, processing the first data into second stream data, and / or processing the second data into third stream data, and transmitting at least one of the first stream data and the second stream data and the third stream data through the same QUIC connection;

[0035] Among them, the first stream data is the data of the stream identified as the semi-reliable stream identifier, the semi-reliable channel is the channel for transmitting the first stream data, the second stream data is the data of the stream identified as the unreliable stream identifier, the unreliable channel is the channel for transmitting the second stream data, the third stream data is the data of the stream identified as the reliable stream identifier, and the reliable channel is the channel for transmitting the third stream data.

[0036] The negotiation of at least one of a reliable channel identifier set and an unreliable channel identifier set and a semi-reliable channel identifier set under a QUIC connection with the second device includes:

[0037] If the first device supports the stream hierarchical transmission capability, the second device is informed of at least two stream identifier sets among the reliable stream identifier set, the semi-reliable stream identifier set, and the unreliable stream identifier set of the first device, so as to confirm, if the second device supports the stream hierarchical transmission capability, at least one identifier set among the reliable channel identifier set and the unreliable channel identifier set and the semi-reliable channel identifier set under the QUIC connection between the second device and the second device in combination with the at least two stream identifier sets of the second device;

[0038] The at least two flow identifier sets of the preset device include a semi-reliable flow identifier set, and the preset device is the first device and / or the second device.

[0039] The negotiation of at least one of a reliable channel identifier set and an unreliable channel identifier set and a semi-reliable channel identifier set under a QUIC connection with the second device includes:

[0040] In combination with at least two flow identifier sets of the first device, at least two flow identifier sets of the second device, and the maximum delay threshold of each flow identifier in the semi-reliable flow identifier set provided by the preset device, confirm at least one of the reliable flow identifier and semi-reliable flow identifier under the QUIC connection with the second device, the semi-reliable flow identifier, and the maximum delay threshold of each semi-reliable flow identifier.

[0041] The preset devices are the first device and the second device, and confirming at least one of a reliable flow identifier and a semi-reliable flow identifier under the QUIC connection with the second device, a semi-reliable flow identifier, and a maximum delay threshold for each semi-reliable flow identifier includes:

[0042] When the semi-reliable flow identifier set of the first device and the semi-reliable flow identifier set of the second device both include the same semi-reliable flow identifier, the minimum value of the maximum delay threshold of the same semi-reliable flow identifier provided by the first device and the maximum delay threshold of the same semi-reliable flow identifier provided by the second device is used as the maximum delay threshold of the same semi-reliable flow identifier.

[0043] The data is transmitted through at least one of a reliable channel and an unreliable channel and a semi-reliable channel, including:

[0044] transmitting first data through a semi-reliable channel, transmitting second data through an unreliable channel, and / or transmitting third data through a reliable channel;

[0045] The first data includes video data, the second data is audio data, and the third data includes signaling data.

[0046] To achieve the above objectives, the present application also provides an electronic device, which includes a processor; the processor is used to execute instructions to implement the above method.

[0047] To achieve the above objectives, the present application also provides a computer-readable storage medium for storing instructions / program data, which can be executed to implement the above method.

[0048] In the present application, the first device and the second device negotiate at least one of the reliable channel and the unreliable channel and the semi-reliable channel under the data connection of the preset transmission protocol between the two, and then use the at least one of the reliable channel and the unreliable channel and the semi-reliable channel to transmit data respectively, so that the data connection of the preset transmission protocol supports transmission capabilities of different reliability levels, and the same data connection can simultaneously include at least one of the reliable data transmission and the unreliable data transmission and the semi-reliable data transmission, so that when transmitting data between devices, the corresponding data can be transmitted using at least one of the reliable channel and the unreliable channel and the semi-reliable channel according to the latency and reliability requirements of the business data, which makes data transmission more flexible and can also improve data transmission efficiency to a certain extent. BRIEF DESCRIPTION OF THE DRAWINGS

[0049] The drawings described herein are used to provide a further understanding of the present application and constitute a part of the present application. The illustrative embodiments of the present application and their descriptions are used to explain the present application and do not constitute an improper limitation on the present application. In the drawings:

[0050] Figure 1 This is a flowchart of an embodiment of a multi-channel data transmission method of the present application;

[0051] Figure 2 This is a schematic diagram of the data transmission process of another embodiment of the multi-channel data transmission method of the present application;

[0052] Figure 3 This is a flowchart of another embodiment of the multi-channel data transmission method of the present application;

[0053] Figure 4 This is a schematic structural diagram of an embodiment of the electronic device of the present application;

[0054] Figure 5 It is a structural diagram of an embodiment of a computer-readable storage medium of the present application. DETAILED DESCRIPTION

[0055] The technical solutions in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without making creative work are within the scope of protection of this application. In addition, unless otherwise specified (for example, "or in addition" or "or in an alternative"), the term "or" as used herein refers to a non-exclusive "or" (that is, "and / or"). Furthermore, the various embodiments described herein are not necessarily mutually exclusive, because some embodiments can be combined with one or more other embodiments to form new embodiments.

[0056] Currently, when data is transmitted through a standard preset transmission protocol, the preset transmission protocol will indiscriminately transmit all user data reliably or unreliably. It is not friendly enough for delay-sensitive data such as audio and video streams, and the transmission method is not flexible enough.

[0057] Based on this, the present application proposes a multi-channel data transmission method, which first negotiates at least one of a reliable channel and an unreliable channel and a semi-reliable channel under the data connection of a preset transmission protocol between two devices. In this way, the sending end can use the negotiated and confirmed channel information to perform reliable transmission / unreliable transmission and semi-reliable transmission of each part of the user's data, that is, hierarchical transmission can be performed according to the data characteristics, and the data transmission method is more flexible.

[0058] Specific as Figure 1 As shown, the multi-channel data transmission method of this embodiment includes the following steps. The above-mentioned multi-channel data transmission method is applied to the data transmission process between the first device and the second device. The first device and the second device can be servers, tablet computers, smart home devices, mobile terminals, etc., which are not limited here. It should be noted that the following step numbers are only used to simplify the description and are not intended to limit the execution order of the steps. The steps of this embodiment can be arbitrarily changed in execution order without violating the technical ideas of this application.

[0059] S101: A first device negotiates with a second device at least one of a reliable channel and an unreliable channel and a semi-reliable channel under a data connection of a preset transmission protocol.

[0060] The first device can negotiate with the second device about at least one of the reliable channel and the unreliable channel and the semi-reliable channel under the data connection of the preset transmission protocol between the two, so that data can be transmitted separately by using the at least one of the reliable channel and the unreliable channel and the semi-reliable channel respectively. In this way, the data connection of the preset transmission protocol supports transmission capabilities of different reliability levels, and the same data connection can simultaneously include at least one of the reliable data transmission and the unreliable data transmission and the semi-reliable data transmission. Therefore, when the first device and the second device transmit data, they can use the at least one of the reliable channel and the unreliable channel and the semi-reliable channel to transmit the corresponding data according to the latency and reliability requirements of the business data, which makes data transmission more flexible and can also improve data transmission efficiency to a certain extent.

[0061] Optionally, the first device may negotiate with the second device to confirm at least one of the reliable channel identification set and the unreliable channel identification set and the semi-reliable channel identification set under the data connection of the preset transmission protocol between the two. Specifically, the first device may inform the second device of at least one of the reliable channel identification set and the unreliable channel identification set and the semi-reliable channel identification set of the first device itself, so that the second device knows at least one of the reliable channel identification set and the unreliable channel identification set and the semi-reliable channel identification set of the other end (i.e., the first device). Similarly, the second device may inform the first device of at least one of the reliable channel identification set and the unreliable channel identification set and the semi-reliable channel identification set of the second device itself, so that the first device knows at least one of the reliable channel identification set and the unreliable channel identification set and the semi-reliable channel identification set of the other end (i.e., the second device). In this way, the first device / second device can know the reliable channel identification set and at least one identification set of the unreliable channel identification set and the semi-reliable channel identification set under the data connection of the preset transmission protocol between the first device and the second device by combining the reliable channel identification set and at least one identification set of the unreliable channel identification set and the semi-reliable channel identification set of the local end and the opposite end.

[0062] Among them, the preset transmission protocol may be QUIC (Quick UDP Internet Connections, a low-latency Internet transport layer protocol based on UDP). In step S101, the first device and the second device negotiate a reliable stream identifier, at least one of an unreliable stream identifier, and a semi-reliable stream identifier under the QUIC connection between the two. Among them, a reliable stream channel is a channel for transmitting stream data identified as a reliable stream identifier, an unreliable stream channel is a channel for transmitting stream data identified as an unreliable stream identifier, and a semi-reliable stream channel is a channel for transmitting stream data identified as a semi-reliable stream identifier. Of course, in other embodiments, the preset transmission protocol may also be other protocols such as UDT, KCP, RUDP, RTP / RTCP, and there is no limitation here.

[0063] Furthermore, in step S101, when the first device supports the flow classification transmission capability, the first device informs the second device of at least one of the reliable flow identification set and unreliable flow identification set of the first device and a semi-reliable flow identification set, so that the second device knows the reliable channel set and at least one of the unreliable channel set and a semi-reliable channel set of the opposite end (i.e., the first device). Similarly, when the second device supports the flow classification transmission capability, the second device informs the first device of at least one of the reliable flow identification set and unreliable flow identification set of the second device and a semi-reliable flow identification set, so that the first device knows the reliable channel set and at least one of the unreliable channel set and a semi-reliable channel set of the opposite end (i.e., the second device). In this way, the first device /

[0064] The second device can know the reliable channel set and at least one of the unreliable channel sets and the semi-reliable channel set under the data connection of the preset transmission protocol between the first device and the second device by combining the reliable channel set and at least one of the unreliable channel sets and the semi-reliable channel set of the local end and the opposite end.

[0065] In addition, during the negotiation between the first device and the second device to determine the semi-reliable channel under the data connection of the preset transmission protocol between the two devices, they can also negotiate to confirm the maximum delay threshold of each semi-reliable channel to enable semi-reliable data transmission. The first device and the second device can each set the maximum delay threshold of each semi-reliable channel based on the transmission delay requirements of the data to be transmitted by the semi-reliable channel. Specifically, during the negotiation between the first device and the second device, when the first device notifies the second device of the semi-reliable channel identifier set of the first device, it can also inform the second device of the maximum delay threshold of each semi-reliable channel in the semi-reliable channel set, so as to determine the maximum delay threshold of each semi-reliable channel under the data connection of the preset transmission protocol between the first device and the second device in combination with the maximum delay threshold of each semi-reliable channel in the semi-reliable channel set of the second device. Different maximum delay thresholds can be set for different semi-reliable channels. Of course, in other embodiments, different semi-reliable channels can have the same maximum delay threshold.

[0066] In the case where the semi-reliable channel set of the first device and the semi-reliable channel set of the second device both include the same semi-reliable channel, the minimum value of the maximum delay threshold of the same semi-reliable channel provided by the first device and the maximum delay threshold of the same semi-reliable channel provided by the second device can be used as the maximum delay threshold of the same semi-reliable channel. For example, in the case where the semi-reliable channel set of the first device and the semi-reliable channel set of the second device both include semi-reliable channel 6, the maximum delay threshold of semi-reliable channel 6 provided by the first device is 100ms, and the maximum delay threshold of semi-reliable channel 6 provided by the second device is 200ms, then the maximum delay threshold of semi-reliable channel 6 can ultimately be 100ms. Of course, in other embodiments, the average value or maximum value of the maximum delay threshold of the same semi-reliable channel provided by the first device and the maximum delay threshold of the same semi-reliable channel provided by the second device can also be used as the maximum delay threshold of the same semi-reliable channel.

[0067] In a specific implementation, the above-mentioned multiple identification sets may be presented in a list or other form. In addition, the above-mentioned identification set may be an empty set. The "identity" in the above-mentioned identification set may also be understood as ID (identity).

[0068] Exemplarily, in step S101, when the preset transmission protocol is QUIC, the first device and the second device may transmit the above-mentioned information such as the local end's supported stream hierarchical transmission capability, reliable stream ID list, semi-reliable stream ID list, unreliable stream ID list and / or the maximum delay threshold of each stream in the semi-reliable stream ID list through the transmission parameter list of the QUIC initial packet.

[0069] In addition, if at least one of the first device and the second device does not have channel-level transmission capabilities (i.e., the aforementioned stream-level transmission capabilities), the first device may negotiate with the second device that the attribute of the channel under the data connection of the preset transmission protocol is one of reliable, semi-reliable, and unreliable, and data is transmitted between the first device and the second device via the channel with the negotiated attributes. For example, if the first device does not have channel-level transmission capabilities, the first device may negotiate with the second device that the attribute of the channel under the data connection of the preset transmission protocol is reliable, and data is transmitted between the first device and the second device via a reliable channel.

[0070] S102: Transmit data through at least one of a reliable channel and an unreliable channel and a semi-reliable channel.

[0071] After the first device and the second device negotiate at least one of a reliable channel and an unreliable channel and a semi-reliable channel under a data connection of a preset transmission protocol between the two, the first device and the second device can use at least one of the reliable channel and the unreliable channel and the semi-reliable channel to transmit data.

[0072] When the transmission channel under the data connection of the preset transmission protocol includes a reliable channel, in step S102, the sending end in the first device and the second device can select to create a reliable channel from its own reliable channel set to send data to the receiving end in the first device and the second device. In this case, the receiving end will passively create a reliable channel and receive the data transmitted by the sending end. In this way, the first device and the second device can transmit data through the reliable channel under the data connection of the preset transmission protocol between them. In addition, after the receiving end receives the data, the receiving end can perform data acknowledgment for the reliable channel in the reliable channel set of the sending end, so that the sending end can confirm that the data has been successfully sent based on the data acknowledgment. If the sending end does not receive a data acknowledgment within a predetermined time after sending a data through the reliable channel, or receives information that the data is lost, the data can be retransmitted to the receiving end through the reliable channel to ensure that the data can be sent to the receiving end. That is, in reliable data transmission, data can be transmitted through a reliable channel, the transmitted data will not be damaged or lost, and all data is delivered in the order in which it was sent.

[0073] Preferably, signaling data can be transmitted through a reliable channel to ensure that each signaling data is reliably transmitted to the receiving end through the reliable channel, thereby ensuring normal communication between the first device and the second device. Of course, other types of data can also be transmitted through a reliable channel, such as text data, video data, or audio data.

[0074] If the transmission channel under the data connection of the preset transmission protocol includes a semi-reliable channel, in step S102, the transmitters in the first and second devices can select and create a semi-reliable channel from their own semi-reliable channel set to send data to the receivers in the first and second devices. In this case, the receiver will passively create a semi-reliable channel and receive the data transmitted by the transmitter. In this way, the first and second devices can transmit data via the semi-reliable channel under the data connection of the preset transmission protocol between them. In addition, after the receiver receives the data, the receiver can perform a data acknowledgment for the semi-reliable channel in the sender's semi-reliable channel set, so that the sender can confirm that the data has been successfully transmitted based on the data acknowledgment. In addition, the transmitters in the first and second devices can monitor the data transmission delay of the currently used semi-reliable channel and allow retransmission of lost data within a maximum delay threshold. That is, when transmitting data on the semi-reliable channel, retransmission of lost data is allowed within the maximum delay threshold, while retransmission of lost data is not allowed if the maximum delay threshold is exceeded. The receiving end in the first device and the second device can also confirm the data transmission delay for the flow channel in the semi-reliable flow ID list of the other end. If the data transmission exceeds the maximum delay threshold, the receiving end will notify the other end that the transmission delay of the channel has exceeded the maximum delay threshold. Of course, in other embodiments, semi-reliable data transmission can also be understood as allowing the importance of the data being sent to be indicated, thereby allowing the reliable transmission of important data and discarding other data when necessary.

[0075] Furthermore, in order to ensure low latency of data transmission, during the data transmission process of the currently used semi-reliable channel, it can be confirmed whether the transmission delay of the currently used semi-reliable channel exceeds the maximum delay threshold of the currently used semi-reliable channel; if it exceeds, a new semi-reliable channel that currently has no data transmission task can be enabled to send subsequent data, that is, a semi-reliable channel other than the currently used semi-reliable channel in the set of semi-reliable channels under the data connection of the preset transmission protocol between the first device and the second device is enabled. In this way, when subsequent data is sent through the new semi-reliable channel, the sending of subsequent data will not be affected by the tasks to be transmitted in the current semi-reliable channel, so that the subsequent data can be sent out faster, which can effectively reduce the delay of data transmission.

[0076] The transmission delay of the semi-reliable channel can be calculated by the data transmission time of the sending end and the data reception time of the receiving end. Specifically, the transmission delay of the semi-reliable channel can be equal to the value obtained by subtracting the data transmission time of the sending end from the data reception time of the receiving end. The time it takes for data to be sent from the application layer of the sending end to the transport layer of the sending end can be used as the data transmission time of the sending end. For example, if the preset transmission protocol is QUIC, the time it takes for data to be sent from the application layer of the sending end to the QUIC layer of the sending end can be used as the data transmission time of the sending end.

[0077] Combining the transmission characteristics of the semi-reliable channel and the above-mentioned method, video data can be transmitted through the semi-reliable channel to ensure that the video data is transmitted to the receiving end faster while reducing the impact on the video data presentation effect. Specifically, based on the characteristic that video data can lose frames, when it is confirmed that the transmission delay of the semi-reliable channel exceeds the maximum delay threshold, a new semi-reliable channel that currently has no data transmission task can be enabled to send the GOP after the current GOP. In this way, when the data transmission delay of the semi-reliable channel is large, the subsequent GOP is sent to the receiving end through the new semi-reliable channel. This solution can ensure that the I frame in the video data will not be lost, thereby reducing the impact of frame loss on the video data presentation effect, and the subsequent data (i.e., the GOP after the current GOP) can be sent out faster, which can effectively reduce the delay of data transmission and ensure that the currently sent video is the latest, reducing the picture delay.

[0078] Furthermore, when it is confirmed that the transmission delay of the semi-reliable channel exceeds the maximum delay threshold, if the sending end has not encoded and generated the GOP data after the current GOP or the timing for encoding and generating subsequent GOP data has not been reached, the sending end application layer can force encoding to generate a new I frame, that is, the sending end forces the generation of new GOP data. Specifically, the sending end can force encoding of its current display page or current captured image to form a new I frame.

[0079] Furthermore, if it is determined that the transmission delay of the semi-reliable channel exceeds the maximum delay threshold, the application layer of the transmitting end can be controlled to discard the remaining video frames of the current GOP transmitted on the semi-reliable channel. This prevents the receiving end from receiving the remaining video frames of the current GOP after receiving the video frame data of the subsequent GOP (these remaining video frames have become useless due to the arrival of the video frame data of the subsequent GOP). This improves the efficiency of the video frame data received by the receiving end and reduces the bandwidth pressure of the data connection, thereby ensuring effective data transmission. Moreover, when the subsequent GOP is sent to the receiving end via a new semi-reliable channel, if the receiving end has already received the first I frame of the subsequent GOP, the transmitting end can be notified to stop sending the video frames to be sent in the current GOP to the receiving end, further improving the efficiency of the video frame data received by the receiving end. Of course, in other embodiments, the remaining video frames of the current GOP can also be not discarded, and all remaining video frames of the current GOP can be sent to the second device via the original semi-reliable channel in succession, so that the second device or a storage device connected to the second device can obtain and store the complete video data.

[0080] Of course, other types of data, such as audio data, can also be transmitted using the semi-reliable channel.

[0081] In the case where the transmission channel under the data connection of the preset transmission protocol includes an unreliable channel, in step S102, the sender in the first device and the second device can select to create an unreliable channel from its own unreliable channel set to send data to the receiver in the first device and the second device. In this case, the receiver will passively create a corresponding unreliable channel to receive the data transmitted by the sender, so that the first device and the second device can transmit data through the unreliable channel under the data connection of the preset transmission protocol between them. In addition, after the receiving end receives the data, the receiving end can perform data response confirmation for the unreliable channel in the unreliable channel set of the sending end, so that the sending end can confirm that the data has been successfully sent based on the data response confirmation. When transmitting data in an unreliable channel, the sending end generally does not retransmit lost data, and the receiving end generally does not receive retransmitted data. Therefore, in unreliable data transmission, the transmitted data may be damaged or lost.

[0082] Based on this, the sending end and the receiving end can detect whether there is data loss during the data transmission process of the currently used unreliable channel, and perform corresponding processing based on the data transmission status of the currently used unreliable channel to reduce data loss. In particular, performing corresponding processing based on the data transmission status of the currently used unreliable channel can include: if data loss occurs during the current unreliable channel transmission, the data can be transmitted using the transmission method corresponding to the transmission condition level met by the currently used unreliable channel.

[0083] Specifically, if the data transmission conditions of the currently used unreliable channel meet the worst transmission condition of the unreliable channel, the amount of data to be transmitted is reduced, and the reduced data is transmitted via the currently used unreliable channel. If the data transmission conditions of the currently used unreliable channel meet the second worst transmission condition of the unreliable channel, redundant data transmission is performed in parallel via the currently used unreliable channel and unreliable channels other than the currently used unreliable channel. If the data transmission conditions of the currently used unreliable channel meet the third worst transmission condition of the unreliable channel, data is transmitted via a semi-reliable channel other than the currently used semi-reliable channel in place of the currently used unreliable channel. Of course, the number of transmission condition levels is not limited to three and is not a limitation here. For example, in other embodiments, the number of transmission condition levels may be two or four. Each transmission condition level corresponds to a data transmission mode. The data transmission mode corresponding to each transmission condition level can be set according to actual conditions and is not particularly limited here. Furthermore, different transmission condition levels correspond to different data transmission modes.

[0084] The data transmission status of the currently used unreliable channel may include the packet loss rate and / or maximum transmission delay of the currently used unreliable channel. This allows the system to determine which transmission condition of the unreliable channel the statistically calculated packet loss rate and / or maximum transmission delay of the currently used unreliable channel meets, and then to use the transmission method corresponding to the transmission condition level met by the currently used unreliable channel to transmit data, thereby determining a relatively reliable data transmission method under the corresponding situation, and relatively reliably transmitting data to the receiving end, thereby achieving the purpose of reducing the data packet loss rate.

[0085] In one implementation, if the packet loss rate of the currently used unreliable channel is less than the first lower limit, the data transmission condition of the currently used unreliable channel meets the third poor transmission condition of the unreliable channel, and a new semi-reliable channel with no data to be transmitted can be enabled to replace the currently used unreliable channel for data transmission. For example, assuming that the currently used unreliable channel is used to transmit audio data, and the packet loss rate of the currently used unreliable channel is less than the first lower limit, the transmission of audio data through the currently used unreliable channel can be stopped, and a new semi-reliable channel with no data to be transmitted can be enabled for semi-reliable transmission of audio data. That is, a semi-reliable channel in the semi-reliable channel set other than the currently used semi-reliable channel can be enabled for semi-reliable transmission of audio data. If the packet loss rate of the currently used unreliable channel is greater than the first lower limit and less than the first upper limit, the data transmission condition of the currently used unreliable channel meets the second worst transmission condition of the unreliable channel. A new unreliable channel with no data to be transmitted can be enabled, and redundant data transmission can be performed in parallel with the currently used unreliable channel through the new unreliable channel. That is, the new unreliable channel transmits the same data as the currently used unreliable channel. In this way, if one unreliable channel is lost but the other unreliable channel is successfully transmitted, the data will also be successfully sent to the receiving end. In this way, redundant transmission can minimize the amount of data lost through the unreliable channel. If the packet loss rate of the currently used unreliable channel is greater than the first upper limit, the data transmission condition of the currently used unreliable channel meets the worst transmission condition of the unreliable channel. The amount of data to be sent can be reduced, and the reduced amount of data to be sent can be transmitted through the currently used unreliable channel. By reducing the amount of data, the transmission pressure of the data connection is reduced, thereby increasing the success rate of data transmission through the unreliable channel and reducing the packet loss rate. The amount of data can be reduced by increasing the data compression rate and reducing the data sampling rate.

[0086] In another implementation, if the maximum transmission delay of the currently used unreliable channel is less than the second lower limit, the data transmission situation of the currently used unreliable channel meets the third poor transmission condition of the unreliable channel, and a new semi-reliable channel with no data to be transmitted can be enabled to replace the currently used unreliable channel for data transmission. If the maximum transmission delay of the currently used unreliable channel is greater than the second lower limit and less than the second upper limit, the data transmission situation of the currently used unreliable channel meets the second poor transmission condition of the unreliable channel, and a new unreliable channel with no data to be transmitted can be enabled, and redundant data transmission can be performed in parallel through the new unreliable channel and the currently used unreliable channel. If the maximum transmission delay of the currently used unreliable channel is greater than the second upper limit, the data transmission situation of the currently used unreliable channel meets the worst transmission condition of the unreliable channel, and the amount of data to be sent can be reduced, and then the reduced amount of data to be sent can be transmitted through the currently used unreliable channel.

[0087] In another implementation, if the packet loss rate of the currently used unreliable channel is less than a first lower limit and the maximum transmission delay is less than a second lower limit, the data transmission condition of the currently used unreliable channel meets the third poor transmission condition of the unreliable channel, and a new semi-reliable channel with no data to be transmitted can be enabled to replace the currently used unreliable channel for data transmission. If the packet loss rate of the currently used unreliable channel is less than a first upper limit and the maximum transmission delay is less than a second upper limit, and the packet loss rate of the currently used unreliable channel is greater than the first lower limit or the maximum transmission delay is greater than the second lower limit, the data transmission condition of the currently used unreliable channel meets the second poor transmission condition of the unreliable channel, and a new unreliable channel with no data to be transmitted can be enabled, and redundant data can be transmitted in parallel through the new unreliable channel and the currently used unreliable channel. If the packet loss rate of the currently used unreliable channel is greater than the first upper limit or the maximum transmission delay is greater than the second upper limit, the data transmission condition of the currently used unreliable channel meets the worst transmission condition of the unreliable channel, and the amount of data to be transmitted can be reduced, and then the reduced amount of data to be transmitted can be transmitted through the currently used unreliable channel.

[0088] In yet another implementation, if the packet loss rate of the currently used unreliable channel is less than the first upper limit and the maximum transmission delay is less than the second upper limit, the data transmission condition of the currently used unreliable channel meets the second poor transmission condition of the unreliable channel, and a new unreliable channel with no data to be transmitted can be enabled, and redundant data transmission can be performed in parallel with the currently used unreliable channel through the new unreliable channel. If the packet loss rate of the currently used unreliable channel is greater than the first upper limit or the maximum transmission delay is greater than the second upper limit, the data transmission condition of the currently used unreliable channel meets the worst transmission condition of the unreliable channel, and the amount of data to be sent can be reduced, and then the reduced amount of data to be sent can be transmitted through the currently used unreliable channel.

[0089] Combining the transmission characteristics of unreliable channels with the above-mentioned method, audio data can be transmitted over unreliable channels. Specifically, due to the relatively small size of audio data, redundant transmission can be used to ensure that audio data is quickly transmitted to the receiving end with minimal or no packet loss, even at the expense of a small amount of bandwidth. Of course, unreliable channels can also be used to transmit other types of data, such as video data.

[0090] The first lower limit, first upper limit, second lower limit, and second upper limit can be set based on actual conditions and are not limited here. For example, the second upper limit for all or each unreliable channel of each device can be set by the user or the factory. The second lower limit is the product of a and the second upper limit, where a is (0, 1).

[0091] In this embodiment, the first device and the second device negotiate at least one of the reliable channel and the unreliable channel and the semi-reliable channel under the data connection of the preset transmission protocol between the two devices, and then use the at least one of the reliable channel and the unreliable channel and the semi-reliable channel to transmit data respectively. In this way, the data connection of the preset transmission protocol supports transmission capabilities of different reliability levels, and the same data connection can simultaneously include at least one of the reliable data transmission and the unreliable data transmission and the semi-reliable data transmission. Therefore, when transmitting data between devices, the corresponding data can be transmitted using at least one of the reliable channel and the unreliable channel and the semi-reliable channel according to the latency and reliability requirements of the business data, which makes data transmission more flexible and can also improve data transmission efficiency to a certain extent.

[0092] Furthermore, this application provides another embodiment of a multi-channel data transmission method based on the QUIC transmission protocol characteristics, audio and video data encoding characteristics, and the multi-channel data transmission method of the above embodiment. Figure 2 and Figure 3As shown, the multi-channel data transmission method of this embodiment may include the following steps. It should be noted that the following step numbers are only used to simplify the description and are not intended to limit the execution order of the steps. The steps of this embodiment can be changed in any order without violating the technical concept of this application.

[0093] S201: The receiving end requests the sending end to establish a QUIC connection.

[0094] The transmitting end may be a monitoring device, etc., which is not limited here. The receiving end may be a playback device, such as a mobile terminal, which is not limited here.

[0095] S202: The application layers at the sending and receiving ends set the maximum delay threshold of the QUIC transport layer semi-reliable stream channel according to the video transmission delay requirements.

[0096] The video transmission delay requirement may be provided by the user.

[0097] S203: The QUIC layers of the receiving and sending ends negotiate the hierarchical transmission types of the QUIC data stream, including reliable, semi-reliable and unreliable stream channels.

[0098] Among them, the receiving end and the sending end negotiate QUIC transmission parameters to create reliable, semi-reliable and unreliable stream channels under the QUIC connection.

[0099] S204: The QUIC layers of the receiving end and the sending end negotiate the maximum transmission delay threshold of the semi-reliable stream channel in the QUIC data stream.

[0100] When the QUIC layer on the receiving and sending ends negotiates the hierarchical transmission type of the QUIC data stream, the two ends can further negotiate the maximum delay threshold for the semi-reliable stream channel in the QUIC data stream. If the semi-reliable stream channels are the same, the minimum of the two values ​​is used as the maximum delay threshold. Different maximum delay thresholds can be set for different semi-reliable stream channels.

[0101] S205: Different stream channels of the QUIC layer at the sending end are sent through the same QUIC connection, and the sending status is detected regularly.

[0102] After negotiating reliable, semi-reliable, and unreliable channels under the QUIC connection, different stream channels of the QUIC layer on the sending end can be sent through the same QUIC connection and the sending status of each stream channel can be detected periodically.

[0103] Exemplarily, the sender can create an independent reliable stream 1 for signaling data, such as binding the signaling data to stream1 in the QUIC connection, so that the stream1 channel is a reliable stream transmission channel. The sender can create an independent semi-reliable stream 2 for video data, such as binding the video data to stream2 in the QUIC connection, so that the stream2 channel is a semi-reliable stream transmission channel. The sender creates an independent unreliable stream 3 for audio data, such as binding the audio data to stream3 in the QUIC connection, so that the stream3 channel is an unreliable stream transmission channel. Stream1 data, stream2 data, and stream3 data are transmitted through the same QUIC connection, so that different stream channel data can be sent through the same QUIC connection.

[0104] In other embodiments, audio data and video data may be placed together in the same semi-reliable stream channel for transmission, which is not limited here.

[0105] During data transmission between the sending end and the receiving end, the sending end and / or the receiving end may periodically detect the data transmission status of each stream channel under the QUIC connection (i.e., the sending status mentioned above).

[0106] S206: Whether the current flow channel level is semi-reliable flow.

[0107] When detecting the data transmission status of each stream channel, the category of each stream channel may be determined first.

[0108] Exemplarily, it may be determined whether the current level of each flow channel is a semi-reliable flow; if so, proceed to step S207; if not, proceed to step S211.

[0109] S207: The QUIC layers at the sending and receiving ends detect whether the transmission delay of the semi-reliable stream channel exceeds the maximum delay threshold.

[0110] If the current stream channel is a semi-reliable stream, it is possible to detect whether the transmission delay of the semi-reliable stream channel exceeds the maximum delay threshold; if it does, proceed to step S208 to enable a new semi-reliable stream channel for subsequent video data transmission; if it does not, and when the sending status of all stream channels has been confirmed, proceed to step S205 to detect the sending status of each stream channel at intervals.

[0111] S208: The QUIC layer at the sending end notifies the application layer that the semi-reliable stream channel sending has timed out.

[0112] If the current semi-reliable stream transmission delay exceeds the threshold, the sending end QUIC layer can notify the application layer that the semi-reliable stream channel transmission has timed out.

[0113] S209: The application layer at the sending end discards the remaining video frames of the current GOP transmitted on channel 2 and stops sending data on this channel.

[0114] S210: The application layer at the sending end forces the device to encode and generate a new I frame, and creates a new QUIC layer semi-reliable stream 4 for sending video frames.

[0115] The application layer at the sending end forces the device to encode and generate a new I frame, and creates a new QUIC layer semi-reliable stream 4 to send video frames to ensure that the currently sent video is the latest and reduce picture delay.

[0116] S211: Whether the current stream channel level is unreliable stream.

[0117] If the current flow channel is not classified as semi-reliable, the process proceeds to determine whether it is unreliable. If so, the process proceeds to step S212. Otherwise, if the current flow channel is classified as reliable and the sending status of all flow channels has been confirmed, the process returns to step S205 to periodically check the sending status of each flow channel. Furthermore, if the sending status of some flow channels remains unconfirmed, the process proceeds to steps S206-S218 to troubleshoot the unconfirmed flow channels.

[0118] S212: The QUIC layers at the sending and receiving ends detect whether there is data loss in the unreliable stream channel transmission.

[0119] If the current stream channel is an unreliable stream, the QUIC layer at the sender and receiver detects whether there is data loss in the transmission of the unreliable stream channel. If there is data loss in the unreliable stream channel, the process proceeds to step S213 to determine the data transmission method based on the data transmission status of the unreliable channel. If there is no data loss in the unreliable stream channel and the transmission status of all stream channels has been confirmed, the process returns to step S205 to check the transmission status of each stream channel at intervals.

[0120] S213: The QUIC layer at the sending end notifies the application layer of the packet loss caused by the unreliable stream channel, and feeds back the corresponding packet loss rate loss and maximum transmission delay delay network information.

[0121] If there is data loss in the current unreliable stream transmission, the QUIC layer on the sending end can notify the application layer that the unreliable stream channel has lost packets.

[0122] S214: Determine whether loss and delay satisfy the condition of "loss < first lower limit value and delay < second lower limit value".

[0123] In the event of packet loss in an unreliable streaming channel, it is possible to determine whether the loss and delay of the unreliable streaming channel meet the conditions of "loss < first lower limit value and delay < second lower limit value"; if so, proceed to step S215 to transmit audio data through a semi-reliable channel instead of an unreliable channel; if not, proceed to step S216.

[0124] S215: The sending application layer stops sending stream 3 channel and creates a new QUIC layer semi-reliable stream 5 for semi-reliable sending of audio frames.

[0125] Optionally, if the current unreliable stream transmission packet loss rate loss is less than the first lower limit and the maximum transmission delay delay is less than the second lower limit (that is, the maximum delay threshold * a set by the user), the sending application layer stops sending stream 3 channel and creates a new QUIC layer semi-reliable stream 5 for semi-reliable transmission of audio frames.

[0126] S216: Determine whether loss and delay satisfy the condition of "loss < first upper limit value and delay < second upper limit value".

[0127] If the loss and delay of the unreliable flow channel do not meet the "loss < first lower limit value and delay < second lower limit value" condition, you can continue to determine whether the loss and delay meet the "loss < first upper limit value and delay < second upper limit value" condition; if they meet the "loss < first upper limit value and delay < second upper limit value" condition, you can proceed to step S217; otherwise, proceed to step S218.

[0128] S217: The sending application layer creates a new QUIC layer unreliable stream 6, and redundantly sends audio frames in parallel with the unreliable stream 3 channel.

[0129] Optionally, if the current unreliable stream transmission packet loss rate loss is less than threshold B and the maximum transmission delay delay is less than the maximum delay threshold set by the user, the sending application layer creates a new QUIC layer unreliable stream 6, and redundantly sends audio frames in parallel with the unreliable stream 3 channel (channel 3 and channel 6 transmit the same audio frames).

[0130] S218: The sending end reduces the data volume of the audio frame and sends the audio frame with the reduced data volume through the unreliable stream 3 channel.

[0131] See also Figure 4 , Figure 4 2 is a schematic diagram of the structure of an embodiment of the electronic device 20 of the present application. The electronic device 20 of the present application includes a processor 22, which is used to execute instructions to implement the method of any of the above embodiments of the present application and any non-conflicting combination thereof.

[0132] The processor 22 may also be referred to as a CPU (Central Processing Unit). The processor 22 may be an integrated circuit chip having signal processing capabilities. The processor 22 may also be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic device, a discrete gate or transistor logic device, or a discrete hardware component. The general-purpose processor may be a microprocessor, or the processor 22 may be any conventional processor.

[0133] The electronic device 20 may further include a memory 21 for storing instructions and data required for the processor 22 to operate.

[0134] See also Figure 5 , Figure 5 Schematic diagram of the structure of the computer-readable storage medium in the embodiment of the present application. The computer-readable storage medium 30 of the embodiment of the present application stores instruction / program data 31, which, when executed, implements the method provided by any embodiment of the above-mentioned method of the present application and any non-conflicting combination. Among them, the instruction / program data 31 can form a program file and be stored in the above-mentioned storage medium 30 in the form of a software product, so that a computer device (which can be a personal computer, server, or network device, etc.) or a processor (processor) executes all or part of the steps of the various embodiments of the present application. The aforementioned storage medium 30 includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, or a computer, server, mobile phone, tablet and other devices.

[0135] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of units is only a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interface, device or unit, which can be electrical, mechanical or other forms.

[0136] In addition, the functional units in the various embodiments of the present application may be integrated into a single processing unit, or each unit may exist physically separately, or two or more units may be integrated into a single unit. The aforementioned integrated units may be implemented in the form of hardware or software functional units.

[0137] It should also be noted that the terms "comprises," "includes," or any other variations thereof are intended to encompass non-exclusive inclusion, such that a process, method, commodity, or apparatus that includes a series of elements includes not only those elements but also other elements not explicitly listed, or includes elements inherent to such process, method, commodity, or apparatus. In the absence of further limitations, an element defined by the phrase "comprises a ..." does not exclude the presence of other identical elements in the process, method, commodity, or apparatus that includes the element.

[0138] The above is only an implementation method of the present application and does not limit the patent scope of the present application. Any equivalent structure or equivalent process transformation made using the contents of the description and drawings of this application, or directly or indirectly applied in other related technical fields, are also included in the patent protection scope of the present application.

Claims

1. A multi-channel data transmission method, characterized in that: The method comprises: The first device negotiates with the second device a data connection using a preset transmission protocol, including at least one of a reliable channel and an unreliable channel, and a semi-reliable channel; Transmitting data through at least one of a reliable channel and an unreliable channel and a semi-reliable channel; The first device negotiates at least one of a reliable channel and an unreliable channel and a semi-reliable channel under a data connection of a preset transmission protocol with the second device, including: Negotiate a maximum delay threshold for each semi-reliable channel under a data connection of a preset transmission protocol with the second device; The transmitting data through at least one of a reliable channel and an unreliable channel and a semi-reliable channel includes: transmitting first data through at least one of the semi-reliable channels; The transmitting of data through at least one of a reliable channel and an unreliable channel and a semi-reliable channel then includes: detecting a transmission delay of the semi-reliable channel currently in use; If the transmission delay of the currently used semi-reliable channel is greater than a maximum delay threshold, a semi-reliable channel other than the at least one semi-reliable channel is enabled to perform subsequent transmission of the first data.

2. The multi-channel data transmission method according to claim 1, wherein: The first data is video data; The enabling of a semi-reliable channel other than the at least one semi-reliable channel for subsequent transmission of the first data includes: discarding remaining frames in a current group of pictures of the video data in the application layer of the first device; The group of pictures subsequent to the current group of pictures is sent to the second device by using a semi-reliable channel other than the at least one semi-reliable channel.

3. The multi-channel data transmission method according to claim 2, wherein: The enabling of a semi-reliable channel other than the at least one semi-reliable channel for subsequent transmission of the first data includes: When it is confirmed that the transmission delay of the semi-reliable channel currently in use exceeds the maximum delay threshold, if the sending end has not encoded and generated the image group after the current image group, the first device forcibly encodes and generates a new I frame to forcibly generate the image group data after the current image group.

4. The multi-channel data transmission method according to claim 1, wherein: The at least one channel includes an unreliable channel, and transmitting data through at least one of the reliable channel and the unreliable channel and the semi-reliable channel includes: transmitting second data through at least one of the unreliable channels; The method further comprises: transmitting data through at least one of a reliable channel and an unreliable channel and a semi-reliable channel; Detecting whether there is data loss in the currently used unreliable channel transmission; If data loss occurs, a transmission mode for the second data is determined based on the data transmission status of the currently used unreliable channel.

5. The multi-channel data transmission method according to claim 4, characterized in that: The determining the transmission mode of the second data based on the data transmission status of the currently used unreliable channel includes: When the data transmission condition meets the worst transmission condition of the unreliable channel, reducing the amount of the second data, and transmitting the second data with the reduced amount through the currently used unreliable channel; When the data transmission condition meets the second poor transmission condition of the unreliable channel, redundantly sending the second data through the currently used unreliable channel and an unreliable channel other than the currently used unreliable channel; When the data transmission situation meets the third poor transmission condition of the unreliable channel, a semi-reliable channel other than the currently used semi-reliable channel is used to replace the currently used unreliable channel for sending the second data.

6. The multi-channel data transmission method according to claim 5, characterized in that: The data transmission situation includes the packet loss rate and maximum transmission delay of the unreliable channel currently in use; If the packet loss rate of the currently used unreliable channel is less than the first lower limit and the maximum transmission delay is less than the second lower limit, then the data transmission situation meets the third poor transmission condition of the unreliable channel; If the packet loss rate of the currently used unreliable channel is less than a first upper limit and the maximum transmission delay is less than a second upper limit, and the packet loss rate is greater than a first lower limit or the maximum transmission delay is greater than a second lower limit, then the data transmission condition meets the second poor transmission condition of the unreliable channel; If the packet loss rate of the currently used unreliable channel is greater than a first upper limit or the maximum transmission delay is greater than a second upper limit, the data transmission situation meets the worst transmission condition of the unreliable channel.

7. The multi-channel data transmission method according to claim 1, characterized in that: The preset transmission protocol is a QUIC connection, and the first device negotiates at least one of a reliable channel and an unreliable channel and a semi-reliable channel under a data connection of the preset transmission protocol between the first device and the second device, including: Negotiate at least one of a reliable stream identifier set and an unreliable stream identifier set and a semi-reliable stream identifier set under a QUIC connection with the second device; The transmitting data through at least one of a reliable channel and an unreliable channel and a semi-reliable channel includes: processing the first data into first stream data, processing the second data into second stream data, and / or processing the third data into third stream data, and transmitting at least one of the first stream data and the second stream data and the third stream data through the same QUIC connection; Among them, the first stream data is the data of the stream identified as the semi-reliable stream identifier, the semi-reliable channel is the channel for transmitting the first stream data, the second stream data is the data of the stream identified as the unreliable stream identifier, the unreliable channel is the channel for transmitting the second stream data, and the third stream data is the data of the stream identified as the reliable stream identifier, and the reliable channel is the channel for transmitting the third stream data.

8. The multi-channel data transmission method according to claim 7, characterized in that: The negotiation of at least one of a reliable stream identifier set and an unreliable stream identifier set under a QUIC connection between the second device and the second device, and a semi-reliable stream identifier set, including: In a case where the first device supports stream hierarchical transmission capability, notifying the second device of at least two stream identifier sets among a reliable stream identifier set, a semi-reliable stream identifier set, and an unreliable stream identifier set of the first device, so that, in a case where the second device supports stream hierarchical transmission capability, at least one identifier set among a reliable channel identifier set and an unreliable channel identifier set and a semi-reliable channel identifier set under the QUIC connection between the second device and the second device is confirmed in combination with the at least two stream identifier sets of the second device; The at least two flow identifier sets of the preset device include a semi-reliable flow identifier set, and the preset device is the first device and / or the second device.

9. The multi-channel data transmission method according to claim 8, characterized in that: The negotiation of at least one of a reliable stream identifier set and an unreliable stream identifier set under a QUIC connection between the second device and the second device, and a semi-reliable stream identifier set, including: In combination with at least two flow identifier sets of the first device, at least two flow identifier sets of the second device, and the maximum delay threshold of each flow identifier in the semi-reliable flow identifier set provided by the preset device, confirm at least one of the reliable flow identifier and the semi-reliable flow identifier under the QUIC connection with the second device, the semi-reliable flow identifier, and the maximum delay threshold of each semi-reliable flow identifier.

10. The multi-channel data transmission method according to claim 9, characterized in that: The preset devices are the first device and the second device, and the confirmation of at least one of the reliable flow identifier and the semi-reliable flow identifier under the QUIC connection between the device and the second device, the semi-reliable flow identifier, and the maximum delay threshold of each semi-reliable flow identifier include: In the case that the semi-reliable flow identifier set of the first device and the semi-reliable flow identifier set of the second device both include the same semi-reliable flow identifier, the minimum value of the maximum delay threshold of the same semi-reliable flow identifier provided by the first device and the maximum delay threshold of the same semi-reliable flow identifier provided by the second device is used as the maximum delay threshold of the same semi-reliable flow identifier.

11. The multi-channel data transmission method according to any one of claims 1 to 10, characterized in that: The transmitting of data through at least one of a reliable channel and an unreliable channel and a semi-reliable channel includes: transmitting first data through the semi-reliable channel, and / or transmitting second data through the unreliable channel, and transmitting third data through the reliable channel; The first data includes video data, the second data is audio data, and the third data includes signaling data.

12. An electronic device, characterized in that: The electronic device comprises a processor, and the processor is configured to execute instructions to implement the method according to any one of claims 1 to 11.

13. A computer-readable storage medium, characterized in that The computer-readable storage medium stores instructions / program data, and the instructions / program data are configured to be executed to implement the method according to any one of claims 1 to 11.

Citation Information

Patent Citations

  • Data transmission system based on multi-channel exchange protocol

    CN113364816A