一种链路建立方法、设备和系统与流程

文档序号:11180810阅读:609来源:国知局
一种链路建立方法、设备和系统与流程

本发明涉及互联网领域的ipv6技术,尤其涉及一种链路建立方法、设备和系统。



背景技术:

互联网协议第6版(ipv6,internetprotocolversion6)具有地址空间大、其地址结构便于实现地址聚合、支持地址自动配置、支持主机移动等众多优点,其已成为互联网和移动通信网的共用基本协议。

现有技术中,ipv6链路建立过程包括:状态化地址自动配置和无状态地址自动配置。无论是状态化自动配置还是无状态自动配置,都需要主机支持的动态主机配置协议第6版(dhcpv6,dynamichostconfigureprotocolversion6)功能。由于主机通常是裁剪定制的操作系统,只具备功能受限的功能,甚至不具备操作系统。在物联网和传感器网络中,对于某些低端的主机,则可能并不支持dhcpv6功能,这样将会导致链路建立失败。



技术实现要素:

为解决上述技术问题,本发明实施例提供一种链路建立方法、设备和系统,能够适应性的为主机的配置地址信息,成功完成链路建立,提高地址配置、链路建立成功率。

本发明的技术方案是这样实现的:

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

根据网络侧发送的第一路由消息携带的标识信息对主机配置地址信息;

发送配置结果查询消息至所述主机,所述配置结果查询消息用于根据所述主机配置的地址信息查询链路建立是否成功。

进一步地,所述根据网络侧发送的第一路由消息携带的标识信息对主机配置地址信息,包括:

确定预设时间内是否接收到所述主机发送的路由请求消息,所述预设时间从所述主机与数据卡协商后第一次发送所述路由请求消息开始计时;

若在所述预设时间内接收到所述路由请求消息,发送第二路由通告消息至所述主机,所述第二路由通告消息携带的标识信息与所述网络侧发送的第一路由消息携带的标识信息相同;

若在所述预设时间内没有接收到所述路由请求消息,发送预设路由通告消息至所述主机,所述预设路由通告消息携带的标识信息与所述网络侧发送的第一路由消息携带的标识信息相同;

根据所述标识信息对所述主机配置地址信息。

进一步地,在所述确定预设时间内是否接收到所述主机发送的路由请求消息之前,包括:

接收所述主机发送的拨号连接请求,与所述主机进行点对点协议ppp协商,给所述主机分配接口标识,以使得所述主机根据所述接口标识生成本地链路地址。

进一步地,在所述接收所述主机发送的拨号连接请求,与所述主机进行点对点协议ppp协商,给所述主机分配接口标识,以使得所述主机根据所述接口标识生成本地链路地址之前,包括:

发送所述路由请求消息至所述网络侧;

接收所述网络侧发送的所述第一路由通告消息,保存所述第一路由通告消息携带的标识信息;

发送第一动态主机配置协议第6版dhcpv6请求消息至所述网络侧;

接收所述网络侧发送的第一dhcpv6响应消息,保存所述第一dhcpv6响应消息携带的地址信息。

进一步地,在所述确定预设时间内是否接收到所述主机发送的路由请求消息之前,包括:

发送所述路由请求消息至所述网络侧;

接收所述网络侧发送的所述第一路由通告消息,保存所述第一路由通告消息携带的标识信息;

发送第一dhcpv6请求消息至所述网络侧;

接收所述网络侧发送的第一dhcpv6响应消息,保存所述第一dhcpv6响应消息携带的地址信息。

进一步地,在所述发送所述路由请求消息至所述网络侧之前,包括:

接收所述主机发送的拨号连接请求,与所述主机进行ppp协商,给所述主机分配接口标识,以使得所述主机根据所述接口标识生成本地链路地址。

进一步地,所述标识信息包括:m-flag和o-flag,所述m-flag和所述o-flag的值均为1;所述根据所述标识信息对所述主机配置地址信息,包括:

接收所述主机发送的第二dhcpv6请求消息;

发送第二dhcpv6响应消息至所述主机,所述第二dhcpv6响应消息携带ipv6地址前缀信息和域名系统dns地址信息。

进一步地,所述标识信息包括:m-flag、o-flag和ipv6地址前缀信息,所述m-flag的值为0,所述o-flag的值为1;所述根据所述标识信息对所述主机配置地址信息,包括:

接收所述主机发送的第三dhcpv6请求消息;

发送第三dhcpv6响应消息至所述主机,所述第三dhcpv6响应消息携带dns地址信息。

进一步地,所述标识信息包括:m-flag、o-flag和ipv6地址前缀信息,所述m-flag的值为0,所述o-flag的值为0;所述根据所述标识信息对所述主机配置地址信息,包括:

根据公用数据网上下文pdncontext激活信息中获取的dns地址信息和所述ipv6地址前缀信息构建第三路由通告消息;

发送所述第三路由通告消息至所述主机。

进一步地,所述标识信息包括:m-flag、o-flag和ipv6地址前缀信息,所 述m-flag的值为1,所述o-flag的值为0;所述根据所述标识信息对所述主机配置地址信息,包括:

将所述m-flag的值修改为0,根据pdncontext激活信息中获取的dns地址信息和所述ipv6地址前缀信息构建第四路由通告消息;

发送所述第四路由通告消息至所述主机。

进一步地,在所述发送配置结果查询消息至所述主机之后,包括:

接收所述主机发送的配置结果反馈消息,所述配置结果反馈消息包括:配置确认消息或配置异常消息。

进一步地,所述配置异常消息携带配置异常原因值,当所述配置异常原因值为all,或者dns时,所述方法还包括:

