WO2021114950A1 - 一种多路http通道复用的方法及终端 - Google Patents

一种多路http通道复用的方法及终端 Download PDF

Info

Publication number
WO2021114950A1
WO2021114950A1 PCT/CN2020/125442 CN2020125442W WO2021114950A1 WO 2021114950 A1 WO2021114950 A1 WO 2021114950A1 CN 2020125442 W CN2020125442 W CN 2020125442W WO 2021114950 A1 WO2021114950 A1 WO 2021114950A1
Authority
WO
WIPO (PCT)
Prior art keywords
http
data
mobile terminal
channel
server
Prior art date
Application number
PCT/CN2020/125442
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 CN202080086659.7A priority Critical patent/CN114830608A/zh
Priority to EP20897766.0A priority patent/EP4054132A4/en
Publication of WO2021114950A1 publication Critical patent/WO2021114950A1/zh
Priority to US17/839,154 priority patent/US20220311700A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/04Wireless resource allocation
    • 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/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]

Definitions

  • This application relates to the field of communication technology, and in particular to a method and terminal for multiplexing multiple HTTP channels.
  • the Multipath Hypertext Transfer Protocol (MPHTTP) technology can realize the simultaneous transmission of data through multiple HTTP channels between the terminal and the server, and improve the efficiency of data transmission between the terminal and the server. For example, when a user uses a terminal to watch high-definition video, VR resources, etc., the terminal can use Wi-Fi network and cellular network to transmit the data requested by the user at the same time, so as to provide greater transmission bandwidth and make the download rate of high-definition video, VR resources, etc. Faster, less lag and smoother when users watch.
  • the terminal In the prior art, receiving an instruction from a user to operate an application program, the terminal generates an original HTTP request (request) according to the user's operating instruction. Then, according to the range byte field carried in the original HTTP request, the original HTTP request is split into multiple HTTP requests. And they are sent in different HTTP channels. These multiple HTTP requests are respectively used to request data in different byte ranges requested in the original HTTP request in different HTPP channels, that is, to realize the simultaneous transmission of data through multiple HTTP channels and improve the efficiency of data transmission.
  • the original HTTP request generated by the terminal does not carry the range byte field, so multiple HTTP channels cannot be reused.
  • the method and terminal for multiplexing multiple HTTP channels provided by the present application can implement multiplexing multiple HTTP channels between the terminal and the server, and improve the efficiency of data transmission between the terminal and the server.
  • a method for multiplexing multiple HTTP channels which includes: a mobile terminal sends a first HTTP request to a first server through a first HTTP channel for requesting first data; and the mobile terminal receives through a first HTTP channel The first HTTP response returned by the first server, the first HTTP response carrying the size of the first data; after receiving the first HTTP response, the mobile terminal receives the first part of the first data sent by the first server through the first HTTP channel; After receiving the first HTTP response, if the size of the first data is greater than the first threshold, the mobile terminal generates a second HTTP request according to the first HTTP request and the size of the first data, and sends the second HTTP request to the second server through the second HTTP channel.
  • the mobile terminal sends a second HTTP request to request the second part of the first data; the mobile terminal receives the second part of the first data returned by the second server through the second HTTP channel; the mobile terminal receives the first part of the first data After that, the mobile terminal sends control signaling to the first server through the first HTTP channel for disconnecting the first HTTP channel.
  • the mobile terminal after receiving the first HTTP response, on the one hand, receives the first part of the first data through the first HTTP channel;
  • the second HTTP channel sends a second HTTP request for requesting the second part of the first data.
  • the mobile terminal generates the second HTTP request according to the first HTTP request and the size of the first data, including the mobile terminal generating the second HTTP request according to some parameters in the first HTTP request and the size of the first data.
  • the URI in the second HTTP request is set according to the Uniform Resource Identifier (URI) in the first HTTP request
  • the host field in the second HTTP request is set to the address of the second server.
  • the mobile terminal can also send a second HTTP request through the second HTTP communication to request the second part of the first data.
  • multiple HTTP channels are implemented to receive the first data, the bandwidth for transmitting the first data is increased, and the transmission rate for transmitting the first data is improved. For example: when the first data is video data, the user will experience less lag and smoother viewing.
  • the content length field in the first HTTP response carries the size of the first data.
  • the method further includes: the mobile terminal determines the first threshold according to the size of the first data, the bandwidth of the first HTTP channel, the bandwidth of the second HTTP channel, and the round-trip delay of the second HTTP channel; or , The mobile terminal determines the first threshold according to the size of the first data, the bandwidth of the first HTTP channel, and the round-trip delay of the second HTTP channel.
  • the method further includes: the mobile terminal determines the first data of the first data according to the size of the first data, the bandwidth of the first HTTP channel, the bandwidth of the second HTTP channel, and the round-trip delay of the second HTTP channel.
  • the byte range of the second part is the mobile terminal determines the first data of the first data according to the size of the first data, the bandwidth of the first HTTP channel, the bandwidth of the second HTTP channel, and the round-trip delay of the second HTTP channel.
  • the byte range of the second part of the first data starts from the middle byte of the first data to the last byte of the first data.
  • the method further includes: the mobile terminal carries the byte range of the second part of the first data in the range byte field of the second HTTP request.
  • the mobile terminal sends control signaling to the first server through the first HTTP channel for disconnecting the first HTTP channel, specifically: the mobile terminal sends HTTP RESET to the first server through the first HTTP channel Message or TCP RESET message.
  • the method before the mobile terminal sends the first HTTP request to the first server through the first HTTP channel, the method further includes: the mobile terminal determines that the estimated data flow completion time FCT of the first HTTP channel is the smallest.
  • the estimated FCT may include the time consumed by the first HTTP channel to establish a connection, the time consumed by the first HTTP channel to transmit data of a unit size, and the delay of data transmission. It can be seen that the predicted FCT can reflect the rate and efficiency of data transmission through the HTTP channel.
  • the method further includes: before the mobile terminal sends the first HTTP request to the first server through the first HTTP channel, the mobile terminal sends the first domain name system DNS through the first HTTP channel according to the first HTTP request.
  • the request is used to request the address of the first server; and the second domain name system DNS request is sent through the second HTTP channel to request the address of the second server.
  • the method further includes: before the mobile terminal sends the first HTTP request to the first server through the first HTTP channel, the mobile terminal establishes the first HTTP channel through the Wi-Fi network, and through the cellular network Establish a second HTTP channel; or, before the mobile terminal sends the first HTTP request to the first server through the first HTTP channel, the mobile terminal establishes the first HTTP channel through the Wi-Fi network; the mobile terminal communicates to the first HTTP channel through the second HTTP channel Before the second server sends the second HTTP request, the mobile terminal establishes a second HTTP channel through the cellular network.
  • the method further includes: after the mobile terminal sends a TCP RESET message to the first server through the first HTTP channel, for disconnecting the first HTTP channel, the mobile terminal re-establishes the first HTTP channel.
  • a method for multiplexing multiple HTTP channels includes: a mobile terminal sends a first HTTP request to a first server through a first HTTP channel for requesting first data; the mobile terminal receives a first HTTP request through the first HTTP channel A first HTTP response returned by the server, the first HTTP response carrying the size of the first data; after receiving the first HTTP response, the mobile terminal receives the first part of the first data sent by the first server through the first HTTP channel; After receiving the first HTTP response, the mobile terminal generates a second HTTP request according to the first HTTP request, the size of the first data, and the first ratio, and sends the second HTTP request to the second server through the second HTTP channel for Request the second part of the first data; the data size of the second part of the first data is the product of the first data size and the first ratio; the mobile terminal receives the first data returned by the second server through the second HTTP channel The second part: After the mobile terminal receives the first part of the first data, the mobile terminal sends the first control signaling to the first server through the first HTTP channel for disconnecting
  • the mobile terminal after receiving the first HTTP response, on the one hand, receives the first part of the first data through the first HTTP channel, and on the other hand, determines whether it needs to send data to the mobile terminal according to the size of the first data carried in the first HTTP response
  • the second HTTP channel sends a second HTTP request for requesting the second part of the first data.
  • the mobile terminal generates the second HTTP request according to the first HTTP request and the size of the first data, including the mobile terminal generating the second HTTP request according to some parameters in the first HTTP request and the size of the first data.
  • the URI in the second HTTP request is set according to the URI in the first HTTP request
  • the host field in the second HTTP request is set to the address of the second server. Write the determined byte range of the second part of the first data into the range bytes field in the second HTTP request.
  • the method further includes: the mobile terminal re-establishes the first HTTP channel; the mobile terminal sends a third HTTP request to the first server through the first HTTP channel to request the second data; An HTTP channel receives the second HTTP response returned by the first server, and the second HTTP response carries the size of the second data; after receiving the second HTTP response, the mobile terminal receives the second data sent by the first server through the first HTTP channel After receiving the second HTTP response, the mobile terminal receives the first part of the first data through the first HTTP channel and receives the first part of the first data according to the first time and the second HTTP channel to receive the second part of the first data.
  • Adjust the size of the first ratio for two durations generate a fourth HTTP request according to the third HTTP request, the size of the second data, and the adjusted first ratio, and send the fourth HTTP request to the second server through the second HTTP channel, Used to request the second part of the second data; the data size of the second part of the second data is the product of the second data size and the adjusted first ratio; the mobile terminal receives the return from the second server through the second HTTP channel The second part of the second data; after the mobile terminal receives the first part of the second data, the mobile terminal sends a second control signaling to the first server through the first HTTP channel for disconnecting the first HTTP channel.
  • the mobile terminal adjusts the first ratio according to the first time length consumed by the first HTTP channel to receive the first part of the first data and the second time length consumed by the second HTTP channel to receive the second part of the first data Specifically: if the difference between the first duration and the second duration is greater than the second threshold, increase the first ratio; if the difference between the first duration and the second duration is less than the second threshold, decrease The first ratio; if the difference between the first duration minus the second duration is equal to the second threshold, the first ratio is maintained.
  • a mobile terminal including: a processor, a memory, and a touch screen.
  • the memory and the touch screen are coupled to the processor.
  • the memory is used to store computer program codes.
  • the computer program codes include computer instructions. Computer instructions to enable the mobile terminal to execute the multiple HTTP channel multiplexing method described in the foregoing aspects and any one of the implementation manners.
  • a chip system including a processor, and when the processor executes an instruction, the processor executes the method described in the foregoing aspects and any one of the possible implementation manners.
  • a device in a fifth aspect, is provided, the device is included in a mobile terminal, and the device has a function of realizing the behavior of the mobile terminal in any of the foregoing aspects and possible implementation manners.
  • This function can be realized by hardware, or by hardware executing corresponding software.
  • the hardware or software includes at least one module or unit corresponding to the above-mentioned functions. For example, a detection module or unit, a display module or unit, a determination module or unit, and a generation module or unit, etc.
  • a computer-readable storage medium including computer instructions, which, when the computer instructions run on a terminal, cause the terminal to execute the method described in the above aspect and any one of its possible implementation manners.
  • a computer program product is provided.
  • the computer program product runs on a computer, the computer executes the method described in the above aspects and any one of the possible implementation manners.
  • FIG. 1 is a schematic structural diagram of a communication system provided by an embodiment of this application.
  • FIG. 2 is a first structural diagram of a mobile terminal provided by an embodiment of this application.
  • FIG. 3 is a second structural diagram of a mobile terminal provided by an embodiment of this application.
  • FIG. 4 is a schematic flowchart of a method for multiplexing multiple HTTP channels according to an embodiment of the application
  • FIG. 5 is a schematic diagram of graphical user interfaces of some mobile terminals provided by embodiments of the application.
  • FIG. 6 is a schematic structural diagram of a chip system provided by an embodiment of the application.
  • words such as “exemplary” or “for example” are used as examples, illustrations, or illustrations. Any embodiment or design solution described as “exemplary” or “for example” in the embodiments of the present application should not be construed as being more preferable or advantageous than other embodiments or design solutions. To be precise, words such as “exemplary” or “for example” are used to present related concepts in a specific manner.
  • first and second are only used for descriptive purposes, and cannot be understood as indicating or implying relative importance or implicitly indicating the number of indicated technical features. Thus, the features defined with “first” and “second” may explicitly or implicitly include one or more of these features. In the description of the embodiments of the present application, unless otherwise specified, “plurality” means two or more.
  • FIG. 1 it is a schematic structural diagram of a communication system provided by an embodiment of this application.
  • the communication system includes a mobile terminal 100 and an electronic device 200.
  • various applications can be installed and run on the mobile terminal 100, such as video applications (e.g., video playback applications, live broadcast applications, etc.), browsers, VR/AR related applications, image applications, and so on.
  • video applications e.g., video playback applications, live broadcast applications, etc.
  • browsers e.g., VR/AR related applications, image applications, and so on.
  • VR/AR related applications e.g., VR/AR related applications, image applications, and so on.
  • the mobile terminal 100 may establish a connection with the electronic device 200 (such as a router, etc.) through a wired or wireless manner (such as Wi-Fi), and access the network 1 (such as the Internet) through the electronic device 200, and connect to the network 1.
  • the servers corresponding to each application interact.
  • the mobile terminal 100 may access the network 2 (for example, a mobile communication network) through the base station 300, and interact with servers corresponding to various applications in the network 2.
  • the mobile terminal 100 accesses the network 1 through the network 2, and interacts with servers corresponding to various applications in the network 1.
  • the mobile terminal 100 may also establish a connection with the electronic device 400 (such as a companion Wi-Fi device, or referred to as a mobile Wi-Fi device) through a wireless manner (such as Wi-Fi), and use the electronic device 400,
  • the base station 300 accesses the network 2 and interacts with servers corresponding to various applications in the network 2.
  • the mobile terminal 100 accesses the network 1 through the network 2, and interacts with servers corresponding to various applications in the network 1.
  • the embodiment of the present application can implement multiplexing of multiple HTTP channels, so the mobile terminal 100 has the ability to establish at least two HTTP channels.
  • the mobile terminal 100 has Wi-Fi communication capabilities and cellular network communication capabilities.
  • the mobile terminal 100 may establish at least two HTTP channels, one HTTP channel is connected to the network 1 through the electronic device 200, and the other HTTP channel is connected to the channel of the network 2 through the base station 300.
  • the Wi-Fi communication capability of the mobile terminal 100 can itself support the establishment of two HTTP channels.
  • two HTTP channels are connected to the channel of the network 1 through the electronic device 200.
  • one HTTP channel is connected to the channel of the network 1 through the electronic device 200, and the other two HTTP channels are connected to the channel of the network 2 through the base station 300.
  • This application does not specifically limit the number of HTTP channels established by the mobile terminal 100 and the manner adopted by each channel.
  • the mobile terminal When the user operates the corresponding application on the mobile terminal 100, the mobile terminal will generate a corresponding first HTTP request, and send the first HTTP request to one of the above HTTP channels (denoted as the first HTTP channel) The corresponding server. After receiving the HTTP request, the server returns a corresponding first HTTP response (response) to the mobile terminal through the first HTTP channel, and returns the data requested by the mobile terminal 100 (denoted as the first data).
  • the server After receiving the HTTP request, the server returns a corresponding first HTTP response (response) to the mobile terminal through the first HTTP channel, and returns the data requested by the mobile terminal 100 (denoted as the first data).
  • the server after the server sends the first HTTP response through the first HTTP channel, it starts to send the first data to the mobile terminal 100. Since the multiple HTTP channel multiplexing method provided by the embodiment of the present application uses other HTTP channels to transmit the first data together, the data transmitted by the server through the first HTTP channel is recorded as the first part of the first data here.
  • the mobile terminal 100 After receiving the first HTTP response, the mobile terminal 100 also needs to perform the first HTTP response according to the size of the first data contained in the first HTTP response (for example, the content length in the first HTTP response (content- length) field) to generate at least one second HTTP request for requesting part of the data in the first data (which can be recorded as the fixed second part of the first data). Then, at least one second HTTP request is transmitted to the server through a channel other than the first HTTP channel (denoted as the second HTTP channel), and the server will return the second part of the first data on the second HTTP channel.
  • the first HTTP channel and the second HTTP channel jointly complete the first data requested by the mobile terminal this time, which increases the transmission bandwidth of the first data and improves the efficiency of data transmission.
  • the mobile terminal 100 in this application may be a mobile phone, a tablet computer, a personal computer (PC), a personal digital assistant (personal digital assistant, PDA), a smart watch, a netbook, a wearable electronic device, and augmented reality.
  • Technology augmented reality, AR
  • VR virtual reality
  • in-vehicle equipment smart cars, smart audio, robots, etc.
  • this application does not impose special restrictions on the specific form of the mobile terminal.
  • FIG. 2 shows a schematic structural diagram of the mobile terminal 100.
  • the mobile terminal 100 may include a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (USB) interface 130, a charging management module 140, a power management module 141, a battery 142, an antenna 1, and an antenna 2.
  • Mobile communication module 150 wireless communication module 160, audio module 170, speaker 170A, receiver 170B, microphone 170C, earphone 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, etc.
  • SIM Subscriber identification module
  • the sensor module 180 may include a pressure sensor, a gyroscope sensor, an air pressure sensor, a magnetic sensor, an acceleration sensor, a distance sensor, a proximity light sensor, a fingerprint sensor, a temperature sensor, a touch sensor, an ambient light sensor, a bone conduction sensor, etc.
  • the structure illustrated in the embodiment of the present invention does not constitute a specific limitation on the mobile terminal 100.
  • the mobile terminal 100 may include more or fewer components than shown, or combine certain components, or split certain components, or arrange different components.
  • the illustrated components can be implemented in hardware, software, or a combination of software and hardware.
  • the processor 110 may include one or more processing units.
  • the processor 110 may include an application processor (AP), a modem processor, a graphics processing unit (GPU), and 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 (NPU), etc.
  • AP application processor
  • modem processor modem processor
  • GPU graphics processing unit
  • image signal processor image signal processor
  • ISP image signal processor
  • controller video codec
  • digital signal processor digital signal processor
  • DSP digital signal processor
  • NPU neural-network processing unit
  • the different processing units may be independent devices or integrated in one or more processors.
  • the controller can generate operation control signals according to the instruction operation code and timing signals to complete the control of fetching instructions and executing instructions.
  • a memory may also be provided in the processor 110 to store instructions and data.
  • the memory in the processor 110 is a cache memory.
  • the memory can store 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 directly called from the memory. Repeated accesses are avoided, the waiting time of the processor 110 is reduced, and the efficiency of the system is improved.
  • 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 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 (USB) interface, etc.
  • I2C integrated circuit
  • I2S integrated circuit built-in audio
  • PCM pulse code modulation
  • PCM pulse code modulation
  • UART universal asynchronous transceiver receiver/transmitter
  • 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, which includes a serial data line (SDA) and a serial clock line (SCL).
  • the processor 110 may include multiple sets of I2C buses.
  • the processor 110 may be coupled to the touch sensor 180K, charger, flash, camera 193, etc., respectively through different I2C bus interfaces.
  • the processor 110 may couple the touch sensor 180K through an I2C interface, so that the processor 110 and the touch sensor 180K communicate through the I2C bus interface to implement the touch function of the mobile terminal 100.
  • the I2S interface can be used for audio communication.
  • the processor 110 may include multiple sets of I2S buses.
  • the processor 110 may be coupled with the audio module 170 through an I2S bus to implement communication between the processor 110 and the audio module 170.
  • the audio module 170 may transmit audio signals to the wireless communication module 160 through an I2S interface, so as to realize the function of answering calls through a Bluetooth headset.
  • the PCM interface can also be used for audio communication to sample, quantize and encode analog signals.
  • the audio module 170 and the wireless communication module 160 may be coupled through a PCM bus interface.
  • the audio module 170 may also transmit audio signals to the wireless communication module 160 through the PCM interface, so as to realize the function of answering calls through the Bluetooth headset. Both the I2S interface and the PCM interface can be used for audio communication.
  • the UART interface is a universal serial data bus used for asynchronous communication.
  • the bus can be a two-way communication bus. It converts the data to be transmitted between serial communication and parallel communication.
  • the UART interface is generally used to connect the processor 110 and the wireless communication module 160.
  • the processor 110 communicates with the Bluetooth module in the wireless communication module 160 through the UART interface to realize the Bluetooth function.
  • the audio module 170 may transmit audio signals to the wireless communication module 160 through a UART interface, so as to realize the function of playing music through a Bluetooth headset.
  • the MIPI interface can be used to connect the processor 110 with the display screen 194, the camera 193 and other peripheral devices.
  • the MIPI interface includes a camera serial interface (camera serial interface, CSI), a display serial interface (display serial interface, DSI), and so on.
  • the processor 110 and the camera 193 communicate through a CSI interface to implement the shooting function of the mobile terminal 100.
  • the processor 110 and the display screen 194 communicate through a DSI interface to realize the display function of the mobile terminal 100.
  • the GPIO interface can be configured through software.
  • the GPIO interface can be configured as a control signal or as a data signal.
  • the GPIO interface can be used to connect the processor 110 with the camera 193, the display screen 194, the wireless communication module 160, the audio module 170, the sensor module 180, and so on.
  • the GPIO interface can also be configured as an I2C interface, I2S interface, UART interface, MIPI interface, etc.
  • the USB interface 130 is an interface that complies with the USB standard specification, and specifically may be a Mini USB interface, a Micro USB interface, a USB Type C interface, and so on.
  • the USB interface 130 can be used to connect a charger to charge the mobile terminal 100, and can also be used to transfer data between the mobile terminal 100 and peripheral devices. It can also be used to connect earphones and play audio through earphones. This interface can also be used to connect to other mobile terminals, such as AR devices.
  • the interface connection relationship between the modules illustrated in the embodiment of the present invention is merely a schematic description, and does not constitute a structural limitation of the mobile terminal 100.
  • the mobile terminal 100 may also adopt different interface connection modes or a combination of multiple interface connection modes in the foregoing embodiments.
  • the charging management module 140 is used to receive charging input from the charger.
  • the charger can be a wireless charger or a wired charger.
  • the charging management module 140 may receive the charging input of the wired charger through the USB interface 130.
  • the charging management module 140 may receive the wireless charging input through the wireless charging coil of the mobile terminal 100. While the charging management module 140 charges the battery 142, it can also supply power to the mobile terminal through the power management module 141.
  • the power management module 141 is used to connect the battery 142, the charging management module 140 and the processor 110.
  • the power management module 141 receives input from the battery 142 and/or the charge management module 140, and supplies power to the processor 110, the internal memory 121, the display screen 194, the camera 193, and the wireless communication module 160.
  • the power management module 141 can also be used to monitor battery capacity, battery cycle times, battery health status (leakage, impedance) and other parameters.
  • the power management module 141 may also be provided in the processor 110.
  • the power management module 141 and the charging management module 140 may also be provided in the same device.
  • the wireless communication function of the mobile terminal 100 may be implemented by the antenna 1, the antenna 2, the mobile communication module 150, the wireless communication module 160, the modem processor, and the baseband processor.
  • the antenna 1 and the antenna 2 are used to transmit and receive electromagnetic wave signals.
  • Each antenna in the mobile terminal 100 can be used to cover a single or multiple communication frequency bands. Different antennas can also be reused to improve antenna utilization.
  • Antenna 1 can be multiplexed as a diversity antenna of a wireless local area network.
  • the antenna can be used in combination with a tuning switch.
  • the mobile communication module 150 may provide a wireless communication solution including 2G/3G/4G/5G and the like applied to the mobile terminal 100.
  • the mobile communication module 150 may include at least one filter, a switch, a power amplifier, a low noise amplifier (LNA), and the like.
  • the mobile communication module 150 can receive electromagnetic waves by the antenna 1, and perform processing such as filtering, amplifying and transmitting the received electromagnetic waves to the modem processor for demodulation.
  • the mobile communication module 150 can also amplify the signal modulated by the modem processor, and convert it into electromagnetic waves for radiation via 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 and at least part of the modules of the processor 110 may be provided in the same device.
  • 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.
  • the demodulator then transmits the demodulated low-frequency baseband signal to the baseband processor for processing.
  • the application processor outputs a sound signal through an audio device (not limited to the speaker 170A, the receiver 170B, etc.), or displays an image or video through the display screen 194.
  • the modem processor may be an independent device.
  • the modem processor may be independent of the processor 110 and 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 mobile terminal 100 including wireless local area networks (WLAN) (such as wireless fidelity (Wi-Fi) networks), bluetooth (BT), and global navigation satellites. System (global navigation satellite system, GNSS), frequency modulation (FM), near field communication (NFC), infrared technology (infrared, IR) and other wireless communication solutions.
  • 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 may also receive a signal to be sent from the processor 110, perform frequency modulation, amplify, and convert it into electromagnetic waves to radiate through the antenna 2.
  • the antenna 1 of the mobile terminal 100 is coupled with the mobile communication module 150, and the antenna 2 is coupled with the wireless communication module 160, so that the mobile terminal 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 (wideband 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 (GPS), global navigation satellite system (GLONASS), Beidou navigation satellite system (BDS), quasi-zenith satellite system (quasi -zenith satellite system, QZSS) and/or satellite-based augmentation systems (SBAS).
  • GPS global positioning system
  • GLONASS global navigation satellite system
  • BDS Beidou navigation satellite system
  • QZSS quasi-zenith satellite system
  • SBAS satellite-based augmentation systems
  • the mobile terminal 100 implements a display function through a GPU, a display screen 194, and an application processor.
  • the GPU is an image processing microprocessor, which is connected to the display screen 194 and the application processor.
  • the GPU is used to perform mathematical and geometric calculations and is used for graphics rendering.
  • the processor 110 may include one or more GPUs that execute program instructions to generate or change display information.
  • the display screen 194 is used to display images, videos, and the like.
  • the display screen 194 includes a display panel.
  • the display panel can use liquid crystal display (LCD), organic light-emitting diode (OLED), active matrix organic light-emitting diode or active-matrix organic light-emitting diode (active-matrix organic light-emitting diode).
  • LCD liquid crystal display
  • OLED organic light-emitting diode
  • active-matrix organic light-emitting diode active-matrix organic light-emitting diode
  • AMOLED flexible light-emitting diode (FLED), Miniled, MicroLed, Micro-oLed, quantum dot light-emitting diode (QLED), etc.
  • the mobile terminal 100 may include one or N display screens 194, and N is a positive integer greater than one.
  • the mobile terminal 100 can implement a shooting function through an ISP, a camera 193, a video codec, a GPU, a display screen 194, and an application processor.
  • the ISP is used to process the data fed back from the camera 193. For example, when taking a picture, the shutter is opened, the light is transmitted to the photosensitive element of the camera through the lens, the light signal is converted into an electrical signal, and the photosensitive element of the camera transmits the electrical signal to the ISP for processing and is converted into an image visible to the naked eye.
  • ISP can also optimize the image noise, brightness, and skin color. ISP can also optimize the exposure, color temperature and other parameters of the shooting scene.
  • the ISP may be provided in the camera 193.
  • the camera 193 is used to capture still images or videos.
  • the object generates an optical image through the lens and is projected to the photosensitive element.
  • the photosensitive element may be a charge coupled device (CCD) or a complementary metal-oxide-semiconductor (CMOS) phototransistor.
  • CMOS complementary metal-oxide-semiconductor
  • the photosensitive element converts the optical signal into an electrical signal, and then transfers the electrical signal to the ISP to convert it into a digital image signal.
  • ISP outputs digital image signals to DSP for processing.
  • DSP converts digital image signals into standard RGB, YUV and other formats of image signals.
  • the mobile terminal 100 may include 1 or N cameras 193, and N is a positive integer greater than 1.
  • Digital signal processors are used to process digital signals. In addition to digital image signals, they can also process other digital signals. For example, when the mobile terminal 100 selects a frequency point, the digital signal processor is used to perform Fourier transform on the energy of the frequency point.
  • Video codecs are used to compress or decompress digital video.
  • the mobile terminal 100 may support one or more video codecs. In this way, the mobile terminal 100 can play or record videos in multiple encoding formats, such as: moving picture experts group (MPEG) 1, MPEG2, MPEG3, MPEG4, and so on.
  • MPEG moving picture experts group
  • MPEG2 MPEG2, MPEG3, MPEG4, and so on.
  • NPU is a neural-network (NN) computing processor.
  • NN neural-network
  • applications such as intelligent cognition of the mobile terminal 100 can be realized, such as image recognition, face recognition, voice recognition, text understanding, and so on.
  • the external memory interface 120 may be used to connect an external memory card, such as a Micro SD card, to expand the storage capacity of the mobile terminal 100.
  • the external memory card communicates with the processor 110 through the external memory interface 120 to realize the data storage function. For example, save music, video and other files in an external memory card.
  • the internal memory 121 may be used to store computer executable program code, where the executable program code includes instructions.
  • the internal memory 121 may include a storage program area and a storage data area.
  • the storage program area can store an operating system, an application program (such as a sound playback function, an image playback function, etc.) required by at least one function, and the like.
  • the data storage area can store data (such as audio data, phone book, etc.) created during the use of the mobile terminal 100.
  • the internal memory 121 may include a high-speed random access memory, and may also include a non-volatile memory, such as at least one magnetic disk storage device, a flash memory device, a universal flash storage (UFS), and the like.
  • the processor 110 executes various functional applications and data processing of the mobile terminal 100 by running instructions stored in the internal memory 121 and/or instructions stored in a memory provided in the processor.
  • the mobile terminal 100 can implement audio functions through the audio module 170, the speaker 170A, the receiver 170B, the microphone 170C, the earphone interface 170D, and the application processor. For example, music playback, recording, etc.
  • the audio module 170 is used to convert digital audio information into an analog audio signal for output, and is also used to convert an analog audio input into a digital audio signal.
  • the audio module 170 can also be used to encode and decode audio signals.
  • the audio module 170 may be provided in the processor 110, or part of the functional modules of the audio module 170 may be provided in the processor 110.
  • the speaker 170A also called “speaker” is used to convert audio electrical signals into sound signals.
  • the mobile terminal 100 can listen to music through the speaker 170A, or listen to a hands-free call.
  • the receiver 170B also called “earpiece” is used to convert audio electrical signals into sound signals.
  • the mobile terminal 100 answers a call or voice message, it can receive the voice by bringing the receiver 170B close to the human ear.
  • the microphone 170C also called “microphone”, “microphone”, is used to convert sound signals into electrical signals.
  • the user can make a sound by approaching the microphone 170C through the human mouth, and input the sound signal into the microphone 170C.
  • the mobile terminal 100 may be provided with at least one microphone 170C.
  • the mobile terminal 100 may be provided with two microphones 170C, which can implement noise reduction functions in addition to collecting sound signals.
  • the mobile terminal 100 may also be provided with three, four or more microphones 170C to collect sound signals, reduce noise, identify sound sources, and realize directional recording functions.
  • the earphone interface 170D is used to connect wired earphones.
  • the earphone interface 170D may be a USB interface 130, or a 3.5mm open mobile terminal platform (OMTP) standard interface, or a cellular telecommunications industry association (cellular telecommunications industry association of the USA, CTIA) standard interface.
  • OMTP open mobile terminal platform
  • CTIA cellular telecommunications industry association
  • the button 190 includes a power button, a volume button, and so on.
  • the button 190 may be a mechanical button. It can also be a touch button.
  • the mobile terminal 100 may receive key input, and generate key signal input related to user settings and function control of the mobile terminal 100.
  • the motor 191 can generate vibration prompts.
  • the motor 191 can be used for incoming call vibration notification, and can also be used for touch vibration feedback.
  • touch operations applied to different applications can correspond to different vibration feedback effects.
  • Acting on touch operations in different areas of the display screen 194, the motor 191 can also correspond to different vibration feedback effects.
  • Different application scenarios for example: time reminding, receiving information, alarm clock, games, etc.
  • the touch vibration feedback effect can also support customization.
  • the indicator 192 can be an indicator light, which can be used to indicate the charging status, power change, and can also be used to indicate messages, missed calls, notifications, and so on.
  • the SIM card interface 195 is used to connect to the SIM card.
  • the SIM card can be inserted into the SIM card interface 195 or pulled out from the SIM card interface 195 to achieve contact and separation with the mobile terminal 100.
  • the mobile terminal 100 may support 1 or N SIM card interfaces, and N is a positive integer greater than 1.
  • the SIM card interface 195 can support Nano SIM cards, Micro SIM cards, SIM cards, etc.
  • the same SIM card interface 195 can insert multiple cards at the same time. The types of the multiple cards can 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 may also be compatible with external memory cards.
  • the mobile terminal 100 interacts with the network through the SIM card to implement functions such as call and data communication.
  • the mobile terminal 100 adopts an eSIM, that is, an embedded SIM card.
  • the eSIM card can be embedded in the mobile terminal 100 and cannot be separated from the mobile terminal 100.
  • the software system of the mobile terminal 100 may adopt a layered architecture, an event-driven architecture, a micro-core architecture, a micro-service architecture, or a cloud architecture.
  • the embodiment of the present invention exemplarily illustrates the software structure of the mobile terminal 100 by taking an Android system with a layered architecture as an example.
  • FIG. 3 is a block diagram of the software structure of the mobile terminal 100 according to an embodiment of the present invention.
  • the layered architecture divides the software into several layers, and each layer has a clear role and division of labor. Communication between layers through software interface.
  • the Android system is divided into four layers, from top to bottom, the application layer, the application framework layer, the Android runtime and system library, and the kernel layer.
  • the application layer can include a series of application packages.
  • the application package may include applications such as camera, gallery, calendar, call, map, navigation, WLAN, Bluetooth, music, video, short message, etc.
  • some applications need to request a large amount of traffic from the server when running, for example, a video application has a large amount of traffic when the requested high-definition or ultra-high-definition video or the like is requested.
  • a map application also has a lot of traffic when updating three-dimensional map data.
  • the traffic requested by the game application is very large.
  • the multiple HTTP channel multiplexing provided by the embodiments of this application can increase the bandwidth during data transmission, improve data transmission efficiency, achieve fast downloading speed, and freeze when users watch. Fewer and smoother experience.
  • 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 can include a window manager, a content provider, a view system, a phone manager, a resource manager, a notification manager, and so on.
  • the window manager is used to manage window programs.
  • the window manager can obtain the size of the display screen, determine whether there is a status bar, lock the screen, take a screenshot, etc.
  • the content provider is used to store and retrieve data and make these data accessible to applications.
  • the data may include videos, images, audios, phone calls made and received, browsing history and bookmarks, phone book, etc.
  • the view system includes visual controls, such as controls that display text, controls that display pictures, and so on.
  • the view system can be used to build applications.
  • the display interface can be composed of one or more views.
  • a display interface that includes a short message notification icon may include a view that displays text and a view that displays pictures.
  • the phone manager is used to provide the communication function of the mobile terminal 100. For example, the management of the call status (including connecting, hanging up, etc.).
  • the resource manager provides various resources for the application, such as localized strings, icons, pictures, layout files, video files, and so on.
  • the notification manager enables the application to display notification information in the status bar, which can be used to convey notification-type messages, and it can automatically disappear after a short stay without user interaction.
  • the notification manager is used to notify download completion, message reminders, etc.
  • the notification manager can also be a notification that appears in the status bar at the top of the system in the form of a chart or a scroll bar text, such as a notification of an application running in the background, or a notification that appears on the screen in the form of a dialog window. For example, text messages are prompted in the status bar, a prompt sound is issued, the mobile terminal vibrates, and the indicator light flashes.
  • Android Runtime includes core libraries and virtual machines. Android runtime is responsible for the scheduling and management of the Android system.
  • the core library consists of two parts: one part is the function functions that the java language needs to call, and the other part is the core library of Android.
  • the application layer and application framework layer run in a virtual machine.
  • 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 life cycle management, stack management, thread management, security and exception management, and garbage collection.
  • the system library can include multiple functional modules. For example: surface manager (surface manager), media library (Media Libraries), three-dimensional graphics processing library (for example: OpenGL ES), 2D graphics engine (for example: SGL), etc.
  • the system library may also include a multiplexing module.
  • the multiplexing module can be called to implement multiple HTTP channels for transmitting large-volume data, thereby improving the transmission efficiency of large-volume data.
  • an HTTP request (which may be referred to as an original HTTP request) sent by an application at the application layer is received
  • a copy of the original HTTP request may be made.
  • the HTTP response returned by the server is received
  • the Content-length field carried in the response is obtained.
  • the copied HTTP request and the Content-length field generate requests for other HTTP channels, which are used to request simultaneous transmission of part of the requested data in the original HTTP request on other HTTP channels, thereby realizing multiple HTTP channels to transmit large-volume data together , Improve transmission efficiency.
  • the multiplexing module may also be located in each application module of the application layer. That is to say, the multiplexing module in each application module can be used to realize the multiplexing of multiple HTTP channels when the application requests data, so as to improve the data transmission efficiency of the application.
  • the embodiment of the application does not limit this.
  • the surface manager is used to manage the display subsystem and provides a combination 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 multiple 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, synthesis, and layer processing.
  • the 2D graphics engine is a drawing engine for 2D drawing.
  • the kernel layer is the layer between hardware and software.
  • the kernel layer contains at least display driver, camera driver, audio driver, and sensor driver.
  • the kernel layer further includes a TCP/IP protocol stack, which is used to encapsulate messages generated by upper-layer applications and generate messages that comply with the relevant inter-network communication protocol for transmission to the corresponding server through the network. Correspondingly, it is also used to parse the message sent from the server received from the network, generate a message that can be parsed by the upper application, and send it to the upload application for further processing.
  • a TCP/IP protocol stack which is used to encapsulate messages generated by upper-layer applications and generate messages that comply with the relevant inter-network communication protocol for transmission to the corresponding server through the network.
  • it is also used to parse the message sent from the server received from the network, generate a message that can be parsed by the upper application, and send it to the upload application for further processing.
  • the kernel layer also includes Wi-Fi driver and Modem driver.
  • the Wi-Fi driver can be used to establish and disconnect the Wi-Fi link between the mobile terminal 100 and the electronic device 200 or the electronic device 400, and use the Wi-Fi link to transmit messages.
  • the modem driver can be used to establish and disconnect the mobile communication link between the mobile terminal 100 and the base station 300, and use the mobile communication to transmit messages.
  • FIG. 4 a schematic flow diagram of a method for multiplexing multiple HTTP channels provided by an embodiment of this application is as follows:
  • the mobile terminal sends a first HTTP request to a first server through a first HTTP channel, for requesting first data.
  • an application is installed on the mobile terminal, and the user can instruct the mobile terminal to request data from the first server corresponding to the application by operating the application.
  • a user operating a video application is taken as an example for description.
  • the mobile terminal After receiving the user's operation of the playback control corresponding to the related video in the video application, the mobile terminal generates a first HTTP request for requesting to obtain the first data corresponding to the video from the first server corresponding to the video application.
  • video applications can communicate using protocols such as HTTP1/1.1/HTTP2.
  • the video application of the mobile terminal sends the first HTTP request to the first HTTP request through the multiplexing module of the framework layer, the TCP/IP protocol stack of the kernel layer, and the modem driver or Wi-Fi driver.
  • the first HTTP request carries a Uniform Resource Identifier (URI) or a Uniform Resource Locator (URL), which is used to indicate the network address of the first data requested by the mobile terminal .
  • URI Uniform Resource Identifier
  • URL Uniform Resource Locator
  • the mobile terminal may send a Domain Name System (DNS) request (such as a standard DNS request or HTTP DNS request) through the first HTTP channel to resolve the first data stored in the first data.
  • DNS Domain Name System
  • IP address IP address
  • the first HTTP request is sent through the first HTTP channel to request the first data from the first server.
  • the first HTTP request does not carry the range of the requested first data.
  • the first HTTP request does not carry the range byte (range byte, or range bytes, or range: bytes) field of the first data.
  • range byte range byte, or range bytes, or range: bytes
  • the method provided by the embodiment of the present application can realize multiplexing of multiple HTTP channels, and for details, please refer to the following description.
  • the mobile terminal may save a copy of the first HTTP request, so that when subsequent HTTP requests for other HTTP channels are generated according to the first HTTP request, the values of some fields in the first HTTP request may be directly used. For example, URI or URL, etc.
  • the mobile terminal can establish at least two HTTP channels.
  • the mobile terminal may select one of the at least two HTTP channels (for example, the channel with the smallest estimated data flow completion time (FCT)) as the first HTTP channel for transmitting the first HTTP request.
  • FCT estimated data flow completion time
  • the estimated FCT may include the time consumed by the first HTTP channel to establish a connection, the time consumed by the first HTTP channel to transmit data of a unit size, and the delay of data transmission. It can be seen that the predicted FCT can reflect the rate and efficiency of data transmission through the HTTP channel.
  • a specific method for calculating FCT reference may be made to related algorithms in the art, which is not limited in the embodiment of the present application.
  • the mobile terminal may also select one of the at least two HTTP channels as the first HTTP channel based on other principles.
  • a preset HTTP channel is selected as the first HTTP channel, for example, a Wi-Fi channel is preferentially selected.
  • the HTTP channel that has established a connection is selected as the first HTTP channel. Since the established HTTP channel of the connection can save the time consuming when establishing the connection, it is beneficial to improve the efficiency of transmitting the first data.
  • the mobile terminal receives the first HTTP response sent by the first server through the first HTTP channel, where the first HTTP response includes the size of the first data.
  • the first HTTP response carries the length of the data to be returned, that is, the size of the first data. For example, the value of the content length (content length) field in the first HTTP response.
  • the mobile terminal After receiving the first HTTP response, the mobile terminal receives the first part of the first data sent by the first server through the first HTTP channel.
  • the mobile terminal After receiving the first HTTP response, on the one hand, the mobile terminal can start to receive the first data sent by the first HTTP channel of the first server channel. It should be noted that due to the embodiment of the present application, other HTTP channels may be called subsequently to jointly transmit the first data. Therefore, the partial data of the first data transmitted through the first HTTP channel is recorded as the first part of the first data. On the other hand, the mobile terminal may obtain the size of the first data according to the received first HTTP response, and determine whether it is necessary to use multiple HTTP channels to jointly transmit the first data according to the size of the first data.
  • the mobile terminal may upload the first HTTP response to the multiplexing module.
  • the multiplexing module determines whether it is necessary to use multiple channels to transmit the first data. On the other hand, the multiplexing module uploads the first part of the first data received from the first HTTP channel to the corresponding application of the upper layer, such as a video application.
  • the first HTTP response may carry partial data of the first data.
  • the size of the first data used needs to be subtracted from the part of the first data carried in the first HTTP response.
  • part of the data of the first data carried in the first HTTP response is usually small, and the data size of this part can also be ignored.
  • the first HTTP response always does not carry part of the data of the first data, or part of the data of the first data carried in the first HTTP response can be ignored as an example for description.
  • the second HTTP channel is an HTTP channel different from the first HTTP channel.
  • the number of the second HTTP channel is at least one.
  • the second server and the first server may be the same server or different servers.
  • the mobile terminal only needs to use the first HTTP channel to transmit the first data, and there is no need to use multiple HTTP channels to transmit the first data. If the size of the first data is greater than the first threshold, it is considered that the mobile terminal needs to use multiple HTTP channels to transmit the first data. After determining the need to use multiple HTTP channels to transmit the first data, it is also necessary to determine the byte range of each HTTP channel used to transmit the first data, that is, the byte range of the first HTTP channel used to transmit the first data (that is, the first data). Part of the byte range), and the byte range of the second HTTP channel used to transmit the first data (that is, the byte range of the second part).
  • the first HTTP channel first starts to receive the first part of the first data
  • the second HTTP channel starts to receive the second part of the first data.
  • the byte range of the first part usually starts from the first byte of the first data.
  • the byte range of the second part usually starts from the middle byte. For example, if two HTTP channels are used to multiplex and transmit the first data, the byte range of the second part is from the middle byte to the last byte of the first data.
  • the first data is video data requested by a video application
  • the first part of the first data may include the video data of the earlier part of the time, such as the video data from the 0th minute to the 30th minute.
  • the second data may be video data at a later part of the time, such as video data from the 31st minute to the 45th minute. Then, when a video application uses the first data, it needs to use the first part of the first data first, and then use the second part of the first data.
  • the determination of the first threshold and the method of determining the byte range of the first part and the byte range of the second part of the first data will be described in detail below, and will not be described here.
  • the mobile terminal may generate a second HTTP request according to the saved first HTTP request and the determined byte range for transmitting the second part, and request the first server to transmit the second part of the first data through the second HTTP channel.
  • the mobile terminal can add the range byte field or modify the range byte field in the saved first HTTP request, and write the byte range corresponding to the second part of the first data; the saved first The value of the host field in the HTTP request is modified from the address of the first server to the address of the second server, etc., to obtain the second HTTP request.
  • the second HTTP request is sent in the second HTTP channel to request the second server to return the second part of the first data through the second HTTP channel.
  • the mobile terminal before the mobile terminal sends the second HTTP request to the second server through the second HTTP channel, it can send the DNS request through the second HTTP channel according to the saved URI or URL in the first HTTP request, and use To resolve the IP address of the second server. For example, when sending a DNS request (requesting the IP address of the first server) through the first HTTP channel, the mobile terminal may send the DNS request through the second HTTP channel in advance to request the IP address of the second server. For another example, the mobile terminal may also send a DNS request through the second HTTP channel to request the IP of the second server when it is determined that the size of the first data is greater than the first threshold and it is determined that the first data needs to be sent using the second HTTP channel. address. The embodiment of the application does not limit this.
  • the mobile terminal may start to establish a connection to the second HTTP channel, transmit the second HTTP request through the second HTTP channel, and receive the second part of the first data.
  • the connection of the second HTTP channel is established only when the second HTTP channel is required to transmit data, which is beneficial to saving resources of the mobile terminal.
  • the mobile terminal may also establish the connection of the second HTTP channel in advance when receiving the first HTTP request in advance.
  • the second HTTP channel can be used directly to transmit the second HTTP request. In this way, it is beneficial to save the time for establishing the second HTTP channel connection and speed up the transmission rate of the first data.
  • S405 The mobile terminal receives the second part of the first data returned by the second server through the second HTTP channel.
  • the first data is transmitted simultaneously by the first HTTP channel and the second HTTP channel, the bandwidth for transmitting the first data is increased, and the download rate of the first data is accelerated.
  • the block ( chunk) The method of transmission.
  • the first server divides the first part of the first data into multiple blocks, and transmits them to the mobile terminal through the first HTTP channel.
  • the second server may also divide the second part of the second data into multiple blocks and transmit them to the mobile terminal through the second HTTP channel in stages. Because when the first HTTP channel and the second HTTP channel simultaneously transmit the first data, the mobile terminal may receive the first part of the block and the second part of the block alternately. In this case, the mobile terminal first uses the blocks of the first part, and then uses the blocks of the second part.
  • the mobile terminal After the mobile terminal receives the block of the first data through the Wi-Fi link or the cellular network link, it can determine that the block of the received first data is the first data block. Part of the block is also the second part of the block. If the block is the first part of the block, the multiplexing module sends the block to the application requesting the first data. If the block is the second part of the block, the multiplexing module buffers the block. After it is determined that all the blocks of the first part are sent to the application requesting the first data, the blocks of the second part are sent to the application requesting the first data.
  • the header of the first HTTP response can be carried in the first block sent to the application. Sending other blocks of the first data to the application may no longer carry the header of the first HTTP response.
  • the mobile terminal After the mobile terminal receives the first part of the first data, the mobile terminal sends control signaling to the first server through the first HTTP channel, and disconnects the first HTTP channel from the first server.
  • the mobile terminal after determining that the mobile terminal has received the first part of the first data, it needs to send control signaling to the first server through the first HTTP channel, such as an HTTP RESET message or a TCP RESET message for disconnection and The first HTTP channel of the first server.
  • the first server returns the first data to the mobile terminal according to the first HTTP request sent by the mobile terminal. Since the first HTTP request does not carry the byte range field, the first server will return all the first data to the mobile terminal according to the protocol.
  • the second part of the first data has been returned by the first server to the mobile terminal through the second HTTP channel according to the second HTTP request. Therefore, after the mobile terminal determines that the first part of the first data has been received, it needs to disconnect the first HTTP channel with the first server and no longer receive the second part of the first data through the first HTTP channel.
  • the mobile terminal will release the TCP connection with the first HTTP channel. Then, the mobile terminal can also restart the establishment of the HTTP channel connection between the mobile terminal and the first server, so that the subsequent mobile terminal can continue to transmit other HTTP requests and corresponding data through the connection of the first HTTP channel.
  • the mobile terminal requests the second part of the first data from the second server through the second HTTP request through the second HTTP channel. Since the second HTTP request carries the byte range of the second part of the request, the second server will only return the second part of the first data to the mobile terminal.
  • Method 1 The first HTTP channel and the second HTTP channel complete data transmission at the same time.
  • Step 1 Setting of the first threshold.
  • the first threshold may be determined according to the size of the first data, the bandwidth and round-trip time (RTT) of the first HTTP channel, and the bandwidth and round-trip delay of the second HTTP channel.
  • RTT round-trip time
  • V1 is the size of the first data
  • BDW(A) is the bandwidth of the first HTTP channel.
  • two channels are used to transmit the first data.
  • one of them is a Wi-Fi channel
  • the other is a cellular network channel, such as LTE, to calculate the estimated FCT2.
  • V2 V1-2RTT(B)*BDW(A) (Formula 3)
  • SUM(BDW) BDW(A)+BDW(B), where BDW(B) is the bandwidth of the second HTTP channel.
  • RTT(B) is the round-trip delay of the second HTTP channel.
  • C is the loss ratio, for example, it can be 0.75.
  • V2 is the size of the data jointly transmitted by the two HTTP channels after the second HTTP channel connection is established.
  • the mobile terminal first establishes the first HTTP channel connection, and then establishes the second HTTP channel connection.
  • the first HTTP channel has already begun to transmit the first data. That is to say, when the second HTTP channel connection is established, the size of the data transmitted by the first HTTP channel is 2RTT(B)*BDW(A).
  • the first HTTP channel and the second HTTP channel have transmitted corresponding data at the same time. That is, it takes V2/(c*SUM(BDW)) to transmit the data of V2 through the first HTTP channel and the second HTTP channel.
  • the first threshold can be calculated to be 1.6MB. That is to say, in this example, if the first data to be transmitted is greater than 1.6 MB, two HTTP channel transmissions are applicable. If the first data with transmission is less than or equal to 1.6MB, two HTTP channels are not used for transmission.
  • Step 2 Determine the byte range transmitted by each HTTP channel.
  • the size of the first data is V1
  • the size of the first part of the data that needs to be transmitted by the first HTTP channel is V(A).
  • the size of the second part of the data that needs to be transmitted by the second HTTP channel is V(B), then,
  • V1 V(A)+V(B) (Formula 4)
  • the byte range of the first part of the first data to be transmitted by the first HTTP channel is: 0 byte to V(A) byte. It is determined that the byte range of the second part of the first data to be transmitted by the second HTTP channel is: ⁇ V(A)+1 ⁇ bytes to V1 bytes. Or, it is determined that the byte range of the first part of the first data to be transmitted by the first HTTP channel is: 0 bytes to ⁇ V(A)-1 ⁇ bytes. It is determined that the byte range of the second part of the first data to be transmitted by the second HTTP channel is: V(A) byte to V1 byte.
  • the mobile terminal can support more than two HTTP channel multiplexing, it can be further determined whether V(A) and V(B) are greater than the first threshold. If any one is greater than the first threshold, a similar method can also be used to divide, so that two or more HTTPs jointly transmit the first data, which further increases the transmission bandwidth of the first data and improves the transmission efficiency of the first data.
  • a method similar to Method 1 can also be used to directly transmit the first data through two or more HTTP channels (for example, three HTTP channels), determine the size of the first threshold, and determine the two or more HTTP channels How much data should be transmitted respectively. The embodiment of the application does not limit this.
  • Method 2 The first HTTP channel and the second HTTP channel may not be transmitted at the same time.
  • Step 1 Determine the first threshold.
  • the estimated FCT1 is calculated.
  • T(B) 1.5RTT(B)+RTT(B) (Formula 5)
  • Step 2 Determine the byte range transmitted by each HTTP channel.
  • the first HTTP channel is first used to transmit the first part of the first data
  • the first part is usually the part of the first data in the byte.
  • the mobile terminal usually uses the first part of the first data, and then uses the second part of the first data. Therefore, when setting the byte range transmitted by each HTTP channel, it is necessary to consider that the first HTTP channel can transmit the first part of the first data no later than the second HTTP channel.
  • Method 2 if the mobile terminal can support multiplexing of more than two HTTP channels, it can be further determined whether the amount of data allocated to the two HTTP channels is greater than the first threshold. If any one is greater than the first threshold, a method similar to Method 2 can also be used to divide, so that two or more HTTP channels can transmit the first data together, which further increases the transmission bandwidth of the first data and improves the transmission efficiency of the first data. Of course, a method similar to Method 2 can also be used to directly transmit the first data through two or more HTTP channels (for example, three HTTP channels), determine the size of the first threshold, and determine the two or more HTTP channels How much data should be transmitted respectively. The embodiment of the application does not limit this.
  • method 1 and method 2 are based on the inventive concept of multiplexing provided by the embodiment of this application.
  • the two provided are to set the first threshold and determine the byte range of the first data transmitted by each HTTP channel. Examples of methods.
  • different first thresholds and methods of determining the byte range transmitted by each HTTP channel can also be used based on actual scenarios, which are not limited in the embodiment of the present application.
  • FIG. 5 (1) it is a video browsing interface 501 of a mobile phone video application. It is understandable that video applications need to go online, so at least Wi-Fi function or cellular network traffic function is turned on before the mobile phone. Take the Wi-Fi function of the mobile phone as an example.
  • the video application In response to detecting that the user clicks on a control corresponding to a certain video, the video application generates a first HTTP request and sends it to the server through the established Wi-Fi link for requesting the data of the video (ie, the first data ).
  • the mobile phone determines whether the data size of the video carried in the first HTTP response (for example, 10000 bytes) is greater than the threshold.
  • the mobile phone determines that it needs to use multiple HTTP channels to jointly transmit the first data.
  • the mobile phone may display an interface 502 as shown in (2) in FIG. 5.
  • a prompt message 503 is displayed in the interface 502, which is used to ask the user whether to use the cellular network traffic.
  • the mobile phone If the user determines to use cellular network traffic, the mobile phone generates a second HTTP request according to the saved first HTTP request and the size of the request data carried in the first HTTP response. For example, the byte range of the request first data carried in the second HTTP request is 5000 bytes to 10000 bytes.
  • the mobile phone sends the second HTTP request to the server via the cellular network link, requesting 5000 to 10000 bytes of the first data.
  • the mobile phone while the mobile phone receives 0-4999 bytes of the first data through the Wi-Fi link, it also receives 5000-10000 bytes of the first data through the cellular network link.
  • the mobile phone plays the video according to the received first data, that is, displays the video play interface 504 as shown in (4) in FIG. 5.
  • the display is shown in Figure 5 (3) Interface 505.
  • the interface 505 includes prompt information 506 for prompting the user to enable the cellular network traffic function.
  • the mobile terminal uses the determined first threshold to determine whether to use the second HTTP channel to transmit data together as an example for description.
  • the mobile terminal may also adopt a self-learning method to determine whether to use the second HTTP channel to jointly transmit data, and how much data each HTTP channel undertakes to transmit.
  • the mobile terminal may use the first HTTP channel and the second HTTP channel by default to jointly receive the first data.
  • the ratio (for example, the first ratio) of the data size of the second part of the first data received through the second HTTP channel to the first data size is set by default.
  • the ratio of the data size of the first part of the first data received through the first HTTP channel to the first data size can also be set by default.
  • the ratio of the data size of the first part of the first data received through the first HTTP channel to the data size of the second part of the first data received through the second HTTP channel is set by default. This application does not specifically limit the set ratio.
  • the following is an example of setting the ratio of the data size of the second part of the first data received through the second HTTP channel to the first data size.
  • the mobile terminal when the mobile terminal needs to receive the second data, it is automatically adjusted according to the time taken by the first HTTP channel to receive the first part of the first data and the time taken by the second HTTP channel to receive the second part of the first data.
  • the data size of the second part of the second data transmitted by the second HTTP channel occupies a proportion of the second data size.
  • the ratio of transmitting other data between the first HTTP channel and the second HTTP channel can be adjusted to an appropriate ratio, thereby improving the efficiency of data transmission between the first HTTP channel and the second HTTP channel.
  • the mobile terminal establishes a connection between the first HTTP channel and the second HTTP channel in advance. If the time consumed by the first HTTP channel to transmit the first part of the first data is greater than the time consumed by the second HTTP channel to transmit the second part of the first data, it can be considered that the transmission efficiency of the first HTTP channel is lower than that of the second HTTP channel. Properly increase the first proportion, that is, appropriately increase the proportion of the second data transmitted by the second HTTP channel that the second part of the second data occupies. In this way, the transmission efficiency of transmitting the second data can be improved.
  • the transmission efficiency of the first HTTP channel is higher than that of the second HTTP channel.
  • the first proportion that is, appropriately reduce the proportion of the second data that the second part of the second data transmitted by the second HTTP channel occupies. In this way, the transmission efficiency of transmitting the second data can be improved.
  • the transmission efficiency of the first HTTP channel is equal to that of the second HTTP channel. If the channels are the same, the first proportion can be maintained, that is, the proportion of the second data occupied by the second part of the second data transmitted by the second HTTP channel can be maintained.
  • the mobile terminal may only establish the connection of the second HTTP channel when it is determined to use the second HTTP channel as an example for description. If the difference between the time consumed by the first HTTP channel to transmit the first part of the first data minus the time consumed by the second HTTP channel to transmit the second part of the first data is greater than the second threshold (for example, the second threshold includes the second HTTP connection establishment Time), it can be considered that the transmission efficiency of the first HTTP channel is lower than that of the second HTTP channel, and the first ratio can be appropriately increased, that is, the second HTTP channel can be appropriately increased to transmit the second part of the second data. proportion. In this way, the transmission efficiency of transmitting the second data can be improved.
  • the second threshold includes the second HTTP connection establishment Time
  • the first HTTP channel can be considered to have high transmission efficiency
  • the first proportion can be appropriately reduced, that is, the proportion of the second data transmitted by the second HTTP channel that the second part of the second data occupies is appropriately reduced. In this way, the transmission efficiency of transmitting the second data can be improved.
  • the first HTTP channel can be considered If the transmission efficiency is the same as that of the second HTTP channel, the first proportion can be maintained, that is, the proportion of the second data occupied by the second part of the second data transmitted by the second HTTP channel is maintained. In this way, the transmission efficiency of transmitting the second data can be improved.
  • the embodiment of the present application also provides a chip system.
  • the chip system includes at least one processor 1101 and at least one interface circuit 1102.
  • the processor 1101 and the interface circuit 1102 may be interconnected by wires.
  • the interface circuit 1102 may be used to receive signals from other devices (such as the memory of the mobile terminal 100).
  • the interface circuit 1102 may be used to send signals to other devices (such as the processor 1101).
  • the interface circuit 1102 may read an instruction stored in the memory, and send the instruction to the processor 1101.
  • the mobile terminal can be made to execute various steps executed by the mobile terminal 100 (for example, a mobile phone) in the above-mentioned embodiment.
  • the chip system may also include other discrete devices, which are not specifically limited in the embodiment of the present application.
  • the above-mentioned terminal and the like include hardware structures and/or software modules corresponding to each function.
  • the embodiments of the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a certain function is executed by hardware or computer software-driven hardware depends on the specific application and design constraint conditions of the technical solution. Professionals and technicians can use different methods for each specific application to implement the described functions, but such implementation should not be considered as going beyond the scope of the embodiments of the present invention.
  • the embodiment of the present application may divide the above-mentioned terminal and the like into functional modules according to the above-mentioned method examples.
  • each functional module may be divided corresponding to each function, or two or more functions may be integrated into one processing module.
  • the above-mentioned integrated modules can be implemented in the form of hardware or software functional modules. It should be noted that the division of modules in the embodiment of the present invention is illustrative, and is only a logical function division, and there may be other division methods in actual implementation.
  • the functional units in the various embodiments of the embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the above-mentioned integrated unit can be implemented in the form of hardware or software functional unit.
  • the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer readable storage medium.
  • the technical solutions of the embodiments of the present application are essentially or the part that contributes to the existing technology, or all or part of the technical solutions can be embodied in the form of software products, and the computer software products are stored in a storage
  • the medium includes several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) or a processor to execute all or part of the steps of the methods described in the various embodiments of the present application.
  • the aforementioned storage media include: flash memory, mobile hard disk, read-only memory, random access memory, magnetic disk or optical disk and other media that can store program codes.

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

一种多路HTTP通道复用的方法及终端,涉及通信技术领域,可以实现终端与服务器之间多路HTTP通道复用,提升终端和服务器之间的数据传输效率,该方法应用于终端,包括:终端通过第一HTTP通道向第一服务器发送第一HTTP请求,用于请求第一数据;在接收第一服务器返回的第一HTTP响应,通过第一HTTP通道接收第一服务器发送的第一数据的第一部分;同时,若第一HTTP响应中携带的第一数据的大小大于第一阈值,则生成第二HTTP请求,并通过第二HTTP通道发送给第二服务器,用于请求第一数据的第二部分;在接收完第一数据的第一部分后,向第一服务器发送控制信令,用于断开所述第一HTTP通道。

Description

一种多路HTTP通道复用的方法及终端
本申请要求于2019年12月12日提交国家知识产权局、申请号为201911275947.2、申请名称为“一种多路HTTP通道复用的方法及终端”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,尤其涉及一种多路HTTP通道复用的方法及终端。
背景技术
多路超文本传输协议(Multipath Hypertext Transfer Protocol,MPHTTP)技术,可以实现终端与服务器之间多路HTTP通道同时传输数据,提升终端和服务器之间的数据传输效率。例如,用户在使用终端观看高清视频、VR资源等时,终端可以同时使用Wi-Fi网络和蜂窝网传输用户请求的数据,以提供更大的传输带宽,使得高清视频、VR资源等下载速率更快,用户观看时卡顿更少、更流畅。
现有技术中,接收用户操作应用程序的指示,终端根据用户的操作指示,生成原始的HTTP请求(request)。然后,据原始HTTP请求中携带的范围字节(range byte)字段,将原始HTTP请求拆分为多个HTTP请求。并分别在不同的HTTP通道中发送。这多个HTTP请求分别用于通过在不同的HTPP通道中请求原始HTTP请求中请求的不同字节范围的数据,即实现多路HTTP通道同时传输数据,提升数据传输的效率。
然而,在很多实际场景中,终端生成的原始的HTTP请求没有携带范围字节字段,那么,将无法实现多路HTTP通道的复用。
发明内容
本申请提供的一种多路HTTP通道复用的方法及终端,可以实现终端与服务器之间多路HTTP通道复用,提升终端和服务器之间的数据传输效率。
为了实现上述目的,本申请实施例提供了以下技术方案:
第一方面、提供一种多路HTTP通道复用的方法,包括:移动终端通过第一HTTP通道向第一服务器发送第一HTTP请求,用于请求第一数据;移动终端通过第一HTTP通道接收第一服务器返回的第一HTTP响应,第一HTTP响应携带第一数据的大小;在接收到第一HTTP响应后,移动终端通过第一HTTP通道接收第一服务器发送的第一数据的第一部分;在接收到第一HTTP响应后,若第一数据的大小大于第一阈值,则移动终端根据第一HTTP请求和第一数据的大小生成第二HTTP请求,并通过第二HTTP通道向第二服务器发送第二HTTP请求,用于请求第一数据中的第二部分;移动终端通过第二HTTP通道接收第二服务器返回的第一数据的第二部分;在移动终端接收完第一数据的第一部分后,移动终端通过第一HTTP通道向第一服务器发送控制信令,用于断开第一HTTP通道。
示例性的,在接收到第一HTTP响应后,移动终端一方面通过第一HTTP通道接收第一数据的第一部分,另一方面根据第一HTTP响应中携带的第一数据的大小确定是否需要向第二HTTP通道发送第二HTTP请求,用于请求第一数据的第二部分。
其中,移动终端根据第一HTTP请求和第一数据的大小生成第二HTTP请求,包括移动终端根据第一HTTP请求中的部分参数和第一数据的大小生成第二HTTP请求。例如,根据第一HTTP请求中的统一资源标识符(Uniform Resource Identifier,URI)设置第二HTTP请求中的URI,将第二HTTP请求中的host字段设置为第二服务器的地址。将确定的第一数据的第二部分的字节范围写入第二HTTP请求中的range bytes字段中。
由此可见,在移动终端通过第一HTTP通道接收第一服务器的第一数据的第一部分的同时,移动终端也可以通过第二HTTP通信发送第二HTTP请求,请求第一数据的第二部分,从而实现了多路HTTP通道接收第一数据,加大了传输第一数据的带宽,提升了传输第一数据的传输速率。例如:第一数据为视频数据时,使得用户观看时卡顿少,更流畅。
一种可能的实现方式中,第一HTTP响应中内容长度content length字段中携带第一数据的大小。
一种可能的实现方式中,该方法还包括:移动终端根据第一数据的大小、第一HTTP通道的带宽、第二HTTP通道的带宽、第二HTTP通道的往返时延确定第一阈值;或者,移动终端根据第一数据的大小、第一HTTP通道的带宽、以及第二HTTP通道的往返时延确定第一阈值。
一种可能的实现方式中,该方法还包括:移动终端根据第一数据的大小,第一HTTP通道的带宽、第二HTTP通道的带宽以及第二HTTP通道的往返时延确定第一数据的第二部分的字节范围。
一种可能的实现方式中,第一数据的第二部分的字节范围从第一数据中间的字节开始到第一数据最后一个字节。
一种可能的实现方式中,该方法还包括:移动终端在第二HTTP请求的范围字节range byte字段中携带第一数据的第二部分的字节范围。
一种可能的实现方式中,移动终端通过第一HTTP通道向第一服务器发送控制信令,用于断开第一HTTP通道,具体为:移动终端通过第一HTTP通道向第一服务器发送HTTP RESET报文或TCP RESET报文。
一种可能的实现方式中,在移动终端通过第一HTTP通道向第一服务器发送第一HTTP请求之前,该方法还包括:移动终端确定第一HTTP通道的预计数据流完成时间FCT最小。
其中,预计的FCT可以包括第一HTTP通道建立连接耗用的时间,第一HTTP通道传输单位大小数据所耗用的时间,以及传输数据的时延等。可见,预计的FCT可以反映HTTP通道传输数据的速率和效率。
一种可能的实现方式中,该方法还包括:在移动终端通过第一HTTP通道向第一服务器发送第一HTTP请求之前,移动终端根据第一HTTP请求通过第一HTTP通道发送第一域名系统DNS请求,用于请求第一服务器的地址;以及通过第二HTTP通道发送第二域名系统DNS请求,用于请求第二服务器的地址。
一种可能的实现方式中,该方法还包括:在移动终端通过第一HTTP通道向第一服务器发送第一HTTP请求之前,移动终端通过Wi-Fi网络建立第一HTTP通道,以 及通过蜂窝网网络建立第二HTTP通道;或者,在移动终端通过第一HTTP通道向第一服务器发送第一HTTP请求之前,移动终端通过Wi-Fi网络建立第一HTTP通道;在移动终端通过第二HTTP通道向第二服务器发送第二HTTP请求之前,移动终端通过蜂窝网网络建立第二HTTP通道。
一种可能的实现方式中,该方法还包括:在移动终端通过第一HTTP通道向第一服务器发送TCP RESET报文,用于断开第一HTTP通道之后,移动终端重新建立第一HTTP通道。
第二方面、一种多路HTTP通道复用的方法,包括:移动终端通过第一HTTP通道向第一服务器发送第一HTTP请求,用于请求第一数据;移动终端通过第一HTTP通道接收第一服务器返回的第一HTTP响应,第一HTTP响应携带第一数据的大小;在接收到第一HTTP响应后,移动终端通过第一HTTP通道接收第一服务器发送的第一数据的第一部分;在接收到第一HTTP响应后,移动终端根据第一HTTP请求、第一数据的大小、以及第一比例生成第二HTTP请求,并通过第二HTTP通道向第二服务器发送第二HTTP请求,用于请求第一数据中的第二部分;第一数据中的第二部分的数据大小为第一数据大小与第一比例的乘积;移动终端通过第二HTTP通道接收第二服务器返回的第一数据的第二部分;在移动终端接收完第一数据的第一部分后,移动终端通过第一HTTP通道向第一服务器发送第一控制信令,用于断开第一HTTP通道。
示例性的,在接收到第一HTTP响应后,移动终端一方面通过第一HTTP通道接收第一数据的第一部分,另一方面根据第一HTTP响应中携带的第一数据的大小确定是否需要向第二HTTP通道发送第二HTTP请求,用于请求第一数据的第二部分。
其中,移动终端根据第一HTTP请求和第一数据的大小生成第二HTTP请求,包括移动终端根据第一HTTP请求中的部分参数和第一数据的大小生成第二HTTP请求。例如,根据第一HTTP请求中的URI设置第二HTTP请求中的URI,将第二HTTP请求中的host字段设置为第二服务器的地址。将确定的第一数据的第二部分的字节范围写入第二HTTP请求中的range bytes字段中。
一种可能的实现方式中,该方法还包括:移动终端重新建立第一HTTP通道;移动终端通过第一HTTP通道向第一服务器发送第三HTTP请求,用于请求第二数据;移动终端通过第一HTTP通道接收第一服务器返回的第二HTTP响应,第二HTTP响应携带第二数据的大小;在接收到第二HTTP响应后,移动终端通过第一HTTP通道接收第一服务器发送的第二数据的第一部分;在接收到第二HTTP响应后,移动终端根据通过第一HTTP通道接收第一数据的第一部分耗用的第一时长以及第二HTTP通道接收第一数据第二部分耗用的第二时长调整第一比例的大小;根据第三HTTP请求、第二数据的大小、以及调整后的第一比例生成第四HTTP请求,并通过第二HTTP通道向第二服务器发送第四HTTP请求,用于请求第二数据中的第二部分;第二数据中的第二部分的数据大小为第二数据大小与调整后的第一比例的乘积;移动终端通过第二HTTP通道接收第二服务器返回的第二数据的第二部分;在移动终端接收完第二数据的第一部分后,移动终端通过第一HTTP通道向第一服务器发送第二控制信令,用于断开第一HTTP通道。
一种可能的实现方式中,移动终端根据第一HTTP通道接收第一数据的第一部分耗用的第一时长以及第二HTTP通道接收第一数据第二部分耗用的第二时长调整第一比例的大小,具体为:若第一时长减去第二时长的差值大于第二阈值,则增大第一比例;若第一时长减去第二时长的差值小于第二阈值,则减小第一比例;若第一时长减去第二时长的差值等于第二阈值,则保持第一比例。
第三方面、提供一种移动终端,包括:处理器、存储器和触摸屏,存储器、触摸屏与处理器耦合,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当处理器从存储器中读取计算机指令,以使得移动终端执行上述方面以及任一种实现方式中所述多路HTTP通道复用的方法。
第四方面、提供一种芯片系统,包括处理器,当处理器执行指令时,处理器执行如上述方面中及其中任一种可能的实现方式中所述的方法。
第五方面、提供一种装置,该装置包含在移动终端中,该装置具有实现上述方面及可能的实现方式中任一方法中移动终端行为的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括至少一个与上述功能相对应的模块或单元。例如,检测模块或单元、显示模块或单元、确定模块或单元、以及生成模块或单元等。
第六方面、提供一种计算机可读存储介质,包括计算机指令,当计算机指令在终端上运行时,使得终端执行如上述方面及其中任一种可能的实现方式中所述的方法。
第七方面、提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如上述方面中及其中任一种可能的实现方式中所述的方法。
附图说明
图1为本申请实施例提供的一种通信系统的结构示意图;
图2为本申请实施例提供的一种移动终端的结构示意图一;
图3为本申请实施例提供的一种移动终端的结构示意图二;
图4为本申请实施例提供的一种多路HTTP通道复用的方法的流程示意图;
图5为本申请实施例提供的一些移动终端的图形用户界面示意图;
图6为本申请实施例提供的一种芯片系统的结构示意图。
具体实施方式
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
如图1所示,为本申请实施例提供的一种通信系统的结构示意图。该通信系统包括移动终端100和电子设备200。
其中,移动终端100上可以安装和运行各种应用程序,例如视频类应用(例如视 频播放应用、直播应用等)、浏览器、VR/AR相关应用、图片应用等。
一些示例中,移动终端100可以通过有线或无线方式(例如Wi-Fi)与电子设备200(例如路由器等)建立连接,并通过电子设备200接入网络1(例如为互联网),与网络1中各个应用对应的服务器进行交互。另一些示例中,移动终端100可以通过基站300接入网络2(例如为移动通信网络),与网络2中各个应用对应的服务器进行交互。或者,移动终端100通过网络2接入网络1,与网络1中各个应用对应的服务器进行交互。在又一些示例中,移动终端100也可以通过无线方式(例如Wi-Fi)与电子设备400(例如随行Wi-Fi设备,或称为移动Wi-Fi设备)建立连接,并通过电子设备400、基站300接入网络2,与网络2中各个应用对应的服务器进行交互。或者,移动终端100通过网络2接入网络1,与网络1中各个应用对应的服务器进行交互。
可以理解的是,本申请实施例能够实现多路HTTP通道的复用,故移动终端100具备建立至少两路HTTP通道的能力。例如:移动终端100具备Wi-Fi通信能力和蜂窝网通信能力。比如,移动终端100可以建立至少两路HTTP通道,一路HTTP通道经过电子设备200连接到网络1,另一路HTTP通道经过基站300连接到网络2的通道。在一些示例中,移动终端100具备的Wi-Fi通信能力,本身可以支持建立两路HTTP通道。比如,两路HTTP通道经过电子设备200连接到网络1的通道。又比如,一路HTTP通道经过电子设备200连接到网络1的通道,另两路HTTP通道经过基站300连接到网络2的通道。本申请对移动终端100建立的HTTP通道的数量和每路通道采用的方式不做具体限定。
当用户在移动终端100上操作相应的应用时,移动终端会生成相应的第一HTTP请求,并将第一HTTP请求通过上述HTTP通道中的其中一个HTTP通道(记为第一HTTP通道)发送给相应的服务器。服务器在收到HTTP请求后,通过该第一HTTP通道向移动终端返回相应的第一HTTP响应(response),以及返回移动终端100请求的数据(记为第一数据)。
在本申请的实施例中,在服务器通过第一HTTP通道发送第一HTTP响应后,开始向移动终端100发送第一数据。由于本申请实施例提供的多路HTTP通道复用的方法,会采用其他HTTP通道共同传输第一数据,故这里将服务器通过第一HTTP通道传输的数据记为第一数据中的第一部分。
为了实现多路HTTP通道复用,移动终端100在接收到的第一HTTP响应后,还要根据第一HTTP响应中包含的第一数据的大小(例如第一HTTP响应中的内容长度(content-length)字段),生成至少一个第二HTTP请求,用于请求第一数据中的部分数据(可记为第一数据中固定第二部分)。然后,将至少一个第二HTTP请求通过除第一HTTP通道外的其他通道(记为第二HTTP通道)传输给服务器,服务器将在第二HTTP通道返回第一数据中的第二部分。也就是说,第一HTTP通道和第二HTTP通道共同完成移动终端本次请求的第一数据,增大了第一数据的传输带宽,提升数据传输的效率。
示例性的,本申请中的移动终端100可以为手机、平板电脑、个人计算机(personal computer,PC)、个人数字助理(personal digital assistant,PDA)、智能手表、上网本、可穿戴电子设备、增强现实技术(augmented reality,AR)设备、虚拟现实(virtual  reality,VR)设备、车载设备、智能汽车、智能音响、机器人等,本申请对该移动终端的具体形式不做特殊限制。
图2示出了移动终端100的结构示意图。
移动终端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可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。
可以理解的是,本发明实施例示意的结构并不构成对移动终端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)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像头193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现移动终端100 的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器110可以包含多组I2S总线。处理器110可以通过I2S总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过I2S接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过PCM总线接口耦合。在一些实施例中,音频模块170也可以通过PCM接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过UART接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(display serial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现移动终端100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现移动终端100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为移动终端100充电,也可以用于移动终端100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他移动终端,例如AR设备等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对移动终端100的结构限定。在本申请另一些实施例中,移动终端100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过移动终端100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为移动终端供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于 监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
移动终端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用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。在一些实施例中,移动终端100可以包括1个或N个显示屏194,N为大于1的正整数。
移动终端100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,移动终端100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当移动终端100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。移动终端100可以支持一种或多种视频编解码器。这样,移动终端100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现移动终端100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展移动 终端100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储移动终端100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行移动终端100的各种功能应用以及数据处理。
移动终端100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。移动终端100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当移动终端100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。移动终端100可以设置至少一个麦克风170C。在另一些实施例中,移动终端100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,移动终端100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动移动终端平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。移动终端100可以接收按键输入,产生与移动终端100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达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的软件结构。
图3是本发明实施例的移动终端100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图3所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
在本申请一些实施例中,一些应用程序在运行时需要向服务器请求的流量较大,例如视频应用,在请求的高清或超高清视频等时流量很大。又例如,地图应用,在更新三维地图数据时的流量也很大。又例如,用户在进行游戏时游戏应用请求的流量很大。当这些应用请求的数据流量很大时,采用本申请实施例提供的多路HTTP通道复用时,可以增大数据传输时的带宽,提升数据传输效率,实现下载速度快,用户观看时卡顿更少、更流畅的体验。
应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图3所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供移动终端100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,移动终端振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
在本申请的一些实施例中,系统库还可以包括多路复用模块。在应用程序层的应用发送请求数据的HTTP请求时,可以调用多路复用模块,实现多路HTTP通道用于传输大流量数据,从而提升大流量数据的传输效率。示例性的,在接收到应用程序层的应用发出HTTP请求(可称为原始HTTP请求)时,可以复制一份原始HTTP请求。而后,在接收到服务器返回的HTTP响应时,获取响应中携带的Content-length字段。根据复制的HTTP请求以及Content-length字段,生成其他HTTP通道的请求,用于请求在其他HTTP通道上同时传输原始HTTP请求中请求数据中的一部分数据,从而实现多路HTTP通道共同传输大流量数据,提升传输效率。
在本申请的另一些实施例中,多路复用模块也可以位于应用程序层各个应用模块中。也就是说,各个应用模块中的多路复用模块可用于实现该应用在请求数据时的多路HTTP通道的复用,提升该应用的数据传输效率。本申请实施例对此不做限定。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
在本申请的一些实施例中,内核层还包括TCP/IP协议栈,用于将上层应用生成的消息进行封装,生成符合相关网络间通信协议的消息,以便通过网络传输给相应的服 务器。相应的,也用于将从网络中接收到的服务器发送的消息进行解析,生成上层应用能够解析的消息,并发送给上传应用进行进一步处理等。
内核层还包括Wi-Fi驱动和Modem驱动。Wi-Fi驱动,可用于建立和断开移动终端100与电子设备200或电子设备400之间的Wi-Fi链路,以及使用该Wi-Fi链路传输消息。Modem驱动,可用于建立和断开移动终端100与基站300之间的移动通信链路,以及使用该移动通信传输消息。
以下实施例中所涉及的技术方案均可以在具有如图2所示的硬件架构和如图3所示的软件架构的移动终端100中实现。
下面结合附图对本申请实施例提供的技术方案进行详细说明。
如图4所示,为本申请实施例提供的一种多路HTTP通道复用的方法的流程示意图,具体如下:
S401、移动终端通过第一HTTP通道向第一服务器发送第一HTTP请求,用于请求第一数据。
示例性的,移动终端上安装有应用程序,用户可以通过操作应用程序来指示移动终端从该应用程序对应的第一服务器处请求数据。结合图3所示的结构,以用户操作视频应用为例进行说明。例如,移动终端在接收到用户对视频应用中相关视频对应的播放控件的操作后,生成第一HTTP请求,用于请求从视频应用对应的第一服务器处获取该视频对应的第一数据。其中,视频应用可以采用HTTP1/1.1/HTTP2等协议进行通信。在一个具体的实现方式中,移动终端的视频应用将第一HTTP请求通过框架层的多路复用模块,以及内核层的TCP/IP协议栈、通过Modem驱动或Wi-Fi驱动,发送给第一服务器。
根据HTTP协议可知,第一HTTP请求中携带统一资源标识符(Uniform Resource Identifier,URI)或者统一资源定位符(Uniform Resource Locator,URL),用于指示移动终端所请求第一数据在网络中的地址。在移动终端发送第一HTTP请求之前,移动终端可以通过第一HTTP通道发送域名系统(Domain Name System,DNS)请求(例如标准DNS请求或HTTP DNS请求),用于解析得到存储第一数据的第一服务器的网络地址(IP地址)。而后,通过第一HTTP通道发送第一HTTP请求,向第一服务器请求第一数据。在一些示例中,第一HTTP请求中没有携带请求的第一数据的范围。例如第一HTTP请求中没有携带第一数据的范围字节(range byte,或range bytes,或range:bytes)字段。在这种情况下,便不能使用现有技术中基于第一数据的字节范围将第一HTTP请求拆分为多个HTTP请求,以实现多路HTTP通道的复用。然而,本申请实施例提供的方法可以实现多路HTTP通道的复用,具体可参考下文描述。
在本申请的一些实施例中,移动终端可以保存一份第一HTTP请求,以便后续根据该第一HTTP请求生成其他HTTP通道的HTTP请求时,可以直接使用第一HTTP请求中部分字段的值,例如URI或URL等。
在本申请的另一些实施例中,前文已说明,移动终端可以建立至少两路HTTP通道。移动终端可以从该至少两路HTTP通道中选择一条通道(例如预计的数据流完成时间(Flow completion time,FCT)最小的通道)作为第一HTTP通道,用于传输第一HTTP请求。这是因为,由于移动终端先通过第一HTTP通道传输第一HTTP请求, 接收第一HTTP响应以及接收第一数据中的部分内容。而后,在接收到第一HTTP响应后,才根据第一HTTP响应中的第一数据长度,请求其他HTTP通道开始传输第一数据中另外部分内容。可见,选择预计的FCT最小的通道先用于传输第一数据中的部分数据,有利于减小传输第一数据所耗用的时长,提升传输效率。
其中,预计的FCT可以包括第一HTTP通道建立连接耗用的时间,第一HTTP通道传输单位大小数据所耗用的时间,以及传输数据的时延等。可见,预计的FCT可以反映HTTP通道传输数据的速率和效率。具体的计算FCT的方法可以参考本领域技术中相关的算法,本申请实施例对此不做限定。
可选的,移动终端也可以基于其他原则选择该至少两路HTTP通道中的一条通道作为第一HTTP通道。例如,选择预设的HTTP通道作为第一HTTP通道,例如优先选择Wi-Fi通道。又例如,选择已建立好连接的HTTP通道作为第一HTTP通道。由于建立好连接的HTTP通道可以节省建立连接时的耗时,有利于提升传输第一数据的效率。
S402、移动终端通过第一HTTP通道接收第一服务器发送的第一HTTP响应,第一HTTP响应包括第一数据的大小。
根据HTTP协议可知,第一HTTP响应中携带将要返回数据的长度,即第一数据的大小。例如,第一HTTP响应中内容长度(content length)字段的值。
S403、在接收到第一HTTP响应后,移动终端通过第一HTTP通道接收第一服务器发送的第一数据的第一部分。
在接收到第一HTTP响应后,一方面,移动终端就可以开始接收第一服务器通道第一HTTP通道发送的第一数据。需要说明的是,由于本申请实施例,后续可能会调用其他HTTP通道共同传输第一数据。故,将通过第一HTTP通道传输的第一数据的部分数据记为第一数据的第一部分。另一方面,移动终端可以根据接收到的第一HTTP响应,获取第一数据的大小,并根据第一数据的大小判断是否需要使用多路HTTP通道共同传输第一数据。
示例性的,请继续参见图3所示的结构,移动终端通过Wi-Fi链路或蜂窝网链路接收到第一HTTP响应后,可将第一HTTP响应上传到多路复用模块。由多路复用模块确定是否需要使用多路通道传输第一数据。另一方面,多路复用模块将从第一HTTP通道接收到的第一数据的第一部分数据上传给上层的相应的应用,例如视频应用。
还需要说明的是,在一些示例中,第一HTTP响应中可能携带有第一数据的部分数据,则在下文根据第一数据的大小确定是否采用第二HTTP通道共同传输第一数据时,以及在二第二HTTP通道分配第一数据的第二部分时,所采用的第一数据的大小需要减去通过第一HTTP响应中已携带的第一数据的部分数据的大小。当然,第一HTTP响应中携带的第一数据的部分数据通常较小,也可以忽略该部分的数据大小。下文是以第一HTTP响应总不携带第一数据的部分数据,或者可以忽略第一HTTP响应中携带的第一数据中的部分数据为例进行说明的。
S404、若第一数据的大小大于第一阈值,则移动终端通过第二HTTP通道向第二服务器发送第二HTTP请求,用于请求第一数据中的第二部分。
其中,第二HTTP通道为与第一HTTP通道不同的HTTP通道。第二HTTP通道 的数量为至少一个。第二服务器与第一服务器可以为同一个服务器,也可以为不同的服务器。
若第一数据的大小小于或等于第一阈值,则认为移动终端仅使用第一HTTP通道传输第一数据即可,无需使用多路HTTP通道传输第一数据。若第一数据的大小大于第一阈值,则认为移动终端需要使用多路HTTP通道传输第一数据。在确定需要使用多路HTTP通道传输第一数据后,还需要确定每路HTTP通道用于传输第一数据的字节范围,即第一HTTP通道用于传输第一数据的字节范围(即第一部分的字节范围),以及第二HTTP通道用于传输第一数据的字节范围(即第二部分的字节范围)。
需要注意的是,第一HTTP通道先开始接收第一数据的第一部分,第二HTTP通道后开始接收第一数据的第二部分。也就是说,应用在使用第一数据时,通常先使用第一数据的第一部分,而后使用第一数据的第二部分。也即,第一部分的字节范围通常为从第一数据的第一字节开始的。第二部分的字节范围通常为从中间的字节开始。例如,若采用两路HTTP通道复用传输第一数据,则第二部分的字节范围为从中间的字节开始,到第一数据的最后一个字节。
例如,第一数据为视频应用请求的视频数据,第一数据的第一部分可以包括时间靠前部分的视频数据,比如第0分钟起至第30分钟的视频数据。而第二数据可以为时间靠后部分的视频数据,比如第31分钟至45分钟的视频数据。那么,视频应用在使用第一数据时,需要先使用第一数据的第一部分,然后使用第一数据的第二部分。
其中,第一阈值的确定,以及确定第一数据的第一部分的字节范围和第二部分的字节范围的方法将下文详细说明,这里先不说明。
而后,移动终端可以根据保存的第一HTTP请求和确定的传输第二部分的字节范围,生成第二HTTP请求,向第一服务器请求在第二HTTP通道传输第一数据中的第二部分。在一个具体的实现中,移动终端可以在保存的第一HTTP请求中增加范围字节字段或者修改范围字节字段,写入第一数据中第二部分对应的字节范围;将保存的第一HTTP请求中host字段的值由第一服务器的地址修改为第二服务器的地址等,得到第二HTTP请求。然而在第二HTTP通道中发送第二HTTP请求,用于请求第二服务器通过第二HTTP通道返回第一数据的第二部分。
在另一些实施例中,在移动终端通过第二HTTP通道向第二服务器发送第二HTTP请求之前,可以根据保存的第一HTTP请求中的URI或URL,通过第二HTTP通道发送DNS请求,用于解析出第二服务器的IP地址。例如,移动终端可以在通过第一HTTP通道发送DNS请求(请求第一服务器的IP地址)时,提前通过第二HTTP通道发送DNS请求,用于请求第二服务器的IP地址。又例如,移动终端也可以在确定第一数据的大小大于第一阈值,确定需要使用第二HTTP通道发送第一数据时,再通过第二HTTP通道发送DNS请求,用于请求第二服务器的IP地址。本申请实施例对此不做限定。
一些示例中,移动终端可以在确定第一数据大于第一阈值后,开始建立第二HTTP通道的连接,通过第二HTTP通道传输第二HTTP请求以及接收第一数据的第二部分。这样,在需要第二HTTP通道传输数据才建立第二HTTP通道的连接,有利于节省移动终端的资源。在另一些示例中,移动终端也可以提前在接收到第一HTTP请求时, 提前建立第二HTTP通道的连接。当确定第一数据大于第一阈值后,可以直接使用第二HTTP通道传输第二HTTP请求。这样,有利于节省建立第二HTTP通道连接的时间,加快第一数据的传输速率。
S405、移动终端通过第二HTTP通道接收第二服务器返回的第一数据的第二部分。
由此实现了由第一HTTP通道和第二HTTP通道同时传输第一数据,提升了传输第一数据的带宽,加快了第一数据的下载速率。
在一些实施例中,第一服务器在通过第一HTTP通道传输第一数据的第一部分,以及第二服务器在通过第二HTTP通道传输第一数据的第二部部分时,均可以采用分块(chunk)传输的方法。也就是说,第一服务器将第一数据的第一部分又划分为多块,分次通过第一HTTP通道传输给移动终端。类似的,第二服务器也可以将第二数据的第二部分又划分为多块,分次通过第二HTTP通道传输给移动终端。由于在第一HTTP通道和第二HTTP通道同时传输第一数据时,移动终端可能交错接收到第一部分的分块和第二部分的分块。在该情况下,移动终端先使用第一部分的分块,再使用第二部分的分块。
示例性的,请继续参见图3所示的结构,移动终端通过Wi-Fi链路或蜂窝网链路接收到第一数据的分块后,可以确定接收到的第一数据的分块为第一部分的分块还是第二部分的分块。若该分块为第一部分的分块,则多路复用模块将该分块发送给请求第一数据的应用。若该分块为第二部分的分块,则多路复用模块缓存该分块。在确定将第一部分的所有分块都发送给请求第一数据的应用后,在将第二部分的分块发送给请求第一数据的应用。
在多路复用模块将接收到的第一数据的分块发送给请求第一数据的应用过程中,可以在第一个发送给应用的分块中携带第一HTTP响应的头部,后续在发送第一数据的其他分块给该应用是可不再携带第一HTTP响应的头部。
S406、在移动终端接收完第一数据的第一部分后,移动终端通过第一HTTP通道向第一服务器发送控制信令,与第一服务器断开第一HTTP通道。
示例性的,移动终端在确定接收完第一数据的第一部分后,需要通过第一HTTP通道向第一服务器发送控制信令,例如:HTTP RESET报文或TCP RESET报文,用于断开与第一服务器的第一HTTP通道。这是因为,第一服务器是根据移动终端发送的第一HTTP请求,向移动终端返回第一数据的。由于第一HTTP请求中未携带字节范围字段,第一服务器会依据协议将全部的第一数据返回给移动终端。然而,在本申请实施例中,第一数据的第二部分已经由第一服务器根据第二HTTP请求,通过第二HTTP通道返回给移动终端。因此,在移动终端确定接收完第一数据的第一部分后,需要断开与第一服务器的第一HTTP通道,不再通过第一HTTP通道接收第一数据的第二部分。
可选的,若移动终端通过第一HTTP通道向第一服务器发送TCP RESET报文,则移动终端会释放与第一HTTP通道的TCP连接。而后,移动终端也可以重启建立移动终端与第一服务器的HTTP通道的连接,便于后续移动终端继续通过第一HTTP通道的连接传输其他HTTP请求以及相应的数据。
需要说明的是,移动终端是通过第二HTTP请求在第二HTTP通道向第二服务器 请求第一数据的第二部分。由于第二HTTP请求中携带有请求的第二部分的字节范围,因此,第二服务器只会向移动终端返回第一数据的第二部分。
下面,以两路HTTP通道复用,且在确定第一数据大于第一阈值后才建立第二HTTP通道的连接为例,对本申请实施例中的第一阈值,以及确定第一部分字节范围和第二部分字节范围的方法进行示例性说明。
方法一、第一HTTP通道和第二HTTP通道同时完成数据传输。
步骤1、第一阈值的设置。
可以根据第一数据的大小、第一HTTP通道的带宽以及往返时延(Round-Trip Time,RTT)、第二HTTP通道的带宽以及往返时延确定第一阈值。
例如:假设仅使用第一HTTP通道(例如Wi-Fi通道)传输第一数据,计算预计的FCT1。
FCT1=V1/BDW(A)                 (公式1)
其中,V1为第一数据的大小,BDW(A)为第一HTTP通道的带宽。
假设使用两路通道传输第一数据。例如,其中一路为Wi-Fi通道,另一路为蜂窝网通道,例如LTE,计算预计的FCT2。
FCT2=2RTT(B)+V2/(c*SUM(BDW))  (公式2)
V2=V1-2RTT(B)*BDW(A)          (公式3)
其中,SUM(BDW)=BDW(A)+BDW(B),其中,BDW(B)为第二HTTP通道的带宽。RTT(B),为第二HTTP通道的往返时延。C为损失比例,例如可以取0.75。V2为第二HTTP通道连接建立后,两路HTTP通道共同传输的数据的大小。
需要说明的是,移动终端先建立第一HTTP通道连接,后建立第二HTTP通道连接。也就是说,在移动终端建立第二HTTP通道连接时,第一HTTP通道已经开始传输第一数据了。也就是说,在建立第二HTTP通道连接时,第一HTTP通道传输的数据的大小为2RTT(B)*BDW(A)。
另外,为了达到让第一HTTP通道和第二HTTP通道传输第一数据的效率最高,可以假设第一HTTP通道和第二HTTP通道同时传输完相应的数据。即,第一HTTP通道和第二HTTP通道传输完V2的数据共耗时V2/(c*SUM(BDW))。
结合公式1、公式2和公式3,令FCT1=FCT2即可计算出V1的数值,即为第一阈值。
例如,假设RTT(A)=RTT(B)=70ms,BDW(A)=24Mbps,BDW(B)=24Mbps,可计算出第一阈值为1.6MB。也就是说,在该示例中,若待传输的第一数据大于1.6MB,则适用两路HTTP通道传输。若带传输的第一数据小于或等于1.6MB,则不使用两路HTTP通道进行传输。
还需要说明的是,这里是以先建立第一HTTP通道的连接,在确定第一数据的大小大于第一阈值后才开始建立第二HTTP通道的方法为例,说明第一阈值的确定的方法。若在确定第一数据的大小大于第一阈值之前提前建立好第二HTTP通道的连接,则公式2变为公式2A,如下:
FCT2=V1/(c*SUM(BDW))            (公式2A)
结合公式1和公式2A,令FCT1=FCT2,即可计算出V1的数值,即为提前建立第 二HTTP通道连接的方法中的第一阈值。
步骤2、确定每路HTTP通道传输的字节范围。
假设第一数据的大小为V1,需要第一HTTP通道传输的第一部分的数据大小为V(A)。需要第二HTTP通道传输的第二部分的数据大小为V(B),那么,
V1=V(A)+V(B)                   (公式4)
预计第一HTTP通道传输完V(A)的数据所需要的时间FCT(A)为:
FCT(A)=V(A)/BDW(A)          (公式5)
预计第二HTTP通道传输完V(B)的数据所需要的时间FCT(B)为:
FCT(B)=V(B)/BDW(B)            (公式6)
由上分析可知,第一HTTP通道在第二HTTP通道建立连接时以开始传输第一数据,且与第二HTTP通道同时结束数据传输,故FCT(A)和FCT(B)具备如下关系:
FCT(A)=FCT(B)+2RTT(B)        (公式7)
结合上述公式4至公式7可以计算出,V(A)和V(B)。
因此,可以确定第一HTTP通道需要传输的第一数据的第一部分的字节范围为:0字节至V(A)字节。确定第二HTTP通道需要传输的第一数据的第二部分的字节范围为:{V(A)+1}字节至V1字节。或者,确定第一HTTP通道需要传输的第一数据的第一部分的字节范围为:0字节至{V(A)-1}字节。确定第二HTTP通道需要传输的第一数据的第二部分的字节范围为:V(A)字节至V1字节。
在该技术方案中,两路HTTP通道预计同时传输完相应的数据,传输效率最高。
还需要说明的是,这里是以先建立第一HTTP通道的连接,在确定第一数据的大小大于第一阈值后才开始建立第二HTTP通道的方法为例,说明第一阈值的确定的方法。若在确定第一数据的大小大于第一阈值之前提前建立好第二HTTP通道的连接,则结合公式4和公式6,令FCT(A)=FCT(B),即可计算出V(A)和V(B)。
在另一些示例中,若移动终端可以支持两路以上的HTTP通道复用时,还可以进一步确定V(A)和V(B)是否大于第一阈值。若任一个大于第一阈值,还可以采用类似的方法进行划分,使得两路以上的HTTP共同传输第一数据,进一步增大第一数据的传输带宽,提升第一数据的传输效率。当然,也可以采用方法一类似的方法,直接以两路以上的HTTP通道(例如三路HTTP通道)共同传输第一数据的场景,确定出第一阈值的大小,并确定两路以上的HTTP通道分别应传输多大的数据。本申请实施例对此不做限定。
方法二、第一HTTP通道和第二HTTP通道可以不同时传输完。
步骤1、确定第一阈值。
若仅采用第一HTTP通道传输第一数据的时长大于第二HTTP通道建立连接的时长下,可以确定采用两路HTTP通道进行传输第一数据。
其中,假设仅使用第一HTTP通道传输第一数据,计算预计的FCT1。
FCT1=V1/BDW(A)                                         (公式4)
第二HTTP建立连接的耗时为:T(B)=1.5RTT(B)+RTT(B)             (公式5)
令FCT1≥T(B),结合公式4和公式5可计算得到V1的最小值,即为第一阈 值。
步骤2、确定每路HTTP通道传输的字节范围。
在确定每路HTTP通道传输的字节范围时,需要考虑以下因素:
因素1、预计第一HTTP通道不晚于第二HTTP通道传输完第一数据的第一部分。
由于在本申请实施例中,第一HTTP通道先用于传输第一数据的第一部分,第一部分通常为第一数据中字节靠前的部分数据。也就是说,移动终端通常会使用第一数据的第一部分,然后再使用第一数据的第二部分。因此,在设置每路HTTP通道传输的字节范围时,需要考虑第一HTTP通道能够不晚于第二HTTP通道传输完第一数据的第一部分。
因素2、预计多路HTTP通道共同传输完第一数据的时长小于使用任一路HTTP通道传输第一数据的时长。
由于,不同的HTTP通道的传输速率不同,不合理的字节范围的分配,可能会造成多路HTTP通道共同传输第一数据的总时长会大于单独使用最大传输速率的HTTP通道传输第一数据。因此,在设置每路HTTP通道传输的字节范围时,需要结合每路HTTP通道的传输速率,使得多路HTTP通道共同传输完第一数据的时长小于使用任一路HTTP通道传输第一数据的时长。
在另一些示例中,与方法一类似的,若移动终端可以支持两路以上的HTTP通道复用时,还可以进一步分别确定分配给两路HTTP通道的数据量是否大于第一阈值。若任一个大于第一阈值,还可以采用方法二类似的方法进行划分,使得两路以上的HTTP通道共同传输第一数据,进一步增大第一数据的传输带宽,提升第一数据的传输效率。当然,也可以采用方法二类似的方法,直接以两路以上的HTTP通道(例如三路HTTP通道)共同传输第一数据的场景,确定出第一阈值的大小,并确定两路以上的HTTP通道分别应传输多大的数据。本申请实施例对此不做限定。
需要说明的是,上述方法一和方法二为基于本申请实施例提供的多路复用的发明构思,提供的两种设置第一阈值,以及确定每路HTTP通道传输第一数据的字节范围的方法示例。当然,也可以基于实际的场景采用不同的第一阈值以及确定每路HTTP通道传输的字节范围的方法,本申请实施例对此不做限定。
下面结合图5,以移动终端是手机为例,对本申请实施例提供的方法的应用场景进行示例性说明。
如图5中(1)所示,为手机视频应用的一个视频浏览界面501。可以理解的是,视频应用需要上网,故手机之前至少开启了Wi-Fi功能或者蜂窝网流量功能。这里以手机开启了Wi-Fi功能为例进行说明。响应于检测到用户点击某个视频对应的控件的操作,视频应用生成第一HTTP请求,并通过已建立好的Wi-Fi链路发送给服务器,用于请求该视频的数据(即第一数据)。在接收到服务器返回的第一HTTP响应时,手机根据第一HTTP响应中携带的该视频的数据大小(例如,为10000字节)确定是否大于阈值。若大于第一阈值,手机确定需要使用多路HTTP通道共同传输第一数据。在一些示例中,手机可以显示如图5中(2)所示的界面502。界面502中显示有提示信息503,用于询问用户是否确定使用蜂窝网流量。若用户确定使用蜂窝网流量,则手机根据保存的第一HTTP请求和第一HTTP响应中携带的请求数据的大小,生成第 二HTTP请求。例如,第二HTTP请求中携带的请求第一数据的字节范围为5000字节至10000字节。手机将第二HTTP请求通过蜂窝网链路发送给服务器,请求第一数据的5000字节至10000字节。也就是说,手机通过Wi-Fi链路接收第一数据的0-4999字节的同时,也通过蜂窝网链路接收第一数据的5000-10000字节。手机根据接收到已接收到的第一数据播放视频,即显示如图5中(4)所示的视频播放界面504。
在又一些示例中,在手机确定第一HTTP响应中携带的该视频的数据大小确定大于第一阈值时,若检测到用户未开启蜂窝网流量功能,例如显示如图5中(3)所示界面505。界面505中的包括提示信息506,用于提示用户开启蜂窝网流量功能。
以上实施例中,是以移动终端使用确定的第一阈值,来判断是否采用第二HTTP通道共同传输数据为例进行说明的。在本申请的又一些实施例中,移动终端也可以采用自学习的方法,来判断是否采用第二HTTP通道共同传输数据,以及各个HTTP通道分别承担多大数据量的传输。
示例性的,在移动终端请求第一数据时,移动终端可以默认采用第一HTTP通道和第二HTTP通道,共同接收第一数据。并且,默认设置通过第二HTTP通道接收第一数据的第二部分的数据大小占据第一数据大小的比例(例如第一比例)。当然也可默认设置通过第一HTTP通道接收第一数据的第一部分的数据大小占第一数据大小的比例。或者,默认设置通过第一HTTP通道接收第一数据的第一部分的数据大小与通过第二HTTP通道接收第一数据的第二部分的数据大小的比例。本申请对设置的比例不做具体限定。下文以设置通过第二HTTP通道接收第一数据的第二部分的数据大小占据第一数据大小的比例为例进行说明。
后续,当移动终端需要接收第二数据时,则根据第一HTTP通道接收第一数据的第一部分耗用的时长,以及第二HTTP通道接收第一数据的第二部分耗用的时长,自动调整第二HTTP通道传输第二数据的第二部分的数据大小占据第二数据大小的比例。以此类推,第一HTTP通道和第二HTTP通道传输其他数据的比例可调整到合适比例,从而提升第一HTTP通道和第二HTTP通道传输数据的效率。
例如,这里以移动终端提前建立好第一HTTP通道和第二HTTP通道的连接为例进行说明。如果第一HTTP通道传输第一数据第一部分耗用的时长大于第二HTTP通道传输第一数据第二部分耗用的时长,则可认为第一HTTP通道传输效率低于第二HTTP通道,则可以适当增大第一比例,即适当增加第二HTTP通道传输第二数据第二部分占据第二数据的比例。这样,可以提升传输第二数据的传输效率。
如果第一HTTP通道传输第一数据第一部分耗用的时长小于第二HTTP通道传输第一数据第二部分耗用的时长,则可认为第一HTTP通道传输效率高于第二HTTP通道,则可以适当减小第一比例,即适当减小第二HTTP通道传输第二数据第二部分占据第二数据的比例。这样,可以提升传输第二数据的传输效率。
如果第一HTTP通道传输第一数据第一部分耗用的时长等于(或者大致等于)第二HTTP通道传输第一数据第二部分耗用的时长,则可认为第一HTTP通道传输效率和第二HTTP通道相同,则可以保持第一比例,即保持第二HTTP通道传输第二数据第二部分占据第二数据的比例。
再例如,这里以移动终端也可以在确定使用第二HTTP通道时,才建立第二HTTP 通道的连接为例进行说明。如果第一HTTP通道传输第一数据第一部分耗用的时长减去第二HTTP通道传输第一数据第二部分耗用的时长的差值大于第二阈值(例如第二阈值包括第二HTTP建立连接耗用的时间),则可认为第一HTTP通道传输效率低于第二HTTP通道,则可以适当增大第一比例,即适当增加第二HTTP通道传输第二数据第二部分占据第二数据的比例。这样,可以提升传输第二数据的传输效率。
如果第一HTTP通道传输第一数据第一部分耗用的时长减去第二HTTP通道传输第一数据第二部分耗用的时长的差值小于第二阈值,则可认为第一HTTP通道传输效率高于第二HTTP通道,则可以适当减小第一比例,即适当减小第二HTTP通道传输第二数据第二部分占据第二数据的比例。这样,可以提升传输第二数据的传输效率。
如果第一HTTP通道传输第一数据第一部分耗用的时长减去第二HTTP通道传输第一数据第二部分耗用的时长的差值等于或大致等于第二阈值,则可认为第一HTTP通道传输效率和第二HTTP通道相同,则可以保持第一比例,即保持第二HTTP通道传输第二数据第二部分占据第二数据的比例。这样,可以提升传输第二数据的传输效率。
本申请实施例还提供一种芯片系统,如图6所示,该芯片系统包括至少一个处理器1101和至少一个接口电路1102。处理器1101和接口电路1102可通过线路互联。例如,接口电路1102可用于从其它装置(例如移动终端100的存储器)接收信号。又例如,接口电路1102可用于向其它装置(例如处理器1101)发送信号。示例性的,接口电路1102可读取存储器中存储的指令,并将该指令发送给处理器1101。当所述指令被处理器1101执行时,可使得移动终端执行上述实施例中的移动终端100(比如,手机)执行的各个步骤。当然,该芯片系统还可以包含其他分立器件,本申请实施例对此不作具体限定。
可以理解的是,上述终端等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
本申请实施例可以根据上述方法示例对上述终端等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以 是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (17)

  1. 一种多路HTTP通道复用的方法,其特征在于,包括:
    移动终端通过第一HTTP通道向第一服务器发送第一HTTP请求,用于请求第一数据;
    所述移动终端通过所述第一HTTP通道接收所述第一服务器返回的第一HTTP响应,所述第一HTTP响应携带所述第一数据的大小;
    在接收到所述第一HTTP响应后,所述移动终端通过所述第一HTTP通道接收所述第一服务器发送的所述第一数据的第一部分;
    在接收到所述第一HTTP响应后,若所述第一数据的大小大于第一阈值,则所述移动终端根据所述第一HTTP请求和所述第一数据的大小生成第二HTTP请求,并通过第二HTTP通道向第二服务器发送所述第二HTTP请求,用于请求所述第一数据中的第二部分;所述移动终端通过所述第二HTTP通道接收所述第二服务器返回的所述第一数据的第二部分;
    在所述移动终端接收完所述第一数据的第一部分后,所述移动终端通过所述第一HTTP通道向所述第一服务器发送控制信令,用于断开所述第一HTTP通道。
  2. 根据权利要求1所述的方法,其特征在于,所述第一HTTP响应中内容长度content length字段中携带所述第一数据的大小。
  3. 根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
    所述移动终端根据所述第一数据的大小、所述第一HTTP通道的带宽、所述第二HTTP通道的带宽、所述第二HTTP通道的往返时延确定所述第一阈值;
    或者,所述移动终端根据所述第一数据的大小、所述第一HTTP通道的带宽、以及所述第二HTTP通道的往返时延确定所述第一阈值。
  4. 根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
    所述移动终端根据所述第一数据的大小,所述第一HTTP通道的带宽、所述第二HTTP通道的带宽以及所述第二HTTP通道的往返时延确定所述第一数据的第二部分的字节范围。
  5. 根据权利要求4所述的方法,其特征在于,所述第一数据的第二部分的字节范围从所述第一数据中间的字节开始到所述第一数据最后一个字节。
  6. 根据权利要求4或5所述的方法,其特征在于,所述方法还包括:
    所述移动终端在所述第二HTTP请求的范围字节range byte字段中携带所述第一数据的第二部分的字节范围。
  7. 根据权利要求1-6任一项所述的方法,其特征在于,所述移动终端通过所述第一HTTP通道向所述第一服务器发送控制信令,用于断开所述第一HTTP通道,具体为:
    所述移动终端通过所述第一HTTP通道向所述第一服务器发送HTTP RESET报文或TCP RESET报文。
  8. 根据权利要求1-7任一项所述的方法,其特征在于,在所述移动终端通过第一HTTP通道向第一服务器发送第一HTTP请求之前,所述方法还包括:
    所述移动终端确定所述第一HTTP通道的预计数据流完成时间FCT最小。
  9. 根据权利要求1-8任一项所述的方法,其特征在于,所述方法还包括:
    在移动终端通过第一HTTP通道向第一服务器发送第一HTTP请求之前,所述移动终端根据所述第一HTTP请求通过所述第一HTTP通道发送第一域名系统DNS请求,用于请求所述第一服务器的地址;以及通过所述第二HTTP通道发送第二域名系统DNS请求,用于请求所述第二服务器的地址。
  10. 根据权利要求1-9任一项所述的方法,其特征在于,所述方法还包括:
    在所述移动终端通过第一HTTP通道向第一服务器发送第一HTTP请求之前,所述移动终端通过Wi-Fi网络建立所述第一HTTP通道,以及通过蜂窝网络建立所述第二HTTP通道;
    或者,在所述移动终端通过第一HTTP通道向第一服务器发送第一HTTP请求之前,所述移动终端通过Wi-Fi网络建立所述第一HTTP通道;在所述移动终端通过第二HTTP通道向第二服务器发送所述第二HTTP请求之前,所述移动终端通过蜂窝网络建立所述第二HTTP通道。
  11. 根据权利要求7所述的方法,其特征在于,所述方法还包括:
    在所述移动终端通过所述第一HTTP通道向所述第一服务器发送TCP RESET报文,用于断开所述第一HTTP通道之后,所述移动终端重新建立所述第一HTTP通道。
  12. 一种多路HTTP通道复用的方法,其特征在于,包括:
    移动终端通过第一HTTP通道向第一服务器发送第一HTTP请求,用于请求第一数据;
    所述移动终端通过所述第一HTTP通道接收所述第一服务器返回的第一HTTP响应,所述第一HTTP响应携带所述第一数据的大小;
    在接收到所述第一HTTP响应后,所述移动终端通过所述第一HTTP通道接收所述第一服务器发送的所述第一数据的第一部分;
    在接收到所述第一HTTP响应后,所述移动终端根据所述第一HTTP请求、所述第一数据的大小、以及第一比例生成第二HTTP请求,并通过第二HTTP通道向第二服务器发送所述第二HTTP请求,用于请求所述第一数据中的第二部分;所述第一数据中的第二部分的数据大小为所述第一数据的大小与所述第一比例的乘积;所述移动终端通过所述第二HTTP通道接收所述第二服务器返回的所述第一数据的第二部分;
    在所述移动终端接收完所述第一数据的第一部分后,所述移动终端通过所述第一HTTP通道向所述第一服务器发送第一控制信令,用于断开所述第一HTTP通道。
  13. 根据权利要求12所述的方法,其特征在于,所述方法还包括:
    所述移动终端重新建立所述第一HTTP通道;
    所述移动终端通过第一HTTP通道向所述第一服务器发送第三HTTP请求,用于请求第二数据;
    所述移动终端通过所述第一HTTP通道接收所述第一服务器返回的第二HTTP响应,所述第二HTTP响应携带所述第二数据的大小;
    在接收到所述第二HTTP响应后,所述移动终端通过所述第一HTTP通道接收所述第一服务器发送的所述第二数据的第一部分;
    在接收到所述第二HTTP响应后,所述移动终端根据所述第一HTTP通道接收所 述第一数据的第一部分耗用的第一时长以及所述第二HTTP通道接收所述第一数据第二部分耗用的第二时长调整所述第一比例的大小;根据所述第三HTTP请求、所述第二数据的大小、以及调整后的所述第一比例生成第四HTTP请求,并通过第二HTTP通道向所述第二服务器发送所述第四HTTP请求,用于请求所述第二数据中的第二部分;所述第二数据中的第二部分的数据大小为所述第二数据的大小与调整后的所述第一比例的乘积;所述移动终端通过所述第二HTTP通道接收所述第二服务器返回的所述第二数据的第二部分;
    在所述移动终端接收完所述第二数据的第一部分后,所述移动终端通过所述第一HTTP通道向所述第一服务器发送第二控制信令,用于断开所述第一HTTP通道。
  14. 根据权利要求13所述的方法,其特征在于,所述移动终端根据所述第一HTTP通道接收所述第一数据的第一部分耗用的第一时长以及所述第二HTTP通道接收所述第一数据第二部分耗用的第二时长调整所述第一比例的大小,具体为:
    若所述第一时长减去所述第二时长的差值大于第二阈值,则增大所述第一比例;
    若所述第一时长减去所述第二时长的差值小于所述第二阈值,则减小所述第一比例;
    若所述第一时长减去所述第二时长的差值等于所述第二阈值,则保持所述第一比例。
  15. 一种移动终端,其特征在于,包括:处理器、存储器和触摸屏,所述存储器、所述触摸屏与所述处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器从所述存储器中读取所述计算机指令,以使得所述移动终端执行如权利要求1-11中任一项所述多路HTTP通道复用的方法,或如权利要求12-14任一项所述多路HTTP通道复用的方法。
  16. 一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在移动终端上运行时,使得所述移动终端执行如权利要求1-11中任一项所述多路HTTP通道复用的方法,或如权利要求12-14任一项所述多路HTTP通道复用的方法。
  17. 一种芯片系统,其特征在于,包括一个或多个处理器,当所述一个或多个处理器执行指令时,所述一个或多个处理器执行如权利要求1-11中任一项所述多路HTTP通道复用的方法,或如权利要求12-14任一项所述多路HTTP通道复用的方法。
PCT/CN2020/125442 2019-12-12 2020-10-30 一种多路http通道复用的方法及终端 WO2021114950A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202080086659.7A CN114830608A (zh) 2019-12-12 2020-10-30 一种多路http通道复用的方法及终端
EP20897766.0A EP4054132A4 (en) 2019-12-12 2020-10-30 TERMINAL AND MULTIPATH HTTP CHANNEL MULTIPLEXING METHOD
US17/839,154 US20220311700A1 (en) 2019-12-12 2022-06-13 Method for multiplexing http channels and terminal

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201911275947.2 2019-12-12
CN201911275947.2A CN111131019B (zh) 2019-12-12 2019-12-12 一种多路http通道复用的方法及终端

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/839,154 Continuation US20220311700A1 (en) 2019-12-12 2022-06-13 Method for multiplexing http channels and terminal

Publications (1)

Publication Number Publication Date
WO2021114950A1 true WO2021114950A1 (zh) 2021-06-17

Family

ID=70499963

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/125442 WO2021114950A1 (zh) 2019-12-12 2020-10-30 一种多路http通道复用的方法及终端

Country Status (4)

Country Link
US (1) US20220311700A1 (zh)
EP (1) EP4054132A4 (zh)
CN (2) CN111131019B (zh)
WO (1) WO2021114950A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111131019B (zh) * 2019-12-12 2021-06-22 华为技术有限公司 一种多路http通道复用的方法及终端

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102090061A (zh) * 2008-07-09 2011-06-08 苹果公司 使用多个通道的视频流传输
CN103875304A (zh) * 2011-10-12 2014-06-18 摩托罗拉移动有限责任公司 通过多个rat通信设备检索内容
CN106134147A (zh) * 2014-03-18 2016-11-16 高通股份有限公司 实现请求管理器和连接管理器功能的传输加速器
US20180262419A1 (en) * 2017-03-07 2018-09-13 Akamai Technologies, Inc. Cooperative multipath
CN111131019A (zh) * 2019-12-12 2020-05-08 华为技术有限公司 一种多路http通道复用的方法及终端

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050144278A1 (en) * 2003-12-12 2005-06-30 Valeri Atamaniouk System and method for multipart response optimization
US20140136653A1 (en) * 2012-02-27 2014-05-15 Qualcomm Incorporated Dash client and receiver with download rate acceleration
CN102710748B (zh) * 2012-05-02 2016-01-27 华为技术有限公司 数据获取方法、系统及设备
CN103200606B (zh) * 2013-03-18 2016-12-28 东莞宇龙通信科技有限公司 终端和数据业务处理方法
CN104113564A (zh) * 2013-04-17 2014-10-22 中国移动通信集团公司 超文本传输协议连接复用方法、设备、系统及终端
CN104580389B (zh) * 2014-12-18 2017-12-01 河海大学 URI标识的Ogg格式时间片段的客户端HTTP检索方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102090061A (zh) * 2008-07-09 2011-06-08 苹果公司 使用多个通道的视频流传输
CN103875304A (zh) * 2011-10-12 2014-06-18 摩托罗拉移动有限责任公司 通过多个rat通信设备检索内容
CN106134147A (zh) * 2014-03-18 2016-11-16 高通股份有限公司 实现请求管理器和连接管理器功能的传输加速器
US20180262419A1 (en) * 2017-03-07 2018-09-13 Akamai Technologies, Inc. Cooperative multipath
CN111131019A (zh) * 2019-12-12 2020-05-08 华为技术有限公司 一种多路http通道复用的方法及终端

Also Published As

Publication number Publication date
CN114830608A (zh) 2022-07-29
EP4054132A1 (en) 2022-09-07
CN111131019A (zh) 2020-05-08
EP4054132A4 (en) 2022-12-28
CN111131019B (zh) 2021-06-22
US20220311700A1 (en) 2022-09-29

Similar Documents

Publication Publication Date Title
WO2021051989A1 (zh) 一种视频通话的方法及电子设备
WO2020014880A1 (zh) 一种多屏互动方法及设备
WO2022257977A1 (zh) 电子设备的投屏方法和电子设备
CN111416794B (zh) 一种数据传输方法及电子设备
CN113169915B (zh) 无线音频系统、音频通讯方法及设备
WO2021175300A1 (zh) 数据传输方法、装置、电子设备和可读存储介质
CN111628916B (zh) 一种智能音箱与电子设备协作的方法及电子设备
WO2021185141A1 (zh) Wi-Fi Aware的建链方法、系统、电子设备和存储介质
WO2022033296A1 (zh) 蓝牙通信方法、可穿戴设备及系统
US20220353819A1 (en) Method for Reducing Power Consumption of Mobile Terminal and Mobile Terminal
CN110636554B (zh) 数据传输方法及装置
CN111316604B (zh) 一种数据传输方法及电子设备
WO2021139630A1 (zh) 数据传输方法、装置及数据处理系统、存储介质
WO2021179990A1 (zh) 一种应用服务器的访问方法及终端
WO2022042637A1 (zh) 一种蓝牙数据传输方法及相关装置
CN111372329B (zh) 一种连接建立方法及终端设备
US20220311700A1 (en) Method for multiplexing http channels and terminal
US20230335081A1 (en) Display Synchronization Method, Electronic Device, and Readable Storage Medium
WO2022199491A1 (zh) 一种立体声组网方法、系统及相关装置
WO2022161006A1 (zh) 合拍的方法、装置、电子设备和可读存储介质
CN113678481B (zh) 无线音频系统、音频通讯方法及设备
CN114172860B (zh) 邮件处理方法和装置
CN113613230B (zh) 一种扫描参数的确定方法及电子设备
WO2023061217A1 (zh) 一种数据传输方法及装置
WO2022206603A1 (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: 20897766

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020897766

Country of ref document: EP

Effective date: 20220603

NENP Non-entry into the national phase

Ref country code: DE