本发明涉及网络处理器,尤其涉及一种多核处理报文保序方法和系统。
背景技术:
1、随着网络数据量的快速增长和大数据技术的不断发展,网络处理器的处理速度难以跟上报文数量的增加,这导致处理器在短时间内难以有效处理所有传入的报文。同时很多业务类型要求数据通信设备严格保证报文的顺序,比如语音、图形等实时业务。为了应对这一挑战,目前的网络处理器普遍采用多核处理系统,以便能够并行处理多个报文,从而提高网络处理器的吞吐率。然而,由于不同处理器处理报文的速度存在差异,再加上负载均衡等操作,很容易导致报文乱序,严重影响了报文的传输顺序和网络连接的性能。这种报文乱序问题进而影响了网络的利用率,并可能导致数据传输错误或不完整,对网络通信造成严重影响。
2、因此,在处理大规模数据传输时,利用多核并行处理优势的同时,如何有效地保证报文的顺序性,提高网络连接的性能和利用率,成为了网络处理器设计和网络通信技术需要持续关注和改进的重要方向。
技术实现思路
1、鉴于此,本发明实施例提供了一种多核处理报文保序方法和系统,以消除或改善现有技术中存在的一个或更多个缺陷。
2、本发明的一个方面提供了一种多核处理报文保序方法,该方法包括以下步骤:
3、接收报文,调用前处理模块生成包序号,并按顺序将所述包序号依次写入同一条数据流的连续报文中;
4、调用调度模块接收多个处理器的状态信息,将所述报文分配到空闲状态的处理器;
5、调用后处理模块生成出口序号,向所有处理器发送所述出口序号以指示所有处理器当前所述报文对应的所述出口序号;所述出口序号采用与所述包序号相同的序号数列;
6、所述处理器处理所述报文后,判断当前所述报文的所述包序号与接收到的所述出口序号是否一致;若一致则输出处理后的报文,若不一致则等待直至一致时再输出。
7、在本发明的一些实施例中,所述出口序号采用与所述包序号相同的序号数列,所述序号数列为一组循环数列,通过所述前处理模块和所述后处理模块调节该数列范围。
8、在本发明的一些实施例中,所述调度模块采用先进先出队列对所述报文进行调度。
9、在本发明的一些实施例中,所述调度模块采用最空闲时间优先调度法对所述报文进行调度,根据处于空闲状态的处理器的空闲时间来确定分配报文的优先顺序。
10、本发明的另一方面提供了一种多核处理报文保序系统,该系统包括:前处理模块、调度模块、后处理模块和多个处理器;
11、所述前处理模块,用于生成包序号,并按顺序将所述包序号依次写入同一条数据流的连续报文中;
12、所述调度模块,用于接收多个处理器的状态信息,将所述报文分配到空闲状态的处理器;
13、所述后处理模块,向所有处理器发送所述出口序号以指示所有处理器当前所述报文对应的所述出口序号;所述出口序号采用与所述包序号相同的序号数列;
14、多个处理器,用于并行处理多个报文,所述处理器处理接收的所述报文后,判断当前所述报文的所述包序号与接收到的所述出口序号是否一致;若一致则输出处理后的报文,若不一致则等待直至一致时再输出。
15、在本发明的一些实施例中,所述前处理模块包括一个计数电路和一个逻辑控制电路。
16、在本发明的一些实施例中,所述后处理模块包括一个计数电路和一个逻辑控制电路。
17、在本发明的一些实施例中,所述调度模块包括调度器和优先级编码器;
18、所述优先级编码器用于接收多个处理器的状态信息,从空闲状态的处理器中选择一个处理器接收并处理当前报文。
19、在本发明的一些实施例中,所述处理器还包括状态监测模块,以监测所述处理器的工作状态。
20、本发明的另一方面提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上述方法的步骤。
21、本发明的有益效果至少是:
22、本发明提供一种多核处理报文保序方法和系统,该方法包括:接收报文,前处理模块生成包序号,按顺序将包序号依次写入同一条数据流的连续报文中。调度模块接收多个处理器的状态信息,将报文分配到空闲状态的处理器。后处理模块生成出口序号,向所有处理器发送出口序号以指示所有处理器当前报文对应的出口序号。出口序号采用与包序号相同的序号数列。处理器处理报文后,判断当前报文的包序号与接收到的出口序号是否一致,若一致则输出处理后的报文,若不一致则等待直至一致时再输出。该系统使用硬件为报文添加序号,各模块并行,处理速度快,可扩展性较好。该方法和系统能够确保同一条流的报文在不同处理器上处理时仍然是保序的,在利用多核并行处理优势的情况下同时解决报文乱序的技术问题,简化了工作流程,提高了报文处理的效率。
23、本发明的附加优点、目的,以及特征将在下面的描述中将部分地加以阐述,且将对于本领域普通技术人员在研究下文后部分地变得明显,或者可以根据本发明的实践而获知。本发明的目的和其它优点可以通过在说明书以及附图中具体指出的结构实现到并获得。
24、本领域技术人员将会理解的是,能够用本发明实现的目的和优点不限于以上具体所述,并且根据以下详细说明将更清楚地理解本发明能够实现的上述和其他目的。
1.一种多核处理报文保序方法,其特征在于,该方法包括以下步骤:
2.根据权利要求1所述的多核处理报文保序方法,其特征在于,所述出口序号采用与所述包序号相同的序号数列,所述序号数列为一组循环数列,通过所述前处理模块和所述后处理模块调节该数列范围。
3.根据权利要求1所述的多核处理报文保序方法,其特征在于,所述调度模块采用先进先出队列对所述报文进行调度。
4.根据权利要求1所述的多核处理报文保序方法,其特征在于,所述调度模块采用最空闲时间优先调度法对所述报文进行调度,根据处于空闲状态的处理器的空闲时间来确定分配报文的优先顺序。
5.一种多核处理报文保序系统,其特征在于,该系统包括:前处理模块、调度模块、后处理模块和多个处理器;
6.根据权利要求5所述的多核处理报文保序系统,其特征在于,所述前处理模块包括一个计数电路和一个逻辑控制电路。
7.根据权利要求5所述的多核处理报文保序系统,其特征在于,所述后处理模块包括一个计数电路和一个逻辑控制电路。
8.根据权利要求5所述的多核处理报文保序系统,其特征在于,所述调度模块包括调度器和优先级编码器;
9.根据权利要求5所述的多核处理报文保序系统,其特征在于,所述处理器还包括状态监测模块,以监测所述处理器的工作状态。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至4中任一项所述方法的步骤。