WO2017049505A1 - 数据传输方法及通信装置 - Google Patents

数据传输方法及通信装置 Download PDF

Info

Publication number
WO2017049505A1
WO2017049505A1 PCT/CN2015/090441 CN2015090441W WO2017049505A1 WO 2017049505 A1 WO2017049505 A1 WO 2017049505A1 CN 2015090441 W CN2015090441 W CN 2015090441W WO 2017049505 A1 WO2017049505 A1 WO 2017049505A1
Authority
WO
WIPO (PCT)
Prior art keywords
mptcp
http
substream
stream
sub
Prior art date
Application number
PCT/CN2015/090441
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 PCT/CN2015/090441 priority Critical patent/WO2017049505A1/zh
Priority to CN201580080702.8A priority patent/CN107615729B/zh
Publication of WO2017049505A1 publication Critical patent/WO2017049505A1/zh
Priority to US15/933,316 priority patent/US10958581B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • 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
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures

Definitions

  • the embodiments of the present invention relate to the field of communications technologies, and in particular, to a data transmission method and a communication device.
  • HTTP Hypertext Transfer Protocol
  • HTTP is an application layer communication protocol between a client browser or other program and a web server, and adopts a request/response model.
  • HTTP/1.0 or HTTP/1.1 first version of HTTP
  • HTTP/2 (Second Edition HTTP) effectively utilizes network resources and reduces perceived latency by introducing header field compression and multiplexing.
  • TCP Transmission Control Protocol
  • HTTP request response exchanges are allocated on each stream to implement the above Multiplexing.
  • the embodiment of the invention provides a data transmission method and a communication device, which can improve the throughput of HTTP/2 data transmission and system robustness.
  • an embodiment of the present invention provides a data transmission method, which is suitable for communication.
  • the protocol stack of the communication device includes an HTTP/2 adaptation layer and a Multi-Path Transmission Control Protocol (MPTCP) layer
  • the method includes: the HTTP/2 adaptation layer determines that it belongs to the same HTTP All HTTP/2 frames of the /2 stream are matched to the same MPTCP substream; the MPTCP layer carries all HTTP/2 frames belonging to the same HTTP/2 stream to one MPTCP substream according to the indication of the HTTP/2 adaptation layer.
  • the transmission is performed, where the MPTCP link to which the MPTCP substream belongs has at least one MPTCP substream.
  • the HTTP/2 adaptation layer between the application and the MPTCP layer By setting the HTTP/2 adaptation layer between the application and the MPTCP layer, all frames belonging to the same HTTP/2 stream are carried on the same MPTCP substream for transmission, which improves data throughput and system robustness. it is good. Further, the intermediate parsing node on the MPTCP substream between the client and the server can receive all the frames belonging to the same HTTP/2 stream, thereby completing the HTTP/2 service parsing process.
  • the method further includes: the HTTP/2 adaptation layer identifies, according to the received flow identifier of the HTTP/2 frame, whether each HTTP/2 frame belongs to the same HTTP/2 stream. Among them, frames belonging to the same HTTP/2 stream have the same stream identifier.
  • the HTTP/2 adaptation layer performs information interaction with an interface between the MPTCP layer to obtain substream information of at least one MPTCP substream belonging to the foregoing MPTCP link, where the substream information is used. Identifies the MPTCP subflow.
  • the sub-flow information acquired by the HTTP/2 adaptation layer includes at least an MPTCP sub-flow identifier, where the MPTCP sub-flow identifier may include address information of the MPTCP sub-flow; Selecting an MPTCP substream from the address information of at least one MPTCP substream of the same MPTCP link, and selecting the MPTCP sub
  • the flow is used to carry all the HTTP/2 frames belonging to the same HTTP/2 stream; and send the HTTP/2 frame and the address information of the selected MPTCP substream to the transmission unit of the MPTCP layer; And, all the HTTP/2 frames belonging to the same HTTP/2 stream are carried by the MPTCP layer to the selected MPTCP substream for transmission.
  • the substream information acquired by the HTTP/2 adaptation layer includes at least the number of MPTCP substreams.
  • the HTTP/2 adaptation layer allocates an MPTCP sub-flow identification number for each MPTCP sub-flow in the corresponding number of MPTCP sub-flows, and the MPTCP sub-flow identification number is used to distinguish different MPTCP sub-flows; All HTTP/2 frames of the same HTTP/2 stream all correspond to one MPTCP substream identification number; and send the HTTP/2 frame and the corresponding MPTCP substream identification number to the MPTCP layer; and select one by the MPTCP layer.
  • the MPTCP substream corresponds to the MPTCP substream identification number; and all the HTTP/2 frames belonging to the same HTTP/2 stream are allocated to the MPTCP substream corresponding to the MPTCP identification number for transmission.
  • the HTTP/2 adaptation layer can allocate all HTTP/2 frames belonging to the same HTTP/2 stream to the same MPTCP substream by using the number of MPTCP substreams or the identification information of each MPTCP substream under the MPTCP link.
  • the HTTP/2 adaptation layer identifies the HTTP/2 stream and the non-HTTP/2 data, and transparently transmits the non-HTTP/2 data to the MPTCP layer, where the MPTCP layer determines that the non- The HTTP2 data is allocated to the MPTCP substream for transmission; or the HTTP/2 adaptation layer transmits an indication message to the MPTCP layer while transmitting the non-HTTP/2 data to the MPTCP layer, indicating that the non-HTTP/2 data is allocated to a certain piece. MPTCP subflow.
  • an embodiment of the present invention provides a communication device, where the communication device has Implement the functions of the above methods.
  • the functions may be implemented by hardware or by corresponding software implemented by hardware.
  • the hardware or software includes one or more modules corresponding to the functions described above.
  • the structure of the communication device includes a processor and a memory, the processor being configured to support the communication device to perform a corresponding function in the above method.
  • the memory is for coupling with a processor that stores the necessary program instructions and data for the base station.
  • the communication device can also include a communication interface for supporting communication between the communication device and other communication devices.
  • an embodiment of the present invention provides a non-volatile computer storage medium for storing computer software instructions for use in the communication device, including a program designed to perform the above aspects.
  • an embodiment of the present invention provides a computer software product stored in a storage medium, the computer software product comprising instructions for causing a computer device to perform the data transmission method provided by the above aspect.
  • the technical solution provided by the embodiment of the present invention solves the problem that the data throughput is low and the system robustness is poor due to the HTTP/2 stream multiplexing transmission caused by only one TCP connection in the prior art, and the HTTP/2 stream is improved. Transmission performance.
  • 1 is a schematic diagram of an HTTP/2 stream transmission process
  • 2a is a schematic diagram of an MPTCP protocol stack
  • 2b is a schematic diagram of a protocol stack provided by an embodiment of the present invention.
  • FIG. 3 is a schematic flowchart of a data transmission method according to an embodiment of the present invention.
  • step S301 is a schematic flowchart of the refinement of step S301 in a data transmission method according to an embodiment of the present invention
  • FIG. 5 is a schematic flowchart of the refinement of step S301 in a data transmission method according to an embodiment of the present invention
  • FIG. 6 is a schematic flowchart of another data transmission method according to an embodiment of the present invention.
  • FIG. 7 is a schematic structural diagram of a communication apparatus according to an embodiment of the present invention.
  • FIG. 8 is a schematic structural diagram of a communication apparatus according to an embodiment of the present invention.
  • GSM Global System for Mobile Communication
  • CDMA Code Division Multiple Access
  • TDMA Time Division Multiple Access
  • WCDMA Wideband Code Division Multiple Access
  • LTE Long Term Evolution
  • WiFi Wireless Local Area Network
  • WiMax Worldwide Interoperability for Microwave Access
  • the base station device in the embodiment of the present invention may be, for example, The Base Transceiver Station (BTS) in GSM or CDMA may also be a Node B (NodeB) in WCDMA, or an evolved Node B (e-NodeB) in LTE, or may be The access point (AP, Access Point) in the WLAN, or a network element having similar functions in other communication or wireless network systems, is not limited in this embodiment of the present invention.
  • BTS Base Transceiver Station
  • NodeB Node B
  • e-NodeB evolved Node B
  • AP Access Point
  • WLAN Wireless Local Area Network
  • the base station control device in the embodiment of the present invention may be, for example, a base station controller (BSC) in GSM or CDMA, and may be a radio network controller (RNC) in WCDMA. It is an access controller (AC, Access Controller) in the WLAN, and may also be another network element having similar functions, which is not limited in this embodiment of the present invention.
  • BSC base station controller
  • RNC radio network controller
  • AC Access Controller
  • the client device in the embodiment of the present invention may be a User Equipment (UE), including a user equipment that accesses the access network in a wireless manner for data transmission, such as a mobile phone, a mobile terminal, and a personal computer with wireless communication function. , or other similar terminal devices with data communication functions, and the like.
  • UE User Equipment
  • the server in the embodiment of the present invention may be a server, a base station device, a base station control device, and the like, and the device communicates with the client.
  • the access network described in the embodiment of the present invention includes a radio access network (RAN, Radio Access Network) composed of a BTS and a BSC, or a NodeB and an RNC, or an e-NodeB, and an AP.
  • RAN Radio Access Network
  • a broadband access network composed of devices such as AC.
  • the AC and the RNC can be fused, that is, the function of the AC is integrated on the RNC and communicates with the AP.
  • FIG. 1 is a schematic diagram of an HTTP/2 stream transmission process.
  • the HTTP/2 stream (or simply "stream”) described in the embodiment of the present invention is a bidirectional sequence in which a client and a server exchange frames under an HTTP/2 connection.
  • the frame is the basic protocol unit in HTTP/2.
  • Each frame has a different type and purpose. For example, headers and data frames form the basic HTTP request and response; other frames such as settings, window_updating, and push_promise are used to implement other HTTP2 functions.
  • the structure and content of the frame body depends on the frame type.
  • the header field of the frame of the HTTP header field contained in HTTP/2 is compressed, which can significantly reduce the size of requests and responses.
  • a frame in an HTTP stream is referred to as an HTTP/2 frame, or simply as a frame.
  • HTTP/2 in the HTTP/2 connection process, multiple independent HTTP/2 streams are transmitted in the same TCP connection, including stream1, stream3, and stream5, stream1 includes data frames, and stream3 includes header frames and data frames.
  • Stream5 includes a data frame, wherein the data frame of stream1, the header frame and the data frame of stream3 are sent by the server to the client, and the data frame of stream5 is sent by the client to the server.
  • frames in the same HTTP/2 stream can be continuously transmitted, such as stream3; or discontinuously transmitted, such as stream1.
  • an HTTP/2 stream may include one or more frame types in a data frame, a control frame, and a header frame.
  • FIG. 1 is only an example, and may not constitute a frame type or quantity included in an HTTP/2 stream. Any restrictions.
  • an HTTP/2 connection can hold multiple streams that are simultaneously open, and the communication ends can exchange frames among multiple streams.
  • the frames in each HTTP/2 stream are sent in time series, and the order in which each frame is transmitted determines the order in which it is received and processed, especially the header frame and The order semantics of the data frame determines that the receiving end processes the header frame and then processes the data frame, such as the header frame and the data frame transmission sequence in stream3 as shown in FIG.
  • Each HTTP/2 stream has a stream identifier.
  • the flow identifier is assigned by the communication end that initiates the HTTP/stream, and each frame in the same HTTP/2 stream carries the same flow identifier.
  • HTTP/stream can be used or shared unilaterally by the client or server; it can also be closed by any communication terminal.
  • the embodiment of the present invention applies the related technology of the MPTCP to the transmission of the HTTP/2 stream, and optimizes the transmission of the HTTP2 stream by using the MPTCP. Further, if each frame of the same HTTP/2 stream is randomly transmitted on each MPTCP substream of the MPTCP link, the intermediate resolution node on the MPTCP substream between the client and the server cannot receive the same HTTP/ All frames of the 2 stream, and thus the HTTP/2 service parsing process cannot be completed.
  • the intermediate resolution node may be any communication device in the MPTCP link, such as a router, a base station device, or a base station control device, which is not limited in this embodiment of the present invention.
  • FIG. 2a is a schematic diagram of the MPTCP protocol stack.
  • the MPTCP protocol stack mainly divides the TCP layer into an MPTCP layer and a TCP Subflow layer, and implements concurrent data transmission, including : Establishing multiple MPTCP sub-flows is equivalent to establishing multiple TCP connections; by the MPTCP layer Perform data shunting or aggregation processing on multiple MPTCP substreams.
  • the MPTCP substream and its associated MPTCP link can be linked by a token.
  • Token is the identifier of the MPTCP link. It has only local significance and uniqueness. Both the initiator and the responder of the initial connection establishment process of the MPTCP must generate a Token.
  • the Token can be regarded as the MPTCP Connection ID.
  • the MPTCP link consists of multiple MPTCP substreams.
  • An MPTCP substream is a TCP data stream that is transmitted over a particular transport path.
  • the transmission path refers to a path existing between the two ends of the communication of the MPTCP link, and can be identified by a pair of addresses at both ends of the communication, such as an IP address at both ends of the communication, or an IP address and a port number (port), each of which The MPTCP subflow has a corresponding path.
  • the two ends of the communication of the MPTCP link may be the communication devices at both ends of the air interface uplink or air interface downlink data transmission, for example, the client and the server.
  • any one of the two ends of the communication may initiate or respond to the related process of the MPTCP link, including the initial connection establishment process of the MPTCP, the new flow creation process, the substream deletion process, and the substream priority update process.
  • the initial connection establishment process of the MPTCP is initiated by the UE accessing a certain wireless access point, and the server on the network side responds, and the UE and the server become the communication ends of the MPTCP link; similarly, the initial connection of the MPTCP may also be initiated by the server.
  • the establishment process the UE responds.
  • MPTCP is an end-to-end protocol
  • the two ends of the communication need interactive control signaling to perform functions such as the above-mentioned MPTCP initial connection establishment, TCP substream addition or deletion, and address notification.
  • These control signaling are transmitted through the TCP option (TCP Option).
  • FIG. 2b is a schematic diagram of a protocol stack according to an embodiment of the present invention.
  • an HTTP2 adaptation layer is inserted in the application layer and the MPTCP layer to identify the HTTP/2 stream, so that all frames belonging to the same HTTP/2 stream are transmitted on the same MPTCP substream for the client and the server.
  • the intermediate parsing node on the MPTCP substream can receive all the frames in an HTTP/2 stream and complete the HTTP/2 service parsing process.
  • an embodiment of the present invention provides a data transmission method, which is applicable to a communication device.
  • the protocol stack of the communication device includes an HTTP/2 adaptation layer and an MPTCP layer.
  • the communication device can perform data communication with the peer as a client or a server.
  • the data transmission method includes steps S301-S302:
  • the HTTP/2 adaptation layer determines that all HTTP/2 frames belonging to the same HTTP/2 stream are matched to the same MPTCP substream.
  • an HTTP/2 adaptation layer can be set between the application layer of the protocol stack and the MPTCP layer.
  • the HTTP/2 adaptation layer can be used to identify HTTP/2 streams and match HTTP/2 frames with MPTCP substreams.
  • the MPTCP layer carries all the HTTP/2 frames belonging to the same HTTP/2 stream to an MPTCP sub-stream for transmission according to the indication of the HTTP/2 adaptation layer, where the MPTCP sub-flow belongs to
  • the MPTCP link has at least one MPTCP substream.
  • the HTTP/2 adaptation layer may send a message carrying an HTTP/2 frame and a corresponding subflow indication information (subflow_indication) to the MPTCP layer, and the MPTCP layer according to the sub Flow indication information, the HTTP/2 frame is allocated to an MPTCP substream for transmission, and further, all frames belonging to the same HTTP/2 stream are allocated to the same according to the same substream indication information.
  • the MPTCP substream is transmitted.
  • the method may further include the step S300a: the HTTP/2 adaptation layer identifies the HTTP/2 stream to which the HTTP/2 frame belongs according to the flow identifier carried by the HTTP/2 frame.
  • the HTTP/2 frame is transmitted by the application layer to the HTTP/2 adaptation layer.
  • the foregoing flow identifier may be a stream identifier (Stream ID) in a header field of the HTTP/2 frame.
  • Stream ID stream identifier
  • Using a stream identifier indicates that the HTTP/2 frame belongs to a contiguous HTTP/2 stream rather than an independent transmission.
  • HTTP/2 frames belonging to the same HTTP/2 stream have the same stream identifier.
  • the length of the stream identifier can be 31 bytes.
  • the method may further include: Step S300b: the HTTP/2 adaptation layer acquires substream information of at least one MPTCP substream belonging to the MPTCP link by using an interface with the MPTCP layer, where The substream information is used to identify the at least one MPTCP substream.
  • the information interaction between the HTTP/2 adaptation layer and the MPTCP layer may be performed through an interface, such as a socket interface.
  • the MPTCP layer can send sub-stream information of each MPTCP sub-flow to the HTTP/2 adaptation layer through the Socket interface.
  • the execution sequence of the steps S300a and S300b is not limited in the embodiment of the present invention, that is, the S300a may be executed first and then the S300b may be executed. Alternatively, S300a may be executed first and then S300b may be executed, or S300a and S300b may be simultaneously executed.
  • the data transmission method provided by the embodiment of the present invention, according to the flow identifier of the HTTP/2 stream and the substream information of at least one MPTCP substream under the MPTCP link, All frames of the same HTTP/2 stream are allocated on the same MPTCP sub-stream for transmission, the data throughput is large, the system is robust, and the transmission performance of the HTTP/2 stream is improved.
  • the sub-flow information of the MPCTP sub-flow obtained by the HTTP/2 adaptation layer includes at least an MPTCP sub-flow identifier.
  • the MPTCP subflow identifier may include address information of the MPTCP subflow.
  • the address information of the MPTCP substream may be a port number and an IP address of the two ends of the communication of the MPTCP link, or an IP address of the two ends of the communication.
  • Each MPTCP substream under the MPTCP link has a different address, that is, the address information can be used to characterize the MPTCP substream.
  • S301 specifically includes steps S3011-S3012 as shown in FIG. 4:
  • the HTTP/2 adaptation layer selects an MPTCP substream according to the address information of the at least one MPTCP substream, and the selected MPTCP substream is used to carry all HTTP/2 frames belonging to the same HTTP/2 stream.
  • the HTTP/2 adaptation layer sends the address information of the HTTP/2 frame and the selected MPTCP substream to the MPTCP layer.
  • the HTTP/2 adaptation layer may identify the HTTP/2 stream to which the HTTP/2 frame belongs according to the flow identifier carried in the HTTP/2 frame; and obtain the number of the substreams under the MPTCP link according to the address information of the MPTCP substream. And a path of each MPTCP substream, thereby selecting one MPTCP substream from the plurality of MPTCP substreams; further instructing the MPTCP layer to allocate all HTTP/2 frames belonging to the same HTTP/2 stream to the selected MPTCP sub- Transfer in the stream.
  • the substream sent by the HTTP/2 adaptation layer to the MPTCP layer The indication information may be address information of an MPTCP substream selected by the HTTP/2 layer.
  • the HTTP/2 frame corresponding to the sub-flow indication information may be allocated to the MPTCP sub-flow matching the address information for transmission.
  • the HTTP/2 adaptation layer matches the address information of the same MPTCP sub-flow for all frames in the same HTTP/2 according to the flow identifier carried in the HTTP/2 frame, and thus, within the same HTTP/2.
  • the substream indication information corresponding to all the frames is also the same.
  • the MPTCP layer can allocate all HTTP/2 frames belonging to the same HTTP/2 stream to the same MPTCP substream according to the same substream indication information.
  • S302 is specifically: the MPTCP layer carries all the HTTP/2 frames belonging to the same HTTP/2 stream to the selected MPTCP substream for transmission.
  • the substream information of the MPTCP substream acquired by the HTTP/2 adaptation layer includes at least the number of MPTCP substreams.
  • S301 specifically includes steps S3011'-S3013' as shown in FIG. 5:
  • the HTTP/2 adaptation layer allocates an MPTCP substream identification number to each of the MPTCP substreams, and the MPTCP substream identification number is used to distinguish different MPTCP substreams.
  • the MPTCP sub-flow identification number is used to distinguish multiple pieces of MPTCP sub-flows belonging to the same MPTCP link.
  • each of the MPTCP substreams may be identified by a different symbol, such as a letter, a number, a character, or the like.
  • the HTTP/2 adaptation layer sends the HTTP/2 frame and the corresponding MPTCP substream identification number to the MPTCP layer.
  • the sub-flow indication information sent by the HTTP/2 adaptation layer to the MPTCP layer may be an MPTCP sub-flow identification number.
  • the HTTP/2 adaptation layer may determine that the MPTCP link includes several different MPTCPs. Substream, and each MPTCP substream is distinguished by different MPTCP substream identification numbers, and then sends a message carrying the HTTP/2 frame and the MPTCP substream identification number to the MPTCP layer, and the MPTCP layer determines to transmit the HTTP/2 frame.
  • the specific MPTCP subflow It can be understood that all frames belonging to the same HTTP/2 stream are associated with the same MPTCP identification number, and the MPTCP layer can allocate all HTTP/2 frames in the same HTTP/2 stream to the same MPTCP according to the identification number. On the substream.
  • S302 specifically includes: the MPTCP layer selects an MPTCP substream corresponding to the MPTCP substream identification number; and allocates all HTTP/2 frames belonging to the same HTTP/2 stream. The transmission is performed on the MPTCP substream corresponding to the MPTCP identification number.
  • the manner of selecting the MPTCP substream is not particularly limited in the embodiment of the present invention.
  • the HTTP/2 adaptation layer or the MPTCP layer may randomly select the MPTCP substream to transmit the above HTTP/2 frame; or may select the lower payload MPTCP substream to transmit the HTTP/2 frame according to the load condition of each MPTCP substream. .
  • the transmission process of the HTTP/2 stream in the embodiment of the present invention is described below by way of an example. It is assumed that the HTTP/2 adaptation layer determines that there are three MPTCP substreams under one MPTCP link according to the quantity information of the MPTCP substream, including substream 1, substream 2 and substream 3, using the label 1-3 molecular stream 1, sub Stream 2 and substream 3 are not used to specifically refer to a specific MPTCP substream.
  • the HTTP/2 adaptation layer may carry the HTTP/2 frame and the subflow indication information (subflow_indication) indicating any one of the substream 1, the substream 2, and the substream 3 in a message and send it to the MPTCP layer, where the subflow_indication
  • the value may be 1 or 2 or 3; subsequently, the MPTCP layer determines the specific MPTCP substream corresponding to substream 1, substream 2 or substream 3, and will belong to HTTP of substream 1, substream 2 or substream 3.
  • the /2 frames are allocated for transmission to the corresponding MPTCP substream, wherein each specific MPTCP substream can be identified by an IP address at both ends of the communication.
  • the format of the message may be (buf, subflow_indication, ...), where the parameter buf represents the data sent by the HTTP/2 adaptation layer to the MPTCP layer, that is, the HTTP/2 frame in the embodiment of the present invention.
  • This message can be sent through the Socket interface.
  • Subflow_indication represents substream indication information.
  • multiple HTTP/2 streams can be transmitted simultaneously between two ends of the communication, and each HTTP/2 stream can be transmitted on different MPTCP substreams.
  • each HTTP/2 stream can be transmitted on different MPTCP substreams.
  • the HTTP/2 stream on the MPTCP substream can be transferred to other MPTCP substreams for transmission in time, which improves system robustness.
  • the HTTP/2 adaptation layer and the MPTCP layer are respectively configured in the protocol stacks of the host (host) A and the host B, and there are two MPTCP sub-nodes between the host A and the host B.
  • the flows are subflow1 and subflow2, respectively, where subflow1 can be identified by a set of IP addresses (A2; B1) of host A and host B, and subflow2 can It is identified by another set of IP addresses (A2; B1) of host A and host B.
  • There are four HTTP/2 streams between host A and host B which are stream1, stream2, stream3, and stream4.
  • the corresponding stream identifiers are 1, 2, 3, and 4, respectively, assuming that each HTTP/2 stream has Two HTTP/2 frames, frame1 and frame2, and the type of HTTP/2 frame is not limited.
  • the HTTP/2 adaptation layer can determine the HTTP/2 stream to which the HTTP/2 frame belongs by identifying the flow identifier of the HTTP/2 frame, and instruct the MPTCP layer to allocate all the frames in stream1 and stream4 on the subflow2, respectively. All frame allocations of stream2 and stream3 are transmitted on subflow1, which implements the offloading of HTTP/2 services. It is to be understood that this example does not constitute any limitation of the embodiments of the invention.
  • header frames and data frames in an HTTP/2 stream constitute a basic HTTP request and response. Since the flow identifiers of the header frame and the data frame in the same HTTP/2 stream are the same, the HTTP/2 adaptation layer can allocate the header frame and the data frame to the same MPTCP substream for transmission by identifying the flow identifier. Requests and responses for the same HTTP/2 stream can be performed on an MPTCP subflow. Therefore, the intermediate parsing node on the MPTCP substream can obtain all the information of the HTTP/2 stream on an MPTCP substream, so as to complete the parsing of the HTTP/2, and implement processing of different MPTCP substream services, including subsequent data transmission. Business optimization, billing, etc.
  • FIG. 6 is a schematic flowchart of another data transmission method according to an embodiment of the present invention, which may be used for a client or a server.
  • S601 The application layer identifies whether the received data is an HTTP/2 stream. If the data is an HTTP/2 stream, execute S602. If the data is a non-HTTP/2 stream, execute S603.
  • non-HTTP/2 stream refers to data that is not transmitted in the format specified by HTTP/2.
  • the application layer may determine whether the data is an HTTP/2 stream according to a frame format of the received data.
  • HTTP/2 frame format For the HTTP/2 frame format, reference may be made to the related description of other embodiments of the present invention, and details are not described herein.
  • the application layer transmits the HTTP/2 stream to the HTTP/2 adaptation layer for processing.
  • the application layer transmits the non-HTTP/2 stream to the MPTCP layer for processing, and the MPTCP layer determines to allocate the non-HTTP/2 stream to the MPTCP substream for transmission.
  • the HTTP/2 adaptation layer for HTTP/2 stream processing includes S6021-S6024:
  • the HTTP/2 adaptation layer identifies the HTTP/2 stream by using the flow identifier.
  • the HTTP/2 adaptation layer acquires information of the MPTCP substream from the MPTCP layer through the Socket interface.
  • the HTTP/2 adaptation layer may receive the TCP_MULTIPATH_CONNID message sent by the MPTCP layer through the Socket interface, thereby obtaining the number of MPTCP sub-streams, or receiving the TCP_MULTIPATH_SUBFLOWS message, thereby obtaining an address list of the MPTCP sub-stream (list of values of addresses)
  • the address list may include information such as an IP address and a port number of both ends of communication of each MPTCP substream belonging to the same MPTCP link.
  • the HTTP/2 adaptation layer matches all frames belonging to the HTTP/2 stream with the same MPTCP substream.
  • the HTTP/2 adaptation layer sends the HTTP/2 stream and the corresponding substream indication information to the MPTCP layer, and the MPTCP layer allocates the HTTP/2 stream to the specific MPTCP substream for transmission.
  • HTTP/2 stream processing procedure For a detailed description of the HTTP/2 stream processing procedure, reference may be made to related content of other embodiments of the present invention, and details are not described herein.
  • the MPTCP layer may determine the MPTCP substream that transmits the non-HTTP2 data, including: transmitting the non-HTTP2 data on the MPTCP substream that transmits the HTTP/2 stream; or assigning the non-HTTP2 data to the untransmitted
  • the embodiment of the present invention does not specifically limit the transmission on the MPTCP substream of the HTTP/2 stream.
  • the MPTCP layer can determine to allocate non-HTTP/2 data to an MPTCP substream or to different MPTCP substreams.
  • the specific allocation process and the transmission process of the non-HTTP/2 data on the MPTCP sub-flow can refer to related content of the prior art, and details are not described herein.
  • the application layer may transmit the received data to the HTTP/2 adaptation layer, and the HTTP/2 adaptation layer identifies the HTTP/2 stream and the non-HTTP/2 data.
  • the non-HTTP/2 data is transparently transmitted to the MPTCP layer, and the non-HTTP2 data is allocated by the MPTCP layer to the MPTCP substream for transmission.
  • the HTTP/2 adaptation layer may, when transparently transmitting the non-HTTP/2 data to the MPTCP layer, send an indication message to the MPTCP layer, indicating that the non-HTTP/2 data is allocated and transmitted on an MPTCP substream.
  • an indication message to the MPTCP layer, indicating that the non-HTTP/2 data is allocated and transmitted on an MPTCP substream.
  • the HTTP/2 adaptation layer by distinguishing the HTTP/2 stream from the non-HTTP/2 data, the HTTP/2 adaptation layer according to the flow identifier of the HTTP/2 stream and at least one MPTCP under the same MPTCP link.
  • Streaming information indicating the MPTCP layer All frames belonging to the same HTTP/2 stream are allocated on the same MPTCP sub-stream for transmission, which improves data throughput and system robustness, and transparently transmits non-HTTP/2 data, and is processed by the MPTCP layer. , save processing resources of the HTTP/2 adaptation layer.
  • the intermediate parsing node on the MPTCP substream between the client and the server can receive all the frames belonging to the same HTTP/2 stream, thereby completing the HTTP/2 service parsing process.
  • FIG. 7 is a schematic structural diagram of a communication apparatus according to an embodiment of the present invention.
  • the device is for communicating with the peer device, and includes an adaptation unit 701 and a transmission unit 702.
  • the adapting unit 701 is configured to determine that all HTTP/2 frames belonging to the same HTTP/2 stream are matched to the same MPTCP substream.
  • the transmitting unit 702 is configured to carry all the HTTP/2 frames belonging to the same HTTP/2 stream to an MPTCP sub-stream for transmission according to the indication of the adaptation unit 701, where the MPTCP sub-flow belongs to the MPTCP.
  • the link has at least one MPTCP substream.
  • the adapting unit 701 is specifically configured to identify that all the HTTP/2 frames belong to the same HTTP/2 stream according to the flow identifier carried in the HTTP/2 frame.
  • the adapting unit 701 is further configured to: acquire, by using an interface with the transmission unit 702, substream information of at least one MPTCP substream that belongs to the MPTCP link, where the substream information is used to identify the at least An MPTCP subflow.
  • the interface described in the embodiment of the present invention may be an interface between software modules, that is, may be implemented by software; or may be an interface between hardware modules.
  • the circuit is implemented, and the embodiment of the present invention does not specifically limit this.
  • the sub-flow information acquired by the adaptation unit 701 includes at least an MPTCP sub-flow identifier.
  • the MPTCP sub-flow identifier includes address information of the MPTCP sub-flow.
  • the adapting unit 701 may be configured to select an MPTCP sub-flow according to the address information of the at least one MPTCP sub-flow, and select the selected MPTCP sub-flow to carry all the ones belonging to the same HTTP/2 stream.
  • the transmission unit 702 can be configured to allocate all the HTTP/2 frames belonging to the same HTTP/2 stream to the selected MPTCP substream for transmission.
  • the substream information acquired by the adaptation unit 701 includes at least the number of MPTCP substreams.
  • the adapting unit 701 may be configured to allocate an MPTCP sub-flow identification number to each of the MPTCP sub-flows, and the MPTCP sub-flow identification number is used to distinguish different MPTCPs.
  • a substream all of the at least one HTTP/2 frame corresponding to one MPTCP substream identification number; and transmitting the at least one HTTP/2 frame and the corresponding MPTCP substream identification number to the transmission unit 702.
  • the transmission unit 702 can be configured to select an MPTCP substream, and all the HTTP/2 frames belonging to the same HTTP/2 stream are allocated to the MPTCP substream with the identification number for transmission.
  • the adapting unit 701 is further configured to identify non-HTTP/2 data, where the The non-HTTP/2 data is transparently transmitted to the transmission unit 702, and the non-HTTP2 data is allocated by the transmission unit 702 to the corresponding MPTCP substream for transmission.
  • the communication device may further include a communication unit configured to perform information interaction with other communication devices, such as the peer device.
  • all the frames belonging to the same HTTP/2 stream are allocated in the same section according to the flow identifier of the HTTP/2 stream and the information of at least one MPTCP substream under the same MPTCP link.
  • the MPTCP substream is transmitted, the data throughput is large, the system is robust, and the HTTP/2 streaming performance is improved.
  • the intermediate parsing node on the MPTCP substream between the client and the server can receive all the frames belonging to the same HTTP/2 stream, thereby completing the HTTP/2 service parsing process.
  • an embodiment of the present invention further provides a communication device for communicating with a peer device.
  • the device includes a processor 801 and a memory 802.
  • the apparatus can also include a communication interface 803, and a system bus 804.
  • the processor 801, the memory 802, and the communication interface 803 can be connected through the system bus 804 and complete communication with each other.
  • the processor 801 may be a multi-core processor, or may be two or more processors geographically dispersed and connected by a communication link, and may be a central processing unit (CPU) or digital signal processing. (DSP, digital signal processor) or other specialized processor.
  • CPU central processing unit
  • DSP digital signal processor
  • the memory 802 may be a flash memory or a random access memory (RAM), and various types of memories/medias in the prior art. There is no particular limitation here. It will be appreciated that the memory 802 can be a single storage device or can be two or more memories that are geographically dispersed and connected by a communication link.
  • RAM random access memory
  • Communication interface 803 can be used for information interaction between the communication device and other communication devices.
  • a set of program codes is stored in the memory 802, and the processor 801 is configured to call program code stored in the memory 802, and the program code includes the following functional modules:
  • An adaptation module for determining that all HTTP/2 frames belonging to the same HTTP/2 stream are matched to the same MPTCP substream.
  • a transmission module configured to carry all the HTTP/2 frames belonging to the same HTTP/2 stream to an MPTCP sub-stream for transmission according to the indication of the adaptation module, where the MPTCP sub-stream belongs to the MPTCP link There is at least one MPTCP subflow.
  • the adaptation module may include an identifier submodule, configured to identify, according to the flow identifier carried in the HTTP/2 frame, that all the HTTP/2 frames belong to the same HTTP/ 2 streams.
  • the adaptation module may obtain, by using an interface with the transmission module, sub-stream information of at least one MPTCP sub-flow belonging to the MPTCP link, where the sub-flow information is used to identify the at least one MPTCP sub-flow.
  • the sub-flow information acquired by the adaptation module includes at least an MPTCP sub-flow identifier.
  • the MPTCP sub-flow identifier includes address information of the MPTCP sub-flow.
  • the adaptation module may be configured to select an MPTCP subflow according to the address information of the at least one MPTCP substream, and select the selected MPTCP subflow for use. Transmitting all HTTP/2 frames belonging to the same HTTP/2 stream; and transmitting address information of the at least one HTTP/2 frame and the selected MPTCP substream to the transmission subunit.
  • the transmission module may be configured to allocate all the HTTP/2 frames belonging to the same HTTP/2 stream to the selected MPTCP substream for transmission.
  • the sub-flow information acquired by the adaptation module includes at least the number of MPTCP sub-flows.
  • the adaptation module may be configured to allocate an MPTCP sub-flow identification number to each of the MPTCP sub-flows, and the MPTCP sub-flow identification number is used to distinguish different MPTCP sub- And generating, by the at least one HTTP/2 frame, an MPTCP substream identification number; and transmitting the at least one HTTP/2 frame and the corresponding MPTCP substream identification number to the transmission module.
  • the transmission module may be configured to select an MPTCP substream, and all the HTTP/2 frames belonging to the same HTTP/2 stream are allocated to the MPTCP substream with the identification number for transmission.
  • the adaptation module is further configured to: identify non-HTTP/2 data, transparently transmit the non-HTTP/2 data to the transmission module, and allocate, by the transmission module, the non-HTTP2 data to the corresponding MPTCP substream for transmission. .
  • the communication device may also include, but is not limited to, one or more of a transceiver, a power supply unit, a transmission part, an alarm part, an antenna feed part, and an operation and maintenance part. It is to be understood that the communication device may have different components according to different implementation manners, which is not limited by the embodiment of the present invention.
  • the communication apparatus may be used to control transmission of an HTTP/2 stream, and the apparatus may be a separately set device, and communicate with the peer device as a client or a server; or may be deployed.
  • a control module for example, deployed in a client or a server
  • the embodiment of the present invention does not limit this.
  • the foregoing device may be deployed as a control module in an access control device such as a BSC, an RNC, or an AC; or may be deployed as a control module in an access device such as a BTS, a NodeB, an e-NodeB, or an AP, or as a control device.
  • the control module is deployed in a terminal device such as a UE, and may also be the foregoing access control device, the access device, or the terminal device itself.
  • all the frames belonging to the same HTTP/2 stream are allocated in the same section according to the flow identifier of the HTTP/2 stream and the information of at least one MPTCP substream under the same MPTCP link.
  • the MPTCP substream is transmitted, the data throughput is large, the system is robust, and the transmission performance of the HTTP/2 stream is improved.
  • the intermediate parsing node on the MPTCP substream between the client and the server can receive all the frames belonging to the same HTTP/2 stream, thereby completing the HTTP/2 service parsing process.
  • the embodiment of the invention also provides a computer software product.
  • the computer software product can be stored in a storage medium.
  • the computer software product includes instructions for causing a computer device (which may be a personal computer, server, or network device, etc.) to perform all or part of the steps of the methods described in various embodiments of the present invention.
  • the foregoing storage medium may be non-volatile, and includes, for example, a U disk, a removable hard disk, a read only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk, and the like, which can store program codes.
  • the disclosed apparatus and method may be implemented in other manners without departing from the scope of the present application.
  • the device embodiments described above are merely illustrative.
  • the division of the modules or units is only a logical function division.
  • there may be another division manner for example, multiple units or components may be used. Combinations can be integrated into another system, or some features can be ignored or not executed.
  • the units described as separate components may or may not be physically separated, and the components displayed as the unit may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. .
  • Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of the embodiment. Those of ordinary skill in the art can understand and implement without any creative effort.
  • the described apparatus and methods, and the schematic diagrams of various embodiments may be combined or integrated with other systems, modules, techniques or methods without departing from the scope of the present application.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be
  • the indirect coupling or communication connection of the base station or unit through some interfaces may be in electronic, mechanical or other form.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明实施例提供了一种数据传输方法及通信装置,在协议栈的应用层及多路径数据传输协议MPTCP层之间设置第二版超文本传输协议HTTP/2适配层,将属于属于同一条HTTP/2流的所有帧都分配在同一条MPTCP子流上进行传输,数据吞吐量大,系统鲁棒性好,提升了HTTP/2流的传输性能。

Description

数据传输方法及通信装置 技术领域
本发明实施例涉及通信技术领域,尤其涉及一种数据传输方法及通信装置。
背景技术
超文本传输协议(Hypertext Transfer Protocol,HTTP)是客户端浏览器或其他程序与网络(web)服务器之间的应用层通信协议,采用了请求/响应模型。随着用户对网络性能要求的提升,各类相关的应用程序应运而生,而传统的HTTP/1.0或HTTP/1.1(第一版HTTP)已不能满足某些应用程序的运行要求,甚至会产生负面影响。
HTTP/2(第二版HTTP)通过引进报头字段压缩以及多路复用来有效利用网络资源、减少感知延迟。其中,通过在一个传输控制协议(Transmission Control Protocol,TCP)连接内将待传输的各类帧(frame)分为多个流,并在每一个流上分配多个HTTP请求响应交换,以实现上述多路复用。
现有技术中,由于HTTP/2的TCP连接中的多个流复用在客户端和服务端之间的同一条TCP连接上进行传输,数据吞吐量受限。同时,整个数据传输过程只依靠一条TCP连接,鲁棒性有待提高。
发明内容
本发明实施例提供了一种数据传输方法及通信装置,能够提升HTTP/2数据传输的吞吐量以及系统鲁棒性。
第一方面,本发明实施例提供了一种数据传输方法,适用于通信 装置,该通信装置的协议栈包括HTTP/2适配层以及多路径数据传输协议(MPTCP,Multi-Path Transmission Control Protocol)层,所述方法包括,HTTP/2适配层确定将属于同一条HTTP/2流的所有HTTP/2帧匹配到同一条MPTCP子流上;MPTCP层根据HTTP/2适配层的指示,将属于同一条HTTP/2流的所有HTTP/2帧承载到一条MPTCP子流上进行传输,其中,所述MPTCP子流归属的MPTCP链路有至少一条MPTCP子流。
通过在应用程及MPTCP层之间设置HTTP/2适配层,将属于同一条HTTP/2流的所有帧都承载于同一条MPTCP子流上进行传输,提升了数据吞吐量,系统鲁棒性好。进一步地,客户端和服务端之间的MPTCP子流上的中间解析节点可以接收到属于同一个HTTP/2流的所有帧,进而完成HTTP/2业务解析处理。
在一个可能的实现方式中,所述方法还包括,HTTP/2适配层根据接收到的HTTP/2帧携带的流标识,来识别各HTTP/2帧是否属于同一条HTTP/2流。其中,属于同一条HTTP/2流的帧具有相同的流标识。
在一个可能的实施方式中,HTTP/2适配层通过与MPTCP层之间的接口进行信息交互,以获取属于上述MPTCP链路的至少一条MPTCP子流的子流信息,所述子流信息用于标识MPTCP子流。
在一个可能的实现方式中,HTTP/2适配层获取的子流信息至少包括,MPTCP子流标识,该MPTCP子流标识可以包括MPTCP子流的地址信息;则HTTP/2适配层根据属于同一条MPTCP链路的至少一条MPTCP子流的地址信息,选择一条MPTCP子流,选择出的MPTCP子 流用于承载所述属于所述同一条HTTP/2流的所有HTTP/2帧;并将所述HTTP/2帧及选择出的MPTCP子流的地址信息发送到所述MPTCP层所述传输单元;以及,由MPTCP层将所述属于同一条HTTP/2流的所有HTTP/2帧承载到所述选择出的MPTCP子流进行传输。
在一个可能的实现方式中,HTTP/2适配层获取的子流信息至少包括,MPTCP子流的数量。则HTTP/2适配层将相应数量的MPTCP子流中的每一个MPTCP子流,分别分配一个MPTCP子流标识号,所述MPTCP子流标识号用于区分不同MPTCP子流;将属于所述同一条HTTP/2流的所有HTTP/2帧全部对应一个MPTCP子流标识号;并将所述HTTP/2帧及对应的MPTCP子流标识号发送给所述MPTCP层;以及由MPTCP层选择一条MPTCP子流与所述MPTCP子流标识号对应;并将所述属于所述同一条HTTP/2流的所有HTTP/2帧分配到对应于所述MPTCP标识号的MPTCP子流上进行传输。
HTTP/2适配层利用MPTCP链接下MPTCP子流的数量或者各条MPTCP子流的标识信息,可以将属于同一条HTTP/2流的所有HTTP/2帧都分配到同一条MPTCP子流上。
在一个可能的实现方式中,HTTP/2适配层识别HTTP/2流以及非HTTP/2数据,将所述非HTTP/2数据透传至MPTCP层,由所述MPTCP层确定将所述非HTTP2数据分配到MPTCP子流进行传输;或者HTTP/2适配层在向MPTCP层透传非HTTP/2数据的同时,向MPTCP层发送指示消息,指示将上述非HTTP/2数据分配到某条MPTCP子流。
另一方面,本发明实施例提供了一种通信装置,该通信装置具有 实现上述方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的实施方式中,通信装置的结构中包括处理器和存储器,所述处理器被配置为支持该通信装置执行上述方法中相应的功能。所述存储器用于与处理器耦合,其保存基站必要的程序指令和数据。该通信装置还可以包括通信接口,用于支持通信装置与其他通信装置之间的通信。
再一方面,本发明实施例提供了一种非易失性计算机存储介质,用于储存为上述通信装置所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
又一方面,本发明实施例提供了一种计算机软件产品,存储在一个存储介质中,所述计算机软件产品包括若干指令用以使得一台计算机设备执行上述方面提供的数据传输方法。
采用本发明实施例提供的技术方案,解决了现有技术中只依靠一条TCP连接进行HTTP/2流复用传输导致的数据吞吐量低,系统鲁棒性差的问题,提升了HTTP/2流的传输性能。
附图说明
图1是一种HTTP/2流传输过程的示意图;
图2a是一种MPTCP协议栈的示意图;
图2b是本发明实施例提供的协议栈的示意图;
图3是本发明实施例提供的一种数据传输方法流程示意图;
图4是本发明实施例提供的一种数据传输方法中的步骤S301的细化流程示意图;
图5是本发明实施例提供的一种数据传输方法中的步骤S301的细化流程示意图;
图6是本发明实施例提供的另一种数据传输方法流程示意图;
图7是本发明实施例提供的一种通信装置的结构示意图;
图8是本发明实施例提供的一种通信装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步详细描述。
本文中描述的各种技术可用于多种通信系统,例如2G、3G通信系统和下一代通信系统,例如全球移动通信系统(GSM,Global System for Mobile Communication),码分多址(CDMA,Code Division Multiple Access)系统,时分多址(TDMA,Time Division Multiple Access)系统,宽带码分多址(WCDMA,Wideband Code Division Multiple Access)系统,长期演进(LTE,Long Term Evolution)系统及后续演进系统等;以及无线局域网(WLAN,Wireless Local Area Network)、全球微波互联接入(WiMax,Worldwide Interoperability for Microwave Access)系统等其他无线宽带接入网络以及固定网络。
需要说明的是,本发明实施例中所述的基站设备,例如可以是 GSM或CDMA中的基站收发台(BTS,Base Transceiver Station),也可以是WCDMA中的节点B(NodeB),也可以是LTE中的演进型节点B(e-NodeB,evolved NodeB),还可以是WLAN中的接入点(AP,Access Point),或者其他通信或无线网络系统中具有类似功能的网元,本发明实施例对此不做任何限定。
本发明实施例中所述的基站控制设备,例如可以是GSM或CDMA中的基站控制器(BSC,Base Station Controller),可以是WCDMA中的无线网络控制器(RNC,Radio Network Controller),也可以是WLAN中的接入控制器(AC,Access Controller),也可以是其他具有类似功能的网元,本发明实施例对此不做任何限定。
本发明实施例所述的客户端可以是用户设备(UE,User Equipment),包括以无线方式接入接入网进行数据传输的用户设备,例如移动电话,移动终端,具备无线通信功能的个人计算机,或者其他类似具有数据通信功能的终端设备等。
本发明实施例所述的服务端可以是服务器,或者基站设备,基站控制设备等各类与客户端进行通信的设备,本发明实施例对此不做任何限定。
需要说明的是,本发明实施例中所述的接入网包括由BTS与BSC、或NodeB与RNC、或e-NodeB等设备组成的无线接入网(RAN,Radio Access Network),以及由AP与AC等设备组成的宽带接入网。其中,AC与RNC可以进行融合,即AC的功能集成在RNC上,并与AP进行通信。
图1是一种HTTP/2流传输过程的示意图。
本发明实施例中描述的HTTP/2流(或简称为“流”),是客户端和服务端在HTTP/2连接下交换帧的双向序列。其中,帧(frame)是HTTP/2中基本的协议单位。每个帧都有不同的类型和用途。例如,报头(headers)帧和数据(data)帧组成了基本的HTTP请求和响应;其他帧例如设置(setting),窗口更新(window_updating),和推送承诺(push_promise)用于实现HTTP2的其他功能。帧主体的结构和内容取决于帧类型。特别地,HTTP/2中包含的HTTP报头字段的帧的头域是压缩的,能够显著减少请求和响应的大小。本发明实施例中将HTTP流内的帧称为HTTP/2帧,或简称为帧。
如图1所示,在HTTP/2连接过程中,多个独立的HTTP/2流在同一条TCP连接内传输,包括stream1,stream3和stream5,stream1包括数据帧,stream3包括报头帧和数据帧,stream5包括数据帧,其中,stream1的数据帧,stream3的报头帧和数据帧由服务端发送给客户端,stream5的数据帧由客户端发送给服务端。由图1可见,同一条HTTP/2流内的帧可以连续传输,如stream3;也可以不连续传输,如stream1。可以理解,一条HTTP/2流中可以包括数据帧、控制帧、报头帧中的一种或多种帧类型,图1仅是一种示例,不能对HTTP/2流包含的帧类型或数量构成任何限制。
从图1可见,一个HTTP/2连接能够保持多个同时打开的流,通信两端间可以在多个流中交换帧。各个HTTP/2流内的帧按时序发送,各个帧的发送顺序决定了其被接收以及处理的顺序,特别是报头帧及 数据帧的顺序语义决定了接收端先处理报头帧再处理数据帧,如图1所示的stream3中的报头帧及数据帧的发送顺序。
每一个HTTP/2流具有流标识。流标识由启动HTTP/流的通信端分配,同一条HTTP/2流内的每个帧都携带相同的流标识。HTTP/流可以被客户端或者服务端单方面建立使用或分享;也可以被任何一个通信端关闭。
如图1所示,每一个HTTP/2连接中的多条HTTP/2流均在同一条TCP连接上传输,数据吞吐量受到限制;且当该TCP连接出现问题时,HTTP/2流的传输会中断,影响传输效率。因此,本发明实施例将MPTCP的相关技术应用于HTTP/2流的传输,利用MPTCP进行HTTP2流的传输优化。进一步地,如果同一HTTP/2流的各个帧随机在MPTCP链路的各个MPTCP子流上传输,会导致客户端和服务端之间MPTCP子流上的中间解析节点无法接收到属于同一个HTTP/2流的所有帧,进而无法完成HTTP/2业务解析处理。其中,所述中间解析节点可以是MPTCP链路中的任意通信设备,例如路由器、基站设备或者基站控制设备等,本发明实施例对此不做特别限定。
MPTCP在传统TCP协议的基础上发展而来,可以为用户终端提供端到端的多链路通信,以资源共享的方式,把数据流分发到多条链路上来提高网络带宽。图2a是MPTCP协议栈的示意图,相对标准TCP(standard TCP)而言,MPTCP协议栈主要是将TCP层分为MPTCP层和TCP子流(TCP Subflow)层,通过如下方式实现数据并发传输,包括:建立多个MPTCP子流,相当于建立多条TCP连接;由MPTCP层 对多个MPTCP子流进行数据分流或汇聚等处理。MPTCP子流与所属的MPTCP链路可以通过令牌(Token)联系起来。Token是MPTCP链路的标识,只具有本地意义和唯一性,MPTCP初始连接建立过程的发起端和响应端均要生成一个Token,Token可以看作是MPTCP链路标识(MPTCP Connection ID)。
MPTCP链路由多条MPTCP子流构成。MPTCP子流是在某一特定的传输路径(path)上进行传输的TCP数据流。其中,传输路径是指存在于MPTCP链路的通信两端之间的通路,可以通过通信两端的一对地址,例如通信两端的IP地址,或IP地址和端口号(port)来标识,每条MPTCP子流都有对应的路径。其中,MPTCP链路的通信两端可以是空口上行或空口下行数据传输过程中的两端通信设备,例如客户端与服务端。通信两端中的任意一端均可以发起或响应MPTCP链路的相关过程,包括MPTCP初始连接建立过程、子流新建过程、子流删除过程、子流优先级更新过程等。例如,由接入某无线接入点的UE发起MPTCP初始连接建立过程,网络侧的Server进行响应,则UE与Server成为MPTCP链路的通信两端;类似地,也可以由Server发起MPTCP初始连接建立过程,UE进行响应。
由于MPTCP是一个端到端的协议,因此通信两端需要交互控制信令来完成诸如上述MPTCP初始连接建立、TCP子流增加或删除、地址通知等功能。这些控制信令都是通过TCP选项(TCP Option)来传输的。
图2b是本发明实施例提供的协议栈的示意图。本发明实施例的数 据传输方法通过在应用层和MPTCP层中插入HTTP2适配层,用于识别HTTP/2流,使得属于同一HTTP/2流的所有帧在相同的MPTCP子流上传输,以便客户端和服务端之间MPTCP子流上中间解析节点可以接收到一个HTTP/2流内的所有帧,完成HTTP/2业务解析处理。
如图3所示,本发明实施例提供了一种数据传输方法,适用于通信装置,所述通信装置的协议栈包括HTTP/2适配层以及MPTCP层。
该通信装置可以作为客户端或者服务端与对端进行数据通信。
所述数据传输方法包括步骤S301-S302:
S301:HTTP/2适配层确定将属于同一条HTTP/2流的所有HTTP/2帧匹配到同一条MPTCP子流上。
具体地,可以在协议栈的应用层和MPTCP层之间设置HTTP/2适配层。该HTTP/2适配层可以用于识别HTTP/2流,并将HTTP/2帧与MPTCP子流进行匹配。
S302:MPTCP层根据所述HTTP/2适配层的指示,将所述属于同一条HTTP/2流的所有HTTP/2帧承载到一条MPTCP子流上进行传输,其中,所述MPTCP子流归属的MPTCP链路有至少一条MPTCP子流。
可选地,作为本发明的一个实施例,HTTP/2适配层可以将携带HTTP/2帧及对应的子流指示信息(subflow_indication)的消息(message)发送到MPTCP层,由MPTCP层根据子流指示信息,将该HTTP/2帧分配到一条MPTCP子流上进行传输,进一步地,根据相同的子流指示信息,将属于同一条HTTP/2流的所有帧都分配到同一条 MPTCP子流上进行传输。
可选地,在S301之前,所述方法还可以包括步骤S300a:HTTP/2适配层根据HTTP/2帧携带的流标识,来识别该HTTP/2帧归属的HTTP/2流。
其中,HTTP/2帧由应用层传输至HTTP/2适配层。
可选地,上述流标识可以是HTTP/2帧的报头字段中的流标识符(Stream Identifier,Stream ID)。使用流标识符,表明该HTTP/2帧属于一个连续的HTTP/2流,而非独立传输。属于同一条HTTP/2流的HTTP/2帧具有相同的流标识。流标识符的长度可以是31字节。
可选地,在S301之前,所述方法还可以包括步骤S300b:HTTP/2适配层通过与MPTCP层之间的接口获取属于所述MPTCP链路的至少一条MPTCP子流的子流信息,所述子流信息用于标识所述至少一条MPTCP子流。
具体地,HTTP/2适配层与MPTCP层之间的信息交互可以通过接口进行,例如套接字(Socket)接口。MPTCP层可以将各条MPTCP子流的子流信息通过Socket接口发送给HTTP/2适配层。
需要指出的是,当本发明实施例提供的数据传输方法中同时包含步骤S300a及S300b时,本发明实施例对步骤S300a及S300b的执行顺序不做特别限定,即可以先执行S300a再执行S300b,也可以先执行S300a再执行S300b,也可以同时执行S300a及S300b。
采用本发明实施例提供的数据传输方法,根据HTTP/2流的流标识以及MPTCP链路下的至少一条MPTCP子流的子流信息,将属于 同一条HTTP/2流的所有帧都分配在同一条MPTCP子流上进行传输,数据吞吐量大,系统鲁棒性好,提升了HTTP/2流的传输性能。
可选地,作为本发明的一个实施例,HTTP/2适配层获取的MPCTP子流的子流信息至少包括,MPTCP子流标识。
可选地,所述MPTCP子流标识可以包括MPTCP子流的地址信息
可选地,MPTCP子流的地址信息可以是MPTCP链路的通信两端的端口号和IP地址,或通信两端的IP地址。MPTCP链路下的每条MPTCP子流都有不同的地址,即地址信息可以用于表征MPTCP子流。
可选地,当HTTP/2适配层获取的子流信息至少包括MPTCP子流标识时,S301具体包括如图4所示的步骤S3011-S3012:
S3011:HTTP/2适配层根据所述至少一条MPTCP子流的地址信息,选择一条MPTCP子流,选择出的MPTCP子流用于承载属于所述同一条HTTP/2流的所有HTTP/2帧。
S3012:HTTP/2适配层将所述HTTP/2帧及选择出的MPTCP子流的地址信息发送到MPTCP层。
具体地,HTTP/2适配层可以根据HTTP/2帧携带的流标识识别该HTTP/2帧归属的HTTP/2流;以及根据MPTCP子流的地址信息,获取MPTCP链路下的子流数量及每条MPTCP子流的路径,从而从多条MPTCP子流中选择一条MPTCP子流;进而指示MPTCP层将属于同一个HTTP/2流内的所有HTTP/2帧分配到该选择出的MPTCP子流中进行传输。
可选地,在该实施例中,HTTP/2适配层向MPTCP层发送的子流 指示信息可以由HTTP/2层选择出的一条MPTCP子流的地址信息。则MPTCP层获得该子流指示信息后,可以将对应该子流指示信息的HTTP/2帧分配到与上述地址信息匹配的MPTCP子流上进行传输。
可以理解,HTTP/2适配层根据HTTP/2帧携带的流标识,为同一条HTTP/2内的所有帧匹配的是同一条MPTCP子流的地址信息,因而,同一条HTTP/2内的所有帧对应的子流指示信息也相同,MPTCP层可以根据相同的子流指示信息,将属于同一个HTTP/2流内的所有HTTP/2帧都分配到同一条MPTCP子流上。
对应地,在该实施例中,S302具体为:MPTCP层将所述属于同一条HTTP/2流的所有HTTP/2帧承载到所述选择出的MPTCP子流进行传输
可选地,作为本发明的另一个实施例,HTTP/2适配层获取的所述MPTCP子流的子流信息至少包括,MPTCP子流的数量。
当子流信息至少包括MPTCP子流的数量时,S301具体包括如图5所示的步骤S3011’-S3013’:
S3011’:HTTP/2适配层将所述数量的MPTCP子流中的每一个MPTCP子流,分别分配一个MPTCP子流标识号,所述MPTCP子流标识号用于区分不同MPTCP子流。
具体地,所述MPTCP子流标识号用于将属于同一MPTCP链路的多条MPTCP子流进行区分。可选地,可以用不同的符号,例如字母、数字、字符等标识各条MPTCP子流。
S3012’:HTTP/2适配层将所述属于同一条HTTP/2流的所有 HTTP/2帧全部对应一个MPTCP子流标识号。
S3013’:HTTP/2适配层将所述HTTP/2帧及对应的MPTCP子流标识号发送到MPTCP层。
可选地,在该实施例中,HTTP/2适配层向MPTCP层发送的子流指示信息可以是MPTCP子流标识号。具体地,当HTTP/2适配层获取的MPTCP子流的信息为同一MPTCP链路下的MPTCP子流的数量信息时,HTTP/2适配层可以确定该MPTCP链路包含几条不同的MPTCP子流,并将各条MPTCP子流以不同的MPTCP子流标识号进行区分,进而向MPTCP层发送携带HTTP/2帧和MPTCP子流标识号的消息,由MPTCP层决定传输该HTTP/2帧的具体MPTCP子流。可以理解,属于同一条HTTP/2流的所有帧都与同一个MPTCP标识号对应,则MPTCP层可以根据该标识号,将同一条HTTP/2流内的所有HTTP/2帧分配到同一条MPTCP子流上。
对应地,在该实施例中,S302具体包括:MPTCP层选择一条MPTCP子流与所述MPTCP子流标识号对应;并将所述属于所述同一条HTTP/2流的所有HTTP/2帧分配到对应于所述MPTCP标识号的MPTCP子流上进行传输。
本发明实施例对MPTCP子流的选择方式不做特别限定。例如,HTTP/2适配层或者MPTCP层可以随机选择MPTCP子流传输上述HTTP/2帧;也可以根据各条MPTCP子流的负载情况,选择负载较低的MPTCP子流传输上述HTTP/2帧。
以下以一个示例说明本发明实施例中的HTTP/2流的传输过程。 假设HTTP/2适配层根据MPTCP子流的数量信息确定一个MPTCP链路下有3个MPTCP子流,包括子流1,子流2和子流3,使用标号1-3区分子流1,子流2和子流3,不用于特指某个具体的MPTCP子流。HTTP/2适配层可以将HTTP/2帧与指示子流1,子流2和子流3中的任意一个的子流指示信息(subflow_indication)携带在一个消息中发送给MPTCP层,其中,subflow_indication的值可以是1或2或3;随后,由MPTCP层确定子流1、子流2或子流3对应的具体的MPTCP子流,并将属于子流1、子流2或子流3的HTTP/2帧分配到对应的MPTCP子流进行传输,其中,每条具体的MPTCP子流可以由通信两端的IP地址标识。
可选地,上述消息的格式可以是(buf,subflow_indication,…),其中,参数buf表示HTTP/2适配层向MPTCP层发送的数据,即本发明实施例中指的HTTP/2帧。该消息可以通过Socket接口发送。subflow_indication代表子流指示信息。
可以理解,通信两端之间可以同时传输多条HTTP/2流,则各条HTTP/2流可以分散在不同的MPTCP子流上传输;此外,由于有多条MPTCP子流,当其中某条MPTCP子流出现故障时,可以及时将该条MPTCP子流上的HTTP/2流转移到其他MPTCP子流上进行传输,提升了系统鲁棒性。
在本发明实施例的一个具体的应用场景中,host(主机)A和host B的协议栈中分别配置了HTTP/2适配层及MPTCP层,host A和host B之间有两条MPTCP子流,分别为subflow1和subflow2,其中,subflow1可以由host A和host B的一组IP地址(A2;B1)标识,subflow2可以 由host A和host B的另一组IP地址(A2;B1)标识。host A和host B之间有4条HTTP/2流传输,分别为stream1,stream2,stream3,stream4,对应的流标识分别为1,2,3和4,假设每一条HTTP/2流内各有两个HTTP/2帧,frame1和frame2,且对HTTP/2帧的类型不做限定。HTTP/2适配层通过识别HTTP/2帧的流标识可以判断该HTTP/2帧归属的HTTP/2流,并指示MPTCP层分别将stream1和stream4内的所有的帧分配在subflow2上传输,将stream2和stream3所有的帧分配在subflow1上传输,实现了HTTP/2业务的分流。可以理解,该示例不能构成对本发明实施例的任何限定。
在实际应用中,HTTP/2流中的报头帧和数据帧组成了基本的HTTP请求和响应。由于同一个HTTP/2流中的报头帧和数据帧的流标识相同,HTTP/2适配层可以通过识别流标识,将该报头帧和数据帧分配到同一个MPTCP子流中进行传输,则同一条HTTP/2流的请求及响应都可以在一条MPTCP子流上进行。从而MPTCP子流上的中间解析节点可以在一条MPTCP子流上获取该HTTP/2流的全部信息,以完成对该HTTP/2的解析,实现不同MPTCP子流业务的处理,包括后续数据传输,业务优化、计费等。
图6是本发明实施例提供的另一种数据传输方法的流程示意图,该方法可以用于客户端或者服务端。
S601:应用层识别接收到的数据是否为HTTP/2流,若该数据是HTTP/2流,执行S602;若该数据为非HTTP/2流,执行S603。
其中,非HTTP/2流是指未采用HTTP/2规定的格式传输的数据。
可选地,应用层可以根据接收到的数据的帧格式确定该数据是否为HTTP/2流,关于HTTP/2帧格式可以参照本发明其他实施例的相关说明,在此不做赘述。
S602:应用层将HTTP/2流传输给HTTP/2适配层进行处理。
S603:应用层将非HTTP/2流传输给MPTCP层进行处理,由MPTCP层确定将非HTTP/2流分配到MPTCP子流进行传输。
其中,HTTP/2适配层对HTTP/2流处理过程包括S6021-S6024:
S6021:HTTP/2适配层通过流标识识别HTTP/2流。
S6022:HTTP/2适配层通过Socket接口从MPTCP层获取MPTCP子流的信息。
可选地,HTTP/2适配层可以通过Socket接口接收MPTCP层发送的TCP_MULTIPATH_CONNID消息,从而获取MPTCP子流的数量;也可以接收TCP_MULTIPATH_SUBFLOWS消息,从而获取MPTCP子流的地址列表(list of pairs of addresses),该地址列表中可以包括属于同一MPTCP链路的各条MPTCP子流的通信两端的IP地址以及端口号等信息。
S6023:HTTP/2适配层将属于该HTTP/2流内的所有帧与同一条MPTCP子流进行匹配。
S6024:HTTP/2适配层将HTTP/2流与对应的子流指示信息发送给MPTCP层,由MPTCP层将该HTTP/2流分配到具体的MPTCP子流进行传输。
关于HTTP/2流处理过程的详细描述可以参照本发明其他实施例的相关内容,在此不做赘述。
可选地,MPTCP层可以决定传输上述非HTTP2数据的MPTCP子流,包括,将上述非HTTP2数据分配在传输HTTP/2流的MPTCP子流上传输;也可以将上述非HTTP2数据分配在未传输HTTP/2流的MPTCP子流上传输,本发明实施例对此不做特别限定。
MPTCP层可以确定将非HTTP/2数据分配到一条MPTCP子流上,或者不同MPTCP子流上。具体的分配过程,以及非HTTP/2数据在MPTCP子流上的传输过程可以参照现有技术的相关内容,在此不做赘述。
在本发明的另一个实施方式中,应用层可以将接收到的数据全部传输至HTTP/2适配层,由HTTP/2适配层识别所述HTTP/2流以及非HTTP/2数据,将所述非HTTP/2数据透传至MPTCP层,由所述MPTCP层将所述非HTTP2数据分配到MPTCP子流进行传输。
可选地,HTTP/2适配层在向MPTCP层透传上述非HTTP/2数据的同时,可以向MPTCP层发送指示消息,指示将上述非HTTP/2数据分配在某个MPTCP子流上传输,该指示消息的内容具体可以参照本发明其他实施例中关于传输HTTP/2流的子流指示信息的描述,在此不做赘述。
采用本发明实施例提供的数据传输方法,通过区分HTTP/2流以及非HTTP/2数据,HTTP/2适配层根据HTTP/2流的流标识以及同一个MPTCP链路下的至少一条MPTCP子流的信息,指示MPTCP层 将属于同一条HTTP/2流的所有帧都分配在同一条MPTCP子流上进行传输,提升了数据吞吐量及系统鲁棒性,并对非HTTP/2数据进行透传,由MPTCP层进行处理,节约HTTP/2适配层的处理资源。进一步地,客户端和服务端之间的MPTCP子流上的中间解析节点可以接收到属于同一个HTTP/2流的所有帧,进而完成HTTP/2业务解析处理。
图7是本发明实施例提供的一种通信装置的结构示意图。该装置用于与对端装置进行通信,包括适配单元701,传输单元702。
其中,适配单元701,用于确定将属于同一条HTTP/2流的所有HTTP/2帧匹配到同一条MPTCP子流上。
传输单元702,用于根据适配单元701的指示,将所述属于同一条HTTP/2流的所有HTTP/2帧承载到一条MPTCP子流上进行传输,其中,所述MPTCP子流归属的MPTCP链路有至少一条MPTCP子流。
可选地,作为本发明的一个实施方式,适配单元701具体用于,根据HTTP/2帧携带的流标识,来识别所述所有HTTP/2帧属于同一条HTTP/2流。
可选地,适配单元701还用于,通过与传输单元702之间的接口获取属于所述MPTCP链路的至少一条MPTCP子流的子流信息,所述子流信息用于标识所述至少一条MPTCP子流。
可选地,本发明实施例中所述的接口可以是软件模块之间的接口,即可以通过软件方式实现;也可以是硬件模块之间的接口,通过 电路来实现,本发明实施例对此不做特别限定。
可选地,在本发明的一个实施例中,适配单元701获取的子流信息至少包括,MPTCP子流标识。
可选地,所述MPTCP子流标识包括MPTCP子流的地址信息。
在该实施例中,适配单元701可以用于根据所述至少一条MPTCP子流的地址信息,选择一条MPTCP子流,选择出的MPTCP子流用于承载所述属于同一条HTTP/2流的所有HTTP/2帧;以及将所述至少一个HTTP/2帧及选择出的MPTCP子流的地址信息发送到所述传输单元702。
对应地,传输单元702可以用于将所述属于同一条HTTP/2流的所有HTTP/2帧分配到所述选择出的MPTCP子流进行传输。
可选地,作为本发明的另一个实施例,适配单元701获取的子流信息至少包括,MPTCP子流的数量。
在该实施例中,适配单元701可以用于将所述数量的MPTCP子流中的每一个MPTCP子流,分别分配一个MPTCP子流标识号,所述MPTCP子流标识号用于区分不同MPTCP子流;将所述至少一个HTTP/2帧全部对应一个MPTCP子流标识号;以及将所述至少一个HTTP/2帧及对应的MPTCP子流标识号发送给传输单元702。
对应地,传输单元702可以用于选择一条MPTCP子流,将所述属于同一条HTTP/2流的所有HTTP/2帧分配到带有所述标识号的MPTCP子流上进行传输。
可选地,适配单元701还可以用于识别非HTTP/2数据,将所述 非HTTP/2数据透传至传输单元702,由传输单元702将所述非HTTP2数据分配到对应的MPTCP子流进行传输。
可选地,所述通信装置中还可以包括通信单元,用于与其他通信设备,例如对端设备进行信息交互。
采用本发明实施例提供的通信装置,根据HTTP/2流的流标识以及同一个MPTCP链路下的至少一条MPTCP子流的信息,将属于同一条HTTP/2流的所有帧都分配在同一条MPTCP子流上进行传输,数据吞吐量大,系统鲁棒性好,提升了HTTP/2流传输性能。进一步地,客户端和服务端之间的MPTCP子流上的中间解析节点可以接收到属于同一个HTTP/2流的所有帧,进而完成HTTP/2业务解析处理。
如图8所示,本发明实施例还提供了一种通信装置,用于与对端装置进行通信。该装置包括处理器801、存储器802。
该装置还可以包括通信接口803、以及系统总线804。所述处理器801、存储器802以及通信接口803之间可以通过系统总线804连接并完成相互间的通信。
处理器801可以是多核处理器,也可以是在地理位置上分散并以通信链路连接的两个以上的处理器,可以是中央处理单元(CPU,Central Processing Unit),也可以是数字信号处理器(DSP,digital signal processor)或者其他的专门处理器。
存储器802可以是闪存存储器(flash memory)或者随机存储器(RAM,random access memory)等现有技术中的各类存储器/介质, 在此不做特别限定。可以理解,存储器802可以是单个存储设备,也可是是地理位置上分散并以通信链路连接的两个以上的存储器。
通信接口803可以用于该通信装置与其他通信装置之间进行信息交互。
存储器802中存储一组程序代码,处理器801用于调用存储器802中存储的程序代码,所述程序代码包括如下功能模块:
适配模块,用于确定将属于同一条HTTP/2流的所有HTTP/2帧匹配到同一条MPTCP子流上。
传输模块,用于根据适配模块的指示,将所述属于同一条HTTP/2流的所有HTTP/2帧承载到一条MPTCP子流上进行传输,其中,所述MPTCP子流归属的MPTCP链路有至少一条MPTCP子流。
可选地,作为本发明的一个实施方式,所述适配模块中可以包括识别子模块,用于根据HTTP/2帧携带的流标识,来识别所述所有HTTP/2帧属于同一条HTTP/2流。
可选地,适配模块可以通过与传输模块之间的接口获取属于所述MPTCP链路的至少一条MPTCP子流的子流信息,所述子流信息用于标识所述至少一条MPTCP子流。
可选地,在本发明的一个实施例中,适配模块获取的子流信息至少包括,MPTCP子流标识。
可选地,所述MPTCP子流标识包括MPTCP子流的地址信息。
在该实施例中,适配模块可以用于根据所述至少一条MPTCP子流的地址信息,选择一条MPTCP子流,选择出的MPTCP子流用于承 载所述属于同一条HTTP/2流的所有HTTP/2帧;以及将所述至少一个HTTP/2帧及选择出的MPTCP子流的地址信息发送到所述传输子单元。
对应地,传输模块可以用于将所述属于同一条HTTP/2流的所有HTTP/2帧分配到所述选择出的MPTCP子流进行传输。
可选地,作为本发明的另一个实施例,适配模块获取的子流信息至少包括,MPTCP子流的数量。
在该实施例中,适配模块可以用于将所述数量的MPTCP子流中的每一个MPTCP子流,分别分配一个MPTCP子流标识号,所述MPTCP子流标识号用于区分不同MPTCP子流;将所述至少一个HTTP/2帧全部对应一个MPTCP子流标识号;以及将所述至少一个HTTP/2帧及对应的MPTCP子流标识号发送给所述传输模块。
对应地,传输模块可以用于选择一条MPTCP子流,将所述属于同一条HTTP/2流的所有HTTP/2帧分配到带有所述标识号的MPTCP子流上进行传输。
可选地,适配模块还可以用于识别非HTTP/2数据,将所述非HTTP/2数据透传至传输模块,由传输模块将所述非HTTP2数据分配到对应的MPTCP子流进行传输。
可以理解,本发明实施例提供的通信装置还可以包括但不限于:收发信机、电源单元、传输部分、告警部分,天馈部分,操作维护部分中的一个或多个,本领域普通技术人员可以理解,根据不同的实现方式,通信设备可以有不同的组成部分,本发明实施例对此不做限定。
需要说明的是,本发明实施例中提供的通信装置可以用于控制HTTP/2流的传输,该装置可以是独立设置的装置,作为客户端或者服务端与对端装置进行通信;也可以部署在其他通信设备中作为一个控制模块,例如部署在客户端或者服务端内,本发明实施例对此不做任何限定。例如,上述装置可以作为一个控制模块部署在BSC、RNC或AC等接入控制设备中;也可以作为一个控制模块部署在BTS、NodeB、e-NodeB、AP等接入设备中,也可以作为一个控制模块部署在UE等终端设备中,也可以是上述接入控制设备、接入设备或终端设备本身。
采用本发明实施例提供的通信装置,根据HTTP/2流的流标识以及同一个MPTCP链路下的至少一条MPTCP子流的信息,将属于同一条HTTP/2流的所有帧都分配在同一条MPTCP子流上进行传输,数据吞吐量大,系统鲁棒性好,提升了HTTP/2流的传输性能。进一步地,客户端和服务端之间的MPTCP子流上的中间解析节点可以接收到属于同一个HTTP/2流的所有帧,进而完成HTTP/2业务解析处理。
本所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,关于本发明实施例提供的通信装置的功能以及执行的步骤可以参照本发明方法实施例的相关描述,在此不做赘述。
通过以上的实施例的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以 软件产品的形式体现出来。
本发明实施例还提供了一种计算机软件产品。
该计算机软件产品可以存储在一个存储介质中。所述计算机软件产品包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质可以是非易失性的,例如包括:U盘、移动硬盘、只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,在没有超过本申请的范围内,可以通过其他的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
另外,所描述装置和方法以及不同实施例的示意图,在不超出本申请的范围内,可以与其它系统,模块,技术或方法结合或集成。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是 通过一些接口,基站或单元的间接耦合或通信连接,可以是电子、机械或其它的形式。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (21)

  1. 一种数据传输方法,其特征在于,适用于通信装置,所述通信装置的协议栈包括超文本传输协议HTTP/2适配层以及多路传输控制协议MPTCP层,所述方法包括,
    所述HTTP/2适配层确定将属于同一条HTTP/2流的所有HTTP/2帧匹配到同一条MPTCP子流上;
    所述MPTCP层根据所述HTTP/2适配层的指示,将所述属于同一条HTTP/2流的所有HTTP/2帧承载到一条MPTCP子流上进行传输,其中,所述MPTCP子流归属的MPTCP链路有至少一条MPTCP子流。
  2. 根据权利要求1所述的方法,其特征在于,所述方法还包括,
    所述HTTP/2适配层根据HTTP/2帧携带的流标识,来识别所述所有HTTP/2帧属于所述同一条HTTP/2流。
  3. 根据权利要求1或2所述的方法,其特征在于,所述方法还包括,
    所述HTTP/2适配层通过与所述MPTCP层之间的接口获取属于所述MPTCP链路的至少一条MPTCP子流的子流信息,所述子流信息用于标识所述至少一条MPTCP子流。
  4. 根据权利要求3所述的方法,其特征在于,
    所述子流信息至少包括,MPTCP子流标识。
  5. 根据权利要求4所述的方法,其特征在于,
    所述MPTCP子流标识包括MPTCP子流的地址信息;
    所述HTTP/2适配层确定将属于同一条HTTP/2流的所有HTTP/2帧匹配到同一条MPTCP子流上包括,
    HTTP/2适配层根据所述至少一条MPTCP子流的地址信息,选择一条MPTCP子流,选择出的MPTCP子流用于承载所述属于同一条HTTP/2流的所有HTTP/2帧;以及将所述HTTP/2帧及选择出的MPTCP子流的地址信息发送到所述MPTCP层;
    所述MPTCP层根据所述HTTP/2适配层的指示,将所述属于同一条HTTP/2流的所有HTTP/2帧承载到一条MPTCP子流上进行传输包括,
    所述MPTCP层将所述属于同一条HTTP/2流的所有HTTP/2帧承载到所述选择出的MPTCP子流进行传输。
  6. 根据权利要求3所述的方法,其特征在于,所述MPTCP子流的信息至少包括,MPTCP子流的数量。
  7. 根据权利要求6所述的方法,其特征在于,
    所述HTTP/2适配层确定将属于同一条HTTP/2流的所有HTTP/2帧匹配到同一条MPTCP子流上包括,
    所述HTTP/2适配层将所述数量的MPTCP子流中的每一个MPTCP子流,分别分配一个MPTCP子流标识号,所述MPTCP子流标识号用于区分不同MPTCP子流;将所述属于同一条HTTP/2流的所有HTTP/2帧全部对应一个MPTCP子流标识号;以及将所述 HTTP/2帧及对应的MPTCP子流标识号发送给所述MPTCP层;
    所述MPTCP层根据所述HTTP/2适配层的指示,将所述属于同一条HTTP/2流的所有HTTP/2帧承载到一条MPTCP子流上进行传输包括,
    所述MPTCP层选择一条MPTCP子流与所述MPTCP子流标识号对应;将所述属于所述同一条HTTP/2流的所有HTTP/2帧分配到对应于所述MPTCP标识号的MPTCP子流上进行传输。
  8. 一种通信装置,其特征在于,用于与对端装置进行通信,所述装置包括:
    适配单元,用于确定将属于同一条超文本传输协议HTTP/2流中的所有HTTP/2帧匹配到同一条多路传输控制协议MPTCP子流上;
    传输单元,用于根据所述适配单元的指示,将所述属于同一条HTTP/2流的所有HTTP/2帧承载到一条MPTCP子流上进行传输,其中,所述MPTCP子流归属的MPTCP链路有至少一条MPTCP子流。
  9. 根据权利要求8所述的装置,其特征在于,
    所述适配单元具体用于,根据所述HTTP/2帧携带的流标识,来识别所述所有HTTP/2帧属于所述同一条HTTP/2流。
  10. 根据权利要求8或9所述的装置,其特征在于,
    所述适配单元还用于,通过与传输单元之间的接口获取属于所述MPTCP链路的至少一条MPTCP子流的子流信息,所述子流信息用于标识所述至少一条MPTCP子流。
  11. 根据权利要求10所述的装置,其特征在于,
    所述子流信息至少包括,MPTCP子流标识。
  12. 根据权利要求11所述的装置,其特征在于,
    所述MPTCP子流标识包括MPTCP子流的地址信息;
    所述适配单元具体用于,根据所述至少一条MPTCP子流的地址信息,选择一条MPTCP子流,选择出的MPTCP子流用于承载所述属于同一条HTTP/2流的所有HTTP/2帧;以及将所述HTTP/2帧及选择出的MPTCP子流的地址信息发送到所述传输单元;
    所述传输单元具体用于,将所述属于同一条HTTP/2流的所有HTTP/2帧承载到所述选择出的MPTCP子流进行传输。
  13. 根据权利要求10所述的装置,其特征在于,所述MPTCP子流的信息至少包括,MPTCP子流的数量。
  14. 根据权利要求13所述的装置,其特征在于,
    所述适配单元具体用于,将所述数量的MPTCP子流中的每一个MPTCP子流,分别分配一个MPTCP子流标识号,所述MPTCP子流标识号用于区分不同MPTCP子流;将所述属于同一条HTTP/2流的所有HTTP/2帧全部对应一个MPTCP子流标识号;以及将所述HTTP/2帧及对应的MPTCP子流标识号发送给所述传输单元;
    所述传输单元具体用于:选择一条MPTCP子流与所述MPTCP子流标识号对应;将所述属于同一条HTTP/2流的所有HTTP/2帧分配到对应于所述MPTCP标识号的MPTCP子流上进行传输。
  15. 一种通信装置,其特征在于,用于与对端装置进行通信,所述装置包括:处理器及存储器;
    所述存储器用于存储一组程序代码,所述处理器用于调用所述存储器中存储的程序代码,所述程序代码包括如下功能模块:
    适配模块,用于确定将属于同一条HTTP/2流的所有HTTP/2帧匹配到同一条MPTCP子流上。
    传输模块,用于根据所述适配模块的指示,将所述属于同一条HTTP/2流的所有HTTP/2帧承载到一条MPTCP子流上进行传输,其中,所述MPTCP子流归属的MPTCP链路有至少一条MPTCP子流。
  16. 根据权利要求15所述的装置,其特征在于,
    所述适配模块中包括识别子模块,用于根据所述HTTP/2帧携带的流标识,来识别所述所有HTTP/2帧属于所述同一条HTTP/2流。
  17. 根据权利要求15或16所述的装置,其特征在于,
    所述适配模块还用于,通过与所述传输模块之间的接口获取属于所述MPTCP链路的至少一条MPTCP子流的子流信息,所述子流信息用于标识所述至少一条MPTCP子流。
  18. 根据权利要求17所述的装置,其特征在于,
    所述子流信息至少包括,MPTCP子流标识。
  19. 根据权利要求18所述的装置,其特征在于,
    所述MPTCP子流标识包括MPTCP子流的地址信息;
    所述适配模块具体用于,根据所述至少一条MPTCP子流的地址信息,选择一条MPTCP子流,选择出的MPTCP子流用于承载所述属于同一条HTTP/2流的所有HTTP/2帧;以及将所述HTTP/2帧及选择出的MPTCP子流的地址信息发送到所述传输模块;
    所述传输模块具体用于,将所述属于同一条HTTP/2流的所有HTTP/2帧承载到所述选择出的MPTCP子流进行传输。
  20. 根据权利要求17所述的装置,其特征在于,所述MPTCP子流的信息至少包括,MPTCP子流的数量。
  21. 根据权利要求20所述的装置,其特征在于,
    所述适配模块具体用于,将所述数量的MPTCP子流中的每一个MPTCP子流,分别分配一个MPTCP子流标识号,所述MPTCP子流标识号用于区分不同MPTCP子流;将所述属于同一条HTTP/2流的所有HTTP/2帧全部对应一个MPTCP子流标识号;以及将所述HTTP/2帧及对应的MPTCP子流标识号发送给所述传输模块;
    所述传输模块具体用于,选择一条MPTCP子流与所述MPTCP子流标识号对应;将所述属于同一条HTTP/2流的所有HTTP/2帧分配到对应于所述MPTCP标识号的MPTCP子流上进行传输。
PCT/CN2015/090441 2015-09-23 2015-09-23 数据传输方法及通信装置 WO2017049505A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/CN2015/090441 WO2017049505A1 (zh) 2015-09-23 2015-09-23 数据传输方法及通信装置
CN201580080702.8A CN107615729B (zh) 2015-09-23 2015-09-23 数据传输方法及通信装置
US15/933,316 US10958581B2 (en) 2015-09-23 2018-03-22 Data transmission method and communications apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/090441 WO2017049505A1 (zh) 2015-09-23 2015-09-23 数据传输方法及通信装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/933,316 Continuation US10958581B2 (en) 2015-09-23 2018-03-22 Data transmission method and communications apparatus

Publications (1)

Publication Number Publication Date
WO2017049505A1 true WO2017049505A1 (zh) 2017-03-30

Family

ID=58385639

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/090441 WO2017049505A1 (zh) 2015-09-23 2015-09-23 数据传输方法及通信装置

Country Status (3)

Country Link
US (1) US10958581B2 (zh)
CN (1) CN107615729B (zh)
WO (1) WO2017049505A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3588896A1 (en) * 2018-06-28 2020-01-01 InterDigital CE Patent Holdings Multi-path management
CN111031078A (zh) * 2018-10-09 2020-04-17 华为技术有限公司 一种通信方法及装置

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016011582A1 (zh) * 2014-07-21 2016-01-28 华为技术有限公司 链路控制节点、链路控制方法及通信系统
EP3264644A1 (en) * 2016-07-01 2018-01-03 Nxp B.V. Multiple source receiver
WO2018165190A1 (en) * 2017-03-07 2018-09-13 Akamai Technologies, Inc. Cooperative multipath
US11283721B2 (en) * 2018-06-27 2022-03-22 Nokia Solutions And Networks Oy Application-based traffic control in multipath networks
CN111819874B (zh) * 2018-06-29 2021-09-14 华为技术有限公司 避免基于5g服务的架构中plmn间路由和tls问题的方法和解决方案
KR102491006B1 (ko) * 2018-07-23 2023-01-19 후아웨이 테크놀러지 컴퍼니 리미티드 데이터 송신 방법 및 전자 기기
CN109327511B (zh) * 2018-09-18 2021-05-28 网宿科技股份有限公司 一种基于http协议的数据请求方法和服务器
CN112118284A (zh) * 2020-07-30 2020-12-22 爱普(福建)科技有限公司 一种面向网关设备的http数据请求方法、设备及介质
CN114189565B (zh) * 2020-08-31 2023-10-20 华为技术有限公司 一种头域还原系统、方法及相关设备
CN114826646A (zh) * 2022-02-28 2022-07-29 天翼安全科技有限公司 一种网络异常行为检测方法、装置及电子设备
CN115379469B (zh) * 2022-08-12 2023-11-28 江苏省电力试验研究院有限公司 一种基于机器学习的多接入异构网络mptcp子流调度方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185771A (zh) * 2011-05-05 2011-09-14 清华大学 Mptcp中发送方数据包调度方法及系统
CN102404077A (zh) * 2011-11-30 2012-04-04 清华大学 基于喷泉码的多径tcp协议
CN103503357A (zh) * 2011-03-04 2014-01-08 黑莓有限公司 控制网络设备的行为
US20150207834A1 (en) * 2014-01-17 2015-07-23 Lg Display Co., Ltd. Apparatus for transmitting encoded video stream and method for transmitting the same

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103597794B (zh) * 2012-02-16 2016-08-17 阿尔卡特朗讯公司 用于提供关于数据数组关联的信息以及用于转发数据数组的设想
US8640174B2 (en) * 2012-03-01 2014-01-28 Motorola Mobility Llc Method for retrieving content, wireless communication device and communication system
CN106464313B (zh) * 2014-03-24 2020-03-31 瑞典爱立信有限公司 在移动网络中使用协调多点的分段传送
US20170034283A1 (en) * 2015-07-27 2017-02-02 Samsung Electronics Co., Ltd. Management of multipath communication sessions
US10405365B2 (en) * 2015-12-16 2019-09-03 At&T Intellectual Property I, L.P. Method and apparatus for web browsing on multihomed mobile devices
US20190215306A1 (en) * 2018-01-11 2019-07-11 Nicira, Inc. Rule processing and enforcement for interleaved layer 4, layer 7 and verb based rulesets
US11038834B2 (en) * 2018-01-31 2021-06-15 Hewlett Packard Enterprise Development Lp Selecting an external link of a plurality of external links

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103503357A (zh) * 2011-03-04 2014-01-08 黑莓有限公司 控制网络设备的行为
CN102185771A (zh) * 2011-05-05 2011-09-14 清华大学 Mptcp中发送方数据包调度方法及系统
CN102404077A (zh) * 2011-11-30 2012-04-04 清华大学 基于喷泉码的多径tcp协议
US20150207834A1 (en) * 2014-01-17 2015-07-23 Lg Display Co., Ltd. Apparatus for transmitting encoded video stream and method for transmitting the same

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BELSHE, M. ET AL.: "Hypertext Transfer Protocol Version 2(HTTP/2)", IETF RFC 7540., 31 May 2015 (2015-05-31), pages 1 - 96, XP015106161, ISSN: 2070-1721 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3588896A1 (en) * 2018-06-28 2020-01-01 InterDigital CE Patent Holdings Multi-path management
EP3588906A1 (en) * 2018-06-28 2020-01-01 InterDigital CE Patent Holdings Multi-path management
CN111031078A (zh) * 2018-10-09 2020-04-17 华为技术有限公司 一种通信方法及装置
CN111031078B (zh) * 2018-10-09 2021-05-04 华为技术有限公司 一种通信方法及装置

Also Published As

Publication number Publication date
CN107615729A (zh) 2018-01-19
US20180212883A1 (en) 2018-07-26
US10958581B2 (en) 2021-03-23
CN107615729B (zh) 2020-03-20

Similar Documents

Publication Publication Date Title
WO2017049505A1 (zh) 数据传输方法及通信装置
TWI660610B (zh) 無線通訊系統的資源分配方法及其設備和系統
JP6028292B2 (ja) データ分割の方法およびデバイス
KR102067589B1 (ko) 무선 통신에서 패킷 프로세싱을 병렬화하는 방법 및 시스템
JP2021528014A (ja) 情報伝送方法及び装置
JP2020511083A (ja) サービス品質制御方法およびその装置、smf、upf、ue、pcfおよびan
US20150237525A1 (en) Traffic Shaping and Steering for a Multipath Transmission Control Protocol Connection
CN109565894B (zh) 用于通过多种无线电接入技术的多路径通信的设备
WO2013152472A1 (zh) 通信方法与系统,以及接入网设备与应用服务器
WO2016173078A1 (zh) 一种数据中转传输方法、系统和具备中继功能的ue
EP3606005B1 (en) Redirection method, control plane network element, aggregation user plane network element, content server and terminal device
CN111988212B (zh) 一种报文传输方法以及相关装置
US10764411B2 (en) Stream control transmission protocol SCTP-based communications method and system, and apparatus
WO2018000379A1 (zh) 一种数据传输控制方法、通信设备及核心网设备
WO2021097858A1 (zh) 一种通信方法及装置
US20230239940A1 (en) Data transmission method and apparatus
WO2022033543A1 (zh) 一种中继通信方法及通信装置
CN107079524A (zh) 一种数据转发的方法和控制器
WO2015103780A1 (zh) 一种承载电路语音业务的方法及装置
CN113678413A (zh) 多个网络服务提供商之间的动态资源分配
KR20210031297A (ko) 무선 통신 시스템에서 트래픽을 처리하기 위한 장치 및 방법
WO2022021142A1 (zh) QoS参数的设置方法、装置、通信设备及存储介质
RU2783350C2 (ru) Способ управления сеансом группы пользователей и устройство
WO2023011006A1 (zh) 一种通信方法、装置及设备
WO2023151345A1 (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: 15904392

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15904392

Country of ref document: EP

Kind code of ref document: A1