Data transmission method, system and electronic device

By providing multiple routing paths with different service qualities in the backbone network and utilizing the CID identifier of the QUIC protocol, the problem of the backbone network's inability to guarantee QoS is solved, enabling efficient data transmission for performance-sensitive applications and meeting the service quality requirements of real-time streaming media and real-time conferencing.

CN116633852BActive Publication Date: 2026-01-13ALIBABA (CHINA) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310711237.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-06-14
Publication Date
2026-01-13
Estimated Expiration
2043-06-14

AI Technical Summary

Technical Problem

Existing backbone networks cannot effectively guarantee the quality of service for performance-sensitive applications such as real-time streaming media and real-time conferencing, especially when network congestion occurs, they cannot guarantee QoS requirements such as throughput and transmission latency.

Method used

By providing multiple routing paths with different service quality in the backbone network, the scheduling module selects the appropriate routing path for data transmission based on the service quality level of the target data. Combined with the CID identifier mapping relationship in the QUIC protocol, scheduling based on service quality level is achieved.

Benefits of technology

It enables tiered scheduling based on quality of service (QoS) levels within the backbone network, ensuring the QoS requirements of performance-sensitive applications, avoiding additional software or hardware deployment limitations, and improving transmission reliability and security.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116633852B_ABST
    Figure CN116633852B_ABST
Patent Text Reader

Abstract

The application provides a data transmission method, system and electronic equipment, and relates to the technical field of network transmission. The data transmission method of a network service provider comprises the following steps: determining the service quality level of target data from a sending end; determining a target routing path matching the service quality level from a plurality of to-be-selected routing paths with different service qualities; wherein the to-be-selected routing paths comprise routers of a plurality of regional networks; and transmitting the target data to a receiving end by using the target routing path. According to the technical scheme of the application, hierarchical scheduling can be performed on a backbone network according to the service quality level of transmission data (such as a message or other IP data packets), so that the backbone network has the capability of supporting QoS according to the type of transmission data.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of network transmission, and particularly relates to a data transmission method, system and electronic device. BACKGROUND

[0002] A wide area network (WAN) is a long-haul network connecting computers in different local area networks or metropolitan area networks. Unlike a local area network, a WAN generally refers to a backbone network operated by an enterprise or an operator. A new generation of Internet Protocol (IP) backbone network can provide various services including voice, data and video, and thus requires a certain quality of service (QoS).

[0003] However, the current backbone network is mainly based on a best-effort service model, that is, data packets (such as messages) are transmitted with the greatest possibility, and when network interfaces are congested, data packets are discarded regardless of users or applications, so that the QoS requirements such as throughput and transmission delay cannot be guaranteed. Especially for some performance-sensitive applications, such as real-time streaming media (such as live broadcast), real-time conference and short video, the best-effort service model cannot guarantee the performance of these applications during data packet transmission. Therefore, how to perform backbone network scheduling to enable the backbone network to support QoS is very important. SUMMARY

[0004] Embodiments of the present application provide a data transmission method, system and electronic device, which can effectively support QoS on a backbone network.

[0005] In a first aspect, embodiments of the present application provide a data transmission method applied to a network service providing end, comprising: determining a service quality level of target data from a sending end; determining a target routing path matching the service quality level from a plurality of to-be-selected routing paths with different service qualities; wherein the to-be-selected routing path includes routers of a plurality of regional networks; and transmitting the target data to a receiving end by using the target routing path.

[0006] In a second aspect, the embodiments of the present application provide a data transmission method, applied to a sending end, comprising: generating quality of service level information; wherein the quality of service level information is used to determine a quality of service level of target data to be sent; sending the target data and the quality of service level information to a network service providing end, so that the network service providing end determines a target routing path corresponding to the quality of service level from a plurality of candidate routing paths with different quality of service, and transmits the target data to a receiving end by using the target routing path; wherein the candidate routing paths include routers of a plurality of regional networks.

[0007] In a third aspect, the embodiments of the present application provide a data transmission method, applied to a receiving end, comprising: receiving target data transmitted based on a target routing path; wherein the target routing path is a routing path corresponding to a quality of service level of the target data, determined by a network service providing end from a plurality of candidate routing paths with different quality of service levels; the candidate routing paths include routers of a plurality of regional networks; and combining target data belonging to a same connection as a same service data according to a connection identifier of the target data; wherein the same connection is a same connection between a same sending end and a same receiving end; and the connection identifier is used to identify a mapping relationship among the sending end, the receiving end and the target data.

[0008] In a fourth aspect, the embodiments of the present application provide a data transmission system, comprising a sending end, a network service providing end and a receiving end; wherein the network service providing end is configured to implement the method of the first aspect of the embodiments of the present application, the sending end is configured to implement the method of the second aspect of the embodiments of the present application, and the receiving end is configured to implement the method of the third aspect of the embodiments of the present application.

[0009] In a fifth aspect, the embodiments of the present application provide an electronic device, comprising a memory, a processor and a computer program stored in the memory; wherein the processor implements the method of any of the embodiments of the present application when executing the computer program.

[0010] In a sixth aspect, the embodiments of the present application provide a computer readable storage medium, having a computer program stored therein; wherein the computer program is executed by a processor to implement the method of any of the embodiments of the present application.

[0011] In the data transmission method provided by the embodiments of the present application, the backbone network includes a plurality of candidate routing paths with different quality of service, and the data of the sending end is configured with a quality of service level, so that when the data is transmitted, a target routing path corresponding to the quality of service level of the data can be selected from the plurality of candidate routing paths. Based on this, the data can be transmitted according to the quality of service level of the data, and the quality of service level of the data can be guaranteed.

[0012] The quality of service level of the transmission data (such as a message or other IP packet) is scheduled in a hierarchical manner on the backbone network, so that the backbone network has the ability to support QoS according to the type of the transmission data.

[0013] Further, a quick network connection (QUIC) protocol based on a user datagram protocol (UDP) is established between the sending end and the receiving end of the transmission data, a connection identifier (CID) in the QUIC protocol is used to identify the mapping relationship between the sending end, the receiving end and the transmission data, and in the embodiment of the present application, the CID can also be used to represent the quality of service level of the transmission data, that is, the mapping of different network transmission performance requirements to different CIDs, so that after the CID is parsed, the routing path of different quality of service can be scheduled according to the parsing result. On the one hand, the QUIC protocol is a reliable transmission protocol based on UDP, which runs in the user space of the sending end (client or server) and the receiving end (server or client), so it does not need to modify the kernel, making it easy to deploy the application supporting QoS. On the other hand, the transmission data of the QUIC protocol is located in the UDP payload, so it is not easy to be modified. On the other hand, the CID is not encrypted (or weakly encrypted through symmetric encryption), so it can be parsed by any network node (such as an edge gateway).

[0014] The above description is only a summary of the technical solutions of the present application, in order to more clearly understand the technical means of the present application, it can be implemented according to the content of the specification, and in order to make the above and other purposes, characteristics and advantages of the present application more obvious and easy to understand, the following specific embodiments of the present application are described. BRIEF DESCRIPTION OF DRAWINGS

[0015] In the drawings, the same reference numbers in the several drawings represent the same or similar components or elements. These drawings are not necessarily drawn to scale. It should be understood that these drawings only depict some embodiments according to the present application, and should not be regarded as limiting the scope of the present application.

[0016] Figure 1 The system architecture diagram for the application scenario of the present application;

[0017] Figure 2 The flowchart of the data transmission method of the first embodiment of the present application;

[0018] Figure 3 The flowchart of the data transmission method of the second embodiment of the present application;

[0019] Figure 4A flow chart of the data transmission method of Embodiment Three of the present application;

[0020] Figure 5 A flow chart of the data transmission method of Embodiment Four of the present application;

[0021] Figure 6 An application example diagram of the data transmission method of Embodiment Five of the present application;

[0022] Figure 7 A block diagram of an electronic device for implementing the embodiments of the present application. DETAILED DESCRIPTION

[0023] In the following, only certain exemplary embodiments are simply described. As those skilled in the art can recognize, the described embodiments can be modified in various different ways without departing from the concept or scope of the present application. Therefore, the drawings and the description are considered to be exemplary in nature, rather than limiting.

[0024] To facilitate understanding of the technical solutions of the embodiments of the present application, the related technologies of the embodiments of the present application are described below. The following related technologies can be combined with the technical solutions of the embodiments of the present application in any manner as optional solutions, which all belong to the protection scope of the embodiments of the present application.

[0025] Application scenarios

[0026] A backbone network is a high-speed network used to connect multiple regions, and different network service providers all have their own backbone networks to connect their networks located in different regions. Generally, several computers are connected together, and can see each other's files, such that the network is called a local area network; the computers in the entire region are connected together, such that the network is called a metropolitan area network; and the network connecting regions together is called a backbone network. In the embodiments of the present application, a "region" can be understood as a geographical region, such as a region or an administrative region (such as a city).

[0027] The backbone network can provide network services of multiple data types including voice, data, video, etc. Performance-sensitive applications, such as real-time streaming (such as live broadcast), real-time conference, and short video, etc., have higher requirements for network performance such as service reliability, low latency, high throughput, and low packet loss rate, and therefore require the backbone network to support QoS, i.e., the backbone network needs to be able to allocate and schedule network resources according to the network performance requirements of the applications, and provide different QoS for different data streams: preferentially processing data with strong and important real-time performance; and providing a lower processing priority for ordinary data with weak real-time performance.

[0028] In an implementation, different network links can be customized for different applications with different transmission performance requirements based on software-defined wide area network (SD-WAN). This implementation cannot divide the transmission data in the same connection according to the data types on the one hand, and needs to do additional software or hardware deployment on the end, so that the application is limited.

[0029] In another implementation, a dedicated physical network link can be built for an application to ensure the network performance of the application. However, this implementation cannot divide the transmission data in the same connection according to the data types on the one hand, and the cost of building a physical network link is high on the other hand.

[0030] Therefore, the embodiments of the present application provide a new data transmission scheme to solve the above technical problems in whole or in part.

[0031] Figure 1 An architecture diagram of a data transmission system provided by the embodiments of the present application is shown. As shown in the figure, the data transmission system of the embodiments of the present application includes a sending end, a network service providing end and a receiving end. Figure 1

[0032] Among them, one of the sending end and the receiving end is a client (Client), and the other is a server (Server). Based on the connection established between the client and the server, the client can request services from the server, and the server can return services to the client, so the client and the server need to transmit data through the network provided by the network service providing end. Among them, the end that sends data is the sending end, and the end that receives data is the receiving end.

[0033] The network service providing end can provide network services. In the embodiments of the present application, the network service providing end can provide WAN services (Cloud WAN), including providing a backbone network and a scheduling module.

[0034] Among them, the backbone network includes a plurality of regional networks, and each regional network has at least one router for routing the transmission data in the backbone network from the regional network to other regional networks. The same transmission data from the sending end to the receiving end can be transmitted based on different routing paths. Among them, Figure 1 ​R1, R2, R3, R4, R5, R6, R7, …, respectively represent a router. Therefore, the backbone network can provide multiple routing paths between the sending end and the receiving end, such as R2-R5; R1-R3-R6-R7; R4-R7, etc. There are at least QoS different routing paths in the multiple routing paths, such as the routing path R2-R5, the routing path R1-R3-R6-R7, and the routing path R4-R7. Therefore, in the backbone network, there can be multiple QoS different routing paths between the sending end and the receiving end for transmitting data between the sending end and the receiving end.

[0035] The scheduling module of the network service provider can schedule a routing path for transmitting data by controlling the selection of routers, that is, scheduling through the backbone network, so that the backbone network supports QoS. Specifically, the scheduling module can schedule a routing path corresponding to the quality of service level of the target data from the sending end according to the quality of service level of the target data from the sending end, to transmit the target data to the receiving end. In this way, hierarchical scheduling is realized on the backbone network according to the quality of service level of the transmitted data, so that the backbone network has the ability to support QoS.

