用于管理端点资源和拥塞缓解的数据中心网络上的动态网络接收器驱动的数据调度的制作方法

未命名 10-18 阅读:100 评论:0

用于管理端点资源和拥塞缓解的数据中心网络上的动态网络接收器驱动的数据调度


背景技术:

1.在大多数网络输送协议中,网络发射器负责对分组业务进行定速。发射器可监测拥塞事件,并且基于由更高级系统设定的策略来定速消息传输。在一些输送协议中,可使用基于高延迟会合的网络握手来管理接收器处的incast业务,其中从多个发射器接收分组(例如,多对一通信模式)。这种方法成本很高,尤其是对于具有大半径和往返时间(rtt)的网络。要使用这种技术,发射器和发起消息的应用必须事先知道消息的大小和网络的rtt。虽然rtt在过度供应的网络中可能是恒定的,但当网络未完全供应时,rtt可能变化很大,这会影响网络通信性能。


技术实现要素:

2.提供本发明内容是为了以简化形式介绍一些概念,这些概念将在下文的具体实施方式中另外描述。该发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
3.本文描述了方法、系统和存储用于执行方法的代码的计算机可读介质。在一个方面,在网络端点接收器中执行一种用于由网络端点的接收器控制分组流的方法。接收由发射器根据推模式通过网络发射的分组业务中的分组,使得发射器控制通过网络到接收器的分组传输的定速。监测与分组业务相关的一个或多个特性。将所监测的一个或多个特性与接收性能参数进行比较。基于该比较,做出从推模式切换至拉模式的决定。向发射器发射拉模式请求分组,其中拉模式请求分组指示由发射器根据拉模式通过网络到接收器的后续分组传输的定速。
4.实施例的另外特征和优点,以及各种实施例的结构和操作,将在下文中参考附图进行详细描述。应注意,该方法和系统不限于本文所描述的具体实施例。本文仅出于说明目的而呈现这类实施例。基于本文所含的教导,附加实施例对于相关领域(一种或多种)的技术人员将是显而易见的。
附图说明
5.并入本文并构成说明书的一部分的附图图示了本技术的实施例,并且与说明书一起另外用于解释实施例的原理,并且使相关领域的技术人员能够制造和使用实施例。
6.图1是根据示例实施例的用于由网络接口控制器(nic)端点的接收器来进行分组业务定速的动态拉模式控制的系统的框图。
7.图2是根据示例实施例的网络接口控制器端点的接收器动态地控制来自发射器的分组传输的方法的流程图。
8.图3是根据示例实施例的系统的框图,该系统包括具有用于动态地控制向接收器的分组传输的定速的拉模式管理器的接收器。
9.图4是根据示例实施例的接收器中用于控制从发射器向接收器的分组传输的定速
的方法的流程图。
10.图5是根据示例实施例的用于监测与来自多个接收器的分组业务相关的一个或多个特性的方法的流程图。
11.图6是根据示例实施例的接收器通过发送多个拉模式请求分组(每个拉模式请求分组发送至相应的发射器)来控制来自多个发射器的分组传输的方法的流程图。
12.图7是根据示例实施例的用于基于由接收器的拉模式控制以不同速率从多个发射器向同一接收器发射分组的方法的流程图。
13.图8是根据示例实施例的接收器中用于监测与接收的分组业务相关的特性的方法的流程图。
14.图9是根据示例实施例的用于监测与分组业务相关的一个或多个特性的方法的流程图。
15.图10是根据示例实施例的通过随时间从接收器向发射器发射多个拉模式请求分组来控制分组传输的接收器的方法的流程图。
16.图11是根据示例实施例的接收器中用于基于发送至发射器的拉模式请求分组的内容来控制发射器的传输的各方面的方法的流程图。
17.图12是根据示例实施例的第一网络端点的发射器中用于根据来自第二网络端点的接收器的拉模式控制分组来发射分组的方法的流程图。
18.图13是可用于实施各种实施例的示例基于处理器的计算机系统的框图。
19.根据下文结合附图所述的详细说明,本文所描述的实施例的特征和优点将变得更加明显,其中相同的附图字符始终标识对应的元件。在附图中,相同的附图标号一般指示相同的、功能性类似的和/或结构上类似的元件。元件首次出现的附图由对应附图标号中最左边的数字(一个或多个)表示。
具体实施方式
20.i.导言
21.本说明书和附图公开了一个或多个实施例,这些实施例结合了所公开实施例的特征。实施例的范围不仅限于本文所公开的方面。所公开的实施例仅仅举例说明了预期的范围,并且所公开的实施例的修改版本也包括在内。实施例由所附权利要求定义。
22.说明书中对“一个实施例(one embodiment)”、“一个实施例(an embodiment)”、“一个示例实施例(an example embodiment)”等的引用,指示所描述的实施例可包括特定的特征、结构或特性,但每个实施例不一定包括特定的特征、结构或特性。此外,这类短语不一定指同一实施例。此外,当结合实施例描述特定特征、结构或特性时,认为结合其他实施例实现这类特征、结构或特性在本领域技术人员的知识范围内,无论是否明确描述。
23.此外,应理解,空间描述(例如,“上方(above)”、“下方(below)”、“上(up)”、“左(left)”、“下("down)”、“顶部(top)”、“底部(bottom)”、“竖直(vertical)”、“水平(horizontal)”等仅用于说明的目的,并且本文所描述的结构的实际实施方式可按任何取向或方式在空间上布置。
24.在论述中,除非另有说明,否则形容词诸如“基本上(substantially)”和“约(about)”修饰本公开的实施例的一个或多个特征的条件或关系特性,应理解为意指条件或
特性被定义为在公差内,该公差对于实施例的操作是可接受的。
25.许多示例实施例描述如下。应注意,本文所提供的任何章节/小节标题均不是限制性的。实施例在整个文档中被描述,并且任何类型的实施例可被包括在任何章节/小节下。此外,在任何章节/小节中公开的实施例可按任何方式与在相同章节/小节和/或不同章节/小节中描述的任何其他实施例相结合。
26.ii.示例实施例
27.本公开涉及在不可靠的数据中心网络上运行的可靠输送的拥塞管理。如上所述,在大多数网络输送协议中,网络发射器负责对分组传输进行定速。接收器可按确认(ack)、否定确认(nack)或拥塞通知分组(cnp)的形式将拥塞事件通信回发射器。
28.基于会合的网络握手是一种用于在接收器处管理incast的技术,然而,对于具有大半径和往返时间的网络,这种类型的握手引入的延迟可能是昂贵的。为了使用这种技术,发射器和始发应用需要获取和使用消息大小和网络往返时间(rtt)的先验知识。在过度供应的网络中,往返时间可为恒定的,然而,当网络未完全供应时,往返时间可变化,从而影响性能。
29.本公开描述了一种高性能网络输送协议的实施例,该协议被设计成以非常有效的方式实现高吞吐量(即,有用信息比特的速率,其可能不包括重发的分组或开销比特),并且恢复因拥塞事件造成的数据丢失。实施例解决了接收器处的incast问题,而不会给应用带来获取网络rtt或消息大小的先验知识的负担。此外,实施例可用于解决因资源约束和资源利用而造成的端点处的拥塞。
30.用于实施分组传输的定速的动态接收器控制的实施例可按多种方式实施。例如,图1是根据示例实施例的用于由网络接口控制器(nic)端点的接收器来进行分组业务定速的动态拉模式控制的系统100的框图。如图1所示,系统100包括计算设备180、计算设备182、计算设备184和网络架构120。计算设备180包括nic端点102、应用110和存储器112。nic端点102包括接收器104和发射器108。接收器104包括拉模式管理器106。计算设备182包括nic端点122、应用130和存储器132。nic端点122包括接收器124和发射器128。计算设备184包括nic端点142、应用150和存储器152。nic端点142包括接收器144和发射器148。系统100详细描述如下。
31.如以下关于图13的详细描述,计算设备180、182和184均可包括任何合适的计算设备和/或计算设备的任何合适的网络接口控制器,诸如固定计算设备(例如,台式计算机或个人计算机)、移动计算设备(例如,设备、个人数字助理(pda)、膝上型计算机、笔记本计算机、平板计算机,诸如apple ipad
tm
、上网本等)、移动手机(例如,手机、诸如apple iphone的智能手机、实施android
tm
操作系统的手机;windows手机等)、可穿戴计算设备(例如,包括诸如glass
tm
、oculus vr,llc的oculus等的智能眼镜的头戴式设备)、游乐器/系统(例如,nintendo等)、电器、机顶盒等。
32.nic端点102、122和142均可包括具有发射器和/或接收器的网络接口控制器,该发射器和/或接收器被配置为连接至一个或多个网络并通过一个或多个网络进行通信,该一个或多个网络诸如局域网(lan)、无线局域网(wlan)和/或广域网(wan)。例如,网络架构120
可包括平台或网络拓扑,其中诸如交换机和端点的节点被互连至其他节点,并且被配置为基于任何合适的通信协议进行通信。在一个示例中,网络架构120包括以太网,其中利用工业标准协议和以太网交换机在nic端点102、122和/或142之间通信消息。nic端点102、122和/或142中的每一个均可具有输送协议服务,以便为不可靠的数据中心网络提供可靠性。为了提供可靠性服务,每个nic端点(例如,nic端点102)可使用可在多个分组流之间共享的硬件资源。可为每分组流分配的资源中的一些资源可包括片外随机存取存储器(ram)分组缓冲器,该分组缓冲器包括可用带宽(例如,暂时的或持续的)、诸如指针、定时器等的硬件上下文,其可用于跟踪选择性确认(例如,selack)、丢失分组(例如,nack)、重排序引擎和连接跟踪状态(例如,连接跟踪表)。
33.应用130可包括软件应用,该软件应用被配置为经由nic端点122和网络架构120,与经由nic端点102的应用110进行通信。例如,nic端点122可被配置为格式化来自应用130的消息,以便通过网络架构120输送至接收器104。类似地,应用150可被配置为经由nic端点142和网络架构120,与经由nic端点102的应用110进行通信。接收器104可被配置为经由网络架构120从发射器128和/或发射器148接收去往应用110的分组业务。发射器108可被配置为经由网络架构120向接收器124和/或接收器144发射分别去往应用130和/或150的分组业务。计算设备180、182和/或184可各自被配置为处理经由网络架构120通信的多个应用。在一些实施例中,nic端点102、122和/或142可包括一个或多个本地cpu(未示出)。
34.存储器112、存储器132和/或存储器152均可包括一个或多个存储设备。nic端点102可与应用110共享存储器112,或者存储器112可包括由nic端点102和应用110使用的单独的存储设备。在一些实施例中,存储器112或存储器112的一部分可在计算设备180的外部。下文参考图13更详细地描述了可在系统100中使用的各种形式的存储器。
35.拉模式管理器106可被配置为监测与接收器104经由网络架构120接收的分组业务相关的一个或多个特性,并且将所监测的特性与被配置用于在接收器104处接收和处理分组业务的各种接收性能参数(例如,性能阈值)进行比较。拉模式管理器106可基于比较结果决定将分组传输速率定速从推模式切换至拉模式,或者从拉模式切换至推模式。拉模式管理器106可按各种方式实施,例如,作为用逻辑门实施的硬件级状态机、实行固件代码的嵌入式处理器、本地cpu和/或计算设备180的主cpu(未示出)。下文将更详细地描述拉模式管理器106。
36.接收器104可按多种方式操作,以执行其功能。例如,图2是根据示例实施例的用于端点接收器动态地控制来自发射器的分组传输的方法的流程图200。在一个实施例中,接收器104可根据流程图200进行操作。流程图200参考图1和图3描述如下。
37.图3是根据示例实施例的系统300的框图,该系统包括具有用于动态地控制向接收器的分组传输的定速的拉模式管理器的接收器。例如,系统300包括接收器104、发射器108、网络架构120、接收器124、发射器128和发射器148。接收器104包括拉模式管理器106、运行中的重排序缓冲器310、接收器连接跟踪表312、接收上下文数据314、接收性能参数316和传输管理器318。发射器128包括发射器连接跟踪表330、仲裁器332、拉模式传输管理器334、ram 336和发送缓冲器338。发射器148包括发射器连接跟踪表350、仲裁器352、拉模式传输管理器354、ram 356和发送缓冲器358。图3中还示出了分组业务308、拉模式请求分组320、拉模式请求322和分组传输340。在一些实施例中,系统300可在系统100中实施。为了说明的
目的,下面参考图2的流程图200详细描述系统300。
38.一般而言,接收器104可包括任何合适的逻辑、电路系统、接口和/或代码,其可被配置为经由一个或多个端口接收和/或处理来自一个或多个其他nic端点(诸如nic端点122和/或nic端点142)的发射器的分组。在一些实施例中,计算设备180的一个或多个应用(例如,应用110)可被配置为与计算设备182的一个或多个应用(例如,应用130)和/或计算设备184的一个或多个应用(例如,应用150)同时通信消息。
39.流程图200从步骤202开始。在步骤202,将接收器初始化。例如,nic端点102的配置管理代理(未示出)可被配置为基于可能的发送器或发射器的数目来配置可用资源。接收器104的资源可包括例如接收器连接跟踪表312、诸如运行中的重排序缓冲器310的分组缓冲器、以及基于分组丢弃而被跟踪的重排序状态的数目,这可能受到容量和/或带宽的限制。接收性能参数316可被配置为包括例如在接收器处被丢弃的允许分组数目的阈值、突发速率、网络拥塞事件、资源使用等。nic端点182和184的配置管理代理可被配置为分别将发射器128和/或发射器148初始化。例如,可配置发射器资源,诸如发射器连接跟踪表330和/或350,诸如ram 336和/或356的分组缓冲器,以及发送缓冲器338和/或358。配置信息中的一些可在多个发射器或接收器之间共享。
40.在步骤204中,可接收传入分组业务,并且可监测传入分组业务的特性,其中发射器根据推模式控制分组传输的定速。例如,从发射器128和/或发射器142发射至接收器104的分组可按急切方式(eager manner)发送,至少在最初是这样。在这点上,分组可由发射器“推”向接收器。当系统300的发射器和接收器以推模式(即,急切方式)操作时,发射器可基于由更高级软件(例如,nic端点122或计算设备182的)提供的策略来确定传输速率以对分组传输进行定速。例如,在推模式中,接收器104可跟踪传入业务,并且将业务的特性与编程的阈值进行比较。从接收器104到发射器128的通知,诸如selack和nack,可基于运行中的(inflight)重排序缓冲器310的能力或容量等来生成。
41.在一些情况下,从应用130或应用150发送至应用110的消息可仅使用推模式整体发射。例如,仅推模式消息可按由发射器(例如,分别是发射器128或148)设定的速率在分组中发射。在一些实施例中,仅推模式消息可为长度低于指定阈值的较短消息,或者是延迟敏感度被确定为高于某一级别的消息,并且因此可使用分组传输的推模式控制来整体发射。
42.一般而言,可在发射器和接收器(例如,发射器128和接收器104)之间建立连接,其中在连接的每一侧维持连接状态,以跟踪用于连接的资源以及分组传输和分组接收的进度。例如,发射器128可从应用130接收向应用110发射信息或消息的请求。作为响应,发射器128可对该消息进行细分并将消息数据格式化成用于传输的分组。发射器128可为包括发射器连接跟踪表330中的连接信息的消息配置连接。如果已经建立了适当的连接,则应用130可向输送层指示将发射器连接跟踪表330中的哪个现有连接用于所请求的信息或消息的传输。连接可通过连接标识符(id)、表索引、连接句柄等在连接跟踪表(例如,发射器连接跟踪表330或接收器连接跟踪表312)中标识。填充在发射器连接跟踪表330中的连接可包括信息或元数据,诸如连接id、始发应用id、目的应用id、始发发射器的地址、接收器的目的地址、消息id等。来自发射器连接跟踪表330的各种信息和/或附加信息可被填充为发射至接收器104的分组中的报头信息,以便将分组导航至正确的接收器并与接收器共享关于连接的信息。要发射(或重发)的分组可存储在发送缓冲器338中,并且作为分组传输340经由网络架
构120发射。接收器104可接收分组业务308中发射的分组,将分组存储在运行中的重排序缓冲器310中,并且用接收的分组的元数据或分组报头信息填充接收器连接跟踪表312。以这种方式,发射器连接跟踪表330和接收器连接跟踪表312可包括关于发射器128和接收器104之间的每个连接的大部分相同信息。接收器104还可用关于连接的接收的分组的附加信息来填充接收上下文数据314,该附加信息诸如所使用的传输速率、接收的分组大小、接收的分组序列号、丢失的分组序列号和/或网络拥塞信息。
43.当接收器104接收到分组时,可将分组的报头中的连接id和/或目的应用id与接收器连接跟踪表312中的相同信息进行匹配,并且将来自接收的分组的数据转发至标识的应用(例如,应用110)。接收器104可生成确认,诸如分组的selack和/或nack,并且经由发射器108、网络架构120和接收器124将确认发送至发射器128。发射器128可利用这些确认来确定何时重发分组以及重发哪些分组。
44.在步骤206中,基于传入分组业务的监测特性,向发射器发射拉模式请求分组,以控制发射器的分组传输的定速。例如,拉模式请求管理器106可监测传入业务的特性,并且确定用于从发射器(例如,从发射器128或148)向接收器104的连接的分组传输的优选传输速率。传入业务的特性可与接收上下文数据314一起存储,并且可包括网络拥塞事件、突发速率、分组丢弃、分组处理资源使用(例如,接收器104的资源使用,诸如分组缓冲器、可用带宽、接收上下文表资源、定时器、指针、重排序引擎、连接跟踪状态、外围组件互连快速(pcie)总线容量等),等等。可将传入业务的特性与接收性能参数316(例如,网络拥塞事件、突发速率、接收器处的分组丢弃、接收器处的资源使用等)进行比较。当已经违反阈值时(例如,资源使用、网络拥塞和/或丢弃的分组的数目过高),拉模式管理器106可被配置为确定分组传输的适当速率,并且经由发射器108、网络架构控件120和接收器124向发射器128发射拉模式请求分组320,以控制发射器128向接收器104的分组传输的定速(例如,调节传输速率或控制传输分组的其他方面)。在一些实施例中,不是在仅用于拉模式请求的单独分组中发送拉模式控制信息,而是拉模式请求控制信息可被包括作为被发射至发射器108的另一类型分组的一部分,例如确认(ack)分组。这类ack分组或携带拉模式控制信息的其他类型的分组可被称为拉模式请求分组320。随时间的推移,多个拉模式请求分组320可被发送至发射器128,使得传输速率可随时间而更新。此外,拉模式管理器106可监测来自一个或多个附加发射器(例如,发射器148和/或其他发射器)的其他连接上方的分组业务,并且向这些发射器发射其他拉模式请求分组320,以控制它们的分组传输速率和传输的其他方面。
45.更广泛地说,连接的传输最初可在推模式下以由发射器确定的速率开始。基于某个标准,接收器可动态地切换至一种模式,在该模式中,它向发射器发出拉模式请求分组。拉模式请求可基于接收器看到的分组业务特性,向发射器请求或分配期望的传输速率或带宽。拉模式请求可控制发射器改变其分组传输定速(例如,其传输速率或带宽)。通过动态地将握手从推模式(即,急切模式)切换至拉模式,接收器有效地控制其接收和/或消耗数据的速率。接收器可向多个发射器发射单独的拉模式请求,从而同时调节来自多个发射器的incast业务。此外,接收器可通过随时间向一个或多个发射器发送多个拉模式请求分组来随时间更新传输速率。以这种方式,传输速率可由接收器随时间和每个发射器或每个连接来控制。
46.接收器104可按多种方式操作,以执行其功能。例如,图4是根据示例实施例的接收
器中用于控制从发射器向接收器的分组传输的定速的方法的流程图400。在一些实施例中,流程图400可作为流程图200(图2)的一部分来执行,诸如在步骤202之后。在一个实施例中,接收器104可根据流程图400进行操作。流程图400参考图1和图3描述如下。
47.流程图400从步骤402开始。在步骤402中,由发射器根据推模式通过网络发射的分组业务中接收分组,使得发射器控制通过网络向接收器的分组传输的定速。例如,发射器128可被配置为根据发射器连接跟踪表330中的条目,经由网络架构120将分组传输340从发送缓冲器338发射至接收器104。最初,发射器128可被配置为以推模式(即,急切模式)发射分组。当在推模式下操作时,发射器128可被配置为以基于nic端点122或计算设备182的更高级软件所提供的策略的速率来对分组传输340进行定速。可在发射器128和接收器104之间建立连接,其中接收器连接跟踪表312可被配置为维护接收器104的连接。发射器连接跟踪表330可被配置为维持发射器128的连接。接收器104可被配置为接收分组业务308中的发射的分组,将接收的分组存储在运行中的重排序缓冲器310中,并且用接收的分组的元数据或分组报头信息填充接收器连接跟踪表312。
48.在步骤404中,可监测与分组业务相关的一个或多个特性。例如,拉模式管理器106可被配置为监测与接收和处理分组业务308相关的一个或多个特性,以确定网络端点102是否资源不足。这些特性可包括网络资源(例如,拥塞、带宽、突发速率等)、接收器104资源(例如,接收器连接跟踪表312容量、定时器、指针等)、nic端点122资源(例如,入口队列、运行中的重排序缓冲器、其他缓冲器和存储器等),和/或计算设备180的资源(例如,存储器、总线可用性等)的状态中的一项或多项。附加的监测特性可包括接收的分组大小、接收的分组序列号、丢失的分组序列号、指针、定时器、selack和/或nack(例如,指示分组丢弃)。拉模式管理器106可观察到来自交换架构120的持续分组丢弃或显式拥塞通知(ecn)标记。接收器缺少许多不同的资源可导致分组丢弃。在一些实施例中,分组丢弃可表现为网络拥塞事件,即使导致分组丢弃的问题发生在nic端点102处。当数据消费者(即资源)不能跟上分组数据的传入速率时,也可发生分组丢弃。例如,数据的消费者可包括计算设备180的pcie总线后面的cpu,或者本地附加的加速器(未示出)。此外,突发业务和持续的小分组会阻塞入口队列,导致尾部丢弃,这也可被分类为耗尽nic端点102的资源。拉模式管理器106可被配置为用与分组业务相关的一个或多个特性来填充接收上下文数据314。
49.在步骤406中,可将所监测的一个或多个特性与接收性能参数进行比较。例如,拉模式管理器106可被配置为将一个或多个所监测的特性(例如,来自接收上下文数据314)与一个或多个接收性能参数316进行比较。接收性能参数316可包括与所监测的一个或多个特性相关的指示符和/或阈值。例如,参数阈值可对应于一个或多个资源接收和处理来自一个或多个发射器(例如,发射器128或148)的分组的能力。此外,跨越一个或多个资源的接收性能阈值可指示何时可预期足够的服务质量与受损的服务质量。
50.在步骤408中,基于比较,可做出从推模式切换至拉模式的决定。例如,拉模式管理器106可使用应用于在接收器104处监测的一个或多个特性(如上所述)的标准,来决定从推模式切换至拉模式。例如,用于改变至拉模式的标准可包括(1)检测持续超过指定时间阈值的分组丢弃的指定级别,(2)从交换架构120接收显式拥塞通知(ecn)标记,或者(3)检测特定资源的可用性级别低于阈值。用于从拉模式切换至推模式的标准可基于潜在的、即将发生的或检测到的接收损伤。拉模式管理器106可基于nic端点102处的任何先前描述的资源
的可用性或状态来决定切换至拉模式。拉模式可应用于接收器连接跟踪表312中指定的一个或多个连接。
51.在步骤410中,向发射器发射拉模式请求分组,其中拉模式请求分组指示由发射器根据拉模式通过网络向接收器的后续分组传输的定速。例如,响应于拉模式管理器106决定从推模式切换至拉模式,传输管理器318可被配置为控制发射器108经由网络架构120和接收器124向发射器128发射拉模式请求分组320。拉模式请求分组320可包括控制信息,诸如由发射器128根据拉模式通过网络架构120发射至接收器104的后续分组传输340的定速(例如,比特率、分组计数、分组序列号范围等)。在一些实施例中,不是在仅用于拉模式请求的单独分组中发送该拉模式请求控制信息,而是拉模式请求控制信息可被包括作为被发射至发射器108的另一类型分组的一部分,诸如确认(ack)分组。这类ack分组或携带拉模式控制信息的另一类型的分组可被称为拉模式请求分组320。
52.拉模式请求分组320中可携带各种类型的信息。例如,拉模式请求分组320可向发射器128(或其他发射器)指定要向接收器104发射的字节数、要使用的传输速率和/或预期传输速率。此外,拉模式请求分组320可包括暂停传输指示符和/或暂停传输多长时间(例如,以定时器或信号量的形式)。发射器128可在接收到该分组时停止其当前的传输。其他拉模式请求分组320可指示从指定的分组序列号重发。例如,拉模式管理器106可跟踪在分组被丢弃之前接收的最后一个良好的分组序列号。发射器128可基于拉模式请求分组中指定的序列号(一个或多个)来选择性地重发分组。此外,发射器128可继续传输,直至可在拉模式请求分组320中指定的序列号。在接收器104处接收的序列号大于该指定编号的任何分组均可能被丢弃。这些序列号界限可在拉模式请求分组320中设定,以使接收器104的容量能够成功地吸收传入数据。如果接收器有能力接收更多的分组,它可通告更多数目的分组。接收器104可被配置为丢弃它接收的一些分组,以避免资源溢出。
53.在一些实施例中,发射器128(和/或其他发射器)可被配置为在推模式下常规地开始发射分组。例如,一组分组传输最初可按发射器确定的速率发送。在推模式控制期间,接收器104可被配置为监测传入分组业务,将其与编程的阈值进行比较,并且基于运行中的重排序缓冲器310的能力生成selack或nack。发射器128可继续在这种推模式下发射,直至接收器104控制发射器切换至拉模式,其中接收器104控制发射器128使用的传输速率。由于拉模式请求分组320是以尽力而为的方式发送的,所以在由接收器104发送的拉模式请求分组320在网络架构120中的传输中被丢弃之后,发射器128可继续根据推模式发射分组。在这种情况下,接收器104可被配置为丢弃在拉模式请求后接收的并且根据推模式发射的这类分组,以避免任何资源溢出。
54.如上所述,向发射器128或其他发射器发射拉模式请求分组320,可对接收器104处的网络拥塞检测和/或资源争用做出反应。一旦接收器104和发射器128切换至数据传输控制的拉模式,控制模式可保持在拉模式,直至完整的消息已经被传递至接收器104,或者直至拥塞事件已经得到缓和。例如,一旦接收器的本地资源被释放或者网络架构120已经达到稳定状态,控制模式可切换回推模式。在拉模式控制期间,拉模式管理器106可被配置为继续监测与传入分组业务308相关的特性,并且继续控制发射器128(和/或其他发射器)使用后续拉模式请求分组320来更新传输速率。在一些实施例中,可周期性地发送后续拉模式请求分组,潜在地具有请求中指示的不同传输速率或带宽。以这种方式,拉模式管理器106可
通过响应于在接收和/或处理分组和分组数据中检测到的、潜在的或即将发生的损伤来调整传输速率,而改进接收器104处的接收性能质量,如在与分组业务相关的所监测特性中所指示的。
55.拉模式管理器106可按多种方式操作,以执行其功能。例如,图5是根据示例实施例的用于监测与来自多个接收器的分组业务相关的一个或多个特性的方法的流程图500。流程图500可作为流程图400(图4)的一部分来执行,诸如在步骤404期间。在一个实施例中,拉模式管理器106可根据流程图500进行操作。流程图500参考图1和图3描述如下。
56.流程图500包括步骤502。在步骤502中,所监测的一个或多个特性包括以下中的至少一项:可用于从一个或多个附加发射器向接收器传输的分组业务,或者由接收器从一个或多个附加发射器接收的分组业务。例如,拉模式管理器106可被配置为监测源自发射器128的当前分组业务,并且寻找来自附加发射器的分组业务。尽管仅示出了两个发射器128和148用于向接收器104发射分组业务,但可存在被配置为向接收器104发射分组的附加的这类发射器。拉模式管理器106可被配置为通过监测在接收器连接跟踪表312中建立的用于与发射器148(或其他发射器)通信的新连接来标识可用于传输的附加分组业务。另选地或附加地,拉模式管理器可监测来自发射器148(或其他发射器)的新推模式请求(即,分组发射请求)。此外,拉模式管理器106可被配置为通过监测分组业务308来标识从一个或多个附加发射器(例如,发射器148或附加发射器)接收的分组业务。
57.拉模式请求管理器106和传输管理器318可按多种方式操作,以执行其功能。例如,图6是根据示例实施例的接收器通过发送多个拉模式请求分组(每个拉模式请求分组发送至相应的发射器)来控制来自多个发射器的分组传输的方法的流程图600。
58.流程图600可作为流程图400(图4)的一部分执行,诸如在步骤410期间或之后。在一个实施例中,拉模式管理器106和/或传输管理器318可根据流程图600进行操作。流程图600参考图1和图3描述如下。
59.流程图600包括步骤602。在步骤602中,将相应的拉模式请求分组发射至一个或多个附加发射器中的每一个,其中每个相应的拉模式请求指示由一个或多个附加发射器中的相应一个经由网络向接收器的后续分组传输的定速。例如,在由接收器104从多个发射器接收到多个推模式请求分组(或多个发射请求)的情况下(例如,来自单独的发射器128和发射器148或者与一个或多个附加发射器(未示出)一起的incast流),拉模式管理器106可被配置为对这些发射器中的每一个的分组业务进行定速。拉模式管理器106和传输管理器318可被配置为经由发射器108向每个请求发射器发射单独的拉模式请求分组320,以调节其各自的分组传输速率,从而控制incast。拉模式管理器106可确定允许哪些发射器向接收器104发射分组,以及每个发射器可按何种速率发射,其中不同的发射器可按不同的速率发射分组。传输管理器318可控制发射器108经由网络架构120将多个拉模式请求分组320发射至它们各自的发射器(例如,单独的发射器128和发射器148或者与一个或多个附加发射器一起)。
60.发射器128和发射器148单独地或与一个或多个附加发射器一起以各种方式操作,以执行其功能。例如,图7是根据示例实施例的基于由接收器的拉模式控制以不同速率从多个发射器向同一接收器发射分组的方法的流程图700。流程图700可作为流程图600(图6)的一部分来执行,诸如在步骤602之后。在一个实施例中,发射器128和发射器148单独地或者
与一个或多个附加发射器一起根据流程图700进行操作。流程图700参考图1和图3描述如下。
61.流程图700从步骤702开始。在步骤702,发射器和一个或多个附加发射器基于所发射的拉模式请求分组以不同的传输速率向接收器发射。例如,发射器128和发射器148单独地或者与一个或多个附加发射器一起各自被配置为通过根据它们各自的拉模式请求分组的规范经由网络架构120以它们各自的速率(例如,不同的速率)向接收器104发射分组来接收和响应它们各自的拉模式请求分组。
62.拉模式管理器106可按多种方式操作,以执行其功能。例如,图8是根据示例实施例的接收器中用于监测与接收的分组业务相关的特性的方法的流程图800。例如,流程图800可在流程图400(图4)的步骤404期间执行。在一个实施例中,拉模式管理器106可根据流程图800进行操作。流程图800参考图1和图3描述如下。
63.流程图800包括步骤802。在步骤802中,所监测的一个或多个特性包括以下中的至少一项:网络拥塞事件、突发速率、接收器处的分组丢弃或者接收器处的资源使用。例如,拉模式管理器106可被配置为监测分组业务308和/或接收器104、nic端点102和计算设备180的各种资源利用率(如上所述)。在这点上,拉模式管理器106可被配置为监测网络架构120拥塞事件、网络架构120的突发速率或带宽、接收器104处的分组丢弃或者针对接收器104处的资源的资源使用。
64.拉模式管理器106可按多种方式操作,以执行其功能。例如,图9是根据示例实施例的用于监测与分组业务相关的一个或多个特性的方法的流程图900。例如,流程图900可在流程图400(图4)的步骤406期间执行。在一个实施例中,拉模式管理器106可根据流程图900进行操作。流程图900参考图1和图3描述如下。
65.流程图900包括步骤902。在步骤902中,接收性能参数包括针对以下中的至少一项的编程阈值:一个或多个网络拥塞事件、突发速率、接收器处的分组丢弃或者接收器处的一个或多个资源的使用。例如,拉模式管理器106可被配置为将所监测的与分组业务相关的一个或多个特性与接收性能参数进行比较,以确定何时切换至、维持或结束对发射至接收器104的分组的传输速率的拉模式控制。
66.拉模式管理器106和/或传输管理器318可按多种方式操作,以执行其功能。例如,图10是根据示例实施例的通过随时间从接收器向发射器发射多个拉模式请求分组来控制分组传输的接收器的方法的流程图1000。例如,流程图1000可在流程图400(图4)的步骤410之后执行。在一个实施例中,拉模式管理器106和/或传输管理器318可根据流程图1000进行操作。流程图1000参考图1和图3描述如下。
67.流程图1000包括步骤1002。在步骤1002中,随时间向发射器发射多个拉模式请求分组,以随时间改变带宽或传输速率中的至少一项。例如,一旦拉模式管理器106建立了与发射器128的拉模式控制,它可被配置为继续在该模式下操作,直至消息的传输完成、资源被释放和/或网络拥塞得到缓和。在此之前,拉模式管理器106可被配置为在拉模式下维持分组传输控制。例如,拉模式管理器106可继续监测与接收器108正在接收的分组业务308相关的一个或多个特性,和/或将所监测的特性与接收性能参数316进行比较。基于监测和/或比较的结果,拉模式管理器106可被配置为决定改变发射器128的传输速率和/或传输的其他方面(例如,要发送的分组的数目、开始分组流的分组序列号等),并且相应地生成拉模式
请求分组320数据。传输管理器318可被配置为控制发射器108向发射器128发射拉模式请求分组320,以控制从发射器128向接收器104的后续分组传输340。可生成另外的后续拉模式请求分组320并将其发射至发射器128,以随时间修改传输速率并控制来自发射器128的传输。这些后续分组传输可响应于与接收的分组业务相关的特性的变化而被周期性地或非周期性地发送。
68.拉模式管理器106和/或传输管理器318可按多种方式操作,以执行其功能。例如,图11是根据示例实施例的接收器中用于基于发送至发射器的拉模式请求分组的内容来控制发射器的传输的各方面的方法的流程图1100。例如,流程图1100可在流程图400(图4)的步骤408期间执行。在一个实施例中,拉模式管理器106和/或传输管理器318可根据流程图1100进行操作。流程图1100参考图1和图3描述如下。
69.流程图1100包括步骤1102。在步骤1102中,拉模式请求分组包括以下中的至少一项:暂停分组传输的指示、暂停分组传输多长时间的指示、基于序列号重启分组传输的指示、基于序列号集选择性地重发分组的指示、继续分组传输直至达到指定序列号的指示、每次传输的比特或字节数的指示、以及传输速率的指示。如上所述,拉模式管理器106可被配置为决定对于发射器128(和/或附加发射器)的分组传输340从推模式传输控制切换至拉模式传输控制,并且可生成拉模式请求分组320信息以发起和/或改变传输速率和/或传输的其他方面。作为响应,传输管理器318可被配置为控制发射器108向发射器128发射拉模式请求分组320,其中拉模式请求分组320可包括上述项目中的至少一项。
70.发射器128可按多种方式操作,以执行其功能。例如,图12是根据示例实施例的第一网络端点的发射器中用于根据来自第二网络端点的接收器的拉模式控制分组来发射分组的方法的流程图1200。在一些实施例中,流程图1200可结合流程图400(图4)来执行。在一个实施例中,发射器128可根据流程图1200进行操作。流程图1200参考图1和图3描述如下。
71.流程图1200从步骤1202开始。在步骤1202中,可通过网络向第二网络端点的接收器发射分组,使得由发射器根据推模式来控制分组传输的定速。例如,发射器128可被配置为通过网络架构120向网络端点102的接收器104发射分组(例如,分组传输340)。来自发射器128的分组传输的定速可由发射器128控制。
72.在步骤1204中,可基于发射连接跟踪表中的条目确定下一发射请求,其中发射连接跟踪表包括以下中的至少一项:一个或多个新发射请求、一个或多个拉模式请求和一个或多个重传请求。例如,仲裁器332可被配置为确定下一发射请求,以便调度要经由网络架构120发射至诸如接收器104的接收器的下一分组或下一组多个分组。发射器连接跟踪表330可被配置为指示哪个请求是下一要处理的请求以及对应分组流的各种属性。仲裁器332可被配置为与发射器连接跟踪表330接口,并且从该表中选择下一未完成的发射请求,其中该表可包括新发射请求、拉模式请求和重传请求中的至少一项。新发射请求可由应用130或另一个应用生成,以便将消息发射至计算设备180的应用110。拉模式请求可由拉模式管理器106生成,并且经由网络架构120发射至发射器128,用于控制发射器128发射分组的传输速率或其他方面。重传请求可基于接收的nack或selack,或者定时器。
73.在步骤1206中,响应于仲裁器确定下一发射请求是来自第二网络端点的接收器的拉模式请求,为下一发射请求确定:拉模式请求信息,和用于与第二网络端点的接收器通信的网络条件;以及根据拉模式请求信息和网络条件来控制由发射器向第二网络端点的接收
器的分组传输的定速。例如,仲裁器332可被配置为确定在来自接收器104的拉模式请求分组320中接收的传输参数。传输参数可包括要使用的传输速率、要发射的字节数、预期传输速率、暂停传输指示符、可为定时器或信号量形式的暂停传输多长时间的指示符、用于从指定分组序列号重启传输的指示符、其他分组序列号界限等中的一项或多项。发射器128可被配置为根据所选择的拉模式请求的传输参数来控制向接收器104的分组传输的定速。在一些实施例中,发射器128可被配置为在调度向接收器104的分组传输时,还基于(例如)数据中心量化拥塞通知(dcqcn)或其他指示符来考虑跨越一个或多个发送队列的服务质量(qos)。此外,发射器128可被配置为服务于来自多个接收器的多个拉模式请求分组,而不引起线头(hol)阻塞。以这种方式,发射器128可通过根据从接收器104或其他接收器接收的拉模式请求分组来调整传输速率或其他传输参数,而改进接收器104或其他接收器处的接收性能质量。
74.iii.示例计算机系统实施方式
75.本文所描述的实施例可用硬件或与软件和/或固件相结合的硬件来实施。例如,本文所描述的实施例可被实施为被配置为在一个或多个处理器中实行并存储在计算机可读存储介质中的计算机程序代码/指令。另选地,本文所描述的实施例可被实施为硬件逻辑/电路系统。
76.如本文所述,所描述的实施例,包括但不限于系统100和300及其任何组件和/或子组件,以及本文所描述的流程图(flowchart/flow diagram)的任何操作和部分和/或本文所描述的另外示例,可用硬件或具有软件和/或固件的任何组合的硬件来实施,包括被实施为被配置为在一个或多个处理器中实行并存储在计算机可读存储介质中的计算机程序代码,或者被实施为硬件逻辑/电路系统,诸如一起实施在片上系统(soc)、现场可编程门阵列(fpga)、专用集成电路(asic)、可信平台模块(tpm)等中。soc可包括集成电路芯片,该集成电路芯片包括处理器(例如,微控制器、微处理器、数字信号处理器(dsp)等)中的一个或多个、存储器、一个或多个通信接口和/或执行其功能的另外的电路和/或嵌入式固件。
77.本文所描述的实施例可在一个或多个计算设备中实施,该计算设备类似于固定或移动计算机实施例中的移动系统和/或计算设备,包括本文所描述的移动系统和/或计算设备的一个或多个特征,以及另选特征。本文所提供的对计算设备的描述是为了说明的目的而提供的,并且不旨在进行限制。如相关领域(一种或多种)的技术人员所知,实施例可在另外类型的计算机系统中实施。
78.图13为可用于实施各种实施例的示例基于处理器的计算机系统1300的框图。计算设备180、计算设备182和计算设备184均可包括任何类型的移动或固定的计算设备,诸如台式计算机、服务器、视频游戏控制台等。例如,计算设备180、计算设备182和计算设备184每个均可为任何类型的移动计算设备(例如,设备、个人数字助理(pda)、膝上型计算机、笔记本计算机、平板计算机,诸如apple ipad
tm
、上网本等)、移动手机(例如,手机、诸如microsoft手机、apple iphone的智能手机、实施android
tm
操作系统的手机等)、可穿戴计算设备(例如,包括诸如glass
tm
、oculus vr,llc的oculus等的智能眼镜的头戴式设备)、诸如台式计算机或pc(个人计算机)的固定计算设备、游乐器/系统(例如,microsoftsony
nintendo或等),等等。
79.计算设备180、计算设备182和计算设备184均可在一个或多个计算设备中实施,这些计算设备含有与固定或移动计算机实施例中的计算设备1300的特征和/或替代特征类似的特征。本文所提供的对计算设备1300的描述是为了说明的目的而提供的,并且不旨在进行限制。如相关领域(一种或多种)的技术人员所知,实施例可在另外类型的计算机系统中实施。
80.如图13所示,计算设备1300包括一个或多个处理器,称为处理器电路1302,系统存储器1304,以及将包括系统存储器1304在内的各种系统组件耦接至处理器电路1302的总线1306。处理器电路1302是在作为中央处理单元(cpu)、微控制器、微处理器和/或其他物理硬件处理器电路的一个或多个物理硬件电路设备元件和/或集成电路设备(半导体材料芯片或管芯)中实施的电和/或光电路。处理器电路1302可实行存储在计算机可读介质中的程序代码,诸如操作系统1330的程序代码、应用程序1332、其他程序1334等。总线1306表示若干种类型的总线结构中的任何一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口以及使用各种总线体系结构中的任何一种的处理器或本地总线。系统存储器1304包括只读存储器(rom)1308和随机存取存储器(ram)1310。基本输入/输出系统1312(bios)存储在rom 1308中。
81.计算设备1300还具有以下驱动器中的一个或多个:用于从硬盘读取和向硬盘写入的硬盘驱动器1314,用于从可移动磁盘1318读取或向可移动磁盘写入的磁盘驱动器1316,以及用于从可移动光盘1322(诸如cd rom、dvd rom或其他光学介质)读取或向可移动光盘写入的光盘驱动器1320。硬盘驱动器1314、磁盘驱动器1316和光盘驱动器1320分别通过硬盘驱动器接口1324、磁盘驱动器接口1326和光盘驱动器接口1328连接至总线1306。驱动器及其相关联的计算机可读介质为计算机提供了计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。尽管描述了硬盘、可移动磁盘和可移动光盘,但也可使用其他类型的基于硬件的计算机可读存储介质来存储数据,诸如闪存卡、数字视频盘、ram、rom和和其他硬件存储介质。
82.多个程序模块可存储在硬盘、磁盘、光盘、rom或ram中。这些程序包括操作系统1330、一个或多个应用程序1332、其他程序1334和程序数据1336。应用程序1332或其他程序1334可包括例如计算机程序逻辑(例如,计算机程序代码或指令),用于实施nic端点102、nic、nic端点122、nic端点142、发射器108、接收器104、发射器128、接收器124、发射器148、接收器144、存储器112、存储器132、存储器152、拉模式管理器106、运行中的重排序缓冲器310、接收器连接跟踪表312、接收上下文数据314、传输管理器318、发射器连接跟踪表330、仲裁器332、拉模式传输管理器334、ram 336、发送缓冲器338、发射器连接跟踪表350、仲裁器352、拉模式传输管理器354、ram 356、发送缓冲器358和流程图200、400、500、600、700、800、900、1000、1100、1200中的任何一个或多个(包括其中的任何步骤),和/或本文所描述的另外的实施例。程序数据1336可包括拉模式请求分组320、分组业务308、分组传输340、接收上下文数据314、拉模式请求322和/或本文所描述的其他实施例。
83.用户可通过键盘1338和定点设备1340等输入设备向计算设备1300输入命令和信息。其他输入设备(未示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、触摸屏和/或触摸板、接收语音输入的语音识别系统、接收手势输入的手势识别系统等。这些和
其他输入设备通常通过耦接至总线1306的串行端口接口1342连接至处理器电路1302,但也可通过其他接口连接,诸如并行端口、游戏端口或通用串行总线(usb)。
84.显示屏1344也经由接口,诸如视频适配器1346连接至总线1306。显示屏1344可在计算设备1300的外部或并入其中。显示屏1344可显示信息,以及作为用于接收用户命令和/或其他信息(例如,通过触摸、手指手势、虚拟键盘等)的用户接口。除了显示屏1344之外,计算设备1300可包括其他外围输出设备(未示出),诸如扬声器和打印机。
85.计算设备1300通过适配器或网络接口1350、调制解调器1352或其他用于在网络上建立通信的装置连接至网络1348(例如,互联网)。调制解调器1352可为内置或外置的,它可经由串行端口接口1342连接至总线1306,如图13所示,或者可使用包括并行接口在内的另一种接口类型连接至总线1306。
86.如本文所用,术语“计算机程序介质(computer programmedium)”、“计算机可读介质(computer-readable medium)”和“计算机可读存储介质(computer-readable storage medium)”用于指物理硬件介质,诸如与硬盘驱动器1314相关联的硬盘、可移动磁盘1318、可移动光盘1322、其他物理硬件介质,诸如ram、rom、闪存卡、数字视频盘、zip盘、mem、基于纳米技术的存储设备以及另外类型的物理/有形硬件存储介质。这类计算机可读存储介质区别于通信介质且不与通信介质重叠(不包括通信介质)。通信介质在诸如载波的调制数据信号中体现计算机可读指令、数据结构、程序模块或其他数据。术语“调制数据信号(modulated data signal)”意指以对信号中的信息进行编码的方式设定或改变其特性中的一个或多个的信号。作为示例而非限制,通信介质包括无线介质,诸如声学、rf、红外和其他无线介质,以及有线介质。实施例还针对与针对计算机可读存储介质的实施例分离且不重叠的这类通信介质。
87.如上所述,计算机程序和模块(包括应用程序1332和其他程序1334)可存储在硬盘、磁盘、光盘、rom、ram或其他硬件存储介质上。这类计算机程序也可经由网络接口1350、串行端口接口1342或任何其他接口类型接收。当由应用实行或加载时,这类计算机程序使得计算设备1300能够实施本文所论述的实施例的特征。因此,这类计算机程序表示计算设备1300的控制器。
88.实施例还涉及计算机程序产品,包括存储在任何计算机可读介质上的计算机代码或指令。这类计算机程序产品包括硬盘驱动器、光盘驱动器、存储设备封装、便携式记忆棒、存储卡和其他类型的物理存储硬件。
89.iv.附加示例和优点
90.在一个实施例中,一种用于由网络端点的接收器控制分组流的系统包括接收器,该接收器被配置为接收由发射器根据推模式通过网络发射的分组业务中的分组,使得发射器控制通过网络到接收器的分组传输的定速。拉模式管理器被配置为监测与分组业务相关的一个或多个特性,将所监测的一个或多个特性与接收性能参数进行比较,并且基于所述比较来决定从推模式切换至拉模式。传输管理器被配置为向发射器发射拉模式请求分组。拉模式请求分组指示由发射器根据拉模式通过网络到接收器的后续分组传输的定速。
91.在前述系统的一个实施例中,所监测的一个或多个特性包括以下各项中的至少一项:可用于从一个或多个附加发射器到接收器传输的分组业务,或者由接收器从一个或多个附加发射器接收的分组业务。
92.在前述系统的一个实施例中,传输管理器还被配置为:向一个或多个附加传输器中的每个附加传输器传输相应的拉模式请求分组。每个相应的拉模式请求指示由一个或多个附加发射器中的相应附加发射器经由网络向接收器的后续分组传输的定速。
93.在前述系统的一个实施例中,发射器和一个或多个附加发射器根据所发射的拉模式请求分组以不同的传输速率向收器发射。
94.在前述系统的一个实施例中,所监测的一个或多个特性包括以下各项中的至少一项:网络拥塞事件、突发速率、接收器处的分组丢弃或者接收器处的资源使用。
95.在前述系统的一个实施例中,接收性能参数包括以下各项中的至少一项的编程阈值:一个或多个网络拥塞事件、突发速率、接收器处的分组丢弃或者接收器处的一个或多个资源的使用。
96.在前述系统的一个实施例中,拉模式请求分组以字节或带宽中的至少一项指示预期传输速率。
97.在前述系统的一个实施例中,传输管理器还被配置为随时间向发射器发射多个拉模式请求分组,以随时间改变带宽或传输速率中的至少一项。
98.在前述系统的一个实施例中,传输管理器还被配置为:当消息传输完成时,或者比较的结果指示拥塞事件得到缓和或分组处理资源可用于推模式业务时,发射推模式请求分组。
99.在前述系统的一个实施例中,发射器在新发射发送请求、基于接收器的拉请求和重传请求之间进行仲裁。
100.在前述系统的一个实施例中,拉模式请求分组包括以下各项中的至少一项:暂停分组传输的指示、暂停分组传输多长时间的指示、基于序列号重启分组传输的指示、基于序列号集选择性地重发分组的指示、继续分组传输直至达到指定序列号的指示、每次传输的比特或字节数的指示以及传输的速率的指示。
101.在一个实施例中,一种用于由网络端点的接收器控制分组流的方法,包括接收由发射器根据推模式通过网络发射的分组业务中的分组,使得发射器控制通过网络到接收器的分组传输的定速。监测与分组业务相关的一个或多个特性。将所监测的一个或多个特性与接收性能参数进行比较。基于该比较,决定从推模式切换至拉模式。向发射器发射拉模式请求分组,其中拉模式请求分组指示由发射器根据拉模式通过网络到接收器的后续分组传输的定速。
102.在前述方法的实施例中,所监测的一个或多个特性包括以下各项中的至少一项:可用于从一个或多个附加发射器向接收器传输的分组业务,或者由接收器从一个或多个附加发射器接收的分组业务。
103.在前述方法的一个实施例中,向一个或多个附加发射器中的每个附加发射器发射相应的拉模式请求分组,其中每个相应的拉模式请求指示由一个或多个附加发射器中的相应附加发射器经由网络到接收器的后续分组传输的定速。
104.在前述方法的实施例中,发射器和一个或多个附加发射器基于发射的拉模式请求分组以不同的传输速率向接收器发射。
105.在前述方法的一个实施例中,所监测的一个或多个特性包括以下各项中的至少一项:网络拥塞事件、突发速率、接收器处的分组丢弃或者接收器处的资源使用。
106.在前述方法的一个实施例中,接收性能参数包括以下各项中的至少一项的编程阈值:一个或多个网络拥塞事件、突发速率、接收器处的分组丢弃或者接收器处的一个或多个资源的使用。
107.在上述方法的一个实施例中,多个拉模式请求分组随时间发射至发射器,以随时间改变带宽或传输速率中的至少一项。
108.在上述方法的一个实施例中,拉模式请求分组包括以下各项中的至少一项:暂停分组传输的指示、暂停分组传输多长时间的指示、基于序列号重启分组传输的指示、基于序列号集选择性地重发分组的指示、继续分组传输直至达到指定序列号的指示、每次传输的比特或字节数的指示以及传输的速率的指示。
109.在一个实施例中,一种用于响应于来自第二网络端点的接收器的拉模式请求分组而控制第一网络端点的发射器中的分组传输的系统,包括第一网络端点的发射器。第一网络端点的发射器被配置为通过网络向第二网络端点的接收器发射分组,使得根据推模式控制分组传输的定速。仲裁器,被配置为基于发射连接跟踪表中的条目来确定下一发射请求。发射连接跟踪表包括以下各项中的至少一项:一个或多个新发射请求、一个或多个拉模式请求以及一个或多个重传请求。拉模式发射管理器,被配置为响应于仲裁器确定下一发射请求是来自第二网络端点的接收器的拉模式请求,为下一发射请求确定:拉模式请求信息,以及用于与第二网络端点的接收器通信的网络条件。根据拉模式请求信息和网络条件来控制由发射器向第二网络端点的接收器的分组传输的定速。
110.v.结论
111.尽管上文已经描述了本技术的各种实施例,但应理解,这些实施例仅通过示例而非限制的方式呈现。相关领域(一种或多种)的技术人员将会理解,在不脱离所附权利要求中定义的本技术的精神和范围的情况下,可在形式和细节上进行各种改变。因此,本技术的广度和范围不应受到任何上述示例实施例的限制,而应仅根据所附权利要求及其等同物来定义。

技术特征:
1.一种用于由网络端点的接收器控制分组流的系统,所述系统包括:接收器,被配置为:接收由发射器根据推模式通过网络发射的分组业务中的分组,使得所述发射器控制通过所述网络到所述接收器的分组传输的定速;拉模式管理器,被配置为:监测与所述分组业务相关的一个或多个特性;将所监测的所述一个或多个特性与接收性能参数进行比较;以及基于所述比较,决定从所述推模式切换至拉模式;以及传输管理器,被配置为:向所述发射器发射拉模式请求分组,其中所述拉模式请求分组指示由所述发射器根据所述拉模式通过所述网络到所述接收器的后续分组传输的定速。2.根据权利要求1所述的系统,其中所监测的所述一个或多个特性包括以下至少一项:可用于从一个或多个附加发射器到所述接收器的传输的分组业务;或者由所述接收器从所述一个或多个附加发射器接收的分组业务。3.根据权利要求2所述的系统,其中所述传输管理器还被配置为:向所述一个或多个附加发射器中的每个附加发射器发射相应的拉模式请求分组,每个相应的拉模式请求指示由所述一个或多个附加发射器中的相应的所述附加发射器经由所述网络到所述接收器的后续分组传输的定速。4.根据权利要求3所述的系统,其中所述发射器和所述一个或多个附加发射器基于所发射的所述拉模式请求分组以不同的传输速率向所述接收器发射。5.根据权利要求1所述的系统,其中所监测的所述一个或多个特性包括以下至少一项:网络拥塞事件,突发速率,所述接收器处的分组丢弃,或者所述接收器处的资源使用。6.根据权利要求1所述的系统,其中所述接收性能参数包括针对以下至少一项的编程阈值:一个或多个网络拥塞事件,突发速率,所述接收器处的分组丢弃,或者所述接收器处的一个或多个资源的使用。7.根据权利要求1所述的系统,其中拉模式请求分组包括以下至少一项:暂停分组传输的指示;暂停分组传输多长时间的指示;基于序列号重启分组传输的指示;基于序列号集选择性地重发分组的指示;继续分组传输直至达到指定序列号的指示;每次传输的比特或字节数的指示;以及传输的速率的指示。
8.一种用于由网络端点的接收器控制分组流的方法,所述方法包括:接收由发射器根据推模式通过网络发射的分组业务中的分组,使得所述发射器控制通过所述网络到所述接收器的分组传输的定速;监测与所述分组业务相关的一个或多个特性;将所监测的所述一个或多个特性与接收性能参数进行比较;基于所述比较,决定从所述推模式切换至拉模式;以及向所述发射器发射拉模式请求分组,其中所述拉模式请求分组指示由所述发射器根据所述拉模式通过所述网络到所述接收器的后续分组传输的定速。9.根据权利要求8所述的方法,其中所监测的所述一个或多个特性包括以下至少一项:可用于从一个或多个附加发射器到所述接收器的传输的分组业务;或者由所述接收器从所述一个或多个附加发射器接收的分组业务。10.根据权利要求9所述的方法,还包括:向所述一个或多个附加发射器中的每个附加发射器发射相应的拉模式请求分组,每个相应的拉模式请求指示由所述一个或多个附加发射器中的相应的所述附加发射器经由所述网络到所述接收器的后续分组传输的定速。11.根据权利要求10所述的方法,其中所述发射器和所述一个或多个附加发射器基于所发射的所述拉模式请求分组以不同的传输速率向所述接收器发射。12.根据权利要求8所述的方法,其中所监测的所述一个或多个特性包括以下至少一项:网络拥塞事件,突发速率,所述接收器处的分组丢弃,或者所述接收器处的资源使用。13.根据权利要求8所述的方法,其中所述接收性能参数包括针对以下至少一项的编程阈值:一个或多个网络拥塞事件,突发速率,所述接收器处的分组丢弃,或者所述接收器处的一个或多个资源的使用。14.根据权利要求8所述的方法,其中拉模式请求分组包括以下至少一项:暂停分组传输的指示;暂停分组传输多长时间的指示;基于序列号重启分组传输的指示;基于序列号集选择性地重发分组的指示;继续分组传输直至达到指定序列号的指示;每次传输的比特或字节数的指示;以及传输的速率的指示。15.一种计算机程序产品,包括其上记录有计算机程序逻辑的计算机可读存储器设备,包括:
用于使得处理器能够执行权利要求8-14中任一项所述的方法的计算机程序逻辑。

技术总结
网络端点接收器控制来自发射器的分组流。根据推模式在分组业务中经由网络接收分组,其中发射器控制发射分组的定速。在接收器处监测与分组业务相关的特性。将所监测的特性与接收性能参数进行比较,并且基于该比较,做出从推模式切换至拉模式的决定,以控制分组流。接收器向发射器发射拉模式请求分组,其中拉模式请求分组指示由发射器根据拉模式向接收器发射的后续分组的定速。另外发射的分组的定速可由接收器随时间发送给发射器的后续拉模式请求分组来控制。类似地,接收器可控制附加发射器以相等或不同的速率发射。以相等或不同的速率发射。以相等或不同的速率发射。


技术研发人员:A
受保护的技术使用者:微软技术许可有限责任公司
技术研发日:2022.01.20
技术公布日:2023/10/11
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