本技术提出了一种融合同步与异步的流量整形技术及设备,核心在于接收报文描述符并记录其接收时间。通过报文描述符中的流标识查表确定整形类型和对应的参数,实现流量整形。该技术有效平衡了同步和异步流量整形的需求,提高了网络流量管理的灵活性和效率。
背景技术
在网络传输过程中,流量整形(Traffic Shaping)是一种有效的网络管理策略,能够改善网络整体性能、保障服务质量(QoS)、优化带宽使用,确保网络资源的公平分配。通过合理的整形策略,能够有效提升用户体验和网络的整体运行效率。
流量整形常见有令牌桶和漏桶两种算法。其中,令牌桶(Token Bucket)算法的原理是以固定速率生成令牌,并使用一个“桶”来存储令牌,每个令牌代表一定量的数据传输,数据包只有在桶中有足够的令牌时才能发送。令牌桶支持突发流量,同时保持平均流量控制,适合需要突发高流量的应用。相比之下,漏桶(Leaky Bucket)的原理是将数据包排队放入“桶”中,按固定速率将数据包“漏出”。即使输入流量突发,输出流量也会保持平稳,因此漏桶可以提供稳定的输出速率,适合需要平滑流量的场景。
令牌桶算法可以实现流量监管和流量整形。具体而言,令牌桶算法至少具有2个固定参数和1个变量参数,固定参数为承诺信息速率(commit information rate,cir,记作 r
)和承诺突发速率(commit burst size,cbs,记作 b
);变量参数为令牌桶中的令牌数Token。令牌桶的服务曲线可以表示为:。
令牌桶算法的实现流程具体包括:当装置收到报文时,会根据历史时间戳(Timestamp,记作 T
),即上一次发送报文的时间,与当前时间做差后乘以承诺信息速率并加上上次发送后的剩余令牌数,计算得到当前令牌数目。如果令牌数目大于报文发送所需令牌数,则直接发送报文,并更新时间戳;如果令牌数目小于报文长度,则根据策略进行监管或整形。狭义的讲,当令牌桶中的令牌不足以发送报文时,如果选择直接丢弃报文,则为监管;如果令报文在缓存中等待,直到攒够足够的令牌再发送报文,则为整形。
监管和整形的区别在于:监管方式在接收报文时如果令牌桶中的令牌不足,则直接丢弃报文;整形方式则在令牌不足时暂存报文,等待令牌积累足够时再进行调度。监管适合于允许丢包且需要平滑流量、降低延迟的场景,尤其是对实时应用有较高要求的情况。整形则适用于对丢包率要求较高且流量需要平滑的场景。
在整形机制中,如果后续报文到达时,当前令牌不足,则新接收的报文数据无法立即进行调度,需要对无法调度的报文进行存储,等待令牌数满足调度条件后再操作。
当前主流的网络设备中往往基于优先级队列进行整形,不同的流首先映射到一个相同的优先级队列,再对队列整体进行整形。每个优先级队列通过配置一个FIFO缓存报文。由于相同优先级的不同流之间共享队列,队列的整形带宽为全部流的速率之和,这就不可避免引入了“流间干扰”的问题。举例而言,假设10条流共享一个优先级队列,每条流的速率均为1Mbps,则配置优先级队列的整形带宽为10Mbps。如果某一条流出现突发或故障,占用带宽为2Mbps,由于整体输入流量为11Mbps大于分配带宽10Mbps,会导致报文传输发生拥塞,共享队列的所有流的报文延时都会变大,且当存储资源耗尽后,所有流均会由于拥塞造成丢包。
为了解决由于流间干扰导致的拥塞丢包问题,前期的研究提出了“逐流整形”的概念,如UBS/ATS算法。这类算法基于令牌桶的思想,采用合格时刻作为对报文进行监管和调度的依据,提出了合格时刻的计算方法、监管和调度策略,并根据报文在上一跳、本跳输入端口号、本跳的优先级作为分组条件,对应不同的FIFO队列缓存报文。但是,基于FIFO的队列组织存在可扩展性的问题,随着优先级数目和输入端口数目的增多,FIFO的数目也将指数增长,极大消耗存储资源。
令牌桶整形机制中,令牌的计数时钟采用本地时钟,网络中不同的设备间的时间不进行同步,以各自独立的方式进行异步整形。在IEEE 802.1Qbv标准中提出一种基于时间感知的整形方式,该方法在不同设备之间时间同步的基础上,将各设备何时接收报文、何时发送报文进行了整体规划,不同节点间实现了同步协同的整形。
为了满足当前确定传输应用场景中存在的同时对同步整形和异步整形的需求,现有的方案往往采用同步算法和异步算法均单独设计,再进行组合的方式,这种设计方式对于设计资源的消耗较大,因此,有必要进行同步整形和异步整形融合的实现方法的研究。
实现思路