将所述第一路由通告消息携带的m-flag和o-flag的值修改为0,根据所述第一路由通告消息携带的dns地址信息和ipv6地址前缀信息构建第五路由通告消息;

发送所述第五路由通告消息至所述主机。

进一步地,所述配置异常消息携带配置异常原因值,当所述配置异常原因值为ip时,所述方法还包括:

将所述第一路由通告消息携带的m-flag的值修改为0,根据所述第一路由通告消息携带的ipv6地址前缀信息构建第六路由通告消息;

发送所述第六路由通告消息至所述主机。

进一步地,在所述发送所述第五路由通告消息至所述主机之后,还包括:

当所述主机的dns地址信息配置失败时,根据数据卡自身内部的dns代理进行地址解析。

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

接收所述数据卡发送的配置结果查询消息,查询链路建立是否成功;

发送的配置结果反馈消息至所述数据卡,所述配置结果反馈消息包括:配置确认消息或配置异常消息。

进一步地,在所述接收所述数据卡发送的配置结果查询消息之前,还包括:

发送路由请求消息至数据卡;

接收所述数据卡发送的第二路由通告消息,所述第二路由通告消息携带的标识信息与网络侧发送的第一路由消息携带的标识信息相同;或者,接收所述数据卡发送的预设路由通告消息,所述预设路由通告消息携带的标识信息与网络侧发送的第一路由消息携带的标识信息相同。

进一步地,所述标识信息包括:m-flag和o-flag,所述m-flag和所述o-flag的值均为1;所述方法还包括:

发送第二dhcpv6请求消息至所述数据卡;

接收所述数据卡发送的第二dhcpv6响应消息,所述第二dhcpv6响应消息携带ipv6地址前缀信息和域名系统dns地址信息。

进一步地,所述标识信息包括:m-flag、o-flag和ipv6地址前缀信息,所述m-flag的值为0,所述o-flag的值为1;所述方法还包括:

发送的第三dhcpv6请求消息至所述数据卡;

接收所述数据卡发送的第三dhcpv6响应消息,所述第三dhcpv6响应消息携带dns地址信息。

进一步地,所述标识信息包括:m-flag、o-flag和ipv6地址前缀信息,所述m-flag的值为0,所述o-flag的值为0;所述方法还包括:

接收所述数据卡发送的第三路由通告消息,所述第三路由通告消息携带dns地址信息和所述ipv6地址前缀信息。

进一步地,所述标识信息包括:m-flag、o-flag和ipv6地址前缀信息,所述m-flag的值为1,所述o-flag的值为0;所述方法还包括:

接收所述数据卡发送的第四路由通告消息,所述第四路由通告消息携带dns地址信息和所述ipv6地址前缀信息。

本发明实施例提供一种数据卡,所述数据卡包括:路由通告代理模块、地址验证模块,其中,

所述路由通告代理模块,用于根据网络侧发送的第一路由消息携带的标识信息对主机配置地址信息;

所述地址验证模块,用于发送配置结果查询消息至所述主机,所述配置结果查询消息用于根据所述主机配置的地址信息查询链路建立是否成功。

进一步地,所述路由通告代理模块,具体用于确定预设时间内是否接收到所述主机发送的路由请求消息,所述预设时间从所述主机与数据卡协商后第一次发送所述路由请求消息开始计时;具体用于若在所述预设时间内接收到所述路由请求消息,发送第二路由通告消息至所述主机,所述第二路由通告消息携带的标识信息与所述网络侧发送的第一路由消息携带的标识信息相同;具体用于若在所述预设时间内没有接收到所述路由请求消息,发送预设路由通告消息至所述主机,所述预设路由通告消息携带的标识信息与所述网络侧发送的第一路由消息携带的标识信息相同;具体用于根据所述标识信息对所述主机配置地址信息。

进一步地,所述数据卡还包括:dhcpv6代理模块、处理模块;

所述路由通告代理模块,还用于发送所述路由请求消息至所述网络侧;还用于接收所述网络侧发送的所述第一路由通告消息,保存所述第一路由通告消息携带的标识信息;

所述dhcpv6代理模块,用于发送第一dhcpv6请求消息至所述网络侧;还用于接收所述网络侧发送的第一dhcpv6响应消息,保存所述第一dhcpv6响应消息携带的地址信息;

所述处理模块,用于接收所述主机发送的拨号连接请求,与所述主机进行点对点协议ppp协商,给所述主机分配接口标识,以使得所述主机根据所述接口标识生成本地链路地址。

进一步地,所述数据卡还包括:dhcpv6代理模块、处理模块;

所述处理模块,用于接收所述主机发送的拨号连接请求,与所述主机进行ppp协商,给所述主机分配接口标识,以使得所述主机根据所述接口标识生成本地链路地址;

所述路由通告代理模块,还用于发送所述路由请求消息至网络侧;还用于接收所述网络侧发送的所述第一路由通告消息,保存所述第一路由通告消息携 带的标识信息;

所述dhcpv6代理模块,用于发送第一dhcpv6请求消息至所述网络侧;还用于接收所述网络侧发送的第一dhcpv6响应消息,保存所述第一dhcpv6响应消息携带的地址信息。

进一步地,所述标识信息包括:m-flag和o-flag,所述m-flag和所述o-flag的值均为1;

所述数据卡还包括:dhcpv6代理模块,用于接收所述主机发送的第二dhcpv6请求消息;还用于发送第二dhcpv6响应消息至所述主机,所述第二dhcpv6响应消息携带ipv6地址前缀信息和域名系统dns地址信息。

进一步地,所述标识信息包括:m-flag、o-flag和ipv6地址前缀信息,所述m-flag的值为0,所述o-flag的值为1;

所述数据卡还包括:

