WO2022184157A1 - 多路径聚合调度方法及电子设备 - Google Patents

多路径聚合调度方法及电子设备 Download PDF

Info

Publication number
WO2022184157A1
WO2022184157A1 PCT/CN2022/079181 CN2022079181W WO2022184157A1 WO 2022184157 A1 WO2022184157 A1 WO 2022184157A1 CN 2022079181 W CN2022079181 W CN 2022079181W WO 2022184157 A1 WO2022184157 A1 WO 2022184157A1
Authority
WO
WIPO (PCT)
Prior art keywords
path
network packets
network
client
order
Prior art date
Application number
PCT/CN2022/079181
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 EP22762619.9A priority Critical patent/EP4277229A1/en
Publication of WO2022184157A1 publication Critical patent/WO2022184157A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • H04L45/245Link aggregation, e.g. trunking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1854Scheduling and prioritising arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • H04L45/243Multipath using M+N parallel active paths
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • 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
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0097Relays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related

Definitions

  • the present application relates to the field of electronic technologies, and in particular, to a multi-path aggregation scheduling method and an electronic device.
  • AIoT artificial intelligence & internet of things
  • Electronic devices such as smart wearable devices, smart home devices, and mobile terminals can already realize data interaction through wireless networks.
  • the communication resources that can be used in the space are limited. For example, when multiple devices access the wireless network provided by the same access device, the multiple devices need to compete for limited wireless air interface resources for data interaction. After the electronic device fails to compete for wireless air interface resources, the electronic device temporarily stores the data to be sent locally, and waits for the next competition to succeed.
  • a feasible solution is: when the protocol stack of the client supports the multipath transmission control protocol (MPTCP), the services on the client can be When transferring data to the server over multiple paths.
  • MPTCP multipath transmission control protocol
  • P a when the probability of a path being blocked is P a , if the service on the client sends exactly the same data to the server through M mutually independent paths, the probability of data transmission blocking is Greatly reduces the impact of single path congestion.
  • MPTCP uses multiple paths to increase the robustness of transmission and reduce the probability of data congestion, it does not use multiple paths to increase the rate of data transmission and does not make full use of multi-path resources.
  • An embodiment of the present application provides a multi-path aggregation scheduling method, the method includes: a protocol stack on a client distributes network packets to different paths in a specific order, so that the network packets sent later on a certain path are The packet can be sent first on a certain other path, thereby improving the transmission rate of network packets.
  • the present application provides a multi-path aggregation scheduling method, the method includes: N paths exist between a client and a server, the N paths include a first path and a second path, and N is greater than or equal to an integer of 2; the client sends M network packets on the first path in the first order, where M is an integer greater than or equal to 2; the client segment sends the M network packets on the second path in the second order packets, the first order is different from the second order.
  • the client can send the same multiple network packets in different orders on different paths, and there must be at least one network packet that arrives at the server first on the second path, thereby improving the network packet.
  • the transmission rate of the text Secondly, since the transmission order of network packets on different paths is different, from a statistical point of view, it helps to improve the average transmission rate of M network packets.
  • the method further includes: the N paths further include a third path; the client sends the M network packets on the third path in a third order , the third order is different from the first order, and the third order is different from the second order.
  • the transmission order of network packets on different paths is different, so there must be at least one network packet.
  • One of the multiple paths preferentially reaches the server, thereby increasing the transmission rate of the network packets.
  • the transmission order of network packets on different paths is different from each other, from a statistical point of view, it helps to improve the average transmission rate of M network packets.
  • the distance between the first order and the second order is the largest.
  • the network packets sent later on the first path will be sent earlier on the second path, and the network packets sent earlier on the first path will be sent earlier.
  • the packets are sent later on the second path, so that the average transmission rate of multiple network packets is equal to the sum of the transmission rates of the two paths.
  • the cross-correlation of the first order and the second order is minimal.
  • network packets sent later on the first path will be sent earlier on the second path, and packets sent earlier on the first path will be sent earlier.
  • the network packets are sent later on the second path, so that the average transmission rate of multiple network packets is equal to the sum of the transmission rates of the two paths.
  • the distance sum between the first order, the second order, and the third order is the largest.
  • the average transmission rate of multiple network packets is equal to the sum of the transmission rates of multiple paths.
  • the sum of the cross-correlations between the first order, the second order, and the third order is the smallest.
  • the average transmission rate of multiple network packets is equal to the sum of the transmission rates of multiple paths.
  • the method further includes: after the client terminal receives the confirmation packet, the client terminal deletes and stops sending the M network packets.
  • the server may send an acknowledgement packet to the client, so that the client deletes and stops sending the M network packets, thereby reducing redundant sending of the client.
  • the M network packets form a data block, and the data block is used to complete a specific function.
  • a data block with multiple network packets may be used as a basic processing unit, so that the increased average transmission rate of network packets can directly improve user experience.
  • the M network packets are not repeated.
  • the M network packets may not be configured with duplicate network packets.
  • the present application provides another method for multi-path aggregation scheduling.
  • the method includes: N paths exist between a client and a server, the N paths include a first path and a second path, and N is greater than an integer equal to 2; the client sends M network packets on the first path, and the M network packets include the first network packet; the client segment sends the M network packets on the second path ; the first network packet is located in the first half of the M network packets on the first path; the first network packet is located in the second half of the M network packets on the second path.
  • the network packets sent by the client may not determine the order in which multiple network packets are sent on different paths. In the process of sending network packets, it is ensured that there is at least one network packet on the first path. Send first and send later on the second path.
  • the M network packets further include a second network packet; the second network packet is located at the top 1 of the M network packets on the first path /N segment; the second network packet is located in the last (N-1)/N segment in the M network packets on the second path.
  • the one or more network packets when at least one network packet is located in the first 1/N segment and the next network packet is located in the last (N-1)/N segment, can be The transmission rate of the one or more network packets is improved; secondly, in a statistical sense, the average transmission rate of the M network packets is improved.
  • the M network packets further include a second network packet; the second network packet is located at the top 1 of the M network packets on the first path /N segment; the second network packet is located in the last 1/N segment of the M network packets on the second path.
  • the transmission rate may be equivalent It depends on the transmission rate on the faster path; secondly, in a statistical sense, the average transmission rate of M network packets is equal to the sum of the two paths.
  • the M network packets form at least one data block, and the data block is used to complete a specific function.
  • a data block with multiple network packets may be used as a basic processing unit, so that the increased average transmission rate of network packets can directly improve user experience.
  • the M network packets are not repeated.
  • the M network packets may not be configured with duplicate network packets.
  • the method further includes: after the client terminal receives the confirmation packet, the client terminal deletes and stops sending the M network packets.
  • the server may send an acknowledgement packet to the client, so that the client deletes and stops sending the M network packets, thereby reducing redundant sending of the client.
  • the present application provides another method for multi-path aggregation scheduling.
  • the method includes: N paths exist between a client and a server, the N paths include a first path and a second path, and N is greater than An integer equal to 2; the client repeatedly sends M network packets on the N paths; the difference between the first K network packets on the first path and the first L network packets on the second path There is no repeated network packet, the sum of K and L is equal to M, the K is a positive integer, and the L is a positive integer.
  • the client repeatedly sends M network packets on the two paths.
  • the multiple network packets sent preferentially on the first path and the multiple network packets sent earlier on the second path When complete M network packets can be formed between the packets, in a statistical sense, the transmission rate of the M network packets is equal to the sum of the transmission rates of the two paths.
  • the arrangement order of the first K network packets on the first path is the reverse order of the arrangement order of the last K network packets on the second path.
  • the order of the M network packets is in reverse order.
  • the transmission rate is equal to the sum of the transmission rates of the two paths.
  • the N paths further include a third path; the top R network packets on the first path, the top S packets on the second path There is no repetition between the network packet and the first T network packets on the third path, the sum of the R, S, and T is equal to M, the R is a positive integer, the S is a positive integer, and the T is a positive integer.
  • the average transmission rate of M network packets can be made equal to the sum of the transmission rates of the multiple paths.
  • the M network packets form at least one data block, and the data block is used to complete a specific function.
  • a data block with multiple network packets may be used as a basic processing unit, so that the increased average transmission rate of network packets can directly improve user experience.
  • the M network packets are not repeated.
  • the M network packets may not be configured with duplicate network packets.
  • the method further includes: after the client terminal receives the confirmation packet, the client terminal deletes and stops sending the M network packets.
  • the server may send an acknowledgement packet to the client, so that the client deletes and stops sending the M network packets, thereby reducing redundant sending of the client.
  • the present application provides another method for multi-path aggregation scheduling.
  • the method includes: N paths exist between a client and a server, the N paths include a first path and a second path, and N is greater than An integer equal to 2; when the client does not receive the confirmation message sent by the server, the client sends M network messages in the first order, and the client sends the second network message in the second order ; After the client receives the confirmation message sent by the server, the client stops sending the M network messages on the N paths; the network message is used to confirm that the server has received the M network messages message.
  • the client sends M network packets in different sequences on different paths, which can improve the average transmission rate of the M network packets.
  • the method further includes: the N paths further include a third path; the client sends the M network packets on the third path in a third order , the third order is different from the first order, and the third order is different from the second order.
  • the transmission order of network packets on different paths is different, so there must be at least one network packet.
  • One of the multiple paths preferentially reaches the server, thereby increasing the transmission rate of the network packets.
  • the transmission order of network packets on different paths is different from each other, from a statistical point of view, it helps to improve the average transmission rate of M network packets.
  • the distance between the first order and the second order is the largest.
  • the network packets sent later on the first path will be sent earlier on the second path, and the network packets sent earlier on the first path will be sent earlier.
  • the packets are sent later on the second path, so that the average transmission rate of multiple network packets is equal to the sum of the transmission rates of the two paths.
  • the cross-correlation of the first order and the second order is minimal.
  • network packets sent later on the first path will be sent earlier on the second path, and packets sent earlier on the first path will be sent earlier.
  • the network packets are sent later on the second path, so that the average transmission rate of multiple network packets is equal to the sum of the transmission rates of the two paths.
  • the distance sum between the first order, the second order, and the third order is the largest.
  • the average transmission rate of multiple network packets is equal to the sum of the transmission rates of multiple paths.
  • the sum of the cross-correlations between the first order, the second order, and the third order is the smallest.
  • the average transmission rate of multiple network packets is equal to the sum of the transmission rates of multiple paths.
  • the M network packets form a data block, and the data block is used to complete a specific function.
  • a data block with multiple network packets may be used as a basic processing unit, so that the increased average transmission rate of network packets can directly improve user experience.
  • the M network packets are not repeated.
  • the M network packets may not be configured with duplicate network packets.
  • the present application provides an electronic device comprising: one or more processors and a memory; the memory is coupled to the one or more processors, and the memory is used to store computer program codes, the computer program
  • the code includes computer instructions that the one or more processors invoke to cause the electronic device to perform the first aspect, the second aspect, the third aspect, and any of the first, second, and third aspects possible implementation of the method described.
  • an embodiment of the present application provides a chip, the chip is applied to an electronic device, the chip includes one or more processors, and the processor is used for invoking computer instructions to cause the electronic device to execute the first aspect, the first The method described in the second aspect, the third aspect, and any possible implementation manner of the first aspect, the second aspect, and the third aspect.
  • an embodiment of the present application provides a computer program product, which, when running on a computer, enables the computer to implement the first aspect, the second aspect, the third aspect and the first aspect, the second aspect, and the third aspect.
  • an embodiment of the present application provides a computer-readable storage medium, where instructions are stored in the computer-readable storage medium, and when the computer-readable storage medium runs on a computer, the computer executes the first aspect, the second aspect, the third aspect, and the third Aspects and methods described in any possible implementations of the first aspect, the second aspect, and the third aspect.
  • the electronic device provided in the fifth aspect, the chip provided in the sixth aspect, the computer program product provided in the seventh aspect, and the computer storage medium provided in the eighth aspect are all used to execute the methods provided by the embodiments of the present application. Therefore, for the beneficial effects that can be achieved, reference may be made to the beneficial effects in the corresponding method, which will not be repeated here.
  • 1 is an exemplary schematic diagram of a client communicating with a server through multiple paths
  • FIG. 2 is an exemplary schematic diagram of a multipath communication scenario involved in the present application
  • FIG. 3 is an exemplary schematic diagram of the relationship between the communication performance and user experience of the wireless channel involved in the present application
  • FIG. 4A is an exemplary schematic diagram of the packaging process involved in the present application.
  • FIG. 4B is an exemplary schematic diagram of the packaging process involved in the present application.
  • FIG. 5 is an exemplary schematic diagram of network packet changes during the data transmission process involved in the application
  • Fig. 6 is a kind of data sending method of multi-path aggregation involved in this application.
  • Fig. 7 is another kind of data sending method of multi-path aggregation involved in this application.
  • FIG. 8A and FIG. 8B are an exemplary schematic diagram of the communication performance comparison of the method shown in FIG. 7 under different conditions;
  • FIG. 9A to FIG. 9B are an exemplary schematic diagram of a multi-path aggregation scheduling method provided by an embodiment of the present application.
  • FIG. 9C is an exemplary schematic diagram of implementing the multi-path aggregation scheduling method in the embodiment of the present application in the scenario shown in FIG. 3;
  • FIG. 10 is an exemplary schematic diagram of a protocol stack architecture for providing a multipath aggregation scheduling method according to an embodiment of the present application
  • FIG. 11 is an exemplary schematic diagram of a multipath aggregation scheduling method provided by an embodiment of the present application.
  • FIG. 12A is an exemplary schematic diagram of a network packet allocation method provided by an embodiment of the present application.
  • FIG. 12B is another exemplary schematic diagram of a network packet allocation method provided by an embodiment of the present application.
  • FIG. 13A and FIG. 13B are an exemplary schematic diagram of a data matrix provided by an embodiment of the present application.
  • FIG. 14A and FIG. 14B are an exemplary schematic diagram of a network packet distribution manner provided by an embodiment of the present application.
  • 15A is an exemplary schematic diagram of a method for implementing multi-path aggregation scheduling in a far-field scenario provided by an embodiment of the present application;
  • FIG. 15B is an exemplary schematic diagram of implementing a multi-path aggregation scheduling method in a near-field scenario provided by an embodiment of the present application;
  • 16 is a block diagram of an exemplary hardware structure of an electronic device provided by an embodiment of the present application.
  • FIG. 17 is an exemplary software structural block diagram of the electronic device 100 provided by the embodiment of the present application.
  • FIG. 18 is another exemplary software structural block diagram of the electronic device 100 provided by the embodiment of the present application.
  • first and second are only used for descriptive purposes, and should not be construed as implying or implying relative importance or implying the number of indicated technical features. Therefore, the features defined as “first” and “second” may explicitly or implicitly include one or more of the features. In the description of the embodiments of the present application, unless otherwise specified, the “multiple” The meaning is two or more.
  • the client is the endpoint that initiates the connection
  • the server is the endpoint that accepts the connection.
  • the client is the endpoint that sends data
  • the server is the endpoint that receives data.
  • the client/server can be a terminal device, such as a mobile phone, a tablet computer, a virtual reality terminal device, an augmented reality terminal device, a wireless terminal in industrial control, a wireless terminal in unmanned driving, a wireless terminal in telemedicine, Wireless terminals in smart grids, wireless terminals in transportation security, wireless terminals in smart cities, wireless terminals in smart homes, wearable devices, vehicle-mounted devices, etc.
  • a terminal device such as a mobile phone, a tablet computer, a virtual reality terminal device, an augmented reality terminal device, a wireless terminal in industrial control, a wireless terminal in unmanned driving, a wireless terminal in telemedicine, Wireless terminals in smart grids, wireless terminals in transportation security, wireless terminals in smart cities, wireless terminals in smart homes, wearable devices, vehicle-mounted devices, etc.
  • the server may serve the client, the server may provide resources to the client, save the client data, etc., and the server may also be called a server.
  • connection is a state shared between the client and the server.
  • Data flow over a connection can be bidirectional or unidirectional.
  • the data can be transmitted to the server through multiple paths, thereby improving the transmission performance between the client and the server, such as reducing delay and improving throughput, etc. .
  • the multi-path transmission protocol may include MPTCP protocol, multi-path fast UDP network connection protocol (multipath quick udp internet connection, MPQUIC) and the like.
  • the path may have multiple identifiers.
  • the path quadruple may be used as the identifier to distinguish different paths, or the path ID may be used as the identifier to distinguish different paths, which is not limited herein.
  • One representation of the path quadruple is [source IP, port, destination IP, port].
  • the following takes the content shown in FIG. 1 as an example to exemplarily introduce a process in which the client communicates with the server through multiple paths.
  • FIG. 1 is an exemplary schematic diagram of a client communicating with a server through multiple paths.
  • the client can be a mobile terminal, such as a mobile phone.
  • the mobile phone communicates with the server through the base station and the router at the same time.
  • the IP address allocated by the base station to the mobile phone is IP1
  • the IP address allocated by the router to the mobile phone is IP2
  • the source port on the mobile phone is 80
  • the IP address of the server is IP3, and the target port on the server is 1314.
  • the mobile phone can communicate with the server through the first physical path: (IP1, 80, IP3, 1314) and the second physical path: (IP2, 80, IP3, 1314).
  • the mobile phone can enable cellular mobile communication function (5G and/or 4G) and WiFi function at the same time to realize multi-path transmission.
  • cellular mobile communication function (5G and/or 4G) and WiFi function at the same time to realize multi-path transmission.
  • the client has dual-cellular mobile communication capabilities, it obtains different source IPs through the 4G base station and 5G base station respectively, thereby realizing multi-path transmission.
  • the client can access different frequency bands of the same router or different frequency bands of different routers at the same time, for example, the client can access the 2.4G frequency band and 5G frequency band of the router at the same time, thereby realizing multi-path transmission. ; Or, the client accesses the 2.4G frequency band of router A and the 5G frequency band of router B at the same time, thereby realizing multi-path transmission; or, the client simultaneously accesses the 5G high-frequency frequency band and 5G low-frequency frequency band of the router, thereby realizing multi-path transmission. Alternatively, the client can simultaneously access the 5G high-frequency band of router A and the 5G low-frequency band of router B to realize multi-path transmission.
  • the client can establish multiple paths with the server, not limited to two paths.
  • the client has dual cellular mobile communication capabilities and dual WiFi capabilities, and the mobile phone simultaneously accesses the 4G base station, 5G base station, 2.4G frequency band and 5G frequency band of the router, thereby realizing four-path transmission.
  • the client can also use the near-field communication service for data interaction.
  • the short-range communication service may include: Bluetooth, Apple Wireless Direct Link (AWDL), HiLink, ZigBee, and the like.
  • the following takes the content shown in FIG. 2 as an example to exemplarily introduce the process in which the client communicates with the server through multiple paths in the P2P scenario.
  • FIG. 2 is an exemplary schematic diagram of a multi-path communication scenario involved in this application.
  • the mobile phone establishes a connection with the projector through Bluetooth and a router respectively.
  • path 1 is based on the connection provided by the router, and the data flow direction on path 1 can be that the mobile phone sends data to the router, and the router forwards the data to the projector.
  • the path 2 is based on the Bluetooth connection, and the data flow on the path 2 can be the mobile phone sending data to the projector.
  • a connection can carry at least one path.
  • the path can be determined by connection or unidirectional flow.
  • a wireless channel refers to a channel that uses a wireless signal as a transmission carrier to transmit data.
  • the frequency point and the bandwidth can be used to describe the wireless channel, and the frequency point and the bandwidth jointly determine the frequency range of the signal transmitted on the channel.
  • the available frequency bands of the wireless channel include: Industrial Scientific and Medical (ISM) frequency band and unlicensed frequency band.
  • ISM Industrial Scientific and Medical
  • the communication performance of the wireless channel may include channel delay, communication rate, and the like.
  • the channel delay is the time it takes for the wireless channel to transmit data from one end to the other;
  • the communication rate is the number of information bits correctly transmitted by the wireless channel in a unit time.
  • the wireless channel is located at the physical layer.
  • the OSI model can be divided into application layer, presentation layer, session layer, transport layer, network layer, data link layer and physical layer from top to bottom.
  • the communication performance of the wireless channel is time-varying, that is, the communication performance of the wireless channel cannot be accurately determined within a certain period of time or at a certain moment in the future.
  • the following takes the content shown in FIG. 3 as an example to introduce exemplarily how the communication performance of the wireless channel affects data transmission and user experience.
  • FIG. 3 is an exemplary schematic diagram of the relationship between the communication performance and user experience of the wireless channel involved in the present application.
  • the user uses a mobile phone to watch a live video at a frame rate of 60 frames per second (FPS).
  • the mobile phone establishes a connection with the router, and based on this connection, receives the video stream data sent by the server.
  • the video data is composed of a series of continuous frame picture data.
  • the server sends the video data to the mobile phone, it needs to send the data of the frames in sequence.
  • the data of one frame of picture needs to be carried by one or more network packets. For example, the data of one frame of picture needs to be carried by 3 network packets.
  • the server successfully sends three network packets carrying the first frame of picture data to the mobile phone. From 0.16 seconds to 0.32 seconds, the server successfully sends the first two of the three network packets carrying the second frame of picture data to the mobile phone. At this time, because the mobile phone does not fully receive the data of the second frame, the video will freeze. At 0.34 seconds, the mobile phone receives three network packets carrying the second frame of picture data. From 0.34 seconds to 0.5 seconds, the server successfully sends three network packets carrying the second frame of picture data to the mobile phone, and the video does not freeze at this time.
  • a business session can be the process of establishing communication for presentation layer entities or user processes and transferring data over the communication.
  • the client can combine one or more data frames of the application/service session to generate a protocol packet, and package the protocol packet into a network packet for transmission.
  • the protocol stack also called protocol stack, is a specific software implementation of a computer network protocol.
  • the process of the client/server packaging and combining the data frames generated by the application/service session into network packets can be called encapsulation.
  • the process of unpacking network packets into data frames may be called decapsulation.
  • the following takes the content shown in FIG. 4A and FIG. 4B as an example to exemplarily introduce the process of the client/server encapsulating data frames into network packets according to different protocols.
  • FIG. 4A is an exemplary schematic diagram of the packaging process involved in the present application.
  • the content shown in FIG. 4A is a process in which the client/server encapsulates data frames into network packets when the connection established between the client and the server is a wired connection.
  • the content shown in FIG. 4B is a process in which the client and the server encapsulate data into network packets when the connection established between the client and the server is a wireless connection.
  • the application/service session on the client/server continuously generates data frames, and writes the data frames into the local cache.
  • data frame 1, data frame 2, data frame 3, data frame 4 and data frame 5 are stored in the buffer on the client/server.
  • the TCP protocol stack on the client/server based on the size of the data frame, combines the data frame 1, the data frame 2, and the data frame 3 into a single TCP packet.
  • the TCP packet is packaged into an IP packet, and the IP packet is packaged into an Ethernet packet.
  • the Ethernet packet may be referred to as a network packet.
  • the protocol stack will be in the path maximum transmission unit (path maximum transmission unit, PMTU) / maximum transmission unit (maximum transmission unit, PMTU) and the remaining bandwidth allowable conditions Next, as much as possible, multiple data frames are encapsulated into one message.
  • path maximum transmission unit path maximum transmission unit, PMTU
  • maximum transmission unit maximum transmission unit
  • FIG. 4B is an exemplary schematic diagram of the packaging process involved in the present application.
  • the cache on the client/server stores data frame 1 , data frame 2 , data frame 3 , data frame 4 and data frame 5 .
  • the TCP protocol stack on the client/server based on the size of the data frame, combines the data frame 1, the data frame 2, and the data frame 3 into a single TCP packet. After the TCP packet is generated, the TCP packet is packaged into an IP packet. What is different from what is shown in FIG. 4A is that, according to the protocol complied with by the physical layer/link layer, the protocol stack on the client side packages the IP packet into an 802.11 packet.
  • the 802.11 packet may be referred to as a network packet.
  • the process of the client/server grouping and packaging one or more data frames into a network packet is called encapsulating a network packet.
  • encapsulating network packets when the client and the server establish a short-range communication service such as a Bluetooth connection, since the Bluetooth connection is not based on the TCP/UDP protocol, the client/server will combine the data frames and package them into Bluetooth.
  • the process of encapsulating network packets is called encapsulating network packets.
  • the content shown in FIG. 5 is taken as an example below to exemplarily introduce the client/server encapsulation of network packets and the transmission process of network packets in wireless networks and wired networks.
  • FIG. 5 is an exemplary schematic diagram of network packet changes during data transmission involved in the present application.
  • the mobile phone as the client sends data to the server as the server.
  • the mobile phone sends data to the base station through cellular mobile communication.
  • the network packet may be expressed in the form of an 802.11 network packet.
  • the base station After the base station receives the 802.11 network packet, it will decapsulate and encapsulate the network packet, so that the format of the network packet conforms to the format of wired network transmission; the base station can decapsulate and encapsulate the 802.11 network packet into an Ethernet network message and send the data to the server.
  • the client can assign different/same network packets to different paths for transmission, and then use multiple paths to improve the robustness of transmission Or increase the transmission rate.
  • the first method for improving the communication performance between the client and the server by using multiple paths includes:
  • the transmission delay between the client and the server is the transmission delay of the path with the smallest transmission delay among the M paths.
  • the following takes the content shown in FIG. 6 as an example to exemplarily introduce the communication performance between the client and the server when the client sends the same data through M paths.
  • FIG. 6 is a multi-path aggregation data sending method involved in the present application.
  • the client and the server transmit data through multiple paths, taking the client sending data as an example, the client can send the same data on multiple paths to improve the robustness of the transmission.
  • both the client and the server support the MPTCP protocol, and data transmission is performed between the client and the server through two paths.
  • the network packet sent by the client includes four data frames. Combining with the content shown in FIG. 3 , it can be considered that the transmission of one frame of picture can only be completed when the server successfully receives four network packets.
  • network packet 4 is not transmitted to the server due to path congestion.
  • T delay2 the delay for four network packets to be successfully transmitted and correctly read to the server
  • V 2 the average transmission rate of data on path 2
  • the delay for four network packets to be successfully transmitted and correctly read to the server is min(T delay1 , T delay2 ).
  • min() is the minimum value.
  • the rate of data transmission between the client and the server is max(V 1 , V 2 ), where max() is the maximum value.
  • the method shown in FIG. 6 is equivalent to performing data transmission only on the path with better communication performance.
  • the second method for improving the communication performance between the client and the server by using multipath includes:
  • the server After the client and the server establish a connection, when the protocol stack between the client and the service store supports the MPTCP protocol, it can be considered that there are M available paths between the client and the server. Before the server sends data to the client, the communication performance of different paths needs to be evaluated. The server assigns the data to be sent to different paths according to the evaluation results.
  • the following takes the content shown in FIG. 7 as an example to exemplarily introduce when the server allocates data to M available paths for transmission according to the evaluation result, so as to improve the transmission rate and robustness.
  • FIG. 7 is another multi-path aggregation data sending method involved in the present application.
  • the server Before the server sends data to the client through multiple paths, it can evaluate the communication performance of each path, and allocate the data to be sent to different paths for transmission according to the evaluation results.
  • the server evaluates the communication performance of path 1 and path 2, and predicts that the data transmission rate on path 2 will be 0.6 times that of path 1 in the future.
  • the data of one frame of picture is carried by 8 network packets, which are network packet 1 to network packet 8 respectively.
  • the server can assign network packet 1, network packet 2, network packet 3, network packet 4, and network packet 5 to path 1 for transmission; network packet 6, network packet 7.
  • the network packet 8 is allocated to path 2 for transmission.
  • the method shown in FIG. 7 may also be referred to as a method based on the minimum transmission time delay (min Round-Trip-Time, minRTT).
  • FIG. 8A and FIG. 8B are an exemplary schematic diagram of the communication performance comparison of the method shown in FIG. 7 under different conditions.
  • the data of one frame of picture can reach the client at the same time.
  • the data on path 1 is successfully sent to the client every 0.03 seconds, and the server sends all network packets 1, 2, 3, 4, and 5 at 0.15 seconds.
  • the server sends all network packets 6, 7, and 8 to the client at 0.15 seconds. client.
  • the client receives network packets 1 to 8, and can decapsulate the network packets into data frames, which are then handed over to the client's upper-layer service for processing. If the transmission rate of data on path 1 is V 1 and the transmission rate of data on path 2 is V 2 , in the situation shown in FIG. 8A , the rate of data transmission between the server and the client is V 1 +V 2 .
  • the method will reduce the data transmission rate.
  • the server successfully sends a network packet to the client on both path 1 and path 2 every 0.05 seconds end.
  • the client since the server allocates more data to path 1 for transmission, the client receives network packet 1, network packet 2, network packet 3, network packet 6, network packet 7, When the network packet 8 is received, the network packet 4 and the network packet 5 also need to be received.
  • the client/server can accurately predict the instantaneous communication performance of multiple paths when one or more message transmission moments are Packets are distributed on different paths to increase the transmission rate.
  • the client/server can predict the average transmission rate of data on different paths for a period of time, it is difficult to accurately predict the instantaneous transmission rate of data on different paths at a certain moment, and when the link layer/ When the physical layer includes a wireless channel, it is further exacerbated to predict the instantaneous transmission rate of data on the path.
  • the client/server allocates network packets according to the inaccurate data transmission rate, the data transmission rate between the client and the server will be reduced, and the data transmission rate may be lower than the method shown in Figure 6 .
  • FIG. 9A , FIG. 9B , and FIG. 9C as examples to exemplarily introduce the multi-path aggregation scheduling method provided by the present application.
  • FIG. 9A to FIG. 9B are an exemplary schematic diagram of a multi-path aggregation scheduling method provided by an embodiment of the present application.
  • multiple network packets can be arranged and sent in different orders.
  • the server sends 8 network packets carrying one frame of picture data to the client, which are network packet 1 to network packet 8 respectively.
  • Both the client and the server support the MPTCP protocol, and there are two paths for data transmission between the client and the server.
  • the server follows the order of network packet 1, network packet 2, network packet 3, network packet 4, network packet 5, network packet 6, network packet 7, and network packet 8 Allocate network packets to path 1 for transmission; correspondingly, the server follows network packet 8, network packet 7, network packet 6, network packet 5, network packet 4, network packet 3, network packet File 2 and the sequence of network message 1 Allocate network messages to path 2 for transmission.
  • the client After the client has completely received the network packets, that is, after the client has received the network packets 1 to 8, it can reply an acknowledgment (ACK) packet to the server, so that the client can stop redundant transmission.
  • ACK acknowledgment
  • the client since the transmission rate of data on path 1 is different from the transmission rate of data on path 2, the client receives network packets 1 to 5 on path 1, and receives network packets on path 2. Message 8 to Network Message 6. After receiving network packets 1 to 8, the client informs the server that it has completely received network packets 1 to 8 by sending a confirmation packet, and the server stops sending network packets on path 1. packet 6 to network packet 8, and the server will stop sending network packet 5 to network packet 1 on path 2.
  • the transmission rate of data on path 1 is V 1 and the transmission rate of data on path 2 is V 2 , in the situation shown in FIG. 8A , the rate of data transmission between the server and the client is V 1 +V 2 .
  • the multi-path aggregation scheduling method minimizes the cross-correlation of the arrangement order of network packets on different paths.
  • cross-correlation can be used to measure the correlation between two sequences. If the similarity of the two sequences is higher, the cross-correlation of the two sequences is greater; if the similarity of the two sequences is lower, the cross-correlation of the two sequences is smaller.
  • the cross-correlation of the order of transmission of network packets on different paths is smaller, for any network packet, when the transmission order of the network packet on any path is in the second half of the whole, it must be in other The transmission sequence of the packet on a certain path is in the first half of the whole.
  • Order 1 For the data sending method of multi-path aggregation shown in Fig. 6, the order of transmitting network packets on the first path in this method Order 1 is: [1, 2, 3, 4], in this method, on the second path
  • the order of transmitting network packets, Order 2 is [1, 2, 3, 4].
  • the cross-correlation between Order 1 and Order 2 is 1, and the cross-correlation is the largest.
  • the multi-path aggregation scheduling method maximizes the distance between the arrangement sequences of network packets on different paths. That is, it can be considered that the arrangement order of N network packets on different paths is a coordinate in an N-dimensional space. For example, when Order 1 is: [1, 2, 3, 4], the coordinate corresponding to Order 1 is (1, 2, 3, 4) in the four-dimensional space, then the farthest coordinate is (4, 3, 2,1), that is, Order 1 is: [4,3,2,1].
  • Order 1 is: [1, 3, 2, 4]
  • the coordinate corresponding to Order 1 is (1, 3, 2, 4) in the four-dimensional space, and the farthest coordinate is (4, 2) ,3,1), that is, Order 1 is: [4,2,3,1].
  • the order of transmitting network packets on the second path Order 2 [3,2, 4,1].
  • the order of network packets on the first path is: Reverse order of network packets on the second path. If there are multiple paths between the client and the server, it is necessary to minimize the cross-correlation sum of the arrangement order of network packets on different paths.
  • the cross-correlation of the arrangement order of network packets on different paths may be less than 1; or the distance corresponding to the arrangement order of network packets on different paths may be greater than 1.
  • the multi-path aggregation scheduling method provided by the present application does not need to predict the communication performance of different paths, which reduces the overhead of predicting the communication performance of the paths, and also avoids the negative impact caused by inaccurate prediction of the communication performance of the paths.
  • the multi-path aggregation scheduling method provided by the present application avoids redundant packet sending and saves network bandwidth.
  • FIG. 9C is an exemplary schematic diagram of implementing the multi-path aggregation scheduling method in this embodiment of the present application in the scenario shown in FIG. 3 .
  • the scenario shown in FIG. 3 is a scenario under the implementation of the multi-path aggregate data sending method shown in FIG. 6 .
  • the data transmission rate on path 1 is the same as the data transmission rate in the scenario in FIG. 3 .
  • the multi-path aggregation scheduling method provided by the embodiment of the present application is implemented. , so that network packet 2 is transmitted on path 2. As long as the transmission delay of the network packet 2 is less than 0.16 seconds, it can be guaranteed that the network packet 1, the network packet 2, and the network packet 3 are transmitted to the mobile phone within 0.16 seconds.
  • the sequence of the network packets may be the TCP sequence numbers of the network packets.
  • the order of the network packets may be the order in which the client encapsulates and obtains the network packets.
  • the protocol stack architecture of the multipath aggregation scheduling method provided by the present application is exemplarily introduced.
  • FIG. 10 is an exemplary schematic diagram of a protocol stack architecture for providing a multi-path aggregation scheduling method according to an embodiment of the present application.
  • the application program on the client After the application program on the client generates data, it sends multiple data frames to the user-mode protocol stack and the kernel-mode protocol stack through the interface.
  • the user mode protocol stack can use the L2 buffer to temporarily store multiple data frames generated by the application.
  • the data frame can be encapsulated into a network packet corresponding to the protocol.
  • the user mode protocol stack is mainly responsible for allocating the packets after the data frame is packaged to different paths, and transmitting the packets to the kernel mode protocol stack.
  • the kernel mode protocol stack After the kernel mode protocol stack receives the message, it packages it into a format suitable for transmission according to the protocol, and sends it to the server through the network card corresponding to different paths.
  • the kernel mode protocol stack may include KCP protocol/virtual local area network trunkiung protocol.
  • the user mode protocol stack may include TCP/UDP protocol, IP protocol and the like.
  • the L2 buffer, the L1 buffer, and the L0 buffer can all be obtained by application from the memory on the client.
  • path 1 can be a wireless channel provided by the 2.4GHz frequency band of WiFi
  • path 2 can be a 5G channel provided by the 5GHz frequency band of WiFi for point-to-point transmission in a P2P scenario.
  • the server receives data on the network card corresponding to different paths
  • the data on the network card is first sent to the kernel mode protocol stack for decapsulation.
  • the kernel mode protocol stack decapsulates the data initially
  • the corresponding protocol message is obtained and transmitted to the user mode protocol stack.
  • the user-mode protocol stack will continuously confirm whether eight network packets have been completely received.
  • the server can send an acknowledgement packet to the client, thereby causing the client to stop sending network packets, thereby avoiding redundant transmission.
  • the client can receive the confirmation message, it will promptly discard the network message 4, network message 5, network message 6, network message 7, and network message 8 in the L0 buffer pool; and will promptly discard the L1 Network packet 1, network packet 2, and network packet 3 in the buffer pool.
  • protocol stack of the client/server supporting the multi-path transmission protocol can implement the multi-path aggregation scheduling method provided by the present application.
  • FIG. 11 the content shown in FIG. 11 is taken as an example below, and the client sends data to the server as an example to exemplarily introduce the multi-path aggregation scheduling method provided by the present application.
  • FIG. 11 is an exemplary schematic diagram of a multi-path aggregation scheduling method provided by an embodiment of the present application.
  • Step S1103 in FIG. 11 is an optional step.
  • the multi-path aggregation scheduling method includes:
  • S1101 The application program/service session on the client generates data frames, and encapsulates the data frames into network packets.
  • the application/service session on the client in response to the user's operation, the application/service session on the client generates one or more data frames.
  • the data frame is encapsulated into a network message according to the provisions of the corresponding protocol. Step S1102 is executed.
  • the process of encapsulating the data frame into a network packet may refer to the text description in (4) Service Session and Network Packet in Terminology Explanation, which will not be repeated here.
  • the protocol stacks on the client and the server both support the multi-path transmission protocol.
  • S1102 The client distributes network packets to different paths in different orders.
  • the client can encapsulate the data frames into network packets and then distribute the network packets to different paths; or, the client can encapsulate the data frames into network packets during the process of encapsulating the data frames into network packets , the network packets have been distributed to different paths. Finish.
  • step S1103 may be performed.
  • the client Before allocating network packets to different paths, the client may know the number of currently available paths in advance according to the protocol stack. If the number of available paths is M, there are mainly two methods for distributing network packets to different paths.
  • the following takes the content shown in FIG. 12A and FIG. 12B as an example to exemplarily introduce how to allocate network packets to different paths.
  • the network packets are distributed to different paths in sequence. Since the client produces data frames in order, the network packets obtained by the client encapsulation are also in order.
  • the sequence of the network packets may be the TCP sequence number.
  • FIG. 12A is an exemplary schematic diagram of a network packet allocation method provided by an embodiment of the present application.
  • the client encapsulates and obtains network packet 1, network packet 2, network packet 3, network packet 4, network packet 5, network packet 6, network packet 7, and network packet 8 in sequence. .
  • the client when the client implements the network packet distribution method shown in Figure 12A, the client needs to encapsulate a certain number of network packets before allocating the network packets to path 2 for transmission, with a certain delay. . Although the distribution of network packets will cause a certain delay, the order of magnitude of the delay is lower than the order of magnitude of the transmission delay caused by path congestion, and can be ignored.
  • the allocation method shown in FIG. 12B can reduce the delay of the client in allocating network packets.
  • FIG. 12B is another exemplary schematic diagram of a network packet distribution method provided by an embodiment of the present application.
  • the client can deliver the network packets in the buffer L0 to the buffers L1 and L2 in time.
  • the server when the server receives network packets 1 to 8, it will reply with an acknowledgement packet to the client, and the client clears the remaining network packets 1 in buffer L1 and buffer L2. To network message 8, redundant transmission is avoided.
  • the above describes two main ways for clients to distribute network packets to different paths.
  • how the client allocates network packets to different paths determines the order in which network packets are transmitted on different paths.
  • the order in which network packets are transmitted on different paths determines how the client allocates the network to different paths.
  • the following respectively introduces how the client/server determines the transmission order of network packets on different paths, and then determines how to allocate network packets to different paths, and introduces how the client/server allocates network packets to different paths by determining way to determine the order in which network packets are transmitted on different paths.
  • the client determines the transmission order of network packets on different paths, and then determines how to allocate network packets to different paths, including:
  • the client and the server determine the number of paths that can be used for data transmission to be M according to the capabilities of the protocol stack.
  • the client determines that the number of network packets in one data block is N, and one of the data blocks is the minimum processable unit of the multipath aggregation scheduling method provided by the present application.
  • the network packet is the smallest unit forming a data block, and a data block is composed of at least two network packets.
  • the server can complete at least one function after receiving the data block.
  • one data block can be the data of one or more frames; or, when the client transmits multiple files to the server, one data block can be the data of one or more files.
  • MK refers to the K -th sub-block of the M sub-blocks.
  • the sub-data block may correspond to a part of the data of one frame of picture. For example, if a frame of picture is divided into M sub-pictures that are equally or unequally divided from top to bottom, the data corresponding to each sub-picture is a sub-data block.
  • the client can build an M*M data matrix A M*M , and fill in M sub-data blocks into the data matrix with the help of Sudoku algorithm, so that the data in each row of the data matrix A M*M will not appear duplicate sub-data blocks, and sub-blocks that prevent duplicates of data in each column of A M*M .
  • the order of the sub-data blocks in the I-th row in the data matrix A M*M is the order of data transmission on the I-th path.
  • sub-data block 1 is [network message 1, network message 2]
  • data block [network message 2, network message 1] is the same as sub-data block 1.
  • FIG. 13A and FIG. 13B are an exemplary schematic diagram of a data matrix provided by an embodiment of the present application.
  • the data matrix A M*M is as shown in Figure 13A, wherein the first row is sub-data block 1, sub-data block 2, and sub-data block 3 in sequence; the second row is sub-data block 3, sub-data block 3 in sequence Data block 1, sub-data block 2; the second row is sub-data block 2, sub-data block 3, and sub-data block 1 in sequence.
  • the first row of the data matrix A 2*2 is sub-data block 1 and sub-data block 2 in sequence; the second row is sub-data block 2 and sub-data block 1 in sequence.
  • each row and each column of the data matrix A 2*2 form a complete data block without redundancy; the sub-data block 1 in the first row and the sub-data block 2 in the second row of the data matrix A 2* 2
  • the completed data block is composed, the sub-data block 1 of the second row of the data matrix A 2*2 and the sub-data block 2 of the first row constitute the completed data block;
  • the sub-data block of the first row of the data matrix A 2*2 1 may be the reverse order of the second row of sub data blocks 1, and the sub data blocks 2 of the first row of the data matrix A 2*2 may be the reverse order of the second row of sub data blocks 2; Sizes can vary.
  • the order of the internal network packets of the sub-data blocks in different rows on the matrix A M*M may be the same or different, that is, the order of the network packets inside the sub-data blocks transmitted on different paths may be The same or different.
  • the client can allocate network packets to different paths according to the order.
  • sub-data 1 is [network message 1, network message 2], or [network message 1, network message 8].
  • the client determines the order of transmitting network packets on different paths, including:
  • the client and the server determine the number of paths that can be used for data transmission to be M according to the capabilities of the protocol stack.
  • the client assigns the network packets to different paths in sequence according to the sequence in which the server encapsulates the network packets.
  • the client may repeatedly distribute the encapsulated network packets K times, where K is an integer less than M and greater than or equal to 0. Among them, the repeated K allocations need to ensure that the network packets on any path will not be repeated.
  • FIG. 14A and FIG. 14B are an exemplary schematic diagram of a network packet distribution manner provided by an embodiment of the present application.
  • the network packets are distributed in sequence in a staggered manner.
  • the client allocates network packets for the U-th time, since there are multiple network packets in the buffer of the client protocol stack, they can be directly distributed to each path without waiting.
  • U is an integer greater than 1 and less than or equal to M.
  • the protocol stack can immediately allocate network packet 1 to path 1 for transmission without waiting for the encapsulation of network packet 2; After the network packet 2 is received, the protocol stack can immediately allocate the network packet 2 to the path 2 for transmission without waiting for the encapsulation of the network packet 3.
  • Order 1 [1,4,7,2,5,8,3,6]
  • path 2 The order of transmission of network packets
  • Order 1 [2,5,8,3,6,1,4,7]
  • the client when distributing the network packet for the first time, the client can determine whether the data in the corresponding buffers of all paths has been sent out when distributing the M+1 th network packet. If the network packets on a certain path are sent out, the network packets can be preferentially allocated to this path.
  • the client can determine whether data on path 1, path 2, and path 3 have been sent before assigning network packet 4.
  • the client assigns network packet 4 to path 2 for transmission; when network packet 1 has been sent, the client assigns network packet 4 to path 1 for transmission;
  • the client assigns the network packet 4 to path 3 for transmission.
  • the server After receiving the complete data, the server sends a confirmation message to the client, and the client clears the network message to be sent after receiving the confirmation message.
  • the server may send an acknowledgement packet to the client, where the acknowledgement packet is used to inform the client that all network packets corresponding to a data block have been received, or the acknowledgement Messages are used to tell the client which messages were received.
  • the client discards all network packets corresponding to the acknowledgment packet, so as to avoid redundant transmission, thereby reducing the occupation of network bandwidth.
  • the network packets sent by the client are not exactly the same as the network packets actually transmitted.
  • the sending order refers to the order of the network packets to be sent by the client
  • the transmission order refers to the order in which the client actually sends the network packets.
  • the server after receiving a network packet, the server sends an acknowledgement packet to the client to inform the client that the network packet has been received.
  • fields in the confirmation message can be modified, so that the confirmation message can realize the confirmation of a single network message and a data block at the same time.
  • the client can choose to reduce redundancy to send network packets.
  • the client Before transmitting a network packet to the server, the client can inquire whether the server has the ability to reply to the confirmation packet. If not, the redundant transmission of the network packet can be reduced.
  • the client reduces redundancy and sends network packets including: when there are M paths between the client and the server, the client actually sends M-1 times redundantly, which can reduce the network transmission on each path uniformly or non-uniformly. The number of packets, thereby reducing redundant transmission.
  • the network packets to be sent are network packets 1 to 8.
  • the client reduces the number of transmitted packets on each path from 3 times redundant transmission to 1 times redundant transmission.
  • the client when the protocol stack of the server cannot restore the confirmation message to inform the client to clear the network packets to be sent, the client can reduce redundant transmission of network packets.
  • the client can reduce the redundant amount of transmitted network packets by reducing redundant transmission.
  • the client when the protocol stack of the server can restore the confirmation message to inform the client which messages it has received, the client may not send the network messages that the server has received.
  • FIG. 15A and FIG. 15B takes the content shown in FIG. 15A and FIG. 15B as examples to exemplarily introduce the implementation of the multi-path aggregation scheduling method provided by the present application in different scenarios.
  • FIG. 15A is an exemplary schematic diagram of implementing a multi-path aggregation scheduling method in a far-field scenario according to an embodiment of the present application.
  • the multi-path aggregation scheduling method provided by the embodiment of the present application can be used to reduce the delay of the video call, improve the fluency of the video call, and further improve the user experience.
  • path 1 There are at least two available paths between mobile phone B and mobile phone A.
  • path 1 One is the path corresponding to the WiFi of the router, which is called path 1; the other is the path corresponding to the cellular mobile communication function, which is called path 2.
  • mobile phone B when mobile phone B acts as a client to send data, mobile phone B obtains continuous frame picture data through the camera. For example, mobile phone B acquires 60 frames of picture data per second, and at this time, it needs to transmit one frame of picture data from mobile phone B to mobile phone A every 16 ms. It can be considered that multiple network packets corresponding to the data of one frame of picture form a data block. For example, the data of one frame of picture corresponds to 8 network packets.
  • FIG. 15B is an exemplary schematic diagram of implementing a multi-path aggregation scheduling method in a near-field scenario according to an embodiment of the present application.
  • the mobile phone projects the content displayed on the screen to the TV.
  • the mobile phone establishes a connection with the TV through the WiFi function provided by the router. If the mobile phone and the TV have dual Wi-Fi capabilities in the 2.4GHz band + 5GHz band, or have dual Wi-Fi capabilities in the 5GHz band + 5GHz band, there are multiple paths that can be used for transmission between the phone and the TV.
  • the client can implement the multi-path aggregation scheduling method provided by the embodiment of the present application, so that network packets are transmitted on different paths.
  • the electronic device may be the server in the embodiment of the present application, or may be the client in the embodiment of the present application.
  • FIG. 16 is a block diagram of an exemplary hardware structure of an electronic device provided by an embodiment of the present application.
  • the electronic device 100 may be a cell phone, tablet computer, desktop computer, laptop computer, handheld computer, notebook computer, ultra-mobile personal computer (UMPC), netbook, as well as cellular telephones, personal digital assistants (personal digital assistants) digital assistant (PDA), augmented reality (AR) devices, virtual reality (VR) devices, artificial intelligence (AI) devices, wearable devices, in-vehicle devices, smart home devices and/or Smart city equipment, the embodiments of the present application do not specifically limit the specific type of the electronic equipment.
  • PDA personal digital assistants
  • AR augmented reality
  • VR virtual reality
  • AI artificial intelligence
  • the electronic device 100 may include a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (USB) interface 130, a charge management module 140, a power management module 141, a battery 142, an antenna 1, an antenna 2 , mobile communication module 150, wireless communication module 160, audio module 170, speaker 170A, receiver 170B, microphone 170C, headphone jack 170D, sensor module 180, buttons 190, motor 191, indicator 192, camera 193, display screen 194, and Subscriber identification module (subscriber identification module, SIM) card interface 195 and so on.
  • SIM Subscriber identification module
  • the sensor module 180 may include a pressure sensor 180A, a gyroscope sensor 180B, an air pressure sensor 180C, a magnetic sensor 180D, an acceleration sensor 180E, a distance sensor 180F, a proximity light sensor 180G, a fingerprint sensor 180H, a temperature sensor 180J, a touch sensor 180K, and ambient light. Sensor 180L, bone conduction sensor 180M, etc.
  • the structures illustrated in the embodiments of the present invention do not constitute a specific limitation on the electronic device 100 .
  • the electronic device 100 may include more or less components than shown, or combine some components, or separate some components, or arrange different components.
  • the illustrated components may be implemented in hardware, software, or a combination of software and hardware.
  • the processor 110 may include one or more processing units, for example, the processor 110 may include an application processor (application processor, AP), a modem processor, a graphics processor (graphics processing unit, GPU), an image signal processor (image signal processor, ISP), controller, video codec, digital signal processor (digital signal processor, DSP), baseband processor, and/or neural-network processing unit (neural-network processing unit, NPU), etc. Wherein, different processing units may be independent devices, or may be integrated in one or more processors.
  • application processor application processor, AP
  • modem processor graphics processor
  • ISP image signal processor
  • controller video codec
  • digital signal processor digital signal processor
  • baseband processor baseband processor
  • neural-network processing unit neural-network processing unit
  • the controller can generate an operation control signal according to the instruction operation code and timing signal, and complete the control of fetching and executing instructions.
  • a memory may also be provided in the processor 110 for storing instructions and data.
  • the memory in processor 110 is cache memory. This memory may hold instructions or data that have just been used or recycled by the processor 110 . If the processor 110 needs to use the instruction or data again, it can be called directly from the memory. Repeated accesses are avoided and the latency of the processor 110 is reduced, thereby increasing the efficiency of the system.
  • the processor 110 may include one or more interfaces.
  • the interface may include an integrated circuit (inter-integrated circuit, I2C) interface, an integrated circuit built-in audio (inter-integrated circuit sound, I2S) interface, a pulse code modulation (pulse code modulation, PCM) interface, a universal asynchronous transceiver (universal asynchronous transmitter) receiver/transmitter, UART) interface, mobile industry processor interface (MIPI), general-purpose input/output (GPIO) interface, subscriber identity module (SIM) interface, and / or universal serial bus (universal serial bus, USB) interface, etc.
  • I2C integrated circuit
  • I2S integrated circuit built-in audio
  • PCM pulse code modulation
  • PCM pulse code modulation
  • UART universal asynchronous transceiver
  • MIPI mobile industry processor interface
  • GPIO general-purpose input/output
  • SIM subscriber identity module
  • USB universal serial bus
  • the I2C interface is a bidirectional synchronous serial bus that includes a serial data line (SDA) and a serial clock line (SCL).
  • the I2S interface can be used for audio communication.
  • the PCM interface can also be used for audio communications, sampling, quantizing and encoding analog signals.
  • the UART interface is a universal serial data bus used for asynchronous communication.
  • the bus may be a bidirectional communication bus.
  • the MIPI interface can be used to connect the processor 110 with peripheral devices such as the display screen 194 and the camera 193 .
  • the GPIO interface can be configured by software.
  • the USB interface 130 is an interface that conforms to the USB standard specification, and may specifically be a Mini USB interface, a Micro USB interface, a USB Type C interface, and the like.
  • the interface connection relationship between the modules illustrated in the embodiment of the present invention is only a schematic illustration, and does not constitute a structural limitation of the electronic device 100 .
  • the electronic device 100 may also adopt different interface connection manners in the foregoing embodiments, or a combination of multiple interface connection manners.
  • the charging management module 140 is used to receive charging input from the charger.
  • the power management module 141 is used for connecting the battery 142 , the charging management module 140 and the processor 110 .
  • the wireless communication function of the electronic device 100 may be implemented by the antenna 1, the antenna 2, the mobile communication module 150, the wireless communication module 160, the modulation and demodulation processor, the baseband processor, and the like.
  • Antenna 1 and Antenna 2 are used to transmit and receive electromagnetic wave signals.
  • Each antenna in electronic device 100 may be used to cover a single or multiple communication frequency bands. Different antennas can also be reused to improve antenna utilization.
  • the antenna 1 can be multiplexed as a diversity antenna of the wireless local area network. In other embodiments, the antenna may be used in conjunction with a tuning switch.
  • the mobile communication module 150 may provide wireless communication solutions including 2G/3G/4G/5G etc. applied on the electronic device 100 .
  • the mobile communication module 150 may include at least one filter, switch, power amplifier, low noise amplifier (LNA) and the like.
  • the mobile communication module 150 can receive electromagnetic waves from the antenna 1, filter and amplify the received electromagnetic waves, and transmit them to the modulation and demodulation processor for demodulation.
  • the mobile communication module 150 can also amplify the signal modulated by the modulation and demodulation processor, and then turn it into an electromagnetic wave for radiation through the antenna 1 .
  • at least part of the functional modules of the mobile communication module 150 may be provided in the processor 110 .
  • at least part of the functional modules of the mobile communication module 150 may be provided in the same device as at least part of the modules of the processor 110 .
  • the modem processor may include a modulator and a demodulator.
  • the modulator is used to modulate the low frequency baseband signal to be sent into a medium and high frequency signal.
  • the demodulator is used to demodulate the received electromagnetic wave signal into a low frequency baseband signal. Then the demodulator transmits the demodulated low-frequency baseband signal to the baseband processor for processing.
  • the low frequency baseband signal is processed by the baseband processor and passed to the application processor.
  • the application processor outputs sound signals through audio devices (not limited to the speaker 170A, the receiver 170B, etc.), or displays images or videos through the display screen 194 .
  • the modem processor may be a stand-alone device.
  • the modem processor may be independent of the processor 110, and may be provided in the same device as the mobile communication module 150 or other functional modules.
  • the wireless communication module 160 can provide applications on the electronic device 100 including wireless local area networks (WLAN) (such as wireless fidelity (Wi-Fi) networks), bluetooth (BT), global navigation satellites Wireless communication solutions such as global navigation satellite system (GNSS), frequency modulation (FM), near field communication (NFC), and infrared technology (IR).
  • WLAN wireless local area networks
  • BT Bluetooth
  • GNSS global navigation satellite system
  • FM frequency modulation
  • NFC near field communication
  • IR infrared technology
  • the wireless communication module 160 may be one or more devices integrating at least one communication processing module.
  • the wireless communication module 160 receives electromagnetic waves via the antenna 2 , frequency modulates and filters the electromagnetic wave signals, and sends the processed signals to the processor 110 .
  • the wireless communication module 160 can also receive the signal to be sent from the processor 110 , perform frequency modulation on it, amplify it, and convert it into electromagnetic waves for radiation through the antenna 2 .
  • the antenna 1 of the electronic device 100 is coupled with the mobile communication module 150, and the antenna 2 is coupled with the wireless communication module 160, so that the electronic device 100 can communicate with the network and other devices through wireless communication technology.
  • the wireless communication technology may include global system for mobile communications (GSM), general packet radio service (GPRS), code division multiple access (CDMA), broadband Code Division Multiple Access (WCDMA), Time Division Code Division Multiple Access (TD-SCDMA), Long Term Evolution (LTE), BT, GNSS, WLAN, NFC , FM, and/or IR technology, etc.
  • the GNSS may include global positioning system (global positioning system, GPS), global navigation satellite system (global navigation satellite system, GLONASS), Beidou navigation satellite system (beidou navigation satellite system, BDS), quasi-zenith satellite system (quasi -zenith satellite system, QZSS) and/or satellite based augmentation systems (SBAS).
  • global positioning system global positioning system, GPS
  • global navigation satellite system global navigation satellite system, GLONASS
  • Beidou navigation satellite system beidou navigation satellite system, BDS
  • quasi-zenith satellite system quadsi -zenith satellite system, QZSS
  • SBAS satellite based augmentation systems
  • the electronic device 100 implements a display function through a GPU, a display screen 194, an application processor, and the like.
  • the GPU is a microprocessor for image processing, and is connected to the display screen 194 and the application processor.
  • the GPU is used to perform mathematical and geometric calculations for graphics rendering.
  • Processor 110 may include one or more GPUs that execute program instructions to generate or alter display information.
  • Display screen 194 is used to display images, videos, and the like.
  • the electronic device 100 may include one or N display screens 194 , where N is a positive integer greater than one.
  • the electronic device 100 may implement a shooting function through an ISP, a camera 193, a video codec, a GPU, a display screen 194, an application processor, and the like.
  • the ISP is used to process the data fed back by the camera 193 .
  • Camera 193 is used to capture still images or video.
  • the electronic device 100 may include 1 or N cameras 193 , where N is a positive integer greater than 1.
  • a digital signal processor is used to process digital signals, in addition to processing digital image signals, it can also process other digital signals. For example, when the electronic device 100 selects a frequency point, the digital signal processor is used to perform Fourier transform on the frequency point energy and so on.
  • Video codecs are used to compress or decompress digital video.
  • the NPU is a neural-network (NN) computing processor.
  • NN neural-network
  • the internal memory 121 may include one or more random access memories (RAM) and one or more non-volatile memories (NVM).
  • RAM random access memories
  • NVM non-volatile memories
  • Random access memory can include static random-access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronization Dynamic random access memory (double data rate synchronous dynamic random access memory, DDR SDRAM, such as fifth-generation DDR SDRAM is generally called DDR5 SDRAM), etc.;
  • SRAM static random-access memory
  • DRAM dynamic random access memory
  • SDRAM synchronous dynamic random access memory
  • DDR SDRAM double data rate synchronous dynamic random access memory
  • DDR SDRAM double data rate synchronous dynamic random access memory
  • DDR SDRAM double data rate synchronous dynamic random access memory
  • fifth-generation DDR SDRAM is generally called DDR5 SDRAM
  • Non-volatile memory may include magnetic disk storage devices, flash memory.
  • Flash memory can be divided into NOR FLASH, NAND FLASH, 3D NAND FLASH, etc. according to the operating principle, and can include single-level memory cell (SLC), multi-level memory cell (multi-level memory cell, SLC) according to the level of storage cell potential.
  • cell, MLC multi-level memory cell
  • TLC triple-level cell
  • QLC quad-level cell
  • UFS universal flash storage
  • eMMC embedded multimedia memory card
  • the random access memory can be directly read and written by the processor 110, and can be used to store executable programs (eg, machine instructions) of an operating system or other running programs, and can also be used to store data of users and application programs.
  • executable programs eg, machine instructions
  • the random access memory can be directly read and written by the processor 110, and can be used to store executable programs (eg, machine instructions) of an operating system or other running programs, and can also be used to store data of users and application programs.
  • the non-volatile memory can also store executable programs and store data of user and application programs, etc., and can be loaded into the random access memory in advance for the processor 110 to directly read and write.
  • the external memory interface 120 can be used to connect an external non-volatile memory, so as to expand the storage capacity of the electronic device 100 .
  • the external non-volatile memory communicates with the processor 110 through the external memory interface 120 to realize the data storage function. For example, save music, video, etc. files in external non-volatile memory.
  • the electronic device 100 may implement audio functions through an audio module 170, a speaker 170A, a receiver 170B, a microphone 170C, an earphone interface 170D, an application processor, and the like. Such as music playback, recording, etc.
  • the audio module 170 is used for converting digital audio information into analog audio signal output, and also for converting analog audio input into digital audio signal.
  • Speaker 170A also referred to as a "speaker” is used to convert audio electrical signals into sound signals.
  • the receiver 170B also referred to as “earpiece”, is used to convert audio electrical signals into sound signals.
  • the microphone 170C also called “microphone” or “microphone”, is used to convert sound signals into electrical signals.
  • the earphone jack 170D is used to connect wired earphones.
  • the pressure sensor 180A is used to sense pressure signals, and can convert the pressure signals into electrical signals.
  • the gyro sensor 180B may be used to determine the motion attitude of the electronic device 100 .
  • the air pressure sensor 180C is used to measure air pressure.
  • the magnetic sensor 180D includes a Hall sensor.
  • the acceleration sensor 180E can detect the magnitude of the acceleration of the electronic device 100 in various directions (generally three axes).
  • Distance sensor 180F for measuring
  • Proximity light sensor 180G may include, for example, light emitting diodes (LEDs) and light detectors, such as photodiodes.
  • the ambient light sensor 180L is used to sense ambient light brightness.
  • the fingerprint sensor 180H is used to collect fingerprints.
  • the temperature sensor 180J is used to detect the temperature.
  • Touch sensor 180K also called “touch device”.
  • the bone conduction sensor 180M can acquire vibration signals.
  • the keys 190 include a power-on key, a volume key, and the like.
  • Motor 191 can generate vibrating cues.
  • the indicator 192 can be an indicator light, which can be used to indicate the charging state, the change of the power, and can also be used to indicate a message, a missed call, a notification, and the like.
  • the SIM card interface 195 is used to connect a SIM card.
  • the SIM card can be contacted and separated from the electronic device 100 by inserting into the SIM card interface 195 or pulling out from the SIM card interface 195 .
  • the electronic device 100 may support 1 or N SIM card interfaces, where N is a positive integer greater than 1.
  • the SIM card interface 195 can support Nano SIM card, Micro SIM card, SIM card and so on. Multiple cards can be inserted into the same SIM card interface 195 at the same time. The types of the plurality of cards may be the same or different.
  • the SIM card interface 195 can also be compatible with different types of SIM cards.
  • the SIM card interface 195 is also compatible with external memory cards.
  • the electronic device 100 interacts with the network through the SIM card to implement functions such as call and data communication.
  • the electronic device 100 employs an eSIM, ie: an embedded SIM card.
  • the eSIM card can be embedded in the electronic device 100 and cannot be separated from the electronic device 100 .
  • the software system of the electronic device 100 may adopt a layered architecture, an event-driven architecture, a microkernel architecture, a microservice architecture, or a cloud architecture.
  • the embodiment of the present invention takes an Android system with a layered architecture as an example to illustrate the software structure of the electronic device 100 as an example.
  • FIG. 17 is an exemplary software structural block diagram of the electronic device 100 provided by the embodiment of the present application.
  • the layered architecture divides the software into several layers, and each layer has a clear role and division of labor. Layers communicate with each other through software interfaces.
  • the Android system is divided into four layers, which are, from top to bottom, an application layer, an application framework layer, an Android runtime (Android runtime) and a system library, and a kernel layer.
  • the application layer can include a series of application packages.
  • the application package can include applications such as camera, gallery, calendar, call, map, navigation, WLAN, Bluetooth, music, video, short message and so on.
  • the application framework layer provides an application programming interface (application programming interface, API) and a programming framework for applications in the application layer.
  • the application framework layer includes some predefined functions.
  • the application framework layer may include window managers, content providers, view systems, telephony managers, resource managers, notification managers, and the like.
  • a window manager is used to manage window programs.
  • the window manager can get the size of the display screen, determine whether there is a status bar, lock the screen, take screenshots, etc.
  • Content providers are used to store and retrieve data and make these data accessible to applications.
  • the data may include video, images, audio, calls made and received, browsing history and bookmarks, phone book, etc.
  • the view system includes visual controls, such as controls for displaying text, controls for displaying pictures, and so on. View systems can be used to build applications.
  • a display interface can consist of one or more views.
  • the display interface including the short message notification icon may include a view for displaying text and a view for displaying pictures.
  • the phone manager is used to provide the communication function of the electronic device 100 .
  • the management of call status including connecting, hanging up, etc.).
  • the resource manager provides various resources for the application, such as localization strings, icons, pictures, layout files, video files and so on.
  • the notification manager enables applications to display notification information in the status bar, which can be used to convey notification-type messages, and can disappear automatically after a brief pause without user interaction. For example, the notification manager is used to notify download completion, message reminders, etc.
  • the notification manager can also display notifications in the status bar at the top of the system in the form of graphs or scroll bar text, such as notifications of applications running in the background, and notifications on the screen in the form of dialog windows. For example, text information is prompted in the status bar, a prompt sound is issued, the electronic device vibrates, and the indicator light flashes.
  • Android Runtime includes core libraries and a virtual machine. Android runtime is responsible for scheduling and management of the Android system.
  • the core library consists of two parts: one is the function functions that the java language needs to call, and the other is the core library of Android.
  • the application layer and the application framework layer run in virtual machines.
  • the virtual machine executes the java files of the application layer and the application framework layer as binary files.
  • the virtual machine is used to perform functions such as object lifecycle management, stack management, thread management, safety and exception management, and garbage collection.
  • a system library can include multiple functional modules. For example: surface manager (surface manager), media library (Media Libraries), 3D graphics processing library (eg: OpenGL ES), 2D graphics engine (eg: SGL), etc.
  • surface manager surface manager
  • media library Media Libraries
  • 3D graphics processing library eg: OpenGL ES
  • 2D graphics engine eg: SGL
  • the Surface Manager is used to manage the display subsystem and provides a fusion of 2D and 3D layers for multiple applications.
  • the media library supports playback and recording of a variety of commonly used audio and video formats, as well as still image files.
  • the media library can support a variety of audio and video encoding formats, such as: MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, etc.
  • the 3D graphics processing library is used to implement 3D graphics drawing, image rendering, compositing, and layer processing.
  • 2D graphics engine is a drawing engine for 2D drawing.
  • the system may further include a network library, and any application program in the application layer may implement the multi-path aggregation scheduling method provided by the embodiments of the present application by calling the methods, functions, and interfaces of the network library.
  • the kernel layer is the layer between hardware and software.
  • the kernel layer contains at least display drivers, camera drivers, audio drivers, and sensor drivers.
  • the kernel layer also includes a network card driver, and the application program calls the methods, functions, and interfaces of the network library, so that the network card driver allocates network packets on different paths according to the multi-path aggregation scheduling method provided in the embodiment of the present application, thereby improving the efficiency of data transmission. rate.
  • FIG. 18 is another exemplary software structural block diagram of the electronic device 100 provided by the embodiment of the present application.
  • the system is divided into four layers, which are an application layer, a framework layer, a system service layer, and a kernel layer from top to bottom.
  • the application layer includes system applications and third-party non-system applications.
  • the framework layer provides multi-language user program frameworks and capability frameworks such as JAVA/C/C++/JS for applications in the application layer, as well as multi-language framework APIs open to the outside world for various software and hardware services.
  • the system service layer includes: system basic capability subsystem set, basic software service subsystem set, enhanced software service subsystem set, and hardware service subsystem set.
  • the system basic capability subsystem set supports the operation, scheduling, and migration of the operating system on multiple devices.
  • the system basic capability subsystem set can include: distributed soft bus, distributed data management, distributed task scheduling, common basic subsystem, etc.
  • the system service layer and the framework layer jointly realize the multi-mode input subsystem, the graphics subsystem and so on.
  • the multi-path aggregation scheduling method provided by the present application may be located in a distributed soft bus.
  • the set of basic software service subsystems provides common and general software services for the operating system, and may include: an event notification subsystem, a multimedia subsystem, and the like.
  • the enhanced software service subsystem set provides differentiated software services for different devices, and may include: IOT proprietary service subsystem.
  • the hardware service subsystem set provides hardware services for the operating system, and may include: IOT proprietary hardware service subsystem.
  • the kernel layer includes the kernel abstraction layer and the driver subsystem.
  • the kernel abstraction layer includes a variety of kernels, and by shielding the differences between multiple kernels, it provides basic kernel capabilities for the upper layer, such as thread/process management, memory management, file system, network management, etc.
  • the driver subsystem provides software developers with a unified peripheral access capability and a driver development and management framework.
  • the software structure of the electronic device can be divided in other ways according to the operating system.
  • the term “when” may be interpreted to mean “if” or “after” or “in response to determining" or “in response to detecting" depending on the context.
  • the phrases “in determining" or “if detecting (the stated condition or event)” can be interpreted to mean “if determining" or “in response to determining" or “on detecting (the stated condition or event)” or “in response to the detection of (the stated condition or event)”.
  • the above-mentioned embodiments it may be implemented in whole or in part by software, hardware, firmware or any combination thereof.
  • software it can be implemented in whole or in part in the form of a computer program product.
  • the computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions according to the embodiments of the present application are generated.
  • the computer may be a general purpose computer, a special purpose computer, a computer network, or other programmable device.
  • the computer instructions may be stored on or transmitted from one computer readable storage medium to another computer readable storage medium, for example, the computer instructions may be transmitted over a wire from a website site, computer, server or data center (eg coaxial cable, optical fiber, digital subscriber line) or wireless (eg infrared, wireless, microwave, etc.) to another website site, computer, server or data center.
  • the computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. that includes one or more available media integrated.
  • the available media may be magnetic media (eg, floppy disks, hard disks, magnetic tapes), optical media (eg, DVDs), or semiconductor media (eg, solid state drives), and the like.
  • the process can be completed by instructing the relevant hardware by a computer program, and the program can be stored in a computer-readable storage medium.
  • the program When the program is executed , which may include the processes of the foregoing method embodiments.
  • the aforementioned storage medium includes: ROM or random storage memory RAM, magnetic disk or optical disk and other mediums that can store program codes.

Abstract

本申请提供一种多路径聚合调度方法及电子设备。该方法包括:当客户端与服务端之间存在多条路径时,可以通过配置不同路径上网络报文的传输顺序,使得在任一条路径上在后发送的网络报文,至少在其他路径中某一条路径上可以在先发送。本申请提供的多路径聚合调度方法无需预估路径的数据传输速率,充分利用了多条路径的自由度,进而提高了多路径下的数据传输速率以及稳健性。

Description

多路径聚合调度方法及电子设备
本申请要求于2021年03月04日提交中国专利局、申请号为202110241645.4、申请名称为“一种设备间低时延聚合调度的方法”的中国专利申请的优先权,本申请要求于2021年05月31日提交中国专利局、申请号为202110603312.1、申请名称为“多路径聚合调度方法及电子设备”的中国专利申请的优先权,本申请要求于2021年07月30日提交中国专利局、申请号为202110870615.X、申请名称为“多路径聚合调度方法及电子设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及电子技术领域,尤其涉及多路径聚合调度方法及电子设备。
背景技术
随着通信技术的发展以及智能设备的普及,万物互联的人工智能物联网(artificial intelligence&internet of things,AIoT)时代正在到来。受益于操作系统的分布式互联能力的提高,智能穿戴设备、智能家居设备、移动终端等设备可以通过网络进行数据交互,并且基于该数据交互去协作实现特定的功能。
智能穿戴设备、智能家居设备、移动终端等电子设备已经可以通过无线网络实现数据交互。但是,相比于多个电子设备对通信资源的需求,空间中可以使用的通信资源是有限的。例如,当多个设备接入同一个接入设备提供的无线网络时,多个设备需要竞争有限的无线空口资源以进行数据交互。电子设备在竞争无线空口资源失败后,电子设备会将等待发送的数据临时存储在本地,等待下一次竞争成功。
为了保证客户端产生的数据可以及时被送到服务端,一种可行的解决方法为:当客户端的协议栈支持多路径传输控制协议(multipath transmission control protocol,MPTCP)时,客户端上的业务可以通过多条路径将数据传输到服务端时。在该情况下,当一条路径堵塞的概率为P a时,若客户端上的业务通过M条互相独立路径将完全相同的数据发送到服务端时,数据发送堵塞的概率为
Figure PCTCN2022079181-appb-000001
极大的降低了单条路径拥塞导致的影响。
虽然以MPTCP为代表的多路径传输协议,利用多条路径增加了传输的稳健性,降低了数据拥塞的发生概率,但是并没有利用多条路径增加数据传输的速率,没有充分利用多路径资源。
发明内容
本申请实施例提供了一种多路径聚合调度方法,该方法包括:客户端上的协议栈将网络报文按照特定的顺序分配到不同的路径上,使得在某条路径上在后发送的网络报文,在其他的某一条路径上可以在先发送,进而提高了网络报文传输的速率。
第一方面,本申请提供了一种多路径聚合调度方法,该方法包括:客户端与服务端之间存在N条路径,该N条路径包括第一路径和第二路径,该N为大于等于2的整数;该客户端以第一顺序在该第一路径上发送M个网络报文,该M大于等于2的整数;该客户段以第二顺序在该第二路径上发送该M个网络报文,该第一顺序与该第二顺序不同。
在上述实施例中,客户端可以在不同路径上以不同的顺序发送相同的多个网络报文,必然存在至少一个网络报文,在第二路径上优先到达服务端,进而提高了该网络报文的传输速 率。其次,由于不同路径上的网络报文你的传输顺序不同,从统计的角度看,有助于提高M个网络报文的平均传输速率。
结合第一方面的一些实施例,在一些实施例中,该方法还包括:该N条路径还包括第三路径;该客户端以第三顺序在该第三路径上发送该M个网络报文,该第三顺序与该第一顺序不同,该第三顺序与该第二顺序不同。
在上述实施例中,客户端与服务单可以存在多条路径,并不局限与两条路径或三条路径,不同路径上网络报文的传输顺序各不相同,则必然存在至少一个网络报文,在多条路径中的一条优先达到服务端,进而提高了该网络报文的传输速率。其次,由于不同路径上的网络报文你的传输顺序两两互不相同,从统计的角度看,有助于提高M个网络报文的平均传输速率。
结合第一方面的一些实施例,在一些实施例中,该第一顺序与该第二顺序的距离最大。
在上述实施例中,由于第一顺序与第二顺序的距离最大,所以第一路径上在后发送的网络报文会在第二路径上在前发送,且第一路径上在前发送的网络报文会在第二路径上在后发送,使得多个网络报文的平均传输速率等于两条路径传输速率之和。
结合第一方面的一些实施例,在一些实施例中,该第一顺序与该第二顺序的互相关最小。
在上述实施例中,由于第一顺序与第二顺序的互相关最小,所以第一路径上在后发送的网络报文会在第二路径上在前发送,且第一路径上在前发送的网络报文会在第二路径上在后发送,使得多个网络报文的平均传输速率等于两条路径传输速率之和。
结合第一方面的一些实施例,在一些实施例中,该第一顺序、该第二顺序、该第三顺序两两之间的距离和最大。
在上述实施例中,由于不同路径上网络报文的发送顺序的两两之间的距离和最大,使得多个网络报文的平均传输速率等于多条路径传输速率之和。
结合第一方面的一些实施例,在一些实施例中,该第一顺序、该第二顺序、该第三顺序两两之间的互相关的和最小。
在上述实施例中,由于不同路径上网络报文的发送顺序的两两之间的互相关的和最小,使得多个网络报文的平均传输速率等于多条路径传输速率之和。
结合第一方面的一些实施例,在一些实施例中,该方法还包括:该客户端接收到确认报文后,该客户端删除并停止发送该M个网络报文。
在上述实施例中,服务端在接收到M个网络报文后,可以发送确认报文给客户端,使得客户端删除并停止发送该M个网络报文,进而降低客户端的冗余发送。
结合第一方面的一些实施例,在一些实施例中,该M个网络报文组成一个数据块,该数据块用于完成特定的功能。
在上述实施例中,可以将一个具有多个网络报文的数据块作为基础的处理单元,使得提高的网络报文的平均传输速率能够直接的提升用户的体验。
结合第一方面的一些实施例,在一些实施例中,该M个网络报文没有重复。
在上述实施例中,由于多路径聚合调度方法本身是冗余发送,稳健性强,所以M个网路报文可以不配置重复的网络报文。
第二方面,本申请提供了另一种多路径聚合调度方法,该方法包括:客户端与服务端之间存在N条路径,该N条路径包括第一路径和第二路径,该N为大于等于2的整数;该客户端在该第一路径上发送M个网络报文,该M个网络报文包括第一网络报文;该客户段在该第二路径上发送该M个网络报文;该第一网络报文位于该第一路径上M个网络报文中的 前半段;该第一网络报文位于该第二路径上M个网络报文中的后半段。
在上述实施例中,客户端发送的网络报文可以不确定多个网络报文在不同路径上的发送顺序,在发送网络报文过程中,保证存在至少一个网络报文在第一路径上在先发送,而在第二路径上在后发送。
结合第二方面的一些实施例,在一些实施例中,该M个网络报文还包括第二网络报文;该第二网络报文位于该第一路径上M个网络报文中的前1/N段;该第二网络报文位于该第二路径上M个网络报文中的后(N-1)/N段。
在上述实施例中,当至少存在一个网络报文位于前1/N段,后一个网络报文位于后(N-1)/N段时,对于该一个或多个网络报文来说,可以提高该一个或多个网络报文的传输速率;其次,从统计意义上,有助于提高M个网络报文的平均传输速率。
结合第二方面的一些实施例,在一些实施例中,该M个网络报文还包括第二网络报文;该第二网络报文位于该第一路径上M个网络报文中的前1/N段;该第二网络报文位于该第二路径上M个网络报文中的后1/N段。
在上述实施例中,当至少存在一个网络报文位于前1/N段,后一个网络报文位于后1/N段时,对于该一个或多个网络报文来说,传输速率可以等价于较快路径上的传输速率;其次,从统计意义上,M个网络报文的平均传输速率等于两条路径之和。
结合第二方面的一些实施例,在一些实施例中,该M个网络报文组成至少一个数据块,该数据块用于完成特定的功能。
在上述实施例中,可以将一个具有多个网络报文的数据块作为基础的处理单元,使得提高的网络报文的平均传输速率能够直接的提升用户的体验。
结合第二方面的一些实施例,在一些实施例中,该M个网络报文没有重复。
在上述实施例中,由于多路径聚合调度方法本身是冗余发送,稳健性强,所以M个网路报文可以不配置重复的网络报文。
结合第二方面的一些实施例,在一些实施例中,该方法还包括:该客户端接收到确认报文后,该客户端删除并停止发送该M个网络报文。
服务端在接收到M个网络报文后,可以发送确认报文给客户端,使得客户端删除并停止发送该M个网络报文,进而降低客户端的冗余发送。
第三方面,本申请提供了另一种多路径聚合调度方法,该方法包括:客户端与服务端之间存在N条路径,该N条路径包括第一路径和第二路径,该N为大于等于2的整数;该客户端在N条路径上分别重复的发送M个网络报文;该第一路径上的前K个网络报文与该第二路径上的前L个网络报文之间没有重复的网络报文,该K与L的和等于M,该K为正整数,该L为正整数。
在上述实施例中,客户端在两条路径上重复发送M个网络报文,当第一条路径上的优先发送的多个网络报文与第二条路径上在前发送的多个网络报文之间能够构成完备的M个网络报文时,统计意义上,这M个网络报文的传输速率等于两条路径传输速率之和。
结合第三方面的一些实施例,在一些实施例中,该第一路径上的前K个网络报文的排列顺序是该第二路径上的后K个网络报文的排列顺序的逆序。
在上述实施例中,若第一路径上在前发送的网络报文的排列顺序与第二路径上在后发送的网络报文之间的排列顺序为逆序关系时,这M个网络报文的传输速率等于两条路径传输速率之和。
结合第三方面的一些实施例,在一些实施例中,还包括:该N条路径还包括第三路径;该第一路径上的前R个网络报文、该第二路径上的前S个网络报文和该第三路径上前T个网络报文之间没有重复,该R、S和T的和等于M,该R为正整数,该S为正整数;该T为正整数。
在上述实施例中,不限于两条路径,在多条路径的情况下,在统计意义下,可以使得M个网络报文的平均传输速率等于多条路径的传输速率之和。
结合第三方面的一些实施例,在一些实施例中,该M个网络报文组成至少一个数据块,该数据块用于完成特定的功能。
在上述实施例中,可以将一个具有多个网络报文的数据块作为基础的处理单元,使得提高的网络报文的平均传输速率能够直接的提升用户的体验。
结合第三方面的一些实施例,在一些实施例中,该M个网络报文没有重复。
在上述实施例中,由于多路径聚合调度方法本身是冗余发送,稳健性强,所以M个网路报文可以不配置重复的网络报文。
结合第三方面的一些实施例,在一些实施例中,该方法还包括:该客户端接收到确认报文后,该客户端删除并停止发送该M个网络报文。
服务端在接收到M个网络报文后,可以发送确认报文给客户端,使得客户端删除并停止发送该M个网络报文,进而降低客户端的冗余发送。
第四方面,本申请提供了另一种多路径聚合调度方法,该方法包括:客户端与服务端之间存在N条路径,该N条路径包括第一路径和第二路径,该N为大于等于2的整数;当该客户端没有接收到该服务端发送的确认报文前,该客户端以第一顺序发送M个网络报文,该客户端以第二顺序发送该第二网络报文;当该客户端接收到该服务端发送的确认报文后,该客户端停止在该N条路径上发送该M个网络报文;该网络报文用于确认服务端收到了该M个网络报文。
在上述实施例中,客户端在不同路径上以不同的顺序发送M个网络报文,能够提高M个网络报文的平均传输速率。
结合第四方面的一些实施例,在一些实施例中,该方法还包括:该N条路径还包括第三路径;该客户端以第三顺序在该第三路径上发送该M个网络报文,该第三顺序与该第一顺序不同,该第三顺序与该第二顺序不同。
在上述实施例中,客户端与服务单可以存在多条路径,并不局限与两条路径或三条路径,不同路径上网络报文的传输顺序各不相同,则必然存在至少一个网络报文,在多条路径中的一条优先达到服务端,进而提高了该网络报文的传输速率。其次,由于不同路径上的网络报文你的传输顺序两两互不相同,从统计的角度看,有助于提高M个网络报文的平均传输速率。
结合第四方面的一些实施例,在一些实施例中,该第一顺序与该第二顺序的距离最大。
在上述实施例中,由于第一顺序与第二顺序的距离最大,所以第一路径上在后发送的网络报文会在第二路径上在前发送,且第一路径上在前发送的网络报文会在第二路径上在后发送,使得多个网络报文的平均传输速率等于两条路径传输速率之和。
结合第四方面的一些实施例,在一些实施例中,该第一顺序与该第二顺序的互相关最小。
在上述实施例中,由于第一顺序与第二顺序的互相关最小,所以第一路径上在后发送的网络报文会在第二路径上在前发送,且第一路径上在前发送的网络报文会在第二路径上在后发送,使得多个网络报文的平均传输速率等于两条路径传输速率之和。
结合第四方面的一些实施例,在一些实施例中,该第一顺序、该第二顺序、该第三顺序两两之间的距离和最大。
在上述实施例中,由于不同路径上网络报文的发送顺序的两两之间的距离和最大,使得多个网络报文的平均传输速率等于多条路径传输速率之和。
结合第四方面的一些实施例,在一些实施例中,该第一顺序、该第二顺序、该第三顺序两两之间的互相关的和最小。
在上述实施例中,由于不同路径上网络报文的发送顺序的两两之间的互相关的和最小,使得多个网络报文的平均传输速率等于多条路径传输速率之和。
结合第四方面的一些实施例,在一些实施例中,该M个网络报文组成一个数据块,该数据块用于完成特定的功能。
在上述实施例中,可以将一个具有多个网络报文的数据块作为基础的处理单元,使得提高的网络报文的平均传输速率能够直接的提升用户的体验。
结合第四方面的一些实施例,在一些实施例中,该M个网络报文没有重复。
在上述实施例中,由于多路径聚合调度方法本身是冗余发送,稳健性强,所以M个网路报文可以不配置重复的网络报文。
第五方面,本申请提供一种电子设备,该电子设备包括:一个或多个处理器和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行如第一方面、第二方面、第三方面以及第一方面、第二方面、第三方面中任一可能的实现方式描述的方法。
第六方面,本申请实施例提供了一种芯片,该芯片应用于电子设备,该芯片包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行如第一方面、第二方面、第三方面以及第一方面、第二方面、第三方面中任一可能的实现方式描述的方法。
第七方面,本申请实施例提供了一种计算机程序产品,当其在计算机上运行时,使得计算机如第一方面、第二方面、第三方面以及第一方面、第二方面、第三方面中任一可能的实现方式描述的方法。
第八方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如第一方面、第二方面、第三方面以及第一方面、第二方面、第三方面中任一可能的实现方式描述的方法。
可以理解的,上述第五方面提供的电子设备、第六方面提供的芯片、第七方面提供的计算机程序产品和第八方面提供的计算机存储介质均用于执行本申请实施例所提供的方法。因此,其所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。
附图说明
图1为客户端通过多条路径与服务端进行通信的一个示例性示意图;
图2为本申请涉及的多路径通信场景的一个示例性示意图;
图3为本申请涉及的无线信道的通信性能与用户体验关系的一个示例性示意图;
图4A为本申请涉及的封装过程的一个示例性示意图;
图4B为本申请涉及的封装过程的一个示例性示意图;
图5为本申请涉及的数据传输过程中网络报文变化的一个示例性示意图;
图6为本申请涉及的一种多路径聚合的数据发送方法;
图7为本申请涉及的另一种多路径聚合的数据发送方法;
图8A与图8B为图7所示的方法在不同情况下通信性能比较的一个示例性示意图;
图9A至图9B为本申请实施例提供的多路径聚合调度方法的一个示例性示意图;
图9C为在图3所示场景中实施本申请实施例中多路径聚合调度方法的一个示例性示意图;
图10为本申请实施例提供多路径聚合调度方法的协议栈架构的一个示例性示意图;
图11为本申请实施例提供的多路径聚合调度方法的一个示例性示意图;
图12A为本申请实施例提供的网络报文分配方法的一个示例性示意图;
图12B为本申请实施例提供的网络报文分配方法的另一个示例性示意图;
图13A与图13B为本申请实施例提供的数据矩阵的一个示例性示意图;
图14A与图14B为本申请实施例提供的网络报文分配方式的一个示例性示意图;
图15A为本申请实施例提供的远场场景下实施多路径聚合调度方法的一个示例性示意图;
图15B为本申请实施例提供的近场场景下实施多路径聚合调度方法的一个示例性示意图;
图16为本申请实施例提供的电子设备的一个示例性硬件结构框图;
图17为本申请实施例提供的电子设备100的一个示例性软件结构框图;
图18为本申请实施例提供的电子设备100的另一个示例性软件结构框图。
具体实施方式
本申请以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“该”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,本申请中使用的术语“和/或”是指并包含一个或多个所列出项目的任何或所有可能组合。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
为了便于理解,下面先对本申请实施例涉及的相关术语及相关概念进行介绍。本发明的实施方式部分使用的术语仅用于对本发明的具体实施例进行解释,而非旨在限定本发明。
(1)客户端、服务端
客户端为发起连接的端点,服务端为接受连接的端点。或者,客户端为发送数据的端点,服务端为接收数据的端点。
其中,客户端/服务端可以是终端设备,如手机、平板电脑、虚拟现实终端设备、增强现 实终端设备、工业控制中的无线终端、无人驾驶中的无线终端、远程医疗中的无线终端、智能电网中的无线终端、运输安全中的无线终端、智慧城市中的无线终端、智慧家庭中的无线终端、可穿戴设备、车载设备等。
其中,服务端可以是为客户端服务的,服务端可以向客户端提供资源以及保存客户端数据等,并且服务端也可以称为服务器。
其中,连接为客户端与服务端之间共享的一种状态。连接上的数据流动可以是双向的,也可以是单向的。
(2)多路径(path)传输协议
当客户端上的协议栈支持多路径传输协议时,可以将数据通过多条路径将数据传输到服务端,进而提高客户端与服务端之间的传输性能,如降低延时、提高吞吐率等。
其中,多路径传输协议可以包括MPTCP协议、多路径快速UDP网络连接协议(multipath quick udp internet connection,MPQUIC)等。
其中,路径可以有多种标识,例如,可以以路径四元组作为标识以区分不同的路径,或者可以以路径ID作为标识区分不同的路径,在此不做限定。其中,路径四元组的一种表现形式为[源IP,端口,目标IP,端口]。
下面以图1所示的内容为例,示例性的介绍客户端通过多条路径与服务端进行通信的过程。
图1为客户端通过多条路径与服务端进行通信的一个示例性示意图。
如图1所示,客户端可以为移动终端,例如手机。手机同时通过基站以及路由器与服务端进行通信。示例性的,基站向手机分配的IP地址为IP1,路由器向手机分配的IP地址为IP2,手机上源端口为80。服务端的IP地址为IP3,服务端上目标端口为1314。在该情况下,手机可以通过第一物理路径:(IP1、80、IP3、1314)以及第二物理路径:(IP2、80、IP3、1314)与服务端进行通信。
在图1所示的内容中,手机可以同时启用蜂窝移动通信功能(5G和/或4G)和WiFi功能以实现多路径传输。
在其他情况中,若客户端具备双蜂窝移动通信能力,分别通过4G基站和5G基站获得不同的源IP,进而实现多路径传输。
在其他情况中,若客户端具备双WiFi能力,可以同时接入同一个路由器的不同频段或者不同路由器的不同频段,如客户端同时接入路由器的2.4G频段和5G频段,进而实现多路径传输;或者,客户端同时接入路由器A的2.4G频段和路由器B的5G频段,进而实现多路径传输;或者,客户端同时接入路由器的5G高频频段和5G低频频段,进而实现多路径传输;或者,客户端同时接入路由器A的5G高频频段和路由器B的5G低频频段,进而实现多路径传输。
值得说明的是,客户端可以与服务端建立多条路径,不限于两条路径。例如,客户端具备双蜂窝移动通信能力以及双WiFi能力,手机同时接入4G基站、5G基站、路由器的2.4G频段和5G频段,进而实现了四路径传输。
在近场场景中,例如对等网络(peer to peer,P2P)场景中,客户端还可以利用近距离通信服务来进数据交互。其中,近距离通信服务可以包括:蓝牙、苹果无线直连连接(Apple Wireless Direct Link,AWDL)、HiLink、ZigBee等。
下面以图2所示的内容为例,示例性的介绍P2P场景中,客户端通过多条路径与服务端 进行通信的过程。
图2为本申请涉及的多路径通信场景的一个示例性示意图。
如图2所示,手机分别通过蓝牙、路由器与投影仪建立连接。其中,路径1基于路由器提供的连接,路径1上的数据流向可以为手机发送数据给路由器,路由器转发数据给投影仪。其中,路径2基于蓝牙连接,路径2上的数据流向可以为手机发送数据给投影仪。
值得说明的是,对于TCP协议,以及基于TCP协议的其他协议,一个连接上可以承载至少一条路径。对于UDP协议,以及基于UDP协议的其他协议,例如快速UDP网络连接(quick udp internet connection,QUIC)协议,通过连接或单向流可以确定路径。
(3)无线信道
无线信道是指以无线信号作为传输载体,用于传输数据的通道。其中,频点和频宽可以用于描述无线信道,频点和频宽共同决定该信道上传输信号的频率范围。在P2P场景中,无线信道的可以用的频段包括:工业、科学和医用(Industrial Scientific and Medical,ISM)频段、unlicensed频段。
无线信道的通信性能可以包括信道时延、通信速率等。其中,信道时延是该无线信道将数据从一端传到一端所需要耗费的时间;通信速率是该无线信道在单位时间内正确传输的信息比特数。
在开放系统互联(Open System Interconnection,OSI)模型中,无线信道位于物理层。其中,OSI模型从上至下可以分为应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
值得说明的是,无线信道的通信性能具有时变性,即无法准确的确定未来某一段时间内或某一刻时间时的无线信道的通信性能。
下面以图3所示的内容为例,示例性的介绍,无线信道的通信性能是如何影响数据传输以及用户体验的。
图3为本申请涉及的无线信道的通信性能与用户体验关系的一个示例性示意图。
用户使用手机观看60帧率(frames per second,FPS)的直播视频。其中,手机通过路由器提供的WiFi功能连接至互联网。由于直播视频的帧率为60FPS,当手机在时刻T1接收到某一帧画面的数据时,需要在时刻T2=T1+0.16时刻前接收到下一帧画面的数据,才能流畅播放,进而保障用户的体验。
如图3所示,在第0秒时,手机与路由器建立连接,并基于此连接去接收服务器发送的视频流数据。其中,视频数据由一串连续的帧画面的数据组成。服务器将视频数据发送到手机上时,需要依次发送帧画面的数据。其中,一帧画面的数据需要一个或多个网络报文承载。例如,一帧画面的数据需要3个网络报文承载。
在图3所示的内容中,在第0秒至第0.16秒内,服务端成功将携带第一帧画面数据的三个网络报文发送到手机。在第0.16秒至第0.32秒内,服务端成功将携带第二帧画面数据的三个网络报文中的前两个发送到手机。此时由于手机没有完整收到第二帧画面的数据,视频会发生卡顿。在第0.34秒时,手机收到携带第二帧画面数据的三个网络报文。在第0.34秒至第0.5秒内,服务端成功将携带第二帧画面数据的三个网络报文发送到手机,此时视频不会发生卡顿。
可以理解的是,对于大多数场景来说,相比于提高客户端与服务端之间数据的平均传输速率,或者提高客户端与服务端之间的数据的峰值传输速率,保证服务端与传输端之间数据 传输速率最小值不低于阈值更能够提升用户的体验。
(4)业务会话、网络报文
业务会话可以为表示层实体或用户进程建立通信并在通信上数据传输的过程。根据客户端上协议栈(protocol stack)的能力不同,客户端可以将应用程序/业务会话的一个或多个数据帧合包生成协议报文,并将协议报文打包成网络报文进行发送。其中,协议栈又称为协议堆叠,是计算机网络协议的一个具体的软件实现。
客户端/服务端将应用程序/业务会话产生的数据帧打包、合包成网络报文的过程可以称为封装。对应的,将网络报文解包成数据帧的过程可以称为解封装。
下面以图4A和图4B所示的内容为例,示例性的介绍客户端/服务端依据不同协议将数据帧封装成网络报文的过程。
图4A为本申请涉及的封装过程的一个示例性示意图。
图4A所示的内容为客户端与服务端建立的连接为有线连接时,客户端/服务端将数据帧封装成网络报文的过程。图4B所示的内容为客户端与服务端建立的连接为无线连接时,客户端与服务端将数据封装成网络报文的过程。
如图4A所示,客户端/服务端上的应用程序/业务会话不断的生成数据帧,并将数据帧写入本地的缓存中。在某一时刻,客户端/服务端上的缓冲中存储有数据帧1、数据帧2、数据帧3、数据帧4和数据帧5。客户端/服务端上的TCP协议栈,基于数据帧的大小,将数据帧1、数据帧2、数据帧3合包、打包成一个TCP报文。在生成TCP报文后,将该TCP报文打包成IP报文,并将该IP报文打包成以太网报文。该以太网报文可以称为网络报文。
值得说明的是,为了降低TCP/IP协议等协议字段的开销,协议栈会在路径最大传输单元(path maximum transmission unit,PMTU)/最大传输单元(maximum transmission unit,PMTU)和剩余带宽允许的条件下,尽可能的将多个数据帧封装成一个报文。
图4B为本申请涉及的封装过程的一个示例性示意图。
如图4B所示,与图4A所示内容类似的,客户端/服务端上的缓存存储有数据帧1、数据帧2、数据帧3、数据帧4和数据帧5。客户端/服务端上的TCP协议栈,基于数据帧的大小,将数据帧1、数据帧2、数据帧3合包、打包成一个TCP报文。在生成TCP报文后,将该TCP报文打包成IP报文。与图4A所示内容不同的是,根据物理层/链路层遵守的协议,客户端上的协议栈将IP报文打包成802.11报文。该802.11报文可以称为网络报文。
在图4A以及图4B所示的内容中,客户端/服务端将一个或多个数据帧合包、打包成网络报文的过程称为封装网络报文。
值得说明的是,在P2P场景中,客户端与服务端建立近距离通信服务如蓝牙连接时,由于蓝牙连接并不基于TCP/UDP协议,客户端/服务端将数据帧合包、打包成蓝牙网络报文的过程称为封装网络报文。
下面以图5所示的内容为例,示例性的介绍客户端/服务端封装网络报文,以及网络报文在无线网络、有线网络中的传输过程。
图5为本申请涉及的数据传输过程中网络报文变化的一个示例性示意图。
如图5所示,作为客户端的手机将数据发送给作为服务端的服务器。首先,手机通过蜂窝移动通信将数据发送给基站。在该过程中,网络报文的表现形式可以是802.11网络报文。其次,基站收到802.11网络报文后,会对网络报文进行解封装、封装,使得网络报文的格式符合有线网传输的格式;基站可以将802.11网络报文解封装、封装为以太网网络报文,并将 数据发送到服务器。
其次,下面介绍利用多路径提高客户端与服务端之间通信性能的两种方法。
当客户端与服务端建立的一个或多个连接支持多条路径传输数据时,客户端可以分配不同/相同的网络报文到不同的路径上进行传输,进而利用多条路径提高传输的稳健性或者提高传输的速率。
其中,第一种利用多路径提高客户端与服务端之间通信性能的方法包括:
客户端与服务端建立连接后,当客户端与服务店的协议栈支持MPTCP协议时,可以认为客户端与服务端之间存在M条可用的路径。假设M条可用的路径之间互相独立。此时,客户端向服务端发送数据时,可以通过M条路径发送相同的数据。在该情况下,客户端与服务端之间的传输延时为M条路径中最小传输延时路径的传输延时。
下面以图6所示的内容为例,示例性的介绍当客户端通过M条路径发送相同的数据时,客户端与服务端之间的通信性能。
图6为本申请涉及的一种多路径聚合的数据发送方法。
客户端与服务端通过多条路径进行数据传输时,以客户端发送数据为例,客户端可以在多条路径上发送相同的数据,以提高传输的稳健性。
如图6所示,客户端与服务端均支持MPTCP协议,且客户端与服务端之间通过两条路径进行数据传输。客户端发送的网络报文包括四个数据帧。结合图3所示的内容,可以认为当服务端成功接收到四个网络报文时,才能完成一帧画面的传输。
数据在路径1上的传输过程中,当服务端接收到网络报文1以及网络报文2后,发现网络报文2中的部分数据帧丢失,需要重传网络报文2。此时即使网络报文3、网络报文4到达服务端也不会被服务端读取。在该情况下,认为四个网络报文成功被传输且被正确读取到服务端的延时为T delay1,且认为路径1上数据的平均传输速率为V 1
数据在路径2上的传输过程中,当服务端接收并读取网络报文1、网络报文2、网络报文3后,网络报文4由于路径堵塞并没有被传输到服务端。在该情况下,认为四个网络报文成功被传输且被正确读取到服务端的延时为T delay2,且认为路径2上数据的平均传输速率为V 2
结合数据在路径1、路径2上的传输过程,可以认为四个网络报文成功被传输且被正确读取到服务端的延时为min(T delay1,T delay2)。其中,min()为取最小值。客户端与服务端之间数据传输的速率为max(V 1,V 2),其中max()为最大值。
很显然的,若数据在某一条路径的通信性能在大部分时间内优于其他路径时,图6所示的方法相当于仅仅在该通信性能较为优良的路径上进行数据传输。
其中,第二种利用多路径提高客户端与服务端之间通信性能的方法包括:
客户端与服务端建立连接后,当客户端与服务店的协议栈支持MPTCP协议时,可以认为客户端与服务端之间存在M条可用的路径。当服务端发送数据到客户端前,需要对不同路径的通信性能进行评估。服务端依据评估的结果,将待发送的数据分配到不同的路径上。
下面以图7所示的内容为例,示例性的介绍当服务端依据评估的结果,将数据分配到M条可用的路径上,进行传输,以提高传输的速率和稳健性。
图7为本申请涉及的另一种多路径聚合的数据发送方法。
服务端通过多条路径将数据发送到客户端前,可以对各条路径的通信性能进行评估,根据评估的结果将待发送的数据分配到不同路径上进行传输。
如图7所示,服务端与客户端之间有两条可供数据传输的路径。服务端对路径1和路径2进行通信性能的评估,预测未来一段时间内数据在路径2上传输速率为路径1上传输速率的0.6倍。结合图3所示的内容,当认为一帧画面的数据由8个网络报文承载,分别为网络报文1至网络报文8。
在该情况下,服务端可以将网络报文1、网络报文2、网络报文3、网络报文4、网络报文5分配到路径1上进行传输;将网络报文6、网络报文7、网络报文8分配到路径2上进行传输。
值得说明的是,图7所示的方法也可以称为基于最小传输时间延迟(min Round-Trip-Time,minRTT)的方法。
图8A与图8B为图7所示的方法在不同情况下通信性能比较的一个示例性示意图。
如图8A所示,若在传输网络报文1至网络报文8时,路径1与路径2的实际通信性能与预测通信性能相同,则一帧画面的数据可以同时达到客户端。路径1上的数据每隔0.03秒被成功发送到客户端,在第0.15秒时服务端将网络报文1、网络报文2、网络报文3、网络报文4、网络报文5全部发送到客户端;路径2上的数据每隔0.05秒成功发送到客户端,在第0.15秒时,在第0.15秒时服务端将网络报文6、网络报文7、网络报文8全部发送到客户端。
所以,在第0.15秒时,客户端接收到网络报文1至网络报文8,可以将网络报文解封装为数据帧,并交由客户端的上层业务处理。若路径1上数据的传输速率为V 1,路径2上数据的传输速率为V 2,则在图8A所示的情况中,服务端与客户端之间数据传输的速率为V 1+V 2
若在传输网络报文1至网络报文8时,路径1与路径2的实际通信性能与预测通信性能不同,则该方法会降低数据传输的速率。
如图8B所示,若数据在路径1上的传输速率与数据在路径2上的传输速率相同,即服务端在路径1和路径2上均每隔0.05秒成功将一个网络报文发送到客户端。在该情况下,由于服务端将更多的数据分配到了路径1上进行传输,客户端收到网络报文1、网络报文2、网络报文3、网络报文6、网络报文7、网络报文8时,还需要等待接收网络报文4和网络报文5。
进一步的,若路径1发生了严重的数据堵塞,则客户端在很长一段时间内都无法收到完整一帧画面的数据。
可以理解的是,结合图6所示的内容,可以得知,客户端/服务端无需预测数据在不同路径上的通信性能,简单的通过多条路径传输数据仅仅可以提高传输的稳健性,相当于通过路径复用,不同的路径互为备份进而避免由于单条路径数据堵塞导致的数据传输延时过高。
可以理解的是,结合图7、图8A、图8B所示的内容,若客户端/服务端可以准确预测一个或多个报文传输时刻时,多条路径的瞬时通信性能,则可以将网络报文分配到不同的路径上传输以提高传输速率。但是,客户端/服务端虽然可以预测一段时间内数据在不同路径上的平均传输速率,但是很难准确预测某个时刻时数据在不同路径上的瞬时传输速率,并且当路径的链路层/物理层包括无线信道时,进一步加剧了预测数据在路径上瞬时传输速率。当客户端/服务端依据不准确的数据传输速率对网络报文进行分配时,会降低客户端与服务端之间的数据传输速率,并且该数据传输速率有可能低于图6所示的方法。
再次,对比图6、图7、图8A以及图8B所示的两种方法,下面以图9A、图9B、图9C为例,示例性的介绍本申请提供的多路径聚合调度方法。
图9A至图9B为本申请实施例提供的多路径聚合调度方法的一个示例性示意图。
对于客户端/服务端来说,可以将多个网络报文,分别以不同的顺序排列进行发送。例如,在与图6以及图7所示场景类似的场景中,服务端将承载一帧画面数据的8个网络报文发送给客户端,分别为网络报文1至网络报文8。客户端与服务端均支持MPTCP协议,且客户端与服务端之间通过两条路径进行数据传输。
如图9A所示,服务端按照网络报文1、网络报文2、网络报文3、网络报文4、网络报文5、网络报文6、网络报文7、网络报文8的顺序将网络报文分配到路径1上进行传输;对应的,服务端按照网络报文8、网络报文7、网络报文6、网络报文5、网络报文4、网络报文3、网络报文2、网络报文1的顺序将网络报文分配到路径2上进行传输。
当客户端完整收到网络报文后,即客户端接收到网络报文1至网络报文8后,可以回复确认(ACK)报文给服务端,使得客户端停止冗余发送。
如图9B所示,由于数据在路径1的传输速率与数据在路径2上的传输速率不同,客户端在路径1上接收到网络报文1至网络报文5,在路径2上接收到网络报文8至网络报文6。在接收到网络报文1至网络报文8后,客户端通过发送确认报文告知服务端已经完整的接收到了网络报文1至网络报文8,服务端则会停止在路径1上发送网络报文6至网络报文8,并且服务端会停止在路径2上发送网络报文5至网络报文1。
若路径1上数据的传输速率为V 1,路径2上数据的传输速率为V 2,则在图8A所示的情况中,服务端与客户端之间数据传输的速率为V 1+V 2
本申请实施例提供的多路径聚合调度方法使得不同路径上网络报文排列顺序的互相关最小化。其中,互相关可以用于衡量两个序列之间的相关性。若两个序列的相似度越高,则这两个序列的互相关越大;若两个序列的相似度越低,则这两个序列的互相关越小。当网络报文在不同路径上传输的顺序的互相关越小时,对于任一个网络报文,当该网络报文在任意一条路径的传输的顺序位于整体的后半段时,则必然在其他的某一条路径上该报文的传输顺序位于整体的前半段。
对于图6所示的多路径聚合的数据发送方法,该方法中第一条路径上传输网络报文的顺序Order 1为:[1,2,3,4],该方法中第二条路径上传输网络报文的顺序Order 2为[1,2,3,4]。此时,Order 1与Order 2的互相关为1,互相关最大。
或者,本申请实施例提供的多路径聚合调度方法使得不同路径上网络报文排列顺序的距离最大化。即,可以认为不同路径上N个网络报文的排列顺序为N维空间中的一个坐标。例如,Order 1为:[1,2,3,4]时,Order 1对应的坐标为四维空间中的(1,2,3,4),则与之最远的坐标为(4,3,2,1),即Order 1为:[4,3,2,1]。又例如,Order 1为:[1,3,2,4]时,Order 1对应的坐标为四维空间中的(1,3,2,4),则与之最远的坐标为(4,2,3,1),即Order 1为:[4,2,3,1]。
若将本申请提供过的多路径聚合调度方法实施在图6所示的场景中,当第一条路径上传输网络报文的顺序Order 1=[1,2,3,4]时,在该情况下,第二条路径上传输网络报文的顺序Order 2=[4,3,2,1]。或者,当第一条路径上传输网络报文的Order 1=[1,3,2,4]时,在该情况下,第二条路径上传输网络报文的顺序Order 2=[4,2,3,1]。或者,当第一条路径上传输的报文Order 1=[1,4,2,3]时,在该情况下,第二条路径上传输网络报文的顺序Order 2=[3,2,4,1]。或者,当第一条路径上传输的报文Order 1=[1,4,3,2]时,在该情况下,第二条路径上传输网络报文的顺序Order 2=[2,3,1,4]。
值得说明的是,若客户端与服务端之间存在2条路径,则使得不同路径上网络报文排列顺序的互相关最小化的方式为:网络报文在第一条路径上的排列顺序为网络报文在第二条路径上的排列顺序的逆序。若客户端与服务端之间存在多条路径,则需要使不同路径上网络报文排列顺序的互相关的和最小化。
可选的,在本申请一些实施例中,可以使不同路径上网络报文的排列顺序的互相关小于1;或者可以使不同路径上网络报文的排列顺序对应的距离大于1。
可以理解的是,首先,本申请提供的多路径聚合调度方法不需要预测不同路径的通信性能,降低了预测路径通信性能的开销,也避免了预测路径通信性能不准确带来的负面影响。其次,本申请提供的多路径聚合调度方法避免了冗余发包,节省了网络带宽。
结合图3所示的场景,对比图6所示的方法与本申请提供的多路径聚合调度方法。
图9C为在图3所示场景中实施本申请实施例中多路径聚合调度方法的一个示例性示意图。
考虑到上文中图6所示的方法相当于在一条通信性能较好的路径上传输网络报文,故可以认为图3所示的场景为实施图6所示多路径聚合数据发送方法下的场景。其中,图9C所示场景中,路径1上数据传输速率与图3场景中数据传输速率相同。
当认为图3所示的场景中第二帧画面的数据三个网络报文分别为网络报文1、网络报文2、网络报文3时,实施本申请实施例提供的多路径聚合调度方法,使得网络报文2在路径2上进行传输。只要网络报文2的传输延时低于0.16秒,就可以保证在0.16秒内将网络报文1、网络报文2、网络报文3传输到手机。
很明显的,使用本申请实施例提供的多路径聚合调度方法,相比于图6所示的方法,可以极大的提高网络报文的传输的速率。
值得说明的是,在TCP协议以及基于TCP协议的其他协议中,网络报文的顺序可以是网络报文的TCP序号。
值得说明的是,网络报文的顺序可以是客户端封装获取网络报文的顺序。
再次,下面结合图10所示的内容,示例性的介绍本申请提供的多路径聚合调度方法的协议栈架构。
图10为本申请实施例提供多路径聚合调度方法的协议栈架构的一个示例性示意图。
如图10所示,客户端上的应用程序产生数据后通过接口将多个数据帧发送给用户态协议栈以及内核态协议栈。用户态协议栈可以用L2缓冲暂时存储应用程序产生的多个数据帧。根据协议栈能力的不同,可以将数据帧封装为对应协议的网络报文。其中,用户态协议栈中主要负责将数据帧合包后的报文分配到不同的路径上,并将报文传输到内核态协议栈。内核态协议栈接收到报文后,依据协议进行打包成适合传输的格式,通过不同路径对应的网卡发送到服务端。
其中,内核态协议栈中可以包括KCP协议/虚拟局域网中继协议(virtual local area network trunkiung protocol)。其中,用户态协议栈可以包括TCP/UDP协议、IP协议等。其中,L2缓冲、L1缓冲、L0缓冲均可以从客户端上的内存中申请获取。
如图10所示,路径1可以为WiFi的2.4GHz频段所提供的无线信道,路径2可以为WiFi的5GHz频段所提供用于P2P场景下点对点传输的5G信道。
对应的,服务端通过不同路径对应的网卡上接收到数据后,网卡上的数据首先被送到内核态协议栈上开始进行解封装。内核态协议栈对数据进行初步解封装后,得到对应协议的报 文,传输给用户态协议栈。用户态协议栈在接收内核态协议栈发送的数据过程中,会不断的确认是否已经完整的收到8个网络报文。当确认已经收到8个网络报文后,服务端可以向客户端发送确认报文报文,进而使得客户端停止发送网络报文,进而避免冗余发送。客户端可收到确认报文报文后,会及时丢弃L0缓冲池中的网络报文4、网络报文5、网络报文6、网络报文7、网络报文8;以及会及时丢弃L1缓冲池中的网络报文1、网络报文2、网络报文3。
可以理解的是,支持多路径传输协议的客户端/服务端的协议栈均可以实施本申请提供的多路径聚合调度方法。
再次,下面以图11所示的内容为例,以客户端向服务端发送数据为例,示例性的介绍本申请提供的多路径聚合调度方法。
图11为本申请实施例提供的多路径聚合调度方法的一个示例性示意图。
图11中步骤S1103为可选的步骤。
如图11所示,本申请实施例提供的多路径聚合调度方法包括:
S1101:客户端上的应用程序/业务会话产生数据帧,并将数据帧封装为网络报文。
具体的,可以响应于用户的操作,客户端上的应用程序/业务会话产生一个或多个数据帧。根据客户端与服务端之间协议栈的能力,按照对应协议的规定将数据帧封装为网络报文。执行步骤S1102。
其中,将数据帧封装为网络报文的过程可以参考术语解释中(4)业务会话、网络报文中的文字描述,此处不再赘述。
其中,客户端与服务端上的协议栈均支持多路径传输协议。
S1102:客户端将网络报文按照不同的顺序分配到不同的路径上。
具体的,根据协议栈架构的不同,客户端可以将数据帧封装成网络报文后,将网络报文分配到不同的路径上;或者,客户端在将数据帧封装成网络报文的过程中,已经将网络报文分配到不同的路径上。结束。
可选的,在本申请一些实施例中,在执行步骤S1102后,可以执行步骤S1103。
其中,客户端在将网络报文分配到不同的路径前,可以根据协议栈预先知道当前可用的路径的数量。若可用的路径数量为M,此时主要有两种将网络报文分配到不同路径上的方法。
下面以图12A、图12B所示的内容为例,示例性的介绍如何将网络报文分配到不同的路径上。
客户端将数据帧封装为网络报文后,将网络报文依次分配到不同路径上。由于客户端生产数据帧是有顺序的,所以客户端封装得到网络报文也是有顺序的。其中,对于TCP协议以及基于TCP协议的高层协议来说,网络报文的顺序可以是TCP序号。
图12A为本申请实施例提供的网络报文分配方法的一个示例性示意图。
如图12A所示,客户端依次封装得到网络报文1、网络报文2、网络报文3、网络报文4、网络报文5、网络报文6、网络报文7、网络报文8。客户端在封装得到网络报文的过程中,按照封装的顺序,依次将网络报文放在路径1所对应的缓冲L1中,即网络报文在路径1上传输的顺序Order 1=[1,2,3,4,5,6,7,8]。对应的,客户端在封装得到网络报文8后,逆序将网络报文放在路径2所对应的缓冲L2中,即网络报文在路径2上传输的顺序Order 2=[8,7,6,5,4,3,2,1]。
值得说明的是,缓冲中的网络报文会被及时发送出来,在图12A所示的情况中,并不会 积压8个网络报文。
很显然的,当客户端实施如图12A所示的网络报文分配方法时,客户端需要封装一定数量的网络报文后,才能将网络报文分配到路径2上进行传输,有一定的延迟。虽然分配网络报文会造成一定的延迟,但是该延迟的数量级低于路径堵塞造成传输时延的数量级,可以忽略不计。
进一步的,可以通过图12B所示的分配方法,降低客户端在分配网络报文上的延迟。
图12B为本申请实施例提供的网络报文分配方法的另一个示例性示意图。
如图12B所示,客户端将数据帧封装为网络报文后,交错的将网络报文分配在路径1和路径2上。即网络报文在路径1上的传输顺序Order 1=[1,3,5,7,8,6,4,2];网络报文在路径2上的传输顺序Order 2=[2,4,6,8,7,5,3,1]。
可以理解的是,在图12B所示的情况下,客户端可以及时将缓冲L0中的网络报文下发到缓冲L1、L2中。
在本申请一些实施例中,当服务端接收到网络报文1至网络报文8后,会回复确认报文给客户端,客户端清空缓冲L1中、缓冲L2中的剩余的网络报文1至网络报文8,避免了冗余发送。
例如,在图12A所示的情况中,在路径1上实际被传输的网络报文的顺序可能是Order 1=[1,2,3,4,5,6],在路径2上实际被传输的网络报文的顺序可能是Order 2=[8,7];在图12B所示的情况中,在路径1上实际被传输的网络报文的顺序可能是Order 1=[1,3,5],在路径2上实际被传输的网络报文的顺序可能是Order 2=[2,4,6,8,7]。
上文介绍了客户端将网络报文分配到不同路径上的两种主要方式。在本申请实施例中,可以认为客户端如何分配网络报文到不同路径上决定了网络报文在不同路径上传输的顺序。或者,也可以认为网络报文在不同路径上传输的顺序决定客户端如何将网络分配到不同路径上。
下面分别介绍客户端/服务端通过确定网络报文在不同路径上的传输的顺序,进而确定将网络报文分配到不同路径上的方式,以及介绍客户端通过确定网络报文分配到不同路径上的方式确定网络报文在不同路径上传输的顺序。
其一,客户端通过确定网络报文在不同路径上的传输的顺序,进而确定将网络报文分配到不同路径上的方式包括:
首先,客户端与服务端根据协议栈能力确定可以用来数据传输的路径的数量为M。
其次,客户端确定一个数据块中网络报文数量为N,其中一个数据块为本申请提供的多路径聚合调度方法的最小可处理单元。其中,网络报文为组成数据块的最小单元,一个数据块由至少两个网络报文组成。服务端接收到数据块可以完成至少一个功能。例如,在流媒体传输领域,一个数据块可以为一帧或多帧画面的数据;或者,客户端向服务端传输多个文件时,一个数据块可以为一个或多个文件的数据。
再次,客户端将数据块分为M块子数据块,分别记为M K,K=1,2,3,…,M。M K指代M个子数据块中的第K个子数据块。
其中,当数据块对应于一帧画面的数据时,子数据块可以对应于一帧画面数据中的一部分。例如,将一帧画面从上到下分为等分或不等分的M块子画面,则每一块子画面对应的数据为一个子数据块。
客户端可以建立一个M*M的数据矩阵A M*M,并借助数独算法将M个子数据块填入数据 矩阵,使得数据矩阵A M*M每一行中的数据不会出现重复的子数据块,以及使得A M*M每一列中的数据不会出现重复的子数据块。在该情况下,数据矩阵A M*M中第I行中子数据块的顺序为第I条路径上数据传输的顺序。
值得说明的是,数据矩阵A M*M中每一行以及每一列中的子数据块均能组成完整的数据块。
在本申请实施例中,子数据块内部的网络报文的排列顺序不同时,仍然认为是相同的子数据块。例如,子数据块1若为[网络报文1,网络报文2],则数据块[网络报文2,网络报文1]与子数据块1相同。
图13A与图13B为本申请实施例提供的数据矩阵的一个示例性示意图。
当M=3时,数据矩阵A M*M如图13A所示,其中第一行依次为子数据块1、子数据块2、子数据块3;第二行依次为子数据块3、子数据块1、子数据块2;第二行依次为子数据块2、子数据块3、子数据块1。
值得说明的是,M=2时,数据矩阵A 2*2的第一行依次为子数据块1、子数据块2;第二行为子数据块2、子数据块1。其中,数据矩阵A 2*2的每一行和每一列均组成完整的数据块,且没有冗余;数据矩阵A 2*2的第一行的子数据块1与第二行的子数据块2组成完成的数据块,数据矩阵A 2*2的第二行的子数据块1与第一行的子数据块2组成完成的数据块;数据矩阵A 2*2的第一行的子数据块1可以是第二行子数据块1的逆序排列,并且数据矩阵A 2*2的第一行的子数据块2可以是第二行子数据块2的逆序排列;每一行的子数据块的大小可以不一样。
数据矩阵A中包含网络报文如图13B所示,其中,第一行对应于第一条路径上网络报文传输的顺序为Order 1=[1,2,3,4,5,6,7,8];第二行所对应的第二条路径上网络报文传输的顺序为Order 2=[8,7,6,2,1,3,4,5],第三行所对应的第三条路径上网络报文传输的顺序为Order 3=[5,4,3,7,6,8,2,1]。
在本申请实施例中,矩阵A M*M上不同行中子数据块内部网络报文的顺序可以相同,也可以不同,即在不同路径上传输的子数据块内部的网络报文的顺序可以相同,也可以不同。
最后,客户端在确定网络报文在不同路径上的传输的顺序后,可以按照该顺序分配网络报文到不同的路径上。
值得说明的是,任一子数据块内部的网络报文可以不连续。例如子数据1以为[网络报文1,网络报文2],也可以为[网络报文1,网络报文8]。
其二,客户端通过确定网络报文分配到不同路径上的方法,进而确定将网络报文在不同路径上的传输的顺序包括:
首先,客户端与服务端根据协议栈能力确定可以用来数据传输的路径的数量为M。
其次,客户端将服务端按照封装得到网络报文的顺序依次将网络报文分配到不同的路径上。
再次,客户端可以重复K次分配已经封装得到的网络报文,其中K为小于M大于等于0的整数。其中,重复的K次分配需要保证在任一条路径上的网络报文不会重复。
图14A与图14B为本申请实施例提供的网络报文分配方式的一个示例性示意图。
如图14A所示,客户端在第一次分配网络报文时,依次交错分配网络报文。客户端在第U次分配网络报文时,由于客户端协议栈的缓冲中存有多个网络报文,无需等待可以直接分配到各个路径上。其中,U为大于1小于等于M的整数。例如,第一次分配时,当协议栈封装得到网络报文1后,协议栈可以不等待网络报文2的封装就马上将网络报文1分配到路径1上进行传输;当协议栈封装得到网络报文2后,协议栈可以不等待网络报文3的封装就马 上将网络报文2分配到路径2上进行传输。
例如,当M=3时,客户端第一次分配后,路径1上网络报文的传输的顺序为Order 1=[1,4,7,2,5,8,3,6],路径2上网络报文的传输的顺序为Order 1=[2,5,8,3,6,1,4,7],路径3上网络报文的传输的顺序为Order 1=[3,6,1,4,5,7,2,5,8]。
值得说明的是,若客户端与服务端之间的M条路径传输网络报文的速率相同,客户端第一次分配完网络报文后,不用重复分配网络报文;并且,考虑到至少有一条路径可以将数据成功从客户端传输到服务端,客户端第一次分配网络报文后,最多再分配M-1次网络报文即可以使得任一条路径上均传输有全部的网络报文,进而能够保证数据一定能够被传输到服务端。
如图14B所示,客户端在第一次分配网络报文中,在分配第M+1个网络报文时,可以确定所有路径的对应缓冲中数据是否已经发送出去。若某个路径上的网络报文以及发送出去,则可以优先向该路径分配网络报文。
例如,客户端在分配网络报文1、网络报文2、网络报文3后,在分配网络报文4前,可以判断路径1、路径2、路径3上的数据是否已经发送出去。当网络报文2已经发送出去时,客户端将网络报文4分配到路径2上进行传输;当网络报文1已经发送出去时,客户端将网络报文4分配到路径1上进行传输;当网络报文3已经发送出去时,客户端将网络报文4分配到路径3上进行传输。
S1103:服务端接收到完整数据后向客户端发送确认报文,客户端收到确认报文后将待发送的网络报文清空。
具体的,服务端在收到多个网络报文后,可以向客户端发送确认报文,该确认报文用于告知客户端已经收到了一个数据块所对应的全部网络报文,或者该确认报文用于告知客户端收到了那些报文。客户端在收到确认报文后将该确认报文所对应的全部网络报文丢弃,以避免冗余发送,进而减少对网络带宽的占用。
很显然的,在该情况下,客户端发送的网络报文的与实际传输的网络报文不完全相同。下文中,以发送顺序指代客户端对待发送网络报文的排序,以传输顺序指代客户端实际发送网络报文的顺序。
值得说明的是,对于TCP协议,以及基于TCP协议的上层协议来说,服务端收到一个网络报文后向客户端发送确认报文用于告知客户端已经收到了该网络报文。为了实施本申请实施例提供的多路径聚合调度方法,可以通过修改确认报文中的字段,以实现确认报文能够同时实现确认单个网络报文以及实现确认一个数据块。
当服务端的协议栈不能回复确认报文去告知客户端清空待发送的网络报文时,客户端可以选择降低冗余发送网络报文。
客户端向服务端传输网络报文前,可以询问服务端是否具有回复确认报文的能力,若没有,则可以降低冗余发送网络报文。客户端降低冗余发送网络报文包括:当客户端与服务端之间存在M条路径时,客户端实际为M-1倍冗余发送,可以均匀或非均匀降低每条路径上传输的网络报文的数量,进而降低冗余发送。
例如,客户端与服务端存在4条路径,待发送的网络报文为网络报文1至网络报文8。其中网络报文在不同路径上的发送顺序为Order 1=[1,2,3,4,5,6,7,8]、Order 2=[8,7,6,5,4,3,2,1]、Order 3=[3,4,7,8,1,2,5,6]、Order 4=[5,6,1,2,7,8,3,4]。客户端降低冗余发送后,网络报文在不同路径上的传输的顺序为Order 1=[1,2,3,4]、Order 2=[8,7,6,5]、Order 3=[3,4,7,8]、Order 4=[5,6,1,2]。在该情况下,客户端通过降低每条路径上传输报文的数量,从3倍冗余 发送降低为1倍冗余发送。
在本申请的一些实施例中,当服务端的协议栈不能恢复确认报文去告知客户端清空待发送的网络报文时,客户端可以降低冗余发送网路报文。
可以理解的是,客户端可以通过降低冗余发送,降低传输的网络报文的冗余量。
在本申请一些实施例中,当服务端的协议栈能够恢复确认报文去告知客户端已经接受到了哪些报文时,客户端可以不发送服务端已经接收到的网络报文。
再次,下面以图15A、图15B所示的内容为例,示例性的介绍不同场景中本申请提供的多路径聚合调度方法的实施方式。
其一,介绍远场场景中,本申请实施例提供的多路径聚合调度方法的实施方式。
图15A为本申请实施例提供的远场场景下实施多路径聚合调度方法的一个示例性示意图。
如图15A所示,当用户相隔万里进行视频通话时,可以使用本申请实施例提供的多路径聚合调度方法,降低视频通话的延迟,提高视频通话的流畅度,进而提高用户的体验。
手机B与手机A之间存在至少两条可用的路径。其一为路由器的WiFi对应的路径,称为路径1;其二为蜂窝移动通信功能对应的路径,称为路径2。
以手机B为例,当手机B作为客户端发送数据时,手机B通过摄像头获取连续的帧画面数据。例如,手机B每秒获取60帧画面数据,此时需要每16ms将一帧画面的数据从手机B传输到手机A。可以认为一帧画面的数据所对应的多个网络报文组成一个数据块。例如,一帧画面的数据对应为8个网络报文。
在该情况下,实施本申请实施例提供的多路径聚合调度方法,客户端在不同路径分配网络报文的发送顺序可以是:Order 1=[1,2,3,4,5,6,7,8],Order 2=[8,7,6,5,4,3,2,1];Order 1=[1,3,5,7,8,6,4,2],Order 2=[2,4,6,8,7,5,3,1];Order 1=[1,4,7,2,5,8,3,6],Order 2=[6,3,8,5,2,4,7,1];Order 1=[1,5,2,6,3,7,4,8],Order 2=[8,4,7,3,6,2,5,1];Order 1=[1,6,2,7,3,8,4,5],Order 2=[5,4,8,3,7,2,6,1];Order 1=[1,7,2,8,3,4,5,6],Order 2=[6,5,4,3,8,2,7,1]等。
在该情况下,实施本申请实施例提供的多路径聚合调度方法,由于服务端回复确认报文告知客户端清空未发送的网络报文,故网络报文在不同路径上的传输顺序可以是Order 1=[1],Order 2=[8,7,6,5,4,3,2,1];Order 1=[1,2],Order 2=[8,7,6,5,4,3];Order 1=[1,2,3],Order 2=[8,7,6,5,4];Order 1=[1,2,3,4],Order 2=[8,7,6,5];Order 1=[1,2,3,4,5],Order 2=[8,7,6];Order 1=[1,2,3,4,5,6],Order 2=[8,7];Order 1=[1,2,3,4,5,6,7],Order 2=[8];Order 1=[1],Order 2=[2,4,6,8,7,5,3]等。
其中,客户端在不同路径上分配网络报文的顺序,以及实际网络报文在路径上传输的顺序可以参考图9B、图12A、图12B、图14A中的文字描述,此处不再赘述。
其二,介绍近场场景中,本申请实施例提供的多路径聚合调度方法的实施方式。
图15B为本申请实施例提供的近场场景下实施多路径聚合调度方法的一个示例性示意图。
如图15B所示,在近场场景如P2P场景中,手机将屏幕上显示的内容投屏到到电视上。手机通过路由器提供的WiFi功能与电视建立连接。若手机与电视具有2.4GH频段+5GHz频段双Wi-Fi能力,或者具有5GHz频段+5GHz频段双Wi-Fi能力,则手机与电视之间具有多条可以用于传输的路径。
在该情况下,客户端可以实施本申请实施例提供的多路径聚合调度方法,使网络报文在不同路径上进行传输。
最后,介绍本申请实施例提供的电子设备。该电子设备可以是本申请实施例中的服务端, 或者可以是本申请实施例中的客户端。
图16为本申请实施例提供的电子设备的一个示例性硬件结构框图。
电子设备100可以是手机、平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificial intelligence,AI)设备、可穿戴式设备、车载设备、智能家居设备和/或智慧城市设备,本申请实施例对该电子设备的具体类型不作特殊限制。
电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuit sound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purpose input/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。I2S接口可以用于音频通信。PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。MIPI接口可以被用于连接处理器110与显示屏194,摄像头193 等外围器件。GPIO接口可以通过软件配置。USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。电源管理模块141用于连接电池142,充电管理模块140与处理器110。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wireless local area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code division multiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定 位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidou navigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。ISP用于处理摄像头193反馈的数据。
摄像头193用于捕获静态图像或视频。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。
内部存储器121可以包括一个或多个随机存取存储器(random access memory,RAM)和一个或多个非易失性存储器(non-volatile memory,NVM)。
随机存取存储器可以包括静态随机存储器(static random-access memory,SRAM)、动态随机存储器(dynamic random access memory,DRAM)、同步动态随机存储器(synchronous dynamic random access memory,SDRAM)、双倍资料率同步动态随机存取存储器(double data rate synchronous dynamic random access memory,DDR SDRAM,例如第五代DDR SDRAM一般称为DDR5SDRAM)等;
非易失性存储器可以包括磁盘存储器件、快闪存储器(flash memory)。
快闪存储器按照运作原理划分可以包括NOR FLASH、NAND FLASH、3D NAND FLASH等,按照存储单元电位阶数划分可以包括单阶存储单元(single-level cell,SLC)、多阶存储单元(multi-level cell,MLC)、三阶储存单元(triple-level cell,TLC)、四阶储存单元(quad-level cell,QLC)等,按照存储规范划分可以包括通用闪存存储(英文:universal flash storage,UFS)、嵌入式多媒体存储卡(embedded multi media Card,eMMC)等。
随机存取存储器可以由处理器110直接进行读写,可以用于存储操作系统或其他正在运行中的程序的可执行程序(例如机器指令),还可以用于存储用户及应用程序的数据等。
非易失性存储器也可以存储可执行程序和存储用户及应用程序的数据等,可以提前加载到随机存取存储器中,用于处理器110直接进行读写。
外部存储器接口120可以用于连接外部的非易失性存储器,实现扩展电子设备100的存储能力。外部的非易失性存储器通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部的非易失性存储器中。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。耳机接口170D用于连接有线耳机。压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。陀螺仪传感器180B可以用于确定电子设备100的运动姿态。气压传感器180C用于测量气压。磁传感器180D包括霍尔传感器。加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。距离传感器180F,用于测量距离。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。环境光传感器180L用于感知环境光亮度。指纹传感器180H用于采集指纹。温度传感器180J用于检测温度。触摸传感器180K,也称“触控器件”。骨传导传感器180M可以获取振动信号。
按键190包括开机键,音量键等。马达191可以产生振动提示。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。电子设备100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在电子设备100中,不能和电子设备100分离。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
图17为本申请实施例提供的电子设备100的一个示例性软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图17所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图17所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
系统可还可以包括网络库,应用程序层的任意一个应用程序可以通过调用网络库的方法、函数、接口实施本申请实施例提供的多路径聚合调度方法。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。内核层还包括网卡驱动,应用程序通过调用网络库的方法、函数、接口,使得网卡驱动按照本申请实施例提供过的多路径聚合调度方法去在不同路径上分配网络报文,提高数据传输的速率。
图18为本申请实施例提供的电子设备100的另一个示例性软件结构框图。
在一些实施例中,将系统分为四层,从上至下分别为应用层,框架层,系统服务层,以及内核层。
应用层包括系统应用和第三方非系统应用。
框架层为应用层的应用程序提供JAVA/C/C++/JS等多语言的用户程序框架和能力框架,以及各种软硬件服务对外开放的多语言框架API。
系统服务层包括:系统基本能力子系统集、基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集。
其中,系统基本能力子系统集支持操作系统在多设备上运行、调度、迁移等操作。系统基本能力子系统集可以包括:分布式软总线、分布式数据管理、分布式任务调度、公共基础 子系统等。系统服务层和框架层联合实现了多模输入子系统、图形子系统等。本申请提供的多路径聚合调度方法可以位于分布式软总线中。
其中,基础软件服务子系统集为操作系统提供公共的、通用的软件服务,可以包括:事件通知子系统、多媒体子系统等。
其中,增强软件服务子系统集为不同设备提供差异化的软件服务,可以包括:IOT专有业务子系统。
其中,硬件服务子系统集为操作系统提供硬件服务,可以包括:IOT专有硬件服务子系统。
值得说明的是,根据不同设备形态的部署环境,上述系统基本能力子系统集、基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集可以按照其他功能粒度进行重新划分。
内核层包括内核抽象层和驱动子系统。其中,内核抽象层包括多种内核,并且通过屏蔽多内核差异,对上层提供基础的内核能力,例如,线程/进程管理、内存管理、文件系统、网络管理等。其中,驱动子系统为软件开发者提供统一外设访问能力和驱动开发、管理框架。
在配置本申请提供的通信资源协作方法时,软件开发人员可以在分布式软总线、驱动子系统、IOT专有业务子系统或IOT专有硬件服务子系统中进行相关参数的配置。进而,应用层中的应用可以实施本申请提供的通信资源协作方法。
值得说明的是,根据操作系统的不同以及未来可能的升级换代,电子设备的软件结构可以根据操作系统进行其他方式的划分。
上述实施例中所用,根据上下文,术语“当…时”可以被解释为意思是“如果…”或“在…后”或“响应于确定…”或“响应于检测到…”。类似地,根据上下文,短语“在确定…时”或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定…”或“响应于确定…”或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘)等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。

