1.一种基于Hadoop平台和分布式处理编程模型的TCP流重组方法,其特征在于:分布式处理编程模型MapReduce分为Map阶段和Reduce阶段,其中数据以block的形式存储在分布式存储系统HDFS中,Map阶段的步骤为:步骤A1、将数据包映射到键值对,形成输入键值对<偏移量,二进制数据包>;
步骤A2、提取数据包的五元组,包括源IP,目的IP,源端口,目的端口,传输层协议类型;
步骤A3、判断传输层协议是否为TCP协议,若该传输层协议不是TCP协议,则读取下一个键值对;若该传输层协议是TCP协议,则提取数据包的序列号、时间戳,有效净荷,并判断该有效净荷的长度,若有效净荷长度为零,则忽略该数据包,读取下一个键值对,否则跳转到步骤A4;
步骤A4、输出键值对<五元组,时间戳+序列号+数据包有效净荷>,“+”操作表示将时间戳、序列号,数据包有效净荷部分拼成一个大的字节数组,并最终将“时间戳+序列号+数据包有效净荷”保存;
Reduce阶段的步骤为:
步骤B1、Reduce之前平台Hadoop将Map阶段输出中相同五元组的“时间戳+序列号+数据包有效净荷”聚集在一起形成键值对<五元组,list(时间戳+序列号+数据包有效净荷)>作为Reduce的输入;
步骤B2、依据时间戳,按照时间先后的顺序对list进行排序,所述list包括时间戳+序列号+数据包有效净荷;
步骤B3、删除经过排序后的list中TCP序列号相同的多余记录;
步骤B4、将经过排序后list中每个记录的时间戳、序列号去掉,形成只包含数据包有效净荷的list;
步骤B5:按照顺序合并只包含数据包有效净荷的list中的每个记录,完成重组;
步骤B6:输出键值对<五元组,重组数据>,完成TCP流的重组。
2.根据权利要求1所述的基于Hadoop平台和分布式处理编程模型的TCP流重组方法,其特征在于:Map阶段的步骤中A1步骤中通过修改InputFormat完成分片到键值对的映射。
3.根据权利要求1所述的基于Hadoop平台和分布式处理编程模型的TCP流重组方法,其特征在于:步骤A4中的输出键值对<五元组,时间戳+序列号+数据包有效净荷>保存为Hadoop自带的BytesWritable数据类型。