pcap包解析31.docVIP

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
pcap包解析31

项目A 从pcap文件中析取所有TCP会话与UDP会话 张中秋(U201217502 ,853950423@, tel1205班) 执笔 100% 签字 摘要:本项目主要针对的是对于单一网络节点,.pcap文件是二进制格式的网络轨迹(Network trace)文件,记录了网络通信过程的数据包信息。csv(comma separated values)是一种用逗号,分隔的文本文件,类似于excel文件。.pcap文件是二进制文件,需要从中提取信息并以csv的格式进行存储。可以使用tshark实现对.pcap文件进行分析。 关键词: TCP/UDP协议,数据包,文件,IP包 引言 要对整个pcap文件进行操作,就必须先对pcap文件进行解析,析取pcap文件中所有的TCP会话和UDP会话。HTTP使用TCP而不是UDP的原因在于(打开)一个网页必须传送很多数据,而TCP协议提供传输控制,按顺序组织数据,和错误纠正。所以在做http重组之前,对pcap文件中TCP会话与UDP会话的提取非常的关键。 项目问题分析与解决问题的算法 Pcap文件结构: 基本格式: 文件头 数据包头 数据报数据包头数据报...... 文件头: 图1 pcap文件头 a、标识位:32位的,这个标识位的值是16进制的 0xa1b2c3d4。 b、主版本号:16位, 默认值为0x2。 c、副版本号:16位,默认值为0x04。 d、区域时间:32位,实际上该值并未使用,因此可以将该位设置为0。 e、精确时间戳:32位,实际上该值并未使用,因此可以将该值设置为0。 f、数据包最大长度:32位,该值设置所抓获的数据包的最大长度,如果所有数据包都要抓获,将该值设置为65535;例如:想获取数据包的前64字节,可将该值设置为64。 g、链路层类型:32位, 数据包的链路层包头决定了链路层的类型。 pcap数据包头: 图2 pcap数据包头 a、时间戳,包括: 秒计时:32位,一个UNIX格式的精确到秒时间值,用来记录数据包抓获的时间,记录方式是记录从格林尼治时间的1970年1月1日 00:00:00 到抓包时经过的秒数; 微秒计时:32位, 抓取数据包时的微秒值。 b、数据包长度:32位 ,标识所抓获的数据包保存在pcap文件中的实际长度,以字节为单位。 c、数据包实际长度: 所抓获的数据包的真实长度,如果文件中保存不是完整的数据包,那么这个值可能要比前面的数据包长度的值大。 pcap数据: 即Packet(通常就是链路层的数据帧)具体内容,长度就是Caplen,这个长度的后面,就是当前PCAP文件中存放的下一个Packet数据包,也就是说:PCAP文件里面并没有规定捕获的Packet数据包之间有什么间隔字符串,下一组数据在文件中的起始位置。我们需要靠第一个Packet包确定。 读取时进制转换问题: package PcapFinally; import java.util.List; public class Pcap { private PcapHeader header; private ListPcapData data; public PcapHeader getHeader(){ return header; } public void setHeader(PcapHeader header){ this.header=header; } public ListPcapData getData(){ return data; } public void setData(ListPcapData data){ this.data=data; } public void ottString(){ System.out.println(data part count=+data.size()); } } package PcapFinally; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; public class PcapData { public static String source_adrress; //数据包头文件 public static int time_s;//时间戳(秒) public static int time_ms;//时间戳(微秒) public static int pLength;//抓包长度 public static int length;//实际长

文档评论(0)

pfenejiarz + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档