网络密码机的帧组加密方法

文档序号:7612746阅读:550来源:国知局
专利名称:网络密码机的帧组加密方法
技术领域
本发明涉及网络密码机的帧组数据加密方法,确切地说是涉及提高千兆网络密码机处理小数据包(指长度为64字节的数据包)的能力、加速数据包在千兆网络上传输效率的方法。
背景技术
随着网络技术的发展,网络吞吐率日益提高,带宽由10M、100M发展到现在流行的1000M。高速发展的网络带宽也促使IP加密产品(即在网络层对数据包进行加密、认证等处理的网络产品)的性能,必须不断地提升才能满足市场需求。目前,IP加密系列产品已经实现了从10M到1000M,低、中、高端全面覆盖的一系列产品。但是,由于受千兆密码机对小数据包处理能力的限制,它已经成为制约IP加密产品进一步发展的瓶颈。
其一传统的Iinux+工控平台的主体架构面临高吞吐率的挑战从密码机目前的技术现状来看,由于主要采用Iinux+X86架构工控平台的开发模式,这种基于Intel×86工控平台架构下的密码机,在100Mbps带宽下的性能可以满足用户的需求。但是,随着千兆网络的建设或升级,出现的新问题是带宽提高9倍,可是系统总线、接口没有质的提高,而CPU处理能力并没有提高9倍,对于要完成数据包过滤、加解密、路由转发等一系列任务的网络密码机来说,这样的硬件和结构要满足千兆环境要求是比较困难的。
其二Intel×86架构下PCI总线的带宽成为密通吞吐率的瓶颈
PCI总线是一种通用的接口总线技术,以其通用性和灵活性得到广泛的应用,已成为Intel×86平台的标准。但实际应用中,尤其是它在处理小数据包(指长度小于128字节的IP数据包)情况下,远达不到2Gbps吞吐量的标称性能;千兆网络密码机主要构成是支持64位PCI总线的PCI-X服务器平台+双志强CPU2.4G+两张Intel千兆网卡+两张千兆加密卡。使用专用设备对千兆网络密码机进行了双向加密传输吞吐率测试。对于PCI接口的加密卡加密速率测试表明,两张加密卡每张卡的加密速率,在数据包长度达到以太网最大数据传输长度1518字节时,其加密速率为800Mbps,而数据包长度为64字节时的加密速率只能达到32Mbps。双向加密传输吞吐率全部测试结果表明,数据包长度越小吞吐率越低,而对系统资源占用越大。
其三CPU频繁的中断处理压力成为小数据包处理速率难突破的关键中断是为了提高CPU利用率而生成的技术。当硬件需要得到CPU处理时而产生的信号就是中断。但CPU的处理能力是有限的,它不仅要处理中断还要处理其它繁重的任务,在网络密码机平台上CPU的大量时间都用在处理网卡、加密卡中断和数据包收发处理上,而CPU优先处埋中断。在高负荷的网络中,网卡、加密卡的中断非常频繁,CPU把大量时间用于处理中断,数据包接收后由于得不到处理而堆积,当接收队列溢出数据包就会丢失,资源被浪费掉,任务无法得到执行,导致网络负载高情况下网络吞吐率降低,这点在小包处理上尤为突出。如何有效降低CPU中断处理频率,节省中断处理开销是提高小包加密吞吐率的关键。
现有技术的缺欠在于(一)目前的软件对处理长度为64字节至1518字节的数据包,都采用同样的中断处理方式,这对处理大数据包是没有困难的,但对处理小数据包就会由于过度频繁地中断,而导致吞吐能力严重下降。例如密码机全线速传输速率为1000Mbps,且大、小数据包传输速率均为1000Mbps,传输一个数据包只产生一个中断。当采用满包(1518字节)方式传送时,一秒钟可以传送0.082M个数据包,而以64字节小数据包传送时,一秒钟需传送1.953M个数据包,这就意味着在同样吞吐能力下,传输小数据包每秒所要产生的中断数是大数据包中断数的24倍。因此,这种软件处理方式,会造成小数据包中断处理明显受工控平台性能的制约。
(二)Iinux内核中,对数据包接收处理的方法是针对每个数据包,都要分配存储空间、再将承载数据送到各个协议层进行处理、之后将数据包发送或丢弃、再释放存储空间,这样频繁地分配与释放内存,必然导致对CPU资源利用的巨大浪费。

