The present invention relates to the field of computer application technologies, and in particular, to a protocol frame transmission method, apparatus, and system, and a node device.
A request/response mode is used in HTTP (Hypertext Transfer Protocol) to transfer WWW (World Wide Web) data. A first node device initiates a request to establish a TCP (Transmission Control Protocol) connection to a designated port of a second node device. The second node device listens, on the designated port, to the request sent by the first node device. When the second node device receives the request, the second node device sends a response message to the first node device. HTTP 2.0 is HTTP of a version 2.0. An HTTP 2.0 frame is a basic protocol unit of HTTP 2.0. The HTTP 2.0 frame is higher layer data sent by an application layer to a transport layer, and includes a frame header of 9 bytes and a payload, and the frame header may include a length field. In HTTP 2.0, resource utilization is increased and a protocol frame transmission delay is reduced by means of header field compression and multiplexing. The multiplexing is implemented by dividing the TCP connection into multiple HTTP 2.0 streams and allocating multiple HTTP 2.0 frames to one HTTP 2.0 stream.
One HTTP 2.0 frame is encapsulated into at least one TCP data packet according to an MSS (maximum segment size). The MSS is a maximum length of data that each TCP data packet can carry in a process of negotiation communication between receiving and sending parties when the TCP connection is established. The application layer sends the HTTP 2.0 frame to the transport layer, and the transport layer encapsulates the HTTP 2.0 frame into the TCP data packet according to the MSS. A data part length of each TCP data packet is the MSS.
Embodiments of the present invention provide a protocol frame transmission method, apparatus, and system, and a node device, to ensure that a data part of one TCP data packet includes data of only one protocol frame.
A first aspect of the present invention provides a protocol frame transmission method, including:
encapsulating one protocol frame into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame; and
sending the at least one TCP data packet to a node device.
In a first possible implementation, a data part length of the last TCP data packet is 0, to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame.
With reference to the first possible implementation of the first aspect, in a second possible implementation, a header of the last TCP data packet includes a sending sequence number and an acknowledgement sequence number; and
the sending sequence number is the same as a sending sequence number of a start TCP data packet corresponding to a next protocol frame, and the acknowledgement sequence number is determined according to received data sent by the node device.
With reference to the first possible implementation of the first aspect, in a third possible implementation, a header of the last TCP data packet includes a sending sequence number and an acknowledgement sequence number; and
the sending sequence number is the same as a sending sequence number of a start TCP data packet corresponding to a next protocol frame, and the acknowledgement sequence number is the same as an acknowledgement sequence number of a previous data packet of the last TCP data packet.
With reference to the third possible implementation of the first aspect, in a fourth possible implementation, before the encapsulating one protocol frame into at least one TCP data packet, the method further includes:
obtaining the protocol frame sent by a management terminal, where the protocol frame includes terminal identification information, and the terminal identification information is used to instruct to send the at least one TCP data packet corresponding to the protocol frame to the node device corresponding to the terminal identification information.
With reference to any one of the first to the fourth possible implementations of the first aspect, in a fifth possible implementation, the encapsulating one protocol frame into at least one TCP data packet includes:
adding one TCP data packet after the last TCP data packet that is corresponding to the protocol frame and that includes data, where a data part length of the added TCP data packet is 0.
With reference to the possible implementation of the first aspect, in a sixth possible implementation, the encapsulating one protocol frame into at least one TCP data packet includes:
when a data volume of the last TCP data packet that is corresponding to the protocol frame and that includes data is less than a preset MSS, the last TCP data packet that includes data includes only data of the protocol frame, and the indication information is the data volume of the last TCP data packet that includes data.
With reference to the possible implementation of the first aspect, in a seventh possible implementation, the indication information is identification information included in a header of the last TCP data packet.
With reference to any one of the first aspect or the first to the seventh possible implementations of the first aspect, in an eighth possible implementation, a data part of the at least one TCP data packet includes only data of the protocol frame.
With reference to any one of the first aspect or the first to the eighth possible implementations of the first aspect, in a ninth possible implementation, before the sending the at least one TCP data packet to a node device, the method further includes:
receiving a TCP data packet sent by the node device, where
the encapsulating one protocol frame into at least one TCP data packet includes:
adding, to a to-be-sent TCP data packet in the at least one TCP data packet, an acknowledgement sequence number of the TCP data packet sent by the node device, where the acknowledgement sequence number is used to indicate that the TCP data packet sent by the node device is correctly received.
With reference to any one of the first aspect or the first to the ninth possible implementations of the first aspect, in a tenth possible implementation, before the encapsulating one protocol frame into at least one TCP data packet, the method further includes:
sending a notification message to the node device, where the notification message is used to indicate that the last TCP data packet in the at least one TCP data packet includes the indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame.
With reference to the tenth possible implementation of the first aspect, in an eleventh possible implementation, the notification information is carried in an HTTP 2.0 setting frame or an HTTP 2.0 header field of the protocol frame.
With reference to any one of the first aspect or the first to the eleventh possible implementations of the first aspect, in a twelfth possible implementation, a header of the at least one TCP data packet includes data type information, and the data type information is used to indicate a data type of the data part of the TCP data packet.
With reference to any one of the first aspect or the first to the twelfth possible implementations of the first aspect, in a thirteenth possible implementation, the protocol frame is a TLS frame or an HTTP frame.
With reference to any one of the first aspect or the first to the thirteenth possible implementations of the first aspect, in a fourteenth possible implementation, the protocol frame is an HTTP frame; and
the encapsulating one protocol frame into at least one TCP data packet includes:
encapsulating the HTTP frame into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the HTTP frame; and
encapsulating all TLS frames in the at least one TLS frame into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the HTTP frame.
With reference to any one of the first aspect or the first to the thirteenth possible implementations of the first aspect, in a fifteenth possible implementation, the protocol frame is an HTTP frame; and
the encapsulating one protocol frame into at least one TCP data packet includes:
encapsulating the HTTP frame into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the HTTP frame; and
encapsulating each TLS frame into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the TLS frame.
With reference to any one of the first aspect or the first to the thirteenth possible implementations of the first aspect, in a sixteenth possible implementation, the protocol frame is a TLS frame, the TLS frame includes data type information, and the data type information is used to indicate a data type of the TLS frame.
With reference to any one of the first aspect or the first to the sixteenth possible implementations of the first aspect, in a seventeenth possible implementation, before the encapsulating one protocol frame into at least one TCP data packet, the method further includes:
compressing the protocol frame into at least one compressed package, where the at least one compressed package includes only the protocol frame.
A second aspect of the present invention provides a protocol frame parsing method, including:
receiving at least one TCP data packet that is sent by a node device and that is obtained by encapsulating one protocol frame, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame;
determining, according to the indication information, a start TCP data packet corresponding to a next protocol frame; and
performing data parsing on the next protocol frame from the start TCP data packet.
In a first possible implementation, the determining, according to the indication information, a start TCP data packet corresponding to a next protocol frame includes:
when a data part length of the last TCP data packet is 0, determining that a next TCP data packet is the start TCP data packet corresponding to the next protocol frame.
With reference to the possible implementation of the second aspect, in a second possible implementation, the determining, according to the indication information, a start TCP data packet corresponding to a next protocol frame includes:
when a data volume of the last TCP data packet is less than a preset MSS, determining that a next TCP data packet is the start TCP data packet corresponding to the next protocol frame.
With reference to the possible implementation of the second aspect, in a third possible implementation, the determining, according to the indication information, a start TCP data packet corresponding to a next protocol frame includes:
when a header of the last TCP data packet includes identification information, determining that a next TCP data packet is the start TCP data packet corresponding to the next protocol frame.
With reference to any one of the second aspect or the first to the third possible implementations of the second aspect, in a fourth possible implementation, before the receiving at least one TCP data packet that is sent by a node device and that is obtained by encapsulating one protocol frame, the method further includes:
sending a TCP data packet to the node device; and
after the receiving at least one TCP data packet that is sent by a node device and that is obtained by encapsulating one protocol frame, the method further includes:
when the received TCP data packet carries an acknowledgement sequence number of the TCP data packet sent to the node device, determining, according to the acknowledgement sequence number, that the node device correctly receives the TCP data packet sent to the node device.
With reference to any one of the second aspect or the first to the fourth possible implementations of the second aspect, in a fifth possible implementation, before the determining, according to the indication information, a start TCP data packet corresponding to a next protocol frame, the method further includes:
receiving a notification message sent by the node device; and
obtaining, according to the notification message, the indication information in the last TCP data packet corresponding to the protocol frame.
With reference to any one of the second aspect or the first to the fifth possible implementations of the second aspect, in a sixth possible implementation, a header of the at least one TCP data packet includes data type information; and
the performing data parsing on the next protocol frame from the start TCP data packet includes:
obtaining a data type of a data part of the TCP data packet according to the data type information.
With reference to any one of the second aspect or the first to the sixth possible implementations of the second aspect, in a seventh possible implementation, before the performing data parsing on the next protocol frame from the start TCP data packet, the method further includes:
determining that a header field of the next protocol frame is compressed by using a static table.
With reference to any one of the second aspect or the first to the seventh possible implementations of the second aspect, in an eighth possible implementation, all TCP data packets corresponding to the next protocol frame belong to a same HTPP 2.0 stream; and
after the performing data parsing on the next protocol frame from the start TCP data packet, the method further includes:
when data parsing performed on the next protocol frame fails, suspending data parsing performed on a protocol frame included in the HTTP 2.0 stream.
A third aspect of the present invention provides a data transmission method, including:
encapsulating object data of one URI into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data, and the object data is used to indicate a resource identified by the URI; and
sending the at least one TCP data packet to a node device.
In a first possible implementation, a data part length of the last TCP data packet is 0, to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data.
With reference to the first possible implementation of the third aspect, in a second possible implementation, a header of the last TCP data packet includes a sending sequence number and an acknowledgement sequence number; and
the sending sequence number is the same as a sending sequence number of a start TCP data packet corresponding to object data of a next URI, and the acknowledgement sequence number is determined according to received data sent by the node device.
With reference to the first possible implementation of the third aspect, in a third possible implementation, a header of the last TCP data packet includes a sending sequence number and an acknowledgement sequence number; and
the sending sequence number is the same as a sending sequence number of a start TCP data packet corresponding to object data of a next URI, and the acknowledgement sequence number is the same as an acknowledgement sequence number of a previous data packet of the last TCP data packet.
With reference to the third possible implementation of the third aspect, in a fourth possible implementation, before the encapsulating object data of one URI into at least one TCP data packet, the method further includes:
obtaining the object data sent by a management terminal, where the object data includes terminal identification information, and the terminal identification information is used to instruct to send the at least one TCP data packet corresponding to the object data to the node device corresponding to the terminal identification information.
With reference to any one of the first to the fourth possible implementations of the third aspect, in a fifth possible implementation, the encapsulating object data of one URI into at least one TCP data packet includes:
adding one TCP data packet after the last TCP data packet that is corresponding to the object data and that includes data, where a data part length of the added TCP data packet is 0.
With reference to the possible implementation of the third aspect, in a sixth possible implementation, the encapsulating object data of one URI into at least one TCP data packet includes:
when a data volume of the last TCP data packet that is corresponding to the object data and that includes data is less than a preset MSS, the last TCP data packet that includes data includes only the object data, and the indication information is the data volume of the last TCP data packet that includes data.
With reference to the possible implementation of the third aspect, in a seventh possible implementation, the indication information is identification information included in a header of the last TCP data packet.
With reference to any one of the third aspect or the first to the seventh possible implementations of the third aspect, in an eighth possible implementation, a data part of the at least one TCP data packet includes only the object data.
With reference to any one of the third aspect or the first to the eighth possible implementations of the third aspect, in a ninth possible implementation, before the sending the at least one TCP data packet to a node device, the method further includes:
receiving a TCP data packet sent by the node device, where
the encapsulating object data of one URI into at least one TCP data packet includes:
adding, to a to-be-sent TCP data packet in the at least one TCP data packet, an acknowledgement sequence number of the TCP data packet sent by the node device, where the acknowledgement sequence number is used to indicate that the TCP data packet sent by the node device is correctly received.
With reference to any one of the third aspect or the first to the ninth possible implementations of the third aspect, in a tenth possible implementation, before the encapsulating object data of one URI into at least one TCP data packet, the method further includes:
sending a notification message to the node device, where the notification message is used to indicate that the last TCP data packet in the at least one TCP data packet includes the indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data.
With reference to any one of the third aspect or the first to the tenth possible implementations of the third aspect, in an eleventh possible implementation, a header of the at least one TCP data packet includes data type information, and the data type information is used to indicate a data type of the data part of the TCP data packet.
With reference to any one of the third aspect or the first to the eleventh possible implementations of the third aspect, in a twelfth possible implementation, the object data is HTTP 1.1 data or HTTP 1.0 data.
With reference to any one of the third aspect or the first to the twelfth possible implementations of the third aspect, in a thirteenth possible implementation, the encapsulating object data of one URI into at least one TCP data packet includes:
encapsulating the object data into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the object data; and
encapsulating all TLS frames in the at least one TLS frame into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data.
With reference to any one of the third aspect or the first to the twelfth possible implementations of the third aspect, in a fourteenth possible implementation, the encapsulating object data of one URI into at least one TCP data packet includes:
encapsulating the object data into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the object data; and
encapsulating each TLS frame into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the TLS frame.
With reference to the thirteenth or the fourteenth possible implementation of the third aspect, in a fifteenth possible implementation, each TLS frame includes data type information, and the data type information is used to indicate a data type of the TLS frame.
With reference to any one of the third aspect or the first to the fifteenth possible implementations of the third aspect, in a sixteenth possible implementation, before the encapsulating object data of one URI into at least one TCP data packet, the method further includes:
compressing the object data into at least one compressed package, where the at least one compressed package includes only the object data.
A fourth aspect of the present invention provides a data parsing method, including:
receiving at least one TCP data packet that is sent by a node device and that is obtained by encapsulating object data of one URI, where the last TCP data packet in the at least one TCP data packet includes indication information, the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data, and the object data is used to indicate a resource identified by the URI;
determining, according to the indication information, a start TCP data packet corresponding to object data of a next URI; and
performing data parsing on the object data of the next URI from the start TCP data packet.
In a first possible implementation, the determining, according to the indication information, a start TCP data packet corresponding to object data of a next URI includes:
when a data part length of the last TCP data packet is 0, determining that a next TCP data packet is the start TCP data packet corresponding to the object data of the next URI.
With reference to the possible implementation of the fourth aspect, in a second possible implementation, the determining, according to the indication information, a start TCP data packet corresponding to object data of a next URI includes:
when a data volume of the last TCP data packet is less than a preset MSS, determining that a next TCP data packet is the start TCP data packet corresponding to the object data of the next URI.
With reference to the possible implementation of the fourth aspect, in a third possible implementation, the determining, according to the indication information, a start TCP data packet corresponding to object data of a next URI includes:
when a header of the last TCP data packet includes identification information, determining that a next TCP data packet is the start TCP data packet corresponding to the object data of the next URI.
With reference to any one of the fourth aspect or the first to the third possible implementations of the fourth aspect, in a fourth possible implementation, before the receiving at least one TCP data packet that is sent by a node device and that is obtained by encapsulating object data of one URI, the method further includes:
sending a TCP data packet to the node device; and
after the receiving at least one TCP data packet that is sent by a node device and that is obtained by encapsulating object data of one URI, the method further includes:
when the received TCP data packet carries an acknowledgement sequence number of the TCP data packet sent to the node device, determining, according to the acknowledgement sequence number, that the node device correctly receives the TCP data packet sent to the node device.
With reference to any one of the fourth aspect or the first to the fourth possible implementations of the fourth aspect, in a fifth possible implementation, before the determining, according to the indication information, a start TCP data packet corresponding to object data of a next URI, the method further includes:
receiving a notification message sent by the node device; and
obtaining, according to the notification message, the indication information in the last TCP data packet corresponding to the object data.
With reference to any one of the fourth aspect or the first to the fifth possible implementations of the fourth aspect, in a sixth possible implementation, a header of the at least one TCP data packet includes data type information; and
the performing data parsing on the object data of the next URI from the start TCP data packet includes:
obtaining a data type of a data part of the TCP data packet according to the data type information.
A fifth aspect of the present invention provides a data transmission method, including:
encapsulating one application layer data unit into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the application layer data unit, and the application layer data unit is an HTTP frame or object data of a URI;
determining a target TLS frame from the at least one TLS frame;
adding service information of the application layer data unit to the target TLS frame;
encapsulating the target TLS frame including the service information and another TLS frame in the at least one TLS frame into at least one TCP data packet; and
sending the at least one TCP data packet to a node device.
In a first possible implementation, the determining a target TLS frame from the at least one TLS frame includes:
determining the first TLS frame, the last TLS frame, or all TLS frames in the at least one TLS frame as the target TLS frame.
With reference to the fifth aspect or the first possible implementation of the fifth aspect, in a second possible implementation, the determining a target TLS frame from the at least one TLS frame includes:
determining the first TLS frame and the last TLS frame in the at least one TLS frame as the target TLS frame.
With reference to the first or the second possible implementation of the fifth aspect, in a third possible implementation, the service information includes data type information, and the data type information is used to indicate a data type of the target TLS frame.
With reference to any one of the first to the third possible implementations of the fifth aspect, in a fourth possible implementation, the service information includes policy information, the policy information is used to indicate a policy to be performed on the target TLS frame, and the policy to be performed includes a QoS policy or a charging policy.
With reference to any one of the first to the fourth possible implementations of the fifth aspect, in a fifth possible implementation, the service information is carried in a TLS header field of the target TLS frame.
With reference to the possible implementation of the fifth aspect, in a sixth possible implementation, the target TLS frame is used to indicate service information of a designated TLS frame in the at least one TLS frame; and
the designated TLS frame includes all TLS frames after the target TLS frame in the at least one TLS frame; or
the designated TLS frame includes all TLS frames before the target TLS frame in the at least one TLS frame; or
the designated TLS frame includes a previous TLS frame of the target TLS frame in the at least one TLS frame; or
the designated TLS frame includes a next TLS frame of the target TLS frame in the at least one TLS frame.
With reference to the sixth possible implementation of the fifth aspect, in a seventh possible implementation, the service information includes data type information, and the data type information is used to indicate a data type of the designated TLS frame.
With reference to the sixth or the seventh possible implementation of the fifth aspect, in an eighth possible implementation, the service information includes policy information, the policy information is used to indicate a policy to be performed on the designated TLS frame, and the policy to be performed includes a QoS policy or a charging policy.
With reference to any one of the sixth to the eighth possible implementations of the fifth aspect, in a ninth possible implementation, the target TLS frame includes extended identifier information, and the extended identifier information is used to indicate that the target TLS frame is a protocol frame indicating the service information of the designated TLS frame in the at least one TLS frame.
With reference to any one of the sixth to the ninth possible implementations of the fifth aspect, in a tenth possible implementation, the service information is carried in a data part of the target TLS frame.
A sixth aspect of the present invention provides a data parsing method, including:
receiving at least one TCP data packet that is sent by a node device and that is obtained by encapsulating a target TLS frame including service information and another TLS frame in at least one TLS frame, where the at least one TLS frame is obtained by the node device by encapsulating one application layer data unit;
obtaining the service information in the target TLS frame; and
performing data parsing on the application layer data unit according to the service information.
In a first possible implementation, before the obtaining the service information in the target TLS frame, the method further includes:
determining the first TLS frame, the last TLS frame, or all TLS frames in the at least one TLS frame as the target TLS frame.
With reference to the sixth aspect or the first possible implementation of the sixth aspect, in a second possible implementation, before the obtaining the service information in the target TLS frame, the method further includes:
determining the first TLS frame and the last TLS frame in the at least one TLS frame as the target TLS frame.
With reference to the sixth aspect, or the first or the second possible implementation of the sixth aspect, in a third possible implementation, the service information includes data type information; and
the performing data parsing on the application layer data unit according to the service information includes:
obtaining a data type of the target TLS frame according to the data type information; and
determining the data type of the target TLS frame as a data type of the application layer data unit.
With reference to any one of the sixth aspect or the first to the third possible implementations of the sixth aspect, in a fourth possible implementation, the service information includes policy information; and
the performing data parsing on the application layer data unit according to the service information includes:
obtaining, according to the policy information, a policy to be performed on the target TLS frame; and
determining the policy to be performed on the target TLS frame as a policy to be performed on the application layer data unit.
With reference to any one of the sixth aspect or the first to the fourth possible implementations of the sixth aspect, in a fifth possible implementation, before the obtaining the service information in the target TLS frame, the method further includes:
obtaining the service information from a TLS header field of the target TLS frame.
With reference to the possible implementation of the sixth aspect, in a sixth possible implementation, the target TLS frame is used to indicate service information of a designated TLS frame in the at least one TLS frame; and
the designated TLS frame includes all TLS frames after the target TLS frame in the at least one TLS frame; or
the designated TLS frame includes all TLS frames before the target TLS frame in the at least one TLS frame; or
the designated TLS frame includes a previous TLS frame of the target TLS frame in the at least one TLS frame; or
the designated TLS frame includes a next TLS frame of the target TLS frame in the at least one TLS frame.
With reference to the sixth possible implementation of the sixth aspect, in a seventh possible implementation, the service information includes data type information; and
the performing data parsing on the application layer data unit according to the service information includes:
obtaining a data type of the designated TLS frame in the at least one TLS frame according to the data type information; and
determining the data type of the designated TLS frame as a data type of the application layer data unit.
With reference to the sixth or the seventh possible implementation of the sixth aspect, in an eighth possible implementation, the service information includes policy information; and
the performing data parsing on the application layer data unit according to the service information includes:
obtaining, according to the policy information, a policy to be performed on the designated TLS frame in the at least one TLS frame; and
determining the policy to be performed on the designated TLS frame as a policy to be performed on the application layer data unit.
With reference to the eighth possible implementation of the sixth aspect, in a ninth possible implementation, after the determining the policy to be performed on the designated TLS frame as a policy to be performed on the application layer data unit, the method further includes:
deleting the target TLS frame.
With reference to any one of the sixth to the ninth possible implementations of the sixth aspect, in a tenth possible implementation, before the obtaining the service information in the target TLS frame, the method further includes:
determining that the target TLS frame includes extended identifier information, where the extended identifier information is used to indicate that the target TLS frame is a protocol frame indicating the service information of the designated TLS frame in the at least one TLS frame.
With reference to any one of the sixth to the ninth possible implementations of the sixth aspect, in an eleventh possible implementation, the obtaining the service information in the target TLS frame includes:
obtaining the service information from a data part of the target TLS frame.
A seventh aspect of the present invention provides a protocol frame transmission apparatus, including:
an encapsulation unit, configured to encapsulate one protocol frame into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame; and
a sending unit, configured to send the at least one TCP data packet to a node device.
In a first possible implementation, a data part length of the last TCP data packet is 0, to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame.
With reference to the first possible implementation of the seventh aspect, in a second possible implementation, a header of the last TCP data packet includes a sending sequence number and an acknowledgement sequence number; and
the sending sequence number is the same as a sending sequence number of a start TCP data packet corresponding to a next protocol frame, and the acknowledgement sequence number is determined according to received data sent by the node device.
With reference to the first possible implementation of the seventh aspect, in a third possible implementation, a header of the last TCP data packet includes a sending sequence number and an acknowledgement sequence number; and
the sending sequence number is the same as a sending sequence number of a start TCP data packet corresponding to a next protocol frame, and the acknowledgement sequence number is the same as an acknowledgement sequence number of a previous data packet of the last TCP data packet.
With reference to the third possible implementation of the seventh aspect, in a fourth possible implementation, the apparatus further includes an obtaining unit, configured to: before the encapsulation unit encapsulates the protocol frame into the at least one TCP data packet, obtain the protocol frame sent by a management terminal, where the protocol frame includes terminal identification information, and the terminal identification information is used to instruct to send the at least one TCP data packet corresponding to the protocol frame to the node device corresponding to the terminal identification information.
With reference to any one of the first to the fourth possible implementations of the seventh aspect, in a fifth possible implementation, the encapsulation unit is configured to add one TCP data packet after the last TCP data packet that is corresponding to the protocol frame and that includes data, where a data part length of the added TCP data packet is 0.
With reference to the possible implementation of the seventh aspect, in a sixth possible implementation, when a data volume of the last TCP data packet that is corresponding to the protocol frame and that includes data is less than a preset MSS, the last TCP data packet that includes data includes only data of the protocol frame, and the indication information is the data volume of the last TCP data packet that includes data.
With reference to the possible implementation of the seventh aspect, in a seventh possible implementation, the indication information is identification information included in a header of the last TCP data packet.
With reference to any one of the seventh aspect or the first to the seventh possible implementations of the seventh aspect, in an eighth possible implementation, a data part of the at least one TCP data packet includes only data of the protocol frame.
With reference to any one of the seventh aspect or the first to the eighth possible implementations of the seventh aspect, in a ninth possible implementation, the apparatus further includes:
a receiving unit, configured to receive a TCP data packet sent by the node device, where
the encapsulation unit is configured to add, to a to-be-sent TCP data packet in the at least one TCP data packet, an acknowledgement sequence number of the TCP data packet sent by the node device, where the acknowledgement sequence number is used to indicate that the TCP data packet sent by the node device is correctly received.
With reference to any one of the seventh aspect or the first to the ninth possible implementations of the seventh aspect, in a tenth possible implementation, the sending unit is further configured to send a notification message to the node device before the encapsulation unit encapsulates the protocol frame into the at least one TCP data packet, where the notification message is used to indicate that the last TCP data packet in the at least one TCP data packet includes the indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame.
With reference to the tenth possible implementation of the seventh aspect, in an eleventh possible implementation, the notification information is carried in an HTTP 2.0 setting frame or an HTTP 2.0 header field of the protocol frame.
With reference to any one of the seventh aspect or the first to the eleventh possible implementations of the seventh aspect, in a twelfth possible implementation, a header of the at least one TCP data packet includes data type information, and the data type information is used to indicate a data type of the data part of the TCP data packet.
With reference to any one of the seventh aspect or the first to the twelfth possible implementations of the seventh aspect, in a thirteenth possible implementation, the protocol frame is a TLS frame or an HTTP frame.
With reference to any one of the seventh aspect or the first to the thirteenth possible implementations of the seventh aspect, in a fourteenth possible implementation, the protocol frame is an HTTP frame; and
the encapsulation unit is configured to: encapsulate the HTTP frame into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the HTTP frame; and encapsulate all TLS frames in the at least one TLS frame into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the HTTP frame.
With reference to any one of the seventh aspect or the first to the thirteenth possible implementations of the seventh aspect, in a fifteenth possible implementation, the protocol frame is an HTTP frame; and
the encapsulation unit is configured to: encapsulate the HTTP frame into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the HTTP frame; and encapsulate each TLS frame into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the TLS frame.
With reference to any one of the seventh aspect or the first to the thirteenth possible implementations of the seventh aspect, in a sixteenth possible implementation, the protocol frame is a TLS frame, the TLS frame includes data type information, and the data type information is used to indicate a data type of the TLS frame.
With reference to any one of the seventh aspect or the first to the sixteenth possible implementations of the seventh aspect, in a seventeenth possible implementation, the apparatus further includes:
a compression unit, configured to compress the protocol frame into at least one compressed package before the encapsulation unit encapsulates the protocol frame into the at least one TCP data packet, where the at least one compressed package includes only the protocol frame.
An eighth aspect of the present invention provides a node device, including a processor, a memory, and a network interface, where the memory stores a set of program code, and the processor is configured to invoke the program code stored in the memory, to perform the following operations:
encapsulating one protocol frame into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame; and
sending the at least one TCP data packet to a node device.
A ninth aspect of the present invention provides a protocol frame parsing apparatus, including:
a receiving unit, configured to receive at least one TCP data packet that is sent by a node device and that is obtained by encapsulating one protocol frame, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame;
a determining unit, configured to determine, according to the indication information, a start TCP data packet corresponding to a next protocol frame; and
a parsing unit, configured to perform data parsing on the next protocol frame from the start TCP data packet.
In a first possible implementation, the determining unit is configured to: when a data part length of the last TCP data packet is 0, determine that a next TCP data packet is the start TCP data packet corresponding to the next protocol frame.
With reference to the possible implementation of the ninth aspect, in a second possible implementation, the determining unit is configured to: when a data volume of the last TCP data packet is less than a preset MSS, determine that a next TCP data packet is the start TCP data packet corresponding to the next protocol frame.
With reference to the possible implementation of the ninth aspect, in a third possible implementation, the determining unit is configured to: when a header of the last TCP data packet includes identification information, determine that a next TCP data packet is the start TCP data packet corresponding to the next protocol frame.
With reference to any one of the ninth aspect or the first to the third possible implementations of the ninth aspect, in a fourth possible implementation, the apparatus further includes:
a sending unit, configured to send a TCP data packet to the node device before the receiving unit receives the at least one TCP data packet that is sent by the node device and that is corresponding to the protocol frame, where
the determining unit is further configured to: when the received TCP data packet carries an acknowledgement sequence number of the TCP data packet sent to the node device, determine, according to the acknowledgement sequence number, that the node device correctly receives the TCP data packet sent to the node device.
With reference to any one of the ninth aspect or the first to the fourth possible implementations of the ninth aspect, in a fifth possible implementation, the receiving unit is further configured to: before the determining unit determines, according to the indication information, the start TCP data packet corresponding to the next protocol frame, receive a notification message sent by the node device; and
the apparatus further includes:
an obtaining unit, configured to obtain, according to the notification information, the indication information in the last TCP data packet corresponding to the protocol frame.
With reference to any one of the ninth aspect or the first to the fifth possible implementations of the ninth aspect, in a sixth possible implementation, a header of the at least one TCP data packet includes data type information; and
the parsing unit is configured to obtain a data type of a data part of the TCP data packet according to the data type information.
With reference to any one of the ninth aspect or the first to the sixth possible implementations of the ninth aspect, in a seventh possible implementation, the determining unit is further configured to: before the parsing unit performs data parsing on the next protocol frame from the start TCP data packet, determine that a header field of the next protocol frame is compressed by using a static table.
With reference to any one of the ninth aspect or the first to the seventh possible implementations of the ninth aspect, in an eighth possible implementation, all TCP data packets corresponding to the next protocol frame belong to a same HTTP 2.0 stream; and
the protocol frame parsing apparatus further includes:
a control unit, configured to: after the parsing unit performs data parsing on the next protocol frame from the start TCP data packet, when data parsing performed on the next protocol frame fails, suspend data parsing performed on a protocol frame included in the HTTP 2.0 stream.
A tenth aspect of the present invention provides a node device, including a processor, a memory, and a network interface, where the memory stores a set of program code, and the processor is configured to invoke the program code stored in the memory, to perform the following operations:
receiving at least one TCP data packet that is sent by a node device and that is obtained by encapsulating one protocol frame, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame;
determining, according to the indication information, a start TCP data packet corresponding to a next protocol frame; and
performing data parsing on the next protocol frame from the start TCP data packet.
An eleventh aspect of the present invention provides a data transmission apparatus, including:
an encapsulation unit, configured to encapsulate object data of one URI into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data, and the object data is used to indicate a resource identified by the URI; and
a sending unit, configured to send the at least one TCP data packet to a node device.
In a first possible implementation, a data part length of the last TCP data packet is 0, to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data.
With reference to the first possible implementation of the eleventh aspect, in a second possible implementation, a header of the last TCP data packet includes a sending sequence number and an acknowledgement sequence number; and
the sending sequence number is the same as a sending sequence number of a start TCP data packet corresponding to object data of a next URI, and the acknowledgement sequence number is determined according to received data sent by the node device.
With reference to the first possible implementation of the eleventh aspect, in a third possible implementation, a header of the last TCP data packet includes a sending sequence number and an acknowledgement sequence number; and
the sending sequence number is the same as a sending sequence number of a start TCP data packet corresponding to object data of a next URI, and the acknowledgement sequence number is the same as an acknowledgement sequence number of a previous data packet of the last TCP data packet.
With reference to the third possible implementation of the eleventh aspect, in a fourth possible implementation, the apparatus further includes:
an obtaining unit, configured to: before the encapsulation unit encapsulates the object data into the at least one TCP data packet, obtain the object data sent by a management terminal, where the object data includes terminal identification information, and the terminal identification information is used to instruct to send the at least one TCP data packet corresponding to the object data to the node device corresponding to the terminal identification information.
With reference to any one of the first to the fourth possible implementations of the eleventh aspect, in a fifth possible implementation, the encapsulation unit is configured to add one TCP data packet after the last TCP data packet that is corresponding to the object data and that includes data, where a data part length of the added TCP data packet is 0.
With reference to the possible implementation of the eleventh aspect, in a sixth possible implementation, when a data volume of the last TCP data packet that is corresponding to the object data and that includes data is less than a preset MSS, the last TCP data packet that includes data includes only the object data, and the indication information is the data volume of the last TCP data packet that includes data.
With reference to the possible implementation of the eleventh aspect, in a seventh possible implementation, the indication information is identification information included in a header of the last TCP data packet.
With reference to any one of the eleventh aspect or the first to the seventh possible implementations of the eleventh aspect, in an eighth possible implementation, a data part of the at least one TCP data packet includes only the object data.
With reference to any one of the eleventh aspect or the first to the eighth possible implementations of the eleventh aspect, in a ninth possible implementation, the apparatus further includes:
a receiving unit, configured to receive a TCP data packet sent by the node device, where
the encapsulation unit is configured to add, to a to-be-sent TCP data packet in the at least one TCP data packet, an acknowledgement sequence number of the TCP data packet sent by the node device, where the acknowledgement sequence number is used to indicate that the TCP data packet sent by the node device is correctly received.
With reference to any one of the eleventh aspect or the first to the ninth possible implementations of the eleventh aspect, in a tenth possible implementation, the sending unit is further configured to send a notification message to the node device before the encapsulation unit encapsulates the object data into the at least one TCP data packet, where the notification message is used to indicate that the last TCP data packet in the at least one TCP data packet includes the indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data.
With reference to any one of the eleventh aspect or the first to the tenth possible implementations of the eleventh aspect, in an eleventh possible implementation, a header of the at least one TCP data packet includes data type information, and the data type information is used to indicate a data type of the data part of the TCP data packet.
With reference to any one of the eleventh aspect or the first to the eleventh possible implementations of the eleventh aspect, in a twelfth possible implementation, the object data is HTTP 1.1 data or HTTP 1.0 data.
With reference to any one of the eleventh aspect or the first to the twelfth possible implementations of the eleventh aspect, in a thirteenth possible implementation, the encapsulation unit is configured to: encapsulate the object data into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the object data; and encapsulate all TLS frames in the at least one TLS frame into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data.
With reference to any one of the eleventh aspect or the first to the twelfth possible implementations of the eleventh aspect, in a fourteenth possible implementation, the encapsulation unit is configured to: encapsulate the object data into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the object data; and encapsulate each TLS frame into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the TLS frame.
With reference to the thirteenth or the fourteenth possible implementation of the eleventh aspect, in a fifteenth possible implementation, each TLS frame includes data type information, and the data type information is used to indicate a data type of the TLS frame.
With reference to any one of the eleventh aspect or the first to the fifteenth possible implementations of the eleventh aspect, in a sixteenth possible implementation, the apparatus further includes:
a compression unit, configured to compress the object data into at least one compressed package before the encapsulation unit encapsulates the object data into the at least one TCP data packet, where the at least one compressed package includes only the object data.
A twelfth aspect of the present invention provides a node device, including a processor, a memory, and a network interface, where the memory stores a set of program code, and the processor is configured to invoke the program code stored in the memory, to perform the following operations:
encapsulating object data of one URI into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data, and the object data is used to indicate a resource identified by the URI; and
sending the at least one TCP data packet to a node device.
A thirteenth aspect of the present invention provides a data parsing apparatus, including:
a receiving unit, configured to receive at least one TCP data packet that is sent by a node device and that is obtained by encapsulating object data of one URI, where the last TCP data packet in the at least one TCP data packet includes indication information, the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data, and the object data is used to indicate a resource identified by the URI;
a determining unit, configured to determine, according to the indication information, a start TCP data packet corresponding to object data of a next URI; and
a parsing unit, configured to perform data parsing on the object data of the next URI from the start TCP data packet.
In a first possible implementation, the determining unit is configured to: when a data part length of the last TCP data packet is 0, determine that a next TCP data packet is the start TCP data packet corresponding to the object data of the next URI.
With reference to the possible implementation of the thirteenth aspect, in a second possible implementation, the determining unit is configured to: when a data volume of the last TCP data packet is less than a preset MSS, determine that a next TCP data packet is the start TCP data packet corresponding to the object data of the next URI.
With reference to the possible implementation of the thirteenth aspect, in a third possible implementation, the determining unit is configured to: when a header of the last TCP data packet includes identification information, determine that a next TCP data packet is the start TCP data packet corresponding to the object data of the next URI.
With reference to any one of the thirteenth aspect or the first to the third possible implementations of the thirteenth aspect, in a fourth possible implementation, the apparatus further includes:
a sending unit, configured to send a TCP data packet to the node device before the receiving unit receives the at least one TCP data packet sent by the node device, where
the determining unit is further configured to: when the received TCP data packet carries an acknowledgement sequence number of the TCP data packet sent to the node device, determine, according to the acknowledgement sequence number, that the node device correctly receives the TCP data packet sent to the node device.
With reference to any one of the thirteenth aspect or the first to the fourth possible implementations of the thirteenth aspect, in a fifth possible implementation, the receiving unit is further configured to: before the determining unit determines, according to the indication information, the start TCP data packet corresponding to the object data of the next URI, receive a notification message sent by the node device; and
the apparatus further includes:
an obtaining unit, configured to obtain, according to the notification message, the indication information in the last TCP data packet corresponding to the object data.
With reference to any one of the thirteenth aspect or the first to the fourth possible implementations of the thirteenth aspect, in a fifth possible implementation, a header of the at least one TCP data packet includes data type information; and
the parsing unit is configured to obtain a data type of a data part of the TCP data packet according to the data type information.
A fourteenth aspect of the present invention provides a node device, including a processor, a memory, and a network interface, where the memory stores a set of program code, and the processor is configured to invoke the program code stored in the memory, to perform the following operations:
receiving at least one TCP data packet that is sent by a node device and that is obtained by encapsulating object data of one URI, where the last TCP data packet in the at least one TCP data packet includes indication information, the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data, and the object data is used to indicate a resource identified by the URI;
determining, according to the indication information, a start TCP data packet corresponding to object data of a next URI; and
performing data parsing on the object data of the next URI from the start TCP data packet.
A fifteenth aspect of the present invention provides a data transmission apparatus, including:
an encapsulation unit, configured to encapsulate one application layer data unit into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the application layer data unit, and the application layer data unit is an HTTP frame or object data of a URI;
a determining unit, configured to determine a target TLS frame from the at least one TLS frame;
an adding unit, configured to add service information of the application layer data unit to the target TLS frame; where
the encapsulation unit is further configured to encapsulate the target TLS frame including the service information and another TLS frame in the at least one TLS frame into at least one TCP data packet; and
a sending unit, configured to send the at least one TCP data packet obtained after the encapsulation to a node device.
In a first possible implementation, the determining unit is configured to determine the first TLS frame, the last TLS frame, or all TLS frames in the at least one TLS frame as the target TLS frame.
With reference to the fifteenth aspect or the first possible implementation of the fifteenth aspect, in a second possible implementation, the determining unit is configured to determine the first TLS frame and the last TLS frame in the at least one TLS frame as the target TLS frame.
With reference to the first or the second possible implementation of the fifteenth aspect, in a third possible implementation, the service information includes data type information, and the data type information is used to indicate a data type of the target TLS frame.
With reference to any one of the first to the third possible implementations of the fifteenth aspect, in a fourth possible implementation, the service information includes policy information, the policy information is used to indicate a policy to be performed on the target TLS frame, and the policy to be performed includes a QoS policy or a charging policy.
With reference to any one of the first to the fourth possible implementations of the fifteenth aspect, in a fifth possible implementation, the service information is carried in a TLS header field of the target TLS frame.
With reference to the possible implementation of the fifteenth aspect, in a sixth possible implementation, the target TLS frame is used to indicate service information of a designated TLS frame in the at least one TLS frame; and
the designated TLS frame includes all TLS frames after the target TLS frame in the at least one TLS frame; or
the designated TLS frame includes all TLS frames before the target TLS frame in the at least one TLS frame; or
the designated TLS frame includes a previous TLS frame of the target TLS frame in the at least one TLS frame; or
the designated TLS frame includes a next TLS frame of the target TLS frame in the at least one TLS frame.
With reference to the sixth possible implementation of the fifteenth aspect, in a seventh possible implementation, the service information includes data type information, and the data type information is used to indicate a data type of the designated TLS frame.
With reference to the sixth or the seventh possible implementation of the fifteenth aspect, in an eighth possible implementation, the service information includes policy information, the policy information is used to indicate a policy to be performed on the designated TLS frame, and the policy to be performed includes a QoS policy or a charging policy.
With reference to any one of the sixth to the eighth possible implementations of the fifteenth aspect, in a ninth possible implementation, the target TLS frame includes extended identifier information, and the extended identifier information is used to indicate that the target TLS frame is a protocol frame indicating the service information of the designated TLS frame in the at least one TLS frame.
With reference to any one of the sixth to the ninth possible implementations of the fifteenth aspect, in a tenth possible implementation, the service information is carried in a data part of the target TLS frame.
A sixteenth aspect of the present invention provides a node device, including a processor, a memory, and a network interface, where the memory stores a set of program code, and the processor is configured to invoke the program code stored in the memory, to perform the following operations:
encapsulating one application layer data unit into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the application layer data unit, and the application layer data unit is an HTTP frame or object data of a URI;
determining a target TLS frame from the at least one TLS frame;
adding service information of the application layer data unit to the target TLS frame;
encapsulating the target TLS frame including the service information and another TLS frame in the at least one TLS frame into at least one TCP data packet; and
sending the at least one TCP data packet to the node device by using the network interface.
A seventeenth aspect of the present invention provides a data parsing apparatus, including:
a receiving unit, configured to receive at least one TCP data packet that is sent by a node device and that is obtained by encapsulating a target TLS frame including service information and another TLS frame in at least one TLS frame, where the at least one TLS frame is obtained by the node device by encapsulating one application layer data unit;
an obtaining unit, configured to obtain the service information in the target TLS frame; and
a parsing unit, configured to perform data parsing on the application layer data unit according to the service information.
In a first possible implementation, the apparatus further includes:
a determining unit, configured to: before the obtaining unit obtains the service information in the target TLS frame, determine the first TLS frame, the last TLS frame, or all TLS frames in the at least one TLS frame as the target TLS frame.
With reference to the seventeenth aspect or the first possible implementation of the seventeenth aspect, in a second possible implementation, the apparatus further includes:
a determining unit, configured to: before the obtaining unit obtains the service information in the target TLS frame, determine the first TLS frame and the last TLS frame in the at least one TLS frame as the target TLS frame.
With reference to the seventeenth aspect, or the first or the second possible implementation of the seventeenth aspect, in a third possible implementation, the service information includes data type information; and
the parsing unit is configured to: obtain a data type of the target TLS frame according to the data type information, and determine the data type of the target TLS frame as a data type of the application layer data unit.
With reference to any one of the seventeenth aspect or the first to the third possible implementations of the seventeenth aspect, in a fourth possible implementation, the service information includes policy information; and
the parsing unit is configured to: obtain, according to the policy information, a policy to be performed on the target TLS frame, and determine the policy to be performed on the target TLS frame as a policy to be performed on the application layer data unit.
With reference to any one of the seventeenth aspect or the first to the fourth possible implementations of the seventeenth aspect, in a fifth possible implementation, the obtaining unit is configured to obtain the service information from a TLS header field of the target TLS frame.
With reference to the possible implementation of the seventeenth aspect, in a sixth possible implementation, the target TLS frame is used to indicate service information of a designated TLS frame in the at least one TLS frame; and
the designated TLS frame includes all TLS frames after the target TLS frame in the at least one TLS frame; or
the designated TLS frame includes all TLS frames before the target TLS frame in the at least one TLS frame; or
the designated TLS frame includes a previous TLS frame of the target TLS frame in the at least one TLS frame; or
the designated TLS frame includes a next TLS frame of the target TLS frame in the at least one TLS frame.
With reference to the sixth possible implementation of the seventeenth aspect, in a seventh possible implementation, the service information includes data type information; and
the parsing unit is configured to: obtain a data type of the designated TLS frame in the at least one TLS frame according to the data type information, and determine the data type of the designated TLS frame as a data type of the application layer data unit.
With reference to the sixth or the seventh possible implementation of the seventeenth aspect, in an eighth possible implementation, the service information includes policy information; and
the parsing unit is configured to: obtain, according to the policy information, a policy to be performed on the designated TLS frame in the at least one TLS frame, and determine the policy to be performed on the designated TLS frame as a policy to be performed on the application layer data unit.
With reference to the eighth possible implementation of the seventeenth aspect, in a ninth possible implementation, the apparatus further includes:
a deletion unit, configured to delete the target TLS frame after the parsing unit determines the policy to be performed on the designated TLS frame as the policy to be performed on the application layer data unit.
With reference to any one of the sixth to the ninth possible implementations of the seventeenth aspect, in a tenth possible implementation, the apparatus further includes:
a determining unit, configured to: before the obtaining unit obtains the service information in the target TLS frame, determine that the target TLS frame includes extended identifier information, where the extended identifier information is used to indicate that the target TLS frame is a protocol frame indicating the service information of the designated TLS frame in the at least one TLS frame.
With reference to any one of the sixth to the tenth possible implementations of the seventeenth aspect, in an eleventh possible implementation,
the obtaining unit is configured to obtain the service information from a data part of the target TLS frame.
An eighteenth aspect of the present invention provides a node device, including a processor, a memory, and a network interface, where the memory stores a set of program code, and the processor is configured to invoke the program code stored in the memory, to perform the following operations:
receiving, by using the network interface, at least one TCP data packet that is sent by a node device and that is obtained by encapsulating a target TLS frame including service information and another TLS frame in at least one TLS frame, where the at least one TLS frame is obtained by the node device by encapsulating one application layer data unit;
obtaining the service information in the target TLS frame; and
performing data parsing on the application layer data unit according to the service information.
A nineteenth aspect of the present invention provides a protocol frame transmission system, including the protocol frame transmission apparatus according to the seventh aspect and the protocol frame parsing apparatus according to the ninth aspect.
A twentieth aspect of the present invention provides a protocol frame transmission system, including the data transmission apparatus according to the eleventh aspect and the protocol parsing apparatus according to the thirteenth aspect.
A twenty-first aspect of the present invention provides a data transmission system, including the data transmission apparatus according to the fifteenth aspect and the protocol parsing apparatus according to the seventeenth aspect.
In the embodiments of the present invention, the protocol frame is encapsulated into the at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes the indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame; and the at least one TCP data packet is sent to the node device. In this way, it can be ensured that a data part of one TCP data packet includes data of only one protocol frame.
To describe the technical solutions in the embodiments of the present invention or in the prior art more clearly, the following briefly describes the accompanying drawings required for describing the embodiments. Apparently, the accompanying drawings in the following description show merely some embodiments of the present invention, and a person of ordinary skill in the art may still derive other drawings from these accompanying drawings without creative efforts.
The following clearly describes the technical solutions in the embodiments of the present invention with reference to the accompanying drawings in the embodiments of the present invention. Apparently, the described embodiments are merely some but not all of the embodiments of the present invention. All other embodiments obtained by a person of ordinary skill in the art based on the embodiments of the present invention without creative efforts shall fall within the protection scope of the present invention.
In an existing protocol frame transmission method, protocol frames are encapsulated into at least one TCP data packet according to an MSS, and a data part of one TCP data packet includes data of different protocol frames. Further, after the at least one TCP data packet is sent to a node device, the node device cannot recognize boundaries of the protocol frames, and therefore cannot perform data parsing on the protocol frames.
Embodiments of the present invention provide a protocol frame transmission method. One protocol frame is encapsulated into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame; and the at least one TCP data packet is sent to a node device. In this way, it is ensured that a data part of one TCP data packet includes data of only one protocol frame.
The protocol frame mentioned in the embodiments of the present invention may include an HTTP frame or a TLS (Transport Layer Security, Transport Layer Security) frame. For example, the HTTP frame may be an HTTP 2.0 frame, HTTP 2.0 is at an application layer, and the HTTP 2.0 frame is data at the application layer. One HTTP frame may be encapsulated into at least one TCP data packet, the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the HTTP frame. For another example, TLS is located between the application layer and a transport layer, and is a security protocol that provides encryption, identity authentication, and data integrity assurance for network communication. One HTTP frame may be encapsulated into at least one TLS frame, the last TLS frame in the at least one TLS frame includes indication information, and the indication information is used to indicate that the last TLS frame is the last TLS frame corresponding to the HTTP frame. Further, one TLS frame may be encapsulated into at least one TCP data packet, the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame.
In the embodiments of the present invention, the protocol frame may be compressed into at least one compressed package before the protocol frame is encapsulated into the at least one TCP data packet, and the at least one compressed package includes only the protocol frame.
The node device mentioned in the embodiments of the present invention may include a client, a server, or the like, for example, a web browser, an e-mail client, or an e-mail server.
The protocol frame transmission method mentioned in the embodiments of the present invention may run on a terminal such as a server, a client, an agent client, or an agent server. This is not specifically limited in the embodiments of the present invention.
Referring to
S101. Encapsulate one protocol frame into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information.
A terminal may encapsulate the protocol frame into the at least one TCP data packet, the last TCP data packet in the at least one TCP data packet includes the indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame. A schematic interface diagram that is shown in
For example, if both a data volume of a first protocol frame and a data volume of a second protocol frame are 3000 bytes, and a preset MSS agreed on by the terminal and a node device is 1460 bytes, the terminal may encapsulate the first protocol frame into three TCP data packets. A data part length of a first TCP data packet is 1460 bytes, a data part length of a second TCP data packet is 1460 bytes, a data part length of a third TCP data packet is 80 bytes, the third TCP data packet includes indication information, and the indication information is used to indicate that the second TCP data packet is the last TCP data packet corresponding to the first protocol frame. Likewise, the terminal may encapsulate the second protocol frame into three TCP data packets. A data part length of a fourth TCP data packet is 1460 bytes, a data part length of a fifth TCP data packet is 1460 bytes, a data part length of a sixth TCP data packet is 80 bytes, the sixth TCP data packet includes indication information, and the indication information is used to indicate that the sixth TCP data packet is the last TCP data packet corresponding to the second protocol frame.
In an optional embodiment, the protocol frame may be a TLS frame or an HTTP frame. The TLS frame is a basic protocol unit of TLS, and TLS runs between an application layer and a transport layer. The HTTP frame is a basic protocol unit of HTTP, and HTTP runs at the application layer. For example, the HTTP frame may be an HTTP 2.0 frame.
In an optional embodiment, a data part of the at least one TCP data packet includes only data of the protocol frame. For example, the terminal encapsulates a first protocol frame into a first TCP data packet and a second TCP data packet, a data part of the first TCP data packet includes only data of the first protocol frame, and a data part of the second TCP data packet includes only data of the first protocol frame. Likewise, the terminal encapsulates a second protocol frame into a third TCP data packet and a fourth TCP data packet, a data part of the third TCP data packet includes only data of the second protocol frame, and a data part of the fourth TCP data packet includes only data of the second protocol frame.
In an optional embodiment, a data part length of the last TCP data packet may be 0, to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame. For example, if a data volume of a first protocol frame is 2000 bytes, and a preset MSS agreed on by the terminal and the node device is 1460 bytes, the terminal may encapsulate the first protocol frame into a first TCP data packet, a second TCP data packet, and a third TCP data packet. A data part length of the first TCP data packet is 1460 bytes, a data part length of the second TCP data packet is 540 bytes, and a data part length of the third TCP data packet is 0, to indicate that the third TCP data packet is the last TCP data packet corresponding to the first protocol frame.
Further optionally, a header of the last TCP data packet may include a sending sequence number and an acknowledgement sequence number. The sending sequence number is the same as a sending sequence number of a start TCP data packet corresponding to a next protocol frame, and the acknowledgement sequence number is determined according to received data sent by the node device.
Further optionally, a header of the last TCP data packet may include a sending sequence number and an acknowledgement sequence number. The sending sequence number is the same as a sending sequence number of a start TCP data packet corresponding to a next protocol frame, and the acknowledgement sequence number is the same as an acknowledgement sequence number of a previous data packet of the last TCP data packet.
Further optionally, before encapsulating the protocol frame into the at least one TCP data packet, the terminal may obtain the protocol frame sent by a management terminal. The protocol frame may include terminal identification information, and the terminal identification information is used to instruct to send the at least one TCP data packet corresponding to the protocol frame to the node device corresponding to the terminal identification information.
Further optionally, the terminal may add one TCP data packet after the last TCP data packet that includes data, and a data part length of the added TCP data packet is 0. For example, when a data volume of the last TCP data packet that is corresponding to the protocol frame and that includes data is equal to a preset MSS, the terminal may add one TCP data packet after the last TCP data packet that includes data. A data part length of the added TCP data packet is 0. For another example, when a data volume of the last TCP data packet that is corresponding to the protocol frame and that includes data is less than a preset MSS, the terminal may add one TCP data packet after the last TCP data packet that includes data. A data part length of the added TCP data packet is 0.
In an optional embodiment, when a data volume of the last TCP data packet that is corresponding to the protocol frame and that includes data is less than a preset MSS, the last TCP data packet that includes data includes only data of the protocol frame, and the indication information is the data volume of the last TCP data packet that includes data. For example, if a data volume of a first protocol frame is 2000 bytes, and a preset MSS agreed on by the terminal and the node device is 1460 bytes, the terminal may encapsulate the first protocol frame into a first TCP data packet and a second TCP data packet. A data part length of the first TCP data packet is 1460 bytes, a data part length of the second TCP data packet is 540 bytes, the second TCP data packet includes only data of the first protocol frame, indication information is a data volume of the second TCP data packet, and the terminal may determine, according to the indication information, that the data volume of the second TCP data packet is less than the preset MSS, and therefore, the second TCP data packet is the last TCP data packet of the first protocol frame.
In an optional embodiment, the indication information may be identification information included in a header of the last TCP data packet. During specific implementation, when a data volume of the last TCP data packet that is corresponding to the protocol frame and that includes data is equal to a preset MSS, the terminal may add the identification information to a header of the last TCP data packet that includes data. For another example, when a data volume of the last TCP data packet that is corresponding to the protocol frame and that includes data is less than a preset MSS, the terminal may add the identification information to a header of the last TCP data packet that includes data. For example, if a data volume of a first protocol frame is 2000 bytes, and a preset MSS agreed on by the terminal and the node device is 1460 bytes, the terminal may encapsulate the first protocol frame into a first TCP data packet and a second TCP data packet. A data part length of the first TCP data packet is 1460 bytes, a data part length of the second TCP data packet is 540 bytes, a header of the second TCP data packet includes identification information, and the terminal may determine, according to the identification information, that the second TCP data packet is the last TCP data packet of the first protocol frame.
In an optional embodiment, before encapsulating the protocol frame into the at least one TCP data packet, the terminal may further send a notification message to the node device. The notification message may be used to indicate that the last TCP data packet in the at least one TCP data packet includes the indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame.
Further optionally, the notification message may be carried in an HTTP 2.0 setting frame or an HTTP 2.0 header field of the protocol frame.
In an optional embodiment, a header of the at least one TCP data packet may include data type information, and the data type information is used to indicate a data type of the data part of the TCP data packet. In an existing protocol frame parsing method, blind parsing is performed on a protocol frame by using a frame header of the protocol frame, and a data type of the protocol frame cannot be accurately obtained. However, in this embodiment of the present invention, the header of the at least one TCP data packet includes the data type information, and the node device may obtain the data type of the data part of the TCP data packet according to the data type information, to obtain a data type of the protocol frame. Therefore, data parsing precision is improved.
In an optional embodiment, the terminal may compress the protocol frame into at least one compressed package before encapsulating the protocol frame into the at least one TCP data packet, and the at least one compressed package includes only the protocol frame. During specific implementation, the terminal usually compresses the protocol frame by using a preset compression algorithm, and then transmits the compressed protocol frame to the node device, to increase a transmission rate. To avoid a case in which different protocol frames are compressed into a same compressed package, and consequently the protocol frames cannot be recognized, and the protocol frames cannot be encapsulated into at least one TCP data packet, in this embodiment of the present invention, one protocol frame is compressed into at least one compressed package, and data in the compressed package is encapsulated into at least one TCP data packet, so that each protocol frame is encapsulated into at least one TCP data packet.
In an optional embodiment, when the protocol frame is an HTTP frame, the HTTP frame may be encapsulated into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the HTTP frame; and each TLS frame may be encapsulated into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the TLS frame.
A schematic interface diagram that is shown in
In this embodiment of the present invention, it can be ensured that data parts of a TCP1 data packet to the TCP3 data packet include only data of the TLS frame 1, data parts of a TCP4 data packet to the TCP8 data packet include only data of the TLS frame 2, and the TLS frame 1 and the TLS frame 2 include only data of the HTTP frame.
In an optional embodiment, when the protocol frame is an HTTP frame, the HTTP frame may be encapsulated into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the HTTP frame; and all TLS frames in the at least one TLS frame may be encapsulated into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the HTTP frame.
A schematic interface diagram that is shown in
In this embodiment of the present invention, the data part of the TCP data packet includes only data of the HTTP frame, and the data packet of the TCP data packet may include data of multiple TLS frames. In this embodiment of the present invention, a TCP data packet corresponding to one HTTP frame includes only one piece of indication information. Compared with the foregoing encapsulation method, this embodiment of the present invention can improve resource utilization and reduce encapsulation overheads.
In an optional embodiment, when the protocol frame is a TLS frame, the TLS frame may include data type information, and the data type information is used to indicate a data type of the TLS frame. For example, a format of a TLS frame may be shown in
For example, a ContentType field of a conventional TLS frame may be specifically ContentType::=ENUMERATED{change_cipher_spec(20), alert(21), handshake(22), application_data(23), (255)}. In this embodiment of the present invention, data type information may be added to a ContentType field of a TLS frame. For example, a ContentType field to which data type information is added may be ContentType::=ENUMERATED{change_cipher_spec(20), alert(21), handshake(22), application_data(23), (255), Text/HTML(24), Text/CSS(25), Text/JS(26), Image/JPEG(27), Application/Video(28), Application/Audio(29) . . . }. Text/HTML(24) is data type information and is used to indicate that a data type of the TLS frame is an HTML text. Text/CSS(25) is data type information and is used to indicate that a data type of the TLS frame is a CSS text. Text/JS(26) is data type information and is used to indicate that a data type of the TLS frame is a javascript text. Image/JPEG(27) is data type information and is used to indicate that a data type of the TLS frame is a JPEG image. Application/Video(28) is data type information and is used to indicate that a data type of the TLS frame is a video. Application/Audio(29) is data type information and is used to indicate that a data type of the TLS frame is audio.
Further, when encapsulating the TLS frame into at least one TCP data packet, the terminal may add data type information to a header of the at least one TCP data packet. The data type information is used to indicate a data type of a data part of the TCP data packet.
S102. Send the at least one TCP data packet to a node device.
The terminal may send the at least one TCP data packet to the node device after encapsulating the protocol frame into the at least one TCP data packet.
In an optional embodiment, before sending the at least one TCP data packet to the node device, the terminal may receive a TCP data packet sent by the node device, and add, to a to-be-sent TCP data packet in the at least one TCP data packet, an acknowledgement sequence number of the TCP data packet sent by the node device. The acknowledgement sequence number is used to indicate that the TCP data packet sent by the node device is correctly received. In an existing protocol frame transmission method, a terminal may send an ACK data packet to a node device after receiving a TCP data packet sent by the node device. A data part length of the ACK data packet is 0, to indicate that the terminal correctly receives the TCP data packet sent by the node device. Therefore, resource utilization is relatively low. In this embodiment of the present invention, after the TCP data packet sent by the node device is received, the acknowledgement sequence number of the TCP data packet sent by the node device may be added to the to-be-sent TCP data packet in the at least one TCP data packet. The acknowledgement sequence number is used to indicate that the TCP data packet sent by the node device is correctly received. In this embodiment of the present invention, while no ACK data packet is separately sent, it is indicated that the TCP data packet sent by the node device is correctly received, so that resource utilization can be improved.
In the protocol frame encapsulation method shown in
Referring to
S201. Receive at least one TCP data packet that is sent by a node device and that is obtained by encapsulating one protocol frame, where the last TCP data packet in the at least one TCP data packet includes indication information.
A terminal may receive the at least one TCP data packet that is sent by the node device and that is obtained by encapsulating the protocol frame, the last TCP data packet in the at least one TCP data packet includes the indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame. For example, the node device may encapsulate the protocol frame into the at least one TCP data packet, the last TCP data packet in the at least one TCP data packet includes the indication information, and the node device sends the at least one TCP data packet to the terminal, so that the terminal receives the at least one TCP data packet.
In an optional embodiment, the terminal may send a TCP data packet to the node device before receiving the at least one TCP data packet that is sent by the node device and that is obtained by encapsulating the protocol frame. Further, after the terminal receives the at least one TCP data packet that is sent by the node device and that is obtained by encapsulating the protocol frame, when the received TCP data packet carries an acknowledgement sequence number of the TCP data packet sent to the node device, the terminal may determine, according to the acknowledgement sequence number, that the node device correctly receives the TCP data packet sent to the node device.
For example, the terminal may send the TCP data packet to the node device before receiving the at least one TCP data packet sent by the node device, and the node device receives the TCP data packet sent by the terminal, and adds, to a to-be-sent TCP data packet in the at least one TCP data packet, the acknowledgement sequence number of the TCP data packet sent by the terminal. In this case, after receiving the at least one TCP data packet sent by the node device, the terminal may determine, according to the acknowledgement sequence number, that the node device correctly receives the TCP data packet sent by the terminal.
S202. Determine, according to the indication information, a start TCP data packet corresponding to a next protocol frame.
The terminal may determine, according to the indication information, the start TCP data packet corresponding to the next protocol frame. The start TCP data packet corresponding to the next protocol frame is a next TCP data packet of the last TCP data packet corresponding to the protocol frame.
In an optional embodiment, when a data part length of the last TCP data packet is 0, the terminal may determine that a next TCP data packet is the start TCP data packet corresponding to the next protocol frame. For example, if the node device adds one TCP data packet after the last TCP data packet that is corresponding to the protocol frame and that includes data, and a data part length of the added TCP data packet is 0, the terminal may determine that a next TCP data packet of the added TCP data packet is the start TCP data packet corresponding to the next protocol frame.
In an optional embodiment, when a data volume of the last TCP data packet is less than a preset MSS, the terminal may determine that a next TCP data packet is the start TCP data packet corresponding to the next protocol frame. For example, the terminal may determine whether a data volume of each TCP data packet is less than the preset MSS, and when a data volume of a TCP data packet is less than the preset MSS, the terminal may determine that a next TCP data packet of the TCP data packet is the start TCP data packet corresponding to the next protocol frame. Further optionally, when a data volume of a TCP data packet is equal to the preset MSS, the terminal may determine whether a data part length of a next TCP data packet is 0, and when the data part length of the next TCP data packet is 0, the terminal may determine that a next TCP data packet of the TCP data packet whose data part length is 0 is the start TCP data packet corresponding to the next protocol frame. Further optionally, when a data volume of a TCP data packet is equal to the preset MSS, the terminal may determine whether a header of each TCP data packet includes identification information, and when a header of a TCP data packet includes the identification information, the terminal may determine that a next TCP data packet of the TCP data packet is the start TCP data packet corresponding to the next protocol frame.
In an optional embodiment, when a header of the last TCP data packet includes identification information, the terminal may determine that a next TCP data packet is the start TCP data packet corresponding to the next protocol frame. For example, the terminal may determine whether a header of each TCP data packet includes identification information, and when a header of a TCP data packet includes the identification information, the terminal may determine that a next TCP data packet of the TCP data packet is the start TCP data packet corresponding to the next protocol frame.
In an optional embodiment, before determining, according to the indication information, the start TCP data packet corresponding to the next protocol frame, the terminal may receive a notification message sent by the node device, and obtain, according to the notification message, the indication information in the last TCP data packet corresponding to the protocol frame. For example, the terminal receives the notification message sent by the node device, and the notification message is used to instruct the terminal to recognize a boundary of the next protocol frame, so that data parsing can be performed on the next protocol frame. In this case, the terminal may obtain, according to the notification message, the indication information in the last TCP data packet corresponding to the protocol frame, determine, according to the indication information, the start TCP data packet corresponding to the next protocol frame, and perform data parsing on the next protocol frame from the start TCP data packet.
S203. Perform data parsing on the next protocol frame from the start TCP data packet.
After determining the start TCP data packet corresponding to the next protocol frame, the terminal may perform data parsing on the next protocol frame from the start TCP data packet. For example, if the terminal determines that the start TCP data packet corresponding to the next protocol frame is a third TCP data packet, the terminal may parse a frame header and a payload of the next protocol frame from the third TCP data packet, and recognize a data type of the next protocol frame according to data in the payload. The data type of the protocol frame may include a text, an image, a video, audio, or the like.
In an optional embodiment, a header of the at least one TCP data packet may include data type information, and the terminal may obtain a data type of a data part of the TCP data packet according to the data type information, to obtain a data type of the protocol frame. In the prior art, a terminal performs blind parsing on a protocol frame by using a frame header of the protocol frame, and cannot accurately obtain a data type of the protocol frame. By contrast, in this embodiment of the present invention, the data type of the data part of the TCP data packet is obtained according to the data type information, so that the data type of the protocol frame is obtained. Therefore, data parsing precision can be improved.
In an optional embodiment, before performing data parsing on the next protocol frame from the start TCP data packet, the terminal may determine that a header field of the next protocol frame is compressed by using a static table. During specific implementation, the header field of the protocol frame may be compressed by using the static table or a dynamic table. The static table is specified by a protocol for a commonly used high frequency header field, and keeps unchanged in a protocol frame transmission process while the dynamic table changes dynamically in the transmission process. If the header field of the protocol frame is compressed by using the dynamic table, and the terminal is a source eNB (evolved NodeB), the source eNB maintains the dynamic table, and when the terminal is handed over from the source eNB to a target eNB, the target eNB cannot obtain the dynamic table, and therefore, cannot perform data parsing on the protocol frame. In this embodiment of the present invention, data parsing is performed on the next protocol frame from the start TCP data packet after it is determined that the header field of the next protocol frame is compressed by using the static table, so that data parsing efficiency can be improved.
In an optional embodiment, all TCP data packets corresponding to the next protocol frame belong to a same HTPP 2.0 stream. After the terminal performs data parsing on the next protocol frame from the start TCP data packet, when data parsing performed on the next protocol frame fails, the terminal suspends data parsing performed on a protocol frame included in the HTTP 2.0 stream. For example, the node device divides an image into multiple protocol frames, the multiple protocol frames belong to a same HTPP 2.0 stream, and a data type of each protocol frame is an image. The node device encapsulates each protocol frame into at least one TCP data packet, and after the node device sends the at least one TCP data packet to the terminal, when the terminal learns, by means of parsing, that a data type of one of the protocol frames is a video, the terminal also learns, by means of parsing, that a data type of another protocol frame in the HTPP 2.0 stream is a video. In this embodiment of the present invention, when data parsing performed on the protocol frame fails, data parsing performed on another protocol frame included in the HTTP 2.0 stream is suspended, so that data parsing efficiency can be improved.
In the protocol frame parsing method shown in
Referring to
S301. The first node device encapsulates one protocol frame into at least one TCP data packet, where a data part length of the last TCP data packet in the at least one TCP data packet is 0.
The first node device may encapsulate the protocol frame into the at least one TCP data packet, and the data part length of the last TCP data packet in the at least one TCP data packet is 0, to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame. The protocol frame may be an HTTP frame or a TLS frame, and a data part of the at least one TCP data packet includes only data of the protocol frame. For example, if a data volume of a protocol frame is 4000 bytes, and a preset MSS agreed on by the first node device and a third node device is 1460 bytes, the first node device may encapsulate the protocol frame into four TCP data packets. A data part length of a TCP1 data packet is 1460 bytes, a data part length of a TCP2 data packet is 1460 bytes, a data part length of a TCP3 data packet is 1080 bytes, and a data part length of a TCP4 data packet is 0.
In an optional embodiment, the first node device may add one TCP data packet after the last TCP data packet that is corresponding to the protocol frame and that includes data, and a data part length of the added TCP data packet is 0.
In an optional embodiment, the first node device may receive a TCP data packet sent by the first base station, and then add, to a to-be-sent TCP data packet in the at least one TCP data packet, an acknowledgement sequence number of the TCP data packet sent by the first base station. The acknowledgement sequence number is used to indicate that the TCP data packet sent by the first base station is correctly received.
In the prior art, after receiving a TCP data packet sent by a first base station, a first node device needs to send an ACK data packet to the first base station. The ACK data packet is used to indicate that the first node device correctly receives TCP data sent by the first base station, and a data part length of the ACK data packet is 0. After receiving the ACK data packet, the first base station incorrectly considers that the ACK data packet is the last TCP data packet corresponding to a protocol frame. For the technical problem, in this embodiment of the present invention, the acknowledgement sequence number of the TCP data packet sent by the first base station may be added to the to-be-sent TCP data packet in the at least one TCP data packet, and the acknowledgement sequence number is used to indicate that the TCP data packet sent by the first base station is correctly received.
For example, in
In an optional embodiment, before encapsulating the protocol frame into the at least one TCP data packet, the first node device may send a notification message to the second node device. The notification message is used to indicate that the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame.
A schematic interface diagram of a setting frame shown in
A schematic structural diagram of an HTTP frame shown in
In an optional embodiment, a header of the at least one TCP data packet may include data type information, and the data type information is used to indicate a data type of the data part of the TCP data packet.
For example, in
For example, in
S302. The first node device sends the at least one TCP data packet to the first base station.
The first node device may send the at least one TCP data packet to the first base station. For example, the first node device may send a TCP1 data packet to the first base station.
S303. The first base station sends the at least one TCP data packet to the second node device.
The first base station may send, to the second node device, the at least one TCP data packet sent by the first node device. For example, the first base station may send the TCP1 data packet to the second node device.
S304. Hand over from the first base station to the second base station.
The first base station is switched to the second base station after sending the TCP1 data packet to the second node device. For example, if the second node device moves from one cell to another, a signal transmitted by the first base station covers a first cell, and a signal transmitted by the second base station covers a second cell, a link between the second node device and the first base station is switched to a link between the second node device and the second base station, so that communication continuity is ensured. For another example, to avoid co-channel interference in a same cell, the second node device is handed over from one radio channel to another, that is, a link between the second node device and the first base station is switched to a link between the second node device and the second base station.
S305. The first node device sends the at least one TCP data packet to the second base station.
After being handed over from the first base station to the second base station, the first node device may send the at least one TCP data packet to the second base station. For example, after sending the TCP1 data packet to the first base station, the first node device may send a TCP2 data packet, a TCP3 data packet, a TCP4 data packet, and the like to the second base station.
In an optional embodiment, a header of the last TCP data packet corresponding to the protocol frame may include a sending sequence number and an acknowledgement sequence number. The sending sequence number is the same as a sending sequence number of a start TCP data packet corresponding to a next protocol frame, and the acknowledgement sequence number is determined according to received data sent by the second base station.
During specific implementation, the sending sequence number of the TCP data packet is a sum of a sending sequence number of a previous TCP data packet and a data part length of the previous TCP data packet. A sending sequence number of the TCP4 data packet is a sum of a sending sequence number of the TCP3 data packet and a data part length of the TCP3 data packet. If a data part length of the TCP4 data packet is 0, a sending sequence number of a TCP5 data packet is the sending sequence number of the TCP4 data packet. That is, one TCP data packet is added after the last TCP data packet that is corresponding to a first protocol frame and that includes data, and a sending sequence number of the added TCP data packet is the same as a sending sequence number of a start TCP data packet corresponding to a next protocol frame.
During specific implementation, after the first node device sends the TCP2 data packet to the second base station, the second base station returns an acknowledgement sequence number of the TCP2 data packet to the first node device, to indicate that the second base station correctly receives the TCP2 data packet. The first node device generates an acknowledgement sequence number of the TCP3 data packet. The acknowledgement sequence number of the TCP3 data packet is obtained by adding 1 to the acknowledgement sequence number of the TCP2 data packet. That is, one TCP data packet is added after the last TCP data packet that is corresponding to the first protocol frame and that includes data, and an acknowledgement sequence number of the added TCP data packet is determined according to received data sent by the second base station.
In an optional embodiment, before sending the at least one TCP data packet to the second base station, the first node device may send a notification message to the second base station. The notification message is used to indicate that the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame, so that the second base station obtains, according to the notification message, the TCP data packet whose data part length is 0.
S306. The second base station determines that a next TCP data packet of the TCP data packet whose data part length is 0 is a start TCP data packet corresponding to a next protocol frame.
After receiving the at least one TCP data packet sent by the first node device, the second base station may determine whether there is a TCP data packet whose data part length is 0, and when there is a TCP data packet whose data part length is 0, determine that a next TCP data packet is the start TCP data packet corresponding to the next protocol frame. For example, if the second base station determines that the data part length of the TCP4 data packet is 0, the second base station may determine that the TCP5 data packet is a start TCP data packet corresponding to a second protocol frame.
In an optional embodiment, the first node device may send the notification message to the second base station. The notification message is used to indicate that the last TCP data packet in the at least one TCP data packet includes the indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame. During specific implementation, after receiving the notification message, the second base station may learn a protocol frame encapsulation manner of the first node device, then obtain, according to the notification message, the indication information in the last TCP data packet corresponding to the protocol frame, and determine, according to the indication information, that the next TCP data packet of the TCP data packet whose data part length is 0 is the start TCP data packet corresponding to the next protocol frame.
S307. The second base station performs data parsing on the next protocol frame from the start TCP data packet.
After determining the start TCP data packet corresponding to the next protocol frame, the second base station may perform data parsing on the next protocol frame from the start TCP data packet. For example, the second base station may parse a frame header and a payload of the second protocol frame from the TCP5 data packet, and recognize a data type of the second protocol frame according to data in the payload.
In an optional embodiment, the header of the at least one TCP data packet may include the data type information, and the second base station may obtain the data type of the data part of the TCP data packet according to the data type information, to obtain a data type of the next protocol frame.
In an optional embodiment, before performing data parsing on the next protocol frame from the start TCP data packet, the second base station may determine that a header field of the next protocol frame is compressed by using a static table. During specific implementation, if the header field of the protocol frame is compressed by using a dynamic table, the first base station maintains the dynamic table. When the first base station is switched to the second base station, the second base station cannot obtain the dynamic table, and therefore, cannot perform data parsing on the next protocol frame. In this embodiment of the present invention, data parsing is performed on the next protocol frame after it is determined that the header field of the next protocol frame is compressed by using the static table, so that data parsing efficiency can be improved.
In an optional embodiment, all TCP data packets corresponding to the next protocol frame belong to a same HTPP 2.0 stream. After the second base station performs data parsing on the next protocol frame from the start TCP data packet, when data parsing performed on the next protocol frame fails, the second base station suspends data parsing performed on a protocol frame included in the HTTP 2.0 stream. For example, the second node device divides an image into multiple protocol frames, the multiple protocol frames belong to a same HTPP 2.0 stream, and a data type of each protocol frame is an image. The first node device encapsulates each protocol frame into at least one TCP data packet, and after the first node device sends the at least one TCP data packet to the second base station, when the second base station learns, by means of parsing, that a data type of one of the protocol frames is a video, the second base station also learns, by means of parsing, that a data type of another protocol frame in the HTPP 2.0 stream is a video. In this embodiment of the present invention, when data parsing performed on the protocol frame fails, data parsing performed on another protocol frame included in the HTTP 2.0 stream is suspended, so that data parsing efficiency can be improved.
S308. The second base station sends a TCP data packet obtained after the data parsing to the second node device.
In the protocol frame transmission method shown in
Referring to
S401. The management terminal sends a protocol frame to the first node device, where the protocol frame includes terminal identification information.
The management terminal may send the protocol frame to the first node device. The protocol frame includes the terminal identification information, and the terminal identification information is used to instruct to send at least one TCP data packet corresponding to the protocol frame to a node device corresponding to the terminal identification information, that is, the third node device.
S402. The first node device encapsulates one protocol frame into at least one TCP data packet, where a data part length of the last TCP data packet in the at least one TCP data packet is 0.
S403. The first node device sends the at least one TCP data packet to the third node device.
The first node device may send the at least one TCP data packet to the third node device. For example, the first node device may send a TCP1 data packet to the third node device.
S404. The first node device sends the at least one TCP data packet to the second node device.
After the first node device sends the TCP1 data packet to the third node device, the second node device that has a data parsing requirement joins in real time, and the first node device sends a TCP2 data packet, a TCP3 data packet, a TCP4 data packet, and the like to the second node device.
In an optional embodiment, a header of the last TCP data packet corresponding to the protocol frame may include a sending sequence number and an acknowledgement sequence number. The sending sequence number is the same as a sending sequence number of a start TCP data packet corresponding to a next protocol frame, and the acknowledgement sequence number is the same as an acknowledgement sequence number of a previous data packet of the last TCP data packet.
During specific implementation, the sending sequence number of the TCP data packet is a sum of a sending sequence number of a previous TCP data packet and a data part length of the previous TCP data packet. A sending sequence number of the TCP4 data packet is a sum of a sending sequence number of the TCP3 data packet and a data part length of the TCP3 data packet. If a data part length of the TCP4 data packet is 0, a sending sequence number of a TCP5 data packet is the sending sequence number of the TCP4 data packet. That is, one TCP data packet is added after the last TCP data packet that is corresponding to a first protocol frame and that includes data, and a sending sequence number of the added TCP data packet is the same as a sending sequence number of a start TCP data packet corresponding to a next protocol frame.
During specific implementation, the first node device is an agent client or an agent server. The first node device sends a TCP data packet to the second node device, the second node device sends an acknowledgement sequence number of the TCP data packet to the management terminal after receiving the TCP data packet, and the first node device cannot determine whether the second node device receives the TCP data packet. In this case, one TCP data packet is added after the last TCP data packet that is corresponding to the first protocol frame and that includes data, and an acknowledgement sequence number of the added TCP data packet is the same as an acknowledgement sequence number of the last TCP data packet that includes data.
S405. The second node device determines that a next TCP data packet of the TCP data packet whose data part length is 0 is a start TCP data packet corresponding to a next protocol frame.
S406. The second node device performs data parsing on the next protocol frame from the start TCP data packet.
S407. The second node device sends a TCP data packet obtained after the data parsing to the third node device.
In the protocol frame transmission method shown in
Referring to
S501. A first node device encapsulates one protocol frame into at least one TCP data packet, where a data volume of the last TCP data packet in the at least one TCP data packet is less than a preset MSS.
The first node device may encapsulate the protocol frame into the at least one TCP data packet. The data volume of the last TCP data packet in the at least one TCP data packet is less than the preset MSS, to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame. For example, if a data volume of a protocol frame is 4000 bytes, and a preset MSS agreed on by the first node device and a third node device is 1460 bytes, the first node device may encapsulate the protocol frame into three TCP data packets. A data part length of a TCP1 data packet is 1460 bytes, a data part length of a TCP2 data packet is 1460 bytes, and a data part length of a TCP3 data packet is 1080 bytes.
S502. The first node device sends the at least one TCP data packet to a third node device.
S503. The first node device sends the at least one TCP data packet to a second node device.
S504. The second node device determines that a next TCP data packet of the TCP data packet whose data volume is less than the preset MSS is a start TCP data packet corresponding to a next protocol frame.
S505. The second node device performs data parsing on the next protocol frame from the start TCP data packet.
S506. The second node device sends a TCP data packet obtained after the data parsing to the third node device.
In the protocol frame transmission method shown in
Referring to
S601. A first node device encapsulates one protocol frame into at least one TCP data packet, where a header of the last TCP data packet in the at least one TCP data packet includes identification information.
The first node device may encapsulate the protocol frame into the at least one TCP data packet. The header of the last TCP data packet in the at least one TCP data packet includes the identification information, to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame. For example, if a data volume of a protocol frame is 4000 bytes, and a preset MSS agreed on by the first node device and a third node device is 1460 bytes, the first node device may encapsulate the protocol frame into three TCP data packets. A data part length of a TCP1 data packet is 1460 bytes, a data part length of a TCP2 data packet is 1460 bytes, and a data part length of a TCP3 data packet is 1080 bytes. The first node device adds identification information to a header of the TCP3 data packet.
For example, in
S602. The first node device sends the at least one TCP data packet to a third node device.
S603. The first node device sends the at least one TCP data packet to a second node device.
S604. The second node device determines that a next TCP data packet of the TCP data packet whose header includes the identification information is a start TCP data packet corresponding to a next protocol frame.
S605. The second node device performs data parsing on the next protocol frame from the start TCP data packet.
S606. The second node device sends a TCP data packet obtained after the data parsing to the third node device.
In the protocol frame transmission method shown in
An embodiment of the present invention further provides a computer storage medium. The computer storage medium may store a program. When the program runs, all or some steps in the method embodiments shown in
An embodiment of the present invention further provides a computer storage medium. The computer storage medium may store a program. When the program runs, all or some steps in the method embodiments shown in
Referring to
The encapsulation unit 801 is configured to encapsulate one protocol frame into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet may include indication information, and the indication information may be used to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame.
The sending unit 802 is configured to send the at least one TCP data packet to a node device.
In an optional embodiment, a data part length of the last TCP data packet may be 0, to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame.
Further optionally, a header of the last TCP data packet may include a sending sequence number and an acknowledgement sequence number. The sending sequence number is the same as a sending sequence number of a start TCP data packet corresponding to a next protocol frame, and the acknowledgement sequence number is determined according to received data sent by the node device.
Further optionally, a header of the last TCP data packet may include a sending sequence number and an acknowledgement sequence number. The sending sequence number is the same as a sending sequence number of a start TCP data packet corresponding to a next protocol frame, and the acknowledgement sequence number is the same as an acknowledgement sequence number of a previous data packet of the last TCP data packet.
Further optionally, the protocol frame transmission apparatus in this embodiment of the present invention may further include:
an obtaining unit 803, configured to: before the encapsulation unit 801 encapsulates the protocol frame into the at least one TCP data packet, obtain the protocol frame sent by a management terminal, where the protocol frame may include terminal identification information, and the terminal identification information may be used to instruct to send the at least one TCP data packet corresponding to the protocol frame to the node device corresponding to the terminal identification information.
Further optionally, the encapsulation unit 801 is configured to: when a data volume of the last TCP data packet that is corresponding to the protocol frame and that includes data is equal to a preset MSS, add one TCP data packet after the last TCP data packet that includes data, where a data part length of the added TCP data packet may be 0.
In an optional embodiment, when a data volume of the last TCP data packet that is corresponding to the protocol frame and that includes data is less than a preset MSS, the last TCP data packet that includes data includes only data of the protocol frame, and the indication information may be the data volume of the last TCP data packet that includes data.
In an optional embodiment, the indication information may be identification information included in a header of the last TCP data packet.
In an optional embodiment, a data part of the at least one TCP data packet includes only data of the protocol frame.
In an optional embodiment, the protocol frame transmission apparatus in this embodiment of the present invention may further include:
a receiving unit 804, configured to receive a TCP data packet sent by the node device.
The encapsulation unit 801 is configured to add, to a to-be-sent TCP data packet in the at least one TCP data packet, an acknowledgement sequence number of the TCP data packet sent by the node device, where the acknowledgement sequence number may be used to indicate that the TCP data packet sent by the node device is correctly received.
In an optional embodiment, the sending unit 802 is further configured to send a notification message to the node device before the encapsulation unit 801 encapsulates the protocol frame into the at least one TCP data packet, where the notification message may be used to indicate that the last TCP data packet in the at least one TCP data packet includes the indication information, and the indication information may be used to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame.
Further optionally, the notification information may be carried in an HTTP 2.0 setting frame or an HTTP 2.0 header field of the protocol frame.
In an optional embodiment, a header of the at least one TCP data packet may include data type information, and the data type information may be used to indicate a data type of the data part of the TCP data packet.
In an optional embodiment, the protocol frame may be a TLS frame or an HTTP frame.
In an optional embodiment, when the protocol frame is an HTTP frame, the encapsulation unit 801 is configured to: encapsulate the HTTP frame into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the HTTP frame; and encapsulate all TLS frames in the at least one TLS frame into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the HTTP frame.
In an optional embodiment, when the protocol frame is an HTTP frame, the encapsulation unit 801 is configured to: encapsulate the HTTP frame into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the HTTP frame; and encapsulate each TLS frame into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the TLS frame.
In an optional embodiment, when the protocol frame is a TLS frame, the TLS frame includes data type information, and the data type information is used to indicate a data type of the TLS frame.
In an optional embodiment, the protocol frame transmission apparatus in this embodiment of the present invention may further include:
a compression unit 805, configured to compress the protocol frame into at least one compressed package before the encapsulation unit encapsulates the protocol frame into the at least one TCP data packet, where the at least one compressed package includes only the protocol frame.
In the protocol frame transmission apparatus shown in
Referring to
As shown in
encapsulating one protocol frame into at least one Transmission Control Protocol TCP data packet, where the last TCP data packet in the at least one TCP data packet may include indication information, and the indication information may be used to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame; and
sending the at least one TCP data packet to a node device by using the network interface 903.
In an optional embodiment, a data part length of the last TCP data packet may be 0, to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame.
Further optionally, a header of the last TCP data packet may include a sending sequence number and an acknowledgement sequence number. The sending sequence number is the same as a sending sequence number of a start TCP data packet corresponding to a next protocol frame, and the acknowledgement sequence number is determined according to received data sent by the node device.
Further optionally, a header of the last TCP data packet may include a sending sequence number and an acknowledgement sequence number. The sending sequence number is the same as a sending sequence number of a start TCP data packet corresponding to a next protocol frame, and the acknowledgement sequence number is the same as an acknowledgement sequence number of a previous data packet of the last TCP data packet.
Further optionally, before encapsulating the protocol frame into the at least one TCP data packet, the processor 901 may further perform the following operation:
obtaining, by using the network interface 903, the protocol frame sent by a management terminal, where the protocol frame may include terminal identification information, and the terminal identification information may be used to instruct to send the at least one TCP data packet corresponding to the protocol frame to the node device corresponding to the terminal identification information.
Further optionally, the encapsulating, by the processor 901, one protocol frame into at least one TCP data packet may be specifically:
when a data volume of the last TCP data packet that is corresponding to the protocol frame and that includes data is equal to a preset maximum segment size MSS, adding one TCP data packet after the last TCP data packet that includes data, where a data part length of the added TCP data packet may be 0.
In an optional embodiment, the encapsulating, by the processor 901, one protocol frame into at least one TCP data packet may be specifically:
when a data volume of the last TCP data packet that is corresponding to the protocol frame and that includes data is less than a preset MSS, the last TCP data packet that includes data includes only data of the protocol frame, and the indication information is the data volume of the last TCP data packet that includes data.
In an optional embodiment, the indication information may be identification information included in a header of the last TCP data packet.
In an optional embodiment, a data part of the at least one TCP data packet includes only data of the protocol frame.
In an optional embodiment, before sending the at least one TCP data packet to the node device by using the network interface 903, the processor 901 may further perform the following operation:
receiving, by using the network interface 903, a TCP data packet sent by the node device.
The encapsulating, by the processor 901, one protocol frame into at least one TCP data packet may be specifically:
adding, to a to-be-sent TCP data packet in the at least one TCP data packet, an acknowledgement sequence number of the TCP data packet sent by the node device, where the acknowledgement sequence number may be used to indicate that the TCP data packet sent by the node device is correctly received.
In an optional embodiment, before encapsulating the protocol frame into the at least one TCP data packet, the processor 901 may further perform the following operation:
sending a notification message to the node device by using the network interface 903, where the notification message may be used to indicate that the last TCP data packet in the at least one TCP data packet includes the indication information, and the indication information may be used to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame.
Further optionally, the notification message may be carried in an HTTP 2.0 setting frame or an HTTP 2.0 header field of the protocol frame.
In an optional embodiment, a header of the at least one TCP data packet may include data type information, and the data type information may be used to indicate a data type of the data part of the TCP data packet.
In an optional embodiment, the protocol frame may be a TLS frame or an HTTP frame.
In an optional embodiment, when the protocol frame is an HTTP frame, the encapsulating, by the processor 901, one protocol frame into at least one TCP data packet may be specifically:
encapsulating the HTTP frame into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the HTTP frame; and
encapsulating all TLS frames in the at least one TLS frame into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the HTTP frame.
In an optional embodiment, when the protocol frame is an HTTP frame, the encapsulating, by the processor 901, one protocol frame into at least one TCP data packet may be specifically:
encapsulating the HTTP frame into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the HTTP frame; and
encapsulating each TLS frame into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the TLS frame.
In an optional embodiment, when the protocol frame is a TLS frame, the TLS frame includes data type information, and the data type information is used to indicate a data type of the TLS frame.
In an optional embodiment, before encapsulating the protocol frame into the at least one TCP data packet, the processor 901 may further perform the following operation:
compressing the protocol frame into at least one compressed package, where the at least one compressed package includes only the protocol frame.
Specifically, the node device described in this embodiment of the present invention may be configured to implement some or all procedures in the method embodiments described in the present invention with reference to
Referring to
The receiving unit 1001 is configured to receive at least one TCP data packet that is sent by a node device and that is obtained by encapsulating one protocol frame, where the last TCP data packet in the at least one TCP data packet may include indication information, and the indication information may be used to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame.
The determining unit 1002 is configured to determine, according to the indication information, a start TCP data packet corresponding to a next protocol frame.
The parsing unit 1003 is configured to perform data parsing on the next protocol frame from the start TCP data packet.
In an optional embodiment, the determining unit 1002 is configured to: when a data part length of the last TCP data packet is 0, determine that a next TCP data packet is the start TCP data packet corresponding to the next protocol frame.
In an optional embodiment, the determining unit 1002 is configured to: when a data volume of the last TCP data packet is less than a preset MSS, determine that a next TCP data packet is the start TCP data packet corresponding to the next protocol frame.
In an optional embodiment, the determining unit 1002 is configured to: when a header of the last TCP data packet includes identification information, determine that a next TCP data packet is the start TCP data packet corresponding to the next protocol frame.
In an optional embodiment, the protocol frame parsing apparatus in this embodiment of the present invention may further include:
a sending unit 1004, configured to send a TCP data packet to the node device before the receiving unit 1001 receives the at least one TCP data packet sent by the node device.
The determining unit 1002 is further configured to: when the received TCP data packet carries an acknowledgement sequence number of the TCP data packet sent to the node device, determine, according to the acknowledgement sequence number, that the node device correctly receives the TCP data packet sent to the node device.
In an optional embodiment, the receiving unit 1001 is further configured to: before the determining unit 1002 determines, according to the indication information, the start TCP data packet corresponding to the next protocol frame, receive a notification message sent by the node device.
The protocol frame parsing apparatus in this embodiment of the present invention may further include:
an obtaining unit 1005, configured to obtain, according to the notification information, the indication information in the last TCP data packet corresponding to the protocol frame.
In an optional embodiment, a header of the at least one TCP data packet may include data type information, and the parsing unit 1003 is configured to obtain a data type of a data part of the TCP data packet according to the data type information.
In an optional embodiment, the determining unit 1002 is further configured to: before the parsing unit 1003 performs data parsing on the next protocol frame from the start TCP data packet, determine that a header field of the next protocol frame is compressed by using a static table.
In an optional embodiment, all TCP data packets corresponding to the next protocol frame belong to a same HTTP 2.0 stream, and the protocol frame parsing apparatus in this embodiment of the present invention may further include:
In the protocol frame parsing apparatus shown in
Referring to
As shown in
receiving, by using the network interface 1103, at least one TCP data packet that is sent by a node device and that is obtained by encapsulating one protocol frame, where the last TCP data packet in the at least one TCP data packet may include indication information, and the indication information may be used to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame;
determining, according to the indication information, a start TCP data packet corresponding to a next protocol frame; and
performing data parsing on the next protocol frame from the start TCP data packet.
In an optional embodiment, the determining, by the processor 1101 according to the indication information, a start TCP data packet corresponding to a next protocol frame may be specifically:
when a data part length of the last TCP data packet is 0, determining that a next TCP data packet is the start TCP data packet corresponding to the next protocol frame.
In an optional embodiment, the determining, by the processor 1101 according to the indication information, a start TCP data packet corresponding to a next protocol frame may be specifically:
when a data volume of the last TCP data packet is less than a preset MSS, determining that a next TCP data packet is the start TCP data packet corresponding to the next protocol frame.
In an optional embodiment, the determining, by the processor 1101 according to the indication information, a start TCP data packet corresponding to a next protocol frame may be specifically:
when a header of the last TCP data packet includes identification information, determining that a next TCP data packet is the start TCP data packet corresponding to the next protocol frame.
In an optional embodiment, before receiving, by using the network interface 1103, the at least one TCP data packet that is sent by the node device and that is obtained by encapsulating the protocol frame, the processor 1101 may further perform the following operation:
sending a TCP data packet to the node device by using the network interface 1103.
After receiving, by using the network interface 1103, the at least one TCP data packet that is sent by the node device and that is obtained by encapsulating the protocol frame, the processor 1101 may further perform the following operation:
when the received TCP data packet carries an acknowledgement sequence number of the TCP data packet sent to the node device, determining, according to the acknowledgement sequence number, that the node device correctly receives the TCP data packet sent to the node device.
In an optional embodiment, before determining, according to the indication information, the start TCP data packet corresponding to the next protocol frame, the processor 1101 may further perform the following operations:
receiving, by using the network interface 1103, a notification message sent by the node device; and
obtaining, according to the notification message, the indication information in the last TCP data packet corresponding to the protocol frame.
In an optional embodiment, a header of the at least one TCP data packet may include data type information, and the performing, by the processor 1101, data parsing on the next protocol frame from the start TCP data packet may be specifically:
obtaining a data type of a data part of the TCP data packet according to the data type information.
In an optional embodiment, before performing data parsing on the next protocol frame from the start TCP data packet, the processor 1101 may further perform the following operation:
determining that a header field of the next protocol frame is compressed by using a static table.
In an optional embodiment, all TCP data packets corresponding to the next protocol frame belong to a same HTPP 2.0 stream, and after performing data parsing on the next protocol frame from the start TCP data packet, the processor 1101 may further perform the following operation:
when data parsing performed on the next protocol frame fails, suspending data parsing performed on a protocol frame included in the HTTP 2.0 stream.
Specifically, the terminal described in this embodiment of the present invention may be configured to implement some or all procedures in the method embodiments described in the present invention with reference to
Referring to
The protocol frame transmission apparatus 1201 is configured to encapsulate one protocol frame into at least one Transmission Control Protocol TCP data packet, where the last TCP data packet in the at least one TCP data packet may include indication information, and the indication information may be used to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame.
The protocol frame transmission apparatus 1201 is further configured to send the at least one TCP data packet to the protocol frame parsing apparatus 1202.
The protocol frame parsing apparatus 1202 is configured to determine, according to the indication information, a start TCP data packet corresponding to a next protocol frame.
The protocol frame parsing apparatus 1202 is further configured to perform data parsing on the next protocol frame from the start TCP data packet.
The protocol frame parsing apparatus 1202 is further configured to send a TCP data packet obtained after the data parsing to a node device 1204.
In an optional embodiment, when a data part length of the last TCP data packet is 0, the protocol frame parsing apparatus 1202 determines that a next TCP data packet is the start TCP data packet corresponding to the next protocol frame.
Further optionally, a header of the last TCP data packet may include a sending sequence number and an acknowledgement sequence number. The sending sequence number is the same as a sending sequence number of the start TCP data packet corresponding to the next protocol frame, and the acknowledgement sequence number is determined according to received data sent by the node device.
Further optionally, a header of the last TCP data packet may include a sending sequence number and an acknowledgement sequence number. The sending sequence number is the same as a sending sequence number of the start TCP data packet corresponding to the next protocol frame, and the acknowledgement sequence number is the same as an acknowledgement sequence number of a previous data packet of the last TCP data packet.
Further optionally, before encapsulating the protocol frame into the at least one TCP data packet, the protocol frame transmission apparatus 1201 may further perform the following operation:
obtaining the protocol frame sent by a management terminal 1203, where the protocol frame includes terminal identification information, and the terminal identification information is used to instruct to send the at least one TCP data packet corresponding to the protocol frame to the node device corresponding to the terminal identification information.
Further optionally, the encapsulating, by the protocol frame transmission apparatus 1201, one protocol frame into at least one TCP data packet may be specifically:
when a data volume of the last TCP data packet that is corresponding to the protocol frame and that includes data is equal to a preset MSS, adding one TCP data packet after the last TCP data packet that includes data, where a data part length of the added TCP data packet is 0.
In an optional embodiment, when a data volume of the last TCP data packet that is corresponding to the protocol frame and that includes data is less than a preset MSS, the last TCP data packet that includes data includes only data of the protocol frame, and the indication information is the data volume of the last TCP data packet that includes data. When the data volume of the last TCP data packet is less than the preset MSS, the protocol frame parsing apparatus 1202 may determine that a next TCP data packet is the start TCP data packet corresponding to the next protocol frame.
In an optional embodiment, the indication information may be identification information included in a header of the last TCP data packet. When the header of the last TCP data packet includes the identification information, the protocol frame parsing apparatus 1202 may determine that a next TCP data packet is the start TCP data packet corresponding to the next protocol frame.
In an optional embodiment, a data part of the at least one TCP data packet includes only data of the protocol frame.
In an optional embodiment, before sending the at least one TCP data packet to the protocol frame parsing apparatus 1202, the protocol frame transmission apparatus 1201 may further perform the following operation:
receiving, by the protocol frame transmission apparatus 1201, a TCP data packet sent by the protocol frame parsing apparatus 1202.
Further, the encapsulating, by the protocol frame transmission apparatus 1201, one protocol frame into at least one TCP data packet may be specifically:
adding, to a to-be-sent TCP data packet in the at least one TCP data packet, an acknowledgement sequence number of the TCP data packet sent by the node device, where the acknowledgement sequence number is used to indicate that the TCP data packet sent by the node device is correctly received.
After receiving the at least one TCP data packet sent by the protocol frame transmission apparatus 1201, the protocol frame parsing apparatus 1202 may further perform the following operation:
when the received TCP data packet carries the acknowledgement sequence number of the TCP data packet sent to the protocol frame transmission apparatus 1201, determining, according to the acknowledgement sequence number, that the protocol frame transmission apparatus 1201 correctly receives the TCP data packet sent by the protocol frame parsing apparatus 1202.
In an optional embodiment, before encapsulating the protocol frame into the at least one TCP data packet, the protocol frame transmission apparatus 1201 may further perform the following operation:
sending a notification message to the node device 1204, where the notification message is used to indicate that the last TCP data packet in the at least one TCP data packet includes the indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the protocol frame.
Further optionally, the notification message is carried in an HTTP 2.0 setting frame or an HTTP 2.0 header field of the protocol frame.
In an optional embodiment, before determining, according to the indication information, the start TCP data packet corresponding to the next protocol frame, the protocol frame parsing apparatus 1202 may further perform the following operations:
receiving the notification message sent by the protocol frame transmission apparatus 1201; and
obtaining, according to the notification message, the indication information in the last TCP data packet corresponding to the protocol frame.
In an optional embodiment, a header of the at least one TCP data packet includes data type information, and the data type information is used to indicate a data type of the data part of the TCP data packet. The performing, by the protocol frame parsing apparatus 1202, data parsing on the next protocol frame from the start TCP data packet may be specifically:
obtaining the data type of the data part of the TCP data packet according to the data type information.
In an optional embodiment, the protocol frame is a TLS frame or an HTTP frame.
In an optional embodiment, before performing data parsing on the next protocol frame from the start TCP data packet, the protocol frame parsing apparatus 1202 may further perform the following operation:
determining that a header field of the next protocol frame is compressed by using a static table.
In an optional embodiment, all TCP data packets corresponding to the next protocol frame belong to a same HTPP 2.0 stream, and after performing data parsing on the next protocol frame from the start TCP data packet, the protocol frame parsing apparatus 1202 may further perform the following operation:
when data parsing performed on the next protocol frame fails, suspending data parsing performed on a protocol frame included in the HTTP 2.0 stream.
In an optional embodiment, before encapsulating the protocol frame into the at least one TCP data packet, the protocol frame transmission apparatus 1201 may further perform the following operation:
compressing the protocol frame into at least one compressed package, where the at least one compressed package includes only the protocol frame.
In the protocol frame transmission system shown in
Referring to
S1301. Encapsulate object data of one URI into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data.
A terminal may encapsulate the object data of the URI (Uniform Resource Identifier, uniform resource identifier) into the at least one TCP data packet, the last TCP data packet in the at least one TCP data packet includes the indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data. For example, if both a data volume of first object data and a data volume of second object data are 3000 bytes, and a preset MSS agreed on by the terminal and a node device is 1460 bytes, the terminal may encapsulate the first object data into three TCP data packets. A data part length of a first TCP data packet is 1460 bytes, a data part length of a second TCP data packet is 1460 bytes, a data part length of a third TCP data packet is 80 bytes, the third TCP data packet includes indication information, and the indication information is used to indicate that the third TCP data packet is the last TCP data packet corresponding to the first object data. Likewise, the terminal may encapsulate the second object data into three TCP data packets. A data part length of a fourth TCP data packet is 1460 bytes, a data part length of a fifth TCP data packet is 1460 bytes, a data part length of a sixth TCP data packet is 80 bytes, the sixth TCP data packet includes indication information, and the indication information is used to indicate that the sixth TCP data packet is the last TCP data packet corresponding to the second object data.
The object data may be HTTP 1.1 data or HTTP 1.0 data, the object data is used to indicate a resource identified by the URI, and the resource may be a text, an image, a video, audio, or the like. For example, the URI may be www.ottserver.com/picture.JPG, and the resource identified by the URI is an image, that is, the object data is an image.
In an optional embodiment, a data part of the at least one TCP data packet includes only the object data. For example, the terminal encapsulates first object data into a first TCP data packet and a second TCP data packet, a data part of the first TCP data packet includes only the first object data, and a data part of the second TCP data packet includes only the first object data. Likewise, the terminal encapsulates second object data into a third TCP data packet and a fourth TCP data packet, a data part of the third TCP data packet includes only the second object data, and a data part of the fourth TCP data packet includes only the second object data.
In an optional embodiment, a data part length of the last TCP data packet may be 0, to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data. For example, if a data volume of first object data is 2000 bytes, and a preset MSS agreed on by the terminal and the node device is 1460 bytes, the terminal may encapsulate the first object data into a first TCP data packet, a second TCP data packet, and a third TCP data packet. A data part length of the first TCP data packet is 1460 bytes, a data part length of the second TCP data packet is 540 bytes, and a data part length of the third TCP data packet is 0, to indicate that the third TCP data packet is the last TCP data packet corresponding to the first object data.
Further optionally, a header of the last TCP data packet may include a sending sequence number and an acknowledgement sequence number. The sending sequence number is the same as a sending sequence number of a start TCP data packet corresponding to object data of a next URI, and the acknowledgement sequence number is determined according to received data sent by the node device.
Further optionally, a header of the last TCP data packet may include a sending sequence number and an acknowledgement sequence number. The sending sequence number is the same as a sending sequence number of a start TCP data packet corresponding to object data of a next URI, and the acknowledgement sequence number is the same as an acknowledgement sequence number of a previous data packet of the last TCP data packet.
Further optionally, before encapsulating the object data of the URI into the at least one TCP data packet, the terminal may obtain the object data sent by a management terminal. The object data may include terminal identification information, and the terminal identification information is used to instruct to send the at least one TCP data packet corresponding to the object data to the node device corresponding to the terminal identification information.
Further optionally, the terminal may add one TCP data packet after the last TCP data packet that includes data, and a data part length of the added TCP data packet is 0. For example, when a data volume of the last TCP data packet that is corresponding to the object data and that includes data is equal to a preset MSS, the terminal may add one TCP data packet after the last TCP data packet that includes data. A data part length of the added TCP data packet is 0. For another example, when a data volume of the last TCP data packet that is corresponding to the object data and that includes data is less than a preset MSS, the terminal may add one TCP data packet after the last TCP data packet that includes data. A data part length of the added TCP data packet is 0.
In an optional embodiment, when a data volume of the last TCP data packet that is corresponding to the object data and that includes data is less than a preset MSS, the last TCP data packet that includes data includes only the object data, and the indication information is the data volume of the last TCP data packet that includes data. For example, if a data volume of first object data is 2000 bytes, and a preset MSS agreed on by the terminal and the node device is 1460 bytes, the terminal may encapsulate the first object data into a first TCP data packet and a second TCP data packet. A data part length of the first TCP data packet is 1460 bytes, a data part length of the second TCP data packet is 540 bytes, the second TCP data packet includes only the first object data, indication information is a data volume of the second TCP data packet, and the terminal may determine, according to the indication information, that the data volume of the second TCP data packet is less than the preset MSS, and therefore, the second TCP data packet is the last TCP data packet of the first object data.
In an optional embodiment, the indication information may be identification information included in a header of the last TCP data packet. During specific implementation, when a data volume of the last TCP data packet that is corresponding to the object data and that includes data is equal to a preset MSS, the terminal may add the identification information to a header of the last TCP data packet that includes data. For another example, when a data volume of the last TCP data packet that is corresponding to the object data and that includes data is less than a preset MSS, the terminal may add the identification information to a header of the last TCP data packet that includes data. For example, if a data volume of first object data is 2000 bytes, and a preset MSS agreed on by the terminal and the node device is 1460 bytes, the terminal may encapsulate the first object data into a first TCP data packet and a second TCP data packet. A data part length of the first TCP data packet is 1460 bytes, a data part length of the second TCP data packet is 540 bytes, a header of the second TCP data packet includes identification information, and the terminal may determine, according to the identification information, that the second TCP data packet is the last TCP data packet of the first object data.
In an optional embodiment, before encapsulating the object data of the URI into the at least one TCP data packet, the terminal may further send a notification message to the node device. The notification message may be used to indicate that the last TCP data packet in the at least one TCP data packet includes the indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data.
In an optional embodiment, a header of the at least one TCP data packet may include data type information, and the data type information is used to indicate a data type of the data part of the TCP data packet. In an existing data parsing method, blind parsing is performed on object data by using a frame header of the object data, and a data type of the object data cannot be accurately obtained. However, in this embodiment of the present invention, the header of the at least one TCP data packet includes the data type information, and the node device may obtain the data type of the data part of the TCP data packet according to the data type information, to obtain a data type of the object data. Therefore, data parsing precision is improved.
In an optional embodiment, the terminal may compress the object data into at least one compressed package before encapsulating the object data of the URI into the at least one TCP data packet, and the at least one compressed package includes only the object data. During specific implementation, the terminal usually compresses the object data by using a preset compression algorithm, and then transmits the compressed object data to the node device, to increase a transmission rate. To avoid a case in which different object data is compressed into a same compressed package, and consequently, none of the object data can be recognized, and none of the object data can be encapsulated into at least one TCP data packet, in this embodiment of the present invention, object data of one URI is compressed into at least one compressed package, and data in the compressed package is encapsulated into at least one TCP data packet, so that each piece of object data is encapsulated into at least one TCP data packet.
In an optional embodiment, the terminal may encapsulate the object data into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the object data; and encapsulate each TLS frame into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the TLS frame.
A schematic interface diagram that is shown in
In this embodiment of the present invention, it can be ensured that data parts of a TCP1 data packet to the TCP3 data packet include only data of the TLS frame 1, data parts of a TCP4 data packet to the TCP8 data packet include only data of the TLS frame 2, and the TLS frame 1 and the TLS frame 2 include only the object data.
In an optional embodiment, the terminal may encapsulate the object data into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the object data; and encapsulate all TLS frames in the at least one TLS frame into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data.
A schematic interface diagram that is shown in
In this embodiment of the present invention, the data part of the TCP data packet includes only the object data, and the data packet of the TCP data packet may include data of multiple TLS frames. In this embodiment of the present invention, a TCP data packet corresponding to object data of one URI includes only one piece of indication information. Compared with the foregoing encapsulation method, this embodiment of the present invention can improve resource utilization and reduce encapsulation overheads.
In an optional embodiment, when the object data is encapsulated into a TLS frame, the TLS frame may include data type information, and the data type information is used to indicate a data type of the TLS frame. For example, a format of a TLS frame may be shown in
S1302. Send the at least one TCP data packet to a node device.
The terminal may send the at least one TCP data packet to the node device after encapsulating the object data into the at least one TCP data packet.
In an optional embodiment, before sending the at least one TCP data packet to the node device, the terminal may receive a TCP data packet sent by the node device, and add, to a to-be-sent TCP data packet in the at least one TCP data packet, an acknowledgement sequence number of the TCP data packet sent by the node device. The acknowledgement sequence number is used to indicate that the TCP data packet sent by the node device is correctly received. In an existing data transmission method, a terminal may send an ACK data packet to a node device after receiving a TCP data packet sent by the node device. A data part length of the ACK data packet is 0, to indicate that the terminal correctly receives the TCP data packet sent by the node device. Therefore, resource utilization is relatively low. In this embodiment of the present invention, after the TCP data packet sent by the node device is received, the acknowledgement sequence number of the TCP data packet sent by the node device may be added to the to-be-sent TCP data packet in the at least one TCP data packet. The acknowledgement sequence number is used to indicate that the TCP data packet sent by the node device is correctly received. In this embodiment of the present invention, while no ACK data packet is separately sent, it is indicated that the TCP data packet sent by the node device is correctly received, so that resource utilization can be improved.
In the data transmission method shown in
Referring to
S1401. Receive at least one TCP data packet that is sent by a node device and that is obtained by encapsulating object data of one URI, where the last TCP data packet in the at least one TCP data packet includes indication information.
A terminal may receive the at least one TCP data packet that is sent by the node device and that is obtained by encapsulating the object data of the URI, the last TCP data packet in the at least one TCP data packet includes the indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data. For example, the node device may encapsulate the object data of the URI into the at least one TCP data packet, the last TCP data packet in the at least one TCP data packet includes the indication information, and the node device sends the at least one TCP data packet to the terminal, so that the terminal receives the at least one TCP data packet.
In an optional embodiment, the terminal may send a TCP data packet to the node device before receiving the at least one TCP data packet that is sent by the node device and that is obtained by encapsulating the object data of the URI. Further, after the terminal receives the at least one TCP data packet that is sent by the node device and that is obtained by encapsulating the object data of the URI, when the received TCP data packet carries an acknowledgement sequence number of the TCP data packet sent to the node device, the terminal may determine, according to the acknowledgement sequence number, that the node device correctly receives the TCP data packet sent to the node device.
For example, the terminal may send the TCP data packet to the node device before receiving the at least one TCP data packet sent by the node device, and the node device receives the TCP data packet sent by the terminal, and adds, to a to-be-sent TCP data packet in the at least one TCP data packet, the acknowledgement sequence number of the TCP data packet sent by the terminal. In this case, after receiving the at least one TCP data packet sent by the node device, the terminal may determine, according to the acknowledgement sequence number, that the node device correctly receives the TCP data packet sent by the terminal.
S1402. Determine, according to the indication information, a start TCP data packet corresponding to object data of a next URI.
The terminal may determine, according to the indication information, the start TCP data packet corresponding to the object data of the next URI. The start TCP data packet corresponding to the object data of the next URI is a next TCP data packet of the last TCP data packet corresponding to the object data.
In an optional embodiment, when a data part length of the last TCP data packet is 0, the terminal may determine that a next TCP data packet is the start TCP data packet corresponding to the object data of the next URI. For example, if the node device adds one TCP data packet after the last TCP data packet that is corresponding to the object data and that includes data, and a data part length of the added TCP data packet is 0, the terminal may determine that a next TCP data packet of the added TCP data packet is the start TCP data packet corresponding to the object data of the next URI.
In an optional embodiment, when a data volume of the last TCP data packet is less than a preset MSS, the terminal may determine that a next TCP data packet is the start TCP data packet corresponding to the object data of the next URI. For example, the terminal may determine whether a data volume of each TCP data packet is less than the preset MSS, and when a data volume of a TCP data packet is less than the preset MSS, the terminal may determine that a next TCP data packet of the TCP data packet is the start TCP data packet corresponding to the object data of the next URI. Further optionally, when a data volume of a TCP data packet is equal to the preset MSS, the terminal may determine whether a data part length of a next TCP data packet is 0, and when the data part length of the next TCP data packet is 0, the terminal may determine that a next TCP data packet of the TCP data packet whose data part length is 0 is the start TCP data packet corresponding to the object data of the next URI. Further optionally, when a data volume of a TCP data packet is equal to the preset MSS, the terminal may determine whether a header of each TCP data packet includes identification information, and when a header of a TCP data packet includes the identification information, the terminal may determine that a next TCP data packet of the TCP data packet is the start TCP data packet corresponding to the object data of the next URI.
In an optional embodiment, when a header of the last TCP data packet includes identification information, the terminal may determine that a next TCP data packet is the start TCP data packet corresponding to the object data of the next URI. For example, the terminal may determine whether a header of each TCP data packet includes identification information, and when a header of a TCP data packet includes the identification information, the terminal may determine that a next TCP data packet of the TCP data packet is the start TCP data packet corresponding to the object data of the next URI.
In an optional embodiment, before determining, according to the indication information, the start TCP data packet corresponding to the object data of the next URI, the terminal may receive a notification message sent by the node device, and obtain, according to the notification message, the indication information in the last TCP data packet corresponding to the object data. For example, the terminal receives the notification message sent by the node device, and the notification message is used to instruct the terminal to recognize a boundary of the object data of the next URI, so that data parsing can be performed on the object data of the next URI. In this case, the terminal may obtain, according to the notification message, the indication information in the last TCP data packet corresponding to the object data, determine, according to the indication information, the start TCP data packet corresponding to the object data of the next URI, and perform data parsing on the object data of the next URI from the start TCP data packet.
S1403. Perform data parsing on the object data of the next URI from the start TCP data packet.
After determining the start TCP data packet corresponding to the object data of the next URI, the terminal may perform data parsing on the object data of the next URI from the start TCP data packet. For example, if the terminal determines that the start TCP data packet corresponding to the object data of the next URI is a third TCP data packet, the terminal may parse a frame header and a payload of the object data of the next URI from the third TCP data packet, and recognize a data type of the object data of the next URI according to data in the payload. The data type of the object data may include a text, an image, a video, audio, or the like.
In an optional embodiment, a header of the at least one TCP data packet may include data type information, and the terminal may obtain a data type of a data part of the TCP data packet according to the data type information, to obtain a data type of the object data. In the prior art, a terminal performs blind parsing on object data by using a frame header of the object data, and cannot accurately obtain a data type of the object data. By contrast, in this embodiment of the present invention, the data type of the data part of the TCP data packet is obtained according to the data type information, so that the data type of the object data is obtained. Therefore, data parsing precision can be improved.
In the data parsing method shown in
Referring to
The encapsulation unit 1501 is configured to encapsulate object data of one URI into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data, and the object data is used to indicate a resource identified by the URI.
The sending unit 1502 is configured to send the at least one TCP data packet to a node device.
In an optional embodiment, a data part length of the last TCP data packet is 0, to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data.
In an optional embodiment, a header of the last TCP data packet includes a sending sequence number and an acknowledgement sequence number. The sending sequence number is the same as a sending sequence number of a start TCP data packet corresponding to object data of a next URI, and the acknowledgement sequence number is determined according to received data sent by the node device.
In an optional embodiment, a header of the last TCP data packet includes a sending sequence number and an acknowledgement sequence number. The sending sequence number is the same as a sending sequence number of a start TCP data packet corresponding to object data of a next URI, and the acknowledgement sequence number is the same as an acknowledgement sequence number of a previous data packet of the last TCP data packet.
Further optionally, the apparatus further includes:
an obtaining unit 1503, configured to: before the encapsulation unit 1501 encapsulates the object data into the at least one TCP data packet, obtain the object data sent by a management terminal, where the object data includes terminal identification information, and the terminal identification information is used to instruct to send the at least one TCP data packet corresponding to the object data to the node device corresponding to the terminal identification information.
In an optional embodiment, the encapsulation unit 1501 is configured to add one TCP data packet after the last TCP data packet that is corresponding to the object data and that includes data, where a data part length of the added TCP data packet is 0.
In an optional embodiment, when a data volume of the last TCP data packet that is corresponding to the object data and that includes data is less than a preset MSS, the last TCP data packet that includes data includes only the object data, and the indication information is the data volume of the last TCP data packet that includes data.
In an optional embodiment, the indication information is identification information included in a header of the last TCP data packet.
In an optional embodiment, a data part of the at least one TCP data packet includes only the object data.
In an optional embodiment, the apparatus further includes:
a receiving unit 1504, configured to receive a TCP data packet sent by the node device.
The encapsulation unit 1501 is configured to add, to a to-be-sent TCP data packet in the at least one TCP data packet, an acknowledgement sequence number of the TCP data packet sent by the node device, where the acknowledgement sequence number is used to indicate that the TCP data packet sent by the node device is correctly received.
In an optional embodiment, the sending unit 1502 is further configured to send a notification message to the node device before the encapsulation unit 1501 encapsulates the object data into the at least one TCP data packet, where the notification message is used to indicate that the last TCP data packet in the at least one TCP data packet includes the indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data.
In an optional embodiment, a header of the at least one TCP data packet includes data type information, and the data type information is used to indicate a data type of the data part of the TCP data packet.
In an optional embodiment, the object data is HTTP 1.1 data or HTTP 1.0 data.
In an optional embodiment, the encapsulation unit 1501 is configured to: encapsulate the object data into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the object data; and encapsulate all TLS frames in the at least one TLS frame into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data.
In an optional embodiment, the encapsulation unit 1501 is configured to: encapsulate the object data into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the object data; and encapsulate each TLS frame into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the TLS frame.
Further optionally, each TLS frame includes data type information, and the data type information is used to indicate a data type of the TLS frame.
In an optional embodiment, the apparatus further includes:
a compression unit 1505, configured to compress the object data into at least one compressed package before the encapsulation unit 1501 encapsulates the object data into the at least one TCP data packet, where the at least one compressed package includes only the object data.
In the data transmission apparatus shown in
Referring to
As shown in
encapsulating object data of one URI into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data, and the object data is used to indicate a resource identified by the URI; and
sending the at least one TCP data packet to a node device by using the network interface 1603.
In an optional embodiment, a data part length of the last TCP data packet is 0, to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data.
In an optional embodiment, a header of the last TCP data packet includes a sending sequence number and an acknowledgement sequence number. The sending sequence number is the same as a sending sequence number of a start TCP data packet corresponding to object data of a next URI, and the acknowledgement sequence number is determined according to received data sent by the node device.
In an optional embodiment, a header of the last TCP data packet includes a sending sequence number and an acknowledgement sequence number. The sending sequence number is the same as a sending sequence number of a start TCP data packet corresponding to object data of a next URI, and the acknowledgement sequence number is the same as an acknowledgement sequence number of a previous data packet of the last TCP data packet.
Further optionally, before encapsulating the object data of the URI into the at least one TCP data packet, the processor 1601 may further perform the following operation:
obtaining, by using the network interface 1603, the object data sent by a management terminal, where the object data includes terminal identification information, and the terminal identification information is used to instruct to send the at least one TCP data packet corresponding to the object data to the node device corresponding to the terminal identification information.
In an optional embodiment, the encapsulating, by the processor 1601, object data of one URI into at least one TCP data packet may be specifically:
adding one TCP data packet after the last TCP data packet that is corresponding to the object data and that includes data, where a data part length of the added TCP data packet is 0.
In an optional embodiment, the encapsulating, by the processor 1601, object data of one URI into at least one TCP data packet may be specifically:
when a data volume of the last TCP data packet that is corresponding to the object data and that includes data is less than a preset MSS, the last TCP data packet that includes data includes only the object data, and the indication information is the data volume of the last TCP data packet that includes data.
In an optional embodiment, the indication information is identification information included in a header of the last TCP data packet.
In an optional embodiment, a data part of the at least one TCP data packet includes only the object data.
In an optional embodiment, before sending the at least one TCP data packet to the node device by using the network interface 1603, the processor 1601 may further perform the following operation:
receiving, by using the network interface 1603, a TCP data packet sent by the node device.
Further, the encapsulating, by the processor 1601, object data of one URI into at least one TCP data packet may be specifically:
adding, to a to-be-sent TCP data packet in the at least one TCP data packet, an acknowledgement sequence number of the TCP data packet sent by the node device, where the acknowledgement sequence number is used to indicate that the TCP data packet sent by the node device is correctly received.
In an optional embodiment, before encapsulating the object data of the URI into the at least one TCP data packet, the processor 1601 may further perform the following operation:
sending a notification message to the node device by using the network interface 1603, where the notification message is used to indicate that the last TCP data packet in the at least one TCP data packet includes the indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data.
In an optional embodiment, a header of the at least one TCP data packet includes data type information, and the data type information is used to indicate a data type of the data part of the TCP data packet.
In an optional embodiment, the object data is HTTP 1.1 data or HTTP 1.0 data.
In an optional embodiment, the encapsulating, by the processor 1601, object data of one URI into at least one TCP data packet may be specifically:
encapsulating the object data into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the object data; and
encapsulating all TLS frames in the at least one TLS frame into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data.
In an optional embodiment, the encapsulating, by the processor 1601, object data of one URI into at least one TCP data packet may be specifically:
encapsulating the object data into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the object data; and
encapsulating each TLS frame into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet includes indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the TLS frame.
In an optional embodiment, each TLS frame includes data type information, and the data type information is used to indicate a data type of the TLS frame.
In an optional embodiment, before encapsulating the object data of the URI into the at least one TCP data packet, the processor 1601 may further perform the following operation:
compressing the object data into at least one compressed package, where the at least one compressed package includes only the object data.
Specifically, the terminal described in this embodiment of the present invention may be configured to implement some or all procedures in the method embodiment described in the present invention with reference to
Referring to
The receiving unit 1701 is configured to receive at least one TCP data packet that is sent by a node device and that is obtained by encapsulating object data of one URI, where the last TCP data packet in the at least one TCP data packet includes indication information, the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data, and the object data is used to indicate a resource identified by the URI.
The determining unit 1702 is configured to determine, according to the indication information, a start TCP data packet corresponding to object data of a next URI.
The parsing unit 1703 is configured to perform data parsing on the object data of the next URI from the start TCP data packet.
In an optional embodiment, the determining unit 1702 is configured to: when a data part length of the last TCP data packet is 0, determine that a next TCP data packet is the start TCP data packet corresponding to the object data of the next URI.
In an optional embodiment, the determining unit 1702 is configured to: when a data volume of the last TCP data packet is less than a preset MSS, determine that a next TCP data packet is the start TCP data packet corresponding to the object data of the next URI.
In an optional embodiment, the determining unit 1702 is configured to: when a header of the last TCP data packet includes identification information, determine that a next TCP data packet is the start TCP data packet corresponding to the object data of the next URI.
In an optional embodiment, the apparatus further includes:
a sending unit 1704, configured to send a TCP data packet to the node device before the receiving unit 1701 receives the at least one TCP data packet sent by the node device.
The determining unit 1702 is further configured to: when the received TCP data packet carries an acknowledgement sequence number of the TCP data packet sent to the node device, determine, according to the acknowledgement sequence number, that the node device correctly receives the TCP data packet sent to the node device.
In an optional embodiment, the receiving unit 1701 is further configured to: before the determining unit 1702 determines, according to the indication information, the start TCP data packet corresponding to the object data of the next URI, receive a notification message sent by the node device.
The data parsing apparatus in this embodiment of the present invention may further include:
an obtaining unit 1705, configured to obtain, according to the notification message, the indication information in the last TCP data packet corresponding to the object data.
In an optional embodiment, a header of the at least one TCP data packet includes data type information, and the parsing unit 1703 is configured to obtain a data type of a data part of the TCP data packet according to the data type information.
In the data parsing apparatus shown in
Referring to
As shown in
receiving, by using the network interface 1803, at least one TCP data packet that is sent by a node device and that is obtained by encapsulating object data of one URI, where the last TCP data packet in the at least one TCP data packet includes indication information, the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data, and the object data is used to indicate a resource identified by the URI;
determining, according to the indication information, a start TCP data packet corresponding to object data of a next URI; and
performing data parsing on the object data of the next URI from the start TCP data packet.
In an optional embodiment, the determining, by the processor 1801 according to the indication information, a start TCP data packet corresponding to object data of a next URI may be specifically:
when a data part length of the last TCP data packet is 0, determining that a next TCP data packet is the start TCP data packet corresponding to the object data of the next URI.
In an optional embodiment, the determining, by the processor 1801 according to the indication information, a start TCP data packet corresponding to object data of a next URI may be specifically:
when a data volume of the last TCP data packet is less than a preset MSS, determining that a next TCP data packet is the start TCP data packet corresponding to the object data of the next URI.
In an optional embodiment, the determining, by the processor 1801 according to the indication information, a start TCP data packet corresponding to object data of a next URI may be specifically:
when a header of the last TCP data packet includes identification information, determining that a next TCP data packet is the start TCP data packet corresponding to the object data of the next URI.
In an optional embodiment, before receiving, by using the network interface 1803, the at least one TCP data packet that is sent by the node device and that is obtained by encapsulating the object data of the URI, the processor 1801 may further perform the following operation:
sending a TCP data packet to the node device by using the network interface 1803.
After receiving the at least one TCP data packet that is sent by the node device and that is obtained by encapsulating the object data of the URI, the processor 1801 may further perform the following operation:
when the received TCP data packet carries an acknowledgement sequence number of the TCP data packet sent to the node device, determining, according to the acknowledgement sequence number, that the node device correctly receives the TCP data packet sent to the node device.
In an optional embodiment, before determining, according to the indication information, the start TCP data packet corresponding to the object data of the next URI, the processor 1801 may further perform the following operations:
receiving, by using the network interface 1803, a notification message sent by the node device; and
obtaining, according to the notification message, the indication information in the last TCP data packet corresponding to the object data.
In an optional embodiment, a header of the at least one TCP data packet includes data type information, and the performing, by the processor 1801, data parsing on the object data of the next URI from the start TCP data packet may be specifically:
obtaining a data type of a data part of the TCP data packet according to the data type information.
Specifically, the terminal described in this embodiment of the present invention may be configured to implement some or all procedures in the method embodiment described in the present invention with reference to
Referring to
The data transmission apparatus 1901 is configured to encapsulate object data of one URI into at least one TCP data packet, where the last TCP data packet in the at least one TCP data packet may include indication information, and the indication information may be used to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data.
The data transmission apparatus 1901 is further configured to send the at least one TCP data packet to the data parsing apparatus 1902.
The data parsing apparatus 1902 is configured to determine, according to the indication information, a start TCP data packet corresponding to object data of a next URI.
The data parsing apparatus 1902 is further configured to perform data parsing on the object data of the next URI from the start TCP data packet.
The data parsing apparatus 1902 is further configured to send a TCP data packet obtained after the data parsing to a node device 1904.
In an optional embodiment, when a data part length of the last TCP data packet is 0, the data parsing apparatus 1902 determines that a next TCP data packet is the start TCP data packet corresponding to the object data of the next URI.
Further optionally, a header of the last TCP data packet may include a sending sequence number and an acknowledgement sequence number. The sending sequence number is the same as a sending sequence number of the start TCP data packet corresponding to the object data of the next URI, and the acknowledgement sequence number is determined according to received data sent by the node device.
Further optionally, a header of the last TCP data packet may include a sending sequence number and an acknowledgement sequence number. The sending sequence number is the same as a sending sequence number of the start TCP data packet corresponding to the object data of the next URI, and the acknowledgement sequence number is the same as an acknowledgement sequence number of a previous data packet of the last TCP data packet.
Further optionally, before encapsulating the object data of the URI into the at least one TCP data packet, the data transmission apparatus 1901 may further perform the following operation:
obtaining the object data sent by a management terminal 1903, where the object data includes terminal identification information, and the terminal identification information is used to instruct to send the at least one TCP data packet corresponding to the object data to the node device corresponding to the terminal identification information.
Further optionally, the encapsulating, by the data transmission apparatus 1901, object data of one URI into at least one TCP data packet may be specifically:
when a data volume of the last TCP data packet that is corresponding to the object data and that includes data is equal to a preset MSS, adding one TCP data packet after the last TCP data packet that includes data, where a data part length of the added TCP data packet is 0.
In an optional embodiment, when a data volume of the last TCP data packet that is corresponding to the object data and that includes data is less than a preset MSS, the last TCP data packet that includes data includes only the object data, and the indication information is the data volume of the last TCP data packet that includes data. When the data volume of the last TCP data packet is less than the preset MSS, the data parsing apparatus 1902 may determine that a next TCP data packet is the start TCP data packet corresponding to the object data of the next URI.
In an optional embodiment, the indication information may be identification information included in a header of the last TCP data packet. When the header of the last TCP data packet includes the identification information, the data parsing apparatus 1902 may determine that a next TCP data packet is the start TCP data packet corresponding to the object data of the next URI.
In an optional embodiment, a data part of the at least one TCP data packet includes only the object data of the URI.
In an optional embodiment, before sending the at least one TCP data packet to the data parsing apparatus 1902, the data transmission apparatus 1901 may further perform the following operation:
receiving, by the data transmission apparatus 1901, a TCP data packet sent by the data parsing apparatus 1902.
Further, the encapsulating, by the data transmission apparatus 1901, object data of one URI into at least one TCP data packet may be specifically:
adding, to a to-be-sent TCP data packet in the at least one TCP data packet, an acknowledgement sequence number of the TCP data packet sent by the node device, where the acknowledgement sequence number is used to indicate that the TCP data packet sent by the node device is correctly received.
After receiving the at least one TCP data packet sent by the data transmission apparatus 1901, the data parsing apparatus 1902 may further perform the following operation:
when the received TCP data packet carries the acknowledgement sequence number of the TCP data packet sent to the data transmission apparatus 1901, determining, according to the acknowledgement sequence number, that the data transmission apparatus 1901 correctly receives the TCP data packet sent by the data parsing apparatus 1902.
In an optional embodiment, before encapsulating the object data of the URI into the at least one TCP data packet, the data transmission apparatus 1901 may further perform the following operation:
sending a notification message to the node device 1904, where the notification message is used to indicate that the last TCP data packet in the at least one TCP data packet includes the indication information, and the indication information is used to indicate that the last TCP data packet is the last TCP data packet corresponding to the object data.
In an optional embodiment, before determining, according to the indication information, the start TCP data packet corresponding to the object data of the next URI, the data parsing apparatus 1902 may further perform the following operations:
receiving the notification message sent by the data transmission apparatus 1901; and
obtaining, according to the notification message, the indication information in the last TCP data packet corresponding to the object data.
In an optional embodiment, a header of the at least one TCP data packet includes data type information, and the data type information is used to indicate a data type of the data part of the TCP data packet. The performing, by the data parsing apparatus 1902, data parsing on the object data of the next URI from the start TCP data packet may be specifically:
obtaining the data type of the data part of the TCP data packet according to the data type information.
In an optional embodiment, before encapsulating the object data into the at least one TCP data packet, the data transmission apparatus 1901 may further perform the following operation:
compressing the object data into at least one compressed package, where the at least one compressed package includes only the object data.
In the data transmission system shown in
Referring to
S2001. Encapsulate one application layer data unit into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the application layer data unit.
A terminal may encapsulate the application layer data unit into the at least one TLS frame. The last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the application layer data unit. The application layer data unit may include an HTTP frame or object data of a URI. For example, in
S2002. Determine a target TLS frame from the at least one TLS frame.
The terminal may determine the target TLS frame from the at least one TLS frame. The target TLS frame is used to carry service information, and the service information is used to indicate description information such as data type information or policy information in a transmission process of the application layer data unit.
In an optional embodiment, the terminal may determine the first TLS frame, the last TLS frame, or all TLS frames in the at least one TLS frame as the target TLS frame. For example, after encapsulating the application layer data unit into the at least one TLS frame, the terminal may determine all TLS frames in the at least one TLS frame as the target TLS frame, or determine the first TLS frame in the at least one TLS frame as the target TLS frame, or determine the last TLS frame in the at least one TLS frame as the target TLS frame.
During specific implementation, after encapsulating the application layer data unit into the at least one TLS frame, the terminal determines all the TLS frames in the at least one TLS frame as the target TLS frame, adds service information of the application layer data unit to the target TLS frame, encapsulates the target TLS frame including the service information into at least one TCP data packet, and sends the at least one TCP data packet to a node device, so that the node device performs data parsing on the target TLS frame according to the service information in the target TLS frame, to obtain a data type of the target TLS frame and a policy to be performed on the target TLS frame. In this embodiment of the present invention, the service information of the application layer data unit is added to all the TLS frames obtained by the application layer data unit by means of encapsulation, so that data parsing reliability can be improved.
During specific implementation, after encapsulating the application layer data unit into the at least one TLS frame, the terminal determines the first TLS frame in the at least one TLS frame as the target TLS frame, adds service information of the application layer data unit to the target TLS frame, encapsulates the target TLS frame including the service information and another TLS frame in the at least one TLS frame into at least one TCP data packet, and sends the at least one TCP data packet to a node device, so that the node device performs data parsing on the target TLS frame according to the service information in the target TLS frame, to obtain a data type of the target TLS frame and a policy to be performed on the target TLS frame, determine the data type of the target TLS frame as data types of all the TLS frames in the at least one TLS frame, and determine the policy to be performed on the target TLS frame as policies to be performed on all the TLS frames in the at least one TLS frame. In this embodiment of the present invention, the service information of the application layer data unit is added to the first TLS frame obtained by the application layer data unit by means of encapsulation, so that overheads can be reduced.
During specific implementation, after encapsulating the application layer data unit into the at least one TLS frame, the terminal determines the last TLS frame in the at least one TLS frame as the target TLS frame, adds service information of the application layer data unit to the target TLS frame, encapsulates the target TLS frame including the service information and another TLS frame in the at least one TLS frame into at least one TCP data packet, and sends the at least one TCP data packet to a node device, so that the node device performs data parsing on the target TLS frame according to the service information in the target TLS frame, to obtain a data type of the target TLS frame and a policy to be performed on the target TLS frame, determine the data type of the target TLS frame as data types of all the TLS frames in the at least one TLS frame, and determine the policy to be performed on the target TLS frame as policies to be performed on all the TLS frames in the at least one TLS frame. In this embodiment of the present invention, the service information of the application layer data unit is added to the last TLS frame obtained by the application layer data unit by means of encapsulation, so that overheads can be reduced.
In an optional embodiment, the terminal may determine the first TLS frame and the last TLS frame in the at least one TLS frame as the target TLS frame. For example, after encapsulating the application layer data unit into the at least one TLS frame, the terminal may determine the first TLS frame in the at least one TLS frame and the last TLS frame in the at least one TLS frame as the target TLS frame.
During specific implementation, after encapsulating the application layer data unit into the at least one TLS frame, the terminal determines the first TLS frame and the last TLS frame in the at least one TLS frame as the target TLS frame, adds service information of the application layer data unit to the target TLS frame, encapsulates the target TLS frame including the service information and another TLS frame in the at least one TLS frame into at least one TCP data packet, and sends the at least one TCP data packet to a node device, so that the node device performs data parsing on the target TLS frame according to the service information in the target TLS frame, to obtain a data type of the target TLS frame and a policy to be performed on the target TLS frame, determine the data type of the target TLS frame as data types of all TLS frames in the at least one TLS frame, and determine the policy to be performed on the target TLS frame as policies to be performed on all the TLS frames in the at least one TLS frame. In this embodiment of the present invention, the service information of the application layer data unit is added to the first TLS frame and the last TLS frame obtained by the application layer data unit by means of encapsulation, so that overheads can be reduced.
In an optional embodiment, after encapsulating the application layer data unit into the at least one TLS frame, the terminal may add one target TLS frame before each TLS frame, or add one target TLS frame after each TLS frame, or add one target TLS frame before the first TLS frame in the at least one TLS frame, or add one target TLS frame after the last TLS frame in the at least one TLS frame, or the like. This is not specifically limited in this embodiment of the present invention. The terminal adds service information of the application layer data unit to the target TLS frame, encapsulates the target TLS frame including the service information and another TLS frame in the at least one TLS frame into at least one TCP data packet, and sends the at least one TCP data packet to a node device, so that the node device performs data parsing on the target TLS frame according to the service information in the target TLS frame, to obtain a data type of the target TLS frame and a policy to be performed on the target TLS frame, determine the data type of the target TLS frame as data types of all TLS frames in the at least one TLS frame, and determine the policy to be performed on the target TLS frame as policies to be performed on all TLS frames in the at least one TLS frame.
S2003. Add service information of the application layer data unit to the target TLS frame.
After determining the target TLS frame, the terminal may add the service information of the application layer data unit to the target TLS frame. The service information of the application layer data unit may include data type information, policy information, or the like. It should be noted that the service information in this embodiment of the present invention includes but is not limited to the data type information or the policy information, and may further include other description information in the transmission process of the application layer data unit, such as identification information of the target TLS frame. This is not specifically limited in this embodiment of the present invention. The service information may be obtained by means of negotiation between the terminal and the node device. During specific implementation, the terminal may obtain the service information of the application layer data unit by using an application layer, and after determining the target TLS frame, the terminal adds the service information of the application layer data unit to the target TLS frame.
In an optional embodiment, the service information may include the data type information, and the data type information is used to indicate the data type of the target TLS frame.
In an optional embodiment, the service information may include the policy information, and the policy information is used to indicate the policy to be performed on the target TLS frame. The policy to be performed includes a QoS (Quality of Service, quality of service) policy or a charging policy.
Further optionally, the service information may be carried in a TLS header field of the target TLS frame. For example, a format of a conventional TLS header field may be: ContentType::=ENUMERATED{change_cipher_spec(20), alert(21), handshake(22), application_data(23), (255)}, and a format of a TLS header field including the service information may be ContentType::=ENUMERATED{change_cipher_spec(20), alert(21), handshake(22), application_data(23), Text/HTML(24), Text/CSS(25), Text/JS(26), Image/JPEG(27), Application/Video(28), Application/Audio(29), Text/HTML/policy(30), Text/CSS/policy(31), Text/JS/policy(31), Image/JPEG/policy(32), Application/Video/policy(33), Application/Audio/policy(34), . . . , (255)}. Text/HTML(24), Text/CSS(25), Text/JS(26), Image/JPEG(27), Application/Video(28), and Application/Audio(29) are data type information. Text/HTML/policy(30), Text/CSS/policy(31), Text/JS/policy(31), Image/JPEG/policy(32), Application/Video/policy(33), and Application/Audio/policy(34) are policy information.
In an optional embodiment, the target TLS frame is used to indicate service information of a designated TLS frame in the at least one TLS frame. The designated TLS frame includes all TLS frames after the target TLS frame in the at least one TLS frame, or all TLS frames before the target TLS frame in the at least one TLS frame, or a previous TLS frame of the target TLS frame in the at least one TLS frame, or a next TLS frame of the target TLS frame in the at least one TLS frame.
For example, if the terminal adds one target TLS frame before each TLS frame after encapsulating the application layer data unit into the at least one TLS frame, the target TLS frame is used to indicate service information of the next TLS frame of the target TLS frame in the at least one TLS frame. For another example, if the terminal adds one target TLS frame after each TLS frame after encapsulating the application layer data unit into the at least one TLS frame, the target TLS frame is used to indicate service information of the previous TLS frame of the target TLS frame in the at least one TLS frame. For another example, if the terminal adds one target TLS frame before the first TLS frame in the at least one TLS frame, the target TLS frame is used to indicate service information of all the TLS frames after the target TLS frame in the at least one TLS frame. For another example, if the terminal adds one target TLS frame before the last TLS frame in the at least one TLS frame, the target TLS frame is used to indicate service information of all the TLS frames before the target TLS frame in the at least one TLS frame.
Further optionally, the service information may include the data type information, and the data type information is used to indicate a data type of the designated TLS frame.
Further optionally, the service information may include the policy information, and the policy information is used to indicate a policy to be performed on the designated TLS frame. The policy to be performed includes a QoS policy or a charging policy.
Further optionally, the target TLS frame may include extended identifier information. The extended identifier information is used to indicate that the target TLS frame is a protocol frame indicating the service information of the designated TLS frame in the at least one TLS frame. During specific implementation, the terminal may add the extended identifier information to a TLS header field of the target TLS frame. For example, the terminal sets a format of the TLS header field of the target TLS frame as: ContentType::=ENUMERATED{change_cipher_spec(20), alert(21), handshake(22), application_data(23), Extension data(24), (255)}. Extension data(24) is the extended identifier information.
Further optionally, the service information may be carried in a data part of the target TLS frame. For example, in
S2004. Encapsulate the target TLS frame including the service information and another TLS frame in the at least one TLS frame into at least one TCP data packet.
After adding the service information of the application layer data unit to the target TLS frame, the terminal may encapsulate the target TLS frame including the service information and the another TLS frame in the at least one TLS frame into the at least one TCP data packet. For example, in
S2005. Send the at least one TCP data packet to a node device.
In the data transmission method shown in
Referring to
S2101. Receive at least one TCP data packet that is sent by a node device and that is obtained by encapsulating a target TLS frame including service information and another TLS frame in at least one TLS frame, where the at least one TLS frame is obtained by the node device by encapsulating one application layer data unit.
A terminal may receive the at least one TCP data packet that is sent by the node device and that is obtained by encapsulating the target TLS frame including the service information and the another TLS frame in the at least one TLS frame, and the at least one TLS frame is obtained by the node device by encapsulating one application layer data unit.
In an optional embodiment, the target TLS frame is used to indicate service information of a designated TLS frame in the at least one TLS frame. The designated TLS frame may include all TLS frames after the target TLS frame in the at least one TLS frame, or all TLS frames before the target TLS frame in the at least one TLS frame, or a previous TLS frame of the target TLS frame in the at least one TLS frame, or a next TLS frame of the target TLS frame in the at least one TLS frame.
For example, if the node device adds one target TLS frame before each TLS frame after encapsulating the application layer data unit into the at least one TLS frame, the terminal may determine that the target TLS frame is used to indicate service information of the next TLS frame of the target TLS frame in the at least one TLS frame. For example, if the node device adds one target TLS frame after each TLS frame after encapsulating the application layer data unit into the at least one TLS frame, the terminal may determine that the target TLS frame is used to indicate service information of the previous TLS frame of the target TLS frame in the at least one TLS frame. For another example, if the node device adds one target TLS frame before the first TLS frame in the at least one TLS frame, the terminal may determine that the target TLS frame is used to indicate service information of all the TLS frames after the target TLS frame in the at least one TLS frame. For another example, if the node device adds one target TLS frame after the last TLS frame in the at least one TLS frame, the terminal may determine that the target TLS frame is used to indicate service information of all the TLS frames before the target TLS frame in the at least one TLS frame.
S2102. Obtain the service information in the target TLS frame.
After receiving the at least one TCP data packet, the terminal may obtain the service information in the target TLS frame.
In an optional embodiment, before obtaining the service information in the target TLS frame, the terminal may determine the first TLS frame, the last TLS frame, or all TLS frames in the at least one TLS frame as the target TLS frame. During specific implementation, the terminal may negotiate with the node device in advance, to determine the first TLS frame, the last TLS frame, or all the TLS frames in the at least one TLS frame as the target TLS frame.
In an optional embodiment, before obtaining the service information in the target TLS frame, the terminal may determine the first TLS frame and the last TLS frame in the at least one TLS frame as the target TLS frame.
Further optionally, the terminal may obtain the service information from a TLS header field of the target TLS frame.
In an optional embodiment, before obtaining the service information in the target TLS frame, the terminal may determine that the target TLS frame includes extended identifier information. The extended identifier information is used to indicate that the target TLS frame is a protocol frame indicating the service information of the designated TLS frame in the at least one TLS frame, so that the service information is obtained from a data part of the target TLS frame.
S2103. Perform data parsing on the application layer data unit according to the service information.
The terminal may perform data parsing on the application layer data unit according to the service information carried in the target TLS frame.
In an optional embodiment, the service information may include data type information, and the terminal may obtain a data type of the target TLS frame according to the data type information, to determine the data type of the target TLS frame as a data type of the application layer data unit.
In an optional embodiment, the service information may include policy information, and the terminal may obtain, according to the policy information, a policy to be performed on the target TLS frame, to determine the policy to be performed on the target TLS frame as a policy to be performed on the application layer data unit.
In an optional embodiment, the service information may include data type information, and the terminal may obtain a data type of the designated TLS frame in the at least one TLS frame according to the data type information, to determine the data type of the designated TLS frame as a data type of the application layer data unit.
In an optional embodiment, the service information may include policy information, and the terminal may obtain, according to the policy information, a policy to be performed on the designated TLS frame in the at least one TLS frame, to determine the policy to be performed on the designated TLS frame as a policy to be performed on the application layer data unit.
In an optional embodiment, the terminal may delete the target TLS frame after determining the policy to be performed on the designated TLS frame as the policy to be performed on the application layer data unit. For example, if the target TLS frame is used to indicate the service information of the designated TLS frame in the at least one TLS frame, the terminal may delete the target TLS frame after determining the policy to be performed on the designated TLS frame as the policy to be performed on the application layer data unit.
In the data parsing method shown in
Referring to
The encapsulation unit 2201 is configured to encapsulate one application layer data unit into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the application layer data unit, and the application layer data unit is an HTTP frame or object data of a URI.
The determining unit 2202 is configured to determine a target TLS frame from the at least one TLS frame.
The adding unit 2203 is configured to add service information of the application layer data unit to the target TLS frame.
The encapsulation unit 2201 is further configured to encapsulate the target TLS frame including the service information and another TLS frame in the at least one TLS frame into at least one TCP data packet.
The sending unit 2204 is configured to send the at least one TCP data packet obtained after the encapsulation to a node device.
In an optional embodiment, the determining unit 2202 is configured to determine the first TLS frame, the last TLS frame, or all TLS frames in the at least one TLS frame as the target TLS frame.
In an optional embodiment, the determining unit 2202 is configured to determine the first TLS frame and the last TLS frame in the at least one TLS frame as the target TLS frame.
Further optionally, the service information includes data type information, and the data type information is used to indicate a data type of the target TLS frame.
Further optionally, the service information includes policy information, and the policy information is used to indicate a policy to be performed on the target TLS frame. The policy to be performed includes a QoS policy or a charging policy.
Further optionally, the service information is carried in a TLS header field of the target TLS frame.
In an optional embodiment, the target TLS frame is used to indicate service information of a designated TLS frame in the at least one TLS frame. The designated TLS frame includes all TLS frames after the target TLS frame in the at least one TLS frame.
Alternatively, the designated TLS frame includes all TLS frames before the target TLS frame in the at least one TLS frame.
Alternatively, the designated TLS frame includes a previous TLS frame of the target TLS frame in the at least one TLS frame.
Alternatively, the designated TLS frame includes a next TLS frame of the target TLS frame in the at least one TLS frame.
Further optionally, the service information includes data type information, and the data type information is used to indicate a data type of the designated TLS frame.
Further optionally, the service information includes policy information, and the policy information is used to indicate a policy to be performed on the designated TLS frame. The policy to be performed includes a QoS policy or a charging policy.
Further optionally, the target TLS frame includes extended identifier information. The extended identifier information is used to indicate that the target TLS frame is a protocol frame indicating the service information of the designated TLS frame in the at least one TLS frame.
Further optionally, the service information is carried in a data part of the target TLS frame.
In the data transmission apparatus shown in
Referring to
As shown in
encapsulating one application layer data unit into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the application layer data unit, and the application layer data unit is an HTTP frame or object data of a URI;
determining a target TLS frame from the at least one TLS frame;
adding service information of the application layer data unit to the target TLS frame;
encapsulating the target TLS frame including the service information and another TLS frame in the at least one TLS frame into at least one TCP data packet; and
sending the at least one TCP data packet to the node device by using the network interface 2303.
Specifically, the terminal described in this embodiment of the present invention may be configured to implement some or all procedures in the method embodiment described in the present invention with reference to
Referring to
The receiving unit 2401 is configured to receive at least one TCP data packet that is sent by a node device and that is obtained by encapsulating a target TLS frame including service information and another TLS frame in at least one TLS frame, where the at least one TLS frame is obtained by the node device by encapsulating one application layer data unit.
The obtaining unit 2402 is configured to obtain the service information in the target TLS frame.
The parsing unit 2403 is configured to perform data parsing on the application layer data unit according to the service information.
In an optional embodiment, the data parsing apparatus in this embodiment of the present invention may further include:
a determining unit 2404, configured to: before the obtaining unit 2402 obtains the service information in the target TLS frame, determine the first TLS frame, the last TLS frame, or all TLS frames in the at least one TLS frame as the target TLS frame.
In an optional embodiment, the data parsing apparatus in this embodiment of the present invention may further include:
a determining unit 2404, configured to: before the obtaining unit 2402 obtains the service information in the target TLS frame, determine the first TLS frame and the last TLS frame in the at least one TLS frame as the target TLS frame.
In an optional embodiment, the service information includes data type information, and the parsing unit 2403 is configured to: obtain a data type of the target TLS frame according to the data type information, and determine the data type of the target TLS frame as a data type of the application layer data unit.
In an optional embodiment, the service information includes policy information, and the parsing unit 2403 is configured to: obtain, according to the policy information, a policy to be performed on the target TLS frame, and determine the policy to be performed on the target TLS frame as a policy to be performed on the application layer data unit.
In an optional embodiment, the obtaining unit 2402 is configured to obtain the service information from a TLS header field of the target TLS frame.
In an optional embodiment, the target TLS frame is used to indicate service information of a designated TLS frame in the at least one TLS frame. The designated TLS frame includes all TLS frames after the target TLS frame in the at least one TLS frame.
Alternatively, the designated TLS frame includes all TLS frames before the target TLS frame in the at least one TLS frame.
Alternatively, the designated TLS frame includes a previous TLS frame of the target TLS frame in the at least one TLS frame.
Alternatively, the designated TLS frame includes a next TLS frame of the target TLS frame in the at least one TLS frame.
Further optionally, the service information may include data type information, and the parsing unit 2403 is configured to: obtain a data type of the designated TLS frame in the at least one TLS frame according to the data type information, and determine the data type of the designated TLS frame as a data type of the application layer data unit.
Further optionally, the service information includes policy information, and the parsing unit 2403 is configured to: obtain, according to the policy information, a policy to be performed on the designated TLS frame, and determine the policy to be performed on the designated TLS frame as a policy to be performed on the application layer data unit.
Further optionally, the data parsing apparatus in this embodiment of the present invention may further include:
a deletion unit 2405, configured to delete the target TLS frame after the parsing unit 2403 determines the policy to be performed on the designated TLS frame as the policy to be performed on the application layer data unit.
Further optionally, the data parsing apparatus in this embodiment of the present invention may further include:
a determining unit 2404, configured to: before the obtaining unit 2402 obtains the service information in the target TLS frame, determine that the target TLS frame includes extended identifier information, where the extended identifier information is used to indicate that the target TLS frame is a protocol frame indicating the service information of the designated TLS frame in the at least one TLS frame.
Further optionally, the obtaining unit 2402 is configured to obtain the service information from a data part of the target TLS frame.
In the data parsing apparatus shown in
Referring to
As shown in
receiving, by using the network interface 2503, at least one TCP data packet that is sent by a node device and that is obtained by encapsulating a target TLS frame including service information and another TLS frame in at least one TLS frame, where the at least one TLS frame is obtained by the node device by encapsulating one application layer data unit;
obtaining the service information in the target TLS frame; and
performing data parsing on the application layer data unit according to the service information.
Specifically, the terminal described in this embodiment of the present invention may be configured to implement some or all procedures in the method embodiment described in the present invention with reference to
Referring
The data transmission apparatus 2601 is configured to: encapsulate one application layer data unit into at least one TLS frame, where the last TLS frame in the at least one TLS frame is the last TLS frame corresponding to the application layer data unit, and the application layer data unit is an HTTP frame or object data of a URI; determine a target TLS frame from the at least one TLS frame; add service information of the application layer data unit to the target TLS frame; encapsulate the target TLS frame including the service information and another TLS frame in the at least one TLS frame into at least one TCP data packet; and send the at least one TCP data packet obtained after the encapsulation to the data parsing apparatus 2602.
The data parsing apparatus 2602 is configured to: obtain the service information in the target TLS frame, and perform data parsing on the application layer data unit according to the service information.
Specifically, the data transmission system described in this embodiment of the present invention may be configured to implement some or all procedures in the method embodiments described in the present invention with reference to
In descriptions in this specification, descriptions about such reference terms as “an embodiment”, “some embodiments”, “an example”, “a specific example”, and “some examples” mean that specific features, structures, materials, or characteristics described with reference to the embodiments or examples are included in at least one embodiment or example of the present invention. In this specification, the foregoing example expressions of the terms are not necessarily with respect to a same embodiment or example. In addition, the described specific features, structures, materials, or characteristics may be combined in a proper manner in any one or more of the embodiments or examples. In addition, a person skilled in the art may integrate or combine different embodiments or examples and characteristics of different embodiments or examples described in this specification, provided that they do not conflict with each other.
In addition, the terms “first” and “second” are merely intended for a purpose of description, and shall not be understood as an indication or implication of relative importance or implicit indication of a quantity of indicated technical features. Therefore, a feature limited by “first” or “second” may explicitly or implicitly include at least one such feature. In the descriptions about the present invention, “multiple” means at least two, for example, two or three, unless otherwise specifically limited.
Descriptions about any process or method described in a flowchart or in another manner herein may be understood as indicating that one or more modules, segments, or parts of code of an executable instruction that is used to implement a specific logical function or a step of a process are included, the scope of implementations of the present invention includes other implementation, and functions may be performed in a sequence other than a shown or discussed sequence, including in a basically simultaneous manner or a reverse sequence according to the functions concerned. This should be understood by a person skilled in the technological field to which the embodiments of the present invention belong.
Logic and/or steps shown in the flowcharts or described herein in other manners, for example, may be considered as a program list of executable instructions that are used to implement logical functions, and may be specifically implemented on any computer-readable medium, for an instruction execution system, apparatus, or device (for example, a computer-based system, a system including a processor, or another system that can fetch instructions from the instruction execution system, apparatus, or device and execute the instructions) to use, or for a combination of the instruction execution system, apparatus, or device to use. In terms of this specification, the “computer-readable medium” may be any apparatus that may include, store, communicate, propagate, or transmit programs, for the instruction execution system, apparatus, or device to use, or for a combination of the instruction execution system, apparatus, or device to use. More specific examples (this list is not exhaustive) of the computer-readable medium include the following: an electrical portion with one or more buses, a portable computer cartridge (an magnetic apparatus), a random-access memory (RAM), a read-only memory (ROM), an electrically erasable programmable read-only memory (EPROM or flash memory), an optical fiber apparatus, and a compact disc read-only memory (CD-ROM). In addition, the computer-readable medium may even be a piece of paper on which the programs can be printed or another appropriate medium, because, for example, optical scanning may be performed on the paper or the another medium, then processing, such as edition, decoding, or another appropriate means when necessary, may be performed to obtain the programs in an electrical manner, and then the programs are stored in a computer memory.
It should be understood that, parts in the present invention may be implemented by using hardware, software, firmware, or a combination thereof. In the foregoing implementations, multiple steps or methods may be implemented by using software or firmware that is stored in a memory and that is executed by an appropriate instruction execution system. For example, if hardware is used for implementation, being similar to implementation in another implementation, any one or a combination of the following well-known technologies in the art may be used for implementation: a discrete logic circuit having a logic gate circuit that is used to implement a logical function for a data signal, an application-specific integrated circuit having an appropriate combinatorial logic circuit, a programmable gate array (PGA), a field programmable gate array (FPGA), or the like.
A person of ordinary skill in the art may understand that all or some of the steps of the method embodiments may be implemented by a program instructing relevant hardware. The program may be stored in a computer readable storage medium. When the program runs, one or a combination of the steps of the method embodiments is performed.
In addition, functional units in the embodiments of the present invention may be integrated into one processing module, or each of the units may exist alone physically, or two or more units may be integrated into one module. The integrated module may be implemented in a form of hardware, or may be implemented in a form of a software functional module. When the integrated module is implemented in the form of a software functional module and sold or used as an independent product, the integrated unit may be stored in a computer-readable storage medium.
The foregoing storage medium may be a read-only memory, a magnetic disk or an optical disk. Although the embodiments of the present invention are shown and described above, it can be understood that, the foregoing embodiments are examples, and cannot be construed as a limitation to the present invention. Within the scope of the present invention, a person of ordinary skill in the art may make changes, modifications, replacement, and variations to the foregoing embodiments.
Number | Date | Country | Kind |
---|---|---|---|
PCT/CN2015/083772 | Jul 2015 | CN | national |
PCT/CN2015/089260 | Sep 2015 | CN | national |
This application is a continuation of International Patent Application No. PCT/CN2015/090826 filed on Sep. 25, 2015, which claims priority to International Patent Application No. PCT/CN2015/089260 filed on Sep. 9, 2015, which claims priority to International Patent Application No. PCT/CN2015/083772 filed on Jul. 10, 2015. The disclosures of the aforementioned applications are hereby incorporated by reference in their entities.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/CN2015/090826 | Sep 2015 | US |
Child | 15851055 | US |