Data transmission method, device and equipment
By sending historical link information in the streaming media service to set the initial sending strategy of the server device, the delay problem caused by slow startup of new links is solved, the risk of congestion and bandwidth waste is reduced, and the user experience and flow are improved. Profits from media business.
Patent Information
- Application Number
- CN202211376517.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-11-04
- Publication Date
- 2024-12-13
- Estimated Expiration
- 2042-11-04
AI Technical Summary
In streaming media services, when a new link is created between the terminal device and the server device, the first frame data transmission delay caused by the slow startup process is too long, which affects the user experience and the business benefits of the streaming media vendor, and the existing technology is difficult to Effectively reduce the risk of congestion and bandwidth waste of newly built links.
Send historical link information to the server device through the terminal device, so that the server device can set the initial sending policy based on the actual network conditions, skip the slow startup process, and reduce the risk of congestion and bandwidth waste of newly created links.
It effectively reduces the congestion risk and bandwidth waste of newly built links, improves the efficiency of first-frame data transmission, and improves user experience and profits of streaming media services.
Smart Images

Figure CN116132503B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of communication technology, and in particular to a data transmission method, device and equipment. Background Art
[0002] In recent years, new streaming services such as live broadcast and short video have emerged, and users' requirements for streaming services are developing in the direction of ultra-high definition, ultra-high fluency, and ultra-low latency. In the scenarios where users actually use the services, users often switch between live broadcast rooms or videos frequently, resulting in a high proportion of short connections. The terminal needs to frequently establish new links with the server. After the new link is established, the server needs to push the first frame data of the video to the terminal again. The terminal starts to play the picture only after receiving the first frame data. Among them, the delay of the first frame is a key factor affecting the user experience. If the delay of the first frame is too large, users will lose interest in continuing to browse because they have to wait too long for the picture to play, which will affect the user experience and the business revenue of the streaming media vendor.
[0003] The current network transmission protocol needs to go through a slow start process when transmitting data through a newly established link. It takes several round-trip times (RTT) to reach the transmission rate that matches the real network. Therefore, each time the link is reestablished, the first frame transmission delay is large due to the slow start process, which affects the user experience. Summary of the invention
[0004] The embodiments of the present application provide a data transmission method, apparatus, and device, which can reduce the risk of congestion in a newly created link between a terminal device and a server device or reduce the bandwidth waste of the newly created link.
[0005] In a first aspect, a data transmission method is provided, which is applied to a business system, wherein the business system includes at least one terminal device and at least one server device; the method includes: a first terminal device among the at least one terminal device sends a first information to a first server device among the at least one server device, wherein the first information includes a first historical link information; wherein the first historical link information indicates a state of a historical link; the historical link is a historical link between the first server device and the first terminal device, or a historical link between the first server device and a second terminal device, and the second terminal device and the first terminal device are in the same local area network; the first server device sets an initial sending strategy for the first link between the first server and the first terminal device according to the state of the historical link; and the first server device sends business data to the first terminal device through the first link according to the initial sending strategy.
[0006] Through this method, the terminal device sends the historical link information to the server device. Even if the IP address of the terminal device changes, the server device can obtain the information recording the status of the historical link between the terminal device and the server device, that is, the correct historical link information, so that the server device can obtain the status of the historical link between the terminal device and the server device based on the historical link information, and then the server device can set the initial sending strategy for the newly created link between the server device and the terminal device based on the historical link between the terminal device and the server device. Since the initial sending strategy is set based on the status of the historical link between the terminal device and the server device, the initial sending strategy is highly consistent with the actual network status of the newly created link between the terminal device and the server device, which allows the newly created link to skip the slow start while reducing the risk of congestion in the newly created link between the terminal device and the server device or reducing the bandwidth waste of the newly created link.
[0007] In a possible implementation manner, the first information is a handshake message used to establish the first link.
[0008] In this implementation, when the terminal device and the server device exchange handshake messages to establish a first link, the historical link information can be carried in the handshake message, thereby sending the historical link information to the server device without additional signaling or message transmission.
[0009] In one possible implementation, the state of the historical link includes a first transmission rate, and the initial sending strategy includes an initial rate set based on the first transmission rate; or, the state of the historical link includes a second transmission rate and a round-trip delay RTT, and the initial sending strategy includes an initial rate calculated based on the second transmission rate and the round-trip delay; or, the state of the historical link includes a packet loss rate, and the initial sending strategy includes a data message sending redundancy rate set based on the packet loss rate.
[0010] In a possible implementation, there are multiple at least one server device, and the multiple server devices correspond one-to-one to multiple historical link information; the method also includes: the terminal device determines the first historical link information from multiple historical link information based on the identifier of the first server device.
[0011] In this implementation, the historical link information is identified by the identifier of the server device. The server device is relatively fixed, and the identifier of the server device is also relatively fixed. The identifier of the server device is used to indicate the historical link information, so that the status of the link recorded in the historical link information and the device corresponding to the link have a high degree of consistency.
[0012] In a possible implementation, when the historical link is a historical link between the first server device and the first terminal device, the first historical link information is detected by the first terminal device when the first server device sends service data to the first terminal device through the historical link; when the historical link is a historical link between the first server device and the second terminal device, the first historical link information is detected by the second terminal device when the first server device sends service data to the first terminal device through the historical link.
[0013] In a possible implementation, the business system also includes an intermediate device, and the method also includes: when the first terminal device or the second terminal device detects the first historical link information, the first terminal device or the second terminal device sends the first historical link information to the intermediate device; the first terminal device sends the first information to the first server device among the at least one server device, including: the first terminal device obtains the first historical link information from the intermediate device, and includes the first historical link information in the first information sent to the first server device.
[0014] In this implementation, the historical link information can be stored in the intermediate device, so that different terminal devices connected to the intermediate device can obtain the historical link information from the intermediate device, thereby achieving sharing of the historical link information among different terminal devices connected to the intermediate device.
[0015] In a possible implementation, when the historical link is a historical link between the first server device and the second terminal device, and the second terminal device and the first terminal device have different requirements for link quality, the method further includes: the intermediate device modifies the first historical link information detected by the second terminal device according to the link quality of the first terminal device; the first terminal device obtains the first historical link information from the intermediate device, including: the first terminal device obtains the modified first historical link information from the intermediate device.
[0016] In this embodiment, when the terminal device that generates the historical link information (i.e., the second terminal device) and the terminal device that uses the historical link information (i.e., the first terminal device) are different, the link state represented by the historical link information can be adjusted according to the quality requirements of the terminal device that uses the link information, that is, the historical link information can be modified so that the link state represented by the modified historical link information matches the quality requirements of the terminal device that uses the link information, thereby making the initial sending strategy determined by the server device based on the modified historical link information more consistent with the actual network state of the newly created link.
[0017] In one possible implementation, the first link is a Quick UDP Internet Connection Protocol (QUIC) link, and the historical link is a QUIC link or a Transmission Control Protocol (TCP) link; or, the first link is a TCP link, and the historical link is a QUIC link or a Transmission Control Protocol (TCP) link.
[0018] In a second aspect, a data transmission method is provided, which is applied to a first terminal device in a business system, wherein the business system further includes at least one server device; the method includes:
[0019] The first terminal device sends first information to a first server device among the at least one server device, wherein the first information includes first historical link information; wherein the first historical link information indicates a state of a historical link; the historical link is a historical link between the first server device and the first terminal device, or a historical link between the first server device and a second terminal device, and the second terminal device and the first terminal device are in the same local area network;
[0020] The state of the historical link is used by the first server device to set an initial sending strategy for the first link between the first server and the first terminal device, and the initial sending strategy is used by the first server device to send service data to the first terminal device through the first link.
[0021] In a possible implementation, there are multiple at least one server device, and the multiple server devices correspond one-to-one to multiple historical link information; the method also includes: the terminal device determines the first historical link information from the multiple historical link information based on the identifier of the first server device.
[0022] In a third aspect, a data transmission method is provided, which is applied to a first server device in a business system, wherein the business system further includes at least one terminal device; the method includes:
[0023] The first server device receives first information sent by a first terminal device among the at least one terminal device, wherein the first information includes first historical link information; wherein the first historical link information indicates a state of a historical link; the historical link is a historical link between the first server device and the first terminal device, or a historical link between the first server device and a second terminal device, and the second terminal device and the first terminal device are in the same local area network;
[0024] The first server device sets an initial sending strategy for the first link between the first server and the first terminal device according to the state of the historical link;
[0025] The first server device sends service data to the first terminal device through the first link according to the initial sending strategy.
[0026] In a possible implementation manner, the state of the historical link includes a first transmission rate, and the initial sending strategy includes an initial rate set based on the first transmission rate; or,
[0027] The state of the historical link includes a second transmission rate and a round-trip time RTT, and the initial sending strategy includes an initial rate calculated based on the second transmission rate and the round-trip time RTT; or
[0028] The state of the historical link includes a packet loss rate, and the initial sending strategy includes a data message sending redundancy rate set based on the packet loss rate.
[0029] In a fourth aspect, a business system is provided, the business system comprising at least one terminal device and at least one server device; wherein:
[0030] The first terminal device among the at least one terminal device is used to send first information to the first server device among the at least one server device, wherein the first information includes first historical link information; wherein the first historical link information indicates the state of a historical link; the historical link is a historical link between the first server device and the first terminal device, or a historical link between the first server device and a second terminal device, and the second terminal device and the first terminal device are in the same local area network;
[0031] The first server device is used to set an initial sending strategy for the first link between the first server and the first terminal device according to the state of the historical link;
[0032] The first server device is used to send service data to the first terminal device through the first link according to the initial sending strategy.
[0033] In a fifth aspect, a data transmission device is provided, the device being used as a first terminal device in a service system, the service system further comprising at least one server device; the device comprising:
[0034] a communication unit, configured to send first information to a first server device among the at least one server device, wherein the first information includes first historical link information; wherein the first historical link information indicates a state of a historical link; the historical link is a historical link between the first server device and the first terminal device, or a historical link between the first server device and a second terminal device, and the second terminal device and the first terminal device are in the same local area network;
[0035] The state of the historical link is used by the first server device to set an initial sending strategy for the first link between the first server and the first terminal device, and the initial sending strategy is used by the first server device to send service data to the first terminal device through the first link.
[0036] In a sixth aspect, a data transmission device is provided, the device being used as a first server device in a business system, the business system further comprising at least one terminal device; the device comprising:
[0037] a receiving unit, configured to receive first information sent by a first terminal device among the at least one terminal device, wherein the first information includes first historical link information; wherein the first historical link information indicates a state of a historical link; the historical link is a historical link between the first server device and the first terminal device, or a historical link between the first server device and a second terminal device, and the second terminal device and the first terminal device are in the same local area network;
[0038] A setting unit, configured to set an initial sending strategy for the first link between the first server and the first terminal device according to the state of the historical link;
[0039] A sending unit is used to send business data to the first terminal device through the first link according to the initial sending strategy.
[0040] In the seventh aspect, a terminal device is provided, comprising a memory and a processor; the memory is used to store computer instructions; the processor is used to execute the computer instructions stored in the memory to implement the method described in the second aspect.
[0041] In an eighth aspect, a server-side device is provided, comprising a memory and a processor; the memory is used to store computer instructions; the processor is used to execute the computer instructions stored in the memory to implement the method described in the third aspect.
[0042] In a ninth aspect, a computer storage medium is provided, wherein the computer storage medium includes computer instructions, and when the computer instructions are executed on a computing device, the computing device executes the method described in the second aspect or the method described in the third aspect.
[0043] In the tenth aspect, a chip is provided, wherein the chip is used to execute the method described in the second aspect or the method described in the third aspect.
[0044] In the eleventh aspect, a computer program product is provided, which, when the program code contained in the computer program product is executed by a processor in a computing device, implements the method described in the second aspect or the method described in the third aspect.
[0045] The data transmission method, apparatus and equipment provided in the embodiments of the present application can enable the server device to determine an initial sending strategy that is highly consistent with the actual network status of the newly created link between the terminal device and the server device, and send service data to the terminal device through the newly created link according to the initial sending strategy, thereby reducing the risk of congestion in the newly created link between the terminal device and the server device or reducing the bandwidth waste of the newly created link. BRIEF DESCRIPTION OF THE DRAWINGS
[0046] Figure 1 It is a schematic diagram of a system architecture provided by an embodiment of the present application;
[0047] Figure 2 It is a schematic diagram of a system architecture provided by an embodiment of the present application;
[0048] Figure 3 It is a schematic diagram of the software results of the server device provided in the embodiment of the present application;
[0049] Figure 4A A flowchart of a data transmission scheme provided in an embodiment of the present application;
[0050] Figure 4B is a flow chart of a data transmission scheme provided by an embodiment of the present application;
[0051] Figure 5 It is a schematic diagram of a message structure provided in an embodiment of the present application;
[0052] Figure 6 is a flow chart of a data transmission method provided in an embodiment of the present application;
[0053] Figure 7 It is a structural schematic diagram of a data transmission device provided in an embodiment of the present application;
[0054] Figure 8 It is a structural schematic diagram of a data transmission device provided in an embodiment of the present application;
[0055] Fig. 9 It is a structural diagram of a terminal device provided in an embodiment of the present application;
[0056] Fig.10 It is a structural diagram of a server device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0057] The technical solutions in the embodiments of the present application will be described below in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of this specification, not all of the embodiments.
[0058] In the description of this specification, "one embodiment" or "some embodiments" etc. means that one or more embodiments of this specification include a specific feature, structure or characteristic described in conjunction with the embodiment. Therefore, the phrases "in one embodiment", "in some embodiments", "in some other embodiments", "in some other embodiments", etc. appearing in different places in this specification do not necessarily refer to the same embodiment, but mean "one or more but not all embodiments", unless otherwise specifically emphasized in other ways.
[0059] In the description of this specification, unless otherwise specified, " / " means or, for example, A / B can mean A or B; "and / or" in this article is only a description of the association relationship of related objects, indicating that there can be three relationships, for example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone. In addition, in the description of the embodiments of this specification, "multiple" means two or more than two.
[0060] In the description of this specification, the terms "first" and "second" are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the number of the indicated technical features. Therefore, the features defined as "first" and "second" may explicitly or implicitly include one or more of the features. The terms "include", "comprises", "has" and their variations all mean "including but not limited to", unless otherwise specifically emphasized.
[0061] With the development of streaming media services, users' experience requirements for streaming media services are also developing towards ultra-high definition, ultra-high fluency, and ultra-low latency. Among them, ultra-high definition requires the video bit rate to be increased to 4K resolution, 8K resolution or even higher, and the frame rate to be increased to 120fps. Ultra-high fluency requires the user experience to be free of lag and the transmission network to have a packet loss rate of less than 0.3%; ultra-low latency requires the real-time interaction between the client and the server to have a latency of less than 50ms.
[0062] In order to meet the user experience requirements, the industry continues to invest in the fields of media application processing, transmission networks, and transmission protocols to develop related technologies. In the field of media application processing, the user's picture quality experience is improved by developing codec and cloud collaborative processing technologies. In the field of transmission networks, streaming media service providers reduce end-to-end latency by building or renting content delivery networks (CDNs).
[0063] Among them, CDN is a network infrastructure widely used on the Internet, which can provide cheap cross-regional large-scale data distribution and caching capabilities for streaming media services. The transmission of streaming media service data from the CDN edge node as the server to the client needs to follow the transmission protocol. Among them, the commonly used transmission protocols for streaming media services are the transmission control protocol (TCP) and the quick UDP internet connection protocol (QUIC) based on the user datagram protocol (UDP). Among them, QUIC is a transport layer protocol running in user mode, which can be multiplexed and is more secure and reliable than the TCP protocol.
[0064] In the scenario where users actually use streaming media services, they may frequently switch between live broadcast rooms or videos, resulting in a high proportion of short connections, requiring the terminal device to frequently re-establish links with the server. After the new link is established, the server needs to re-push the first frame of video data to the terminal. Among them, the first frame data refers to the first frame of video stream data transmitted by the server to the terminal device after the link is established, when the video stream data is encoded and decoded at the granularity of frames and transmitted in the network. The terminal starts to play the picture only after receiving the first frame data. Among them, the delay of the first frame is a key factor affecting the user experience. If the delay of the first frame is too large, the user will lose interest in continuing to browse because he has to wait too long for the picture to play, which will affect the user experience and the business revenue of the streaming media manufacturer.
[0065] In current transmission protocols (for example, TCP protocol, QUIC protocol), data transmission on a newly created link needs to go through slow start. Slow start is a congestion control mechanism used by the transmission protocol to avoid network congestion caused by sending data that exceeds the network's carrying capacity. During the slow start process, the sender will increase the congestion window (CWND) every time it receives an acknowledgment character (ACK) sent by the receiver, until the packet loss rate reaches a certain level. Therefore, it takes several RTTs to reach a transmission rate that matches the actual network conditions. Prior to this, service data is sent at a transmission rate lower than that that matches the actual network conditions. Therefore, the slow start mechanism seriously affects the transmission of the first frame of data, thereby affecting the user experience.
[0066] In one solution, a destination metrics mechanism is used to enable a newly created link to skip the slow start phase. The destination metrics mechanism refers to the link state represented by the historical link information cached by the server, which initializes the initial sending strategy of the newly created link, so that the server does not go through the slow start phase, but directly sends data to the client through the newly created link according to the initial sending strategy. The historical link information records the status of the historical links between the server and the client, and is stored using the Internet Protocol (IP) address of the client as an identifier. In this solution, when the link between the server and the client is established, the server queries the historical link information based on the IP address of the client, and uses the link state identified by the queried historical link information to initialize the initial sending strategy of the newly created link.
[0067] Although this solution allows the newly created link to skip the slow start phase. However, in business scenarios such as streaming media, due to technologies such as network address translation (NAT), the IP address of the client observed by the server may be shared by multiple clients, and the IP address of the client may change with time or location (for example, an IP address is first used by client A1 and then by client A2), which may result in the historical link information queried by the server through the client IP address not actually recording the status of the historical link between the client and the server. Therefore, based on the historical link information (for example, the historical link information recording the status of the historical link between client A1 and the server) queried through the client IP address (for example, first used by client A1 and then used by client A2), the initial sending strategy of the newly created link between the client (using client A2) and the server may result in a large difference between the initialized initial sending strategy and the actual network status of the newly created link, which may cause congestion or bandwidth waste when sending data according to the initial sending strategy. In addition, since the server establishes links with many clients, in this solution, the server needs to cache a lot of historical link information, resulting in a large cache pressure on the server. In particular, the server currently usually adopts a server cluster architecture, under which historical link information needs to be synchronized between different servers, and the synchronization of a lot of historical link information between different servers is highly complex.
[0068] In another solution, the server caches the actual maximum transmission rate of the historical link between the server and the client. The actual maximum transmission rate is still identified by the client's IP address. When a client with the same IP address requests to establish a link with the server, the server uses the actual maximum transmission rate of the historical link to set the starting transmission rate of the new link. Although this solution allows the new link to skip the slow start phase. However, due to the sharing of IP addresses between different clients and the change of client IP addresses, the starting transmission rate of the new link and the actual network status of the new link are quite different, which may cause congestion or bandwidth waste when sending data according to the initial sending strategy. In addition, since the server establishes links with many clients, in this solution, the server needs to cache a lot of historical link information, resulting in a large cache pressure on the server. In particular, the server currently usually adopts a server cluster architecture, under which historical link information needs to be synchronized between different servers, and the synchronization of many historical link information between different servers is complex.
[0069] An embodiment of the present application provides a data transmission scheme. In this scheme, a terminal device can cache historical link information and send the historical link information to a server device. The server device can set the initial transmission strategy for the newly created link between the server device and the terminal device according to the state of the historical link represented by the historical link information sent by the terminal device, and send service data to the terminal device through the newly created link according to the initial transmission strategy. Among them, the terminal device can also be called a client, or a device running a client. The link state includes the actual transmission rate of the link, round-trip delay, congestion window, packet loss rate, etc. The sending strategy refers to the strategy of the server to send service data to the client. The initial sending strategy refers to the service data sending strategy adopted by the sender when it starts to send service data to the receiver through the link after the link is established.
[0070] In this solution, the terminal device sends historical link information to the server device. Even if the IP address of the terminal device changes, the server device can obtain information recording the status of the historical link between the terminal device and the server device, that is, the correct historical link information, so that the server device can obtain the status of the historical link between the terminal device and the server device based on the historical link information, and then the server device can set the initial sending strategy for the newly created link between the server device and the terminal device based on the historical link between the terminal device and the server device. Since the initial sending strategy is set based on the status of the historical link between the terminal device and the server device, the initial sending strategy is highly consistent with the actual network status of the newly created link between the terminal device and the server device, which allows the newly created link to skip the slow start while reducing the risk of congestion or bandwidth waste in the newly created link.
[0071] Moreover, in this solution, the terminal device sends the historical link information to the server device, that is, the historical link information does not need to be cached in the server device, thereby alleviating the cache pressure of the server device and reducing the complexity of synchronizing data between servers.
[0072] Next, the data transmission scheme provided in the embodiment of the present application is described in detail.
[0073] Figure 1 A system architecture 100 is shown. The system architecture 100 can be used to implement the data transmission solution provided in the embodiment of the present application. Figure 1 As shown, the system architecture 100 may include at least a server device 111 and a terminal device 121. That is, the system architecture 100 includes at least one server device and at least one terminal device.
[0074] In some embodiments, the system architecture 100 may include multiple server devices. Figure 1As shown, the system architecture 100 includes a server device 111 and a server device 112. The system architecture 100 may include multiple terminal devices. Figure 1 As shown, the system architecture 100 includes terminal device 121 as well as terminal device 122, terminal device 123, terminal device 124, etc.
[0075] In the embodiment of the present application, when no special distinction is made between the server devices 111, 112, etc., they may be referred to as server devices for short. When no special distinction is made between the terminal devices 121, 122, 123, 124, etc., they may be referred to as terminal devices for short.
[0076] The server device refers to the service server, which stores service data and can send service data to the client of the service, so that the user can use the service through the client. In one example, the service can be a streaming service. In one example, the service can be a live broadcast service. In another example, the service can be a short video service. And so on. In another example, the service can be a cloud rendering service, such as cloud rendering of three-dimensional picture rendering. The picture is drawn and rendered on the server device, and then the server device sends the picture to the client in the form of a video stream.
[0077] In some embodiments, the server device can be implemented by hardware, for example, it can be implemented as a server or a server cluster. For another example, the server device can be one or more computing nodes in a cloud computing data center. In some embodiments, the server device can be implemented by software. For example, the server device can be implemented as a virtual machine (VM). In a specific example, the server device can be a content delivery network (CDN) node.
[0078] The terminal device is a device on the user side that can run the client of the service so that the user can use the service provided by the server device through the terminal device. The terminal device can be a mobile phone, tablet computer, personal computer (PC), smart wearable device, smart TV, car terminal, aerial photography drone, etc. Among them, the terminal device can provide a hardware environment for the operation of the service client.
[0079] Continue reading Figure 1 and Figure 2, the terminal device and the server device can be connected via the Internet. Among them, through the Internet, the terminal device and the server device can establish a communication link between them according to the transmission protocol. The server device can send service data, such as video streams, to the terminal device through the communication link.
[0080] When a new communication link is established between a terminal device and a server device, the terminal device may send historical link information between the terminal device and the server device to the server device. The historical link information indicates the state of the historical link between the terminal device and the server device. The historical link refers to the communication link between the terminal device and the server device in history. That is, the historical link refers to the communication link between the terminal device and the server device before the new communication link is established between the terminal device and the server device.
[0081] After receiving the historical link information and successfully establishing a new link between the server device and the terminal device, the server device can set the initial transmission strategy of the new link according to the state of the historical link represented by the historical link information. Then, the server device can send service data to the terminal device according to the initial transmission strategy, thereby skipping the slow start phase, improving the service data transmission efficiency, especially improving the transmission efficiency of the first frame data.
[0082] In some embodiments, the software structure of the server device can be as follows: Figure 3 As shown, it includes an application layer module 310, a transport layer module 320 and an IP layer module 300. The application layer module 310 is used to transfer the service data to the transport layer module 320 according to the application layer protocol. The transport layer module 320 can encapsulate the service data into a data message of the transport layer according to the transport layer protocol (such as TCP protocol, QUIC protocol, etc.), and transfer the data message of the transport layer to the IP layer module 330. The IP layer module 330 can further encapsulate the data message and then transfer it to the next layer.
[0083] The transport layer module 320 includes a connection management unit 321 , a link status information management unit 322 , a congestion control unit 323 , a redundancy recovery unit 324 , a message encapsulation and parsing unit 325 , and a transceiver unit 326 .
[0084] The transceiver unit 326 is used to receive information sent by the terminal device, such as historical link information. The message encapsulation and parsing unit 325 can encapsulate the service data into a data message of the transport layer, or parse the transport layer message header of the message from the IP layer module 330, thereby extracting the information carried by the message header, such as historical link information.
[0085] The link state information management unit 322 can obtain historical link information, and set the initial sending strategy of the newly created link according to the state of the historical link represented by the historical link information. Among them, the state of the historical link can include RTT and CWND, and the set initial sending strategy can include an initial transmission rate. Specifically, the link state information management unit 322 can calculate the initial transmission rate according to the RTT and the CWND. The link state information management unit 322 can pass the calculated initial transmission rate to the congestion control unit 323, so that the congestion control unit 323 can control the rate at which the service end device sends data packets based on the initial transmission rate. The state of the historical link can include a packet loss rate, and the link state information management unit can determine the redundancy rate according to the packet loss rate, and pass the redundancy rate to the redundancy recovery unit 324. The redundancy recovery unit 324 can turn on forward error correction (FEC) according to the redundancy rate, and send data packets to the terminal device according to the redundancy rate to combat network packet loss.
[0086] In some embodiments, the system architecture 100 may include an intermediate device in the same local area network as the terminal device. The terminal device is connected to the Internet through the intermediate device, and can then be connected to the server device through the Internet. In some embodiments, the intermediate device may include multiple access devices such as access device 131 and access device 132, and at least one aggregation device such as aggregation device 141.
[0087] The access device is a network access device close to the terminal device. The terminal device accesses the network by connecting to the access device. Typical access devices include modems, routers, or wireless base stations.
[0088] The aggregation device is a device located on the terminal side that is used to connect access devices to the network. The aggregation device can be used to forward data from multiple access devices to the server device, and forward data from the server device to multiple access devices. Typical aggregation devices include core routers, core switches, etc.
[0089] The above examples introduce a system architecture that can be used to implement the data transmission solution provided by the embodiment of the present application. Next, the system architecture is introduced, and the execution process of the data transmission solution provided by the embodiment of the present application is introduced by taking the terminal device 121 and the server device 111 as examples.
[0090] See also Figure 4A and Figure 4BIn step 401, the terminal device 121 may determine that a link B1 needs to be established with the server device 111. When step 401 is executed, there is no link between the terminal device 121 and the server device 111. In other words, the link B1 is a new link that needs to be established, rather than an existing link between the terminal device 121 and the server device 111.
[0091] The link can also be called a communication link, which refers to a channel for data transmission between devices. The link can be a link defined by a transmission protocol, such as a link defined by the TCP protocol, a link defined by the QUIC protocol, etc.
[0092] In some embodiments, the terminal device 121 can actively establish a link B1 between the terminal device 121 and the server device 111. Taking the live broadcast service as an example, the user can switch the live broadcast room through the terminal device 121. Taking short videos as an example, the user can switch short videos through the terminal device 121. In these cases, the terminal device 121 needs to switch the connection between the terminal device 121 and other server devices to the connection between the terminal device 121 and the server device 111. In this way, the terminal device 121 can actively establish a link B1 between the terminal device 121 and the server device 111, so that it can be determined that the link B1 needs to be established with the server device 111.
[0093] In some embodiments, the terminal device 121 can passively establish a link between the terminal device 121 and the server device 111. Exemplarily, the terminal device 121 can determine that it is necessary to establish a link B1 with the server device 111 when receiving a handshake request message sent by the server device 111. When the terminal device and the server device establish a link, several handshake messages are required to shake hands before the link can be successfully established. When the server device 111 needs to establish a link with the terminal device 121, the server device 111 sends a handshake request message to the terminal device 121 to request or notify the terminal device 121 to perform a link establishment operation. Therefore, when the terminal device 121 receives the handshake request message sent by the server device 111, the terminal device 121 can passively establish a link B1 between the terminal device 121 and the server device 111, thereby determining that it is necessary to establish a link B1 with the server device 111.
[0094] The terminal device 121 may execute step 402, and the terminal device 121 obtains historical link information C1. Historical link information refers to information that records the status of the historical link between the terminal device and the server device. The link status refers to the actual status of the link, including the actual transmission rate, round-trip delay, congestion window, packet loss rate, etc. of the link. Historical link information C1 refers to information that records the status of the historical link between the terminal device D and the server device 111. The terminal device D may be the terminal device 121, or a terminal device (such as the terminal device 122) in the same local area network as the terminal device 121. When the terminal device D is the terminal device 121, the historical link between the terminal device D and the server device 111 refers to the link between the terminal device 121 and the server device 111 in history, and the historical link has been disconnected in step 401. When the terminal device D is not the terminal device 121, that is, when the terminal device D is another terminal device in the same local area network as the terminal device 121, the historical link between the terminal device D and the server device 111 refers to the historical link or the most recently established link between the terminal device D and the server device 111. The historical link and the most recently established link are both relative to the execution time of step 401.
[0095] In an embodiment of the present application, the historical link information C1 and the identifier of the server device 111 have a mapping relationship. Exemplarily, the identifier of the server device 111 can be the network address of the server device 111, such as an IP address. The identifier of the server device 111 can also be other information that can distinguish the server device 111 from other server devices. It is not difficult to understand that the location of the server device is relatively fixed, so the identifiers such as the network address of the server device 111 are also relatively fixed. Using the identifier of the server device to indicate the historical link information makes the state of the link recorded by the historical link information and the device corresponding to the link have a high consistency.
[0096] When storing the historical link information C1, the identifier of the server device 111 can be used as the key of the historical link information C1. The terminal device 121 can query the historical link information C1 based on the identifier of the server device 111, thereby obtaining the historical link information C1. In particular, when the system architecture 100 includes multiple server devices, there may be multiple historical link information on the terminal device side, wherein multiple server devices correspond to multiple historical link information one by one. According to the identifier of the server device, the historical link information corresponding to the corresponding server device can be queried from the multiple historical link information. Among them, the terminal device side includes the terminal device itself and other devices in the same local area network as the terminal device.
[0097] In some embodiments, when there is a link between a terminal device and a server device, the terminal device can detect the state of the link and obtain historical link information. The terminal device can store or cache historical link information. Exemplarily, the terminal device can periodically detect the state of the link according to a preset period T1 to periodically obtain historical link information. Among them, the historical link information has a life cycle, for example, the life cycle of the historical link information can be N periods T1. When the storage time of the historical link information reaches N periods T1, the historical link information becomes invalid. The historical link information after expiration can be deleted. Among them, N is an integer greater than or equal to 1. The duration of period T1 can be preset based on experience or experiment. In one example, the duration of period T1 can be 5 seconds. In another example, the duration of period T1 can be 10 seconds. And so on.
[0098] In addition, the historical link information C1 acquired in step 402 is historical link information that has not been invalidated.
[0099] In some embodiments, the terminal device may store or cache the obtained historical link information locally. In step 402 , the terminal device 111 may query the historical link information C1 in the information stored or cached locally according to the identification of the server device 111 .
[0100] In some embodiments, the terminal device may send the historical link information to an intermediate device in the same local area network (ie, the intermediate device and the terminal device are in the same local area network), so that the intermediate device stores or caches the historical link information. Figure 4B As shown, when the terminal device 121 needs to obtain the historical link information C1, the terminal device 121 can execute step 402a to send the identifier of the server device 111 to the intermediate device. The intermediate device can query the historical link information C1 in the information stored or cached by the intermediate device according to the identifier of the server device 111. When the intermediate device queries the historical link information C1, it can execute step 402b to send the historical link information C1 to the terminal device 121.
[0101] In this embodiment, historical link information can be shared by different terminal devices in the same local area network. Specifically, there is a link or has historically existed a link between the terminal device 122 and the server device 111, and the terminal device 122 generates historical link information C1, and the historical link information C1 is indicated by the identifier of the server device. The terminal device 122 can send the historical link information C1 to the intermediate device. When the terminal device 121 needs to obtain the historical link information (i.e., historical link information C1) indicated by the identifier of the server device 111, it can query the intermediate device based on the identifier of the server device 111 to obtain the historical link information C1 generated by the terminal device 122 and indicated by the identifier of the server device 111, thereby obtaining the historical link information C1. In this way, the sharing of historical link information between different terminal devices is achieved.
[0102] In an example of this embodiment, in the system architecture 100, the intermediate device includes an access device and an aggregation device. The terminal device can send the historical link information to the access device to which the terminal device is connected, so that the historical link information is stored or cached in the access device. The access device can also send the historical link information it has received to the aggregation device to which the access device is connected, so that the historical link information is stored or cached in the aggregation device. When the terminal device needs to obtain the historical link information, the corresponding historical link information can be queried in the information stored or cached in the access device or aggregation device to which the terminal device is connected according to the identification information of the server device. In one example, when the terminal device needs to obtain the historical link information, the corresponding historical link information (the historical link information indicated by the identification of the server device) can be first queried in the information stored or cached in the access device to which the terminal device is connected according to the identification of the server device, so as to preferentially obtain the historical link information generated by the terminal device under the same access device. When the corresponding historical link information is not queried in the information stored or cached in the access device to which the terminal device is connected, the terminal device then queries the corresponding historical link information in the information stored or cached in the corresponding aggregation device according to the identification of the server device. The corresponding aggregation device of the terminal device refers to the aggregation device connected to the access device to which the terminal device is connected.
[0103] In some embodiments, the terminal device may store or cache the obtained historical link information locally, and at the same time, send the historical link information to the intermediate device. When the terminal device needs to obtain historical link information, it can first query the corresponding historical link information (historical link information indicated by the identifier of the server device) in the information stored or cached by the terminal device according to the identifier of the server device, so as to preferentially obtain the historical link information generated by the same terminal device. When the corresponding historical link information is not queried in the information stored or cached by the terminal device, the terminal device then queries the corresponding historical link information in the information stored or cached by the intermediate device according to the identifier of the server device.
[0104] In some embodiments, as described above, the historical link information C1 is information that records the status of the historical link between the terminal device D and the server device 111. The terminal device D is the terminal device 121 or other terminal devices in the same local area network as the terminal device 121. The other terminal device in the same local area network as the terminal device 121 can be set as the terminal device 122. When the terminal device D is a device other than the terminal device 121, that is, when the terminal device D is the terminal device 122, that is, when the historical link information C1 is detected by the terminal device 122, if the terminal device 121 and the terminal device 122 have different requirements for the link quality, the original historical link information C1 can be modified or adjusted according to the link quality requirements of the terminal device 121. The modified or adjusted original historical link information C1 is used as the historical link information C1 acquired by the terminal device 121.
[0105] The original historical link information C1 refers to the historical link information C1 detected by the terminal device 122. The terminal device detects the historical link information, which means that the terminal device detects the state of the link and generates the historical link information based on the detection result. Link quality can refer to quality of service (QoS) or other forms of network link quality.
[0106] As described above, the intermediate device stores or caches the historical link information detected by the terminal device connected to the intermediate device. Figure 1In the system architecture 100 shown, the access device 131 or the aggregation device 141 stores or caches the original historical link information C1 detected by the terminal device 122. It can also be set that the terminal device 121 and the terminal device 122 have different requirements for link quality. The state of the link is affected by the requirements of the terminal device 122 for link quality and the performance of the link itself. For example, the theoretical bandwidth of the link is 20MB, and the requirements of the terminal device 122 for link quality are: high requirements for packet loss rate and low requirements for transmission rate. Therefore, in actual transmission, in order to ensure a lower packet loss rate, a transmission rate lower than the theoretical bandwidth, such as 10MB, may be used for data transmission. This results in the data transmission rate recorded in the original historical link information C1 detected by the terminal device 122 being 10MB. The requirements of the terminal device 121 for link quality are: high requirements for transmission rate and low requirements for packet loss rate. When the terminal device 121 obtains the historical link information C1 from the access device 131 or the aggregation device 141, the access device 131 or the aggregation device 141 may adjust or modify the original historical link information C1 according to the link quality requirements of the terminal device 121. For example, the data transmission rate recorded in the original historical link information C1 is modified from 10MB to the theoretical bandwidth (i.e., 20MB), etc. The access device 131 or the aggregation device 141 sends the modified original historical link information C1 as the historical link information C1 to the terminal device 121.
[0107] Continue reading Figure 4A and Figure 4B After the terminal device 121 obtains the historical link information C1 , the terminal device 121 may execute step 403 to send the historical link information C1 to the server device 111 .
[0108] In some embodiments, step 403 may be performed during or before the establishment of link B1. The establishment of link B1 requires several information handshakes, that is, several handshake messages need to be exchanged between the terminal device 121 and the server device 111. The handshake message is used to establish link B1 between the terminal device 121 and the server device 111. The terminal device 121 may carry the historical link information C1 in the handshake message sent to the server device 121 to send the historical link information C1 to the server device 111. Exemplarily, the handshake message may be a handshake request message or a handshake response message.
[0109] In an example of this embodiment, the historical link information C1 can be carried in a reserved field or an extended field of the handshake message, that is, the reserved field or the extended field is used to carry the historical link information C1. For example, the historical link information C1 is carried in a reserved field or an extended field of the message header of the transport layer protocol. In one example, taking link B1 as a QUIC protocol link, the handshake message supports carrying transport parameter extension information. The historical link information can be added based on the transport parameters (transport parameter) already defined in the QUIC protocol. Specifically, Figure 5 As shown, the added historical link information includes transmission rate, round-trip delay, packet loss rate, etc. In one example, taking link B1 as a TCP protocol link, the historical link information C1 can be carried in the reserved field of the TCP header of the handshake message. Thus, the historical link information C1 can be sent to the server device 111 along with the handshake message.
[0110] In some embodiments, step 403 may be performed after the link B1 is established and before the server device 111 sends service data to the terminal device 121 through the link B1.
[0111] Continue reading Figure 4A and Figure 4B After receiving the historical link information C1, the server device 111 may execute step 404 to set an initial sending strategy for the link B1.
[0112] In some embodiments, the state of the historical link recorded in the historical link information C1 includes a transmission rate. In step 404, the initial rate of the link B1 can be set according to the transmission rate recorded in the historical link information C1. For example, the transmission rate recorded in the historical link information C1 is used as the initial rate. The initial rate is or is included in the initial sending strategy.
[0113] In some embodiments, the state of the historical link recorded in the historical link information C1 includes a transmission rate and an RTT. In step 404, the congestion window of the link B1 can be calculated based on the transmission rate and the RTT recorded in the historical link information C1, and then, based on the calculated congestion window, the initial rate of the link B1 is set. The initial rate is or is included in the initial sending strategy.
[0114] In some embodiments, the historical link information C1 includes a packet loss rate. In step 404, the data message sending redundancy rate of link B1 can be set according to the packet loss rate recorded in the historical link information C1. The data message sending redundancy rate is or is included in the initial sending strategy to counteract the packet loss rate.
[0115] Next, the server device 111 may execute step 405 to send service data to the terminal device 121 through the link B1 according to the initial sending strategy. In other words, the server device 111 directly sends service data to the terminal device 121 through the link B1 according to the initial sending strategy without the slow start link B1. Thus, data transmission efficiency is improved.
[0116] When the initial sending strategy includes or is the initial rate, the server device 111 directly sends service data to the terminal device 121 through the link B1 at the initial rate without the slow start link B1. When the initial sending strategy includes or is the data message sending redundancy rate, the server device 111 directly sends service data to the terminal device 121 through the link B1 at the data message sending redundancy rate without the slow start link B1.
[0117] Continue reading Figure 4A and Figure 4B The terminal device 121 may execute step 406 to detect the state of the link B1 and generate the historical link information C2 . The identifier of the historical link information C2 is the identifier of the server device 111 , or in other words, the historical link information C2 is indicated by the identifier of the server device 111 .
[0118] Exemplarily, the terminal device 121 can periodically detect the state of the link B1 according to a preset period T1 to periodically obtain the historical link information C2. The historical link information has a life cycle. For example, the life cycle of the historical link information can be N periods T1. When the storage time of the historical link information reaches N periods T1, the historical link information becomes invalid. The invalid historical link information can be deleted. N is an integer greater than or equal to 1. The duration of the period T1 can be preset based on experience or experiments. In one example, the duration of the period T1 can be 5 seconds. In another example, the duration of the period T1 can be 10 seconds. And so on.
[0119] In some embodiments, the terminal device 121 may store or cache the historical link information C2 locally. Figure 4B As shown, the terminal device 121 may execute step 407 to send the historical link information C2 to the intermediate device, and the intermediate device may store or cache the historical link information C2.
[0120] In the data transmission scheme provided in the embodiment of the present application, the terminal device sends historical link information to the server device. Even if the IP address of the terminal device changes, the server device can obtain information recording the status of the historical link between the terminal device and the server device, that is, the correct historical link information, so that the server device can obtain the status of the historical link between the terminal device and the server device based on the historical link information, and then the server device can set the initial sending strategy for the newly created link between the server device and the terminal device based on the historical link between the terminal device and the server device. Since the initial sending strategy is set based on the status of the historical link between the terminal device and the server device, the initial sending strategy is highly consistent with the actual network status of the newly created link between the terminal device and the server device, which reduces the risk of congestion or bandwidth waste in the newly created link while allowing the newly created link to skip slow start.
[0121] Based on the data transmission scheme described above, an embodiment of the present application provides a data transmission method. The method can be applied to a business system, and the business system includes at least one terminal device and at least one server device. Figure 6 As shown, the method includes the following steps.
[0122] Step 601: A first terminal device in at least one terminal device sends a first message to a first server device in at least one server device, wherein the first message includes first historical link information; wherein the first historical link information indicates the state of a historical link; the historical link is a historical link between the first server device and the first terminal device, or a historical link between the first server device and a second terminal device, and the second terminal device and the first terminal device are in the same local area network. For details, please refer to the above description of Figure 4A 401 to 403 in the introduction, or refer to the above Figure 4B The introduction and implementation of step 401, step 402a, step 402b and step 403.
[0123] Step 602: The first server device sets an initial transmission strategy for the first link between the first server and the first terminal device according to the state of the historical link. Figure 4A or Figure 4B The introduction of step 404 is implemented.
[0124] Step 603: The first server device sends service data to the first terminal device through the first link according to the initial sending strategy. Figure 4A or Figure 4B The introduction of step 405 is implemented.
[0125] In some embodiments, the first information is a handshake message for establishing the first link. Figure 4A or Figure 4B The introduction of step 403 is implemented.
[0126] In some embodiments, the state of the historical link includes a first transmission rate, and the initial sending strategy includes an initial rate set based on the first transmission rate; or, the state of the historical link includes a second transmission rate and a round-trip delay RTT, and the initial sending strategy includes an initial rate calculated based on the second transmission rate and the round-trip delay; or, the state of the historical link includes a packet loss rate, and the initial sending strategy includes a data message sending redundancy rate set based on the packet loss rate. For details, please refer to the above Figure 4A or Figure 4B The introduction of step 404 is implemented.
[0127] In some embodiments, the at least one server device is multiple, and the multiple server devices correspond to multiple historical link information one by one; the method further includes: the terminal device determines the first historical link information from the multiple historical link information according to the identifier of the first server device. Figure 4A 401-402, or refer to the above description of Figure 4B The introduction and implementation of step 401, step 402a, and step 402b.
[0128] In some embodiments, when the historical link is a historical link between the first server device and the first terminal device, the first historical link information is detected by the first terminal device when the first server device sends service data to the first terminal device through the historical link; when the historical link is a historical link between the first server device and the second terminal device, the first historical link information is detected by the second terminal device when the first server device sends service data to the first terminal device through the historical link.
[0129] In one example of these embodiments, the business system further includes an intermediate device, and the method further includes: when the first terminal device or the second terminal device detects the first historical link information, the first terminal device or the second terminal device sends the first historical link information to the intermediate device; the first terminal device sends the first information to the first server device of the at least one server device, including: the first terminal device obtains the first historical link information from the intermediate device, and includes the first historical link information in the first information sent to the first server device. Refer to the above description of step 401, step 402a, step 402b, and step 403 in Figure B.
[0130] In one example of this example, when the historical link is a historical link between the first service-end device and the second terminal device, and the second terminal device and the first terminal device have different requirements for link quality, the method further includes: the intermediate device modifies the first historical link information detected by the second terminal device according to the link quality of the first terminal device; the first terminal device obtains the first historical link information from the intermediate device includes: the first terminal device obtains the modified first historical link information from the intermediate device. Refer to the above introduction to step 401, step 402a, step 402b and step 403 in Figure B.
[0131] In some embodiments, the first link is a Quick UDP Internet Connection Protocol (QUIC) link, and the historical link is a QUIC link or a Transmission Control Protocol (TCP) link; or, the first link is a TCP link, and the historical link is a QUIC link or a Transmission Control Protocol (TCP) link.
[0132] The data transmission method provided in the embodiment of the present application can enable the server device to determine an initial sending strategy that is highly consistent with the actual network status of the newly created link between the terminal device and the server device, and send business data to the terminal device through the newly created link according to the initial sending strategy, thereby reducing the risk of congestion in the newly created link between the terminal device and the server device or reducing the bandwidth waste of the newly created link.
[0133] The embodiment of the present application also provides a data transmission device, which is used as a first terminal device in a service system, and the service system also includes at least one server device. Figure 7 As shown, the device comprises:
[0134] The communication unit 710 is used to send first information to a first server device among the at least one server device, wherein the first information includes first historical link information; wherein the first historical link information indicates the state of a historical link; the historical link is a historical link between the first server device and the first terminal device, or a historical link between the first server device and a second terminal device, and the second terminal device and the first terminal device are in the same local area network; wherein the state of the historical link is used by the first server device to set an initial sending strategy for the first link between the first server and the first terminal device, and the initial sending strategy is used by the first server device to send service data to the first terminal device via the first link.
[0135] The functions of each functional unit of the device can be implemented by referring to the above description of the operations performed by the terminal device 121, and will not be repeated here.
[0136] The embodiment of the present application also provides a data transmission device, which is used as a first server device in a business system, and the business system also includes at least one terminal device. Figure 8 As shown, the device comprises:
[0137] The receiving unit 810 is configured to receive first information sent by a first terminal device among the at least one terminal device, wherein the first information includes first historical link information; wherein the first historical link information indicates a state of a historical link; the historical link is a historical link between the first server device and the first terminal device, or a historical link between the first server device and a second terminal device, and the second terminal device and the first terminal device are in the same local area network;
[0138] A setting unit 820, configured to set an initial sending strategy for the first link between the first server and the first terminal device according to the state of the historical link;
[0139] The sending unit 830 is used to send service data to the first terminal device through the first link according to the initial sending strategy.
[0140] The functions of each functional unit of the device can be implemented by referring to the above description of the operations performed by the server device 111, and will not be repeated here.
[0141] The present application embodiment provides a terminal device. Fig. 9 The terminal device may include a memory 910 and a processor 920; wherein the memory 910 is used to store computer instructions; the processor 920 is used to run the computer instructions stored in the memory, so that the terminal device can execute Figure 4A or Figure 4B In the embodiment shown, the terminal device 121 performs operations or performs Figure 6 The operations performed by the first terminal device in the illustrated embodiment.
[0142] The present application embodiment provides a server device. Fig.10 As shown, the server device may include a memory 1010 and a processor 1020; wherein the memory 1010 is used to store computer instructions; the processor 1020 is used to run the computer instructions stored in the memory, so that the server device can execute Figure 4A or Figure 4B In the embodiment shown, the server device 111 performs the operation or performs Figure 6 The operations performed by the first server device in the illustrated embodiment.
[0143] The embodiment of the present application also provides a chip, which is used to execute the method described above, such as executing the operations performed by the terminal device 121 or the server device 111, and for example, the operations performed by the first terminal device or the first server device.
[0144] The embodiment of the present application also provides a computer program product including instructions. The computer program product may be a software or program product including instructions that can be run on a computing device or stored in any available medium. When the computer program product is run on at least one computing device, the at least one computing device performs the operations performed by the terminal device 121 or the server device 111 described above, or performs the operations performed by the first terminal device or the first server device described above.
[0145] The embodiment of the present application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that can be stored by the computing device or a host migration device such as a data center that includes one or more available media. The available medium can be a magnetic medium (for example, a floppy disk, a hard disk, a tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, a solid-state hard disk), etc. The computer-readable storage medium includes instructions that instruct the computing device to perform the operations performed by the terminal device 121 or the server device 111 above, or to perform the operations performed by the first terminal device or the first server device above.
[0146] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit it. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the protection scope of the technical solutions of the embodiments of the present invention.
Claims
1. A data transmission method, characterized in that: Applied to a business system, the business system includes at least one terminal device and at least one server device; the method includes: A first terminal device among the at least one terminal device sends first information to a first server device among the at least one server device, wherein the first information includes first historical link information; wherein the first historical link information indicates a state of a historical link; the historical link is a historical link between the first server device and the first terminal device, or a historical link between the first server device and a second terminal device, and the second terminal device and the first terminal device are in the same local area network; The first server device sets an initial sending strategy for the first link between the first server and the first terminal device according to the state of the historical link; The first server device sends the service data to the first terminal device through the first link according to the initial sending strategy; There are multiple at least one server device, and the multiple server devices correspond to multiple historical link information one by one; the method also includes: the terminal device determines the first historical link information from multiple historical link information according to the identifier of the first server device.
2. The method according to claim 1, characterized in that The first information is a handshake message used to establish the first link.
3. The method according to claim 1 or 2, characterized in that: The state of the historical link includes a first transmission rate, and the initial sending strategy includes an initial rate set based on the first transmission rate; or, The state of the historical link includes a second transmission rate and a round-trip time RTT, and the initial sending strategy includes an initial rate calculated based on the second transmission rate and the round-trip time RTT; or The state of the historical link includes a packet loss rate, and the initial sending strategy includes a data message sending redundancy rate set based on the packet loss rate.
4. The method according to claim 1 or 2, characterized in that: When the historical link is a historical link between the first server device and the first terminal device, the first historical link information is detected by the first terminal device when the first server device sends service data to the first terminal device through the historical link; When the historical link is a historical link between the first server device and the second terminal device, the first historical link information is detected by the second terminal device when the first server device sends service data to the first terminal device through the historical link.
5. The method according to claim 4, characterized in that The business system further includes an intermediate device, and the method further includes: when the first terminal device or the second terminal device detects the first historical link information, the first terminal device or the second terminal device sends the first historical link information to the intermediate device; The first terminal device sending the first information to the first server device among the at least one server device includes: the first terminal device acquiring the first historical link information from the intermediate device, and including the first historical link information in the first information sent to the first server device.
6. The method according to claim 5, characterized in that When the historical link is a historical link between the first server device and the second terminal device, and the second terminal device and the first terminal device have different requirements for link quality, the method further includes: the intermediate device modifying the first historical link information detected by the second terminal device according to the link quality of the first terminal device; The first terminal device acquiring the first historical link information from the intermediate device includes: the first terminal device acquiring the modified first historical link information from the intermediate device.
7. The method according to claim 1 or 2, characterized in that: The first link is a Quick UDP Internet Connection Protocol (QUIC) link, and the historical link is a QUIC link or a Transmission Control Protocol (TCP) link; or, The first link is a TCP link, and the historical link is a QUIC link or a Transmission Control Protocol TCP link.
8. A data transmission method, characterized in that: A first terminal device applied to a business system, wherein the business system further comprises at least one server device; the method comprises: The first terminal device sends first information to a first server device among the at least one server device, wherein the first information includes first historical link information; wherein the first historical link information indicates a state of a historical link; the historical link is a historical link between the first server device and the first terminal device, or a historical link between the first server device and a second terminal device, and the second terminal device and the first terminal device are in the same local area network; The state of the historical link is used by the first server device to set an initial sending strategy for the first link between the first server and the first terminal device, and the initial sending strategy is used by the first server device to send service data to the first terminal device through the first link; There are multiple at least one server device, and the multiple server devices correspond to multiple historical link information one by one; the method also includes: the terminal device determines the first historical link information from the multiple historical link information according to the identifier of the first server device.
9. A data transmission method, characterized in that: A first server device applied to a business system, wherein the business system further comprises at least one terminal device; the method comprises: The first server device receives first information sent by a first terminal device among the at least one terminal device, wherein the first information includes first historical link information; wherein the first historical link information indicates a state of a historical link; the historical link is a historical link between the first server device and the first terminal device, or a historical link between the first server device and a second terminal device, and the second terminal device and the first terminal device are in the same local area network; The first server device sets an initial sending strategy for the first link between the first server and the first terminal device according to the state of the historical link; The first server device sends the service data to the first terminal device through the first link according to the initial sending strategy; Among them, the business system includes multiple server-side devices including the first server-side device, and the multiple server-side devices correspond one-to-one to multiple historical link information; the terminal device is used to determine the first historical link information from the multiple historical link information according to the identification of the first server-side device.
10. The method according to claim 9, characterized in that The state of the historical link includes a first transmission rate, and the initial sending strategy includes an initial rate set based on the first transmission rate; or, The state of the historical link includes a second transmission rate and a round-trip time RTT, and the initial sending strategy includes an initial rate calculated based on the second transmission rate and the round-trip time RTT; or The state of the historical link includes a packet loss rate, and the initial sending strategy includes a data message sending redundancy rate set based on the packet loss rate.
11. A business system, characterized in that: The business system includes at least one terminal device and at least one server device; wherein, The first terminal device among the at least one terminal device is used to send first information to the first server device among the at least one server device, wherein the first information includes first historical link information; wherein the first historical link information indicates the state of a historical link; the historical link is a historical link between the first server device and the first terminal device, or a historical link between the first server device and a second terminal device, and the second terminal device and the first terminal device are in the same local area network; The first server device is used to set an initial sending strategy for the first link between the first server and the first terminal device according to the state of the historical link; The first server device is used to send service data to the first terminal device through the first link according to the initial sending strategy; Among them, the business system includes multiple server-side devices including the first server-side device, and the multiple server-side devices correspond one-to-one to multiple historical link information; the terminal device is used to determine the first historical link information from the multiple historical link information according to the identification of the first server-side device.
12. A data transmission device, characterized in that: The device is used as a first terminal device in a business system, and the business system also includes at least one server device; the device includes: a communication unit, configured to send first information to a first server device among the at least one server device, wherein the first information includes first historical link information; wherein the first historical link information indicates a state of a historical link; the historical link is a historical link between the first server device and the first terminal device, or a historical link between the first server device and a second terminal device, and the second terminal device and the first terminal device are in the same local area network; The state of the historical link is used by the first server device to set an initial sending strategy for the first link between the first server and the first terminal device, and the initial sending strategy is used by the first server device to send service data to the first terminal device through the first link; There are multiple at least one server device, and the multiple server devices correspond to multiple historical link information one by one; the communication unit determines the first historical link information from the multiple historical link information according to the identifier of the first server device.
13. A data transmission device, characterized in that: The device is used as a first server device in a business system, and the business system also includes at least one terminal device; the device includes: a receiving unit, configured to receive first information sent by a first terminal device among the at least one terminal device, wherein the first information includes first historical link information; wherein the first historical link information indicates a state of a historical link; the historical link is a historical link between the first server device and the first terminal device, or a historical link between the first server device and a second terminal device, and the second terminal device and the first terminal device are in the same local area network; A setting unit, configured to set an initial sending strategy for the first link between the first server and the first terminal device according to the state of the historical link; a sending unit, configured to send service data to the first terminal device through the first link according to the initial sending strategy; Among them, the business system includes multiple server-side devices including the first server-side device, and the multiple server-side devices correspond one-to-one to multiple historical link information; the terminal device is used to determine the first historical link information from the multiple historical link information according to the identification of the first server-side device.
14. A terminal device, characterized in that: The method comprises a memory and a processor; the memory is used to store computer instructions; the processor is used to execute the computer instructions stored in the memory to implement the method of claim 8.
15. A server device, characterized in that: The method comprises a memory and a processor; the memory is used to store computer instructions; the processor is used to execute the computer instructions stored in the memory to implement the method of claim 9 or 10.
16. A computer storage medium comprising computer instructions, which, when executed on a computing device, cause the computing device to perform the method of claim 8 or the method of claim 9 or 10.
Citation Information
Patent Citations
Congestion control method and device, computer equipment and storage medium
CN115150333A
