三种trace的结构及包提取(根据师兄论文整理)

1.CERNET trace的文件结构

在这里插入图片描述
Trace文件中有多个Packet data,其中每一个Packet data的格式
在这里插入图片描述
CERNET的trace文件中每一个报文的长度都固定为52字节,1——4这4个字节为每一个报文的采集时间精确到秒。5——8这4个字节为每一个报文的采集时间精确到毫秒。9——28这20个字节为报文的固定头部,就是IP头部的固定20个字节,采自网络中报文的头部1——20字节。29——50这部分采自网络中报文的21——42字节,如果采集的网络中报文不足42个字节,就需要填充一下,在51——52这2个字节做标记。

处理包的相关代码`

void Readapacket(FILE * fp)
{
   
	int hlen;
	unsigned short i;
	struct Index_packet inpack;
	unsigned char  h_lenver;
	fread(&inpack.sec,4,1,fp);//读采集时间 
	fread(&inpack.usec,4,1,fp);
	fread(&h_lenver, 1,1,fp);//读IP首部版本号和首部长度 
	fseek(fp, 11L,SEEK_CUR); //从当前位置读11个字节,到达IP地址部分 
	fread(&inpack.SIP,4,1,fp);
	fread(&inpack.DIP,4,1,fp);
	hlen = (int)(h_lenver & 0xf) * sizeof(unsigned long)  ; // 计算首部长度 
	
	//printf("headlen of ip layer: %d\n",hlen);
	fseek(fp, hlen -20, SEEK_CUR);//IP报文首部长度-20得到可选字段+填充字段长度,并从当前位置跳过这段长度达到IP报文数据部分 
	fread(&inpack.SPort, 2,1,fp);
	fread(&inpack.DPort,2,1
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值