[发明专利]数据包快速复制方法、数据包读取方法有效
申请号: | 201210491806.6 | 申请日: | 2012-11-27 |
公开(公告)号: | CN103001863A | 公开(公告)日: | 2013-03-27 |
发明(设计)人: | 张武;宋毅;郭秀岩;王劲林 | 申请(专利权)人: | 中国科学院声学研究所;北京中科智网科技有限公司 |
主分类号: | H04L12/70 | 分类号: | H04L12/70 |
代理公司: | 北京亿腾知识产权代理事务所 11309 | 代理人: | 陈霁 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据包 快速 复制 方法 读取 | ||
技术领域
本发明涉及计算机网络数据领域,尤其涉及一种数据包快速复制方法、数据包读取方法。
背景技术
网络上的设备在处理数据包时,经常要将一个数据包复制多份,复制出的数据包都一样,或某些部分不一样。在复制数据包时,一般给这些数据包分配全部存储空间,这种处理方式没有考虑效率,尤其是在数据包之间的数据段部分相同或者相同时,这种方式的效率明显不高。例如,一台网络设备要将一个数据包从几个网口发出,发出的数据包只有IP包头字段不同,其他字段都相同,这台网络设备在全部镜像复制数据包时,显然会对相同的字段进行重复的同内容的复制,这往往导致为每个数据包相同的段分配多处存储空间,浪费存储空间,而且不利于提高复制速度和统一处理。
发明内容
针对上述问题,本发明实施例提出一种数据包快速复制方法以及数据包读取方法。
在第一方面,本发明实施例提出一种数据包快速复制方法,在进行数据包复制时,按段复制,如果一段与原数据包或数据包副本的相应段一样,就不复制其内容,而是标识它和所述原数据包或所述数据包副本的相应字段一样。
在第二方面,本发明实施例提出一种数据包读取方法,在读取复制的数据包时,按段读取,如果一段被标识与原数据包或数据包副本的相应段一样,就读取所述原数据包或数据包副本的相应段。
本发明实施例通过对相同段进行标识,提高了复制速度,节省了存储空间,便于统一处理。
附图说明
图1是本发明实施例的待复制的数据包的示意图;
图2是本发明实施例复制数据包流程图;
图3是本发明实施例读取数据包流程图;
图4是本发明实施例的一个优选数据包示意图。
具体实施方式
下面通过附图和实施例,对本发明实施例的技术方案做进一步的详细描述。
本实施例可以基于Cavium Networks公司的OCTEON系列处理器平台。OCTEON处理器有多个硬件协处理器,可以加速数据包处理流程。其中的PKO用于发送数据包。它有一个功能,可以读取由指针串起的一串数据分段,作为一个整体的数据包发送出去。
本发明实施例提出了一种基于分段复制的快速复制数据包的方法。本发明实施例将要复制的原数据包分为多段,如图1,其中有些段在每个数据包副本中都一样,有些段在每个数据包副本中不都一样。
在进行数据包复制时,按照数据包分段的顺序,一段一段地复制。在读取复制的数据包时,按照数据包分段的顺序,一段一段地读取。
在进行数据包复制时,一段如果和原数据包的相应段一样——例如数据包副本1102的分段1、分段3、分段5,数据包副本2103的分段1、分段3、分段4——或数据包副本与另外某个数据包副本的相应段一样——例如数据包副本2103的分段6——就不逐字节地复制一遍,只是标识它和哪个数据包的相应字段一样。
读取复制的数据包时,如果标识了一段和原数据包或另外某个数据包副本的相应段一样,就读取那个数据包的相应段。
复制数据包的步骤如图2为:
步骤201、开始复制数据包,按照数据包分段的顺序,一段一段地复制数据包。
步骤202、判断数据包副本的当前字段是不是和原数据包或某个数据包副本的相应字段一样。
步骤203、如果数据包副本的这段和原数据包的相应段一样,就不复制这段,标识它和原数据包的相应段一样。如果副本的这段和原数据包的相应段不一样,但和另外某个数据包副本的相应段一样,就标识它和这个数据包副本的相应段一样。除此之外,根据需求生成副本数据包的这段。
步骤204、如果没有下一段了,则复制数据包完成,否则对下一段继续步骤202的复制过程。
读取数据包的步骤如图3为:
步骤301、开始读取数据包,按照数据包分段的顺序,一段一段地读取数据包。
步骤302、判断数据包副本的当前字段是否标识和原数据包或另外某个数据包副本的相应段一样。
步骤303、如果数据包副本的当前字段标识和原数据包或另外某个数据包副本的相应段一样,就读取原数据包或另外某个数据包副本的这段。否则读取数据包副本独有的这段。
步骤304、如果没有下一段了,则读取数据包完成,否则对下一段继续步骤302的读取过程。
如图4所示,要根据原数据包401生成数据包副本1 402和数据包副本2 403。接着本实施例描述把数据包副本1 402和数据包副本2 403读出来的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院声学研究所;北京中科智网科技有限公司,未经中国科学院声学研究所;北京中科智网科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210491806.6/2.html,转载请声明来源钻瓜专利网。