WO2023000894A1 - 一种数据传输方法、装置、服务器、存储介质及程序产品 - Google Patents

一种数据传输方法、装置、服务器、存储介质及程序产品 Download PDF

Info

Publication number
WO2023000894A1
WO2023000894A1 PCT/CN2022/099987 CN2022099987W WO2023000894A1 WO 2023000894 A1 WO2023000894 A1 WO 2023000894A1 CN 2022099987 W CN2022099987 W CN 2022099987W WO 2023000894 A1 WO2023000894 A1 WO 2023000894A1
Authority
WO
WIPO (PCT)
Prior art keywords
transmission channel
transmission
session layer
channel
data
Prior art date
Application number
PCT/CN2022/099987
Other languages
English (en)
French (fr)
Inventor
韩瑞
刘泓昊
肖建军
张富才
文念
Original Assignee
腾讯科技(深圳)有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 腾讯科技(深圳)有限公司 filed Critical 腾讯科技(深圳)有限公司
Priority to KR1020237033841A priority Critical patent/KR20230150878A/ko
Priority to EP22845059.9A priority patent/EP4287591A1/en
Publication of WO2023000894A1 publication Critical patent/WO2023000894A1/zh
Priority to US18/140,169 priority patent/US11924255B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1083In-session procedures
    • H04L65/1095Inter-network session transfer or sharing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/327Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the session layer [OSI layer 5]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities

Definitions

  • the present application relates to the technical field of data transmission, in particular to data transmission.
  • cloud video As an example, the content of cloud video is integrated in the cloud video server, and the cloud video server provides video services to the user's terminal equipment, such as on-demand, live broadcast, video call, cloud game, etc.
  • the server is usually based on a multi-channel single-protocol transmission solution.
  • the multi-channel transmission scheme can provide more feasible alternative channels, the effect on improving the quality of service is still not significant.
  • TCP Transmission Control Protocol
  • FIG. 1 is a schematic diagram of the architecture of the MPTCP transmission scheme in the stack. As shown in Figure 1, TCP1, TCP2...TCPn of the transport layer are n different channels under the TCP protocol.
  • subflow a, subflow b, subflow c, and subflow d are transmitted through two TCP channels (TCP1 and TCP2), seq represents the sequence number of the subflow data packet, ack represents the response, and the next sequence is allowed Number of packets transmitted.
  • TCP1 and TCP2 TCP1 and TCP2
  • seq represents the sequence number of the subflow data packet
  • ack represents the response
  • the next sequence is allowed Number of packets transmitted.
  • the data packet with the sequence number 124 can be transmitted by the subflow b through another TCP channel only after receiving a response.
  • Embodiments of the present application provide a data transmission method, device, server, storage medium, and program product, so as to increase the degree of freedom of data transmission and improve the quality of data transmission services.
  • the present application provides a data transmission method on the one hand, and the method includes:
  • the first transmission channel as the responsible channel for the content to be transmitted, transmit the data unit distributed by the session layer to the target terminal device;
  • the transport layer uses different transport protocols
  • the data unit delivered by the session layer is transmitted to the target terminal device via the second transmission channel.
  • a data transmission device the device includes:
  • a data unit division module configured to divide the content to be transmitted into multiple data units at the session layer, and the content to be transmitted is used for transmission to the target terminal device;
  • the transmission module is configured to use the first transmission channel as the responsible channel for the content to be transmitted, and transmit the data unit distributed by the session layer to the target terminal device;
  • the data unit distribution module is used to distribute the data unit to the second transmission channel by the session layer when the session layer switches the responsible channel of the content to be transmitted from the first transmission channel to the second transmission channel; the first transmission channel and the The second transmission channel adopts different transmission protocols in the transmission layer;
  • the transmission module is further configured to transmit the data unit distributed by the session layer to the target terminal device through the second transmission channel.
  • Another aspect of the present application provides a server for transmitting video data, the server includes a processor and a memory:
  • the memory is used to store the program code and transmit the program code to the processor
  • the processor is configured to execute the steps of the data transmission method according to the above aspect according to the instructions in the program code.
  • Another aspect of the present application provides a computer-readable storage medium, where the computer-readable storage medium is used to store program codes, and the program codes are used to execute the data transmission method of the above aspect.
  • Another aspect of the present application provides a computer program product including instructions, which, when run on a computer, cause the computer to execute the data transmission method of the above aspect.
  • a first transmission channel and a second transmission channel connected to a target terminal device are established at the transport layer, and the two channels use different transmission protocols.
  • the content to be transmitted is divided into multiple data units at the session layer, and the session layer makes a switching decision on the responsible channel for transmitting the content to be transmitted.
  • the session layer switches the responsible channel from the first transmission channel to the second transmission channel, the session layer distributes the data units to the second transmission channel, and the second transmission channel specifically sends the data units distributed by the session layer to the target terminal device.
  • the session layer Since the transmission protocols of the two transmission channels are different, and the session layer is responsible for segmenting and distributing data units, it can get rid of the limitations and constraints of the data sequence number space inherent in the transmission protocol, and facilitate the session layer to independently manage and distribute data. Constrained by the same sequence space of a certain transmission protocol, the degree of freedom of transmission is improved, and the quality of data transmission service is effectively improved, so that users corresponding to the target terminal can experience the transmitted content more smoothly. In addition, the design of multiple channels can also improve the reliability of data transmission.
  • Figure 1 is a schematic diagram of the architecture of the MPTCP transmission scheme in the stack
  • Fig. 2 is a schematic diagram of the sequential transmission of data packets of multiple subflows in the MPTCP transmission scheme
  • FIG. 3A is an application scenario architecture diagram of the data transmission method provided by the embodiment of the present application.
  • FIG. 3B is a schematic diagram of a communication model framework between a server and a target terminal device provided in an embodiment of the present application;
  • FIG. 3C is a schematic diagram of a video stream production device transmitting content to be transmitted to a server provided by an embodiment of the present application;
  • FIG. 4 is a flowchart of a data transmission method provided by an embodiment of the present application.
  • FIG. 5 is a schematic diagram of a server distributing data units to transmission channels at the session layer according to an embodiment of the present application
  • FIG. 6 is a flow chart of another data transmission method provided by the embodiment of the present application.
  • FIG. 7A is a schematic diagram of data units in various transmission states provided by the embodiment of the present application.
  • FIG. 7B is a schematic diagram of a data unit selectively distributed to the second transmission channel provided by the present application.
  • FIG. 8 is a schematic diagram of distributing data units across multiple channels provided by an embodiment of the present application.
  • FIG. 9 is a schematic diagram of distributing data units accumulated in the first transmission channel to the second transmission channel that need to be retransmitted according to an embodiment of the present application.
  • FIG. 10 is a schematic structural diagram of a data transmission device provided in an embodiment of the present application.
  • FIG. 11 is a schematic structural diagram of a server for data transmission provided by an embodiment of the present application.
  • FIG. 12 is a schematic structural diagram of a terminal device for data transmission provided by an embodiment of the present application.
  • the MPTCP scheme is a multi-channel transmission scheme.
  • the MPTCP transmission scheme is limited by the protocol.
  • Each TCP channel transmits data packets according to the same sequence number space. Before the current data packet being transmitted is confirmed by the peer, it is not allowed to transmit the data packet with the next sequence number. Therefore, the degree of freedom is low when transmitting data through the MPTCP scheme, which affects the quality of data transmission services provided to users.
  • the present application proposes a data transmission method, device, server and storage medium.
  • the following describes the data transmission method in combination with actual application scenarios.
  • the data transmission method provided in this application can be applied to computer equipment with data transmission functions, such as servers or terminals.
  • the terminal device may specifically be a smart phone, a desktop computer, a notebook computer, a tablet computer, a smart speaker, a smart watch, etc., but is not limited thereto.
  • the server may be an independent physical server, or a server cluster or a distributed system composed of multiple physical servers.
  • the server can also provide basic cloud services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, CDN, and big data and artificial intelligence platforms. Cloud server for computing services.
  • Cloud technology refers to a hosting technology that unifies a series of resources such as hardware, software, and network in a wide area network or a local area network to realize data calculation, storage, processing, and sharing.
  • Cloud technology is a general term for network technology, information technology, integration technology, management platform technology, application technology, etc. based on cloud computing business model applications. It can form a resource pool and be used on demand, which is flexible and convenient. Cloud computing technology will become an important support.
  • the background services of technical network systems require a lot of computing and storage resources, such as video websites, picture websites and more portal websites. With the rapid development and application of the Internet industry, each item may have its own identification mark in the future, which needs to be transmitted to the background system for logical processing. Data of different levels will be processed separately, and all kinds of industry data need to be powerful.
  • the system backing support can only be realized through cloud computing.
  • Cloud games can also be called gaming on demand, which is an online game technology based on cloud computing technology.
  • Cloud gaming technology enables light-end devices with relatively limited graphics processing and data computing capabilities to run high-quality games.
  • the game is not run on the player's game terminal, but in the cloud server, and the cloud server renders the game scene into a video and audio stream, which is transmitted to the player's game terminal through the network.
  • the player's game terminal does not need to have powerful graphics computing and data processing capabilities, but only needs to have basic streaming media playback capabilities and the ability to obtain player input instructions and send them to the cloud server.
  • the data transmission method will be introduced and explained by taking the server as an example of implementing the method.
  • the implementation subject of this method may also be a terminal device.
  • FIG. 3A is an application scenario architecture diagram of the data transmission method provided by the embodiment of the present application.
  • the application scenario shown in FIG. 3A includes a server 301 and a terminal device 302 .
  • the server 301 may communicate with one or more terminal devices 302 .
  • the target terminal device 302 may be any terminal device 302 communicatively connected to the server 301 .
  • the server 301 and the target terminal device 302 establish at least two transmission channels with different transmission protocols.
  • the first transmission channel and the second transmission channel are taken as examples for description.
  • the first transmission channel may be a transmission channel under the TCP protocol
  • the second transmission channel may be a transmission channel under the UDP protocol.
  • the dotted line and the solid line between the server 301 and the target terminal device 302 respectively represent the first transmission channel and the second transmission channel.
  • FIG. 3B is an architecture diagram of a communication model between a server and a target terminal device.
  • the communication model includes a session layer, a transport layer, a network layer, a data link layer and a physical layer.
  • the transport layer includes multiple transport channels using different transport protocols, and FIG. 3B only briefly shows the first transport channel (TCP protocol) and the second transport channel (UDP protocol).
  • TCP protocol transport channel
  • UDP protocol transport channel
  • the first physical layer is responsible for the original bit stream transmission on the mechanical, electronic, and timing interface communication channels.
  • the second layer is responsible for physical addressing while converting the raw bit stream into a logical transmission line.
  • the first layer and the second layer usually belong to the network card and network cable.
  • the third layer of the network layer is responsible for controlling the operation of the subnet, such as logical addressing, packet transmission, routing selection, etc.
  • the fourth layer is used to transmit the content to be transmitted to the peer (ie, the target terminal device) and receive a response from the peer.
  • the fifth layer is the session layer, which is used to establish and manage sessions with target terminal equipment. The following focuses on the important role of the session layer in the above communication model framework in terms of data transmission in the embodiment of the present application.
  • the transmission of content from the server 301 to the target terminal device 302 is no longer performed independently by the transport layer, but by the participation of the session layer.
  • the content to be transmitted may be multimedia data, such as video data, audio data and so on.
  • the server 301 divides the content to be transmitted that needs to be provided to the target terminal device through the session layer, and obtains multiple data units of the content to be transmitted through the segmentation.
  • the data units segmented by the session layer can be uniformly managed by the session layer, including identifying the transmission status and importance of the data units to control the distribution of the data units. That is, the session layer manages the boundaries and state of data units.
  • the session layer switches the responsible channel for the content to be transmitted, since the data unit can be managed and distributed to the new responsible channel by the session layer, and the transmission protocols of the responsible channel before and after switching are different, the new The responsible channel only needs to transmit the data units distributed by the session layer to the target terminal device 302, and other undistributed data units can be skipped and not retransmitted.
  • the transmission of content data units to be transmitted is controlled by the session layer, which increases the freedom of data transmission and improves the service quality of data transmission. It also improves user experience.
  • the content to be transmitted divided by the server 301 at the session layer may be provided by a video stream production device 303 .
  • FIG. 3C is a schematic diagram of the video stream production device 303 transmitting the content to be transmitted to the server 301 .
  • FIG. 4 is a flowchart of a data transmission method provided by an embodiment of the present application. This method is applied to the server 301 in the data transmission architecture shown in FIG. 3A , and the solution is implemented at the server 301 .
  • the implementation of the solution is based on the establishment of at least two transmission channels with different transmission protocols between the server and the target terminal device, which are used or reserved for data transmission.
  • the data transmission methods shown in Figure 4 include:
  • S401 Divide the content to be transmitted into multiple data units at the session layer.
  • the content to be transmitted described in the embodiment of the present application refers to the content that the server needs to transmit to the target terminal device.
  • the target terminal device runs a certain game application program, and the video stream of the game is integrated in the cloud video server, then the cloud video server needs to transmit the video data of the game as the content to be transmitted to the target terminal device.
  • the server divides the content to be transmitted (such as a video stream) into multiple data units at the session layer.
  • the content to be transmitted such as a video stream
  • the server By dividing the content to be transmitted into data units at the session layer, it can get rid of the limitation and restriction of the data serial number space inherent in a transmission channel transmission protocol, and facilitate the session layer to independently manage and distribute data.
  • the video frame size and the video packet size of the video are determined at the session layer; the minimum value of the video frame size and the packet size is used as the Partitioning granularity; the video is divided into multiple data units according to the partitioning granularity at the session layer. If the size of the video frame is smaller than the size of the data packet, the content to be transmitted is divided into multiple data units with the video frame as the granularity; if the size of the data packet is smaller than the size of the video frame, the content to be transmitted is divided into multiple data units at the granularity data unit.
  • the session layer can implement more fine-grained management and distribution.
  • These data units divided by the session layer can be managed by a unified number of the session layer, for example, the numbers are 1, 2, 3 and so on.
  • the session layer divides the content to be transmitted, it may specifically number according to the composition sequence of the data in the to-be-transmitted content (for example, the composition sequence of video pictures).
  • the management number of the data unit at the session layer here is different from the serial number assigned to the data in the serial number space under the first transmission channel transmission protocol, and also different from the serial number space under the second transmission channel transmission protocol The serial number assigned to the data in . That is, the numbering of data units is independent of the sequence number space of any transmission protocol, and is also independent of the constraints on the order of data transmission of continuous sequence numbers in any transmission protocol.
  • S402 Using the first transmission channel as a responsible channel for the content to be transmitted, transmit the data unit distributed by the session layer to the target terminal device.
  • the channel responsible for transmitting the content to be transmitted is called the responsible channel.
  • the first transmission channel is used as the responsible channel, that is, the original channel for transmitting data units
  • the second transmission channel is used as the responsible channel, that is, the current channel for transmitting data units . Since the present application does not limit the transmission protocol corresponding to the first transmission channel, the specific original channel is not limited.
  • the session layer can be used to sample the first transmission channel and the second transmission channel (for example, sampling according to a predetermined time interval or frequency) to obtain network sampling results of the two transmission channels.
  • the sampled content may include, but is not limited to: the number of data units accumulated in the channel, channel packet loss rate, and network round trip delay (Round Trip Time, RTT), etc.
  • the network sampling result is the sampling result of the above content.
  • the server may make a decision between two channels at the session layer based on the network sampling result. For example, the channel with the best network sampling result is used as the current responsible channel. Before S402, it is determined from the first transmission channel and the second transmission channel that the first transmission channel is used as the responsible channel.
  • the network sampling of the transmission channel is performed continuously or periodically.
  • the network sampling result of the first transmission channel is not constant and may fluctuate.
  • the session layer may switch the responsible channel from the first transmission channel to another transmission channel with a different transmission protocol, such as the second transmission channel, according to the network sampling result. After the responsible channel is switched, the session layer may no longer distribute data units to the original responsible channel (ie, the first transmission channel), but distribute data units to the new responsible channel (ie, the second transmission channel).
  • the data units distributed to the second transmission channel may include multiple types of data units, for example, data units that have not been transmitted by the first transmission channel, data units that have been transmitted by the first transmission channel but failed, and so on.
  • S404 Transmit the data unit distributed by the session layer to the target terminal device by using the second transmission channel.
  • the second transmission channel only needs to be responsible for transmitting the data units distributed by the session layer.
  • FIG. 5 is a schematic diagram of a server distributing data units to transmission channels at a session layer according to an embodiment of the present application.
  • data units 1-4 are distributed to the first transmission channel
  • data unit 4 also needs to be distributed to the second transmission channel
  • data units 5-7 that have not been distributed also need to be distributed to the second transmission channel.
  • the reason for the change of the distribution strategy above is that the channel responsible for the content to be transmitted is switched from the first transmission channel to the second transmission channel.
  • the second transmission channel only needs to be responsible for transmitting data units 4, 5, 6, 7, etc.
  • the server and the target terminal device have established a first transmission channel and a second transmission channel with different transmission protocols.
  • the content to be transmitted is divided into multiple data units at the session layer, and the session layer makes a switching decision on the responsible channel for transmitting the content to be transmitted.
  • the session layer is responsible for channel switching from the first transmission channel to the second transmission channel, the session layer distributes the data units to the second transmission channel, and the second transmission channel specifically sends the data units distributed by the session layer to the target terminal device.
  • the session layer Since the transmission protocols of the two transmission channels are different, and the session layer is responsible for segmenting and distributing data units, it can get rid of the limitations and constraints of the data sequence number space inherent in the transmission protocol, and facilitate the session layer to independently manage and distribute data. Constrained by the same sequence space of a certain transmission protocol, after channel switching, only the distributed data units need to be transmitted, which improves the degree of freedom of transmission, effectively improves the quality of data transmission services, and enables users corresponding to the target terminal to be smoother Experience the content provided by the server.
  • the data transmission is usually operated independently by the transport layer, resulting in that in some cases the effect experienced by the user after data transmission may not match the actual requirements. For example, the actual bit rate is too low, the delay is too large, etc. The main reason for this is that the transport layer itself cannot perceive these requirements.
  • the present application also provides another data transmission method, which refers to the performance requirements of the content to be transmitted when the session layer decides to be in charge of the channel. In this way, the determined channel transmission effect can better match the requirements, thereby improving the data transmission service quality and user experience.
  • FIG. 6 is a flowchart of another data transmission method provided by the embodiment of the present application.
  • the data transmission method shown in Figure 6 includes:
  • S700 Establish a first transmission channel and a second transmission channel with the target terminal device at the transport layer, where the first transmission channel and the second transmission channel use different transport protocols.
  • FIG. 3A for a schematic diagram of establishing communication between multiple channels of different transmission protocols and the target terminal device.
  • S701 Divide the content to be transmitted into multiple data units at the session layer.
  • S702 Obtain performance requirement information of the content to be transmitted through the session layer.
  • the performance requirement information of the content to be transmitted may include various information, such as video code rate, transmission rate, delay, resolution, and so on.
  • the following exemplarily introduces two implementation manners for obtaining performance requirement information of the content to be transmitted.
  • the performance requirement information of the content to be transmitted may be received from the target terminal device through the session layer.
  • the performance requirement information may be a setting result of the user corresponding to the target terminal device on the content to be transmitted. For example, if the content to be transferred is a cloud game and the player has set the above requirements, the results of these settings can be uploaded to the server after the settings are completed.
  • the session layer determines the performance requirement information of the content to be transmitted based on the type of the content to be transmitted.
  • different video types correspond to different performance requirement information.
  • the player's experience of cloud games may involve the game battle mode, so cloud games need to ensure that players experience high bit rate and ultra-low latency, so as to ensure smooth operation.
  • the requirements for the above aspects are relatively low. Therefore, the mapping relationship between the type of content to be transmitted and the performance requirement information can be constructed in advance, so that based on the type of content to be transmitted, the performance requirement information of the content to be transmitted can be directly determined according to the above mapping relationship.
  • the session layer determines from the first transmission channel and the second transmission channel that the network sampling results meet the performance requirement information as the responsible channel.
  • the first transmission channel may be used as the determined responsible channel.
  • the network conditions of the first transmission channel and the second transmission channel are continuously monitored.
  • Combining the performance requirement information obtained in S702 and the network sampling results of the first transmission channel and the second transmission channel compare whether the first transmission channel and the second transmission channel meet the performance requirement information. For example, when the network sampling result of the second transmission channel indicates that the performance requirements of the content to be transmitted cannot be met, while the network sampling result of the first transmission channel indicates that the performance requirements of the content to be transmitted can be met, the first transmission channel can be selected as the content to be transmitted The responsible channel for the content.
  • the performance of each transmission channel can be judged based on the network sampling results, so that the transmission channel that meets the performance requirements can be accurately determined for the transmission of data units, improving data transfer success rate.
  • the transmission that best matches (that is, is the closest) to the performance requirement information can be determined from the first transmission channel and the second transmission channel. aisle.
  • the network sampling result of the first transmission channel best matches the performance requirement information, and the first transmission channel is used as the responsible channel for the content to be transmitted. By selecting the most matching transmission channel, the transmission performance can be further guaranteed.
  • S704 Use the first transmission channel to transmit the data unit to the target terminal device, and perform network sampling on the first transmission channel through the session layer, to obtain a network sampling result of the first transmission channel.
  • the number of data units accumulated in the first transmission channel, the packet loss rate and the network round-trip delay RTT may be sampled through the session layer.
  • S705 Determine whether the network sampling result of the first transmission channel satisfies a preset switching condition. If yes, go to S706; if not, go to S704.
  • the sampling content may include three aspects: the quantity of accumulated data units, the packet loss rate, and the network round-trip delay RTT.
  • preset switching conditions can be set.
  • the preset switching conditions include any one of the following conditions or a combination of multiple conditions:
  • Second condition the packet loss rate of the first transmission channel reaches a preset rate
  • the preset switching conditions include a combination of multiple conditions among the three conditions, if any one of the preset switching conditions is met, the responsible channel needs to be switched.
  • Satisfaction of any one of the above first to third conditions indicates that the current channel is used to continue to transmit data units, and the expected data transmission service quality cannot be achieved, which will lead to poor user experience.
  • the first condition it means that the first transmission channel is severely blocked, and it is difficult to transmit the data unit.
  • the second condition it means that the packet loss rate is too high, and the data units received by the peer end are seriously missing.
  • the third condition it means that the delay is too large and a serious breakpoint is experienced at the peer end.
  • the original channel is continued to be used to transmit data units, and the channel is continuously monitored.
  • the transmission performance of the transmission channel is determined by sampling in multiple dimensions, which can effectively improve the accuracy of determining the responsible channel.
  • the session layer selects a data unit to distribute to the second transmission channel based on the transmission status and importance identifier of the data unit is introduced below.
  • S707 The session layer judges whether it is a data unit that needs to be retransmitted based on the transmission status and importance identifier of the data unit, and if yes, distributes it to the second transmission channel, and enters S708; if not, does not distribute it to the second transmission channel , enter S708.
  • the session layer can identify the transmission status of the data unit and identify the importance flag of the transmission unit.
  • the transmission status of the data unit may include: not transmitted, successfully transmitted, unsuccessfully transmitted, and the like. Untransmitted means that the data unit has not been transmitted to the target terminal device; successful transmission means that the data unit has been transmitted and has received confirmation from the peer (ie, the target terminal device); unsuccessful transmission means that the data unit has been transmitted but has not received confirmation from the peer .
  • FIG. 7A illustrates data units in various transmission states. Wherein, data units 1-2 are data units that have been successfully transmitted, data units 3-4 are data units that have not been successfully transmitted, and data units 5-8 are data units that have not been transmitted.
  • the importance identifier indicates the importance of the data unit to the content to be transmitted, and the importance identifier can be allocated by the session layer and read when needed.
  • the specific allocation method can be allocated through the attributes of the data. For example, when the video frame is used as the division granularity, if the data unit is a key frame, the importance flag "first flag” is added, and if the data unit is not a key frame, the importance flag "second flag” is added.
  • the data units whose importance is identified as "first identification” are more important than the data units whose importance is identified as "second identification”. As an example, the first identifier is 1, and the second identifier is 0.
  • the session layer recognizes the target data unit whose first transmission channel transmission is unsuccessful based on the transmission status of the data unit; the session layer identifies the importance mark of the target data unit; when the importance mark is the first mark, the session layer sends the target data unit The unit is distributed to the second transmission channel; when the importance identifier is the second identifier, the target data unit is not distributed to the second transmission channel. This means that for data units whose transmission fails, the second data channel does not need to retransmit all of them, and distributes them to the second transmission channel according to the importance.
  • the transmission state of the data unit indicates that the transmission is unsuccessful, and the importance identification is the second identification, it is judged that the data unit does not need to be retransmitted; if the transmission status of the data unit indicates that the transmission is unsuccessful, and the importance identification is the first identification, Then it is judged that the data unit needs to be retransmitted.
  • the target data unit can be selectively retransmitted, and the transmission resource is reasonably used under the premise of ensuring the transmission quality, and the transmission efficiency is improved.
  • FIG. 7B is a schematic diagram of selectively distributing data units to a second transmission channel according to the present application.
  • the responsible channel is switched from the first transport channel to the second transport channel by the session layer.
  • Data units 1 and 2 have been successfully transmitted from the server to the target terminal device by the first transmission channel.
  • Data unit 3 and data unit 4 are data units that have not been successfully transmitted by the first transmission channel. By identifying the importance flag, it is judged that data unit 3 needs to be retransmitted, so they are redistributed to the second transmission channel by the session layer.
  • the accumulated data unit 4 can be skipped because the importance indicator indicates that it is not a data unit that must be retransmitted.
  • the data unit 5 following the data unit 4 is a data unit of a new frame of the content to be transmitted, which has not been transmitted by the first transmission channel, so it is directly distributed to the second transmission channel by the session layer. That is to say, after the second transmission channel finishes retransmitting the data unit 3, it can directly transmit the data unit 5 to the target terminal, and does not need to be responsible for transmitting undistributed data units.
  • S708 Transmit the data unit distributed by the session layer to the target terminal device by using the second transmission channel.
  • the channel with the highest matching degree is selected as the channel responsible for the content to be transmitted by acquiring the performance requirement information of the content to be transmitted and combining the performance requirement information.
  • This solution uses the session layer to perceive the actual needs of the transmission content application scenario, solves the problem that cannot be solved by relying on the transmission layer alone, improves the transmission fluency and reliability of the channel used for transmission, and better matches the actual needs. Data transmission services Quality is improved.
  • the session layer can also use multiple transmission channels with different transmission protocols as the channels responsible for the content to be transmitted.
  • the account of the user corresponding to the target terminal device has a higher priority, it is possible to use multiple transmission channels as the responsible channel.
  • the server distributes different data units to different transmission channels in parallel.
  • FIG. 8 is a schematic diagram of distributing data units on multiple channels according to an embodiment of the present application.
  • the session layer uses the first transmission channel as the responsible channel for data units 1-9, and uses the second transmission channel as the responsible channel for data units 10-15.
  • the server distributes the data units 7-9 that need to be retransmitted to the second transmission channel through the management and decision-making of the session layer, so that the second transmission channel retransmits the data units 7-9 to the target terminal equipment.
  • FIG. 9 is a schematic diagram of distributing data units accumulated in a first transmission channel to a second transmission channel according to an embodiment of the present application.
  • the session layer will switch the responsible channel again, that is, change the responsible channel from the second transmission channel Back to the first transmission channel. In this way, the quality of data transmission is guaranteed.
  • the session layer will still identify the importance identifiers to determine the distribution strategy.
  • the present application also provides a data transmission device accordingly.
  • the specific implementation of the device will be described below in conjunction with the embodiments and the accompanying drawings.
  • FIG. 10 is a schematic structural diagram of a data transmission device provided by an embodiment of the present application.
  • the data transmission device 1000 shown in Figure 10 includes:
  • a data unit division module 1100 configured to divide the content to be transmitted into multiple data units at the session layer, and the content to be transmitted is used for transmission to the target terminal device;
  • the transmission module 1200 is configured to use the first transmission channel as the responsible channel for the content to be transmitted to transmit the data unit distributed by the session layer to the target terminal device;
  • the data unit distribution module 1300 is configured to distribute the data unit to the second transmission channel by the session layer when the responsible channel of the content to be transmitted is switched from the first transmission channel to the second transmission channel by the session layer; the first transmission channel using a different transport protocol at the transport layer than the second transport channel;
  • the transmission module 1200 is further configured to transmit the data unit distributed by the session layer to the target terminal device through the second transmission channel.
  • the transmission module 1200 includes:
  • An information acquisition unit configured to acquire performance requirement information of the content to be transmitted through the session layer
  • the channel determination unit is used to determine the transmission channel whose network sampling result meets the performance requirement information from the first transmission channel and the second transmission channel by the session layer according to the network sampling results of the first transmission channel and the second transmission channel respectively as the responsible channel for the content to be transmitted;
  • the first transmission unit is configured to transmit the data unit of the content to be transmitted to the target terminal device through the first transmission channel.
  • the information obtaining unit is configured to receive performance requirement information for the content to be transmitted from the target terminal device through the session layer; or determine, based on the type of the content to be transmitted, the session layer Information describing the performance requirements of the content to be transmitted.
  • the responsible channel determination unit is configured to determine, through the session layer, that the network sampling results of the first transmission channel and the second transmission channel meet the performance requirement information, and the first transmission channel The network sampling result of the network most closely matches the performance requirement information, then the first transmission channel is used as the responsible channel for the content to be transmitted.
  • the content to be transmitted includes video
  • the data unit division module 1100 includes:
  • a data size determination unit is used to determine the video frame size of the video and the packet size of the video at the session layer;
  • a division granularity determination unit configured to use the minimum value among the video frame size and the data packet size as the division granularity
  • the division unit is used to divide the video into multiple data units according to the division granularity at the session layer.
  • the data unit distributing module 1300 is configured to, by the session layer, select a data unit to be distributed to the second transmission channel based on the transmission status and the importance identifier of the data unit.
  • the data unit distribution module 1300 includes:
  • a transmission status identification unit configured to identify a target data unit by the session layer based on the transmission status of the data unit, where the target data unit is a data unit that has not been successfully transmitted by the first transmission channel;
  • An importance identification unit used for identifying the importance identification of the target data unit by the session layer
  • the distribution unit is configured to distribute the target data unit to the second transmission channel by the session layer when the importance identifier of the target data unit is the first identifier; when the importance identifier of the target data unit is the second identifier, not to the second transmission channel
  • the transport channel distributes the object data units.
  • the data transmission device may also include:
  • a channel switching module configured to switch the responsible channel from the first transmission channel to a second transmission channel with different transmission protocols
  • Channel switching module including:
  • a sampling unit configured to perform network sampling on the first transmission channel through the session layer, to obtain a network sampling result of the first transmission channel
  • the channel switching unit is configured to switch the responsible channel of the content to be transmitted from the first transmission channel to the second transmission channel by the session layer when the network sampling result meets the preset switching condition.
  • the sampling unit is specifically configured to sample the number of data units accumulated in the first transmission channel, the packet loss rate and the network round-trip delay RTT through the session layer, to obtain the network sampling result of the first transmission channel;
  • the preset switching conditions include any one of the following conditions or a combination of multiple conditions:
  • Second condition the packet loss rate of the first transmission channel reaches a preset rate
  • the data transmission device also includes:
  • a channel establishment module configured to establish the first transmission channel and the second transmission channel between the transport layer and the target terminal device.
  • the data device provided in the embodiment of the present application may be applied to a terminal device or a server, and the content to be transmitted is multimedia data.
  • the server is a cloud video server, and the multimedia data is cloud video.
  • the involved server can form a block chain with other servers, and the server is a node on the block chain.
  • the first transmission channel and the second transmission channel connected to the target terminal device are established at the transport layer, and the two channels use different transport protocols.
  • the content to be transmitted is divided into multiple data units at the session layer, and the session layer makes a switching decision on the responsible channel for transmitting the content to be transmitted.
  • the session layer switches the responsible channel from the first transmission channel to the second transmission channel, the session layer distributes the data units to the second transmission channel, and the second transmission channel specifically sends the data units distributed by the session layer to the target terminal device.
  • the session layer Since the transmission protocols of the two transmission channels are different, and the session layer is responsible for segmenting and distributing data units, it can get rid of the limitations and constraints of the data sequence number space inherent in the transmission protocol, and facilitate the session layer to independently manage and distribute data. Constrained by the same sequence space of a certain transmission protocol, the degree of freedom of transmission is improved, and the quality of data transmission service is effectively improved, so that users corresponding to the target terminal can experience the transmitted content more smoothly. In addition, the design of multiple channels can also improve the reliability of data transmission.
  • FIG. 11 is a schematic structural diagram of a server provided by an embodiment of the present application, and the server 900 is used for data transmission.
  • the server 900 may have relatively large differences due to different configurations or performances, and may include one or more central processing units (central processing units, CPU) 922 (for example, one or more processors) and memory 932, one or more A storage medium 930 (such as one or more mass storage devices) storing application programs 942 or data 944 .
  • the memory 932 and the storage medium 930 may be temporary storage or persistent storage.
  • the program stored in the storage medium 930 may include one or more modules (not shown in the figure), and each module may include a series of instruction operations on the server.
  • the central processing unit 922 may be configured to communicate with the storage medium 930 , and execute a series of instruction operations in the storage medium 930 on the server 900 .
  • the server 900 can also include one or more power supplies 926, one or more wired or wireless network interfaces 950, one or more input and output interfaces 958, and/or, one or more operating systems 941, such as Windows Server TM , Mac OS X TM , Unix TM , Linux TM , FreeBSD TM , etc.
  • operating systems 941 such as Windows Server TM , Mac OS X TM , Unix TM , Linux TM , FreeBSD TM , etc.
  • the steps performed by the server in the foregoing embodiments may be based on the server structure shown in FIG. 11 .
  • CPU 922 is used for carrying out following steps:
  • the first transmission channel as the channel responsible for the content to be transmitted, transmit the data unit distributed by the session layer to the target terminal device;
  • the session layer When the session layer switches the responsible channel of the content to be transmitted from the first transmission channel to a second transmission channel with a different transmission protocol, the session layer distributes data units to the second transmission channel;
  • the first transmission channel and the second transmission channel adopt different transmission protocols at the transport layer;
  • the data unit distributed by the session layer is transmitted to the target terminal device by using the second transmission channel.
  • the embodiment of the present application also provides another terminal device for data transmission, as shown in Figure 12, for the sake of illustration, only the parts related to the embodiment of the present application are shown, and the specific technical details are not disclosed, please refer to The method part of the embodiment of the present application.
  • the terminal can be any terminal device including mobile phone, tablet computer, personal digital assistant (English full name: Personal Digital Assistant, English abbreviation: PDA), sales terminal (English full name: Point of Sales, English abbreviation: POS), vehicle-mounted computer, etc. Take the terminal as a mobile phone as an example:
  • FIG. 12 shows a block diagram of a partial structure of a mobile phone related to the terminal provided by the embodiment of the present application.
  • the mobile phone includes: radio frequency (English full name: Radio Frequency, English abbreviation: RF) circuit 1010, memory 1020, input unit 1030, display unit 1040, sensor 1050, audio circuit 1060, wireless fidelity (WiFi) module 1070, Processor 1080, and power supply 1090 and other components.
  • radio frequency English full name: Radio Frequency, English abbreviation: RF
  • memory 1020 input unit 1030, display unit 1040, sensor 1050, audio circuit 1060, wireless fidelity (WiFi) module 1070, Processor 1080, and power supply 1090 and other components.
  • WiFi wireless fidelity
  • the RF circuit 1010 can be used for sending and receiving information or receiving and sending signals during a call.
  • the processor 1080 After receiving the downlink information from the base station, it is processed by the processor 1080; in addition, it sends the designed uplink data to the base station.
  • the memory 1020 can be used to store software programs and modules, and the processor 1080 executes various functional applications and data processing of the mobile phone by running the software programs and modules stored in the memory 1020 .
  • the input unit 1030 can be used to receive input numbers or character information, and generate key signal input related to user settings and function control of the mobile phone.
  • the input unit 1030 may include a touch panel 1031 and other input devices 1032 .
  • the display unit 1040 may be used to display information input by or provided to the user and various menus of the mobile phone.
  • the display unit 1040 may include a display panel 1041 .
  • the handset may also include at least one sensor 1050, such as a light sensor, a motion sensor, and other sensors.
  • the light sensor may include an ambient light sensor and a proximity sensor, wherein the ambient light sensor may adjust the brightness of the display panel 1041 according to the brightness of the ambient light, and the proximity sensor may turn off the display panel 1041 and/or when the mobile phone is moved to the ear. or backlight.
  • the audio circuit 1060, the speaker 1061, and the microphone 1062 can provide an audio interface between the user and the mobile phone.
  • WiFi is a short-distance wireless transmission technology.
  • the mobile phone can help users send and receive emails, browse web pages, and access streaming media through the WiFi module 1070, which provides users with wireless broadband Internet access.
  • the processor 1080 is the control center of the mobile phone. It uses various interfaces and lines to connect various parts of the entire mobile phone. By running or executing software programs and/or modules stored in the memory 1020, and calling data stored in the memory 1020, execution Various functions and processing data of the mobile phone.
  • the handset also includes a power source 1090 (such as a battery) for powering various components.
  • a power source 1090 such as a battery
  • the processor 1080 included in the terminal also has the following functions:
  • the first transmission channel as the channel responsible for the content to be transmitted, transmit the data unit distributed by the session layer to the target terminal device;
  • the session layer When the session layer switches the responsible channel of the content to be transmitted from the first transmission channel to a second transmission channel with a different transmission protocol, the session layer distributes data units to the second transmission channel;
  • the first transmission channel and the second transmission channel adopt different transmission protocols at the transport layer;
  • the data unit distributed by the session layer is transmitted to the target terminal device by using the second transmission channel.
  • An embodiment of the present application further provides a computer-readable storage medium, which is used to store a program code, and the program code is used to execute any implementation manner in the data transmission method described in the foregoing embodiments.
  • An embodiment of the present application further provides a computer program product including instructions, which, when run on a computer, cause the computer to execute any implementation manner in the data transmission method described in the foregoing embodiments.
  • the disclosed system, device and method can be implemented in other ways.
  • the device embodiments described above are only illustrative.
  • the division of the units is only a logical function division. In actual implementation, there may be other division methods.
  • multiple units or components can be combined or May be integrated into another system, or some features may be ignored, or not implemented.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces, and the indirect coupling or communication connection of devices or units may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place, or may be distributed to multiple network units. Part or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.
  • each functional unit in each embodiment of the present application may be integrated into one processing unit, each unit may exist separately physically, or two or more units may be integrated into one unit.
  • the above-mentioned integrated units can be implemented in the form of hardware or in the form of software functional units.
  • the integrated unit is realized in the form of a software function unit and sold or used as an independent product, it can be stored in a computer-readable storage medium.
  • the technical solution of the present application is essentially or part of the contribution to the prior art or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium , including several instructions to make a computer device (which may be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the methods described in the various embodiments of the present application.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (English full name: Read-Only Memory, English abbreviation: ROM), random access memory (English full name: Random Access Memory, English abbreviation: RAM), magnetic Various media that can store program codes such as discs or optical discs.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例公开一种数据传输方法、装置、服务器、存储介质及程序产品。方法包括:在会话层将待传输内容划分为多个数据单元;以第一传输通道作为待传输内容的负责通道向目标终端设备传输数据单元;当会话层将待传输内容的负责通道从第一传输通道切换到传输协议不同的第二传输通道时,由会话层向第二传输通道分发数据单元;以第二传输通道向目标终端设备传输会话层分发的数据单元。本申请中数据传输由会话层控制通道的切换和数据单元的分发,传输顺序免受协议限制,使数据传输自由度提升。通过提升数据传输的自由度,也有效改善了数据传输服务质量,使目标终端对应的用户得以更加流畅地体验传输的内容。

Description

一种数据传输方法、装置、服务器、存储介质及程序产品
本申请要求于2021年07月21日提交中国专利局、申请号为202110827938.0、申请名称为“一种数据传输方法、装置、服务器及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及数据传输技术领域,尤其涉及数据传输。
背景技术
随着大数据时代的来临,各种类型数据的运用也越来越普及。以云视频为例,云视频的内容集成在云视频服务器中,由云视频服务器向用户的终端设备提供视频服务,例如点播、直播、视频通话、云游戏等。
相关技术中,服务器通常基于多通道单协议的传输方案。多通道传输方案尽管能够提供更多可行的备选的通道,但是在提升服务质量方面的效果仍不显著。以多路TCP(MultiPathTCP,MPTCP)方案为例,该方案中建立多个传输控制协议(Transmission Control Protocol,TCP)通道,服务器将要发送的视频流分配为多个子流(subflow),通过这多个TCP通道传输多个子流。图1为MPTCP传输方案在栈中的架构示意图。如图1所示,传输层的TCP1、TCP2…TCPn为TCP协议下的n个不同的通道。图2为MPTCP传输方案中多个子流的数据包顺序传输的示意图。如图2所示,子流a、子流b、子流c和子流d借助两个TCP通道(TCP1和TCP2)传输,seq表示子流数据包的序列号,ack表示应答,允许下一序列号的数据包传输。举例而言,子流a中序列号为123的数据包传输后,需要得到应答才能够由子流b通过另一TCP通道传输序列号为124的数据包。
MPTCP方案中多个TCP通道共用一个序列空间,协议要求多个TCP通道传输的数据包序列号必须是连续增长,例如序列号为x+1的数据包必须在序列号为x的数据得到对端确认(即应答消息)的情况下才向对端发送。这一约束导致当出现丢包时,中间空缺的数据包必须要做重传恢复,不允许序列号的不连续。所以当一条通道的子流出现丢包时,会造成全体通道的传输等待。可见,MPTCP方案传输视频数据自由度受限,难以满足许多场景下用户对数据传输服务质量的要求。例如云游戏场景下,玩家的操作流畅度受到影响;在视频通话中,用户观看到的视频发生明显卡顿;在直播时,观众观看到主播的音画不同步等。因此,提升数据传输的自由度,改善数据传输服务质量已经成为当前领域亟待解决的问题。
发明内容
本申请实施例提供了一种数据传输方法、装置、服务器、存储介质及程序产品,以提升数据传输的自由度,改善数据传输服务质量。
有鉴于此,本申请一方面提供了一种数据传输方法,方法包括:
在会话层将待传输内容划分为多个数据单元,所述待传输内容用于向目标终端设备传输;
以第一传输通道作为待传输内容的负责通道,向目标终端设备传输会话层分发的数据单元;
当由会话层将待传输内容的负责通道从第一传输通道切换到第二传输通道时,由会话 层向第二传输通道分发数据单元;所述第一传输通道和所述第二传输通道在传输层采用不同的传输协议;
以第二传输通道向目标终端设备传输会话层分发的数据单元。
本申请另一方面提供一种数据传输装置,装置包括:
数据单元划分模块,用于在会话层将待传输内容划分为多个数据单元,所述待传输内容用于向目标终端设备传输;
传输模块,用于以第一传输通道作为待传输内容的负责通道,向目标终端设备传输会话层分发的数据单元;
数据单元分发模块,用于当会话层将待传输内容的负责通道从第一传输通道切换到第二传输通道时,由会话层向第二传输通道分发数据单元;所述第一传输通道和所述第二传输通道在传输层采用不同的传输协议;
传输模块,还用于以第二传输通道向目标终端设备传输会话层分发的数据单元。
本申请又一方面提供一种用于传输视频数据的服务器,服务器包括处理器以及存储器:
存储器用于存储程序代码,并将程序代码传输给处理器;
处理器用于根据程序代码中的指令,执行如上述方面的数据传输方法的步骤。
本申请又一方面提供一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码用于执行上述方面的数据传输方法。
本申请又一方面提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得所述计算机执行上述方面的数据传输方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例提供的数据传输方法中,在传输层建立了与目标终端设备相连的第一传输通道和第二传输通道,且两通道采用不同的传输协议。向目标终端设备传输待传输内容之前,在会话层将待传输内容划分成多个数据单元,由会话层对传输待传输内容的负责通道进行切换决策。当会话层将负责通道从第一传输通道切换为第二传输通道时,会话层将数据单元分发给第二传输通道,由第二传输通道具体向目标终端设备发送会话层所分发的数据单元。由于两个传输通道的传输协议不同,且由会话层负责切分和分发数据单元,能够脱离传输协议固有的数据序列号空间的限制和制约,便于会话层自主管理和分发数据,因此数据传输不受某一传输协议的同一序列空间的约束,使传输自由度得到提升,也有效改善了数据传输服务质量,使目标终端对应的用户得以更加流畅地体验传输的内容。此外,多个通道的设计也能够提升数据传输的可靠性。
附图说明
图1为MPTCP传输方案在栈中的架构示意图;
图2为MPTCP传输方案中多个子流的数据包顺序传输的示意图;
图3A为本申请实施例提供的数据传输方法的应用场景架构图;
图3B为本申请实施例提供的一种服务器与目标终端设备的通信模型框架示意图;
图3C为本申请实施例提供的一视频流生产设备向服务器传输待传输内容的示意图;
图4为本申请实施例提供的一种数据传输方法的流程图;
图5为本申请实施例提供的一种服务器在会话层将数据单元分发给传输通道的示意图;
图6为本申请实施例提供的另一种数据传输方法的流程图;
图7A为本申请实施例提供的多种不同传输状态的数据单元的示意图;
图7B为本申请提供的一种数据单元被选择性分发到第二传输通道的示意图;
图8为本申请实施例提供的一种在多个通道分发数据单元的示意图;
图9为本申请实施例提供的一种将第一传输通道中堆积的需重传的数据单元分发给第二传输通道的示意图;
图10为本申请实施例提供的一种数据传输装置的结构示意图;
图11为本申请实施例提供的一种用于数据传输的服务器的结构示意图;
图12为本申请实施例提供的一种用于数据传输的终端设备的结构示意图。
具体实施方式
目前向用户对应的终端设备提供数据传输服务,通常是基于同一种协议的通道传输视频数据。单通道传输数据显然难以应对传输问题,多通道的传输方案应运而生。MPTCP方案是一种多通道传输方案。MPTCP传输方案因为协议的限制,各TCP通道遵循同一序列号空间传输数据包,在传输的当前数据包得到对端确认之前,不允许传输后一序列号的数据包。因此,通过MPTCP方案传输数据时自由度低,影响为用户提供的数据传输服务的质量。
为解决以上问题,本申请提出一种数据传输方法、装置、服务器和存储介质。下面结合实际应用场景介绍数据传输方法。
本申请提供的数据传输方法可以应用于具有数据传输功能的计算机设备,如服务器或者终端。其中,终端设备具体可以为智能手机、台式计算机、笔记本电脑、平板电脑、智能音箱、智能手表等,但并不局限于此。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统。另外,服务器还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
为方便理解,作为示例,玩家(用户)通过目标终端设备进行游戏娱乐。介绍云游戏的实现场景:云游戏又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无 需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。
在后文对于数据传输方法的介绍中,以服务器作为该方法的实现主体的示例对数据传输方法进行介绍和说明。当然,该方法的实现主体也可以为终端设备。
图3A为本申请实施例提供的数据传输方法的应用场景架构图。如图3A所示的应用场景中包含服务器301和终端设备302。实际应用中,服务器301可以与一个或者多个终端设备302通信连接。
为便于说明和理解,本申请实施例中引入了目标终端设备的概念。目标终端设备302可以是与服务器301通信连接的任意一个终端设备302。在本申请技术方案中,作为数据传输的执行主体,服务器301与目标终端设备302建立有至少两条传输协议不同的传输通道。为便于说明和理解,以第一传输通道和第二传输通道为示例进行说明。举例而言,第一传输通道可以是TCP协议下的传输通道,第二传输通道可以是UDP协议下的传输通道。图3A中,服务器301与目标终端设备302之间的虚线和实线分别代表第一传输通道和第二传输通道。
图3B为服务器与目标终端设备之间的通信模型架构图。如图3B所示,该通信模型包括会话层、传输层、网络层、数据链路层和物理层。在该模型中,传输层包括多个采用不同传输协议的传输通道,图3B中仅简单示意出第一传输通道(TCP协议)和第二传输通道(UDP协议)。本申请实施例中对于传输通道对应的具体传输协议不做限定。
在图3B所示的通信模型架构中,当服务器向目标终端设备传输数据时,第一层物理层,负责机械、电子、定时接口通信信道上的原始比特流传输。第二层数据链路层,负责物理寻址,同时将原始比特流转变为逻辑传输线路。第一层与第二层通常归属于网卡、网线。第三层网络层,负责控制子网的运行,如逻辑编址、分组传输、路由选择等。第四层传输层,用于向对端(即目标终端设备)传输待传输的内容,以及接收对端的应答。第五层会话层,用于与目标终端设备建立会话和管理会话。下面重点介绍在本申请实施例中,在数据传输方面上述通信模型框架中会话层的重要作用。
服务器301向目标终端设备302传输内容,不再仅由传输层独立运作,而是由会话层介入参与。待传输内容可以是多媒体数据,例如视频数据,音频数据等。具体实现时,服务器301通过会话层对需要向目标终端设备提供的待传输内容进行切分,通过切分得到待传输内容的多个数据单元。会话层切分的数据单元可以由会话层统一管理,包括识别数据单元的传输状态和重要性标识以控制数据单元的分发。即,会话层管理数据单元的边界和状态。在本申请实施例中,当会话层将待传输内容的负责通道切换时,由于数据单元可以由会话层管理和分发到新的负责通道,且切换前后的负责通道的传输协议不同,因此新的负责通道只需要将会话层分发给自己的数据单元向目标终端设备302传输,其他未分发的则可以跳过不再重传。如此,由会话层管控待传输内容数据单元的传输,提升了数据的传输自由度,改善了数据传输服务质量。同时也提升用户的体验。
实际应用中,服务器301在会话层进行划分的待传输内容可以是由一个视频流生产设备303提供的。图3C为视频流生产设备303向服务器301传输待传输内容的示意图。
图4为本申请实施例提供的一种数据传输方法的流程图。此方法应用于图3A所示的数据传输架构中的服务器301,该方案在服务器301处实现。该方案的实现基础是服务器与目标终端设备之间建立有至少两条传输协议不同的传输通道,用于或者备用于传输数据。
如图4所示的数据传输方法包括:
S401:在会话层将待传输内容划分为多个数据单元。
本申请实施例所描述的待传输内容是指服务器需要向目标终端设备传输的内容。以云游戏的场景为例,目标终端设备运行某游戏应用程序,该游戏的视频流集成在云视频服务器,则云视频服务器需要向目标终端设备传输作为待传输内容的该游戏的视频数据。
本申请实施例中,为了便于服务器对视频数据精确地分发管理,在传输待传输内容之前,服务器在会话层将待传输内容(例如视频流)划分为多个数据单元。通过在会话层将待传输内容划分为数据单元,能够脱离某传输通道传输协议固有的数据序列号空间的限制和制约,便于会话层自主管理和分发数据。
下面介绍划分待传输内容的示例实现方式。
以待传输内容为视频为例,在一种可选的示例实现方式中,在会话层确定视频的视频帧大小和视频的数据包大小;将视频帧大小与数据包大小之中的最小值作为划分粒度;在会话层根据划分粒度将视频划分为多个数据单元。如果视频帧大小小于数据包大小,则以视频帧作为划分粒度将待传输内容划分得到多个数据单元;如果数据包大小小于视频帧大小,则以数据包为划分粒度待传输内容划分得到多个数据单元。
在该示例实现方式中,通过在数据包大小和视频帧大小中取最小值作为对视频的划分粒度,使可管理的数据单元的粒度更小,会话层能够对视频数据实现更加精细的管理和分发。
这些由会话层划分得到的数据单元可以由会话层统一编号管理,例如编号为1,2,3等。会话层划分待传输内容时具体可以根据待传输内容中数据对待传输内容的构成顺序(例如视频画面的构成顺序)进行编号。需要说明的是,此处会话层对数据单元的管理编号不同于第一传输通道传输协议下的序列号空间中对数据分配的序列号,也不同于第二传输通道传输协议下的序列号空间中对数据分配的序列号。即,数据单元的编号独立于任意传输协议的序列号空间,也独立于任意传输协议中对于连续序列号数据传输次序的约束。
S402:以第一传输通道作为待传输内容的负责通道,向目标终端设备传输会话层分发的数据单元。
本申请实施例中,服务器与目标终端设备之间建立的传输通道中,负责传输待传输内容的通道称为负责通道。为便于理解,假设在负责通道切换前,第一传输通道被作为负责通道使用,即传输数据单元的原通道,在切换后,第二传输通道被作为负责通道使用,即传输数据单元的现通道。由于本申请为对第一传输通道对应的传输协议不做限定,因此具体的原通道未受到限定。
在本申请实施例中,具有以哪一个传输通道作为待传输内容的负责通道由会话层进行决策。例如,实际应用中可以通过会话层对第一传输通道和第二传输通道进行采样(例如按照预定的时间间隔或频率进行采样),得到两个传输通道的网络采样结果。采样的内容可 以包括但不限于:通道中堆积的数据单元的数量、通道丢包率和网络往返延迟(Round Trip Time,RTT)等。网络采样结果为对上述内容的采样结果。
实际应用中,在一种可选实现方式中,服务器可以在会话层基于网络采样结果在两个通道之间进行决策。例如,将网络采样结果最佳的通道作为当前的负责通道。在S402之前,即是从第一传输通道和第二传输通道中决策出了以第一传输通道作为负责通道。
S403:当由会话层将待传输内容的负责通道从第一传输通道切换到第二传输通道时,由会话层向第二传输通道分发数据单元。
对传输通道的网络采样持续或者周期性进行,在传输数据单元期间,第一传输通道的网络采样结果不是固定不变的,有可能发生波动。此时,会话层可以根据网络采样结果将负责通道从第一传输通道切换到传输协议不同的另一传输通道,例如第二传输通道。负责通道被切换后,会话层可以不再向原负责通道(即第一传输通道)分发数据单元,而是向新负责通道(即第二传输通道)分发数据单元。
向第二传输通道分发的数据单元可以包括多种类型的数据单元,例如尚未被第一传输通道传输过的数据单元、被第一传输通道传输过但是未成功的数据单元等。
S404:以第二传输通道向目标终端设备传输会话层分发的数据单元。
在本步骤中,第二传输通道只需要负责对会话层分发的数据单元进行传输。
图5为本申请实施例提供的一种服务器在会话层将数据单元分发给传输通道的示意图。如图5所示,数据单元1~4分发给第一传输通道,数据单元4还需要分发给第二传输通道,并且未被分发过的数据单元5~7也需要分发给第二传输通道。上述分发策略变化的原因在于对待传输内容的负责通道从第一传输通道切换到了第二传输通道。第二传输通道只需要负责向目标终端设备传输数据单元4、5、6、7等,对于未分发给第二传输通道的数据单元1~3则无需负责传输,其中,数据单元4可以是在第一传输通道未能成功传输而需要重传的数据单元。
由此可见,服务器与目标终端设备建立有传输协议不同的第一传输通道和第二传输通道。服务器向目标终端设备传输待传输内容之前,在会话层将待传输内容划分成多个数据单元,由会话层对传输待传输内容的负责通道进行切换决策。当会话层负责通道从第一传输通道切换为第二传输通道时,会话层将数据单元分发给第二传输通道,由第二传输通道具体向目标终端设备发送会话层所分发的数据单元。由于两个传输通道的传输协议不同,且由会话层负责切分和分发数据单元,能够脱离传输协议固有的数据序列号空间的限制和制约,便于会话层自主管理和分发数据,因此数据传输不受某一传输协议的同一序列空间的约束,通道切换后,只需要传输分发过来的数据单元,使传输自由度得到提升,也有效改善了数据传输服务质量,使目标终端对应的用户得以更加流畅地体验服务器提供的内容。
相关技术中,数据传输通常由传输层独立运作,导致在一些情况下传输数据后用户体验到的效果可能与实际要求不匹配。例如实际码率过低、延迟过大等。其中主要原因在于传输层本身无法感知到这些要求。为了解决以上问题,本申请还提供了另一种数据传输方法,当会话层决策负责通道时参照对待传输内容的性能要求。以此使决策出的通道传输效果与要求更加匹配,从而提升数据传输服务质量和用户体验。
图6为本申请实施例提供的另一种数据传输方法的流程图。如图6所示的数据传输方法包括:
S700:在传输层建立与目标终端设备之间的第一传输通道和第二传输通道,第一传输通道与第二传输通道采用不同的传输协议。
建立多个不同传输协议的通道与目标终端设备之间通信的示意图参见图3A。
S701:在会话层将待传输内容划分为多个数据单元。
本步骤实现方式与前述实施例S401基本相同,可参照前述实施例,此处不做赘述。
S702:通过会话层获取对待传输内容的性能要求信息。
此处对待传输内容的性能要求信息可以包括多方面的信息,例如视频码率、传输速率、延迟、分辨率等。下面示例性介绍两种获取对待传输内容性能要求信息的实现方式。
在一种可能的实现方式中,可以通过会话层从目标终端设备接收对待传输内容的性能要求信息。此处,性能要求信息可以是目标终端设备对应的用户关于待传输内容的设置结果。例如待传输内容为云游戏,玩家设置了以上要求,这些设置结果在设置完成后可以上传到服务器。
在另一种可能的实现方式中,由会话层基于待传输内容的类型确定对待传输内容的性能要求信息。例如,不同的视频类型对应于不同的性能要求信息。举例而言,玩家体验云游戏有可能涉及到游戏对战模式,因此云游戏需要保证玩家体验高码率和超低延迟,从而保障操作的流畅。而在视频通话服务中,对于上述方面的要求则相对低一些。因此,预先可以构建待传输内容的类型和性能要求信息的映射关系,从而基于待传输内容的类型,依据上述映射关系可以直接确定出待传输内容的性能要求信息。
S703:根据分别对第一传输通道和第二传输通道的网络采样结果,由会话层从第一传输通道和第二传输通道中确定出网络采样结果满足性能要求信息的传输通道作为负责通道。
在本步骤中,可以示例性的将第一传输通道作为确定出的负责通道。
本申请实施例中,对第一传输通道和第二传输通道的网络状况进行持续监测。结合S702获得的性能要求信息、第一传输通道和第二传输通道的网络采样结果,比对第一传输通道和第二传输通道是否满足该性能要求信息。例如,当第二传输通道的网络采样结果指示无法满足对待传输内容的性能要求,而第一传输通道的网络采样结果指示能够满足对待传输内容的性能要求,便可以选择第一传输通道作为待传输内容的负责通道。
通过确定第一传输通道和第二传输通道的网络采样结果,可以基于网络采样结果判断各个传输通道的性能,从而可以准确的确定出满足性能要求信息的传输通道进行数据单元的传输,提高了数据传输的成功率。
另外,如果两个传输通道的网络采样结果都能够满足对待传输内容的性能要求,则可以从第一传输通道和第二传输通道中确定出与性能要求信息最匹配(即最接近)的一个传输通道。例如第一传输通道的网络采样结果与该性能要求信息最匹配,则将第一传输通道作为待传输内容的负责通道。通过选择最匹配的传输通道,能够进一步保证传输性能。
S704:以第一传输通道向目标终端设备传输数据单元,并通过会话层对第一传输通道进行网络采样,得到第一传输通道的网络采样结果。
具体地,可以是通过会话层对第一传输通道中堆积的数据单元的数量、丢包率和网络往返延迟RTT进行采样。
S705:判断第一传输通道的网络采样结果是否满足预设切换条件。若是,进入S706;若否,进入S704。
结合S704的介绍,采样内容可以包括堆积的数据单元的数量、丢包率和网络往返延迟RTT三个方面。基于实际的决策需求,可以对预设切换条件进行设定。预设切换条件包括以下任一种条件或者多种条件的组合:
第一条件:第一传输通道中堆积的数据单元的数量超过预设数量;
第二条件:第一传输通道的丢包率达到预设比率;
第三条件:RTT超过预设时长。
当预设切换条件包括三个条件中多个的组合时,预设切换条件中任一条件满足便需要切换负责通道。
以上第一条件至第三条件中任意一个条件满足,均指示以当前的通道继续传输数据单元,无法达到预期的数据传输服务质量,将导致用户的使用体验恶劣。第一条件满足时,表示第一传输通道发生了严重的阻塞,数据单元难以传输出去。第二条件满足,表示丢包率过大,对端接收的数据单元严重缺失。第三条件满足,表示延迟过大,在对端体验到严重的断点。
如果预设切换条件不满足,则继续使用原通道传输数据单元,并持续监测该通道。
通过多个维度进行采样来确定传输通道的传输性能,能够有效的提升确定负责通道的准确性。
S706:当网络采样结果满足预设切换条件时,由会话层将待传输内容的负责通道从第一传输通道切换到第二传输通道,进入S707。
在本申请实施例中,为了提升数据传输服务的质量(例如视频数据传输的流畅度和速度),对于第一传输通道传输未成功的数据单元,不要求全部分发给第二传输通道,以驱使第二传输通道向目标终端设备发送。为便于理解,下面介绍会话层基于数据单元的传输状态和重要性标识,选择向第二传输通道分发的数据单元的一种可选的实现方式。
S707:由会话层基于数据单元的传输状态和重要性标识判断是否是需要重传的数据单元,如果是,则分发给第二传输通道,进入S708;如果否,则不向第二传输通道分发,进入S708。
会话层可以识别数据单元的传输状态以及识别传输单元的重要性标识。数据单元的传输状态可以包括:未传输、传输成功、传输未成功等。未传输是指数据单元未向目标终端设备传输过;传输成功是指数据单元传输且收到了对端(即目标终端设备)的确认;传输未成功是指数据单元传输却未收到对端的确认。图7A示意了多种不同传输状态的数据单元。其中,数据单元1~2为传输成功的数据单元,数据单元3~4为传输未成功的数据单元,数据单元5~8为未传输的数据单元。
重要性标识指示了数据单元对于待传输内容的重要性,重要性标识可以由会话层进行分配并在需要的时候读取。具体分配方式可以通过数据的属性进行分配。例如当以视频帧 作为划分粒度,则如果数据单元为关键帧则添加重要性标识“第一标识”,如果数据单元并非关键帧则添加重要性标识“第二标识”。其中重要性标识为“第一标识”的数据单元,其重要性高于重要性标识为“第二标识”的数据单元。作为示例,第一标识为1,第二标识为0。
会话层基于数据单元的传输状态识别出第一传输通道传输未成功的目标数据单元;由会话层识别目标数据单元的重要性标识;当重要性标识为第一标识时,由会话层将目标数据单元分发给第二传输通道;当重要性标识为第二标识时,不向第二传输通道分发目标数据单元。这表示,对于传输未成功的数据单元,第二数据通道不必要全部重传,视重要性分发到第二传输通道。
如果数据单元的传输状态表示传输不成功,且重要性标识为第二标识,则判断该数据单元不需要重传;如果数据单元的传输状态表示传输不成功,且重要性标识为第一标识,则判断该数据单元需要重传。
通过重要性标识,可以有选择的对目标数据单元进行重传,在保证传输质量的前提下合理的利用了传输资源,提高了传输效率。
图7B为本申请提供的一种数据单元被选择性分发到第二传输通道的示意图。在图7B中,负责通道被会话层从第一传输通道切换到第二传输通道。数据单元1和2已经被第一传输通道成功从服务器传输到目标终端设备。数据单元3和数据单元4为第一传输通道传输未成功的数据单元,通过识别重要性标识,判断数据单元3需要重传,因此被会话层重新分发到了第二传输通道。而堆积的数据单元4由于重要性标识指示不是必须重传的数据单元,可以跳过,因此为了保证数据传输的实时性,选择不分发到第二传输通道。数据单元4之后的数据单元5为待传输内容的新的一帧画面的数据单元,未被第一传输通道传输过,因此直接被会话层分发到的第二传输通道。也就是说,第二传输通道对数据单元3完成重传后,即可以直接向目标终端传输数据单元5,不需要负责传输未分发的数据单元了。
结合图7B不难发现,本申请实施例中,当负责通道发生切换,通过在会话层基于传输状态和重要性标识选择性地分发数据单元到新通道,能够将待传输内容中重要的数据单元尽力、尽快地通过新通道传输给目标终端设备。保证了数据传输服务的可靠性。多个通道的设计也显著提升了传输工作的可靠性。
S708:以第二传输通道向目标终端设备传输会话层分发的数据单元。
在本申请实施例中,通过获取对待传输内容的性能要求信息,并结合性能要求信息来选择匹配度最高的通道作为待传输内容的负责通道。此方案通过会话层感知对待传输内容应用场景下的实际需求,解决了单独依靠传输层无法解决的问题,使传输时采用的通道传输流畅度和可靠性提升,与实际需求更加匹配,数据传输服务质量得到提升。
实际应用中,在一些可能的实现场景中,当一条传输通道无法满足性能传输需求时,会话层也可以将多条传输协议不同的传输通道均作为待传输内容的负责通道。此外,如果目标终端设备对应的用户其账户具有较高的优先级,有可能采用多个传输通道作为负责通道。服务器并行分发不同的数据单元给不同的传输通道。
图8为本申请实施例提供的一种在多个通道分发数据单元的示意图。例如,会话层将第 一传输通道作为数据单元1~9的负责通道,将第二传输通道作为数据单元10~15的负责通道。当第一传输通道发送阻塞时,服务器通过会话层的管理和决策,将需要重传的数据单元7~9分发给第二传输通道,以便第二传输通道重传数据单元7~9给目标终端设备。图9为本申请实施例提供的一种将第一传输通道中堆积的需重传的数据单元分发给第二传输通道的示意图。
需要说明的是,以上实施例中在服务器向目标终端设备传输视频数据的过程中,对于各协议传输通道的监测是持续进行的。因此,当第二传输通道作为负责通道的网络采样结果满足预设切换条件,且第一传输通道也恢复正常后,会话层会再一次切换负责通道,即,将负责通道从第二传输通道改换回第一传输通道。以此,保证数据的传输质量。同时,对于传输未成功的数据单元,会话层仍会进行重要性标识的识别,以确定分发策略。
基于前述实施例提供的数据传输方法,相应地,本申请还提供了一种数据传输装置。以下结合实施例和附图对该装置的具体实现进行说明。
图10为本申请实施例提供的一种数据传输装置的结构示意图。如图10所示的数据传输装置1000包括:
数据单元划分模块1100,用于在会话层将待传输内容划分为多个数据单元,待传输内容用于向目标终端设备传输;
传输模块1200,用于以第一传输通道作为待传输内容的负责通道向目标终端设备传输会话层分发的数据单元;
数据单元分发模块1300,用于当由会话层将待传输内容的负责通道从第一传输通道切换到第二传输通道时,由会话层向第二传输通道分发数据单元;所述第一传输通道和所述第二传输通道在传输层采用不同的传输协议;
传输模块1200,还用于以第二传输通道向目标终端设备传输会话层分发的数据单元。
可选地,传输模块1200,包括:
信息获取单元,用于通过会话层获取对待传输内容的性能要求信息;
负责通道确定单元,用于根据分别对第一传输通道和第二传输通道的网络采样结果,由会话层从第一传输通道和第二传输通道中确定出网络采样结果满足性能要求信息的传输通道作为待传输内容的负责通道;
第一传输单元,用于以第一传输通道向目标终端设备传输待传输内容的数据单元。
可选地,信息获取单元,用于通过所述会话层从所述目标终端设备接收对所述待传输内容的性能要求信息;或者由所述会话层基于所述待传输内容的类型确定对所述待传输内容的性能要求信息。
可选地,负责通道确定单元,用于当通过所述会话层确定所述第一传输通道和所述第二传输通道的网络采样结果均满足所述性能要求信息,且所述第一传输通道的网络采样结果与所述性能要求信息最匹配,则将所述第一传输通道作为所述待传输内容的负责通道。
可选地,待传输内容包括视频,数据单元划分模块1100,包括:
数据大小确定单元,用于在会话层确定视频的视频帧大小和视频的数据包大小;
划分粒度确定单元,用于将视频帧大小与数据包大小之中的最小值作为划分粒度;
划分单元,用于在会话层根据划分粒度将视频划分为多个数据单元。
可选地,数据单元分发模块1300,用于由所述会话层基于所述数据单元的传输状态和重要性标识,选择向所述第二传输通道分发的数据单元。
可选地,数据单元分发模块1300,包括:
传输状态识别单元,用于由会话层基于数据单元的传输状态识别出目标数据单元,所述目标数据单元为第一传输通道传输未成功的数据单元;
重要性识别单元,用于由会话层识别目标数据单元的重要性标识;
分发单元,用于当目标数据单元的重要性标识为第一标识时,会话层将目标数据单元分发给第二传输通道;当目标数据单元的重要性标识为第二标识时,不向第二传输通道分发目标数据单元。
可选地,数据传输装置还可以包括:
通道切换模块,用于将负责通道从第一传输通道切换到传输协议不同的第二传输通道;
通道切换模块,包括:
采样单元,用于通过会话层对第一传输通道进行网络采样,得到第一传输通道的网络采样结果;
通道切换单元,用于当网络采样结果满足预设切换条件时,由会话层将待传输内容的负责通道从第一传输通道切换到第二传输通道。
可选地,采样单元,具体用于通过会话层对第一传输通道中堆积的数据单元的数量、丢包率和网络往返延迟RTT进行采样,得到第一传输通道的网络采样结果;
预设切换条件包括以下任一种条件或者多种条件的组合:
第一条件:第一传输通道中堆积的数据单元的数量超过预设数量;
第二条件:第一传输通道的丢包率达到预设比率;
第三条件:RTT超过预设时长。
可选地,数据传输装置还包括:
通道建立模块,用于在所述传输层与所述目标终端设备之间建立所述第一传输通道和所述第二传输通道。
本申请实施例提供的数据装置可以应用于终端设备或者服务器,所述待传输内容为多媒体数据。可选地,所述服务器为云视频服务器,所述多媒体数据为云视频。
如本申请所公开的数据传输方法或装置,其中所涉及的服务器可与其他服务器组成为一区块链,而服务器为区块链上的节点。
由此可见,在传输层建立了与目标终端设备相连的第一传输通道和第二传输通道,且两通道采用不同的传输协议。向目标终端设备传输待传输内容之前,在会话层将待传输内容划分成多个数据单元,由会话层对传输待传输内容的负责通道进行切换决策。当会话层将负责通道从第一传输通道切换为第二传输通道时,会话层将数据单元分发给第二传输通道,由第二传输通道具体向目标终端设备发送会话层所分发的数据单元。由于两个传输通道的传输协议不同,且由会话层负责切分和分发数据单元,能够脱离传输协议固有的数据序列号空间的限制和制约,便于会话层自主管理和分发数据,因此数据传输不受某一传输 协议的同一序列空间的约束,使传输自由度得到提升,也有效改善了数据传输服务质量,使目标终端对应的用户得以更加流畅地体验传输的内容。此外,多个通道的设计也能够提升数据传输的可靠性。
图11是本申请实施例提供的一种服务器结构示意图,该服务器900用于传输数据。服务器900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)922(例如,一个或一个以上处理器)和存储器932,一个或一个以上存储应用程序942或数据944的存储介质930(例如一个或一个以上海量存储设备)。其中,存储器932和存储介质930可以是短暂存储或持久存储。存储在存储介质930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器922可以设置为与存储介质930通信,在服务器900上执行存储介质930中的一系列指令操作。
服务器900还可以包括一个或一个以上电源926,一个或一个以上有线或无线网络接口950,一个或一个以上输入输出接口958,和/或,一个或一个以上操作系统941,例如Windows Server TM,Mac OS X TM,Unix TM,Linux TM,FreeBSD TM等等。
上述实施例中由服务器所执行的步骤可以基于该图11所示的服务器结构。
其中,CPU 922用于执行如下步骤:
在会话层将待传输内容划分为多个数据单元,所述待传输内容用于向目标终端设备传输;
以第一传输通道作为所述待传输内容的负责通道,向目标终端设备传输所述会话层分发的所述数据单元;
当由所述会话层将所述待传输内容的负责通道从所述第一传输通道切换到传输协议不同的第二传输通道时,由所述会话层向所述第二传输通道分发数据单元;所述第一传输通道和所述第二传输通道在传输层采用不同的传输协议;
以所述第二传输通道向所述目标终端设备传输所述会话层分发的数据单元。
本申请实施例还提供了另一种用于数据传输的终端设备,如图12所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端可以为包括手机、平板电脑、个人数字助理(英文全称:Personal Digital Assistant,英文缩写:PDA)、销售终端(英文全称:Point of Sales,英文缩写:POS)、车载电脑等任意终端设备,以终端为手机为例:
图12示出的是与本申请实施例提供的终端相关的手机的部分结构的框图。参考图12,手机包括:射频(英文全称:Radio Frequency,英文缩写:RF)电路1010、存储器1020、输入单元1030、显示单元1040、传感器1050、音频电路1060、无线保真(WiFi)模块1070、处理器1080、以及电源1090等部件。本领域技术人员可以理解,图12中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图12对手机的各个构成部件进行具体的介绍:
RF电路1010可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下 行信息接收后,给处理器1080处理;另外,将设计上行的数据发送给基站。
存储器1020可用于存储软件程序以及模块,处理器1080通过运行存储在存储器1020的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。
输入单元1030可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1030可包括触控面板1031以及其他输入设备1032。
显示单元1040可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1040可包括显示面板1041。
手机还可包括至少一种传感器1050,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1041的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1041和/或背光。
音频电路1060、扬声器1061,传声器1062可提供用户与手机之间的音频接口。
WiFi属于短距离无线传输技术,手机通过WiFi模块1070可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。
处理器1080是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1020内的软件程序和/或模块,以及调用存储在存储器1020内的数据,执行手机的各种功能和处理数据。
手机还包括给各个部件供电的电源1090(比如电池)。
在本申请实施例中,该终端所包括的处理器1080还具有以下功能:
在会话层将待传输内容划分为多个数据单元,所述待传输内容用于向目标终端设备传输;
以第一传输通道作为所述待传输内容的负责通道,向目标终端设备传输所述会话层分发的所述数据单元;
当由所述会话层将所述待传输内容的负责通道从所述第一传输通道切换到传输协议不同的第二传输通道时,由所述会话层向所述第二传输通道分发数据单元;所述第一传输通道和所述第二传输通道在传输层采用不同的传输协议;
以所述第二传输通道向所述目标终端设备传输所述会话层分发的数据单元。
本申请实施例还提供一种计算机可读存储介质,用于存储程序代码,该程序代码用于执行前述各个实施例所述的一种数据传输方法中的任意一种实施方式。
本申请实施例还提供一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行前述各个实施例所述的一种数据传输方法中的任意一种实施方式。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组 件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-Only Memory,英文缩写:ROM)、随机存取存储器(英文全称:Random Access Memory,英文缩写:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (16)

  1. 一种数据传输方法,所述方法由计算机设备执行,所述方法包括:
    在会话层将待传输内容划分为多个数据单元,所述待传输内容用于向目标终端设备传输;
    以第一传输通道作为所述待传输内容的负责通道,向目标终端设备传输所述会话层分发的所述数据单元;
    当由所述会话层将所述待传输内容的负责通道从所述第一传输通道切换到第二传输通道时,由所述会话层向所述第二传输通道分发所述数据单元;所述第一传输通道和所述第二传输通道在传输层采用不同的传输协议;
    以所述第二传输通道向所述目标终端设备传输所述会话层分发的所述数据单元。
  2. 根据权利要求1所述的方法,所述方法还包括:
    通过所述会话层获取对所述待传输内容的性能要求信息;
    根据分别对所述第一传输通道和所述第二传输通道的网络采样结果,由所述会话层从所述第一传输通道和所述第二传输通道中确定出网络采样结果满足所述性能要求信息的传输通道作为所述负责通道。
  3. 根据权利要求2所述的方法,所述通过所述会话层获取对所述待传输内容的性能要求信息,包括:
    通过所述会话层从所述目标终端设备接收对所述待传输内容的性能要求信息;或者,
    由所述会话层基于所述待传输内容的类型确定对所述待传输内容的性能要求信息。
  4. 根据权利要求2所述的方法,所述根据分别对所述第一传输通道和所述第二传输通道的网络采样结果,由所述会话层从所述第一传输通道和所述第二传输通道中确定出网络采样结果满足所述性能要求信息的传输通道作为所述负责通道,包括:
    当通过所述会话层确定所述第一传输通道和所述第二传输通道的网络采样结果均满足所述性能要求信息,且所述第一传输通道的网络采样结果与所述性能要求信息最匹配,则将所述第一传输通道作为所述待传输内容的负责通道。
  5. 根据权利要求1所述的方法,所述待传输内容包括视频,所述在会话层将待传输内容划分为多个数据单元,包括:
    在所述会话层确定所述视频的视频帧大小和所述视频的数据包大小;
    将所述视频帧大小与所述数据包大小之中的最小值作为所述划分粒度;
    在所述会话层根据所述划分粒度将所述视频划分为多个数据单元。
  6. 根据权利要求1所述的方法,所述由所述会话层向所述第二传输通道分发数据单元,包括:
    由所述会话层基于所述数据单元的传输状态和重要性标识,选择向所述第二传输通道分发的数据单元。
  7. 根据权利要求6所述的方法,所述由所述会话层基于所述数据单元的传输状态和重要性标识,选择向所述第二传输通道分发的数据单元,包括:
    由所述会话层基于所述数据单元的传输状态识别出目标数据单元,所述目标数据单元 为所述第一传输通道传输未成功的数据单元;
    由所述会话层识别所述目标数据单元的重要性标识;
    当所述目标数据单元的重要性标识为第一标识时,由所述会话层将所述目标数据单元分发给所述第二传输通道;
    当所述目标数据单元的重要性标识为第二标识时,不向所述第二传输通道分发所述目标数据单元。
  8. 根据权利要求1所述的方法,所述方法还包括:
    通过所述会话层对所述第一传输通道进行网络采样,得到所述第一传输通道的网络采样结果;
    当所述网络采样结果满足预设切换条件时,由所述会话层将所述负责通道从所述第一传输通道切换到所述第二传输通道。
  9. 根据权利要求8所述的方法,所述通过所述会话层对所述第一传输通道进行网络采样,得到所述第一传输通道的网络采样结果,包括:
    通过所述会话层对所述第一传输通道中堆积的数据单元的数量、丢包率和网络往返延迟RTT进行采样,得到所述第一传输通道的网络采样结果;
    所述预设切换条件包括以下任一种条件或者多种条件的组合:
    第一条件:所述第一传输通道中堆积的数据单元的数量超过预设数量;
    第二条件:所述第一传输通道的丢包率达到预设比率;
    第三条件:所述RTT超过预设时长。
  10. 根据权利要求1所述的方法,在所述以第一传输通道作为所述待传输内容的负责通道,向目标终端设备传输所述会话层分发的所述数据单元之前,所述方法还包括:
    在所述传输层与所述目标终端设备之间建立所述第一传输通道和所述第二传输通道。
  11. 根据权利要求1所述的方法,所述方法应用于服务器,所述待传输内容为多媒体数据。
  12. 根据权利要求1所述的方法,所述服务器为云视频服务器,所述多媒体数据为云视频。
  13. 一种数据传输装置,所述装置包括:
    数据单元划分模块,用于在会话层将待传输内容划分为多个数据单元,所述待传输内容用于向目标终端设备传输;
    传输模块,用于以第一传输通道作为所述待传输内容的负责通道,向目标终端设备传输所述会话层分发的所述数据单元;
    数据单元分发模块,用于当由所述会话层将所述待传输内容的负责通道从所述第一传输通道切换到第二传输通道时,由所述会话层向所述第二传输通道分发所述数据单元;所述第一传输通道和所述第二传输通道在传输层采用不同的传输协议;
    所述传输模块,还用于以所述第二传输通道向所述目标终端设备传输所述会话层分发的所述数据单元。
  14. 一种用于传输视频数据的服务器,所述服务器包括处理器以及存储器:
    所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
    所述处理器用于根据所述程序代码中的指令执行权利要求1-12任一项所述的数据传输方法。
  15. 一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行权利要求1-12任一项所述的数据传输方法。
  16. 一种包括指令的计算机程序产品,当其在计算机上运行时,使得所述计算机执行权利要求1-12任一项所述的数据传输方法。
PCT/CN2022/099987 2021-07-21 2022-06-21 一种数据传输方法、装置、服务器、存储介质及程序产品 WO2023000894A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020237033841A KR20230150878A (ko) 2021-07-21 2022-06-21 데이터 송신 방법 및 장치, 그리고 서버, 저장 매체, 및 프로그램 제품
EP22845059.9A EP4287591A1 (en) 2021-07-21 2022-06-21 Data transmission method and apparatus, and server, storage medium and program product
US18/140,169 US11924255B2 (en) 2021-07-21 2023-04-27 Data transmission method and apparatus, server, storage medium, and program product

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110827938.0A CN113572836B (zh) 2021-07-21 2021-07-21 一种数据传输方法、装置、服务器及存储介质
CN202110827938.0 2021-07-21

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/140,169 Continuation US11924255B2 (en) 2021-07-21 2023-04-27 Data transmission method and apparatus, server, storage medium, and program product

Publications (1)

Publication Number Publication Date
WO2023000894A1 true WO2023000894A1 (zh) 2023-01-26

Family

ID=78166125

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/099987 WO2023000894A1 (zh) 2021-07-21 2022-06-21 一种数据传输方法、装置、服务器、存储介质及程序产品

Country Status (5)

Country Link
US (1) US11924255B2 (zh)
EP (1) EP4287591A1 (zh)
KR (1) KR20230150878A (zh)
CN (1) CN113572836B (zh)
WO (1) WO2023000894A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116150057A (zh) * 2023-04-24 2023-05-23 北京探境科技有限公司 数据传输方法、装置、计算机设备及可读存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113572836B (zh) * 2021-07-21 2022-07-15 腾讯科技(深圳)有限公司 一种数据传输方法、装置、服务器及存储介质
CN114095451B (zh) * 2021-11-17 2024-05-21 腾讯科技(深圳)有限公司 一种数据处理方法、设备及计算机可读存储介质
CN117318071B (zh) * 2023-11-30 2024-03-15 中国电力科学研究院有限公司 一种基于高速无线传输网络的电力负荷调控系统及方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719918A (zh) * 2009-11-27 2010-06-02 北京交通大学 一种改进的适用于多连接多路径的传输方法
CN104753971A (zh) * 2013-12-25 2015-07-01 北京新媒传信科技有限公司 基于远程会议的客户端及媒体源传输方法
US20170093811A1 (en) * 2014-05-20 2017-03-30 Secret Double Octopus Ltd. Method for establishing a secure private interconnection over a multipath network
CN108604994A (zh) * 2015-11-02 2018-09-28 分散网络公司 虚拟分散联网系统和方法
CN108932948A (zh) * 2017-05-26 2018-12-04 腾讯科技(深圳)有限公司 音频数据处理方法、装置、计算机设备和计算机可读存储介质
CN110943998A (zh) * 2019-12-04 2020-03-31 腾讯科技(深圳)有限公司 一种信号传输方法、装置、设备及介质
CN111316598A (zh) * 2018-07-17 2020-06-19 华为技术有限公司 一种多屏互动方法及设备
CN113572836A (zh) * 2021-07-21 2021-10-29 腾讯科技(深圳)有限公司 一种数据传输方法、装置、服务器及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590127A (en) * 1995-05-26 1996-12-31 Lucent Technologies Inc. Multimedia conference call providing adjustable bandwidth for individual communication terminals
US6628615B1 (en) * 2000-01-18 2003-09-30 International Business Machines Corporation Two level virtual channels
US8837599B2 (en) * 2004-10-04 2014-09-16 Broadcom Corporation System, method and apparatus for clean channel change
CN104918125A (zh) * 2015-05-19 2015-09-16 乐视致新电子科技(天津)有限公司 一种频道的切换方法和装置
CN105450539A (zh) * 2015-12-03 2016-03-30 山东胜开电子科技有限公司 一种支持多模网络协议的传输协议实现方法
KR102515269B1 (ko) * 2016-03-05 2023-03-30 삼성전자주식회사 전자장치에서의 비디오 스트리밍 장치 및 방법
CN108810177A (zh) * 2018-08-27 2018-11-13 优视科技新加坡有限公司 数据传输方法及其装置
CN109996097B (zh) * 2019-03-12 2022-01-04 广州虎牙信息科技有限公司 一种投屏方法、系统及存储装置
CN110099403B (zh) * 2019-05-17 2022-07-19 腾讯科技(深圳)有限公司 一种数据传输方法、装置、设备及存储介质
CN111770140A (zh) * 2020-06-09 2020-10-13 成都中云天下科技有限公司 一种通信方法、用户设备及代理服务器集群
CN111970334A (zh) * 2020-07-30 2020-11-20 杭州超级科技有限公司 基于tcp的数据传输方法、装置、电子设备及介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719918A (zh) * 2009-11-27 2010-06-02 北京交通大学 一种改进的适用于多连接多路径的传输方法
CN104753971A (zh) * 2013-12-25 2015-07-01 北京新媒传信科技有限公司 基于远程会议的客户端及媒体源传输方法
US20170093811A1 (en) * 2014-05-20 2017-03-30 Secret Double Octopus Ltd. Method for establishing a secure private interconnection over a multipath network
CN108604994A (zh) * 2015-11-02 2018-09-28 分散网络公司 虚拟分散联网系统和方法
CN108932948A (zh) * 2017-05-26 2018-12-04 腾讯科技(深圳)有限公司 音频数据处理方法、装置、计算机设备和计算机可读存储介质
CN111316598A (zh) * 2018-07-17 2020-06-19 华为技术有限公司 一种多屏互动方法及设备
CN110943998A (zh) * 2019-12-04 2020-03-31 腾讯科技(深圳)有限公司 一种信号传输方法、装置、设备及介质
CN113572836A (zh) * 2021-07-21 2021-10-29 腾讯科技(深圳)有限公司 一种数据传输方法、装置、服务器及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LI GUODONG, LI KAI, ​​LI JUN, LIU CHANG′AN: "Primary Path Automatic Handover Based on Comprehensive Performance Evaluation Method", HUAZHONG KEJI DAXUE XUEBAO (ZIRAN KEXUE BAN)/JOURNAL OF HUAZHONG UNIVERSITY OF SCIENCE AND TECHNOLOGY (NATURAL SCIENCE EDITION), HUAZHONG KEJI DAXUE, CN, vol. 39, no. II, 15 November 2011 (2011-11-15), CN , pages 235 - 238, XP093026637, ISSN: 1671-4512, DOI: 10.13245/j.hust.2011.s2.065 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116150057A (zh) * 2023-04-24 2023-05-23 北京探境科技有限公司 数据传输方法、装置、计算机设备及可读存储介质
CN116150057B (zh) * 2023-04-24 2023-11-03 北京探境科技有限公司 数据传输方法、装置、计算机设备及可读存储介质

Also Published As

Publication number Publication date
US11924255B2 (en) 2024-03-05
CN113572836A (zh) 2021-10-29
EP4287591A1 (en) 2023-12-06
US20230269281A1 (en) 2023-08-24
KR20230150878A (ko) 2023-10-31
CN113572836B (zh) 2022-07-15

Similar Documents

Publication Publication Date Title
WO2023000894A1 (zh) 一种数据传输方法、装置、服务器、存储介质及程序产品
CN112437122B (zh) 通信方法、装置、计算机可读介质及电子设备
CN107743698B (zh) 用于多路径媒体传递的方法和装置
CN111937364A (zh) 无线网络系统中处理数据路径创建的方法和系统
US20230083441A1 (en) Managing subpacket transmission and reception for advanced interactive services
CN112804710B (zh) 数据传输方法、装置、计算机可读介质及电子设备
CN112291366A (zh) 数据传输方法、装置、存储介质及电子设备
JP2022501899A (ja) データ伝送方法、装置、コンピュータ読み取り可能な媒体および電子デバイス
CN112787945B (zh) 数据传输方法、装置、计算机可读介质及电子设备
US20150271226A1 (en) Transport accelerator implementing a multiple interface architecture
KR20020010913A (ko) 통신 네트워크에서의 방법 및 장치
US8973074B2 (en) Method and system for isochronous communication in audio/video networks
US20070160048A1 (en) Method for providing data and data transmission system
KR20230058493A (ko) 데이터 전송 방법 및 장치, 컴퓨터가 판독 가능한 저장 매체, 전자 디바이스 그리고 컴퓨터 프로그램 제품
CN113747203A (zh) 一种视频信息传输方法、装置、电子设备及存储介质
CN107251487B (zh) 网络中的带宽分发方法、设备及计算机可读存储介质
CN112333690B (zh) 数据传输方法、装置、存储介质、终端及网络接入点设备
CN112398754B (zh) 数据传输方法、装置、介质、电子设备及网络接入设备
US9003466B2 (en) Method and system for isochronous data stream management in high speed audio/video networks
US11671487B1 (en) Port prediction for peer-to-peer communications
JP2021527351A (ja) ネットワーク容量に制約のあるシナリオにおける共同メディア制作のためのネットワーク制御上りリンクメディア伝送
WO2015156476A1 (ko) 청크 기반의 끊김 없는 스트림 송수신 장치 및 그 방법
CN114363676A (zh) 视频流传输方法、装置、设备及介质
CN111615170B (zh) 一种数据传输方法及系统
US20140244798A1 (en) TCP-Based Weighted Fair Video Delivery

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: 22845059

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2022845059

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2022845059

Country of ref document: EP

Effective date: 20230831

ENP Entry into the national phase

Ref document number: 20237033841

Country of ref document: KR

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 1020237033841

Country of ref document: KR

NENP Non-entry into the national phase

Ref country code: DE