一种基于隧道机制的蓝牙路由器的制作方法

文档序号:13512019阅读:237来源:国知局
一种基于隧道机制的蓝牙路由器的制作方法

本实用新型涉及通讯领域,更具体的说,尤其涉及一种基于隧道机制的蓝牙路由器。



背景技术:

目前,各种蓝牙终端设备无法通过传统路由器直接上网。如需访问互联网各种蓝牙终端设备必须升级至蓝牙4.2或以上版本,且设备的系统软件也需相应更改以便配合支持4.2或以上蓝牙版本的软硬件,且建立与之配合的支持蓝牙4.2及以上版本的无线个域网——6LoWPAN网络,再通过该个域网中特定的终端节点设备间接连接互联网。这给当前带有各种蓝牙版本的各类终端设备的随时随地上网交互通信带来了不便。

因此,设计一种在传统路由器基础上易扩展、成本低的、无缝支持各种蓝牙版本下的各类蓝牙终端设备直接上网的路由器是很有必要的。



技术实现要素:

本实用新型的目的在于解决上述问题而提供一种在传统路由器基础上易扩展、成本低的、无缝支持各种蓝牙版本终端设备直接上网的基于隧道机制的蓝牙路由器。

本实用新型通过以下技术方案来实现上述目的:一种基于隧道机制的蓝牙路由器,包括路由器、单片机、蓝牙单元和电源管理模块,所述单片机与所述蓝牙单元电连接,所述单片机具有网络接口,且与所述路由器的网络接口之一进行网络连接,所述电源管理模块与上述的路由器、单片机、蓝牙单元均电连接并为它们供电;所述路由器的存储器内存储有隧道服务进程和蓝牙设备IP地址表,所述单片机的存储器内存储有隧道客户进程、蓝牙连接管理进程、蓝牙MAC地址和IP地址转换表,所述蓝牙路由器接受任意蓝牙终端设备的连接请求,通过蓝牙连接,为各蓝牙终端动态分配内网侧IP地址、转发各蓝牙终端的IP分组到互联网并从互联网接收IP分组转发回正确的终端,实现任意蓝牙终端设备的互联网通信。

进一步的,所述IP地址转换表是一种二维表数据结构,每一行保存一个蓝牙终端设备与所述蓝牙路由器之间所建立的蓝牙连接的记录,记录包括蓝牙连接描述符、蓝牙MAC地址和IP地址三个属性字段,其中,蓝牙连接描述符表示某一蓝牙终端设备与所述蓝牙单元之间建立的蓝牙连接的描述符;蓝牙MAC地址表示这个蓝牙终端设备的48位蓝牙MAC地址;IP地址表示分配给这个蓝牙终端设备的32位内网IP地址;所述蓝牙设备IP地址表是一种一维数组数据结构,其每一个数组成员保存一个当前分配给一蓝牙终端设备的IP地址。

利用上述装置进行的一种基于隧道机制的蓝牙路由器的路由方法,包括如下步骤:

1)为单片机分配固定内网IP地址,具体步骤如下:蓝牙路由器加电启动后,其路由器通过内部的DHCP和网络接口之一将内网地址池中的第一个IP地址记为IP1,固定分配给所述单片机的网络接口;

2)建立工作隧道,具体步骤如下:路由器运行隧道服务进程,隧道服务进程对所述路由器内网侧的IP地址,记为IP0的进行绑定、侦听;在接受所述隧道客户进程的TCP或UDP连接后,等待所述隧道客户进程发出“隧道建立请求”信令,在接收到“隧道建立请求”信令后,建立服务端的隧道环境,并封装“隧道建立结果回应”信令,发回所述隧道客户进程;

3)初始化蓝牙MAC地址与内网IP地址转换表;具体步骤如下:①所述蓝牙连接管理进程通过所述蓝牙单元接受任一主动发起蓝牙搜索的蓝牙终端设备的连接请求,②将代表此蓝牙连接的描述符、蓝牙终端设备的48位蓝牙MAC地址,作为一行新记录插入到所述蓝牙MAC地址与IP地址转换表的末尾;③初始化“IP地址”字段为NULL,NULL表示未分配IP;④并发跳转至本流程①、步骤4,并发执行;

