CN100469055C - 转发报文的处理方法及处理装置 - Google Patents

转发报文的处理方法及处理装置 Download PDF

Info

Publication number
CN100469055C
CN100469055C CNB2006101273355A CN200610127335A CN100469055C CN 100469055 C CN100469055 C CN 100469055C CN B2006101273355 A CNB2006101273355 A CN B2006101273355A CN 200610127335 A CN200610127335 A CN 200610127335A CN 100469055 C CN100469055 C CN 100469055C
Authority
CN
China
Prior art keywords
message
batch
threshold value
ipc
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CNB2006101273355A
Other languages
English (en)
Other versions
CN1917478A (zh
Inventor
王高杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Information Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CNB2006101273355A priority Critical patent/CN100469055C/zh
Publication of CN1917478A publication Critical patent/CN1917478A/zh
Application granted granted Critical
Publication of CN100469055C publication Critical patent/CN100469055C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了转发报文的处理方法,其一包括设备驱动进程组合批次报文,将存放批次报文的第一缓冲器组的信息与数据单元封装到IPC消息并发送给转发进程;其二包括转发进程对数据通信设备接收的进行处理并组合批次报文,将存放批次报文的第二缓冲器组的信息与数据单元封装到IPC消息并发送给设备驱动进程,设备驱动进程根据数据单元发送报文。还公开了转发报文的处理装置,其一为设备驱动单元包括设有定时器和/或计数器的第一批处理单元和相连接的第一IPC消息设置模块;其二为转发单元包括设有定时器和/或计数器的第二批处理单元和相连接的第二IPC消息设置模块。本发明的处理方法和处理装置提高了报文转发效率,控制了报文转发时延。

Description

转发报文的处理方法及处理装置
技术领域
本发明涉及通信技术领域,特别是在数据通信设备中,通过在一个进程间通信(Inter-Process Communication,简称IPC)消息中同时携带多个报文的信息并进行处理,从而实现报文高效转发的方法及模块。
背景技术
对于数据通信设备,比如路由器、交换机等,其设备驱动程序与硬件相关,需要对设备寄存器进行读写操作,造成了数据通信设备软件系统的不稳定。基于目前多进程多线程技术的广泛应用,由于其采用内存管理单元(Memory Management unit,简称MMU)对内存进行分页映射,各进程有相互独立的虚拟地址空间,能够提高系统的稳定性和可靠性,因此在数据通信设备中把设备驱动程序与操作系统内核以及其它上层软件分离,作为一个单独的设备驱动进程,能够显著提高上层软件的稳定性与可靠性。
分离后,设备驱动进程负责管理数据链路层设备及物理层设备,对报文进行接收和发送,另有一上层转发进程负责报文的处理。具体的,由设备驱动进程分配并管理直接存储器存取(Direct Memory Access,简称DMA)的报文描述符(Buffer Descriptor,简称BD),通过接收BD记录DMA已接收的报文信息,通过发送BD记录DMA要发送的报文信息,并通过DMA实现以太网口等外设对存储器的直接访问,无须经过CPu的干预;转发进程分配并管理一定数目且大小固定的、用于存储报文的内存缓冲器(buffer),这些buffer的物理地址连续。当设备驱动进程初始化的时候,转发进程将报文buffer的起始物理地址发送到设备驱动进程,挂载到接收BD上即由接收BD记录该buffer的起始物理地址,从而指示该buffer存放被接收的报文,以备进一步的处理发送。上述数据通信设备的系统结构的示意图如图1所示。
在实际的报文转发过程中,设备驱动进程和转发进程之间通过操作系统提供的IPC进行数据交换来实现通信。其中,IPC的方式有多种,在数据通信设备中设备驱动进程与转发进程之间主要采用同步消息传递,即通过从一个进程的地址空间到另一个进程的地址空间的数据拷贝来实现消息传递:发送端进程首先发送一个消息,然后挂起;接收端进程收到消息后对发送端进程回送一个应答消息,发送端进程收到应答消息后解除挂起继续运行。
在现有技术中,每有一个报文到达数据通信设备,DMA就把报文传送并保存到接收BD上挂载的某一个报文buffer A中并向设备驱动进程发送中断指令,接收BD记录这个buffer A的信息,然后执行下述步骤:设备驱动进程收到中断后,读取接收BD中的内容,提取出该buffer A的起始地址和报文长度等信息,并放入一个IPC发送(Send)消息中,发往转发进程;转发进程向设备驱动进程回送一个IPC应答(Reply)消息,其中包括空的报文buffer B的地址,用于挂载到接收BD上以继续接收报文,同时根据IPC发送消息中的起始地址和报文长度信息,对buffer A中的报文进行处理,比如替换报文头的物理地址等;转发进程在对报文处理完成后,将处理后报文所在buffer A的物理地址和长度信息放在一个IPC发送(Send)消息中发往设备驱动进程;设备驱动进程从该IPC消息中提取buffer A的物理地址和长度信息挂载到发送BD上,指令发送BD发送buffer A中的报文,并把发送BD上原来挂载的空报文buffer C的地址和长度信息通过一个IPC应答(Reply)消息回送给转发进程。上述报文处理的流程示意图如图2所示。
在上述技术方案中,虽然设备驱动进程和转发进程的分离能够提高系统的可靠性与稳定性,但由于数据通信设备每实现一个报文的转发,都要通过驱动进程与转发进程之间的4次IPC消息的数据拷贝,包括两次发送和两次应答,导致了数据通信设备进行报文转发的效率低下。
发明内容
本发明的目的是为了克服现有技术中数据通信设备转发报文时效率低下的缺陷,提供转发报文的处理方法及处理装置,在保持设备驱动进程和转发进程分离架构以及维持IPC消息传递方式的前提下,提高报文处理的效率,从而提高报文转发的效率。
为实现上述目的,本发明提供了一种转发报文的处理方法,包括以下步骤:
步骤11、设备驱动进程依次对数据通信设备接收的报文进行计数和/或监控数据通信设备接收报文的时间;
步骤12、达到预设的驱动计数门限值或驱动计时门限值时,将已接收的报文组合为一批次报文;
步骤13、设备驱动进程将存放该批次报文的第一buffer组的地址和该批次报文的长度信息封装到一IPC消息中,并在所述IPC消息中设置一用于记录该批次报文数目的数据单元后,将所述IPC消息发送给转发进程。
为了平衡报文转发的速率和时延,较佳的技术方案是还包括:设置接收报文的驱动计数门限值和/或驱动计时门限值。进一步的,所述步骤12中,达到预设的驱动计数门限值或驱动计时门限值时还包括:清零用于监控驱动计数门限值的监控装置,以及复位用于监控驱动计时门限值的监控装置。
为了保证数据通信设备接收和处理用的buffer数量,更佳的技术方案是所述步骤13之后还包括:所述转发进程根据接收到的IPC消息中的数据单元,向设备驱动进程回送空buffer组信息,其中所述空buffer组与所述第一buffer组的buffer数目才相同。
为进一步提高转发效率,所述步骤13之后还包括:
步骤141、所述转发进程根据接收到的IPC消息中的数据单元,依次对所述报文进行处理,并进行计数和/或监控对报文进行处理的时间:
步骤142、达到预设的转发计数门限值或转发计时门限值时,将已处理的报文组合为一批次报文;
步骤143、所述转发进程将存放该批次报文的第二buffer组的地址和该批次报文的长度信息封装到一IPC消息中,并在所述IPC消息中设置一用于记录该批次报文数目的数据单元后,将所述IPC消息发送给设备驱动进程;
步骤144、所述设备驱动进程根据所述IPC消息中的数据单元,依次发送所述第二buffer组中的报文。
所述步骤144还包括:所述设备驱动进程向所述转发进程回送空buffer组信息,其中所述空buffer组与所述第二buffer组的buffer数目相同。
本发明还提供了一种转发报文的处理方法,包括以下步骤:
步骤21、转发进程依次对数据通信设备接收的报文进行处理,并进行计数和/或监控对报文进行处理的时间;
步骤22、达到预设的转发计数门限值或转发计时门限值时,将已处理的报文组合为一批次报文;
步骤23、转发进程将存放该批次报文的第二buffer组的地址和该批次报文的长度信息封装到一IPC消息中,并在所述IPC消息中设置一用于记录该批次报文数目的数据单元后,将所述IPC消息发送给设备驱动进程;
步骤24、所述设备驱动进程根据所述IPC消息中的数据单元,依次发送所述第二buffer组中的报文。
为了平衡报文转发的速率和时延,较佳的技术方案是还包括:设置接收报文的转发计数门限值和/或转发计时门限值。进一步的,所述步骤22中,达到预设的转发计数门限值或转发计时门限值时还包括:清零用于监控转发计数门限值的监控装置,以及复位用于监控转发计时门限值的监控装置。
为了保证数据通信设备接收和处理用的buffer数量,更佳的技术方案是步骤24之后还包括所述设备驱动进程根据接收到的IPC消息中的数据单元,向所述转发进程回送空buffer组信息,其中所述空buffer组与所述第二buffer组的buffer数目相同。
为进一步提高转发效率,所述步骤21之前还包括:
步骤201、设备驱动进程依次对数据通信设备接收的报文进行计数和/或监控数据通信设备接收报文的时间;
步骤202、达到预设的驱动计数门限值或驱动计时门限值时,将已接收的报文组合为一批次报文:
步骤203、设备驱动进程将存放该批次报文的第一buffer组的地址和该批次报文的长度信息封装到一IPC消息中,并在所述IPC消息中设置一用于记录该批次报文数目的数据单元后,将所述IPC消息发送给转发进程。
则步骤21还可包括所述转发进程根据接收到的IPC消息中的数据单元,向设备驱动进程回送空buffer组信息,其中所述空buffer组与所述第一buffer组的buffer数目相同。
本发明还提供了一种转发报文的处理装置,包括交互通信的设备驱动单元和转发单元;所述设备驱动单元包括设有定时器和/或计数器的第一批处理单元,用于根据预设的驱动计数门限值和/或驱动计时门限值,将数据通信设备接收到的报文组合为批次报文,并将存放每批次报文的第一buffer组的地址和该批次报文的长度信息封装到IPC消息中;还包括与所述第一批处理单元连接的第一IPC消息设置单元,用于在IPC消息中设置记录该批次报文数目的数据单元,将所述IPC消息发送给所述转发单元。
为了平衡报文转发的速率和时延,较佳的技术方案所述设备驱动单元还包括驱动条件设置单元,所述驱动条件设置单元与第一批处理单元连接,用于进行驱动计数门限值和/或驱动计时门限值的设置。为进一步提高转发效率,更佳的技术方案是所述转发单元包括设有定时器和/或计数器的第二批处理单元,用于根据预设转发计数门限值和/或转发计时门限值,将待处理的报文组合为批次报文,并将存放每批次报文的第二buffer组的地址和该批次报文的长度信息封装到IPC消息中;还包括与所述第二批处理单元连接的第二IPC消息设置单元,用于在IPC消息中设置记录该批次报文数目的数据单元。
所述转发单元还可包括转发条件设置单元,所述转发条件设置单元与第二批处理单元连接,用于进行转发计数门限值和/或转发计时门限值的设置。
本发明还提供了一种转发报文的处理装置,包括交互通信的设备驱动单元和转发单元;所述转发单元包括设有定时器和/或计数器的第二批处理单元,用于根据预设转发计数门限值和/或转发计时门限值,将待处理的报文组合为批次报文,并将存放每批次报文的第二buffer组的地址和该批次报文的长度信息封装到IPC消息中;还包括与所述第二批处理单元连接的第二IPC消息设置单元,用于在IPc消息中设置记录该批次报文数目的数据单元,将所述IPC消息发送给所述设备驱动单元。
为了平衡报文转发的速率和时延,较佳的技术方案所述转发单元还包括转发条件设置单元,所述转发条件设置单元与第二批处理单元连接,用于进行转发计数门限值和/或转发计时门限值的设置。
为进一步提高转发效率,更佳的技术方案是所述设备驱动单元包括设有定时器和/或计数器的第一批处理单元,用于根据预设的驱动计数门限值和/或驱动计时门限值,将数据通信设备接收到的报文组合为批次报文,并将存放每批次报文的第一buffer组的地址和该批次报文的长度信息封装到IPC消息中;还包括与所述第一批处理单元连接的第一IPC消息设置单元,用于在IPC消息中设置记录该批次报文数目的数据单元。
所述设备驱动单元还可包括驱动条件设置单元,所述驱动条件设置单元与第一批处理单元连接,用于进行驱动计数门限值和/或驱动计时门限值的设置。
由上述技术方案可知,本发明通过数据单元标识报文数目,采用设备驱动进程和转发进程间IPC消息中报文消息的合并,具有以下有益效果:
1、提高了数据通信设备报文转发的效率;
2、控制了数据通信设备报文转发的时延。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为现有技术中数据通信设备的系统结构图;
图2为现有技术中数据通信设备进行报文处理的流程示意图;
图3为本发明所提供的一种转发报文的处理方法的基本流程图;
图4为图3所示处理方法的一个较佳实施例的流程图;
图5为进程间4次数据拷贝的流程示意图;
图6为图3所示处理方法的一个具体实施例的流程图;
图7为本发明所提供的另一种转发报文的处理方法的基本流程图;
图8为本发明所提供的转发报文的一种处理装置的模块结构图;
图9为图7所示处理装置的一个较佳实施例的模块结构图;
图10为本发明所提供的转发报文的另一种处理装置的模块结构图。
具体实施方式
为了克服现有技术中数据通信设备转发报文效率低下的问题,本发明通过设备驱动进程和转发进程之间的IPC携带报文合并机制,提供了一种转发报文的处理方法和转发报文的处理装置,该转发报文的处理方法及处理装置能够应用于数据通信设备,包括路由器、交换机以及网关设备等,但不限于上述数据通信设备。
参见图3,为本发明所提供的一种转发报文的处理方法的流程图,包括以下步骤:
步骤11、设备驱动进程依次对数据通信设备接收的报文进行计数和/或监控数据通信设备接收报文的时间;其中,报文按照接收顺序依次存放于相应数目的buffer中,即每一个报文存放在一个buffer中,该buffer的物理地址是连续的;
步骤12、达到预设的驱动计数门限值或驱动计时门限值时,将已接收的报文组合为一批次报文;
步骤13、设备驱动进程将存放该批次报文的第一buffer组的地址和该批次报文的长度信息封装到一IPC消息中,即在一个IPC消息中携带多个报文存放的信息,并在所述IPC消息中设置一用于记录该批次报文数目的数据单元后,将所述IPC消息发送给转发进程。
具体的,所述步骤11及步骤12根据驱动计数门限值对数据通信设备接收到的报文计数并组合为批次报文具体为:所述设备驱动进程依次对数据通信设备接收到的报文进行计数,达到预设的驱动计数门限值时,将已计数的报文设置为一批次报文;即,设备驱动进程在数据通信设备每接收一个报文时,计数加1,当接收到的报文数达到某个预设的门限值,则提取存放该批报文的第一buffer组的地址和长度信息并封装进入一IPC消息中,计数器清零用于重新处理计数。
根据驱动计时门限值对数据通信设备接收到的报文计数并组合为批次报文具体为:当所述设备驱动进程在接收第一个报文时,启动定时器并置位定时器启动标志,所述置位后的启动标志用于拒绝接收后续报文时对定时器的启动请求;达到预设驱动计时门限值时,已记录的报文设置为一批次报文;即设备驱动进程在定时器复位后,当数据通信设备接收第一个报文时,启动定时器,同时置位定时器启动标志,该标志置位后继续接受后续报文不再启动新的定时器。当定时器达到一定的时间超时时,提取存放该批报文的第一buffer组的地址和长度信息并封装进入一IPC消息中,定时器清零以及定时器启动标志复位用于进行重新处理计时。
对比每一个报文占据一个线程,等待4次数据拷贝后才能解除线程挂起,将报文转发出去然后释放该线程资源的现有技术,本发明所提供的方法中设备驱动进程或者说设备驱动进程中的某一个线程是对一批报文进行处理,能够显著提高报文处理的速率。这是因为过多的挂起线程将导致系统资源的无益消耗和系统拥塞,为了保证系统的平稳运行,多线程的数目必须限制在合理的范围内,这就导致了现有技术中,存在大量的报文等待在先报文的转发完成后,才能获得处理的情况,因此导致了报文处理的迟滞和时延,严重降低了报文处理的效率。在上述技术方案中,由于每一个线程都组合发送批次报文,因此,在后的报文能够更快的进入转发进程的处理程序。同时,通过在IPC消息中增加一个数据单元来记录报文的负载数目,保证了接收到IPC消息的转发进程能够根据该数据单元,正确识别需处理的报文数。
但是,组合批次报文的情况下,由于在先接收的报文需要满足一定的条件,比如等待足够数量的后继报文或者达到一定的等待时间,才进行统一处理;因此,对于仅有少量报文的情况,有可能产生时延。为了克服这一问题,同时实现对大量报文转发的速率的调整和少量报文转发的时延的控制,还包括:设置接收报文的驱动计数门限值和/或驱动计时门限值。
驱动计数门限值和/或驱动计时门限值可由管理员进行设置,也可由用户自行设置,以便配合报文数量获取最迅速的报文转发效果。如果管理员和用户不进行设置,则本技术方案使用出厂默认值进行报文的转发处理。
当达到驱动计数门限值或驱动计时门限值时,如果仅将达到对应门限值的监控设备清零或者复位,而对应其它门限值的监控设备继续监控,则容易导致监控的混乱,也不利于进行全局监控参数的设置,因此,步骤12中,达到预设的驱动计数门限值或驱动计时门限值时还包括:清零用于监控驱动计数门限值的监控装置,以及复位用于监控驱动计时门限值的监控装置,以利于准确和有效的控制报文转发的速率和时延,复位后的线程进入下一批报文的统计;即达到预设的驱动计数门限值或驱动计时门限值时,设备驱动进程都执行提取存放该批报文的第一buffer组的地址和长度信息并封装进入一IPC消息的操作,同时计数器清零,定时器清零以及定时器启动标志复位用于进行后续处理。
作为监控设备,定时器/计数器是某一个线程的定时器/计数器,在设备驱动进程多线程的情况下,每一个线程都对应一定时器和/或计数器。
为了保证数据通信设备用于接收的buffer数量,所述步骤13之后还包括:所述转发进程根据接收到的IPC消息中的数据单元,向设备驱动进程回送空buffer组信息,其中所述空buffer组与所述第一buffer组的buffer数目相同。这样,设备驱动进程将空buffer组挂载到接收BD上,以备继续接收。或者,本领域技术人员也可按照所知的任一方式,设置其它进程进行空buffer组的补充,从而保证数据通信设备用于接收的buffer数量。
参见图4,为上述技术方案的一个较佳实施例:相比于各个线程只处理一个报文时,大量报文的迟滞造成的效率降低,在本实施例中通过转发进程组合发送批次报文,能够进一步提高转发报文的效率。具体为在步骤13之后包括以下步骤:
步骤141、所述转发进程根据接收到的IPC消息中的数据单元,依次对所述报文进行处理,并进行计数和/或监控对报文进行处理的时间;
步骤142、达到预设的转发计数门限值或转发计时门限值时,将已处理的报文组合为一批次报文;
步骤143、所述转发进程将存放该批次报文的第二buffer组的地址和该批次报文的长度信息封装到一IPC消息中,并在所述IPC消息中设置一用于记录该批次报文数目的数据单元后,将所述IPC消息发送给设备驱动进程;
步骤144、所述设备驱动进程根据所述IPC消息中的数据单元,将所述第二buffer组中的报文挂载到发送BD上发送出去,完成报文的转发。
在本实施例中,转发进程是对经过设备驱动进程批处理后的报文进行处理,因此,如果仅对于设备驱动进程批处理后的某一批次报文来说,第二buffer组为该批次报文所对应第一buffer组的全部或者部分。由于设备驱动进程与转发进程分别独立计数/计时,因此,对于设备驱动进程批处理后的多批次报文来说,第二buffer组可能与第一buffer组的分组情况相同,但更可能的情况为,第二buffer组是第一buffer组中buffer的重新分组组合。
为了保证转发进程处理报文的buffer数目,步骤144还包括:所述设备驱动进程向所述转发进程回送空buffer组信息,其中所述空buffer组与所述第二buffer组的缓冲器数目相同,或者,本领域技术人员也可按照所知的任一方式,设置其它进程进行空buffer组的补充,从而保证转发进程用于处理的buffer数量。
因此,本发明的最佳实施例为设备驱动进程和转发进程2次批处理报文组,进过数据的四次拷贝之后被发送出去,实现数据通信设备对报文的成功转发,如图5所示。在一个线程的极端情况下,进入存储区的报文,如果未能作为设备驱动进程的第一批次报文,那么则需要等待第一批次报文的4次拷贝完成后,继续得到处理;假设该批次报文数目为N,进城间拷贝数据耗时为t,处理每一报文的时间为T,则需耗时4*t+N*T;相比于单个报文处理的时间(4*t+T)*N,其效率显然大大提高。在设备驱动进程和转发进程都是多线程工作的情况下,对于路由器/交换机等进行大量报文转发的情况,更可以显著提高转发效率。
对于少量报文的情况,则通过设置驱动计数门限值和/或驱动计时门限值以及转发计数门限值和/或转发计时门限值来实现对时延的控制。
参见图6,为本发明所提供转发报文的处理方法的一个具体实施例的流程图,包括以下步骤:
步骤101、设置驱动计数门限值M和驱动计时门限值T1,设置转发计数门限值N和转发计时门限值T2;
步骤102、设备驱动进程在数据通信设备接收第一个报文时,启动定时器C1,并置位定时器启动标志;
步骤103、数据通信设备接收一个报文,计数器D1加1;
步骤104、判断已接收报文数是否达到M,是则执行步骤106,否则执行步骤105;
步骤105、判断是否达到驱动计时门限值T1,是则执行步骤106,否则执行步骤103;
步骤106、清零定时器C1,复位定时器启动标志,清零计数器D1;同时设备驱动进程将已接收的报文组合为一批次报文;
步骤107、设备驱动进程将存放该批次报文的第一buffer组的地址和该批次报文的长度信息封装到一IPC消息,并在所述IPC消息中设置一用于记录该批次报文数目的数据单元后,将所述IPC消息发送给转发进程;
步骤108、转发进程根据接收到的IPC消息中的数据单元,回送同等数目的空buffer组信息给设备驱动进程;
步骤109、转发进程开始处理第一个报文时,启动定时器C2,并置位定时器启动标志;
步骤110、转发进程处理一个报文,计数器D2加1;
步骤111、判断已处理报文数是否达到N,是则执行步骤113,否则执行步骤112;
步骤112、判断是否达到转发计时门限值T2,是则执行步骤113,否则执行步骤110;
步骤113、清零定时器C2,复位定时器启动标志,清零计数器D2;同时转发进程将已接收的报文组合为一批次报文;
步骤114、转发进程将存放该批次报文的第二buffer组的地址和该批次报文的长度信息封装到一IPC消息中,并在所述IPC消息中设置一用于记录该批次报文数目的数据单元后,将所述IPC消息发送给设备驱动进程;
步骤115、设备驱动进程根据接收到的IPC消息中的数据单元,回送同等数目的空buffer信息给转发进程;
步骤116、设备驱动进程根据所述IPC消息中的数据单元,将所述第二buffer组中的报文挂载在BD上发送给目标终端。
参见图7,为本发明所提供的另一转发报文的处理方法的流程图,包括以下步骤:
步骤21、转发进程依次对数据通信设备接收的报文进行处理,并进行计数和/或监控对报文进行处理的时间;
步骤22、达到预设的转发计数门限值或转发计时门限值时,将已处理的报文组合为一批次报文;
步骤23、转发进程将存放该批次报文的第二buffer组的地址和该批次报文的长度信息封装到一IPC消息中,并在所述IPC消息中设置一用于记录该批次报文数目的数据单元后,将所述IPC消息发送给设备驱动进程;
步骤24、所述设备驱动进程根据所述IPC消息中的数据单元,依次发送所述第二buffer组中的报文。
其中,步骤21中转发进程可以对数据通信设备单个接收的报文进行批处理,也可以对数据通信设备批处理接收的报文进行依次处理。具体的,步骤21中对每一个报文的处理可以包括更换新的报文头,比如将此前IP报头的数据链路层地址(MAC地址)进行替换,原有的MAC地址为到数据通信设备的地址,处理后为到目的终端的地址。
所述步骤21和22中根据转发计数门限值对待处理的报文计数并组合为批次报文具体为:所述转发进程依次处理报文并进行计数,达到预设转发计数门限值时,将处理后的已计数报文设置为一批次报文,计数器清零用于后续的处理计数。
根据转发计时门限值对待处理的报文计数并组合为批次报文具体为:当所述转发进程在处理第一个报文时,启动定时器并置位定时器启动标志,然后依次处理报文,所述置位后的启动标志用于拒绝处理后续报文时对定时器的启动请求;达到转发计时门限值时,将处理后的已记录报文设置为一批次报文,定时器清零以及定时器启动标志复位用于后续处理计时。
对比每一个报文占据一个线程,本发明所提供的方法中转发进程或者说转发进程中的某一个线程是对一批报文进行处理,能够显著提高报文处理的速率。这是因为过多的挂起线程将导致系统资源的无益消耗和系统拥塞,为了保证系统的平稳运行,多线程的数目必须限制在合理的范围内,这就导致了现有技术中,存在大量的报文等待在先报文的处理完成后,才能获得处理的情况,因此导致了报文处理的迟滞和时延,严重降低了报文处理的效率。在上述技术方案中,由于每一个线程都组合发送批次报文,因此,在后的报文能够更快的被处理并得到发送。同时,通过在IPC消息中增加一个数据单元来记录报文的负载数目,保证了接收到IPC消息的设备驱动进程能够根据该数据单元,正确识别需处理的报文数。
但是,组合批次报文的情况下,由于在先接收的报文需要满足一定的条件,比如等待足够数量的后继报文或者达到一定的等待时间,才进行统一处理;因此,对于仅有少量报文的情况,有可能产生时延。为了克服这一问题,同时实现对大量报文转发的速率的调整和少量报文转发的时延的控制,还包括:设置接收报文的转发计数门限值和/或转发计时门限值。
转发计数门限值和/或转发计时门限值可由管理员进行设置,也可由用户自行设置,以便配合报文数量获取最迅速的报文转发效果。如果管理员和用户不进行设置,则本技术方案使用出厂默认值进行报文的转发处理。
当达到转发计数门限值或转发计时门限值时,如果仅将达到对应门限值的监控设备清零或者复位,而对应其它门限值的监控设备继续监控,则容易导致监控的混乱,也不利于进行全局监控参数的设置,因此,步骤22中,达到预设的转发计数门限值或转发计时门限值时还包括:清零用于监控转发计数门限值的监控装置,以及复位用于监控转发计时门限值的监控装置,以利于准确和有效的控制报文转发的速率和时延,复位后的线程进入下一批报文的统计;即达到预设的转发计数门限值或转发计时门限值时,驱动进程都执行提取存放该批报文的第二buffer组的地址和长度信息并封装进入一IPC消息的操作,同时计数器清零,定时器清零以及定时器启动标志复位用于进行后续处理。
作为监控设备,定时器/计数器是某一个线程的定时器/计数器,在转发进程多线程的情况下,每一个线程都对应一定时器和/或计数器。
为了保证驱动进程处理用的buffer数量,更佳的技术方案是步骤24之后还包括所述设备驱动进程根据接收到的IPC消息中的数据单元,向所述转发进程回送空buffer组信息,其中所述空buffer组与所述第二buffer组的buffer数目相同,或者,本领域技术人员也可按照所知的任一方式,设置其它进程进行空buffer组的补充,从而保证转发进程用于处理的buffer数量。
为进一步提高转发效率,本方法的一个较佳实施例是:在本实施例中通过设备驱动进程组合发送批次报文,进一步提高转发报文的效率,具体为在所述步骤21之前还包括:
步骤201、设备驱动进程依次对数据通信设备接收的报文进行计数和/或监控数据通信设备接收报文的时间;
步骤202、达到预设的驱动计数门限值或驱动计时门限值时,将已接收的报文组合为一批次报文;
步骤203、设备驱动进程将存放该批次报文的第一buffer组的地址和该批次报文的长度信息封装到一IPC消息中,并在所述IPC消息中设置一用于记录该批次报文数目的数据单元后,将所述IPC消息发送给转发进程。
则对应设备驱动进程的批处理方案,步骤21还可包括所述转发进程根据接收到的IPC消息中的数据单元,向设备驱动进程回送空buffer组信息,其中所述空buffer组与所述第一buffer组的buffer数目相同,以保证用于接收的buffer数量。或者,本领域技术人员也可按照所知的任一方式,设置其它进程进行空buffer组的补充,从而保证数据通信设备用于接收的buffer数量。
本转发报文的处理方法较佳的具体实施例与图6所示相同。
本发明提供了一种转发报文的处理装置,如图8所示,包括设备驱动单元1和转发单元2,设备驱动单元1和转发单元2通过IPC进行交互通信;其中,所述设备驱动单元1包括设有定时器和/或计数器(图中未示)的第一批处理单元11,用于对数据通信设备接收到的报文进行批处理,具体为根据预设的驱动计数门限值和/或驱动计时门限值,将数据通信设备接收到的报文组合为批次报文,并将存放每批次报文的第一buffer组的地址和该批次报文的长度信息封装到IPC消息中;还包括与所述第一批处理单元连接11的第一IPC消息设置单元12,用于在IPC消息中设置记录该批次报文数目的数据单元。
其中,设备驱动单元1启动设备驱动进程,对数据通信设备接收的报丈进行接收和发送。
对于定时器,其特别为具有可置位的定时器启动标志的定时器。在多线程的情况下,计数器和/或定时器为多个。
为了实现对大量报文转发的速率的调整和少量报文转发的时延的控制,所述设备驱动单元1还包括驱动条件设置单元13,所述驱动条件设置单元与第一批处理单元11连接,用于进行驱动计数门限值和/或驱动计时门限值的设置。
本发明还提供了一种转发报文的处理装置,如图9所示,包括设备驱动单元1和转发单元2,设备驱动单元1和转发单元2通过IPC进行交互通信;其中,所述转发单元2包括设有定时器和/或计数器(图中未示)的第二批处理单元21,用于根据预设转发计数门限值和/或转发计时门限值,将待处理的报文组合为批次报文,并将存放每批次报文的第二buffer组的地址和该批次报文的长度信息封装到IPC消息中;还包括与所述第二批处理单元21连接的第二IPC消息设置单元22,用于在IPC消息中设置记录该批次报文数目的数据单元。
其中,转发单元2启动转发进程,对设备驱动进程发送的报文进行处理。
对于定时器,其特别为具有可置位的定时器启动标志的定时器。在多线程的情况下,计数器和/或定时器为多个。
为了实现对大量报文转发的速率的调整和少量报文转发的时延的控制,所述转发单元2还包括转发条件设置单元23,所述转发条件设置单元23与第二批处理单元21连接,用于进行转发计数门限值和/或转发计时门限值的设置。
本发明所提供转发报文的处理装置的最佳实施例,如图10所示,为上述两种技术方案的结合。
本发明所提供的转发报文的处理装置可以用于数据通信设备,用来灵活控制报文的转发,从而提高报文转发效率并控制报文转发的时延。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。

Claims (22)

1、一种转发报文的处理方法,其特征在于包括以下步骤:
步骤11、设备驱动进程依次对数据通信设备接收的报文进行计数和/或监控数据通信设备接收报文的时间;
步骤12、达到预设的驱动计数门限值或驱动计时门限值时,将已接收的报文组合为一批次报文:
步骤13、设备驱动进程将存放该批次报文的第一缓冲器组的地址和该批次报文的长度信息封装到一IPC消息中,并在所述IPC消息中设置一用于记录该批次报文数目的数据单元后,将所述IPC消息发送给转发进程。
2、根据权利要求1所述的处理方法,其特征在于还包括:设置接收报文的驱动计数门限值和/或驱动计时门限值。
3、根据权利要求1所述的处理方法,其特征在于所述步骤12中,达到预设的驱动计数门限值或驱动计时门限值时还包括:清零用于监控驱动计数门限值的监控装置,以及复位用于监控驱动计时门限值的监控装置。
4、根据权利要求1所述的处理方法,其特征在于所述步骤13之后还包括:所述转发进程根据接收到的IPC消息中的数据单元,向设备驱动进程回送空缓冲器组信息,其中所述空缓冲器组与所述第一缓冲器组的缓冲器数目相同。
5、根据权利要求1.4任一所述的处理方法,其特征在于所述步骤13之后还包括:
步骤141、所述转发进程根据接收到的IPC消息中的数据单元,依次对所述报文进行处理,并进行计数和/或监控对报文进行处理的时间;
步骤142、达到预设的转发计数门限值或转发计时门限值时,将已处理的报文组合为一批次报文:
步骤143、所述转发进程将存放该批次报文的第二缓冲器组的地址和该批次报文的长度信息封装到一IPC消息中,并在所述IPC消息中设置一用于记录该批次报文数目的数据单元后,将所述IPC消息发送给设备驱动进程;
步骤144、所述设备驱动进程根据所述IPC消息中的数据单元,依次发送所述第二缓冲器组中的报文。
6、根据权利要求5所述的处理方法,其特征在于所述步骤144还包括:所述设备驱动进程向所述转发进程回送空缓冲器组信息,其中所述空缓冲器组与所述第二缓冲器组的缓冲器数目相同。
7、一种转发报文的处理方法,其特征在于包括以下步骤:
步骤21、转发进程依次对数据通信设备接收的报文进行处理,并进行计数和/或监控对报文进行处理的时间;
步骤22、达到预设的转发计数门限值或转发计时门限值时,将已处理的报文组合为一批次报文;
步骤23、转发进程将存放该批次报文的第二缓冲器组的地址和该批次报文的长度信息封装到一IPC消息中,并在所述IPC消息中设置一用于记录该批次报文数目的数据单元后,将所述IPC消息发送给设备驱动进程;
步骤24、所述设备驱动进程根据所述IPC消息中的数据单元,依次发送所述第二缓冲器组中的报文。
8、根据权利要求7所述的处理方法,其特征在于还包括:设置接收报文的转发计数门限值和/或转发计时门限值。
9、根据权利要求7所述的处理方法,其特征在于所述步骤22中,达到预设的转发计数门限值或转发计时门限值时还包括:清零用于监控转发计数门限值的监控装置,以及复位用于监控转发计时门限值的监控装置。
10、根据权利要求7所述的处理方法,其特征在于所述步骤24之后还包括所述设备驱动进程根据接收到的IPC消息中的数据单元,向所述转发进程回送空缓冲器组信息,其中所述空缓冲器组与所述第二缓冲器组的缓冲器数目相同。
11、根据权利要求8-10任一所述的处理方法,其特征在于所述步骤21之前还包括:
步骤201、设备驱动进程依次对数据通信设备接收的报文进行计数和/或监控数据通信设备接收报文的时间;
步骤202、达到预设的驱动计数门限值或驱动计时门限值时,将已接收的报文组合为一批次报文;
步骤203、设备驱动进程将存放该批次报文的第一缓冲器组的地址和该批次报文的长度信息封装到一IPC消息中,并在所述IPC消息中设置一用于记录该批次报文数目的数据单元后,将所述IPC消息发送给转发进程。
12、根据权利要求11所述的处理方法,其特征在于步骤21还包括所述转发进程根据接收到的IPC消息中的数据单元,向设备驱动进程回送空缓冲器组信息,其中所述空缓冲器组与所述第一缓冲器组的缓冲器数目相同。
13、一种转发报文的处理装置,包括交互通信的设备驱动单元和转发单元;其特征在于:
所述设备驱动单元包括设有定时器和/或计数器的第一批处理单元,用于根据预设的驱动计数门限值和/或驱动计时门限值,将数据通信设备接收到的报文组合为批次报文,并将存放每批次报文的第一缓冲器组的地址和该批次报文的长度信息封装到IPC消息中;
还包括与所述第一批处理单元连接的第一IPC消息设置单元,用于在IPC消息中设置记录该批次报文数目的数据单元,将所述IPC消息发送给所述转发单元。
14、根据权利要求13所述的处理装置,其特征在于所述设备驱动单元还包括驱动条件设置单元,所述驱动条件设置单元与第一批处理单元连接,用于进行驱动计数门限值和/或驱动计时门限值的设置。
15、根据权利要求13所述的处理装置,其特征在于所述定时器中具有可置位的定时器启动标志。
16、根据权利要求13-15任一所述的处理装置,其特征在于:
所述转发单元包括设有定时器和/或计数器的第二批处理单元,用于根据预设转发计数门限值和/或转发计时门限值,将待处理的报文组合为批次报文,并将存放每批次报文的第二缓冲器组的地址和该批次报文的长度信息封装到IPC消息中;
还包括与所述第二批处理单元连接的第二IPC消息设置单元,用于在IPC消息中设置记录该批次报文数目的数据单元。
17、根据权利要求16所述的处理装置,其特征在于所述转发单元还包括转发条件设置单元,所述转发条件设置单元与第二批处理单元连接,用于进行转发计数门限值和/或转发计时门限值的设置。
18、一种转发报文的处理装置,包括交互通信的设备驱动单元和转发单元;其特征在于:
所述转发单元包括设有定时器和/或计数器的第二批处理单元,用于根据预设转发计数门限值和/或转发计时门限值,将待处理的报文组合为批次报文,并将存放每批次报文的第二缓冲器组的地址和该批次报文的长度信息封装到IPC消息中;
还包括与所述第二批处理单元连接的第二IPC消息设置单元,用于在IPC消息中设置记录该批次报文数目的数据单元,将所述IPC消息发送给所述设备驱动单元。
19、根据权利要求18所述的处理装置,其特征在于所述转发单元还包括转发条件设置单元,所述转发条件设置单元与第二批处理单元连接,用于进行转发计数门限值和/或转发计时门限值的设置。
20、根据权利要求18所述的处理装置,其特征在于所述定时器中具有可置位的定时器启动标志。
21、根据权利要求19-20任一所述的处理装置,其特征在于:
所述设备驱动单元包括设有定时器和/或计数器的第一批处理单元,用于根据预设的驱动计数门限值和/或驱动计时门限值,将数据通信设备接收到的报文组合为批次报文,并将存放每批次报文的第一缓冲器组的地址和该批次报文的长度信息封装到IPC消息中;
还包括与所述第一批处理单元连接的第一IPC消息设置单元,用于在IPC消息中设置记录该批次报文数目的数据单元。
22、根据权利要求21所述的处理装置,其特征在于所述设备驱动单元还包括驱动条件设置单元,所述驱动条件设置单元与第一批处理单元连接,用于进行驱动计数门限值和/或驱动计时门限值的设置。
CNB2006101273355A 2006-09-14 2006-09-14 转发报文的处理方法及处理装置 Active CN100469055C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006101273355A CN100469055C (zh) 2006-09-14 2006-09-14 转发报文的处理方法及处理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006101273355A CN100469055C (zh) 2006-09-14 2006-09-14 转发报文的处理方法及处理装置

Publications (2)

Publication Number Publication Date
CN1917478A CN1917478A (zh) 2007-02-21
CN100469055C true CN100469055C (zh) 2009-03-11

Family

ID=37738374

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006101273355A Active CN100469055C (zh) 2006-09-14 2006-09-14 转发报文的处理方法及处理装置

Country Status (1)

Country Link
CN (1) CN100469055C (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101291266B (zh) * 2007-04-18 2011-05-11 中兴通讯股份有限公司 超移动宽带技术中对“删除特性请求消息”的响应方法
CN101815034B (zh) * 2010-03-26 2012-07-25 迈普通信技术股份有限公司 任务间消息发送方法及通信设备
CN103259738B (zh) * 2013-04-27 2017-06-06 华为技术有限公司 一种数据发送方法、数据产生器及主动流控系统
CN104853259B (zh) * 2015-06-03 2017-10-13 上海斐讯数据通信技术有限公司 一种基于igmp的报文处理方法及系统
CN106888173B (zh) * 2017-02-21 2019-11-29 武汉虹旭信息技术有限责任公司 通用高效消息通信系统及其方法
CN108800447A (zh) * 2018-04-17 2018-11-13 南京铁道职业技术学院 一种温湿度控制系统及其方法
CN109614305A (zh) * 2018-12-11 2019-04-12 广东省新代通信与网络创新研究院 处理器的占用率获取方法、装置及计算机可读存储介质

Also Published As

Publication number Publication date
CN1917478A (zh) 2007-02-21

Similar Documents

Publication Publication Date Title
CN100469055C (zh) 转发报文的处理方法及处理装置
KR960012686B1 (ko) 통신 시스템용 스테이션 및 그 통신방법
US5471618A (en) System for classifying input/output events for processes servicing the events
EP2406723B1 (en) Scalable interface for connecting multiple computer systems which performs parallel mpi header matching
US6922408B2 (en) Packet communication buffering with dynamic flow control
CN101267361B (zh) 一种基于零拷贝技术的高速网络数据包捕获方法
CA2124452C (en) Method and apparatus for processing data within stations of a communication network
US20090213732A1 (en) Preserving packet order when migrating network flows between cores
CN102549552A (zh) 用于处理流感知网络节点中的数据分组的方法
EP2092436A2 (en) A network interface card for use in parallel computing systems
US20050129040A1 (en) Shared adapter
CN102185770A (zh) 基于多核架构的批量式报文收发方法
CN101540764A (zh) 一种基于fpga的面向虚拟机的数据传输和路由方法
US6301256B1 (en) Selection technique for preventing a source port from becoming a destination port in a multi-port bridge for a local area network
US7564860B2 (en) Apparatus and method for workflow-based routing in a distributed architecture router
CN103986585A (zh) 报文预处理方法及其装置
US7760736B2 (en) Method, system, and computer program product for ethernet virtualization using an elastic FIFO memory to facilitate flow of broadcast traffic to virtual hosts
US9584446B2 (en) Memory buffer management method and system having multiple receive ring buffers
CN107066413A (zh) 一种用于处理多个总线设备数据的方法、及其总线系统
US6442168B1 (en) High speed bus structure in a multi-port bridge for a local area network
US7814182B2 (en) Ethernet virtualization using automatic self-configuration of logic
CN100538690C (zh) 一种多cpu系统及cpu之间消息传递的方法
USRE39026E1 (en) Bus protocol
US7751400B2 (en) Method, system, and computer program product for ethernet virtualization using an elastic FIFO memory to facilitate flow of unknown traffic to virtual hosts
CN113422741B (zh) 一种时间触发以太网交换机结构

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee after: NEW H3C TECHNOLOGIES Co.,Ltd.

Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Patentee before: HANGZHOU H3C TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230529

Address after: 310052 11th Floor, 466 Changhe Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: H3C INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 310052 Changhe Road, Binjiang District, Hangzhou, Zhejiang Province, No. 466

Patentee before: NEW H3C TECHNOLOGIES Co.,Ltd.