检测通信网络中的不一致数据的方法和系统的制作方法

文档序号:7651804阅读:146来源:国知局
专利名称:检测通信网络中的不一致数据的方法和系统的制作方法
技术领域
本发明通常涉及在通信网络内进行处理,并且尤其是涉及检测通 信网络内的不一致数据。
背景技术
诸如重复数据或无序数据之类的不一致数据可由各种操作条件 以及由其它条件而产生,所述操作条件包括由先前的错误恢复动作引 起的数据重新传送。这类数据的完整性是不可信的,因而是有问题的。
某些通信协议是利用数据不可复制或者无序这样的假设而配置 的。这些协议的例子包括由国际商业机器公司所提供的系统间通道
(ISC) 、 ESCON⑧以及FICON协议。违反这种假定可能会引起严重 故障,从而影响整个系统的操作。
虽然这些协议假定了数据不可复制或者无序,但是,当把这些协 议用于还包括其他协议的通信网络中时,这样不一定是正确的。例如, 为了在较长距离上传送数据,可以结合同步光纤网(Synchronous Optical Network, SONET )或网际协议(Internet Protocol, IP)网 络而采用ISC或其他协议来传送数据。当组合不同的协议时,ISC链
路上的数据可能会变得不一致。

发明内容
基于上文,甚至对于假定了数据一致的那些协议而言,也需要检 测不一致数据的能力。尤其是,需要一种检测不一致数据的能力,其 中独立于检测来执行数据的恢复。
通过提供一种检测通信网络中的不一致数据的方法,克服了现有
技术的缺点,并且提供了额外的优点。例如,该方法包括通过通信
网络的接口获得从通信网络的网络结构所输出的数据;以及通过该接 口检测出数据是不一致数据,其中,由于不是由检测不一致数据的所 述接口来执行恢复,所以不 一致数据的检测与不 一致数据的恢复是相 独立的。
此处,还描述并请求保护与以上所概括的方法相对应的系统和计 算机程序产品。
通过本发明的技术实现了额外的特征和优点。本发明的其他实施 例和方面在此处进行了详细描述,并且被认为是所请求保护的发明的 一部分。


本发明的一个或多个方面被特别地指出并且被清楚地请求为权 利要求书中的例子。通过结合附图给出的以下详细说明,本发明的上 述及其他目的、特征和优点会变得更加明显,其中
图l描述了包括并利用了本发明的一个或多个方面的通信网络的
例子;
图2A描述了根据本发明的一个方面与对通信网络内所传送的数 据进行封装/解封装有关的逻辑的 一个实施例;
图2B描述了根据本发明的一个方面所改进的封装/解封装过程中 所采用的报头的一个实施例;
图3描述了根据本发明的一个方面与向数据附加包序号有关的逻 辑的一个实施例;
图4描述了根据本发明的一个方面与检查包序号以确定是否要丢 弃(discard)数据有关的逻辑的一个实施例;
图5A描述了根据本发明的一个方面的有效/无效包序号窗口的例
子;
图5B描述了根据本发明的一个方面的有效/无效包序号窗口的进 一步的例子;
图6A描述了根据本发明的一个方面、其中采用了握手方法的包
序号链路初始化过程的一个实施例;
图6B描述了根据本发明的一个方面、其中采用了实例号 (instance number )方法的包序号链路初始化过程的一个实施例;以 及
图7描述了包括本发明的一个或多个方面的计算机程序产品的一 个例子。
具体实施例方式
^f艮据本发明的一个方面,提供了一种检测通信网络中的不一致数 据的能力,所述通信网络包括被配置成假定没有不一致数据的通信协 议。不一致数据包括重复数据和/或无序数据。所述检测处理由与发生 恢复之处相分离的网络组件(例如,接口 )来执行。也就是说,执行 检测的组件不执行恢复。检测和恢复彼此相互独立。
参考图l描述了包括且利用本发明的一个或多个方面的通信网络 的一个实施例。图1中所描述的是广域网100,其包括例如经由互连 106而耦合到接口 104的节点102。接口 104耦合到并且位于网络结构 108的一边。该结构的另一边是经由互连114而耦合到节点112的另 一个接口 110。节点102、 112是例如国际商业机器公司提供的eServer zSeries,l务器。在这个实施例中,节点是IBM⑧提供的Graphically Dispersed Parallel Sysplex(GDPS⑧)的一部分。GDPS是一种多点或 单点的端对端应用可用性解决方案,其提供了管理远程拷贝配置和存 储子系统以使Parallel Sysplex操作任务自动化以及从单个控制点执 行故障排除的能力。GDPS有助于使用于计划内或计划外停机的恢复 过程自动化,以提供近似连续的可用性和灾难恢复能力。
IBM、 zSeries、 GDPS、 ESCON以及FICON是美国纽约Armonk 的国际商业机器公司的注册商标。此处使用的其他名称可能是国际商 业机器公司或其他^^司的注册商标、商标或产品名称。
节点102、 112中的每一个都经由互连而耦合到接口。互连106、 114是例如系统间通道(ISC)链路,其是基于假定了数据(例如,包)
不可复制或无序到达这样的协议而设计的。
耦合到互连的接口是例如包括封装/解封装功能的波分复用器。 封装功能把接口收到的数据变换成结构可以理解的格式,而解封装结 构把数据变换回节点可以理解的格式。
在一个例子中,网络结构108包括例如同步光纤网(SONET), 其是用于世界范围内的电信的传送基础设施。它是美国国家标准学会 (ANSI)标准。作为另一个例子,该结构可以是网际协议(IP)网络 或其他类型的网络。
通信量在网络上从一个节点流到另一个节点。然而,网络结构不 能理解来自节点的数据,因此把数据封装成网络结构可以理解的形式。 作为一个例子,将作为ANSI标准的通用成帧规程(Generic Frame Procedure, GFP)用于把从节点102、 112收到的数据封装成网络结 构108可以理解的格式。下面参考图2A描述了这个封装过程的一个 实施例。这个过程由例如数据通过其流到结构的接口来执行。在可从 ANSI ( West 42nd Street, New York, NY 10036 )获得的美国电信国家 标准-通用成帧规程-ANSI Tl.xxx.yy-200x, www.ieee802.org/rprsg/ public/presentations/May 2001/gfp.pdf中,还描述了关于GFP的更多 细节,因此通过参考将其全部引入在此。
参考图2A,从节点中收到的数据是8位/10位编码数据,其基本 上不与诸如SONET之类的各种路由和流量控制协议相兼容(步骤 200 )。因而,每次一个字符地解码该8位/10位编码数据(步骤202 )。 每个字符被解码成8位数据或控制字符。这个数据然后被重新编码为 64位/65位字和/或映射控制字符(步骤204 )。此后,新编码的数据 块被连在一起以形成八位字节(步骤206)。也就是说,八个字的数 据被集合成一个八位字节,并且该八位字节具有一个报头,如果希望 的话,所述报头包括具有包括负载类型(诸如ESCON 、光纤信道等) 在内的各种信息的字段、CRC校验及其他字段。该八位字节被集合成 超大块(superblock)并且被扰频,并且应用进一步的CRC校验以确 保扰频是准确的(步骤208)。然后,数据被转发给SONET路由和
流量控制网络(步骤210)。
在另 一个接口处接收SONET网络的输出,所述接口通过以相逆 的次序执行通用成帧规程而对数据进行解封装。然后,把解封装后的 数据提供给耦合于这个接口的节点,
根据本发明的一个方面,对帧封装/解封装功能进行改进,以包 括在不一致数据的检测中所使用的包序号(PSN)。尤其是,对步骤 206中提供的报头进行改进(参见206A,圓2B)以包括包序号,所 述包序号例如是24位编号。报头还包括一个可选的实例号,下面将对 其进一步加以描述。在一个实施例中,如果数据具有所选协议、例如 ISC对等模式或STP数据,则添加包序号。然而,在另一个实施例中, 不管协议如何都添加包序号。
包序号作为封装过程的一部分被添加,以及作为解封装过程的一 部分被检查。例如,包序号被初始化,并且当传送每个数据包时,例 如,在链路的发送端上,将包序号递增1。在接收端上,当对数据进 行解封装时,检查每个包序号以确保它是有效的。参考图3-4进行更 进一步地描述。
参考图3,描述了与发送端有关的逻辑。在这个实施例中,发送 器是用于把数据转发给网络结构的接口 (例如,接口 104)。该接口 被改进或设计成包括图3中所描述的功能。发送器接收来自发送主机 (例如,节点102)的包(步骤300)。然后,针对包是否具有发送器 感兴趣的协议做出判断(步骤302)。在一个例子中,通过检查具有 感兴趣的协议的数据结构(例如,表格)而做出这一判断。如果它是 其中系统对具有与之相关的包序号感兴趣的协议(例如,ISC对等模 式、携带服务器时间协议(ServerTimeProtocol, STP)的ISC ),那 么把包序号附加到要传送的包上(步骤304)。例如,如上所述,把 包序号添加到GFP报头中。另外,在一个例子中,将当前包序号递增 一 (步骤306)。此后,或者如果包不具有发送器感兴趣的协议,则 传送包(在完成封装之后)(步骤308)。包在网络结构上进行传送 并由接收器接收,所述接收器诸如为具有封装/解封装能力的另一个波
分复用器(例如,接口 110)。
参考图4描述了与处理所接收的包有关的逻辑的一个实施例。最 初,从结构中接收包(步骤400)。针对协议是否为其中包序号应该 被包括在数据内的协议做出判断(询问402)。如果不是,则如前所 述,把包传递给接收主机(步骤404)。然而,如果协议支持包序号, 那么要做出进一步的询问以确定包序号是否在有效窗口之内(询问 406)。下面更详细地描述这个判断。如果包序号不在有效窗口中,那 么包被丢弃(步骤408),并且对包的处理结束(步骤404)。然而, 如果包序号处于有效窗口中,那么从包中去除包序号,并把包传递给 接收主机(在完成解封装之后)(步骤410)。然后更新接收器处的 当前包序号(步骤412 )。这样完成了对所接收包的处理(步骤404 )。
应当注意到,接口可以既是接收器又是发送器,这取决于在特定 时间点上接口是正在接收数据还是传送数据。
为了确定接收器接收的包序号是否有效,对包序号进行检查,以 确报例如它大于先前接收的包序号。这可以采用若千种不同的方式来 实现。在一个例子中,定义了基于包序号的有效数据和重复数据的窗 口。使连续的包序号彼此相减,并且如果结果是1或小于223,则包不 在重复范围内(即,有效)。如果结果是零,但是大于-223,则接收的 包处于重复范围内,并且会被丢弃。参考图5A、 5B描述了有效和无 效窗口的例子。
如图5A所示,当前PSN在参考标号500处。在当前包序号之前 的包序号是无效的(502),并且包会被丢弃。当前包序号之后的包序 号是有效的(504),并且包会被保留。
类似地,如图5B所示,当前包序号在参考标号510处。圆形图 上在当前包序号前面的窗口或范围被认为是有效的包序号窗口或范围 512。然而,在514上,包序号被认为是在表示重复包的无效窗口或范 围中。
有效数据窗口或范围的定义取决于对数据何时开始传送的认识。 因而,对包序号进行初始化,并且源和目的地被同步地保持。这可釆
用若干种不同的方式来完成。在一个例子中,网络的一个端点被定义 为主方,而另一个端点被定义为从方。主方端点向从方发送一条消息 以向从方告知包序号的初始值、预期的下一个序号、以及当从方在双 工链路上把下一个包发送回主方时使用的包序号。主方和从方在链路
初始化或重新初始化时进行握手。这在图6A中进行了描述。
如图所示,主方600 (例如,接口 104)把初始包序号602以及 任何其他需要的或希望的信息发送给从方604 (例如,接口 110)。从 方通过验证收到这个信息来进行响应606。然后,数据传送开始。
另外,主方保留在重新初始化之前所釆用的上一个包序号的状态 信息,以避免把旧包错认为有效包顺序窗口中的好包。这个方法对 GFP或IP封装技术而言是透明的。握手的开销预计很低,这是因为, ISC/STP链路不会经常地重新初始化。
在另一个方法中,避免了往返握手(round-trip handshake)。 在这个方法中,与包序号(参见图2B)—起把实例号(例如,1-3位) 添加到包中。因而,主方610(图6B)(例如,接口 104)响应于例 如链路初始化或重新初始化而把初始包序号和实例号(612)发送给从 方614(例如,接口 110)。由接收器丟弃利用不同于当前实例号的任 何实例号所接收的包。每当初始化一对端点时,递增实例号。例如, 主节点可以通过利用新的包序号来发送新的实例号,而初始化它的从 节点。按照这种方式,可以任意地设置初始包序号。但不论是哪种情 况,不管是否使用握手方法,每当链路改变了它们的状态时,都要重 新初始化包序号和/或实例号。链路初始化需要极少的带宽并且不经常 发生,因此这样不会显著地影响性能。
在更进一步的实施例中,实例号可以用于往返响应(roundtrip response)中。在这个实施例中,主方不需要记得现在的包序号。相 反,它只记得现在的实例号,这是非常小的数量。在这个实施例中, 每当实例号被重新建立时,起始的包序号都被硬布线为零(或者另一 个值),而且不必经由链路进行传送。
在又一个实施例中,作为窗口方法的替代方式,针对新PSN是 否刚好比前一 PSN大(或者小或其他定义值)l (或者另一个所定义数 值)做出检查。这也会检测到丢弃的帧。
上面描述的是一种用于在假定没有重复包的链路上的包排序的 简单但可靠的机制。这些链路包括STP和ISC链路,而且可能包括其 他链路和/或其他协议。提供了利用SONET或IP (或其他)封装对在 长距离上延伸的ISC或STP链路(或其他链路)中的不一致帧的检测 和防止。这个方法依赖于链路和/或节点的固有恢复能力,而不会向结 构添加恢复机制、另外的緩冲和控制。有利的是,这个方法避免了链 路上的重传尝试。因为链路协议不会遇到延伸距离上的任何流量控制 问题,所以这种方法允许在传统的光纤基础设施上把数据有效地传送 几百或几千千米。
本发明的一个或多个方面可以被包括在一种具有例如计算机可 用介质的制品(例如, 一个或多个计算机程序产品)中。在此,该介 质具有例如计算机可读程序代码装置或逻辑(例如,指令、代码、命 令等)以提供本发明的能力和使之便于实现。这种制品可以被包括作 为计算机系统的一部分或单独地出售。
图7描述了包括本发明的一个或多个方面的一种制品或计算机程 序产品的一个例子。计算机程序产品700包括例如一个或多个计算机 可用介质702,以在其上存储计算机可读程序代码装置或逻辑704,从 而提供本发明的一个或多个方面和使之便于实现。该介质可以是电、 磁、光学、电磁、红外或半导体系统(或装置或设备)或传播介质。 计算机可读介质的例子包括半导体或固态存储器、磁带、可移除计算 机盘、随机存取存储器(RAM)、只读存储器(ROM)、刚性磁盘 以及光盘。光盘的例子包括紧致盘-只读存储器(CD-ROM)、紧致 盘 - 读/写(CD-R/W)和DVD。
由一个或多个计算机可读程序代码装置或逻辑定义的程序指令 序列或者一个或多个相互关联的模块的逻辑组件,指导本发明的一个 或多个方面的性能。
虽然上面描述了各种实施例,但是这些实施例仅仅是例子。在不
背离本发明的精神的情况下可以做出许多改变、添加或删除。例如,
节点可以是不同于服务器和/或不同于IB1V^服务器的。另外,链路可 以是不同于ISC/STP链路的,而且网络结构可以是不同于SONET或 IP的。另外,接口可以是不同于波分复用器的,并且封装/解封装协议 可以是不同于SONET/IP的。可以存在另外的节点、接口、互连和/ 或结构。节点和通信网络不必是GDPS的一部分。它们可以是另一个 系统的一部分或者也可以不是。在不背离本发明的精神的情况下可以 做出许多其他改变、添加、删除。
更进一步,适合于存储和/或执行程序代码的数据处理系统是可 用的,该数据处理系统包括直接地或通过系统总线间接地耦合到存储 器元件的至少一个处理器。存储器元件包括例如在程序代码的实际执 行期间所使用的本地存储器、大容量存储设备以及高速緩沖存储器, 所述高速缓冲存储器用于提供至少一部分程序代码的暂时存储以便降 低在执行期间必须从大容量存储设备中取得代码的次数。
输入/输出或I/O设备(包括但不局限于键盘、显示器、指示器等) 可直接耦合到系统,或者通过插入其间的1/0控制器而耦合到系统。 网络适配器也可以耦合到系统,以允许数据处理系统与其他数据处理 系统或远程打印机或存储设备通过插入其间的专用或公共网络相耦 合。调制解调器、电缆调制解调器以及以太网卡仅仅是几种可用类型 的网络适配器。
本发明的一个或多个方面的能力可以以软件、固件、硬件或它们 的某些组合来实现。提供了可由机器读取的至少一个程序存储设备, 所述程序存储设备包含可由机器执行以执行本发明的能力的至少一个 指令程序。
此处描述的流程图仅仅是例子。在不背离本发明的精神的情况 下,存在对在此描述的这些示意图或步骤(或操作)的许多变化。例 如,可以以不同的顺序来执行所述步骤,或者可以添加、删除或修改 某些步骤。所有这些变体都被认为是所请求保护的发明的一部分。
虽然此处已经描绘并且详细地描述了优选实施例,但是,对相关
领域的技术人员来说显而易见的是,在不背离本发明的精神的情况下 可做出各种修改、添加、替换等,因此,它们被认为是在所附权利要 求中所定义的本发明的范围之内。
权利要求
1.一种检测通信网络中的不一致数据的方法,所述方法包括由通信网络的接口获得从通信网络的网络结构中输出的数据;以及由该接口检测数据是不一致数据,其中,由于不一致数据的恢复不由检测不一致数据的接口来执行,所以不一致数据的检测和不一致数据的恢复是独立的。
2. 根据权利要求1的方法,其中,由通信网络的耦合到所述接 口的节点来执行所述恢复。
3. 根据权利要求1的方法,其中,不一致数据包括重复数据和 无序数据中的至少一种。
4. 根据权利要求1的方法,其中,所述检测步骤包括使用序号 来确定数据是不 一致数据。
5. 根据权利要求4的方法,进一步包含把序号包括在数据中, 所述包括步骤在一个用于封装要由网络结构传送的数据的过程中执 行,其中,从网络结构中输出的数据包括序号。
6. 根据权利要求5的方法,其中,所述检测步骤包含在解封 装过程中从数据中去除序号,并且检查该序号以确定它是否有效,其 中无效序号指示不一致数据。
7. 根据权利要求4的方法,其中,所述检测步骤包括确定序 号是否在有效数据窗口中,其中无效数据窗口中的序号指示与该序号 有关的数据是不一致数据。
8. 根据权利要求7的方法,进一步包括初始定义有效数据窗 口,其中,初始定义步骤包括指示在定义有效数据窗口的过程中要使 用的初始序号,该初始序号响应于用于传送数据的通信网络的一个或 多个互连的初始化或重新初始化而提供。
9. 根据权利要求8的方法,其中,所述指示步骤包括 从网络的一端向网络的另一端发送初始序号;以及由网络的另 一端确认初始序号的接收。
10. 根据权利要求7的方法,进一步包括初始定义有效数据窗 口,其中,初始定义步骤包括指示在定义有效数据窗口的过程中要使 用的实例号,该实例号响应于用于传送数据的通信网络的一个或多个 互连的初始化或重新初始化而提供。
11. 根据权利要求10的方法,其中,所述指示步骤包括从网络的 一端向网络的另一端发送实例号。
12. —种检测通信网络中的不一致数据的系统,所述系统包括 通信网络的接口,用以获得从通信网络的网络结构所输出的数据,该接口用于检测数据是不一致数据,其中,由于不是由检测不一 致数据的接口来执行不一致数据的恢复,所以不一致数据的检测与不 一致数据的恢复是独立的。
13. 根据权利要求12的系统,其中,接口使用序号来确定数据 是不一致数据。
14. 根据权利要求13的系统,其中,接口确定序号是否在有效 数据窗口中,其中无效数据窗口中的序号指示与该序号有关的数据是 不一致数据。
15. 根据权利要求14的系统,进一步包括用于初始定义有效 数据窗口的组件,其中,初始定义处理包括指示在定义有效数据窗口 的过程中要使用的初始序号,该初始序号响应于用于传送数据的通信 网络的一个或多个互连的初始化或重新初始化而提供。
16. 根据权利要求14的系统,进一步包括用于初始定义有效 数据窗口的组件,其中,初始定义处理包括指示在定义有效数据窗口 的过程中要使用的实例号,该实例号响应于用于传送数据的通信网络 的一个或多个互连的初始化或重新初始化而提供。
全文摘要
检测通信网络中的不一致数据。所述检测由与发生恢复之处相分离的网络组件(例如,接口)来执行。检测使用包序号,并且当接收到包时对包序号进行检查。对包序号进行初始化以定义包序号的有效窗口。
文档编号H04L29/06GK101098212SQ20071009702
公开日2008年1月2日 申请日期2007年4月17日 优先权日2006年6月26日
发明者卡斯莫·M·德库萨蒂斯, 托马斯·A.·格里格 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1