CN102821045B - 多播报文复制方法及装置 - Google Patents
多播报文复制方法及装置 Download PDFInfo
- Publication number
- CN102821045B CN102821045B CN201210274379.6A CN201210274379A CN102821045B CN 102821045 B CN102821045 B CN 102821045B CN 201210274379 A CN201210274379 A CN 201210274379A CN 102821045 B CN102821045 B CN 102821045B
- Authority
- CN
- China
- Prior art keywords
- port
- buffer address
- queue
- message
- copy
- 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
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
-
- 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/189—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast in combination with wireless systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/201—Multicast operation; Broadcast operation
Abstract
本发明公开了一种多播报文复制方法及装置,该方法包括:步骤1,将接收到的报文存储到报文缓存模块中,端口间复制模块获取报文的缓存地址、报文的端口间复制信息、以及报文的端口内复制信息,根据端口间复制信息对缓存地址进行复制,并将复制后的缓存地址和相应的端口内复制信息发送到端口队列模块进行保存;步骤2,端口调度模块对端口队列模块的缓存地址进行调度,端口队列模块在端口调度模块的调度下,根据存储的相应的端口内复制信息输出需要进行报文复制的缓存地址;步骤3,报文缓存模块根据端口队列模块输出的缓存地址读取相应的报文并输出。借助于本发明的技术方案,实现多播报文的大数据量的复制。
Description
技术领域
本发明涉及通讯领域,特别是涉及一种多播报文复制方法及装置。
背景技术
在数据通信领域,随着网络协定电视(Internet Protocol Television,简称为IPTV)、视频会议、网络电台的兴起,越来越多的厂商和业务开始支持多播(组播)报文的应用。多播是实现网络中单点到多点的数据传输方式,能够节约网络带宽,降低网络负载,提高网络的传输效率。
在现有的路由器和交换机的交换系统中,多播报文的复制由上行侧和下行侧来共同完成。上行侧是实现不同线卡间的复制,由交换网实现,复制的数量有限;而下行侧是在实现线卡内进行复制,需要进行大数据量的复制。在下行侧线卡中进行多播复制的时候,若采用传统的方式,将报文复制完成后直接在输出端口中进行排队,会耗费大量的存储资源,不利于进行大数据量的复制。同时其结构也不利于端口数的扩展,端口间的复制也会互相干扰。
发明内容
本发明提供一种多播报文复制方法及装置,以解决现有技术中在下行侧线卡中进行多播复制时,会耗费大量的存储资源的问题。
本发明提供一种多播报文复制方法,包括:步骤1,将接收到的报文存储到报文缓存模块中,端口间复制模块获取报文的缓存地址、报文的端口间复制信息、以及报文的端口内复制信息,根据端口间复制信息对缓存地址进行复制,并将复制后的缓存地址和相应的端口内复制信息发送到端口队列模块进行保存;步骤2,端口调度模块对端口队列模块的缓存地址进行调度,端口队列模块在端口调度模块的调度下,根据存储的相应的端口内复制信息输出需要进行报文复制的缓存地址;步骤3,报文缓存模块根据端口队列模块输出的缓存地址读取相应的报文并输出。
优选地,端口间复制模块获取报文的缓存地址、报文的端口间复制信息、以及报文的端口内复制信息具体包括:端口间复制模块从报文缓存模块中获取报文的缓存地址以及报文的多播标识ID;根据多播ID从预先设置的多播复制表中获取端口间复制信息和端口内复制信息,其中,多播复制表中包含各多播ID对应的端口间复制信息和端口内复制信息,端口间复制信息包括:各个缓存地址需要复制到的端口;端口内复制信息包括:每个端口内根据每个缓存地址需要复制报文的份数。
优选地,端口队列模块在端口调度模块的调度下,根据存储的相应的端口内复制信息输出需要进行报文复制的缓存地址具体包括:步骤21,端口队列模块在端口调度模块的调度下,输出当前需要复制的报文所对应的缓存地址,并更新端口队列模块中相应的端口内复制信息;步骤22,端口队列模块根据端口内复制信息判断与该缓存地址对应的端口内需要复制的报文是否复制完成,如果否,则继续对当前需要复制的报文所对应的缓存地址进行输出,直到当前需要复制的报文复制完成;如果是,则转步骤23;步骤23,端口队列模块如果判断当前需要复制的报文已复制完成,执行步骤21-23,直到所有端口的报文都复制完成。
优选地,端口队列模块中设置有与各个端口相对应的相互独立的端口队列,端口队列模块采用链表结构保存相应端口队列接收到的缓存地址和根据该缓存地址需要复制报文的份数,端口队列模块包括:队列首、队列体、以及队列尾,其中,队列首存储各个端口队列的队首指针、当前需要复制的报文所对应的缓存地址、以及根据该缓存地址需要复制报文的份数,队首指针用于存储下个缓存地址在本端口队列中的地址,队列体存储了除当前需要复制的报文所对应的缓存地址、以及根据该缓存地址需要复制报文的份数之外,各个端口队列接收到的其他缓存地址和根据该缓存地址需要复制报文的份数,队列尾中保存了各个端口队列的队尾指针,队尾指针指示了各个端口队列中将接收到的其他缓存地址和根据该缓存地址需要复制报文的份数写入到相应队列体的写入地址。
优选地,将复制后的缓存地址和相应的端口内复制信息发送到端口队列模块进行保存具体包括:端口队列模块首先将各个端口队列的队首指针、当前需要复制的报文所对应的缓存地址、以及根据该缓存地址需要复制报文的份数写入到队列首,将各个端口队列的队尾指针写入队列尾,并根据队尾指针指示的写入地址将各个端口队列的接收到的其他缓存地址和根据该缓存地址需要复制报文的份数写入到队列体中。
优选地,端口队列模块在端口调度模块的调度下,输出当前需要复制的报文所对应的缓存地址,并更新端口队列模块中相应的端口内复制信息具体包括:端口队列模块在端口调度模块的调度下,从队列首中读取端口队列中存储的当前需要复制的报文所对应的缓存地址进行输出,该缓存地址每出队一次,更新该缓存地址需要复制报文的份数,在根据该缓存地址需要复制报文的份数确定当前需要复制的报文已复制完成的情况下,根据端口队列的队首指针从队列体中读取下一个缓存地址以及根据该缓存地址需要复制报文的份数,并写入队列首的端口队列中。
优选地,上述方法还包括:缓存地址回收模块通过端口间复制模块获取各缓存地址对应的报文总复制份数,缓存地址每出队一次,更新已复制完的报文份数;缓存地址回收模块将报文总复制份数与已复制完的报文份数进行对比,如果相等,则对已复制完的报文所对应的缓存地址进行回收,通知报文缓存模块已回收的缓存地址,并将已复制完的报文份数清0。
本发明还提供了一种多播报文复制装置,包括:报文缓存模块,用于存储接收到的报文,根据端口队列模块输出的缓存地址读取相应的报文并输出;
端口间复制模块,用于获取报文的缓存地址、报文的端口间复制信息、以及报文的端口内复制信息,并根据端口间复制信息对缓存地址进行复制,并将复制后的缓存地址和相应的端口内复制信息发送到端口队列模块;端口队列模块,用于保存接收到的缓存地址和相应的端口内复制信息,并在端口调度模块的调度下,根据存储的相应的端口内复制信息输出需要进行报文复制的缓存地址;端口调度模块,用于对端口队列模块的缓存地址进行调度。
优选地,端口间复制模块具体用于:从报文缓存模块中获取报文的缓存地址以及报文的多播标识ID;根据多播ID从预先设置的多播复制表中获取端口间复制信息和端口内复制信息,其中,多播复制表中包含各多播ID对应的端口间复制信息和端口内复制信息,端口间复制信息包括:各个缓存地址需要复制到的端口;端口内复制信息包括:每个端口内根据每个缓存地址需要复制报文的份数。
优选地,端口队列模块具体用于:输出子模块,用于在端口调度模块的调度下,输出当前需要复制的报文所对应的缓存地址,并更新端口队列模块中相应的端口内复制信息;判断子模块,用于根据复制信息判断与该缓存地址对应的端口需要复制的报文是否复制完成,如果否,则继续调用所述输出子模块对当前需要复制的报文所对应的缓存地址进行输出,直到当前需要复制的报文复制完成;如果判断是,则调用输出子模块和判断子模块,直到所有端口的报文都复制完成。
优选地,端口队列模块中设置有与各个端口相对应的相互独立的端口队列,端口队列模块采用链表结构保存相应端口队列接收到的缓存地址和根据该缓存地址需要复制报文的份数,端口队列模块包括:队列首、队列体、以及队列尾,其中,队列首存储各个端口队列的队首指针、当前需要复制的报文所对应的缓存地址、以及根据该缓存地址需要复制报文的份数,队首指针用于存储下个缓存地址在本端口队列中的地址,队列体存储了除当前需要复制的报文所对应的缓存地址、以及根据该缓存地址需要复制报文的份数之外,各个端口队列接收到的其他缓存地址和根据该缓存地址需要复制报文的份数,队列尾中保存了各个端口队列的队尾指针,队尾指针指示了各个端口队列中将接收到的其他缓存地址和根据该缓存地址需要复制报文的份数写入到相应队列体的写入地址。
优选地,端口队列模块具体包括:保存子模块,用于首先将各个端口队列的队首指针、当前需要复制的报文所对应的缓存地址、以及根据该缓存地址需要复制报文的份数写入到队列首,将各个端口队列的队尾指针写入队列尾,并根据队尾指针指示的写入地址将各个端口队列的接收到的其他缓存地址和根据该缓存地址需要复制报文的份数写入到队列体中。
优选地,输出子模块具体用于:在端口调度模块的调度下,从队列首中读取端口队列中存储的当前需要复制的报文所对应的缓存地址进行输出,该缓存地址每出队一次,更新该缓存地址需要复制报文的份数,在根据该缓存地址需要复制报文的份数确定当前需要复制的报文已复制完成的情况下,根据端口队列的队首指针从队列体中读取下一个缓存地址以及根据该缓存地址需要复制报文的份数,并写入队列首的端口队列中。
优选地,上述装置还包括:缓存地址回收模块,用于通过端口间复制模块获取各缓存地址对应的报文总复制份数,缓存地址每出队一次,更新已复制完的报文份数;将报文总复制份数与已复制完的报文份数进行对比,如果相等,则对已复制完的报文所对应的缓存地址进行回收,通知报文缓存模块已回收的缓存地址,并将已复制完的报文份数清0。
本发明有益效果如下:
通过采用两级复制的方式,第一级先进行端口间的复制,第二级再进行端口内的复制,解决了现有技术中在下行侧线卡中进行多播复制时,会耗费大量的存储资源的问题,能够实现多播报文的大数据量的复制,方便地实现端口数的扩展和复制份数的增减。
附图说明
图1是本发明实施例的多播报文复制装置的结构示意图;
图2是本发明实施例的多播复制表的结构示意图;
图3是本发明实施例的端口队列模块的结构示意图;
图4是本发明实施例的缓存地址回收模块内部结构示意图;
图5是本发明实施例的多播报文复制装置的详细结构示意图;
图6是本发明实施例的多播报文复制装置详细处理的流程图;
图7是本发明实施例的缓存地址回收的流程图;
图8是本发明实施例的多播报文复制方法的流程图。
具体实施方式
为了解决现有技术中在下行侧线卡中进行多播复制时,会耗费大量的存储资源的问题,本发明提供了一种多播报文复制方法及装置,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
装置实施例
根据本发明的实施例,提供了一种多播报文复制装置,图1是本发明实施例的多播报文复制装置的结构示意图,如图1所示,根据本发明实施例的多播报文复制装置包括:报文缓存模块10、端口间复制模块12、端口队列模块14、以及端口调度模块16,以下对本发明实施例的各个模块进行详细的说明。
报文缓存模块10,用于存储接收到的报文,并根据端口队列模块14输出的缓存地址读取报文输出;
具体地,在实际应用中,报文缓存模块10内部包含大容量的RAM(randomaccess memory,随机存储器)。在报文输入时用于存储输入报文的实体;在报文输出时根据缓存地址来读取RAM进行报文的输出。
端口间复制模块12,用于获取报文的缓存地址、报文的端口间复制信息、以及报文的端口内复制信息,并根据端口间复制信息对缓存地址进行复制(即,端口间复制),并将复制后的缓存地址和相应的端口内复制信息发送到端口队列模块14;
上述端口间复制是完成报文的第一级复制,即对输入的报文进行端口间的复制,并将报文对应的缓存地址输出给端口队列。
端口间复制模块12具体用于:从报文缓存模块10中获取报文的缓存地址以及报文的多播ID(IDentity,身份标识号码);根据多播ID从预先设置的多播复制表中获取端口间复制信息和端口内复制信息,其中,多播复制表中包含各多播ID对应的端口间复制信息和端口内复制信息,端口间复制信息包括:各个缓存地址需要复制到的端口;端口内复制信息包括:每个端口内根据每个缓存地址需要复制报文的份数。
图2是本发明实施例的多播复制表的结构示意图,如图2所示,多播复制表由多个表项组成,每个表项对应于一个多播ID(MG_ID)。在每个MG_ID表项内部,根据端口数分为若干份,每一份表示一个端口内对应的复制份数。若复制份数为0,则代表该端口不需要复制。端口间复制模块12可根据MG_ID来查询到需要将报文的缓存地址复制到哪些端口,每个端口内需要复制多少份。若将所有端口的复制份数(MG_ID)相加,可得到总复制份数。
端口队列模块14,用于保存接收到的缓存地址和相应的端口内复制信息,并在端口调度模块16的调度下,根据存储的相应的端口内复制信息输出需要进行报文复制的缓存地址;
端口队列模块14需要进行报文的第二级复制,对端口间复制完成的缓存地址再进行一次端口内的报文复制。端口队列模块14内部根据端口来进行排队,各端口队列互相独立。
优选地,端口队列模块14具体包括:
输出子模块,用于在端口调度模块16的调度下,输出当前需要复制的报文所对应的缓存地址,并更新端口队列模块14中相应的端口内复制信息;
判断子模块,用于对与该缓存地址相应的端口内复制信息进行判断,如果当前需要复制的报文未复制完成,则继续调用输出子模块对当前需要复制的报文所对应的缓存地址进行输出,直到当前需要复制的报文复制完成;如果判断当前需要复制的报文已复制完成,则调用输出子模块和判断子模块进行下一个端口的端口内复制,直到所有端口的报文都复制完成。
具体地,端口队列模块14中设置有与各个端口相对应的相互独立的端口队列,端口队列模块14采用链表结构保存相应端口队列接收到的缓存地址和根据该缓存地址需要复制报文的份数,端口队列模块14包括:队列首、队列体、以及队列尾,其中,队列首存储各个端口队列的队首指针、当前需要复制的报文所对应的缓存地址、以及根据该缓存地址需要复制报文的份数,队首指针用于存储下个缓存地址在本端口队列中的地址。队列体存储了除当前需要复制的报文所对应的缓存地址、以及根据该缓存地址需要复制报文的份数之外,各个端口队列接收到的其他缓存地址和根据该缓存地址需要复制报文的份数。队列尾中保存了各个端口队列的队尾指针,队尾指针指示了各个端口队列中将接收到的其他缓存地址和根据该缓存地址需要复制报文的份数写入到相应队列体的写入地址。
优选地,基于上述描述,端口队列模块14还包括:保存子模块,用于首先将各个端口队列的队首指针、当前需要复制的报文所对应的缓存地址、以及根据该缓存地址需要复制报文的份数写入到队列首,将各个端口队列的队尾指针写入队列尾,并根据队尾指针指示的写入地址将各个端口队列的接收到的其他缓存地址和根据该缓存地址需要复制报文的份数写入到队列体中。
上述输出子模块具体用于:在端口调度模块16的调度下,从队列首中读取端口队列中存储的当前需要复制的报文所对应的缓存地址进行输出,该缓存地址每出队一次,更新该缓存地址需要复制报文的份数,在根据该缓存地址需要复制报文的份数确定当前需要复制的报文已复制完成的情况下,根据端口队列的队首指针从队列体中读取下一个缓存地址以及根据该缓存地址需要复制报文的份数,并写入队列首的端口队列中。
图3是本发明实施例的端口队列模块14的结构示意图,如图3所示,端口队列模块14采用链表结构来存储各端口队列,相比FIFO结构要节省存储资源。端口队列模块14整体结构上由队列尾、队列体和队列首三部分组成。其中队列首存储各端口队列的队首指针、报文对应的缓存地址和报文复制份数。指针用来存储该队列中下个数据在端口队列的地址,用于将队列中的数据链接在一起;缓存地址为报文数据在报文缓存模块10中的地址;复制份数为该报文在端口内需要复制的总份数。队列体存储的内容和队列首类似,而队列尾仅存储了指针。
在队列入队的时候,先写队列首;当队列首写完之后,再通过队列尾中的指针来实现队列体中的写入。在队列出队的时候,都是从队列首中读取缓存地址进行输出。每出队一次,复制份数减1,直到减为0,代表报文在该端口内复制完成。只有当复制份数减到0之后,才从队列体中读取下一个数据并回写到队列首中,完成队列的更新操作。在复制完成之前,一直都采用队列首中的当前报文进行输出,实现报文的端口内复制。
端口调度模块16,用于对端口队列模块14的缓存地址进行调度。
具体地,端口调度模块16完成端口队列的调度,从各端口队列中选出一个报文进行调度输出。
优选地,在本发明实施例中,为了能够使缓存地址进行快速的回收,上述装置还包括:缓存地址回收模块,用于通过端口间复制模块12获取各缓存地址对应的报文总复制份数,缓存地址每出队一次,更新已复制完的报文份数;将报文总复制份数与已复制完的报文份数进行对比,如果相等,则对已复制完的报文所对应的缓存地址进行回收,通知报文缓存模块10已回收的缓存地址,并将已复制完的报文份数清0。
如上所述,缓存地址回收模块内部存储了各缓存地址对应的总复制份数和已出队复制份数,根据报文的复制完成情况来释放缓存地址,实现地址回收。
图4是本发明实施例的缓存地址回收模块内部结构示意图,如图4所示,在缓存地址回收模块中,存储份数的RAM有两块:总份数RAM和已出队份数RAM。这两个RAM的地址深度和报文缓存模块10对应的地址深度一样。
总份数RAM存储该缓存地址对应的总复制份数信息,通过端口间复制模块12获得。当端口间复制模块12查询多播复制表时,将该报文MG ID对应的各个端口的复制份数相加,得到端口间+端口内的总复制份数。
已出队份数RAM存储该缓存地址对应的已出队复制份数信息,其初始值为0。在总份数复制未完成之前,当端口调度模块16输出了一个缓存地址,则在已出队份数RAM中相应缓存地址对应的已出队份数就加1;只有总份数复制完成之后,则数值清0。份数比较用来比对总份数RAM和已出队份数的RAM,只有二者相等才代表端口间+端口内的复制都已结束。
以下结合附图,对本发明实施例的上述技术方案进行详细说明。
图5是本发明实施例的多播报文复制装置的详细结构示意图,如图5所示,根据本发明实施例的多播报文复制装置包括:多播复制表101、端口间复制模块102、报文缓存模块103、端口队列模块104、端口调度模块105、缓存地址回收模块106。
图6是本发明实施例的多播报文复制装置详细处理的流程图,如图6所示,基于如图5所示的多播报文复制装置包括如下处理:
步骤601,多播报文复制装置接收输入的报文。报文实体存储到报文缓存模块103中,报文的MG_ID传输给端口间复制模块102。
步骤602,端口间复制模块102从报文缓存模块103中获取报文实体对应的缓存的地址。
步骤603,端口间复制模块102根据MG_ID来查询多播复制表101,获取该报文的端口间和端口内的复制信息。
步骤604,端口间复制模块102将报文对应的缓存地址进行端口间的复制,并将复制好的数据和第二级复制所需的复制份数依照端口编号的顺序依次传递给端口队列模块104。
步骤605,端口队列模块104将接收到的缓存地址按照先后顺序进行排队,并存储好每个报文在端口内复制的份数。
步骤606,由端口调度模块105在端口间进行调度输出。
步骤607,报文缓存模块103通过端口调度模块105送出的缓存地址来读取报文实体,并进行输出。
步骤608,对端口队列模块104内的报文剩余复制份数进行判断,若剩余复制份数大于1,则重复执行步骤606和607,继续对当前报文进行调度输出;直到剩余复制份数为0,代表复制完成,执行步骤609。
步骤609,待端口队列模块104内各端口的报文都复制完,则整个复制结束。
图7是本发明实施例的缓存地址回收的流程图,如图7所示,结合图5,具体包括如下处理:
步骤701,通过端口间复制模块102获取总份数信息,将总份数写入总份数RAM中。
步骤702,在端口调度模块105进行报文出队后,从总复制份数RAM和已出队复制份数RAM中读取当前缓存地址对应的份数信息。
步骤703,将读出的已出队复制份数加1。
步骤704,将累加后的出队复制份数和总复制份数进行比较,若二者相等,则代表可以对该缓存地址进行回收,执行步骤706;若已出队复制份数小于总复制份数,则代表回收还未完成,执行步骤705。
步骤705,在回收未完成阶段,将累加后的出队份数回写到已出队份数RAM中去。后续重复执行步骤702和703,继续进行调度出队和份数累加。
步骤706,在回收完成之后,输出回收指示给报文缓存模块103,同时将已出队份数RAM中的份数值清0。
步骤707,整个缓存地址回收过程结束。
综上所述,本发明实施例采用两级复制的方式,能够实现多播报文的大数据量的复制。本发明实施例的多播报文复制装置的复制结构清晰,第一级先进行端口间的复制,第二级再进行端口内的复制,能够方便地实现端口数的扩展和复制份数的增减。此外,在端口队列的管理上,采用链表方式来实现,节省了存储资源。同时每个端口上采用同一报文多次出队的方式来实现复制,进一步简化了队列资源的使用。在缓存资源的回收上,采用2个RAM来分别存储总复制份数和已出队复制份数,有效地解决了缓存地址的回收问题。
方法实施例
基于上述方法实施例中的多播报文复制装置,根据本发明的实施例,提供了一种多播报文复制方法,图8是本发明实施例的多播报文复制方法的流程图,如图8所示,根据本发明实施例的多播报文复制方法包括如下处理:
步骤801,将接收到的报文存储到报文缓存模块中,端口间复制模块获取报文的缓存地址、报文的端口间复制信息、以及报文的端口内复制信息,根据端口间复制信息对缓存地址进行复制(即,端口间复制),并将复制后的缓存地址和相应的端口内复制信息发送到端口队列模块进行保存;
上述端口间复制是完成报文的第一级复制,即对输入的报文进行端口间的复制,并将报文对应的缓存地址输出给端口队列。
具体地,在步骤801中,端口间复制模块获取报文的缓存地址、报文的端口间复制信息、以及报文的端口内复制信息具体包括:1、端口间复制模块从报文缓存模块中获取报文的缓存地址以及报文的多播标识ID;2、根据多播ID从预先设置的多播复制表中获取端口间复制信息和端口内复制信息,其中,多播复制表中包含各多播ID对应的端口间复制信息和端口内复制信息,端口间复制信息包括:各个缓存地址需要复制到的端口;端口内复制信息包括:每个端口内根据每个缓存地址需要复制报文的份数。
图2是本发明实施例的多播复制表的结构示意图,如图2所示,多播复制表由多个表项组成,每个表项对应于一个多播ID(MG_ID)。在每个MG_ID表项内部,根据端口数分为若干份,每一份表示一个端口内对应的复制份数。若复制份数为0,则代表该端口不需要复制。端口间复制模块12可根据MG_ID来查询到需要将报文的缓存地址复制到哪些端口,每个端口内需要复制多少份。若将所有端口的复制份数(MG_ID)的所有值相加,可得到总复制份数。
步骤802,端口调度模块对端口队列模块的缓存地址进行调度,端口队列模块在端口调度模块的调度下,根据存储的相应的端口内复制信息输出需要进行报文复制的缓存地址;
端口队列模块需要进行报文的第二级复制,对端口间复制完成的缓存地址再进行一次端口内的报文复制。端口队列模块内部根据端口来进行排队,各端口队列互相独立。
在步骤802中,端口队列模块在端口调度模块的调度下,根据存储的相应的端口内复制信息输出需要进行报文复制的缓存地址具体包括:
步骤8021,端口队列模块在端口调度模块的调度下,输出当前需要复制的报文所对应的缓存地址,并更新端口队列模块中相应的端口内复制信息;
步骤8022,端口队列模块对与该缓存地址相应的端口内复制信息进行判断,如果当前需要复制的报文未复制完成,则继续对当前需要复制的报文所对应的缓存地址进行输出,直到当前需要复制的报文复制完成;
步骤8023,端口队列模块如果判断当前需要复制的报文已复制完成,执行步骤8021-8023,进行下一个端口的端口内复制,直到所有端口的报文都复制完成。
具体地,端口队列模块中设置有与各个端口相对应的相互独立的端口队列,端口队列模块采用链表结构保存相应端口队列接收到的缓存地址和根据该缓存地址需要复制报文的份数,端口队列模块包括:队列首、队列体、以及队列尾,其中,队列首存储各个端口队列的队首指针、当前需要复制的报文所对应的缓存地址、以及根据该缓存地址需要复制报文的份数,队首指针用于存储下个缓存地址在本端口队列中的地址,队列体存储了除当前需要复制的报文所对应的缓存地址、以及根据该缓存地址需要复制报文的份数之外,各个端口队列接收到的其他缓存地址和根据该缓存地址需要复制报文的份数,队列尾中保存了各个端口队列的队尾指针,队尾指针指示了各个端口队列中将接收到的其他缓存地址和根据该缓存地址需要复制报文的份数写入到相应队列体的写入地址。
因此,端口队列模块在存储复制后的缓存地址和相应的端口内复制信息时,端口队列模块首先将各个端口队列的队首指针、当前需要复制的报文所对应的缓存地址、以及根据该缓存地址需要复制报文的份数写入到队列首,将各个端口队列的队尾指针写入队列尾,并根据队尾指针指示的写入地址将各个端口队列的接收到的其他缓存地址和根据该缓存地址需要复制报文的份数写入到队列体中。
端口队列模块在端口调度模块的调度下,输出当前需要复制的报文所对应的缓存地址,并更新端口队列模块中相应的端口内复制信息具体包括:端口队列模块在端口调度模块的调度下,从队列首中读取端口队列中存储的当前需要复制的报文所对应的缓存地址进行输出,该缓存地址每出队一次,更新该缓存地址需要复制报文的份数,在根据该缓存地址需要复制报文的份数确定当前需要复制的报文已复制完成的情况下,根据端口队列的队首指针从队列体中读取下一个缓存地址以及根据该缓存地址需要复制报文的份数,并写入队列首的端口队列中。
图3是本发明实施例的端口队列模块的结构示意图,如图3所示,端口队列模块14采用链表结构来存储各端口队列,相比FIFO结构要节省存储资源。端口队列模块14整体结构上由队列尾、队列体和队列首三部分组成。其中队列首存储各端口队列的队首指针、报文对应的缓存地址和报文复制份数。指针用来存储该队列中下个数据在端口队列的地址,用于将队列中的数据链接在一起;缓存地址为报文数据在报文缓存模块10中的地址;复制份数为该报文在端口内需要复制的总份数。队列体存储的内容和队列首类似,而队列尾仅存储了指针。
在队列入队的时候,先写队列首;当队列首写完之后,再通过队列尾中的指针来实现队列体中的写入。在队列出队的时候,都是从队列首中读取缓存地址进行输出。每出队一次,复制份数减1,直到减为0,代表报文在该端口内复制完成。只有当复制份数减到0之后,才从队列体中读取下一个数据并回写到队列首中,完成队列的更新操作。在复制完成之前,一直都采用队列首中的当前报文进行输出,实现报文的端口内复制。
步骤803,报文缓存模块根据端口队列模块输出的缓存地址读取相应的报文并输出。
具体地,端口调度模块完成端口队列的调度,从各端口队列中选出一个报文进行调度输出。
优选地,根据本发明实施例的多播报文复制方法还包括:缓存地址回收模块通过端口间复制模块获取各缓存地址对应的报文总复制份数,缓存地址每出队一次,更新已复制完的报文份数;缓存地址回收模块将报文总复制份数与已复制完的报文份数进行对比,如果相等,则对已复制完的报文所对应的缓存地址进行回收,通知报文缓存模块已回收的缓存地址,并将已复制完的报文份数清0。
如上所述,缓存地址回收模块内部存储了各缓存地址对应的总复制份数和已出队复制份数,根据报文的复制完成情况来释放缓存地址,实现地址回收。
图4是本发明实施例的缓存地址回收模块内部结构示意图,如图4所示,在缓存地址回收模块中,存储份数的RAM有两块:总份数RAM和已出队份数RAM。这两个RAM的地址深度和报文缓存模块10对应的地址深度一样。
总份数RAM存储该缓存地址对应的总复制份数信息,通过端口间复制模块12获得。当端口间复制模块12查询多播复制表时,将该报文MG_ID对应的各个端口的复制份数相加,得到端口间+端口内的总复制份数。
已出队份数RAM存储该缓存地址对应的已出队复制份数信息,其初始值为0。在总份数复制未完成之前,当端口调度模块16输出了一个缓存地址,则在已出队份数RAM中相应缓存地址对应的已出队份数就加1;只有总份数复制完成之后,则数值清0。份数比较用来比对总份数RAM和已出队份数的RAM,只有二者相等才代表端口间+端口内的复制都已结束。
以下结合附图,对本发明实施例的上述技术方案进行详细说明。
图5是本发明实施例的多播报文复制装置的详细结构示意图,如图5所示,根据本发明实施例的多播报文复制装置包括:多播复制表101、端口间复制102、报文缓存模块103、端口队列模块104、端口调度模块105、缓存地址回收模块106。
图6是本发明实施例的多播报文复制装置详细处理的流程图,如图6所示,基于如图5所示的多播报文复制装置包括如下处理:
步骤601,多播报文复制装置接收输入的报文。报文实体存储到报文缓存模块103中,报文的MG_ID传输给端口间复制模块102。
步骤602,端口间复制模块102从报文缓存模块103中获取报文实体对应的缓存的地址。
步骤603,端口间复制模块102根据MG_ID来查询多播复制表101,获取该报文的端口间和端口内的复制信息。
步骤604,端口间复制模块102将报文对应的缓存地址进行端口间的复制,并将复制好的数据和第二级复制所需的复制份数依照端口编号的顺序依次传递给端口队列模块104。
步骤605,端口队列模块104将接收到的缓存地址按照先后顺序进行排队,并存储好每个报文在端口内复制的份数。
步骤606,由端口调度模块105在端口间进行调度输出。
步骤607,报文缓存模块103通过端口调度模块105送出的缓存地址来读取报文实体,并进行输出。
步骤608,对端口队列模块104内的报文剩余复制份数进行判断,若剩余复制份数大于1,则重复执行步骤606和607,继续对当前报文进行调度输出;直到剩余复制份数为0,代表复制完成,执行步骤609。
步骤609,待端口队列模块104内各端口的报文都复制完,则整个复制结束。
图7是本发明实施例的缓存地址回收的流程图,如图7所示,结合图5,具体包括如下处理:
步骤701,通过端口间复制模块102获取总份数信息,将总份数写入总份数RAM中。
步骤702,在端口调度模块105进行报文出队后,从总复制份数RAM和已出队复制份数RAM中读取当前缓存地址对应的份数信息。
步骤703,将读出的已出队复制份数加1。
步骤704,将累加后的出队复制份数和总复制份数进行比较,若二者相等,则代表可以对该缓存地址进行回收,执行步骤706;若已出队复制份数小于总复制份数,则代表回收还未完成,执行步骤705。
步骤705,在回收未完成阶段,将累加后的出队份数回写到已出队份数RAM中去。后续重复执行步骤702和703,继续进行调度出队和份数累加。
步骤706,在回收完成之后,输出回收指示给报文缓存模块103,同时将已出队份数RAM中的份数值清0。
步骤707,整个缓存地址回收过程结束。
综上所述,本发明实施例采用两级复制的方式,能够实现多播报文的大数据量的复制。本发明实施例的多播报文复制装置的复制结构清晰,第一级先进行端口间的复制,第二级再进行端口内的复制,能够方便地实现端口数的扩展和复制份数的增减。此外,在端口队列的管理上,采用链表方式来实现,节省了存储资源。同时每个端口上采用同一报文多次出队的方式来实现复制,进一步简化了队列资源的使用。在缓存资源的回收上,采用2个RAM来分别存储总复制份数和已出队复制份数,有效地解决了缓存地址的回收问题。
尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。
应当注意的是,在本发明的控制器的各个部件中,根据其要实现的功能而对其中的部件进行了逻辑划分,但是,本发明不受限于此,可以根据需要对各个部件进行重新划分或者组合,例如,可以将一些部件组合为单个部件,或者可以将一些部件进一步分解为更多的子部件。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的控制器中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (14)
1.一种多播报文复制方法,其特征在于,包括:
步骤1,将接收到的报文存储到报文缓存模块中,端口间复制模块获取所述报文的缓存地址、所述报文的端口间复制信息、以及所述报文的端口内复制信息,根据所述端口间复制信息对所述缓存地址进行复制,并将复制后的缓存地址和相应的端口内复制信息发送到端口队列模块进行保存;其中,所述端口间复制信息包括:各个缓存地址需要复制到的端口;所述端口内复制信息包括:每个端口内根据每个缓存地址需要复制报文的份数;
步骤2,端口调度模块对所述端口队列模块的缓存地址进行调度,所述端口队列模块在所述端口调度模块的调度下,根据存储的相应的端口内复制信息输出需要进行报文复制的缓存地址;
步骤3,所述报文缓存模块根据所述端口队列模块输出的所述缓存地址读取相应的报文并输出。
2.如权利要求1所述的方法,其特征在于,所述端口间复制模块获取所述报文的缓存地址、所述报文的端口间复制信息、以及所述报文的端口内复制信息具体包括:
所述端口间复制模块从所述报文缓存模块中获取所述报文的缓存地址以及所述报文的多播标识ID;
根据所述多播标识ID从预先设置的多播复制表中获取所述端口间复制信息和所述端口内复制信息,其中,所述多播复制表中包含各多播ID对应的端口间复制信息和端口内复制信息。
3.如权利要求1或2所述的方法,其特征在于,所述端口队列模块在所述端口调度模块的调度下,根据存储的相应的端口内复制信息输出需要进行报文复制的缓存地址具体包括:
步骤21,所述端口队列模块在所述端口调度模块的调度下,输出当前需要复制的报文所对应的缓存地址,并更新所述端口队列模块中相应的端口内复制信息;
步骤22,所述端口队列模块根据端口内复制信息判断与该缓存地址对应的端口内需要复制的报文是否复制完成,如果否,则继续对当前需要复制的报文所对应的缓存地址进行输出,直到当前需要复制的报文复制完成;如果是,则转步骤23;
步骤23,所述端口队列模块如果判断当前需要复制的报文已复制完成,执行步骤21-23,直到所有端口的报文都复制完成。
4.如权利要求3所述的方法,其特征在于,所述端口队列模块中设置有与各个端口相对应的相互独立的端口队列,所述端口队列模块采用链表结构保存相应端口队列接收到的缓存地址和根据该缓存地址需要复制报文的份数,所述端口队列模块包括:队列首、队列体、以及队列尾;其中,所述队列首存储各个端口队列的队首指针、当前需要复制的报文所对应的缓存地址、以及根据该缓存地址需要复制报文的份数,所述队首指针用于存储下个缓存地址在本端口队列中的地址;所述队列体存储了除当前需要复制的报文所对应的缓存地址、以及根据该缓存地址需要复制报文的份数之外,各个端口队列接收到的其他缓存地址和根据该缓存地址需要复制报文的份数;所述队列尾中保存了各个端口队列的队尾指针,所述队尾指针指示了各个端口队列中将所述接收到的其他缓存地址和根据该缓存地址需要复制报文的份数写入到相应队列体的写入地址。
5.如权利要求4所述的方法,其特征在于,将复制后的缓存地址和相应的端口内复制信息发送到端口队列模块进行保存具体包括:
所述端口队列模块首先将各个端口队列的所述队首指针、当前需要复制的报文所对应的缓存地址、以及根据该缓存地址需要复制报文的份数写入到所述队列首,将各个端口队列的队尾指针写入所述队列尾,并根据所述队尾指针指示的写入地址将各个端口队列的所述接收到的其他缓存地址和根据该缓存地址需要复制报文的份数写入到所述队列体中。
6.如权利要求5所述的方法,其特征在于,所述端口队列模块在所述端口调度模块的调度下,输出当前需要复制的报文所对应的缓存地址,并更新所述端口队列模块中相应的端口内复制信息具体包括:
所述端口队列模块在所述端口调度模块的调度下,从队列首中读取端口队列中存储的当前需要复制的报文所对应的缓存地址进行输出,该缓存地址每出队一次,更新该缓存地址需要复制报文的份数,在根据该缓存地址需要复制报文的份数确定当前需要复制的报文已复制完成的情况下,根据所述端口队列的队首指针从所述队列体中读取下一个缓存地址以及根据该缓存地址需要复制报文的份数,并写入所述队列首的所述端口队列中。
7.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
缓存地址回收模块通过端口间复制模块获取各缓存地址对应的报文总复制份数,缓存地址每出队一次,更新已复制完的报文份数;
所述缓存地址回收模块将所述报文总复制份数与所述已复制完的报文份数进行对比,如果相等,则对已复制完的报文所对应的缓存地址进行回收,通知所述报文缓存模块已回收的缓存地址,并将已复制完的报文份数清0。
8.一种多播报文复制装置,其特征在于,包括:
报文缓存模块,用于存储接收到的报文,根据端口队列模块输出的缓存地址读取相应的报文并输出;
所述端口间复制模块,用于获取所述报文的缓存地址、所述报文的端口间复制信息、以及所述报文的端口内复制信息,并根据所述端口间复制信息对所述缓存地址进行复制,并将复制后的缓存地址和相应的端口内复制信息发送到端口队列模块;其中,所述端口间复制信息包括:各个缓存地址需要复制到的端口;所述端口内复制信息包括:每个端口内根据每个缓存地址需要复制报文的份数;
所述端口队列模块,用于保存接收到的缓存地址和相应的端口内复制信息,并在端口调度模块的调度下,根据存储的相应的端口内复制信息输出需要进行报文复制的缓存地址;
所述端口调度模块,用于对所述端口队列模块的缓存地址进行调度。
9.如权利要求8所述的装置,其特征在于,所述端口间复制模块具体用于:从所述报文缓存模块中获取所述报文的缓存地址以及所述报文的多播标识ID;根据所述多播ID从预先设置的多播复制表中获取所述端口间复制信息和所述端口内复制信息,其中,所述多播复制表中包含各多播ID对应的端口间复制信息和端口内复制信息。
10.如权利要求8或9所述的装置,其特征在于,所述端口队列模块具体包括:
输出子模块,用于在所述端口调度模块的调度下,输出当前需要复制的报文所对应的缓存地址,并更新所述端口队列模块中相应的端口内复制信息;
判断子模块,用于根据复制信息判断与该缓存地址对应的端口需要复制的报文是否复制完成,如果否,则继续调用所述输出子模块对当前需要复制的报文所对应的缓存地址进行输出,直到当前需要复制的报文复制完成;如果判断是,则调用所述输出子模块和所述判断子模块,直到所有端口的报文都复制完成。
11.如权利要求10所述的装置,其特征在于,所述端口队列模块中设置有与各个端口相对应的相互独立的端口队列,所述端口队列模块采用链表结构保存相应端口队列接收到的缓存地址和根据该缓存地址需要复制报文的份数,所述端口队列模块包括:队列首、队列体、以及队列尾;其中,所述队列首存储各个端口队列的队首指针、当前需要复制的报文所对应的缓存地址、以及根据该缓存地址需要复制报文的份数,所述队首指针用于存储下个缓存地址在本端口队列中的地址;所述队列体存储了除当前需要复制的报文所对应的缓存地址、以及根据该缓存地址需要复制报文的份数之外,各个端口队列接收到的其他缓存地址和根据该缓存地址需要复制报文的份数;所述队列尾中保存了各个端口队列的队尾指针,所述队尾指针指示了各个端口队列中将所述接收到的其他缓存地址和根据该缓存地址需要复制报文的份数写入到相应队列体的写入地址。
12.如权利要求11所述的装置,其特征在于,所述端口队列模块具体包括:
保存子模块,用于首先将各个端口队列的所述队首指针、当前需要复制的报文所对应的缓存地址、以及根据该缓存地址需要复制报文的份数写入到所述队列首,将各个端口队列的队尾指针写入所述队列尾,并根据所述队尾指针指示的写入地址将各个端口队列的所述接收到的其他缓存地址和根据该缓存地址需要复制报文的份数写入到所述队列体中。
13.如权利要求12所述的装置,其特征在于,所述输出子模块具体用于:
在所述端口调度模块的调度下,从队列首中读取端口队列中存储的当前需要复制的报文所对应的缓存地址进行输出,该缓存地址每出队一次,更新该缓存地址需要复制报文的份数,在根据该缓存地址需要复制报文的份数确定当前需要复制的报文已复制完成的情况下,根据所述端口队列的队首指针从所述队列体中读取下一个缓存地址以及根据该缓存地址需要复制报文的份数,并写入所述队列首的所述端口队列中。
14.如权利要求8或9所述的装置,其特征在于,所述装置还包括:
缓存地址回收模块,用于通过端口间复制模块获取各缓存地址对应的报文总复制份数,缓存地址每出队一次,更新已复制完的报文份数;将所述报文总复制份数与所述已复制完的报文份数进行对比,如果相等,则对已复制完的报文所对应的缓存地址进行回收,通知所述报文缓存模块已回收的缓存地址,并将已复制完的报文份数清0。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210274379.6A CN102821045B (zh) | 2012-08-03 | 2012-08-03 | 多播报文复制方法及装置 |
PCT/CN2013/080512 WO2014019511A1 (zh) | 2012-08-03 | 2013-07-31 | 多播报文复制方法及装置 |
US14/418,980 US9407447B2 (en) | 2012-08-03 | 2013-07-31 | Multicast message replication method and device |
EP13825867.8A EP2869503B1 (en) | 2012-08-03 | 2013-07-31 | Multicast message replication method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210274379.6A CN102821045B (zh) | 2012-08-03 | 2012-08-03 | 多播报文复制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102821045A CN102821045A (zh) | 2012-12-12 |
CN102821045B true CN102821045B (zh) | 2015-07-22 |
Family
ID=47304906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210274379.6A Active CN102821045B (zh) | 2012-08-03 | 2012-08-03 | 多播报文复制方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9407447B2 (zh) |
EP (1) | EP2869503B1 (zh) |
CN (1) | CN102821045B (zh) |
WO (1) | WO2014019511A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102821045B (zh) | 2012-08-03 | 2015-07-22 | 中兴通讯股份有限公司 | 多播报文复制方法及装置 |
CN111131089B (zh) * | 2019-12-24 | 2021-07-27 | 西安电子科技大学 | 改善多播业务hol阻塞的队列管理方法 |
CN112202674B (zh) * | 2020-09-27 | 2022-10-28 | 北京物芯科技有限责任公司 | 一种组播报文的转发处理方法、装置、设备及存储介质 |
CN112242964B (zh) * | 2020-12-18 | 2021-06-04 | 苏州裕太微电子有限公司 | 一种交换机中的缓存单元释放系统及方法 |
CN113645662B (zh) * | 2021-08-17 | 2023-08-18 | 中国联合网络通信集团有限公司 | 业务处理方法及装置 |
CN117376274A (zh) * | 2022-06-30 | 2024-01-09 | 深圳市中兴微电子技术有限公司 | 组播包的复制方法及装置、存储介质及电子装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1411211A (zh) * | 2002-04-17 | 2003-04-16 | 华为技术有限公司 | 以太网交换芯片输出队列管理调度方法和装置 |
CN1452351A (zh) * | 2002-04-17 | 2003-10-29 | 华为技术有限公司 | 以太网交换芯片传输数据过程中缓存的管理和分配方法 |
CN1545274A (zh) * | 2003-11-18 | 2004-11-10 | ����ͨѶ�ɷ�����˾ | 一种在组播数据包转发时实现减少内存占用空间的方法 |
CN1816009A (zh) * | 2005-02-04 | 2006-08-09 | 华为技术有限公司 | 一种数据帧组播复制的方法及系统 |
CN1859275A (zh) * | 2005-07-27 | 2006-11-08 | 华为技术有限公司 | 多端口以太网交换装置及数据传输方法 |
CN101414973A (zh) * | 2008-11-25 | 2009-04-22 | 中国人民解放军信息工程大学 | 一种传输数据包的方法及装置 |
CN101729407A (zh) * | 2009-12-04 | 2010-06-09 | 西安电子科技大学 | 基于单多播区分处理的低时延抖动交换方法及设备 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5898687A (en) * | 1996-07-24 | 1999-04-27 | Cisco Systems, Inc. | Arbitration mechanism for a multicast logic engine of a switching fabric circuit |
WO2003083614A2 (en) * | 2002-03-25 | 2003-10-09 | Eternal Systems, Inc. | Transparent consistent active replication of multithreaded application programs |
US7649882B2 (en) | 2002-07-15 | 2010-01-19 | Alcatel-Lucent Usa Inc. | Multicast scheduling and replication in switches |
US7746799B2 (en) * | 2003-06-20 | 2010-06-29 | Juniper Networks, Inc. | Controlling data link layer elements with network layer elements |
US7765300B2 (en) * | 2003-10-06 | 2010-07-27 | Ericsson Ab | Protocol for messaging between a centralized broadband remote aggregation server and other devices |
US7519054B2 (en) * | 2005-01-27 | 2009-04-14 | Intel Corporation | Replication of multicast data packets in a multi-stage switching system |
US7822051B1 (en) * | 2007-10-24 | 2010-10-26 | Ethernity Networks Ltd. | Method and system for transmitting packets |
SE533007C2 (sv) * | 2008-10-24 | 2010-06-08 | Ilt Productions Ab | Distribuerad datalagring |
CN102006526B (zh) * | 2009-09-01 | 2016-01-20 | 中兴通讯股份有限公司 | 一种广播包/组播控制报文处理方法和装置 |
CN102148745B (zh) * | 2010-02-08 | 2014-03-12 | 中兴通讯股份有限公司 | 提高虚拟专用局域网业务网络转发效率的方法和系统 |
US8776256B2 (en) * | 2011-04-29 | 2014-07-08 | At&T Intellectual Property I, L.P. | System and method for controlling multicast geographic distribution |
CN102821045B (zh) * | 2012-08-03 | 2015-07-22 | 中兴通讯股份有限公司 | 多播报文复制方法及装置 |
-
2012
- 2012-08-03 CN CN201210274379.6A patent/CN102821045B/zh active Active
-
2013
- 2013-07-31 US US14/418,980 patent/US9407447B2/en active Active
- 2013-07-31 EP EP13825867.8A patent/EP2869503B1/en active Active
- 2013-07-31 WO PCT/CN2013/080512 patent/WO2014019511A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1411211A (zh) * | 2002-04-17 | 2003-04-16 | 华为技术有限公司 | 以太网交换芯片输出队列管理调度方法和装置 |
CN1452351A (zh) * | 2002-04-17 | 2003-10-29 | 华为技术有限公司 | 以太网交换芯片传输数据过程中缓存的管理和分配方法 |
CN1545274A (zh) * | 2003-11-18 | 2004-11-10 | ����ͨѶ�ɷ�����˾ | 一种在组播数据包转发时实现减少内存占用空间的方法 |
CN1816009A (zh) * | 2005-02-04 | 2006-08-09 | 华为技术有限公司 | 一种数据帧组播复制的方法及系统 |
CN1859275A (zh) * | 2005-07-27 | 2006-11-08 | 华为技术有限公司 | 多端口以太网交换装置及数据传输方法 |
CN101414973A (zh) * | 2008-11-25 | 2009-04-22 | 中国人民解放军信息工程大学 | 一种传输数据包的方法及装置 |
CN101729407A (zh) * | 2009-12-04 | 2010-06-09 | 西安电子科技大学 | 基于单多播区分处理的低时延抖动交换方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
EP2869503A4 (en) | 2015-07-29 |
US20150215132A1 (en) | 2015-07-30 |
CN102821045A (zh) | 2012-12-12 |
WO2014019511A1 (zh) | 2014-02-06 |
EP2869503B1 (en) | 2017-05-03 |
US9407447B2 (en) | 2016-08-02 |
EP2869503A1 (en) | 2015-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102821045B (zh) | 多播报文复制方法及装置 | |
CN104239132B (zh) | 一种唤醒对齐的方法、装置及终端 | |
CN101443740B (zh) | 用于高速缓存存储器的最大驻留替换的方法和系统 | |
CN105917311A (zh) | 用于便携式设备中的同步任务分发的系统和方法 | |
CN101763433B (zh) | 一种数据存储系统及方法 | |
US8799536B2 (en) | Data processing apparatus, data processing method and computer-readable medium | |
CN103647726A (zh) | 一种报文调度方法及装置 | |
CN101414973B (zh) | 一种传输数据包的方法及装置 | |
CN104040977A (zh) | 缓存报文的方法和装置 | |
CN102012899A (zh) | 一种数据更新的方法、系统及设备 | |
CN105302759A (zh) | 485通信芯片收发数据自动切换电路装置及方法 | |
CN102301664A (zh) | 多核处理器的流分发方法及装置 | |
CN103986585A (zh) | 报文预处理方法及其装置 | |
CN110912814A (zh) | 一种接口数据的分发方法及装置 | |
CN111181874B (zh) | 一种报文处理方法、装置及存储介质 | |
CN104461966A (zh) | 一种基于Nand Flash芯片的数据缓存传输方法及其控制器 | |
CN102377688A (zh) | 一种文件的传输方法和设备 | |
CN103299298A (zh) | 处理业务的方法和系统 | |
CN102710981B (zh) | 一种基于机顶盒的数据接收处理方法及装置 | |
CN102170401A (zh) | 一种数据的处理方法和设备 | |
CN102609240B (zh) | 处理器电路及读取数据的方法 | |
CN102984571A (zh) | 数字电视中Gstreamer读取外部数据的方法及其装置 | |
CN109067864A (zh) | 通知消息推送方法、装置及电子设备 | |
CN102073539B (zh) | 队列请求处理方法和装置 | |
CN116668415A (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 |