4)分配内网IP地址并记录蓝牙MAC地址与内网IP映射,具体步骤如下:蓝牙终端设备通过上述蓝牙连接,传递需获取IP地址的请求包至所述蓝牙连接管理进程;蓝牙连接管理进程将蓝牙终端设备的蓝牙MAC地址作为参数,发送给所述隧道客户进程;隧道客户进程保存上述蓝牙MAC地址的参数,封装“内网IP地址申请”信令,通过所述隧道发送至隧道服务进程;隧道服务进程接收到“内网IP地址申请”信令,通过所述路由器内部DHCP从内网地址池中获取一个未分配的内网IP地址IPX;封装“内网IP地址申请回应”信令,再通过所述隧道发送至所述隧道客户进程;将内网地址IPX插入到所述蓝牙设备IP地址表末尾;隧道客户进程取出内网地址IPX和所保存的蓝牙MAC地址,一起作为参数发送至所述蓝牙连接管理进程;蓝牙连接管理进程取出蓝牙MAC地址值,查询IP地址转换表,使该蓝牙MAC地址值所在的记录行的“IP地址”字段赋予地址IPX;将IPX填入IP地址请求的响应包,通过上述记录行中蓝牙连接的描述符将该包传回至蓝牙终端设备,该蓝牙终端设备协议栈用IPX作为本地IP地址;

5)发送蓝牙终端设备的IP分组,具体步骤如下:所述蓝牙单元接收任一蓝牙终端设备从蓝牙通信层发送的每一个IP分组;所述蓝牙连接管理进程通过蓝牙终端设备的蓝牙连接描述符读取IP分组;以每一IP分组作为参数发送至所述隧道客户进程一次;隧道客户进程每次将得到的一个IP分组封装进入“发送IP分组”信令;通过所述隧道传递至所述隧道服务进程;隧道服务进程接收此信令,取得待发送的IP分组;通过所述路由器转发;

6)接收IP分组转发回蓝牙终端设备,具体步骤如下:所述路由器从收到每一个IP分组中取出目的IP地址并查找所述蓝牙设备IP地址表;若目的IP地址在蓝牙设备IP地址表中,发送每一IP分组至所述隧道服务进程;若目的IP地址不在蓝牙设备IP地址表中,转发IP分组至其他路由器接口;所述隧道服务进程一次用一个IP分组封装一个“接收IP分组”信令,通过所述隧道传递至所述隧道客户进程;隧道客户进程接收此信令,取得待接收IP分组作为参数,发送至所述蓝牙连接管理进程;蓝牙连接管理进程取出待接收IP分组的目的IP地址,查找IP地址转换表中该目的IP地址所在的行;若找到该行,取出蓝牙终端设备的蓝牙MAC地址、蓝牙连接描述符,否则直接丢弃此待接收IP分组;通过蓝牙连接描述符传递此待接收的IP分组至正确的蓝牙终端设备,该蓝牙终端设备IP层获得此IP分组;

7)释放内网IP地址,终端上网结束,具体步骤如下:①蓝牙终端设备断蓝牙连接,协议栈删除已分配的内网地址IPX;②所述蓝牙连接管理进程获得蓝牙连接断开的通知;③以此连接的描述符查找IP地址转换表,取得所在记录行的“IP地址”字段的地址;④将此IP地址作为参数,发送至所述隧道客户进程;⑤删除本行记录;⑥隧道客户进程将上述的IP地址参数封装进入“内网IP地址释放”信令,通过所述隧道传递至所述隧道服务进程;⑦隧道服务进程接收信令后取出要释放的IP地址,通过所述路由器内部DHCP将其释放回地址池中;⑧封装“内网IP地址释放回应”信令,通过所述隧道传递至所述隧道客户进程;⑨查找所述蓝牙设备IP地址表,删除释放的IP地址的对应行;⑩隧道客户进程解析回应信令,若得到释放IP地址失败,则重复该步骤中的⑥至⑩步,若得到释放IP地址成功,则跳转至整体工作步骤3;

8)重复步骤3~7,直至所述蓝牙路由器电源关闭。

进一步的,所述步骤2中隧道客户端的具体实现流程如下:①所述单片机运行所述隧道客户进程;②隧道客户进程以所述网络接口地址IP1作为本地地址,所述路由器的内网侧地址IP0作为目标地址,发起TCP或UDP连接;③封装“隧道建立请求”信令,发送至所述隧道服务进程;④等待隧道服务端的回应信令;⑤接收到服务端“隧道建立回应”信令,解析、判断服务端隧道建立的结果;⑥若服务端建立成功,则继续建立客户端隧道环境;⑦若客户端也建立成功,则隧道建立成功,运行所述蓝牙连接管理进程;⑧若服务端建立不成功,或者客户端建立不成功,则隧道建立失败,重新启动所述蓝牙路由器。

进一步的,所述信令的格式包括8位隧道源地址、8位隧道目的地址、4位信令类型、4位错误码和根据不同信令类型的需求另行附加的0个或多个字节的数据;8位隧道源地址、8位隧道目的地址字段均为自定义的ID,用于标识隧道两端的进程;4位信令类型包括隧道建立请求信令0000、隧道建立回应信令0001、内网IP地址申请信令0010、内网IP地址申请回应信令0011、发送IP分组信令0100、接收IP分组信令0101、内网IP地址释放信令0110和内网IP地址释放回应信令0111;无错误发生时,所有信令的4位错误码字段均为0000;根据不同错误类别,自定义其他错误码值。

进一步的,对于内网IP地址申请回应信令,错误码为0000时,附加4字节分配的内网IP地址;有分配错误发生时,无附加IP地址数据;对于内网IP地址释放信令、内网IP地址释放回应信令,分别附加4字节的申请释放的、释放后的内网IP地址;对于发送IP分组信令、接收IP分组信令,均附加16位的IP分组长度字段和待转发的IP分组。

本实用新型的有益效果在于:本实用新型提供了携带各种蓝牙版本的蓝牙终端设备的直连路由器的上网解决方案,给用户以简单、方便、一致的上网体验,解决了各种类型蓝牙终端设备统一上网的复杂、不便性。本实用新型是在传统的路由器模块基础上进行简单、低成本的扩展,为所述的蓝牙路由器的制造生产提供了便捷。

附图说明

图1是本实用新型一种基于隧道机制的蓝牙路由器的连接示意图。

图2是本实用新型一种基于隧道机制的蓝牙路由器整体工作流程图。

图3是本实用新型一种基于隧道机制的蓝牙路由器的路由方法步骤2的流程示意图。

图4是本实用新型一种基于隧道机制的蓝牙路由器的路由方法步骤3的流程示意图。

图5是本实用新型一种基于隧道机制的蓝牙路由器的路由方法步骤4的流程示意图。

图6是本实用新型一种基于隧道机制的蓝牙路由器的路由方法步骤5的流程示意图。

图7是本实用新型一种基于隧道机制的蓝牙路由器的路由方法步骤6的流程示意图。

图8是本实用新型一种基于隧道机制的蓝牙路由器的路由方法步骤7的流程示意图。

图9是本实用新型信令的数据结构示意图。

图10是本实用新型隧道建立请求信令的结构示意图。

图11是本实用新型隧道建立回应信令的结构示意图。

图12是本实用新型内网IP地址申请信令的结构示意图。

图13是本实用新型内网IP地址申请回应信令的结构示意图。

图14是本实用新型发送IP分组信令的结构示意图。

图15是本实用新型接收IP分组信令的结构示意图。

图16是本实用新型内网IP地址释放信令的结构示意图。

图17是本实用新型内网IP地址释放回应信令的结构示意图。

图中,1-路由器、2-单片机、3-蓝牙单元、4-电源管理模块、5-网络接口、6-网络接口之一。

具体实施方式

下面结合附图对本实用新型作进一步说明:

如图1~8所示,一种基于隧道机制的蓝牙路由器,包括路由器1、单片机2、蓝牙单元3和电源管理模块4,所述单片机2与所述蓝牙单元3电连接,所述单片机2具有网络接口5,且与所述路由器1的网络接口之一6进行网络连接,所述电源管理模块4与上述的路由器1、单片机2、蓝牙单元3均电连接并为它们供电;所述路由器1的存储器内存储有隧道服务进程和蓝牙设备IP地址表,所述单片机2的存储器内存储有隧道客户进程、蓝牙连接管理进程、蓝牙MAC地址和IP地址转换表,所述蓝牙路由器接受任意蓝牙终端设备的连接请求,通过蓝牙连接,为各蓝牙终端动态分配内网侧IP地址、转发各蓝牙终端的IP分组到互联网并从互联网接收IP分组转发回正确的终端,实现任意蓝牙终端设备的互联网通信。

