具有时间索引数据结构的可缩放流量整形的设备和方法技术

技术编号:18556854 阅读:55 留言:0更新日期:2018-07-28 13:43
本申请涉及具有时间索引数据结构的可缩放流量整形的设备和方法。在网络设备中提供利用时间索引数据结构执行速率限制流量整形的系统和方法。网络设备的网络接口驱动器能够从多个应用接收网络主机的分组层处的分组。网络接口驱动器能够防止应用中的一个发送用于传输的附加分组,直到应用接收到指示已经传输先前转发给网络主机的分组层的分组的传输完成通知。网络接口驱动器能够至少基于速率限制策略来处理接收的分组以确定用于每个分组的传输时间。网络接口驱动器能够在与对分组确定的传输时间相关联的位置处的时间索引数据结构中存储与相应分组相关联的标识符。

【技术实现步骤摘要】
具有时间索引数据结构的可缩放流量整形的设备和方法
本申请涉及具有时间索引数据结构的可缩放流量整形的设备和方法。
技术介绍
流量整形是利用各种机制来调整网络数据流量的技术,以整形、限速、步调、优先化、或延迟被确定为比优先的业务流更不重要或更不期望的业务流或跨同等优先级的分组流上强制执行网络资源分配。用于整形流量的机制包括基于策略、延迟,丢弃或标记分组的队列特整形算法,以及跨不同队列公平优先化分组分配的调度算法,以在不同队列之间匹配和移动分组的分类器。当考虑到用于维持大量流量类的期望网络性能的要求时或当各种网络主机架构中部署流量整形系统时,采用这些机制的流量整形系统难以缩放。
技术实现思路
根据一个方面,本公开涉及一种网络设备。该网络设备包括网络接口卡、至少一个处理器、存储器和网络接口驱动器。该网络接口驱动器被配置为从多个应用接收网络主机的分组层处的分组;以及防止应用中的一个发送用于传输的附加分组,直到所述应用接收到指示已经传输先前转发给所述网络主机的所述分组层的分组的传输完成通知。该网络接口驱动器处理所接收的分组以基于至少一个速率限制策略来确定用于每个分组的传输时间,并且将与相应分组相关联的标识符存储在时间索引数据结构中,与对所述分组确定的传输时间相关联的所述时间索引数据结构中的位置处。该网络接口驱动器确定已经到达在所述时间索引数据结构中索引的时间,并且作为响应于与在与到达时间相关联的位置处的时间索引数据结构中存储的标识符相关联的分组。该网络接口驱动器在传输所述分组后,将传输完成通知传送回到所述应用。根据另一方面,本公开涉及一种方法。该方法包括由网络接口驱动器从多个应用接收网络主机的分组层处的分组,以及由网络接口驱动器防止应用中的一个发送用于传输的附加分组,直到所述应用接收到指示已经传输先前转发给所述网络主机的所述分组层的分组的传输完成通知。该方法进一步包括由调度模块处理所接收的分组以基于至少一个速率限制策略来确定用于每个分组的传输时间;以及将与相应分组相关联的标识符存储在时间索引数据结构中,与对所述分组确定的传输时间相关联的所述时间索引数据结构中的位置处。该方法进一步包括由所述调度模块确定已经到达在所述时间索引数据结构中索引的时间,并且作为响应于在所述网络接口驱动器上传输与在与到达时间相关联的时间索引数据结构中存储的位置处的标识符相关联的分组。该方法进一步包括在网络接口驱动器传输所述分组之后,将传输完成通知传送回到所述应用。附图说明当结合以下附图时,通过参考以下具体实施方式部分,将更全面地理解本公开的以上的和相关的对象、特征、以及优点,在附图中:图1是根据一些实施方式,具有网络设备的网络环境的框图;图2A是示例虚拟机环境的框图;图2B是示例容器化环境的框图;图3是示出根据一些实施方式的网络设备的操作的流程图;图4A至图4C是示出根据一些实施方式的网络设备的操作的框图;图5是示出根据一些实施方式的网络设备的操作的流程图;图6A-6B是表示根据一些实施方式的网络设备的操作的示例的框图;图7A-7C是表示根据一些实施方式的网络设备的操作的示例的框图;图8是示出根据一些实施方式的网络设备的操作的流程图;图9是示出根据一些实施方式的网络设备的操作的流程图;以及图10是示例计算系统的框图。具体实施方式流量整形系统应当被设计用于高效的存储器使用和主处理器功耗,同时管理诸如在传输控制协议(TCP)中的更高级拥塞控制。例如,延迟、步调或速率限制分组以避免突发或不必要的传输延迟的流量整形系统可以实现网络资源和主机处理资源的更高利用。分组延迟机制能够减少对大容量内存缓冲器的需要。例如,当分组被延迟时,反馈机制能够施加“反压”,即,向发送模块(例如,设备或诸如软件应用的软件组件)发送反馈,以便发送模块降低其处发送分组的速率。没有分组延迟机制,应用将继续生成分组,并且分组可以被缓冲或丢弃,从而花费附加的存储器和主机处理器功率来队列或重新生成分组。呈现了与使用时间索引数据结构和延迟完成机制的可缩放流量整形有关的设备和方法。在一些实施方式中,网络设备的网络接口驱动器被配置为从多个应用接收网络主机的TCP层处的分组。所接收的分组源自在计算设备上,例如,在由计算设备托管的一个或多个虚拟机或容器化执行环境上执行的应用。网络接口驱动器可以防止应用发送用于传输的附加分组,直到应用接收到确认先前转发的分组已经被成功传送的消息。例如,网络接口驱动器在将附加数据分组转发到网络接口驱动器之前,将分组传输完成消息传送给等待接收分组传输完成消息的软件应用或客户操作系统。如本文所述,在一些实施方式中,网络接口驱动器处理接收的分组以基于至少一个速率限制策略来确定用于每个分组的传输时间。例如,速率限制策略可以包括速率调整策略或目标速率限制。附加地或可替选地,速率限制策略可以包括与分组的特定类相关联的特定策略或用于分组的特定类的聚合速率。在一些实施方式中,网络接口驱动器基于处理所接收的分组,将与相应分组相关联的标识符存储在与对相应分组确定的传输时间相关联的位置处的时间索引数据结构中。时间索引数据结构可以包括基于单个时间的队列,诸如定时轮或日历队列数据结构,以从多个队列或TCP套接字接收与分组相关联的标识符。可以基于所确定的传输时间插入和提取分组标识符。在一些实施方式中,网络接口驱动器或网络接口卡可以确定已经到达在单个时间索引队列中索引的时间,并且作为响应,传送在与到达时间相关联的位置处的时间索引数据结构中存储的标识符相关联的分组。例如,网络接口驱动器或网络接口卡可以确定已经到达时间t0,因此,网络接口驱动器和/或网络接口卡使与指定t0传输时间的标识符相关联的分组由网络设备的网络接口卡进行传输。在一些实施方式中,在网络接口卡传输分组之后,网络接口驱动器可以将传输完成通知传送回到发起传输分组的应用。通过减少分组处理和传输期间的主机处理功耗,单队列整形能够提供比多队列系统更高的CPU效率。单队列整形系统还能够基于分组的传输策略,实现分组的更准确速率限制和可调度性。例如,利用基于单个时间的队列或日历队列,能够利用由分组生成应用创建的分组时间戳,以基于与分组相关联的速率限制、步调速率、和/或带宽共享策略的组合来调度最佳分组传输时间。本文论述的网络设备和方法能够通过基于速率策略或调度策略时间戳标记每个分组来实现每分组的可缩放流量整形。在一些实施方式中,分组至少最初由始发分组的应用进行时间戳标记。通过在源处对分组时间戳标记,即,通过生成分组的应用,能够减轻对预过滤分组的需求。需要预过滤的设备和方法能够引入昂贵的处理要求或特定的硬件配置,诸如要求多个队列根据一个或多个速率限制策略对分组进行时间戳标记。因此,结合源时间戳的实施方式能够减少由这些设备和方法所使用的处理时间和资源。网络设备和方法能够根据时间戳,通过将单个时间索引数据结构中的、与分组相关联的分组标识符队列,进一步实现每分组的可缩放流量整形。当利用特定传输规则实现时,利用这种方法和单个时间索引数据结构的实施方式可以支持具有最小的处理开销的数以万计的分组流。例如,有效的单一时间索引数据结构可以被配置为避免具有比当前时间,例如“现在”更早或者过去的时间戳的分组队列,因为这些分组应当被立即传送。附加地或可替选地,高本文档来自技高网...

【技术保护点】
1.一种网络设备,包括:网络接口卡,至少一个处理器,存储器;以及网络接口驱动器,所述网络接口驱动器在所述至少一个处理器上执行计算机可读指令,所述网络接口驱动器被配置为:在网络主机的分组层处从多个应用接收分组;防止所述多个应用中的一个发送用于传输的附加分组,直到所述应用接收到传输完成通知,所述传输完成通知指示已经传送了先前转发给所述网络主机的所述分组层的分组;由调度模块处理所接收的分组,以基于至少一个速率限制策略来确定每个分组的传输时间;对待传送的分组中的每个,将与相应分组相关联的标识符存储在时间索引数据结构中的、与对所述分组所确定的所述传输时间相关联的所述时间索引数据结构中的位置处;由所述调度模块确定已经到达在所述时间索引数据结构中索引的时间,并且作为响应,通过所述网络接口驱动器传送下述分组:该分组与在和所述到达时间相关联的位置处的所述时间索引数据结构中存储的标识符相关联;以及在所述网络接口驱动器传送所述分组之后,将传输完成通知传送回到所述应用。

【技术特征摘要】
2017.01.20 US 15/411,3411.一种网络设备,包括:网络接口卡,至少一个处理器,存储器;以及网络接口驱动器,所述网络接口驱动器在所述至少一个处理器上执行计算机可读指令,所述网络接口驱动器被配置为:在网络主机的分组层处从多个应用接收分组;防止所述多个应用中的一个发送用于传输的附加分组,直到所述应用接收到传输完成通知,所述传输完成通知指示已经传送了先前转发给所述网络主机的所述分组层的分组;由调度模块处理所接收的分组,以基于至少一个速率限制策略来确定每个分组的传输时间;对待传送的分组中的每个,将与相应分组相关联的标识符存储在时间索引数据结构中的、与对所述分组所确定的所述传输时间相关联的所述时间索引数据结构中的位置处;由所述调度模块确定已经到达在所述时间索引数据结构中索引的时间,并且作为响应,通过所述网络接口驱动器传送下述分组:该分组与在和所述到达时间相关联的位置处的所述时间索引数据结构中存储的标识符相关联;以及在所述网络接口驱动器传送所述分组之后,将传输完成通知传送回到所述应用。2.如权利要求1所述的网络设备,其中,所述网络接口驱动器被进一步配置为:在防止所述多个应用中的一个发送用于传输的附加分组之前,从所述多个应用中的一个接收预定数目的分组。3.如权利要求1所述的网络设备,其中,所述网络接口驱动器被进一步配置为:接收从在虚拟机、容器执行环境、或者虚拟机和容器执行环境组合中的一个上的多个应用接收的分组。4.如权利要求1所述的网络设备,其中,所述网络接口驱动器进一步被配置为:基于速率调整策略或目标速率限制,确定每个分组的传输时间。5.如权利要求4所述的网络设备,其中,所述速率调整策略进一步包括分组类速率策略和/或聚合速率策略。6.如权利要求5所述的网络设备,其中,所述速率调整策略进一步包括用于处理多个分组流量的加权公平队列策略。7.如权利要求1所述的网络设备,其中,所述网络接口驱动器进一步被配置为:接收包括请求传输时间的分组,所述请求传输时间是分组在所述分组层处被接收之前且在被所述调度模块处理之前由所述多个应用中的一个分配给该分组的。8.如权利要求7所述的网络设备,其中,所述网络接口驱动器进一步被配置为:基于至少一个速率限制策略被超出并且调用与所接收的分组相关联的速率限制算法,来确定更新传输时间。9.如权利要求8所述的网络设备,其中,所述网络接口驱动器进一步被配置为:查找相关联的速率限制算法,所述相关联的速率限制算法包括识别与所接收的分组相关联的速率限制算法的哈希表或映射。10.如权利要求1所述的网络设备,其中,执行计算机可读指令的...

【专利技术属性】
技术研发人员:卡洛·孔塔瓦利南迪塔·杜基帕蒂艾哈迈德·赛义德·穆罕默德·陶菲克·伊萨维陶塔斯·瓦兰丘什
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:美国,US

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

1