一种优化网络访问路径的方法及装置制造方法

文档序号:7813923阅读:153来源:国知局
一种优化网络访问路径的方法及装置制造方法
【专利摘要】本发明的实施例公开一种优化网络访问路径的方法及装置。优化网络访问路径的方法包括:接收协议报文,获取网络拓扑信息,根据获取的网络拓扑信息,利用路由算法计算出所述协议报文中目的网络节点的路由表项信息;针对每一目的网络节点,计算该目的网络节点的各路由表项信息对应的网络访问路径代价,并按照网络访问路径代价从小至大进行排序;依序按照排序的网络访问路径,发起对目的网络节点的网络访问请求;如果在预先设置的时间内接收到网络访问请求对应的网络连通信息,将该网络访问路径作为至所述目的网络节点的最优网络访问路径存储在路由表中。应用本发明,可以提升用户访问网络的成功率。
【专利说明】一种优化网络访问路径的方法及装置

【技术领域】
[0001]本发明涉及计算机网络通信技术,尤其涉及一种优化网络访问路径的方法及装置。

【背景技术】
[0002]动态路由协议(DRP,Dynamic Routing Protocols)是用于在路由器(网络节点)之间交换网络拓扑信息,以生成路由表的协议。其中,利用动态路由协议交换网络拓扑信息的多个路由器之间互为邻居关系,即每一路由器将自身生成的用于路由表维护的协议报文发送给所有的邻居,同时接收其他邻居发送的协议报文,以获知整个网络的拓扑信息,例如,在网络拓扑发生变化的情况下,路由器之间通过协议报文相互交换更新后的网络拓扑信息,并根据更新的网络拓扑信息,利用路由算法动态计算出从当前网络节点到达网络中其他网络节点的路由表项信息,并依据路由表项信息组成的网络访问路径,计算各网络访问路径的代价,从中确定出一条或几条代价较小的优选网络访问路径,然后将确定的优选网络访问路径添加到路由表中作为一路由表项。这样,在后续应用中,根据用户发送的用户数据报中包含的目的网络节点信息,查询路由表,从而获取到达目的网络节点的优选网络访问路径,并依据获取的优选网络访问路径,将接收的用户数据报转发至优选网络访问路径中的下一跳跃点(网络节点),直至目的网络节点。这样,通过动态路由协议,路由器可以动态共享网络拓扑信息并对路由表进行动态更新,以满足网络变化以及用户数据报路由转发的需求。
[0003]但上述依据路由表中路由表项对用户数据报进行转发的方法,由于路由表中的路由表项通过协议报文的可达性生成,如果用户数据报中包含的目的网络节点没有处于网络连通状态,而用户数据报需要进行网络访问行为,这时,虽然至目的网络节点的优选网络访问路径可达,但无法为用户提供网络访问;或者,如果用户数据报中包含的目的网络节点为网络外节点,而由于网络内的各网络节点(路由器)相对于网络外的各网络节点,可能具有不同的权限。例如,一些公司、学校以及企事业单位,基于安全的考虑,在网络内只设置有限的网络节点(路由器)具有访问外部网络的权限并可进行动态更新,因而,基于网络内协议报文可达性构建的路由表中确定的一条或多条优选网络访问路径,在用户数据报转发至网络内的最后一跳跃点后,可能由于该最后一跳跃点不具有访问外部网络的权限,从而使得用户数据报不能达到目的网络节点,也就是说,现有路由表中依据路由表项信息确定的优选或最优网络访问路径,并不表示可以访问外部网络或处于连网状态,从而导致用户访问网络失败,降低了用户访问网络的成功率,影响了用户的正常网络访问行为,降低了用户的网络业务体验。


【发明内容】

[0004]有鉴于此,本发明实施例提供一种优化网络访问路径的方法及装置,提升用户访问网络的成功率。
[0005]为达到上述目的,本发明的实施例采用如下技术方案:
[0006]一方面,本发明实施例提供一种优化网络访问路径的方法,包括:
[0007]接收协议报文,获取网络拓扑信息,根据获取的网络拓扑信息,利用路由算法计算出所述协议报文中目的网络节点的路由表项信息;
[0008]针对每一目的网络节点,计算该目的网络节点的各路由表项信息对应的网络访问路径代价,并按照网络访问路径代价从小至大进行排序;
[0009]依序按照排序的网络访问路径,发起对目的网络节点的网络访问请求;
[0010]如果在预先设置的时间内接收到网络访问请求对应的网络连通信息,将该网络访问路径作为至所述目的网络节点的最优网络访问路径存储在路由表中。
[0011]本发明实施例提供的优化网络访问路径的方法,在通过网络拓扑信息获取路由表项信息,利用路由表项信息生成网络访问路径,并从多条网络访问路径中得到优选网络路径后,再针对优选网络路径发起网络访问,并将处于网络连通状态的优选网络路径作为最优网络路径存储在路由表中。这样,在用户数据报需要进行网络访问的情况下,可以成功接入网络,用户访问网络的成功率高。
[0012]另一方面,本发明实施例提供一种优化网络访问路径的装置,包括:路由表项信息获取模块、网络访问路径代价排序模块、网络访问请求模块以及路径优化模块,其中,
[0013]路由表项信息获取模块,用于接收协议报文,获取网络拓扑信息,根据获取的网络拓扑信息,利用路由算法计算出所述协议报文中目的网络节点的路由表项信息;
[0014]网络访问路径代价排序模块,用于针对每一目的网络节点,计算该目的网络节点的各路由表项信息对应的网络访问路径代价,并按照网络访问路径代价从小至大进行排序;
[0015]网络访问请求模块,用于依序按照排序的网络访问路径,发起对目的网络节点的网络访问请求;
[0016]路径优化模块,如果在预先设置的时间内接收到网络访问请求对应的网络连通信息,将该网络访问路径作为至所述外部目的网络节点的最优网络访问路径存储在路由表中。
[0017]本发明实施例提供的优化网络访问路径的装置,路由表项信息获取模块通过网络拓扑信息获取路由表项信息,利用路由表项信息生成网络访问路径,网络访问路径代价排序模块对网络访问路径进行排序,并从排序的多条网络访问路径中得到优选网络路径,网络访问请求模块针对优选网络路径发起网络访问,路径优化模块将处于网络连通状态的优选网络路径作为最优网络路径存储在路由表中。这样,最优网络路径为可达且处于网络连通状态的路径,在用户数据报需要进行网络访问的情况下,可以成功接入网络,用户访问网络的成功率高。

【专利附图】

【附图说明】
[0018]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0019]图1为本发明实施例优化网络访问路径的方法流程示意图;
[0020]图2为本发明实施例优化网络访问路径的装置结构示意图。

【具体实施方式】
[0021]下面结合附图对本发明实施例进行详细描述。
[0022]应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0023]图1为本发明实施例优化网络访问路径的方法流程示意图。参见图1,该方法包括:
[0024]步骤101,接收协议报文,获取网络拓扑信息,根据获取的网络拓扑信息,利用路由算法计算出所述协议报文中目的网络节点的路由表项信息;
[0025]本步骤中,作为可选实施例,源网络节点上运行动态路由协议的网络接口可能接收到各种不同协议的协议报文,因而,在所述接收协议报文之后,获取网络拓扑信息之前,该方法可以进一步包括:
[0026]源网络节点从接收的协议报文中,识别出动态路由协议的协议报文,并依据识别出的动态路由协议的协议报文执行所述获取网络拓扑信息的流程。
[0027]本步骤中,对于每一协议的协议报文,都有区别于其他协议报文的特征,例如,特定的端口号、特定的字段值等,因而,根据协议报文的特征可实现动态路由协议的协议报文的识别。
[0028]本发明实施例中,网络中的每一网络节点需要构建和维护路由表。在构建和维护路由表时,可以有如下两种方式。
[0029]作为一可选实施例,接收协议报文,获取网络拓扑信息包括:
[0030]All,当前网络节点向邻居网络节点发送hello报文,携带自身的链路状态通告(LSA, Link-State Advertisement)信息,并请求获取邻居网络节点的LSA信息;
[0031]本步骤中,hello报文为协议报文的一种,LSA信息包括有关邻居网络节点和通道成本的信息,列出了当前路由器(网络节点)所有的链路或网络接口,并说明链路或网络接口的状态,沿每条链路或网络接口方向出站的代价,以及该链路或网络接口上已有的邻居网络节点。
[0032]A12,根据接收的hello报文,解析获取LSA信息作为网络拓扑信息。
[0033]本发明实施例中,路由器(网络节点)启动后,发送hello报文,该hello报文中包含该路由器IP地址以及自身LSA信息,同时接收邻居网络节点的hello报文,记录该邻居网络节点的IP地址以及LSA信息,作为网络拓扑信息,如果网络拓扑信息发生变化,则根据该网络拓扑信息更新存储的相应网络拓扑信息。
[0034]作为另一可选实施例,接收协议报文,获取网络拓扑信息包括:
[0035]A21,源网络节点向目的网络节点发送路由通路检测消息;
[0036]本步骤中,源网络节点为当前网络节点,目的网络节点可以是邻居网络节点,也可以是其它非邻居网络节点。路由通路检测消息是协议报文中的一种。
[0037]本发明实施例中,路由通路检测消息包括消息头和消息体,其中,消息头中包含功能类型参数、消息类型参数、事务ID参数以及长度参数等,用以分别定义该路由通路检测消息的功能类型、消息类型、事务标识及消息长度等;消息体中包含指示源网络节点,即路由通路检测消息的发送方的源标识符(SID, Source Identifier)参数和指示目的网络节点,即路由通路检测消息的接收方的目标标识符(DID, Destinat1n Identifier)参数。
[0038]本发明实施例中,通过将路由通路检测消息中用于指示目的网络节点的目标标识符参数值设置为等于源网络节点的源标识符(SID,Source Identifier) 0这样,后续流程中,目的网络节点在接收到路由通路检测消息后,根据目标标识符参数值,向源网络节点转发路由通路检测消息。
[0039]实际应用中,源网络节点将路由通路检测消息封装在用户数据报协议(UDP,UserDatagram Protocol)/网际互联协议(IP, Internet Protocol)报文中,经源网络节点的数据链路层发送给目的网络节点。其中,UDP/IP报文中包含源网络节点的IP地址和目的网络节点的IP地址。
[0040]A22,如果在预设时间内接收到所述目的网络节点转发的路由通路检测消息,确定源网络节点至目的网络节点的路径处于可达状态,将可达状态作为源网络节点至目的网络节点的网络拓扑信息;
[0041]如果在预设时间内没有接收到所述目的网络节点转发的路由通路检测消息,确定源网络节点至目的网络节点的路径处于不可达状态,将不可达状态作为源网络节点至目的网络节点的网络拓扑信息。
[0042]本步骤中,目的网络节点在接收到UDP/IP报文后,对该UDP/IP报文解封装,并对解封装后的路由通路检测消息进行解析,获取DID参数,与自身的DID参数进行比较:
[0043]如果两者相同,则接收该路由通路检测消息;本发明实施例中,为了检测可达性,需要目的网络节点返回信息,因而,通过将路由通路检测消息中用于指示目的网络节点的目标标识符参数值设置为等于源网络节点的源标识符。
[0044]如果两者不相同,则查找本地是否存储有获取的DID参数值对应的网络节点的IP地址(即源网络节点的IP地址),如果有,则根据查找到的IP地址,将该路由通路检测消息封装在UDP/IP报文中,发送给所述查找到的IP地址对应的网络节点(即源网络节点);如果没有,则将该路由通路检测消息封装在UDP/IP报文中,发送给默认网络节点。一般地,默认网络节点中存储有网络中所有网络节点的ID及IP地址信息。因此,当默认网络节点接收到目的网络节点发送的UDP/IP报文时,根据路由通路检测消息中的DID参数值找到对应的源网络节点的IP地址,将该路由通路检测消息封装在UDP/IP报文中,发送给该源网络节点,从而完成可达性检测。
[0045]实际应用中,源网络节点还可通过自定义路由通路检测消息中的消息类型参数值来唯一标识该路由通路检测消息,以便于源网络节点对后续接收到的路由通路检测消息进行识别,以确定是否是发出的路由通路检测消息。这样,该方法进一步包括:
[0046]如果在预设时间内接收到多个路由通路检测消息,则将接收到的多个路由通路检测消息中的消息类型参数值,分别与发送的路由通路检测消息中的消息类型参数值相比较,如果有任一消息类型参数值相同,则确定在预设时间内接收到所述目的网络节点转发的路由通路检测消息。
[0047]或者,
[0048]源网络节点也可以通过自定义路由通路检测消息的功能类型参数值来唯一标识该路由通路检测消息。这样,该方法进一步包括:
[0049]如果在预设时间内接收到多个路由通路检测消息,则将接收到的多个路由通路检测消息中的功能类型参数值,分别与发送的路由通路检测消息中的功能类型参数值相比较,如果有任一功能类型参数值相同,则确定在预设时间内接收到所述目的网络节点转发的路由通路检测消息。
[0050]进一步地,当源网络节点同时向多个目的网络节点发送路由通路检测消息时,还可以通过自定义路由通路检测消息中的事务ID参数值,以对发送的路由通路检测消息进行标识,以区分不同路由通路检测消息对应的不同目的网络节点。
[0051]本发明实施例中,作为可选实施例,可以设置在路由表中存储网络拓扑信息,路由表项信息包括:指向目的网络节点的各路由构成的网络访问路径信息以及该网络访问路径的路由度量值,后续中,依据该路由度量值以及预先设置的权重系数,可以计算得到网络访问路径代价。其中,作为可选实施例,网络访问路径信息可以包括:网络标识(ID,I dent ifier)、目的网络节点地址、转发地址、网络接口以及跃点数,其中,
[0052]网络ID,为源网络节点所在网络的ID ;
[0053]转发地址是源网络节点的硬件地址或IP地址,例如,对于直接连接网络的路由器,转发地址可以是连接到网络的接口地址;
[0054]网络接口为源网络节点将数据包转发到网络ID时所使用的网络接口,实际应用中,网络接口可以是一个端口号或其他类型的逻辑标识符;
[0055]本发明实施例中,对于一个源网络节点(路由器),可能安装有多个网卡或多个虚拟网卡,则每一网卡或虚拟网卡对应一网络接口。
[0056]作为可选实施例,为了有效降低源网络节点中的路由计算量,还可以设置路由计算设备,由设置的路由计算设备分担一部分源网络节点中的路由计算量。因而,该方法还可以进一步包括:
[0057]A31,在路由计算设备中设置多个虚拟网络接口,与网络中运行动态路由协议的网络节点的网络接口分别相连,并设置虚拟网络接口与相连的网络节点的网络接口具有相同的网络地址;
[0058]本步骤中,网络地址可以是IP地址,也可以是其他设置的可唯一标识网络接口的信息。
[0059]本发明实施例中,通过设置虚拟网络接口与相连的网络节点的网络接口具有相同的网络地址,从而将网络中运行动态路由协议的网络节点的网络接口镜像到了路由计算设备上。
[0060]本发明实施例中,网络节点是动态路由协议网络中参与网络拓扑信息交换、进行路由计算以及报文转发的节点,例如,可以是逻辑上或物理上的路由器、用户计算机等;路由计算设备是具有运算和处理能力,并具有网络连接功能的设备,例如,可以是逻辑上或物理上的服务器。
[0061]A32,源网络节点将接收的协议报文通过网络接口转发给路由计算设备上对应的虚拟接口 ;
[0062]A33,路由计算设备按照从源网络节点镜像得到的网络拓扑信息,利用路由算法计算出接收的协议报文中到达目的网络节点的路由表项信息;
[0063]本步骤中,路由计算设备从虚拟接口接收来自源网络节点的协议报文,按照从该源网络节点镜像得到的网络拓扑信息以及动态路由协议进行处理。这样,通过将协议报文转发到路由计算设备上对应的虚拟接口,由路由计算设备进行处理,可以分担源网络节点的路由计算量。
[0064]A34,路由计算设备将计算的路由表项信息通过虚拟接口发送至源网络节点,以使源网络节点按照接收的路由表项信息转发协议报文。
[0065]本步骤中,路由计算设备主要负责动态路由协议的运算和处理,不涉及协议报文的转发。
[0066]实际应用中,对于协议报文具有中转路由的情形,路由计算设备也可以涉及协议报文的转发。这样,在路由计算设备计算得到路由表项信息后,可以按照计算得到路由表项信息,将协议报文直接进行转发。例如,在计算得到路由表项信息后,按照所运行的动态路由协议,生成发送给下一跳网络节点的协议报文,举例来说,向下一跳网络节点通告链路状态信息的通知报文、向下一跳网络节点请求其链路状态信息的请求报文、维持下一跳网络节点关系的报文、对接收的协议报文的响应报文等。在生成相应协议报文后,路由计算设备从虚拟接口将生成的协议报文发送至下一跳网络节点。
[0067]跃点数,即路由数,是选取网络访问路径的度量。实际应用中,一般选用具有最小跃点数的网络访问路径。
[0068]本发明实施例中,当前源网络节点用于为经过该源网络节点的每一数据包(用户数据报)计算并获取一条最优传输路径,即最优网络访问路径,并依据获取的最优传输路径传输该数据包,从而使该数据包能够有效地传送到目的网络节点。
[0069]本发明实施例中,路由算法包括:路由信息协议(RIP, Routing Informat1nProtocol)算法、开放最短路径优先(0SPF,0pen Shortest Path First)算法、中间系统到中间系统(IS-1S, Intermediate System to Intermediate System)算法、边界网关协议(BGP, Border Gateway protocol)算法等。
[0070]步骤102,针对每一目的网络节点,计算该目的网络节点的各路由表项信息对应的网络访问路径代价,并按照网络访问路径代价从小至大进行排序;
[0071]本步骤中,按照网络访问路径代价从小至大进行排序后,选取排序前N位的网络访问路径,作为路由表中的路由表项。其中,N为自然数。
[0072]步骤103,依序按照排序的网络访问路径,发起对目的网络节点的网络访问请求;
[0073]本步骤中,由于从源网络节点至目的网络节点,可能具有多条可达的优选网络访问路径,但该多条可达的优选网络访问路径并不一定处于网络连通状态,因而,本发明实施例中,进行网络连通状态检测。
[0074]本发明实施例中,对目的网络节点发起网络访问请求,该目的网络节点可以是网络访问路径中的目的网络节点,也可以是其它需要经过该网络访问路径的网络节点。
[0075]步骤104,如果在预先设置的时间内接收到网络访问请求对应的网络连通信息,将该网络访问路径作为至所述目的网络节点的最优网络访问路径存储在路由表中。
[0076]本步骤中,可以对多条可达的优选网络访问路径进行网络连通状态检测,并将返回有网络连通信息的一条或多条优选网络访问路径作为最优网络访问路径,存储在路由表中。如果没有接收到对应的网络连通信息,则不作处理,即采用现有的路由表。
[0077]作为可选实施例,发起对目的网络节点的网络访问请求,如果在预先设置的时间内接收到网络访问请求对应的网络连通信息包括:
[0078]B11,依据所述网络访问路径,向预先设置的目的网络节点发送网络连通检测请求;
[0079]本步骤中,网络访问请求为网络连通检测请求,通过模拟windows系统的网络连通状态检测(NCSI,Network Connectivity Status Indicator)机制,设置网络连通检测请求按照当前的网络访问路径进行转发,最后达到目的网络节点,以获取因特网连接状态。
[0080]本发明实施例中,网络连通检测请求包括:域名服务器(DNS, Domain NameServer)解析请求、超文本传输协议(HTTP, Hypertext Transfer Protocol)请求等。例如,以目的网络节点为msftncs1.com为例,如果为HTTP请求,则具体为:http://www.msftncs1.com/ncs1.txt ;如果为 DNS 解析请求,则具体为:dns.msftncs1.com。
[0081]B12,在预先设置的时间内接收到目的网络节点返回的网络连通检测请求响应,进行解析,获取目的网络节点对应的页面或域名服务器解析结果。
[0082]本步骤中,网络连通信息包括但不限于:目的网络节点对应的页面信息以及域名服务器解析结果信息。
[0083]对应于前述的HTTP请求,则经过解析网络访问请求响应(网络连通检测请求响应),得到目的网络节点(msftncs1.com)对应的ncs1.txt页面,包含以下文本行,其中,包含的文本行没有终止新行或其他非打印字符:
[0084]Microsoft NCSI
[0085](页面标题禁用缓存)
[0086]则表示在预先设置的时间内接收到网络访问请求对应的网络连通信息。
[0087]对应于前述的DNS解析请求,则经过解析网络访问请求响应,得到域名服务器解析结果,具体为=131.107.255.255,则表示在预先设置的时间内接收到网络访问请求对应的网络连通信息。
[0088]本发明实施例中,通过模拟NCSI,向DNS服务器dns.msftncs1.com发起DNS解析请求,如果DNS解析请求响应中的DN解析结果为:131.107.255.255,表明至该目的网络节点的网络访问路径处于因特网(Internet)连接状态,否则,表明至该目的网络节点的网络访问路径虽处于可达状态,但处于因特网非连接状态。这样,作为可选实施例,该方法可以进一步包括:
[0089]如果在预先设置的时间内没有接收到网络连通检测请求响应,或者,解析获取的不是目的网络节点对应的页面,或者,解析获取的不是域名服务器解析结果,确定当前网络访问路径处于网络非连接状态,读取排序的下一网络访问路径,返回执行步骤B11。
[0090]本发明实施例中,还可以对路由表进行维护,因而,作为一可选实施例,该方法可以进一步包括:
[0091]注册监听路由表变化的通知,以使路由表链路状态发生变化时,调整路由表。
[0092]本步骤中,通过API NotifyRouteChange注册路由表变更通知。当网络节点接收到路由表变更通知,通过路由通路检测消息以及网络连通检测请求,判断网络访问路径和网络连接状态是否发生变化,如果发生变化,更新路由表以及网络访问路径和网络连接状态,并等待下一次路由表变更通知。这样,通过循环判断即可实时获取得到网络节点当前最优的上网路径及连网状态。
[0093]本发明实施例中,如果出现硬件变动、和/或,软件变动,则判断网络连接状态发生变化。其中,硬件变动可以包括网卡的启用、禁用、损坏、恢复或网络切换,软件变动可以包括防火墙规则变动、准入软件变动等。
[0094]作为另一可选实施例,该方法还可以进一步包括:
[0095]步骤105,接收用户数据报,根据用户数据报中的目的网络节点,查询存储有最优网络访问路径的路由表,获取至所述目的网络节点的最优网络访问路径,并依据获取的所述最优网络访问路径转发所述用户数据报。
[0096]本步骤中,当该路由器接收到用户发送的用户数据报后,根据用户数据报中的目的网络节点,查询存储有最优网络访问路径的路由表,获取至所述目的网络节点的最优网络访问路径,依据获取的所述最优网络访问路径转发所述用户数据报。这样,无论用户数据报是否需要网络访问,都可以顺利到达目的网络节点。
[0097]实际应用中,可以通过GetIpForwardTable 函数或 GetBestInterface API 函数读取路由表进行查询。例如,利用GetIpForwardTable函数、CreateIpForwardEntry函数、DeleteIpForwardEntry函数、SetIpForwardEntry函数来分别获取路由表、创建路由表中的路由表项、删除路由中的路由表表项和修改路由表中的路由表项。举例来说,前述的将最优网络访问路径存储在路由表中可通过CreateIpForwardEntry函数实现。
[0098]实际应用中,在读取路由表后,也可以利用GetBestRoute函数、GetBestInterface函数获得到达目的网络节点的最优网络访问路径以及该最优网络访问路径对应源网络节点(当前网络节点)的网络接口。因而,该方法还可以进一步包括:
[0099]根据所述最优网络访问路径,调用GetBestInterface函数,获取所述最优网络访问路径对应的网络接口信息。
[0100]本步骤中,由于一个网络节点中可能具有多个网卡,对应有多个网络接口,这样,通过获取所述最优网络访问路径对应的网络接口信息,可以获知能够提供上网的是哪一个网卡或哪些网卡。
[0101]当然,实际应用中,也可以使用缺省路由表(Default route)中的缺省路由记录,例如,如果在路由表中没有找到与目的网络节点匹配的路由路径时,即对接收的用户数据报进行转发使用的路由,可以使用缺省路由。在路由表中,缺省路由以目的网络节点为
0.0.0.0、子网掩码为0.0.0.0的形式出现。也就是说,如果用户数据报的目的网络节点地址不能与任何路由相匹配,则将使用缺省路由转发该数据包。
[0102]由上述可见,本发明实施例的优化网络访问路径的方法,在通过网络拓扑信息获取路由表项信息,利用路由表项信息生成网络访问路径,并从多条网络访问路径中得到优选网络路径后,对优选网络路径发起网络访问,从而确定该优选网络路径是否处于网络连通状态,并将处于网络连通状态的优选网络路径作为最优网络路径存储在路由表中。这样,在用户数据报需要进行网络访问的情况下,可以成功接入网络,避免了仅仅依据路径可达性确定的优选网络访问路径,其可能无权限访问外部网络或处于连网状态导致的用户访问网络失败的情形发生,提升了用户访问网络的成功率,保障了用户的正常网络访问行为,从而提升了用户的网络业务体验;进一步地,通过模拟NCSI获取发起网络访问并获取网络连通状态,相对于尝试连接其他网络服务器获取网络连通状态,安全可靠性更高;而且,通过注册监听路由表变化的通知的方式维护路由表,无需实时检查路由表中的路由表项,只需在路由表有变化时进行检查并更新,节约了维护路由表的资源开销,无需实时调用检查路由表就能实时知道最优网络访问路径,获取最优网络访问路径的效率闻。
[0103]图2为本发明实施例优化网络访问路径的装置结构示意图。参见图2,该装置包括:路由表项信息获取模块201、网络访问路径代价排序模块202、网络访问请求模块203以及路径优化模块204,其中,
[0104]路由表项信息获取模块201,用于接收协议报文,获取网络拓扑信息,根据获取的网络拓扑信息,利用路由算法计算出所述协议报文中目的网络节点的路由表项信息;
[0105]本发明实施例中,路由算法包括:路由信息协议算法、开放最短路径优先算法、中间系统到中间系统算法、边界网关协议算法等。
[0106]作为一可选实施例,路由表项信息获取模块201包括:报文发送单兀、网络拓扑信息获取单元以及路由表项信息获取单元(图中未示出),其中,
[0107]报文发送单元,用于向邻居网络节点发送hello报文,携带自身的链路状态通告信息,并请求获取邻居网络节点的LSA信息;
[0108]网络拓扑信息获取单元,用于根据接收的hello报文,解析获取LSA信息作为网络拓扑息;
[0109]路由表项信息获取单元,用于根据获取的网络拓扑信息,利用路由算法计算出所述协议报文中目的网络节点的路由表项信息。
[0110]较佳地,该路由表项信息获取模块201还可以进一步包括:
[0111]识别单元,用于从接收的hello报文中,识别出动态路由协议的协议报文,并将识别出的动态路由协议的协议报文输出至网络拓扑信息获取单元。
[0112]作为另一可选实施例,路由表项信息获取模块201包括:路由通路检测消息编辑单元、发送单元、网络拓扑信息获取单元以及路由表项信息获取单元(图中未示出),其中,
[0113]路由通路检测消息编辑单元,用于将路由通路检测消息中用于指示目的网络节点的目标标识符参数值设置为等于源网络节点的源标识符;
[0114]本发明实施例中,路由通路检测消息包括消息头和消息体,其中,消息头中包含功能类型参数、消息类型参数、事务ID参数以及长度参数等,用以分别定义该路由通路检测消息的功能类型、消息类型、事务标识及消息长度等;消息体中包含指示源网络节点的源标识符参数和指示目的网络节点的目标标识符参数。
[0115]发送单元,用于向目的网络节点发送路由通路检测消息;
[0116]网络拓扑信息获取单元,如果在预设时间内接收到所述目的网络节点转发的路由通路检测消息,确定源网络节点至目的网络节点的路径处于可达状态,将可达状态作为源网络节点至目的网络节点的网络拓扑信息;
[0117]如果在预设时间内没有接收到所述目的网络节点转发的路由通路检测消息,确定源网络节点至目的网络节点的路径处于不可达状态,将不可达状态作为源网络节点至目的网络节点的网络拓扑信息;
[0118]本发明实施例中,目的网络节点在接收到UDP/IP报文后,对该UDP/IP报文解封装,并对解封装后的路由通路检测消息进行解析,获取DID参数,与自身的DID参数进行比较:
[0119]如果两者相同,则接收该路由通路检测消息;本发明实施例中,为了检测可达性,需要目的网络节点返回信息,因而,通过将路由通路检测消息中用于指示目的网络节点的目标标识符参数值设置为等于源网络节点的源标识符。
[0120]如果两者不相同,则查找本地是否存储有获取的DID参数值对应的网络节点的IP地址(即源网络节点的IP地址),如果有,则根据查找到的IP地址,将该路由通路检测消息封装在UDP/IP报文中,发送给所述查找到的IP地址对应的网络节点(即源网络节点);如果没有,则将该路由通路检测消息封装在UDP/IP报文中,发送给默认网络节点。一般地,默认网络节点中存储有网络中所有网络节点的ID及IP地址信息。因此,当默认网络节点接收到目的网络节点发送的UDP/IP报文时,根据路由通路检测消息中的DID参数值找到对应的源网络节点的IP地址,将该路由通路检测消息封装在UDP/IP报文中,发送给该源网络节点,从而完成可达性检测。
[0121]路由表项信息获取单元,用于根据获取的网络拓扑信息,利用路由算法计算出所述协议报文中目的网络节点的路由表项信息。
[0122]网络访问路径代价排序模块202,用于针对每一目的网络节点,计算该目的网络节点的各路由表项信息对应的网络访问路径代价,并按照网络访问路径代价从小至大进行排序;
[0123]网络访问请求模块203,用于依序按照排序的网络访问路径,发起对目的网络节点的网络访问请求;
[0124]本发明实施例中,作为一可选实施例,网络访问请求模块203包括:网络连通检测请求单元以及网络连通检测单元(图中未示出),其中,
[0125]网络连通检测请求单元,用于依据所述网络访问路径,向预先设置的目的网络节点发送网络连通检测请求;
[0126]本发明实施例中,网络连通检测请求包括:域名服务器(DNS, Domain NameServer)解析请求、超文本传输协议(HTTP, Hypertext Transfer Protocol)请求等。例如,以目的网络节点为msftncs1.com为例,如果为HTTP请求,则具体为:http://www.msftncs1.com/ncs1.txt ;如果为 DNS 解析请求,则具体为:dns.msftncs1.com。
[0127]网络连通检测单元,用于在预先设置的时间内接收到目的网络节点返回的网络连通检测请求响应,进行解析,获取目的网络节点对应的页面或域名服务器解析结果。
[0128]本发明实施例中,网络连通信息包括但不限于:目的网络节点对应的页面信息以及域名服务器解析结果信息。
[0129]对应于前述的HTTP请求,则经过解析网络访问请求响应(网络连通检测请求响应),得到目的网络节点(msftncs1.com)对应的ncs1.txt页面,包含以下文本行,其中,包含的文本行没有终止新行或其他非打印字符:
[0130]Microsoft NCSI
[0131](页面标题禁用缓存)
[0132]则表示在预先设置的时间内接收到网络访问请求对应的网络连通信息。
[0133]对应于前述的DNS解析请求,则经过解析网络访问请求响应,得到域名服务器解析结果,具体为=131.107.255.255,则表示在预先设置的时间内接收到网络访问请求对应的网络连通信息。
[0134]较佳地,网络连通检测单元还可以进一步用于在预先设置的时间内没有接收到网络连通检测请求响应,或者,解析获取的不是目的网络节点对应的页面,或者,解析获取的不是域名服务器解析结果,确定当前网络访问路径处于网络非连接状态,读取排序的下一网络访问路径,输出网络连通检测请求单元。
[0135]路径优化模块204,如果在预先设置的时间内接收到网络访问请求对应的网络连通信息,将该网络访问路径作为至所述外部目的网络节点的最优网络访问路径存储在路由表中。
[0136]本发明实施例中,可通过调用CreateIpForwardEntry函数,将最优网络访问路径存储在路由表中。
[0137]作为可选实施例,该装置进一步包括:
[0138]监测模块205,用于注册监听路由表变化的通知,以使路由表链路状态发生变化时,调整路由表。
[0139]本发明实施例中,通过调用API NotifyRouteChange注册路由表变更通知。
[0140]本发明实施例中,如果出现硬件变动、和/或,软件变动,则判断网络连接状态发生变化。其中,硬件变动可以包括网卡的启用、禁用、损坏、恢复或网络切换,软件变动可以包括防火墙规则变动、准入软件变动等。
[0141]作为另一可选实施例,该装置还可以进一步包括:
[0142]查询转发模块206,用于接收用户数据报,根据用户数据报中的目的网络节点,查询存储有最优网络访问路径的路由表,获取至所述目的网络节点的最优网络访问路径,并依据获取的所述最优网络访问路径转发所述用户数据报。
[0143]本发明实施例中,可以通过调用GetIpForwardTable函数或GetBestInterfaceAPI函数读取路由表,并调用GetBestRoute函数从读取的路由表中,获得到达目的网络节点的最优网络访问路径。
[0144]作为再一可选实施例,该装置还可以进一步包括:
[0145]网络接口信息获取模块207,用于根据所述最优网络访问路径,调用GetBestInterface函数,获取所述最优网络访问路径对应的网络接口信息。
[0146]本发明实施例中,由于一个网络节点中可能具有多个网卡,对应有多个网络接口,这样,通过获取所述最优网络访问路径对应的网络接口信息,可以获知能够提供上网的是哪一个网卡或哪些网卡。
[0147]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory, RAM)等。
[0148]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
【权利要求】
1.一种优化网络访问路径的方法,其特征在于,该方法包括: 接收协议报文,获取网络拓扑信息,根据获取的网络拓扑信息,利用路由算法计算出所述协议报文中目的网络节点的路由表项信息; 针对每一目的网络节点,计算该目的网络节点的各路由表项信息对应的网络访问路径代价,并按照网络访问路径代价从小至大进行排序; 依序按照排序的网络访问路径,发起对目的网络节点的网络访问请求; 如果在预先设置的时间内接收到网络访问请求对应的网络连通信息,将该网络访问路径作为至所述目的网络节点的最优网络访问路径存储在路由表中。
2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括: 注册监听路由表变化的通知,以使路由表链路状态发生变化时,调整路由表。
3.根据权利要求1所述的方法,其特征在于,所述方法进一步包括: 接收用户数据报,根据用户数据报中的目的网络节点,查询存储有最优网络访问路径的路由表,获取至所述目的网络节点的最优网络访问路径,并依据获取的所述最优网络访问路径转发所述用户数据报。
4.根据权利要求3所述的方法,其特征在于,调用GetIpForwardTable函数或GetBestInterface API函数读取路由表进行所述查询,调用GetBestRoute函数获得至所述目的网络节点的最优网络访问路径。
5.根据权利要求1所述的方法,其特征在于,所述方法进一步包括: 根据所述最优网络访问路径,调用GetBestInterface函数,获取所述最优网络访问路径对应的网络接口信息。
6.根据权利要求1所述的方法,其特征在于,所述发起对目的网络节点的网络访问请求,如果在预先设置的时间内接收到网络访问请求对应的网络连通信息包括: 依据所述网络访问路径,向预先设置的目的网络节点发送网络连通检测请求; 在预先设置的时间内接收到目的网络节点返回的网络连通检测请求响应,进行解析,获取目的网络节点对应的页面或域名服务器解析结果。
7.根据权利要求6所述的方法,其特征在于,所述网络连通检测请求为域名服务器解析请求,所述网络连通信息为域名服务器解析结果信息;或者, 所述网络连通检测请求为超文本传输协议请求,所述网络连通信息为目的网络节点对应的页面信息。
8.根据权利要求6所述的方法,其特征在于,所述方法进一步包括: 如果在预先设置的时间内没有接收到网络连通检测请求响应,或者,解析获取的不是目的网络节点对应的页面,或者,解析获取的不是域名服务器解析结果,确定当前网络访问路径处于网络非连接状态,读取排序的下一网络访问路径,返回执行所述依据所述网络访问路径的流程。
9.根据权利要求1至8任一项所述的方法,其特征在于,在所述接收协议报文之后,获取网络拓扑信息之前,所述方法进一步包括: 源网络节点从接收的协议报文中,识别出动态路由协议的协议报文,并依据识别出的动态路由协议的协议报文执行所述获取网络拓扑信息的流程。
10.根据权利要求1至8任一项所述的方法,其特征在于,所述接收协议报文,获取网络拓扑信息包括: 当前网络节点向邻居网络节点发送hello报文,携带自身的链路状态通告信息,并请求获取邻居网络节点的LSA信息; 根据接收的hello报文,解析获取LSA信息作为网络拓扑信息。
11.根据权利要求1至8任一项所述的方法,其特征在于,所述接收协议报文,获取网络拓扑信息包括: 源网络节点向目的网络节点发送路由通路检测消息; 如果在预设时间内接收到所述目的网络节点转发的路由通路检测消息,确定源网络节点至目的网络节点的路径处于可达状态,将可达状态作为源网络节点至目的网络节点的网络拓扑息; 如果在预设时间内没有接收到所述目的网络节点转发的路由通路检测消息,确定源网络节点至目的网络节点的路径处于不可达状态,将不可达状态作为源网络节点至目的网络节点的网络拓扑信息。
12.根据权利要求11所述的方法,其特征在于,所述路由通路检测消息中用于指示目的网络节点的目标标识符参数值设置为等于源网络节点的源标识符。
13.根据权利要求11所述的方法,其特征在于,所述方法进一步包括: 如果在预设时间内接收到多个路由通路检测消息,则将接收到的多个路由通路检测消息中的消息类型参数值,分别与发送的路由通路检测消息中的消息类型参数值相比较,如果有任一消息类型参数值相同,则确定在预设时间内接收到所述目的网络节点转发的路由通路检测消息。
14.根据权利要求1至8任一项所述的方法,其特征在于,所述方法进一步包括: 在路由计算设备中设置多个虚拟网络接口,与网络中运行动态路由协议的网络节点的网络接口分别相连,并设置虚拟网络接口与相连的网络节点的网络接口具有相同的网络地址;源网络节点将接收的协议报文通过网络接口转发给路由计算设备上对应的虚拟接Π ; 路由计算设备按照从源网络节点镜像得到的网络拓扑信息,利用路由算法计算出接收的协议报文中到达目的网络节点的路由表项信息; 路由计算设备将计算的路由表项信息通过虚拟接口发送至源网络节点,以使源网络节点按照接收的路由表项信息转发协议报文。
15.一种优化网络访问路径的装置,其特征在于,该装置包括:路由表项信息获取模块、网络访问路径代价排序模块、网络访问请求模块以及路径优化模块,其中, 路由表项信息获取模块,用于接收协议报文,获取网络拓扑信息,根据获取的网络拓扑信息,利用路由算法计算出所述协议报文中目的网络节点的路由表项信息; 网络访问路径代价排序模块,用于针对每一目的网络节点,计算该目的网络节点的各路由表项信息对应的网络访问路径代价,并按照网络访问路径代价从小至大进行排序;网络访问请求模块,用于依序按照排序的网络访问路径,发起对目的网络节点的网络访问请求; 路径优化模块,如果在预先设置的时间内接收到网络访问请求对应的网络连通信息,将该网络访问路径作为至所述外部目的网络节点的最优网络访问路径存储在路由表中。
16.根据权利要求15所述的装置,其特征在于,进一步包括: 监测模块,用于注册监听路由表变化的通知,以使路由表链路状态发生变化时,调整路由表。
17.根据权利要求15所述的装置,其特征在于,进一步包括: 查询转发模块,用于接收用户数据报,根据用户数据报中的目的网络节点,查询存储有最优网络访问路径的路由表,获取至所述目的网络节点的最优网络访问路径,并依据获取的所述最优网络访问路径转发所述用户数据报。
18.根据权利要求15所述的装置,其特征在于,进一步包括: 网络接口信息获取模块,用于根据所述最优网络访问路径,调用GetBestInterface函数,获取所述最优网络访问路径对应的网络接口信息。
19.根据权利要求15至18任一项所述的装置,其特征在于,所述网络访问请求模块包括:网络连通检测请求单元以及网络连通检测单元,其中, 网络连通检测请求单元,用于依据所述网络访问路径,向预先设置的目的网络节点发送网络连通检测请求; 网络连通检测单元,用于在预先设置的时间内接收到目的网络节点返回的网络连通检测请求响应,进行解析,获取目的网络节点对应的页面或域名服务器解析结果。
20.根据权利要求19所述的装置,其特征在于, 所述网络连通检测请求为域名服务器解析请求,所述网络连通信息为域名服务器解析结果息; 所述网络连通检测请求为超文本传输协议请求,所述网络连通信息为目的网络节点对应的页面信息。
21.根据权利要求19所述的装置,其特征在于,所述网络连通检测单元进一步用于在预先设置的时间内没有接收到网络连通检测请求响应,或者,解析获取的不是目的网络节点对应的页面,或者,解析获取的不是域名服务器解析结果,确定当前网络访问路径处于网络非连接状态,读取排序的下一网络访问路径,输出网络连通检测请求单元。
22.根据权利要求15至18任一项所述的装置,其特征在于,所述路由表项信息获取模块包括:报文发送单元、网络拓扑信息获取单元以及路由表项信息获取单元,其中, 报文发送单元,用于向邻居网络节点发送hello报文,携带自身的链路状态通告信息,并请求获取邻居网络节点的LSA信息; 网络拓扑信息获取单元,用于根据接收的hello报文,解析获取LSA信息作为网络拓扑信息; 路由表项信息获取单元,用于根据获取的网络拓扑信息,利用路由算法计算出所述协议报文中目的网络节点的路由表项信息。
23.根据权利要求15至18任一项所述的装置,其特征在于,所述路由表项信息获取模块进一步包括: 识别单元,用于从接收的hello报文中,识别出动态路由协议的协议报文,并将识别出的动态路由协议的协议报文输出至网络拓扑信息获取单元。
24.根据权利要求15至18任一项所述的装置,其特征在于,所述路由表项信息获取模块包括:路由通路检测消息编辑单元、发送单元、网络拓扑信息获取单元以及路由表项信息获取单元,其中, 路由通路检测消息编辑单元,用于将路由通路检测消息中用于指示目的网络节点的目标标识符参数值设置为等于源网络节点的源标识符; 发送单元,用于向目的网络节点发送路由通路检测消息; 网络拓扑信息获取单元,如果在预设时间内接收到所述目的网络节点转发的路由通路检测消息,确定源网络节点至目的网络节点的路径处于可达状态,将可达状态作为源网络节点至目的网络节点的网络拓扑信息; 如果在预设时间内没有接收到所述目的网络节点转发的路由通路检测消息,确定源网络节点至目的网络节点的路径处于不可达状态,将不可达状态作为源网络节点至目的网络节点的网络拓扑信息; 路由表项信息获取单元,用于根据获取的网络拓扑信息,利用路由算法计算出所述协议报文中目的网络节点的路由表项信息。
【文档编号】H04L12/741GK104243320SQ201410458458
【公开日】2014年12月24日 申请日期:2014年9月10日 优先权日:2014年9月10日
【发明者】李伟健, 徐建新 申请人:珠海市君天电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1