所述IP地址转换表是一种二维表数据结构,每一行保存一个蓝牙终端设备与所述蓝牙路由器之间所建立的蓝牙连接的记录,记录包括蓝牙连接描述符、蓝牙MAC地址和IP地址三个属性字段,其中,蓝牙连接描述符表示某一蓝牙终端设备与所述蓝牙单元3之间建立的蓝牙连接的描述符;蓝牙MAC地址表示这个蓝牙终端设备的48位蓝牙MAC地址;IP地址表示分配给这个蓝牙终端设备的32位内网IP地址;所述蓝牙设备IP地址表是一种一维数组数据结构,其每一个数组成员保存一个当前分配给一蓝牙终端设备的IP地址。

一种基于隧道机制的蓝牙路由器的路由方法,包括如下步骤:

1)为单片机2分配固定内网IP地址,具体步骤如下:蓝牙路由器加电启动后,其路由器1通过内部的DHCP和网络接口之一6将内网地址池中的第一个IP地址记为IP1,固定分配给所述单片机2的网络接口5;

2)建立工作隧道,具体步骤如下:路由器1运行隧道服务进程,隧道服务进程对所述路由器1内网侧的IP地址,记为IP0的进行绑定、侦听;在接受所述隧道客户进程的TCP或UDP连接后,等待所述隧道客户进程发出“隧道建立请求”信令,在接收到“隧道建立请求”信令后,建立服务端的隧道环境,并封装“隧道建立结果回应”信令,发回所述隧道客户进程;

3)初始化蓝牙MAC地址与内网IP地址转换表;具体步骤如下:①所述蓝牙连接管理进程通过所述蓝牙单元3接受任一主动发起蓝牙搜索的蓝牙终端设备的连接请求,②将代表此蓝牙连接的描述符、蓝牙终端设备的4位蓝牙MAC地址,作为一行新记录插入到所述蓝牙MAC地址与IP地址转换表的末尾;③初始化“IP地址”字段为NULL,NULL表示未分配IP;④并发跳转至本流程①、步骤4,并发执行;

4)分配内网IP地址并记录蓝牙MAC地址与内网IP映射,具体步骤如下:蓝牙终端设备通过上述蓝牙连接,传递需获取IP地址的请求包至所述蓝牙连接管理进程;蓝牙连接管理进程将蓝牙终端设备的蓝牙MAC地址作为参数,发送给所述隧道客户进程;隧道客户进程保存上述蓝牙MAC地址的参数,封装“内网IP地址申请”信令,通过所述隧道发送至隧道服务进程;隧道服务进程接收到“内网IP地址申请”信令,通过所述路由器1内部DHCP从内网地址池中获取一个未分配的内网IP地址IPX;封装“内网IP地址申请回应”信令,再通过所述隧道发送至所述隧道客户进程;将内网地址IPX插入到所述蓝牙设备IP地址表末尾;隧道客户进程取出内网地址IPX和所保存的蓝牙MAC地址,一起作为参数发送至所述蓝牙连接管理进程;蓝牙连接管理进程取出蓝牙MAC地址值,查询IP地址转换表,使该蓝牙MAC地址值所在的记录行的“IP地址”字段赋予地址IPX;将IPX填入IP地址请求的响应包,通过上述记录行中蓝牙连接的描述符将该包传回至蓝牙终端设备,该蓝牙终端设备协议栈用IPX作为本地IP地址;

5)发送蓝牙终端设备的IP分组,具体步骤如下:所述蓝牙单元3接收任一蓝牙终端设备从蓝牙通信层发送的每一个IP分组;所述蓝牙连接管理进程通过蓝牙终端设备的蓝牙连接描述符读取IP分组;以每一IP分组作为参数发送至所述隧道客户进程一次;隧道客户进程每次将得到的一个IP分组封装进入“发送IP分组”信令;通过所述隧道传递至所述隧道服务进程;隧道服务进程接收此信令,取得待发送的IP分组;通过所述路由器1转发;

