在网络节点中支持多个检验总数算法的方法 本发明涉及在其中每个包中都包含一个检验总数的面向连接的通信协议。在此为构成检验总数采用的算法是不重要的。然而如果改变所述算法并且通过一个或多个新的算法替代,则在过渡时间过程中就要考虑不论是旧的算法还是新的算法都要在通信网络中采用,此外因为正常情况下由接收机屏弃有错误检验总数的包,所以要对每个通信业务关系确定,用哪个算法构成检验总数。
迄今要么在网络范围内规定用哪个算法构成检验总数,或按通信业务关系由网络营运商确定。然而在过渡阶段却不能接受第一个方案。第二个方案一方面要求交换系统或网络节点的制造商付出额外的选择构成检验总数地算法的管理的开发费用,另一方面网络营运商却要对每个通信业务关系面对这种选择并且进行配置。这可能有非常大量的时间耗费和成本耗费,并且是极容易出错的。
因此本发明的目的是,提出一种避免现有技术的缺点的在网络节点中支持多个检验总数算法的方法。
该目的通过如权利要求1或2的特征部分的在网络节点中支持多个检验总数算法的方法解决。
优选的实施方案是从属权利要求的内容。
根据本发明提出在第一网络节点A中支持多个检验总数算法的方法,椐此在第一网络节点A和第二网络节点B之间产生由第一网络节点A实现其初始化的通信业务关系,其中
-在第一步骤中通过第一网络节点A选择第一检验总数算法,
-在第二步骤中通过第一网络节点A向第二网络节点B发出所选取的检验总数的信号,
-在第三步骤中如果由第二网络节点B接受带有所选取的检验总数算法的通信关系的初始化,则在采用所选取的检验总数算法的条件下建立通信业务关系,或者
-在第三步骤中如果由第二网络节点B拒绝或者不响应用所选取的检验总数算法的通信关系的初始化,则由第一网络节点A选择另一个检验总数算法,其中以新选取的检验总数算法重复第二和第三步骤。
此外根据本发明还提出一种在第一网络(A)中支持多个检验算法的方法,用于第一网络节点(A)和第二网络节点(B)之间存在的、采用第一检验总数算法的通信业务关系,根据该方法
-在第一步骤中通过第一网络节点(A)选择第二检验总数算法,
-在第二步骤中通过第一网络节点(A)向第二网络节点(B)发出所选取的检验总数的信号,
-在第三步骤中如果由第二网络节点(B)接受采用所选取的检验总数算法,则为通信业务关系确定所选择的检验总数算法,或者
-在第三步骤中如果由第二网络节点(B)拒绝或者不响应所选取的检验总数算法,则由第一网络节点(A)选择另一个检验总数算法,其中以新选取的检验总数算法重复第二和第三步骤。
特别有利地是间接地进行从第一网络节点A向第二网络节点B的所选取的检验总数的算法信号发送,其中发送初始化消息,所述的消息借助于要发送信令的检验总数算法编码-权利要求5。
根据本发明的方法的重要优点在于,不再使用检验总数算法的管理性配置和管理性规定。从而例如消除了引入新的算法以构成检验总数时所述的对网络营运商的缺点。交换台或网络节点的制造商执行一种允许所有执行的算法以透明的方式工作的方法。在此开发费用不高于提供管理可能性的费用。
在此采用如本发明所述的方法的端点或网络节点可以有利地与其它的端点或节点通信,所述的其它的端点或节点可以运用根据本发明所述的方法,或只运用旧的检验总数算法或只运用新的检验总数算法。
两个通信伙伴或网络节点对双方向连接采用相同的构成检验总数的算法。在此主动的端点或网络节点选取一种检验总数算法并且启动建立连接的正常方法。为与一定的通信伙伴或网络节点连接而一次选取的检验总数算法,在由该伙伴或网络节点在接收包或消息时也采用。在接收表达至此尚未知的连接请求的消息或包时,被动的端点或网络节点以所有已知的检验总数算法检验是否正确地传输了所述的消息或包。如果仅用一个检验总数成功进行了该检验,就为此连接选择相应的检验总数算法。
如果在可能的多次重复后都没有响应连接请求,主动端点或网络节点等待一段取决于随机现象的时间,并且重新启动连接请求,但是是用另一个检验总数算法。
下面结合四个附图所述的实施例详细地说明根据本发明的方法。
图1示出在两个节点之间连接的初始化过程的示意图,这两个节点以常规的方式只支持迄今的检验总数算法ADLER32,
图2示出在两个节点之间连接的初始化过程的示意图,这两个节点以常规的方式只支持新的检验总数算法CRC,
图3示出在采用本发明的方法并且支持两个检验总数算法ADLER32和CRC32的节点与以常规的方式只支持迄今的检验总数算法ADLER32的节点之间连接的初始化过程的示意图,而
图4示出在两个都采用本发明的方法并且支持两个检验总数算法ADLER32和CRC32的节点之间连接的初始化过程的示意图,其中一个节点优选地采用ADLER32而另一个节点优选地采用CRC,并且出现连接请求的冲突。
对于该实施例考虑用在RFC 2960中定义的流控制传输协议(SCTP)作传输协议。在此为构成检验总数说明了称为ADLER32的算法。该算法正在由称为CRC的新的算法替代。通过本发明的方法同样可引入多个要替代迄今算法ADLER32的算法以构成检验总数。在图1中示出使用常规方法的连接建立,其中不论第一网络节点A还是第二网络节点B都各自只支持迄今的算法ADLER32以构成检验总数。以相同的方式图2中示出使用常规方法的连接建立,其中不论第一网络节点A还是第二网络节点B都各自只支持新的算法CRC32以构成检验总数。从而采用不同的用于构成检验总数的算法的两个端点不能够相互通信。
借助于图1和图2在此处简短地说明SCTP的连接建立。为了简化起见假定连接要求由第一网络节点A发出。首先从第一网络节点A向第二网络节点B发送带有INIT块(chunt)的SCTP包。这种SCTP包的检验总数用在第一网络节点A中执行的检验总数算法构成,也就是在图1中的ADLER32和图2中的CRC32。如第一网络节点A那样通过管理规定采用相同的检验总数算法的第二网络节点B借助于检验总数识别接收的SCTP包为有效或是出错。传输干扰通过根据相应的检验总数算法构成的检验总数与由之构成检验总数SCTP包的内容之间的偏差指示出。如果由第二网络节点B识别了这样的失误的SCTP包,就通过第二网络节点B摒弃之。在未得到第二网络节点B的响应时,第一网络节点A在重发计时器T1的过程以后重复发送出相应的SCTP包。如果由第二网络节点B把接收的SCTP包识别为有效的,依据原理仅可发生这种情况,即如果不出现传输干扰并且在两个网络节点中都采用相同的检验总数算法ADLER32、CRC32时,就通过第二网络节点B发送带有INIT AK块的SCTP包。这种INIT ACK块含有库克(Cookie)参数,该参数由第一网络节点在另一个SCTP包中的COOKIE-ECHO块中向第二网络节点B发送回去。此外,从第二网络节点B的该COOKIE ECHO块的接收通过在SCTP包中发送COOKIE ACK块确认,并且网络节点A、B之间的连接在采用检验总数算法ADLER32(图1)或CRC32(图2)的条件下建立,并且可以用于传输有效信息。
根据本发明把其中存储一个连接的所有的连接专用数据的和在网络节点A中存储的连接数据块扩展一个字段,该字段中可以存放所采用的检验总数算法的信号,例如是字段“checksum_algorithm”。这总有一个值。如果用根据本发明的方法工作的网络节点A接收一个SCTP包,就引发寻找连接数据块。如果找到连接数据包,就利用在字段“checksum_algorithm”中指出的算法以检验该包。其它的处理如在标准中规定的进行。然而,如果找不到连接数据块,就利用所有供使用的算法。如果只有一个算法把所述的包识别为有效的,就假定采用该算法,不然就摒弃该包。对基于该包发送的应答提供所找到的算法的检验总数。此外产生一种连接数据块,其字段“checksum_algorithm”设置为代表该算法的值。
对于协议SCTP把连接数据块也称为传输控制块(TCB)。
如果用第一检验总数方法CRC的连接建立不成功,则引发的第一节点A就须等待一个随机的时间(随机延迟),然后可以开始用另一个检验总数方法ADLER32的重新偿试。这个过程示于图3中。第二端点,也就是网络节点B只执行检验总数算法ADLER32。第一端点或者说网络节点A执行如本发明所述的方法。通过第一网络节点A在使用检验总数算法CRC32的条件下偿试连接建立。在由第一网络节点A经一定数量重复(例如三次重复)连接建立包以后经过重发计时器T1的过程后用该检验总数算法CRC32不能够识别该连接建立,就用检验总数算法ADLER32引发连接建立,接着第二网络节点B如前所述地应答,并且可以在使用该检验算法的情况下建立通信业务关系。
然而SCTP是对等的协议,就是说双方可能同时是主动的,并且可能出现初始化消息冲突。为此在图4中给出一种信息流。对于相邻的网络节点A和B以较高的概率有差别的两个端点的连接偿试之间的随机间距(随机延迟),因为是随机的所以用于避免同步(从而避免持续的不能连接的状态),所述的同步例如发生在
-相邻的网络节点双方都支持如本发明所述的方法,
-网络节点A、B具有不同的优选的检验总数算法(在图4中第一网络节点A优选算法ADLER32,而网络节点B优选算法CRC),以及
-不论在第一网络节点A还是网络节点B都同时切换到相应地另一个算法。
可以看出,如已经在不同处指明地,本发明可以用于与多个其它的网络元件有连接的网络元件(“网络节点”),还可以用于只与一个其它的网络元件有连接的网络元件(“端点”)。“端点”和“网络节点”在本说明书的意义上是同义语,因为SCTP连接是点到点连接,从而对于一个SCTP连接总是有两个(端)点参与连接,然而上级的协议完全可以越过这种SCTP端点进行通信,所以一个SCTP端点对于上级的协议可以是一个网络节点。
本发明不限于所述实施例。例如可以在基于其它的面向连接的通信协议的通信网络中在使用本发明的原理并列地运行多个检验总数方法。