一种防原消息干扰的方法及装置制造方法及图纸

技术编号:9826530 阅读:86 留言:0更新日期:2014-04-01 15:54
本发明专利技术提供了一种防原消息干扰的方法及装置,通过选择CPU计数器时间作为节点间的计时机制和采用防原消息干扰的协议,避免了节点间对时间同步软件的依赖,可替代现有时间戳和时间同步相结合的方案,消除对时间同步软件的依赖,并降低分布式系统的部署代价和时钟硬件要求,有效消除原消息干扰的问题。

【技术实现步骤摘要】
一种防原消息干扰的方法及装置
本专利技术涉及通信
,尤其涉及一种防原消息干扰的方法及装置。
技术介绍
现有的分布式系统中,节点间通常采用多条网络通道,实现并发传输以提升网络传输性能,并增强网络传输的鲁棒性。在一种分布式系统中,当客户端需要将指定页面的数据发送给数据服务器时,需要向数据服务器发送消息,以通知数据服务器处理指定页面的数据。如果消息发送超时,将重新发送指定页面的数据,由于在两次消息发送的间隔里,允许指定页面的数据被更新,所以重传消息中指定页面的数据相对于原消息中相同指定页面的数据可能会有所更新,导致内容不同。这种情况下,对于数据服务器而言,就不允许其在接收重传消息后,再接收处理原消息,否则将导致原消息覆盖重传消息;但是允许数据服务器在接收原消息后,再接收重传消息。由于采用多条网络通道,网络通道的异常会导致原消息在重传消息之后被接收,引发原消息干扰问题。为了避免该问题,目前通常采用时间戳和时间同步相结合的方法,具体方案是:在分布式系统各节点上部署时间同步软件,实现各节点间时间同步;节点在接收消息后,计算消息的过期时间(消息的发送时间戳加上消息超时时间),并与接收端本地时间相比较,若判定消息过期则丢弃该消息。由于重传消息在原消息超时之后发送,若接收端在接收重传消息之后接收原消息,鉴于节点间时间同步,必定能够判定原消息过期并丢弃,从而避免原消息干扰问题。现有采用的时间戳和时间同步相结合的方案,要在分布式系统的各个节点上部署时间同步软件,部署代价较高,且要求分布式系统各节点的时钟频率完全一致,对硬件要求较高,一旦部分节点的时钟频率出现问题,需要进行时钟同步处理,主要包括两种情况:1)节点时钟受同步影响往前调,会导致接收其它节点的过期消息(时间前调导致判定消息不过期),从而造成原消息干扰;2)节点时钟受同步影响往后调,对于标准时钟的节点而言,该节点发送的原消息和重传消息的时间间隔并未到达超时时限,导致其它节点无法准确判定该节点发送的消息是否过期,进而引发原消息干扰问题。
技术实现思路
本专利技术针对上述问题,提出了一种防原消息干扰的方法及装置,可替代现有时间戳和时间同步相结合的方案,消除对时间同步软件的依赖,并降低分布式系统的部署代价和时钟硬件要求,有效消除原消息干扰的问题。在一个方面,本专利技术提供了一种防原消息干扰的方法,其包括:接收原消息,所述原消息中包含发送所述原消息时发送节点的当前CPU计数器时间和所述原消息超时时对应的发送节点CPU计数器时间;根据收到所述原消息之后的在后消息中的发送节点当前CPU计数器时间,判断所述原消息是否超时,若确定所述原消息超时,则丢弃所述原消息;否则,接收所述原消息。在另一个方面,本专利技术提供了一种防原消息干扰装置,其包括:接收单元,用于接收原消息,所述原消息中包含发送所述原消息时发送节点的当前CPU计数器时间和所述原消息超时时对应的发送节点CPU计数器时间;处理单元,用于根据收到所述原消息之后的在后消息中的发送节点当前CPU计数器时间,判断所述原消息是否超时,若确定所述原消息超时,则丢弃所述原消息;否则,接收所述原消息。本专利技术提供了一种防原消息干扰的方法及装置,通过选择CPU计数器时间作为节点间的计时机制和防原消息干扰协议,避免了节点间对时间同步软件的依赖,可替代现有时间戳和时间同步相结合的方案,消除对时间同步软件的依赖,并降低分布式系统的部署代价和时钟硬件要求,有效消除原消息干扰的问题。附图说明下面将参照附图描述本专利技术的具体实施例,其中:图1为本专利技术实施例提供的一种防原消息干扰的方法流程图。图2为本专利技术实施例提供的一种防原消息干扰的方法中节点主动连接时的节点启动时生存期确立流程图。图3为本专利技术实施例提供的一种防原消息干扰的方法中节点被动连接时的节点启动时生存期确立流程图。图4为本专利技术实施例提供的一种防原消息干扰的方法中防原消息干扰协议处理流程图。图5为本专利技术实施例提供的一种防原消息干扰装置的示意图。具体实施方式为了使本专利技术的技术方案及优点更加清楚明白,以下结合附图对本专利技术的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本专利技术的一部分实施例,而不是所有实施例的穷举。如图1所示,本专利技术实施例提供了一种防原消息干扰的方法,其包括如下步骤:步骤S101:接收原消息,该原消息中包含发送该原消息时发送节点的当前CPU计数器时间和该原消息超时时对应的发送节点CPU计数器时间。操作系统通常可以提供两种时间机制:系统时间和CPU计数器时间,其中系统时间,可以转换成具体的日期时间,其值可被修改,而CPU计数器时间,记录了系统自启动以来的CPU计数器时间,无法转换成具体的日期时间,但当前CPU计数器时间与标准时间粒度(如:秒)可进行转换。因此由于系统时间可被修改的特性,使其难以实现绝对的单调递增,所以不适合用来严格判定消息是否超时。CPU计数器时间,由于其只会单调增加且不能被修改,从而能确保节点生存期内绝对的单调递增;且判定消息是否超时与具体日期时间无关,仅与消息超时时间间隔有关,所以,本专利技术中采用CPU计数器时间的机制比较适合用以严格判定消息是否超时。各操作系统都提供了有关CPU计数器时间的调用接口,如在Linux环境下,可通过函数clock_gettime(CLOCK_MONOTONIC,...),以获取CPU计数器时间;在Windows环境下,可调用函数GetTickCount()、QueryPerformanceCounter()等,以获取CPU计数器时间。步骤S102:根据收到该原消息之后的在后消息中的发送节点当前CPU计数器时间,判断该原消息是否超时,若判断该原消息超时,则执行步骤S103:丢弃该原消息。;否则执行步骤S104:接收该原消息。判断原消息是否超时,具体为根据收到的在后消息中的发送节点的最新CPU计数器时间,以及本地记录发送节点的CPU计数器时间,将确定出二者中发送节点最新的CPU计数器时间与该原消息的超时时间相比较,若发送节点最新的CPU计数器时间在该原消息的超时时间之后,则确定该原消息超时;否则,确定该原消息未超时。当发送节点发送原消息时,将该节点发送该原消息的当前CPU计数器时间和所发送该原消息的超时时间设置到所发送的原消息中,以便接收节点进行原消息是否超时的判断。具体的,接收节点接收到该原消息后,从该原消息中获取其超时时间和发送节点发送该消息时的CPU计数器时间,然后更新本地记录的发送节点的CPU计数器时间,具体处理是:取MAX(消息中的发送节点最新CPU计数器时间,本地记录发送节点的CPU计数器时间),以上述取MAX值得到的发送节点的CPU计数器时间为准来更新发送节点的CPU计数器时间,进而判定消息是否超时:若更新后的发送节点的CPU计数器时间在原消息的超时的时间(对应发送节点的CPU计数器时间)之后,则原消息为超时;否则,原消息未超时。上述的方法,还包括发送节点在该原消息超时时间之后发送该原消息的超时通知,所述超时时间以发送节点的CPU计数器时间表示。设定超时等待后,必须到达超时时刻才算超时,通知超时的时间点必须在超时时刻之后(含超时时刻)。在实验中发现,Linux中如pthread_cond_timedwait提供的超时机制,其通本文档来自技高网
...
一种防原消息干扰的方法及装置

【技术保护点】
一种防原消息干扰的方法,其特征在于,包括:接收原消息,所述原消息中包含发送所述原消息时发送节点的当前CPU计数器时间和所述原消息超时时对应的发送节点CPU计数器时间;根据收到所述原消息之后的在后消息中的发送节点当前CPU计数器时间,判断所述原消息是否超时,若确定所述原消息超时,则丢弃所述原消息;否则,接收所述原消息。

【技术特征摘要】
1.一种防原消息干扰的方法,其特征在于,包括:接收原消息,所述原消息中包含发送所述原消息时发送节点的当前CPU计数器时间和所述原消息超时时对应的发送节点CPU计数器时间;根据收到所述原消息之后的在后消息中的发送节点当前CPU计数器时间,判断所述原消息是否超时,若确定所述原消息超时,则丢弃所述原消息;否则,接收所述原消息;判断所述原消息是否超时,具体为根据收到在后消息中的发送节点最新CPU计数器时间,以及本地记录发送节点的CPU计数器时间,将确定出二者中发送节点最新的CPU计数器时间与所述原消息的超时时间相比较,若所述最新的CPU计数器时间在所述原消息的超时时间之后,则确定所述原消息超时,丢弃所述原消息;否则,确定所述原消息未超时,接收所述原消息。2.如权利要求1所述的方法,其特征在于,还包括发送节点在所述原消息超时时间之后发送所述原消息的超时通知,所述超时时间以发送节点的CPU计数器时间表示。3.如权利要求1所述的方法,其特征在于,还包括为所述节点设置生存期,所述生存期通过发送节点当前系统时间、进程标识和随机数来标识,其中节点包括发送节点和接收节点。4.如权利要求3所述的方法,其特征在于,节点间建立连接时,将自己的生存期标识发送至与其已连接或正在连接中的节点。5.如权利要求3或4所述的方法,其特征在于,当发送节点的生存期发生变化时,当识别出所述原消息是在当前生存期之前的生存期里发送的,则丢弃所述原消息;否则,接收所述原消息。6.一种防原消息干扰装置,其特征在于,包括:接收单元,...

【专利技术属性】
技术研发人员:季旻苗艳超杨浩张攀勇
申请(专利权)人:曙光信息产业股份有限公司 无锡城市云计算中心有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1