具体实施方式
下面将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图2为根据本发明实施例的MTP2协议中流量控制的方法的流程图。如图2所示,该方法包括:
步骤S202,MTP2的接收侧检测到节点异常时,停止发送证实消息并保持与证实消息个数对应的后向序号不变;
步骤S204,在MTP2的发送侧的前向序号增加到发送窗口上限值时,接收侧开始发送上述证实消息并逐个增加上述后向序号;
在优选实施过程中,上述接收侧逐个增加上述后向序号可以包括:上述接收侧根据其系统运行情况和实际接收能力逐个增加向上述发送侧发送证实的后向序号。
步骤S206,上述接收侧接收来自于上述发送侧的消息,其中,该消息是上述发送侧根据接收到的证实消息而逐个发送的。
上述实施例利用MTP2信令单元中的BSN字段来控制消息发送侧的发送能力。其方法是依据接收侧的实际接收能力并结合消息的实际收发情况来设置BSN字段,从而实现控制发送侧的发送流量的目的。
优选地,上述接收侧停止发送证实消息并保持与上述证实消息个数对应的后向序号不变之前,还可以包括以下处理:
(1)上述接收侧接收来自于上述发送侧的各个消息;
(2)上述接收侧在接收到每个消息后,向上述发送侧返回与该消息对应的证实消息,并将上述后向序号加1。
优选地,上述接收侧接收来自于上述发送侧的消息之后,还可以包括以下处理:上述接收侧检测到节点恢复正常时,将上述后向序号更新为上述接收侧接收到的最新消息所对应的前向序号;上述接收侧接收来自于上述发送侧根据上述更新后的后向序号对应的证实消息发送的消息。
优选地,上述接收侧接收来自于上述发送侧根据上述更新后的后向序号对应的证实消息发送的消息之前,还可以包括以下处理:
(1)上述发送侧接收来自于上述接收侧的上述更新后的后向序号所对应的证实消息;
(2)上述发送侧根据上述接收到的证实消息向上述接收侧发送消息。
为了更好地理解本发明上述实施例,下面以上述实施例的一个优选实施例结合图3对上述实施例进行说明。该优选实施例中,MTP2协议中流量控制方法包括:
步骤1:MTP2的接收侧在正常期间每收到MTP2的发送侧的一个消息即会回送相应的证实。在此期间发送侧占用的发送缓存基本为空,消息发送正常。
参见附图3【阶段1】,在此阶段MTP2的接收侧每收到MTP2发送侧发送的一个消息立即回送相应应答序号的证实。此时MTP2发送侧的FSN与MTP2接收侧的BSN相同均为M。
步骤2:当接收侧检测到节点异常时,如接收拥塞、处理能力下降、缓存缺失等,进入到过渡期。在过渡期间接收侧除非为了保持链路可用而定期增加后向序号外(每次加1后按照窗口大小进行取模操作),应保持回送证实的后向序号不变。也就是不再通知MTP2发送侧已经收到新的消息。在此期间发送侧占用的发送缓存逐步增加,消息发送依然正常。
此过程接收侧可选发送SIB链路状态信令单元。
参见附图3【阶段2】,在此阶段除非为了保持链路可用而定期增加后向序号外,保持回送证实的后向序号不变。在T6定时器超时之前,尽管MTP2发送侧发送了X条消息,FSN增加为M+X,MTP2接收侧始终维持BSN为M。在T6定时器即将超时的时刻,MTP2接收侧增加其BSN到M+1,并向MTP2发送侧回送该证实,保持链路可用。
参见附图4,FSN与BSN字段均为7比特,也就是说窗口大小为128(发送出去且未收到证实的消息的最大数量)。为了保证序号(包括前向序号和后向序号)不超出范围,当计算出新的序号之后需要按128进行取模。因此当FSN等于BSN-1,即窗口满后,过渡期结束。
步骤3:当发送序号等于发送窗口上限值时,发送侧将无法发送新的消息,此时接收侧进入到流控期。在流控期间接收侧依据自身的系统运行情况以及实际接收能力逐步增加回送证实的后向序号。在此期间发送侧占用的发送缓存维持在最大值,消息发送受限于接收侧证实的后向序号。
此过程接收侧可选发送SIB链路状态信令单元。
参见附图3【阶段3】,在此阶段MTP2发送侧的消息发送能力完全受限于MTP2接收侧的证实情况。MTP2接收侧依据系统的实际处理能力计算出每应答周期(Tp)内能够回送证实的数量,本例Tp等于50ms、证实数量为1。每次Tp超时后,MTP2接收侧将BSN加1并回送证实。
步骤4:当接收侧节点恢复正常,接收侧设置回送证实的后向序号为接收到的最新消息的前向序号,重新回到正常期。发送侧收到新的证实之后,清空发送缓存,消息发送恢复正常。
参见附图3【阶段4】,MTP2接收侧首先将BSN赋值为最后收到的消息的FSN,即N-1。然后向MTP2发送侧回送该证实。之后MTP2接收侧每收到MTP2发送侧发送的一个消息就立即回送相应应答序号的证实,重新恢复正常。
图5为根据本发明实施例的MTP2协议中流量控制系统的结构框图。如图5所示,该系统可以包括:MTP2接收侧52和MTP2发送侧50。
其中,上述接收侧52,可以进一步包括:
停止发送模块520,用于停止发送证实消息;
配置发送模块522,用于在上述发送侧50的前向序号增加到发送缓存上限值时,发送上述证实消息并逐个增加后向序号;优选地,上述配置发送模块522,根据自身的系统运行情况以及实际接收能力逐步增加回送证实的后向序号。
第一接收模块524,用于接收来自于上述发送侧50的消息,其中,上述消息是上述发送侧根据接收到的证实消息而逐个发送的。
在优选实施过程中,上述第一接收模块524,还用于接收来自于上述发送侧50的各个消息;上述配置发送模块522,还用于在接收到每个消息后向上述发送侧50返回与该消息对应的证实消息,并将上述后向序号加1。
优选地,如图6所示,上述接收侧52还可以包括:更新模块526,用于在上述接收侧52检测到节点恢复正常时,将上述后向序号更新为上述接收侧52接收到的最新消息所对应的前向序号;则上述第一接收模块524,还用于接收来自于上述发送侧50根据上述更新后的后向序号对应的证实发送的消息。
优选地,如图6所示,上述发送侧50可以进一步包括:第二接收模块502,用于在上述接收侧52接收来自于上述发送侧50根据上述更新后的后向序号对应的证实消息发送的消息之前,接收来自于上述接收侧52的上述更新后的后向序号所对应的证实消息;发送模块504,用于根据上述第二接收模块502接收到的证实消息向上述接收侧发送消息。
需要注意的是,上述系统中的各部分及各部分的组成模块相关结合的优选工作方式具体上述方法实施例的描述,此处不再赘述。
综上所述,上述实施例提供一种基于MTP2协议的针对消息接收侧的有效的流量控制的方法。通过这个方法既可以避免当某些网络节点未实现流量控制功能而对整个网络流量控制能力所造成的影响,也可以在接收侧网络节点出现异常时限制发送侧的发送流量避免进一步恶化。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。