用于组合分组的方法、装置、系统和产品的制作方法

文档序号:7609472阅读:126来源:国知局
专利名称:用于组合分组的方法、装置、系统和产品的制作方法
技术领域
本发明涉及用于组合分组的方法、装置、系统和产品。
背景技术
网络是在多个设备之间通信的系统。在网络中,通信协议或网络协议是一组用于特定通信类型的规范。不同的协议可描述单个通信的不同方面。总之,描述单个通信不同方面的不同协议可以形成一个协议栈。
可以使用各种协议栈结构来实现计算机网络,其中一个协议栈是计算机网络协议套件的特定软件实现。协议栈具有多个协议模块。可将协议模块称为协议栈内的协议层。
例如,协议栈可以包括在因特网协议(IP)层上运行的传输控制协议(TCP)层,其中IP层则在以太网层上运行。操作系统可具有协议栈各层之间的软件接口。例如,Microsoft Windows*操作系统就具有网络驱动器接口规范(NDIS)接口。NDIS接口可以为诸如网络接口卡(NIC)的设备定义多个应用编程接口(API)。NDISAPI可用于集成协议驱动器和设备驱动器。其他操作系统可以具有用于协议栈各层的其他软件接口。


现在参考附图,其中类似的编号通篇代表相应的部分,在附图中图1示出了在其中实现特定实施例的计算环境;图2示出了如何在图1所示的计算环境中对分组进行分类;图3根据特定实施例示出了参考对图1和图2的描述而用于组合分组的操作;图4根据特定实施例示出了一个典型的分组组合;图5示出了在特定实施例中实现的操作;
图6示出了在其中可以实现描述的特定实施例的计算机体系结构。
具体实施例方式
在随后的描述中,可以参考组成本说明并示出若干实施例的附图。应该理解也可利用其他实施例,并且可以做出结构上和操作上的变化。
图1示出了在其中可以实现特定实施例的计算环境100。硬件设备102耦合至主机104。虽然在计算环境100中示出的硬件设备102在主机104外,但是在可选实施例中硬件设备102可以位于主机104内。硬件设备102可以包括能够通过发送和接收分组与主机104接口的任何硬件设备,诸如网络适配器、I/O控制器、存储设备、调制解调器等等。虽然示出了单个硬件设备102是与主机104耦合的,但是在特定的可选实施例中,可由多个硬件设备与主机104耦合。主机104可以是计算平台,诸如个人计算机、工作站、服务器、大型机、手持计算机、掌上计算机、电话设备、网络设备和刀片式(blade)计算机等等。
主机104可以包括一个或多个协议层106a...106n、操作系统接口108和设备驱动器110。主机104可以包括诸如处理器、存储器和操作系统的附加组件(未示出)。
在某些实施例中,协议层106a...106n可以包括任何协议层,诸如互联网分组交换/顺序分组交换(IPX/SPX*)、NetBios扩展用户接口(NetBEUI*)、互联网协议版本4(IPv4)等等。IPX/SPX是在网络客户机、应用程序和网络外围设备之间交换信息的局域网通信协议。NetBEUI是由各种网络操作系统使用的NetBIOS协议的增强版。IPv4在其上可以运行诸如传输控制协议(TCP)的因特网协议。协议层106a...106n中还可包括诸如互联网协议版本6(Ipv6)的附加协议层。
在某些实施例中,操作系统接口108可以包括NDIS 6接口或其他接口。操作系统接口108可应用接口带有设备驱动器110的协议层106a...106n。在某些实施例中,操作系统接口108可包括能够处理分组组合的API。
设备驱动器110可以是控制硬件设备102的程序。设备驱动器110用作硬件设备102和操作系统108之间的翻译器。设备驱动器110接收来自操作系统接口108的命令并将这些接收到的命令翻译成用于硬件设备102的特定命令。在硬件设备102是网络适配器的某些实施例中,网络驱动器110可以是用于该网络适配器的驱动器。
在图1所示的实施例中,设备驱动器110允许数据和命令在操作系统接口108和硬件设备102之间的交换,其中操作系统108可允许为多个协议层106a...106n交换数据和命令。
图2示出了如何在图1所示的计算环境中对分组进行分类。诸如网络适配器或I/O控制器的硬件设备102接收多个分组200a...200m。在某些实施例中,分组200a...200m可以经由诸如(未示出的)局域网、广域网、互联网和内联网等等到达硬件设备102。
硬件设备102将分组200a...200m送至设备驱动器110。分组200a...200m的发送顺序可与硬件设备102的接收顺序相同。在分组顺序不重要的某些实施例中,分组200a...200m的发送顺序可与硬件设备102的接收顺序不同。然而要在任何端对端通信(诸如,TCP连接)中保持分组顺序。此外,硬件设备102可以响应于在硬件设备102处接收到的分组而将该分组发送至设备驱动器110,或者在发送多个分组给设备驱动器110之前等待多个分组到达硬件设备102。
联系由硬件设备102发送的分组200a...200m,硬件设备102可指示能够处理分组200a...200m的协议层。例如,硬件设备102可以发送分组200a至设备驱动器110并指示该分组200a是能够被诸如协议层A 106a处理的IPX/SPX协议层。在可选实施例中,分组200a...200m可以包括关于能够处理该分组200a...200m的协议层的信息,并且硬件设备102在发送分组给设备驱动器110时不指示分组的协议层。
设备驱动器110接收来自硬件设备102的分组200a...200m并对应于协议层106a...106n而把这些分组分类成一个或多个分组束202a...202n。例如,分组束A 202a可以包括能够由协议层A 106a处理的分组204a...204r,分组束B202b可以包括能够由协议层B 106b处理的分组206a...206s,而分组束N 202n可以包括能够由协议层N 106n处理的分组208a...208t,其中分组204a...204r、206a...206s、208a...208t对应于由设备驱动器110接收的分组200a...200m。单个协议层能够处理包括在分组束内的所有分组。例如,包括在分组束A 202内的所有分组都可由协议层A 106a处理,包括在分组束B 202b内的所有分组都可由协议层B 106b处理,而包括在分组束N 202n内的所有分组都可由协议层N 106n处理。
设备驱动器110发送分组束202a...202n给操作系统接口108。操作系统接口108将分组束202a...202n转发给相应的协议层106a...106n用于处理。例如在某些实施例中,操作系统接口108可以发送分组束A 202a给协议层A 106a,发送分组束B 202b给协议层B 106b,而发送分组束N 202n给协议层N 106n。通过设备驱动器110和操作系统接口108来保持任何端对端通信(诸如,TCP连接)中的分组顺序。
例如在某些实施例中,若干分组200a...200m可由IPX/SPX、NetBEUI和IPv4协议层集中处理,随后设备驱动器110就将分组200a...200m分类成对应于IPX/SPX、NetBEUI和IPv4协议层的分组束。在某些实施例中,设备驱动器110可采用考虑处理分组等待时间延迟的各种策略以确定在分组束202a...202n内成束的分组数。
操作系统108可以转发在对应于IPX/SPX协议层并要被IPX/SPX协议层处理的分组束内的分组。另外,操作系统108转发在对应于NetBEUI协议层并要被NetBEUI协议层处理的分组束内的分组,并且操作系统108可以进一步转发在对应于要被IPv4协议层处理的IPv4协议层的分组束内的分组。
图2示出了设备驱动器110将进入分组分类成一个或多个分组束的特定实施例,其中一个分组束包括能够由相同协议处理的分组。设备驱动器110将分组束发送给诸如NDIS 6接口的操作系统接口108。操作系统接口108还可将分组束发送至相应的协议层用于进一步的处理。
图3根据特定实施例示出了参考对图1和图2的描述而用于组合分组200a...200m的操作。
控制在框300处开始,其中硬件设备102将分组200a...200m发送给设备驱动器110,并且为每个分组200a...200m对设备驱动器110指示对应于能够处理该分组的协议层106a...106n。
设备驱动器110(在框302处)接收分组200a...200m。设备驱动器110(在框304处)基于能够处理每个接收到的分组200a...200m的协议层将接收到的分组200a...200m分类成一个或多个分组束202a...202n,这样被分类至一个分组束的所有分组就能够由相同的协议层处理,而不同的分组束则由不同的协议层处理。
设备驱动器110(在框306处)将分组束202a...202n发送给操作系统接口108。操作系统接口108(在框308处)将分组束202a...202n转发给相应的协议层106a...106n用于处理。
图3示出了特定实施例,其中设备驱动器110接收到的分组200a...200m分类成一个或多个分组束202a...202n,而每个分组束都包括能够由相同的协议层处理的分组,而不同的分组束则包括可由不同的协议层处理。设备驱动器将分组束202a...202n发送给操作系统接口108,且操作系统接口108将分组束202a...202n转发给相应的协议层106a...106n用于处理。
图4根据特定实施例示出了一个典型的由设备驱动器110组合的分组。
设备驱动器110获取来自硬件设备102的输入400并将输出402送至操作系统接口108,在某些实施例中,输入400包括分组404、406、408、410、412、414、416、418、420和422,其中的每个分组都可由诸如IPX/SPX、NetBEUI或IPv4的一个协议层处理。例如,分组A 404可由协议IPX/SPX处理。设备驱动器110基于能够处理输入400中分组的协议可将输入400中的分组分类为三组。
例如在某些实施例中,设备驱动器110可确定分组404、408、416、420可由IPX/SPX协议层处理,分组406、412、414可由IPv4协议层处理而分组410、418、420可由NetBEUI协议层处理。设备驱动器110可将在输入400内接收到的分组分类成包括分组404、408、416、420的IPX/SPX分组束424,包括分组406、412、414的IPv4分组束426以及包括分组410、418、420的NetBEUI分组束428。设备驱动器110将包括分组束424、426和428的输出402发送给操作系统接口108。
图4根据在其中设备驱动器110把分组分类成多个分组束的典型实施例,其中每个分组束都包括能够由相同的协议层处理的分组,而不同的分组束则包括由不同的协议层处理的分组。设备驱动器110将分组束转发给操作系统接口108。
图5根据特定实施例示出了在计算环境100中实现的将分组组合的操作。在某些实施例中,这些操作也可在设备驱动器110中实现,而在其他实施例中,这些操作也可在硬件设备102中实现。
控制在第一单元接收多个分组的框500处开始,其中可以根据第一协议和第二协议处理所述多个分组。在某些实施例中,所述第一单元是设备驱动器110。在某些实施例中,所述第一单元是硬件设备102。
第一单元(在框502处)将多个分组分类成第一组和第二组,其中在第一组中的所有分组都能够根据第一协议进行处理,而在第二组中的所有分组都能够根据第二协议进行处理。
第一单元(在框504处)将第一组和第二组发送给第二单元。在第一单元是设备驱动器110的某些实施例中,第二单元可以包括操作系统接口108。在另一些实施例中,第一单元可以是硬件设备102而第二单元可以包括设备驱动器110。在此情况下,设备驱动器110无需对于操作系统接口108对进入的分组进行语法分析。在另外的实施例中,第一单元可以是硬件设备102而第二单元可以包括操作系统接口108。
某些实施例按照协议类型组合接收到的分组。分组的组合被发送至相应的协议层用于处理。若操作系统接口108支持用于发送和接收分组的多分组API,则这些实施例就可使用操作系统接口的特性。
这些实施例在任何给定的端对端通信(诸如,TCP连接)中保持分组顺序。因为分组被捆绑在一起,所以实施例对到达协议层API的分组生成的调用相当少。设备驱动器生成的分组束可被转发至协议层而无需发送独立分组。
某些实施例允许诸如服务器的系统可以交错的方式接收来自各个系统的不同种类的分组以利用操作系统接口108的多分组API,诸如NDIS 6。
描述的技术可以实现为方法、装置或涉及软件、固件、微码、硬件和/或它们组合的任何产品。在此使用的术语“产品”指程序指令、代码和/或以电路实现的逻辑(例如,集成电路芯片、可编程门阵列(PGA)、ASIC等等)和/或计算机可读介质(例如,诸如硬盘、磁盘、磁带的磁性存储介质)、光学存储设备(例如CDROM、DVD-ROM、光盘等等)、易失性和非易失性存储器设备(例如,电可擦除可编程只读存储器(EEPROM)、只读存储器(ROM)、可编程只读存储器(PROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、固件、可编程逻辑等等)。计算机可读介质内的代码可由诸如处理器的机器执行。在某些实施例中,在其中实现实施例的代码还可以通过传输介质或经由网络从文件服务器而得以访问。在这些情况下,在其中实现代码的产品就可包括诸如网络传输线、无线传输介质、通过空间传播的信号、无线电波、红外信号等等的传输介质。当然本领域普通技术人员应该认识到可以做出诸多修改而不背离本发明的范围,并且所述产品可以包括本领域内已知的任何信息承载介质。
图6示出了在其中可以实现某些实施例的计算机体系结构的框图。图6示出了主机系统104以及硬件设备102的某些元件的一个实施例。主机系统104和硬件102可以实现带有处理器602、存储器604(例如,易失性存储设备)和存储装置606的计算机体系结构600。在主机系统104和硬件设备102内并非能找出计算机体系结构600内的全部元件。存储装置606可以包括非易失性存储设备(诸如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、闪存、固件、可编程逻辑等等)、磁盘驱动、光盘驱动、磁带驱动等等。存储装置606可以包括内部存储设备、附加存储设备和/或网络可访问存储设备。可以通过本领域内任何已知的方式将存储装置606内的程序载入存储器604并由处理器602执行。体系结构还包括能够与网络通信的网卡608。该体系结构还包括至少一个输入设备610(诸如,键盘、触摸屏、手写笔、声控输入设备等等)以及至少一个输出设备612(诸如,显示设备、扬声器、打印机等等)。
在某些实施例中,诸如网络适配器的设备102可以包括在含有任何存储控制器(诸如,小型计算机系统接口(SCSI)、AT附加接口(ATA)、冗余阵列磁盘机(RAID)等等)以及管理对非易失性存储设备(诸如,磁盘驱动、磁带媒体、光盘等等)访问的控制器的计算机系统内。在可选实施例中,设备102可以包括在不含有存储控制器的系统内,诸如某些集线器和切换装置。
某些实施例可以在包括视频控制器的计算机系统内实现,所述视频控制器提交信息用以显示在与包括设备102(诸如,网络适配器)的计算机系统耦合的监视器上,其中所述计算机系统包括桌上型计算机、工作站、服务器、大型机、膝上型计算机、手持计算机等等。操作系统可由计算机系统执行,而且视频控制器可以通过与操作系统的交互呈现图形输出。可选地,可以在不含有视频控制器的系统(诸如,切换装置、路由器)内实现某些实施例。此外,在某些实施例中,设备可以包括在与计算机系统耦合的卡内或在计算机系统的主板上。图3和图5中的至少部分操作可以并行或顺序执行。在可选实施例中,可以不同的顺序执行某些操作或对其做出修改或移除。
此外,业已出于示意性的目的在分开的模块中描述了多个软件和硬件组件。可将这些组件集成入更少数量的组件或将其分成更多的组件。此外,由特定组件执行的某些操作可由其他的组件执行。在某些实施例中,网络适配器可以是主机系统中央处理单元的专门化部分。
在图1至图6中示出或指出的数据结构和组件被描述为具有特定的信息类型。在可选实施例中,数据结构和组件可以被不同地构造,并且可以比在附图中示出或指出的那些具有更多或不同的字段或不同的功能。
因此,是出于解释和描述的目的来呈现前述实施例的。并不希望将实施例完全地包括在或限制在此公开的确切形式。参考该教示就能够做出许多修改和变化。
*NetBEUI是国际商用机器(IBM)公司的商标。
*IPX和SPX是Novell有限公司的商标。
*Microsoft Windows是Microsoft公司的商标。
权利要求
1.一种方法,包括由第一单元接收多个分组,其中能够至少根据第一协议和第二协议处理所述多个分组;由所述第一单元将所述多个分组分类成第一组和第二组,其中能够根据第一协议处理所述第一组中的所有分组,并能够根据第二协议处理第二组中的所有分组;以及由所述第一单元将所述第一组和所述第二组发送给第二单元。
2.如权利要求1所述的方法,其特征在于,所述第二单元包括操作系统接口,所述方法还包括由所述操作系统接口将所述第一组转发至能够根据所述第一协议处理所述第一组的第一协议层;由所述操作系统接口将所述第二组转发至能够根据所述第二协议处理所述第二组的第二协议层。
3.如权利要求1所述的方法,其特征在于,所述第一单元包括对应于硬件设备的设备驱动器,且所述第二单元包括操作系统接口,所述方法还包括由所述硬件设备接收所述多个分组;以及由所述硬件设备将所述多个分组转发至所述设备驱动器;以及由所述硬件设备指示能够处理送至所述设备驱动器的所述多个分组的协议。
4.如权利要求1所述的方法,其特征在于,所述第一单元包括设备驱动器,其中分类还包括由所述设备驱动器从与所述多个分组的一个分组相关联的信息中判定是否能够根据所述第一协议处理这一分组;并且将这一分组与所述第一组相关联。
5.如权利要求1所述的方法,其特征在于,所述第一单元包括耦合至主机系统的硬件设备,而所述第二单元在所述主机系统内实现。
6.如权利要求1所述的方法,其特征在于,所述第二单元包括应用编程接口,用于处理对应于包括所述第一协议和所述第二协议的多个协议的发送和接收操作。
7.如权利要求1所述的方法,其特征在于,所述第二单元包括操作系统接口,其中所述操作系统接口能够将由所述操作系统接口接收的一个分组转发给能够处理这一分组的一个协议层。
8.如权利要求1所述的方法,其特征在于,所述第一协议包括因特网协议版本4而所述第二协议包括因特网协议版本6。
9.一种能够与接口通信的设备,包括处理单元;包括代码的程序逻辑,其中所述代码能够使得所述处理单元执行(i)接收多个分组,其中能够至少根据第一协议和第二协议处理所述多个分组;(ii)将所述多个分组分类成第一组和第二组,其中能够根据第一协议处理所述第一组中的所有分组,并能够根据第二协议处理第二组中的所有分组;以及(iii)将所述第一组和所述第二组发送给所述接口。
10.如权利要求9所述的设备,其特征在于,所述接口包括配置用于实现操作系统接口的代码,其中所述操作系统接口能够将所述第一组转发至能够根据所述第一协议处理所述第一组的第一协议层,并且所述操作系统接口还能够将所述第二组转发至能够根据所述第二协议处理所述第二组的第二协议层。
11.如权利要求9所述的设备,其特征在于,所述设备是硬件设备,其中所述接口包括对应于所述硬件设备的设备驱动器,其中所述设备驱动器能够与操作系统接口通信,且所述操作系统接口能够将所述第一组转发给能够根据所述第一协议处理所述第一组的第一协议层,并且所述操作系统接口能够将所述第二组转发给能够根据所述第二协议处理所述第二组的第二协议层。
12.如权利要求9所述的设备,其特征在于,所述设备是网络适配器,其中所述接口包括对应于所述网络适配器的设备驱动器,其中所述设备驱动器能够与操作系统接口通信,并且所述操作系统接口包括多协议应用编程接口。
13.如权利要求9所述的设备,其特征在于,所述设备是耦合至主机系统的网络控制器,而所述接口则在所述主机系统内实现。
14.如权利要求9所述的设备,其特征在于,所述接口包括应用编程接口,用于处理对应于包括所述第一协议和所述第二协议的多个协议的发送和接收操作。
15.如权利要求9所述的设备,其特征在于,所述接口包括操作系统接口,其中所述操作系统接口能够将由所述操作系统接口接收的一个分组转发给能够处理这一分组的一个协议层。
16.如权利要求9所述的设备,其特征在于,所述第一协议包括因特网协议版本4而所述第二协议包括因特网协议版本6。
17.一种系统,包括计算平台;耦合至所述计算平台的数据存储设备;管理对所述数据存储设备的输入/输出存取的数据存储控制器,其中所述数据存储设备耦合至所述计算平台;配置用于在所述计算平台中实现接口的代码;以及耦合至所述计算平台的设备,其中所述设备能够接收多个分组,并且能够至少根据第一协议和第二协议处理所述多个分组;所述设备还能将所述多个分组分类成第一组和第二组,其中能够根据第一协议处理所述第一组中的所有分组,并能够根据第二协议处理第二组中的所有分组;并且所述设备还能将所述第一组和所述第二组发送给所述接口。
18.如权利要求17所述的系统,其特征在于,所述设备包括网络适配器,其中所述接口包括操作系统接口,其中所述操作系统接口能够将所述第一组转发至能够根据所述第一协议处理所述第一组的第一协议层,并且所述操作系统接口还能够将所述第二组转发至能够根据所述第二协议处理所述第二组的第二协议层。
19.如权利要求17所述的系统,其特征在于,所述设备包括网络适配器,其中所述接口是对应于所述网络适配器的设备驱动器,其中所述设备驱动器能够与所述计算平台内的操作系统接口通信,并且所述操作系统接口能够将所述第一组转发至能够根据所述第一协议处理所述第一组的第一协议层,并且所述操作系统接口还能够将所述第二组转发至能够根据所述第二协议处理所述第二组的第二协议层。
20.一种与接口通信的产品,其中所述产品能够引起操作,所述操作包括接收多个分组,其中能够根据至少第一协议和第二协议处理所述多个分组;将所述多个分组分类成第一组和第二组,其中能够根据第一协议处理所述第一组中的所有分组,并能够根据第二协议处理第二组中的所有分组;以及将所述第一组和所述第二组发送给所述接口。
21.如权利要求20所述的产品,其特征在于,所述接口包括操作系统接口,所述操作还包括由所述操作系统接口将所述第一组转发至能够根据所述第一协议处理所述第一组的第一协议层;由所述操作系统接口将所述第二组转发至能够根据所述第二协议处理所述第二组的第二协议层。
22.如权利要求20所述的产品,其特征在于,所述产品包括对应于硬件设备的设备驱动器,且所述接口包括操作系统接口,所述操作还包括由所述硬件设备接收所述多个分组;以及由所述硬件设备将所述多个分组转发至所述设备驱动器;以及由所述硬件设备指示能够处理送至所述设备驱动器的所述多个分组的协议。
23.如权利要求20所述的产品,其特征在于,所述产品包括设备驱动器,其中分类还包括由所述设备驱动器从与所述多个分组的一个分组相关联的信息中判定是否能够根据所述第一协议处理这一分组;并且将这一分组与所述第一组相关联。
24.如权利要求20所述的产品,其特征在于,所述产品能够在耦合至主机系统的硬件设备内实现,其中所述接口在所述主机系统内实现。
25.如权利要求20所述的产品,其特征在于,所述接口包括应用编程接口,用于处理对应于包括所述第一协议和所述第二协议的多个协议的发送和接收操作。
26.如权利要求20所述的产品,其特征在于,所述接口包括操作系统接口,其中所述操作系统接口能够将由所述操作系统接口接收的一个分组转发给能够处理这一分组的一个协议层。
27.如权利要求20所述的产品,其特征在于,所述第一协议包括互联网协议版本4而所述第二协议包括互联网协议版本6。
28.如权利要求20所述的产品,其特征在于,所述产品是设备驱动器。
全文摘要
在某些实施例中,第一单元接收多个分组,其中能够至少根据第一协议和第二协议处理所述多个分组。第一单元将所述多个分组分类成第一组和第二组,其中能够根据第一协议处理所述第一组中的所有分组,并能够根据第二协议处理第二组中的所有分组。第一单元将所述第一组和所述第二组发送给第二单元。
文档编号H04L29/06GK1894924SQ200480037040
公开日2007年1月10日 申请日期2004年12月3日 优先权日2003年12月19日
发明者P·科纳 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1