CN106716368B - 用于应用的网络分类 - Google Patents
用于应用的网络分类 Download PDFInfo
- Publication number
- CN106716368B CN106716368B CN201580051789.6A CN201580051789A CN106716368B CN 106716368 B CN106716368 B CN 106716368B CN 201580051789 A CN201580051789 A CN 201580051789A CN 106716368 B CN106716368 B CN 106716368B
- Authority
- CN
- China
- Prior art keywords
- network
- flow
- flows
- class
- classes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2475—Traffic characterised by specific attributes, e.g. priority or QoS for supporting traffic characterised by the type of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/762—Media network packet handling at the source
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种操作系统实现网络流的类别。应用将其网络流指派给类别。操作系统进而按照流处于哪些类别中而调控流。随着条件改变,可以通过按照流已被指派给哪些类别调控所述流来使得网络资源可用或者被更充分地利用。可以通过限制较低优先级类别中的流而使得网络资源可能快速地或者抢先地对于较高优先级类别中的流可用。
Description
背景技术
当计算设备上的多个应用共享该计算设备上或者该计算设备外部的相同的有限网络资源时,已经使用了各种技术来试图平衡那些应用的联网需求。计算机用户和应用常常偏好在消耗网络资源的应用之间的某种折中和优先排序。然而,在实践中,用于共享网络访问的先前技术通常没有最优地实现那些偏好和优先级。例如,设备的用户可能偏好在其设备上的IP话音(VoIP)通话具有低网络时延,并且在设备上的web浏览是敏捷和响应式的。用户也可能偏好诸如云同步和操作系统更新之类的后台大量网络传输以使得能够实现满意的前台性能并保持合理进度的方式产生其对设备的网络资源的消耗。
除了通常无法满意地共享网络访问之外,先前的访问共享技术对于软件开发者进行访问或者实现而言通常并不方便。例如,虽然服务质量(QoS)设施可能是有用的,但是它们通常并不以统一的方式可用或者被实现。大多数QoS技术在应用级以下发生,并且因此可能无法被应用可靠地操纵。大多数QoS方法,例如区分服务,取决于两个终端之间的网络的行为和支持。这样的支持可能并不存在于所有网络路径上。关于便利性,网络共享行为也已经在应用内被实现,但是这常常要求具有很少或者不具有应用之间的直接协调的复杂网络编程。这不但对于不同应用实现其自身的网络共享逻辑而言是重复的,而且应用的不同资源共享行为可能会冲突。
虽然存在诸如由操作系统实现以允许应用实现特定类型的网络消耗行为的LEDBAT(低额外延迟后台传输)之类的协议,但是利用这样的协议的编码可能增加开发应用的成本和开销,并且可能使得开发者不太可能使用这样的协议。另外,如LEDBAT的广泛部署的低优先级TCP(传输控制协议)机制具有缺点,并且通常不提供理想的用户体验(对于其他示例,参见Internet Engineering Task Force Request for Comments 6297)。例如,LEDBAT协议仅限制TCP发送窗口而对于接收流没有影响,而大多数客户端侧的互联网流量是流入的。即便当如LEDBAT的机制在不要求复杂的开发者编码的情况下可用时,可能操作系统或者网络堆栈也不可能确定应用应当使用这样的机制。换言之,难以推断关于网络资源冲突的用户和应用意图,并且应用很少规定其网络优先级。设备的网络资源的共享也不是以在不易遭受诸如“迟到者”现象(例如,参见Request For Comments 6817,第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来执行与流相关的操作,诸如实例化流对象、设置流参数、发起与流的网络连接、关闭流、获得和设置流属性值(诸如要连接到的网络地址、要使用的远程和本地端口、要使用的协议、联网参数等等)。当如本文中描述的那样进行扩展或者修改时,Winsock API、Berkeley套接口API以及其他类似的API都适合用作API 118。
图2示出了一种使用API 118向网络堆栈104通知要与特定流相关联的流类别或者种类的应用的过程。在步骤140,应用形成或者获取流。流可以或者可以不具有网络连接。在应用执行代码中,流可以被称为描述符、句柄、对象等等。应用可以从另一应用或者进程获取流,或者可以发起流作为新的对象。在后者的情况下,流的各种参数或者属性可以由应用在使用流来形成网络连接之前设置。如上指出的,这样的参数例如可以是远程网络地址、本地网络地址(当多个网络接口112在计算设备100 100上可用时)、本地和远程端口、协议设置等等。
在步骤142,应用使用API 118来将流类别或者种类(此后被称为“类别”)具体指派给流。应用可以将其他类别指派给应用的流中的其他流。步骤142可以在流的寿命期间在任何时间执行,包括当流被实例化时、在为流形成网络连接之前、在流被连接且可能运送流量之后、当流运送流量时等等。而且,可以对同一流反复执行步骤142以改变当前被指派给该流的类别,从而,如接下来将讨论的,相应地改变流管理器114如何通过流调控分组流。
在步骤144,操作系统,具体是流管理器114,控制网络流的网络资源使用。流管理器114用作中央协调器,其和谐地安排由操作系统管理的多个(可能是所有)流的网络行为。流管理器114可以跟踪流的实际网络性能,并且特别是关于时延和带宽(吞吐量)性能以及可能地在不同大小时间窗内的平均吞吐量来调控其行为。流管理器114还可以例如通过分析探测分组的回程时间(RTT)、通过接收关于沿着流的网络路径的各种设备的队列大小的信息等等来接收关于网络条件的信号。值得注意的是,流管理器114应当能够确定用于每个流的最近和/或当前带宽、时延、或者这两者。在一个实施例中,并非所有流都具有显式的应用指派的类别。然而,流管理器114还可以可能通过将这些流视为具有默认类别来管理它们。在一个实施例中,流管理器114不是一个不同的模块或者组件,而是遍及操作系统102和/或网络堆栈104分散的逻辑(如本文中使用的术语“流管理器”是指这两种设计)。换言之,流管理逻辑的放置并不重要。
图3示出了流分类模型180A的示例。图3还示出了将类别指派给流的代码182的样本。分类模型180A具有八个类别,其中四个用于带宽并且四个用于时延。在该示例分类模型180A中,可以将两个类别指派给同一流;一个类别用于带宽而一个类别用于时延。如在样本代码182中可见的,“高”带宽和“低”时延类别被指派给由“socket_s”表示的流。在其他实施例中,分类模型180A可以仅具有带宽类别、或者仅具有时延类别、或者具有拥有两个性能维度的单独类别,如在图5中示出的。图4示出了具有相应网络性能种类的示例流190。流190可以具有通过API 116指派的标识符和类别192。在一个实施例中,相应流的分类是操作系统102用来表示流的、相应数据结构或者对象的标记或属性。
图5示出了分类模型180B的另一示例。分类模型180B具有六个类别(A到F):实时类别、响应式(交互式)类别、流传输类别、正常类别、最终类别和不可见类别。该分类模型180B对于开发者而言可能是方便的,因为各个类别紧密对应于常见类型的网络消耗应用。每个类别可以具有在网络性能的一个或者多个维度中的相应性能范围、下限、上限等等,如在流管理器114的逻辑中实现的。例如,可以如下实现类别(带宽以每秒兆位(MBS)为单位、时延以毫秒(ms)为单位):
实时:1 MBS,200 ms,
响应式:0.1 MBS,50 ms,
流传输:3 MBS,1500 ms,
正常:0.2 MBS,5000 ms,以及
最终、不可见:0 MBS,0 ms。
这些数字仅仅是示例;可以使用任何值,并且一些类别可以不具有带宽和/或时延规定。
流管理器114可以具有用以实现这样的策略或规则202的控制逻辑200(图6),该策略或规则202用于当需求在流之间产生冲突时要如何依据这些流的类别实现它们的性能目标。例如,规则202可以规定用于带宽的优先性,以使得当流媒体传输类别的流处于或者接近其限度时可以通过按照其他流的类别对其他流进行节流来使得带宽可用。例如,当种类-A的流要求联网资源时,可以首先对不可见流进行节流,然后是最终流,然后是正常流,然后是响应式流。各类别也可以具有相应的权重以规定要节流的带宽(或者时延)的相对部分,从而允许处于较高优先级类别中的流获取从低优先级的流释放的带宽的大部分和从中等优先级的流释放的带宽的小部分。在另一实施例中,网络资源的使用按照流类别被优先排序或者分摊。如果响应式的流要求附加带宽,则可以可能从最低优先级类别的流开始、在保持可以分让带宽的任何流处于其性能规定内的同时从这些流(例如通过节流)吸取带宽。总之,可以通过各种各样的算法、规则/优先级、性能值等等实现按照流的类别共同管理流的网络资源消耗。
按照应用规定的类别对于流的集中式全局管理的潜在优点是可以改进用户的体验。例如,假设用户的设备正在运行具有已被分类成“流传输”的网络流的多媒体流传输应用。还假设用户开启web浏览器应用,该web浏览器应用将其HTTP浏览流分类成“响应式”,并且将其下载流分类成“正常”。当用户请求web页面时,因为对应的响应式类别的流具有比流传输类别的流更高的时延优先级,所以流传输类别的流可以被临时节流(例如,持续50ms)以允许响应式类别的流满足其时延要求。流传输类别的流的短暂减慢将很可能不会被用户注意到(由于缓冲的缘故),并且web页面将快速下载。如果用户发起了文件下载,则可以从流传输类别的流“借取”带宽直到达到其带宽下限为止,从而允许正常类别的下载流在不中断来自流传输类别的流的媒体的播放的情况下以最大化其带宽的方式进行。
图6示出了流管理器114的详细视图。各流190每个都具有相应的队列240,其中分组在被传递到设备驱动器以用于由对应的网络接口传输之前或者被从设备驱动器接收到之后排队。控制逻辑200如上描述的那样管理流190的网络性能。控制逻辑200可以反复地接收关于带宽和时延的更新。更新可以来自接口驱动器110、网络堆栈104或者外部源。这样的更新可以指示各种网络条件和统计数据,诸如用于计算设备100或者用于各个网络接口112的当前带宽可用性、当前或者预计的时延信息、网络拥塞等等。控制逻辑200可以使用该信息来调控网络资源如何被流消耗。
图7示出了控制逻辑200可以通过其调控流的示例过程。以规律的间隔,流管理器114可以在步骤260开始对活动的(active)流(在本自然段,“流”是指当前迭代的流)进行循环迭代。在步骤262,获取流的当前性能统计数据。例如,获取当前或者估计的带宽和时延。该信息可以从最近吞吐量进行估计、按照当前流量统计数据进行预计、基于排队分组的量、到来分组的速率和其他已知技术。流的类别可以影响其多久被迭代估计一次。
在步骤264,流管理器114确定流的类别或者种类,并且确定流是否正在(或者预期将)按照其规定的种类执行。在步骤266,如果流没有按照所规定的那样执行,那么流管理器114实现打算满足流的类别规定的适配。例如,将其类别考虑在内,可以使其他流节流、暂停等等。这可以通过调整流的接收窗口和/或发送窗口、扩展或者收缩流缓冲器、暂停通过流的分组流等等来完成。应用或者其他组件没有必要为分组打标记,应用也没有必要使用协议级QoS特征。从应用的角度来看,流是普通的TCP(或者类似的)流。在步骤268,处理下一个流(如果有的话)。
关于本文中提及的以下内容应当被理解为涵盖不止是仅仅相对于在主机机器上的其他连接的性能:流没有按照其相应类别的规定执行、对于性能符合性的确定或者驱动性能调整的确定。如果流的网络连接正在经历比连接已经历的最低单向延迟多100 ms的单向延迟,则例如诸如LEDBAT协议之类的协议认为该流没有按照规定那样执行。这种假定在于,LEDBAT连接可能是引起增大的延迟的因素,并且限制该连接的窗口可能会减小用于穿过相同共享网络资源的其他连接的延迟。换言之,流类别的规定可以相对于彼此是相对的、相对于性能值是绝对的、或者是两者的组合。另外,可以提供正式语言或者句法来表达复杂的规定,例如可能是基于标记式(例如,可扩展标记文件)声明性语言的形式的布尔运算符、条件式语句等等的句法。或者,这样的复杂逻辑可以被“硬编码”到流管理器、网络堆栈等的编程中。
图8示出了流分类模型180C的另一示例。每个种类具有时延分量和带宽分量。各种类可以沿着任一维度重叠。在该示例中,流的分类将带宽和时延性能目标两者都指派给流。如果假定一个类别(例如类别-E)打算在对应的流上传达对应于实时或者快速响应性的时延规定(即,网络流量将响应于用户请求以最小的明显延迟开始流动),那么流管理器逻辑可以使用本地操作系统的各种网络影响机制来“后移(backoff)”或者向下调控其他流,诸如类别-D的流(或者所有其他流、或者所有其他活动的流等等)。也就是说,当被分类为对时延敏感的新连接或者新流量开始时,低优先级的连接可以立即在本地被削弱。例如,如果由用户发起的web浏览器将要请求web对象,则可以抢先削弱后台文件传输以使得接下来的浏览器流量以干净的网络开始。先前的方法通常依赖于基于对新流量而言常常不是立即有用的竞争流量做出的服务质量决定。类似的方法可以用于带宽性能、或者用于网络性能特性的组合。注意,本地流量削弱可以通过暂停从应用到其网络连接的数据流、暂停缓冲分组的传输、调整联网窗口大小、暂缓或者降级处理流流量的线程、或者通过调整可以潜在影响流对网络资源的消耗的、流的其他操作参数来完成。
图9示出了用于共同流管理的实施例的过程。在该实施例中,流管理器114可以如下实现对网络资源的重新分配。在步骤280,按照其类别,确定目标流需要附加的网络资源,例如带宽或者时延或者这两者。作为一个解释性示例,将假定分类模型180C的类别-A的流需要附加带宽。在步骤282,获得用于每个类别的流的合计的(aggregate)统计数据。在步骤284,以类别适当的次序评估那些合计的统计数据,并且在步骤286,根据需要调整它们。首先评估按照网络需求的、最低优先级类别的流(即,类别-E)。如果类别-E的流的合计的带宽作为整体具有额外带宽,那么对类别-E的流进行节流以提供附加带宽。如果类别-E的流不产生足够的带宽,那么评估下一优先级类别(类别-C)的合计的统计数据。也就是说,如果对类别-E的流进行节流没有释放足够的带宽,则评估类别-C的流的合计的带宽,并且根据需要对该类别中的流进行节流。如果类别-C和类别-E的流两者都不能在满足其类别要求的同时交出足够的带宽,那么可以逼迫较低优先级类别的流(类别-E)到其类别的带宽目标以下,以帮助满足较高优先级类别-A的流的带宽要求。
如果在以上示例中,替代或者除了增加的带宽之外,流要求改进的时延,则执行类似的过程,只不过以取决于类别的时延特质的次序来执行每个类别的合计统计数据的评估以及对于其中的流的任何调整。
虽然本说明书可能在某些地方将网络资源称为被分配或者被重新分配,但是资源的“分配”是使用(上文所述的)各种网络影响机制中的任一个网络影响机制来试图满足流类别的规定的副作用的概念化表征。而且,基于流类别采取的优先排序或者流调控措施可能不一定涉及对应的流的网络资源消耗的立即增加或减少。例如,诸如LEDBAT协议(其可以被修改为提供流类别)之类的协议在LEDBAT已经决定低优先级连接需要被“限制”时可能不一定会损害低优先级连接的带宽或者时延。例如,减小连接的发送窗口的大小可能不会对其吞吐量或者时延具有立即的影响;由于许多可能的原因,连接可以随后获得更好的吞吐量或者时延。
图10示出了可以在其上实现上文描述的实施例的一般计算设备100的附加细节。计算设备100可以具有显示器300以及存储装置302和处理硬件304,其可以是以下一项或者多项的组合:中央处理单元、图形处理单元、模拟到数字转换器、总线芯片、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)或者复杂可编程逻辑器件(CPLD)等等。存储装置302可以是磁存储装置、静态存储器、易失性存储器等等的任何组合。如本文使用的术语“存储装置”的意义不是指信号或者能力本身,而是指物理装置(包括诸如磁存储介质、光学存储介质、静态存储器设备等等的物理介质,但不是信号本身)。计算设备100的硬件元件可以以计算领域中熟知的方式协作。另外,输入设备306可以与计算设备100集成或者与计算设备100通信。计算设备100可以具有任何形式因子,或者可以用于任何类型的涵盖性设备中。计算设备100可以是诸如智能电话、平板计算机、游戏设备、服务器、架装或者底板式板载计算机、片上系统或者其他装置之类的手持式设备的形式。一般地,计算设备100将是分立的网络节点或者设备。
上文讨论的实施例和特征可以以存储在易失性或者非易失性计算机或者设备可读装置中的信息的形式来实现,其中这样的信息能够配置计算设备100执行本文中描述的实施例。这些装置可以包括诸如光学存储装置(例如,致密盘只读存储器(CD-ROM))、磁介质、全息照相存储装置、闪速只读存储器(ROM)、或者用于存储数字信息的其他设备之类的装置。所存储的信息可以是机器可执行指令(例如,经编译的可执行二进制代码)、源代码、字节代码、或者可用来使得计算设备能够或者配置其执行本文中描述的实施例的其他信息的形式。这还被认为至少包括易失性存储器(诸如随机存取存储器(RAM))和/或在执行施行实施例的软件期间存储诸如中央处理单元(CPU)指令之类的信息的虚拟存储器,以及存储允许程序或者可执行文件被装载和执行的信息的非易失性设备。
Claims (20)
1.一种由包括存储装置、处理硬件、网络接口和存储在所述存储装置中的操作系统的计算设备执行的方法,所述方法在所述操作系统正由所述处理硬件执行时被执行,所述方法包括:
由所述处理硬件执行所述操作系统的网络模块,所述网络模块实现网络流分类模型,所述网络流分类模型包括由所述网络模块实现且对应于相应的不同带宽和时延属性的多个预定义网络流类别,每个网络流类别分别具有对应的网络性能规定,以使得一些网络流类别与所述网络流类别中的其他网络流类别相比关于所述网络性能规定具有较高的优先级;
提供对于在所述计算设备上执行的用户模式代码可访问的应用编程接口(API),其中所述计算设备上的应用使用所述API来向由所述操作系统提供的网络流指派网络流类别,从而确定哪些网络流类别要与哪些网络流相关联,所述网络流用于通过所述操作系统的所述网络模块向所述应用传送数据和/或传送来自所述应用的数据,其中应用通过与所述操作系统通信来请求网络流的创建,并且使用所述API来向所述网络流指派网络流类别,并且其中关联被维护以指示按照由所述应用使用所述API进行的所述指派,哪些特定网络流与哪些特定网络流类别相关联;
由所述网络模块反复接收关于所述计算设备上的所述网络流的时延和/或带宽性能的更新;以及
由所述网络模块按照关于所述网络流的时延和/或带宽性能的所述更新、按照与其相关联的相应的所述网络流类别的所述网络性能规定并且按照关于所述网络性能规定的所述网络流类别的相对的优先级来调控所述网络流的分组从所述计算设备的传输的定时,其中用于网络流的分组的传输的定时取决于所维护的关联指示哪个网络流类别与所述网络流相关联。
2.按照权利要求1所述的方法,其中应用通过所述API向所述操作系统提供网络流的标识符以及网络流类别的标识符,并且作为响应,所述操作系统存储所述网络流与所述网络流类别之间的关联,并其中所述网络流的所述调控按照所述网络流类别与所述网络流之间的所述关联并且按照所述网络流类别的所述网络性能规定被执行。
3.按照权利要求1所述的方法,其中应用具有第一网络流和第二网络流,并且所述方法进一步包括:由所述应用使用所述API将第一网络流类别指派给所述第一网络流并且将第二网络流类别指派给所述第二网络流,其中所述网络模块按照所述第一网络流类别调整所述第一网络流的操作参数,并且所述网络模块按照所述第二网络流类别调整所述第二网络流的操作参数,所述操作参数由所述计算设备用于控制所述计算设备对分组的发送。
4.按照权利要求1所述的方法,其中对给定网络流利用相关联的给定网络流类别的所述调控包括对所述网络流中的其他网络流进行节流,其中所述网络流中的所述其他网络流按照与所述网络流类别相对于彼此的优先级相对应的优先级顺序被节流。
5.按照权利要求1所述的方法,其中所述调控试图按照所述网络流类别中的哪些网络流类别已经被指派给所述网络流而满足所述网络流的带宽和时延性能规定。
6.按照权利要求1所述的方法,其中所述调控包括确定所述网络流中的哪个网络流要节流以便为给定的网络流提供附加带宽,其中按照所确定的网络流与哪些网络流类别相关联,所述确定被执行。
7.按照权利要求6所述的方法,其中确定所述网络流中的哪个网络流要节流至少取决于所述给定网络流与哪个网络流类别相关联。
8.一种计算设备,包括:
处理硬件;
网络接口;
存储硬件,其存储用以使得所述处理硬件在所述计算设备可操作时能够执行操作系统,所述操作系统被配置为提供流并且管理由所述处理硬件对任意应用的执行;
所述处理硬件在所述计算设备可操作时存储流类别的定义,每个流类别被定义为相对于其他流类别中的一个或多个流类别具有不同的优先级,其中相对的优先级在所述流类别中对网络性能特性进行优先排序,以使得一些流类别与所述流类别中的其他流类别相比关于所述网络性能特性具有较高的优先级;
所述处理硬件在所述计算设备可操作时使得在所述计算设备上执行的所述任意应用能够在由所述应用所标识的流类别与由所述应用所标识的流之间指派关联,所述关联由所述计算设备维护,所述关联指示按照由所述应用指派的所述关联,哪些特定的流与哪些特定的流类别相关联;以及
所述处理硬件在所述计算设备可操作时按照根据所维护的关联被指派给所述流的相应的流类别来控制所述流对所述计算设备的网络资源的使用,所述控制由所述操作系统执行并且包括:对于流类别,按照所维护的关联来计算用于与其相关联的所述流的合计的网络性能统计数据,以及按照所述合计的网络性能统计数据并且按照关于所述网络性能特性的所述流类别的所述相对的优先级来控制用于所述流类别的所述流的分组的传输的定时,其中用于流的分组的传输的定时取决于所维护的关联指示哪个流类别与所述流相关联。
9.按照权利要求8所述的计算设备,其中由所述网络接口对流的分组的传输抢先地基于以下被限制:(i)与另一流相关联的事件以及(ii)所述流或所述另一流的流类别。
10.按照权利要求9所述的计算设备,所述事件包括用于所述另一流的网络连接的形成或者所述另一流上的网络流量的出现。
11.按照权利要求8所述的计算设备,其中调控动作针对所述流按照与对应于所述流的所述流类别的所述相对的优先级相对应的顺序被执行。
12.按照权利要求8所述的计算设备,其中所述操作系统提供应用编程接口,所述应用使用所述应用编程接口通过经由所述应用编程接口提供所述流类别的标识符以及所述流的标识符来将所述流类别指派给所述流。
13.按照权利要求8所述的计算设备,其中通过所述网络接口的所述流的传输的定时和/或数量按照向其指派的所述流类别被优先排序。
14.按照权利要求13所述的计算设备,其中关于所述性能特性的所述流的性能按照向其指派的所述流类别被评估,并且当确定流没有或将不按照向其指派的所述流类别执行时,其他流按照向其指派的所述流类别被调控。
15.一个或多个存储装置,所述存储装置存储用以使得计算设备在操作时能够执行过程的信息,所述过程包括:
执行操作系统,所述操作系统向正由所述操作系统执行的应用提供网络流,所述操作系统实现预定义的网络流类别,所述网络流包括操作系统对象,所述应用向所述操作系统对象进行写入以将数据发送给网络并且从所述操作系统对象进行读取以接收来自所述网络的数据,其中所存储的定义对所述网络流类别进行定义,每个网络流类别被定义为相对于其他网络流类别中的一个或多个网络流类别具有不同的优先级,其中相对的优先级在所述网络流类别中对网络性能特性进行优先排序,以使得一些网络流类别与所述网络流类别中的其他网络流类别相比关于所述网络性能特性具有较高的优先级;
执行所述操作系统的网络堆栈,所述网络堆栈实现网络通信协议,其中所述应用的所述流通过所述网络堆栈发送和接收网络分组,所述分组符合所述网络通信协议;
向所述操作系统提供应用编程接口(API),其中所述API在由应用使用时允许所述应用通过向所述API规定流、所述网络流类别以及在所规定的流和所规定的网络流类别之间的关联来向所述流指派网络流类别,其中所述网络堆栈维护关联信息,所述关联信息指示按照由所述应用调用所述API来将所述流指派到所述网络流类别,所述流中的哪些流己经被指派到所述网络流类别中的哪些网络流类别;以及
按照所述流的网络统计数据,按照根据所维护的关联信息向其指派的所述网络流类别,并且按照关于所述网络性能特性的所述网络流类别的所述相对的优先级,来控制所述流的分组从所述计算设备的发送的定时,其中用于流的分组的传输的定时取决于所维护的关联信息指示哪个网络流类别与所述流相关联。
16.按照权利要求15所述的一个或多个存储装置,其中所述网络通信协议包括网络传输层处的传输控制协议。
17.按照权利要求15所述的一个或多个存储装置,其中所述操作系统按照向其指派的所述网络流类别来评估所述流的网络性能,并且按照所述评估来调节所述流的操作参数,其中给定的流的操作参数的调节取决于哪个网络流类别已经被指派给所述给定的流。
18.按照权利要求17所述的一个或多个存储装置,其中每个网络流类别对应于相应的带宽和时延规定,并且所述评估包括相对于所述网络流类别的所述带宽和时延规定来评估所述流的带宽和时延性能。
19.按照权利要求15所述的一个或多个存储装置,其中所述流的分组在从所述计算设备被传输时不包括服务质量标记。
20.按照权利要求15所述的一个或多个存储装置,其中网络流类别对应于性能下限或上限,并且流的操作参数基于所述性能下限或上限被调整。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/497315 | 2014-09-25 | ||
US14/497,315 US9674099B2 (en) | 2014-09-25 | 2014-09-25 | Network classification for applications |
PCT/US2015/051953 WO2016049322A1 (en) | 2014-09-25 | 2015-09-24 | Network classification for applications |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106716368A CN106716368A (zh) | 2017-05-24 |
CN106716368B true CN106716368B (zh) | 2021-01-29 |
Family
ID=54325675
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580051789.6A Active CN106716368B (zh) | 2014-09-25 | 2015-09-24 | 用于应用的网络分类 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9674099B2 (zh) |
EP (1) | EP3198434A1 (zh) |
KR (1) | KR102358821B1 (zh) |
CN (1) | CN106716368B (zh) |
WO (1) | WO2016049322A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3417583B1 (en) * | 2016-02-19 | 2020-12-30 | Viasat, Inc. | Methods and systems for multi-level network capacity allocation |
US10362166B2 (en) * | 2017-03-01 | 2019-07-23 | At&T Intellectual Property I, L.P. | Facilitating software downloads to internet of things devices via a constrained network |
US11048660B2 (en) | 2017-06-20 | 2021-06-29 | Netflix, Inc. | Acceleration system for facilitating processing of API calls |
CN109067818B (zh) * | 2018-06-04 | 2019-08-20 | 杭州数梦工场科技有限公司 | 一种业务访问方法及装置 |
US20210019824A1 (en) * | 2019-07-19 | 2021-01-21 | Dell Products L.P. | Sales Facilitation Architecture for Using Operational Parameters to Determine a Candidate Product Configuration |
US11140086B2 (en) | 2019-08-15 | 2021-10-05 | At&T Intellectual Property I, L.P. | Management of background data traffic for 5G or other next generations wireless network |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101427528A (zh) * | 2006-02-21 | 2009-05-06 | 思科技术公司 | 用于有选择地操纵控制流量来提高网络性能的系统和方法 |
CN101711468A (zh) * | 2007-03-12 | 2010-05-19 | 思杰系统有限公司 | 用于在tcp拥塞控制中提供服务质量优先的系统和方法 |
CN102217228A (zh) * | 2007-09-26 | 2011-10-12 | Nicira网络公司 | 管理和保护网络的网络操作系统 |
EP2400773A1 (en) * | 2009-02-19 | 2011-12-28 | Panasonic Corporation | Recording medium, reproduction device, and integrated circuit |
CN102346460A (zh) * | 2011-05-27 | 2012-02-08 | 运软网络科技(上海)有限公司 | 一种基于事务的服务控制系统及其控制方法 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6807667B1 (en) * | 1998-09-21 | 2004-10-19 | Microsoft Corporation | Method and system of an application program interface for abstracting network traffic control components to application programs |
KR100727901B1 (ko) * | 1999-07-10 | 2007-06-14 | 삼성전자주식회사 | 마이크로 스케듈링 방법 및 운영체제 커널 장치 |
US8457627B2 (en) * | 1999-08-24 | 2013-06-04 | Gogo Llc | Traffic scheduling system for wireless communications |
EP1096742A1 (en) | 1999-10-25 | 2001-05-02 | Lucent Technologies Inc. | Radio communication network |
US20030152096A1 (en) * | 2002-02-13 | 2003-08-14 | Korey Chapman | Intelligent no packet loss networking |
US7467406B2 (en) * | 2002-08-23 | 2008-12-16 | Nxp B.V. | Embedded data set processing |
US8019352B2 (en) * | 2004-07-23 | 2011-09-13 | Wireless Valley Communications, Inc. | System, method, and apparatus for determining and using the position of wireless devices or infrastructure for wireless network enhancements |
CN200953628Y (zh) * | 2006-08-25 | 2007-09-26 | 上海未来宽带技术及应用工程研究中心有限公司 | 一种交互式网络电视终端信息快速处理装置 |
US20080089237A1 (en) | 2006-10-11 | 2008-04-17 | Ibahn Corporation | System and method for dynamic network traffic prioritization |
US8468244B2 (en) * | 2007-01-05 | 2013-06-18 | Digital Doors, Inc. | Digital information infrastructure and method for security designated data and with granular data stores |
US8045458B2 (en) | 2007-11-08 | 2011-10-25 | Mcafee, Inc. | Prioritizing network traffic |
US8077613B2 (en) * | 2007-12-03 | 2011-12-13 | Verizon Patent And Licensing Inc. | Pinning and protection on link aggregation groups |
US7895353B2 (en) | 2008-02-29 | 2011-02-22 | Oracle International Corporation | System and method for providing throttling, prioritization and traffic shaping during request processing via a budget service |
US8255536B2 (en) | 2008-03-21 | 2012-08-28 | Microsoft Corporation | Bandwidth and latency controller |
US8560563B2 (en) | 2008-07-09 | 2013-10-15 | International Business Machines Corporation | Apparatus and method of semantic service correlation system |
KR101652445B1 (ko) * | 2009-01-05 | 2016-09-09 | 엘지전자 주식회사 | Iptv 수신기 및 iptv수신기에서 퍼스널 비디오 레코더 기능을 수행하는 방법 |
WO2011143094A2 (en) | 2010-05-09 | 2011-11-17 | Citrix Systems, Inc. | Systems and methods for allocation of classes of service to network connections corresponding to virtual channels |
US8792491B2 (en) | 2010-08-12 | 2014-07-29 | Citrix Systems, Inc. | Systems and methods for multi-level quality of service classification in an intermediary device |
US9094326B2 (en) * | 2010-11-02 | 2015-07-28 | Qualcomm Incorporated | Systems and methods for communicating in a network |
US9130864B2 (en) | 2011-06-27 | 2015-09-08 | Citrix Systems, Inc. | Prioritizing classes of network traffic to provide a predetermined quality of service |
US9608899B2 (en) * | 2011-11-21 | 2017-03-28 | Qualcomm Incorporated | Packet-based aggregation of data streams across disparate networking interfaces |
US8549570B2 (en) | 2012-02-23 | 2013-10-01 | Ericsson Television Inc. | Methods and apparatus for managing network resources used by multimedia streams in a virtual pipe |
US9220063B2 (en) | 2012-10-12 | 2015-12-22 | Broadcom Corporation | Power management for data transfers in network devices |
-
2014
- 2014-09-25 US US14/497,315 patent/US9674099B2/en active Active
-
2015
- 2015-09-24 CN CN201580051789.6A patent/CN106716368B/zh active Active
- 2015-09-24 EP EP15781197.7A patent/EP3198434A1/en not_active Withdrawn
- 2015-09-24 KR KR1020177010787A patent/KR102358821B1/ko active IP Right Grant
- 2015-09-24 WO PCT/US2015/051953 patent/WO2016049322A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101427528A (zh) * | 2006-02-21 | 2009-05-06 | 思科技术公司 | 用于有选择地操纵控制流量来提高网络性能的系统和方法 |
CN101711468A (zh) * | 2007-03-12 | 2010-05-19 | 思杰系统有限公司 | 用于在tcp拥塞控制中提供服务质量优先的系统和方法 |
CN102217228A (zh) * | 2007-09-26 | 2011-10-12 | Nicira网络公司 | 管理和保护网络的网络操作系统 |
EP2400773A1 (en) * | 2009-02-19 | 2011-12-28 | Panasonic Corporation | Recording medium, reproduction device, and integrated circuit |
CN102346460A (zh) * | 2011-05-27 | 2012-02-08 | 运软网络科技(上海)有限公司 | 一种基于事务的服务控制系统及其控制方法 |
Non-Patent Citations (1)
Title |
---|
"基于多协议的端到端服务质量(QoS)";任立勇等;《小型微型计算机系统》;20010821;第22卷(第8期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
KR102358821B1 (ko) | 2022-02-07 |
CN106716368A (zh) | 2017-05-24 |
KR20170059465A (ko) | 2017-05-30 |
WO2016049322A1 (en) | 2016-03-31 |
EP3198434A1 (en) | 2017-08-02 |
US20160094464A1 (en) | 2016-03-31 |
US9674099B2 (en) | 2017-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106716368B (zh) | 用于应用的网络分类 | |
EP3198842B1 (en) | Managing classified network streams | |
US10772081B2 (en) | Airtime-based packet scheduling for wireless networks | |
CN107210972B (zh) | 控制公平带宽分配效率的系统和方法 | |
CN107113290B (zh) | 用于带宽管理的方法和系统 | |
JP5450811B2 (ja) | ネットワーク通信パラメータを設定するための技術 | |
US10178011B2 (en) | Network traffic management via network switch QoS parameters analysis | |
US9325530B2 (en) | Management of virtual desktop infrastructure (VDI) sessions using real-time network conditions | |
US10439943B2 (en) | Adaptive and dynamic quality of service/quality of experience enforcement | |
US10069683B2 (en) | Apparatus for optimising a configuration of a communications network device | |
CN107534981B (zh) | 资源重分配 | |
US10084882B2 (en) | Method for processing requests and server device processing requests | |
CN109905329B (zh) | 一种虚拟化环境下任务类型感知的流队列自适应管理方法 | |
KR20100038191A (ko) | 단 대 단 네트워크 qos의 강화 | |
KR102053596B1 (ko) | Sdn 기반의 동적 네트워크 트래픽 분석을 통한 네트워크 슬라이싱 방법 및 장치 | |
WO2019157849A1 (zh) | 一种资源调度的方法、装置、设备及系统 | |
US20190044832A1 (en) | Technologies for optimized quality of service acceleration | |
KR102153543B1 (ko) | 무선 환경에서 usb 통신을 위한 버퍼 관리 방법 및 장치 | |
US20230060623A1 (en) | Network improvement with reinforcement learning | |
US20130329556A1 (en) | Flow control for network packets from applications in electronic devices | |
Iqbal et al. | Instant queue occupancy used for automatic traffic scheduling in data center networks | |
US11632319B2 (en) | Processing device and moving method | |
Yang et al. | Optimizing user experience through implicit content-aware network service in the home environment | |
KR20190048924A (ko) | 플로우 기반 데이터 병렬 처리 시스템 및 이의 동작 방법 | |
US20220374281A1 (en) | Computing resources allocation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |