用于应用的网络分类制造技术

技术编号:15400255 阅读:99 留言:0更新日期:2017-05-24 08:47
一种操作系统实现网络流的类别。应用将其网络流指派给类别。操作系统进而按照流处于哪些类别中而调控流。随着条件改变,可以通过按照流已被指派给哪些类别调控所述流来使得网络资源可用或者被更充分地利用。可以通过限制较低优先级类别中的流而使得网络资源可能快速地或者抢先地对于较高优先级类别中的流可用。

Network classification for applications

An operating system that implements the class of network flows. The application assigns its network stream to the class. The operating system then controls the flow in terms of which classes the stream is in. As conditions change, network resources can be used or utilized more fully by controlling the flow according to which classes have been assigned to the stream. Network resources can be quickly or preempted available for flows in a higher priority class by restricting the flow in a lower priority class.

【技术实现步骤摘要】
【国外来华专利技术】
技术介绍
当计算设备上的多个应用共享该计算设备上或者该计算设备外部的相同的有限网络资源时,已经使用了各种技术来试图平衡那些应用的联网需求。计算机用户和应用常常偏好在消耗网络资源的应用之间的某种折中和优先排序。然而,在实践中,用于共享网络访问的先前技术通常没有最优地实现那些偏好和优先级。例如,设备的用户可能偏好在其设备上的IP话音(VoIP)通话具有低网络时延,并且在设备上的web浏览是敏捷和响应式的。用户也可能偏好诸如云同步和操作系统更新之类的后台大量网络传输以使得能够实现满意的前台性能并保持合理进度的方式产生其对设备的网络资源的消耗。除了通常无法满意地共享网络访问之外,先前的访问共享技术对于软件开发者进行访问或者实现而言通常并不方便。例如,虽然服务质量(QoS)设施可能是有用的,但是它们通常并不以统一的方式可用或者被实现。大多数QoS技术在应用级以下发生,并且因此可能无法被应用可靠地操纵。大多数QoS方法,例如区分服务,取决于两个终端之间的网络的行为和支持。这样的支持可能并不存在于所有网络路径上。关于便利性,网络共享行为也已经在应用内被实现,但是这常常要求具有很少或者不具有应用之间的直接协调的复杂网络编程。这不但对于不同应用实现其自身的网络共享逻辑而言是重复的,而且应用的不同资源共享行为可能会冲突。虽然存在诸如由操作系统实现以允许应用实现特定类型的网络消耗行为的LEDBAT(低额外延迟后台传输)之类的协议,但是利用这样的协议的编码可能增加开发应用的成本和开销,并且可能使得开发者不太可能使用这样的协议。另外,如LEDBAT的广泛部署的低优先级TCP(传输控制协议)机制具有缺点,并且通常不提供理想的用户体验(对于其他示例,参见InternetEngineeringTaskForceRequestforComments6297)。例如,LEDBAT协议仅限制TCP发送窗口而对于接收流没有影响,而大多数客户端侧的互联网流量是流入的。即便当如LEDBAT的机制在不要求复杂的开发者编码的情况下可用时,可能操作系统或者网络堆栈也不可能确定应用应当使用这样的机制。换言之,难以推断关于网络资源冲突的用户和应用意图,并且应用很少规定其网络优先级。设备的网络资源的共享也不是以在不易遭受诸如“迟到者”现象(例如,参见RequestForComments6817,第4.4节)之类的问题的情况下在竞争应用之间一致的方式实现的。下面讨论与设备网络资源的方便和有效共享有关的技术。
技术实现思路
以下
技术实现思路
被包括以仅用于引入下面在具体实施方式中讨论的一些概念。本
技术实现思路
不是全面性的,并且不打算界定所要求保护的主题的范围,所述范围由结尾处呈现的权利要求阐述。一种操作系统实现网络流的类别。应用将其网络流指派给类别。操作系统进而按照流处于哪些类别中而调控流。随着条件改变,可以通过按照流已被指派给哪些类别调控所述流来使得网络资源可用或者被更充分地利用。可以通过限制较低优先级类别中的流而使得网络资源可能快速地或者抢先地对于较高优先级类别中的流可用。下面将参考结合附图考虑的以下具体实施方式来解释附带特征中的许多特征。附图说明将从根据附图阅读的以下具体实施方式中更好地理解本说明书,在附图中,相同参考数字用来指定附随说明书中的相同部件。图1示出了具有实现网络堆栈的操作系统的计算设备。图2示出了使用应用编程接口(API)的应用的过程。图3示出了流分类模型的示例。图4示出了具有相应网络性能种类的示例流。图5示出了分类模型的另一示例。图6示出了流管理器的详细视图。图7示出了流管理器可以通过其调控流的示例过程。图8示出了流分类模型的另一示例。图9示出了用于共同流管理的实施例的过程。图10示出了计算设备的附加细节。具体实施方式下面讨论的实施例涉及允许应用将其网络流分类到网络堆栈或者操作系统,所述网络堆栈或者操作系统进而按照网络流的分类以系统范围的方式和谐地安排对于设备的网络资源的共享。讨论将从系统综述和对于应用可以如何选择系统将如何调控其网络行为的解释开始。接下来将描述网络流分类模型的示例和用于实现其的细节。图1示出了具有实现网络堆栈104的操作系统102的计算设备100。可以从任何已知的操作系统联网堆栈导出网络堆栈104,其中添加内容或者改变根据本说明书是清楚明白的。例如,可以使用包装器(wrapper)来修改或者增强TCP/IP网络堆栈。一般地,在任何网络协议堆栈的传输级处的实现方式将是方便的。在计算设备100上,各种各样的任意应用106中的任一个可以通过数据网络108而执行和通信。应用106的一些示例是web浏览器、后台下载器、在线游戏、实时话音或者视频通信程序、数据库客户端、媒体流传输应用等等。为了与远程设备109交换数据,应用106通过数据网络108通信,数据网络108可以是运送IP(互联网协议)流量或其变体的网络。在存在可视化层(例如,管理程序(hypervisor))并且应用在不同虚拟机上的访客操作系统上执行的情况下,网络通信对于计算设备100可以是完全或者部分本地的。操作系统102可以包括一个或者多个接口驱动器110(设备驱动器),其除了其他已知的功能之外,将分组传递到相应的网络接口112,并且从相应的网络接口112接收分组。可以假定,应用106在用户空间中执行,并且本文讨论的操作系统102和联网特征在内核空间中执行。然而,这并不作要求。内核模式代码或者用户模式代码可以将网络分类指派给由此控制的网络流,并且流管理器114可以在内核空间或者用户空间中执行。在一个实施例中,网络流管理可以使用与已知的TCP/IP网络堆栈交换分组的用户模式包装器来实现。流管理器114管理和调控用于应用106的网络流116。网络流116(此后被称为“流”)是对应于在计算设备100和远程设备109之间的相应网络连接(例如,IP五元组)的操作系统对象。典型地,每个流具有FIFO缓冲器以及由操作系统和流的应用用来在对流执行操作时标识流的描述符或者句柄。网络堆栈104可以提供代表流116实现传输协议的传输层模块(例如,TCP模块)。操作系统102提供应用编程接口(API)118,应用106使用该应用编程接口(API)118来执行与流相关的操作,诸如实例化流对象、设置流参数、发起与流的网络连接、关闭流、获得和设置流属性值(诸如要连接到的网络地址、要使用的远程和本地端口、要使用的协议、联网参数等等)。当如本文中描述的那样进行扩展或者修改时,WinsockAPI、Berkeley套接口API以及其他类似的API都适合用作API118。图2示出了一种使用API118向网络堆栈104通知要与特定流相关联的流类别或者种类的应用的过程。在步骤140,应用形成或者获取流。流可以或者可以不具有网络连接。在应用执行代码中,流可以被称为描述符、句柄、对象等等。应用可以从另一应用或者进程获取流,或者可以发起流作为新的对象。在后者的情况下,流的各种参数或者属性可以由应用在使用流来形成网络连接之前设置。如上指出的,这样的参数例如可以是远程网络地址、本地网络地址(当多个网络接口112在计算设备100100上可用时)、本地和远程端口、协议设置等等。在步骤142,应用使用API118来将流类别或者本文档来自技高网
...

【技术保护点】
一种由包括存储装置、处理硬件、网络接口和存储在所述存储装置中的操作系统的计算设备执行的方法,所述方法在操作系统由处理硬件执行时被执行,所述方法包括:由处理硬件执行操作系统的网络模块,所述网络模块实现网络流分类模型,所述网络流分类模型包括由网络模块实现且对应于相应的不同带宽和时延属性的多个预定义网络流类别,每个网络流类别分别具有对应的网络性能规定;提供对于在计算设备上执行的任何用户模式代码可访问的应用编程接口(API),其中计算设备上的应用使用API来标识哪些网络流要与哪些网络流类别相关联;以及由网络模块反复接收关于计算设备上的流的时延和/或带宽性能的更新;以及由网络模块按照关于流的时延和/或带宽性能的更新并且按照与其相关联的相应网络流类别的网络性能规定来调控流的分组从计算设备的传输。

【技术特征摘要】
【国外来华专利技术】2014.09.25 US 14/4973151.一种由包括存储装置、处理硬件、网络接口和存储在所述存储装置中的操作系统的计算设备执行的方法,所述方法在操作系统由处理硬件执行时被执行,所述方法包括:由处理硬件执行操作系统的网络模块,所述网络模块实现网络流分类模型,所述网络流分类模型包括由网络模块实现且对应于相应的不同带宽和时延属性的多个预定义网络流类别,每个网络流类别分别具有对应的网络性能规定;提供对于在计算设备上执行的任何用户模式代码可访问的应用编程接口(API),其中计算设备上的应用使用API来标识哪些网络流要与哪些网络流类别相关联;以及由网络模块反复接收关于计算设备上的流的时延和/或带宽性能的更新;以及由网络模块按照关于流的时延和/或带宽性能的更新并且按照与其相关联的相应网络流类别的网络性能规定来调控流的分组从计算设备的传输。2.按照权利要求1所述的方法,其中应用具有第一流和第二流,并且所述过程进一步包括:由所述应用使用API将第一网络流类别指派给第一流并且将第二网络类别指派给第二流,其中所述网络模块按照第一网络流类别调整第一流的操作参数,并且所述网络模块按照第二网络流类别调整第二流的操作参数,所述操作参数由计算设备用于控制计算设备对分组的发送。3.按照权利要求1所述的方法,其中所述网络流类别每个都包括相应的带宽和时延规定,并且其中所述调控试图按照所述网络流类别中的哪些网络流类别已经被指派给流而满足流的带宽和时延性能规定。4.按照权利要求1所述的方法,其中所述调控包括确定流中的哪些流要节流以便为给定的流提供附加带宽,其中所述确定按照流与哪些网络流类别相关联来执行。5.一种计算设备,包括:处理硬件;网络接口;存储硬件,其存储用以使得处理硬件在计算设备可操作时提供流的信息;处理硬件在计算设备可操作时存储流类别的定义,每个流类别被定义为相对于其他流类别中的一个或者多个流类别具有不同的优先...

【专利技术属性】
技术研发人员:A塔拉特V巴特J辛内马基A阿勒森科I萨奇森JC富勒M萨尔曼M拉维M卡拉姆N贾因
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1