用于应用的网络感知适配器

申请号 CN200980123613.1 申请日 2009-05-08 公开(公告)号 CN102067548B 公开(公告)日 2014-06-18
申请人 黑莓有限公司; 发明人 N·米斯特里; W·丁; 姚忠辉;
摘要 来自各种应用的数据业务流可由作为用于过滤的更大平台的一部分的网络 感知 适配器处理,该网络感知适配器将流传送给智能网络部件。与给定的数据流相关联的区别因子可以被确定,并且用作为该给定数据流选择QoS策略设置的 基础 。然后,可以将所选择的QoS策略设置以 信号 告知媒介 访问 控制层,以利用有效且最佳的(从技术和商业观点都是)的嵌入的下层有效媒介类型的QoS功能来执行该应用的通信。
权利要求

1.一种在数据流进行到媒介访问控制MAC层之前适配数据流的方法,所述MAC层已经被适配以接收QoS策略设置,所述方法包括:
接收包,其中所述包与数据流相关联;
确定与所述数据流相关联的区别因子,所述区别因子包括与所述数据流相关联的媒介类型的标识;
基于所述区别因子,为所述数据流选择QoS策略设置;以及
将所述QoS策略设置以信号告知与所述包相关联的所述MAC层,
其中,所述信号告知包括:
做一个所述包的克隆;
对所述克隆进行修改以形成修改后的克隆,所述修改后的克隆包含所选QoS策略设置的信号表示;并且
将所述克隆注入到所述MAC层中。
2.如权利要求1所述的方法,其中所述QoS策略设置包括服务质量设置。
3.如权利要求1所述的方法,其中所述QoS策略设置包括用户体验设置。
4.如权利要求1所述的方法,其中所述数据流是多个因特网协议IP包的流,并且确定所述区别因子包括检查所述多个IP包中的给定包的头部域。
5.如权利要求4所述的方法,其中所述头部域具有关于所述给定包的源地址的指示。
6.如权利要求4所述的方法,其中所述头部域具有关于所述给定包的目的地地址的指示。
7.如权利要求4所述的方法,其中所述头部域具有关于所述给定包的源端口的指示。
8.如权利要求4所述的方法,其中所述头部域具有关于所述给定包的目的地端口的指示。
9.如权利要求1所述的方法,其中所述区别因子包括与所述数据流相关联的应用的标识。
10.如权利要求9所述的方法,其中所述应用与优先级相关联,并且为所述数据流选择所述QoS策略设置包括,基于所述优先级和所述QoS策略设置之间的关联进行选择。
11.如权利要求9所述的方法,其中所述应用包括视频应用。
12.如权利要求9所述的方法,其中所述应用包括语音应用。
13.如权利要求9所述的方法,其中所述应用包括游戏应用。
14.如权利要求9所述的方法,其中所述应用包括协作应用。
15.如权利要求9所述的方法,其中所述应用包括即时消息应用。
16.如权利要求1所述的方法,其中所述区别因子包括与所述数据流相关联的订户的标识。
17.如权利要求1所述的方法,其中所述媒介类型包括基于IEEE802.3标准的有线连网技术。
18.如权利要求1所述的方法,其中所述媒介类型包括基于IEEE802.11标准的无线连网技术。
19.如权利要求1所述的方法,其中所述媒介类型包括基于IEEE802.16标准的有线连网技术。
20.如权利要求1所述的方法,其中所述媒介类型包括基于源自3GPP长期演进项目的标准的无线连网技术。
21.一种在数据流进行到媒介访问控制MAC层之前适配数据流的设备,所述MAC层已经被适配以接收QoS策略设置,所述设备包括:
用于接收包的装置,其中所述包与数据流相关;
用于确定与所述数据流相关联的区别因子的装置,所述区别因子包括与所述数据流相关联的媒介类型的标识;
用于基于所述区别因子,为所述数据流选择QoS策略设置的装置;以及用于将所述QoS策略设置以信号告知与所述包相关联的所述MAC层的装置;
其中,所述用于信号告知的装置还包括:
做一个所述包的克隆的装置;
对所述克隆进行修改以形成修改后的克隆的装置,所述修改后的克隆包含所选QoS策略设置的信号表示;以及
将所述克隆注入到所述MAC层中的装置。

