本发明实施例涉及通信的技术领域,尤其涉及一种基站间通信的方法及装置。
背景技术:
在相同的子网内,基站间通信时需要得到对方mac地址,如果地址解析协议(addressresolutionprotocol,arp)表中没有,会自动触发arp协议获取对方的mac地址并保存。当对方基站故障不通时,得不到对方的arp响应,则每当有通信需求都会触发arp过程。
基站运行过程中,相邻基站会相互传递信息比如负载信息,如果有基站故障或没上电开通,其相邻站每次通信都会触发arp请求。当一个子网内,有几百个基站,其中有几个基站出现故障,就会出现大量对故障基站通信需求,从而导致大量arp请求。而短时间内出现大量的arp请求,交换机会误判为arp攻击,对超限的arp包丢弃,从而影响到正常的网络通信。因此,基站之间相互信息的传递,由于网络异常或者其他基站自身异常,可能发送导致arp包过多,会阻塞网络。
技术实现要素:
本发明实施例的目的在于提出一种基站间通信的方法及装置,旨在解决由于网络异常或者其他基站自身异常可能发送导致arp包过多、阻塞网络的问题。
为达此目的,本发明实施例采用以下技术方案:
第一方面,一种基站间通信的方法,所述方法包括:
在基站向其他基站发送数据消息前,根据本基站的ip查询基站之间的通信状态表;所述通信状态表用于维持对方基站是否能够通信的状态,所述通信状态表包括基站ip、当前状态和时长ttl;所述当前状态包括初始态、等待态、非活动态和连接态,所述初始态为空闲表项状态;所述等待态为在第一时间阈值内尝试发包的状态;所述非活动态为在第二时间阈值内丢失数据包的状态;所述连接态为在第三时间阈值内正常发送数据包的状态;
若所述基站找到所述通信状态表,且所述当前状态为所述连接态,则所述基站直接向所述其他基站发送所述数据消息;若所述当前状态为所述等待态,则所述基站直接向所述其他基站发送数据消息;若所述当前状态为所述非活动态,则所述基站丢弃所述数据消息。
可选地,所述方法还包括:
若所述基站未找到所述通信状态表,则新建所述通信状态表,并设置所述当前状态为所述等待态,启动等待态定时器,再发送所述数据消息。
可选地,所述方法还包括:
若所述基站接收到其他基站的arp应答包或者接收到其他基站的业务包,则根据本基站的ip查询基站之间的通信状态表;
若未找到所述通信状态表,则新建所述通信状态表项,并设置所述当前状态为连接态,启动连接态定时器;
若找到所述通信状态表,则更新所述当前状态为连接态,并启动连接态定时器。
可选地,所述方法还包括:
所述基站正常工作后,初始化所述基站之间的通信状态表,将所述当前状态全部设置为初始态;
所述基站给其他基站发送数据消息,则所述基站将初始态修改为等待态,启动等待态定时器;
若在所述等待态定时器内,所述基站收到arp应答消息或者业务包,则停止所述等待态定时器,将所述当前状态修改为连接态,并启动连接态定时器;
若在所述连接态定时器内未收到arp应答消息或者业务包,则将所述当前状态修改为初始态。
可选地,所述基站正常工作后,初始化所述基站之间的通信状态表,将所述当前状态全部设置为初始态之后,还包括:
若所述基站收到arp应答消息或者业务包,则将所述初始态修改为所述连接态,并启动所述连接态定时器;
若在所述连接态定时器内未收到arp应答消息或者业务包,则将所述当前状态修改为初始态。
可选地,所述基站给其他基站发送数据消息,则所述基站将初始态修改为等待态,启动等待态定时器之后,还包括:
若在所述等待定时器内,所述基站未收到arp应答消息或者业务包,则将所述等待态修改为非活动态,启动非活动态定时器;
若在所述非活动态定时器内,所述基站收到arp应答消息或者业务包,则将所述当前状态修改为所述连接态,并启动连接态定时器;
若在所述非活动态定时器内,所述基站未收到arp应答消息或者业务包,则将所述当前状态修改为所述初始态。
第二方面,一种基站间通信的装置,所述装置包括:
第一查询模块,用于在基站向其他基站发送数据消息前,根据本基站的ip查询基站之间的通信状态表;所述通信状态表用于维持对方基站是否能够通信的状态,所述通信状态表包括基站ip、当前状态和时长ttl;所述当前状态包括初始态、等待态、非活动态和连接态,所述初始态为空闲表项状态;所述等待态为在第一时间阈值内尝试发包的状态;所述非活动态为在第二时间阈值内丢失数据包的状态;所述连接态为在第三时间阈值内正常发送数据包的状态;
通信模块,用于若所述基站找到所述通信状态表,且所述当前状态为所述连接态,则直接向所述其他基站发送所述数据消息;若所述当前状态为所述等待态,则直接向所述其他基站发送数据消息;若所述当前状态为所述非活动态,则丢弃所述数据消息。
可选地,所述装置还包括:
发送模块,用于若所述基站未找到所述通信状态表,则新建所述通信状态表,并设置所述当前状态为所述等待态,启动等待态定时器,再发送所述数据消息。
可选地,所述装置还包括:
第二查询模块,用于若所述基站接收到其他基站的arp应答包或者接收到其他基站的业务包,则根据本基站的ip查询基站之间的通信状态表;
启动模块,用于若未找到所述通信状态表,则新建所述通信状态表项,并设置所述当前状态为连接态,启动连接态定时器;若找到所述通信状态表,则更新所述当前状态为连接态,并启动连接态定时器。
可选地,所述装置还包括:
第一处理模块,用于所述基站正常工作后,初始化所述基站之间的通信状态表,将所述当前状态全部设置为初始态;给其他基站发送数据消息,则将初始态修改为等待态,启动等待态定时器;若在所述等待态定时器内,所述基站收到arp应答消息或者业务包,则停止所述等待态定时器,将所述当前状态修改为连接态,并启动连接态定时器;若在所述连接态定时器内未收到arp应答消息或者业务包,则将所述当前状态修改为初始态。
本发明实施例提供的一种基站间通信的方法及装置,在基站向其他基站发送数据消息前,根据本基站的ip查询基站之间的通信状态表;所述通信状态表用于维持对方基站是否能够通信的状态,所述通信状态表包括基站ip、当前状态和时长ttl;所述当前状态包括初始态、等待态、非活动态和连接态,所述初始态为空闲表项状态;所述等待态为在第一时间阈值内尝试发包的状态;所述非活动态为在第二时间阈值内丢失数据包的状态;所述连接态为在第三时间阈值内正常发送数据包的状态;若所述基站找到所述通信状态表,且所述当前状态为所述连接态,则所述基站直接向所述其他基站发送所述数据消息;若所述当前状态为所述等待态,则所述基站直接向所述其他基站发送数据消息;若所述当前状态为所述非活动态,则所述基站丢弃所述数据消息。从而可以通过监测其他基站的arp应答包和业务数据包来判断该基站是否连通,如果连通,则发送数据包,否则在设定时间内(如1分钟)不发包,超过设定时间后再尝试发包,从而解决arp包在同一时间过多问题。
附图说明
图1是本发明实施例提供的一种基站间通信的方法的流程示意图;
图2是本发明实施例提供的另一种基站间通信的方法的流程示意图;
图3是本发明实施例提供的另一种基站间通信的方法的流程示意图;
图4是本发明实施例提供的另一种基站间通信的方法的流程示意图;
图5是本发明实施例提供的另一种基站间通信的方法的流程示意图;
图6是本发明实施例提供的另一种基站间通信的方法的流程示意图;
图7是本发明实施例提供的另一种基站间通信的方法的流程示意图;
图8是本发明实施例提供的另一种基站间通信的方法的流程示意图;
图9是本发明实施例提供的一种通信状态表的状态跃迁示意图;
图10是本发明实施例提供的一种状态机定时器的流程示意图;
图11是本发明实施例提供的一种基站间通信的装置的功能模块示意图。
具体实施方式
下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
参考图1,图1是本发明实施例提供的一种基站间通信的方法的流程示意图。
如图1所示,所述基站间通信的方法包括:
步骤101,在基站向其他基站发送数据消息前,根据本基站的ip查询基站之间的通信状态表;所述通信状态表用于维持对方基站是否能够通信的状态,所述通信状态表包括基站ip、当前状态和时长(time-to-live,ttl);所述当前状态包括初始态、等待态、非活动态和连接态,所述初始态为空闲表项状态;所述等待态为在第一时间阈值内尝试发包的状态;所述非活动态为在第二时间阈值内丢失数据包的状态;所述连接态为在第三时间阈值内正常发送数据包的状态;
步骤102,若所述基站找到所述通信状态表,且所述当前状态为所述连接态,则所述基站直接向所述其他基站发送所述数据消息;若所述当前状态为所述等待态,则所述基站直接向所述其他基站发送数据消息;若所述当前状态为所述非活动态,则所述基站丢弃所述数据消息。
具体的,如图2所示,socket发送数据消息函数,根据基站ip查找表,若未找到表,则新建一个表项,修改当前状态为等待态,时长设置为2秒,发送数据消息包;若能找到表,且表项状态为连接态,则发送数据消息包;若不为连接态,表项状态为等待态,则发送数据消息包;若不为连接态、不为等待态,为非活动态,则丢弃所述数据消息;若不为连接态、不为等待态、不为非活动态,则丢弃所述数据消息。
本发明实施例提供的一种基站间通信的方法,在基站向其他基站发送数据消息前,根据本基站的ip查询基站之间的通信状态表;所述通信状态表用于维持对方基站是否能够通信的状态,所述通信状态表包括基站ip、当前状态和时长ttl;所述当前状态包括初始态、等待态、非活动态和连接态,所述初始态为空闲表项状态;所述等待态为在第一时间阈值内尝试发包的状态;所述非活动态为在第二时间阈值内丢失数据包的状态;所述连接态为在第三时间阈值内正常发送数据包的状态;若所述基站找到所述通信状态表,且所述当前状态为所述连接态,则所述基站直接向所述其他基站发送所述数据消息;若所述当前状态为所述等待态,则所述基站直接向所述其他基站发送数据消息;若所述当前状态为所述非活动态,则所述基站丢弃所述数据消息。从而可以通过监测其他基站的arp应答包和业务数据包来判断该基站是否连通,如果连通,则发送数据包,否则在设定时间内(如1分钟)不发包,超过设定时间后再尝试发包,从而解决arp包在同一时间过多问题。
参考图3,图3是本发明实施例提供的另一种基站间通信的方法的流程示意图。
在图1的基础上,如图3所示,所述基站间通信的方法包括:
步骤301,在基站向其他基站发送数据消息前,根据本基站的ip查询基站之间的通信状态表;所述通信状态表用于维持对方基站是否能够通信的状态,所述通信状态表包括基站ip、当前状态和时长ttl;所述当前状态包括初始态、等待态、非活动态和连接态,所述初始态为空闲表项状态;所述等待态为在第一时间阈值内尝试发包的状态;所述非活动态为在第二时间阈值内丢失数据包的状态;所述连接态为在第三时间阈值内正常发送数据包的状态;
步骤302,若所述基站未找到所述通信状态表,则新建所述通信状态表,并设置所述当前状态为所述等待态,启动等待态定时器,再发送所述数据消息;
步骤303,若所述基站找到所述通信状态表,且所述当前状态为所述连接态,则所述基站直接向所述其他基站发送所述数据消息;若所述当前状态为所述等待态,则所述基站直接向所述其他基站发送数据消息;若所述当前状态为所述非活动态,则所述基站丢弃所述数据消息。
参考图4,图4是本发明实施例提供的另一种基站间通信的方法的流程示意图。
在图1或者图3的基础上,如图4所示,所述基站间通信的方法包括:
步骤401,在基站向其他基站发送数据消息前,根据本基站的ip查询基站之间的通信状态表;所述通信状态表用于维持对方基站是否能够通信的状态,所述通信状态表包括基站ip、当前状态和时长ttl;所述当前状态包括初始态、等待态、非活动态和连接态,所述初始态为空闲表项状态;所述等待态为在第一时间阈值内尝试发包的状态;所述非活动态为在第二时间阈值内丢失数据包的状态;所述连接态为在第三时间阈值内正常发送数据包的状态;
步骤402,若所述基站未找到所述通信状态表,则新建所述通信状态表,并设置所述当前状态为所述等待态,启动等待态定时器,再发送所述数据消息;
步骤403,若所述基站找到所述通信状态表,且所述当前状态为所述连接态,则所述基站直接向所述其他基站发送所述数据消息;若所述当前状态为所述等待态,则所述基站直接向所述其他基站发送数据消息;若所述当前状态为所述非活动态,则所述基站丢弃所述数据消息;
步骤404,若所述基站接收到其他基站的arp应答包或者接收到其他基站的业务包,则根据本基站的ip查询基站之间的通信状态表;
步骤405,若未找到所述通信状态表,则新建所述通信状态表项,并设置所述当前状态为连接态,启动连接态定时器;
步骤406,若找到所述通信状态表,则更新所述当前状态为连接态,并启动连接态定时器。
具体的,如图5所示,收到其他基站的业务包,先根据该基站ip查询基站之间通信状态表。如果没有找到,则新建一个表项,设置为连接态,启动连接态定时器。如果找到了,更新状态为连接态,启动连接态定时器。
参考图6,图6是本发明实施例提供的另一种基站间通信的方法的流程示意图。
在图1或者图3的基础上,如图6所示,所述基站间通信的方法包括:
步骤601,在基站向其他基站发送数据消息前,根据本基站的ip查询基站之间的通信状态表;所述通信状态表用于维持对方基站是否能够通信的状态,所述通信状态表包括基站ip、当前状态和时长ttl;所述当前状态包括初始态、等待态、非活动态和连接态,所述初始态为空闲表项状态;所述等待态为在第一时间阈值内尝试发包的状态;所述非活动态为在第二时间阈值内丢失数据包的状态;所述连接态为在第三时间阈值内正常发送数据包的状态;
步骤602,若所述基站找到所述通信状态表,且所述当前状态为所述连接态,则所述基站直接向所述其他基站发送所述数据消息;若所述当前状态为所述等待态,则所述基站直接向所述其他基站发送数据消息;若所述当前状态为所述非活动态,则所述基站丢弃所述数据消息;
步骤603,所述基站正常工作后,初始化所述基站之间的通信状态表,将所述当前状态全部设置为初始态;
步骤604,所述基站给其他基站发送数据消息,则所述基站将初始态修改为等待态,启动等待态定时器;
步骤605,若在所述等待态定时器内,所述基站收到arp应答消息或者业务包,则停止所述等待态定时器,将所述当前状态修改为连接态,并启动连接态定时器;
步骤606,若在所述连接态定时器内未收到arp应答消息或者业务包,则将所述当前状态修改为初始态。
参考图7,图7是本发明实施例提供的另一种基站间通信的方法的流程示意图。
在图6的基础上,如图7所示,所述基站间通信的方法包括:
步骤701,在基站向其他基站发送数据消息前,根据本基站的ip查询基站之间的通信状态表;所述通信状态表用于维持对方基站是否能够通信的状态,所述通信状态表包括基站ip、当前状态和时长ttl;所述当前状态包括初始态、等待态、非活动态和连接态,所述初始态为空闲表项状态;所述等待态为在第一时间阈值内尝试发包的状态;所述非活动态为在第二时间阈值内丢失数据包的状态;所述连接态为在第三时间阈值内正常发送数据包的状态;
步骤702,若所述基站找到所述通信状态表,且所述当前状态为所述连接态,则所述基站直接向所述其他基站发送所述数据消息;若所述当前状态为所述等待态,则所述基站直接向所述其他基站发送数据消息;若所述当前状态为所述非活动态,则所述基站丢弃所述数据消息;
步骤703,所述基站正常工作后,初始化所述基站之间的通信状态表,将所述当前状态全部设置为初始态;
步骤704,若所述基站收到arp应答消息或者业务包,则将所述初始态修改为所述连接态,并启动所述连接态定时器;若在所述连接态定时器内未收到arp应答消息或者业务包,则将所述当前状态修改为初始态;
步骤705,所述基站给其他基站发送数据消息,则所述基站将初始态修改为等待态,启动等待态定时器;
步骤706,若在所述等待态定时器内,所述基站收到arp应答消息或者业务包,则停止所述等待态定时器,将所述当前状态修改为连接态,并启动连接态定时器;
步骤707,若在所述连接态定时器内未收到arp应答消息或者业务包,则将所述当前状态修改为初始态。
参考图8,图8是本发明实施例提供的另一种基站间通信的方法的流程示意图。
在图6的基础上,如图8所示,所述基站间通信的方法包括:
步骤801,在基站向其他基站发送数据消息前,根据本基站的ip查询基站之间的通信状态表;所述通信状态表用于维持对方基站是否能够通信的状态,所述通信状态表包括基站ip、当前状态和时长ttl;所述当前状态包括初始态、等待态、非活动态和连接态,所述初始态为空闲表项状态;所述等待态为在第一时间阈值内尝试发包的状态;所述非活动态为在第二时间阈值内丢失数据包的状态;所述连接态为在第三时间阈值内正常发送数据包的状态;
步骤802,若所述基站找到所述通信状态表,且所述当前状态为所述连接态,则所述基站直接向所述其他基站发送所述数据消息;若所述当前状态为所述等待态,则所述基站直接向所述其他基站发送数据消息;若所述当前状态为所述非活动态,则所述基站丢弃所述数据消息;
步骤803,所述基站正常工作后,初始化所述基站之间的通信状态表,将所述当前状态全部设置为初始态;
步骤804,所述基站给其他基站发送数据消息,则所述基站将初始态修改为等待态,启动等待态定时器;
步骤805,若在所述等待定时器内,所述基站未收到arp应答消息或者业务包,则将所述等待态修改为非活动态,启动非活动态定时器;若在所述非活动态定时器内,所述基站收到arp应答消息或者业务包,则将所述当前状态修改为所述连接态;若在所述非活动态定时器内,所述基站未收到arp应答消息或者业务包,则将所述当前状态修改为所述初始态;
步骤806,若在所述等待态定时器内,所述基站收到arp应答消息或者业务包,则停止所述等待态定时器,将所述当前状态修改为连接态,并启动连接态定时器;
步骤807,若在所述连接态定时器内未收到arp应答消息或者业务包,则将所述当前状态修改为初始态。
具体的,如图9所述,图9是本发明实施例提供的一种通信状态表的状态跃迁示意图。通信状态表用来维持对方基站是否可以通信的状态。
表项包括:基站ip,当前状态,时长(ttl)
当前状态包括:1)初始态,空闲表项状态;2)等待态,可以尝试发包,对应时长为2秒;3)非活动态,丢失数据包,对应时长为1分钟;4)连接态,可以正常发送数据包,对应时长为10分钟。
基站正常工作后,初始化基站之间通信状态表,将状态全部设置为初始态;
给其他基站发送数据消息,则将初始态修改为等待态,启动等待态2秒定时器;
收到该基站的数据信息或者arp应答消息,则停止等待态定时器,将状态修改为连接态,启动连接态10分钟定时器。
对于其中的状态机定时器超时如图10所示,如果连接态定时器超时,则清除该表项;如果等待态定时器超时,则停止定时器,将状态修改为非活动态,启动非活动态1分钟定时器;如果非活动态定时器超时,则清除该表项。
参考图11,图11是本发明实施例提供的一种基站间通信的装置的功能模块示意图。
如图11所示,所述装置包括:
第一查询模块1101,用于在基站向其他基站发送数据消息前,根据本基站的ip查询基站之间的通信状态表;所述通信状态表用于维持对方基站是否能够通信的状态,所述通信状态表包括基站ip、当前状态和时长ttl;所述当前状态包括初始态、等待态、非活动态和连接态,所述初始态为空闲表项状态;所述等待态为在第一时间阈值内尝试发包的状态;所述非活动态为在第二时间阈值内丢失数据包的状态;所述连接态为在第三时间阈值内正常发送数据包的状态;
通信模块1102,用于若所述基站找到所述通信状态表,且所述当前状态为所述连接态,则直接向所述其他基站发送所述数据消息;若所述当前状态为所述等待态,则直接向所述其他基站发送数据消息;若所述当前状态为所述非活动态,则丢弃所述数据消息。
可选地,所述装置还包括:
发送模块,用于若所述基站未找到所述通信状态表,则新建所述通信状态表,并设置所述当前状态为所述等待态,启动等待态定时器,再发送所述数据消息。
可选地,所述装置还包括:
第二查询模块,用于若所述基站接收到其他基站的arp应答包或者接收到其他基站的业务包,则根据本基站的ip查询基站之间的通信状态表;
启动模块,用于若未找到所述通信状态表,则新建所述通信状态表项,并设置所述当前状态为连接态,启动连接态定时器;若找到所述通信状态表,则更新所述当前状态为连接态,并启动连接态定时器。
可选地,所述装置还包括:
第一处理模块,用于所述基站正常工作后,初始化所述基站之间的通信状态表,将所述当前状态全部设置为初始态;给其他基站发送数据消息,则将初始态修改为等待态,启动等待态定时器;若在所述等待态定时器内,所述基站收到arp应答消息或者业务包,则停止所述等待态定时器,将所述当前状态修改为连接态,并启动连接态定时器;若在所述连接态定时器内未收到arp应答消息或者业务包,则将所述当前状态修改为初始态。
可选地,所述装置还包括:
第二处理模块,用于在所述基站正常工作后,初始化所述基站之间的通信状态表,将所述当前状态全部设置为初始态之后,若所述基站收到arp应答消息或者业务包,则将所述初始态修改为所述连接态,并启动所述连接态定时器;若在所述连接态定时器内未收到arp应答消息或者业务包,则将所述当前状态修改为初始态。
可选地,所述装置还包括:
第三处理模块,用于在所述基站给其他基站发送数据消息,则所述基站将初始态修改为等待态,启动等待态定时器之后,若在所述等待定时器内,所述基站未收到arp应答消息或者业务包,则将所述等待态修改为非活动态,启动非活动态定时器;若在所述非活动态定时器内,所述基站收到arp应答消息或者业务包,则将所述当前状态修改为所述连接态;若在所述非活动态定时器内,所述基站未收到arp应答消息或者业务包,则将所述当前状态修改为所述初始态。
本发明实施例提供的一种基站间通信的装置,在基站向其他基站发送数据消息前,根据本基站的ip查询基站之间的通信状态表;所述通信状态表用于维持对方基站是否能够通信的状态,所述通信状态表包括基站ip、当前状态和时长ttl;所述当前状态包括初始态、等待态、非活动态和连接态,所述初始态为空闲表项状态;所述等待态为在第一时间阈值内尝试发包的状态;所述非活动态为在第二时间阈值内丢失数据包的状态;所述连接态为在第三时间阈值内正常发送数据包的状态;若所述基站找到所述通信状态表,且所述当前状态为所述连接态,则所述基站直接向所述其他基站发送所述数据消息;若所述当前状态为所述等待态,则所述基站直接向所述其他基站发送数据消息;若所述当前状态为所述非活动态,则所述基站丢弃所述数据消息。从而可以通过监测其他基站的arp应答包和业务数据包来判断该基站是否连通,如果连通,则发送数据包,否则在设定时间内(如1分钟)不发包,超过设定时间后再尝试发包,从而解决arp包在同一时间过多问题。
以上结合具体实施例描述了本发明实施例的技术原理。这些描述只是为了解释本发明实施例的原理,而不能以任何方式解释为对本发明实施例保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明实施例的其它具体实施方式,这些方式都将落入本发明实施例的保护范围之内。