背景技术
现有的交换网包括线卡和交换板卡两部分,其中线卡又有入口线卡和出口线卡之分,如图1所示,其为现有技术交换网的基本结构示意图。
目前,高速路由器通常采用定长信元交换机制,将到达交换网的数据包拆分成多个固定长度的信元。信元可以通过不同的交换板卡到达出口线卡。由于信元经过不同交换板卡的时延可能不同,由此导致本属于一个数据包的信元,会以混乱次序到达出口线卡。
在多个入口线卡同时向一个出口线卡发送数据包的情况下,不同数据包的信元会间插在一起,使得出口线卡需要足够的缓存将信元缓存,以等待整个数据包的信元到齐,重新组合成数据包之后再发送出去。如图2所示,假设有N个入口线卡同时向出口线卡#k发送数据包,假设各数据包大部分信元都到达出口线卡,都在等待各自的最后一个信元到来,进行重组,由此造成两个结果:出口线卡所需的缓存与N成正比,当入口线卡数量很大时,出口线卡的缓存大小难以被满足;在最恶劣的情况下,每一个重组的包的延时都接近N个包延时的累加,造成很大的延时和抖动。
现有技术中,为了实现出口线卡的包重组,通常采用两种技术:
(1)信元保序的技术,在交换板卡的输出端口使用较大容量缓存对这些信元重新排序,即对交换板卡输出端口的信元发送顺序进行控制,以解决定长信元在通过交换板卡的信元失序问题。
通过采用信元保序技术,同属一个包的信元到达出口线卡不会发生乱序,但是没有解决缓存大、延时和抖动的问题。现有技术通过控制交换板卡的输出端口,实现信元保序,只考虑了解决包重组难度的问题,而忽略了延时和抖动性能的改善,虽然在一定程度上减少了出口线卡的缓存,但是却增加了交换板卡的缓存。产生以上一系列问题的根本原因是流量的突发,既多个入口线卡同时向一个出口线卡发送数据。现有技术并没有从根本上解决问题,而只是事后做出的补救措施。
(2)基于CAM(Content-addressable memory,内容可寻址存储器)的重组技术,在出口线卡侧设置足够的缓存对乱序信元进行存储,再通过CAM对信元进行查找和排序,以还原数据包。
基于CAM的重组技术利用CAM基于内容查找的特点,根据信元头部信息找到相邻的信元的位置,采用链表技术将属于同一个数据包的信元进行串接,以还原信元顺序。该方法没有对信元产生乱序的过程进行任何控制,只是被动的对乱序信元进行缓存和重组。虽然最终能够将乱序信元重组成数据包,但是其采用的缓存空间的大小与入口线卡数量N成正比,在大交换容量的包交换网中难以实现。此外,该方案与(1)方案相同,没有对延时和抖动的性能进行改善并且实现相当复杂。
发明内容
本发明的主要目的在于提供一种采用加速技术实现包重组的方法、装置及***,旨在降低出口线卡包重组的难度、交换时延和延时抖动。
本发明提出一种采用加速技术实现包重组的方法,包括:
出口线卡接收来自交换板卡的信元,并分离出所述信元的头开销部分和净荷部分;
根据所述信元的头开销部分将信元的净荷按照预定规则存放于所述出口线卡的缓存中;
当所述出口线卡的缓存利用率超过设定阀值时,向所述交换板卡发送加速信元信息,以便所述交换板卡根据所述加速信元信息从缓存中查找相应的加速信元,将加速信元作为响应信元发送给所述出口线卡;
接收所述响应信元,对所述响应信元所属数据包进行重组并发送,释放所述数据包占用的缓存空间。
优选地,所述加速信元信息包括:信元类型,出口线卡正在重组的数据包所属的入口线卡的编号、数据包的编号以及加速信元所属的出口线卡编号。
优选地,所述根据信元的头开销部分将信元的净荷按照预定规则存于所述出口线卡缓存中的步骤之后还包括:
当所述出口线卡的缓存利用率没有超过设定阀值时,对所述数据包进行重组并发送,释放所述数据包占用的缓存空间。
本发明还提出一种采用加速技术实现包重组的装置,包括:
信元接收和解析模块,用于接收来自交换板卡的信元,并分离出所述信元的头开销部分和净荷部分;
信元排序模块,用于根据所述信元的头开销部分将信元的净荷按照预定规则存放于所述出口线卡的缓存中;
缓存监控模块,用于当所述出口线卡的缓存利用率超过设定阀值时,向所述交换板卡发送加速信元信息,以便所述交换板卡根据所述加速信元信息从缓存中查找相应的加速信元,将加速信元作为响应信元发送给所述出口线卡;
包重组及缓存释放模块,用于接收所述交换板卡发送的响应信元,对所述响应信元所属数据包进行重组并发送,释放所述数据包占用的缓存空间。
优选地,所述加速信元信息包括:信元类型,出口线卡正在重组的数据包所属的入口线卡的编号、数据包的编号以及加速信元所属的出口线卡编号。
优选地,所述包重组及缓存释放模块还用于,当所述出口线卡的缓存利用率没有超过设定阀值时,对所述数据包进行重组并发送,释放所述数据包占用的缓存空间。
本发明还提出一种采用加速技术实现包重组的***,包括:入口线卡、交换板卡以及出口线卡,其中:
所述入口线卡,用于向所述交换板卡发送信元;
所述交换板卡,用于将所述入口线卡发送的信元转发给所述出口线卡;以及当所述出口线卡的缓存利用率超过设定阀值时,接收所述出口线卡发送的加速信元信息,根据所述加速信元信息从缓存中查找相应的加速信元,并将加速信元作为响应信元发送给所述出口线卡;
所述出口线卡,用于接收来自交换板卡的信元,并分离出所述信元的头开销部分和净荷部分;根据所述信元的头开销部分将信元的净荷按照预定规则存放于所述出口线卡的缓存中;当所述出口线卡的缓存利用率超过设定阀值时,向所述交换板卡发送加速信元信息;接收所述交换板卡发送的响应信元,对所述响应信元所属数据包进行重组并发送,释放所述数据包占用的缓存空间。
优选地,所述出口线卡包括如上所述的装置。
本发明提出一种采用加速技术实现包重组的方法、装置及***,相比现有技术,能在比较低的硬件资源开销的基础上,利用加速技术对交换板卡中的信元发送顺序进行控制,实现所有交换板卡尽快的、同步的发送同一个数据包的信元,加速了数据包的重组进度,降低了出口线卡包重组的难度、交换时延和延时抖动;将出口线卡的包重组缓存控制在较小的范围内,并与入口线卡的数量无关,提升了交换网的可扩展性和最大交换容量,且本发明实现简单,更节省了***资源。
具体实施方式
本发明实施例解决方案主要是利用加速技术对交换板卡中的信元发送顺序进行控制,实现所有交换板卡尽快的、同步的发送同一个数据包的信元,以加速数据包的重组进度,降低出口线卡包重组的难度、交换时延和延时抖动。
如图3所示,本发明一实施例提出一种采用加速技术实现包重组的方法,包括:
步骤S101,出口线卡接收来自交换板卡的信元,并分离出信元的头开销部分和净荷部分;
本实施例方法运行环境涉及交换网内的交换板卡以及入口线卡和出口线卡,入口线卡将接收的数据包中的各个信元分别通过不同的交换板卡发往同一个出口线卡,以便出口线卡对接收的各个信元进行数据包重组。
在出口线卡接收到来自交换板卡的信元时,将信元的头开销部分和净荷部分分离出来,以便在进行数据包重组时,可根据数据包中各信元的头开销部分将净荷进行有规则的存放,将数据包还原。
步骤S102,根据信元的头开销部分将信元的净荷按照预定规则存放于出口线卡的缓存中;
在本实施例中,存放净荷的预定规则即是对同一数据包中的各信元进行重新排序的规则,可以采用现有技术中对信元进行重新排序的方法,比如,可根据信元头开销部分的信息找到相邻的信元的位置,利用链表技术将属于同一个数据包的信元进行串接,以还原信元顺序。
步骤S103,判断出口线卡的缓存利用率是否超过设定阀值,若是,则进入步骤S104,否则,进入步骤S106;
步骤S104,向交换板卡发送加速信元信息,以便交换板卡根据加速信元信息从缓存中查找相应的加速信元,并将加速信元作为响应信元发送给出口线卡;
如前所述,由于同一个数据包中的各信元经过不同交换板卡的时延可能不同,使得各信元不能同时到达同一目的出口线卡,而且,在多个入口线卡同时向一个出口线卡发送数据包的情况下,不同数据包的信元会间插在一起,使得出口线卡需要足够的缓存将信元缓存,以等待整个数据包的信元到齐,重新组合成数据包之后再发送出去。因此出口线卡因接收到的数据包的信元不完整,使得数据包无法顺利的进行重组,从而导致出口线卡的缓存利用率上升。
在本实施例中,为了实现所有交换板卡尽快的、同步的发送同一个数据包的信元,采用加速机制来控制交换板卡的信元发送顺序。本实施例所属的***的运行状态分为两种:正常状态和加速状态。
当***中数据流量模型如图4所示时,出口线卡的缓存利用率将会保持在一个相对较低的值(最大为一个最长数据包的容量),并且低于设定阈值,此时***运行状态处于正常状态。
当***中的流量模型如图2所示时,出口线卡接收到的数据包的信元不完整,数据包无法顺利的进行重组,从而导致缓存利用率上升。当缓存利用率超过设定阈值时,***进入加速状态。
在本实施例中,通过实时监控出口线卡的缓存利用率的方式来启动加速机制实现数据包的快速重组,具体为:
实时监控出口线卡的缓存利用率,当缓存利用率超过设定阈值时,***进入加速状态。出口线卡向交换板卡发送加速信元信息,该加速信元信息包括出口线卡中正在重组但未完成的数据包的信息,其数据格式如图5所示。其中:
TYPE为信元类型,用于区分其他类型的信元;
INGRESS_CARD_ID、PKG_ID为信元排序模块中正在重组的数据包所属的入向线卡的编号和数据包的编号。INGRESS_CARD_ID和PKG_ID组成了该数据包在当前交换网中的唯一编号。
EGRESS_CARD_ID为加速信元所属的出口线卡编号。
当交换板卡接收到加速信元信息后,在其缓存中查找属于编号为INGRESS_CARD_ID、PKG_ID的数据包的信元即相应的加速信元,并将该相应的加速信元作为响应信元发送至编号为EGRESS_CARD_ID的出口线卡。
步骤S105,接收交换板卡发送的响应信元,对数据包进行重组并发送,释放数据包占用的缓存空间。
出口线卡接收到响应信元后,按照上述信元排序方法完成其所属数据包的重组,并将重组后的数据包发送,之后释放该数据包所占用的缓存空间。
当***加速状态持续时,按照上述方法完成出口线卡中各个数据包的快速重组,直到出口线卡的缓存利用率低于设定阈值,加速状态结束,***恢复到正常状态。
步骤S106,对数据包进行重组并发送,释放数据包占用的缓存空间。
本实施例利用加速技术对交换板卡的信元顺序进行控制,将出口线卡正在重组的数据包的信元尽快从交换板卡送出,避免了多个数据包的信元碎片同时占据出口线卡的缓存,实现了所有交换板卡尽快的、同步的发送同一个数据包的信元,即呈现如图4所示加速机制产生的数据流量模型。因此,本实施例通过使用加速机制加速了数据包的重组进度,避免了由数据包重组所产生的延时积累,减少了延时和延时抖动,同时,将出口线卡的包重组缓存控制在较小的范围内,并与入口线卡的数量无关,提升了交换网的可扩展性和最大交换容量,而且本实施例方法实现简单,节省了***资源。
如图6所示,本发明一实施例提出一种采用加速技术实现包重组的装置,包括:信元接收和解析模块601、信元排序模块602、缓存监控模块603以及包重组及缓存释放模块604,其中:
信元接收和解析模块601,用于接收来自交换板卡的信元,并分离出信元的头开销部分和净荷部分;
信元排序模块602,用于根据信元的头开销部分将信元的净荷按照预定规则存放于出口线卡的缓存中;
在本实施例中,存放净荷的预定规则即是对同一数据包中的各信元进行重新排序的规则,可以采用现有技术中对信元进行重新排序的方法,比如,可根据信元头开销部分的信息找到相邻的信元的位置,利用链表技术将属于同一个数据包的信元进行串接,以还原信元顺序。
缓存监控模块603,用于当出口线卡的缓存利用率超过设定阀值时,向交换板卡发送加速信元信息,以便交换板卡根据加速信元信息从缓存中查找相应的加速信元,并将加速信元作为响应信元发送给出口线卡;
在本实施例中,为了实现所有交换板卡尽快的、同步的发送同一个数据包的信元,采用加速机制来控制交换板卡的信元发送顺序。本实施例所属的***的运行状态分为两种:正常状态和加速状态。
当***中数据流量模型如图4所示时,出口线卡的缓存利用率将会保持在一个相对较低的值(最大为一个最长数据包的容量),并且低于设定阈值,此时***运行状态处于正常状态。
当***中的流量模型如图2所示时,出口线卡接收到的数据包的信元不完整,数据包无法顺利的进行重组,从而导致缓存利用率上升。当缓存利用率超过设定阈值时,***进入加速状态。
在本实施例中,通过实时监控出口线卡的缓存利用率的方式来启动加速机制实现数据包的快速重组,具体为:
实时监控出口线卡的缓存利用率,当缓存利用率超过设定阈值时,***进入加速状态。出口线卡向交换板卡发送加速信元信息,该加速信元信息包括出口线卡中正在重组但未完成的数据包的信息,其数据格式如图5所示。其中:
TYPE为信元类型,用于区分其他类型的信元;
INGRESS_CARD_ID、PKG_ID为信元排序模块中正在重组的数据包所属的入向线卡的编号和数据包的编号。INGRESS_CARD_ID和PKG_ID组成了该数据包在当前交换网中的唯一编号。
EGRESS_CARD_ID为加速信元所属的出口线卡编号。
当交换板卡接收到加速信元信息后,在其缓存中查找属于编号为INGRESS_CARD_ID、PKG_ID的数据包的信元即相应的加速信元,并将该相应的加速信元作为响应信元发送至编号为EGRESS_CARD_ID的出口线卡。
包重组及缓存释放模块604,用于接收交换板卡发送的响应信元,对响应信元所属数据包进行重组并发送,释放数据包占用的缓存空间。
当***加速状态持续时,按照上述方法完成出口线卡中各个数据包的快速重组,直到出口线卡的缓存利用率低于设定阈值,加速状态结束,***恢复到正常状态。
进一步的,包重组及缓存释放模块604还用于,当出口线卡的缓存利用率没有超过设定阀值时,对信元所属数据包进行重组并发送,释放数据包占用的缓存空间。
如图7所示,本发明一实施例提出一种采用加速技术实现包重组的***,包括:入口线卡701、交换板卡702以及出口线卡703,其中:
入口线卡701,用于向交换板卡702发送信元;
交换板卡702,用于将入口线卡701发送的信元转发给出口线卡703;以及当出口线卡703的缓存利用率超过设定阀值时,接收出口线卡703发送的加速信元信息,根据加速信元信息从缓存中查找相应的加速信元,并将加速信元作为响应信元发送给出口线卡703;
出口线卡703,用于接收来自交换板卡702的信元,并分离出信元的头开销部分和净荷部分;根据信元的头开销部分将信元的净荷按照预定规则存放于出口线卡的缓存中;当出口线卡703的缓存利用率超过设定阀值时,向交换板卡702发送加速信元信息,以便交换板卡702根据加速信元信息从缓存中查找相应的加速信元,并将加速信元作为响应信元发送给出口线卡703;接收交换板卡702发送的响应信元,对响应信元所属数据包进行重组并发送,释放数据包占用的缓存空间。
在本实施例中,出口线卡703可以包括上述实施例中所述的装置。
本实施例利用加速技术对交换板卡的信元顺序进行控制,将出口线卡正在重组的数据包的信元尽快从交换板卡送出,避免了多个数据包的信元碎片同时占据出口线卡的缓存,实现了所有交换板卡尽快的、同步的发送同一个数据包的信元,即呈现如图4所示加速机制产生的数据流量模型。因此,本实施例通过使用加速机制加速了数据包的重组进度,避免了由数据包重组所产生的延时积累,减少了延时和延时抖动,同时,将出口线卡的包重组缓存控制在较小的范围内,并与入口线卡的数量无关,提升了交换网的可扩展性和最大交换容量,而且本实施例方法实现简单,节省了***资源。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。