dhcpv6代理模块,用于接收所述主机发送的第三dhcpv6请求消息;还用于发送第三dhcpv6响应消息至所述主机,所述第三dhcpv6响应消息携带dns地址信息。

进一步地,所述标识信息包括:m-flag、o-flag和ipv6地址前缀信息,所述m-flag的值为0,所述o-flag的值为0;

所述路由通告代理模块,还用于根据公用数据网上下文pdncontext激活信息中获取的dns地址信息和所述ipv6地址前缀信息构建第三路由通告消息;还用于发送所述第三路由通告消息至所述主机。

进一步地,所述标识信息包括:m-flag、o-flag和ipv6地址前缀信息,所述m-flag的值为1,所述o-flag的值为0;

所述路由通告代理模块,还用于将所述m-flag的值修改为0,根据pdncontext激活信息中获取的dns地址信息和所述ipv6地址前缀信息构建第四路由通告消息;还用于发送所述第四路由通告消息至所述主机。

进一步地,所述地址验证模块,还用于接收所述主机发送的配置结果反馈消息,所述配置结果反馈消息包括:配置确认消息或配置异常消息。

进一步地,所述配置异常消息携带配置异常原因值,当所述配置异常原因值为all,或者dns时,

所述路由通告代理模块,还用于将所述第一路由通告消息携带的m-flag和o-flag的值修改为0,根据所述第一路由通告消息携带的dns地址信息和ipv6地址前缀信息构建第五路由通告消息;还用于发送所述第五路由通告消息至所述主机。

进一步地,所述配置异常消息携带配置异常原因值,当所述配置异常原因值为ip时,

所述路由通告代理模块,还用于将所述第一路由通告消息携带的m-flag的值修改为0,根据所述第一路由通告消息携带的ipv6地址前缀信息构建第六路由通告消息;还用于发送所述第六路由通告消息至所述主机。

进一步地,所述路由通告代理模块,还用于当所述主机的dns地址信息配置失败时,根据数据卡自身内部的dns代理进行地址解析。

本发明实施例提供一种主机,所述主机包括:接收单元、发送单元,其中,

所述接收单元,用于接收所述数据卡发送的配置结果查询消息,查询链路建立是否成功;

所述发送单元,用于发送的配置结果反馈消息至所述数据卡,所述配置结果反馈消息包括:配置确认消息或配置异常消息。

进一步地,所述发送单元,用于发送路由请求消息至数据卡;

所述接收单元,用于接收所述数据卡发送的第二路由通告消息,所述第二路由通告消息携带的标识信息与网络侧发送的第一路由消息携带的标识信息相同;或者,还用于接收所述数据卡发送的预设路由通告消息,所述预设路由通告消息携带的标识信息与网络侧发送的第一路由消息携带的标识信息相同。

进一步地,所述标识信息包括:m-flag和o-flag,所述m-flag和所述o-flag的值均为1;

所述发送单元,还用于发送第二dhcpv6请求消息至所述数据卡;

所述接收单元,还用于接收所述数据卡发送的第二dhcpv6响应消息,所 述第二dhcpv6响应消息携带ipv6地址前缀信息和域名系统dns地址信息。

进一步地,所述标识信息包括:m-flag、o-flag和ipv6地址前缀信息,所述m-flag的值为0,所述o-flag的值为1;

所述发送单元,还用于发送的第三dhcpv6请求消息至所述数据卡;

所述接收单元,还用于接收所述数据卡发送的第三dhcpv6响应消息,所述第三dhcpv6响应消息携带dns地址信息。

进一步地,所述标识信息包括:m-flag、o-flag和ipv6地址前缀信息,所述m-flag的值为0,所述o-flag的值为0;

所述接收单元,还用于接收所述数据卡发送的第三路由通告消息,所述第三路由通告消息携带dns地址信息和所述ipv6地址前缀信息。

进一步地,所述标识信息包括:m-flag、o-flag和ipv6地址前缀信息,所述m-flag的值为1,所述o-flag的值为0;

所述接收单元,还用于接收所述数据卡发送的第四路由通告消息,所述第四路由通告消息携带dns地址信息和所述ipv6地址前缀信息。

本发明实施例提供一种链路建立系统,所述系统包括:如上所述的数据卡、如上所述的主机以及网络侧。

本发明实施例提供一种链路建立方法、设备和系统,根据网络侧发送的第一路由消息携带的标识信息对主机配置地址信息;发送配置结果查询消息至所述主机,所述配置结果查询消息用于根据所述主机配置的地址信息查询链路建立是否成功。本发明实施例提供的链路建立方法、设备和系统,能够根据实际系统中主机的能力,动态适应性的为其配置ipv6、dns地址信息,成功完成链路建立,提高地址配置、链路建立成功率。

附图说明

图1为本发明实施例提供的链路建立方法流程示意图一;

图2为本发明实施例提供的链路建立验证流程示意图;

图3为本发明实施例提供的链路建立方法流程示意图二;

图4为本发明实施例提供的链路建立方法流程示意图三;

图5为本发明实施例提供的数据卡结构示意图;

图6为本发明实施例提供的主机结构示意图;

图7为本发明实施例提供的链路建立系统示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

为了更好的理解本发明实施例提供的链路建立方法,首先对现有的ipv6链路建立进行简单的说明。现有的ipv6链路建立过程,分为状态化地址自动配置和无状态地址自动配置,具体哪种配置方式,是运营商分配的具体接入点(apn,accesspointname)决定的,apn是上网时配置的一个参数,它决定了通过哪种接入方式来访问网络。

