路由方法及装置与流程

文档序号:12829007阅读:421来源:国知局
路由方法及装置与流程

本发明实施例涉及互联网技术领域,尤其涉及一种路由方法及装置。



背景技术:

路由是指分组从源到目的地时,决定端到端路径的网络范围的进程。路由工作在开放式系统互联(opensysteminterconnection,osi)参考模型第三层——网络层的数据包转发设备。绝大多数路由运行传输控制协议/因特网互联协议(transmissioncontrolprotocol/internetprotocol,tcp/ip),传统的tcp/ip一般分为4层:应用层、传输层、ip网络层、网络接口层。每一层只是简单的呼叫它的下一层所提供的网络服务来完成自己的需求。

例如在安卓系统中使用虚拟专用网络(virtualprivatenetwork,vpn)时,所述的数据流量都被路由到同一个代理服务器,增加了该代理服务器的负担。



技术实现要素:

本发明实施例提供一种路由方法及装置,用以解决传统路由方法将全部数据流量路由到同一个代理服务器,增加代理服务器负担的问题。

本发明实施例提供一种路由方法,所述方法包括:

接收来自应用程序的数据包,根据所述数据包中的protocol判断所述数据包对应的上层协议为tcp或udp;

若为udp,则将所述数据包发送至udp代理服务器;

若为tcp,则判断所述数据包包含http关键字段或tcp关键字段;

若包含http关键字段,则将所述数据包发送至http代理服务器;

若包含tcp关键字段,则将所述数据包发送至tcp代理服务器。

相应地,本发明实施例还提供一种路由装置,包括:

接收模块,用于接收来自应用程序的数据包;

tcp/udp解析模块,用于根据所述数据包中的protocol判断所述数据包对应的上层协议为tcp或udp;

udp路由模块,用于若为udp,则将所述数据包发送至udp代理服务器;

tcp解析模块,用于若为tcp,则判断所述数据包中包含http关键字段或tcp关键字段;

http路由模块,用于若包含http关键字段,则将所述数据包发送至http代理服务器;

tcp路由模块,用于若包含tcp关键字段,则将所述数据包发送至tcp代理服务器。

本发明实施例提供的路由方法及装置,对接收到的数据包判断对应的上层协议为tcp还是用户数据报协议(userdatagramprotocol,udp),若为udp,则将数据包发送至udp代理服务器;若为tcp,则继续判断该数据包包含超文本传输协议(hypertexttransferprotocol,http)关键字段还是tcp关键字段,若包含http关键字段,则将该数据包发送至http代理服务器;若包含tcp关键字段,则将该数据包发送至tcp代理服务器。根据数据包的协议类型选择将该数据包路由到适当的代理服务器,缓解了代理服务器的压力,充分利用了代理服务器的资源。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一中的一种路由方法的步骤流程图;

图2为本发明实施例二中的一种路由装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

详细介绍本发明实施例一提出的一种路由方法,所述方法可以应用于客户端,所述客户端可以包括pc和移动终端。

参照图1,示出了本发明实施例一中的一种路由方法的步骤流程图。

步骤100,接收来自应用程序的数据包,根据所述数据包中的protocol判断所述数据包对应的上层协议为tcp或udp,若为udp,则执行步骤102;若为tcp,则执行步骤104。

若本发明实施例应用于移动终端,例如智能手机中,所述应用程序为智能手机中安装的可接入互联网的应用程序。所述应用程序的数据包为应用程序向互联网发送的数据包。

所述步骤100中接收来自应用程序的数据包,具体可以为:接收通过虚拟网络接口中转的来自应用程序的数据包。任何来自应用程序的数据包都经过虚拟网络接口中转。

所述数据包中的protocol为ip头信息中的字段,protocol中的标识表示该数据包对应的上层协议。所述步骤100中根据所述数据包中的protocol判断所述数据包对应的上层协议为tcp或udp,具体可以为:解析所述数据包中的protocol中的标识对应于tcp或udp。

例如,protocol中的标识为“6”表示该数据包对应的上层协议为tcp;protocol中的标识为“17”表示该数据包对应的上层协议为udp。

