一种数据包接收处理方法和装置的制作方法

文档序号:7598040阅读:100来源:国知局
专利名称:一种数据包接收处理方法和装置的制作方法
技术领域
本发明涉及到数据通信领域。具体而言,是一种数据包接收处理方法和装置。
背景技术
高速数据业务要求系统的处理时延越小越好。当数据包进入数据业务系统时,一 般需要经过接收、流分类和存储三个操作。在此过程中,数据包的接收和存储操作所花费 的时间和存储空间资源都与数据包的长度成正比关系。按照传统的方法,每一步操作的开 始需要等待上一步操作的完成,对于长度很长的数据包,如9600byte,在时间上和器件片内 RAM资源上都是很大的开销,甚至成为系统的瓶颈。当系统采用传统的处理方式时,一个数据包的接收过程所花费的时间为数据包接 收的时间tl,数据包流分类操作的时间t2,和数据包存入缓存的时间t3三者之和,其中数据包接收的时间tl :tl = len/vl,其中,Ien为数据包的包长,vl为该数据包的 输入端口速率;数据包流分类操作的时间t2可以看作与数据包的长度无关,为一个固定值;数据包存入缓存的时间t3 :t3 = len/v2,其中,Ien为数据包的包长,v2为系统缓 存的存储速率。因此整个过程所耗费的时间为tl+t2+t3 = Ien/vl+t2+len/v20对于一个固定的 系统来说,vl, v2为固定值,所以决定整个过程所耗费时间是数据包的长度len。当系统支持的最大包长为9600byte,数据包输入端口为Kibps,系统缓存的存 储速率为20(ibpS时,从开始接收到缓存完毕的最大时延为9600X8/(109)+9600X8/ (2 X IOici)+t2,艮口 8. 064X10_5+t2(s)。另外,对于数据包的接收,数据端口需要的器件片内RAM资源,应该至少支持两个 最大包长的数据整包的空间,即9600X8X2 = 153. 61Λ,如果系统输入的端口数目不止一 个的情况下,随着端口的数目的增加,这个资源的开销会逐渐变得不可接受。

发明内容
本发明要解决的技术问题是提供一种数据包接收处理方法和装置,减小数据处理 时延。为了解决上述问题,本发明提供了一种数据包接收处理装置,包括输入控制模块、 报文处理模块和包管理模块,其中所述输入控制模块用于接收数据包,在接收数据包的过程中,提取流分类操作信 息,按预设大小对数据包进行切片,每接收到一个数据切片将其发送给所述包管理模块,当 数据包接收完毕后,将所述流分类操作信息发送给所述报文处理模块;以及,接收所述数据 包的流分类操作结果,将所述流分类操作结果发送给包管理模块;所述报文处理模块用于根据所述流分类操作信息对所述数据包进行流分类操 作,将得到的流分类操作结果发送给所述输入控制模块;
所述包管理模块用于接收到所述输入控制模块发送的所述数据包的数据切片 时,存储到该数据包对应的存储空间;以及,接收到所述数据包的流分类操作结果后,提取 相关信息发起后续操作。进一步的,上述装置还可具有以下特点,所述预设大小为系统缓存操作的最小单 元或最小单元的倍数。进一步的,上述装置还可具有以下特点,所述输入控制模块还用于将所述数据切 片发送给所述包管理模块,和,将所述流分类操作信息发送给所述报文处理模块,和,将所 述流分类操作结果发送给包管理模块时,携带所述数据包的输入端口的端口标识信息;所述报文处理模块还用于,接收所述流分类操作信息和端口标识信息时,保存所 述端口标识信息,发送所述流分类操作结果给所述输入控制模块时,携带所述端口标识信 息;所述包管理模块还用于接收到所述数据切片及端口标识信息,或接收到所述流 分类操作结果及端口标识信息时,根据所述端口标识信息将所述数据切片或流分类操作结 果发送到对应的数据端口处理。进一步的,上述装置还可具有以下特点,所述流分类操作结果包括报文修改信息 和报文描述符信息;所述包管理模块还用于将所述数据包的报文修改信息存储在所述数据包对应的 存储空间,所述提取相关信息包括提取所述数据包的报文描述符信息。进一步的,上述装置还可具有以下特点,所述输入控制模块还用于在接收数据包 的过程中,保存所述数据包前N字节数据,从所述数据包的N个字节之后开始进行切片,所 述N为所述预设大小与所述报文修改信息差值;在收到所述数据包的流分类操作结果后, 将所述前N字节数据与所述数据包的报文修改信息组成包首切片发送给所述包管理模块;所述包管理模块还用于将所述数据包的数据切片进行存储时,保留所述数据包 对应的存储空间的首个存储块;以及,接收到所述数据包的包首切片时,将其存储在所述数 据包对应的存储空间的首个存储块。进一步的,上述装置还可具有以下特点,所述输入控制模块还用于在接收完一个 数据包后,等待并接收所述数据包的流分类操作结果过程中,进行下一数据包的接收操作, 并发送所述下一数据包的数据切片至包管理模块;所述包管理模块还用于在接收完所述数据包的数据切片,等待所述数据包的流 分类操作结果的过程中,接收到所述数据包的下一数据包的数据切片时,将其存储到所述 下一数据包对应的存储空间。本发明还提供一种数据包接收处理方法,包括接收数据包,在接收数据包的过程中,提取流分类操作信息,按预设大小对数据包 进行切片得到数据切片,每接收到一个数据切片则存储到该数据包对应的存储空间;当所述数据包接收完毕后,根据所述流分类操作信息对所述数据包进行流分类操 作,得到流分类操作结果后,提取相关信息发起后续操作。进一步的,上述方法还可具有以下特点,所述预设大小为系统缓存操作的最小单 元或最小单元的倍数。进一步的,上述方法还可具有以下特点,所述方法还包括
当处理多个输入端口的数据包时,使用端口标识信息区分不同输入端口的数据包 的数据切片、流分类操作信息和流分类操作结果。进一步的,上述方法还可具有以下特点,所述流分类操作结果包括报文修改信息 和报文描述符信息;所述提取相关信息包括提取所述数据包的报文描述符信息;所述方法还包括,将所述数据包的报文修改信息存储在所述数据包对应的存储空 间。进一步的,上述方法还可具有以下特点,所述方法还包括在接收数据包的过程 中,保存所述数据包前N字节数据,从所述数据包的N个字节之后开始进行切片,所述N为 所述预设大小与所述报文修改信息差值;将所述数据包的数据切片进行存储时,保留所述 数据包对应的存储空间的首个存储块;在得到所述数据包的流分类操作结果后,将所述前N字节数据与所述数据包的报 文修改信息组成包首切片存储在所述数据包对应的存储空间的首个存储块。进一步的,上述方法还可具有以下特点,所述方法还包括,在接收完一个数据包 后,等待并接收所述数据包的流分类操作结果过程中,进行下一数据包的接收、切片以及数 据切片存储操作。采用本发明所述的方法,与现有方案相比,由于数据包不需要等待接收完毕,就可 以进行存储操作,在一定程度上将存储时间和接收时间复用。因此,整个过程所花费的时 间,就大致为数据包接收的时间和一个数据切片的存储时间。对于长包来说,基本上省去了 数据包的存储时间,因此,能够显著减少长包的处理的时间,降低系统的延时。同时,由于不需要完整的接收一个数据包后再发起存储操作,而是仅仅需要能够 支持数据缓存操作的数据大小就可以完成从接收到缓存的操作,因此,器件片内RAM资源 的开销,由两个最长包的空间显著减少为两个数据切片。另外,本发明将流分类操作的部分结果报文修改信息在不超过外部存储空间处理 能力的情况下,与报文数据实体一起存入外部存储空间中,然后直接传输给输出模块,不经 过队列管理部分,减少了队列管理存储的负担。


图1是本发明系统框图;图2是本发明IPC与PP的接口示意图;
图3是本发明IPC与PMG的接口示意图;图4是本发明IPC的处理示意图;图5是本发明PMG的处理流程图。
具体实施例方式由于流分类操作需要整个数据包的校验信息,必须等到数据包的末尾进入系统才 能启动,所以数据包的接收和流分类操作的时间是不可节省的,可以改变的就是数据包存 入缓存这个操作。本发明的核心思想是提供一种数据包接收处理方法,让数据包存储操作和数据 包接收操作同时开始,让数据包存入缓存的操作不必等到接收操作和流分类操作完成之后再进行,从而节约了数据包存储操作的时间,减小了系统的处理时延和资源消耗。本发明提供一种数据包接收处理装置,如图1所示,包括输入控制模块(IPC)、报 文处理模块(PP)和包管理模块(PMG)三个部分,其中所述IPC用于接收数据包,在接收数据包的过程中,提取流分类操作信息,按预 设大小对数据包进行切片,每接收到一个数据切片将其发送给所述PMG,当数据包接收完毕 后,将所述流分类操作信息发送给所述PP ;以及,接收所述数据包的流分类操作结果,将所 述流分类操作结果发送给PMG ;所述PP用于根据所述流分类操作信息对所述数据包进行流分类操作,将得到的 流分类操作结果发送给所述IPC ;所述PMG用于接收到所述输入控制模块发送的所述数据包的数据切片时,存储 到该数据包对应的存储空间;以及,接收到所述数据包的流分类操作结果后,提取相关信息 发起后续操作。数据包可存储在DDR(Double Data Rate,双倍速率同步动态随机存储器); 中,并在DDR中完成数据包的重组。所述IPC还用于将所述数据切片发送给所述PMG,和,将所述流分类操作信息发 送给所述PP,和,将所述流分类操作结果发送给PMG时,携带所述数据包的输入端口的端口 标识信息;所述PP还用于,接收所述流分类操作信息和端口标识信息时,保存所述端口标识 信息,发送所述流分类操作结果给所述IPC时,携带所述端口标识信息;所述PMG还用于接收到所述数据切片及端口标识信息,或接收到所述流分类操 作结果及端口标识信息时,根据所述端口标识信息将所述数据切片或流分类操作结果发送 到对应的数据端口处理。其中,所述PMG还用于将所述数据包的报文修改信息存储在所述数据包对应的 存储空间,所述提取相关信息包括提取所述数据包的报文描述符信息。其中,所述输入控制模块还用于在接收数据包的过程中,保存所述数据包前N字 节数据,从所述数据包的N个字节之后开始进行切片,所述N为所述预设大小与所述报文修 改信息差值;在收到所述数据包的流分类操作结果后,将所述前N字节数据与所述数据包 的报文修改信息组成包首切片发送给所述包管理模块;所述包管理模块还用于将所述数据包的数据切片进行存储时,保留所述数据包 对应的存储空间的首个存储块;以及,接收到所述数据包的包首切片时,将其存储在所述数 据包对应的存储空间的首个存储块。所述端口标识信息为端口号。IPC与PP的接口如图2所示。IPC至PP的接口包括有效信号,流分类操作信息、 端口号;PP至IPC的接口包括流分类操作结果、端口号和有效信号接口。有效信号接口用 于传输使能控制信号,端口号接口用于传输端口标识信息,流分类操作信息接口用于传输 流分类操作信息,流分类操作结果接口用于传输流分类操作信息。IPC与PMG的接口如图3所示,包括有效信号、数据通道、起始信号、结束信号、流分 类标识和报文描述符信息接口,其中,有效信号接口用于传输使能控制信号,数据通道用于 传输数据切片和包首切片(具体含义见实施例),起始信号接口用于传输数据包的起始信 号,结束信号接口用于传输数据包的结束信号,流分类标识接口用于标识是否有流分类操作结果,报文描述符信息接口用于传输报文描述符信息。IPC处的操作流程如下步骤101,IPC接收输入端口的数据,按预设大小,将数据包进行切片,并根据PP的 要求提取流分类操作所需要的信息,简称流分类操作信息;其中,所述预设大小为系统缓存操作的最小单元或其整数倍。步骤102,IPC每接收到一个数据切片,就将该数据切片和端口号发送至PMG进行 缓存;步骤103,当数据包接收完毕后,将数据包的流分类操作信息和端口号发送至PP ;步骤104,IPC等待并接收PP传回的该数据包流分类操作结果,并且传送给PMG, 完成该数据包的传输;在IPC等待PP传回的该数据包流分类操作结果的过程中,可以进行 后续数据包的接收和缓存操作。PP处的操作流程如下步骤201,PP接收IPC传送给来的数据包的流分类操作信息和该数据包的端口 号;步骤202,PP根据流分类操作信息进行数据包的流分类操作;其中,PP需要保证数据包进行流分类操作的顺序(先进先出)。步骤203,PP将流分类操作的结果与该数据包对应的端口信息发送回IPC ;PMG处的操作如下步骤301,PMG接收到IPC发送的数据包的起始信号,申请存储空间;步骤302,依次存储IPC发送过来的数据切片直至接收到数据包的结束信号;步骤303,PMG进行后续数据包的存储操作(重复步骤301和步骤302),并同时监 控数据包的流分类操作结果;步骤304,如果接收到数据包的流分类操作结果,将数据包的报文修改信息存储到 该数据包对应的存储空间,并提取相应的信息发起下一步操作。所述相应的信息包括数据包的报文描述符信息。整个过程中,数据包存入缓存的数据实际上被分为了数据包的实体和数据包的流 分类操作结果两部分,数据包的实体部分的存储与数据包接收是同时进行的,而数据包的 类分类操作结果的存储是在数据包接收结束后,等待流分类操作结果传回IPC才能进行。本发明不仅适用于单端口输入的系统,同样适用于多端口输入的系统,只需要增 加端口标识信息,就能将各个端口号之间的数据进行分离,而每个端口的处理方式与单端 口的处理方式一致。单端口情况下,各模块之间传输信息(数据切片,流分类操作信息、流 分类操作信息)时,不须携带端口标识信息。为了更清楚地说明本发明的技术方案,下面将介绍一种实现该方案的具体过程, 但不作为对本发明的限定。假定,在IPC侧有20个Kibps的数据端口 ;PP的处理需要的数据为数据包的前 128byte和数据包的CRC校验信息,PP返回48byte报文修改信息添加在数据报文的前面, 支持后面的报文修改,另传输66bit报文描述符信息提供给后续报文调度操作;DDR控制器 每次存储操作的数据大小为64byte (512bit),因此,可以选择IPC至PMG处的数据位宽为 64byte(512bit),数据切片的大小为64byte (512bit) ;DDR中以2048byte为最小的空间单
8元;系统支持的数据包长度为64btye-9600byte。IPC的处理流程如图4所示,单个端口处理数据包的具体步骤如下IPC接收到数据包的起始数据后,将数据包的前16byte数据存入预设的 FIFO (First Input First Output,先入先出),该 FIFO 称为头切片 FIFO ;由于报文修改信息为48byte,不足一次缓存操作的大小,因此需要16byte的数据 一起组成数据切片,进行缓存操作。由于报文修改信息应该存放在报文数据的前面(便于 报文修改操作),因此将报文的前16byte预先截取出来缓存起来,等待报文修改信息传回 给IPC时,组装成包首切片,传送给PMG进行缓存,传递该包首切片同时还会传送该数据包 对应的报文描述信息。当然,也可以不预存16byte的数据,直接将报文修改信息组成包首 切片发送给PMG进行缓存。IPC提取数据包前128byte,存入固定的存储空间(用端口号进行区分),等待数据 包接收完毕后,与CRC校验结果传输给PP,发起流分类操作;IPC从数据包的17byte起,按64byte为单位进行数据切片传输,按顺序发送至 PMG,对第一个数据切片加上SOP信号,作为新包的起始,对数据包的最后一个切片加上EOP 信号,表明数据包的实体信息接收完毕;监控数据包的流分类操作结果,并将接收到的流分类操作结果与头切片FIFO中 的第一个数据组装成数据包首切片,并将对应66bit的报文描述符信息,一起传递给PMG进 行存储和发起下一步操作。流分类操作结果,被区分为两部分1、报文修改信息,该部分不需要传递给系统的 队列管理部分,直接与报文一起存在外部缓存中(DDR中),以减轻队列管理的存储负担,在 数据包出队时直接传递给系统的输出模块进行报文修改;2、报文描述符信息(66bit),队 列管理处理时需要的信息。IPC接收到流分类操作结果,主要进行下面的操作IPC至PMG有两个数据通道, 一个是数据通道,传送报文的数据和报文修改信息,然后由PMG缓存至DDR中,一个是报文 描述符信息,经PMG后,加上报文对应的PMAU标识(报文的DDR存储空间信息),一起传递 后面队列管理。其中,报文修改信息GSbyte)和预留的报文前16byte数据,组成一个数据 切片(报文的包首切片)进行传输,在传输这个切片的同时,同步的在报文描述符符信息通 道,将该数据包的报文描述符信息传递给PMG。PP在此过程中,处理流程的具体步骤如下接收IPC发送来的数据包的流分类操作信息和端口号;依次按顺序对数据包进行流分类操作;将该数据包的流分类操作结果与该数据包的端口进行同步匹配,然后将流分类操 作结果和端口号传送回IPC。PMG的处理流程如图5所示,具体步骤如下PMG接收到某一个数据切片后,通过数据切片的端口号,将数据切片发送到相应的 数据端口 ;PMG识别数据切片的类型1、带SOP的起始切片;2、带EOP的结束切片;3、带报文 修改信息和描述符信息的包首切片;4、不带有以上信息的普通数据切片;PMG接收到带有SOP的起始切片,申请一个数据存储空间单元去缓存该数据包,并且将该数据存储空间单元的第一个地址,预留给包首切片,从第二个地址开始存储起始切 片的数据;数据切片存储完成后,记录下该端口下一次存入数据的地址(当前地址加1);将 该数据包存储空间的首地址放在一个FIFO (包首切片地址FIFO)中,提供给后面存储包首 切片使用;PMG接收到不带有任何控制信息的普通数据切片,根据数据切片的端口信息提示 的地址,存入DDR中;存储完成后,记录下该端口下一次存入数据的地址(当前地址加1); 如果当前地址空间存储满而数据包还未存储完成,申请新的地址空间继续存储;申请的地 址空间用链表的形式进行管理并将第一个节点对应的地址作为整个包的标识以提供后面 使用;PMG接收到带有EOP的起始切片,将该数据包标志记录,以表明该数据包的包实体 已经存储完毕,可以接收下一个数据包的信息;具体的,当PMG存储EOP后,会将该数据包 的存储空间的首地址存入一个特定FIFO,每个端口有一个FIFO,用于记录所有报文对应存 储空间的首地址,PMG接收到该端口的一个报文的包首切片,就从对应的FIFO取出一个地 址,将该包首切片存入该地址,这就是报文缓存完成的标志,然后会将该地址信息(作为报 文的标识)和对应的报文描述符信息一起完后传递给后续的队列管理模块,进行下一步操 作。PMG接收到带有报文修改信息和报文描述符信息的包首切片,同时提取包首切片 地址FIFO的第一个地址,将包首切片存入该地址中,这样就完成了数据的重组;同时提取 相应的数据包的信息(数据包存储的首地址和数据包描述符信息等),发起接下来的操作。本实施例中,由于数据切片的大小是系统操作的最小单元,每个数据切片占用一 个数据存储空间单元,当数据切片的大小是系统操作的最小单元的整数倍时,每个数据切 片占用多个数据存储空间单元,称为一个存储块,此时,保留首个存储块用于存储包首切 片,从第二存储块开始存储数据包实体的数据切片。如果报文修改信息的大小超过一个存 储块的存储空间,则预留该数据包对应的存储空间的前多个存储块,用于存储报文修改信 肩、ο由于整个过程中,操作的最小单元是以64byte为单位的数据切片,因此,各个端 口只要以数据切片为单位进行轮询传输,对每个数据切片附加的端口信息就可以轻松区 分;端口内数据包的区分,主要根据数据包控制信息和数据包本身的先后顺序;在PMG中, 各端口的写入地址情况,需要分开管理,根据控制信息,按照前面提到的存储操作流程进行 操作,就可以在DDR空间内,完成数据包的重组。本发明还提供一种数据包接收处理方法,包括接收数据包,在接收数据包的过程中,提取流分类操作信息,按预设大小对数据包 进行切片得到数据切片,每接收到一个数据切片则存储到该数据包对应的存储空间;当所述数据包接收完毕后,根据所述流分类操作信息对所述数据包进行流分类操 作,得到流分类操作结果后,提取相关信息发起后续操作。其中,所述预设大小为系统缓存操作的最小单元或最小单元的倍数。其中,当处理多个输入端口的数据包时,使用端口标识信息区分不同输入端口的 数据包的数据切片、流分类操作信息和流分类操作结果。其中,所述流分类操作结果包括报文修改信息和报文描述符信息;所述提取相关信息包括提取所述数据包的报文描述符信息;所述方法还包括,将所述数据包的报文修改 信息存储在所述数据包对应的存储空间。所述方法还包括在接收数据包的过程中,保存所述数据包前N字节数据,从所述 数据包的N个字节之后开始进行切片,所述N为所述预设大小与所述报文修改信息差值;将 所述数据包的数据切片进行存储时,保留所述数据包对应的存储空间的首个存储块;在得 到所述数据包的流分类操作结果后,将所述前N字节数据与所述数据包的报文修改信息组 成包首切片存储在所述数据包对应的存储空间的首个存储块。所述方法还包括,在接收完一个数据包后,等待并接收所述数据包的流分类操作 结果过程中,进行下一数据包的接收、切片以及数据切片存储操作。本发明提供的数据包接收处理方法,让数据包存储操作和数据包接收操作同时开 始,让数据包存入缓存的操作不必等到接收操作和流分类操作完成之后再进行,从而节约 了数据包存储操作的时间,减小了系统的处理时延和资源消耗。另外,本发明还可减小数据包接收和存储过程的去器件片内RAM资源开销。由于 流分类操作只需要数据包的包头(即数据包中固定长度的数据)和数据包接收时的CRC校 验的结果,因此需要的缓存不是很大。器件片内RAM资源的最大的消耗,是在数据包的接 收-缓存的流程上。如果采用现有方案,在数据包采用接收完毕再发起缓存操作,那么系统 至少需要两个长包的器件片内RAM资源来完成此流程。采用本发明方案时,接收-缓存同 时进行,即数据包只要接收到足够做一次缓存操作的数据,就进行数据包的缓存处理,将此 流程的器件片内RAM资源降低为两次缓存操作的数据的大小。另外,本发明将流分类结果中不需要经过队列管理的部分-报文修改信息,与报 文实体一起存入外部空间,虽然增加了外部空间的负担,但是减小了队列管理的存储负担。 相对来说,报文管理模块(PMG)的能力要强于队列管理模块,且成本相对较低。
权利要求
1.一种数据包接收处理装置,其特征在于,包括输入控制模块、报文处理模块和包管理 模块,其中所述输入控制模块用于接收数据包,在接收数据包的过程中,提取流分类操作信息, 按预设大小对数据包进行切片,每接收到一个数据切片将其发送给所述包管理模块,当数 据包接收完毕后,将所述流分类操作信息发送给所述报文处理模块;以及,接收所述数据包 的流分类操作结果,将所述流分类操作结果发送给包管理模块;所述报文处理模块用于根据所述流分类操作信息对所述数据包进行流分类操作,将 得到的流分类操作结果发送给所述输入控制模块;所述包管理模块用于接收到所述输入控制模块发送的所述数据包的数据切片时,存 储到该数据包对应的存储空间;以及,接收到所述数据包的流分类操作结果后,提取相关信 息发起后续操作。
2.如权利要求1所述的装置,其特征在于,所述预设大小为系统缓存操作的最小单元 或最小单元的倍数。
3.如权利要求1所述的装置,其特征在于,所述输入控制模块还用于将所述数据切片发送给所述包管理模块,和,将所述流分类 操作信息发送给所述报文处理模块,和,将所述流分类操作结果发送给包管理模块时,携带 所述数据包的输入端口的端口标识信息;所述报文处理模块还用于,接收所述流分类操作信息和端口标识信息时,保存所述端 口标识信息,发送所述流分类操作结果给所述输入控制模块时,携带所述端口标识信息;所述包管理模块还用于接收到所述数据切片及端口标识信息,或接收到所述流分类 操作结果及端口标识信息时,根据所述端口标识信息将所述数据切片或流分类操作结果发 送到对应的数据端口处理。
4.如权利要求1所述的装置,其特征在于,所述流分类操作结果包括报文修改信息和 报文描述符信息;所述包管理模块还用于将所述数据包的报文修改信息存储在所述数据包对应的存储 空间,所述提取相关信息包括提取所述数据包的报文描述符信息。
5.如权利要求4所述的装置,其特征在于,所述输入控制模块还用于在接收数据包的过程中,保存所述数据包前N字节数据,从 所述数据包的N个字节之后开始进行切片,所述N为所述预设大小与所述报文修改信息差 值;在收到所述数据包的流分类操作结果后,将所述前N字节数据与所述数据包的报文修 改信息组成包首切片发送给所述包管理模块;所述包管理模块还用于将所述数据包的数据切片进行存储时,保留所述数据包对应 的存储空间的首个存储块;以及,接收到所述数据包的包首切片时,将其存储在所述数据包 对应的存储空间的首个存储块。
6.如权利要求1至5任一所述的装置,其特征在于,所述输入控制模块还用于在接收完一个数据包后,等待并接收所述数据包的流分类 操作结果过程中,进行下一数据包的接收操作,并发送所述下一数据包的数据切片至包管 理模块;所述包管理模块还用于在接收完所述数据包的数据切片,等待所述数据包的流分类操作结果的过程中,接收到所述数据包的下一数据包的数据切片时,将其存储到所述下一 数据包对应的存储空间。
7.一种数据包接收处理方法,其特征在于,包括接收数据包,在接收数据包的过程中,提取流分类操作信息,按预设大小对数据包进行 切片得到数据切片,每接收到一个数据切片则存储到该数据包对应的存储空间;当所述数据包接收完毕后,根据所述流分类操作信息对所述数据包进行流分类操作, 得到流分类操作结果后,提取相关信息发起后续操作。
8.如权利要求7所述的方法,其特征在于,所述预设大小为系统缓存操作的最小单元 或最小单元的倍数。
9.如权利要求7所述的方法,其特征在于,所述方法还包括当处理多个输入端口的数据包时,使用端口标识信息区分不同输入端口的数据包的数 据切片、流分类操作信息和流分类操作结果。
10.如权利要求7所述的方法,其特征在于,所述流分类操作结果包括报文修改信息和报文描述符信息;所述提取相关信息包括提 取所述数据包的报文描述符信息;所述方法还包括,将所述数据包的报文修改信息存储在所述数据包对应的存储空间。
11.如权利要求10所述的方法,其特征在于,所述方法还包括在接收数据包的过程中,保存所述数据包前N字节数据,从所述数据 包的N个字节之后开始进行切片,所述N为所述预设大小与所述报文修改信息差值;将所述 数据包的数据切片进行存储时,保留所述数据包对应的存储空间的首个存储块;在得到所述数据包的流分类操作结果后,将所述前N字节数据与所述数据包的报文修 改信息组成包首切片存储在所述数据包对应的存储空间的首个存储块。
12.如权利要求7至11任一所述的方法,其特征在于,所述方法还包括,在接收完一个数据包后,等待并接收所述数据包的流分类操作结果 过程中,进行下一数据包的接收、切片以及数据切片存储操作。
全文摘要
本发明提供一种数据包接收处理方法,包括接收数据包,在接收数据包的过程中,提取流分类操作信息,按预设大小对数据包进行切片得到数据切片,每接收到一个数据切片则存储到该数据包对应的存储空间;当所述数据包接收完毕后,根据所述流分类操作信息对所述数据包进行流分类操作,得到流分类操作结果后,提取相关信息发起后续操作。本发明还提供一种数据包接收处理装置。采用本发明所述的方法,能够显著减少长包的处理的时间,降低系统的延时。
文档编号H04L12/56GK102104548SQ201110050489
公开日2011年6月22日 申请日期2011年3月2日 优先权日2011年3月2日
发明者冉毅 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1