CN107078837A - 一种协议帧传输方法、装置、节点设备以及*** - Google Patents
一种协议帧传输方法、装置、节点设备以及*** Download PDFInfo
- Publication number
- CN107078837A CN107078837A CN201580001016.7A CN201580001016A CN107078837A CN 107078837 A CN107078837 A CN 107078837A CN 201580001016 A CN201580001016 A CN 201580001016A CN 107078837 A CN107078837 A CN 107078837A
- Authority
- CN
- China
- Prior art keywords
- data packet
- tcp data
- protocol frame
- last
- tcp
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0083—Formatting with frames or packets; Protocol or part of protocol for error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
- H04L1/1642—Formats specially adapted for sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/14—Charging, metering or billing arrangements for data wireline or wireless communications
- H04L12/1403—Architecture for metering, charging or billing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/14—Charging, metering or billing arrangements for data wireline or wireless communications
- H04L12/1403—Architecture for metering, charging or billing
- H04L12/1407—Policy-and-charging control [PCC] architecture
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/166—IP fragmentation; TCP segmentation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M15/00—Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
- H04M15/66—Policy and charging system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/36—Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种协议帧传输方法、装置、节点设备以及***,其中,所述协议帧传输方法包括:将一个协议帧封装成至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包包括指示信息,指示信息用于指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包,将至少一个TCP数据包发送给节点设备。采用本发明实施例,可确保一个TCP数据包的数据部分仅包括一个协议帧的数据。
Description
本发明涉及计算机应用技术领域,尤其涉及一种协议帧传输方法、装置、节点设备以及***。
HTTP(Hyper Text Transfer Protocol,超文本传输协议)采用请求/响应模型,用于传送WWW(World Wide Web,万维网)数据。由第一节点设备发起请求,建立到第二节点设备指定端口的TCP(Transmission Control Protocol,传输控制协议)连接,第二节点设备在指定端口监听第一节点设备发送的请求,当第二节点设备接收到请求时,第二节点设备向第一节点设备发送响应消息。HTTP2.0指的是版本为2.0的HTTP。HTTP2.0基本的协议单位是HTTP2.0帧,HTTP2.0帧指的是应用层发送给传输层的高层数据,由9字节的帧头和payload(有效载荷)组成,帧头可以包括length字段。HTTP2.0可通过报头字段压缩和多路复用提升资源利用率,并减小协议帧传输时延。多路复用是通过将TCP连接细分为多个HTTP2.0流,在一个HTTP2.0流上分配多个HTTP2.0帧来实现的。
一个HTTP2.0帧是根据MSS(Management Support System,最大报文段长度)封装成至少一个TCP数据包的。其中,MSS用于在TCP连接建立时,收发双方协商通信过程中每个TCP数据包所能承载的最大数据长度。应用层将HTTP2.0帧发送给传输层,传输层将HTTP2.0帧根据MSS封装成TCP数据包,各个TCP数据包的数据部分的长度均为MSS。以图7A为例,HTTP2.0帧可以包括第一帧、第二帧以及第三帧,第一帧以及第二帧的数据量都为3000字节,MSS的长度为1460字节,则传输层可以根据MSS将上述HTTP2.0帧封装成5个TCP数据包,其中第一TCP数据包的数据部分仅包括第一帧的数据,第二TCP数据包的数据部分仅包括第一帧的数据,第三TCP数据包的数据部分包括第一帧的数据和第二帧的数据,第四TCP数据包的数据部分仅包
括第二帧的数据。其中,第三TCP数据包的数据部分包括第一帧的数据和第二帧的数据。上述封装方式将导致不同HTTP2.0帧封装在同一个TCP数据包中,从而导致无法实现数据解析。
发明内容
本发明实施例提供了一种协议帧传输方法、装置、节点设备以及***,可确保一个TCP数据包的数据部分仅包括一个协议帧的数据。
本发明第一方面提供了一种协议帧传输方法,包括:
将一个协议帧封装成至少一个TCP数据包,所述至少一个TCP数据包中的最后一个TCP数据包包括指示信息,所述指示信息用于指示所述最后一个TCP数据包为所述协议帧对应的最后一个TCP数据包;
将所述至少一个TCP数据包发送给节点设备。
在第一种可能的实施方式中,所述最后一个TCP数据包的数据部分的长度为0,从而指示所述最后一个TCP数据包为所述协议帧对应的最后一个TCP数据包。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述最后一个TCP数据包的报头包括发送序号和确认序号;
所述发送序号与下一个协议帧对应的起始TCP数据包的发送序号相同,所述确认序号是根据接收的所述节点设备发送的数据确认的。
结合第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述最后一个TCP数据包的报头包括发送序号和确认序号;
所述发送序号与下一个协议帧对应的起始TCP数据包的发送序号相同,所述确认序号与所述最后一个TCP数据包的前一个数据包的确认序号相同。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述将一个协议帧封装成至少一个TCP数据包之前,还包括:
获取管理终端发送的所述协议帧,所述协议帧包括终端标识信息,所述终端标识信息用于指示将所述协议帧对应的至少一个TCP数据包发送给所述终端标识信息对应的节点设备。
结合第一方面的第一种至第四种中任一种可能的实现方式,在第五种可能的实现方式中,所述将一个协议帧封装成至少一个TCP数据包,包括:
在所述协议帧对应的最后一个包含数据的TCP数据包后增加一个TCP数据包,所述增加的TCP数据包的数据部分的长度为0。
结合第一方面可能的实现方式,在第六种可能的实现方式中,所述将一个协议帧封装成至少一个TCP数据包,包括:
当所述协议帧对应的最后一个包含数据的TCP数据包的数据量小于预设MSS时,所述最后一个包含数据的TCP数据包仅包括所述协议帧的数据,所述指示信息为所述最后一个包含数据的TCP数据包的数据量。
结合第一方面可能的实现方式,在第七种可能的实现方式中,所述指示信息为包含在所述最后一个TCP数据包的报头中的标识信息。
结合第一方面或第一方面的第一种至第七种中任一种可能的实现方式,在第八种可能的实现方式中,所述至少一个TCP数据包的数据部分仅包括所述协议帧的数据。
结合第一方面或第一方面的第一种至第八种中任一种可能的实现方式,在第九种可能的实现方式中,所述将所述至少一个TCP数据包发送给节点设备之前,还包括:
接收所述节点设备发送的TCP数据包;
所述将一个协议帧封装成至少一个TCP数据包,包括:
在所述至少一个TCP数据包中的待发送的TCP数据包中携带所述节点设备发送的TCP数据包的确认序号,所述确认序号用于指示正确接收所述节点设备发送的TCP数据包。
结合第一方面或第一方面的第一种至第九种中任一种可能的实现方式,在第十种可能的实现方式中,所述将一个协议帧封装成至少一个TCP数据包之前,还包括:
向所述节点设备发送通知消息,所述通知消息用于所述至少一个TCP数据包中的最后一个TCP数据包包括指示信息,所述指示信息用于指示所述最后一个TCP数据包为所述协议帧对应的最后一个TCP数据包。
结合第一方面的第十种可能的实现方式,在第十一种可能的实现方式中,
所述通知信息携带在所述协议帧的HTTP2.0头域或者HTTP2.0设置帧中。
结合第一方面或第一方面的第一种至第十一种中任一种可能的实现方式,在第十二种可能的实现方式中,所述至少一个TCP数据包的报头包括数据类型信息,所述数据类型信息用于指示所述TCP数据包的数据部分的数据类型。
结合第一方面或第一方面的第一种至第十二种中任一种可能的实现方式,在第十三种可能的实现方式中,所述协议帧为TLS帧或者HTTP帧。
结合第一方面或第一方面的第一种至第十三种中任一种可能的实现方式,在第十四种可能的实现方式中,所述将所述协议帧封装成至少一个TCP数据包之前,还包括:
将所述协议帧压缩成至少一个压缩包,所述至少一个压缩包仅包括所述协议帧。
本发明第二方面提供一种协议帧解析方法,包括:
接收节点设备发送的将一个协议帧封装成的至少一个TCP数据包,所述至少一个TCP数据包中的最后一个TCP数据包包括指示信息,所述指示信息用于指示所述最后一个TCP数据包为所述协议帧对应的最后一个TCP数据包;
根据所述指示信息,确定下一个协议帧对应的起始TCP数据包;
从所述起始TCP数据包开始对所述下一个协议帧进行数据解析。
在第一种可能的实现方式中,所述根据所述指示信息,确定下一个协议帧对应的起始TCP数据包包括:
当所述最后一个TCP数据包的数据部分的长度为0时,确定下一个TCP数据包为所述下一个协议帧对应的起始TCP数据包。结合第二方面可能的实现方式,在第二种可能的实现方式中,所述根据所述指示信息,确定下一个协议帧对应的起始TCP数据包包括:
当所述最后一个TCP数据包的数据量小于预设MSS时,确定下一个TCP数据包为所述下一个协议帧对应的起始TCP数据包。
结合第二方面可能的实现方式,在第三种可能的实现方式中,所述根据所述指示信息,确定下一个协议帧对应的起始TCP数据包包括:
当所述最后一个TCP数据包的报头包括标识信息时,确定下一个TCP数据包为所述下一个协议帧对应的起始TCP数据包。
结合第二方面或者第二方面的第一种至第三种中任一种可能的实现方式,在第四种可能的实现方式中,所述接收节点设备发送的协议帧对应的至少一个TCP数据包之前,还包括:
向所述节点设备发送TCP数据包;
所述接收节点设备发送的将一个协议帧封装成的至少一个TCP数据包之后,还包括:
当所述接收的TCP数据包中携带向所述节点设备发送的TCP数据包的确认序号时,根据所述确认序号,确定所述节点设备正确接收向所述节点设备发送的TCP数据包。
结合第二方面或者第二方面的第一种至第四种中任一种可能的实现方式,在第五种可能的实现方式中,所述根据所述指示信息,确定下一个协议帧对应的起始TCP数据包之前,还包括:
接收所述节点设备发送的通知消息;
根据所述通知消息,获取所述协议帧对应的所述最后一个TCP数据包中的指示信息。
结合第二方面或者第二方面的第一种至第五种中任一种可能的实现方式,在第六种可能的实现方式中,所述至少一个TCP数据包的报头包括数据类型信息;
所述从所述起始TCP数据包开始对所述下一个协议帧进行数据解析包括:
根据所述数据类型信息,获取所述TCP数据包的数据部分的数据类型。
结合第二方面或者第二方面的第一种至第六种中任一种可能的实现方式,在第七种可能的实现方式中,所述从所述起始TCP数据包对所述下一个协议帧进行数据解析之前,还包括:
确定所述下一个协议帧是通过静态表实现报头字段压缩的。
结合第二方面或者第二方面的第一种至第七种中任一种可能的实现方式,在第八种可能的实现方式中,所述下一个协议帧对应的各个TCP数据包属于同一HTPP2.0流;
所述从所述起始TCP数据包开始对所述下一个协议帧进行数据解析之后,还包括:
当对所述下一个协议帧数据解析失败时,暂停对所述HTTP2.0流包括的协议帧进行数据解析。
本发明第三方面提供一种协议帧传输装置,其特征在于,包括:
封装单元,用于将一个协议帧封装成至少一个TCP数据包,所述至少一个TCP数据包中的最后一个TCP数据包包括指示信息,所述指示信息用于指示所述最后一个TCP数据包为所述协议帧对应的最后一个TCP数据包;
发送单元,用于将所述至少一个TCP数据包发送给节点设备。
在第一种可能的实施方式中,所述最后一个TCP数据包的数据部分的长度为0,从而指示所述最后一个TCP数据包为所述协议帧对应的最后一个TCP数据包。
结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述最后一个TCP数据包的报头包括发送序号和确认序号;
所述发送序号与下一个协议帧对应的起始TCP数据包的发送序号相同,所述确认序号是根据接收的所述节点设备发送的数据确认的。
结合第三方面的第一种可能的实现方式,在第三种可能的实现方式中,所述最后一个TCP数据包的报头包括发送序号和确认序号;
所述发送序号与下一个协议帧对应的起始TCP数据包的发送序号相同,所述确认序号与所述最后一个TCP数据包的前一个数据包的确认序号相同。
结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,获取单元,用于所述封装单元将所述协议帧封装成所述至少一个TCP数据包之前,获取管理终端发送的所述协议帧,所述协议帧包括终端标识信息,所述终端标识信息用于指示将所述协议帧对应的至少一个TCP数据包发送给所述终端标识信息对应的节点设备。
结合第三方面的第一种至第四种中任一种可能的实现方式,在第五种可能的实现方式中,所述封装单元,用于在所述协议帧对应的最后一个包含数据的TCP数据包后增加一个TCP数据包,所述增加的TCP数据包的数据部分的长
度为0。
结合第三方面可能的实现方式,在第六种可能的实现方式中,所述封装单元,用于当所述协议帧对应的最后一个包含数据的TCP数据包的数据量小于预设MSS时,所述最后一个包含数据的TCP数据包仅包括所述协议帧的数据,所述指示信息为所述最后一个包含数据的TCP数据包的数据量。
结合第三方面可能的实现方式,在第七种可能的实现方式中,所述指示信息为包含在所述最后一个TCP数据包的报头中的标识信息。
结合第三方面或第三方面的第一种至第七种中任一种可能的实现方式,在第八种可能的实现方式中,所述至少一个TCP数据包的数据部分仅包括所述协议帧的数据。
结合第三方面或第三方面的第一种至第八种中任一种可能的实现方式,在第九种可能的实现方式中,还包括:
接收单元,用于接收所述节点设备发送的TCP数据包;
所述封装单元,用于在所述至少一个TCP数据包中的待发送的TCP数据包中携带所述节点设备发送的TCP数据包的确认序号,所述确认序号用于指示正确接收所述节点设备发送的TCP数据包。
结合第三方面或第三方面的第一种至第九种中任一种可能的实现方式,在第十种可能的实现方式中,所述发送单元,还用于所述封装单元将所述协议帧封装成所述至少一个TCP数据包之前,向所述节点设备发送通知消息,所述通知消息用于所述至少一个TCP数据包中的最后一个TCP数据包包括指示信息,所述指示信息用于指示所述最后一个TCP数据包为所述协议帧对应的最后一个TCP数据包。
结合第三方面的第十种可能的实现方式,在第十一种可能的实现方式中,还包括:所述通知信息携带在所述协议帧的HTTP2.0头域或者HTTP2.0设置帧中。
结合第三方面或第三方面的第一种至第十一种中任一种可能的实现方式,在第十二种可能的实现方式中,还包括:所述至少一个TCP数据包的报头包括数据类型信息,所述数据类型信息用于指示所述TCP数据包的数据部分的数据类型。
结合第三方面或第三方面的第一种至第十二种中任一种可能的实现方式,在第十三种可能的实现方式中,所述协议帧为TLS帧或者HTTP帧。
结合第三方面或第三方面的第一种至第十三种中任一种可能的实现方式,在第十四种可能的实现方式中,还包括:
压缩单元,用于所述封装单元将所述协议帧封装成至少一个TCP数据包之前,将所述协议帧压缩成至少一个压缩包,所述至少一个压缩包仅包括所述协议帧。
本发明第四方面提供一种节点设备,其特征在于,包括处理器、存储器以及网络接口,其中,所述存储器中存储一组程序代码,且所述处理器用于调用存储器中存储的程序代码,用于执行以下操作:
将一个协议帧封装成至少一个TCP数据包,所述至少一个TCP数据包中的最后一个TCP数据包包括指示信息,所述指示信息用于指示所述最后一个TCP数据包为所述协议帧对应的最后一个TCP数据包;
将所述至少一个TCP数据包发送给节点设备。
本发明第五方面提供一种协议帧解析装置,其特征在于,包括:
接收单元,用于接收节点设备发送的将一个协议帧封装成的至少一个TCP数据包,所述至少一个TCP数据包中的最后一个TCP数据包包括指示信息,所述指示信息用于指示所述最后一个TCP数据包为所述协议帧对应的最后一个TCP数据包;
确定单元,用于根据所述指示信息,确定下一个协议帧对应的起始TCP数据包;
解析单元,用于从所述起始TCP数据包开始对所述下一个协议帧进行数据解析。
在第一种可能的实现方式中,所述确定单元,用于当所述最后一个TCP数据包的数据部分的长度为0时,确定下一个TCP数据包为所述下一个协议帧对应的起始TCP数据包。
结合第五方面可能的实现方式,在第二种可能的实现方式中,所述确定单
元,用于当所述最后一个TCP数据包的数据量小于预设MSS时,确定下一个TCP数据包为所述下一个协议帧对应的起始TCP数据包。
结合第五方面可能的实现方式,在第三种可能的实现方式中,所述确定单元,用于当所述最后一个TCP数据包的报头包括标识信息时,确定下一个TCP数据包为所述下一个协议帧对应的起始TCP数据包。
结合第五方面或者第五方面的第一种至第三种中任一种可能的实现方式,在第四种可能的实现方式中,还包括:
发送单元,用于所述接收单元接收所述节点设备发送的所述协议帧对应的至少一个TCP数据包之前,向所述节点设备发送TCP数据包;
所述确定单元,还用于当所述接收到的TCP数据包中携带向所述节点设备发送的TCP数据包的确认序号时,根据所述确认序号,确定所述节点设备正确接收向所述节点设备发送的TCP数据包。
结合第五方面或者第五方面的第一种至第四种中任一种可能的实现方式,在第五种可能的实现方式中,所述接收单元,还用于所述确定单元根据所述指示信息,确定下一个协议帧对应的起始TCP数据包之前,接收所述节点设备发送的通知消息;
所述装置还包括:
获取单元,用于根据所述通知信息,获取所述协议帧对应的所述最后一个TCP数据包中的指示信息。
结合第五方面或者第五方面的第一种至第五种中任一种可能的实现方式,在第六种可能的实现方式中,所述至少一个TCP数据包的报头包括数据类型信息;
所述解析单元,用于根据所述起数据类型信息,获取所述TCP数据包的数据部分的数据类型。
结合第五方面或者第五方面的第一种至第六种中任一种可能的实现方式,在第七种可能的实现方式中,所述确定单元,还用于所述解析单元从所述起始TCP数据包对所述下一个协议帧进行数据解析之前,确定所述下一个协议帧是通过静态表实现报头字段压缩的。
结合第五方面或者第五方面的第一种至第七种中任一种可能的实现方式,
在第八种可能的实现方式中,所述下一个协议帧对应的各个TCP数据包属于同一HTTP2.0流;
所述协议帧传输装置还包括:
控制单元,用于所述解析单元从所述起始TCP数据包开始对所述下一个协议帧进行数据解析之后,当对所述下一个协议帧数据解析失败时,暂停对所述HTTP2.0流包括的协议帧进行数据解析。
本发明第六方面提供一种节点设备,其特征在于,包括处理器、存储器以及网络接口,其中,所述存储器中存储一组程序代码,且所述处理器用于调用存储器中存储的程序代码,用于执行以下操作:
接收节点设备发送的将一个协议帧封装成的至少一个TCP数据包,所述至少一个TCP数据包中的最后一个TCP数据包包括指示信息,所述指示信息用于指示所述最后一个TCP数据包为所述协议帧对应的最后一个TCP数据包;
根据所述指示信息,确定下一个协议帧对应的起始TCP数据包;
从所述起始TCP数据包开始对所述下一个协议帧进行数据解析。
本发明第七方面提供一种协议帧传输***,其特征在于,包括第三方面所述的协议帧封装装置以及第五方面所述的协议帧解析装置。
本发明实施例中,通过将一个协议帧封装成至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包包括指示信息,指示信息用于指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包,将至少一个TCP数据包发送给节点设备,可确保一个TCP数据包的数据部分仅包括一个协议帧的数据。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是
本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明第一实施例中提供的一种协议帧传输方法的流程示意图;
图2为本发明实施例中提供的一种协议帧解析方法的流程示意图;
图3为本发明第二实施例中提供的一种协议帧传输方法的流程示意图;
图4为本发明第三实施例中提供的一种协议帧传输方法的流程示意图;
图5为本发明第四实施例中提供的一种协议帧传输方法的流程示意图;
图6为本发明第五实施例中提供的一种协议帧传输方法的流程示意图;
图7A为现有的一种协议帧封装成TCP数据包的界面示意图;
图7B为本发明实施例中提供的一种协议帧封装成TCP数据包的界面示意图;
图7C为本发明实施例中提供的一种TCP数据包的结构示意图;
图7D为本发明实施例中提供的一种设置帧的界面示意图;
图7E为本发明实施例中提供的一种HTTP帧的结构示意图;
图7F为本发明实施例中提供的一种TLS帧的结构示意图;
图8为本发明实施例中提供的一种协议帧传输装置的结构示意图;
图9为本发明第一实施例中提供的一种节点设备的结构示意图;
图10为本发明实施例中提供的一种协议帧解析装置的结构示意图;
图11为本发明第二实施例中提供的一种节点设备的结构示意图;
图12为本发明实施例中提供的一种协议帧传输***的结构示意图。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有的协议帧传输方法中,将协议帧根据MSS封装成至少一个TCP数据包,同一个TCP数据包的数据部分包括不同协议帧的数据。进一步的,将至
少一个TCP数据包发送给节点设备之后,节点设备无法识别各个协议帧的边界,进而无法对各个协议帧实现数据解析。
本发明实施例提供了一种协议帧传输方法,将一个协议帧封装成至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包包括指示信息,指示信息用于指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包,将至少一个TCP数据包发送给节点设备,以确保一个TCP数据包的数据部分仅包括一个协议帧的数据。
本发明实施例提及到的协议帧可以包括HTTP帧或者TLS(Transport Layer Security,安全传输层协议)帧。例如,HTTP帧可以为HTTP2.0帧,HTTP2.0位于应用层,HTTP2.0帧为应用层中的数据,可以将一个HTTP帧封装成至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包包括指示信息,指示信息用于指示最后一个TCP数据包为HTTP帧对应的最后一个TCP数据包。又如,TLS位于应用层之下传输层之上,指的是为网络通信提供加密、身份认证及数据完整性保证的一种安全协议,可以将一个HTTP帧封装成至少一个TLS帧,至少一个TLS帧中的最后一个TLS帧包括指示信息,指示信息用于指示最后一个TLS帧为HTTP帧对应的最后一个TLS帧。进一步的,可以将一个TLS帧封装成至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包包括指示信息,指示信息用于指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包。
本发明实施例中将一个协议帧封装成至少一个TCP数据包之前,可以将该协议帧压缩成至少一个压缩包,至少一个压缩包仅包括该协议帧。
本发明实施例提及到的节点设备可以包括客户端或者服务器等,例如网页浏览器、电子邮件客户端或者电子邮件服务器等。
本发明实施例提及到的协议帧传输方法可以运行于服务器、客户端、代理客户端或者代理服务器等终端中,具体不受本发明实施例的限制。
请参见图1,图1为本发明第一实施例中提供的一种协议帧传输方法的流程示意图,如图所示本发明实施例中的协议帧封装方法可以包括:
S101,将一个协议帧封装成至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包包括指示信息。
终端可以将一个协议帧封装成至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包包括指示信息,指示信息用于指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包。以图7B所示的协议帧封装成TCP数据包的界面示意图为例,终端可以将第一帧(frame1)封装成3个TCP数据包,将第二帧(frame2)封装成3个TCP数据包,其中第一帧的起点为TCP1数据包的起点,第二帧的起点为TCP4数据包的起点,TCP1数据包、TCP2数据包以及TCP3数据包的数据部分仅包括第一帧的数据,TCP4数据包、TCP5数据包以及TCP6数据包的数据部分仅包括第二帧的数据。
例如,第一协议帧和第二协议帧的数据量均为3000字节,终端和节点设备之间协商的预设MSS为1460字节,则终端可以将第一协议帧封装成3个TCP数据包,第一TCP数据包的数据部分的长度为1460字节,第二TCP数据包的数据部分的长度为1460字节,第三TCP数据包的数据部分的长度为80字节,其中第二TCP数据包包括指示信息,指示信息用于指示第二TCP数据包为第一协议帧对应的最后一个TCP数据包。同理,终端可以将第二协议帧封装成3个TCP数据包,第四TCP数据包的数据部分的长度为1460字节,第五TCP数据包的数据部分的长度为1460字节,第六TCP数据包的数据部分的长度为80字节,其中第六TCP数据包包括指示信息,指示信息用于指示第四TCP数据包为第二协议帧对应的最后一个TCP数据包。
在可选实施例中,协议帧可以为TLS帧或者HTTP帧。其中,TLS帧为TLS基本的协议单位,TLS运行于应用层之下传输层之上。HTTP帧为HTTP基本的协议单位,HTTP运行于应用层,示例性的,HTTP帧可以为HTTP2.0帧。
在可选实施例中,至少一个TCP数据包的数据部分仅包括协议帧的数据。例如,终端将第一协议帧封装成第一TCP数据包和第二TCP数据包,其中第一TCP数据包的数据部分仅包括第一协议帧的数据,第二TCP数据包的数据部分仅包括第一协议帧的数据。同理,终端将第二协议帧封装成第三TCP数据包和第四TCP数据包,其中第三TCP数据包的数据部分仅包括第二协议帧的数据,第四TCP数据包的数据部分仅包括第二协议帧的数据。
在可选实施例中,最后一个TCP数据包的数据部分的长度可以为0,从而
指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包。例如,第一协议帧的数据量为2000字节,终端和节点设备之间协商的预设MSS为1460字节,终端可以将第一协议帧封装为第一TCP数据包、第二TCP数据包和第三TCP数据包,其中第一TCP数据包的数据部分的长度为1460字节,第二TCP数据包的数据部分的长度为540字节,第三TCP数据包的数据部分的长度为0,从而指示第三TCP数据包为第一协议帧对应的最后一个TCP数据包。
进一步可选的,最后一个TCP数据包的报头可以包括发送序号和确认序号,其中发送序号与下一个协议帧对应的起始TCP数据包的发送序号相同,确认序号是根据接收的节点设备发送的数据确认的。
进一步可选的,最后一个TCP数据包的报头可以包括发送序号和确认序号,其中发送序号与下一个协议帧对应的起始TCP数据包的发送序号相同,确认序号与最后一个TCP数据包的前一个数据包的确认序号相同。
进一步可选的,终端将一个协议帧封装成至少一个TCP数据包之前,可以获取管理终端发送的协议帧,协议帧可以包括终端标识信息,终端标识信息用于指示将协议帧对应的至少一个TCP数据包发送给终端标识信息对应的节点设备。
进一步可选的,终端可以在最后一个包含数据的TCP数据包后增加一个TCP数据包,其中增加的TCP数据包的数据部分的长度为0。例如,当协议帧对应的最后一个包含数据的TCP数据包的数据量等于预设MSS时,终端可以在最后一个包含数据的TCP数据包后增加一个TCP数据包,其中增加的TCP数据包的数据部分的长度为0。又如,当协议帧对应的最后一个包含数据的TCP数据包的数据量小于预设MSS时,终端可以在最后一个包含数据的TCP数据包后增加一个TCP数据包,其中增加的TCP数据包的数据部分的长度为0。
在可选实施例中,当协议帧对应的最后一个包含数据的TCP数据包的数据量小于预设MSS时,最后一个包含数据的TCP数据包仅包括协议帧的数据,其中指示信息为最后一个包含数据的TCP数据包的数据量。例如,第一协议帧的数据量为2000字节,终端和节点设备之间协商的预设MSS为1460字节,终端可以将第一协议帧封装为第一TCP数据包以及第二TCP数据包,其中第
一TCP数据包的数据部分的长度为1460字节,第二TCP数据包的数据部分的长度为540字节,第二TCP数据包仅包括第一协议帧的数据,指示信息为第二TCP数据包的数据量,终端可以根据指示信息确定第二TCP数据包的数据量小于预设MSS,则第二TCP数据包为第一协议帧的最后一个TCP数据包。
在可选实施例中,指示信息可以为包含在最后一个TCP数据包的报头中的标识信息。具体实现中,当协议帧对应的最后一个包含数据的TCP数据包的数据量等于预设MSS时,终端可以在最后一个包含数据的TCP数据包的报头增加标识信息。又如,当协议帧对应的最后一个包含数据的TCP数据包的数据量小于预设MSS时,终端可以在最后一个包含数据的TCP数据包的报头增加标识信息。例如,第一协议帧的数据量为2000字节,终端和节点设备之间协商的预设MSS为1460字节,终端可以将第一协议帧封装为第一TCP数据包以及第二TCP数据包,其中第一TCP数据包的数据部分的长度为1460字节,第二TCP数据包的数据部分的长度为540字节,第二TCP数据包的报头包括标识信息,终端可以根据标识信息确定第二TCP数据包为第一协议帧的最后一个TCP数据包。
在可选实施例中,终端将一个协议帧封装成至少一个TCP数据包之前,还可以向节点设备发送通知消息,通知消息可以用于至少一个TCP数据包中的最后一个TCP数据包包括指示信息,指示信息用于指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包。
进一步可选的,通知消息可以携带在协议帧的HTTP2.0头域或者HTTP2.0设置帧中。
在可选实施例中,至少一个TCP数据包的报头可以包括数据类型信息,数据类型信息用于指示TCP数据包的数据部分的数据类型。现有的协议帧解析方法是通过协议帧的帧头对协议帧进行盲解析,无法准确获取协议帧的数据类型。而本发明实施例中至少一个TCP数据包的报头包括数据类型信息,节点设备可以根据数据类型信息获取TCP数据包的数据部分的数据类型,进而获取协议帧的数据类型,提高数据解析的精准度。
在可选实施例中,终端将一个协议帧封装成至少一个TCP数据包之前,可以将该协议帧压缩成至少一个压缩包,至少一个压缩包仅包括该协议帧。具
体实现中,终端通常通过预设压缩算法将协议帧进行压缩,进而将压缩后的协议帧传输给节点设备,以提高传输速率。为了避免将不同协议帧压缩到同一个压缩包中,导致无法识别各个协议帧,进而无法分别将各个协议帧封装成至少一个TCP数据包,本发明实施例将一个协议帧压缩在至少一个压缩包中,将压缩包中的数据封装成至少一个TCP数据包,以实现分别将各个协议帧封装成至少一个TCP数据包。
S102,将至少一个TCP数据包发送给节点设备。
终端将协议帧封装成至少一个TCP数据包之后,可以将至少一个TCP数据包发送给节点设备。
在可选实施例中,终端将至少一个TCP数据包发送给节点设备之前,可以接收节点设备发送的TCP数据包,在至少一个TCP数据包中的待发送的TCP数据包中携带节点设备发送的TCP数据包的确认序号,确认序号用于指示正确接收节点设备发送的TCP数据包。现有协议帧传输方法中,终端接收到节点设备发送的TCP数据包之后,可以向节点设备发送ACK数据包,ACK数据包的数据部分的长度为0,用于指示终端正确接收节点设备发送的TCP数据包,资源利用率较低。本发明实施例中接收到节点设备发送的TCP数据包之后,可以在至少一个TCP数据包中的待发送的TCP数据包中携带节点设备发送的TCP数据包的确认序号,确认序号用于指示正确接收节点设备发送的TCP数据包,本发明实施例在不单独发送ACK数据包的情况下,指示正确接收节点设备发送的TCP数据包,可提高资源利用率。
在图1所示的协议帧封装方法中,将一个协议帧封装成至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包包括指示信息,指示信息用于指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包,将至少一个TCP数据包发送给节点设备,以确保一个TCP数据包的数据部分仅包括一个协议帧的数据。
请参见图2,图2为本发明实施例中提供的一种协议帧解析方法的流程示意图,如图所示本发明实施例中的协议帧解析方法可以包括:
S201,接收节点设备发送的将一个协议帧封装成的至少一个TCP数据包,
至少一个TCP数据包中的最后一个TCP数据包包括指示信息。
终端可以接收节点设备发送的将一个协议帧封装成的至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包包括指示信息,指示信息用于指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包。例如,节点设备可以将一个协议帧封装成至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包包括指示信息,节点设备将上述至少一个TCP数据包发送给终端,进而终端接收上述至少一个TCP数据包。
在可选实施例中,终端接收节点设备发送的将一个协议帧封装成的至少一个TCP数据包之前,可以向节点设备发送TCP数据包。进一步的,终端接收节点设备发送的将一个协议帧封装成的至少一个TCP数据包之后,当接收的TCP数据包中携带向节点设备发送的TCP数据包的确认序号时,终端可以根据确认序号,确定节点设备正确接收向节点设备发送的TCP数据包。
例如,终端接收节点设备发送的至少一个TCP数据包之前,可以向节点设备发送TCP数据包,节点设备接收终端发送的TCP数据包,在至少一个TCP数据包中的待发送的TCP数据包中携带终端发送的TCP数据包的确认序号,则终端接收到节点设备发送的至少一个TCP数据包之后,可以根据确认序号,确定节点设备正确接收终端发送的TCP数据包。
S202,根据指示信息,确定下一个协议帧对应的起始TCP数据包。
终端可以根据指示信息,确定下一个协议帧对应的起始TCP数据包,其中下一个协议帧对应的起始TCP数据包为协议帧对应的最后一个TCP数据包的下一个TCP数据包。
在可选实施例中,当最后一个TCP数据包的数据部分的长度为0时,终端可以确定下一个TCP数据包为下一个协议帧对应的起始TCP数据包。例如,节点设备在协议帧对应的最后一个包含数据的TCP数据包后增加一个TCP数据包,其中增加的TCP数据包的数据部分的长度为0,则终端可以确定增加的TCP数据包的下一个TCP数据包为下一个协议帧对应的起始TCP数据包。
在可选实施例中,当最后一个TCP数据包的数据量小于预设MSS时,终端可以确定下一个TCP数据包为下一个协议帧对应的起始TCP数据包。例如,终端可以判断各个TCP数据包的数据量是否小于预设MSS,当TCP数据包的
数据量小于预设MSS时,终端可以确定该TCP数据包的下一个TCP数据包为下一个协议帧对应的起始TCP数据包。进一步可选的,当TCP数据包的数据量等于预设MSS时,终端可以判断下一个TCP数据包的数据部分的长度是否为0,当下一个TCP数据包的数据部分的长度为0时,终端可以确定数据部分的长度为0的TCP数据包的下一个TCP数据包为下一个协议帧对应的起始TCP数据包。进一步可选的,当TCP数据包的数据量等于预设MSS时,终端可以判断各个TCP数据包的报头是否包括标识信息,当TCP数据包的报头包括标识信息时,终端可以确定该TCP数据包的下一个TCP数据包为下一个协议帧对应的起始TCP数据包。
在可选实施例中,当最后一个TCP数据包的报头包括标识信息时,终端可以确定下一个TCP数据包为下一个协议帧对应的起始TCP数据包。例如,终端可以判断各个TCP数据包的报头是否包括标识信息,当TCP数据包的报头包括标识信息时,终端可以确定该TCP数据包的下一个TCP数据包为下一个协议帧对应的起始TCP数据包。
在可选实施例中,终端根据指示信息,确定下一个协议帧对应的起始TCP数据包之前,可以接收节点设备发送的通知消息,根据通知消息,获取协议帧对应的最后一个TCP数据包中的指示信息。例如,终端接收节点设备发送的通知消息,通知消息用于指示终端识别下一个协议帧的边界,进而对下一个协议帧进行数据解析,则终端可以根据通知消息,获取协议帧对应的最后一个TCP数据包中的指示信息,根据指示信息确定下一个协议帧对应的起始TCP数据包,并从起始TCP数据包开始对下一个协议帧进行数据解析。
S203,从起始TCP数据包开始对下一个协议帧进行数据解析。
终端确定下一个协议帧对应的起始TCP数据包之后,可以从起始TCP数据包开始对下一个协议帧进行数据解析。例如,终端确定下一个协议帧对应的起始TCP数据包为第三TCP数据包,则终端可以从第三TCP数据包开始解析下一个协议帧的帧头和payload,并根据payload中的数据识别下一个协议帧的数据类型。协议帧的数据类型可以包括文本、图片、视频或者音频等。
在可选实施例中,至少一个TCP数据包的报头可以包括数据类型信息,则终端可以根据数据类型信息,获取TCP数据包的数据部分的数据类型,进
而获取协议帧的数据类型。相对现有终端通过协议帧的帧头对协议帧进行盲解析,无法准确获取协议帧的数据类型。而本发明实施例根据数据类型信息获取TCP数据包的数据部分的数据类型,进而获取协议帧的数据类型,可提高数据解析的精准度。
在可选实施例中,终端从起始TCP数据包对下一个协议帧进行数据解析之前,可以确定下一个协议帧是通过静态表实现报头字段压缩的。具体实现中,协议帧可以通过静态表或者动态表实现报头字段压缩。其中静态表为常用的高频的头域,由协议规定而成,在协议帧传输过程中保持不变,而动态表在传输过程中是动态变化的。若协议帧是通过动态表实现报头字段压缩的,且终端为源eNB(演进型基站),则由源eNB维护该动态表,当终端由源eNB切换为目标eNB时,目标eNB无法获取该动态表,进而无法对协议帧进行数据解析。本发明实施例确定下一个协议帧是通过静态表实现报头字段压缩的之后,从起始TCP数据包对下一个协议帧进行数据解析,可提高数据解析效率。
在可选实施例中,下一个协议帧对应的各个TCP数据包属于同一HTPP2.0流,则终端从起始TCP数据包开始对下一个协议帧进行数据解析之后,当对下一个协议帧数据解析失败时,暂停对HTTP2.0流包括的协议帧进行数据解析。例如,节点设备一张图片划分为多个协议帧,多个协议帧属于同一HTPP2.0流,各个协议帧的数据类型为图片,节点设备将每个协议帧封装成至少一个TCP数据包,并将至少一个TCP数据包发送给终端之后,当终端将其中一个协议帧的数据类型解析为视频时,也会将该HTPP2.0流中的其他协议帧的数据类型解析为视频,本发明实施例在对协议帧数据解析失败时,暂停对HTTP2.0流包括的其他协议帧进行数据解析,可提高数据解析效率。
在图2所示的协议帧解析方法中,接收节点设备发送的将一个协议帧封装成的至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包包括指示信息,根据指示信息,确定下一个协议帧对应的起始TCP数据包,从起始TCP数据包开始对下一个协议帧进行数据解析,可有效识别下一个协议帧的边界,以实现对下一个协议帧的数据解析。
请参见图3,图3为本发明第二实施例中提供的一种协议帧传输方法的流
程示意图。本发明实施例中,第一节点设备将协议帧对应的TCP数据包通过基站发送给第二节点设备的过程中,进行了基站切换,即第一节点设备将TCP数据包通过第一基站发送给第二节点设备的过程中,切换为第一节点设备将TCP数据包通过第二基站发送给第二节点设备。当第一节点设备为服务器时,第二节点设备可以为客户端;当第一节点设备为客户端时,第二节点设备可以为服务器,具体不受本发明实施例的限制。如图所示本发明实施例中的协议帧传输方法可以包括:
S301,第一节点设备将一个协议帧封装成至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包的数据部分的长度为0。
第一节点设备可以将一个协议帧封装成至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包的数据部分的长度为0,从而指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包。其中,协议帧可以为HTTP帧或者TLS帧,至少一个TCP数据包的数据部分仅包括该协议帧的数据。例如,协议帧的数据量为4000字节,第一节点设备和第三节点设备之间协商的预设MSS为1460字节,则第一节点设备可以将协议帧封装为3个TCP数据包,其中TCP1数据包的数据部分的长度为1460字节,TCP2数据包的数据部分的长度为1460字节,TCP3数据包的数据部分的长度为1080字节,TCP4数据包的数据部分的长度为0。
在可选实施例中,第一节点设备可以在协议帧对应的最后一个包含数据的TCP数据包后增加一个TCP数据包,其中增加的TCP数据包的数据部分的长度为0。
在可选实施例中,第一节点设备可以接收第一基站发送的TCP数据包,进而在至少一个TCP数据包中的待发送的TCP数据包中携带第一基站发送的TCP数据包的确认序号,确认序号用于指示正确接收第一基站发送的TCP数据包。
现有第一节点设备接收第一基站发送的TCP数据包之后,需要向第一基站发送ACK数据包,ACK数据包用于指示第一节点设备正确接收第一基站发送的TCP数据,ACK数据包的数据部分的长度为0,且第一基站接收到ACK数据包之后,将误认为ACK数据包为协议帧对应的最后一个TCP数据包,针
对上述技术问题,本发明实施例可在至少一个TCP数据包中的待发送的TCP数据包中携带第一基站发送的TCP数据包的确认序号,确认序号用于指示正确接收第一基站发送的TCP数据包。
以图7C为例,当待发送的TCP数据包为TCP1数据包时,第一节点设备可以在TCP1数据包的32位确认序号处增加第一基站发送的TCP数据包的确认序号,第一基站接收到TCP1数据包之后,可以根据增加的确认序号,确定第一节点设备正确接收第一基站发送的TCP数据包。
在可选实施例中,第一节点设备将一个协议帧封装成至少一个TCP数据包之前,可以向第二节点设备发送通知消息,通知消息用于至少一个TCP数据包中的最后一个TCP数据包包括指示信息,指示信息用于指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包。
以图7D所示的设置帧的界面示意图为例,第一节点设备可以对设置帧进行扩展,在设置帧中增加字段“ENABLE_FRAME_TCP_ENCAP 0x71”,第二节点设备接收到该设置帧之后,可以根据上述字段确定第一节点设备的封装方式,进而将待发送给第一节点设备的协议帧通过上述封装方式封装成至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包包括指示信息,指示信息用于指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包。
以图7E所示的HTTP帧的结构示意图为例,HTTP2.0帧可以包括HEADERS(报头字段)和DATA(数据字段),HTTP1.1帧的首部信息封装在报头字段,第一节点设备可以在HTTP2.0头域(即报头字段)增加字段“TCP-Encapsulation:frame”,将增加字段的HTTP帧发送给第二节点设备,第二节点设备接收到增加字段的HTTP帧之后,在待发送的HTTP帧的HTTP2.0头域增加上述字段,并将增加字段的待发送HTTP帧发送给第一节点设备,则第一节点设备和第二节点设备协商得到通过上述封装方式对协议帧进行封装,进而将协议帧封装成至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包包括指示信息,指示信息用于指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包。
在可选实施例中,至少一个TCP数据包的报头可以包括数据类型信息,
数据类型信息用于指示TCP数据包的数据部分的数据类型。
以图7C为例,第一节点设备可以在包含数据的TCP数据包的选项字段增加数据类型信息,数据类型信息用于指示该TCP数据包的数据部分的数据类型。TCP数据包的数据部分的数据类型可以用协商设定的多位字节来表示,示例性的,数据类型信息可以为0001,用于指示TCP数据包的数据部分的数据类型为text或者html,即文本;数据类型信息可以为0010,用于指示TCP数据包的数据部分的数据类型为image或者jpeg,即图片;数据类型信息可以为0011,用于指示TCP数据包的数据部分的数据类型为video或者mp4,即音频。
以图7F为例,当协议帧为TLS帧时,TLS帧格式可以如图7F所示,第一节点设备可以在TLS帧的ContentType字段增加数据类型信息,数据类型信息用于指示该TLS帧的数据类型。进一步的,第一节点设备将TLS帧封装成至少一个TCP数据包时,可以在至少一个TCP数据包的报头增加数据类型信息,数据类型信息用于指示该TCP数据包的数据部分的数据类型。
S302,第一节点设备将至少一个TCP数据包发送给第一基站。
第一节点设备可以将至少一个TCP数据包发送给第一基站。例如,第一节点设备可以将TCP1数据包发送给第一基站。
S303,第一基站将至少一个TCP数据包发送给第二节点设备。
第一基站可以将第一节点设备发送的至少一个TCP数据包发送给第二节点设备。例如,第一基站可以将TCP1数据包发送给第二节点设备。
S304,第一基站与第二基站之间进行切换。
第一基站将TCP1数据包发送给第二节点设备之后,与第二基站之间进行切换。例如,第二节点设备从一个小区移动到另一个小区,第一基站的发射信号覆盖第一小区,第二基站的发射信号覆盖第二小区,为了保证通信的连续性,第二节点设备与第一基站之间的链路切换为第二节点设备与第二基站之间的链路。又如,第二节点设备在同一小区为避免同频干扰,从一个无线频道切换到另一个无线频道,即第二节点设备与第一基站之间的链路切换为第二节点设备与第二基站之间的链路。
S305,第一节点设备将至少一个TCP数据包发送给第二基站。
第一基站和第二基站之间进行切换之后,第一节点设备可以将至少一个
TCP数据包发送给第二基站。例如,第一节点设备将TCP1数据包发送给第一基站之后,可以将TCP2数据包、TCP3数据包以及TCP4数据包等发送给第二基站。
在可选实施例中,协议帧对应的最后一个TCP数据包的报头可以包括发送序号和确认序号,其中发送序号与下一个协议帧对应的起始TCP数据包的发送序号相同,确认序号是根据接收的第二基站发送的数据确认的。
具体实现中,TCP数据包的发送序号为前一个TCP数据包的发送序号及前一个TCP数据包的数据部分的长度之和。TCP4数据包的发送序号为TCP3数据包的发送序号及TCP3数据包的数据部分的长度之和,其中TCP4数据包的数据部分的长度为0,则TCP5数据包的发送序号为TCP4数据包的发送序号。即在第一协议帧对应的最后一个包含数据的TCP数据包后增加一个TCP数据包,增加的TCP数据包的发送序号与下一个协议帧对应的起始TCP数据包的发送序号相同。
具体实现中,第一节点设备向第二基站发送TCP2数据包之后,第二基站向第一节点设备返回TCP2数据包的确认序号,以指示第二基站正确接收TCP2数据包,则第一节点设备生成TCP3数据包的确认序号,其中TCP3数据包的确认序号是通过TCP2数据包的确认序号加1得到的。即在第一协议帧对应的最后一个包含数据的TCP数据包后增加一个TCP数据包,增加的TCP数据包的确认序号是根据接收的第二基站发送的数据确认的。
在可选实施例中,第一节点设备将至少一个TCP数据包发送给第二基站之前,可以向第二基站发送通知消息,通知消息用于至少一个TCP数据包中的最后一个TCP数据包包括指示信息,指示信息用于指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包,以便第二基站根据通知消息,获取数据部分的长度为0的TCP数据包。
S306,第二基站确定数据部分的长度为0的TCP数据包的下一个TCP数据包为下一个协议帧对应的起始TCP数据包。
第二基站接收到第一节点设备发送的至少一个TCP数据包之后,可以判断是否存在数据部分的长度为0的TCP数据包,当存在数据部分的长度为0的TCP数据包时,将下一个TCP数据包确定为下一个协议帧对应的起始TCP
数据包。例如,第二基站判断TCP4数据包的数据部分的长度为0,则第二基站可以确定TCP5数据包为第二协议帧对应的起始TCP数据包。
在可选实施例中,第一节点设备可以向第二基站发送通知消息,通知消息用于至少一个TCP数据包中的最后一个TCP数据包包括指示信息,指示信息用于指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包。具体实现中,第二基站接收到通知消息之后,可以知悉第一节点设备的协议帧封装方式,进而根据通知消息,获取协议帧对应的最后一个TCP数据包中的指示信息,根据指示信息,确定数据部分的长度为0的TCP数据包的下一个TCP数据包为下一个协议帧对应的起始TCP数据包。
S307,第二基站从起始TCP数据包开始对下一个协议帧进行数据解析。
第二基站确定下一个协议帧对应的起始TCP数据包之后,可以从起始TCP数据包开始对下一个协议帧进行数据解析。例如,第二基站可以从TCP5数据包开始解析第二协议帧的帧头和payload,并根据payload中的数据识别第二协议帧的数据类型。
在可选实施例中,至少一个TCP数据包的报头可以包括数据类型信息,则第二基站可以根据数据类型信息,获取TCP数据包的数据部分的数据类型,进而获取下一个协议帧的数据类型。
在可选实施例中,第二基站从起始TCP数据包对下一个协议帧进行数据解析之前,可以确定下一个协议帧是通过静态表实现报头字段压缩的。具体实现中,若协议帧是通过动态表实现报头字段压缩的,则由第一基站维护该动态表,当第一基站切换为第二基站时,第二基站无法获取该动态表,进而无法对下一个协议帧进行数据解析。本发明实施例中,确定下一个协议帧是通过静态表实现报头字段压缩的之后,对下一个协议帧进行数据解析,可提高数据解析效率。
在可选实施例中,下一个协议帧对应的各个TCP数据包属于同一HTPP2.0流,则第二基站从起始TCP数据包开始对下一个协议帧进行数据解析之后,当对下一个协议帧数据解析失败时,暂停对HTTP2.0流包括的协议帧进行数据解析。例如,第二节点设备将一张图片划分为多个协议帧,多个协议帧属于同一HTPP2.0流,各个协议帧的数据类型为图片,第一节点设备将每个协议
帧封装成至少一个TCP数据包,并将至少一个TCP数据包发送给第二基站之后,当第二基站将其中一个协议帧的数据类型解析为视频时,也会将该HTPP2.0流中的其他协议帧的数据类型解析为视频,本发明实施例在对协议帧数据解析失败时,暂停对HTTP2.0流包括的其他协议帧进行数据解析,可提高数据解析效率。
S308,第二基站将数据解析后的TCP数据包发送给第二节点设备。
在图3所示的协议帧传输方法中,第一节点设备将一个协议帧封装成至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包的数据部分的长度为0,第一基站与第二基站之间进行切换,第一节点设备将至少一个TCP数据包发送给第二基站,第二基站确定数据部分的长度为0的TCP数据包的下一个TCP数据包为下一个协议帧对应的起始TCP数据包,进而从起始TCP数据包开始对下一个协议帧进行数据解析,并将数据解析后的TCP数据包发送给第二节点设备,可确保一个TCP数据包的数据部分仅包括一个协议帧的数据,以便第二基站有效识别下一个协议帧的边界,以实现对下一个协议帧的数据解析。
请参见图4,图4为本发明第三实施例中提供的一种协议帧传输方法的流程示意图。本发明实施例中,管理终端将协议帧通过第一节点设备发送给第三节点设备的过程中,实时***第二节点设备,第二节点设备将第一节点设备发送的TCP数据包进行数据解析,并将数据解析后的TCP数据包发送给第三节点设备。第二节点设备可以为路由器、分组网关节点或者服务网关节点等。当管理终端为服务器时,第一节点设备可以为代理服务器,第三节点设备可以为客户端;当管理终端为客户端时,第一节点设备可以为代理客户端,第二节点设备可以为服务器,具体不受本发明实施例的限制。如图所示本发明实施例中的协议帧传输方法可以包括:
S401,管理终端向第一节点设备发送协议帧,协议帧包括终端标识信息。
管理终端可以向第一节点设备发送协议帧,协议帧包括终端标识信息,终端标识信息用于指示将协议帧对应的至少一个TCP数据包发送给终端标识信息对应的节点设备,即第三节点设备。
S402,第一节点设备将一个协议帧封装成至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包的数据部分的长度为0。
S403,第一节点设备将至少一个TCP数据包发送给第三节点设备。
第一节点设备可以将至少一个TCP数据包发送给第三节点设备。例如,第一节点设备可以将TCP1数据包发送给第三节点设备。
S404,第一节点设备将至少一个TCP数据包发送给第二节点设备。
第一节点设备将TCP1数据包发送给第三节点设备之后,实时***了有数据解析需求的第二节点设备,则第一节点设备将TCP2数据包、TCP3数据包以及TCP4数据包等发送给第二节点设备。
在可选实施例中,协议帧对应的最后一个TCP数据包的报头可以包括发送序号和确认序号,其中发送序号与下一个协议帧对应的起始TCP数据包的发送序号相同,确认序号与最后一个TCP数据包的前一个数据包的确认序号相同。
具体实现中,TCP数据包的发送序号为前一个TCP数据包的发送序号及前一个TCP数据包的数据部分的长度之和。TCP4数据包的发送序号为TCP3数据包的发送序号及TCP3数据包的数据部分的长度之和,其中TCP4数据包的数据部分的长度为0,则TCP5数据包的发送序号为TCP4数据包的发送序号。即在第一协议帧对应的最后一个包含数据的TCP数据包后增加一个TCP数据包,增加的TCP数据包的发送序号与下一个协议帧对应的起始TCP数据包的发送序号相同。
具体实现中,第一节点设备为代理客户端或者代理服务器,第一节点设备向第二节点设备发送TCP数据包,第二节点设备接收到TCP数据包之后,将TCP数据包的确认序号发送给管理终端,第一节点设备无法确认第二节点设备是否接收到TCP数据包。则在第一协议帧对应的最后一个包含数据的TCP数据包后增加一个TCP数据包,增加的TCP数据包的确认序号与最后一个包含数据的TCP数据包的确认序号相同。
S405,第二节点设备确定数据部分的长度为0的TCP数据包的下一个TCP数据包为下一个协议帧对应的起始TCP数据包。
S406,第二节点设备从起始TCP数据包开始对下一个协议帧进行数据解
析。
S407,第二节点设备将数据解析后的TCP数据包发送给第三节点设备。
在图4所示的协议帧传输方法中,第一节点设备将管理终端发送的一个协议帧封装成至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包的数据部分的长度为0,第一节点设备将至少一个TCP数据包发送给第二节点设备,第二节点设备确定数据部分的长度为0的TCP数据包的下一个TCP数据包为下一个协议帧对应的起始TCP数据包,进而从起始TCP数据包开始对下一个协议帧进行数据解析,并将数据解析后的TCP数据包发送给第三节点设备,可确保一个TCP数据包的数据部分仅包括一个协议帧的数据,以便第二节点设备有效识别下一个协议帧的边界,以实现对下一个协议帧的数据解析。
请参见图5,图5为本发明第四实施例中提供的一种协议帧传输方法的流程示意图,如图所示本发明实施例中的协议帧传输方法可以包括:
S501,第一节点设备将一个协议帧封装成至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包的数据量小于预设MSS。
第一节点设备可以将一个协议帧封装成至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包的数据量小于预设MSS,从而指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包。例如,协议帧的数据量为4000字节,第一节点设备和第三节点设备之间协商的预设MSS为1460字节,则第一节点设备可以将协议帧封装为3个TCP数据包,其中TCP1数据包的数据部分的长度为1460字节,TCP2数据包的数据部分的长度为1460字节,TCP3数据包的数据部分的长度为1080字节。
S502,第一节点设备将至少一个TCP数据包发送给第三节点设备。
S503,第一节点设备将至少一个TCP数据包发送给第二节点设备。
S504,第二节点设备确定数据量小于预设MSS的TCP数据包的下一个TCP数据包为下一个协议帧对应的起始TCP数据包。
S505,第二节点设备从起始TCP数据包开始对下一个协议帧进行数据解析。
S506,第二节点设备将数据解析后的TCP数据包发送给第三节点设备。
在图5所示的协议帧传输方法中,第一节点设备将一个协议帧封装成至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包的数据量小于预设MSS,第一节点设备将至少一个TCP数据包发送给第二节点设备,第二节点设备确定数据量小于预设MSS的TCP数据包的下一个TCP数据包为下一个协议帧对应的起始TCP数据包,进而从起始TCP数据包开始对下一个协议帧进行数据解析,并将数据解析后的TCP数据包发送给第三节点设备,可确保一个TCP数据包的数据部分仅包括一个协议帧的数据,以便第二节点设备有效识别下一个协议帧的边界,以实现对下一个协议帧的数据解析。
请参见图6,图6为本发明第五实施例中提供的一种协议帧传输方法的流程示意图,如图所示本发明实施例中的协议帧传输方法可以包括:
S601,第一节点设备将一个协议帧封装成至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包的报头包括标识信息。
第一节点设备可以将一个协议帧封装成至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包的报头包括标识信息,从而指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包。例如,协议帧的数据量为4000字节,第一节点设备和第三节点设备之间协商的预设MSS为1460字节,则第一节点设备可以将协议帧封装为3个TCP数据包,其中TCP1数据包的数据部分的长度为1460字节,TCP2数据包的数据部分的长度为1460字节,TCP3数据包的数据部分的长度为1080字节,第一节点设备在TCP3数据包的报头增加标识信息。
以图7C为例,第一节点设备可以在协议帧对应的最后一个TCP数据包的选项字段增加标识信息,从而指示该TCP数据包为协议帧对应的最后一个TCP数据包。
S602,第一节点设备将至少一个TCP数据包发送给第三节点设备。
S603,第一节点设备将至少一个TCP数据包发送给第二节点设备。
S604,第二节点设备确定报头包括标识信息的TCP数据包的下一个TCP数据包为下一个协议帧对应的起始TCP数据包。
S605,第二节点设备从起始TCP数据包开始对下一个协议帧进行数据解析。
S606,第二节点设备将数据解析后的TCP数据包发送给第三节点设备。
在图6所示的协议帧传输方法中,第一节点设备将一个协议帧封装成至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包的报头包括标识信息,第一节点设备将至少一个TCP数据包发送给第二节点设备,第二节点设备确定报头包括标识信息的TCP数据包的下一个TCP数据包为下一个协议帧对应的起始TCP数据包,进而从起始TCP数据包开始对下一个协议帧进行数据解析,并将数据解析后的TCP数据包发送给第三节点设备,可确保一个TCP数据包的数据部分仅包括一个协议帧的数据,以便第二节点设备有效识别下一个协议帧的边界,以实现对下一个协议帧的数据解析。
本发明实施例还提供了一种计算机存储介质,其中,所述计算机存储介质可存储有程序,该程序执行时包括上述图1、图3~图6所示的方法实施例中的部分或全部步骤。
本发明实施例还提供了一种计算机存储介质,其中,所述计算机存储介质可存储有程序,该程序执行时包括上述图2~图6所示的方法实施例中的部分或全部步骤。
请参见图8,图8为本发明实施例中提供的一种协议帧传输装置的结构示意图,所述协议帧传输装置可以用于实施结合图1或者图3~图6所示的方法实施例中的部分或全部步骤,所述协议帧传输装置至少可以包括封装单元801以及发送单元802,其中:
封装单元801,用于将一个协议帧封装成至少一个TCP数据包,其中至少一个TCP数据包中的最后一个TCP数据包可以包括指示信息,指示信息可以用于指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包。
发送单元802,用于将至少一个TCP数据包发送给节点设备。
在可选实施例中,最后一个TCP数据包的数据部分的长度可以为0,从而
指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包。
进一步可选的,最后一个TCP数据包的报头可以包括发送序号和确认序号,其中,发送序号与下一个协议帧对应的起始TCP数据包的发送序号相同,确认序号是根据接收的节点设备发送的数据确认的。
进一步可选的,最后一个TCP数据包的报头可以包括发送序号和确认序号,其中,发送序号与下一个协议帧对应的起始TCP数据包的发送序号相同,确认序号与最后一个TCP数据包的前一个数据包的确认序号相同。
进一步可选的,本发明实施例中的协议帧传输装置还可以包括:
获取单元803,用于封装单元801将协议帧封装成至少一个TCP数据包之前,获取管理终端发送的协议帧,其中,协议帧可以包括终端标识信息,终端标识信息可以用于指示将协议帧对应的至少一个TCP数据包发送给终端标识信息对应的节点设备。
进一步可选的,封装单元801,用于当协议帧对应的最后一个包含数据的TCP数据包的数据量等于预设MSS时,在最后一个包含数据的TCP数据包后增加一个TCP数据包,其中,增加的TCP数据包的数据部分的长度可以为0。
在可选实施例中,封装单元801,用于当协议帧对应的最后一个包含数据的TCP数据包的数据量小于预设MSS时,最后一个包含数据的TCP数据包仅包括协议帧的数据,其中,指示信息可以为最后一个包含数据的TCP数据包的数据量。
在可选实施例中,指示信息可以为包含在最后一个TCP数据包的报头中的标识信息。
在可选实施例中,至少一个TCP数据包的数据部分仅包括协议帧的数据。
在可选实施例中,本发明实施例中的协议帧传输装置还可以包括:
接收单元804,用于接收节点设备发送的TCP数据包。
封装单元801,用于在至少一个TCP数据包中的待发送的TCP数据包中携带节点设备发送的TCP数据包的确认序号,其中,确认序号可以用于指示正确接收节点设备发送的TCP数据包。
在可选实施例中,发送单元802,还用于封装单元801将协议帧封装成至少一个TCP数据包之前,向节点设备发送通知消息,其中,通知消息可以用
于至少一个TCP数据包中的最后一个TCP数据包包括指示信息,指示信息可以用于指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包。
进一步可选的,通知信息可以携带在协议帧的HTTP2.0头域或者HTTP2.0设置帧中。
在可选实施例中,至少一个TCP数据包的报头可以包括数据类型信息,其中,数据类型信息可以用于指示TCP数据包的数据部分的数据类型。
在可选实施例中,协议帧可以为TLS帧或者HTTP帧。
在可选实施例中,本发明实施例中的协议帧传输装置还可以包括:
压缩单元805,用于封装单元将协议帧封装成至少一个TCP数据包之前,将协议帧压缩成至少一个压缩包,至少一个压缩包仅包括协议帧。
在图8所示的协议帧传输装置中,封装单元801将一个协议帧封装成至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包包括指示信息,指示信息用于指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包,发送单元802将至少一个TCP数据包发送给节点设备,可确保一个TCP数据包的数据部分仅包括一个协议帧的数据。
请参见图9,图9为本发明第一实施例提供的一种节点设备的结构示意图,本发明实施例提供的节点设备可以用于实施上述图1或者图3~图6所示的本发明各实施例实现的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照图1或者图3~图6所示的本发明各实施例。
如图9所示,该节点设备包括:至少一个处理器901,例如CPU,至少一个网络接口903存储器904,至少一个通信总线902。其中,通信总线902用于实现这些组件之间的连接通信。其中,网络接口903可选的可以包括标准的有线接口、无线接口(如WI-FI接口),用于与外部网络进行通信。其中,存储器904可能包含高速RAM存储器,也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器904可选的可以包含至少一个位于远离前述处理器901的存储装置。处理器901可以结合图8所示的协议帧传输装置。存储器904中存储一组程序代码,且处理器901调用存储器904中存储的
程序代码,用于执行以下操作:
将一个协议帧封装成至少一个传输控制协议TCP数据包,其中,至少一个TCP数据包中的最后一个TCP数据包可以包括指示信息,指示信息可以用于指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包。
通过网络接口903将至少一个TCP数据包发送给节点设备。
在可选实施例中,最后一个TCP数据包的数据部分的长度可以为0,从而指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包。
进一步可选的,最后一个TCP数据包的报头可以包括发送序号和确认序号,其中,发送序号与下一个协议帧对应的起始TCP数据包的发送序号相同,确认序号是根据接收的节点设备发送的数据确认的。
进一步可选的,最后一个TCP数据包的报头可以包括发送序号和确认序号,其中,发送序号与下一个协议帧对应的起始TCP数据包的发送序号相同,确认序号与最后一个TCP数据包的前一个数据包的确认序号相同。
进一步可选的,处理器901将一个协议帧封装成至少一个TCP数据包之前,还可以执行以下操作:
通过网络接口903获取管理终端发送的协议帧,其中,协议帧可以包括终端标识信息,终端标识信息可以用于指示将协议帧对应的至少一个TCP数据包发送给终端标识信息对应的节点设备。
进一步可选的,处理器901将一个协议帧封装成至少一个TCP数据包,具体可以为:
当协议帧对应的最后一个包含数据的TCP数据包的数据量等于预设最大报文段长度MSS时,在最后一个包含数据的TCP数据包后增加一个TCP数据包,其中,增加的TCP数据包的数据部分的长度可以为0。
在可选实施例中,处理器901将一个协议帧封装成至少一个TCP数据包,具体可以为:
当协议帧对应的最后一个包含数据的TCP数据包的数据量小于预设MSS时,最后一个包含数据的TCP数据包仅包括协议帧的数据,指示信息为最后一个包含数据的TCP数据包的数据量。
在可选实施例中,指示信息可以为包含在最后一个TCP数据包的报头中
的标识信息。
在可选实施例中,至少一个TCP数据包的数据部分仅包括协议帧的数据。
在可选实施例中,处理器901通过网络接口903将至少一个TCP数据包发送给节点设备之前,还可以执行以下操作:
通过网络接口903接收节点设备发送的TCP数据包。
则处理器901将一个协议帧封装成至少一个TCP数据包,具体可以为:
在至少一个TCP数据包中的待发送的TCP数据包中携带节点设备发送的TCP数据包的确认序号,其中,确认序号可以用于指示正确接收节点设备发送的TCP数据包。
在可选实施例中,处理器901将一个协议帧封装成至少一个TCP数据包之前,还可以执行以下操作:
通过网络接口903向节点设备发送通知消息,其中,通知消息可以用于至少一个TCP数据包中的最后一个TCP数据包包括指示信息,指示信息可以用于指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包。
进一步可选的,通知消息可以携带在协议帧的HTTP2.0头域或者HTTP2.0设置帧中。
在可选实施例中,至少一个TCP数据包的报头可以包括数据类型信息,数据类型信息可以用于指示TCP数据包的数据部分的数据类型。
在可选实施例中,协议帧可以为TLS帧或者HTTP帧。
在可选实施例中,处理器901将协议帧封装成至少一个TCP数据包之前,还可以执行以下操作:
将协议帧压缩成至少一个压缩包,至少一个压缩包仅包括协议帧。
具体的,本发明实施例中介绍的终端可以用以实施本发明结合图1或者图3~图6介绍的方法实施例中的部分或全部流程。
请参见图10,图10为本发明实施例中提供的一种协议帧解析装置的结构示意图,所述协议帧解析装置可以用于实施结合图2~图6所示的方法实施例中的部分或全部步骤,所述协议帧解析装置至少可以包括接收单元1001、确定单元1002以及解析单元1003,其中:
接收单元1001,用于接收节点设备发送的将一个协议帧封装成的至少一个TCP数据包,其中,至少一个TCP数据包中的最后一个TCP数据包可以包括指示信息,指示信息可以用于指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包。
确定单元1002,用于根据指示信息,确定下一个协议帧对应的起始TCP数据包。
解析单元1003,用于从起始TCP数据包开始对下一个协议帧进行数据解析。
在可选实施例中,确定单元1002,用于当最后一个TCP数据包的数据部分的长度为0时,确定下一个TCP数据包为下一个协议帧对应的起始TCP数据包。
在可选实施例中,确定单元1002,用于当最后一个TCP数据包的数据量小于预设MSS时,确定下一个TCP数据包为下一个协议帧对应的起始TCP数据包。
在可选实施例中,确定单元1002,用于当最后一个TCP数据包的报头包括标识信息时,确定下一个TCP数据包为下一个协议帧对应的起始TCP数据包。
在可选实施例中,本发明实施例中的协议帧解析装置还可以包括:
发送单元1004,用于接收单元1001接收节点设备发送的至少一个TCP数据包之前,向节点设备发送TCP数据包。
确定单元1002,还用于当接收到的TCP数据包中携带向节点设备发送的TCP数据包的确认序号时,根据确认序号,确定节点设备正确接收向节点设备发送的TCP数据包。
在可选实施例中,接收单元1001,还用于确定单元1002根据指示信息,确定下一个协议帧对应的起始TCP数据包之前,接收节点设备发送的通知消息。
进一步的,本发明实施例中的协议帧解析装置还可以包括:
获取单元1005,用于根据通知信息,获取协议帧对应的最后一个TCP数据包中的指示信息。
在可选实施例中,至少一个TCP数据包的报头可以包括数据类型信息,则解析单元1003,用于根据起数据类型信息,获取TCP数据包的数据部分的数据类型。
在可选实施例中,确定单元1002,还用于解析单元1003从起始TCP数据包对下一个协议帧进行数据解析之前,确定下一个协议帧是通过静态表实现报头字段压缩的。
在可选实施例中,下一个协议帧对应的各个TCP数据包属于同一HTTP2.0流,则本发明实施例中的协议帧传输装置还可以包括:
控制单元1006,用于解析单元1003从起始TCP数据包开始对下一个协议帧进行数据解析之后,当对下一个协议帧数据解析失败时,暂停对HTTP2.0流包括的协议帧进行数据解析。
在图10所示的协议帧解析装置中,接收单元1001接收节点设备发送的将一个协议帧封装成的至少一个TCP数据包,至少一个TCP数据包中的最后一个TCP数据包包括指示信息,指示信息用于指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包,确定单元1002根据指示信息确定下一个协议帧对应的起始TCP数据包,解析单元1003从起始TCP数据包开始对下一个协议帧进行数据解析,可有效识别下一个协议帧的边界,以实现对下一个协议帧的数据解析。
请参见图11,图11为本发明第二实施例提供的一种节点设备的结构示意图,本发明实施例提供的节点设备可以用于实施上述图2~图6所示的本发明各实施例实现的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照图2~图6所示的本发明各实施例。
如图11所示,该终端设备包括:至少一个处理器1101,例如CPU,至少一个网络接口1103,存储器1104,至少一个通信总线1102。其中,通信总线1102用于实现这些组件之间的连接通信。其中,网络接口1103可选的可以包括标准的有线接口、无线接口(如WI-FI接口),用于与外部网络进行通信。其中,存储器1104可能包含高速RAM存储器,也可能还包括非不稳定的存储器,例如至少一个磁盘存储器。存储器1104可选的可以包含至少一个位于远离前述处
理器1101的存储装置。处理器1101可以结合图10所示的协议帧解析装置。存储器1104中存储一组程序代码,且处理器1101调用存储器1104中存储的程序代码,用于执行以下操作:
通过网络接口1103接收节点设备发送的将一个协议帧封装成的至少一个TCP数据包,其中,至少一个TCP数据包中的最后一个TCP数据包可以包括指示信息,指示信息可以用于指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包。
根据指示信息,确定下一个协议帧对应的起始TCP数据包。
从起始TCP数据包开始对下一个协议帧进行数据解析。
在可选实施例中,处理器1101根据指示信息,确定下一个协议帧对应的起始TCP数据包,具体可以为:
当最后一个TCP数据包的数据部分的长度为0时,确定下一个TCP数据包为下一个协议帧对应的起始TCP数据包。
在可选实施例中,处理器1101根据指示信息,确定下一个协议帧对应的起始TCP数据包,具体可以为:
当最后一个TCP数据包的数据量小于预设MSS时,确定下一个TCP数据包为下一个协议帧对应的起始TCP数据包。
在可选实施例中,处理器1101根据所述指示信息,确定下一个协议帧对应的起始TCP数据包,具体可以为:
当最后一个TCP数据包的报头包括标识信息时,确定下一个TCP数据包为下一个协议帧对应的起始TCP数据包。
在可选实施例中,处理器1101通过网络接口1103接收节点设备发送的将一个协议帧封装成的至少一个TCP数据包之前,还可以执行以下操作:
通过网络接口1103向节点设备发送TCP数据包。
处理器1101通过网络接口1103接收节点设备发送的将一个协议帧封装成的至少一个TCP数据包之后,还可以执行以下操作:
当接收的TCP数据包中携带向节点设备发送的TCP数据包的确认序号时,根据确认序号,确定节点设备正确接收向节点设备发送的TCP数据包。
在可选实施例中,处理器1101根据指示信息,确定下一个协议帧对应的
起始TCP数据包之前,还可以执行以下操作:
通过网络接口1103接收节点设备发送的通知消息。
根据通知消息,获取协议帧对应的最后一个TCP数据包中的指示信息。
在可选实施例中,至少一个TCP数据包的报头可以包括数据类型信息,则处理器1101从起始TCP数据包开始对下一个协议帧进行数据解析,具体可以为:
根据数据类型信息,获取TCP数据包的数据部分的数据类型。
在可选实施例中,处理器1101从起始TCP数据包对下一个协议帧进行数据解析之前,还可以执行以下操作:
确定下一个协议帧是通过静态表实现报头字段压缩的。
在可选实施例中,下一个协议帧对应的各个TCP数据包属于同一HTPP2.0流,则处理器1101从起始TCP数据包开始对下一个协议帧进行数据解析之后,还可以执行以下操作:
当对下一个协议帧数据解析失败时,暂停对HTTP2.0流包括的协议帧进行数据解析。
具体的,本发明实施例中介绍的终端可以用以实施本发明结合图2~图6介绍的方法实施例中的部分或全部流程。
请参见图12,图12是本发明实施例中提供的一种协议帧传输***的结构示意图,如图所示本发明实施例中的通信***至少可以包括协议帧传输装置1201和协议帧解析装置1202,其中:
协议帧传输装置1201,用于将一个协议帧封装成至少一个传输控制协议TCP数据包,其中,至少一个TCP数据包中的最后一个TCP数据包可以包括指示信息,指示信息可以用于指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包。
协议帧传输装置1201,还用于将至少一个TCP数据包发送给协议帧解析装置1202。
协议帧解析装置1202,用于根据指示信息,确定下一个协议帧对应的起始TCP数据包。
协议帧解析装置1202,还用于从起始TCP数据包开始对下一个协议帧进行数据解析。
协议帧解析装置1202,还用于将数据解析后的TCP数据包发送给节点设备1204。
在可选实施例中,当最后一个TCP数据包的数据部分的长度为0时,协议帧解析装置1202确定下一个TCP数据包为下一个协议帧对应的起始TCP数据包。
进一步可选的,最后一个TCP数据包的报头可以包括发送序号和确认序号,其中,发送序号与下一个协议帧对应的起始TCP数据包的发送序号相同,确认序号是根据接收的节点设备发送的数据确认的。
进一步可选的,最后一个TCP数据包的报头可以包括发送序号和确认序号,其中发送序号与下一个协议帧对应的起始TCP数据包的发送序号相同,确认序号与最后一个TCP数据包的前一个数据包的确认序号相同。
进一步可选的,协议帧传输装置1201将一个协议帧封装成至少一个TCP数据包之前,还可以执行以下操作:
获取管理终端1203发送的协议帧,协议帧包括终端标识信息,终端标识信息用于指示将协议帧对应的至少一个TCP数据包发送给终端标识信息对应的节点设备。
进一步可选的,协议帧传输装置1201将一个协议帧封装成至少一个TCP数据包,具体可以为:
当协议帧对应的最后一个包含数据的TCP数据包的数据量等于预设MSS时,在最后一个包含数据的TCP数据包后增加一个TCP数据包,增加的TCP数据包的数据部分的长度为0。
在可选实施例中,当协议帧对应的最后一个包含数据的TCP数据包的数据量小于预设MSS时,最后一个包含数据的TCP数据包仅包括协议帧的数据,指示信息为最后一个包含数据的TCP数据包的数据量,则当最后一个TCP数据包的数据量小于预设MSS时,协议帧解析装置1202可以确定下一个TCP数据包为下一个协议帧对应的起始TCP数据包。
在可选实施例中,指示信息可以为包含在最后一个TCP数据包的报头中
的标识信息,则当最后一个TCP数据包的报头包括标识信息时,协议帧解析装置1202可以确定下一个TCP数据包为下一个协议帧对应的起始TCP数据包。
在可选实施例中,至少一个TCP数据包的数据部分仅包括协议帧的数据。
在可选实施例中,协议帧传输装置1201将至少一个TCP数据包发送给协议帧解析装置1202之前,还可以执行以下操作:
协议帧传输装置1201接收协议帧解析装置1202发送的TCP数据包。
进一步的,协议帧传输装置1201将一个协议帧封装成至少一个TCP数据包,具体可以为:
在至少一个TCP数据包中的待发送的TCP数据包中携带节点设备发送的TCP数据包的确认序号,确认序号用于指示正确接收节点设备发送的TCP数据包。
进一步的,协议帧解析装置1202接收协议帧传输装置1201发送的至少一个TCP数据包之后,还可以执行以下操作:
当接收的TCP数据包中携带向协议帧传输装置1201发送的TCP数据包的确认序号时,根据确认序号,确定协议帧传输装置1201正确接收协议帧解析装置1202发送的TCP数据包。
在可选实施例中,协议帧传输装置1201将一个协议帧封装成至少一个TCP数据包之前,还可以执行以下操作:
向节点设备1204发送通知消息,通知消息用于至少一个TCP数据包中的最后一个TCP数据包包括指示信息,指示信息用于指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包。
进一步可选的,通知消息携带在协议帧的HTTP2.0头域或者HTTP2.0设置帧中。
在可选实施例中,协议帧解析装置1202根据指示信息,确定下一个协议帧对应的起始TCP数据包之前,还可以执行以下操作:
接收协议帧传输装置1201发送的通知消息。
根据通知消息,获取协议帧对应的最后一个TCP数据包中的指示信息。
在可选实施例中,至少一个TCP数据包的报头包括数据类型信息,数据
类型信息用于指示TCP数据包的数据部分的数据类型,则协议帧解析装置1202从起始TCP数据包开始对下一个协议帧进行数据解析,具体可以为:
根据数据类型信息,获取TCP数据包的数据部分的数据类型。
在可选实施例中,协议帧为TLS帧或者HTTP帧。
在可选实施例中,协议帧解析装置1202从起始TCP数据包对下一个协议帧进行数据解析之前,还可以执行以下操作:
确定下一个协议帧是通过静态表实现报头字段压缩的。
在可选实施例中,下一个协议帧对应的各个TCP数据包属于同一HTPP2.0流,则协议帧解析装置1202从起始TCP数据包开始对下一个协议帧进行数据解析之后,还可以执行以下操作:
当对下一个协议帧数据解析失败时,暂停对HTTP2.0流包括的协议帧进行数据解析。
在可选实施例中,协议帧传输装置1201将协议帧封装成至少一个TCP数据包之前,还可以执行以下操作:
将协议帧压缩成至少一个压缩包,至少一个压缩包仅包括协议帧。
在图12所示的协议帧传输***中,协议帧传输装置1201将一个协议帧封装成至少一个传输控制协议TCP数据包,至少一个TCP数据包中的最后一个TCP数据包包括指示信息,指示信息用于指示最后一个TCP数据包为协议帧对应的最后一个TCP数据包,协议帧传输装置1201将至少一个TCP数据包发送给协议帧解析装置1202,协议帧解析装置1202根据指示信息确定下一个协议帧对应的起始TCP数据包,进而从起始TCP数据包开始对下一个协议帧进行数据解析,可确保一个TCP数据包的数据部分仅包括一个协议帧的数据,以便协议帧解析装置1202有效识别下一个协议帧的边界,以实现对下一个协议帧的数据解析。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不是必须针对相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合
适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的程序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。
在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (51)
- 一种协议帧传输方法,其特征在于,包括:将一个协议帧封装成至少一个传输控制协议TCP数据包,所述至少一个TCP数据包中的最后一个TCP数据包包括指示信息,所述指示信息用于指示所述最后一个TCP数据包为所述协议帧对应的最后一个TCP数据包;将所述至少一个TCP数据包发送给节点设备。
- 根据权利要求1所述方法,其特征在于,所述最后一个TCP数据包的数据部分的长度为0,从而指示所述最后一个TCP数据包为所述协议帧对应的最后一个TCP数据包。
- 根据权利要求2所述方法,其特征在于,所述最后一个TCP数据包的报头包括发送序号和确认序号;所述发送序号与下一个协议帧对应的起始TCP数据包的发送序号相同,所述确认序号是根据接收的所述节点设备发送的数据确认的。
- 根据权利要求2所述方法,其特征在于,所述最后一个TCP数据包的报头包括发送序号和确认序号;所述发送序号与下一个协议帧对应的起始TCP数据包的发送序号相同,所述确认序号与所述最后一个TCP数据包的前一个数据包的确认序号相同。
- 根据权利要求4所述方法,其特征在于,所述将一个协议帧封装成至少一个TCP数据包之前,还包括:获取管理终端发送的所述协议帧,所述协议帧包括终端标识信息,所述终端标识信息用于指示将所述协议帧对应的至少一个TCP数据包发送给所述终端标识信息对应的节点设备。
- 根据权利要求2~5任一项所述方法,其特征在于,所述将一个协议帧封装成至少一个TCP数据包,包括:在所述协议帧对应的最后一个包含数据的TCP数据包后增加一个TCP数据包,所述增加的TCP数据包的数据部分的长度为0。
- 根据权利要求1所述方法,其特征在于,所述将一个协议帧封装成至少一个TCP数据包,包括:当所述协议帧对应的最后一个包含数据的TCP数据包的数据量小于预设 MSS时,所述最后一个包含数据的TCP数据包仅包括所述协议帧的数据,所述指示信息为所述最后一个包含数据的TCP数据包的数据量。
- 根据权利要求1所述方法,其特征在于,所述指示信息为包含在所述最后一个TCP数据包的报头中的标识信息。
- 根据权利要求1~8任一项所述方法,其特征在于,所述至少一个TCP数据包的数据部分仅包括所述协议帧的数据。
- 根据权利要求1~9任一项所述方法,其特征在于,所述将所述至少一个TCP数据包发送给节点设备之前,还包括:接收所述节点设备发送的TCP数据包;所述将一个协议帧封装成至少一个TCP数据包,包括:在所述至少一个TCP数据包中的待发送的TCP数据包中携带所述节点设备发送的TCP数据包的确认序号,所述确认序号用于指示正确接收所述节点设备发送的TCP数据包。
- 根据权利要求1~10任一项所述方法,其特征在于,所述将一个协议帧封装成至少一个TCP数据包之前,还包括:向所述节点设备发送通知消息,所述通知消息用于所述至少一个TCP数据包中的最后一个TCP数据包包括指示信息,所述指示信息用于指示所述最后一个TCP数据包为所述协议帧对应的最后一个TCP数据包。
- 根据权利要求11所述方法,其特征在于,所述通知消息携带在所述协议帧的HTTP2.0头域或者HTTP2.0设置帧中。
- 根据权利要求1~12任一项所述方法,其特征在于,所述至少一个TCP数据包的报头包括数据类型信息,所述数据类型信息用于指示所述TCP数据包的数据部分的数据类型。
- 根据权利要求1~13任一项所述方法,其特征在于,所述协议帧为传输层安全TLS帧或者超文本传输协议HTTP帧。
- 根据权利要求1~14任一项所述方法,其特征在于,所述将一个协议帧封装成至少一个TCP数据包之前,还包括:将所述协议帧压缩成至少一个压缩包,所述至少一个压缩包仅包括所述协议帧。
- 一种协议帧解析方法,其特征在于,包括:接收节点设备发送的将一个协议帧封装成的至少一个TCP数据包,所述至少一个TCP数据包中的最后一个TCP数据包包括指示信息,所述指示信息用于指示所述最后一个TCP数据包为所述协议帧对应的最后一个TCP数据包;根据所述指示信息,确定下一个协议帧对应的起始TCP数据包;从所述起始TCP数据包开始对所述下一个协议帧进行数据解析。
- 根据权利要求16所述方法,其特征在于,所述根据所述指示信息,确定下一个协议帧对应的起始TCP数据包包括:当所述最后一个TCP数据包的数据部分的长度为0时,确定下一个TCP数据包为所述下一个协议帧对应的起始TCP数据包。
- 根据权利要求16所述方法,其特征在于,所述根据所述指示信息,确定下一个协议帧对应的起始TCP数据包包括:当所述最后一个TCP数据包的数据量小于预设MSS时,确定下一个TCP数据包为所述下一个协议帧对应的起始TCP数据包。
- 根据权利要求16所述方法,其特征在于,所述根据所述指示信息,确定下一个协议帧对应的起始TCP数据包包括:当所述最后一个TCP数据包的报头包括标识信息时,确定下一个TCP数据包为所述下一个协议帧对应的起始TCP数据包。
- 根据权利要求16~19任一项所述方法,其特征在于,所述接收节点设备发送的将一个协议帧封装成的至少一个TCP数据包之前,还包括:向所述节点设备发送TCP数据包;所述接收节点设备发送的将一个协议帧封装成的至少一个TCP数据包之后,还包括:当所述接收的TCP数据包中携带向所述节点设备发送的TCP数据包的确认序号时,根据所述确认序号,确定所述节点设备正确接收向所述节点设备发送的TCP数据包。
- 根据权利要求16~20任一项所述方法,其特征在于,所述根据所述指示信息,确定下一个协议帧对应的起始TCP数据包之前,还包括:接收所述节点设备发送的通知消息;根据所述通知消息,获取所述协议帧对应的所述最后一个TCP数据包中的指示信息。
- 根据权利要求16~21任一项所述方法,其特征在于,所述至少一个TCP数据包的报头包括数据类型信息;所述从所述起始TCP数据包开始对所述下一个协议帧进行数据解析包括:根据所述数据类型信息,获取所述TCP数据包的数据部分的数据类型。
- 根据权利要求16~22任一项所述方法,其特征在于,所述从所述起始TCP数据包对所述下一个协议帧进行数据解析之前,还包括:确定所述下一个协议帧是通过静态表实现报头字段压缩的。
- 根据权利要求16~23任一项所述方法,其特征在于,所述下一个协议帧对应的各个TCP数据包属于同一HTPP2.0流;所述从所述起始TCP数据包开始对所述下一个协议帧进行数据解析之后,还包括:当对所述下一个协议帧数据解析失败时,暂停对所述HTTP2.0流包括的协议帧进行数据解析。
- 一种协议帧传输装置,其特征在于,包括:封装单元,用于将一个协议帧封装成至少一个TCP数据包,所述至少一个TCP数据包中的最后一个TCP数据包包括指示信息,所述指示信息用于指示所述最后一个TCP数据包为所述协议帧对应的最后一个TCP数据包;发送单元,用于将所述至少一个TCP数据包发送给节点设备。
- 根据权利要求25所述装置,其特征在于,所述最后一个TCP数据包的数据部分的长度为0,从而指示所述最后一个TCP数据包为所述协议帧对应的最后一个TCP数据包。
- 根据权利要求26所述装置,其特征在于,所述最后一个TCP数据包的报头包括发送序号和确认序号;所述发送序号与下一个协议帧对应的起始TCP数据包的发送序号相同,所述确认序号是根据接收的所述节点设备发送的数据确认的。
- 根据权利要求26所述装置,其特征在于,所述最后一个TCP数据包 的报头包括发送序号和确认序号;所述发送序号与下一个协议帧对应的起始TCP数据包的发送序号相同,所述确认序号与所述最后一个TCP数据包的前一个数据包的确认序号相同。
- 根据权利要求28所述装置,其特征在于,还包括:获取单元,用于所述封装单元将所述协议帧封装成所述至少一个TCP数据包之前,获取管理终端发送的所述协议帧,所述协议帧包括终端标识信息,所述终端标识信息用于指示将所述协议帧对应的至少一个TCP数据包发送给所述终端标识信息对应的节点设备。
- 根据权利要求26~29任一项所述装置,其特征在于,所述封装单元,用于在所述协议帧对应的最后一个包含数据的TCP数据包后增加一个TCP数据包,所述增加的TCP数据包的数据部分的长度为0。
- 根据权利要求25所述装置,其特征在于,所述封装单元,用于当所述协议帧对应的最后一个包含数据的TCP数据包的数据量小于预设MSS时,所述最后一个包含数据的TCP数据包仅包括所述协议帧的数据,所述指示信息为所述最后一个包含数据的TCP数据包的数据量。
- 根据权利要求25所述装置,其特征在于,所述指示信息为包含在所述最后一个TCP数据包的报头中的标识信息。
- 根据权利要求25~32任一项所述装置,其特征在于,所述至少一个TCP数据包的数据部分仅包括所述协议帧的数据。
- 根据权利要求25~33任一项所述装置,其特征在于,还包括:接收单元,用于接收所述节点设备发送的TCP数据包;所述封装单元,用于在所述至少一个TCP数据包中的待发送的TCP数据包中携带所述节点设备发送的TCP数据包的确认序号,所述确认序号用于指示正确接收所述节点设备发送的TCP数据包。
- 根据权利要求25~34任一项所述装置,其特征在于,所述发送单元,还用于所述封装单元将所述协议帧封装成所述至少一个TCP数据包之前,向所述节点设备发送通知消息,所述通知消息用于所述至少一个TCP数据包中的最后一个TCP数据包包括指示信息,所述指示信息用于 指示所述最后一个TCP数据包为所述协议帧对应的最后一个TCP数据包。
- 根据权利要求35所述装置,其特征在于,所述通知信息携带在所述协议帧的HTTP2.0头域或者HTTP2.0设置帧中。
- 根据权利要求25~36任一项所述装置,其特征在于,所述至少一个TCP数据包的报头包括数据类型信息,所述数据类型信息用于指示所述TCP数据包的数据部分的数据类型。
- 根据权利要求25~37任一项所述装置,其特征在于,所述协议帧为TLS帧或者HTTP帧。
- 根据权利要求25~38任一项所述装置,其特征在于,还包括:压缩单元,用于所述封装单元将所述协议帧封装成至少一个TCP数据包之前,将所述协议帧压缩成至少一个压缩包,所述至少一个压缩包仅包括所述协议帧。
- 一种节点设备,其特征在于,包括处理器、存储器以及网络接口,其中,所述存储器中存储一组程序代码,且所述处理器用于调用存储器中存储的程序代码,用于执行以下操作:将一个协议帧封装成至少一个传输控制协议TCP数据包,所述至少一个TCP数据包中的最后一个TCP数据包包括指示信息,所述指示信息用于指示所述最后一个TCP数据包为所述协议帧对应的最后一个TCP数据包;将所述至少一个TCP数据包发送给节点设备。
- 一种协议帧解析装置,其特征在于,包括:接收单元,用于接收节点设备发送的将一个协议帧封装成的至少一个TCP数据包,所述至少一个TCP数据包中的最后一个TCP数据包包括指示信息,所述指示信息用于指示所述最后一个TCP数据包为所述协议帧对应的最后一个TCP数据包;确定单元,用于根据所述指示信息,确定下一个协议帧对应的起始TCP数据包;解析单元,用于从所述起始TCP数据包开始对所述下一个协议帧进行数据解析。
- 根据权利要求41所述装置,其特征在于,所述确定单元,用于当所述最后一个TCP数据包的数据部分的长度为0时,确定下一个TCP数据包为所述下一个协议帧对应的起始TCP数据包。
- 根据权利要求41所述装置,其特征在于,所述确定单元,用于当所述最后一个TCP数据包的数据量小于预设MSS时,确定下一个TCP数据包为所述下一个协议帧对应的起始TCP数据包。
- 根据权利要求41所述装置,其特征在于,所述确定单元,用于当所述最后一个TCP数据包的报头包括标识信息时,确定下一个TCP数据包为所述下一个协议帧对应的起始TCP数据包。
- 根据权利要求41~44任一项所述装置,其特征在于,还包括:发送单元,用于所述接收单元接收所述节点设备发送的所述至少一个TCP数据包之前,向所述节点设备发送TCP数据包;所述确定单元,还用于当所述接收到的TCP数据包中携带向所述节点设备发送的TCP数据包的确认序号时,根据所述确认序号,确定所述节点设备正确接收向所述节点设备发送的TCP数据包。
- 根据权利要求41~45任一项所述装置,其特征在于,所述接收单元,还用于所述确定单元根据所述指示信息,确定下一个协议帧对应的起始TCP数据包之前,接收所述节点设备发送的通知消息;所述装置还包括:获取单元,用于根据所述通知信息,获取所述协议帧对应的所述最后一个TCP数据包中的指示信息。
- 根据权利要求41~46任一项所述装置,其特征在于,所述至少一个TCP数据包的报头包括数据类型信息;所述解析单元,用于根据所述起数据类型信息,获取所述TCP数据包的数据部分的数据类型。
- 根据权利要求41~47任一项所述装置,其特征在于,所述确定单元,还用于所述解析单元从所述起始TCP数据包对所述下一个协议帧进行数据解析之前,确定所述下一个协议帧是通过静态表实现报头字段压缩的。
- 根据权利要求41~48任一项所述装置,其特征在于,所述下一个协议 帧对应的各个TCP数据包属于同一HTTP2.0流;所述协议帧传输装置还包括:控制单元,用于所述解析单元从所述起始TCP数据包开始对所述下一个协议帧进行数据解析之后,当对所述下一个协议帧数据解析失败时,暂停对所述HTTP2.0流包括的协议帧进行数据解析。
- 一种节点设备,其特征在于,包括处理器、存储器以及网络接口,其中,所述存储器中存储一组程序代码,且所述处理器用于调用存储器中存储的程序代码,用于执行以下操作:接收节点设备发送的将一个协议帧封装成的至少一个TCP数据包,所述至少一个TCP数据包中的最后一个TCP数据包包括指示信息,所述指示信息用于指示所述最后一个TCP数据包为所述协议帧对应的最后一个TCP数据包;根据所述指示信息,确定下一个协议帧对应的起始TCP数据包;从所述起始TCP数据包开始对所述下一个协议帧进行数据解析。
- 一种协议帧传输***,其特征在于,包括如权利要求25~39任一项所述的协议帧传输装置和如权利要求41~49任一项所述的协议帧解析装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2015/083772 WO2017008203A1 (zh) | 2015-07-10 | 2015-07-10 | 一种协议帧传输方法、装置、节点设备以及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107078837A true CN107078837A (zh) | 2017-08-18 |
Family
ID=57756634
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580001016.7A Pending CN107078837A (zh) | 2015-07-10 | 2015-07-10 | 一种协议帧传输方法、装置、节点设备以及*** |
CN201580001010.XA Pending CN106537830A (zh) | 2015-07-10 | 2015-09-09 | 一种协议帧传输方法、装置、节点设备以及*** |
CN201580001012.9A Pending CN106664262A (zh) | 2015-07-10 | 2015-09-25 | 一种协议帧传输方法、装置、节点设备以及*** |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580001010.XA Pending CN106537830A (zh) | 2015-07-10 | 2015-09-09 | 一种协议帧传输方法、装置、节点设备以及*** |
CN201580001012.9A Pending CN106664262A (zh) | 2015-07-10 | 2015-09-25 | 一种协议帧传输方法、装置、节点设备以及*** |
Country Status (6)
Country | Link |
---|---|
US (3) | US20180109451A1 (zh) |
EP (3) | EP3297191A4 (zh) |
KR (1) | KR20180015745A (zh) |
CN (3) | CN107078837A (zh) |
BR (1) | BR112018000371A2 (zh) |
WO (2) | WO2017008203A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113193944A (zh) * | 2019-10-01 | 2021-07-30 | 柏思科技有限公司 | 发送和接收互联网协议分组上的传输控制协议段的改进方法和*** |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3092461A1 (fr) * | 2019-02-05 | 2020-08-07 | Orange | Procédé d’émission à deux protocoles, procédé de réception et dispositifs et signal correspondants. |
CN112105058B (zh) * | 2019-02-12 | 2023-07-04 | Oppo广东移动通信有限公司 | 链路连接方法及相关装置 |
US10817460B2 (en) * | 2019-08-28 | 2020-10-27 | Advanced New Technologies Co., Ltd. | RDMA data sending and receiving methods, electronic device, and readable storage medium |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110961A (zh) * | 2007-08-03 | 2008-01-23 | 北京创毅视讯科技有限公司 | 一种多媒体广播数据传输方法、装置及*** |
CN101436922A (zh) * | 2008-12-17 | 2009-05-20 | 烽火通信科技股份有限公司 | 一种基于udp协议传输大量数据的方法 |
CN102790659A (zh) * | 2012-07-18 | 2012-11-21 | 福建先创通信有限公司 | 一种移动通信***中数据包的传输方法 |
WO2014100973A1 (zh) * | 2012-12-25 | 2014-07-03 | 华为技术有限公司 | 视频处理方法、设备及*** |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6798777B1 (en) * | 2000-04-17 | 2004-09-28 | Juniper Networks, Inc. | Filtering and route lookup in a switching device |
US7543051B2 (en) * | 2003-05-30 | 2009-06-02 | Borland Software Corporation | Method of non-intrusive analysis of secure and non-secure web application traffic in real-time |
CN1299479C (zh) * | 2004-03-10 | 2007-02-07 | 中兴通讯股份有限公司 | 一种隧道包的分片发送方法 |
US7787481B1 (en) * | 2004-07-19 | 2010-08-31 | Advanced Micro Devices, Inc. | Prefetch scheme to minimize interpacket gap |
US7522623B2 (en) * | 2004-09-01 | 2009-04-21 | Qlogic, Corporation | Method and system for efficiently using buffer space |
JP2006109016A (ja) * | 2004-10-04 | 2006-04-20 | Matsushita Electric Ind Co Ltd | 送受信装置、送受信制御方法、プログラム、およびメモリ |
US7787372B2 (en) * | 2005-12-12 | 2010-08-31 | Viasat, Inc. | Transmission control protocol with performance enhancing proxy for degraded communication channels |
CN100556040C (zh) * | 2006-01-26 | 2009-10-28 | 华为技术有限公司 | 一种会话发起协议消息的发送和接收方法 |
US20090064291A1 (en) * | 2007-08-28 | 2009-03-05 | Mark Frederick Wahl | System and method for relaying authentication at network attachment |
JP4513036B2 (ja) * | 2008-04-04 | 2010-07-28 | ソニー株式会社 | 送信装置および方法、並びにプログラム |
CN102130910B (zh) * | 2011-02-28 | 2015-04-29 | 华为技术有限公司 | Tcp代理***和卸载方法及业务网关设备 |
CN102340390B (zh) * | 2011-10-26 | 2015-01-07 | 华为终端有限公司 | 数据包的传输方法及***、源节点设备与中继节点设备 |
JP5768683B2 (ja) * | 2011-11-28 | 2015-08-26 | 富士通株式会社 | 受信データ処理方法、通信装置、及びプログラム |
CN103916447A (zh) * | 2013-01-08 | 2014-07-09 | 无锡南理工科技发展有限公司 | 基于单片机的嵌入式web服务器 |
US10432529B2 (en) * | 2013-09-19 | 2019-10-01 | Connectivity Systems Incorporated | Enhanced large data transmissions and catastrophic congestion avoidance over IPv6 TCP/IP networks |
US9311811B1 (en) * | 2014-10-08 | 2016-04-12 | Google Inc. | Alarm profile for a fabric network |
CN104378315B (zh) * | 2014-11-17 | 2018-02-27 | 京信通信***(中国)有限公司 | 一种capwap隧道数据包传输的方法及装置 |
US10205804B2 (en) * | 2017-02-01 | 2019-02-12 | Hughes Network Systems, Llc | Methods and systems for enhanced support of TCP options in a TCP spoofed system |
-
2015
- 2015-07-10 EP EP15897933.6A patent/EP3297191A4/en not_active Withdrawn
- 2015-07-10 CN CN201580001016.7A patent/CN107078837A/zh active Pending
- 2015-07-10 WO PCT/CN2015/083772 patent/WO2017008203A1/zh active Application Filing
- 2015-09-09 EP EP15898112.6A patent/EP3300275A4/en not_active Withdrawn
- 2015-09-09 CN CN201580001010.XA patent/CN106537830A/zh active Pending
- 2015-09-09 BR BR112018000371A patent/BR112018000371A2/pt not_active Application Discontinuation
- 2015-09-09 WO PCT/CN2015/089260 patent/WO2017008385A1/zh active Application Filing
- 2015-09-25 EP EP15898128.2A patent/EP3297235A4/en not_active Withdrawn
- 2015-09-25 KR KR1020187000483A patent/KR20180015745A/ko not_active Application Discontinuation
- 2015-09-25 CN CN201580001012.9A patent/CN106664262A/zh active Pending
-
2017
- 2017-12-19 US US15/846,945 patent/US20180109451A1/en not_active Abandoned
- 2017-12-21 US US15/851,055 patent/US20180115634A1/en not_active Abandoned
-
2018
- 2018-01-09 US US15/866,085 patent/US20180131609A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110961A (zh) * | 2007-08-03 | 2008-01-23 | 北京创毅视讯科技有限公司 | 一种多媒体广播数据传输方法、装置及*** |
CN101436922A (zh) * | 2008-12-17 | 2009-05-20 | 烽火通信科技股份有限公司 | 一种基于udp协议传输大量数据的方法 |
CN102790659A (zh) * | 2012-07-18 | 2012-11-21 | 福建先创通信有限公司 | 一种移动通信***中数据包的传输方法 |
WO2014100973A1 (zh) * | 2012-12-25 | 2014-07-03 | 华为技术有限公司 | 视频处理方法、设备及*** |
Non-Patent Citations (1)
Title |
---|
赵伟艇: "《TCP/IP网络基础》", 31 August 2008 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113193944A (zh) * | 2019-10-01 | 2021-07-30 | 柏思科技有限公司 | 发送和接收互联网协议分组上的传输控制协议段的改进方法和*** |
CN113193944B (zh) * | 2019-10-01 | 2024-02-23 | 柏思科技有限公司 | 发送和接收互联网协议分组上的传输控制协议段的改进方法和*** |
Also Published As
Publication number | Publication date |
---|---|
US20180115634A1 (en) | 2018-04-26 |
US20180109451A1 (en) | 2018-04-19 |
WO2017008203A1 (zh) | 2017-01-19 |
EP3297235A1 (en) | 2018-03-21 |
US20180131609A1 (en) | 2018-05-10 |
EP3297191A1 (en) | 2018-03-21 |
EP3297235A4 (en) | 2018-06-20 |
EP3297191A4 (en) | 2018-06-13 |
WO2017008385A1 (zh) | 2017-01-19 |
EP3300275A1 (en) | 2018-03-28 |
CN106664262A (zh) | 2017-05-10 |
CN106537830A (zh) | 2017-03-22 |
KR20180015745A (ko) | 2018-02-13 |
BR112018000371A2 (pt) | 2018-09-11 |
EP3300275A4 (en) | 2018-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102790776B (zh) | 心跳连接归一处理方法、终端、服务器及通信*** | |
CN109587275A (zh) | 一种通信连接的建立方法及代理服务器 | |
CN113411313A (zh) | 数据传输方法、装置和*** | |
KR20110108341A (ko) | 통신 네트워크에서의 재전송 및 프래그먼트화를 위한 시스템 및 방법 | |
CN104115500A (zh) | 经由用户输入返回信道的双向隧穿用于无线显示 | |
CN111224792B (zh) | 会议接入方法和装置 | |
TWI396398B (zh) | 管理傳輸時間間隔集束傳輸之方法及通訊裝置 | |
US20180131609A1 (en) | Protocol frame transmission method, apparatus, and system, and node device | |
JP7050094B2 (ja) | パケット送信方法、プロキシサーバ、およびコンピュータ読取り可能記憶媒体 | |
EP3096563A1 (en) | Method, system and terminal for realizing network access via wifi | |
JP2013069277A (ja) | Nfcリーダ装置、nfcタグ装置、nfcシステム及びnfc方法 | |
CN107370654B (zh) | 一种伪线数据报文的封装、解封装方法和相关装置 | |
CN109067922A (zh) | 一种数据传输方法及装置 | |
US20180146077A1 (en) | Method and apparatus for determining processing mode for data packet | |
CN113141520B (zh) | 视频流传输方法、装置、电子设备及存储介质 | |
WO2017008401A1 (zh) | 一种协议帧传输方法、装置、节点设备以及*** | |
CN111490907B (zh) | 一种确定vxlan网络性能参数的方法及装置 | |
CN113630466B (zh) | 数据传输方法、***、电子设备及存储介质 | |
WO2017067224A1 (zh) | 一种报文处理方法及装置 | |
CN115733898A (zh) | 一种传输数据的方法以及相关设备 | |
CN112202691A (zh) | 一种gtp-u协议的报文处理方法、发送端及接收端 | |
WO2022222693A1 (zh) | 报文处理方法和装置、电子设备、计算机可读存储介质 | |
CN115314544B (zh) | 一种tcp数据单向传输方法、装置、设备及介质 | |
WO2024074085A1 (zh) | 数据传输方法、电子设备、传屏器及存储介质 | |
CN114390121A (zh) | 数据传输方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170818 |