CN103731368B - 一种处理报文的方法和装置 - Google Patents
一种处理报文的方法和装置 Download PDFInfo
- Publication number
- CN103731368B CN103731368B CN201210387704.XA CN201210387704A CN103731368B CN 103731368 B CN103731368 B CN 103731368B CN 201210387704 A CN201210387704 A CN 201210387704A CN 103731368 B CN103731368 B CN 103731368B
- Authority
- CN
- China
- Prior art keywords
- node
- message
- information
- multicast
- pointer
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000009432 framing Methods 0.000 claims abstract description 10
- 238000012545 processing Methods 0.000 claims description 30
- 238000013507 mapping Methods 0.000 claims description 7
- 238000007726 management method Methods 0.000 description 35
- 230000007246 mechanism Effects 0.000 description 13
- MENQCIVHHONJLU-FZCSVUEKSA-N [(3s,5s,8r,9s,10s,13s,14s,17s)-17-acetyl-10,13-dimethyl-2,3,4,5,6,7,8,9,11,12,14,15,16,17-tetradecahydro-1h-cyclopenta[a]phenanthren-3-yl] hydrogen sulfate Chemical compound C([C@@H]1CC2)[C@@H](OS(O)(=O)=O)CC[C@]1(C)[C@@H]1[C@@H]2[C@@H]2CC[C@H](C(=O)C)[C@@]2(C)CC1 MENQCIVHHONJLU-FZCSVUEKSA-N 0.000 description 10
- 230000002776 aggregation Effects 0.000 description 10
- 238000004220 aggregation Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000000605 extraction Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008531 maintenance mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1881—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with schedule organisation, e.g. priority, sequence management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/15—Flow control; Congestion control in relation to multipoint traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种处理报文的方法及装置,该方法包括:在缓存空间为输入报文分配一节点,存储该报文,将该缓存空间对应的位置作为该报文的描述符的索引信息;提取所述报文的描述符信息;将所述报文的描述符信息和所述报文的节点信息进行组帧,存储于一节点链表中。通过本发明可以实现单、多播报文的统一存储,描述符链表与包实体缓存资源相对应,显著降低单、多播报文的管理开销,以提高节点汇聚能力。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种处理报文的方法和装置。
背景技术
目前的分组交换网络中,由于业务处理的需求,***首先需要识别报文的单、多播属性,然后在内部针对多播报文进行复制,单、多播报文进行管理,按照用户设定的规则进行调度出队,最终在***的出口体现出报文所有的编辑情况。在继续进行分析之前,有必要提及一下在可变长的分组交换网络中,数据包分片技术能够有效降低数据的时延和抖动,提高缓存利用率,是目前包交换网络处理设备中针对报文进行缓存管理的一个重要机制。其实现机理就是将整个缓存空间按照固定大小划分出n个存储单元,每当有报文输入时,根据报文大小进行缓存空间的分配,对于小于等于一个存储单元的报文,直接分配一个空间,而对于较长的报文来说,可能需要分配多个存储单元,同时需要记录这么多个存储单元属于同一个报文,设计上一般采用链表来管理。这样对于整个缓存空间,包输入时采用链表进行缓存空间的分配,包输出时采用链表进行缓存空间的回收。
相应的对于报文输出的调度管理有一套与缓存管理相对应的机制——描述符的管理。其作用是将每个已经存储在缓存里的报文生成一个描述符,描述符里记录该报文在缓存空间的指针。对应于包实体的缓存空间,描述符存储于节点空间,同样是采用链表管理。每个描述符占据一个节点,入队时分配一个节点并按照用户定义的规则将存储于相应的队列,出队时回收该节点,同时将描述符送至缓存空间管理,通过缓存空间的指针提取包实体。
其实我们可以分析下,假设***只支持单播报文业务的话,包实体的存储空间可以和描述符的节点空间一一对应,这样就可以将两套管理机制合并为一套,但目前的矛盾是对于多播包的处理。由于多播是对报文的描述符进行了多次的复制,并最终映射到不同的队列,那么一个多播报文就占据了多个节点,而包实体只有一份,所以就有了图1所示的处理流程。对于同一个多播报文的多个节点,其描述符的存储空间指针都指向包链表的存储地址,就实现了多播报文的存储转发。也可以看出现有的技术方案中存在两套管理机制,包和队列两套链表的开销和管理,规模庞大,环节复杂,明显增加维护和管理的成本。
发明内容
本发明要解决的技术问题是提供一种处理报文的方法及装置,可以实现单、多播报文的统一存储,描述符链表与包实体缓存资源相对应,显著降低单、多播报文的管理开销,以提高节点汇聚能力。
为了解决上述技术问题,本发明提供了一种处理报文的方法,包括:
在缓存空间为输入报文分配一节点,存储该报文,将该缓存空间对应的位置作为该报文的描述符的索引信息;
提取所述报文的描述符信息;
将所述报文的描述符信息和所述报文的节点信息进行组帧,存储于一节点链表中。
进一步地,上述方法还具有下面特点:所述在缓存空间为输入报文分配一节点,存储该报文包括:
向缓存的空闲链表申请一节点,维护对应的链表指针;
将所述报文按照所述节点对应的缓存地址存入外部存储单元。
进一步地,上述方法还具有下面特点:所述向缓存的空闲链表申请一节点后,包括:
对所述节点进行入队存储,如同一队列相邻的节点为多播属性,则在该相邻的节点之间***一空节点,前一节点的多播指针指向所述空节点的地址,所述空节点的多播指针指向后一节点。
进一步地,上述方法还具有下面特点:所述将所述报文按照所述节点对应的缓存地址存入外部存储单元之后,还包括:
接收到出队命令后,根据出队命令获取所述节点的链表指针,根据所述链表指针与外部存储单元的映射关系,读取该节点对应的数据。
进一步地,上述方法还具有下面特点:描述符信息包括以下信息中的一种或多种:
报文的单播信息、报文的多播信息、索引信息、当前节点的报文尾属性、有效字节数和队列号。
为了解决上述问题,本发明还提供了一种处理报文的装置,包括:
第一模块,用于在缓存空间为输入报文分配一节点,存储该报文,将该缓存空间对应的位置作为该报文的描述符的索引信息;
第二模块,用于提取所述报文的描述符信息;
第三模块,用于将所述报文的描述符信息和所述报文的节点信息进行组帧,存储于一节点链表中。
进一步地,上述装置还具有下面特点:所述第一模块,包括:
第一单元,用于向缓存的空闲链表申请一节点,维护对应的链表指针;
第二单元,用于将所述报文按照所述节点对应的缓存地址存入外部存储单元。
进一步地,上述装置还具有下面特点:
所述第一单元,向缓存的空闲链表申请一节点后还用于,对所述节点进行入队存储,如同一队列相邻的节点为多播属性,则在该相邻的节点之间***一空节点,前一节点的多播指针指向所述空节点的地址,所述空节点的多播指针指向后一节点。
进一步地,上述装置还具有下面特点:所述装置还包括:
第四模块,用于接收到出队命令后,根据出队命令获取所述节点的链表指针,根据所述链表指针与外部存储单元的映射关系,读取该节点对应的数据。
进一步地,上述装置还具有下面特点:所述描述符信息包括以下信息中的一种或多种:
报文的单播信息、报文的多播信息、索引信息、当前节点的报文尾属性、有效字节数和队列号。
综上,本发明提供一种处理报文的方法及装置,不再由于多播节点复制的原因,分开两套的管理机制,在一个节点信息中将单多播属性及对应的链表指针进行管理和维护,保证了队列节点与缓存空间能够一一对应,整个管理只需维护一套链表分配与回收的机制。在***输入侧不可预知的单、多播报文场景下,利用一个节点分别维护单播和多播两个维度的描述符链表,从而实现单、多播报文的统一存储,描述符链表与包实体缓存资源相对应,显著降低单、多播报文的管理开销,且通用性更好。
附图说明
图1现有技术普遍采用的单、多播统一缓存的结构图;
图2为本发明实施例的处理报文的方法的流程图;
图3为本发明实施例的处理报文的装置示意图;
图4为本发明实施例的单播与多播的节点汇聚操作的示意图;
图5为本发明实施例的多播链接多播的节点汇聚操作的示意图;
图6为本发明实施例的各种节点汇聚操作示意图;
图7为本发明实施例的队列链表的指针操作示意图;
图8为本发明实施例的链表的节点信息操作示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在目前的分组交换网络设备中,对于支持单、多播业务报文的统一处理,比较普遍采用的做法是划分为包实体管理和描述符管理两个部分,包实体管理用于分配和回收固定大小的缓存空间,存储报文实体,维护报文的完整信息等。描述符管理用于多播打开后与单播的统一入队,分配,出队调度和回收节点空间,最终指示包实体管理将报文输出。
尽管这两套处理机制能够正确进行单、多播报文的统一管理,但是会带来***的处理流程复杂,实现开销较大等问题。根据之前的讨论,***采用两套的管理机制是为了单、多播处理上的兼容设计,那么能不能研究出一种方法使用一套管理机制来兼容上述设计需求。仅仅浅显的分析是不行的,因为我们会发现一个多播包入不同的队列会有不同的下指针,如果简单的将包实体空间与描述符空间一一对应,实现上的开销将不能承受。但是如果能够将包实体空间与描述符空间进行节点汇聚,将原来两个空间的存储信息进行整合,这样就能够采用一套管理机制,不仅流程上简单,且结构也更为通用。
本发明设计了一种处理报文的方法,以提高节点汇聚能力,首先对输入报文进行缓存空间的分配、报文存储,然后将该缓存空间对应的位置作为描述符的索引信息参与到报文的入队,入队过程中根据报文的单、多播属性,报文结束标记,队列成员的连接信息等属性进行节点的汇聚,将报文的存储空间和描述符空间汇聚为一套管理信息,对应一个访问空间,这样就将单、多播的报文采用了一种具有高汇聚能力的节点维护机制进行管理。
图2为本发明实施例的处理报文的方法的流程图,如图2所示,本实施例的方法包括:
S11、在缓存空间为输入报文分配一节点,存储该报文,将该缓存空间对应的位置作为该报文的描述符的索引信息;
S12、提取所述报文的描述符信息;
S13、将所述报文的描述符信息和所述报文的节点信息进行组帧,存储于一节点链表中。
其中,步骤S11中在缓存空间为输入报文分配一节点,存储该报文包括:
向缓存的空闲链表申请一节点,维护对应的链表指针;
将所述报文按照所述节点对应的缓存地址存入外部存储单元。
其中,向缓存的空闲链表申请一节点后,包括:
对所述节点进行入队存储,如同一队列相邻的节点为多播属性,则在该相邻的节点之间***一空节点,前一节点的多播指针指向所述空节点的地址,所述空节点的多播指针指向后一节点。
其中,将所述报文按照所述节点对应的缓存地址存入外部存储单元之后,还包括:
接收到出队命令后,根据出队命令获取所述节点的链表指针,根据所述链表指针与外部存储单元的映射关系,读取该节点对应的数据。
图3为本发明实施例的处理报文的装置的示意图,如图3所示,本实施例的装置包括:
缓存空间分配模块(相当于第一模块),用于在缓存空间为输入报文分配一节点,存储该报文,将该缓存空间对应的位置作为该报文的描述符的索引信息;
描述符提取模块(相当于第二模块),用于提取所述报文的描述符信息;
节点信息汇聚模块(相当于第三模块),用于将所述报文的描述符信息和所述报文的节点信息进行组帧,存储于一节点链表中。
其中,所述第一模块,包括:
第一单元,用于向缓存的空闲链表申请一节点,维护对应的链表指针;
第二单元,用于将所述报文按照所述节点对应的缓存地址存入外部存储单元。
其中,所述第一单元,向缓存的空闲链表申请一节点后还用于,对所述节点进行入队存储,如同一队列相邻的节点为多播属性,则在该相邻的节点之间***一空节点,前一节点的多播指针指向所述空节点的地址,所述空节点的多播指针指向后一节点。
在一优选实施例中,还可以包括:
队列出包管理模块(相当于第四模块),用于接收到出队命令后,根据出队命令获取所述节点的链表指针,根据所述链表指针与外部存储单元的映射关系,读取该节点对应的数据。
其中,描述符信息包括以下信息中的一种或多种:
报文的单播信息、报文的多播信息、索引信息、当前节点的报文尾属性、有效字节数和队列号。
本发明实施例所述的处理报文的装置主要包括以下四个部分:缓存空间分配模块,描述符的提取模块,节点的信息汇聚模块和队列出包管理模块。这四个部分共同完成了报文的存储、解析、标记、提取等,保证了对于单、多播报文的处理使用非常精简的处理流程。其中,
缓存空间分配模块,负责在报文输入时,首先去基于缓存的空闲链表申请节点,然后维护对应的链表指针,同时将报文按照节点对应的缓存地址存入外部存储单元。每完成一个节点对应外部存储单元的存储操作,就向描述符提取模块发送该外部存储单元的节点索引,同时携带该外部存储单元所代表的报文的单、多播信息,当前节点的报文尾属性,以及有效字节数,和队列号等描述符信息,对于同一个报文的多个节点需要确保单、多播信息一致。
描述符的提取模块,负责接收缓存空间分配模块过来的描述符信息,完成对应节点的信息存储。当接收到分配节点信息有效时,同时将对齐过来的队列号,报文属性等描述符信息按照设定好的位域进行组装,然后驱动有效信号送至节点的信息汇聚模块。
节点的信息汇聚模块,负责节点汇聚的链表处理,包括节点的入链处理和节点的出链处理。当收到描述符提取模块的信息有效指示时,采样存储对齐的描述符,同时提取该报文在缓存空间分配的节点信息,然后将上述信息打包、组帧,存储于节点入链fifo(先进先出)。对应节点入链存储,队列出包管理模块过来的出队命令存储于节点出链fifo。入队与出队fifo在固定时隙的轮询的机制下调度,读取fifo,解析命令,提取队列号和描述符,维护首尾指针,进行入链与出链操作的读写保护等,直到最后维护链表节点空间的成员信息。其中,节点的汇聚能力的提升主要体现在队列链表指针和节点信息的维护,通过分析描述符的属性维护链表指针和节点单、多播链接信息,将原来包链表和节点链表大幅度的压缩和简化。
队列出包管理模块,负责按照用户的规则进行出队调度,控制每个队列的节点出链和该节点对应数据的输出控制。在一次出队请求操作中,该队列出包管理模块向节点信息汇聚模块发送出队使能和队列号,经过操作命令的选择、处理,最终收到节点汇聚模块发送过来的节点出包指针信息。根据节点指针与数据存储单元的映射关系,驱动外部memory_controller(存储控制器),读取并输出该节点对应的数据,完成存储转发。
本实施例的缓存管理方式采用节点与存储单元一一对应的方式,对于单播包或者单播节点,该处理方式不难理解,就是按照分配存储单元的方式分配对应节点即可。但是对于需要支持单、多播统一管理的话就需要考虑其它的三种情况:单播节点之后是多播,多播节点之后是多播,多播节点之后是单播。如果基于节点的管理能够实现这四种组合方式,就完成了单、多播的统一管理,其实质也就是要解决队列之间对于同一个多播包或者多播片的链表管理问题。接下来分别针对这几种情况进行说明。
假设以图4中的队列x为例,图中队列所占据的节点与缓存空间一一对应,采取为每个节点维护单播链接信息和多播链接信息的处理方式。该队列的前两个节点为单播节点,对于第一个节点只需要维护其单播链接信息,包括下指针,包尾属性等。对于第二个节点,其下个节点为多播属性,所以需要首先维护其多播链接信息,直到一个完整的多播包尾节点,其间所有的多播节点都只维护多播链接信息。然后再回头在第二个节点的单播链接信息位域维护该队列多播包后的单播节点的指针信息。这样的话对于任意一个单播节点如果其下一节点为多播,那么在其多播信息位域维护,如果多播包尾的下一节点为单播,就在其维护其多播包首的单播位域维护。如果该多播包向队列y也复制了一份,如图4节点标识,那么同样采用上述的方式维护,隶属于两个队列的节点的next_m都指向同一个多播包首节点,该多播包的尾节点指示多播包的结束,在通过源节点的next_u找到各自队列的下一个节点。
那么如果情况再复杂一点,多播包后面仍然是多播包,该如何处理?首先我们来分析下两个多播包相连的情况,通过刚才的分析我们得知一个多播包的链接操作完成后,需要通过指向其包首的节点的信息寻找下指针,对于现在要讨论的情况,如果下指针仍然是个多播节点,那么势必要增加一个多播的位域,如果有连续的几个多播包,那么指向第一个多播包首的节点就要增加多个多播的位域,如果按照这种方式设计,存储的开销将不能承受且利用率极低,所以当有同一队列有两个相邻的多播包时需要***空节点,具体操作示意图如图5所示。相比于图4,在队列x和队列y的多播包后面不是单播包了,而是多播包,那么现在就需要分别***一个空节点,前一个多播包的next_u指向这个空节点的地址,即空节点的索引,而空节点的多播指针next_m就是下一个多播包,空节点的单播指针next_u为下一跳。如果下一跳为单播,那么next_u指向的一个实际存在的单播节点地址,如果下一跳仍为多播,那么指向的仍然是个空节点,操作同上。
采用了本发明实施例所述的方法,将原来方案采用的两套管理机制合并为一套,通过提升节点汇聚能力的方式,显著的简化了处理流程,降低了资源开销,能够更好的适应***实时运行过程中单、多播所占节点比例的各种情况。且经过节点汇聚后,被调度队列成员的最小颗粒度由一个包变为一个节点大小,这对于可变长包的分组交换网络来说,对降低抖动的性能改善非常有效。
为了更清楚地说明本发明的技术方案,下面结合图6、图7、图8和具体实施例作进一步说明,但不作为对本发明的限定。
假设当前拥有一块存储区域如图6虚线网格所示,采用节点汇聚的方式管理,每个节点和外部存储地址一一对应。***依次输入单播短包存储在B00、B10、B20,映射到队列1。依次输入单播包存储在B08、B18、B28,映射到队列2。然后,输入多播长包存储在B31、B32,该包多播后分别映射到队列1和队列2,然后输入单播短包存储在B40,映射到队列1,之后再输入多播短包存储在B51,映射到队列1和队列2,此时队列2由于连续的两个多播包,所以申请了一个空节点B46进行节点汇聚的链表维护。之后又来了一个多播长包分别映射到队列1和队列2,包首占用B82,此时对于队列1和2都需要各自申请一个空节点B71和B65,直到后来的单播B90映射到队列1,B98映射到队列2。
上述情况遍历了单播包与多播包相互连接的各种方式,下面以队列1为例,分步说明该队列每个节点的单、多播信息的汇聚操作和队列首尾指针操作,队列2具有相同的操作步骤。对于存储链表节点信息的存储器,可以根据需求选择片内或者片外,不同之处在于片外存储器由于位宽和带宽的限制可能要进行字节掩码操作。
队列1的入队操作如图7所示,链表节点的操作如图8所示,初始状态下,队列为空。
单播节点B00入队:置单播包首指针(HU)、单播包尾指针(TU)为节点索引00,置首尾指针有效标记HPOS、TPOS为0,标识当前首尾指针为单播位域有效。
单播节点B10入队:首指针不变,更新尾指针TU为10,指针有效标记不变。维护节点存储单元单播域的指针,eopu(单播包的尾标记)和描述符信息等。
单播节点B20入队:首指针不变,更新尾指针(TU)为20,指针有效标记不变。维护节点存储单元单播域信息。
多播节点B31入队:尾指针域TU为20不变,TM(多播包尾指针)更新为31,尾指针有效标记(TPOS)更新为1,指示当前队列的尾为多播节点,同时维护节点存储单元多播域的指针和描述符信息等。但是当前节点不是多播尾,表示一个多播包没有结束。
多播节点B32入队:TM更新为32,尾指针有效标记TPOS仍为1,当前为尾节点,表示一个多播包结束,同时维护节点存储单元多播域的指针,eopm(多播包的尾标记)和描述符信息等。
单播节点B40入队:尾指针域TM不变,TU更新为40,更新TPOS仍为0,需要维护指向多播节点B31的单播域信息,如图7的地址20所示的位域表示该地址需要第二次操作的单播位域。
多播节点B51入队:尾指针域TU为40不变,TM更新为51,尾指针有效标记TPOS更新为1,同时维护节点存储单元多播域的指针,eopm和描述符信息等。
多播节点B82入队:此时由于连续的两个多播包,需要***一个空节点B71,置空标记TM更新为82,保持尾指针有效标记TPOS为1,维护节点存储单元多播域的指针,描述符信息等。
多播节点B83入队:上一个多播节点不是尾节点,TM更新为83,保持尾指针有效标记TPOS为1。
多播节点B84入队:上一个多播节点不是尾节点,TM更新为84,保持尾指针有效标记TPOS为1。当前节点为尾节点,维护节点存储单元多播域的指针,eopm和描述符信息等。
单播节点B90入队:尾指针域TM不变,TU更新为90,更新TPOS仍为0,需要维护指向多播节点B82的单播域信息,同时维护节点存储单元多播域的指针,eopu和描述符信息等。
以上说明了在入队情况下的单、多播节点汇聚操作,接下来我们再看下该队列的出队,队列的指针操作如图7所示,链表节点的操作如图8所示。
节点B00出队:尾指针域不变,HU更新为10,HPOS指针为0不变。
节点B10出队:尾指针域不变,HU更新为20,HPOS指针为0不变。
节点B20出队:尾指针域不变,读取链表节点信息,HU更新为40,HM更新为31,HPOS指针更新为1。
节点B31出队:尾指针域不变,读取链表节点信息,HU不变,HM更新为32,HPOS指针保持不变。
节点B32出队:尾指针域不变,读取链表节点信息,该节点是多播尾片,HU不变,HM保持不变,HPOS指针更新为0。
节点B40出队:读取链表节点信息,HU更新为71,HM更新为51,HPOS指针更新为1。
节点B51出队:分析描述符的ept(空节点标记)域有效表明该节点为空节点,eopm有效,表明下一节点仍是多播包,HPOS指针更新为0。
节点B82出队:读取链表节点信息,HU更新为90,HM更新为83,HPOS指针更新为1,当前节点非包尾。
节点B83出队:读取链表节点信息,HU更新为90,HM更新为84,当前节点为包尾,HPOS指针更新为0。
节点B90出队:比较当前首尾指针所有位域完全相等,代表该队列出空。队列单、多播报文的入队和出队操作完成。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (8)
1.一种处理报文的方法,包括:
在缓存空间为输入报文分配一节点,存储该报文,将该缓存空间对应的位置作为该报文的描述符的索引信息;其中,在缓存空间为输入报文分配一节点,存储报文包括:向缓存的空闲链表申请一节点,对所述节点进行入队存储,如同一队列相邻的节点为多播属性,则在该相邻的节点之间***一空节点,前一节点的多播指针指向所述空节点的地址,所述空节点的多播指针指向后一节点,并维护对应的链表指针;
提取所述报文的描述符信息;
将所述报文的描述符信息和所述报文的节点信息进行组帧,存储于一节点链表中。
2.如权利要求1所述的方法,其特征在于:所述在缓存空间为输入报文分配一节点,存储该报文还包括:
将所述报文按照所述节点对应的缓存地址存入外部存储单元。
3.如权利要求2所述的方法,其特征在于:所述将所述报文按照所述节点对应的缓存地址存入外部存储单元之后,还包括:
接收到出队命令后,根据出队命令获取所述节点的链表指针,根据所述链表指针与外部存储单元的映射关系,读取该节点对应的数据。
4.如权利要求1-3任一项所述的方法,其特征在于:所述描述符信息包括以下信息中的一种或多种:
报文的单播信息、报文的多播信息、索引信息、当前节点的报文尾属性、有效字节数和队列号。
5.一种处理报文的装置,包括:
第一模块,用于在缓存空间为输入报文分配一节点,存储该报文,将该缓存空间对应的位置作为该报文的描述符的索引信息;
第二模块,用于提取所述报文的描述符信息;
第三模块,用于将所述报文的描述符信息和所述报文的节点信息进行组帧,存储于一节点链表中;
其中,第一模块,还包括第一单元,用于向缓存的空闲链表申请一节点,对所述节点进行入队存储,如同一队列相邻的节点为多播属性,则在该相邻的节点之间***一空节点,前一节点的多播指针指向所述空节点的地址,所述空节点的多播指针指向后一节点,并维护对应的链表指针。
6.如权利要求5所述的装置,其特征在于:所述第一模块,还包括:
第二单元,用于将所述报文按照所述节点对应的缓存地址存入外部存储单元。
7.如权利要求5所述的装置,其特征在于:所述装置还包括:
第四模块,用于接收到出队命令后,根据出队命令获取所述节点的链表指针,根据所述链表指针与外部存储单元的映射关系,读取该节点对应的数据。
8.如权利要求5-7任一项所述的装置,其特征在于:所述描述符信息包括以下信息中的一种或多种:
报文的单播信息、报文的多播信息、索引信息、当前节点的报文尾属性、有效字节数和队列号。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210387704.XA CN103731368B (zh) | 2012-10-12 | 2012-10-12 | 一种处理报文的方法和装置 |
PCT/CN2013/081778 WO2013189364A1 (zh) | 2012-10-12 | 2013-08-19 | 一种处理报文的方法和装置 |
US14/395,831 US9584332B2 (en) | 2012-10-12 | 2013-08-19 | Message processing method and device |
JP2014560246A JP5892500B2 (ja) | 2012-10-12 | 2013-08-19 | メッセージ処理方法及び装置 |
ES13807242.6T ES2684559T3 (es) | 2012-10-12 | 2013-08-19 | Procedimiento y dispositivo de procesamiento de mensajes |
RU2014141198/08A RU2595764C2 (ru) | 2012-10-12 | 2013-08-19 | Способ и устройство обработки сообщений |
EP13807242.6A EP2830269B1 (en) | 2012-10-12 | 2013-08-19 | Message processing method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210387704.XA CN103731368B (zh) | 2012-10-12 | 2012-10-12 | 一种处理报文的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103731368A CN103731368A (zh) | 2014-04-16 |
CN103731368B true CN103731368B (zh) | 2017-10-27 |
Family
ID=49768140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210387704.XA Active CN103731368B (zh) | 2012-10-12 | 2012-10-12 | 一种处理报文的方法和装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9584332B2 (zh) |
EP (1) | EP2830269B1 (zh) |
JP (1) | JP5892500B2 (zh) |
CN (1) | CN103731368B (zh) |
ES (1) | ES2684559T3 (zh) |
RU (1) | RU2595764C2 (zh) |
WO (1) | WO2013189364A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106537858B (zh) * | 2014-08-07 | 2019-07-19 | 华为技术有限公司 | 一种队列管理的方法和装置 |
CN107222435B (zh) * | 2016-03-21 | 2020-07-24 | 深圳市中兴微电子技术有限公司 | 消除报文的交换头阻的方法及装置 |
CN107526691B (zh) * | 2016-06-21 | 2020-06-02 | 深圳市中兴微电子技术有限公司 | 一种缓存管理方法及装置 |
CN106789734B (zh) * | 2016-12-21 | 2020-03-13 | 中国电子科技集团公司第三十二研究所 | 在交换控制电路中巨帧的控制***及方法 |
CN106789730B (zh) * | 2016-12-29 | 2020-02-11 | 杭州迪普科技股份有限公司 | 分片报文的处理方法及装置 |
CN106656438B (zh) * | 2017-01-03 | 2019-07-23 | 国家电网公司 | 一种goose报文序列的生成和编辑方法 |
CN109660471B (zh) * | 2018-12-14 | 2022-08-16 | 锐捷网络股份有限公司 | 基于fpga的指针回收方法及装置 |
CN110011920B (zh) * | 2019-04-11 | 2021-03-23 | 盛科网络(苏州)有限公司 | 一种报文处理方法及装置 |
CN110445721B (zh) * | 2019-09-09 | 2021-12-14 | 迈普通信技术股份有限公司 | 一种报文转发方法及装置 |
CN113157465B (zh) * | 2021-04-25 | 2022-11-25 | 无锡江南计算技术研究所 | 基于指针链表的消息发送方法及装置 |
CN115497273B (zh) * | 2022-04-22 | 2024-01-09 | 北京临近空间飞行器***工程研究所 | 装订描述方法和基于装订参数链表的无线指令控制方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101150490A (zh) * | 2006-09-23 | 2008-03-26 | 华为技术有限公司 | 一种单播和多播业务数据包的队列管理方法和*** |
CN102447610A (zh) * | 2010-10-14 | 2012-05-09 | 中兴通讯股份有限公司 | 实现报文缓存资源共享的方法和装置 |
US8223788B1 (en) * | 2007-10-24 | 2012-07-17 | Ethernity Networks Ltd | Method and system for queuing descriptors |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002281080A (ja) * | 2001-03-19 | 2002-09-27 | Fujitsu Ltd | パケットスイッチ装置およびマルチキャスト送出方法 |
US6918005B1 (en) * | 2001-10-18 | 2005-07-12 | Network Equipment Technologies, Inc. | Method and apparatus for caching free memory cell pointers |
US7394822B2 (en) | 2002-06-04 | 2008-07-01 | Lucent Technologies Inc. | Using reassembly queue sets for packet reassembly |
US7397809B2 (en) * | 2002-12-13 | 2008-07-08 | Conexant Systems, Inc. | Scheduling methods for combined unicast and multicast queuing |
US7548848B1 (en) * | 2003-01-08 | 2009-06-16 | Xambala, Inc. | Method and apparatus for semantic processing engine |
US20050036502A1 (en) * | 2003-07-23 | 2005-02-17 | International Business Machines Corporation | System and method for handling multicast traffic in a shared buffer switch core collapsing ingress VOQ's |
US7586911B2 (en) * | 2003-10-17 | 2009-09-08 | Rmi Corporation | Method and apparatus for packet transmit queue control |
US7860097B1 (en) * | 2004-02-13 | 2010-12-28 | Habanero Holdings, Inc. | Fabric-backplane enterprise servers with VNICs and VLANs |
JP2005323231A (ja) | 2004-05-11 | 2005-11-17 | Nippon Telegr & Teleph Corp <Ntt> | パケット通信品質制御装置 |
US20060187949A1 (en) * | 2005-02-09 | 2006-08-24 | Ganesh Seshan | Queuing and scheduling architecture for a unified access device supporting wired and wireless clients |
RU2447595C2 (ru) * | 2007-03-16 | 2012-04-10 | Интердиджитал Текнолоджи Корпорейшн | Способ и устройство беспроводной связи для поддержки реконфигурации параметров управления радиолинии |
CN101729407B (zh) | 2009-12-04 | 2012-01-04 | 西安电子科技大学 | 基于单多播区分处理的低时延抖动交换方法及设备 |
CN101835102B (zh) | 2010-05-19 | 2013-07-03 | 迈普通信技术股份有限公司 | 一种用于无线局域网的队列管理方法以及无线接入设备 |
-
2012
- 2012-10-12 CN CN201210387704.XA patent/CN103731368B/zh active Active
-
2013
- 2013-08-19 JP JP2014560246A patent/JP5892500B2/ja active Active
- 2013-08-19 RU RU2014141198/08A patent/RU2595764C2/ru active
- 2013-08-19 US US14/395,831 patent/US9584332B2/en active Active
- 2013-08-19 WO PCT/CN2013/081778 patent/WO2013189364A1/zh active Application Filing
- 2013-08-19 EP EP13807242.6A patent/EP2830269B1/en active Active
- 2013-08-19 ES ES13807242.6T patent/ES2684559T3/es active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101150490A (zh) * | 2006-09-23 | 2008-03-26 | 华为技术有限公司 | 一种单播和多播业务数据包的队列管理方法和*** |
US8223788B1 (en) * | 2007-10-24 | 2012-07-17 | Ethernity Networks Ltd | Method and system for queuing descriptors |
CN102447610A (zh) * | 2010-10-14 | 2012-05-09 | 中兴通讯股份有限公司 | 实现报文缓存资源共享的方法和装置 |
Non-Patent Citations (1)
Title |
---|
Split-Ordered Lists-Lock-free Resizable Hash Tables;Ori Shalev et al.;《Proceedings of the Twenty-second Annual ACM Symposium on Principles of Distributed Computing》;20030101;第5页第3段至第7页最后1段、图3 * |
Also Published As
Publication number | Publication date |
---|---|
WO2013189364A1 (zh) | 2013-12-27 |
EP2830269B1 (en) | 2018-05-23 |
EP2830269A1 (en) | 2015-01-28 |
JP5892500B2 (ja) | 2016-03-23 |
US20150304124A1 (en) | 2015-10-22 |
EP2830269A4 (en) | 2015-05-13 |
ES2684559T3 (es) | 2018-10-03 |
JP2015511790A (ja) | 2015-04-20 |
RU2595764C2 (ru) | 2016-08-27 |
RU2014141198A (ru) | 2016-06-10 |
US9584332B2 (en) | 2017-02-28 |
CN103731368A (zh) | 2014-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103731368B (zh) | 一种处理报文的方法和装置 | |
US9400606B2 (en) | System and method for efficient buffer management for banked shared memory designs | |
US20090138597A1 (en) | system and method for accessing memory | |
US8432908B2 (en) | Efficient packet replication | |
WO2020038009A1 (zh) | 报文处理方法及相关设备 | |
US9112708B1 (en) | Processing multicast packets in a network device | |
CN106325758B (zh) | 一种队列存储空间管理方法及装置 | |
US11949601B1 (en) | Efficient buffer utilization for network data units | |
US9274586B2 (en) | Intelligent memory interface | |
AU2014336967B2 (en) | Network interface | |
CN113032295A (zh) | 一种数据包二级缓存方法、***及应用 | |
US20140086241A1 (en) | Self Adapting Driver for Controlling Datapath Hardware Elements | |
US10999223B1 (en) | Instantaneous garbage collection of network data units | |
US20130110968A1 (en) | Reducing latency in multicast traffic reception | |
CN104247352A (zh) | 根据报文大小确定存储在存储器组或存储器设备中的副本数目的存储器架构 | |
WO2021254162A1 (zh) | 数据发送方法及装置、存储介质及电子设备 | |
CN114186163A (zh) | 一种应用层网络数据缓存方法 | |
CN111797497B (zh) | 一种用于电磁暂态并行仿真的通讯方法及*** | |
CN109802897B (zh) | 一种数据传输方法及通信设备 | |
US11831567B1 (en) | Distributed link descriptor memory | |
CN115988574B (zh) | 基于流表的数据处理方法、***、设备和存储介质 | |
CN115529275B (zh) | 一种报文处理***及方法 | |
CN109617838B (zh) | 多通道报文汇聚共享内存管理方法及*** | |
CN108958926B (zh) | 一种基于达尔文流媒体服务器的虚拟内存池设计方法 | |
EP4258122A1 (en) | File access method, storage node, and network card |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221117 Address after: 518055 Zhongxing Industrial Park, Liuxian Avenue, Xili street, Nanshan District, Shenzhen City, Guangdong Province Patentee after: SANECHIPS TECHNOLOGY Co.,Ltd. Address before: 518057 Ministry of justice, Zhongxing building, South Science and technology road, Nanshan District hi tech Industrial Park, Shenzhen, Guangdong Patentee before: ZTE Corp. |