ipv6链路建立过程包括:数据卡和网络侧协商一个接口标识,主机和数据卡通过ipv6控制协议(ipv6cp,ipv6controlprotocol)交互以获取这个接口标识;主机直接与网络侧进行路由请求(rs,routersolicitation)/路由通告消息(ra,routeradvertisement)交互。具体的,主机发送路由请求rs消息至网络侧,网络侧接收rs消息后,发送路由通告ra消息至主机,其中含有o-flag,m-flag标记,从o-flag,m-flag标记的值可确定网络是要求用状态化还是无状态配置。

如果m-flag和o-flag的值均为1,可以确定网络侧是状态化自动配置,主机必须向网络侧发送动态主机配置协议第6版(dhcpv6,dynamichostconfigureprotocolversion6)消息,和网络侧进行dhcpv6交互,网络侧通过dhcpv6消息给主机发送ipv6地址信息和dns地址信息链路建立。

如果m-flag和o-flag的值均为0,可以确定网络侧是无状态配置,则网络侧发送ra消息中携带有ipv6地址前缀信息,主机获取ipv6地址前缀信息后,和接口标识组成全局ipv6地址;然后主机必须向网络发起dhcpv6消息,和网 络进行dhcpv6交互,网络通过dhcpv6消息给主机发送ipv6地址信息和dns地址信息,链路建立完成。

实施例一

本发明实施例提供一种链路建立方法,如图1所示,该方法可以包括:

步骤101、数据卡根据网络侧发送的第一路由消息携带的标识信息对主机配置地址信息。

具体的,数据卡确定预设时间内是否接收到所述主机发送的路由请求消息,所述预设时间从所述主机与数据卡协商后第一次发送所述路由请求消息开始计时;若在所述预设时间内接收到所述路由请求消息,发送第二路由通告消息至所述主机,所述第二路由通告消息携带的标识信息与所述网络侧发送的第一路由消息携带的标识信息相同;若在所述预设时间内没有接收到所述路由请求消息,发送预设路由通告消息至所述主机,所述预设路由通告消息携带的标识信息与所述网络侧发送的第一路由消息携带的标识信息相同;根据所述标识信息对所述主机配置地址信息。

具体的,主机向数据卡发起联网请求,请求建立链路,数据卡接收所述主机发送的拨号连接请求,与所述主机进行ppp协商,给所述主机分配接口标识,以使得所述主机根据所述接口标识生成本地链路地址。然后,主机发送第二路由请求(rs,routersolicitation)消息给数据卡,由于存在主机协议栈实现不全或不遵从协议的情形,即出现主机没有发送路由请求消息的情形,本发明实施例通过在数据卡中设置一个时间非常短的定时器,通过确定在预设时间内是否接收到主机发送的路由请求消息进行发送路由通告(ra,routeradvertisement)消息。

示例性的,主机可以为pc主机、客户终端设备(cpe,customerpremiseequipment)的盒子或物联网中的智能传感器,数据卡可以为插入sim卡的数据卡。

具体的,如果在预设时间t0内收到主机发来的rs消息,数据卡发送一个单播的路由通告ra消息给主机,即发送第一路由通告消息至所述主机。第一 路由通告消息是复制了网络侧pdn网关(p-gw,pdngateway)发来的ra包,根据第一路由通告消息中标识信息的取值,数据卡采用不同的方式给主机分配地址,即进行链路建立。

其中,第一路由通告消息携带标识信息,该标识信息可以包括m-flag和o-flag,根据m-flag和o-flag的不同取值,还可以包括ipv6地址前缀信息。

如果预设时间t0内,数据卡未收到主机发来的rs消息,则直接立即组播路由通告ra消息,即预设路由通告消息,从而,可以保证主机能及时收到路由通告ra消息。根据预设路由通告消息中标识信息的取值,数据卡采用不同的方式给主机分配地址,即链路建立。

其中,预设路由通告消息携带标识信息,该标识信息可以包括m-flag和o-flag,根据m-flag和o-flag的不同取值,还可以包括ipv6地址前缀信息。

需要说明的是,主机是指计算机除去输入输出设备以外的主要机体部分。也是用于放置主板及其他主要部件的控制箱体,通常包括cpu、内存、硬盘、光驱、电源、以及其他输入输出控制器和接口。

步骤102、数据卡发送配置结果查询消息至所述主机,所述配置结果查询消息用于根据所述主机配置的地址信息查询链路建立是否成功。

数据卡向主机发送配置结果查询消息,目的在于查询主机是否已经将ipv6地址和dns地址等信息都获取、配置完全,配置结果查询消息可以通过at命令来实现。

进一步地,所述方法还可以包括:数据卡接收所述主机发送的配置结果反馈消息,所述配置结果反馈消息包括:配置确认消息或配置异常消息。

如果主机已经将ipv6地址和dns地址都配置成功,主机向数据卡发送配置确认消息,即ack信息。如果主机没有将地址信息配置成功,主机向数据卡发送配置异常消息,

本发明实施例提出链路建立方法中,通过地址验证模块在链路配置的后期进行验证,如果配置完全正确,即地址验证模块收到主机的configureack消息,那么整个建链结束。若某个参数配置异常,即收到configurenak消息,即进入 一个修复流程,具体流程如图2所示。

步骤201开始进入流程,步骤202判断异常原因,异常原因包括:dns、all、或ip。

当异常原因是dns,说明当前配置方式是ra配置ipv6地址,dhcpv6配置dns的方式,即m-flag为0,o-flag为1,而导致dns配置失败是主机不支持dhcpv6client导致。

当异常原因是all,说明ipv6和dns同时都配置失败,那么说明当前的配置方式是ipv6和dns地址都通过dhcpv6来配置的有状态自动配置策略,即m-flag和o-flag都为1,失败也同样是由于主机不支持dhcpv6client功能导致。因此这两种原因可以合并处理,进入步骤203;