说明书全文

用于应用的网络感知适配器

技术领域

[0001] 本申请一般涉及处理由应用产生的业务流,更具体地,涉及用于将流传送给智能网络部件的网络感知适配器。

背景技术

[0002] 在联网设备的应用层执行的应用传统上通过简单的媒介访问控制(MAC)层在该联网设备所连接到的网络上通信。此外,因为对于不同的连网协议(networking protocol),MAC层不同(即,不同的传输媒介),应用被开发时,要考虑到设备连接到的网络中使用的特定连网协议对应的MAC层的特性。
[0003] 与较新的连网协议相关的MAC层增加了允许应用指定由应用产生的特定数据业务流所需要的服务质量(QoS)的复杂性。简单的MAC层常常缺少允许应用为特定数据业务流指定所需的QoS的复杂性。因此,大多数的应用没有被提供,或没有被要求具有,使应用充分利用网络技术下层传输所必需的一定程度的智能。
[0004] 由于不具有一定程度的智能,这样的应用不能充分利用嵌入在一些新的连网技术(例如WiMAX)中的QoS功能的优势,也不能处理这类新的连网技术的一些独特的技术挑战。不幸的是,当在新的应用中建立利用新的连网技术的优势所必需的一定程度的智能时,为执行新的应用所设计的设备的复杂度增加了。因此,所增加的复杂度可能抬高设备的费用,并且可能对专用集成电路技术的物理限度造成困难。
发明内容
[0005] 数据业务流可以由作为用于过滤的更大平台的一部分的网络感知适配器处理,该网络感知适配器将流传送给智能网络部件。与给定的数据流相关联的区别因子(distinguishing factor)可以被确定,并且用作为该给定数据流选择QoS策略设置的基础。然后,将所选择的QoS策略设置以信号告知媒介访问控制层。
[0006] 依照本发明的一个方面,提供了一种在数据流进行到媒介访问控制(MAC)层之前适配(adapt)数据流的方法,MAC已经被适配以接收QoS策略设置。该方法包括:接收包(packet),其中该包与数据流相关;确定与数据流相关联的区别因子;基于该区别因子,为数据流选择QoS策略设置;以及将QoS策略设置以信号告知与该包相关联的MAC层。在本发明的其他方面,提供用于实现此方法的计算设备,以及提供用于使处理器适合于实现此方法的计算机可读介质。
[0007] 通过结合附图回顾以下对本发明的特定实施例的描述,本发明的其他方面和特征对于本领域技术人员将会容易明白。

附图说明

[0008] 现在参考附图,附图通过举例的方式示出了本发明的实施例,其中:
[0009] 图1示出了可以连接到数据通信网络的计算设备的部件的互相连接;
[0010] 图2示出了一种使用Windows管理工具(Windows ManagementInstrumentation)的通信的逻辑结构;
[0011] 图3示出了一种使用Windows过滤平台(Windows FilteringPlatform)的通信的逻辑结构;
[0012] 图4示出了依照本发明的一些方面,包含网络感知适配器、过滤器引擎和QoS管理器的Windows过滤平台。
[0013] 图5示出了依照本发明的一个方面,图4中的过滤器引擎的示例操作方法中的步骤。
[0014] 图6示出了依照本发明的一个方面,图4中的QoS管理器的示例操作方法中的步骤;以及
[0015] 图7示出了依照本发明的一个方面,图4中的网络感知适配器的示例操作方法中的步骤。

具体实施方式

