当前位置: 首页 > 专利查询>苹果公司专利>正文

客户端设备上调度分组传输的系统和方法技术方案

技术编号:19101790 阅读:26 留言:0更新日期:2018-10-03 03:51
本公开涉及客户端设备上调度分组传输的系统和方法。公开了一种用于在客户端设备上管理分组调度的计算机实现的方法。例如,该方法的一个实施例包括:接收将被传输的分组;将所述分组入队到在网络堆栈级的队列中;确定分组调度当前正在驱动级还是在网络堆栈级执行;如果调度当前正在所述网络堆栈级执行,则从在所述网络堆栈级的队列选择所述用于传输的分组;并且如果调度当前正在所述驱动级执行,则从在所述驱动级的队列选择所述用于传输的分组。

【技术实现步骤摘要】
客户端设备上调度分组传输的系统和方法本申请是申请号为201380007685.6、申请日为2013年1月28日、专利技术名称为“客户端设备上调度分组传输的系统和方法”的专利技术专利申请的分案申请。优先权要求本专利申请涉及并要求2012年2月3日由CahyaMasputra等人提交的名称为“SYSTEMANDMETHODFORINTELLIGENTNETWORKQUEUEMANAGEMENT”的美国临时专利申请61/595,003的权益,其公开内容以引用的方式全文并入本文。相关专利申请的交叉引用本专利申请涉及同时提交的转让给Apple的2012年9月15日由CahyaMasputra等人提交的美国专利申请13/620.920。本专利技术的一个实施例涉及在客户端设备中管理数据网络通信。还描述了其它实施例。
技术介绍
数据网络允许人们使用他们相应的网络“上”的客户端设备相互通信并从网络上的各种来源获得信息。例如,运行在用户的工作站或膝上型计算机中的Web浏览器应用程序可与Web服务器连接来下载网页。该连接可跨越网络的若干中间节点或跳跃,所述节点或跳跃可包括诸如路由器之类的专用计算机。这些设备可发现端节点之间的路由,通过这些路由它们可转发已被拆分为数据分组的消息。每个节点可被赋予一个唯一的或全球的地址,诸如互联网协议(IP)地址。互联网是为人熟知的全球性的交互网络,在其中计算机网络通过路由器相互连接。计算机网络协议具有分层架构。通常,最上层包括由诸如Web浏览器的应用程序提供的功能性。正是该层,至少在端节点中,可通过网络来引发两台计算机之间的连接。因此,例如,用户可在其计算机上选择期望的网站。Web浏览器(运行于该计算机中)开始一个过程,该过程导致建立与所选择的网站相关联的服务器的连接。Web浏览器通过被称为互联网络协议群或传输控制协议/互联网络协议(TCP/IP)栈的一系列功能发送“向下”请求。该协议栈通常在软件的高层中通过软件实现,经常作为在客户端设备中运行的操作系统(OS)程序的一部分。一旦将所选择的网站解析为Web服务器的IP地址,所述服务器通过网络而接触并与Web服务器中实现的相似协议群的上层程序建立合适的连接。为了使用该连接,用户计算机中的TCP/IP栈封装来自Web浏览器的请求消息,在本实例中,该请求消息为标识网页的请求。该消息可在其沿协议栈向下的过程中被包括网络访问层的若干垂直层多次封装。它最终到达客户端设备的最低层,即物理层(通常认为其为网络访问层的一部分)。来自Web浏览器的消息当离开用户计算机的物理层然后在网络中通过一个或多个跳跃后到达Web服务器,并通过Web服务器的协议栈“向上”到达对应于Web浏览器的程序。然后,对应程序可通过收集所请求的网页的数据并将其经过已建立的连接发送回用户计算机,对消息作出响应。将数据拆分为多个消息或分组,并以与发送请求消息类似的方式发送。应用程序可具有被用户的客户端计算机中的一个或多个处理器执行的若干应用或进程。每个单独的应用可生成不同类型的网络数据流量,它们可具有不同的分组损耗、延迟和流动弹性要求。以举例的方式,社交网络应用可通过网络传送控制数据、文本、音频和视频,它们中的每个都具有相对于上述变量的不同要求。尽管它们可能都共享用户计算机中的相同的低层网络资源,每个应用通常具有其自己的一个或一组端口来传送该数据。在当前的具体实施中,将每个客户端设备通过网络与特定目的节点(即另一个客户端或服务器)互连的路由器包括大型传输和接收缓冲区。因此,分组损耗很少或没有,并且通常允许客户端设备传输分组而不考虑流控制,导致路由器队列内的“缓冲膨胀”。诸如TCP的协议是基于检测到的分组损耗确定拥塞和修改传输速度的自校正协议。当使用大型缓冲区减轻分组损耗时,TCP协议另外,在当前客户端方的具体实施中,对分组的缓冲发生在驱动级。TCP/IP栈只是将分组向下推送至驱动,并且驱动管理其自己的传输和接收队列。由于在客户端内的驱动级执行的大量缓冲(以太网驱动可在传输之前缓冲队列中的多达4000个分组),网络堆栈不具有准确的网络/拥塞信息。因此,需要更智能的机制来执行客户端设备内的网络排队,在其中利用了使用在驱动层和网络堆栈层之间的反馈通道。
技术实现思路
一种用于在客户端设备上管理分组调度的计算机实现的方法。例如,该方法的一个实施例包括:接收将被传输的分组;将所述分组入队到在网络堆栈级的队列中;确定分组调度当前正在驱动级还是在网络堆栈级执行;如果调度当前正在所述网络堆栈级执行,则从在所述网络堆栈级的队列选择所述用于传输的分组;并且如果调度当前正在所述驱动级执行,则从在所述驱动级的队列选择所述用于传输的分组。附图说明本专利技术的各实施例以举例的方式进行说明,而不仅限于各个附图的图形,在附图中类似的附图标号表示类似的元件。应当指出,本公开中提到“一”或“一个”实施例未必是同一实施例,并且这样的援引表示至少一个。图1A-B示出根据本专利技术的实施例的具有网络堆栈的客户端设备的框图。图2A-B示出根据本专利技术的实施例的两个方法。图3A-B示出根据本专利技术的两个不同实施例的针对传输数据分组的网络堆栈和驱动之间的通信。图3C示出根据本专利技术的一个实施例的客户端侧的软件架构。图4示出示例性的发送器线程和示例性的开始器线程。图5示出示例性的类队列实例和调度器。图6示出服务类映射至队列实例的一个实施例。图7示出服务类映射至队列实例的另一个实施例。图8示出套接字流量类映射至服务类的实施例。图9A示出具有内置QFQ调度器配置的一个实施例中链路共享分布的最坏场景。图9B示出根据一个实施例的分组过滤器(PF)配置的实例。图10A示出根据一个实施例的使用流哈希的流控制。图10B示出一个实施例中排队算法使用的当前容器组和阴影容器组。图11A-B示出根据本专利技术的两个不同实施例的针对接收数据分组的网络堆栈和驱动之间的通信。图12示出示例性的工作循环线程、轮询器线程和DLIL输入线程。图13示出根据一个实施例的示例性的线程数据集。图14示出一个实施例中采用的应用编程接口(API)。图15示出一个实施例中采用的多个具有API的服务。图16示出客户端方数据处理设备的一个实施例。图17示出客户端方数据处理设备的另一个实施例。具体实施方式本专利技术的一个实施例涉及用于对在客户端设备上执行的网络应用进行主动队列管理的计算机实现的方法。图1A是客户端计算设备101的框图,在该客户端计算设备上可实现本专利技术的实施例。示出的客户端设备101执行多个应用105-107,该应用105-107通过诸如互联网的网络150与服务器120-121和其它客户端设备122通信。服务器120-121可包括(以举例的方式且不限于)Web服务器、电子邮件服务器、即时消息服务器和文件服务器。在一个实施例中,应用105-107调用网络堆栈102提供的网络应用编程接口(API)208,以访问网络堆栈102提供的网络资源。本实施例的网络堆栈102包括队列管理逻辑115用于管理代表应用105-107中的每个的多个网络队列110-112。网络堆栈中的分组调度器116基于分组分类(下面将更详细地描述)调度将被传输至每个队列和从每个队列接收的分组。尽管在图1A中被示出为独立的模块,但应当理解,可将队列本文档来自技高网
...