当异常原因是ip,说明dns地址配置成功,ipv6地址配置失败;dns地址配置成功,说明主机肯定支持dhcpv6client功能,而ipv6地址是可以通过dhcpv6消息传输的,因此这种属于极少见的异常情况。由于dhcpv6是状态化协议且复杂程度高于路由通过,这里可尝试弃用dhcpv6消息传输dns信息,而是在ipv6地址配置代理模块中构建路由通告ra消息,将其中的m-flag置为0,将ipv6地址前缀信息放在ra消息中,立即组播到主机。

步骤203处理主机不支持dhcpv6client的情形,在步骤203中,ipv6配置代理模块将根据网络侧网关p-gw下发的原始ra、dhcpv6消息内容,重新构建ra消息,在这次构建中,设定主机是遵循rfc6106协议的,即主机能够接收携带于ra消息中的dns地址信息,将ra消息的m-flag和o-flag都修改为0,尝试将ipv6前缀和dns地址都封装在ra消息中,发送给主机,即步骤204。其中,ipv6前缀肯定是能够通过ra配置成功的,那么需要由步骤205判断dns是否配置成功,如果成功,则执行步骤208建链完毕;如果dns仍配置失败,说明主机不支持rfc6106协议,不能获取ra消息中的dns地址。此时执行步骤206,步骤206根据情况,如果数据卡内部有dns代理,启动数据卡内部的软件dns代理模块,后续主机的dns请求,将通过本地链路地址发送到数据,由dns代理模块来实现地址解析工作。如果数据卡内部没有 dns代理功能,则可给主机侧发送消息,通过主机侧的ui提示用户当前主机侧环境无法支持dns配置,无法正常上网。

本发明实施例提供的链路建立方法,能够根据实际系统中主机的能力,动态适应性的为其配置ipv6、dns地址信息,成功完成链路建立,提高地址配置、链路建立成功率。

实施例二

本发明实施例提供一种链路建立方法,如图3所示,该方法可以包括:

步骤301、主机接收所述数据卡发送的配置结果查询消息,查询链路建立是否成功。

具体的,在数据卡根据网络侧发送的第一路由消息携带的标识信息对主机配置地址完成后,数据卡发送配置结果查询消息至主机,主机接收数据卡发送的配置结果查询消息对配置结果进行验证。

步骤302、主机发送的配置结果反馈消息至所述数据卡,所述配置结果反馈消息包括:配置确认消息或配置异常消息。

具体的,主机通过配置结果反馈消息将配置结果反馈给数据卡,其中,所述配置结果反馈消息包括:配置确认消息或配置异常消息。即如果配置完全正确,主机反馈configureack消息至数据卡,那么整个建链结束。若某个参数配置异常,主机反馈configurenak消息至数据卡,然后根据配置异常原因进行修复,具体如图2所示的流程及实施例一中的说明,本发明实施例在此不再赘述。

本发明实施例提供的链路建立方法,能够根据实际系统中主机的能力,动态适应性的为其配置ipv6、dns地址信息,成功完成链路建立,提高地址配置、链路建立成功率。

实施例三

本发明实施例提供一种链路建立方法,如图4所示,该方法可以包括:

步骤401、数据卡发送路由请求消息至网络侧。

具体的,数据卡与网络侧交互,进行开机注册、附着过程,在此过程中,激活默认pdncontext。数据卡主动发送第一路由消息至网络侧,网络侧接收 到第一路由消息后,发送第一路由通告消息至数据卡。

需要说明的是,数据卡会一直发送路由请求消息,直到收到第一路由通告消息为止。

步骤402、数据卡接收所述网络侧发送的第一路由通告消息,保存所述第一路由通告消息携带的标识信息。

具体的,数据卡接收网络侧发送的第一路由通告消息,并保存所述第一路由通告消息中包含的所有信息。

步骤403、数据卡发送第一dhcpv6请求消息至所述网络侧。

步骤404、数据卡接收所述网络侧发送的第一dhcpv6响应消息,保存所述第一dhcpv6响应消息携带的地址信息。

在步骤404之后,主机发起联网请求,请求建立链路。具体如下所述:

步骤405、主机发送拨号连接请求至数据卡。

步骤406、数据卡与主机进行ppp协商,给所述主机分配接口标识。

具体的,主机向数据卡发起联网请求,请求建立链路,数据卡接收所述主机发送的拨号连接请求,与所述主机进行ppp协商,给所述主机分配接口标识,主机根据所述接口标识生成本地链路地址,然后,发送路由请求消息给数据卡。

具体的,ppp协商过程包括lcp协商和ipv6cp协商,目的是给主机分配接口标识,以继续后续的流程。

其中,ipv6控制协议(ipv6cp,ipv6controlprotocol)中用于建立和配置点对点协议(ppp,pointtopointprotocol)上的ip或ipv6。

步骤407、在预设时间内,数据卡接收到主机发送的路由请求消息。

步骤408、数据卡发送第二路由通告消息至所述主机,所述第二路由通告消息携带标识信息。

具体的,第二路由通告消息是复制了网络侧p-gw发来的ra包,其中含有m-flag,o-flag,可能还有ipv6地址前缀信息,根据m-flag和o-flag的值,分情况进行处理。

一种可能的实现方式,所述标识信息包括:m-flag和o-flag,当m-flag和 o-flag的值均为1时,执行步骤409和步骤410。

步骤409、数据卡接收所述主机发送的第二dhcpv6请求消息。

步骤410、数据卡发送第二dhcpv6响应消息至所述主机,所述第二dhcpv6响应消息携带ipv6地址前缀信息和域名系统dns地址信息。

