CN103036789B - 报文发送方法、装置和网络出口设备 - Google Patents
报文发送方法、装置和网络出口设备 Download PDFInfo
- Publication number
- CN103036789B CN103036789B CN201210553033.XA CN201210553033A CN103036789B CN 103036789 B CN103036789 B CN 103036789B CN 201210553033 A CN201210553033 A CN 201210553033A CN 103036789 B CN103036789 B CN 103036789B
- Authority
- CN
- China
- Prior art keywords
- message
- network gateway
- gateway devices
- application
- address
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种报文发送方法、装置和网络出口设备,所述报文发送方法包括:网络出口设备接收内网主机发送的报文;如果未识别出该报文对应的应用,则将所述报文通过至少两个连接发送给该报文的目的IP地址对应的服务器,上述至少两个连接建立在网络出口设备与上述服务器之间当前可用的至少两条链路上;如果识别出上述报文对应的应用,则将上述报文通过上述应用对应的链路上建立的连接发送给上述服务器。本发明可以实现在识别出首报文对应的应用时,根据识别出的应用对该首报文所属的流进行路由;并且可以实现在未识别出首报文对应的应用时,根据应用对该首报文所属流进行路由,并且可以避免断流,减少延时,提高通信质量。
Description
技术领域
本发明涉及通信技术,尤其涉及一种报文发送方法、装置和网络出口设备。
背景技术
随着网络的发展,大部分公司或者网络应用场所采用多线路出口,而多线路的各线路间存在质量差异,例如光纤线路比非对称数字用户环路(Asymmetric Digital Subscriber Line;以下简称:ADSL)线路质量好。
为了有效利用网络资源,现有技术中,高质量线路一般用于传输对网络传输时延、抖动等特性敏感的关键应用,而低质量线路用于传输点对点(Point to Point;以下简称:P2P)等下载应用。此种情况,就需要出口网关设备能够根据应用对报文进行路由。
但是现有技术中提供的根据应用对报文进行路由的方法,处理非常有局限性,只能在识别出首报文对应的应用时,根据识别出的应用对该首报文所属的流进行路由;而在未识别出首报文对应的应用时,虽然现有技术提供的方法还可以继续对该首报文所属流中的后续报文对应的应用进行识别,但如果这时再根据识别出的应用对该流进行路由,则会导致断流。
发明内容
本发明提供一种报文发送方法、装置和网络出口设备,以实现根据应用对报文进行路由。
本发明一方面提供一种报文发送方法,包括:
网络出口设备接收内网主机发送的报文;
如果所述网络出口设备未识别出所述报文对应的应用,则所述网络出口设备将所述报文通过至少两个连接发送给所述报文的目的因特网协议IP地址对应的服务器,所述至少两个连接建立在所述网络出口设备与所述服务器之间当前可用的至少两条链路上;
如果所述网络出口设备识别出所述报文对应的应用,则所述网络出口设备将所述报文通过所述应用对应的链路上建立的连接发送给所述服务器。
本发明另一方面提供一种报文发送装置,所述报文发送装置设置在网络出口设备中,所述报文发送装置包括:
接收模块,用于接收内网主机发送的报文,所述报文包括除域名系统DNS请求之外的报文;
发送模块,用于当未识别出所述报文对应的应用时,将所述接收模块接收的报文通过至少两个连接发送给所述报文的目的因特网协议IP地址对应的服务器,所述至少两个连接建立在所述网络出口设备与所述服务器之间当前可用的至少两条链路上;以及当识别出所述报文对应的应用时,将所述接收模块接收的报文通过所述应用对应的链路上建立的连接发送给所述服务器。
本发明再一方面提供一种网络出口设备,包括如上所述的报文发送装置。
本发明的技术效果是:网络出口设备接收内网主机发送的报文之后,如果网络出口设备识别出该报文对应的应用,则网络出口设备将上述报文通过上述应用对应的链路上建立的连接发送给该报文的目的IP地址对应的服务器,从而可以实现在识别出首报文对应的应用时,根据识别出的应用对该首报文所属的流进行路由;而在未识别出首报文对应的应用时,网络出口设备通过至少两个连接发送该首报文,以及该首报文所属流的后续报文,该至少两个连接建立在该网络出口设备与上述服务器之间当前可用的至少两条链路上,直至识别出该首报文所属流对应的应用,之后网络出口设备就可以通过识别出的应用对应的链路上建立的连接发送该流的后续报文,从而可以实现在未识别出首报文对应的应用时,根据应用对该首报文所属流进行路由,并且可以避免断流,减少延时,提高通信质量。
附图说明
图1为本发明报文发送方法一个实施例的流程图;
图2为本发明报文发送方法另一个实施例的流程图;
图3为本发明应用场景一个实施例的示意图;
图4为本发明内网主机、网络出口设备和服务器之间的交互过程一个实施例的示意图;
图5为本发明报文发送装置一个实施例的结构示意图;
图6为本发明报文发送装置另一个实施例的结构示意图。
具体实施方式
图1为本发明报文发送方法一个实施例的流程图,如图1所示,该报文发送方法可以包括:
步骤101,网络出口设备接收内网主机发送的报文。
本实施例中,上述报文包括除域名系统(Domain Name System;以下简称:DNS)请求之外的报文。
步骤102,如果网络出口设备未识别出上述报文对应的应用,则该网络出口设备将上述报文通过至少两个连接发送给所述报文的目的因特网协议(Internet Protocol;以下简称:IP)地址对应的服务器,上述至少两个连接建立在网络出口设备与上述服务器之间当前可用的至少两条链路上。
步骤103,如果网络出口设备识别出上述报文对应的应用,则网络出口设备将上述报文通过该应用对应的链路上建立的连接发送给上述服务器。
本实施例中,报文对应的应用可以包括游戏、视频、文件传输协议(FileTransfer Protocol;以下简称:FTP)、迅雷、比特流下载(Bit-Torrent;以下简称:BT)、电驴、快播(Quick Video On Demand;以下简称:QVOD)等,上述应用与链路的对应关系是预先设置的,例如:视频应用对应链路1,网页应用对应链路2等等,这样,如果识别出上述报文对应的应用为视频应用,则将上述报文通过链路1上建立的连接发送给该报文的目的IP地址对应的服务器。
本实施例的一种实现方式中,步骤101,网络出口设备接收内网主机发送的报文之后,网络出口设备还可以从报文的报文头中提取该报文的五元组信息;然后,网络出口设备在流表中查找与上述五元组信息对应的表项,如果在上述流表中未查找到与上述五元组信息对应的表项,则网络出口设备确定上述报文为该报文所属流的首报文;接下来,网络出口设备可以在该网络出口设备保存的首包映射表中查找与上述报文的源IP地址和目的IP地址对应的表项,该首包映射表中记录源IP地址、目的IP地址与应用的对应关系。
这时,步骤102可以为:如果网络出口设备在首包映射表中未查找到与上述报文的源IP地址和目的IP地址对应的表项,则网络出口设备在该网络出口设备与上述服务器之间当前可用的至少两条链路上建立至少两个连接,将上述报文通过上述至少两个连接发送给上述报文的目的IP地址对应的服务器,上述至少两个连接建立在网络出口设备与上述服务器之间当前可用的至少两条链路上。
步骤103可以为:如果网络出口设备在首包映射表中查找到与上述报文的源IP地址和目的IP地址对应的表项,则该网络出口设备获得上述表项中记录的应用,在上述网络出口设备与上述服务器之间所述应用对应的链路上建立连接,并将上述报文通过该应用对应的链路上建立的连接发送给上述服务器。然后,网络出口设备记录上述报文所属流与该应用对应的链路的对应关系,这样网络出口设备接收到该报文所属流的后续报文时,可以直接根据该对应关系,将接收到的后续报文通过所属流对应的链路上建立的连接发送给上述服务器。
另外,当网络出口设备确定上述报文为该报文所属流的首报文时,该网络出口设备可以在上述流表中创建与该报文的五元组信息对应的表项,以供该网络出口设备识别该报文所属流中的后续报文。需要说明的是,网络出口设备每隔一段时间(例如:1分钟)对该流表中的表项轮询一遍,如果发现某一表项记录的数据流A没有新报文传输的时间超过预定时间长度(例如:5分钟),则该网络出口设备可以将该表项老化掉。这样,如果后续又接收到与数据流A具有相同五元组信息的报文之后,该网络出口设备的流表中就不会查找到该报文的五元组信息对应的表项,于是,该网络出口设备会确定该报文为该报文所属流的首报文,可以直接通过首包映射表确定该报文对应的应用。
本实施例中,流的含义为五元组信息相同的报文流。根据协议的不同通常定义的流有三种:传输控制协议(Transmission Control Protocol;以下简称:TCP)流、用户数据报(User Datagram Protocol;以下简称:UDP)流和IP流(专门针对非TCP/UDP应用)。对于上述三种流,五元组信息如表1所示。
表1
五元组信息 | |
TCP流 | 源IP地址、目的IP地址、IP协议、TCP源端口和TCP目的端口 |
UDP流 | 源IP地址、目的IP地址、IP协议、UDP源端口和UDP目的端口 |
IP流 | 源IP地址和目的IP地址 |
本实施例的另一种实现方式中,步骤101,网络出口设备接收内网主机发送的报文之后,网络出口设备还可以从上述报文的报文头中提取该报文的五元组信息;然后,网络出口设备在流表中查找与上述五元组信息对应的表项;如果网络出口设备在该流表中查找到与上述五元组信息对应的表项,则网络出口设备确定上述报文不是该报文所属流的首报文。
接下来,网络出口设备确定是否查找到上述报文所属流与链路的对应关系;具体地,上述报文所属流与链路的对应关系可以保存在上述流表与该报文所属流对应的表项中,也可以保存在除流表之外的表中,上述报文所属流与链路的对应关系可以保存在网络出口设备中,也可以保存在与该网络出口设备连接的存储介质中,本发明实施例对上述报文所属流与链路的对应关系的保存位置不作限定。
如果未查找到上述报文所属流与链路的对应关系,则网络出口设备可以确定在接收该报文之前,该网络出口设备尚未识别出该报文所属流对应的应用,于是网络出口设备识别该报文对应的应用。具体地,该网络出口设备可以通过深度包检测(Deep Packet Inspection;以下简称:DPI)和深度流检测(Deep Flow Inspection;以下简称:DFI)等常见的识别手段识别该报文对应的应用。
这时,步骤102可以为:如果网络出口设备未识别出上述报文对应的应用,则网络出口设备将上述报文通过至少两个连接发送给上述报文的目的IP地址对应的服务器,上述至少两个连接是网络出口设备在未识别出上述报文所属流的首报文对应的应用时建立的,上述至少两个连接建立在网络出口设备与上述服务器之间可用的至少两条链路上。
本实施例中,进一步地,如果网络出口设备识别出上述报文对应的应用且上述至少两个连接含有上述应用对应的链路上建立的连接,则该网络出口设备可以断开上述至少两条链路中除上述应用对应的链路之外的链路上建立的连接,通过上述应用对应的链路上建立的连接转发该报文所属流的后续报文。这时,该网络出口设备同样可以记录该报文所属流与上述链路的对应关系,这样在收到该流的后续报文之后,该网络出口设备可以根据记录的上述对应关系,直接将该流的后续报文通过上述链路上的连接发送给上述服务器。
进一步地,在网络出口设备确定是否查找到上述报文所属流与链路的对应关系之后,如果查找到上述报文所属流与链路的对应关系,则网络出口设备可以确定在接收该报文之前,该网络出口设备已识别出该报文所属流对应的应用,于是网络出口设备将上述报文通过该报文所属流对应的链路上建立的连接发送给上述服务器;
也就是说,在网络出口设备确定上述报文不是该报文所属流的首报文之后,网络出口设备先确定在该网络出口设备中是否查找到上述报文所属流与链路的对应关系,如果查找到,则网络出口设备将上述报文通过该报文所属流对应的链路上建立的连接发送给上述服务器;如果未查找到,则该网络出口设备通过DPI和DFI等常见的识别手段识别该报文对应的应用。如果网络出口设备未识别出上述报文对应的应用,则网络出口设备将上述报文通过在未识别出上述报文所属流的首报文对应的应用时建立的至少两个连接发送给上述服务器。
而如果识别出该报文对应的应用,则网络出口设备将上述报文通过该应用对应的链路上建立的连接发送给该报文的目的IP地址对应的服务器。然后,该网络出口设备可以断开上述至少两条链路中除上述应用对应的链路之外的链路上建立的连接,通过上述应用对应的链路上建立的连接转发该报文所属流的后续报文。这时,该网络出口设备同样可以记录该报文所属流与上述链路的对应关系,这样在收到该流的后续报文之后,该网络出口设备可以根据记录的上述对应关系,直接将该流的后续报文通过上述链路上的连接发送给上述服务器。
进一步地,一方面,如果上述报文不是该报文所属流的首报文,在网络出口设备识别出上述报文对应的应用之后,如果该网络出口设备保存的首包映射表中尚无与上述报文的源IP地址和目的IP地址对应的表项,则该网络出口设备在上述首包映射表中创建与所述报文的源IP地址和目的IP地址对应的表项,并在上述表项中记录该报文对应的应用。这样,后续再接收到具有相同源IP地址和相同目的IP地址的流的首报文时,该网络出口设备可以直接在首包映射表中查找到该报文对应的应用。当然,还可以在首包映射表的表项中记录该报文的源端口、目的端口和/或IP协议等信息,本发明实施例对此不作限定,也就是说,如果可以获取到报文的五元组信息中除源IP地址和目的IP地址之外的几个信息,那么可以将这几个信息与源IP地址和目的IP地址一起作为表项的键值,记录在首包映射表中,如果无法获取到五元组信息中除源IP地址和目的IP地址之外的几个信息,那么仅将源IP地址和目的IP地址作为表项的键值也不影响本发明的实现。
另一方面,很多应用都有自己特有的应用层协议,特别是大流量的应用。例如:FTP、迅雷、BT、电驴、QVOD等这类应用,都有一条或多条很明确的控制连接和更多条的数据连接。这类应用的控制连接(即控制流)的流量都很小,而数据连接(即数据流)的流量都很大。而数据连接的发起都是由控制连接控制或者引导的,举例来说上面提到的几种应用都会在控制连接传输资源报文,内网主机在获取到上述资源报文后就知道自己需要连接哪些服务器,即内网主机可以获知上述应用的数据流的目的IP地址,然后内网主机就可以据此发起数据连接。因此,本实施例中,如果上述报文不是该报文所属流的首报文,在网络出口设备识别上述报文对应的应用之后,如果该网络出口设备识别出上述报文对应的应用,并且确定上述报文所属流为上述报文对应的应用的控制流,则网络出口设备在接收到上述服务器针对上述报文发送的资源报文之后,从上述资源报文中解析获得上述报文对应的应用的数据流的目的IP地址;
如果该网络出口设备保存的首包映射表中尚无与上述内网主机的IP地址和上述报文对应的应用的数据流的目的IP地址对应的表项,则网络出口设备在首包映射表中创建与上述内网主机的IP地址和上述报文对应的应用的数据流的目的IP地址对应的表项,在该表项中记录上述报文对应的应用。这样,在内网主机后续创建上述应用的数据流时,网络出口设备接收到内网主机发送的上述应用的数据流的首报文之后,可以直接根据首包映射表的上述表项中记录的应用,识别出该首报文对应的应用。
本实施例中,步骤101,网络出口设备接收内网主机发送的报文之前,网络出口设备还可以接收内网主机发送的DNS请求,并将该DNS请求发送给DNS服务器;网络出口设备接收到DNS服务器针对该DNS请求发送的DNS应答之后,从DNS应答中获得统一资源定位符(Uniform ResourceLocator;以下简称:URL)、所述DNS服务器应答的IP地址和上述内网主机的IP地址。接下来,网络出口设备可以从该网络出口设备保存的URL应用库中查找上述URL对应的应用。如果网络出口设备保存的首包映射表中尚无与上述内网主机的IP地址和DNS服务器应答的IP地址对应的表项,则网络出口设备在首包映射表中建立与内网主机的IP地址和DNS服务器应答的IP地址对应的表项,并在上述表项中记录该URL对应的应用。
这样,在网络出口设备将上述DNS应答发送给内网主机之后,该内网主机可以从DNS应答中获取DNS服务器应答的IP地址,并根据DNS服务器应答的IP地址发起数据流。这样,网络出口设备接收到内网主机发起的上述数据流的首报文之后,可以直接根据首包映射表获知该首报文对应的应用,然后根据该应用对应的链路上建立的连接发送该首报文以及上述数据流的后续报文。
本实施例中,网络出口设备将上述报文通过至少两个连接发送给上述报文的目的IP地址对应的服务器之后,该网络出口设备接收上述服务器针对上述报文通过至少两个连接发送的至少两个应答;然后,网络出口设备将上述至少两个应答之一发送给内网主机。这样,内网主机与上述服务器之间通过网络出口设备维持了多个可以正常使用的连接,但这些连接对内网主机不可见,内网主机仅认为自身一直在与上述服务器保持通信。
上述实施例中,网络出口设备接收内网主机发送的报文之后,如果网络出口设备识别出该报文对应的应用,则网络出口设备将上述报文通过上述应用对应的链路上建立的连接发送给该报文的目的IP地址对应的服务器,从而可以实现在识别出首报文对应的应用时,根据识别出的应用对该首报文所属的流进行路由;而在未识别出首报文对应的应用时,网络出口设备通过至少两个连接发送该首报文,以及该首报文所属流的后续报文,该至少两个连接建立在该网络出口设备与上述服务器之间当前可用的至少两条链路上,直至识别出该首报文所属流对应的应用,之后网络出口设备就可以通过识别出的应用对应的链路上建立的连接发送该流的后续报文,从而可以实现在未识别出首报文对应的应用时,根据应用对该首报文所属流进行路由,并且可以避免断流,减少延时,提高通信质量。
图2为本发明报文发送方法另一个实施例的流程图,如图2所示,该报文发送方法可以包括:
步骤201,网络出口设备接收内网主机发送的报文。
步骤202,网络出口设备判断该报文是否为该报文所属流的首报文。如果是,则执行步骤203。如果否,即该报文不是该报文所属流的首报文,则执行步骤207。
本实施例中,流的含义为五元组信息相同的报文流。根据协议的不同通常定义的流有三种:TCP流、UDP流和IP流(专门针对非TCP/UDP应用)。对于上述三种流,五元组信息如表1所示。
具体地,网络出口设备可以采用以下方式判断该报文是否为该报文所属流的首报文:网络出口设备从报文的报文头中提取该报文的五元组信息;然后,网络出口设备在流表中查找与上述五元组信息对应的表项,如果在上述流表中未查找到与上述五元组信息对应的表项,则网络出口设备确定上述报文为该报文所属流的首报文;如果该网络出口设备在上述流表中查找到与上述五元组信息对应的表项,则该网络出口设备可以确定上述报文不是该报文所属流的首报文。
另外,当网络出口设备确定上述报文为该报文所属流的首报文时,该网络出口设备可以在上述流表中创建与该报文的五元组信息对应的表项,以供该网络出口设备识别该报文所属流中的后续报文。
需要说明的是,网络出口设备每隔一段时间(例如:1分钟)对该流表中的表项轮询一遍,如果发现某一表项记录的数据流A没有新报文传输的时间超过预定时间长度(例如:5分钟),则该网络出口设备将该表项老化掉。这样,如果后续又接收到与数据流A具有相同五元组信息的报文之后,该网络出口设备的流表中就不会查找到该报文的五元组信息对应的表项,于是,该网络出口设备会确定该报文为该报文所属流的首报文。
步骤203,网络出口设备在该网络出口设备保存的首包映射表中查找与上述报文的源IP地址和目的IP地址对应的表项。
其中,该首包映射表中记录源IP地址、目的IP地址与应用的对应关系。
步骤204,判断在首包映射表中是否查找到与上述报文的源IP地址和目的IP地址对应的表项。如果是,则执行步骤205;如果否,即在首包映射表中未查找到与上述报文的源IP地址和目的IP地址对应的表项,则执行步骤206。
步骤205,网络出口设备从查找到的表项中获知上述报文对应的应用,在上述网络出口设备与上述服务器之间所述应用对应的链路上建立连接,将上述报文通过该应用对应的链路上建立的连接发送给该报文的目的IP地址对应的服务器。
然后,网络出口设备可以记录上述报文所属流与该应用对应的链路的对应关系,这样网络出口设备接收到该报文所属流的后续报文时,可以直接根据该对应关系,将接收到的后续报文通过所属流对应的链路上建立的连接发送给上述服务器。
具体地,如果在首包映射表中查找到与上述报文的源IP地址和目的IP地址对应的表项,则网络出口设备可以直接从该表项中获知上述报文对应的应用,也即网络出口设备识别出上述报文对应的应用。
本实施例中,报文对应的应用可以包括游戏、视频、FTP、迅雷、BT、电驴、QVOD等,上述应用与链路的对应关系是预先设置的,例如:视频应用对应链路1,网页应用对应链路2等等,这样,如果识别出上述报文对应的应用为视频应用,则将上述报文通过链路1上建立的连接发送给该报文的目的IP地址对应的服务器。
步骤206,网络出口设备在该网络出口设备与上述服务器之间当前可用的至少两条链路上建立至少两个连接,将上述报文通过上述至少两个连接发送给该报文的目的IP地址对应的服务器。
具体地,如果在首包映射表中未查找到与上述报文的源IP地址和目的IP地址对应的表项,则该网络出口设备无法识别出该报文对应的应用。于是,网络出口设备在该网络出口设备与该报文的目的IP地址对应的服务器之间当前可用的至少两条链路上建立至少两个连接,将上述报文通过上述至少两个连接发送给上述服务器。
步骤207,网络出口设备确定是否查找到上述报文所属流与链路的对应关系。如果是,则执行步骤208;如果否,即未查找到上述报文所属流与链路的对应关系,则执行步骤209。
具体地,上述报文所属流与链路的对应关系可以保存在上述流表与该报文所属流对应的表项中,也可以保存在除流表之外的表中,上述报文所属流与链路的对应关系可以保存在网络出口设备中,也可以保存在与网络出口设备连接的存储介质中,本发明实施例对上述报文所属流与链路的对应关系的保存位置不作限定。
步骤208,网络出口设备将上述报文通过该报文所属流对应的链路上建立的连接发送给上述服务器。
具体地,如果查找到上述报文所属流与链路的对应关系,则网络出口设备可以确定在接收该报文之前,该网络出口设备已识别出该报文所属流对应的应用,于是网络出口设备将上述报文通过该报文所属流对应的链路上建立的连接发送给上述服务器。
步骤209,网络出口设备识别该报文对应的应用。
具体地,如果未查找到上述报文所属流与链路的对应关系,则网络出口设备可以确定在接收该报文之前,该网络出口设备尚未识别出该报文所属流对应的应用,于是网络出口设备继续识别该报文对应的应用。具体地,该网络出口设备可以通过DPI和DFI等常见的识别手段识别该报文对应的应用。
步骤210,判断网络出口设备是否识别出该报文对应的应用。如果否,则执行步骤211;如果是,即网络出口设备识别出该报文对应的应用,则执行步骤212。
步骤211,网络出口设备将上述报文通过至少两个连接发送给上述报文的目的IP地址对应的服务器。其中,上述至少两个连接是网络出口设备在未识别出上述报文所属流的首报文对应的应用时建立的,上述至少两个连接建立在网络出口设备与上述服务器之间可用的至少两条链路上。
本步骤中,由于该报文不是该报文所属流的首报文,并且网络出口设备未识别出该报文对应的应用,这说明网络出口设备也并未识别出该报文所属流的首报文所对应的应用,在网络出口设备未识别出该报文所属流的首报文所对应的应用时,网络出口设备就已经在网络出口设备与上述服务器之间可用的至少两条链路上建立起了至少两个连接,对于该流中未识别出应用的报文,网络出口设备均通过上述至少两个连接发送给上述服务器。
步骤212,网络出口设备将上述报文通过该应用对应的链路上建立的连接发送给上述报文的目的IP地址对应的服务器。
步骤213,网络出口设备断开至少两条链路中除上述应用对应的链路之外的链路上建立的连接,通过上述应用对应的链路上建立的连接转发该报文所属流的后续报文。
本步骤中,由于该报文不是该报文所属流的首报文,这说明在接收到该报文之前,网络出口设备未识别出该报文所属流对应的应用,当然,网络出口设备也并未识别出该报文所属流的首报文所对应的应用,在网络出口设备未识别出该报文所属流的首报文所对应的应用时,网络出口设备在该网络出口设备与上述服务器之间可用的至少两条链路上建立起了至少两个连接,对于该流中未识别出应用的报文,网络出口设备通过上述至少两个连接发送给上述服务器。在识别出该报文所属流对应的应用之后,网络出口设备就可以断开至少两条链路中除上述应用对应的链路之外的链路上建立的连接,通过上述应用对应的链路上建立的连接转发该报文所属流的后续报文。
这时,该网络出口设备同样可以记录该报文所属流与上述链路的对应关系,这样在收到该流的后续报文之后,该网络出口设备可以根据记录的上述对应关系,直接将该流的后续报文通过上述链路上的连接发送给上述服务器。
另外,本实施例中,在步骤206或步骤211,网络出口设备将上述报文通过至少两个连接发送给上述报文的目的IP地址对应的服务器之后,该网络出口设备接收上述服务器针对上述报文通过至少两个连接发送的至少两个应答;然后,网络出口设备将上述至少两个应答之一发送给内网主机。这样,内网主机与上述服务器之间通过网络出口设备维持了多个可以正常使用的连接,但这些连接对内网主机不可见,内网主机仅认为自身一直在与上述服务器保持通信。
本实施例中,进一步地,一方面,如果上述报文不是该报文所属流的首报文,在网络出口设备识别出上述报文对应的应用之后,如果该网络出口设备保存的首包映射表中尚无与上述报文的源IP地址和目的IP地址对应的表项,则该网络出口设备在上述首包映射表中创建与所述报文的源IP地址和目的IP地址对应的表项,并在上述表项中记录该报文对应的应用。这样,后续再接收到具有相同源IP地址和相同目的IP地址的流的首报文时,该网络出口设备可以直接在首包映射表中查找到该报文对应的应用。当然,还可以在首包映射表的表项中记录该报文的源端口、目的端口和/或IP协议等信息,本发明实施例对此不作限定,也就是说,如果可以获取到报文的五元组信息中除源IP地址和目的IP地址之外的几个信息,那么可以将这几个信息与源IP地址和目的IP地址一起作为表项的键值,记录在首包映射表中,如果无法获取到五元组信息中除源IP地址和目的IP地址之外的几个信息,那么仅将源IP地址和目的IP地址作为表项的键值也不影响本发明的实现。
另一方面,很多应用都有自己特有的应用层协议,特别是大流量的应用。例如:FTP、迅雷、BT、电驴、QVOD等这类应用,都有一条或多条很明确的控制连接和更多条的数据连接。这类应用的控制连接(即控制流)的流量都很小,而数据连接(即数据流)的流量都很大。而数据连接的发起都是由控制连接控制或者引导的,举例来说上面提到的几种应用都会在控制连接传输资源报文,内网主机在获取到上述资源报文后就知道自己需要连接哪些服务器,即内网主机可以获知上述应用的数据流的目的IP地址,然后内网主机就可以据此发起数据连接。因此,本实施例中,如果上述报文不是该报文所属流的首报文,在网络出口设备识别上述报文对应的应用之后,如果该网络出口设备识别出上述报文对应的应用,并且确定上述报文所属流为上述报文对应的应用的控制流,则网络出口设备在接收到上述服务器针对上述报文发送的资源报文之后,从上述资源报文中解析获得上述报文对应的应用的数据流的目的IP地址;
如果所述网络出口设备保存的首包映射表中尚无与上述内网主机的IP地址和上述报文对应的应用的数据流的目的IP地址对应的表项,则网络出口设备在首包映射表中创建与上述内网主机的IP地址和上述报文对应的应用的数据流的目的IP地址对应的表项,在该表项中记录上述报文对应的应用。这样,在内网主机后续创建上述应用的数据流时,网络出口设备接收到内网主机发送的上述应用的数据流的首报文之后,可以直接根据首包映射表的上述表项中记录的应用,识别出该首报文对应的应用。
另外,本实施例中,步骤201,网络出口设备接收内网主机发送的报文之前,网络出口设备还可以接收内网主机发送的DNS请求,并将该DNS请求发送给DNS服务器;该网络出口设备接收到DNS服务器针对该DNS请求发送的DNS应答之后,可以从DNS应答中获得URL、DNS服务器应答的IP地址和上述内网主机的IP地址。接下来,网络出口设备可以从该网络出口设备保存的URL应用库中查找上述URL对应的应用。进一步地,如果网络出口设备保存的首包映射表中尚无与上述内网主机的IP地址和DNS服务器应答的IP地址对应的表项,则网络出口设备在首包映射表中建立与内网主机的IP地址和DNS服务器应答的IP地址对应的表项,并在上述表项中记录该URL对应的应用。这样,在网络出口设备将上述DNS应答发送给内网主机之后,该内网主机可以从DNS应答中获取DNS服务器应答的IP地址,并根据DNS服务器应答的IP地址发起数据流。这样,网络出口设备接收到内网主机发起的上述数据流的首报文之后,可以直接根据首包映射表获知该首报文对应的应用,然后根据该应用对应的链路上建立的连接发送该首报文以及上述数据流的后续报文。
本实施例中,网络出口设备接收内网主机发送的报文之后,如果网络出口设备识别出该报文对应的应用,则网络出口设备将上述报文通过上述应用对应的链路上建立的连接发送给该报文的目的IP地址对应的服务器,从而可以实现在识别出首报文对应的应用时,根据识别出的应用对该首报文所属的流进行路由;而在未识别出首报文对应的应用时,网络出口设备通过至少两个连接发送该首报文,以及该首报文所属流的后续报文,该至少两个连接建立在该网络出口设备与上述服务器之间当前可用的至少两条链路上,直至识别出该首报文所属流对应的应用,之后网络出口设备就可以通过识别出的应用对应的链路上建立的连接发送该流的后续报文,从而可以实现在未识别出首报文对应的应用时,根据应用对该首报文所属流进行路由,并且可以避免断流,减少延时,提高通信质量。
本发明图1和图2所示实施例提供的方法可以应用于图3所示应用场景中,图3为本发明应用场景一个实施例的示意图。
图3所示场景中,内网主机、网络出口设备和服务器之间的交互过程可以如图4所示,图4为本发明内网主机、网络出口设备和服务器之间的交互过程一个实施例的示意图。参见图4,网络出口设备接收到内网主机发送的报文之后,如果确定该报文为该报文所属流的首报文,并且在首包映射表中查找不到与该报文的源IP地址和目的IP地址对应的表项,即网络出口设备无法识别该报文对应的应用,则网络出口设备在该网络出口设备与该报文的目的IP地址对应的服务器之间当前可用的链路1上建立连接1,在当前可用的链路2上建立连接2,在当前可用的链路3上建立连接3,然后将上述报文通过上述3个连接发送给上述服务器,如图4所示,网络出口设备将上述报文分别通过连接1、连接2和连接3发送给上述服务器。在接收到上述服务器针对上述报文通过上述3个连接发送的应答之后,网络出口设备仅发送一个应答给内网主机。这样,内网主机与上述服务器之间通过网络出口设备维持了多个可以正常使用的连接,但这些连接对内网主机不可见,内网主机仅认为自身一直在与上述服务器保持通信。在多次重复上述过程之后,通过本发明图1或图2提供的方法,在接收到内网主机发送的一个报文之后,网络出口设备识别出该报文对应的应用,则该网络出口设备将该报文通过该应用对应的链路上建立的连接(假设为连接3)发送给上述服务器,并且对于该报文所属流的后续报文,网络出口设备均通过连接3发送给上述服务器,最后网络出口设备断开连接1和连接2。
下面通过具体实例对本发明提供的方法进行介绍。
实例一
1、内网主机开启一个网络应用,首先发送报文给网络出口设备。
2、网络出口设备未识别出上述报文对应的应用,网络出口设备将上述报文通过至少两个连接发送给该报文的目的IP地址对应的服务器,上述至少两个连接建立在网络出口设备与上述服务器之间当前可用的至少两条链路上。上述至少两个连接对内网主机不可见,这时内网主机认为该内网主机对外只有1个连接。
3、内网主机持续发送报文,网络出口设备一直未识别出内网主机发送的报文所对应的应用,因此网络出口设备将内网主机发送的报文均通过上述至少两个连接发送给上述服务器,以避免断流,减少延时,提高通信质量。
4、在网络出口设备接收到内网主机发送的第15个报文之后,网络出口设备识别出该报文对应的应用,网络出口设备根据预先设置的应用和链路的对应关系,将上述报文通过该应用对应的链路上建立的连接发送给上述服务器,然后,网络出口设备断开除上述应用对应的链路之外的链路上建立的连接,对于上述报文所属流的后续报文均通过保留的连接发送给上述服务器。
实例二
1、内网主机1开启一个网络视频,假定是优酷,首先发送一个报文给网络出口设备。
2、网络出口设备确定上述报文为DNS请求,网络出口设备将上述报文发送给DNS服务器,并接收DNS服务器发送的DNS应答。
3、网络出口设备从DNS应答中获得内网主机的IP地址、URL和DNS服务器应答的IP地址,网络出口设备从该网络出口设备保存的URL应用库中查找上述URL对应的应用,获知上述URL对应的应用为优酷。然后,网络出口设备将上述DNS应答发送给内网主机。
4、如果网络出口设备保存的首包映射表中尚无与上述内网主机的IP地址和DNS服务器应答的IP地址对应的表项,则网络出口设备在首包映射表中建立与内网主机的IP地址和DNS服务器应答的IP地址对应的表项,并在上述表项中记录该URL对应的应用(即优酷)。
5、内网主机收到DNS应答之后,获取DNS服务器应答的IP地址,并根据DNS服务器应答的IP地址发起数据流。这样,网络出口设备接收到内网主机发起的上述数据流的首报文之后,可以直接根据首包映射表获知该首报文对应的应用,然后根据该应用对应的链路上建立的连接发送该首报文以及上述数据流的后续报文。
本发明实施例中,内网主机可以为内网服务器或个人计算机(PersonalComputer;以下简称:PC),本发明实施例提供的方法可以用于任何需要出口网关的场合,也可以适用于各种需要应用路由的场合。本发明实施例中的网络出口设备可以是一台网关设备,也可以是一台流控设备,甚至可以是PC上安装的一个路由软件。本发明实施例对内网主机和网络出口设备的形态不作限定。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图5为本发明报文发送装置一个实施例的结构示意图,本实施例中的报文发送装置可以设置在网络出口设备中,实现本发明图1所示实施例的流程,如图5所示,该报文发送装置可以包括:接收模块51和发送模块52;
接收模块51,用于接收内网主机发送的报文,上述报文包括除DNS请求之外的报文;
发送模块52,用于当未识别出上述报文对应的应用时,将接收模块51接收的报文通过至少两个连接发送给上述报文的目的IP地址对应的服务器,上述至少两个连接建立在网络出口设备与该服务器之间当前可用的至少两条链路上;以及当识别出上述报文对应的应用时,将接收模块51接收的报文通过上述应用对应的链路上建立的连接发送给上述服务器。
上述实施例中,接收模块51接收内网主机发送的报文之后,如果识别出该报文对应的应用,则发送模块52将上述报文通过上述应用对应的链路上建立的连接发送给该报文的目的IP地址对应的服务器,从而可以实现根据应用对报文进行路由,进而可以更加有效地利用网络资源,并且本发明不仅能对首报文进行应用识别,从而可以根据应用对首报文已识别的流进行路由;本发明还可以对首报文未识别的流的后续报文也进行应用识别,从而可以实现根据应用对首报文未识别的流进行路由。而当未识别出上述报文对应的应用时,发送模块52将上述报文通过至少两个连接发送给上述服务器,从而可以避免断流,减少延时,提高通信质量。
图6为本发明报文发送装置另一个实施例的结构示意图,本实施例中的报文发送装置可以设置在网络出口设备中,实现本发明图1和图2所示实施例的流程,与图5所示的报文发送装置相比,不同之处在于,本实施例的一种实现方式中,图6所示的报文发送装置还可以包括:第一提取模块53、第一查找模块54和第一确定模块55;
其中,第一提取模块53,用于在接收模块51接收内网主机发送的报文之后,从上述报文的报文头中提取该报文的五元组信息;
第一查找模块54,用于在流表中查找与第一提取模块53提取的五元组信息对应的表项;
第一确定模块55,用于当第一查找模块54在上述流表中未查找到与上述五元组信息对应的表项时,确定上述报文为该报文所属流的首报文;
第一查找模块54,还用于在保存的首包映射表中查找与上述报文的源IP地址和目的IP地址对应的表项,上述首包映射表中记录源IP地址、目的IP地址与应用的对应关系。
这时,发送模块52,具体用于当第一查找模块54在首包映射表中未查找到与上述报文的源IP地址和目的IP地址对应的表项时,在网络出口设备与服务器之间当前可用的至少两条链路上建立至少两个连接,将上述报文通过上述至少两个连接发送给该报文的目的IP地址对应的服务器;以及当第一查找模块54在首包映射表中查找到与上述报文的源IP地址和目的IP地址对应的表项时,获得上述表项中记录的应用,在该网络出口设备与上述服务器之间所述应用对应的链路上建立连接,将上述报文通过该应用对应的链路上建立的连接发送给上述服务器。
本实施例的另一种实现方式中,上述报文发送装置还可以包括:第二提取模块57、第二查找模块58、第二确定模块59和识别模块510;
第二提取模块57,用于在接收模块51接收内网主机发送的报文之后,从该报文的报文头中提取上述报文的五元组信息;
第二查找模块58,用于在流表中查找与第二提取模块57提取的五元组信息对应的表项;
第二确定模块59,用于当第二查找模块58在上述流表中查找到与上述五元组信息对应的表项时,确定上述报文不是该报文所属流的首报文;以及确定第二查找模块58是否查找到上述报文所属流与链路的对应关系;
识别模块510,用于当第二确定模块59确定第二查找模块58未查找到上述报文所属流与链路的对应关系时,识别上述报文对应的应用。
这时,发送模块52,具体用于当识别模块510未识别出上述报文对应的应用时,将上述报文通过至少两个连接发送给该报文的目的IP地址对应的服务器,所述至少两个连接是在未识别出所述报文所属流的首报文对应的应用时建立的;以及当识别模块510识别出上述报文对应的应用时,将该报文通过上述应用对应的链路上建立的连接发送给上述服务器。
断开模块511,用于当识别模块510识别出上述报文对应的应用且上述至少两个连接含有上述应用对应的链路上建立的连接时,断开上述至少两条链路中除上述应用对应的链路之外的链路上建立的连接,由发送模块52通过上述应用对应的链路上建立的连接转发上述报文所属流的后续报文。
进一步地,上述报文发送装置还可以包括:
第一记录模块56,用于在发送模块52将上述报文通过上述应用对应的链路上建立的连接发送给服务器之后,记录该报文所属流与上述应用对应的链路的对应关系。
进一步地,发送模块52,还用于当第二确定模块59确定第二查找模块58查找到上述报文所属流与链路的对应关系时,将上述报文通过该报文所属流对应的链路上建立的连接发送给上述服务器。
进一步地,上述报文发送装置还可以包括:解析模块512、第一建立模块513和第二记录模块514;
解析模块512,用于当识别模块510识别出上述报文对应的应用,并确定上述报文所属流为该报文对应的应用的控制流时,在接收模块51接收到上述服务器针对该报文发送的资源报文之后,从资源报文中解析获得上述报文对应的应用的数据流的目的IP地址;
第一建立模块513,用于当保存的首包映射表中尚无与上述内网主机的IP地址和上述报文对应的应用的数据流的目的IP地址对应的表项时,在首包映射表中创建与上述内网主机的IP地址和上述报文对应的应用的数据流的目的IP地址对应的表项;
第二记录模块514,用于在第一建立模块513建立的表项中记录上述报文对应的应用。
进一步地,上述报文发送装置还可以包括:获得模块515、第三查找模块516、第二建立模块517和第三记录模块518;
接收模块51,还用于在接收内网主机发送的报文之前,接收内网主机发送的DNS请求;
发送模块52,还用于将接收模块51接收的DNS请求发送给DNS服务器;
获得模块515,用于在接收模块51接收到上述DNS服务器针对上述DNS请求发送的DNS应答之后,从该DNS应答中获得URL、上述DNS服务器应答的IP地址和上述内网主机的IP地址;
第三查找模块516,用于从保存的URL应用库中查找上述URL对应的应用;
第二建立模块517,用于当保存的首包映射表中尚无与上述内网主机的IP地址和上述DNS服务器应答的IP地址对应的表项时,在首包映射表中建立与上述内网主机的IP地址和上述DNS服务器应答的IP地址对应的表项;
第三记录模块518,用于在第二建立模块517建立的表项中记录上述URL对应的应用。
进一步地,接收模块51,还用于在发送模块52将上述报文通过至少两个连接发送给上述报文的目的IP地址对应的服务器之后,接收该服务器针对上述报文通过至少两个连接发送的至少两个应答;发送模块52,还用于将接收模块51接收的至少两个应答之一发送给内网主机。这样,内网主机与上述服务器之间通过网络出口设备维持了多个可以正常使用的连接,但这些连接对内网主机不可见,内网主机仅认为自身一直在与上述服务器保持通信。
上述实施例中,接收模块51接收内网主机发送的报文之后,如果识别出该报文对应的应用,则发送模块52将上述报文通过上述应用对应的链路上建立的连接发送给该报文的目的IP地址对应的服务器,从而可以实现在识别出首报文对应的应用时,根据识别出的应用对该首报文所属的流进行路由;而在未识别出首报文对应的应用时,发送模块52通过至少两个连接发送该首报文,以及该首报文所属流的后续报文,该至少两个连接建立在该网络出口设备与上述服务器之间当前可用的至少两条链路上,直至识别出该首报文所属流对应的应用,之后发送模块52就可以通过识别出的应用对应的链路上建立的连接发送该流的后续报文,从而可以实现在未识别出首报文对应的应用时,根据应用对该首报文所属流进行路由,并且可以避免断流,减少延时,提高通信质量。
本发明还提供一种网络出口设备,该网络出口设备可以包括本发明图5或图6所示实施例提供的报文发送装置。该网络出口设备可以是一台网关设备,也可以是一台流控设备,甚至可以是PC上安装的一个路由软件。本发明实施例对网络出口设备的形态不作限定。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (17)
1.一种报文发送方法,其特征在于,包括:
网络出口设备接收内网主机发送的报文,所述报文包括除域名系统DNS请求之外的报文;
所述网络出口设备从所述报文的报文头中提取所述报文的五元组信息;
所述网络出口设备在流表中查找与所述五元组信息对应的表项,如果在所述流表中未查找到与所述五元组信息对应的表项,则所述网络出口设备确定所述报文为所述报文所属流的首报文;
所述网络出口设备在所述网络出口设备保存的首包映射表中查找与所述报文的源IP地址和目的IP地址对应的表项,所述首包映射表中记录源IP地址、目的IP地址与应用的对应关系;
如果所述网络出口设备未识别出所述报文对应的应用,则所述网络出口设备将所述报文通过至少两个连接发送给所述报文的目的因特网协议IP地址对应的服务器,具体为如果所述网络出口设备在所述首包映射表中未查找到与所述报文的源IP地址和目的IP地址对应的表项,则所述网络出口设备在所述网络出口设备与所述服务器之间当前可用的至少两条链路上建立至少两个连接,将所述报文通过所述至少两个连接发送给所述报文的目的IP地址对应的服务器;其中,所述至少两个连接建立在所述网络出口设备与所述服务器之间当前可用的至少两条链路上;
如果所述网络出口设备识别出所述报文对应的应用,则所述网络出口设备将所述报文通过所述应用对应的链路上建立的连接发送给所述服务器,具体为如果所述网络出口设备在所述首包映射表中查找到与所述报文的源IP地址和目的IP地址对应的表项,则所述网络出口设备获得所述表项中记录的应用,在所述网络出口设备与所述服务器之间所述应用对应的链路上建立连接,将所述报文通过所述应用对应的链路上建立的连接发送给所述服务器。
2.根据权利要求1所述的方法,其特征在于,所述网络出口设备接收内网主机发送的报文之后,还包括:
所述网络出口设备从所述报文的报文头中提取所述报文的五元组信息;
所述网络出口设备在流表中查找与所述五元组信息对应的表项;
如果所述网络出口设备在所述流表中查找到与所述五元组信息对应的表项,则所述网络出口设备确定所述报文不是所述报文所属流的首报文;
所述网络出口设备确定是否查找到所述报文所属流与链路的对应关系;
如果未查找到所述报文所属流与链路的对应关系,则所述网络出口设备识别所述报文对应的应用。
3.根据权利要求2所述的方法,其特征在于,如果所述网络出口设备未识别出所述报文对应的应用,则所述网络出口设备将所述报文通过至少两个连接发送给所述报文的目的因特网协议IP地址对应的服务器包括:
如果所述网络出口设备未识别出所述报文对应的应用,则所述网络出口设备将所述报文通过至少两个连接发送给所述报文的目的IP地址对应的服务器,所述至少两个连接是所述网络出口设备在未识别出所述报文所属流的首报文对应的应用时建立的;
所述方法还包括:
如果所述网络出口设备识别出所述报文对应的应用且所述至少两个连接含有所述应用对应的链路上建立的连接,则所述网络出口设备断开所述至少两条链路中除所述应用对应的链路之外的链路上建立的连接,通过所述应用对应的链路上建立的连接转发所述报文所属流的后续报文。
4.根据权利要求1或3所述的方法,其特征在于,还包括:
将所述报文通过所述应用对应的链路上建立的连接发送给所述服务器之后,所述网络出口设备记录所述报文所属流与所述应用对应的链路的对应关系。
5.根据权利要求2所述的方法,其特征在于,所述网络出口设备确定是否查找到所述报文所属流与链路的对应关系之后,还包括:
如果查找到所述报文所属流与链路的对应关系,则所述网络出口设备将所述报文通过所述报文所属流对应的链路上建立的连接发送给所述服务器。
6.根据权利要求2所述的方法,其特征在于,所述网络出口设备识别所述报文对应的应用之后,还包括:
如果所述网络出口设备识别出所述报文对应的应用,并确定所述报文所属流为所述报文对应的应用的控制流,则所述网络出口设备在接收到所述服务器针对所述报文发送的资源报文之后,从所述资源报文中解析获得所述报文对应的应用的数据流的目的IP地址;
如果所述网络出口设备保存的首包映射表中尚无与所述内网主机的IP地址和所述报文对应的应用的数据流的目的IP地址对应的表项,则所述网络出口设备在所述首包映射表中创建与所述内网主机的IP地址和所述报文对应的应用的数据流的目的IP地址对应的表项,在所述表项中记录所述报文对应的应用。
7.根据权利要求1、2、3、5或6所述的方法,其特征在于,所述网络出口设备接收内网主机发送的报文之前,还包括:
所述网络出口设备接收所述内网主机发送的DNS请求,并将所述DNS请求发送给DNS服务器;
所述网络出口设备接收到所述DNS服务器针对所述DNS请求发送的DNS应答之后,从所述DNS应答中获得统一资源定位符URL、所述DNS服务器应答的IP地址和所述内网主机的IP地址;
所述网络出口设备从所述网络出口设备保存的URL应用库中查找所述URL对应的应用;
如果所述网络出口设备保存的首包映射表中尚无与所述内网主机的IP地址和所述DNS服务器应答的IP地址对应的表项,则所述网络出口设备在所述首包映射表中建立与所述内网主机的IP地址和所述DNS服务器应答的IP地址对应的表项,并在所述表项中记录所述URL对应的应用。
8.根据权利要求1、2、3、5或6所述的方法,其特征在于,所述网络出口设备将所述报文通过至少两个连接发送给所述报文的目的因特网协议IP地址对应的服务器之后,还包括:
所述网络出口设备接收所述服务器针对所述报文通过所述至少两个连接发送的至少两个应答;
所述网络出口设备将所述至少两个应答之一发送给所述内网主机。
9.一种报文发送装置,其特征在于,所述报文发送装置设置在网络出口设备中,所述报文发送装置包括:
接收模块,用于接收内网主机发送的报文,所述报文包括除域名系统DNS请求之外的报文;
第一提取模块,用于在所述接收模块接收内网主机发送的报文之后,从所述报文的报文头中提取所述报文的五元组信息;
第一查找模块,用于在流表中查找与所述第一提取模块提取的五元组信息对应的表项;
第一确定模块,用于当所述第一查找模块在所述流表中未查找到与所述五元组信息对应的表项时,确定所述报文为所述报文所属流的首报文;
所述第一查找模块,还用于在保存的首包映射表中查找与所述报文的源IP地址和目的IP地址对应的表项,所述首包映射表中记录源IP地址、目的IP地址与应用的对应关系;
发送模块,用于当未识别出所述报文对应的应用时,将所述接收模块接收的报文通过至少两个连接发送给所述报文的目的因特网协议IP地址对应的服务器,所述至少两个连接建立在所述网络出口设备与所述服务器之间当前可用的至少两条链路上;以及当识别出所述报文对应的应用时,将所述接收模块接收的报文通过所述应用对应的链路上建立的连接发送给所述服务器;具体为当所述第一查找模块在所述首包映射表中未查找到与所述报文的源IP地址和目的IP地址对应的表项时,在所述网络出口设备与所述服务器之间当前可用的至少两条链路上建立至少两个连接,将所述报文通过所述至少两个连接发送给所述报文的目的IP地址对应的服务器;以及当所述第一查找模块在所述首包映射表中查找到与所述报文的源IP地址和目的IP地址对应的表项时,获得所述表项中记录的应用,在所述网络出口设备与所述服务器之间所述应用对应的链路上建立连接,将所述报文通过所述应用对应的链路上建立的连接发送给所述服务器。
10.根据权利要求9所述的装置,其特征在于,还包括:第二提取模块、第二查找模块、第二确定模块和识别模块;
所述第二提取模块,用于在所述接收模块接收内网主机发送的报文之后,从所述报文的报文头中提取所述报文的五元组信息;
所述第二查找模块,用于在流表中查找与所述第二提取模块提取的五元组信息对应的表项;
所述第二确定模块,用于当所述第二查找模块在所述流表中查找到与所述五元组信息对应的表项时,确定所述报文不是所述报文所属流的首报文;以及确定所述第二查找模块是否查找到所述报文所属流与链路的对应关系;
所述识别模块,用于当所述第二确定模块确定所述第二查找模块未查找到所述报文所属流与链路的对应关系时,识别所述报文对应的应用。
11.根据权利要求10所述的装置,其特征在于,还包括:断开模块;
所述发送模块,具体用于当所述识别模块未识别出所述报文对应的应用时,将所述报文通过至少两个连接发送给所述报文的目的IP地址对应的服务器,所述至少两个连接是在未识别出所述报文所属流的首报文对应的应用时建立的;以及当所述识别模块识别出所述报文对应的应用时,将所述报文通过所述应用对应的链路上建立的连接发送给所述服务器;
所述断开模块,用于当所述识别模块识别出所述报文对应的应用且所述至少两个连接含有所述应用对应的链路上建立的连接时,断开所述至少两条链路中除所述应用对应的链路之外的链路上建立的连接,由所述发送模块通过所述应用对应的链路上建立的连接转发所述报文所属流的后续报文。
12.根据权利要求9或11所述的装置,其特征在于,还包括:
第一记录模块,用于在所述发送模块将所述报文通过所述应用对应的链路上建立的连接发送给所述服务器之后,记录所述报文所属流与所述应用对应的链路的对应关系。
13.根据权利要求10所述的装置,其特征在于,
所述发送模块,还用于当所述第二确定模块确定所述第二查找模块查找到所述报文所属流与链路的对应关系时,将所述报文通过所述报文所属流对应的链路上建立的连接发送给所述服务器。
14.根据权利要求10所述的装置,其特征在于,还包括:解析模块、第一建立模块和第二记录模块;
所述解析模块,用于当所述识别模块识别出所述报文对应的应用,并确定所述报文所属流为所述报文对应的应用的控制流时,在所述接收模块接收到所述服务器针对所述报文发送的资源报文之后,从所述资源报文中解析获得所述报文对应的应用的数据流的目的IP地址;
所述第一建立模块,用于当保存的首包映射表中尚无与所述内网主机的IP地址和所述报文对应的应用的数据流的目的IP地址对应的表项时,在所述首包映射表中创建与所述内网主机的IP地址和所述报文对应的应用的数据流的目的IP地址对应的表项;
所述第二记录模块,用于在所述第一建立模块建立的表项中记录所述报文对应的应用。
15.根据权利要求9、10、11、13或14所述的装置,其特征在于,还包括:获得模块、第三查找模块、第二建立模块和第三记录模块;
所述接收模块,还用于在接收内网主机发送的报文之前,接收所述内网主机发送的DNS请求;
所述发送模块,还用于将所述接收模块接收的DNS请求发送给DNS服务器;
所述获得模块,用于在所述接收模块接收到所述DNS服务器针对所述DNS请求发送的DNS应答之后,从所述DNS应答中获得统一资源定位符URL、所述DNS服务器应答的IP地址和所述内网主机的IP地址;
所述第三查找模块,用于从保存的URL应用库中查找所述URL对应的应用;
所述第二建立模块,用于当保存的首包映射表中尚无与所述内网主机的IP地址和所述DNS服务器应答的IP地址对应的表项时,在所述首包映射表中建立与所述内网主机的IP地址和所述DNS服务器应答的IP地址对应的表项;
所述第三记录模块,用于在所述第二建立模块建立的表项中记录所述URL对应的应用。
16.根据权利要求9、10、11、13或14所述的装置,其特征在于,
所述接收模块,还用于在所述发送模块将所述报文通过至少两个连接发送给所述报文的目的IP地址对应的服务器之后,接收所述服务器针对所述报文通过所述至少两个连接发送的至少两个应答;
所述发送模块,还用于将所述接收模块接收的所述至少两个应答之一发送给所述内网主机。
17.一种网络出口设备,其特征在于,包括如权利要求9-16任意一项所述的报文发送装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210553033.XA CN103036789B (zh) | 2012-12-18 | 2012-12-18 | 报文发送方法、装置和网络出口设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210553033.XA CN103036789B (zh) | 2012-12-18 | 2012-12-18 | 报文发送方法、装置和网络出口设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103036789A CN103036789A (zh) | 2013-04-10 |
CN103036789B true CN103036789B (zh) | 2015-09-23 |
Family
ID=48023293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210553033.XA Active CN103036789B (zh) | 2012-12-18 | 2012-12-18 | 报文发送方法、装置和网络出口设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103036789B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103475593A (zh) * | 2013-08-20 | 2013-12-25 | 北京星网锐捷网络技术有限公司 | 数据流的处理方法和装置 |
CN103501273A (zh) * | 2013-09-24 | 2014-01-08 | 北京星网锐捷网络技术有限公司 | 多链路报文传输处理方法、装置及网络设备 |
CN105530144B (zh) * | 2015-12-16 | 2017-07-28 | 北京浩瀚深度信息技术股份有限公司 | 非对称路由环境中的业务识别方法和系统 |
CN111371728B (zh) * | 2018-12-25 | 2022-05-10 | 华为终端有限公司 | 一种处理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101599895A (zh) * | 2008-06-04 | 2009-12-09 | 华为技术有限公司 | 数据处理方法及宽带网络网关、策略控制器装置和接入节点设备 |
CN102035745A (zh) * | 2010-12-23 | 2011-04-27 | 北京星网锐捷网络技术有限公司 | 策略路由实现方法、装置及网络设备 |
CN102347860A (zh) * | 2011-10-18 | 2012-02-08 | 北京星网锐捷网络技术有限公司 | 网络应用质量的度量方法和装置 |
-
2012
- 2012-12-18 CN CN201210553033.XA patent/CN103036789B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101599895A (zh) * | 2008-06-04 | 2009-12-09 | 华为技术有限公司 | 数据处理方法及宽带网络网关、策略控制器装置和接入节点设备 |
CN102035745A (zh) * | 2010-12-23 | 2011-04-27 | 北京星网锐捷网络技术有限公司 | 策略路由实现方法、装置及网络设备 |
CN102347860A (zh) * | 2011-10-18 | 2012-02-08 | 北京星网锐捷网络技术有限公司 | 网络应用质量的度量方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103036789A (zh) | 2013-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109391560B (zh) | 网络拥塞的通告方法、代理节点及计算机设备 | |
CN104168457B (zh) | 一种多路媒体流点播方法及装置 | |
CN103297270A (zh) | 应用类型识别方法及网络设备 | |
US9154544B2 (en) | Device and method for supporting internet-based sensor data transmission | |
CN109660637B (zh) | P2p打洞传输方法和系统、电子装置及计算机可读存储介质 | |
CN105591912B (zh) | 一种转发路径的选择方法和装置 | |
CN103036789B (zh) | 报文发送方法、装置和网络出口设备 | |
CN101651721B (zh) | 网络地址转换设备类型的判断方法和系统 | |
CN106899500B (zh) | 一种跨虚拟可扩展局域网的报文处理方法及装置 | |
CN104125145B (zh) | 基于网页浏览器的通信方法、设备和系统 | |
TWI599201B (zh) | 網路系統及建立資料連線的方法 | |
CN101953139A (zh) | 响应于网络层连通性的dhcp初始化 | |
CN104270405A (zh) | 基于路由器的联网控制方法及装置 | |
CN108206788B (zh) | 一种流量的业务识别方法及相关设备 | |
CN109379291A (zh) | 一种组网中服务请求的处理方法及装置 | |
EP3566422A1 (en) | Method for data transmission between, on the one hand, an application server, and, on the other hand, at least one internet-of-things communication device using a mobile communication network, mobile communication network, system, internet-of-thing communication device, program and computer program product | |
CN103354509A (zh) | 一种链路连接信息的获取方法和设备 | |
CN104506450A (zh) | 媒体资源反馈方法及装置 | |
CN104468265A (zh) | 局域网终端在线状态的检测方法和装置 | |
CN107181605A (zh) | 报文检测方法及系统、内容提取装置、流量匹配装置 | |
US10791064B2 (en) | Method and apparatus for allocating server in wireless communication system | |
CN102547553A (zh) | 一种基于wap进行业务访问的方法、系统及装置 | |
US9059914B2 (en) | Usable bandwidth measurement method, usable bandwidth measurement system, terminal device, and computer-readable recording medium | |
KR101344398B1 (ko) | 애플리케이션 인지와 트래픽 제어를 위한 라우터 장치 및 그 방법 | |
CN105049543A (zh) | 智能路由器间穿越非对称nat进行p2p通信的系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |