WO2024093284A1 - Data transmission method and apparatus, and device - Google Patents
Data transmission method and apparatus, and device Download PDFInfo
- Publication number
- WO2024093284A1 WO2024093284A1 PCT/CN2023/103045 CN2023103045W WO2024093284A1 WO 2024093284 A1 WO2024093284 A1 WO 2024093284A1 CN 2023103045 W CN2023103045 W CN 2023103045W WO 2024093284 A1 WO2024093284 A1 WO 2024093284A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- terminal device
- link
- historical link
- historical
- server
- Prior art date
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 111
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000004891 communication Methods 0.000 claims abstract description 12
- 238000004590 computer program Methods 0.000 claims description 7
- 208000027744 congestion Diseases 0.000 abstract description 18
- 239000002699 waste material Substances 0.000 abstract description 9
- 230000002776 aggregation Effects 0.000 description 16
- 238000004220 aggregation Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 6
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 5
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/23805—Controlling the feeding rate to the network, e.g. by controlling the video pump
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
Definitions
- the present application relates to the field of communication technology, and in particular to a data transmission method, device and equipment.
- 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.
- RTT round-trip times
- 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.
- a data transmission method 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.
- 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.
- 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.
- the first information is a handshake message used to establish the 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.
- 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.
- 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.
- 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.
- 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.
- the business system also includes an intermediate device
- 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.
- 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.
- 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.
- 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.
- the first link is a Quick UDP Internet Connection Protocol (QUIC) link
- the historical link is a QUIC link or a Transmission Control Protocol (TCP) link
- the first link is a TCP link
- the historical link is a QUIC link or a Transmission Control Protocol (TCP) link.
- QUIC Quick UDP Internet Connection Protocol
- TCP Transmission Control Protocol
- a data transmission method 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:
- 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.
- 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.
- a data transmission method 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:
- 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 service data to the first terminal device through the first link according to the initial sending strategy.
- the state of the historical link includes a first transmission rate
- the initial sending strategy includes an initial rate set based on the first transmission rate
- the state of the historical link includes a second transmission rate and a round-trip time RTT
- the initial sending strategy includes an initial rate calculated based on the second transmission rate and the round-trip time RTT;
- the state of the historical link includes a packet loss rate
- the initial sending strategy includes a data message sending redundancy rate set based on the packet loss rate
- a business system comprising 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.
- 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:
- 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.
- 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:
- 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 is used to send service data to the first terminal device through the first link according to the initial sending strategy.
- a terminal device 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.
- a server-side device 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.
- a 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.
- 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.
- a computer program product 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.
- 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.
- FIG1 is a schematic diagram of a system architecture provided in an embodiment of the present application.
- FIG2 is a schematic diagram of a system architecture provided in an embodiment of the present application.
- FIG3 is a schematic diagram of software results of a server device provided in an embodiment of the present application.
- FIG4A is a flow chart of a data transmission solution provided in an embodiment of the present application.
- FIG4B is a flow chart of a data transmission scheme provided in an embodiment of the present application.
- FIG5 is a schematic diagram of a message structure provided in an embodiment of the present application.
- FIG6 is a flow chart of a data transmission method provided in an embodiment of the present application.
- FIG7 is a schematic diagram of the structure of a data transmission device provided in an embodiment of the present application.
- FIG8 is a schematic diagram of the structure of a data transmission device provided in an embodiment of the present application.
- FIG9 is a schematic diagram of the structure of a terminal device provided in an embodiment of the present application.
- FIG. 10 is a schematic diagram of the structure of a server device provided in an embodiment of the present application.
- 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.
- 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.
- 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.
- 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).
- TCP transmission control protocol
- QUIC quick UDP internet connection protocol
- UDP user datagram protocol
- QUIC is a transport layer protocol running in user mode, which can be multiplexed and is more secure and reliable than the TCP protocol.
- the server needs to push the first frame of video data to the terminal again.
- 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.
- 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.
- Slow start is a congestion control mechanism used by transmission protocols to avoid network congestion caused by sending data that exceeds the network's carrying capacity.
- 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.
- 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.
- a destination metrics mechanism is used to make the newly created link skip the slow start phase.
- the destination metrics mechanism refers to the link status 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 and 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 generated by the client's Internet protocol (IP).
- IP Internet protocol
- the server queries the historical link information according to the IP address of the client, and uses the link status identified by the historical link information to initialize the initial sending strategy of the newly created link.
- 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), resulting in the historical link information queried by the server through the client IP address may not actually be information recording the status of the historical link between the client and the server.
- NAT network address translation
- the initialization of 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.
- the server 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.
- 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.
- 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 IP address of the client.
- the server uses the actual maximum transmission rate of the historical link to set the starting transmission rate of the new link.
- the server 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.
- 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.
- An embodiment of the present application provides a data transmission 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.
- 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.
- the terminal device sends the historical link information to the server device.
- 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.
- 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.
- 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.
- FIG1 shows a system architecture 100.
- the system architecture 100 can be used to implement the data transmission solution provided in the embodiment of the present application.
- 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.
- the system architecture 100 may include multiple server devices. As shown in FIG1 , the system architecture 100 includes a server device 111 and a server device 112, etc. The system architecture 100 may include multiple terminal devices. As shown in FIG1 , the system architecture 100 includes a terminal device 121 and a terminal device 122, a terminal device 123, a terminal device 124, etc.
- server devices 111, 112, etc. when no special distinction is made between the server devices 111, 112, etc., they may be referred to as server devices for short.
- terminal devices 121, 122, 123, 124, etc. they may be referred to as terminal devices for short.
- the server device refers to the service server, which stores service data and can send service data to the service client so that users can
- the service may be a streaming service.
- the service may be a live broadcast service.
- the service may be a short video service.
- the service may be a cloud rendering service, such as cloud rendering of three-dimensional image rendering. The image is rendered on the server device, and then the server device sends the image to the client in the form of a video stream.
- the server device may be implemented by hardware, for example, as a server or a server cluster.
- the server device may be one or more computing nodes in a cloud computing data center.
- the server device may be implemented by software.
- the server device may be implemented as a virtual machine (VM).
- the server device may be a content delivery network (CDN) node.
- CDN content delivery network
- the terminal device is a user-side device 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.
- the terminal device can provide a hardware environment for the operation of the service client.
- the terminal device and the server device can be connected via the Internet.
- the terminal device and the server device can establish a communication link between them according to a transmission protocol.
- the server device can send service data, such as a video stream, to the terminal device via the communication link.
- 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.
- the server device 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.
- the software structure of the server device may be as shown in FIG3, including 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 service data to the transport layer module 320 according to the application layer protocol.
- the transport layer module 320 may encapsulate the service data into a data message of the transport layer according to the transport layer protocol (e.g., 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 may further encapsulate the data message and then transfer it to the next layer.
- 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 .
- 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.
- 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.
- the state of the historical link may include RTT and CWND, and the set initial sending strategy may include an initial transmission rate.
- the link state information management unit 322 may calculate the initial transmission rate according to the RTT and the CWND.
- the link state information management unit 322 may pass the calculated initial transmission rate to the congestion control unit 323, so that the congestion control unit 323 may control the rate at which the server device sends data packets based on the initial transmission rate.
- the state of the historical link may include a packet loss rate, and the link state information management unit may determine a redundancy rate according to the packet loss rate, and pass the redundancy rate to the redundancy recovery unit 324.
- the redundancy recovery unit 324 may enable 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.
- FEC forward error correction
- 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.
- 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.
- 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.
- 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.
- the above example introduces a system architecture that can be used to implement the data transmission solution provided in the embodiment of the present application.
- the structure takes the terminal device 121 and the server device 111 as examples to introduce the execution process of the data transmission solution provided in the embodiment of the present application.
- the terminal device 121 may determine that a link B1 needs to be established with the server device 111.
- step 401 is executed, there is no link between the terminal device 121 and the server device 111.
- 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.
- 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.
- the terminal device 121 can actively establish a link B1 between the terminal device 121 and the server device 111.
- the user can switch the live broadcast room through the terminal device 121.
- 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.
- 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.
- the terminal device 121 can passively establish a link between the terminal device 121 and the server device 111.
- 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.
- 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.
- 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.
- the terminal device 121 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.
- the terminal device 121 may execute step 402, and the terminal device 121 obtains historical link information C1.
- the historical link information refers to information recording 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.
- the historical link information C1 refers to information recording 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.
- 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.
- 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 links and the recently established links are relative to the execution time of step 401 .
- the historical link information C1 and the identifier of the server device 111 have a mapping relationship.
- 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.
- the identifier of the server device is used to indicate the historical link information, so that the status of the link recorded by the historical link information and the device corresponding to the link have a high degree of consistency.
- 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.
- 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.
- 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.
- the terminal device side includes the terminal device itself and other devices in the same local area network as the terminal device.
- the terminal device when there is a link between a terminal device and a server device, can detect the state of the link and obtain historical link information.
- the terminal device can store or cache historical link information.
- the terminal device can periodically detect the state of the link according to a preset period T1 to periodically obtain historical link information.
- 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.
- 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.
- the historical link information C1 acquired in step 402 is historical link information that has not been invalidated.
- the terminal device may store or cache the obtained historical link information locally.
- 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 .
- 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.
- 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.
- 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.
- 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.
- the terminal device 121 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.
- the historical link information i.e., historical link information C1
- 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.
- 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.
- the terminal device needs to obtain the historical link information, it can query the corresponding historical link information 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.
- the terminal device when it needs to obtain the historical link information, it can query the corresponding historical link information (historical link information indicated by the identification of the server device) 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.
- the terminal device 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.
- 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.
- the terminal device needs to obtain the historical link information, it can first query the corresponding historical link information (historical link information indicated by the identification of the server device) in the information stored or cached by the terminal device according to the identification of the server device, so as to preferentially obtain the historical link information generated by the same terminal device.
- the terminal device queries the corresponding historical link information in the information stored or cached by the intermediate device according to the identification of the server device.
- 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.
- 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.
- the original historical link information C1 refers to the historical link information C1 detected by the terminal device 122.
- the terminal device detecting the historical link information refers to the terminal device detecting the state of the link and generating 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.
- the intermediate device stores or caches the historical link information detected by the terminal device connected to the intermediate device. It can be set that in the system architecture 100 shown in Figure 1, 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.
- a transmission rate lower than the theoretical bandwidth, such as 10MB may be used for data transmission.
- the requirements of the terminal device 121 for link quality are: high requirements for transmission rate and low requirements for packet loss rate.
- 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.
- 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.
- the terminal device 121 may execute step 403 to send the historical link information C1 to the server device 111 .
- 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 A link B1 is established between the device 121 and the server device 111.
- the terminal device 121 may carry the historical link information C1 in a handshake message sent to the server device 121 to send the historical link information C1 to the server device 111.
- the handshake message may be a handshake request message or a handshake response message.
- the historical link information C1 can be carried in a reserved field or an extended field of a handshake message, that is, the reserved field or the extended field is used to carry the historical link information C1.
- the historical link information C1 is carried in a reserved field or an extended field of a message header of a transport layer protocol.
- the handshake message supports carrying transport parameter extension information.
- the historical link information can be added on the basis of the transport parameter already defined in the QUIC protocol. Specifically, as shown in FIG. 5, the added historical link information includes transmission rate, round-trip delay, packet loss rate, etc.
- the historical link information C1 can be carried in a reserved field of the TCP header of the message of the handshake message.
- the historical link information C1 can be sent to the server device 111 along with the handshake message.
- 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.
- the server device 111 may execute step 404 to set an initial sending strategy for the link B1 .
- the state of the historical link recorded in the historical link information C1 includes a transmission rate.
- the initial rate of the link B1 can be set according to the transmission rate recorded in the historical link information C1.
- 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.
- the state of the historical link recorded in the historical link information C1 includes a transmission rate and an RTT.
- 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.
- the historical link information C1 includes a packet loss rate.
- 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.
- 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.
- 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.
- the data transmission efficiency is improved.
- the server device 111 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.
- the server device 111 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.
- the terminal device 121 may execute step 406 to detect the state of the link B1 and generate historical link information C2 , wherein 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 .
- the terminal device 121 may 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.
- the life cycle of the historical link information may be N periods T1.
- the storage period of the historical link information reaches N periods T1, the historical link information becomes invalid.
- the invalid historical link information may be deleted.
- N is an integer greater than or equal to 1.
- the duration of the period T1 may be preset based on experience or experiment. In one example, the duration of the period T1 may be 5 seconds. In another example, the duration of the period T1 may be 10 seconds. And so on.
- the terminal device 121 may store or cache the historical link information C2 locally. In some embodiments, as shown in FIG4B , 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.
- 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.
- 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.
- the present application embodiment provides a data transmission method.
- the method can be applied to a business system.
- the business system includes at least one terminal device and at least one server device.
- the method includes the following steps.
- 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.
- steps 401 to 403 in FIG. 4A or refer to the above description of steps 401, 402a, 402b, and 403 in FIG. 4B.
- 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. For details, please refer to the above description of step 404 in FIG. 4A or FIG. 4B.
- Step 603 The first server device sends service data to the first terminal device through the first link according to the initial sending strategy. For details, please refer to the above description of step 405 in FIG. 4A or FIG. 4B.
- the first information is a handshake message for establishing the first link.
- the first information is a handshake message for establishing the first link.
- the state of the historical link includes a first transmission rate
- the initial sending strategy includes an initial rate set based on the first transmission rate
- the state of the historical link includes a second transmission rate and a round-trip delay RTT
- the initial sending strategy includes an initial rate calculated based on the second transmission rate and the round-trip delay
- the state of the historical link includes a packet loss rate
- the initial sending strategy includes a data message sending redundancy rate set based on the packet loss rate.
- 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.
- the terminal device determines the first historical link information from the multiple historical link information according to the identifier of the first server 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.
- the business system further includes an intermediate device
- 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.
- 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.
- the first link is a Quick UDP Internet Connection Protocol (QUIC) link
- the historical link is a QUIC link or a Transmission Control Protocol (TCP) link
- the first link is a TCP link
- the historical link is a QUIC link or a Transmission Control Protocol (TCP) link.
- QUIC Quick UDP Internet Connection Protocol
- TCP Transmission Control Protocol
- 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.
- the embodiment of the present application also provides a data transmission device, which is used as a first terminal device in a business system, and the business system also includes at least one server device. As shown in FIG7 , the device includes:
- the communication unit 710 is 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; and 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.
- 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 through the first link.
- 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.
- 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. As shown in FIG8 , the device includes:
- 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;
- 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;
- 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.
- 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.
- 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 perform the operations performed by the terminal device 121 in the embodiment shown in FIG4A or FIG4B, or perform the operations performed by the first terminal device in the embodiment shown in FIG6 .
- 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 perform the operations performed by the server device 111 in the embodiment shown in FIG4A or FIG4B, or perform the operations performed by the first server device in the embodiment shown in FIG6 .
- 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.
- 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.
- 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.
- 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.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
The present application relates to the technical field of communications, and in particular relates to a data transmission method and apparatus, and a device. The method comprises: a first terminal device sending first information to a first server device, the first information comprising first historical link information, wherein the first historical link information represents the state of a historical link, and the historical link is a historical link between the first server device and the first terminal device, or is a historical link between the first server device and a second terminal device, and the second terminal device and the first terminal device are located in the same local area network; the first server device configuring an initial sending policy of a first link between a first server and the first terminal device according to the state of the historical link; and the first server device sending service data to the first terminal device by means of the first link according to the initial sending policy. By means of the method, the risk of congestion occurring in a newly-built link between a terminal device and a server device can be reduced, or the bandwidth waste of the newly-built link can be reduced.
Description
本申请要求于2022年11月4日提交中国国家知识产权局、申请号为202211376517.1、申请名称为“数据传输方法、装置及设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims priority to the Chinese patent application filed with the State Intellectual Property Office of China on November 4, 2022, with application number 202211376517.1 and application name “Data Transmission Method, Device and Equipment”, all contents of which are incorporated by reference in this application.
本申请涉及通信技术领域,且特别涉及一种数据传输方法、装置及设备。The present application relates to the field of communication technology, and in particular to a data transmission method, device and equipment.
近年来,兴起了直播、短视频等新型流媒体业务,并且,用户对流媒体业务的要求向超高清、超高流畅、超低时延等方向发展。在用户实际使用业务的场景中,用户经常频繁切换直播间或切换视频,导致短连接占比高,终端需要频繁和服务端建立新链路。新链路建立后,服务端需要重新向终端推送视频首帧数据。终端在收到首帧数据后才开始播放画面。其中,首帧的时延是影响用户体验的关键因素。首帧的时延太大,用户会因为等待画面播放太久而丧失继续浏览的兴趣,从而在影响用户体验的同时,还影响流媒体厂商的业务收益。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, and 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.
当前网络传输协议在通过新建立的链路传输数据时,需要经历慢启动过程。其中,需要经过若干个往返时延(round-trip time,RTT)后才能达到符合真实网络的传输速率。因此,每次重新建链后,受慢启动过程影响,首帧传输时延大,影响了用户体验。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
本申请实施例提供了一种数据传输方法、装置及设备,可以降低终端设备和服务端设备之间新建链路发生拥塞的风险或者减少该新建链路的带宽浪费。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.
第一方面,提供了一种数据传输方法,应用于业务***,所述业务***包括至少一个终端设备、至少一个服务端设备;所述方法包括:所述至少一个终端设备中的第一终端设备向所述至少一个服务端设备中的第一服务端设备发送第一信息,所述第一信息包括第一历史链路信息;其中,所述第一历史链路信息表示历史链路的状态;所述历史链路为所述第一服务端设备和所述第一终端设备之间的历史链路,或者为所述第一服务端设备和第二终端设备之间的历史链路,所述第二终端设备和所述第一终端设备处于同一局域网中;所述第一服务端设备根据所述历史链路的状态,设置所述第一服务端和所述第一终端设备之间的第一链路的初始发送策略;所述第一服务端设备根据所述初始发送策略,通过所述第一链路,向所述第一终端设备发送业务数据。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.
通过该方法,终端设备将历史链路信息发送至服务端设备,即使在终端设备的IP地址发生变化的情况下,服务端设备也能够得到记录了该终端设备和服务端设备之间历史链路的状态的信息,即正确的历史链路信息,从而服务端设备能够基于该历史链路信息,得到该终端设备和服务端设备之间历史链路的状态,进而使得服务端设备能够基于该终端设备和服务端设备之间历史链路,设置服务端设备和该终端设备之间新建链路的初始发送策略。由于,初始发送策略是基于该终端设备和服务端设备之间历史链路的状态所设置,因此,初始发送策略与该终端设备和服务端设备之间新建链路的实际网络状况一致性较高,在使得新建链路跳过慢启动的同时,降低了终端设备和服务端设备之间新建链路发生拥塞的风险或者减少了该新建链路的带宽浪费。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.
在一种可能的实施方式中,所述第一信息为用于建立所述第一链路的握手消息。In a possible implementation manner, the first information is a handshake message used to establish the first link.
在该实施方式中,可以在终端设备和服务端设备通过交互握手消息,以建立第一链路时,将历史链路信息携带在握手消息中,从而无需额外信令或消息传输的情况下,将历史链路信息发送至服务端设备。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.
在一种可能的实施方式中,所述历史链路的状态包括第一传输速率,所述初始发送策略包括基于所述第一传输速率设置的初始速率;或者,所述历史链路的状态包括第二传输速率和往返时延RTT,所述初始发送策略包括基于所述第二传输速率和所述往返时延计算得到的初始速率;或者,所述历史链路的状态包括丢包率,所述初始发送策略包括基于所述丢包率设置的数据报文发送冗余率。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.
在一种可能的实施方式中,所述至少一个服务端设备为多个,所述多个服务端设备和多个历史链路信息一一对应;所述方法还包括:所述终端设备根据所述第一服务端设备的标识,从多个历史链路信息中确定所述第一历史链路信息。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.
在该实施方式中,历史链路信息是由服务端设备的标识所标识的,服务端设备比较固定,服务端设备的标识也比较固定,使用服务端设备的标识来指示历史链路信息,使得历史链路信息所记录的链路的状态和链路对应的设备具有较高的一致性。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.
在一种可能的实施方式中,当所述历史链路为所述第一服务端设备和所述第一终端设备之间的历史链
路时,所述第一历史链路信息是所述第一终端设备在所述第一服务端设备通过所述历史链路向所述第一终端设备发送业务数据时检测到;当所述历史链路为所述第一服务端设备和所述第二终端设备之间的历史链路时,所述第一历史链路信息是所述第二终端设备在所述第一服务端设备通过所述历史链路向所述第一终端设备发送业务数据时检测到。In a possible implementation manner, when the historical link is a historical link between the first server device and the first terminal device 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 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.
在一种可能的实施方式中,所述业务***还包括中间设备,所述方法还包括:当所述第一终端设备或所述第二终端设备检测到所述第一历史链路信息时,所述第一终端设备或所述第二终端设备将所述第一历史链路信息发送至所述中间设备;所述第一终端设备向所述至少一个服务端设备中的第一服务端设备发送第一信息包括:所述第一终端设备从所述中间设备获取所述第一历史链路信息,并将所述第一历史链路信息包含在发往所述第一服务端设备的所述第一信息中。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.
在该实施方式中,可以将历史链路信息存放到中间设备,使得连接到中间设备的不同终端设备均可以从中间设备获取历史链路信息,实现了历史链路信息在连接到中间设备的不同终端设备之间共享。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.
在一种可能的实施方式中,当所述历史链路为所述第一服务端设备和所述第二终端设备之间的历史链路,且所述第二终端设备和所述第一终端设备对链路质量的要求不同时,所述方法还包括:所述中间设备根据所述第一终端设备的链路质量,修改所述第二终端设备检测到所述第一历史链路信息;所述第一终端设备从所述中间设备获取所述第一历史链路信息包括:所述第一终端设备从所述中间设备获取所述修改后的所述第一历史链路信息。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.
在该实施方式中,当生成历史链路信息的终端设备(即第二终端设备)和使用历史链路信息的终端设备(即第一终端设备)不同时,可以根据使用链路信息的终端设备的质量要求,调整历史链路信息所表示的链路状态,即修改历史链路信息,使得修改后的历史链路信息所表示的链路状态与使用链路信息的终端设备的质量要求匹配,进而使得服务端设备根据修改后的历史链路信息确定出的初始发送策略与新建链路的实际网络状态一致性更高。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.
在一种可能的实施方式中,所述第一链路为快速UDP互联网连接协议QUIC链路,所述历史链路为QUIC链路或传输控制协议TCP链路;或者,所述第一链路为TCP链路,所述历史链路为QUIC链路或传输控制协议TCP链路。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.
第二方面,提供了一种数据传输方法,应用于业务***中的第一终端设备,所述业务***还包括至少一个服务端设备;所述方法包括: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:
所述第一终端设备向所述至少一个服务端设备中的第一服务端设备发送第一信息,所述第一信息包括第一历史链路信息;其中,所述第一历史链路信息表示历史链路的状态;所述历史链路为所述第一服务端设备和所述第一终端设备之间的历史链路,或者为所述第一服务端设备和第二终端设备之间的历史链路,所述第二终端设备和所述第一终端设备处于同一局域网中;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;
其中,所述历史链路的状态用于所述第一服务端设备设置所述第一服务端和所述第一终端设备之间的第一链路的初始发送策略,且所述初始发送策略用于所述第一服务端设备通过所述第一链路,向所述第一终端设备发送业务数据。Among them, 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.
在一种可能的实施方式中,所述至少一个服务端设备为多个,所述多个服务端设备和多个历史链路信息一一对应;所述方法还包括:所述终端设备根据所述第一服务端设备的标识,从所述多个历史链路信息中确定所述第一历史链路信息。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.
第三方面,提供了一种数据传输方法,应用于业务***中的第一服务端设备,所述业务***还包括至少一个终端设备;所述方法包括: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:
所述第一服务端设备接收所述至少一个终端设备中的第一终端设备发送的第一信息,所述第一信息包括第一历史链路信息;其中,所述第一历史链路信息表示历史链路的状态;所述历史链路为所述第一服务端设备和所述第一终端设备之间的历史链路,或者为所述第一服务端设备和第二终端设备之间的历史链路,所述第二终端设备和所述第一终端设备处于同一局域网中;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 service data to the first terminal device through the first link according to the initial sending strategy.
在一种可能的实施方式中,所述历史链路的状态包括第一传输速率,所述初始发送策略包括基于所述第一传输速率设置的初始速率;或者,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,
所述历史链路的状态包括第二传输速率和往返时延RTT,所述初始发送策略包括基于所述第二传输速率和所述往返时延计算得到的初始速率;或者,
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.
第四方面,提供了一种业务***,所述业务***包括至少一个终端设备、至少一个服务端设备;其中,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:
所述至少一个终端设备中的第一终端设备用于向所述至少一个服务端设备中的第一服务端设备发送第一信息,所述第一信息包括第一历史链路信息;其中,所述第一历史链路信息表示历史链路的状态;所述历史链路为所述第一服务端设备和所述第一终端设备之间的历史链路,或者为所述第一服务端设备和第二终端设备之间的历史链路,所述第二终端设备和所述第一终端设备处于同一局域网中;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.
第五方面,提供了一种数据传输装置,所述装置用作业务***中的第一终端设备,所述业务***还包括至少一个服务端设备;所述装置包括: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:
通信单元,用于向所述至少一个服务端设备中的第一服务端设备发送第一信息,所述第一信息包括第一历史链路信息;其中,所述第一历史链路信息表示历史链路的状态;所述历史链路为所述第一服务端设备和所述第一终端设备之间的历史链路,或者为所述第一服务端设备和第二终端设备之间的历史链路,所述第二终端设备和所述第一终端设备处于同一局域网中;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;
其中,所述历史链路的状态用于所述第一服务端设备设置所述第一服务端和所述第一终端设备之间的第一链路的初始发送策略,且所述初始发送策略用于所述第一服务端设备通过所述第一链路,向所述第一终端设备发送业务数据。Among them, 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.
第六方面,提供了一种数据传输装置,所述装置用作业务***中的第一服务端设备,所述业务***还包括至少一个终端设备;所述装置包括: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:
接收单元,用于接收所述至少一个终端设备中的第一终端设备发送的第一信息,所述第一信息包括第一历史链路信息;其中,所述第一历史链路信息表示历史链路的状态;所述历史链路为所述第一服务端设备和所述第一终端设备之间的历史链路,或者为所述第一服务端设备和第二终端设备之间的历史链路,所述第二终端设备和所述第一终端设备处于同一局域网中;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 is used to send service data to the first terminal device through the first link according to the initial sending strategy.
第七方面,提供了一种终端设备,包括存储器和处理器;所述存储器用于存储计算机指令;所述处理器用于运行所述存储器存储的所述计算机指令实现第二方面所述的方法。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.
第八方面,提供了一种服务端设备,包括存储器和处理器;所述存储器用于存储计算机指令;所述处理器用于运行所述存储器存储的所述计算机指令实现第三方面所述的方法。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.
第九方面,提供了一种计算机存储介质,所述计算机存储介质包括计算机指令,当所述计算机指令在计算设备上运行时,使得所述计算设备执行第二方面所述的方法或者第三方面所述的方法。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.
第十方面,提供了一种芯片,所述芯片用于执行第二方面所述的方法或者第三方面所述的方法。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.
第十一方面,提供了一种计算机程序产品,该计算机程序产品包含的程序代码被计算设备中的处理器执行时,实现第二方面所述的方法或者第三方面所述的方法。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.
本申请实施例提供的数据传输方法、装置和设备,可以使得服务端设备可以确定与终端设备和服务端设备之间新建链路的实际网络状况一致性高的初始发送策略,并按照该初始发送策略,通过新建链路向终端设备发送业务数据,可以终端设备和服务端设备之间新建链路发生拥塞的风险或者减少该新建链路的带宽浪费。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.
图1是本申请实施例提供的一种***架构的示意图;FIG1 is a schematic diagram of a system architecture provided in an embodiment of the present application;
图2是本申请实施例提供的一种***架构的示意图;FIG2 is a schematic diagram of a system architecture provided in an embodiment of the present application;
图3是本申请实施例提供的服务端设备的软件结果的示意图;FIG3 is a schematic diagram of software results of a server device provided in an embodiment of the present application;
图4A为本申请实施例提供的一种数据传输方案的流程图;FIG4A is a flow chart of a data transmission solution provided in an embodiment of the present application;
图4B是本申请实施例提供的一种数据传输方案的流程图;FIG4B is a flow chart of a data transmission scheme provided in an embodiment of the present application;
图5是本申请实施例提供的一种报文结构的示意图;FIG5 is a schematic diagram of a message structure provided in an embodiment of the present application;
图6是本申请实施例提供的一种数据传输方法的流程图;
FIG6 is a flow chart of a data transmission method provided in an embodiment of the present application;
图7是本申请实施例提供的一种数据传输装置的结构示意图;FIG7 is a schematic diagram of the structure of a data transmission device provided in an embodiment of the present application;
图8是本申请实施例提供的一种数据传输装置的结构示意图;FIG8 is a schematic diagram of the structure of a data transmission device provided in an embodiment of the present application;
图9是本申请实施例提供的一种终端设备的结构示意图;FIG9 is a schematic diagram of the structure of a terminal device provided in an embodiment of the present application;
图10是本申请实施例提供的一种服务端设备的结构示意图。FIG. 10 is a schematic diagram of the structure of a server device provided in an embodiment of the present application.
下面将结合附图,对本申请实施例中的技术方案进行描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。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.
在本说明书的描述中“一个实施例”或“一些实施例”等意味着在本说明书的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。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.
其中,在本说明书的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联物体的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本说明书实施例的描述中,“多个”是指两个或多于两个。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.
在本说明书的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。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.
随着流媒体业务的发展,用户对流媒体业务的体验要求也朝向超高清、超高流畅、超低时延等方向发展。其中,超高清要求视频码率提高到4K分辨率、8K分辨率甚至更高,以及要求帧率提高到120fps。超高流畅要求用户体验无卡顿,传输网络低于0.3%的丢包率;超低时延要求客户端和服务端的实时交互感要求低于50ms的时延。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.
为了满足用户的体验要求,业界在媒体应用处理、传输网络、传输协议等领域持续投入,以发展相关技术。其中,在媒体应用处理领域,通过发展编解码以及云端协同处理的技术,来提升用户画面质量体验。在传输网络领域,流媒体业务提供方通过自建或租用内容分发网络(content delivery network,CDN),来降低端到端时延。In order to meet the user experience requirements, the industry continues to invest in the fields of media application processing, transmission network, transmission protocol, etc. 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 network, streaming media service providers reduce end-to-end latency by building or renting content delivery networks (CDN).
其中,CDN是在互联网中被广泛使用的一种网络基础设施,可以为流媒体业务提供廉价的跨区域大规模的数据分发及缓存能力。流媒体业务数据从作为服务端的CDN边缘节点到客户端的传输,需要遵循传输协议。其中,目前常用的用于流媒体业务的传输协议有传输控制协议(transport control protocol,TCP)、基于用户数据报协议(user datagram protocol,UDP)的快速UDP互联网连接协议(quick UDP internet connection,QUIC)。其中,QUIC是一种运行于用户态(user mode)的传输层协议,可以多路复用,且相对TCP协议更加安全可靠。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.
在用户实际使用流媒体业务的场景中,可能经常频繁切换直播间或视频,导致短连接占比高,需要终端设备频繁和服务端重新建立链路。新链路建立后,服务端需要重新向终端推送视频首帧数据。其中,首帧数据是指在视频流数据以帧的粒度进行编码解码并在网络中传输的情况下,链路建立后服务端向终端设备传输的第一帧视频流数据。终端在收到首帧数据后才开始播放画面。其中,首帧的时延是影响用户体验的关键因素。首帧的时延太大,用户会因为等待画面播放太久而丧失继续浏览的兴趣,从而在影响用户体验的同时,还影响流媒体厂商的业务收益。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 push the first frame of video data to the terminal again. 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.
在目前的传输协议(例如,TCP协议、QUIC协议)中,新建链路的数据传输需要经过慢启动。其中,慢启动是传输协议使用的一种拥塞控制机制,以避免发送超过网络承载能力的数据而造成网络拥塞。其中,在慢启动过程中,发送端每接收到接收端发送的确认字符(acknowledge character,ACK)后,会增大一次拥塞窗口(congestion window,CWND),直到出现丢包率达到一定程度。因此,需要经过若干个RTT后才能达到符合真实网络状况的传输速率。而在此之前,都是按照低于符合实际网络状态的传输速率,发送业务数据。因此,慢启动机制严重影响了首帧数据的传输,从而影响用户体验。In current transmission protocols (e.g., 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 transmission protocols 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.
在一种方案中,使用目标地址指标(destination metrics)机制来使新建的链路跳过慢启动阶段。其中,目标地址指标机制是指服务端缓存的历史链路信息所表示的链路状态,初始化新建链路的初始发送策略,以使得服务端不经过慢启动阶段,直接按照初始发送策略,通过新建的链路向客户端发送数据。其中,历史链路信息记录了服务端和客户端的历史链路的状态,并且是由客户端的网际互连协议(internet protocol,
IP)地址作为标识进行存储的。在该方案中,当服务端和客户端之间的链路建立后,服务端根据客户端的IP地址,查询历史链路信息,并利用查询到的历史链路信息所标识的链路状态,初始化新建链路的初始发送策略。In one solution, a destination metrics mechanism is used to make the newly created link skip the slow start phase. The destination metrics mechanism refers to the link status 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 and 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 generated by the client's Internet protocol (IP). In this scheme, when the link between the server and the client is established, the server queries the historical link information according to the IP address of the client, and uses the link status identified by the historical link information to initialize the initial sending strategy of the newly created link.
虽然,该方案可以让新建链路跳过慢启动阶段。但是,在流媒体等业务场景中,由于网络地址转换(network address translation,NAT)等技术,服务端所观察到的客户端的IP地址可能由多个客户端共享,并且客户端的IP地址可能随着时间或地点的变化而变化(例如,一个IP地址先由客户端A1所用,后又有客户端A2所用),从而导致服务端通过客户端IP地址,查询到的历史链路信息实际上可能不是记录该客户端和服务端的历史链路的状态的信息。由此,根据通过客户端IP(例如,先有客户端A1所用,后又由客户端A2所用)地址,查询到、的历史链路信息(例如记录客户端A1和服务端之间的历史链路的状态的历史链路信息),初始化客户端(利用客户端A2)和服务端之间新建链路的初始发送策略,可能会导致初始化的初始发送策略和新建链路的实际网络状况相差较大,从而导致在按照初始发送策略发送数据时,可能发生拥塞或带宽浪费。另外,由于服务端和众多客户端建立链路,因此,在该方案中,服务端需要缓存众多历史链路信息,导致服务端的缓存压力较大。特别是,目前服务端通常采用服务器集群架构,在该架构下,不同服务器之间需要同步历史链路信息,众多历史链路信息在不同服务器间的同步实现复杂性高。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), resulting in the historical link information queried by the server through the client IP address may not actually be information recording the status of the historical link between the client and the server. Therefore, according to 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, the historical link information recording the status of the historical link between client A1 and the server), the initialization of 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.
在另一种方案中,服务端缓存服务端和客户端之间历史链路的实际最大传输速率。其中,实际最大传输速率仍由客户端的IP地址所标识。当同一IP地址的客户端请求和服务端建立链路时,服务端使用历史链路的实际最大传输速率,设置新建链路的起始传输速率。虽然,该方案可以让新建链路跳过慢启动阶段。但由于IP地址在不同客户端之间共享,以及客户端IP地址的变化,导致新建链路的起始传输速率和新建链路的实际网络状况相差较大,从而导致在按照初始发送策略发送数据时,可能发生拥塞或带宽浪费。另外,由于服务端和众多客户端建立链路,因此,在该方案中,服务端需要缓存众多历史链路信息,导致服务端的缓存压力较大。特别是,目前服务端通常采用服务器集群架构,在该架构下,不同服务器之间需要同步历史链路信息,众多历史链路信息在不同服务器间的同步实现复杂性高。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 IP address of the client. 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.
本申请实施例提供了一种数据传输方案。在该方案中,终端设备可以缓存历史链路信息,并将历史链路信息发送至服务端设备。服务端设备可以根据终端设备发送的历史链路信息所表示的历史链路的状态,设置服务端设备和终端设备之间新建链路的初始传输策略,并按照该初始传输策略,通过新建链路向终端设备发送业务数据。其中,终端设备也可以称为客户端,或者为运行客户端的设备。链路状态包括链路的实际传输速率、往返时延、拥塞窗口、丢包率等。发送策略,是指服务端向客户端发送业务数据的策略。初始发送策略是指发送方在链路建立后,开始通过链路向接收方发送业务数据时所采用的业务数据发送策略。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.
在该方案中,终端设备将历史链路信息发送至服务端设备,即使在终端设备的IP地址发生变化的情况下,服务端设备也能够得到记录了该终端设备和服务端设备之间历史链路的状态的信息,即正确的历史链路信息,从而服务端设备能够基于该历史链路信息,得到该终端设备和服务端设备之间历史链路的状态,进而使得服务端设备能够基于该终端设备和服务端设备之间历史链路,设置服务端设备和该终端设备之间新建链路的初始发送策略。由于,初始发送策略是基于该终端设备和服务端设备之间历史链路的状态所设置,因此,初始发送策略与该终端设备和服务端设备之间新建链路的实际网络状况一致性较高,在使得新建链路跳过慢启动的同时,降低了新建链路发生拥塞或带宽浪费的风险。In this solution, 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 or bandwidth waste in the newly created link.
并且,在该方案中,终端设备将历史链路信息发送至服务端设备,即历史链路信息无需缓存在服务端设备,从而减轻了服务端设备的缓存压力,并将降低了服务端不用服务器间同步数据的复杂性。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.
接下来,对本申请实施例提供的数据传输方案进行具体说明。Next, the data transmission scheme provided in the embodiment of the present application is described in detail.
图1示出了一种***架构100。该***架构100可以用于实施本申请实施例提供的数据传输方案。如图1所示,***架构100可以包括至少包括服务端设备111和终端设备121。即***架构100包括至少一个服务端设备和至少一个终端设备。FIG1 shows a system architecture 100. The system architecture 100 can be used to implement the data transmission solution provided in the embodiment of the present application. As shown in FIG1, 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.
在一些实施例中,***架构100可以包括多个服务端设备。如图1所示,***架构100在包括服务端设备111的同时,还包括服务端设备112等。***架构100可以包括多个终端设备。如图1所示,***架构100在包括终端设备121的同时,还包括终端设备122、终端设备123、终端设备124等。In some embodiments, the system architecture 100 may include multiple server devices. As shown in FIG1 , the system architecture 100 includes a server device 111 and a server device 112, etc. The system architecture 100 may include multiple terminal devices. As shown in FIG1 , the system architecture 100 includes a terminal device 121 and a terminal device 122, a terminal device 123, a terminal device 124, etc.
在本申请实施例中,当对服务端设备111、服务端设备112等服务端设备不做特别区分时,它们可以被简称为服务端设备。当对终端设备121、终端设备122、终端设备123、终端设备124等终端设备不做特别区分时,它们可以被简称为终端设备。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.
服务端设备是指业务服务端,存储有业务数据,并且可以向业务的客户端发送业务数据,使得用户可
以通过客户端,使用业务。在一个示例中,业务可以为流媒体业务。在一个例子中,业务具体可以为直播业务。在另一个例子中,业务具体可以为短视频业务。等等。在另一个示例中,业务可以为云渲染业务,例如三维画面渲染的云端渲染等。其中,画面在服务端设备进行绘制渲染得到,然后,服务端设备以视频流的方式,将画面发送至客户端。The server device refers to the service server, which stores service data and can send service data to the service client so that users can In one example, the service may be a streaming service. In another example, the service may be a live broadcast service. In another example, the service may be a short video service. And so on. In another example, the service may be a cloud rendering service, such as cloud rendering of three-dimensional image rendering. The image is rendered on the server device, and then the server device sends the image to the client in the form of a video stream.
在一些实施例中,服务端设备可以通过硬件方式实现,例如可以实现为服务器或者服务器集群。再例如,服务端设备可以为云计算(cloud computing)数据中心中的一个或多个计算节点。在一些实施例中,服务端设备可以通过软件方式实现。例如,服务端设备可以实现为虚拟机(virtual machine,VM)。在一个具体例子中,服务端设备可以为内容分发网络(content delivery network,CDN)节点。In some embodiments, the server device may be implemented by hardware, for example, as a server or a server cluster. For another example, the server device may be one or more computing nodes in a cloud computing data center. In some embodiments, the server device may be implemented by software. For example, the server device may be implemented as a virtual machine (VM). In a specific example, the server device may be a content delivery network (CDN) node.
终端设备为用户侧的设备,可以运行业务的客户端,以便用户通过终端设备使用服务端设备所提供的业务。终端设备可以为手机、平板电脑、个人电脑(personal computer,PC)、智能穿戴设备、智能电视、车载终端、航拍无人机等。其中,该终端设备可以为业务客户端的运行提供硬件环境。The terminal device is a user-side device 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.
继续参阅图1和图2,终端设备和服务端设备可以通过互联网(internet)连接。其中,通过互联网,终端设备和服务端设备可以按照传输协议,建立它们之间的通信链路。服务端设备通过该通信链路,可以向终端设备发送业务数据,例如,视频流等。Continuing to refer to FIG. 1 and FIG. 2 , the terminal device and the server device can be connected via the Internet. Wherein, via the Internet, the terminal device and the server device can establish a communication link between them according to a transmission protocol. The server device can send service data, such as a video stream, to the terminal device via the communication link.
其中,在终端设备和服务端设备之间新建通信链路时,终端设备可以将终端设备和服务端设备之间的历史链路信息发送至服务端设备。其中,历史链路信息表示该终端设备和服务端设备之间历史链路的状态。其中,该历史链路是指历史上该终端设备和服务端设备之间的通信链路。即该历史链路是指在终端设备和服务端设备之间新建通信链路之前的该终端设备和服务端设备之间的通信链路。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.
服务端设备在接收到该历史链路信息,以及在服务端设备和终端设备之间的新建链路建立成功后,可以根据该历史链路信息所表示的历史链路的状态,设置新建链路的初始发送策略。然后,服务端设备可以按照该初始发送策略,向该终端设备发送业务数据,从而跳过慢启动阶段,提高了业务数据传输效率,特别是,提高了首帧数据的传输效率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.
在一些实施例中,服务端设备的软件结构可以如图3所示,包括应用层模块310、传输层模块320以及IP层模块300。其中,应用层模块310用于按照应用层协议将业务数据传递至传输层模块320。传输层模块320可以按照传输层协议(例如TCP协议、QUIC协议等),将业务数据封装为传输层的数据报文,并将传输层的数据报文传递至IP层模块330。IP层模块330可以对数据报文进行进一步封装,然后,传递至下一层。In some embodiments, the software structure of the server device may be as shown in FIG3, including 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 service data to the transport layer module 320 according to the application layer protocol. The transport layer module 320 may encapsulate the service data into a data message of the transport layer according to the transport layer protocol (e.g., 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 may further encapsulate the data message and then transfer it to the next layer.
传输层模块320包括连接管理单元321、链路状态信息管理单元322、拥塞控制单元323、冗余恢复单元324、报文封装解析单元325、收发单元326。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 .
其中,收发单元326用于接收终端设备发送的信息,例如历史链路信息。报文封装解析单元325可以将业务数据封装为传输层的数据报文,也可以解析来自IP层模块330的报文的传输层报文头,从而提取该报文头携带的信息,例如历史链路信息。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.
链路状态信息管理单元322可以获取历史链路信息,并根据历史链路信息所表示的历史链路的状态,设置新建链路的初始发送策略。其中,历史链路的状态可以包括RTT和CWND,设置的初始发送策略可以包括初始传输速率。具体而言,链路状态信息管理单元322可以根据该RTT和该CWND,计算初始传输速率。链路状态信息管理单元322可以将计算得到的初始传输速率传递至拥塞控制单元323中,使得拥塞控制单元323可以基于初始传输速率,控制服务端设备发送数据报文的速率。历史链路的状态可以包括丢包率,链路状态信息管理单元可以根据该丢包率,确定冗余率,并将该冗余率传递至冗余恢复单元324。冗余恢复单元324可以根据该冗余率,开启前向纠错(forward error correction,FEC),并按照冗余率,向终端设备发送数据报文,以对抗网络丢包。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. The state of the historical link may include RTT and CWND, and the set initial sending strategy may include an initial transmission rate. Specifically, the link state information management unit 322 may calculate the initial transmission rate according to the RTT and the CWND. The link state information management unit 322 may pass the calculated initial transmission rate to the congestion control unit 323, so that the congestion control unit 323 may control the rate at which the server device sends data packets based on the initial transmission rate. The state of the historical link may include a packet loss rate, and the link state information management unit may determine a redundancy rate according to the packet loss rate, and pass the redundancy rate to the redundancy recovery unit 324. The redundancy recovery unit 324 may enable 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.
在一些实施例中,***架构100可以包括与终端设备同处于一局域网的中间设备。其中,终端设备通过中间设备接入到互联网,进而能够通过互联网和服务端设备连接。在一些实施例中,中间设备可以包括接入设备131、接入设备132等多个接入设备以及汇聚设备141等至少一个汇聚设备。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.
其中,接入设备是靠近终端设备侧的网络接入设备。终端设备通过接入到接入设备,而接入网络。典型的接入设备有调制解调器、路由器或无线基站等。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.
汇聚设备是位于终端侧的、用于接入设备接入到网络的设备。其中,汇聚设备可以用于向服务端设备转发多个接入设备的数据,以及向多个接入设备转发来自服务端设备的数据。典型的汇聚设备有核心路由器、核心交换机等。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.
上文示例介绍了可以用于实施本申请实施例提供的数据传输方案的***架构。接下来,介绍该***架
构,以终端设备121和服务端设备111为例,示例介绍本申请实施例提供的数据传输方案的执行流程。The above example introduces a system architecture that can be used to implement the data transmission solution provided in the embodiment of the present application. The structure takes the terminal device 121 and the server device 111 as examples to introduce the execution process of the data transmission solution provided in the embodiment of the present application.
参阅图4A和图4B,在步骤401,终端设备121可以确定需要与服务端设备111建立链路B1。其中,在执行步骤401时,终端设备121和服务端设备111之间没有链路。也就是说,链路B1为需要建立的新链路,而非终端设备121和服务端设备111之间已有的链路。4A and 4B, in 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.
其中,链路也可以称为通信链路,是指设备间进行数据传输的通道。链路可以为传输协议定义的链路,例如TCP协议定义的链路、QUIC协议定义的链路等。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.
在一些实施例中,终端设备121可以主动在终端设备121和服务端设备111之间建立链路B1。以直播业务为例,用户可以通过终端设备121切换直播间。以短视频为例,用户可以通过终端设备121切换短视频。在这些情况下,终端设备121需要将终端设备121与其他服务端设备连接切换为终端设备121与服务端设备111的连接。如此,终端设备121可以主动在终端设备121和服务端设备111之间建立链路B1,从而可以确定需要与服务端设备111建立链路B1。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.
在一些实施例中,终端设备121可以被动在终端设备121和服务端设备111之间建立链路。示例性的,终端设备121可以在接收到服务端设备111发送的握手请求消息时,确定需要与服务端设备111建立链路B1。其中,终端设备和服务端设备建立链路时,需要经过若干个握手消息进行握手,才能成功建立链路。服务端设备111在需要与终端设备121建立链路时,向终端设备121发送握手请求消息,以请求或通知终端设备121执行链路建立操作。因此,当终端设备121接收到服务端设备111发送的握手请求消息时,终端设备121可以被动在终端设备121和服务端设备111之间建立链路B1的,从而可以确定需要与服务端设备111建立链路B1。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.
终端设备121可以执行步骤402,终端设备121获取历史链路信息C1。历史链路信息是指记录了终端设备和服务端设备之间历史链路的状态的信息。其中,链路状态是指链路的实际状态,包括链路的实际传输速率、往返时延、拥塞窗口、丢包率等。历史链路信息C1是指记录了终端设备D和服务端设备111之间的历史链路的状态的信息。其中,终端设备D可以为终端设备121,或者为与终端设备121处于同一局域网的终端设备(例如终端设备122)。当终端设备D为终端设备121时,终端设备D和服务端设备111之间的历史链路是指历史上终端设备121和服务端设备111之间的链路,该历史链路在步骤401时已断开。当终端设备D不为终端设备121时,即当终端设备D为与终端设备121处于同一局域网的其他终端设备时,终端设备D和服务端设备111之间的历史链路是指终端设备D和服务端设备111之间的历史链路或最近建立的链路。其中,历史上的链路和最近建立的链路都是相对步骤401的执行时刻而言的。The terminal device 121 may execute step 402, and the terminal device 121 obtains historical link information C1. The historical link information refers to information recording 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. The historical link information C1 refers to information recording 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 links and the recently established links are relative to the execution time of step 401 .
在本申请实施例中,历史链路信息C1和服务端设备111的标识具有映射关系。示例性的,服务端设备111的标识可以为服务端设备111的网络地址,例如IP地址。服务端设备111的标识还可以为其他能够将服务端设备111和其他服务端设备区分开的信息。不难理解,服务端设备的位置等相对固定,因此,服务端设备111的网络地址等标识也相对固定。使用服务端设备的标识来指示历史链路信息,使得历史链路信息所记录的链路的状态和链路对应的设备具有较高的一致性。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. The identifier of the server device is used to indicate the historical link information, so that the status of the link recorded by the historical link information and the device corresponding to the link have a high degree of consistency.
在存储历史链路信息C1时,可以将服务端设备111的标识作为历史链路信息C1的键(key)。终端设备121可基于服务端设备111的标识,查询历史链路信息C1,从而获取历史链路信息C1。特别是,当***架构100包括多个服务端设备时,终端设备侧可能会存在多个历史链路信息,其中,多个服务端设备和多个历史链路信息一一对应。根据服务端设备的标识,可以从多个历史链路信息中查询到相应服务端设备对应的历史链路信息。其中,终端设备侧包括终端设备本身以及与终端设备处于同一局域网的其他设备。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.
在一些实施例中,当终端设备和服务端设备之间具有链路时,终端设备可以检测该链路的状态,得到历史链路信息。终端设备可以存储或者缓存历史链路信息。示例性的,终端设备可以按照预设的周期T1,周期性检测链路的状态,以周期性获得历史链路信息。其中,历史链路信息具有生命周期,例如,历史链路信息的生命周期可以为N个周期T1。当历史链路信息的保存时长达到N个周期T1,该历史链路信息失效。失效后的历史链路信息可以被删除。其中,N为大于或等于1的整数。周期T1的时长可以根据经验或实验预设。在一个例子中,周期T1的时长可以为5秒。在另一个例子中,周期T1的时长可以为10秒。等等。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.
另外,在步骤402所获取的历史链路信息C1为没有失效的历史链路信息。In addition, the historical link information C1 acquired in step 402 is historical link information that has not been invalidated.
在一些实施例中,终端设备可以将得到的历史链路信息存储或缓存在本地。在步骤402,终端设备111可以在根据服务端设备111的标识,在本地存储或缓存的信息中查询历史链路信息C1。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 .
在一些实施例中,终端设备可以将历史链路信息发送至同一局域网中的中间设备(即该中间设备和该终端设备处于同一局域网),以在中间设备存储或缓存历史链路信息。其中,如图4B所示,当终端设备121
需要获取历史链路信息C1时,终端设备121可以执行步骤402a,向中间设备发送服务端设备111的标识。中间设备可以根据服务端设备111的标识,在中间设备存储或缓存的信息中查询历史链路信息C1。当中间设备查询到历史链路信息C1时,可以执行步骤402b,将历史链路信息C1发送至终端设备121。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. When the historical link information C1 needs to be obtained, 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.
在该实施例中,历史链路信息可以由同一局域网中不同终端设备共享。具体而言,终端设备122和服务端设备111之间具有链路或者历史上具有链路,终端设备122产生了历史链路信息C1,该历史链路信息C1由服务端设备的标识所指示。终端设备122可以将该历史链路信息C1发送至中间设备。当终端设备121需要获取由服务端设备111的标识所指示的历史链路信息(即历史链路信息C1)时,可以根据服务端设备111的标识,在中间设备查询得到终端设备122产生的由服务端设备111的标识所指示的历史链路信息C1,从而得到历史链路信息C1。由此,实现了历史链路信息在不同终端设备之间的共享。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.
在该实施例的一个示例中,在***架构100中,中间设备包括接入设备和汇聚设备。终端设备可以将历史链路信息,发送至该终端设备所连接的接入设备,以在接入设备存储或缓存历史链路信息。接入设备还可将其接收到的历史链路信息,发送至接入设备所连接的汇聚设备,以在汇聚设备存储或缓存历史链路信息。当终端设备需要获取历史链路信息时,可以根据服务端设备的标识信息,在终端设备所连接的接入设备或汇聚设备存储或缓存的信息中查询相应的历史链路信息。在一个例子中,当终端设备需要获取历史链路信息时,可以根据服务端设备的标识,先在终端设备所连接的接入设备存储或缓存的信息中查询相应的历史链路信息(服务端设备的标识所指示的历史链路信息),以便优先获取同一接入设备下的终端设备所产生的历史链路信息。当没有在终端设备所连接的接入设备的存储或缓存的信息中查询相应的历史链路信息时,终端设备再根据服务端设备的标识,在相应的汇聚设备存储或缓存的信息中查询相应的历史链路信息。其中,终端设备的相应的汇聚设备是指与终端设备所连接的接入设备连接的汇聚设备。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, it can query the corresponding historical link information 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, it can query the corresponding historical link information (historical link information indicated by the identification of the server device) 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. Among them, 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.
在一些实施例中,终端设备可以将得到的历史链路信息存储或缓存在本地,与此同时,将该历史链路信息发送至中间设备。当终端设备需要获取历史链路信息时,可以根据服务端设备的标识,先在该终端设备存储或缓存的信息中查询相应的历史链路信息(服务端设备的标识所指示的历史链路信息),以便优先获取同一终端设备所产生的历史链路信息。当没有在该终端设备存储或缓存的信息中查询相应的历史链路信息时,该终端设备再根据服务端设备的标识,中间设备存储或缓存的信息中查询相应的历史链路信息。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 the historical link information, it can first query the corresponding historical link information (historical link information indicated by the identification of the server device) in the information stored or cached by the terminal device according to the identification 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 identification of the server device.
在一些实施例中,如上所述,历史链路信息C1为记录了终端设备D和服务端设备111之间历史链路的状态的信息。其中,终端设备D为终端设备121或者与终端设备121处于同一局域网的其他终端设备。可以设定该与终端设备121处于同一局域网的其他终端设备为终端设备122。当终端设备D为终端设备121之外的设备时,即当终端设备D为终端设备122时,也即当历史链路信息C1所终端设备122所检测到信息,若终端设备121和终端设备122对链路质量的要求不同,可以对按照终端设备121的链路质量要求,修改或者调整原始历史链路信息C1。修改或调整后的原始历史链路信息C1作为终端设备121获取到的历史链路信息C1。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.
其中,原始历史链路信息C1是指终端设备122检测到的历史链路信息C1。终端设备检测历史链路信息是指终端设备检测链路的状态,并基于检测结果生成历史链路信息。链路质量可以是指服务质量(quality of service,QoS),也可以是指其他形式的网络链路质量。The original historical link information C1 refers to the historical link information C1 detected by the terminal device 122. The terminal device detecting the historical link information refers to the terminal device detecting the state of the link and generating 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.
如上所述,中间设备存储或缓存了连接到该中间设备的终端设备检测到的历史链路信息。可以设定在图1所示的***架构100中,接入设备131或汇聚设备141存储或缓存了终端设备122检测到的原始历史链路信息C1。还可以设定终端设备121和终端设备122对链路质量要求不同。链路的状态由终端设备122对链路质量的要求和链路本身性能的影响。例如,链路的理论带宽为20MB,而终端设备122对链路质量的要求为:对丢包率要求高,对传输速率要求低。因此,在实际传输时,为了保障较低的丢包率,可能采用的低于理论带宽的传输速率,例如10MB,进行数据传输。这导致终端设备122检测到的原始历史链路信息C1记录的数据传输速率为10MB。终端设备121对链路质量的要求为:对传输速率要求高,对丢包率要求低。在终端设备121从接入设备131或汇聚设备141获取历史链路信息C1时,接入设备131或汇聚设备141可以按照终端设备121对链路质量的要求,对原始历史链路信息C1进行调整或修改。例如,将原始历史链路信息C1记录的数据传输速率从10MB修改为理论带宽(即20MB)等等。接入设备131或汇聚设备141将修改后的原始历史链路信息C1作为历史链路信息C1发送至终端设备121。As described above, the intermediate device stores or caches the historical link information detected by the terminal device connected to the intermediate device. It can be set that in the system architecture 100 shown in Figure 1, 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 by 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.
继续参阅图4A和图4B,终端设备121在获取历史链路信息C1之后,终端设备121可以执行步骤403,向服务端设备111发送历史链路信息C1。4A and 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 .
在一些实施例中,步骤403可以在链路B1的建立期间或建立之前执行。链路B1的建立需要经过若干次信息握手,即终端设备121和服务端设备111之间需要交互若干次握手消息。该握手消息是用于在终端
设备121和服务端设备111之间建立链路B1。终端设备121可以将历史链路信息C1携带在发往服务端设备121的握手消息中,以将历史链路信息C1发送至服务端设备111。示例性的,该握手消息可以为握手请求消息或者为握手应答消息。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 A link B1 is established between the device 121 and the server device 111. The terminal device 121 may carry the historical link information C1 in a 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.
在该实施例的一个示例中,可以将历史链路信息C1携带在握手消息的保留字段或扩展字段中,也就是说,使用保留字段或扩展字段来承载历史链路信息C1。例如,将历史链路信息C1携带在传输层协议的报文报头的保留字段或扩展字段中。在一个例子中,以链路B1为QUIC协议链路为例,握手消息支持携带传输参数扩展(transport parameter extension)信息。可以在QUIC协议已经定义的传输参数(transport parameter)基础上增加历史链路信息。具体可以如图5所示,增加的历史链路信息包括传输速率、往返时延、丢包率等。在一个例子中,以链路B1为TCP协议链路为例,可以将历史链路信息C1携带在握手消息的报文的TCP头的保留字段中。由此,历史链路信息C1可以随着握手消息,被发送至服务端设备111。In an example of this embodiment, the historical link information C1 can be carried in a reserved field or an extended field of a 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 a message header of a transport layer protocol. In an example, taking link B1 as a QUIC protocol link as an example, the handshake message supports carrying transport parameter extension information. The historical link information can be added on the basis of the transport parameter already defined in the QUIC protocol. Specifically, as shown in FIG. 5, the added historical link information includes transmission rate, round-trip delay, packet loss rate, etc. In an example, taking link B1 as a TCP protocol link as an example, the historical link information C1 can be carried in a reserved field of the TCP header of the message of the handshake message. Thus, the historical link information C1 can be sent to the server device 111 along with the handshake message.
在一些实施例中,步骤403可以在链路B1的建立完成后、服务端设备111还未通过链路B1向终端设备121发送业务数据之前执行。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.
继续参阅图4A和图4B,服务端设备111在接收到历史链路信息C1之后,可以执行步骤404,设置链路B1的初始发送策略。4A and 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 .
在一些实施例中,历史链路信息C1记录的历史链路的状态包括传输速率。在步骤404中,可以根据历史链路信息C1记录的传输速率,设置链路B1的初始速率。例如,历史链路信息C1记录的传输速率作为初始速率。其中,初始速率为或包含在初始发送策略中。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.
在一些实施例中,历史链路信息C1记录的历史链路的状态包括传输速率和RTT。在步骤404中,可以根据历史链路信息C1记录的传输速率和RTT,计算链路B1的拥塞窗口,然后,基于计算的拥塞窗口,设置链路B1的初始速率。初始速率为或包含在初始发送策略中。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.
在一些实施例中,历史链路信息C1包括丢包率。在步骤404中,可以根据历史链路信息C1记录的丢包率,设置链路B1的数据报文发送冗余率。数据报文发送冗余率为或包含在初始发送策略中,用于对抗该丢包率。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.
接着,服务端设备111可以执行步骤405,按照初始发送策略,通过链路B1,向终端设备121发送业务数据。也就是说,服务端设备111在没有慢启动链路B1的情况下,直接按照初始发送策略,通过链路B1,向终端设备121发送业务数据。由此,提高了数据传输效率。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, the data transmission efficiency is improved.
其中,当初始发送策略包括或为初始速率时,服务端设备111在没有慢启动链路B1的情况下,直接按照初始速率,通过链路B1,向终端设备121发送业务数据。当初始发送策略包括或为数据报文发送冗余率时,服务端设备111在没有慢启动链路B1的情况下,直接按照数据报文发送冗余率,通过链路B1,向终端设备121发送业务数据。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.
继续参阅图4A和图4B,终端设备121可以执行步骤406,检测链路B1的状态,生成历史链路信息C2。其中,历史链路信息C2的标识为服务端设备111的标识,或者说,历史链路信息C2由服务端设备111的标识所指示。4A and 4B , the terminal device 121 may execute step 406 to detect the state of the link B1 and generate historical link information C2 , wherein 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 .
示例性的,终端设备121可以按照预设的周期T1,周期性检测链路B1的状态,以周期性获得历史链路信息C2。其中,历史链路信息具有生命周期,例如,历史链路信息的生命周期可以为N个周期T1。当历史链路信息的保存时长达到N个周期T1,该历史链路信息失效。失效后的历史链路信息可以被删除。其中,N为大于或等于1的整数。周期T1的时长可以根据经验或实验预设。在一个例子中,周期T1的时长可以为5秒。在另一个例子中,周期T1的时长可以为10秒。等等。Exemplarily, the terminal device 121 may 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 may be N periods T1. When the storage period of the historical link information reaches N periods T1, the historical link information becomes invalid. The invalid historical link information may be deleted. N is an integer greater than or equal to 1. The duration of the period T1 may be preset based on experience or experiment. In one example, the duration of the period T1 may be 5 seconds. In another example, the duration of the period T1 may be 10 seconds. And so on.
在一些实施例中,终端设备121可以在本地存储或者缓存历史链路信息C2。在一些实施例中,如图4B所示,终端设备121可以执行步骤407,将历史链路信息C2发送至中间设备,中间设备可以存储或者缓存历史链路信息C2。In some embodiments, the terminal device 121 may store or cache the historical link information C2 locally. In some embodiments, as shown in FIG4B , 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.
在本申请实施例提供的数据传输方案中,终端设备将历史链路信息发送至服务端设备,即使在终端设备的IP地址发生变化的情况下,服务端设备也能够得到记录了该终端设备和服务端设备之间历史链路的状态的信息,即正确的历史链路信息,从而服务端设备能够基于该历史链路信息,得到该终端设备和服务端设备之间历史链路的状态,进而使得服务端设备能够基于该终端设备和服务端设备之间历史链路,设置服务端设备和该终端设备之间新建链路的初始发送策略。由于,初始发送策略是基于该终端设备和服务端设备之间历史链路的状态所设置,因此,初始发送策略与该终端设备和服务端设备之间新建链路的实际网络状况一致性较高,在使得新建链路跳过慢启动的同时,降低了新建链路发生拥塞或带宽浪费的风险。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.
基于上文描述的数据传输方案,本申请实施例提供了一种数据传输方法。该方法科应用于业务***,
所述业务***包括至少一个终端设备、至少一个服务端设备。如图6所示,该方法包括如下步骤。Based on the data transmission scheme described above, the present application embodiment provides a data transmission method. The method can be applied to a business system. The business system includes at least one terminal device and at least one server device. As shown in FIG6 , the method includes the following steps.
步骤601,至少一个终端设备中的第一终端设备向所述至少一个服务端设备中的第一服务端设备发送第一信息,所述第一信息包括第一历史链路信息;其中,所述第一历史链路信息表示历史链路的状态;所述历史链路为所述第一服务端设备和所述第一终端设备之间的历史链路,或者为所述第一服务端设备和第二终端设备之间的历史链路,所述第二终端设备和所述第一终端设备处于同一局域网中。具体可以参考上文对图4A中步骤401-步骤403的介绍实现,或者参考上文对图4B中步骤401、步骤402a、步骤402b以及步骤403的介绍实现。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 steps 401 to 403 in FIG. 4A, or refer to the above description of steps 401, 402a, 402b, and 403 in FIG. 4B.
步骤602,第一服务端设备根据所述历史链路的状态,设置所述第一服务端和所述第一终端设备之间的第一链路的初始发送策略。具体可以参考上文对图4A或图4B中步骤404的介绍实现。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. For details, please refer to the above description of step 404 in FIG. 4A or FIG. 4B.
步骤603,第一服务端设备根据所述初始发送策略,通过所述第一链路,向所述第一终端设备发送业务数据。具体可以参考上文对图4A或图4B中步骤405的介绍实现。Step 603: The first server device sends service data to the first terminal device through the first link according to the initial sending strategy. For details, please refer to the above description of step 405 in FIG. 4A or FIG. 4B.
在一些实施例中,所述第一信息为用于建立所述第一链路的握手消息。具体可以参考上文对图4A或图4B中步骤403的介绍实现。In some embodiments, the first information is a handshake message for establishing the first link. For details, reference may be made to the above description of step 403 in FIG. 4A or FIG. 4B .
在一些实施例中,所述历史链路的状态包括第一传输速率,所述初始发送策略包括基于所述第一传输速率设置的初始速率;或者,所述历史链路的状态包括第二传输速率和往返时延RTT,所述初始发送策略包括基于所述第二传输速率和所述往返时延计算得到的初始速率;或者,所述历史链路的状态包括丢包率,所述初始发送策略包括基于所述丢包率设置的数据报文发送冗余率。具体可以参考上文对图4A或图4B中步骤404的介绍实现。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 introduction to step 404 in Figure 4A or Figure 4B.
在一些实施例中,所述至少一个服务端设备为多个,所述多个服务端设备和多个历史链路信息一一对应;所述方法还包括:所述终端设备根据所述第一服务端设备的标识,从多个历史链路信息中确定所述第一历史链路信息。具体可以参考上文对图4A中步骤401-步骤402的介绍实现,或者参考上文对图4B中步骤401、步骤402a、步骤402b的介绍实现。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. For details, please refer to the above introduction to step 401-step 402 in Figure 4A, or refer to the above introduction to step 401, step 402a, and step 402b in Figure 4B.
在一些实施例中,当所述历史链路为所述第一服务端设备和所述第一终端设备之间的历史链路时,所述第一历史链路信息是所述第一终端设备在所述第一服务端设备通过所述历史链路向所述第一终端设备发送业务数据时检测到;当所述历史链路为所述第一服务端设备和所述第二终端设备之间的历史链路时,所述第一历史链路信息是所述第二终端设备在所述第一服务端设备通过所述历史链路向所述第一终端设备发送业务数据时检测到。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.
在这些实施例的一个示例中,所述业务***还包括中间设备,所述方法还包括:当所述第一终端设备或所述第二终端设备检测到所述第一历史链路信息时,所述第一终端设备或所述第二终端设备将所述第一历史链路信息发送至所述中间设备;所述第一终端设备向所述至少一个服务端设备中的第一服务端设备发送第一信息包括:所述第一终端设备从所述中间设备获取所述第一历史链路信息,并将所述第一历史链路信息包含在发往所述第一服务端设备的所述第一信息中。参考上文对图B中步骤401、步骤402a、步骤402b以及步骤403的介绍实现。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.
在该示例的一个例子中,当所述历史链路为所述第一服务端设备和所述第二终端设备之间的历史链路,且所述第二终端设备和所述第一终端设备对链路质量的要求不同时,所述方法还包括:所述中间设备根据所述第一终端设备的链路质量,修改所述第二终端设备检测到所述第一历史链路信息;所述第一终端设备从所述中间设备获取所述第一历史链路信息包括:所述第一终端设备从所述中间设备获取所述修改后的所述第一历史链路信息。参考上文对图B中步骤401、步骤402a、步骤402b以及步骤403的介绍实现。In one example of this example, 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 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.
在一些实施例中,所述第一链路为快速UDP互联网连接协议QUIC链路,所述历史链路为QUIC链路或传输控制协议TCP链路;或者,所述第一链路为TCP链路,所述历史链路为QUIC链路或传输控制协议TCP链路。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.
本申请实施例提供的数据传输方法,可以使得服务端设备可以确定与终端设备和服务端设备之间新建链路的实际网络状况一致性高的初始发送策略,并按照该初始发送策略,通过新建链路向终端设备发送业务数据,可以终端设备和服务端设备之间新建链路发生拥塞的风险或者减少该新建链路的带宽浪费。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.
本申请实施例还提供了一种数据传输装置,所述装置用作业务***中的第一终端设备,所述业务***还包括至少一个服务端设备。如图7所示,所述装置包括:The embodiment of the present application also provides a data transmission device, which is used as a first terminal device in a business system, and the business system also includes at least one server device. As shown in FIG7 , the device includes:
通信单元710,用于向所述至少一个服务端设备中的第一服务端设备发送第一信息,所述第一信息包括第一历史链路信息;其中,所述第一历史链路信息表示历史链路的状态;所述历史链路为所述第一服务端设备和所述第一终端设备之间的历史链路,或者为所述第一服务端设备和第二终端设备之间的历史链路,
所述第二终端设备和所述第一终端设备处于同一局域网中;其中,所述历史链路的状态用于所述第一服务端设备设置所述第一服务端和所述第一终端设备之间的第一链路的初始发送策略,且所述初始发送策略用于所述第一服务端设备通过所述第一链路,向所述第一终端设备发送业务数据。The communication unit 710 is 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; and 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. 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 through the first link.
该装置的各功能单元的功能可以参考上文对终端设备121所执行操作的介绍实现,在此不再赘述。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.
本申请实施例还提供了一种数据传输装置,所述装置用作业务***中的第一服务端设备,所述业务***还包括至少一个终端设备。如图8所示,所述装置包括: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. As shown in FIG8 , the device includes:
接收单元810,用于接收所述至少一个终端设备中的第一终端设备发送的第一信息,所述第一信息包括第一历史链路信息;其中,所述第一历史链路信息表示历史链路的状态;所述历史链路为所述第一服务端设备和所述第一终端设备之间的历史链路,或者为所述第一服务端设备和第二终端设备之间的历史链路,所述第二终端设备和所述第一终端设备处于同一局域网中;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;
设置单元820,用于根据所述历史链路的状态,设置所述第一服务端和所述第一终端设备之间的第一链路的初始发送策略;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;
发送单元830,用于根据所述初始发送策略,通过所述第一链路,向所述第一终端设备发送业务数据。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.
该装置的各功能单元的功能可以参考上文对服务端设备111所执行操作的介绍实现,在此不再赘述。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.
本申请实施例提供了一种终端设备。参阅图9,该终端设备可以包括存储器910和处理器920;其中,存储器910用于存储计算机指令;处理器920用于运行所述存储器存储的所述计算机指令,使得终端设备可以执行图4A或图4B所示实施例中终端设备121所执行的操作,或者执行图6所示实施例中第一终端设备所执行的操作。The embodiment of the present application provides a terminal device. Referring to FIG9 , 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 perform the operations performed by the terminal device 121 in the embodiment shown in FIG4A or FIG4B, or perform the operations performed by the first terminal device in the embodiment shown in FIG6 .
本申请实施例提供了一种服务端设备。继续图10所示,该服务端设备可以包括存储器1010和处理器1020;其中,存储器1010用于存储计算机指令;处理器1020用于运行所述存储器存储的所述计算机指令,使得服务端设备可以执行图4A或图4B所示实施例中服务端设备111所执行的操作,或者执行图6所示实施例中第一服务端设备所执行的操作。The embodiment of the present application provides a server device. Continuing with FIG10 , 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 perform the operations performed by the server device 111 in the embodiment shown in FIG4A or FIG4B, or perform the operations performed by the first server device in the embodiment shown in FIG6 .
本申请实施例还提供了一种芯片,所述芯片用于执行上文所述的方法,例如执行终端设备121或服务端设备111所执行的操作,再例如第一终端设备或第一服务端设备所执行的操作。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.
本申请实施例还提供了一种包含指令的计算机程序产品。所述计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当所述计算机程序产品在至少一个计算设备上运行时,使得至少一个计算设备执行上文中终端设备121或服务端设备111所执行的操作,或者执行上文中第一终端设备或第一服务端设备所执行的操作。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.
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等主机迁移设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行上文中终端设备121或服务端设备111所执行的操作,或者执行上文中第一终端设备或第一服务端设备所执行的操作。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.
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。
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 (19)
- 一种数据传输方法,其特征在于,应用于业务***,所述业务***包括至少一个终端设备、至少一个服务端设备;所述方法包括:A data transmission method, characterized in that it is applied to a business system, wherein the business system includes at least one terminal device and at least one server device; the method comprises:所述至少一个终端设备中的第一终端设备向所述至少一个服务端设备中的第一服务端设备发送第一信息,所述第一信息包括第一历史链路信息;其中,所述第一历史链路信息表示历史链路的状态;所述历史链路为所述第一服务端设备和所述第一终端设备之间的历史链路,或者为所述第一服务端设备和第二终端设备之间的历史链路,所述第二终端设备和所述第一终端设备处于同一局域网中;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 service data to the first terminal device through the first link according to the initial sending strategy.
- 根据权利要求1所述的方法,其特征在于,所述第一信息为用于建立所述第一链路的握手消息。The method according to claim 1 is characterized in that the first information is a handshake message used to establish the first link.
- 根据权利要求1或2所述的方法,其特征在于,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,所述历史链路的状态包括第二传输速率和往返时延RTT,所述初始发送策略包括基于所述第二传输速率和所述往返时延计算得到的初始速率;或者,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.
- 根据权利要求1-3中任一项所述的方法,其特征在于,所述至少一个服务端设备为多个,所述多个服务端设备和多个历史链路信息一一对应;所述方法还包括:所述终端设备根据所述第一服务端设备的标识,从多个历史链路信息中确定所述第一历史链路信息。The method according to any one of claims 1-3 is characterized in that there are multiple at least one server-side devices, and the multiple server-side 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-side device.
- 根据权利要求1-4中任一项所述的方法,其特征在于,The method according to any one of claims 1 to 4, 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 5, characterized in that the service 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 6 is 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 comprises: 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 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.
- 根据权利要求1-7中任一项所述的方法,其特征在于,The method according to any one of claims 1 to 7, characterized in that所述第一链路为快速UDP互联网连接协议QUIC链路,所述历史链路为QUIC链路或传输控制协议TCP链路;或者,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,所述第一链路为TCP链路,所述历史链路为QUIC链路或传输控制协议TCP链路。The first link is a TCP link, and the historical link is a QUIC link or a Transmission Control Protocol TCP link.
- 一种数据传输方法,其特征在于,应用于业务***中的第一终端设备,所述业务***还包括至少一个服务端设备;所述方法包括:A data transmission method, characterized in that it is applied to a first terminal device in a business system, wherein the business system further includes 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;其中,所述历史链路的状态用于所述第一服务端设备设置所述第一服务端和所述第一终端设备之间的第一链路的初始发送策略,且所述初始发送策略用于所述第一服务端设备通过所述第一链路,向所述第一终端设备发送业务数据。Among them, 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.
- 根据权利要求9所述的方法,其特征在于,所述至少一个服务端设备为多个,所述多个服务端设备和多个历史链路信息一一对应;所述方法还包括:所述终端设备根据所述第一服务端设备的标识,从所述多个历史链路信息中确定所述第一历史链路信息。The method according to claim 9 is characterized in that there are multiple at least one server-side devices, and the multiple server-side devices correspond one-to-one to the multiple historical link information; 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-side device.
- 一种数据传输方法,其特征在于,应用于业务***中的第一服务端设备,所述业务***还包括至少一个终端设备;所述方法包括:A data transmission method, characterized in that it is applied to a first server device in a business system, wherein the business system also includes 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 service data to the first terminal device through the first link according to the initial sending strategy.
- 根据权利要求11所述的方法,其特征在于,The method according to claim 11, 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,所述历史链路的状态包括第二传输速率和往返时延RTT,所述初始发送策略包括基于所述第二传输速率和所述往返时延计算得到的初始速率;或者,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.
- 一种业务***,其特征在于,所述业务***包括至少一个终端设备、至少一个服务端设备;其中,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.
- 一种数据传输装置,其特征在于,所述装置用作业务***中的第一终端设备,所述业务***还包括至少一个服务端设备;所述装置包括: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 comprises:通信单元,用于向所述至少一个服务端设备中的第一服务端设备发送第一信息,所述第一信息包括第一历史链路信息;其中,所述第一历史链路信息表示历史链路的状态;所述历史链路为所述第一服务端设备和所述第一终端设备之间的历史链路,或者为所述第一服务端设备和第二终端设备之间的历史链路,所述第二终端设备和所述第一终端设备处于同一局域网中;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;其中,所述历史链路的状态用于所述第一服务端设备设置所述第一服务端和所述第一终端设备之间的第一链路的初始发送策略,且所述初始发送策略用于所述第一服务端设备通过所述第一链路,向所述第一终端设备发送业务数据。Among them, 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.
- 一种数据传输装置,其特征在于,所述装置用作业务***中的第一服务端设备,所述业务***还包括至少一个终端设备;所述装置包括: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 comprises:接收单元,用于接收所述至少一个终端设备中的第一终端设备发送的第一信息,所述第一信息包括第一历史链路信息;其中,所述第一历史链路信息表示历史链路的状态;所述历史链路为所述第一服务端设备和所述第一终端设备之间的历史链路,或者为所述第一服务端设备和第二终端设备之间的历史链路,所述第二终端设备和所述第一终端设备处于同一局域网中;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 is used to send service data to the first terminal device through the first link according to the initial sending strategy.
- 一种终端设备,其特征在于,包括存储器和处理器;所述存储器用于存储计算机指令;所述处理器 用于运行所述存储器存储的所述计算机指令实现权利要求9或10所述的方法。A terminal device, characterized in that it comprises a memory and a processor; the memory is used to store computer instructions; the processor The computer instructions stored in the memory are used to execute the method according to claim 9 or 10.
- 一种服务端设备,其特征在于,包括存储器和处理器;所述存储器用于存储计算机指令;所述处理器用于运行所述存储器存储的所述计算机指令实现权利要求11或12所述的方法。A server device, characterized in that it includes 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 claim 11 or 12.
- 一种计算机存储介质,所述计算机存储介质包括计算机指令,当所述计算机指令在计算设备上运行时,使得所述计算设备执行权利要求9或10所述的方法或者权利要求11或12所述的方法。A computer storage medium comprising computer instructions, which, when executed on a computing device, causes the computing device to execute the method of claim 9 or 10 or the method of claim 11 or 12.
- 一种计算机程序产品,其特征在于,所述计算机程序产品包含的程序代码被计算设备中的处理器执行时,实现权利要求9或10所述的方法或者权利要求11或12所述的方法。 A computer program product, characterized in that when the program code contained in the computer program product is executed by a processor in a computing device, the method of claim 9 or 10 or the method of claim 11 or 12 is implemented.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211376517.1A CN116132503A (en) | 2022-11-04 | 2022-11-04 | Data transmission method, device and equipment |
CN202211376517.1 | 2022-11-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024093284A1 true WO2024093284A1 (en) | 2024-05-10 |
Family
ID=86305237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2023/103045 WO2024093284A1 (en) | 2022-11-04 | 2023-06-28 | Data transmission method and apparatus, and device |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116132503A (en) |
WO (1) | WO2024093284A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116132503A (en) * | 2022-11-04 | 2023-05-16 | 华为技术有限公司 | Data transmission method, device and equipment |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10257097B1 (en) * | 2016-10-04 | 2019-04-09 | EMC IP Holding Company LLC | Connection based selection of a network congestion control process |
CN112422441A (en) * | 2020-03-05 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | Congestion control method and system based on QUIC transmission protocol |
WO2021148328A1 (en) * | 2020-01-20 | 2021-07-29 | Sony Group Corporation | Network entity and user equipment for transmission rate control |
CN115150333A (en) * | 2022-05-26 | 2022-10-04 | 腾讯科技(深圳)有限公司 | Congestion control method and device, computer equipment and storage medium |
CN116132503A (en) * | 2022-11-04 | 2023-05-16 | 华为技术有限公司 | Data transmission method, device and equipment |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110730105B (en) * | 2015-05-29 | 2021-09-28 | 腾讯科技(深圳)有限公司 | Picture data transmission method, device, equipment and storage medium |
WO2019169273A1 (en) * | 2018-03-02 | 2019-09-06 | Futurewei Technologies, Inc. | Method of traffic and congestion control for a network with quality of service |
US11032348B2 (en) * | 2019-04-04 | 2021-06-08 | Wowza Media Systems, LLC | Live stream testing |
CN111194098B (en) * | 2020-02-19 | 2022-03-22 | 腾讯科技(深圳)有限公司 | Link establishment method, device, communication system and computer readable medium |
-
2022
- 2022-11-04 CN CN202211376517.1A patent/CN116132503A/en active Pending
-
2023
- 2023-06-28 WO PCT/CN2023/103045 patent/WO2024093284A1/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10257097B1 (en) * | 2016-10-04 | 2019-04-09 | EMC IP Holding Company LLC | Connection based selection of a network congestion control process |
WO2021148328A1 (en) * | 2020-01-20 | 2021-07-29 | Sony Group Corporation | Network entity and user equipment for transmission rate control |
CN112422441A (en) * | 2020-03-05 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | Congestion control method and system based on QUIC transmission protocol |
CN115150333A (en) * | 2022-05-26 | 2022-10-04 | 腾讯科技(深圳)有限公司 | Congestion control method and device, computer equipment and storage medium |
CN116132503A (en) * | 2022-11-04 | 2023-05-16 | 华为技术有限公司 | Data transmission method, device and equipment |
Also Published As
Publication number | Publication date |
---|---|
CN116132503A (en) | 2023-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11522734B2 (en) | Method for controlling a remote service access path and relevant device | |
US11522790B2 (en) | Multipath data transmission processing method and network device | |
US20200358886A1 (en) | Data Transmission Method, Apparatus, And System | |
US11477130B2 (en) | Transmission control method and apparatus | |
US7191242B1 (en) | Methods and apparatuses for transferring data | |
US7430609B2 (en) | Managing access to streams hosted on duplicating switches | |
US9438494B2 (en) | Apparatus and methods for optimizing network data transmission | |
WO2022247550A1 (en) | Data retransmission processing method and apparatus, computer device, and storage medium | |
JP4698684B2 (en) | A method for aggregating data traffic on an access domain and nodes relating to the method | |
WO2019134383A1 (en) | Method for controlling network congestion, access device, and computer readable storage medium | |
US20100268761A1 (en) | Methods and systems for delivery of media over a network | |
CN112631788B (en) | Data transmission method and data transmission server | |
EP2395700A2 (en) | Managing access to stream hosted on duplicating switches | |
JP2008538885A (en) | Method for managing service bindings on an access domain and access node | |
WO2024093284A1 (en) | Data transmission method and apparatus, and device | |
US20210409288A1 (en) | Packet Transmission Method, Apparatus, and System | |
CN115766605A (en) | Network congestion control method, device and system | |
US20170126849A1 (en) | Header redundancy removal for tunneled media traffic | |
KR101410510B1 (en) | Method and apparatus for data transferring using Stream Control Transfer Protocol | |
US20070153828A1 (en) | System and method to negotiate the addition or deletion of a PPP link without data loss | |
CN113747237B (en) | Data processing method and device, electronic equipment and storage medium | |
WO2024104016A1 (en) | Data transmission method and apparatus, and electronic device and storage medium | |
US20240236196A1 (en) | Data transmission method and device | |
Wang et al. | A low latency and high scalability network with extreme QoS assurance | |
Akbar et al. | Efficient Multimedia Data Transmission Using Active Networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23884223 Country of ref document: EP Kind code of ref document: A1 |