欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种分布式SIP服务器数据同步方法独创技术14236字

一种分布式SIP服务器数据同步方法

2021-02-14 19:07:15

一种分布式SIP服务器数据同步方法

  技术领域

  本发明涉及一种分布式服务器的数据处理方法,尤其涉及一种分布式SIP服务器数据同步方法。

  背景技术

  SIP(Session Initiation Protocol)全称为会话初始协议,用于创建、修改和终止一个或者多个参与者之间的多媒体会话,SIP服务器利用SIP协议实现多个用户之间的通信。在现有的专用互联网的技术体制中,对于号码路由问题,主要采用泛搜索体制辅以泛搜索形成的确知路由表来完成,而包括即时消息等业务在内的多媒体业务不适合在发消息时使用泛搜索进行号码搜索。同时,现有服务器数据同步方法难以在设备之间将节点信息进行相互同步,且难以实现节点间的用户路由表学习、用户注册数的全网同步等功能。

  发明内容

  本发明所要解决的技术问题是如何在IP组网环境下实现呼叫控制节点间的动态感知、节点间用户注册信息、用户号段配置等信息的同步,通过用户数据的同步形成用户路由表,用于呼叫控制时话音控制信令的转发功能。

  本发明的技术方案是这样实现的:一种分布式SIP服务器数据同步方法,包括以下步骤:

  S1,按一定时间间隔,向服务器网络中所有节点定时发送广播信息;如果节点接收到的广播信息来自邻居节点,则定时向邻居节点发送广播信息,执行步骤S3;否则,执行步骤S2;

  S2,在跨路由器组网时,添加对端节点地址作为邻居节点的地址,并对节点间的组网逻辑进行配置,执行步骤S3;

  S3,形成邻居地址表后,收到广播信息的节点作为源节点按一定时间间隔,向自己的邻居地址表中的所有邻居节点发送节点状态通知,邻居节点收到源节点数据进行记录或状态刷新,邻居节点三次未收到源节点的后续状态通知,则认为该邻居节点已失效,相应的用户路由条目设置为失效,并且在源节点删除关于该邻居节点的信息;若邻居节点在三次内收到源节点的后续状态通知,执行步骤S4;

  S4,邻居节点收到节点状态通知消息后,向自己的邻居地址列表中源节点之外的邻居节点转发源节点发起的节点状态通知消息;

  S5,判断消息发送源是否为本节点的邻居,如果不是,则向该节点的其他邻居节点泛洪,之后执行步骤S6;如果是,则直接执行步骤S6;

  S6,在完成节点间用户信息同步之后,在全网通过邻居间的路由相互学习,完成全网用户路由数据同步。

  所述的步骤S2包括以下步骤:

  交换路由单元代理发起设备地址广播消息;设备地址广播消息用于设备自组网,设备间自动完成邻居间地址的获取;设备地址广播消息定时发送,发送间隔时间为2秒;

  在跨路由器进行组网时,通过手动添加对端节点地址作为邻居节点的地址,通过手动配置完成节点间的组网逻辑。

  所述的步骤S3包括以下步骤:

  S31,形成邻居地址表后,源节点定时向自己的邻居表中的所有邻居节点,发送节点状态通知;

  S32,邻居节点收到节点状态通知消息后,向邻居节点自己的邻居地址列表中源节点之外的邻居转发源节点发起的节点状态通知消息;

  S33,某一邻居节点收到源节点的节点状态通知消息后,判断消息发送源,如果不是该邻居节点的邻居,直接向该邻居节点的其他邻居泛洪扩散该消息。

  所述的步骤S4包括以下步骤:

  S41,新节点用户数据同步到网络中:新节点加入到其他网络中时,在新节点收到从该网络来的新增邻居节点的节点状态通知后,向新增邻居节点推送本节点已有的用户路由数据,该邻居节点再重复此过程完成向其他邻居的扩散;

  S42,网络同步数据到新节点中:在收到新节点的节点状态通知后,其邻居节点向新节点推送网络中所有节点的用户数据;当有多个邻居时,多个邻居都向新节点推送网络中的所有用户数据,重复推送由新节点进行过滤。

  所述的步骤S6包括以下步骤:

  S61,邻居节点收到源节点的节点状态通知消息后,判断消息发送源节点是否为邻居列表中的邻居,如果是则向对源端发送节点列表信息通知,在该消息中将邻居节点本地存储的所有节点的设备信息及各个节点的路由版本号发送给源节点;

  S62,源节点收到消息后,比较列表中的节点和源节点自己本地存储的列表节点,如果没有该节点或者该节点路由版本号不一致,将相应节点列表通过节点列表信息通知应答通知邻居节点;

  S63,邻居节点收到源节点的节点列表信息通知应答后,根据应答消息中节点列表需求向源节点发送节点路由同步通知,该通知中携带邻居节点上所有和源节点用户路由不一致的数据内容;

  S64,源节点根据收到的消息,将邻居节点发送过来的用户路由信息合并到源节点中,同时向对方回复节点路由同步应答以确认完成了路由学习。

  本发明的有益效果是:

  ①该方法可实现节点间的用户路由学习,用户注册数的全网同步等功能,改变了传统分布式通信系统规模扩展时需要人工配制的模式,节约了扩展时间,提升了扩展效率,从而有利于分布式通信系统的规模扩展。

  ②通过使用本发明中的方法,实现了IP组网环境下呼叫控制节点间的动态感知和节点间用户自动注册信息,提升了SIP通信系统的维护效率,可有效降低分布式SIP通信系统的维护成本。本发明可有效满足在分布式网络环境下网络拓扑变化带来的SIP服务器间数据同步的需求,同步过程自动完成,无需人工干预,在动态网络环境中的语音会话控制方向有广阔的应用前景。

  附图说明

  图1是本发明的整体架构原理图。

  图2是本发明实现数据同步的整体流程图。

  图3是本发明实现邻居地址获取的具体流程图。

  图4是本发明实现节点状态通知的具体流程图。

  图5是本发明实现节点间用户路由同步的具体流程图。

  图6是本发明实现用户路由信息扩散的具体流程图。

  具体实施方式

  本发明采用分层思想,将SIP服务器分为三层,从下到上分别为:节点发现层,SIP协议栈层和应用层。本发明主要在应用层进行节点之间的数据学习和同步。在应用层主要经过邻居地址获取,节点状态通知,节点间用户路由同步,消息泛洪处理,数据更新等对全网中的数据进行同步,在本发明中设计了网络异常处理模块和消息重发模块可对SIP服务器运行过程中出现的问题进行修复和信息更新。本发明可在新增节点时告知其他节点本节点的设备唯一标识、设备编号、设备IP地址等相关信息,同时,可以在网络中有其他节点变更状态时通知本节点。

  本发明在能够设备之间将节点信息进行相互同步,在新增节点时需要向网络中的其他节点告知本节点的相关设备信息,在网络中其他节点的信息也需要向新增节点告知各自节点的信息。节点信息包括,包括设备唯一标识、设备编号、设备IP地址等信息。实现该方法可具体为通过用户数据同步技术结合泛搜索、邻居发现、路由学习等技术,实现节点间的用户路由表学习,用户注册数的全网同步等功能。

  本发明采用消息泛洪流程,实现用户数据增量更新,其操作具体包括用户注册、注销、手动添加号段/号码、手动删除号段/号码。对于消息泛洪丢失的部分网络,采用网络中节点间的用户路由学习过程进行同步。

  异常状态通知包括以下五种:在收到节点状态通知时,如果源端IP地址或源唯一标识和自己冲突,则通过消息泛洪告知网络异常状态通告消息;节点信息路由同步,检测到有IP地址和源唯一标识不一致时,则通过消息范洪告知网络异常状态通告消息;节点修改IP地址时,通过节点状态通知完成IP地址的更改;如果用户操作节点退出,邻居丢失由邻居节点代发节点状态失效通知以快速完成路由收敛;周期发送的消息不需要重发,请求消息2秒未收到响应答应重发该消息。

  下面结合附图对本发明做进一步描述。

  实施例:一种分布式SIP服务器数据同步方法。

  如图1所示,本发明将SIP服务器按逻辑分为节点发现层、SIP协议栈层和应用层,节点用于发现层用于发现新的节点和退网节点,SIP协议栈层收发、解析和封装SIP消息,应用层处理数据同步功能。应用层包含邻居地址获取模块,节点状态通知模块,节点间用户路由同步模块,消息泛洪处理模块,数据更新模块,网络异常处理模块和消息重发模块。

  如图2所示,本发明实现数据同步的整体流程图,包括以下步骤:

  S1,网络中所有节点定时发送广播信息,时间间隔为2秒。如果节点接收到的广播信息来自邻居节点则定时向邻居节点发送广播信息,执行步骤S3;否则,执行步骤S2;

  S2,在跨路由器进行组网时,通过手动添加对端节点地址作为邻居节点的地址。通过手动配置完成节点间的组网逻辑。在手动配置完成后,执行步骤S3;

  S3,形成邻居地址表后,收到广播信息的节点作为源节点按一定时间间隔,向自己的邻居地址表中的所有邻居节点发送节点状态通知,邻居节点收到源节点数据进行记录或状态刷新,邻居节点三次未收到源节点的后续状态通知,则认为该邻居节点已失效,相应的用户路由条目设置为失效,并且在源节点删除关于该邻居节点的信息;若邻居节点在三次内收到源节点的后续状态通知,执行步骤S4;

  S4,邻居节点收到节点状态通知消息后,向自己的邻居地址列表中源节点之外的邻居转发源节点发起的节点状态通知消息;

  S5,判断消息发送源是否为本节点的邻居,如果不是,则向该节点的其他邻居节点泛洪,之后执行步骤S6;如果是,则直接执行步骤S6;

  S6,在完成节点间用户信息同步之后可在全网通过邻居间的路由相互学习完成全网用户路由数据同步。

  图3为步骤S2中实现邻居地址获取的具体流程图。步骤S2包括以下步骤:

  交换路由单元代理发起设备地址广播消息。设备地址广播消息用于设备自组网,设备间自动完成邻居间地址的获取。设备地址广播消息定时发送,发送间隔时间为2秒。

  在跨路由器时进行组网时,通过手动添加对端节点地址作为邻居节点的地址,通过手动配置完成节点间的组网逻辑。

  图4描述本发明步骤S3中实现节点状态通知的具体流程图。步骤S3包括以下步骤:

  S31,形成邻居地址表后,源节点定时向自己的邻居表中的所有邻居节点,发送节点状态通知;

  S32,邻居节点收到节点状态通知消息后,向邻居节点自己的邻居地址列表中源节点之外的邻居转发源节点发起的节点状态通知消息;

  S33,某一邻居节点(图4中为C点)收到源节点的节点状态通知消息后,判断消息发送源,如果不是该邻居节点的邻居,直接向该邻居节点的其他邻居泛洪扩散该消息。

  图5是本发明步骤S4中实现用户路由信息扩散的具体流程图。步骤S4包括以下步骤:

  S41,新节点用户数据同步到网络中(如图5中A节点加入网络B中):新节点加入到其他网络中时,在新节点收到从该网络(图5中为B网络)来的新增邻居节点的节点状态通知后,向新增邻居节点推送本节点已有的用户路由数据,该邻居节点再重复此过程完成向其他邻居的扩散。如图5中,B1和B2分别向B3/B7/B8节点逐步扩散。

  S42,网络同步数据到新节点中(如图5中A节点学习网络B中的用户路由):在收到新节点的节点状态通知后,其邻居节点向新节点推送网络中所有节点的用户数据;当有多个邻居时,多个邻居都向新节点推送网络中的所有用户数据,重复推送由新节点进行过滤。

  图6描述本发明实现源节点向邻居节点间用户路由同步的具体流程图。步骤S6包括以下步骤:

  S61,邻居节点收到源节点的节点状态通知消息后,判断消息发送源节点是否为邻居列表中的邻居,如果是则向对源端发送节点列表信息通知,在该消息中将邻居节点本地存储的所有节点的设备信息及各个节点的路由版本号发送给源节点;

  S62,源节点收到消息后,比较列表中的节点和源节点自己本地存储的列表节点,如果没有该节点或者该节点路由版本号不一致,将相应节点列表通过节点列表信息通知应答通知邻居节点;

  S63,邻居节点收到源节点的节点列表信息通知应答后,根据应答消息中节点列表需求向源节点发送节点路由同步通知,该通知中携带邻居节点上所有和源节点用户路由不一致的数据内容;

  S64,源节点根据收到的消息,将邻居节点发送过来的用户路由信息合并到源节点中,同时向对方回复节点路由同步应答以确认完成了路由学习。

《一种分布式SIP服务器数据同步方法.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)