1.一种以太网报文替换编辑的方法,其特征在于,所述方法包括:
获取并解析转发的原始的以太网报文,所述以太网报文的组成格式包括报文头以及负载,所述报文头包括三层,依次为二层头、三层头、四层头;
依据所述以太网报文的应用类型,将所述以太网报文头分解为三个预估子部分,分别为第一预估子部分、第二预估子部分和第三预估子部分;
所述第一预估子部分包括至少包括二层头,所述第二预估子部分包括至少包括三层头,所述第三预估子部分包括至少包括四层头;
从各个所述预估子部分中临时抽离出其对应的有效子部分;所述有效子部分依次为:第一有效子部分、第二有效子部分以及第三有效子部分;
接收替换编辑请求,分别在所述三个预估子部分的基础上,对其对应的有效子部分进行替换编辑;所述替换编辑请求包括:指定替换部分的位置,替换字段的偏移量,以及替换内容;
在完成全部的替换编辑请求后,从各个经过替换编辑后的所述预估子部分中抽离出各自的有效子部分,并将三个有效子部分按照分解顺序重新拼装,形成替换编辑后的以太网报文。
2.根据权利要求1所述的以太网报文替换编辑的方法,其特征在于,“依据所述以太网报文的应用类型,将所述以太网报文头分解为三个预估子部分”具体包括:
分别获取原始的以太网报文头中每层报文头的起始数据段,以及每层报文头对应的最大限制长度;
分别以每层报文头对应的起始数据段以及最大限制长度获取对应的预估子部分。
3.根据权利要求2所述的以太网报文替换编辑的方法,其特征在于,“分别以每层报文头对应的起始数据段标识以及最大限制长度获取对应的预估子部分”具体包括:
获取的所述二层头的起始数据段为报文传递的第一个数据,最大限制长度为Length2,所述三层头的起始数据段为L3Offset,最大限制长度为Length3,所述四层头的起始数据段为L4Offset,最大限制长度为Length4;
则所述第一预估子部分的数据包括报文传递的第一个数据以及其之后Length2-1个数据,所述第二预估子部分的数据包括L3Offset以及其之后Length3-1个数据,所述第三预估子部分的数据包括L4Offset以及其之后Length4-1个数据。
4.根据权利要求3所述的以太网报文替换编辑的方法,其特征在于,“从各个所述预估子部分中临时抽离出其对应的有效子部分”具体包括:
获取每层报文头对应的下一层报文头的起始数据段的地址,以及当前的以太网报文的报文头编辑的最大限制长度,根据其分别获得各个所述预估子部分对应的有效子部分的长度;
依据各个有效子部分的长度从所述预估子部分中抽离其对应的有效子部分。
5.根据权利要求4所述的以太网报文替换编辑的方法,其特征在于,所述方法具体包括:
获取所述二层头的下一层报文头的起始数据段的地址为L3Offset的地址L3Offsetad,所述三层头的下一层报文头的起始数据段标识地址为L4Offset的地址L4Offsetad,当前的以太网报文的报文头编辑的最大限制长度Length all;
则所述第一有效子部分的长度为L2HdrLen=L3Offsetad-1,所述第二有效子部分的长度为L3HdrLen=L4Offsetad- L3Offsetad ,所述第三有效子部分的长度为L4HdrLen=Length all-L4Offsetad+1;
依据各个有效子部分的长度从所述预估子部分的第一个数据开始,依次抽离对应的有效数据形成各个有效子部分。
6.一种以太网报文替换编辑的系统,其特征在于,所述系统包括:
数据获取解析模块,用于获取并解析转发的原始的以太网报文,所述以太网报文的组成格式包括报文头以及负载,所述报文头包括三层,依次为二层头、三层头、四层头;
数据分解模块,用于依据所述以太网报文的应用类型,将所述以太网报文头分解为三个预估子部分,分别为第一预估子部分、第二预估子部分和第三预估子部分;
所述第一预估子部分包括至少包括二层头,所述第二预估子部分包括至少包括三层头,所述第三预估子部分包括至少包括四层头;
数据抽离模块,用于从各个所述预估子部分中临时抽离出其对应的有效子部分;所述有效子部分依次为:第一有效子部分、第二有效子部分以及第三有效子部分;
数据替换模块,用于接收替换编辑请求,分别在所述三个预估子部分的基础上,对其对应的有效子部分进行替换编辑;所述替换编辑请求包括:指定替换部分的位置,替换字段的偏移量,以及替换内容;
数据拼接模块,用于在完成全部的替换编辑请求后,从各个经过替换编辑后的所述预估子部分中抽离出各自的有效子部分,并将三个有效子部分按照分解顺序重新拼装,形成替换编辑后的以太网报文。
7.根据权利要求6所述的以太网报文替换编辑的系统,其特征在于,所述数据分解模块具体用于:
分别获取原始的以太网报文头中每层报文头的起始数据段,以及每层报文头对应的最大限制长度;
分别以每层报文头对应的起始数据段以及最大限制长度获取对应的预估子部分。
8.根据权利要求7所述的以太网报文替换编辑的系统,其特征在于,所述数据分解模块具体用于:
获取的所述二层头的起始数据段为报文传递的第一个数据,最大限制长度为Length2,所述三层头的起始数据段为L3Offset,最大限制长度为Length3,所述四层头的起始数据段为L4Offset,最大限制长度为Length4;
则所述第一预估子部分的数据包括报文传递的第一个数据以及其之后Length2-1个数据,所述第二预估子部分的数据包括L3Offset以及其之后Length3-1个数据,所述第三预估子部分的数据包括L4Offset以及其之后Length4-1个数据。
9.根据权利要求8所述的以太网报文替换编辑的系统,其特征在于,所述数据抽离模块具体用于:
获取每层报文头对应的下一层报文头的起始数据段的地址,以及当前的以太网报文的报文头编辑的最大限制长度,根据其分别获得各个所述预估子部分对应的有效子部分的长度;
依据各个有效子部分的长度从所述预估子部分中抽离其对应的有效子部分。
10.根据权利要求9所述的以太网报文替换编辑的系统,其特征在于,所述数据抽离模块具体用于:
获取所述二层头的下一层报文头的起始数据段的地址为L3Offset的地址L3Offsetad,所述三层头的下一层报文头的起始数据段标识地址为L4Offset的地址L4Offsetad,当前的以太网报文的报文头编辑的最大限制长度Length all;
则所述第一有效子部分的长度为L2HdrLen=L3Offsetad-1,所述第二有效子部分的长度为L3HdrLen=L4Offsetad- L3Offsetad ,所述第三有效子部分的长度为L4HdrLen=Length all-L4Offsetad+1;
依据各个有效子部分的长度从所述预估子部分的第一个数据开始,依次抽离对应的有效数据形成各个有效子部分。