Claims (22)

  1. 一种多路径聚合调度方法,其特征在于,包括:
    客户端与服务端之间存在N条路径,所述N条路径包括第一路径和第二路径,所述N为大于等于2的整数;
    所述客户端以第一顺序在所述第一路径上发送M个网络报文,所述M大于等于2的整数;
    所述客户段以第二顺序在所述第二路径上发送所述M个网络报文,所述第一顺序与所述第二顺序不同。
  2. 根据权利要求1所述的方法,其特征在于,所述方法还包括:
    所述N条路径还包括第三路径;
    所述客户端以第三顺序在所述第三路径上发送所述M个网络报文,所述第三顺序与所述第一顺序不同,所述第三顺序与所述第二顺序不同。
  3. 根据权利要求1或2所述的方法,其特征在于,所述第一顺序与所述第二顺序的距离最大。
  4. 根据权利要求1或2所述的方法,其特征在于,所述第一顺序与所述第二顺序的互相关最小。
  5. 根据权利要求2所述的方法,其特征在于,所述第一顺序、所述第二顺序、所述第三顺序两两之间的距离和最大。
  6. 根据权利要求2所述的方法,其特征在于,所述第一顺序、所述第二顺序、所述第三顺序两两之间的互相关的和最小。
  7. 根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
    所述客户端接收到确认报文后,所述客户端删除并停止发送所述M个网络报文。
  8. 根据权利要求1至7中任一项所述的方法,其特征在于,所述M个网络报文组成一个数据块,所述数据块用于完成特定的功能。
  9. 根据权利要求1至8中任一项所述的方法,其特征在于,所述M个网络报文没有重复。
  10. 一种多路径聚合调度方法,其特征在于,包括:
    客户端与服务端之间存在N条路径,所述N条路径包括第一路径和第二路径,所述N为大于等于2的整数;
    所述客户端在所述第一路径上发送M个网络报文,所述M个网络报文包括第一网络报文;
    所述客户段在所述第二路径上发送所述M个网络报文;
    所述第一网络报文位于所述第一路径上M个网络报文中的前半段;
    所述第一网络报文位于所述第二路径上M个网络报文中的后半段。
  11. 根据权利要求10所述的方法,其特征在于,所述M个网络报文还包括第二网络报文;所述第二网络报文位于所述第一路径上M个网络报文中的前1/N段;
    所述第二网络报文位于所述第二路径上M个网络报文中的后(N-1)/N段。
  12. 根据权利要求10所述的方法,其特征在于,所述M个网络报文还包括第二网络报文;所述第二网络报文位于所述第一路径上M个网络报文中的前1/N段;
    所述第二网络报文位于所述第二路径上M个网络报文中的后1/N段。
  13. 根据权利要求10至12中任一项所述的方法,其特征在于,所述M个网络报文组成至少一个数据块,所述数据块用于完成特定的功能。
  14. 根据权利要求10至13中任一项所述的方法,其特征在于,所述M个网络报文没有重复。
  15. 根据权利要求10至14中任一项所述的方法,其特征在于,所述方法还包括:
    所述客户端接收到确认报文后,所述客户端删除并停止发送所述M个网络报文。
  16. 一种多路径聚合调度方法,其特征在于,包括:
    客户端与服务端之间存在N条路径,所述N条路径包括第一路径和第二路径,所述N为大于等于2的整数;
    所述客户端在N条路径上分别重复的发送M个网络报文;
    所述第一路径上的前K个网络报文与所述第二路径上的前L个网络报文之间没有重复的网络报文,所述K与L的和等于M,所述K为正整数,所述L为正整数。
  17. 根据权利要求14所述的方法,其特征在于,所述第一路径上的前K个网络报文与所述第二路径上的后K个网络报文相同;
    所述第一路径上的前K个网络报文的排列顺序与所述第二路径上的后K个网络报文排列顺序不同。
  18. 根据权利要求14或15所述的方法,其特征在于,所述第一路径上的前K个网络报文的排列顺序是所述第二路径上的后K个网络报文的排列顺序的逆序。
  19. 根据权利要求14至16中任一项所述的方法,其特征在于,还包括:
    所述N条路径还包括第三路径;
    所述第一路径上的前R个网络报文、所述第二路径上的前S个网络报文和所述第三路径上前T个网络报文之间没有重复,所述R、S和T的和等于M,所述R为正整数,所述S为正整数;所述T为正整数。
  20. 一种多路径聚合调度方法,其特征在于,包括:
    客户端与服务端之间存在N条路径,所述N条路径包括第一路径和第二路径,所述N为大于等于2的整数;
    当所述客户端没有接收到所述服务端发送的确认报文前,所述客户端以第一顺序发送M个网络报文,所述客户端以第二顺序发送所述第二网络报文;
    当所述客户端接收到所述服务端发送的确认报文后,所述客户端停止在所述N条路径上发送所述M个网络报文;
    所述网络报文用于确认服务端收到了所述M个网络报文。
  21. 一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器和存储器;
    所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行如权利要求1至19中任一项所述的方法。
  22. 一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行如权利要求1至19中任一项所述的方法。
PCT/CN2022/079181 2021-03-04 2022-03-04 多路径聚合调度方法及电子设备 WO2022184157A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP22762619.9A EP4277229A1 (en) 2021-03-04 2022-03-04 Multipath aggregation scheduling method and electronic device

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
CN202110241645.4 2021-03-04
CN202110241645 2021-03-04
CN202110603312.1 2021-05-31
CN202110603312 2021-05-31
CN202110870615.XA CN115037671B (zh) 2021-03-04 2021-07-30 多路径聚合调度方法及电子设备
CN202110870615.X 2021-07-30

Publications (1)

Publication Number Publication Date
WO2022184157A1 true WO2022184157A1 (zh) 2022-09-09

Family

ID=83117882

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/079181 WO2022184157A1 (zh) 2021-03-04 2022-03-04 多路径聚合调度方法及电子设备

Country Status (3)

Country Link
EP (1) EP4277229A1 (zh)
CN (1) CN115037671B (zh)
WO (1) WO2022184157A1 (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180234335A1 (en) * 2017-02-14 2018-08-16 Alcatel-Lucent Usa Inc. Multipath transport communications
CN108881008A (zh) * 2017-05-12 2018-11-23 华为技术有限公司 一种数据传输的方法、装置和系统
CN110351186A (zh) * 2018-04-02 2019-10-18 苹果公司 多路径传输控制协议代理在蜂窝网络中的使用

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101124754A (zh) * 2004-02-19 2008-02-13 佐治亚科技研究公司 用于并行通信的系统和方法
CN101888664B (zh) * 2010-06-25 2013-04-24 陶洋 无线自组织网络中视频多路并行传送方法
CN103378957B (zh) * 2012-04-27 2018-05-18 北京三星通信技术研究有限公司 一种harq-ack信息传输方法
CN104618236A (zh) * 2015-01-21 2015-05-13 网宿科技股份有限公司 一种加速网络的并行数据传输系统及方法
GB2543840B (en) * 2015-10-30 2019-04-03 Canon Kk Method and server for managing the transmission of packets over a plurality of paths
US10511521B2 (en) * 2016-08-03 2019-12-17 Anchorfree Inc. System and method for virtual multipath data transport
CN106850426B (zh) * 2017-01-10 2020-09-29 北京交通大学 基于部分数据重叠的多路径数据传输方法和装置
CN109428801A (zh) * 2017-08-23 2019-03-05 北京华为数字技术有限公司 报文发送方法及装置
EP3522479B1 (en) * 2018-02-06 2020-04-01 Deutsche Telekom AG Techniques for efficient multipath transmission
WO2019217578A1 (en) * 2018-05-09 2019-11-14 Netsurion Llc Multi-path user datagram protocol
CN110429963B (zh) * 2019-06-29 2022-10-28 西南电子技术研究所(中国电子科技集团公司第十研究所) 星上多路径数据传输方法
CN112306941B (zh) * 2019-07-26 2023-12-08 华为技术有限公司 一种传输方法、电子设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180234335A1 (en) * 2017-02-14 2018-08-16 Alcatel-Lucent Usa Inc. Multipath transport communications
CN108881008A (zh) * 2017-05-12 2018-11-23 华为技术有限公司 一种数据传输的方法、装置和系统
CN110351186A (zh) * 2018-04-02 2019-10-18 苹果公司 多路径传输控制协议代理在蜂窝网络中的使用

Also Published As

Publication number Publication date
CN115037671A (zh) 2022-09-09
EP4277229A1 (en) 2023-11-15
CN115037671B (zh) 2023-08-04

Similar Documents

Publication Publication Date Title
WO2021052437A1 (zh) 一种应用启动方法及电子设备
WO2020207354A1 (zh) 任务处理方法、装置、终端以及计算机可读存储介质
WO2021218864A1 (zh) 一种Wi-Fi点对点业务的实现方法以及相关设备
WO2021258809A1 (zh) 数据同步方法、电子设备和计算机可读存储介质
WO2021175300A1 (zh) 数据传输方法、装置、电子设备和可读存储介质
WO2022199509A1 (zh) 应用执行绘制操作的方法及电子设备
WO2021052415A1 (zh) 资源调度方法及电子设备
WO2021098533A1 (zh) 一种连接建立方法及终端设备
CN110636554B (zh) 数据传输方法及装置
CN111316604B (zh) 一种数据传输方法及电子设备
US20230273872A1 (en) Application debuging method and electronic device
WO2022184157A1 (zh) 多路径聚合调度方法及电子设备
CN115309547B (zh) 处理异步binder调用的方法和装置
US20240163204A1 (en) Multipath aggregation scheduling method and electronic device
CN113950033B (zh) 数据传输方法和设备
WO2021114950A1 (zh) 一种多路http通道复用的方法及终端
WO2022100141A1 (zh) 插件管理方法、系统及装置
WO2022179468A1 (zh) 数据处理方法及电子设备
CN114979021B (zh) 数据处理方法及电子设备
WO2023001208A1 (zh) 多文件同步方法及电子设备
WO2020140186A1 (zh) 无线音频系统、音频通讯方法及设备
WO2022228102A1 (zh) 通信资源调度方法和电子设备
CN116684036B (zh) 数据处理方法及相关装置
CN117270917B (zh) 一种软件升级方法及电子设备
WO2022228015A1 (zh) 一种数据传输方法及设备

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022762619

Country of ref document: EP

Effective date: 20230809

WWE Wipo information: entry into national phase

Ref document number: 18548907

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE