流量整形(traffic shaping)的典型作用是限制流出某一网络的某一连接的流量与突发,使这类报文以比较均匀的速度向外发送。流量整形通常使用缓冲区和令牌桶来完成,当报文的发送速度过快时,首先在缓冲区进行缓存,在令牌桶的控制下再均匀地发送这些被缓冲的报文。
在名为“Systems and methods for network traffic shaping”的专利申请中,Meta就介绍了一种用于XR设备的流量整形方法。
这家公司指出,网络流量整形和DRX周期调整对于边缘计算架构或不同的数据流量类型尤其有利,例如由XR设备等生成或使用的视频数据。
网络可以根据经由网络传输的数据类型提供延迟预算。例如,如果设备正在传输视频数据,则可以允许更少的延迟,并且延迟预算可以更低,使得对流量整形和/或DRX周期调整不会影响设备端的用户体验。
设备可以与网络通信以获得用于确定对DRX周期的调整和/或流量整形的一个或多个统计或参数。一个或多个统计数据可以包括端到端延迟时间和packet到达间时间。端到端延迟时间和packet到达间时间可以由设备或流量整形代理使用,以结合延迟预算来确定对DRX周期和/或流量整形的调整。
延迟预算和端到端延迟时间之间的比较可以用于识别DRX周期调整和/或流量整形的可行性。如果延迟预算比端到端延迟时间大足够的量,这表明DRX周期调节或流量整形的可行性。
如果延迟预算和端到端延迟时间之间的比较指示在延迟方面有足够的空间来调整/增加DRX周期和整形流量,可以增加DRX周期(从而降低设备在网络上发送/接收packet的频率并降低设备的功耗),并且可以聚集或packet一个或多个packet。
当设备根据调整后的DRX周期转换到活动状态时,可以经由网络发送聚合packet。通过这种方式,可以增加DRX周期,以促进设备的功率节省而不会干扰用户体验。因此,如果延迟预算和端到端延迟时间之间的比较指示存在空间,则可以聚集packet或packet组,并且可以增加传输的周期。
另一方面,如果延迟预算和端到端延迟时间之间的比较指示空间不足(例如,如果端到端的延迟时间处于或接近延迟预算),则可以将packet分割成更小的packet和/或更多的packet簇/组(对应于更短的DRX周期),并且可以降低packet传输的周期。
图1是示例性设备。设备110可在各种不同的模式下操作,并且可以根据不连续接收DRX周期进行操作。
设备110根据定义设备110的行为的一个或多个DRX参数进行操作。DRX周期是DRX参数之一。DRX周期可以是可穿戴设备110的“接通时间”的持续时间和“断开时间”的总和。DRX参数包括准时持续时间,其中准时持续时间定义设备110可通信地活动的时间量。DRX参数同时包括DRX不活动定时器、DRX重传定时器和短DRX周期参数等。
图4示出了一个系统架构。网络接口420可以提供到广域网的连接,远程服务器系统的WAN接口同样连接到广域网。用户输入设备422可以包括用户可以经由其向计算系统414提供信号的任何设备。计算系统414可以将信号解释为指示特定用户请求或信息。
参考图5,网络500包括设备502、无线接入点504、蜂窝基站506、第一网关508和/或第二网关510。设备502可以与设备110相同或相似。
在一个实施例中,设备502可以配置成经由无线链路518与无线接入点504通信,和/或可以配置为经由无线链路520与蜂窝基站506通信。设备502与蜂窝基站506的通信建立无线设备502和蜂窝网络之间的通信。
可以协作地调整设备502的DRX周期来或调整网络500的流量,以实现最佳的网络性能、功耗、数据传输等。
在一个实施例中,网络应用528和532与ISP核心网络526和ISP核心网络520之间的核心网络530可通信地耦合,以执行发明描述的各种流量整形技术。设备502被配置为通过(i)无线接入点504和第一网关508或(ii)蜂窝基站506和第二网关510中的至少一个与边缘存在点(PoP)514进行通信。
边缘PoP 514是与服务器的连接点。网络500便于设备502与服务器534或536之间的通信。设备502可以配置为与服务器534或536交换数据packet。设备502配置为向服务器534或536发送视频、音频、文本等数据的packet。
在一个实施例中,网络500具有等待时间预算、阈值、最大数量等。等待时间预算可以变化或基于在设备502和服务器534或服务器536之间传输的数据类型、网络500的架构、特定类型的设备或网络500的制造商等。
延迟预算指示通适当DRX周期调整的最大允许延迟或延迟。聚合数据和/或packet可以意味着将数据和/或者多个packet组合成一个(更大的)packet。在一个实施例中,延迟预算是网络500的端到端延迟预算。例如,如果通过网络500传输的数据是视频数据packet,则延迟预算可以较低,使得对网络500的流量和/或设备502的DRX周期的调整不会影响设用户体验。
设备502和/或网络应用528或532中的至少一个配置为在网络500进行通信,以获得用于形成网络流量整形和/或调整DRX周期的一个或多个统计或参数。在一个实施例中,一个或多个统计数据包括端到端延迟时间和packet到达间时间。
在一个实施例中,端到端延迟时间是基于通过网络500发送的packet的时间戳来确定。例如,设备502、网络应用528、网络应用532等可以使用packet的发送和接收时间戳来确定从设备502发送packet的时间与在网络应用528或网络应用532处接收packet的时间之间的差,或者反之亦然。
参考图6,图600示出了根据一些实施例的可以由设备502、网络应用528、网络应用532或边缘设备514执行的DRX调整技术。
图600包括时间序列602,时间序列602示出了在所示时间发送或接收的不同packet或消息614。packet或消息614偏离所示的时间,如时间序列604中所示。时间序列606示出了设备502在非活动模式616和活动模式618之间转换的DRX周期。
在一个实施例中,可以调整(例如,增加或减少)设备502的DRX周期,使得设备502在packet或消息614被接收/发送时处于活动模式618,并且在packet或信息614未被接收/传输时处于非活动模式616。
DRX周期可以是从设备502第一次转换到活动模式618、在活动模式618中保持时间612、转换到非活动模式616、以及在非活动模式618中保持直到设备502再次转换到活动方式619的完整时间量610。
在一个实施例中,设备502处于活动模式618的时间612是预定量,并且DRX周期的调整包括增加或减少时间610。如图6的时间序列608所示,发送packet的时间可以包括多个packet或消息614的发送。
图7示出了DRX调整和流量整形的图700。在一个实施例中,设备502和网络500的流量整形代理配置为在如时间序列702和704中所示的网络流量/DRX周期和如时间序列706和708中所示出的网络流量/DRX周期之间转换网络500的操作。
在一个实施例中,设备502的DRX周期可以从较短的DRX周期710a增加到较长的DRX周710b,以便考虑不同形状的流量。类似地,设备502的DRX周期可以从较长的DRX循环710b减少到较短的DRX周710a,以便考虑不同形状的流量。
在一个实施例中,可以调整设备502的接通时间712,同时可以调整设备502的关闭时间716,使得设备502处于活动模式的时间与packet传输714或packet传输718发生的时隙相匹配。
在一个实施例中,流量整形代理配置为将当前等待时间量与阈值或预算等待时间进行比较,以确定packet是应该更频繁地发送还是应该不那么频繁地发送。
在一个实施例中,当前等待时间由流量整形代理基于端到端延迟时间和/或抖动来确定。如果当前等待时间超过阈值等待时间,流量整形代理可以将packet718调度到更大量的时隙。
一旦packet传输的频率已经增加,则流量整形代理或设备502可以确定DRX周期的适当调整,使得设备502转换到活动模式以发送或接收packet,如时间系列704中相对于时间系列708所示。以这种方式,可以对packet的流量进行整形,并且可以随后调整设备502的DRX周期,使得当发送packet714时,设备502处于活动模式。
类似地,如果当前等待时间没有超过阈值或预算等待时间,则流量整形代理可以通过将packet714聚集或packet到较小数量的时隙中,和/或通过增加发送packet714的相邻时隙对之间的间隙来降低packet发送的频率。
在一个实施例中,一旦packet传输的频率已经降低,可以调整设备502的DRX周期,使得设备502在接收/发送packet718时处于活动模式。
图8示出了设备执行流量整形和/或DRX调整的过程800。
根据一些实施例,过程800包括确定从第一设备发送packet的时间与packet在第二设备处的到达时间之间的延迟(步骤802)。在一个实施例中,基于一个或多个packet的时间戳来确定延迟。例如,延迟可以是从第一设备发送packet的时间与packet到达第二设备的时间之间的差。
过程800包括确定到达第二设备的packet的jitter(步骤804)。通过监测随着时间的推移的多个不同packet传输,并基于packet传输确定延迟的变化、不确定性等来确定jitter。jitter提供为与packet的接收相关的packet到达时间。
过程800包括将所确定的延迟和所确定的jitter从第二设备提供给第一设备(步骤806)。步骤806包括从第二设备向第一设备发送包括延迟和所确定的jitter的消息。
过程800包括基于所确定的延迟和所确定的jitter来确定当前等待时间参数(步骤808)。当前等待时间参数是网络的当前等待时间量或时间延迟的估计。当前等待时间参数是对网络的最大预期等待时间的估计。例如,当前延迟可以是延迟和jitter的总和,以估计网络上可能发生的最大延迟。
过程800包括确定当前等待时间是否超过阈值或预算等待时间(步骤810)。步骤810包括将网络的当前等待时间参数与最大允许或预算等待时间进行比较。
过程800包括响应于当前等待时间超过阈值等待时间(步骤810,“是”),将packet调度到更大数量的时隙中,或减小相邻时隙对之间的间隙(步骤812)。
过程800包括调整第二设备的DRX周期以匹配在步骤812中整形的时隙(步骤814)。在一个实施例中,步骤814由执行步骤812的流量整形代理执行。步骤814包括调整第二设备的DRX周期,使得当packet被调度/期望用于接收/发送时,第二设备处于活动模式,而当packet未被调度/预期用于接收/传输时,处于非活动模式。
过程800包括响应于当前等待时间超过阈值等待时间(步骤810,“否”),将packet调度到较小数量的时隙中,或增加相邻时隙对之间的间隙(步骤816)。
过程800包括调整第二设备的DRX周期以匹配时隙(步骤818)。步骤818类似于步骤814。在一个实施例中,步骤818由执行步骤816的流量整形代理执行。在一些实施例中,步骤818包括调整第二设备的DRX周期,使得当packet被调度/期望用于接收/发送时,第二设备处于活动模式,而当packet未被调度/预期用于接收/传输时,处于非活动模式。
在第二设备处执行步骤818。第二设备配置为从第一设备接收更新的流量整形或packet传输的调度,并基于更新的流量整形或packet传输调度来更新其DRX周期。在一个实施例中,DRX调整由第一设备确定,并且包括更新的消息提供给第二设备,以用于在第二设备处实现或适当调整DRX周期。步骤818可以包括增加DRX周期,使得第二设备不太频繁地处于活动模式,并且与较大数量的时隙或相邻时隙对之间减小的间隙相匹配。
名为“Systems and methods for network traffic shaping”的Meta专利申请最初在2021年8月提交,并在日前由美国专利商标局公布。