CN108377223B - 一种多包识别方法、数据包识别方法及流量引导方法 - Google Patents
一种多包识别方法、数据包识别方法及流量引导方法 Download PDFInfo
- Publication number
- CN108377223B CN108377223B CN201810010714.9A CN201810010714A CN108377223B CN 108377223 B CN108377223 B CN 108377223B CN 201810010714 A CN201810010714 A CN 201810010714A CN 108377223 B CN108377223 B CN 108377223B
- Authority
- CN
- China
- Prior art keywords
- data packet
- application program
- matched
- data
- target server
- 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.)
- Active
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/22—Parsing or analysis of headers
-
- 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/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- 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/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1014—Server selection for load balancing based on the content of a request
-
- 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/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
-
- 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/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2475—Traffic characterised by specific attributes, e.g. priority or QoS for supporting traffic characterised by the type of applications
-
- 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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0245—Filtering by information in the payload
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例涉及互联网技术领域,公开了一种多包识别方法、数据包识别方法及流量引导方法。多包识别方法包括获取客户端与目标服务器建立连接后发送的第一数据包,查找与第一数据包的格式特征匹配的应用程序;在查找到匹配的应用程序时,获取第二数据包;在第二数据包的格式特征符合匹配的应用程序,且第二数据包满足预设条件时,确定第一数据包所属的应用程序。该流量引导方法包括:确定流量数据包所属的应用程序;根据应用程序对应的预设路由策略,对流量数据包进行转发。本发明实施方式在识别出数据包所属的应用程序后,基于该所属的应用程序对应的预设路由策略转发数据包,也有利于优化网络流量疏导,提高后端线路服务质量和用户的上网体验。
Description
技术领域
本发明实施例涉及互联网技术领域,特别涉及一种多包识别方法、数据包识别方法及流量引导方法。
背景技术
一般来说,不同的应用程序对网络线路的质量要求也不一样,例如,视频类应用程序对线路质量的要求往往要低于游戏类应用程序。在实际应用中,由于每条网络线路所能承载的流量是有限的,因此若使视频类应用程序与游戏类应用程序利用同一条质量好的网络线路,很可能出现线路过载而影响用户的上网体验。若为了负载均衡而把对线路质量要求高的应用程序分配到质量差的线路上,同样也会影响用户的上网体验。由此可见,对来自不同应用程序的流量进行合理的分配疏导具有重要的意义。
本发明的发明人发现,现有技术中,是基于服务器的IP来对流量进行引导的,这只能对发送给不同服务器的流量进行分配,而无法针对不同的应用程序进行引导,故无法基于不同的应用程序的不同需求进行线路分配。
发明内容
本发明实施方式的目的在于提供一种多包识别方法、数据包识别方法及流量引导方法,可识别出流量所属的应用程序,并根据识别出的应用程序对应的预设路由策略分配路由线路,从而优化网络流量疏导,提高后端线路服务质量和用户的上网体验。
为解决上述技术问题,本发明的实施方式提供了一种多包识别方法,包括:获取客户端在与目标服务器建立连接后发送的第一数据包,所述第一数据包为第一个携带有应用层数据的数据包;查找与所述第一数据包的应用层数据格式特征匹配的应用程序,并在查找到所述匹配的应用程序时,获取第二数据包;所述第二数据包为通过所述连接发送的第二个携带有应用层数据的数据包;在所述第二数据包的应用层数据格式特征符合所述匹配的应用程序,且所述第二数据包满足预设条件时,将所述第一数据包所属的应用程序识别为所述匹配的应用程序。
本发明的实施方式还提供了一种流量引导方法,包括:基于如上所述的多包识别方法确定流量数据包所属的应用程序;获取所述应用程序对应的预设路由策略;基于所述路由策略,对所述流量数据包进行转发。
本发明的实施方式还提供了一种数据包识别方法,包括:获取客户端在与目标服务器建立连接后发送的第一数据包,所述第一数据包为第一个携带有应用层数据的数据包;根据所述第一数据包携带的所述目标服务器的IP及端口号,判断预设的数据库中是否存在与所述第一数据包匹配的检索信息,所述检索信息包括服务器的IP和端口号;其中,所述数据库中存储有检索信息与应用程序的对应关系;若存在匹配的检索信息,则将所述第一数据包所属的应用程序识别为所述检索信息对应的应用程序;若不存在匹配的检索信息,则查找与所述第一数据包的格式特征匹配的应用程序;在查找到所述匹配的应用程序,且所述目标服务器的IP对应的应用程序中包括所述匹配的应用程序时,则将所述第一数据包所属的应用程序识别为所述匹配的应用程序;在查找到所述匹配的应用程序,但所述预设的数据库中不存在所述目标服务器的IP或者所述目标服务器的IP对应的应用程序中不包括所述匹配的应用程序时,获取第二数据包;所述第二数据包为通过所述连接发送的第二个携带有应用层数据的数据包;在所述第二数据包的格式特征符合所述匹配的应用程序,且所述第二数据包满足预设条件时,将所述第一数据包所属的应用程序识别为所述匹配的应用程序。
本发明的实施方式还提供了一种流量引导方法,包括:基于如上所述的数据包识别方法确定流量数据包所属的应用程序;获取所述应用程序对应的预设路由策略;基于所述路由策略,对所述流量数据包进行转发。
本发明实施方式相对于现有技术而言,先对第一数据包的应用层数据格式特征进行检测,查找与第一数据包匹配的应用程序,在查找到匹配的应用程序时再对第二数据包进行检测;当第二数据包也与该应用程序匹配且满足预设条件时,才将该第一数据包所属的应用程序识别为该应用程序。这种识别数据包所属的应用程序的方式,有利于提高识别出的应用程序的准确率。此外,本发明实施方式在识别出数据包所属的应用程序后,基于该所属的应用程序对应的预设路由策略转发数据包,也有利于优化网络流量疏导,提高后端线路服务质量和用户的上网体验。
另外,所述第二数据包满足预设条件,具体包括:所述第二数据包的应用层数据中的特定字段与所述第一数据包的应用层数据中的相应字段对应,且所述第二数据包的传输方向符合所述匹配的应用程序的数据传输方向。提供一种验证第二数据包是否是与第一数据包归属同一应用程序的方式。
另外,所述第一数据包携带有所述目标服务器的IP及端口号;在查找与所述第一数据包的格式特征匹配的应用程序之前,所述多包识别方法还包括:根据所述第一数据包携带的所述目标服务器的IP及端口号,判断预设的数据库中是否存在与所述第一数据包匹配的检索信息,所述检索信息包括服务器的IP和端口号;所述数据库中存储有检索信息与应用程序的对应关系;在判定存在匹配的检索信息时,将所述第一数据包所属的应用程序识别为所述检索信息对应的应用程序;在判定不存在所述检索信息时,执行查找与所述第一数据包的格式特征匹配的应用程序的步骤。在数据库中存储检索信息与应用程序的对应关系,有利于提高对数据包识别速率。
另外,所述第一数据包还携带所述客户端与所述目标服务器之间的协议类型;所述检索信息还包括客户端与目标服务器之间的协议类型;所述判断预设的数据库中是否存在与所述第一数据包匹配的检索信息,具体为:根据所述第一数据包携带的所述目标服务器的IP、端口号及所述第一数据包携带的协议类型,判断预设的数据库中是否存在与所述第一数据包匹配的检索信息。有利于提高匹配的准确度。
另外,在查找到所述匹配的应用程序,但所述预设的数据库中不存在所述目标服务器的IP或者所述目标服务器的IP对应的应用程序中不包括所述匹配的应用程序之后,在获取所述第二数据包之前,所述流量引导方法还包括:选择预设的路由路线,对所述第一数据包进行转发;所述预设的路由路线包含传输质量次于所述路由策略中所述匹配的应用程序对应的传输线路。先选择次优的路由路线转发第一数据包,一方面有利于避免因误识别而导致该基于路由策略选择的路由路线被挤占;另一方面也有利于避免数据包的堆积。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明第一实施方式的多包识别方法的流程图;
图2是是根据本发明第二实施方式的多包识别方法的流程图;
图3是根据本发明第三实施方式的多包识别方法的流程图;
图4是根据本发明第四实施方式的流量引导方法的流程图;
图5是根据本发明第五实施方式的数据包识别方法的流程图;
图6是根据本发明第六实施方式的流量引导方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本发明的第一实施方式涉及一种多包识别方法。具体流程如图1所示。
步骤101:获取客户端与目标服务器建立连接后发送的第一数据包。
本实施方式中,客户端与目标服务器之间建立的连接可以是TCP(TransmissionControlProtocol,传输控制协议)连接,也可以是UDP(User Datagram Protocol,用户数据报协议)连接,或者基于其他传输协议的连接,本发明不作限制。当客户端与目标服务器建立连接后,客户端与目标服务器即可通过该连接进行数据交互。
本发明实施例所提供的方法是基于代理程序来实现的,代理程序可运行在入口设备上,也可运行在中心服务器上。代理程序可从入口设备上获取客户端与目标服务器通过该连接发送的数据包。
步骤102:判断第一数据包的格式特征与已知应用程序的数据包的格式特征是否匹配。
本步骤中,可通过判断第一数据包应用层数据中的特定字节解析出的信息与已知应用程序的应用数据的相关特征是否对应相同,来判断第一数据包的格式特征与已知应用程序的数据包的格式特征是否匹配。当第一数据包应用层数据中的特定字节解析出的信息与某种已知应用程序的应用数据的相关特征对应相同时,则可判定该第一数据包的格式特征与该已知应用程序的数据包的格式特征匹配,该已知应用程序即是与第一数据包的应用层数据格式特征匹配的应用程序。
以客户端与目标服务器之间的连接是TCP连接为例,应用程序A所发出的数据包所搭载的应用层数据格式特征包括:第一、二字节为其数据解析单元长度,由于是交互式的通讯,在未收到目标服务器响应时,客户端是不会再次发起其它请求命令的,所以不会出现多个数据解析单元粘合在一起的情况,该处记录的长度应与应用层数据的真实长度相等;第三至第四字节为版本号固定值(如0xaa,0xff);第五至八字节为服务器的IP,其与客户端发往目标服务器的报文的目的地址或目标服务器发往客户端响应报文的源地址相同;第九至十字节为命令字段,对于客户端发出的第一个携带有应用层数据的数据包而言,其命令字段的值应为“0x00a1”,表示“登入验证响应”(与其相对应的命令字段值为0x01a1,表示“登入验证响应”)。
基于以上各特定字节的特征,当判定第一数据包应用层数据中的第一、二字节也为解析单元长度,且该长度与应用程序A的应用数据中的第一、二字节记录的长度;第三至第四字节也为版本号固定值,且与应用程序A的应用数据中的第三至第四字节记录的版本号固定值相同;第五至八字节也为服务器的IP,且与应用程序A的应用数据中的第五至八字节记录的服务器的IP相同;第九至十字节为命令字段,且命令字段为“0x00a1”时,就可判定该第一数据包应用层数据中的特定字节解析出的信息与上述应用程序A的应用数据的相关特征对应相同。这就表明该第一数据包的格式特征与应用程序A的数据包的格式特征匹配。该应用程序A即是与第一数据包的应用层数据格式特征匹配的应用程序。
值得注意的是,各个应用程序所包含的特定字节的格式特征也可能不相同,而该些已知应用程序的特定字节的格式特征可预先存储在本地,供后续匹配使用。
当判定第一数据包的格式特征与某种已知应用程序的数据包的格式特征匹配时,可进入步骤103;当判定第一数据包的格式特征与任意一种已知应用程序的数据包的格式特征都不匹配时,则可结束流程,即结束对第一数据包的识别。
步骤103:获取第二数据包,并判断第二数据包的格式特征是否符合该匹配的应用程序。
在判定第一数据包的格式特征与某种已知应用程序的数据包的格式特征匹配时,还无法最终确定该第一数据包所属的应用程序是否就是该匹配的应用程序,此时,可继续追踪该客户端与目标服务器之间的连接,并获取第二数据包。该第二数据包即是通过所述客户端与目标服务器之间的连接,发送的第二个携带有应用层数据的数据包。值得一提的是,若在继续追踪该客户端与目标服务器之间的连接的过程中,发现没有其它数据包,即没有后续的报文,可终止对数据包的识别过程。
在获取到第二数据包时,可对该第二数据包的格式特征进行检测,判断该第二数据包的格式特征是否也符合该匹配的应用程序(即步骤102中确定的与第一数据包的格式特征匹配的应用程序)。当第二数据包应用层数据中的特定字节解析出的信息与该匹配的应用程序的应用数据的相关特征也对应相同时,则可判定该第二数据包的格式特征也与该匹配的应用程序的数据包的格式特征匹配,此时,可进入步骤104;否则,则可结束识别流程。
步骤104:判断第二数据包是否满足预设条件。
该预设条件包括:第二数据包的应用层数据中的特定字段与第一数据包的应用层数据中的相应字段是否对应,且第二数据包的传输方向是否符合该匹配的应用程序的数据传输方向。
在实际应用中,有些应用程序在对应的客户端与目标服务器建立连接后,会连续向目标服务器发出两个携带有应用层数据的数据包。对于这种应用程序而言,该第二数据包的传输方向也应该是:从客户端发往目标服务器。而有些应用程序在对应的客户端与目标服务器建立连接后,会先向目标服务器发送一个携带有应用层数据的数据包,再收到服务器的响应之后,才会再发数据包。对于这种应用程序而言,第二数据包的传输方向应该是:从目标服务器发往客户端。因此,本步骤中需要判断第二数据包的传输方向是否符合该匹配的应用程序的数据传输方向。
此外,当该匹配的应用程序对应的第二数据包是由目标服务器发往客户端时,那么第一数据包的应用层数据中的命令字段应为“0x00a1”,第二数据包的应用层数据中的命令字段应为“0x01a1”,以表明两者的命令字段相对应。也就是说,在这种情况下,还需要判断第二数据包的应用层数据中的特定字段与第一数据包的应用层数据中的相应字段是否对应。
当第二数据包的应用层数据中的特定字段与第一数据包的应用层数据中的相应字段对应,且第二数据包的传输方向符合该匹配的应用程序的数据传输方向时,就可判定第二数据包满足预设条件,此时,可进入步骤105;否则,则可结束识别流程。
步骤105:将第一数据包所属的应用程序识别为该匹配的应用程序。
本步骤中,即可确定第一数据包所属的应用程序就是步骤102中确定的与第一数据包的格式特征匹配的应用程序。
本实施方式相对于现有技术而言,提供了一种根据多个数据包,识别数据包所属的应用程序的方式。本实施方式先对第一数据包的应用层数据格式特征进行检测,查找与第一数据包匹配的应用程序,在查找到匹配的应用程序时再对第二数据包进行检测;当第二数据包也与该应用程序匹配且满足预设条件时,才将该第一数据包所属的应用程序识别为该应用程序。这种识别数据包所属的应用程序的方式,有利于提高识别出的应用程序的准确率。
本发明的第二实施方式涉及一种多包识别方法。第二实施方式是在第一实施方式的基础上做的进一步改进,主要改进之处在于:第二实施方式在根据第一数据包的格式特征确定出匹配的应用程序后,还会进一步判断预设的数据库中是否存在目标服务器的IP,以及目标服务器的IP对应的应用程序中是否包括该匹配的应用程序。本实施方式的具体流程如图2所示。
步骤201:获取客户端在与目标服务器建立连接后发送的第一数据包。
步骤202:根据第一数据包携带的目标服务器的IP及端口号,判断预设的数据库中是否存在与第一数据包匹配的检索信息。
本实施方式会预先设置数据库,并在该数据库中存储检索信息与应用程序的对应关系。该对应关系可预先基于历史数据收集得到。检索信息可包括服务器的IP及服务器的端口号。
本步骤中,可先提取出第一数据包携带的目标服务器的IP和目标服务器的端口号,然后判断该数据库中是否存在与该目标服务器的IP和目标服务器的端口号对应相同的检索信息。若存在,则将该对应相同的检索信息作为与第一数据包匹配的检索信息,并进入步骤203;若不存在,则表明数据库中不存在与第一数据包匹配的检索信息,可进入步骤204。
步骤203:将第一数据包所属的应用程序识别为该匹配的检索信息对应的应用程序。
如上文所述,由于数据库中存储有检索信息与应用程序的对应关系,因此,在确定数据库中存在与第一数据包匹配的检索信息时,就可认定该匹配的检索信息对应的应用程序即是第一数据包所属的应用程序。
步骤204:判断第一数据包的格式特征与已知应用程序的数据包的格式特征是否匹配。若判定第一数据包的格式特征与某种已知应用程序的数据包的格式特征匹配,则进入步骤205;若判定第一数据包的格式特征与任意一种已知应用程序的数据包的格式特征都不匹配,则可结束识别流程。
步骤205:判断数据库中是否存在该目标服务器的IP。若存在,则进入步骤206;若不存在,则直接进入步骤207。
步骤206:判断目标服务器的IP对应的应用程序中是否包括该匹配的应用程序。
在确定数据库中存在该目标服务器的IP后,则可在数据库中查找与该目标服务器的IP对应的应用程序,并判断该对应的应用程序中是否包括步骤204确定出的匹配的应用程序。若包括,则可直接进入步骤209;否则,则进入步骤207。
步骤207:获取第二数据包,并判断第二数据包的格式特征是否符合该匹配的应用程序。
本步骤中,可继续追踪该客户端与目标服务器之间的连接,并获取通过该连接发送的第二数据包。在获取到第二数据包后,可对该第二数据包的格式特征进行检测,判断该第二数据包的格式特征是否也符合该匹配的应用程序(即步骤204中确定的与第一数据包的格式特征匹配的应用程序)。
当第二数据包应用层数据中的特定字节解析出的信息与该匹配的应用程序的应用数据的相关特征也对应相同时,则可判定该第二数据包的格式特征也与该匹配的应用程序的数据包的格式特征匹配,此时,可进入步骤208;否则,则可结束识别流程。
步骤208:判断第二数据包是否满足预设条件。
当第二数据包的应用层数据中的特定字段与第一数据包的应用层数据中的相应字段对应,且第二数据包的传输方向符合该匹配的应用程序的数据传输方向时,判定第二数据包满足预设条件,可进入步骤209;否则,则可结束识别流程。
步骤209:将第一数据包所属的应用程序识别为该匹配的应用程序。
步骤210:生成与第一数据包对应的检索信息,并将生成的检索信息与该匹配的应用程序之间的对应关系存储至数据库。
本步骤中可根据该目标服务器的IP及目标服务器的端口号,生成与第一数据包对应的检索信息,并将该生成的检索信息与该匹配的应用程序之间的对应关系存储至数据库中。这样,在客户端与目标服务器下次建立连接时,就可根据服务器的IP及端口号,从数据库中直接查找出对应的应用程序,这有利于提升识别效率。
需要说明的是,本实施方式还会为数据库中的每条记录(一条记录即是一种检索信息与一种应用程序的对应关系)设置超时时间,并在达到该超时时间时,从数据库中删除该条记录(即删除相应的检索信息与应用程序的对应关系)。这是因为一个服务器的一个端口所对应的应用程序是可能发生变化的,例如下架应用程序A,而换成部署应用程序B。而本实施方式中将检索信息与某种应用程序之间的对应关系存储至数据库中后,相当于固定了当前服务器的这一端口与该应用程序之间的对应关系。但实际应用中,当前服务器的这一端口所对应的应用程序是可能变更的,如由应用程序A变更为应用程序B。因此,为数据库中的每条记录设置超时时间,并在达到该超时间时删除相应的记录,有利于避免将应用程序B识别成应用程序A的情况。
另外,值得一提的是,本实施方式是以检索信息包括服务器的IP和服务器的端口号为例进行说明的。但在实际应用中,检索信息还可进一步包括客户端与服务器之间的协议类型(如TCP或UDP),这有利于提高识别出应用程序的准确性。此时,在步骤202中,就需要同时提取第一数据包中携带的目标服务器的IP、端口号以及客户端与目标服务器之间的协议类型,并根据目标服务器的IP、端口号以及该协议类型,判断数据库中是否存在与第一数据包匹配的检索信息。在步骤210中,就需要根据目标服务器的IP、端口号以及该协议类型,生成与第一数据包对应的检索信息。
更进一步的,本实施方式中,在根据第一数据包的格式特征确定出匹配的应用程序后,又进一步判断预设的数据库中是否存在目标服务器的IP,以及目标服务器的IP对应的应用程序中是否包括该匹配的应用程序,既有利于提高网络流量识别效率,又有利于降低误识别率。同时,在数据库中存储检索信息与应用程序的对应关系,使得客户端与目标服务器下次建立连接时,可直接从数据库中查找出数据包所属的应用程序,有利于提高对数据包识别效率。
本发明的第三实施方式涉及一种多包识别方法。第三实施方式是在第二实施方式的基础上做的进一步改进,主要改进之处在于,第三实施方式在判断据库中是否存在与第一数据包匹配的检索信息之前,还会判断目标服务器的端口号是否为预设的共用端口号。本实施方式的具体流程如图3所示。
步骤301:获取客户端在与目标服务器建立连接后发送的第一数据包。
步骤302:判断目标服务器的端口号是否为预设的共用端口号。
本步骤中,可先提取第一数据包中携带的目标服务器的端口号,并判断该目标服务器的端口号是否为预设的共用端口号(如TCP连接中,服务器的443端口、80端口、8080端口)。若不是,则进入步骤303;若是,则进入步骤305。
步骤303:根据第一数据包携带的目标服务器的IP及端口号,判断预设的数据库中是否存在与第一数据包匹配的检索信息。若存在,进入步骤304;若不存在,则进入步骤305。
步骤304:将第一数据包所属的应用程序识别为该匹配的检索信息对应的应用程序。
步骤305:判断第一数据包的格式特征与已知应用程序的数据包的格式特征是否匹配。若判定第一数据包的格式特征与某种已知应用程序的数据包的格式特征匹配,则进入步骤306;若判定第一数据包的格式特征与任意一种已知应用程序的数据包的格式特征都不匹配,则可结束识别流程。
步骤306:判断数据库中是否存在该目标服务器的IP。若存在,则进入步骤307;若不存在,则直接进入步骤308。
步骤307:判断目标服务器的IP对应的应用程序中是否包括该匹配的应用程序。若包括,则可直接进入步骤310;否则,则进入步骤308。
步骤308:获取第二数据包,并判断第二数据包的格式特征是否符合该匹配的应用程序。
即判断该第二数据包的格式特征是否也符合根据步骤305确定出的匹配的应用程序。若符合,可进入步骤309;否则,则可结束识别流程。
步骤309:判断第二数据包是否满足预设条件。
当第二数据包的应用层数据中的特定字段与第一数据包的应用层数据中的相应字段对应,且第二数据包的传输方向符合该匹配的应用程序的数据传输方向时,判定第二数据包满足预设条件,可进入步骤310;否则,则可结束识别流程。
步骤310:将第一数据包所属的应用程序识别为该匹配的应用程序。
步骤311:生成与第一数据包对应的检索信息,并将生成的检索信息与该匹配的应用程序之间的对应关系存储至数据库。
本实施方式相对于现有技术而言,先判断端口号是否为共用端口号,并根据判断结果执行不同的步骤,有利于避免服务器共用端口导致的误识别情况。
本发明的第四实施方式涉及一种流量引导方法。该流量引导方法基于第一、第二或第三实施方式的多包识别方法。本实施方式的具体流程如图4所示。
步骤401:基于多包识别方法确定流量数据包所属的应用程序。
本实施方式在客户端与目标服务器建立连接后,可先根据第一、第二或第三实施方式提供的多包识别方法,确定第一数据包所属的应用程序。
步骤402:获取该应用程序对应的预设路由策略。
由于不同的应用程序所要求的路由线路的质量不同,因此,本实施方式可预设根据每种应用程序的路由要求,为对应的应用程序设置路由策略。在确定出第一数据包所属的应用程序后,即可获取与该应用程序对应的路由策略。
步骤403:基于该路由策略,对流量数据包进行转发。
在获取路由策略后,即可根据该路由策略为流量数据包分配路由路线,并利用该路由路线转发流量数据包。如上文,在获取第一数据包所属的应用程序对应的路由策略后,即可基于该路由策略分配路由路线,并利用该路由路线发送第一数据包。此后,通过该连接发送的其他后续数据包(第一数据包之后的数据包),也会按照通过该路由路线进行传输,也就是说,本实施方式中只要进行一次路径选择即可。
本实施方式相对于现有技术而言,先识别流量数据包所属的应用程序,再根据所属的应用程序对应的预设路由策略转发数据包,有利于优化网络流量疏导,提高后端线路服务质量和用户的上网体验。
本发明的第五实施方式涉及一种数据包识别方法。具体流程如图5所示。
步骤501:获取客户端在与目标服务器建立连接后发送的第一数据包。
该第一数据包即是客户端与目标服务器建立连接后,发送的第一个携带有应用层数据的数据包。
步骤502:根据第一数据包携带的目标服务器的IP及端口号,判断预设的数据库中是否存在与第一数据包匹配的检索信息。
该数据库中存储检索信息与应用程序的对应关系。该检索信息可包括服务器的IP及服务器的端口号。本步骤中,可先提取出第一数据包携带的目标服务器的IP和目标服务器的端口号,然后判断该数据库中是否存在与该目标服务器的IP和目标服务器的端口号对应相同的检索信息。若存在,则将该对应相同的检索信息作为与第一数据包匹配的检索信息,并进入步骤503;若不存在,则表明数据库中不存在与第一数据包匹配的检索信息,可进入步骤504。
步骤503:将第一数据包所属的应用程序识别为该匹配的检索信息对应的应用程序。
步骤504:判断第一数据包的格式特征与已知应用程序的数据包的格式特征是否匹配。若判定第一数据包的格式特征与某种已知应用程序的数据包的格式特征匹配,则进入步骤505;若判定第一数据包的格式特征与任意一种已知应用程序的数据包的格式特征都不匹配,则可结束识别流程。
步骤505:判断数据库中是否存在该目标服务器的IP。若存在,则进入步骤506;若不存在,则直接进入步骤507。
步骤506:判断目标服务器的IP对应的应用程序中是否包括该匹配的应用程序。若包括,则可直接进入步骤509;否则,则进入步骤507。
步骤507:获取第二数据包,判断第二数据包的格式特征是否符合该匹配的应用程序。
在获取到第二数据包后,可对该第二数据包的格式特征进行检测,判断该第二数据包的格式特征是否也符合该匹配的应用程序(即步骤504中确定的与第一数据包的格式特征匹配的应用程序)。
当第二数据包应用层数据中的特定字节解析出的信息与该匹配的应用程序的应用数据的相关特征也对应相同时,则可判定该第二数据包的格式特征也与该匹配的应用程序的数据包的格式特征匹配,此时,可进入步骤508;否则,则可结束识别流程。
步骤508:判断第二数据包是否满足预设条件。
当第二数据包的应用层数据中的特定字段与第一数据包的应用层数据中的相应字段对应,且第二数据包的传输方向符合该匹配的应用程序的数据传输方向时,判定第二数据包满足预设条件,可进入步骤509;否则,则可结束识别流程。
步骤509:将第一数据包所属的应用程序识别为该匹配的应用程序。
值得一提的是,本实施方式是以数据库中的检索信息包括服务器的IP和服务器的端口号为例进行说明的。但在实际应用中,检索信息还可进一步包括客户端与服务器之间的协议类型(如TCP或UDP),这有利于提高识别出应用程序的准确性。而当检索信息包括服务器的IP、端口号及协议类型时,步骤502中就需要同时提取第一数据包中携带的目标服务器的IP、端口号以及客户端与目标服务器之间的协议类型,并根据目标服务器的IP、端口号以及该协议类型,判断数据库中是否存在与第一数据包匹配的检索信息。
本实施方式相对于现有技术而言,在根据第一数据包的格式特征,确定出匹配的应用程序后,又进一步判断预设的数据库中是否存在目标服务器的IP,以及目标服务器的IP对应的应用程序中是否包括该匹配的应用程序,既有利于提高网络流量识别效率,又有利于降低误识别率。
本发明的第六实施方式涉及一种流量引导方法。该流量引导方法基于第五实施方式的数据包识别方法。本实施方式的具体流程如图6所示。
步骤601:基于数据包识别方法确定流量数据包属的应用程序。
本实施方式在客户端与目标服务器建立连接后,可先根据第五实施方式提供的数据包识别方法,确定第一数据包所属的应用程序。
步骤602:获取该应用程序对应的预设路由策略。
在确定出第一数据包所属的应用程序后,即可获取与该应用程序对应的路由策略。
步骤603:基于该路由策略,对流量数据包进行转发。
在获取第一数据包所属的应用程序对应的路由策略后,即可基于该路由策略分配路由路线,并利用该路由路线发送第一数据包。此后,通过该连接发送的其他后续数据包(第一数据包之后的数据包),也会按照通过该路由路线进行传输,也就是说,本实施方式中只要进行一次路径选择即可。
值得一提的是,在实际应用中,在根据第五实施方式提供的数据包识别方法确定第一数据包的过程中,在查找到与第一数据包匹配的应用程序,且判定预设的数据库中不存在目标服务器的IP之后(即从步骤505直接进入步骤507之前),或者在判定预设的数据库中存在目标服务器的IP,但该目标服务器的IP对应的应用程序中不包括该匹配的应用程序之后(即从步骤506直接进入步骤507之前),本实施方式还可先选择一预设的路由路线,转发第一数据包,其中该预设的路由路线的传输质量次于路由策略中匹配的应用程序对应的传输线路。此后,在通过第五实施方式提供的数据包识别方法最终确定第一数据包所属的应用程序后,可生成与第一数据包匹配的检索信息,并将生成的检索信息与最终确定的应用程序之间的对应关系存储至数据库中。在该客户端与该目标服务器再次建立连接时,即可直接数据库中找到数据包所属的应用程序,并利用该应用程序对应的预设路由策略,转发数据包。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (10)
1.一种多包识别方法,其特征在于,包括:
获取客户端在与目标服务器建立连接后发送的第一数据包,所述第一数据包为第一个携带有应用层数据的数据包;
查找与所述第一数据包的应用层数据格式特征匹配的应用程序,并在查找到所述匹配的应用程序时,获取第二数据包;所述第二数据包为通过所述连接发送的第二个携带有应用层数据的数据包;
在所述第二数据包的应用层数据格式特征符合所述匹配的应用程序,且所述第二数据包满足预设条件时,将所述第一数据包所属的应用程序识别为所述匹配的应用程序。
2.根据权利要求1所述的多包识别方法,其特征在于,所述第二数据包满足预设条件,具体包括:
所述第二数据包的应用层数据中的特定字段与所述第一数据包的应用层数据中的相应字段对应,且所述第二数据包的传输方向符合所述匹配的应用程序的数据传输方向。
3.根据权利要求1所述的多包识别方法,其特征在于,所述第一数据包携带有所述目标服务器的IP及端口号;
在查找与所述第一数据包的格式特征匹配的应用程序之前,所述多包识别方法还包括:
根据所述第一数据包携带的所述目标服务器的IP及端口号,判断预设的数据库中是否存在与所述第一数据包匹配的检索信息,所述检索信息包括服务器的IP和端口号;所述数据库中存储有检索信息与应用程序的对应关系;
在判定存在匹配的检索信息时,将所述第一数据包所属的应用程序识别为所述检索信息对应的应用程序;
在判定不存在所述检索信息时,执行查找与所述第一数据包的格式特征匹配的应用程序的步骤。
4.根据权利要求3所述的多包识别方法,其特征在于,所述第一数据包还携带所述客户端与所述目标服务器之间的协议类型;所述检索信息还包括客户端与服务器之间的协议类型;
所述判断预设的数据库中是否存在与所述第一数据包匹配的检索信息,具体为:
根据所述第一数据包携带的所述目标服务器的IP、端口号及所述第一数据包携带的协议类型,判断预设的数据库中是否存在与所述第一数据包匹配的检索信息。
5.一种流量引导方法,其特征在于,包括:
基于权利要求1至4中任一项所述的多包识别方法确定流量数据包所属的应用程序;
获取所述应用程序对应的预设路由策略;
基于所述路由策略,对所述流量数据包进行转发。
6.一种数据包识别方法,其特征在于,包括:
获取客户端在与目标服务器建立连接后发送的第一数据包,所述第一数据包为第一个携带有应用层数据的数据包;
根据所述第一数据包携带的所述目标服务器的IP及端口号,判断预设的数据库中是否存在与所述第一数据包匹配的检索信息,所述检索信息包括服务器的IP和端口号;其中,所述数据库中存储有检索信息与应用程序的对应关系;
若存在匹配的检索信息,则将所述第一数据包所属的应用程序识别为所述检索信息对应的应用程序;
若不存在匹配的检索信息,则查找与所述第一数据包的格式特征匹配的应用程序;
在查找到所述匹配的应用程序,所述预设的数据库中存在所述目标服务器的IP且所述目标服务器的IP对应的应用程序中包括所述匹配的应用程序时,则将所述第一数据包所属的应用程序识别为所述匹配的应用程序;
在查找到所述匹配的应用程序,但所述预设的数据库中不存在所述目标服务器的IP或者所述目标服务器的IP对应的应用程序中不包括所述匹配的应用程序时,获取第二数据包;所述第二数据包为通过所述连接发送的第二个携带有应用层数据的数据包;
在所述第二数据包的格式特征符合所述匹配的应用程序,且所述第二数据包满足预设条件时,将所述第一数据包所属的应用程序识别为所述匹配的应用程序。
7.根据权利要求6所述的数据包识别方法,其特征在于,所述第一数据包还携带所述客户端与所述目标服务器之间的协议类型;所述检索信息还包括客户端与目标服务器之间的协议类型;
所述判断预设的数据库中是否存在与所述第一数据包匹配的检索信息,具体为:
根据所述第一数据包携带的所述目标服务器的IP、端口号及所述第一数据包携带的协议类型,判断预设的数据库中是否存在与所述第一数据包匹配的检索信息。
8.根据权利要求6所述的数据包识别方法,其特征在于,所述第二数据包满足预设条件,具体包括:
所述第二数据包的应用层数据中的特定字段与所述第一数据包的应用层数据中的相应字段对应,且所述第二数据包的传输方向符合所述匹配的应用程序的数据传输方向。
9.一种流量引导方法,其特征在于,包括:
基于权利要求6至8中任一项所述的数据包识别方法确定流量数据包所属的应用程序;
获取所述应用程序对应的预设路由策略;
基于所述路由策略,对所述流量数据包进行转发。
10.根据权利要求9所述的流量引导方法,其特征在于,在查找到所述匹配的应用程序,但所述预设的数据库中不存在所述目标服务器的IP或者所述目标服务器的IP对应的应用程序中不包括所述匹配的应用程序之后,在获取所述第二数据包之前,所述流量引导方法还包括:
选择预设的路由路线,对所述第一数据包进行转发;所述预设的路由路线包含传输质量次于所述路由策略中所述匹配的应用程序对应的传输线路。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810010714.9A CN108377223B (zh) | 2018-01-05 | 2018-01-05 | 一种多包识别方法、数据包识别方法及流量引导方法 |
US16/342,662 US11394652B2 (en) | 2018-01-05 | 2018-02-27 | Multi-packet recognition method, data packet recognition method, and traffic redirection method |
PCT/CN2018/077431 WO2019134240A1 (zh) | 2018-01-05 | 2018-02-27 | 一种多包识别方法、数据包识别方法及流量引导方法 |
EP18898163.3A EP3562109B1 (en) | 2018-01-05 | 2018-02-27 | Method for identifying multiple packets, method for identifying data packet, and traffic guiding method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810010714.9A CN108377223B (zh) | 2018-01-05 | 2018-01-05 | 一种多包识别方法、数据包识别方法及流量引导方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108377223A CN108377223A (zh) | 2018-08-07 |
CN108377223B true CN108377223B (zh) | 2019-12-06 |
Family
ID=63016631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810010714.9A Active CN108377223B (zh) | 2018-01-05 | 2018-01-05 | 一种多包识别方法、数据包识别方法及流量引导方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11394652B2 (zh) |
EP (1) | EP3562109B1 (zh) |
CN (1) | CN108377223B (zh) |
WO (1) | WO2019134240A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112995065B (zh) * | 2019-12-16 | 2022-06-17 | 中国移动通信集团湖南有限公司 | 一种互联网流量控制方法、装置及电子设备 |
CN111722979B (zh) * | 2020-06-10 | 2024-02-13 | 北京百度网讯科技有限公司 | 质量监测方法、装置、服务器及存储介质 |
CN111786985B (zh) * | 2020-06-28 | 2023-05-23 | 厦门市美亚柏科信息股份有限公司 | 一种解析tcp和udp数据的方法、装置及存储介质 |
CN114531384A (zh) * | 2020-10-30 | 2022-05-24 | 华为技术有限公司 | 一种业务处理方法、装置、设备及系统 |
CN114338270B (zh) * | 2021-12-24 | 2023-05-09 | 深圳市元征科技股份有限公司 | 数据通信方法、装置、电子设备及存储介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7418504B2 (en) * | 1998-10-30 | 2008-08-26 | Virnetx, Inc. | Agile network protocol for secure communications using secure domain names |
US8438281B2 (en) * | 2005-07-06 | 2013-05-07 | Cisco Technology, Inc. | Techniques for accounting for multiple transactions in a transport control protocol (TCP) payload |
CN101605123A (zh) | 2008-06-11 | 2009-12-16 | 中兴通讯股份有限公司 | 一种scsi分布式通信模型 |
US8572717B2 (en) | 2008-10-09 | 2013-10-29 | Juniper Networks, Inc. | Dynamic access control policy with port restrictions for a network security appliance |
CN101854342A (zh) * | 2009-03-31 | 2010-10-06 | 凹凸电子(武汉)有限公司 | 应用程序识别系统、装置以及识别网络应用程序的方法 |
CN101605132B (zh) * | 2009-07-13 | 2012-07-04 | 深圳市深信服电子科技有限公司 | 一种网络数据流识别方法 |
CN101741644B (zh) * | 2009-12-16 | 2012-05-30 | 成都市华为赛门铁克科技有限公司 | 流量检测方法及装置 |
CN102006242A (zh) * | 2010-12-24 | 2011-04-06 | 山石网科通信技术(北京)有限公司 | 路由器的选路方法及路由器 |
EP2692092B1 (en) * | 2011-03-28 | 2014-12-17 | Citrix Systems Inc. | Systems and methods for tracking application layer flow via a multi-connection intermediary device |
BR112015002323A2 (pt) * | 2012-07-31 | 2017-07-04 | Hewlett Packard Development Co | sistema de processamento de tráfego de rede |
US9397901B2 (en) * | 2012-12-18 | 2016-07-19 | Ixia | Methods, systems, and computer readable media for classifying application traffic received at a network traffic emulation device that emulates multiple application servers |
CN103491025B (zh) | 2013-09-13 | 2016-10-19 | 北京神州绿盟信息安全科技股份有限公司 | 一种应用流量识别的方法及装置 |
CN103873320B (zh) * | 2013-12-27 | 2017-06-13 | 北京天融信科技有限公司 | 加密流量识别方法及装置 |
-
2018
- 2018-01-05 CN CN201810010714.9A patent/CN108377223B/zh active Active
- 2018-02-27 EP EP18898163.3A patent/EP3562109B1/en active Active
- 2018-02-27 US US16/342,662 patent/US11394652B2/en active Active
- 2018-02-27 WO PCT/CN2018/077431 patent/WO2019134240A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
EP3562109B1 (en) | 2022-05-11 |
EP3562109A1 (en) | 2019-10-30 |
US11394652B2 (en) | 2022-07-19 |
US20210359950A1 (en) | 2021-11-18 |
EP3562109A4 (en) | 2020-03-18 |
CN108377223A (zh) | 2018-08-07 |
WO2019134240A1 (zh) | 2019-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108377223B (zh) | 一种多包识别方法、数据包识别方法及流量引导方法 | |
CN108418758B (zh) | 一种单包识别方法及流量引导方法 | |
CN112714045B (zh) | 一种基于设备指纹和端口的快速协议识别方法 | |
US10284440B2 (en) | Real-time adaptive processing of network data packets for analysis | |
CN103428261B (zh) | 通过硬件辅助处理http报头的方法 | |
CN103139315A (zh) | 一种适用于家庭网关的应用层协议解析方法 | |
CN111211980B (zh) | 传输链路管理方法、装置、电子设备及存储介质 | |
CN110300065B (zh) | 一种基于软件定义网络的应用流量识别方法及系统 | |
CN102075404A (zh) | 一种报文检测方法及装置 | |
WO2014187238A1 (zh) | 应用类型识别方法及网络设备 | |
CN103916294A (zh) | 协议类型的识别方法和装置 | |
CN103023670A (zh) | 基于dpi的报文业务类型识别方法及装置 | |
US8081634B2 (en) | Method and apparatus for processing downstream packets of cable modem in hybrid fiber coaxial networks | |
CN105516173A (zh) | 一种网络应用层协议识别的方法和系统 | |
CN104158627A (zh) | 一种异构链路多协议的自动识别系统和方法 | |
CN103873356A (zh) | 基于家庭网关的应用识别方法、系统和家庭网关 | |
CN104333483A (zh) | 互联网应用流量识别方法、系统及识别装置 | |
CN109922081B (zh) | 一种tcp流长连接数据分析方法 | |
CN107610452B (zh) | 近距离蓝牙热点定位的快速约车方法及系统 | |
CN102164182A (zh) | 一种网络协议识别设备和方法 | |
CN104333461A (zh) | 互联网应用流量识别方法、系统及识别装置 | |
KR20020049462A (ko) | 인터넷상 트래픽의 상위 계층 프로토콜들을 구분하는 방법및 장치 | |
CN111343206B (zh) | 一种针对数据流攻击的主动防御方法及装置 | |
CN116070218A (zh) | 工业资产的探测方法、终端设备及存储介质 | |
CN106330768A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |