本发明涉及无线通信领域,特别涉及一种无线通信网络中ARP报文交互方法及系统。
背景技术:
随着科技的发展,人们在有限网络连接的基础上发明了无线通信网络连接技术。无线通信网络,是采用无线通信技术实现的网络,无线网络既包括允许用户建立远距离无线连接的全球语音和数据网络,也包括为近距离无线连接进行优化的红外线技术及射频技术,与有线网络的用途十分类似,最大的不同在于传输媒介的不同,利用无线电技术取代网线,可以和有线网络互为备份。
现有技术中,无线通信网络采用ARP协议(ARP,Address Resolution Protocol,地址解析协议),是根据IP(Internet Protocol,网络之间互连的协议)地址获取物理地址的一个TCP/IP协议(TCP/IP,Transmission Control Protocol/Internet Protocol,传输控制协议/因特网互联协议)。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源;上述,信息传递是通过ARP报文实现的,ARP报文包括ARP请求报文与ARP应答报文。
由于无线通信网络的自身特点,现有的ARP协议报文应用到无线通信网络系统中以广播方式进行传播,在大规模无线组网通信时,多客户端接入网络后同时发起数据传输请求时,可能造成全网广播风暴;在大规模无线组网通信时,由于无线网络的信道环境不确定性,进行全网广播请求时,存在时延大、成功率低的缺陷;在采用CSMA/CD(Carrier Sense Multiple Access with Collision Detection,带冲突检测的载波监听多路访问)冲突重传机制的组网系统中,大规模无线组网通信时,全网广播数据的发送的易造成网络中节点间的不可控累计时延,影响网络容量。
技术实现要素:
有鉴于此,本发明的目的在于提供一种无线通信网络中ARP报文交互方法,以避免广播风暴,降低CSMA/CD的冲突重传机制带来的不可控累计时延,优化无线网络容量。其具体方案如下:
一种无线通信网络中ARP报文交互方法,包括:
接收源客户端发送的ARP请求报文;
提取所述ARP请求报文中目标客户端的特征信息;
利用所述特征信息与所述目标客户端的通讯信息的对应关系,在本地特征条目库中查询所述目标客户端的通讯信息;
若未查找到所述通讯信息,则利用所述特征信息在本地索引库中,查询目标节点,其中,所述目标节点存储有所述通讯信息;
当查询到所述目标节点,则向所述目标节点转发所述ARP请求报文。
优选的,所述在本地索引库中利用所述特征信息,查询目标节点,包括:
利用所述特征信息,在所述本地索引库中查询存储有所述通讯信息的节点;
计算出到各个存储有所述通讯信息的节点的距离;
筛选出距离最短的节点作为所述目标节点。
优选的,还包括:当在本地索引库中未查找到所述目标节点,则将所述ARP请求报文向全网广播。
优选的,所述本地索引库的生成过程,包括:
获取每个节点与本地保存的特征条目之间的映射关系,其中,所述特征条目包括特征信息和通讯信息;
将所述映射关系保存,得到所述本地索引库。
优选的,所述本地特征条目库的生成过程,包括:
从历史ARP请求报文或从历史ARP响应报文中提取历史客户端的特征信息和/或通讯信息;
将所述历史客户端的特征信息和/或通讯信息进行保存,得到所述本地特征条目库。
优选的,所述从历史ARP请求报文或从历史ARP响应报文中提取历史客户端的特征信息和/或通讯信息,包括:
从所述历史ARP请求报文中提取历史源客户端的特征信息和通讯信息,以及提取历史目标客户端的特征信息;
或从历史ARP响应报文中提取历史源客户端的特征信息和通讯信息,以及历史目标客户端的特征信息和/或通讯信息。
本发明还公开了一种无线通信网络中ARP报文交互系统,包括:
接收模块,用于接收源客户端发送的ARP请求报文;
提取模块,用于提取所述ARP请求报文中目标客户端的特征信息;
第一查询模块,用于利用所述特征信息与所述目标客户端的通讯信息的对应关系,在本地特征条目库中查询所述目标客户端的通讯信息;
第二查询模块,用于若未查找到所述通讯信息,则在本地索引库中利用所述特征信息,查询目标节点,其中,所述目标节点存储有所述通讯信息;
请求报文转发模块,用于当查询到所述目标节点,则向所述目标节点转发所述ARP请求报文。
优选的,所述第二查询模块包括:
节点查询单元,用于利用所述特征信息,在所述本地索引库中查询存储有所述通讯信息的节点;
距离计算单元,用于计算出到各个存储有所述通讯信息的节点的距离;
节点筛选单元,用于筛选出距离最近的节点作为所述目标节点。
优选的,还包括:全网广播模块,用于当所述第二查询模块未查到所述目标节点,则将所述ARP请求报文向全网广播。
优选的,所述第一查询模块包括:
信息提取单元,用于从历史ARP请求报文或从历史ARP响应报文中提取历史客户端的特征信息和/或通讯信息;
特征库生成单元,用于将所述历史客户端的特征信息和/或通讯信息进行保存,得到所述本地特征条目库。
本发明中,无线通信网络中ARP报文交互方法,包括:接收源客户端发送的ARP请求报文;提取ARP请求报文中目标客户端的特征信息;利用特征信息与目标客户端的通讯信息的对应关系,在本地特征条目库中查询目标客户端的通讯信息;若未查找到通讯信息,则在本地索引库中利用特征信息,查询目标节点,其中,目标节点存储有通讯信息;当查询到目标节点,则向目标节点转发ARP请求报文。可见,本发明在接收到源客户端的ARP请求报文后,节点查询自身的本地特征条目库中是否保存有目标客户端的通讯信息,当未能查找到目标客户端的通讯信息后,则前往本地索引库中进一步的查找保存有目标客户端通讯信息的目标节点,当查找到目标节点后,当前节点将ARP请求报文转发给目标节点,从而将现有技术中ARP报文需要向全网广播,改变为节点通过查询本地索引库将ARP请求报文的定向发送到目标节点中,避免了广播风暴,降低CSMA/CD的冲突重传机制带来的不可控累计时延,优化了无线网络容量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种无线通信网络中ARP报文交互方法的流程示意图;
图2为本发明实施里提供的一种ARP报文格式示意图;
图3为本发明实施例提供的另一种无线通信网络中ARP报文交互方法的流程示意图;
图4为本发明实施例提供的一种无线通信网络中ARP报文交互系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种无线通信网络中ARP报文交互方法,参见图1所示,该方法包括:
步骤S11:接收源客户端发送的ARP请求报文。
具体的,源客户端需要访问目的客户端时,需要目标客户端的通讯信息,因此源客户端生成ARP请求报文,无线组网中与源客户端相连的节点接收源客户端发送的ARP请求报文。
其中,参见图2所示,ARP请求报文中包含有源客户端的特征信息和通讯信息,以及目标客户端的特征信息。
步骤S12:提取ARP请求报文中目标客户端的特征信息。
具体的,节点接收源客户端发送的ARP请求报文后,从ARP请求报文中提取出目标客户端的特征信息。
步骤S13:利用特征信息与目标客户端的通讯信息的对应关系,在本地特征条目库中查询目标客户端的通讯信息。
具体的,提取出目标客户端的特征信息后,因为目标客户端的特征信息与通讯信息之间具有对应关系,所以可以利用目标客户端的特征信息在本地特征条目库中查询到目标客户端的通讯信息,本地特征条目库在保存目标客户端的特征信息和通讯信息时,也将两者相应的保存为一个特征条目,便于查找和分类。
步骤S14:若未查找到通讯信息,则利用特征信息在本地索引库中,查询目标节点,其中,目标节点存储有通讯信息。
若节点未在本地特征条目索引库中查找到目标客户端的通讯信息,则前往本地索引库中进一步进行查找,本地索引库中保存有每个节点与本地保存的特征条目之间的映射关系,其中,特征条目包括特征信息和通讯信息,因此可以利用目标客户端的特征信息,在本地索引库中查找保存有目标客户端的通讯信息的目标节点。
步骤S15:当查询到目标节点,则向目标节点转发ARP请求报文。
具体的,当利用目标客户端的特征信息查找到相应的映射关系,将映射关系中记录的节点确定为目标节点,当前节点则向目标节点转发从源客户端接收的ARP请求报文。
可以理解的是,当前节点可能无法将ARP请求报文直接发送到目标节点,而是需要其它节点作为中间节点,将ARP请求报文转发至目标节点;当目标节点接收到ARP请求报文后,利用ARP请求报文中的源客户端特征条目,生成ARP响应报文,目标节点再将ARP响应报文发送给源客户端,源客户端接收到ARP响应报文后,便可以与目标客户端进行通信。
参见图2所示,其中,ARP响应报文中包括源客户端的特征条目和目标客户端的特征条目。
可见,本发明在接收到源客户端的ARP请求报文后,节点查询自身的本地特征条目库中是否保存有目标客户端的通讯信息,当未能查找到目标客户端的通讯信息后,则前往本地索引库中进一步的查找保存有目标客户端通讯信息的目标节点,当查找到目标节点后,当前节点将ARP请求报文转发给目标节点,从而将现有技术中ARP报文需要向全网广播,改变为节点通过查询本地索引库将ARP请求报文的定向发送到目标节点中,避免了广播风暴,降低CSMA/CD的冲突重传机制带来的不可控累计时延,优化了无线网络容量。
需要说明的是,无线组网中的节点,有可能作为起始节点、中间节点或目标节点,因此节点可以从历史ARP请求报文或从历史ARP响应报文中提取历史客户端的特征信息和/或通讯信息;将历史客户端的特征信息和/或通讯信息进行保存,得到本地特征条目库。
例如,当节点作为起始节点,即第一个接收源客户端发送的ARP请求报文的节点时,起始节点从ARP请求报文中提取源客户端的特征条目,以及提取目标客户端的特征信息,将源客户端的特征条目以及目标客户端的特征信息进行保存,得到本地特征条目库;当节点作为中间节点时,从经过中间节点中转的ARP请求报文中提取源客户端的特征条目,以及提取目标客户端的特征信息,将源客户端的特征条目和目标客户端的特征信息进行保存,得到本地特征条目库,或从经过中间节点中转的ARP响应报文中提取源客户端的特征条目和提取目标客户端的特征条目,将源客户端的特征条目和目标客户端的特征条目进行保存,得到本地特征条目库;当节点作为目标节点时,从ARP请求报文中提取源客户端的特征条目,将源客户端的特征条目进行保存,得到本地特征条目库。
可以理解的是,在得到本地特征条目库后,通过从历史ARP请求报文中提取历史源客户端的特征信息和/或通讯信息;或从历史ARP响应报文中提取历史源客户端的特征信息和/或通讯信息,以及历史目标客户端的特征信息和/或通讯信息,可以不断的更新本地特征条目库的内容。
进一步的,节点通过获取每个节点与本地保存的特征条目之间的映射关系;将映射关系保存,得到上述本地索引库。每个节点将保存在本地特征条目库的特征条目与自身之间的映射关系,保存在本地索引库,同时将映射关系发送到所有节点中,以此达到组网中每个节点都能够利用本地索引库,查找到保存在节点中目标客户端的通讯信息。
本发明实施例公开了一种具体的无线通信网络中ARP报文交互方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图3所示,具体的:
步骤S21:接收源客户端发送的ARP请求报文。
步骤S22:提取ARP请求报文中目标客户端的特征信息。
步骤S23:利用特征信息与目标客户端的通讯信息的对应关系,在本地特征条目库中查询目标客户端的通讯信息。
步骤S24:若查到通讯信息,则利用通讯信息生成ARP响应报文,并将ARP响应报文发送到源客户端。
具体的,若在本地特征条目库中查询到目标客户端的通讯信息,则节点直接利用保存的通讯信息生成ARP响应报文,并将ARP响应报文返回给源客户端。
步骤S25:若未查找到通讯信息,则利用特征信息在本地索引库中,查询目标节点,其中,目标节点存储有通讯信息。
可以理解的是,全网中存储有目标客户端的通讯信息的节点可能有多个,因此,利用特征信息,在本地索引库中查找出所有存储有通讯信息的节点,可以优先选择当前节点距离近的节点作为目标节点,具体的,步骤S25可以包括步骤S251和步骤S252;
步骤S251:若未查找到通讯信息,则利用特征信息,在本地索引库中查询存储有通讯信息的节点。
步骤S252:计算出到各个存储有通讯信息的节点的距离;筛选出距离最短的节点作为目标节点。
具体的,计算出当前节点与存储有通讯信息的节点之间的传输距离,例如,当前节点将报文发送给一个节点,需要5个节点作为中间节点进行转发,所以当前节点与该节点之间的距离为5,从中筛选出距离最短的节点作为目标节点,例如,存储有通讯信息的节点有5个,距离分别为8、4、3、6、6,选择距离当前节点为3的节点为目标节点。
步骤S26:当查询到目标节点,则向目标节点转发ARP请求报文。
步骤S27:当为未查询到目标节点,则将ARP请求报文向全网广播。
具体的,当未在本地索引库中查找到目标节点,说明目标客户端的通讯信息还未保存在任意一个节点中,可能是新入网的客户端,因此,起始节点需要向全网进行广播,查找客户端的位置与通讯信息;当在全网广播,查找到目标客户端的通讯信息后,再将ARP响应报文返回给起始节点,起始节点再将ARP响应报文发送给源客户端,源客户端得到目标客户端的通讯信息后便可以进行通信。
可以理解的是,本发明实施例本的特征条目库与本地索引库,可以是利用DHT数据结构(DHT,Distributed Hash Table,分布式哈希表),建立的DHT表,通过分布式存储方法,在不需要服务器的情况下,每个节点负责一个小范围的路由,并负责存储一小部分数据,从而实现整个DHT网络的寻址和存储。本地特征条目库,也可以采用ARP高速缓存表的形式,保存客户端的特征条目。
其中,特征信息可以使用客户端的IP地址,通讯信息可以使用客户端的MAC(Multiple Access Channel,多址接入信道),当然,也可以使用其他唯一信息作为客户端的特征信息,也可以使用其他连接信息作为客户端的通讯信息,在此不做限定。
可见,本发明实施例中,当查找到目标节点时,优先向距离最近的节点发送ARP请求报文,以进一步的加快响应速度;当节点未在本地索引库中查找到目标节点时,并不会导致ARP请求报文无法继续传达,而是通过回退机制,在DHT表查询失败时,使ARP请求报文恢复常规的广播流程,继续完成整个响应过程。
相应的,本发明实施例还公开了一种无线通信网络中ARP报文交互系统,参见图4所示,该系统包括:
接收模块11,用于接收源客户端发送的ARP请求报文;
提取模块12,用于提取ARP请求报文中目标客户端的特征信息;
第一查询模块13,用于利用特征信息与目标客户端的通讯信息的对应关系,在本地特征条目库中查询目标客户端的通讯信息;
第二查询模块14,用于若未查找到通讯信息,则在本地索引库中利用特征信息,查询目标节点,其中,目标节点存储有通讯信息;
请求报文转发模块15,用于当查询到目标节点,则向目标节点转发ARP请求报文。
具体的,上述第一查询模块13,可以包括信息提取子模块和特征库生成子模块;其中,
信息提取子模块,用于从历史ARP请求报文或从历史ARP响应报文中提取历史客户端的特征信息和/或通讯信息;
特征库生成子模块,用于将历史客户端的特征信息和/或通讯信息进行保存,得到本地特征条目库。
上述信息提取子模块,可以包括请求报文提取单元和响应报文提取单元;其中,
请求报文提取单元,用于从所述历史ARP请求报文中提取历史源客户端的特征信息和通讯信息,以及提取历史目标客户端的特征信息;
响应报文提取单元,用于从历史ARP响应报文中提取历史源客户端的特征信息和通讯信息,以及历史目标客户端的特征信息和/或通讯信息。
另外,上述第二查询模块14可以包括节点查询单元、距离计算单元、节点筛选单元、映射关系获取单元和索引库生成单元;其中,
节点查询单元,用于利用特征信息,在本地索引库中查询存储有通讯信息的节点;
距离计算单元,用于计算出到各个存储有通讯信息的节点的距离;
节点筛选单元,用于筛选出距离最近的节点作为目标节点。
映射关系获取单元,用于获取每个节点与本地保存的特征条目之间的映射关系,其中,特征条目包括特征信息和通讯信息;
索引库生成单元,用于将映射关系保存,得到本地索引库。
进一步的,上述无线通信网络中ARP报文交互系统,还可以包括:
全网广播模块,用于当第二查询模块14未查到目标节点,则将ARP请求报文向全网广播。
可见,本发明在接收到源客户端的ARP请求报文后,节点查询自身的本地特征条目库中是否保存有目标客户端的通讯信息,当未能查找到目标客户端的通讯信息后,则前往本地索引库中进一步的查找保存有目标客户端通讯信息的目标节点,当查找到目标节点后,当前节点将ARP请求报文转发给目标节点,从而将现有技术中ARP报文需要向全网广播,改变为节点通过查询本地索引库将ARP请求报文的定向发送到目标节点中,避免了广播风暴,降低CSMA/CD的冲突重传机制带来的不可控累计时延,优化了无线网络容量。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种无线通信网络中ARP报文交互方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。