发明内容
本发明的目的在于针对目前千兆网络密码机,对小数据包加密传输存在的低效率、浪费设备资源的问题,为用户提供一种可以有效减少加密卡对数据包加密处理的中断次数、提高对小数据包加密的速度、减少数据包在总线传输的频率、提高设备资源利用率的网络密码机的帧组加密方法。
实现本发明的目的基本技术方案是(一)修改Linux操作系统中最小调度时钟周期,或称修改Linux系统“心跳”;即是保证缓冲数据块能进行超时处理,在重新组合加密数据包时,由于前面到来的数据包需要等待后面到来的数据包,并积累到一定数量后再送去加或解密处理,这就必须有计时装置进行控制,避免前面的数据包在后续数据包还未到达组成数据块时,就被送去加或解密处理,也用于保证被缓存的数据包在一定时间得不到处理仍然能被发送,这个计时装置就是Linux操作系统的“心跳”,现有的Linux操作系统在i386系统上的“心跳”为10ms,这对控制网络数据包来说其延时间隔过长,必须将网络数据包通过网络密码机的延时,控制在100μm-1ms内,即将Linux操作系统的“心跳”修改为100次/秒-1000次/秒。
(二)重新组合加密小数据包为缓冲数据块,减少加密卡中断次数;就是PCI加密卡把对每一个小数据包进行一次加或解密的处理过程,改变成待小数据包积累到一定数量,组成一个大数据块时再进行一次加密或解密的处理过程,这就既减少了加密卡的中断次数,也减少了PCI总线的传输频度;具体作法是在内存中维护一个由各先入先出的加解密缓冲区所组成的加解密缓冲队列,该队列的长度依据平台、数据加密卡的处理能力和内存空间大小来定,基于百兆的处理能力平台,缓冲区长度设置在100-500个之间较好,在网络密码机中使用300个,所有数据包都将先被装入加解密缓冲区中,然后再送入PCI数据加密卡处理。
(三)针对每台网络密码机可能存在多个安全通道,即待加解密处理的数据包可能以不同的密钥加解密,加密卡能够支持的安全通道数也就是密钥数为1024,所以确定数据包组装进入同一个缓冲区的条件是必须是具有相同密钥索引keyid的数据包,才能组装到同一个加密缓冲区中。
(四)确定加密缓冲区数据块被输入PCI加密卡中进行加解密的条件①当缓冲区中积累的数据包数目超过最大值时,加密缓冲区的数据块即被输进PCI数据加密卡中进行加解密,该数据包数目的最大值,由PCI数据加密卡的加密能力确定;②当缓冲区中总字节数大于最大值时,加密缓冲区的数据块即被输进PCI数据加密卡中进行加解密,该总字节数最大值由确定;
③当缓冲区的维持时间超时时,加密缓冲区的数据块即被输进PCI数据加密卡中进行加解密,即从缓冲区装入第一个数据包开始,如果时间超过一定时间间隔,立即将积累的数据包送入到PCI数据加密卡,避免存放在缓冲区中的数据包永远得不到处理。
(五)引入内存回收池技术。内存回收池,是由被PCI数据加密卡加解密处理、发送了数据块后的那些空置缓冲区所组织成的FIFO先进先出队列;内存回收池技术是指将缓冲区中的数据块输入PCI数据加密卡后,该空置的缓冲区不作内存释放而是直接回收,放入回收池中留作新的缓冲区,等待装放后续处理的新数据块,当网卡需要时再重新取用;这样,每次作数据包内存空间分配时,都先从FIFO队列中取,只有FIFO队列空了才进行内存分配。
综上所述一种网络密码机的帧组加密方法,其特征是(1)修改Linux操作系统中最小调度时钟周期,或称修改Linux系统“心跳”,将网络数据包通过网络密码机的延时,由原有的10ms改变为100μm-1ms,即将Linux操作系统的“心跳”修改为100次/秒-1000次/秒。
(2)重新组合加密小数据包为缓冲数据块;作法是在内存中维护一个由各先入先出的加解密缓冲区所组成的加解密缓冲队列,该队列长度依据平台、数据加密卡的处理能力和内存空间大小来定,基于百兆的处理能力平台,缓冲区长度设置在100-500间较好,在网络密码机中使用300;在内存中维护加解密缓冲区后,所有待加解密处理的数据包,都将先被组装入加解密缓冲区,然后才送入PCI数据加密卡处理。
(3)各数据包被组装进入同一个缓冲区的条件是必须具有相同的密钥索引keyid。
(4)加密缓冲区中的数据块,输入PCI数据加密卡中进行加解密的条件是①当缓冲区中积累的数据包数目超过最大值时;该最大值由PCI数据加密卡的加密能力确定;②当缓冲区中总字节数大于最大值时;该总字节数最大值由确定;③当缓冲区的维持时间超时。
(5)将操作系统使用过后的内存空间回收管理,不释放而是放入回收池中,当网卡需要内存空间时就从回收池里获取。
附加技术特征是①缓冲区中组装的数据包个数最大值为16;②缓冲区中容纳的数据总字节数最大值为1800。③每个缓冲区的维持时间是300μs,即将Linux操作系统的“心跳”修改为300次/秒。
本发明的优点在于a、由于修改了Linux系统的“心跳”,将网络数据包通过网络密码机的延时,由原有的10ms改变为100μm-1ms,因而大大提高了网络密码机对数据包的处理能力;b、由于在内存维护有由加密缓冲区组成的加解密缓冲队列,将一定数量的网络数据包先组装到加密缓冲区中,然后再将这个缓冲区的数据块一起送入PCI数据加密卡中进行加解密处理,从而了有效降低了CPU中断频率,节省了中断处理开销,提高了小包加密吞吐率;c、由于操作系统的内存管理相当复杂,内存的分配和释放操作会消耗大量的CPU资源,为了提高网络密码机的数据包处理速度,将数据包处理所使用完毕的内存空间回收管理,放入回收池中,当网卡需要内存空间时就从回收池里提取;由于简化了操作,因而大大节省了系统内存分配和释放的开销。综上所述,通过这些技术措施,解决了网络密码机小数据包处理的瓶颈,大大提高了千兆网络密码机处理小数据包(指长度为64字节的数据包)的能力,从而加速了数据包在千兆网络上传输效率。


图1为本发明网络密码机主要模块及工作原理示意2为本发明帧组加密模块工作流程3为采用普通模式与帧组加密模式的数据包吞吐率测试中标记图3纵坐座为吞吐率(1/1000),横坐座为数据包长度(字节)。
具体实施例方式
一种网络密码机的帧组加密方法,包括(1)修改Linux操作系统中最小调度时钟周期,或称修改Linux系统“心跳”;在本实例中,将网络数据包通过网络密码机的延时,由原有的10ms修改为300μm,即将Linux操作系统的“心跳”修改为300次/秒。
(2)重新组合加密小数据包为缓冲数据块;在本方案中的作法是在内存中维护一个由各先入先出的加解密缓冲区所组成的加解密缓冲队列,该队列长度依据平台、数据加密卡的处理能力和内存空间大小来定,对于百兆级处理能力平台,缓冲区长度设置在100-500间较好,在网络密码机中使用300;在内存中维护加解密缓冲区后,所有待加解密处理的数据包,都将被组装到加解密缓冲区中,然后才能送入PCI数据加密卡处理。
(3)各数据包被组装进入同一个缓冲区的条件是必须具有相同的密钥索引keyid。
(4)加密缓冲区中的数据块,输入PCI数据加密卡中进行加解密的条件是①当缓冲区中积累的数据包数目超过最大值时;该最大值由PCI数据加密卡的加密能力确定;本实例针对现在网络密码机单张PCI加密卡,该最大值取为16个小数椐包(指64字节的数据包)。
②当缓冲区中缓存的数据总数超过一定大小时;在本实例中该数据总字节数最大值为1800字节;③当缓冲区的维持时间超时;每个加密缓冲区有一个时间标记,加密机心跳的软中断中,会对每个正在使用的缓冲区的时间标记进行检查,如果超时数据包将被发送;在本实例中每个缓冲区的维持时间是300μs。
(5)将操作系统使用过后的内存空间回收管理,不释放而是放入回收池中,当网卡需要内存空间时就从回收池里提取。
性能实验验证在具有相同硬件平台和配件条件下,采用上述技术措施后,将采用帧组加密模式的吞吐测试结果,与没有采用帧组加密的普通的吞吐率测试结果相比较,由图3的测试结果看出数据包越小性能提升越高,这是因为数据包越小采用本发明的帧组加密方法,其组包数量越多,节省cpu的中断数越多,数据包在网络密码机上的吞吐性能提升也越高。
权利要求
1.一种网络密码机的帧组加密方法,其特征是(1)修改Linux操作系统中最小调度时钟周期,或称修改Linux系统“心跳”,将网络数据包通过网络密码机的延时,由原有的10ms改变为100μm-1ms,即将Linux操作系统的“心跳”修改为100次/秒-1000次/秒。(2)重新组合加密小数据包为缓冲数据块;作法是在内存中维护一个由各先入先出的加解密缓冲区所组成的加解密缓冲队列,该队列长度依据平台、数据加密卡的处理能力和内存空间大小来定,基于百兆的处理能力平台,缓冲区长度设置在100-500间较好,在网络密码机中使用300;在内存中维护加解密缓冲区后,所有待加解密处理的数据包,都将先被组装入加解密缓冲区,然后才送入PCI数据加密卡处理。(3)各数据包被组装进入同一个缓冲区的条件是必须具有相同的密钥索引keyid。(4)加密缓冲区中的数据块,输入PCI数据加密卡中进行加解密的条件是①当缓冲区中积累的数据包数目超过最大值时;该最大值由PCI数据加密卡的加密能力确定;②当缓冲区中总字节数大于最大值时;该总字节数最大值由确定;③当缓冲区的维持时间超时。(5)将操作系统使用过后的内存空间回收管理,不释放而是放入回收池中,当网卡需要内存空间时就从回收池里提取。
2.按照权利要求1所述的网络密码机的帧组加密方法,其特征是缓冲区中组装的数据包个数最大值为16。
3.按照权利要求1所述的网络密码机的帧组加密方法,其特征是缓冲区中容纳的数据总字节数最大值为1800。
4.按照权利要求1所述的网络密码机的帧组加密方法,其特征是每个缓冲区的维持时间是300μs,即修改Linux操作系统的心跳为300次/秒。
全文摘要
本发明公开了一种网络密码机的帧组加密方法,包括(1)修改Linux操作系统的“心跳”;(2)在内存中维护由加解密缓冲区组成的加解密缓冲队列,待加解密处理的数据包,都先被组装入加解密缓冲区,然后送入PCI加密卡;(3)各数据包被组装入同一个缓冲区条件是有相同的密钥索引;(4)加密缓冲区中数据块,输入PCI加密卡中加解密的条件是①缓冲区中积累的数据包数目超过最大值;②缓冲区中总字节数大于最大值;③缓冲区维持时间超时;(5)操作系统使用过后的内存空间不释放而是放入回收池中,当网卡需要时从回收池中提取;优点是解决了网络密码机小数据包处理的瓶颈,提高了千兆网络密码机处理小数据包的能力,加速了其吞吐效率。
文档编号H04L12/56GK1815947SQ20051002028
公开日2006年8月9日 申请日期2005年1月31日 优先权日2005年1月31日
发明者侯建宁, 赖韬 申请人:成都卫士通信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1