[0016] 图1示出了可以以有线方式或无线方式连接到数据通信网络108的计算设备100的部件的互相连接。被示出的计算设备100的部件包括:微处理器116,和连接到微处理器116的存储设备120、随机存取存储器(RAM)118和网络接口卡(NIC)104。NIC 104允许计算设备100连接到数据通信网络108。
[0017] 微处理器116在存储的程序的控制下工作,代码被存储在存储设备120中。如图1中所描述的,在工作时,RAM 118存储包括操作系统程序或代码模136的程序,例如已知TM
的微软Windows 操作系统。诸如Windows的操作系统一般将RAM 118空间分为两部分,即用户空间140和受限访问空间,后者诸如是内核空间138或它的功能等价物。RAM 118进一步地存储通常以标号142标识的、一般驻留在用户空间140中的软件应用,和一般驻留在内核空间138中的驱动程序144。
[0018] 图2示出了使用Windows管理工具(WMI)的通信的逻辑结构,其中通信是在应用202和NIC 104之间进行。WMI是提供操作系统接口的已知的Windows驱动程序模型(Windows Driver Model)的扩展集,装置化的部件通过这些接口提供信息和通知。WMI是源自分布式管理任务组(DMTF)的基于Web的企业管理(WBEM)标准和公共信息模型(CIM)标准的一种微软的实现。
[0019] NIC 104需要选自图1的驱动程序144的驱动程序206。驱动程序206,包括MAC层,与内核空间中的网络驱动程序接口规范(NDIS)驱动程序208通信。NDIS驱动程序208实现适用于由微软和3Com公司共同开发的NIC的API。NDIS是逻辑链路控制(LLC),它形成了OSI数据链路层(7层中的第2层)的上子层(upper sublayer),并且充当OSI数据链路层和网络层(7层中的第3层)之间的接口。下子层(lower sublayer)是MAC设备驱动程序。NDIS是一个函数库,常被称为“封套(wrapper)”,其隐藏了下层的NIC 104的硬件的复杂性,并且充当层3网络协议驱动程序和硬件级MAC驱动程序的标准接口。
[0020] NDIS驱动程序208与也在内核空间中的WMI模块210通信。模块WMI 210与用户空间中的WMI API 212通信。WMI API 212与应用202通信。
[0021] 图3示出了使用Windows过滤平台的通信的逻辑结构,其中,该通信是在应用302和NIC 104之间进行。
[0022] 和图2示出的使用WMI的结构一样,如图3示出的使用WFP的结构包括与驱动程序206通信的NIC 104。驱动程序206又与NDIS驱动程序208通信。与图2的WMI情形不同,NDIS驱动程序208与Windows过滤平台(WFP)310通信。WFP 310跨内核空间138和用户空间140,并与用户空间140中的WFP API 312通信。WFP API312与应用302通信。
[0023] 微软Windows操作系统的VistaTM版本中包括一种WFP API。该WFP API允许应用绑到(tie into)Windows Vista和WindowServer 2008中新的网络堆栈的包处理和过滤流线中。WFP提供包含集成通信的特性。此外,WFP可被配置为以每一应用为基础来调用处理逻辑。
[0024] 当计算设备100连接到的网络是传输通信协议(TCP)和因特网协议(IP)网络时,网络堆栈440可被称为TCP/IP堆栈。
[0025] 根据图4,WFP 310可被实现为:过滤引擎、网络堆栈440、和一组调出(callout)模块。网络堆栈440可包括多个“垫片(shim)”。垫片将包的内部结构作为属性揭示出来。对不同的层的协议,存在不同的垫片。在工作时,过滤引擎将接收到的包中的数据与指定的一组规则相比较。默认认为WFP 310包含一组内置的垫片。此外,其他协议的垫片可利用WFP API 312向过滤引擎注册。这组内置的垫片包括:应用层执行(Application Layer Enforcement,ALE)垫片404;流垫片408;传输层模块(TLM)垫片410;以及网络层模块(NLM)垫片414。图4中示出的已经注册的垫片包括:传输驱动程序接口Winsock内核(TDI WSK)垫片406;转发层垫片412;以及NDIS层垫片416。
[0026] 提供基本过滤能的过滤引擎跨内核空间138和用户空间140两者。如图4所示出的那样,过滤引擎位于内核空间138中的部分被称为“过滤器引擎”402,过滤引擎位于用户空间140中的部分被称为“基础过滤引擎”418。
[0027] 过滤引擎将给定的包中的数据与过滤规则相比较,其中该包中的数据已经被垫片所揭示。基于数据与一个或多个规则之间的匹配,过滤引擎可以要么允许该给定的包通过,要么阻止该给定的包通过。如果另外的操作有必要,可通过使用调出模块来执行该另外的操作。以每一应用为基础来运用过滤规则。
[0028] 基础过滤引擎418是管理过滤引擎的模块。基础过滤引擎418接受过滤规则并强制执行特定于应用的安全模型。基础过滤引擎418还为WFP 310维护统计数据,并维护WFP310的状态日志。
[0029] 调出模块是由过滤驱动程序揭示的回调(callback)函数。过滤驱动程序被用于提供不同于默认过滤能力的过滤能力,其中在默认过滤能力中,要么阻止要么允许包通过。在过滤器规则的注册过程中,调出模块可被指定。当具有与过滤器规则相匹配的数据的包被接收到时,过滤器引擎402通过一组调出API 420来调用相关联的调出模块。该相关联的调出模块然后执行某个特定的过滤能力。
[0030] 调出模块--其可以在所有的层被注册--扩充了WFP 310的能力。每个调出模块有唯一的全局唯一标识符(GUID)。调出模块可被用于深度检查(Deep Inspection),也就是,执行对网络数据的复杂检查以确定哪些数据要被:阻止;允许;或传递给另一个过滤器。调出模块可被用于包修改(Packet Modification),其可以包括对作为流的一部分被接收的包的头部或净荷的修改,以及将修改过的包注回流中。调出模块的其他用途包括流修改(Stream Modification)和数据记录(Data Logging)。
[0031] 图4中示出的示例调出模块包括:反病毒调出模块422、家长控制(parental control)调出模块424、入侵检测系统(IDS)调出模块426、和网络地址转换(NAT)调出模块428。
[0032] 在用户空间140中,基础过滤引擎418与WFP API 312通信,WFP API 312又与诸如应用302、基于操作系统的防火墙450和其他的应用452(其可以是进一步的防火墙)等应用通信。WFP API 312还与QoS管理器432通信,来实现本发明的一些方面。
[0033] 总的来看,QoS管理器432配置网络感知适配器调出模块430来区分来自应用302、基于OS的防火墙450和其他应用452的流的优先次序。如本领域的普通技术人员将会清楚的,图4所示出的应用302、450、452只不过是例子,并且可能有更多或更少或不同的应用为计算设备100(图1)所需。
[0034] 在执行上述区分优先次序时,网络感知适配器调出模块430与驱动程序206中的MAC层(未示出)交互。此外,网络感知适配器调出模块430与应用302、450、452以及与策略交互。如本领域普通人员将会清楚的,各种关于处理来自应用302、450、452的流的策略可由计算设备100从中央目录接收。
[0035] 适配器调出模块430的作用是智能地利用信令以通过使用策略和/或服务特征实现端到端的QoS。网络感知适配器调出模块430能进一步:管理QoS和频谱效率的权衡(trade off);管理终端操作响应和功率保留的权衡;以及管理其他可被嵌入的网络智能,诸如基于位置的服务(LBS)和组播广播服务(MBS)。
[0036] 在操作中,过滤器引擎402被组织为一组过滤器层,每个层都有相关联的优先级。给定的流可能被阻止,即使有更高优先级的过滤器已经允许了该给定的流。过滤器的结构允许多个动作在同一个流上被执行。过滤器引擎402中的层被分为子层。在子层内,过滤器按权重顺序被评价(evaluate)。在第一次匹配(允许/阻止)时,评价停止。当流和过滤器之间发生匹配时,有关的调出模块被通知。如果被通知的调出返回继续,则下一个匹配过滤器被评价。特别地,流在每个子层被评价。
[0037] 在操作中,关于即将从应用302到来的流,QoS管理器432传输指令给过滤器引擎402来为网络感知适配器调出模块430初始化调出驱动程序。特别地,该指令可指定卸载(unload)函数。一旦接收到(图5的步骤502)初始化调出驱动程序的指令,过滤器引擎
402就可以创建设备对象,并注册该网络感知适配器调出模块430。
[0038] QoS管理器432的操作可参照图6进一步加以考虑。最初,QoS管理器432向过滤器引擎402打开会话(步骤602)。QoS管理器432然后指示过滤器引擎402给过滤器引擎402的结构增加子层(步骤604),并指示过滤器引擎402给刚增加的子层增加过滤器(步骤606)。
[0039] 响应于接收到步骤606中要增加过滤器的指令,过滤器引擎402可增加所要求的过滤器,并执行通知函数(图5的步骤504),其通常被称为“Notifyfn()”,来向网络感知适配器调出模块430表明增加了过滤器。
[0040] 当来自已经为其设立了过滤器的应用302的流的包到达网络堆栈440时,这些包由过滤器引擎402处理。
[0041] 特别地,过滤器引擎402可执行分类函数(图5的步骤506),其通常被称为“Classifyfn()”,来向网络感知适配器调出模块430表明在网络堆栈440中来自已经为其设立了过滤器的应用302的流的包的到来。
[0042] 图7示出了在网络感知适配器调出模块430处适配流的示例方法的步骤。
[0043] 特别地,网络感知适配器调出模块430最初接收(步骤702)流的包,并确定(步骤704)与该流相关联的区别因子。随后,网络感知适配器调出模块430基于该区别因子为数据流选择(步骤706)QoS策略设置。最后,网络感知适配器调出模块430修改流数据来将所选的QoS策略设置以信号告知(步骤708)驱动程序206中的MAC层(未示出)。
[0044] 在包级别,为了修改流数据来将所选的QoS策略设置以信号告知(步骤708)MAC层,网络感知适配器调出模块430可以为在步骤702中接收到的包做一个克隆。网络感知适配器调出模块430然后可以修改该克隆以形成一个修改过的克隆,该被修改过的克隆包含所选QoS策略的信号表示。网络感知适配器调出模块430然后可以用Classifyfn()将该克隆注入到网络堆栈440中。
[0045] 在这里采用术语“QoS策略设置”是为了比已知的术语“服务质量”包含更多涵义。术语“服务质量”已知是包括针对比特率、延迟、抖动、包错误率的设置。除了这些设置之外,术语“QoS策略设置”被用在这里来进一步包括用户优先级或用户组优先级,等等。
[0046] 区别因子可以是,例如,作为流的起源的应用302的标识、与流相关联的订户的标识、或流中数据的媒介类型的标识。
[0047] 当数据流是多个因特网协议(IP)包的流时,确定区别因子(步骤704)可包括检查这多个IP包当中的给定包的头部域。在这种情况下,区别因子可以是,例如,源IP地址、目的地IP地址、源端口、或目的地端口。
[0048] 当区别因子是应用302的标识时,QoS策略设置的选择(图7的步骤706)可以基于与应用302相关联的优先级。另外,应用302的标识可以与应用的类型相关联,并且QoS策略设置的选择(图7的步骤706)可以基于与应用302相关联的类型。示例的应用类型包括视频、语音、游戏、协作、和即时消息。
[0049] 区别因子可以是,例如,与作为流的起源的应用302相关联的订户的标识。
[0050] 可替换地,区别因子可以是,例如,网络接口卡104和数据通信网络108(参见图1)之间的链路的媒介类型的标识。媒介类型可被定义为,例如,由电气和电子工程师协会(IEEE)标准所定义的涉及IEEE802.3的有线以太网,诸如:10Mbit/s以太网;快速以太网;
G比特以太网;或10G比特以太网。
[0051] 另外,媒介类型还可以被定义为,例如,“WiFi”,指的是由诸如IEEE 802.11a、IEEE802.11b、IEEE 802.11g或IEEE 802.11n等电气和电子工程师协会(IEEE)标准所定义的无线网。
[0052] 此外,媒介类型可被定义为,例如,“WiMAX”(微波访问全球互通),指的是由IEEE802.16-2004标准和IEEE 802.16e-2004修订所定义的无线网。
[0053] 媒介类型也可以被定义为,例如,“长期演进(LTE)”。长期演进是第三代合作伙伴项目(3GPP,参见www.3gpp.org)中的一个项目的名称,用以完善通用移动通信系统(Universal MobileTelecommunications System)移动电话标准(该标准也由3GPP持有),来应对将来的需求。
[0054] 当被过滤器引擎402和网络感知适配器调出模块430处理的流终止时,过滤器引擎402执行流删除函数(图5的步骤508),通常被称为“Flowdeletefn()”,来向网络感知适配器调出模块430表明,流已经终止了。
[0055] 此外,QoS管理器432可删除(图6的步骤608)过滤器。
[0056] 响应于步骤608中过滤器的删除,过滤器引擎402可执行通知函数来向网络感知适配器调出模块430表明过滤器的删除。
[0057] 此外,QoS管理器432还可删除(图6的步骤610)子层,并关闭(步骤612)在步骤602中打开的会话。响应于会话的关闭,过滤器引擎402可卸载(图5的步骤510)调出驱动函数。
[0058] 在计算设备100工作时,用户可使用用户接口来选择要执行的应用。计算设备100可以是,例如,便携式(即,笔记本)计算机,而且所选的应用可以是视频传输应用。此外,网络接口卡104和数据通信网络108之间的连接可以是WiMAX连接。相应地,驱动程序206中的MAC层是WiMAX MAC层。已知WiMAX MAC层用于接受对QoS参数的指定。QoS管理器432配置过滤器引擎402中的过滤器来向网络感知适配器430发送来自视频传输应用的流中的包。此外,一旦确定流中的数据是视频,网络感知适配器430就选择200kbit/s的带宽,并修改流中的包来以信号告知WiMAX MAC层,该流应该接收200kbit/s的带宽。
[0059] 在WiMAX MAC层,流中被修改过的包被接收,而且上述信令被处理。根据该处理,WiMAX MAC层可通过数据通信网络108保留至视频流目的地的200kbit/s的带宽。WiMAX MAC层然后可通过数据通信网络108来安排视频流向该目的地的传输。
[0060] 在可替换情况中,计算设备100的用户可指定QoS策略参数。这些参数可以是详细的,并且可以是常见的QoS参数,诸如比特率、延迟、抖动和丢包率,其可以被直接转换为嵌入在下层媒介类型中的QoS。然而,并不是所有的媒介类型都支持所配置的所有或任意QoS参数。在这种情况下,网络感知适配器430可基于媒介类型进行映射。
[0061] 前述提供了一种适配数据流的方法,从而可以将所选的QoS策略设置以信号告知MAC层。然而,至今,还没有考虑如何处理当前网络条件不允许将QoS策略设置以信号告知的情况。在这种情况下,网络感知适配器430将尽最大努力来调度与QoS策略设置相关联的流中的业务。可替换地,尤其当QoS策略设置与全有或全无方式(all-or-nothing approach)相关联时,网络感知适配器430可以拒绝该流,并通知起源应用并随之通知用户。进一步可替换地,尤其当QoS策略设置与涉及“可接受降级(degradation is acceptable)”方式的QoS策略相关联时,网络感知适配器430可用降级后的QoS设置来调度流中的业务。对某些网络媒介类型,它们的QoS状态(例如,可用带宽)可以被监控并反馈给网络感知适配器430(通过QoS管理器432)。
[0062] 有利地,当按照本发明的一个方面执行时,网络感知适配器430可被看作在应用层和MAC之间斡旋,从而减少了对在应用层执行的应用的复杂性的需要。网络感知适配器430可被安排为能够在MAC层实现对QoS参数的指定。当正确使用时,指定的QoS参数可用来提高频谱效率,并方便对数据通信网络108中固有的复杂性的管理。
[0063] 有利地,应用可按照与网络感知适配器430交互而不是与为特定网络技术特别设计的MAC层交互的预期来开发。
[0064] 本领域的普通技术人员应该清楚,尽管本发明的各方面是在已知的Windows过滤平台(WFP)情形下给出的,但是WFP的使用对于本发明各方面的工作并不是本质的,并且仅仅充当本发明各方面可在其中实现的环境的一个示例。
[0065] 上述的本申请的实施例只是为了充当例子。对特定实施例的替换、修改和变化可由本领域技术人员不脱离本申请的范围来实现,该范围由这里所附的权利要求限定。
QQ群二维码
意见反馈