数据卡发送的第二dhcpv6响应消息,所述第二dhcpv6响应消息携带ipv6地址前缀信息和dns地址信息,即主机通过与数据卡的dhcpv6交互过程获取ipv6地址前缀信息和dns地址信息在内的所有信息。

其中,域名系统(dns,domainnamesystem),因特网上作为域名和ip地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的ip数串。每个ip地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。

一种可能的实现方式,所述标识信息包括:m-flag、o-flag和ipv6地址前缀信息,所述m-flag的值为0,所述o-flag的值为1,执行步骤411和步骤412。

步骤411、数据卡接收所述主机发送的第三dhcpv6请求消息;

步骤412、数据卡发送第三dhcpv6响应消息至所述主机,所述第三dhcpv6响应消息携带dns地址信息。

具体的,当m-flag的值为0,o-flag的值为1,数据卡将会组建一个ra消息,主机使用ipv6地址前缀信息来生成全局ipv6地址;dns地址信息通过dhcpv6交互来获取,即数据卡发送第三dhcpv6响应消息获得。

一种可能的实现方式,所述标识信息包括:m-flag、o-flag和ipv6地址前缀信息,所述m-flag的值为0,所述o-flag的值为0,执行步骤413。

步骤413、数据卡根据公用数据网上下文pdncontext激活信息中获取的dns地址信息和所述ipv6地址前缀信息构建第三路由通告消息,发送所述第三路由通告消息至所述主机。

当m-flag的值为0,o-flag的值为0,这种情形一般发生于网络侧没有dhcpv6服务器的环境。数据卡构建一个路由通告ra消息;具体的,数据卡先复制网络侧收到的ra消息内容到新构建的ra消息中,从激活的pdn context中获取dns地址,放入新构建的ra消息中,将这个含有ipv6地址前缀信息和dns地址信息的ra消息组播发送给主机,主机完成配置。

一种可能的实现方式,所述标识信息包括:m-flag、o-flag和ipv6地址前缀信息,所述m-flag的值为1,所述o-flag的值为0,执行步骤414。

步骤414、数据卡将所述m-flag的值修改为0,根据pdncontext激活信息中获取的dns地址信息和所述ipv6地址前缀信息构建第四路由通告消息,发送所述第四路由通告消息至所述主机。

具体的,当m-flag的值为1,o-flag的值为0,这种情形按协议是无效的情形,主机通常不能处理这种情况。但是为了提高链路建立适应性,提高配置成功率,本发明实施例提供的链路建立方法可以通过数据卡构建一个路由通告ra消息来处理这种情况。

具体的,数据卡先复制网络侧收到的ra消息内容到新构建的ra消息中,并将m-flag字段修改为0,从激活的pdncontext中获取ipv6地址前缀和dns地址,放入新构建的ra消息中;将这个含有ipv6地址前缀信息和dns地址信息的ra消息组播发送给主机,主机完成配置。

在步骤410、步骤412、步骤413或步骤414之后,该方法还可以包括:

步骤415、数据卡发送配置结果查询消息至所述主机。

数据卡向主机发送配置结果查询消息,目的在于查询主机是否已经将ipv6地址和dns地址等信息都获取、配置完全,配置结果查询消息可以通过at命令来实现。

步骤416、数据卡接收主机发送的配置结果反馈消息。

其中,所述配置结果反馈消息包括:配置确认消息或配置异常消息。

如果主机已经将ipv6地址和dns地址都配置成功,主机向数据卡发送配置确认消息,即ack信息。

如果主机没有将地址信息配置成功,主机向数据卡发送配置异常消息,即nak信息,所述配置异常消息携带配置异常原因值,即所述配置异常消息携带cause字段,该字段填充为未正确配置的内容。

当所述配置异常原因值为all时,表示ipv6和dns都未配置;

当所述配置异常原因值为ip时,表示未配置ipv6地址;

当所述配置异常原因值为dns时,表示dns未配置成功,ipv6地址配置成功。

进一步地,当所述配置异常原因值为all,或者dns时,所述方法,还包括:

将所述第一路由通告消息携带的m-flag和o-flag的值修改为0,根据所述第一路由通告消息携带的dns地址信息和ipv6地址前缀信息构建第五路由通告消息;

发送所述第五路由通告消息至所述主机;

当所述主机的dns地址信息配置失败时,根据数据卡自身内部的dns代理进行地址解析。

具体的,当所述配置异常原因值为dns时,说明当前配置方式是ra配置ipv6地址,dhcpv6配置dns的方式,即m-flag为0,o-flag为1,而导致dns配置失败是主机不支持dhcpv6client导致。当所述配置异常原因值为all时,说明ipv6和dns同时都配置失败,那么说明当前的配置方式是ipv6和dns地址都通过dhcpv6来配置的有状态自动配置策略,即m-flag和o-flag都为1,失败也同样是由于主机te不支持dhcpv6client功能导致。

对于主机不支持dhcpv6client的情形,本发明实施例提供的链路建立方法中,数据卡根据网络侧发送的ra消息、dhcpv6消息内容,重新构建ra消息,在这次构建中,设定主机是遵循rfc6106协议的,即主机能够接收携带于ra消息中的dns地址信息。具体的构建方法包括:数据卡将ra消息的m-flag和o-flag都修改为0,尝试将ipv6地址前缀信息和dns地址都封装在ra消息中,发送给主机。其中,ipv6地址前缀信息是能够通过ra配置成功的,那么需要由判断是否dns配置成功,如果成功,则链路建立完毕;如果dns仍配置失败,说明主机不支持rfc6106协议,不能获取ra消息中的dns地址,如果数据卡内部有dns代理,启动数据卡内部的软件dns代理模块, 后续主机的dns请求,将通过本地链路地址发送到数据卡mt,由dns代理模块来实现地址解析工作。如果数据卡内部没有dns代理功能,则可给主机发送消息,通过主机的ui提示用户当前主机环境无法支持dns配置,无法正常上网。

进一步地,当所述配置异常原因值为ip时,所述方法,还包括:

将所述第一路由通告消息携带的m-flag的值修改为0,根据ipv6地址前缀信息构建第六路由通告消息;

发送所述第六路由通告消息至所述主机。

具体的,当所述配置异常原因值为ip时,说明dns地址配置成功,ipv6地址配置失败;dns地址配置成功,说明主机支持dhcpv6client功能,而ipv6地址是可以通过dhcpv6消息传输的,因此这种属于极少见的异常情况。由于dhcpv6是状态化协议且复杂程度高于路由通过,这里可以弃用dhcpv6消息传输dns信息,而是在数据卡中构建路由通告ra消息,将其中的m-flag置为0,将ipv6地址前缀信息放在ra消息中,立即组播发送到主机。

需要说明的是,本发明实施例的链路建立方法应用于lte网络下;在umts网络下,将步骤401至步骤404移到步骤405和步骤406之间,即先执行步骤405的拨号连接,再执行步骤401至步骤404数据卡和网络侧交互信息的过程。

在物联网、传感器网络这种由低端te构成的网络中,可能存在主机功能不完备的情况导致地址配置失败,如不支持dhcpv6client的情形导致主机te无法获取dns地址等。采用本发明实施例提供的链路建立方法,可以根据主机的具体情况,给数据卡不同的分配方案,实现“自适应”的地址信息分配,完成建链过程。

需要说明的是,本发明实施例中,根据配置异常项的不同,对主机和网络侧都有一定的容错性处理和兼容性优化,能提高链路建立成功率,具有一定自适应性。

本发明实施例提供的链路建立方法,能够根据实际系统中主机的能力,动态适应性的为其配置ipv6、dns地址信息,成功完成链路建立,提高地址配置、 链路建立成功率。

实施例四

本发明实施例提供一种数据卡1,如图5所示,所述数据卡1包括:路由通告代理模块10、地址验证模块11,其中,

所述路由通告代理模块10,用于根据网络侧发送的第一路由消息携带的标识信息对主机配置地址信息;

所述地址验证模块11,用于发送配置结果查询消息至所述主机,所述配置结果查询消息用于根据所述主机配置的地址信息查询链路建立是否成功。

进一步地,所述路由通告代理模块10,具体用于确定预设时间内是否接收到所述主机发送的路由请求消息,所述预设时间从所述主机与数据卡协商后第一次发送所述路由请求消息开始计时;具体用于若在所述预设时间内接收到所述路由请求消息,发送第二路由通告消息至所述主机,所述第二路由通告消息携带的标识信息与所述网络侧发送的第一路由消息携带的标识信息相同;具体用于若在所述预设时间内没有接收到所述路由请求消息,发送预设路由通告消息至所述主机,所述预设路由通告消息携带的标识信息与所述网络侧发送的第一路由消息携带的标识信息相同;具体用于根据所述标识信息对所述主机配置地址信息。

进一步地,如图5所示,所述数据卡1还包括:dhcpv6代理模块12、处理模块13;

所述路由通告代理模块10,还用于发送路由请求消息至所述网络侧;还用于接收所述网络侧发送的第一路由通告消息,保存所述第一路由通告消息携带的标识信息;

所述dhcpv6代理模块12,用于发送第一dhcpv6请求消息至所述网络侧;还用于接收所述网络侧发送的第一dhcpv6响应消息,保存所述第一dhcpv6响应消息携带的地址信息;

所述处理模块13,用于接收所述主机发送的拨号连接请求,与所述主机进行点对点协议ppp协商,给所述主机分配接口标识,以使得所述主机根据所述 接口标识生成本地链路地址。

进一步地,如图5所示,所述数据卡1还包括:dhcpv6代理模块12、处理模块13;

所述处理模块13,用于接收所述主机发送的拨号连接请求,与所述主机进行ppp协商,给所述主机分配接口标识,以使得所述主机根据所述接口标识生成本地链路地址;

所述路由通告代理模块10,还用于发送路由请求消息至网络侧;还用于接收所述网络侧发送的第一路由通告消息,保存所述第一路由通告消息携带的标识信息;

所述dhcpv6代理模块12,用于发送第一dhcpv6请求消息至所述网络侧;还用于接收所述网络侧发送的第一dhcpv6响应消息,保存所述第一dhcpv6响应消息携带的地址信息。

进一步地,如图5所示,所述标识信息包括:m-flag和o-flag,所述m-flag和所述o-flag的值均为1;

所述数据卡1还包括:dhcpv6代理模块12,用于接收所述主机发送的第二dhcpv6请求消息;还用于发送第二dhcpv6响应消息至所述主机,所述第二dhcpv6响应消息携带ipv6地址前缀信息和域名系统dns地址信息。

进一步地,如图5所示,所述标识信息包括:m-flag、o-flag和ipv6地址前缀信息,所述m-flag的值为0,所述o-flag的值为1;

所述数据卡1还包括:dhcpv6代理模块12,用于接收所述主机发送的第三dhcpv6请求消息;还用于发送第三dhcpv6响应消息至所述主机,所述第三dhcpv6响应消息携带dns地址信息。

进一步地,所述标识信息包括:m-flag、o-flag和ipv6地址前缀信息,所述m-flag的值为0,所述o-flag的值为0;

所述路由通告代理模块10,还用于根据公用数据网上下文pdncontext激活信息中获取的dns地址信息和所述ipv6地址前缀信息构建第三路由通告消息;还用于发送所述第三路由通告消息至所述主机。