6)接收IP分组转发回蓝牙终端设备,具体步骤如下:所述路由器1从收到每一个IP分组中取出目的IP地址并查找所述蓝牙设备IP地址表;若目的IP地址在蓝牙设备IP地址表中,发送每一IP分组至所述隧道服务进程;若目的IP地址不在蓝牙设备IP地址表中,转发IP分组至其他路由器1接口;所述隧道服务进程一次用一个IP分组封装一个“接收IP分组”信令,通过所述隧道传递至所述隧道客户进程;隧道客户进程接收此信令,取得待接收IP分组作为参数,发送至所述蓝牙连接管理进程;蓝牙连接管理进程取出待接收IP分组的目的IP地址,查找IP地址转换表中该目的IP地址所在的行;若找到该行,取出蓝牙终端设备的蓝牙MAC地址、蓝牙连接描述符,否则直接丢弃此待接收IP分组;通过蓝牙连接描述符传递此待接收的IP分组至正确的蓝牙终端设备,该蓝牙终端设备IP层获得此IP分组;

7)释放内网IP地址,终端上网结束,具体步骤如下:①蓝牙终端设备断蓝牙连接,协议栈删除已分配的内网地址IPX;②所述蓝牙连接管理进程获得蓝牙连接断开的通知;③以此连接的描述符查找IP地址转换表,取得所在记录行的“IP地址”字段的地址;④将此IP地址作为参数,发送至所述隧道客户进程;⑤删除本行记录;⑥隧道客户进程将上述的IP地址参数封装进入“内网IP地址释放”信令,通过所述隧道传递至所述隧道服务进程;⑦隧道服务进程接收信令后取出要释放的IP地址,通过所述路由器1内部DHCP将其释放回地址池中;⑧封装“内网IP地址释放回应”信令,通过所述隧道传递至所述隧道客户进程;⑨查找所述蓝牙设备IP地址表,删除释放的IP地址的对应行;⑩隧道客户进程解析回应信令,若得到释放IP地址失败,则重复该步骤中的⑥至⑩步,若得到释放IP地址成功,则跳转至整体工作步骤3;

8)重复步骤3~7,直至所述蓝牙路由器电源关闭。

所述步骤2中隧道客户端的具体实现流程如下:①所述单片机2运行所述隧道客户进程;②隧道客户进程以所述网络接口5地址IP1作为本地地址,所述路由器1的内网侧地址IP0作为目标地址,发起TCP或UDP连接;③封装“隧道建立请求”信令,发送至所述隧道服务进程;④等待隧道服务端的回应信令;⑤接收到服务端“隧道建立回应”信令,解析、判断服务端隧道建立的结果;⑥若服务端建立成功,则继续建立客户端隧道环境;⑦若客户端也建立成功,则隧道建立成功,运行所述蓝牙连接管理进程;⑧若服务端建立不成功,或者客户端建立不成功,则隧道建立失败,重新启动所述蓝牙路由器。

如图9~17所示,所述信令的格式包括8位隧道源地址、8位隧道目的地址、4位信令类型、4位错误码和根据不同信令类型的需求另行附加的0个或多个字节的数据。8位隧道源地址、8位隧道目的地址字段均为自定义的ID,用于标识隧道两端的进程。4位信令类型包括隧道建立请求信令0000、隧道建立回应信令0001、内网IP地址申请信令0010、内网IP地址申请回应信令0011、发送IP分组信令0100、接收IP分组信令0101、内网IP地址释放信令0110和内网IP地址释放回应信令0111。无错误发生时,所有信令的4位错误码字段均为0000;根据不同错误类别,自定义其他错误码值;

对于内网IP地址申请回应信令,错误码为0000时,附加4字节分配的内网IP地址;有分配错误发生时,无附加IP地址数据;对于内网IP地址释放信令、内网IP地址释放回应信令,分别附加4字节的申请释放的、释放后的内网IP地址。对于发送IP分组信令、接收IP分组信令,均附加16位的IP分组长度字段和待转发的IP分组。

上述实施例只是本实用新型的较佳实施例,并不是对本实用新型技术方案的限制,只要是不经过创造性劳动即可在上述实施例的基础上实现的技术方案,均应视为落入本实用新型专利的权利保护范围内。

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