【技术保护点】
1.一种具有网络层和驱动层的客户端设备,所述客户端设备包括:在网络层配置的多个传输队列,其中所述多个传输队列中的一个或多个传输队列与多个分组服务类中的对应的分组服务类相关联;分类器模块,被配置为至少部分地基于与分组相关联的分组类型将将分组服务分类赋予分组;队列管理器,被配置为至少部分地基于被赋予的分组服务分类和与所述一个或多个传输队列中的传输队列相关联的分组服务类的比较来将分组入队到该传输队列中;以及在所述网络层的分组调度器,被配置为至少部分地基于被赋予的分组服务分类来调度来自该传输队列的用于传输的分组。

【技术特征摘要】
2012.02.03 US 61/595,003;2012.09.15 US 13/620,9201.一种具有网络层和驱动层的客户端设备,所述客户端设备包括:在网络层配置的多个传输队列,其中所述多个传输队列中的一个或多个传输队列与多个分组服务类中的对应的分组服务类相关联;分类器模块,被配置为至少部分地基于与分组相关联的分组类型将将分组服务分类赋予分组;队列管理器,被配置为至少部分地基于被赋予的分组服务分类和与所述一个或多个传输队列中的传输队列相关联的分组服务类的比较来将分组入队到该传输队列中;以及在所述网络层的分组调度器,被配置为至少部分地基于被赋予的分组服务分类来调度来自该传输队列的用于传输的分组。2.根据权利要求1所述的客户端设备,其中,所述比较包括将分组类型与被赋予的分组服务分类相关联,并且其中所述队列管理器进一步配置为基于被赋予的分组服务分类选择传输队列。3.根据权利要求1所述的客户端设备,其中,第一数量的分组服务类被映射到多个传输队列中的第二数量的传输队列,其中所述第一数量大于或者等于所述第二数量。4.根据权利要求1所述的客户端设备,进一步包括:应用,其中所述应用将对应的分组服务类与所述多个传输队列中的所述一个或多个传输队列相关联。5.根据权利要求1所述的客户端设备,其中,与传输队列相关联的分组服务类对应于优先级。6.根据权利要求5所述的客户端设备,其中,分组是网络控制分组,并且与传输队列相关联的分组服务类对应于多个可用优先级中的最高优先级。7.根据权利要求1所述的客户端设备,其中,所述驱动层被配置为响应于从网络层接收到通知而使分组从传输队列出队,其中所述通知至少部分地基于被调度的传输。8.根据权利要求1所述的客户端设备,其中,与传输队列相关联的分组服务类基于以下中的至少一个:应用的分组延迟容忍水平,应用的分组损耗容忍水平,或者应用的流动弹性水平。9.根据权利要求1所述的客户端设备,其中,与传输队列相关联的分组服务类对应于分组延迟容忍水平,并且分类器模块进一步配置为:至少部分地基于第二分组的分组类型向第二分组赋予第二分组服务类,其中所述第二分组服务类对应于第二分组延迟容忍水平。10.根据权利要求9所述的客户端设备,其中,分组延迟容忍水平对应于优先级,并且第二分组延迟容忍水平对应于第二优先级,其中第二优先级不同于该优先级。11.根据权利要求1所述的客户端设备,其中,与传输队列相关联的分组服务类对应于流动弹性水平,并且分类器模块进一步配置为:至少部分地基于第二分组的分组类型向第二分组赋予第二分组服务类,其中所述第二分组服务类对应于第二流动弹性容忍水平。12.根据权利要求1所述的客户端设备,其中,与传输队列相关联的分组服务类包括以下中的至少一个:后台系统启动类;后台数...

【专利技术属性】
技术研发人员:C·马斯普特拉P·波和玛J·刘
申请(专利权)人:苹果公司
类型:发明
国别省市:美国,US

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

1