《用于分布式信息技术体系结构的通信传输协议.pdf》由会员分享,可在线阅读,更多相关《用于分布式信息技术体系结构的通信传输协议.pdf(26页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104205735A43申请公布日20141210CN104205735A21申请号201380017260322申请日2013032713/434,70520120329USH04L12/2820060171申请人国际商业机器公司地址美国纽约72发明人KG坎贝尔N戈什吕达人DG卡马什N穆克和吉V潘迪S安安沙兰N皮撒姆巴兰C门敦S班尼74专利代理机构中国国际贸易促进委员会专利商标事务所11038代理人李玲54发明名称用于分布式信息技术体系结构的通信传输协议57摘要在层二L2网络交换机中的通信协议包括,响应于源节点的服务请求,注册所述源节点用于分组通信服务。所述协议还包括把来自。
2、注册的源节点的一个或多个分组转发到一个或多个目的节点。所述协议还包括从一个或多个目的节点接收分组并且把每个接收到的分组转发到相应的注册的节点。30优先权数据85PCT国际申请进入国家阶段日2014092886PCT国际申请的申请数据PCT/IB2013/0524532013032787PCT国际申请的公布数据WO2013/144876EN2013100351INTCL权利要求书3页说明书15页附图5页按照条约第19条修改的权利要求书2页19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书15页附图5页按照条约第19条修改的权利要求书2页10申请公布号CN104205735ACN。
3、104205735A1/3页21一种用于在网络中的节点之间进行数据通信的网络交换系统,包括注册一个或多个源节点用于分组通信服务的服务注册模块;把一个或多个分组从注册的源节点转发到一个或多个目的节点的传送模块;以及从一个或多个目的节点路由一个或多个分组到注册的源节点的接收模块;其中协议分组在层二L2的域中转发并且所述网络交换系统是具有L2或层3L3能力的网络设备。2如权利要求1所述的系统,其中传送模块维护传送队列,用于使来自相应注册的源节点的分组排队用于传送;以及传送模块向用于传送的每个分组附加报头,其中报头包括通信协议信息。3如权利要求2所述的系统,其中接收模块维护接收队列,用于使来自对应于注。
4、册的源节点的目的节点的分组排队。4如权利要求3所述的系统,其中当没有来自目的节点的回应分组传送的确认时,传送模块在向相应的注册的源节点声明传送失败之前至少重传一次分组。5如权利要求3所述的系统,其中响应于来自源节点的服务注册请求,服务注册模块注册由源节点提供的用于从所述系统中接收传送信息的回调函数。6如权利要求5所述的系统,其中传送模块利用由注册的源节点提供的回调函数提供对应于注册的源节点的分组的传送状态。7如权利要求3所述的系统,还包括选择与目的节点相关联的接口端口的选择模块,其中传送模块利用所选的接口端口经通信链路把来自相应的源节点的分组传送到目的节点。8如权利要求7所述的系统,其中选择模。
5、块接收来自目的节点的分组并且使该分组在用于相应的源节点的接收队列中排队。9一种在网络中的节点之间进行数据通信的方法,包括在网络交换系统中,响应于源节点的服务请求,注册所述源节点用于分组通信服务;把一个或多个分组从注册的源节点转发到一个或多个目的节点;以及从一个或多个目的节点接收分组并且把每个接收到的分组转发给相应的注册的节点;其中分组在层2的域中转发并且网络交换系统能够是层二L2或层三L3的网络设备。10如权利要求9所述的方法,其中注册源节点用于分组通信服务包括通过以下维护事务跟踪数据结构在客户端列表中维护用于所述源节点的客户端条目;对于每个客户端条目,在目的节点列表中维护一个或多个目的条目,。
6、其中每个目的条目对应于用于所述源节点的目的节点;以及对于每个目的条目,维护对应于在所述源节点和对应于所述目的条目的目的节点之间的待发分组通信的分组事务列表。权利要求书CN104205735A2/3页311如权利要求10所述的方法,还包括维护传送队列,用于使来自相应的注册的源节点的分组排队用于传送;向用于传送的每个分组附加报头,其中报头包括通信协议信息;以及基于分组通信状态更新事务跟踪数据结构。12如权利要求11所述的方法,还包括维护接收队列,用于使来自相应于注册的源节点的目的节点的分组排队;以及基于接收到的分组通信状态更新事务跟踪数据结构。13如权利要求12所述的方法,还包括响应于来自源节点的。
7、服务注册请求,注册由源节点提供的用于从系统中接收传送状态信息的回调函数。14如权利要求12所述的方法,还包括利用由注册的源节点提供的回调函数提供对应于注册的源节点的分组的传送状态。15如权利要求11所述的方法,还包括选择与目的节点相关联的接口端口,用于利用所选的接口端口经通信链路把分组从相应的源节点传送到目的节点。16如权利要求15所述的方法,还包括从目的节点接收分组并且使所述分组在用于相应的源节点的接收队列中排队。17如权利要求16所述的方法,其中网络包括分布式架构协议系统;以及所述方法还包括为了低的分组处理开销及可靠性,为L2分组执行重传和确认。18一种用于在网络中的节点之间进行数据通信的。
8、计算机程序产品,包括具有计算机可读程序代码包含其中的计算机可用介质,其中当计算机可读程序代码在计算机上执行时,使得计算机执行的操作包括在网络交换系统中,响应于源节点的服务请求,注册所述源节点用于分组通信服务;把一个或多个分组从注册的源节点转发到一个或多个目的节点;以及从一个或多个目的节点接收分组并且把每个接收到的分组转发到相应的注册的节点;其中分组在层2L2的域中转发并且网络交换系统能够是L2或层三L3的网络设备。19如权利要求18所述的计算机程序产品,其中程序代码进一步使得计算机执行的操作还包括通过以下维护事务跟踪数据结构维护用于所述源节点的客户端列表中的客户端条目;对于每个客户端条目,在目。
9、的节点列表中维护一个或多个目的条目,其中每个目的条目对应于用于所述源节点的目的节点;对于每个目的条目,维护对应于在所述源节点与对应于所述目的条目的目的节点之间的待发分组通信的分组事务列表。维护传送队列,用于使来自相应的注册的源节点的分组排队用于传送;向用于传送的每个分组附加报头,其中报头包括通信协议信息;及权利要求书CN104205735A3/3页4基于分组通信状态更新事务跟踪数据结构。20如权利要求19所述的计算机程序产品,其中程序代码进一步使得计算机执行的操作还包括选择与目的节点相关联的接口端口,用于利用所选的接口端口经通信链路把来自相应的源节点的分组传送到目的节点;维护接收队列,用于使来。
10、自相应于注册的源节点的目的节点的分组排队;接收来自目的节点的分组并且使所述分组在用于相应的源节点的接收队列中排队;基于接收到的分组通信状态更新事务跟踪数据结构;注册由源节点提供的用于接收来自系统的传送状态信息的回调函数;以及利用由注册的源节点提供的回调函数提供对应于注册的源节点的传送信息。权利要求书CN104205735A1/15页5用于分布式信息技术体系结构的通信传输协议技术领域0001本发明一般而言涉及数据通信,特别地,涉及用于分布式信息系统的数据通信协议。背景技术0002网络交换设备被利用来连接网络中的计算系统。这种网络交换机通常工作在OSI模型的数据链路层层2,并且在网络中把分组从源节。
11、点设备转发到目的节点。发明内容0003本发明的实施例涉及一种用于分布式系统信息技术体系结构的通信传输协议和系统。一种实施例提供了在网络中的节点之间进行数据通信的方法。在一种实施例中,网络包括分布式架构协议系统。0004所述方法包括,在层2L2的网络交换系统中,响应于源节点的服务请求,注册源节点用于分组通信服务。所述方法还包括把一个或多个分组从注册的源节点转发到一个或多个目的节点。所述方法还包括从一个或多个目的节点接收分组并且把每个接收到的分组转发到相应的注册的节点。0005注册源节点用于分组通信服务包括通过在客户端列表中维护用于所述源节点的客户端条目来维护事务跟踪数据结构。对于每个客户端条目,。
12、在目的节点列表中维护一个或多个目的条目,其中每个目的条目对应于用于所述源节点的目的节点。对于每个目的条目,维护对应于在所述源节点与对应于所述目的条目的目的节点之间的待发分组通信的分组事务列表。0006所述方法还包括维护传送队列,用于使来自相应的注册的源节点的分组排队用于传送;向用于传送的每个分组附加报头,其中报头包括通信协议信息;以及基于分组通信状态更新事务跟踪数据结构。0007所述方法还包括维护接收队列,用于使来自相应于注册的源节点的目的节点的分组排队,以及基于接收到的分组通信状态更新事务跟踪数据结构。0008所述方法还包括响应于来自源节点的服务注册请求,注册由源节点提供的用于从系统中接收传。
13、送状态信息的回调函数。利用由注册的源节点提供的回调函数提供对应于注册的源节点的分组的传送状态。0009所述方法还包括选择与目的节点相关联的接口端口,用于利用所选的接口端口经通信链路把分组从相应的源节点传送到目的节点。所述方法还包括从目的节点接收分组并且使该分组在用于相应的源节点的接收队列中排队。0010本发明的这些和其它方面、特征及优点将通过参考附图和本文的详细描述得到理解,并且将利用尤其在所附权利要求中指出的各种元素和组合来实现。应当理解,如所要求的,前面的一般性描述和后面的附图简要说明以及本发明的详细描述是本发明的优选实施例的示例和解释,而不是本发明的限制。说明书CN104205735A2。
14、/15页6附图说明0011被认为是本发明的主题在本说明书结论部分的权利要求中特别指出并明确地要求保护。结合附图进行的以下具体描述,本方面的上述及其它目的、特征和优点是显然的,其中0012图1根据本发明的实施例,说明利用通信传输协议的信息技术系统10的基本组件的例子;0013图2是根据本发明的实施例展示如图1中所示的利用通信传输协议系统的计算机网络设备的例子的框图;0014图3根据本发明的实施例,示出了用于在DFP网络的节点之间进行数据通信的过程的流程图;0015图4根据本发明的实施例,示出了在包括多个功能层的通信栈中的通信协议体系结构;以及0016图5根据实施例发明示出了用于通信协议的执行和数。
15、据模型。具体实施方式0017通过参考以下本发明结合附图的详细描述可以更容易地理解本发明,其中附图构成本公开内容的一部分。应当理解,本发明不限于在本文中所描述和/或所示出的具体设备、方法、条件或参数,并且本文所使用的术语只是为了通过例子描述特定的实施例,并不是要限制所要求的发明。0018本发明的实施例提供了用于分布式系统信息技术体系结构的通信传输协议和系统。一种实施例提供了在网络中的节点之间进行数据通信的方法。在一种实施例中,网络包括分布式架构协议系统。0019所述方法包括,在层二L2网络交换系统中,响应于源节点的服务请求,注册源节点用于分组通信服务。所述方法还包括把一个或多个分组从注册的源节点。
16、转发到一个或多个目的节点。所述方法还包括从一个或多个目的节点接收分组并且把每个接收到的分组转发到相应的注册的节点。协议分组在L2的域中转发并且网络交换机系统是具有L2或层3L3能力的网络设备。0020注册源节点用于分组通信服务包括通过在客户端列表中维护用于所述源节点的客户端条目来维护事务跟踪数据结构。对于每个客户端条目,在目的节点列表中维护一个或多个目的条目,其中每个目的条目对应于用于所述源节点的目的节点。对于每个目的条目,维护对应于在所述源节点与对应于所述目的条目的目的节点之间的待发分组通信的分组事务列表。0021所述方法还包括维护传送队列,用于使来自相应的注册的源节点的分组排队用于传送;向。
17、用于传送的每个分组附加报头,其中报头包括通信协议信息;以及基于分组通信状态更新事务跟踪数据结构。0022所述方法还包括维护接收队列,用于使来自相应于注册的源节点的目的节点的分组排队,以及基于接收到的分组通信状态更新事务跟踪数据结构。0023所述方法还包括,响应于来自源节点的服务注册请求,注册由源节点提供的回调说明书CN104205735A3/15页7函数,当接收到用于这个源节点的分组时,所述回调函数被调用。利用由注册的源节点提供的回调函数,用于处理为所述源节点接收到的分组。0024所述方法还包括选择与目的节点相关联的接口端口,用于利用所选的接口端口经通信链路把分组从相应的源节点传送到目的节点。。
18、所述方法还包括从目的节点接收分组并且使该分组在用于相应的源节点的接收队列中排队。本文以下关于附图描述根据本发明的通信传输协议系统的示例性实施例。在一种实施例中,通信传输协议系统包括连接计算系统或诸如不同类型网络的网络段的计算机网络设备网络交换机。实施例包括在数据链路层OSI模型的层2处理并路由数据的多端口网络设备。0025参考附图,其中相同的标号贯穿几个附图都说明相同的元件,图1根据本发明的实施例说明利用通信传输协议的信息技术系统10的基本组件的例子。根据本发明的实施例,系统10包括计算机网络设备11及利用实现通信传输协议的计算机网络设备11的通信传输协议系统100图2的远程设备15和1720。
19、。0026远程设备15和1720中的每一个都具有应用并且可以具有本地数据库16。计算机网络设备11包括通信传输协议。在一种实施例中,服务器11执行用于计算机网络的软件。在一种实施例中,计算机网络设备11连接网络段13和13A。0027数据库12可被远程设备15和1720分别经连接14AF通过网络13进行访问。远程设备15和1720可通过网络13访问数据库12,网络13诸如是但不限于因特网、局域网LAN、广域网WAN、经利用调制解调器的电话线POTS、蓝牙、WIFI、WIMAX、蜂窝、光纤、卫星、射频RF、以太网、磁感应、同轴电缆、RS485等或其它类似的网络。计算机网络设备11还可连接到组织内。
20、的LAN。0028远程设备15和1720每一个都可以位于远程站点。远程设备15和1720包括但不限于PC、工作站、膝上电脑、手持计算机、袖珍PC、PDA、寻呼机、WAP设备、非WAP设备、蜂窝电话、掌上设备、打印设备等。当在远程设备15和1720中的一个设备处的用户想要从数据库12访问数据时,远程设备15和1720通过网络13通信以访问数据库12。0029从第三方计算机系统21和数据库22中获得的数据可以存储在数据库12,以便向远程设备15和1720上的用户提供以后的访问。也可以预期,对于某种类型的数据,远程设备15和1720可利用网络13直接访问第三方计算机系统21和数据库22。0030图2。
21、中所说明的是根据本发明的实施例展示如图1所示的利用通信传输协议系统100的计算机网络设备11的例子的框图。0031在一个例子中,如图2中所示出的,按照硬件体系结构,计算机网络设备11包括处理器41、诸如存储器42的计算机可读介质、经本地接口43通信耦合的一个或多个输入和/或输出I/O设备或外围设备。本地接口43可以是例如但不限于如本领域已知的一条或多条总线或其它有线或无线连接。本地接口43可以具有附加的元件以启用通信,附加的元件诸如控制器、缓冲区高速缓存存储器、驱动器、中继器及接收器,为简洁起见这些元件被省略。而且,本地接口43可以包括地址、控制、和/或数据连接以在上述组件之间启用适当的通信。。
22、0032处理器41是用于执行可存储在存储器42中的软件的硬件设备。处理器41几乎可以是任何客户定制的或商用的处理器、中央处理单元CPU、数字信号处理器DSP或在与计算机网络设备11相关联的几个处理器中的辅助处理器、以及基于半导体的微处理器以说明书CN104205735A4/15页8微芯片的形式或微处理器。0033存储器42可以包括易失性存储器元件例如,随机存取存储器RAM,诸如动态随机存取存储器DRAM、静态随机存取存储器SRAM等和非易失性存储器元件例如,只读存储器ROM、可擦除可编程只读存储器EPROM、电可擦除可编程只读存储器EEPROM、可编程只读存储器PROM、磁带、光盘只读存储器C。
23、DROM、磁盘、软磁盘、盒式磁带、卡型盒式磁带等的任意一种或组合。而且,存储器42可以结合电、磁、光和/或其它类型的存储介质。应当指出,存储器42可以具有分布式体系结构,其中各种组件位于彼此远离的位置,但是可被处理器41访问。0034存储器42中的软件可以包括一个或多个单独的程序,每个程序都包括用于实现逻辑功能的可执行指令的有序列表。在图2中说明的例子中,存储器42中的软件包括合适的操作系统O/S51和本发明的系统100。系统100包括以下进一步描述的功能组件和处理块。0035O/S51实质上控制其它计算机程序的执行,诸如包括通信传输协议系统100的通信栈,并且提供调度、I/O控制、文件与数据。
24、管理、内存管理、以及通信控制与相关的服务。但是,本发明的通信传输协议系统100可应用在其它操作系统上。0036通信栈包括多个层,包括诸如在层2之上的任何层的上层协议ULP99、诸如在层2之下的任何层的通信传输协议层100和更低的层98。0037通信传输协议系统100可以包括源程序、可执行程序目标代码、脚本或者包括要执行的一组计算机程序指令的任何其它实体。当通信传输协议系统100是源程序时,则该程序通常经编译器、汇编器、解释器等转换,以便与O/S51一起正确地工作,其中编译器、汇编器、解释器等可以包含或不包含在存储器42中。而且,通信传输协议系统100可以由以下写成A面向对象的编程语言,其具有数。
25、据和方法的类、或B过程编程语言,其具有例程、子例程、和/或函数。0038也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品ARTICLEOFMANUFACTURE。0039计算机程序指令也可以加载到计算机、其它可编程数据处理装置或者其它设备上,使得一系列操作步骤在计算机、其它可编程装置或者其它设备上执行,以产生一种计算机实现的过程,使得在所述计算机或者其它可编程装置上执行的指令提供用于实现在流程图和/或框图中的。
26、一个或多个方框中规定的功能/动作的过程。0040I/O设备可以包括输入设备,例如但不限于,鼠标44、键盘45、扫描仪未示出、麦克风未示出等。而且,I/O设备还可以包括输出设备,例如但不限于,打印机未示出、显示器46等。最后,I/O设备还可以包括与输入和输出进行通信的设备,例如但不限于,NIC或调制器/解调器47用于访问远程设备、其它文件、设备、系统或网络、RF或其它收发器未示出、电话接口未示出、桥接器未示出、路由器未示出等。0041如果计算机网络设备11是PC、工作站、智能设备等,则在存储器42中的软件还可以包括基本输入输出系统BIOS为简洁起见被省略。BIOS是在启动时初始化并测试硬件、启动。
27、O/S51并且支持硬件设备之间的数据传输的一组核心软件例程。BIOS存储在某种说明书CN104205735A5/15页9类型的只读存储器中,诸如ROM、PROM、EPROM、EEPROM等,使得当计算机网络设备11被激活时能够执行BIOS。0042当计算机网络设备11在工作中时,处理器41配置成执行在存储器42中存储的软件,以把数据传递到存储器42和从存储器42中传递数据,并且一般地根据软件控制计算机网络设备11的操作。系统100和O/S51被处理器41全部或部分地读取,可能在处理器41中缓冲,然后执行。0043如在图2中所示出的,当通信传输协议系统100用软件实现时,应当注意,通信传输协议系。
28、统100可以包含在任何计算机可读介质中用于被指令执行系统、装置或者设备使用或者与其结合使用,诸如基于计算机的系统、包含处理器的系统、或可以从指令执行系统、装置或设备中获取指令并且执行这些指令的其它系统。0044如本领域技术人员将理解的,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即完全的硬件实施方式、完全的软件实施方式包括固件、驻留软件、微代码等,或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,所述计算机可读介质中包含计算机可读。
29、的程序代码。0045在本文件的上下文中,“计算机可读介质”可以是任何可以存储、传递、传播或者传输用于由指令执行系统、装置或设备使用或者与其结合使用的程序的手段。计算机可读介质可以是例如但不限于电、磁、光、电磁、红外线、或半导体系统、装置、设备、传播介质、或可以包含或存储计算机程序用于由计算机相关的系统或方法使用或与其结合使用的其它物理设备或手段。0046计算机可读介质的更具体的例子非穷举的列表包括以下具有一个或多个导线的电连接电子、便携式计算机盘磁或光、RAM电子、ROM电子、EPROM、EEPROM或闪存电子、光纤光、便携式CDROM、CDR/W光。应注意的是,计算机可读介质甚至可以是纸张或。
30、其它合适的介质,其中程序在其上打印或打孔如在纸带、打孔卡中等,这是因为程序可通过例如对纸张或其它介质的光学扫描以电子方式捕获,然后加以编译、解释、或者如果需要以其他合适的方式进行处理,然后存储在计算机存储器中。0047计算机可读的信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式的任意一种,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,所述计算机可读介质可以传递、传播或者传输用于由指令执行系统、装置或者设备使用或者与其结合使用的程序。计算机。
31、可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光纤电缆、RF等,或者上述的任意合适的组合。0048在可替换的实施例中,其中通信传输协议系统100用硬件实现,通信传输协议系统100可以用以下技术中的任何一种或组合实现,这些技术中的每一种在本领域中都是众所周知的具有用于在数据信号上实现逻辑功能的逻辑门的离散逻辑电路、具有合适的组合逻辑门的专用集成电路ASIC、可编程门阵列PGA、现场可编程门阵列FPGA等。0049下面将参照根据本发明实施例的方法、装置系统和计算机程序产品的流程图说明书CN104205735A6/15页10和/或框图描述本发明的各方面。应当理解,流程图和。
32、/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。0050如所指出的,根据本发明的实施例,计算机网络设备11的实施例包括利用层2L2传输协议和机制在数据链路层OSI模型的层2处理和路由数据的多端口网络设备。系统100在设备11中的一种实现包括用于诸如分布式架构协议DFP系统的分布式系统体系结构的基于以太网的L2传输EL。
33、2T通信协议系统在一个例子中,系统10包括DFP系统。在一种实施例中,EL2T系统充当传输协议模块的逻辑替换,其中利用EL2T系统的系统节点可以与其它系统进行通信而不必担心实际的通信细节,诸如在传送中使用的分组结构。0051在包括计算机网络设备11的DFP系统中,连接到DFP系统的所有节点都利用EL2T系统,其提供包括传送失败检测和重传的通信服务。EL2T系统向上层协议例如,ULP99提供与其它节点通信的有效机制。此类ULP向EL2T系统注册以获得服务,并且请求如本文所述的EL2T系统处理的通信服务。0052图3根据本发明的实施例示出了用于在DFP网络中的节点之间进行数据通信的过程50的流程图。
34、。根据处理块51,在层二L2网络设备中,从源节点接收分组通信服务请求。0053根据处理块52,响应于该请求,注册所述源节点为用于分组通信服务的客户端节点由源节点提供的回调函数被注册用于接收来自系统的传送状态信息。在一种实施例中,根据处理块53,注册源节点用于分组通信服务还包括维护事务跟踪数据结构,其包括在客户端列表中用于所述源节点的客户端条目。对于每个客户端条目,在目的节点列表中有一个或多个目的条目,其中每个目的条目对应于用于所述源节点的目的节点。对于每个目的条目,有对应于在所述源节点与对应于所述目的条目的目的节点之间的待发分组通信的分组事务列表。0054根据处理块54,使用传送队列,用于使来。
35、自相应的注册的源节点即,客户端节点的分组排队用于传送。0055根据处理块55,对于分组传送,向用于传送的每个分组附加报头,其中报头包括通信协议信息基于分组通信状态更新事务跟踪数据结构。0056根据处理块56,选择与目的节点相关联的接口端口用于利用所选的接口端口经通信链路把分组从相应的源节点传送到目的节点。0057根据处理块57,经所选的接口把一个或多个分组从队列中传送到一个或多个目的节点。0058根据处理块58,在分组接收中,从一个或多个目的节点接收分组。使用接收队列,用于使来自相应于注册的源节点的目的节点的分组排队。基于接收到的分组通信状态更新事务跟踪数据结构。0059根据处理块59,从目的。
36、节点接收到的分组在用于相应的源节点的接收队列中排队。说明书CN104205735A107/15页110060根据处理块60,每个接收到的分组被转发到相应的注册的节点使用由注册的源节点提供的回调函数为对应于注册的源节点的分组提供传送信息。0061图4根据本发明的实施例示出了在包括多个功能层的通信栈中用于EL2T系统100的通信协议体系结构。图5根据实施例发明示出了用于EL2T系统100的执行和数据模型。EL2T系统包括两个主通信模块,一个用于数据传送TX层101并且另一个用于数据接收RX层102。每次ULP99向EL2T系统100注册服务时,EL2T系统100就创建客户端节点151。每个客户端节。
37、点151对应于向EL2T系统100注册服务的ULP99。0062每个客户端节点客户端节点151具有一个或多个与其相关联的CPU节点CPU节点152。CPU节点152指定一个目的节点用于与客户端节点151对应于注册的ULP进行通信。一个客户端节点151可能需要同时与系统10中的多个目的节点通信。因此,EL2T系统为每个目的节点创建CPU节点152。为了为每个CPU节点152跟踪传送TX和接收RX事务,EL2T系统分别利用TX事务列表TX事务列表152T和RX事务列表RX事务列表152R。0063在处理过程中,TX层101的TX线程进程解析所有CPU节点的所有TX事务列表,并且RX层102的RX线。
38、程处理所有CPU节点的所有RX事务列表。TX和RX线程代表注册的ULP检查分组传送的状态、超时、和按需重传。如果重传的数量超过阈值,则向在EL2T系统注册服务的相应的ULP报告传送失败。0064在一种实施例中,EL2T系统提供用于DFP系统的、具有高效率、低开销、低延迟的传输协议,并且作为在诸如刀片交换机应用的分布式系统体系结构中的可靠的层2通信传输协议。在一个例子中,EL2T协议提供用于DFP实现的传输协议,把分组当作字符缓冲区而无需用于通信的任何分组结构的知识。因此,根据本发明的实施例,EL2T系统充当用作在通信栈中与多个设备进行通信的传输工具的传统通信层的逻辑替代。EL2T系统掩盖了实际。
39、的通信如何从所述多个设备中发生的细节ACCOUNTING。0065执行模型0066需要EL2T服务的ULP即,客户端通过诸如调用注册模块120的EL2T_REGISTER函数向EL2T系统100的服务注册模块120注册以获得所述服务。客户端传递CLIENTID和用于该客户端的回调例程客户端节点在注册时被创建图5。在注册之后,客户端可以开始发送和接收EL2T分组。用NULL回调例程注册的客户端不能接收EL2T分组,因为回调例程是将负责处理那些接收到的分组的例程。0067如所指出的,在一种实施例中,EL2T系统的EL2T协议在通信操作中利用两个通信模块TX层101和RX层102。TX层101实现传。
40、送进程TX线程并且RX层102实现接收进程RX线程。在一个例子中,TX线程包括PTHREADEL2T_TX,并且RX线程包括PTHREADEL2T_RX。当系统启动时,所述进程被静态地创建。0068TX线程负责在通信链路上把消息例如,分组从ULP99即,客户端节点151传送到目的节点105、启动计时器以等待ACK确认消息并且如果没有及时收到ACK则重传该消息。在一个例子中,目的节点105包括图1中的系统15。RX线程负责从目的节点105接收消息并且继续把它转发到为了获得那个消息的各个客户端节点151。当RX线程接收到客户端节点151响应于转发消息的ACK时,RX线程取消所述的计时器并且利用唤醒。
41、WAKEUP消息例如,ST_MSGCMD_WAKEUP唤醒发起分组传送的相应的线程。该唤醒消息说明书CN104205735A118/15页12指示消息通信操作是失败还是成功。0069在一个例子中,EL2T系统100基于优先级维护排序的注册的客户端151列表150,以及用于每个客户端151的CPU节点152列表。CPU节点列表作为用于客户端的CLIENTCPU数据结构的阵列维护。用于每个阵列条目的CPU相关的信息包括标识CPUID,这是指示它当前是否是有效条目的标志;RX事务队列RX队列106和TX事务队列TX队列107。CPUID和相应的关键字在由诸如交换机发现协议SDP的较高层协议管理的CP。
42、U数据库中维护。0070RX队列对应于RX线程,并且TX队列对应于TX线程。RX线程和TX线程始终准备好执行它们的功能,但不处于忙等待。RX线程和TX线程中的每一个都等待其各自的计数信号,其中计数信号每当消息排到其队列即,分别为RX队列和TX队列时递增并且相应地当消息从队列移出并处理后递减。0071根据本发明的路径选择层PSL109从目的节点接收分组。从PSL109接收的EL2T分组在相应的RX队列106中排队,其中该分组依次被RX线程处理。0072利用CLIENTID和CPUID确定用于要传送的分组的合适的TX队列和用于接收到的分组的合适的RX队列,其中CLIENTID和CPUID可以从用于。
43、数据传送TX的调用进程或用于数据接收RX的分组中得到。0073TX线程通过执行分组传送即,派发给合适的PSL应用编程接口API处理分组事务,并且按需重传。在一个例子中,在相应的ULP收到失败声明之前尝试三次重传。重传包括当传送时启动定时器,其中如果在时间限制内从目的节点接收到ACK,则RX线程取消该定时器。否则的话,定时器到期再次通过TX线程触发重传。0074对于给定的CLIENTID,CPUID对,只能有一个分组传送待完成。因此,对于下一个分组的传送,当已传送的分组还没有确认或声明为失败时,即使下一个分组可能已被排在TX队列中,也不进行尝试。0075分组传送0076通过为所有客户端节点151。
44、检查队列107寻找需要被传送的事务,TX线程选择下一步需要处理哪个分组事务。在把所选的事务继续进行传送之前,TX线程等待诸如TX_CNT_SEMAPHORE的计数信号。当计数信号指示TX线程可以继续进行时,TX线程利用存储在MINCLIENTID中的CLIENTID使所选的事务以被处理,其中MINCLIENTID按优先级的顺序维护第一CLIENTID。0077对于分组事务,TX线程向来自客户端节点151的到来分组110附加EL2T报头HDR,其中EL2T报头包括用于EL2T的协议类型长度值TYPELENGTHVALUETLV,以及跟踪CLIENTID、事务号等的进一步的信息。结果产生的EL2T。
45、分组110E包括所述报头和来自到来分组的有效载荷信息。在数据通信协议中,可选的信息可被编码为协议中的TLV元素。0078TX线程利用诸如PSL_TXAPI的PSL109的应用接口传送EL2T分组110E、启动所述定时器、把事务状态改变成IN_PROGRESS并且维护计数信号。如果事务处于COMPLETED状态,则TX线程唤醒由客户端151传递的注册用于分组110E的分组传送的调用线程即,回调例程。然后,TX线程从用于客户端节点151的事务列表152T中删除该事务并且从队列中移除传送的分组。说明书CN104205735A129/15页130079在定时器到期时,如果所述计数信号没有超过诸如MAX。
46、_RETRY的阈值,则当定时器启动时传递的定时器回调例程触发下一个条目并且如果需要则重启定时器。0080一旦所选的事务被处理,TX线程就为了下一个事务按优先级顺序前进到下一个客户端节点151如果MINCLIENTID没改变或者前进到改变的MINCLIENTID。以此类推。0081分组接收0082PSL层109使用分组信息例如,来自接收到的分组111以使分组经回调例程排队到合适的RX队列106中,其中回调例程是当为获得EL2T服务向EL2T系统100注册时由客户端节点151提供的。0083RX线程检查RX队列106并且一个接一个地处理它们中的RX事务。RX线程通过从RX队列106中选择分组,遵循。
47、与TX线程中类似的步骤来确定首先处理哪个客户端节点151。如果所选的分组是ACK请求,则RX线程取消由TX线程设置的相应的传送计时器,并且把相应的TX事务标记成COMPLETED。如果所选的分组不是ACK请求,则RX线程使相应的ACK分组排在用于相关联客户端节点151的TX队列107中并且调用由相关联的客户端节点151提供的回调例程这个回调例程是当客户端为获得EL2T服务注册时传递的。0084分组分配0085EL2T系统100还包括提供存储器管理API用于存储器分配函数例如,EL2T_ALLOC和重新分配DEALLOCATION函数例如,EL2T_FREE的存储器管理模块130。因此,EL2T。
48、系统管理它的缓冲区存储池131。分配函数用于ULP来要求为分组传送分配缓冲区。分配函数返回指向存储器块131B的缓冲区指针,其中ULP可以放置它的有效载荷。分配函数在缓冲区的前面为EL2T分组报头保留空间,其中只要ULP调用重新分配函数,ULP就不需要管理分配的空间。在一个例子中,EL2T系统100预分配多个要管理的存储器块。ULP使用重新分配函数释放分配的缓冲区。0086与ULP通信0087ULP为分组传送即,TX层经EL2TAPI层并且当接收到用于ULP的分组110时经回调函数即,RX层与EL2T系统通信。传送的完成由发送到调用线程的消息来指示。0088ULP还经EL2T_REGISTER。
49、和EL2T_UNREGISTER函数调用与EL2T系统100进行通信,其中这两个函数提供上述用于图4中服务注册模块的注册和取消注册服务。0089ULP还使用由EL2T提供的EL2T_PKT_MALLOC和EL2T_PKT_FREEAPI,其提供上述与图4中的存储器管理模块相关的存储器分配和重新分配函数。0090与PSL通信0091EL2T系统100通过注册用于PSL层服务与PSL层109进行通信。EL2T系统100分别经由PSL层109提供的PSL_REGISTER和PSL_UNREGISTERAPI调用向PSL109注册和取消注册。一般地,PSL层109帮助EL2T系统100确定当发出分组时。
50、,使用多个接口140中的哪一个,以及当分组到达时,向哪个客户端节点151发送分组。因此,ULP不需要关心使用哪个接口。所述接口的例子包括管理端口接口和数据端口接口数据端口具有它自己的驱动程序并且管理端口具有它自己的驱动程序。取决于目的地址,PSL层109确定采用哪条路径例如,管理端口接口还是数据端口接口。0092对于向PSL层109注册而言,当向PSL层注册时,EL2T系统100传递它的协议类型,并且传递回调函数用于其自己接收消息。对于传送而言,EL2T系统100使用诸如PSL_说明书CN104205735A1310/15页14TX的函数。对于接收而言,EL2T系统100经由注册提供的回调函数。