基于硬件的包编辑器制造技术

技术编号:9276212 阅读:84 留言:0更新日期:2013-10-24 23:25
基于硬件的包编辑器接收包编辑脚本,所述包编辑脚本包括指示对数据包和具有用于修改数据包的数据的数据块的修改的脚本入口。对于包编辑脚本中的脚本入口,包编辑器将处于在脚本入口中识别的块位置且具有在脚本入口中识别的块长度的数据块中的数据复制到包缓冲区中。包编辑器为修改数据包重复对剩余脚本入口的复制。然后包编辑器用包缓冲区中的数据生成修改数据包。生成包编辑脚本,使得为将包括在修改数据包以及将插入到修改数据包的数据创建脚本入口。对于将被移除的数据,省略脚本入口的创建。

【技术实现步骤摘要】
基于硬件的包编辑器
本专利技术大致涉及数据通信,更具体的,涉及服务网关。
技术介绍
如防火墙、服务加载均衡器之类的服务网关已由服务提供商和企业配置。在过去,服务网关用于安全之类的特殊目的。但是,现在服务网关应用被扩展。许多服务提供商配置服务网关以完成多种服务网关应用,从而检查和分析在主机设备和服务器计算机之间的通信会话的数据包。许多网关应用修改包来帮助对数据包和通信会话的分析。包修改是计算加强且存储接入加强的任务。修改任务通常由服务网关的处理器模块完成。通常,处理器或者处理器模块分析数据包,确定必要的修改数据块,产生包存储缓冲区,从数据包复制一些数据到数据包存储缓冲区中并复制所述修改数据块到包存储缓冲区中。当数据复制完成时,处理器已经从原始的数据包产生了新的数据包。然后服务网关将产生的数据包发送到网络上。数据包修改处理对处理器模块来说代价很高,其消耗CPU周期和存储接入带宽。如果数据包修改处理可以由服务网关的基于硬件的高执行模块卸载和处理,则处理器模块可以分配其资源来处理附加的数据包或者附加的通信会话。因此,需要引入基于硬件的高执行包编辑模块来处理数据包修改。
技术实现思路
根据本专利技术的一个实施例,一种由基于硬件的包编辑器修改数据包的方法包括:(a)由包编辑器接收包编辑脚本,所述脚本包括一个或多个指示应用于数据包和包括用于修改包的数据的数据块的修改的脚本入口;(b)对于包编辑脚本中每一个给定的脚本入口,包编辑器将处于在该给定脚本入口中识别的位置且为在该给定脚本入口中识别的大小的数据块中的数据复制到包缓冲区中;以及(c)包编辑器用包缓冲区中的数据生成修改数据包。在本专利技术的一方面,复制(b)包括:(b1)检索所述包编辑脚本的给定脚本入口;(b2)确定该给定脚本入口是否是用于修改数据包的第一脚本入口;(b3)响应于确定所述给定脚本入口是用于修改数据包的第一脚本入口,保留用于修改数据包的包缓冲区;(b4)将处于在给定的编辑脚本中识别的块位置并具有在给定的编辑脚本中识别的块长度的数据块中的数据复制到数据缓冲区中;(b5)确定该给定脚本入口是否是用于修改数据包的最后一个脚本入口;(b6)响应于确定所述给定脚本入口不是用于修改数据包的最后一个脚本入口,为包编辑脚本的下一个给定脚本入口执行所述复制(b4)和确定(b5)。在本专利技术的一方面,所述确定(b2)包括:(b2i)确定给定脚本入口中的包开始(SOP)指示符是否指示所述给定脚本入口是用于修改数据包的第一脚本入口。在本专利技术的一方面,所述确定(b5)包括:(b5i)确定给定脚本入口中的包结束(EOP)指示符是否指示所述给定脚本入口是用于修改数据包的最后一个脚本入口。在本专利技术的一方面,所述保留(b3)和复制(b4)包括:(b3i)在包缓冲区开始的地方设置包缓冲区标记;(b4i)将处于在给定编辑脚本中识别的块位置且具有在给定编辑脚本中识别的块长度的数据块中的数据的副本添加到包缓冲区标记处的包缓冲区;以及(b4ii)用在给定编辑脚本中识别的块长度修改包缓冲区标记。在本专利技术的一方面,所述生成(c)包括:(c1)响应于确定所述给定脚本入口是用于修改数据包的最后一个脚本入口,用包缓冲区中的数据生成修改的数据包。在本专利技术的一方面,所述生成(c)进一步包括:(c2)确定给定的脚本入口是否是包编辑脚本中的最后一个脚本入口;以及(c3)响应于确定所述给定脚本入口不是包编辑脚本中的最后一个脚本入口,为包编辑脚本中的下一个给定脚本入口重复所述检索(b1)、所述确定(b2)、所述保留(b3)、所述复制(b4)、所述确定(b5)、所述执行(b6)以及所述生成(c1)。在本专利技术的一方面,所述确定(c2)包括:(c2i)确定给定脚本入口中的表结束(EOP)指示符是否指示所述给定脚本入口是包编辑脚本中的最后一个脚本入口。根据本专利技术的另一个实施例,一种由包含处理器的服务网关对数据包进行处理的方法,包括:由处理器接收将从主机向服务器发送或者将从服务器向主机发送的数据包;由处理器确定数据包在发送给服务器或主机之前需要修改;由处理器生成包编辑脚本,所述脚本包括一个或多个指示应用于数据包和包括用于修改包的数据的数据块的修改的脚本入口,其中所述生成包括:对于确定包括在修改包中的数据包的每个和任意给定部分,生成用于识别在数据块中对应于确定包括的给定部分的第一位置和第一长度的第一脚本入口;对于确定要从数据包移除的数据包的每个和任意给定部分,省略对应于确定要移除的给定部分的脚本入口的生成;以及对于确定要加入到修改包中的每个和任意新数据,生成将包括在包编辑脚本的数据块中的新数据并生成识别数据块中对应于新数据的第二位置和第二长度的第二脚本入口;以及由处理器发送包编辑脚本到基于硬件的包编辑器,其中包编辑器根据在包编辑脚本中的脚本入口生成修改的包。对应于上述概述方法的系统和计算机程序产品也在此被描述和要求保护。附图说明图1示出根据本专利技术的使用具有基于硬件的包编辑器的服务网关的通信会话处理方法的实施例。图2示出根据本专利技术的包处理流程的实施例。图3示出了根据本专利技术的包编辑脚本的实施例。图4和4a示出根据本专利技术的包编辑处理流程的实施例。图5示出根据本专利技术实施例的移除HTTP报头属性的示例。图6示出根据本专利技术实施例的插入HTTP报头和包分裂成两个包的示例。图7示出根据本专利技术的服务网关应用的附加实施例。具体实施方式以下描述的呈现使得本领域技术人员可以制造和使用本专利技术,并且以下描述被提供在专利申请和其要求的内容中。对实施例的多种修改对于本领域技术人员是容易显而易见的,并且在此处的一般原理可以被应用于其他实施例。因此,本专利技术并不旨在被限制于所示的实施例,而是根据与在此描述的原理和特征一致的最宽的范围。本专利技术可以采用整个为硬件的实施例的形式、整个为软件的实施例或者既包括硬件元件又包括软件元件的实施例。在较佳实施例中,本专利技术由软件实现,所述软件包括但不限于固件、常驻软件、微代码等。进一步的,本专利技术可以采用计算机程序产品,该计算机程序产品可从提供计算机或任何指令执行系统使用或与其连接的程序码的计算机可用或计算机可读介质获得。为了该说明目的,计算机可用或计算机可读介质可以是任何可包含、存储、通信、传播或传输指令执行系统、装置或设备使用或与其连接的eh程序的装置。介质可以是电、磁、光、电磁、红外、或半导体系统(或装置或设备)或传播介质。计算机可读介质的示例包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。现今光盘的示例包括高密度磁盘-只读存储器(CD-ROM)、高密度磁盘-读/写(CD-R/W)和DVD。适用于存储和/或执行程序代码的数据处理系统将包括至少一个处理器,所述处理器直接或通过系统总线间接耦合到存储元件。存储元件可以包括在程序代码的实际执行过程中使用的本地存储器、大容量存储装置以及为了减少在执行过程中必须从大容量存储装置中检索代码的次数而为至少一些程序代码提供临时存储的高速缓冲存储器。输入/输出或者I/O设备(包括但不限于键盘、显示器、点设备等)可以直接或者通过插入的I/O控制器耦合到系统。网络适配器也可以耦合到系统,使得数据处理系统变为通过插入的私人网络或公共网络耦合到其他本文档来自技高网...
基于硬件的包编辑器

【技术保护点】
一种通过基于硬件的包编辑器修改数据包的方法,包括:(a)由所述包编辑器接收包编辑脚本,所述包编辑脚本包括一个或多个指示应用于所述数据包和包括用于修改包的数据的数据块的修改的脚本入口;(b)对于所述包编辑脚本中的每一个给定脚本入口,由所述包编辑器将处于在所述给定脚本入口中识别的位置和在所述给定脚本入口中识别的大小的数据块中的数据复制到包缓冲区中;以及(c)由所述包编辑器用所述包缓冲区中的数据生成修改数据包。

【技术特征摘要】
2012.03.29 US 13/433,2901.一种通过基于硬件的包编辑器修改数据包的方法,包括:(a)由所述包编辑器接收包编辑脚本,所述包编辑脚本包括一个或多个指示应用于所述数据包和包括用于修改包的数据的数据块的修改的脚本入口;(b)对于所述包编辑脚本中的每一个给定脚本入口,由所述包编辑器将处于在所述给定脚本入口中识别的位置和在所述给定脚本入口中识别的大小的数据块中的数据复制到包缓冲区中;以及(c)由所述包编辑器用所述包缓冲区中的数据生成修改数据包,其中,所述复制(b)包括:(b1)检索所述包编辑脚本的所述给定脚本入口;(b2)确定所述给定脚本入口是否是用于所述修改数据包的第一脚本入口;(b3)响应于确定所述给定脚本入口是用于所述修改数据包的第一脚本入口,保留用于所述修改数据包的包缓冲区;(b4)将处于在所述给定脚本入口中识别的块位置且具有在所述给定脚本入口中识别的块长度的数据块中的数据复制到所述数据缓冲区中;(b5)确定所述给定脚本入口是否是用于所述修改数据包的最后一个脚本入口;(b6)响应于确定所述给定脚本入口不是用于所述修改数据包的最后一个脚本入口,为所述包编辑脚本的下一个给定脚本入口执行所述复制(b4)和所述确定(b5)。2.如权利要求1所述的方法,其特征在于,所述确定(b2)包括:(b2i)确定所述给定脚本入口中的包开始(SOP)指示符是否指示所述给定脚本入口是用于所述修改数据包的第一脚本入口。3.如权利要求1所述的方法,其特征在于,所述确定(b5)包括:(b5i)确定所述给定脚本入口中的包结束(EOP)指示符是否指示所述给定脚本入口是用于所述修改数据包的最后一个脚本入口。4.如权利要求1所述的方法,其特征在于,所述保留(b3)和所述复制(b4)包括:(b3i)在所述包缓冲区开始的地方设置包缓冲区标记;(b4i)将处于在所述给定编辑脚本中识别的块位置且具有在所述给定编辑脚本中识别的块长度的数据块中的数据的副本添加到所述包缓冲区的包缓冲区标记处;以及(b4ii)用在所述给定编辑脚本中识别的所述块长度修改所述包缓冲区标记。5.如权利要求1所述的方法,其特征在于,所述生成(c)包括:(c1)响应于确定所述给定脚本入口是用于所述修改数据包的最后一个脚本入口,用所述包缓冲区中的数据生成所述修改数据包。6.如权利要求5所述的方法,其特征在于,所述生成(c)进一步包括:(c2)确定所述给定脚本入口是否是所述包编辑脚本中的最后一个脚本入口;以及(c3)响应于确定所述给定脚本入口不是所述包编辑脚本中的最后一个脚本入口,为所述包编辑脚本中的下一个给定脚本入口重复所述检索(b1)、所述确定(b2)、所述保留(b3)、所述复制(b4)、所述确定(b5)、所述执行(b6)以及所述生成(c1)。7.如权利要求6所述的方法,其特征在于,所述确定(c2)包括:(c2i)确定所述给定脚本入口中的表结束(EOT)指示符是否指示所述给定脚本入口是所述包编辑脚本中的最后一个脚本入口。8.一种通过基于硬件的包编辑器修改数据包的系统,包括:包缓冲区;以及包括控制存储器和控制模块的基于硬件的包编辑器,其中所述包编辑器:(a)接收包编辑脚本,所述包编辑脚本包括一个或多个指示应用于数据包和包括用于修改包的数据的数据块的修改的脚本入口,以及(b)将所述包编辑脚本存储到所述控制存储器中,其中所述控制模块:(c)检索存储在所述控制存储器中的每个给定脚本入口,(d...

【专利技术属性】
技术研发人员:I·E·戴维斯
申请(专利权)人:A一零网络股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1