步骤102,将所述数据包发送至udp代理服务器。

udp代理服务器专用于处理支持udp的数据包,将数据包路由到udp代理服务器。

步骤104,判断所述数据包包含http关键字段或tcp关键字段,若包含http关键字段,则执行步骤106;若包含tcp关键字段,则执行步骤108。

所述步骤104进一步判断数据包对应的上层协议,若数据包包含http关键字段,则可以确定数据包对应的上层协议为http;若数据包包含tcp关键字段,则可以确定数据包对应的上层协议为tcp。其中,http关键字段可以为get和post等。

还可以判断数据包是否包含预设关键字段,若包含,则将数据包发送至预设代理服务器。所述预设关键字段若为socket关键字段,则预设代理服务器为socket代理服务器。

步骤106,将所述数据包发送至http代理服务器。

http代理服务器专用于处理支持http的数据包,将数据包路由到目标http服务器。

步骤108,将所述数据包发送至tcp代理服务器。

tcp代理服务器专用于处理支持tcp的数据包,将数据包路由到目标tcp服务器。

需要说明的是,本发明实施例中的各个代理服务器各不相同,均为相互独立的代理服务器。将数据包路由到相应的代理服务器,降低了服务器的带宽及负载,最终降低了整体运营成本。

综上所述,本发明实施例中的技术方案,对接收到的数据包判断对应的上层协议为tcp还是udp,若为udp,则将数据包发送至udp代理服务器;若为tcp,则继续判断该数据包包含http关键字段还是tcp关键字段,若包含http关键字段,则将该数据包发送至http代理服务器;若包含tcp关键字段,则将该数据包发送至tcp代理服务器。根据数据包的协议类型选 择将该数据包路由到适当的代理服务器,缓解了代理服务器的压力,充分利用了代理服务器的资源。

实施例二

详细介绍本发明实施例二提出的一种路由装置,所述装置可以应用于客户端,所述客户端可以包括pc和移动终端。

参照图2,示出了本发明实施例二中的一种路由装置的结构示意图。

所述装置可以包括接收模块、tcp/udp解析模块、udp路由模块、tcp解析模块、http路由模块和tcp路由模块。

下面分别详细介绍各模块的功能以及各模块之间的关系。

接收模块,用于接收来自应用程序的数据包。所述接收模块接收通过虚拟网络接口中转的来自应用程序的数据包。

tcp/udp解析模块,用于根据所述数据包中的protocol判断所述数据包对应的上层协议为tcp或udp。所述tcp/udp解析模块解析所述数据包中的protocol中的标识对应于tcp或udp。

udp路由模块,用于若为udp,则将所述数据包发送至udp代理服务器。

tcp解析模块,用于若为tcp,则判断所述数据包中包含http关键字段或tcp关键字段。所述tcp解析模块,还用于若为tcp,判断所述数据包中是否包含预设关键字段。

http路由模块,用于若包含http关键字段,则将所述数据包发送至http代理服务器。

tcp路由模块,用于若包含tcp关键字段,则将所述数据包发送至tcp代理服务器。

所述装置还包括:预设路由模块,用于若包含,则将所述数据包发送至预设代理服务器;其中,所述预设关键字段与所述http关键字段和tcp关 键字段均不相同;所述预设代理服务器与所述udp代理服务器、http代理服务器和tcp代理服务器均不相同。

所述udp代理服务器、http代理服务器、tcp代理服务器和预设代理服务器为相互独立的代理服务器。

综上所述,本发明实施例中的技术方案,对接收到的数据包判断对应的上层协议为tcp还是udp,若为udp,则将数据包发送至udp代理服务器;若为tcp,则继续判断该数据包包含http关键字段还是tcp关键字段,若包含http关键字段,则将该数据包发送至http代理服务器;若包含tcp关键字段,则将该数据包发送至tcp代理服务器。根据数据包的协议类型选择将该数据包路由到适当的代理服务器,缓解了代理服务器的压力,充分利用了代理服务器的资源。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术 人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1