[0036] It should be noted that the routing path in the embodiments of the present application can be a physical link, such as a device link, or a virtual link, such as a queue with different QoS abstracted from a physical link.

[0037] Exemplarily, the form of the scheduling module of the network service provider can be a hardware device with data processing function

[0038] (such as a server, a terminal device) or a hardware chip, which can be a central processing unit (CPU), a graphics processing unit (GPU), a field programmable gate array (FPGA), a neural-network processing unit (NPU), an artificial intelligence (AI) acceleration card, or a data processing unit (DPU), etc.; or an application program, a service, an instance, a software form function module, a virtual machine (VM), a container, or a cloud server, etc.; or a combination of software and hardware.

[0039] Exemplarily, the network service provider can be deployed on a computing device providing corresponding services or a cloud computing platform providing computing power, storage, and network resources. The mode of the cloud computing platform providing services to the outside can be infrastructure as a service

[0040] Infrastructure as a Service (IaaS), Platform as a Service (PaaS), Software as a Service (SaaS), or Data as a Service (DaaS), and the specific service architecture can be built according to service requirements.

[0041] (Software as a Service, SaaS), or Data as a Service (DaaS), etc., and the specific service architecture can be built according to service requirements.

[0042] It should be noted that the above application scenarios or application examples of the data transmission method provided in the embodiments of the present application are for the convenience of understanding, and the application of the data transmission method in the embodiments of the present application is not limited specifically.

[0043] In addition, the user information (including but not limited to user equipment information, user personal information, etc.) and data (including but not limited to data for analysis, stored data, displayed data, etc.) involved in the present application are all information and data authorized by the user or authorized by all parties, and the collection, use and processing of related data need to comply with relevant national and regional laws, regulations and standards, and provide corresponding operation portal for user selection or editing authorization or refusal.

[0044] The technical solutions of the present application and how the technical solutions of the present application solve the foregoing technical problems will be described in detail below with specific embodiments. The several specific embodiments listed can be combined with each other, and the same or similar concepts or processes can not be described again in some embodiments.

[0045] Embodiment one

[0046] Figure 2 A flowchart of a data transmission method according to an embodiment of the present application is shown. The data transmission method can be applied to a network service providing end. As shown in Figure 2 The data transmission method includes:

[0047] Step S201: Determine the quality of service (QoS) level of the target data from the sending end.

[0048] The target data is a message currently required to be transmitted by the sending end to the receiving end. One of the sending end and the receiving end is a client, and the other is a server. Based on the connection established between the client and the server, the client can request services from the server, and the server can return services to the client. Therefore, the client and the server need to transmit messages through a backbone network provided by a network service provider. The target data can be application service data such as video stream, voice, text, etc. service data packet; or can be communication protocol data such as handshake data packet.

[0049] The target data corresponds to a QoS level, which is used to indicate the high or low level of network performance requirement of the target data. That is, the types of target data can be different, and the QoS levels of the target data can be different, and the corresponding transmission priorities can also be different. For example, for video transmission applications, the target data corresponding to key frames and state synchronization frames can be configured with a high-level QoS level to indicate high-priority transmission of the target data. For example, for handshake data packets, retransmission data packets, or flow control related data packets, a high-level QoS level is configured.

[0050] Exemplarily, the QoS level of the target data can be represented by a differentiated service code point (DSCP). The DSCP is an integer located in a differentiated service (DS) field. The QoS level of the target data is marked by setting a distinguishable DSCP value on the DS field of the target data. The network service provider can determine the QoS level of the target data by obtaining the DS field of the target data.

[0051] Step S202: determining a target routing path matching the QoS level from a plurality of QoS different candidate routing paths; wherein the candidate routing paths include routers of a plurality of regional networks.

[0052] The QoS difference of the candidate routing paths mainly reflects in the difference of network transmission performance of the candidate routing paths, such as service reliability, latency, throughput, packet loss rate, bandwidth, etc. The latency refers to the time interval of sending and receiving data packets between two reference points, such as round-trip time (RTT) or variable latency. The RTT represents the time required for data to be transmitted from one end of the network to the other end. The variable latency, also known as jitter, represents the time difference between data packets in a group of data streams sent on the same routing path. The data packet is a unit of transmitted data, i.e. a message.

[0053] The backbone network provided by the network service provider includes multiple routing paths with different QoS. Figure 1 Each of the routing paths shown can be a candidate routing path. For example, the candidate routing paths can be routing path R2-R5, routing path R1-R3-R6-R7, and routing path R4-R7.

[0054] Each candidate routing path has different QoS, i.e., each candidate routing path corresponds to a respective QoS level. Therefore, the target data has different network transmission performance on each candidate routing path, which is manifested as different transmission priorities. Selecting a candidate routing path that matches the QoS level of the target data from the candidate routing paths as the target routing path can make the target data have a network transmission performance that matches it on the target routing path.

[0055] Step S203: transmitting the target data to the receiving end using the target routing path.

[0056] The sending end sends the target data, which is transmitted to the receiving end via the target routing path in the backbone network provided by the network service provider. Therefore, the network transmission performance of the target data in the backbone network matches its QoS level, i.e., the transmission priority of the target data in the backbone network corresponds to its data type.

[0057] Based on the technical solution of the embodiments of the present application, the network service provider can provide multiple candidate routing paths with different QoS in the backbone network, i.e., the QoS levels of each candidate routing path are different. Further, by configuring the QoS level corresponding to the data type of the target data of the sending end for the target data to represent its transmission priority in the backbone network, the network service provider can schedule a target routing path that matches the QoS level of the target data for the target data, i.e., schedule the backbone network based on the transmission priority of the transmission data, thereby realizing backbone network support. Compared with the implementation mode of SD-WAN and dedicated physical network link, the implementation mode of the embodiments of the present application does not require additional software or hardware deployment on the end, and is not limited to the type of application.

[0058] In one embodiment, the QoS level can correspond to the application transmission requirement of the target data.

[0059] That is, the QoS level can be configured for the target data according to the application transmission requirement of the target data. For example, the application can define different priority QoS levels based on the application transmission requirement of the data, such as assigning high-priority QoS levels to important data packets that will significantly affect end-to-end transmission performance, thereby highly adapting to the service requirements of the application. For example, for a video transmission application, data packets corresponding to key frames and state synchronization frames can be defined as high-priority QoS levels, and other data packets can be defined as low-priority QoS levels.

[0060] In an implementation, the QoS level can correspond to a communication protocol requirement of the target data.

[0061] That is, the QoS level can be configured for the target data according to a communication protocol requirement of the target data. For example, different priority QoS levels can be defined for the transmitted data packets by a communication protocol stack to achieve configured transparency and consistency for an end-to-end application. For example, important data packets such as handshake data packets, retransmission data packets, and flow control related data packets in the communication protocol are defined as high priority QoS levels, and other data packets are defined as low priority QoS levels.

[0062] In an implementation, before step S201 or step S202, the following steps can be included: obtaining a pre-configured number of QoS levels; and in response to the number of QoS levels being greater than 1, determining a target routing path that matches the QoS level from the multiple candidate routing paths with different QoS levels.

[0063] The number of QoS levels is the total number of QoS levels divided for the transmitted data between the sending end and the receiving end. For example, based on the application transmission requirement of the target data, two levels of QoS levels, high priority and low priority, are defined, which will significantly affect the end-to-end transmission performance of important data packets. The high priority QoS level is assigned to other data packets, and the low priority QoS level is defined. Therefore, the total number of QoS levels is 2. For another example, based on the communication protocol requirement, three levels of QoS levels, high priority, medium priority, and low priority, are defined. Therefore, the total number of QoS levels is 3.

[0064] For example, when the system is initialized, the number of QoS levels used for connection can be defined in the configuration file of the client and the server. The number of QoS levels can be obtained by obtaining the configuration file. When the number of QoS levels is 1, it means that transmission with different QoS levels is not supported, that is, the transmission data between the receiving end and the sending end of the same connection is transmitted by using the same routing path or is randomly allocated for transmission, so that whether to enable the network transmission based on the QoS level can be configured according to the application scenario or service requirement.

[0065] Embodiment two

[0066] The embodiments of the present application provide a data transmission method. The technical solutions and corresponding technical effects of embodiment one can be applied to the embodiments of the present application. Figure 3 A flowchart of a data transmission method according to an embodiment of the present application is shown. The data transmission method can be applied to a network service providing end. As shown in the figure, the data transmission method includes the following steps. Figure 3

[0067] ​Step S301: Obtain a CID of target data; wherein, in the QUIC protocol, the CID is used to identify the mapping relationship between the sending end, the receiving end and the target data.

[0068] Step S302: Analyze the CID to determine the QoS level of the target data.

[0069] Step S303: From a plurality of QoS different candidate routing paths, determine a target routing path matching the QoS level; wherein, the candidate routing path includes a plurality of routers of regional networks.

[0070] Step S304: Use the target routing path to transmit the target data to the receiving end.

[0071] The QUIC protocol is a transport layer protocol based on the UDP protocol, in which each connection has a CID to identify the connection relationship, i.e. the mapping relationship between the transmitted data and the sending end and the receiving end. When a new connection is established, a new CID can be used to identify the new connection. This mechanism facilitates the initiation of a new connection without waiting for the old connection to close.

[0072] In the embodiments of the present application, multiple CID values are defined in the same connection, corresponding to different priority QoS levels, i.e. corresponding to different QoS candidate routing paths in the backbone network. The network service provider can obtain the QoS level of the target data by analyzing the CID value of the target data.

[0073] Step S303 can adopt the same or similar implementation as step S202 to achieve the same or similar technical effects as step S202, and step S304 can adopt the same or similar implementation as step S203 to achieve the same or similar technical effects as step S203. The embodiments of the present application will not be repeated here.

[0074] The embodiments of the present application provide an implementation scheme of a multipath QUIC protocol. Specifically, the CID is used to represent the QoS level of the transmitted data, i.e. the transmitted data with different network transmission performance requirements are mapped to different CIDs, so that after the CID is analyzed, different QoS routing paths can be scheduled according to the analysis result, thereby realizing the multipath extension of the QUIC protocol, i.e. supporting the establishment of multiple routing paths between two different endpoints and transmitting messages on these routing paths.

[0075] On the one hand, the QUIC protocol runs in the user space of the sending end (client or server) and the receiving end (server or client), so it does not need to modify the kernel, making it easy to deploy applications that support QoS. On the other hand, the transmission data of the QUIC protocol is located in the UDP payload, so it is not easy to be modified, such as by network operators or network service providers, so it has high security. On the other hand, the CID is not encrypted (or weakly encrypted through symmetric encryption), so it can be parsed by any network node (such as an edge gateway or edge router), improving the reliability of transmission.

[0076] In an implementation, in the step S302, the parsing of the CID to determine the QoS level of the target data can include: obtaining a pre-configured number of QoS levels; determining the QoS level based on a result of a modulo operation between the CID and a target number; and wherein the target number is the number of QoS levels or a smallest prime number greater than the number of QoS levels.

[0077] When generating the CID value, the product of the number of QoS levels and the random number can be added to the QoS level to obtain the value of the CID, or the product of the smallest prime number greater than the number of QoS levels and the random number can be added to the QoS level to obtain the value of the CID.

[0078] The following gives an example of generating two different values of CID (CID1 and CID2) using the smallest prime number greater than the number of QoS levels. random_num1 = 0x23456789, random_num2 = 0x90876543; samllest_prime(2) = 3;

[0079] CID1 = 0x23456789 * 3 + 1 = 0x69D0369C, CID2 = 0x90876543 * 3 + 2 = 0x1B1962FCB. Wherein, random_num represents a random number, samllest_prime(n) represents the smallest prime number greater than the number of QoS levels when the number of QoS levels is n, CID1 represents the CID value of the first target data, and CID2 represents the CID value of the second target data. In addition, in this example, the value of the QoS level of the first target data is 1, and the value of the QoS level of the second target data is 2.

[0080] As can be seen, the remainder obtained by dividing the CID value by the target number (modulo operation) is the value of the QoS level. Based on this, a CID that can parse the QoS level can be generated. This method is simple and effective, does not require complex logical calculations and state storage, is suitable for use on network devices, and because it is based on a random number in the generation process, it achieves no correlation between the CIDs of each transmission data, which can avoid attacks on the sending end or receiving end based on the QUIC protocol connection.

[0081] In an implementation, before step S301 or step S303, the following can be included: obtaining a pre-configured number of QoS levels; in response to the number of QoS levels being greater than 1, performing determining a target routing path matching a QoS level from multiple candidate routing paths with different QoS levels. For details, please refer to the related description of Embodiment I.

[0082] In an implementation, one of the sending end and the receiving end is a client, and the other is a server, a connection between the client and the server is established based on a QUIC protocol, the QUIC protocol includes a transport layer parameter, and the number of QoS levels is configured based on the transport layer parameter fed back by the server to the client.

[0083] In a system initialization phase, the transport layer parameter including the number of QoS levels can be configured on the server and a network service provider, for example, the number of QoS levels is configured to be equal to n. In a negotiation phase of establishing a connection between the client and the server, the server sends the number of QoS levels to the client, and after receiving the number of QoS levels, the client configures the number of QoS levels to be equal to n regardless of the local configuration of the client. For example, if the number of QoS levels in the local configuration of the client is greater than 1, but the number of QoS levels fed back by the server is equal to 1, the client will configure the number of QoS levels to be equal to 1.

[0084] When the number of QoS levels is equal to 1, it indicates that the network transmission based on the QoS level is not started. When the number of QoS levels is greater than 1, it indicates that the network transmission based on the QoS level is needed, that is, a target routing path needs to be matched according to the QoS level of target data, and in this case, if the four-tuple information (source IP, destination IP, source port, and destination port) of two target data is the same, but the CID values of the two target data are different, the target routing path also needs to be matched according to the QoS level of each target data, that is, the establishment of Multipath is supported in the backbone network.

[0085] Based on this, by defining a new transport layer parameter, that is, the number of QoS levels, in the Multipath QUIC protocol, whether the network transmission based on the QoS level is supported and the number of supported QoS levels can be determined in the negotiation phase.

[0086] Embodiment three

[0087] Embodiments of the present application provide a data transmission method, wherein at least part of the technical solutions and the corresponding technical effects of Embodiments I and II can be referred to in the embodiments of the present application. Figure 4 A flowchart of a data transmission method according to an embodiment of the present application is shown. The data transmission method can be applied to a sending end. As shown in FIG. 1, the data transmission method includes the following steps. Figure 4As shown, the data transmission method comprises:

[0088] Step S401: generating QoS level information;

[0089] Step S402: sending target data and the QoS level information to a network service providing end, so that the network service providing end determines a target routing path corresponding to the QoS level from a plurality of QoS-different candidate routing paths, and transmits the target data to a receiving end by using the target routing path; wherein the candidate routing paths include routers of a plurality of regional networks.

[0090] The QoS level information is used to determine the QoS level of the target data to be sent, for example, a DSCP value or a CID. After the sending end generates the QoS level information, when requesting the network service providing end to transmit the target data to the receiving end, the QoS level information of the target data is sent together, so that the network service providing end analyzes the QoS level information to obtain the QoS level of the target data, and schedules a target routing path matching the QoS level of the target data in a backbone network to transmit the target data to the receiving end.

[0091] In an embodiment, the QoS level information is a CID, and in step S401, generating the QoS level information can include: generating a CID according to the QoS level, so that the network service providing end determines the QoS level by analyzing the CID; wherein in the QUIC protocol, the CID is used to identify the mapping relationship between the sending end, the receiving end and the target data.

[0092] In an embodiment, generating the CID according to the QoS level includes: obtaining a pre-configured QoS level number; wherein the QoS level number is the total number of QoS levels divided for the transmission data between the sending end and the receiving end; and adding the product of the target number and the random number to the QoS level to obtain the CID; wherein the target number is the QoS level number or the smallest prime number greater than the QoS level number.

[0093] In an embodiment, the sending end is a client and the receiving end is a server, and before step S401, it can further include: configuring the QoS level number based on the transmission layer parameters fed back by the server in response to the client and the server establishing a connection based on the QUIC protocol.

[0094] The related embodiments and technical effects of the embodiments of the application can be referred to the related descriptions of Embodiment I or II, which will not be repeated here.

[0095] Embodiment four

[0096] The embodiment of the present application provides a data transmission method, wherein the technical solutions and corresponding technical effects of embodiment one, two and three can be applied to the embodiment of the present application. Figure 5 A flow chart of a data transmission method according to the embodiment of the present application is shown. The data transmission method can be applied to a receiving end. As shown in the figure, the data transmission method comprises the following steps. Figure 5

[0097] Step S501: receiving target data transmitted based on a target routing path; wherein the target routing path is a routing path corresponding to a QoS level of the target data, which is determined by a network service providing end from a plurality of QoS level different candidate routing paths; the candidate routing paths comprise routers of a plurality of regional networks.

[0098] Step S502: combining target data belonging to a same connection into a same service data according to a CID of the target data; wherein the same connection is a same connection between a same sending end and a same receiving end; the CID is used to identify a mapping relationship among the sending end, the receiving end and the target data.

[0099] For example, for two received target data, such as a first target data (corresponding to CID1) and a second target data (corresponding to CID2), it is determined whether the first target data and the second target data belong to a same connection through CID1 and CID2, if they belong to a same connection, they will be combined into complete and ordered service data and submitted to an upper application program.

[0100]

[0101] Exemplarily, a mapping relationship table, such as a hash table, can be preconfigured, in which the key is the CID and the value is whether it is a same connection. Exemplarily, it can be determined whether CID1 and CID2 belong to a same connection through table lookup.

[0102] In one embodiment, the sending end is a client and the receiving end is a server, and before step S501, the method further comprises: in response to a connection request of the client based on a QUIC protocol, returning a transmission layer parameter to the client to make the client configure a QoS level number based on the transmission layer parameter; wherein the QoS level number is a total number of QoS levels divided for transmission data between the client and the server.

[0103] The related embodiments and technical effects of the embodiment of the present application can be referred to the related descriptions of embodiment one or two or three, which will not be repeated here.

[0104] Embodiment five

[0105] ​​The application embodiment provides an application example of a data transmission method, which can be applied to the data transmission system of the application embodiment. The technical solutions and corresponding technical effects of embodiments one, two, three and four can be applied to the application embodiment.

[0106] For the convenience of description, two target data are defined as a default QUIC packet and a high-priority QUIC packet respectively, wherein the CID of the default QUIC packet is defined as CID1, and the CID of the high-priority QUIC packet is defined as CID2. The application example is the transmission of uplink data, that is, the sending end is a client, the receiving end is a server, and the network service providing end is a Cloud WAN. In addition, the backbone network includes two routing paths R1-R3 and R2-R3 with different QoS. The generation methods of CID1 and CID2 can be implemented according to the implementation of the second or third embodiment, and will not be described here. The following describes the application example in combination with the implementation of the third embodiment. Figure 6 The application example is introduced.

[0107] The client application program (Application, APP) can execute the method of the third embodiment of the application, including the CID generation method based on priority (QoS level), so that different CIDs are generated to associate the data packets when transmitting QUIC packets of different priorities. In the Multipath QUIC protocol, these CIDs represent different sub-paths, that is, routing paths with different QoS. Therefore, only the routing paths with different QoS need to be used to transmit the QUIC packets, without caring about the CIDs used.

[0108] Exemplarily, when the default QUIC packet and the high-priority QUIC packet are respectively sent into the network, it firstly passes through the edge router of the network operator (ISP) network (if present), and then enters the Cloud WAN provided by the application service provider. The Cloud WAN can provide different QoS routing paths, that is, the QUIC packets have different priorities on different QoS routing paths, which shows different network transmission performances. At the edge of the Cloud WAN, the CID parser parses CID1 and CID2 respectively, and routes the default QUIC packet to the default-priority WAN path, that is, the routing path R1-R3, according to the QoS level represented by CID1, and routes the high-priority QUIC packet to the high-priority WAN path, that is, the routing path R2-R3, according to the QoS level represented by CID2. Finally, the default QUIC packet and the high-priority QUIC packet converge on the same server and are processed by the Multipath QUIC protocol stack of the server APP. Since CID1 and CID2 belong to the same connection, the default QUIC packet and the high-priority QUIC packet will be combined into complete and ordered service data and submitted to the upper-layer application program.

[0109] The related embodiments and technical effects of the embodiments of the application can be referred to the related descriptions of Embodiments One, Two, Three or Four, which will not be repeated here.

[0110] Embodiment six

[0111] Corresponding to the application scenarios and the methods of Embodiments One and Two, the embodiments of the application further provide a data transmission device applied to a network service providing end, which comprises: a QoS level determining module configured to determine the QoS level of target data from a sending end; a target routing path determining module configured to determine a target routing path matched with the QoS level from a plurality of QoS-different candidate routing paths; wherein the candidate routing paths comprise routers of a plurality of regional networks; and a target data transmission module configured to transmit the target data to a receiving end by using the target routing path.

[0112] In an embodiment, the QoS level determining module comprises: a CID obtaining unit configured to obtain the CID of the target data; wherein in the QUIC protocol, the CID is used to identify the mapping relationship between the sending end, the receiving end and the target data; and a CID parsing unit configured to parse the CID to determine the QoS level.

[0113] In an embodiment, the CID resolving unit is specifically configured to: acquire a preconfigured number of QoS levels; wherein the number of QoS levels is a total number of QoS levels divided for transmission data between the sending end and the receiving end; and determine the QoS level based on a result of a modulo operation between the CID and a target number; wherein the target number is the number of QoS levels or a smallest prime number greater than the number of QoS levels.

[0114] In an embodiment, the apparatus further comprises: a number-of-QoS-levels acquisition module configured to, before determining the target routing path matching the QoS level from the multiple QoS-different candidate routing paths, acquire a preconfigured number of QoS levels; and in response to the number of QoS levels being greater than 1, trigger the target routing path determination module to determine the target routing path matching the QoS level from the multiple QoS-different candidate routing paths, wherein the number of QoS levels is a total number of QoS levels divided for transmission data between the sending end and the receiving end.

[0115] In an embodiment, one of the sending end and the receiving end is a client and the other is a server, a connection between the client and the server is established based on a QUIC protocol, the QUIC protocol comprises a transport layer parameter, and the number of QoS levels is configured based on the transport layer parameter fed back by the server to the client.

[0116] In an embodiment, the QoS level corresponds to an application transmission requirement or a communication protocol requirement of the target data.

[0117] The functions of each module in each apparatus of the embodiments of the present application can be referred to the corresponding description in the above method, and has the corresponding beneficial effects, which will not be repeated here.

[0118] Embodiment seven

[0119] Corresponding to the application scenarios and the method of Embodiment Three, the embodiments of the present application also provide a data transmission apparatus applied to a sending end, comprising: a QoS level information generation module configured to generate QoS level information; wherein the QoS level information is used to determine a QoS level of target data to be sent; and a target data sending module configured to send the target data and the QoS level information to a network service providing end, so that the network service providing end determines a target routing path corresponding to the QoS level from multiple QoS-different candidate routing paths, and transmits the target data to a receiving end by using the target routing path; wherein the candidate routing path comprises routers of multiple regional networks.

[0120] In an implementation, the QoS level information is a CID, and the QoS level information generation module is specifically configured to: generate the CID according to the QoS level, so that the network service providing end determines the QoS level by parsing the CID; and in the QUIC protocol, the CID is used to identify the mapping relationship between the sending end, the receiving end, and the target data.

[0121] In an implementation, the QoS level information generation module is specifically configured to: obtain a preconfigured QoS level number; the QoS level number is a total number of QoS levels divided for transmission data between the sending end and the receiving end; and add the product of the target number and the random number to the QoS level to obtain the CID; the target number is the QoS level number or a smallest prime number greater than the QoS level number.

[0122] In an implementation, the sending end is a client, and the receiving end is a server, and the device further includes a QoS level number configuration module configured to, in response to the client and the server establishing a connection based on the QUIC protocol, configure the QoS level number based on a transmission layer parameter fed back by the server.

[0123] The functions of each module in each device in the embodiments of the present application can be referred to the corresponding description in the above method, and has the corresponding beneficial effects, which will not be repeated here.

[0124] Embodiment eight

[0125] Corresponding to the application scenarios and the method of Embodiment Four, the embodiments of the present application also provide a data transmission device applied to a sending end, which comprises: a target data receiving module configured to receive target data transmitted based on a target routing path; the target routing path is a routing path corresponding to a QoS level of the target data, which is determined by a network service providing end from a plurality of QoS level different candidate routing paths; the candidate routing paths include routers of a plurality of regional networks; and a combination module configured to combine target data belonging to a same connection as a same service data according to a CID of the target data; the same connection is a same connection between a same sending end and a same receiving end; and the CID is used to identify the mapping relationship between the sending end, the receiving end, and the target data.

[0126] In an implementation, the sending end is a client, and the receiving end is a server, and the device further includes a transmission layer parameter returning module configured to, in response to a connection request of the client based on the QUIC protocol, return a transmission layer parameter to the client, so that the client configures a QoS level number based on the transmission layer parameter; the QoS level number is a total number of QoS levels divided for transmission data between the client and the server.

[0127] The functions of each module in each device of the embodiments of the present application can be referred to the corresponding description in the above method, and has the corresponding beneficial effects, which will not be repeated here.

[0128] Embodiment nine

[0129] Figure 7 A block diagram of an electronic device for implementing the embodiments of the present application is shown in FIG. 7. As shown in FIG. 7, the electronic device includes a memory 701 and a processor 702, and the memory 701 stores a computer program executable on the processor 702. The processor 702 implements the method in the above embodiments when executing the computer program. The number of the memory 701 and the processor 702 can be one or more. Figure 7

[0130] The electronic device further includes:

[0131] a communication interface 703 for communicating with external devices and transmitting data.

[0132] If the memory 701, the processor 702 and the communication interface 703 are independently implemented, the memory 701, the processor 702 and the communication interface 703 can be connected to each other through a bus and complete the communication therebetween. The bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. The bus can be divided into an address bus, a data bus, a control bus, etc. For the convenience of representation, Figure 7 only one thick line is used in the figure, but it does not mean that there is only one bus or only one type of bus.

[0133] Optionally, in specific implementation, if the memory 701, the processor 702 and the communication interface 703 are integrated on a chip, the memory 701, the processor 702 and the communication interface 703 can complete the communication therebetween through an internal interface.

[0134] The embodiments of the present application provide a computer readable storage medium, which stores a computer program, and the program is executed by a processor to implement the method provided in the embodiments of the present application.

[0135] The embodiments of the present application also provide a chip, which includes a processor, and is used for calling and running instructions stored in a memory to make a communication device installed with the chip execute the method provided in the embodiments of the present application.

[0136] ​The embodiment of the present application further provides a chip, comprising: an input interface, an output interface, a processor and a memory, the input interface, the output interface, the processor and the memory are connected through internal connection channels, the processor is used for executing the code in the memory, and when the code is executed, the processor is used for executing the method provided by the embodiment of the present application.

[0137] It should be understood that the processor described above can be a CPU, and can also be other general-purpose processors, digital signal processors (DSP), application specific integrated circuits (ASIC), FPGAs or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor can be a microprocessor or any conventional processor, etc. It should be noted that the processor can be a processor supporting an advanced RISC machine (ARM) architecture.

[0138] Further, the memory described above can include a read-only memory and a random access memory. The memory can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. The non-volatile memory can include a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically EPROM (EEPROM) or a flash memory. The volatile memory can include a random access memory (RAM) used as an external cache. By way of example but not limitation, many forms of RAM are available. For example, static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM) and direct memory bus random access memory (Direct Rambus RAM, DR RAM).

[0139] In the above-described embodiments, all or part can be implemented by software, hardware, firmware, or any combination thereof. When implemented by software, all or part can be implemented in the form of a computer program product. The computer program product includes one or more computer instructions. When loaded and executed by a computer, all or part generates the processes or functions according to the present application. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable apparatus. The computer instructions can be stored in a computer-readable storage medium or transferred from one computer-readable storage medium to another computer-readable storage medium.

[0140] In the description of the specification, the description of the terms "one embodiment", "some embodiments", "example", "specific example" or "some examples" and the like means that the specific features, structures, materials or characteristics described in connection with the embodiment or example are included in at least one embodiment or example of the present application. Also, the specific features, structures, materials or characteristics described can be combined in any appropriate manner in any one or more embodiments or examples. In addition, a person skilled in the art can combine and combine the different embodiments or examples described in the specification and the features of the different embodiments or examples, without contradiction.

[0141] In addition, the terms "first", "second" are used only for descriptive purposes and cannot be understood as indicating or implying relative importance or implicitly indicating the number of the indicated technical features. Therefore, the features defined with "first", "second" can explicitly or implicitly include at least one of the features. In the description of the present application, the meaning of "a plurality of" is two or more, unless otherwise explicitly specified.

[0142] Any process or method described in the flowchart or otherwise described herein can be understood as representing code modules, segments, or portions of code that include one or more executable instructions for implementing specific logic functions or steps. And the scope of the preferred embodiments of the present application includes additional implementations that can not be shown or discussed, including performing functions in a different order, in substantially simultaneous fashion, or in reverse order, according to the functions involved.

[0143] The logic and / or steps described in the flowchart or otherwise described herein, for example, can be considered as a list of executable instructions for implementing the logic function, which can be specifically implemented in any computer-readable medium for instruction execution system, device or equipment, such as computer-based system, system including processor or other system that can take instructions from instruction execution system, device or equipment and execute instructions, or in conjunction with these instructions execution system, device or equipment.

[0144] It should be understood that each part of the present application can be realized by hardware, software, firmware or a combination thereof. In the above embodiments, a plurality of steps or methods can be realized by software or firmware stored in a memory and executed by a suitable instruction execution system. All or part of the steps of the above-mentioned embodiment methods can be completed by a program instructing the relevant hardware, which can be stored in a computer readable storage medium and includes one or a combination of the steps of the embodiment methods when executed.

[0145] In addition, each functional unit in each embodiment of the present application can be integrated in one processing module, or each unit can be physically present separately, or two or more units can be integrated in one module. The above-mentioned integrated module can be realized in the form of hardware or in the form of a software functional module. The above-mentioned integrated module, if realized in the form of a software functional module and sold or used as an independent product, can also be stored in a computer readable storage medium. The storage medium can be a read-only memory, a magnetic disk or an optical disk, etc.

[0146] The above is only an exemplary embodiment of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art can easily think of various changes or replacements within the technical scope disclosed in the present application, which should be covered within the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.

Claims

1. A data transmission method, comprising: determining a quality of service level of target data from a sending end; determining a target routing path matching the quality of service level from a plurality of candidate routing paths with different quality of service; wherein the candidate routing paths include routers of a plurality of regional networks; transmitting the target data to a receiving end by using the target routing path; wherein the determining of the quality of service level of the target data from the sending end comprises: obtaining a connection identifier of the target data; wherein the connection identifier is used to identify a mapping relationship between the sending end, the receiving end and the target data in a Quick User Datagram Protocol (QUIC) protocol; parsing the connection identifier to determine the quality of service level; wherein the parsing of the connection identifier to determine the quality of service level comprises: obtaining a pre-configured quality of service level number; wherein the quality of service level number is a total number of quality of service levels divided for transmission data between the sending end and the receiving end; determining the quality of service level based on a modulo operation result between the connection identifier and a target number; wherein the target number is the quality of service level number or a smallest prime number greater than the quality of service level number.

2. The method of claim 1, wherein, Before the determining of the target routing path matching the quality of service level from the plurality of candidate routing paths with different quality of service, the method further comprises: obtaining a pre-configured quality of service level number; wherein the quality of service level number is a total number of quality of service levels divided for transmission data between the sending end and the receiving end; in response to the quality of service level number being greater than 1, performing the determining of the target routing path matching the quality of service level from the plurality of candidate routing paths with different quality of service.

3. The method of claim 1 or 2, wherein, One of the sending end and the receiving end is a client, and the other is a server, a connection between the client and the server is established based on a QUIC protocol, the QUIC protocol includes a transmission layer parameter, and the quality of service level number is configured based on a transmission layer parameter fed back by the server to the client.

4. The method of claim 1, wherein, The quality of service level corresponds to an application transmission requirement or a communication protocol requirement of the target data.

5. A data transmission method, comprising: generating quality of service level information; wherein the quality of service level information is used to determine a quality of service level of target data to be transmitted; transmitting the target data and the quality of service level information to a network service providing end, so that the network service providing end determines a target routing path corresponding to the quality of service level from a plurality of candidate routing paths with different quality of service, and transmits the target data to a receiving end by using the target routing path; wherein the candidate routing paths include routers of a plurality of regional networks; wherein the quality of service level information is a connection identifier, and the generating of the quality of service level information comprises: The connection identifier is generated according to the quality of service level, so that the network service provider determines the quality of service level by analyzing the connection identifier; wherein in the QUIC protocol, the connection identifier is used to identify the mapping relationship among the sending end, the receiving end and the target data; The connection identifier is generated according to the quality of service level, including: Obtaining a pre-configured quality of service level number; wherein the quality of service level number is the total number of quality of service levels divided for the transmission data between the sending end and the receiving end; The product of the target number and the random number is added to the quality of service level to obtain the connection identifier; wherein the target number is the quality of service level number or the smallest prime number greater than the quality of service level number.

6. The method of claim 5, wherein, The sending end is a client, and the receiving end is a server, and the method further includes: In response to the client and the server establishing a connection based on the QUIC protocol, configuring the quality of service level number based on the transmission layer parameters fed back by the server.

7. A data transmission method, comprising: Receiving target data transmitted based on a target routing path; wherein the target routing path is a routing path corresponding to the quality of service level of the target data, which is determined by a network service provider from a plurality of candidate routing paths with different quality of service levels; the candidate routing paths include routers of a plurality of regional networks; According to the connection identifier of the target data, the target data belonging to the same connection is combined as the same service data; wherein the same connection is the same connection between the same sending end and the same receiving end; the connection identifier is used to identify the mapping relationship among the sending end, the receiving end and the target data; The sending end is a client, and the receiving end is a server, and the method further includes: In response to the client based on the connection request of the QUIC protocol, returning the transmission layer parameters to the client, so that the client configures the quality of service level number based on the transmission layer parameters; wherein the quality of service level number is the total number of quality of service levels divided for the transmission data between the client and the server.

8. A data transmission system, comprising: A sending end for implementing the method of any one of claims 5-6; A network service provider for implementing the method of any one of claims 1-4; A receiving end for implementing the method of claim 7.

9. An electronic device comprising a memory, a processor and a computer program stored on the memory, wherein the processor implements the method of any one of claims 1-7 when executing the computer program.

Citation Information

Patent Citations

  • Router device and datagram transfer method for data communication network system

    US5822319A

  • Method and apparatus for transmitting data

    WO2020155148A1