进一步地,所述标识信息包括:m-flag、o-flag和ipv6地址前缀信息,所述m-flag的值为1,所述o-flag的值为0;

所述路由通告代理模块10,还用于将所述m-flag的值修改为0,根据pdncontext激活信息中获取的dns地址信息和所述ipv6地址前缀信息构建第四路由通告消息;还用于发送所述第四路由通告消息至所述主机。

进一步地,所述地址验证模块11,还用于接收所述主机发送的配置结果反馈消息,所述配置结果反馈消息包括:配置确认消息或配置异常消息。

进一步地,所述配置异常消息携带配置异常原因值,当所述配置异常原因值为all,或者dns时,

所述路由通告代理模块10,还用于将所述第一路由通告消息携带的m-flag和o-flag的值修改为0,根据所述第一路由通告消息携带的dns地址信息和ipv6地址前缀信息构建第五路由通告消息;还用于发送所述第五路由通告消息至所述主机。

进一步地,所述配置异常消息携带配置异常原因值,当所述配置异常原因值为ip时,

所述路由通告代理模块10,还用于将所述第一路由通告消息携带的m-flag的值修改为0,根据所述第一路由通告消息携带的ipv6地址前缀信息构建第六路由通告消息;还用于发送所述第六路由通告消息至所述主机。

进一步地,所述路由通告代理模块10,还用于当所述主机的dns地址信息配置失败时,根据数据卡自身内部的dns代理进行地址解析。

具体的,路由通告ra代理模块和dhcpv6代理模块可以包含在ipv6配置代理模块内,即ipv6配置代理模块包括ra代理模块和dhcpv6代理模块两个子模块。

其中,ipv6配置代理模块与网络侧和主机侧通信。在附着时,ipv6配置代理模块和网络侧路由通告以及dhcpv6通信;在联网断网时,pv6配置代理模块和主机进行通信。

在lte网络下,ipv6配置代理模块,用于在开机注册后,立即主动向网络 发送rs消息,触发网络侧下发ra消息,从中获取ipv6地址信息并缓存;待后续主机发起拨号连接时,给主机配置ipv6地址等信息。

在umts网络下,ipv6配置代理模块,用于在用户发起拨号连接后,pdp上下文激活后,再和网络侧进行rs、ra消息的发送和收取动作,然后给主机配置ipv6地址等信息。

地址验证模块11,用于在链路建立的后期,验证主机是否正确配置了地址信息,并向ipv6配置代理模块报告。

具体的,本发明实施例提供的数据卡的理解可以参考实施例一和实施例三的链路建立方法的说明,本发明实施例在此不再赘述。

本发明实施例提供的数据卡,能够根据实际系统中主机的能力,动态适应性的为其配置ipv6、dns地址信息,成功完成链路建立,提高地址配置、链路建立成功率。

实施例五

本发明实施例提供一种主机2,如图6所示,所述主机2包括:接收单元20、发送单元21,其中,

所述接收单元20,用于接收所述数据卡发送的配置结果查询消息,查询链路建立是否成功;

所述发送单元21,用于发送的配置结果反馈消息至所述数据卡,所述配置结果反馈消息包括:配置确认消息或配置异常消息。

进一步地,所述发送单元21,用于发送路由请求消息至数据卡;

所述接收单元20,用于接收所述数据卡发送的第二路由通告消息,所述第二路由通告消息携带的标识信息与网络侧发送的第一路由消息携带的标识信息相同;或者,还用于接收所述数据卡发送的预设路由通告消息,所述预设路由通告消息携带的标识信息与网络侧发送的第一路由消息携带的标识信息相同。

进一步地,所述标识信息包括:m-flag和o-flag,所述m-flag和所述o-flag的值均为1;

所述发送单元21,还用于发送第二dhcpv6请求消息至数据卡;

所述接收单元20,还用于接收数据卡发送的第二dhcpv6响应消息,所述第二dhcpv6响应消息携带ipv6地址前缀信息和域名系统dns地址信息。

进一步地,所述标识信息包括:m-flag、o-flag和ipv6地址前缀信息,所述m-flag的值为0,所述o-flag的值为1;

所述发送单元21,还用于发送的第三dhcpv6请求消息至所述数据卡;

所述接收单元20,还用于接收所述数据卡发送的第三dhcpv6响应消息,所述第三dhcpv6响应消息携带dns地址信息。

进一步地,所述标识信息包括:m-flag、o-flag和ipv6地址前缀信息,所述m-flag的值为0,所述o-flag的值为0;

所述接收单元20,还用于接收所述数据卡发送的第三路由通告消息,所述第三路由通告消息携带dns地址信息和所述ipv6地址前缀信息。

进一步地,所述标识信息包括:m-flag、o-flag和ipv6地址前缀信息,所述m-flag的值为1,所述o-flag的值为0;

所述接收单元20,还用于接收所述数据卡发送的第四路由通告消息,所述第四路由通告消息携带dns地址信息和所述ipv6地址前缀信息。

具体的,本发明实施例提供的主机的理解可以参考实施例二和实施例三的链路建立方法的说明,本发明实施例在此不再赘述。

本发明实施例提供的主机,能够根据实际系统中自身的能力,动态适应性的为其配置ipv6、dns地址信息,成功完成链路建立,提高地址配置、链路建立成功率。

本发明实施例提供一种链路建立系统,如图7所示,所述系统包括:如上所述的数据卡、如上所述的主机以及如上所述的网络侧,该系统能够根据实际系统中主机的能力,动态适应性的为其配置ipv6、dns地址信息,成功完成链路建立,提高地址配置、链路建立成功率。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算 机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

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