Network Real Trace Analysis 2015年12月10日
了解网络中真实的流量,国内很难找到巨人的肩膀。
WAND是新西兰waikato 大学计算机系的研究小组,主要做网络测量,大规模网络流量捕获,网络分析。还做专业的分析软件。
libtrace是其开源的分析软件项目。
它可以读写流量。这些流量也放在他们网站上提供下载。
libtrace 有大量的可执行程序,在linux下编译运行。 例如,流统计报告tracereport.
- traceanon
- traceconvert
- tracediff
- traceends
- tracefilter
- tracemerge
- tracepktdump
- tracereplay
- tracereport
- tracertstats
- tracesplit
- tracesplit_dir
- tracestats
- tracesummary
- tracetop
- tracetopends
- ToolTricks
使用tracereport工具里的参数选项-F可以统计流数目。tracereport工具有如下子选项。
tracereport
[ -f bpf | --filter=bpf ]
[ -e | --error ]
[ -F | --flow ]
[ -P | --protocol ]
[ -p | --port ]
[ -T | --tos ]
[ -t | --ttl ]
[ -O | --tcpoptions ]
[ -o | --synoptions ]
[ -n | --nlp ]
[ -d | --direction ]
[ -C | --ecn ]
[ -s | --tcpsegment ]
求trace1的流数量
linux# tracereport -F erf:trace1.erf.gz
.erf.gz是流的后缀名,进过.gz压缩,是erf的包数据格式。
主要算法由/libtrace/tools/tracereport/Flow_report.c/ flow_per_packet()函数完成
void flow_per_packet(struct libtrace_packet_t *packet)
{
struct libtrace_ip *ip = trace_get_ip(packet);
struct fivetuple_t ft;
if (!ip)
return;
ft.ipa=ip->ip_src.s_addr;
ft.ipb=ip->ip_dst.s_addr;
ft.porta=trace_get_source_port(packet);
ft.portb=trace_get_destination_port(packet);
ft.prot = 0;
if (!SET_CONTAINS(flowset,ft)) {
SET_INSERT(flowset,ft);
flow_count++;
}
}
每读取一个包就会调用一次此函数。
结构体 libtrace_ip 表示数据包ip。
得到ip内容。
判断是否是已经出现过的流,否则flow_count++;
统计值就在flow_count里。
==========完=========
2015年12月10日
原文链接:http://www.pandaroll.cn/research/research1.html
Network Real Trace Analysis 2015年12月10日的更多相关文章
- 2015年12月10日 spring初级知识讲解(三)Spring消息之activeMQ消息队列
基础 JMS消息 一.下载ActiveMQ并安装 地址:http://activemq.apache.org/ 最新版本:5.13.0 下载完后解压缩到本地硬盘中,解压目录中activemq-core ...
- 2015年12月10日 spring初级知识讲解(二)最小化Spring XML配置 注解
序,随着Spring容器管理Bean数量增加,XML文件会越来越大,而且纯手工配置XML很繁琐,Spring和JAVA都提供了一些注解方式用以简化XML配置. 目录 一.自动装配(autowiring ...
- 2015年12月28日 Java基础系列(六)流
2015年12月28日 Java基础系列(六)流2015年12月28日 Java基础系列(六)流2015年12月28日 Java基础系列(六)流
- 2015年12月13日 spring初级知识讲解(四)面向切面的Spring
2015年12月13日 具体内容待补充...
- 【C++】命令行Hangman #2015年12月15日 00:20:27
增加了可以在构造Hangman对象时通过传入参数设定“最大猜测次数”的功能.少量修改.# 2015年12月15日 00:20:22 https://github.com/shalliestera/ha ...
- 我的Python成长之路---第一天---Python基础(作业2:三级菜单)---2015年12月26日(雾霾)
作业二:三级菜单 三级菜单 可一次进入各个子菜单 思路: 这个题看似不难,难点在于三层循环的嵌套,我的思路就是通过flag的真假来控制每一层的循环的,简单来说就是就是通过给每一层循环一个单独的布尔变量 ...
- 我的Python成长之路---第一天---Python基础(作业1:登录验证)---2015年12月26日(雾霾)
作业一:编写登录接口 输入用户名密码 认证成功系那是欢迎信息 输错三次后锁定 思路: 1.参考模型,这个作业我参考了linux的登录认证流程以及结合网上银行支付宝等锁定规则 1)认证流程参考的是Lin ...
- 我的Python成长之路---第一天---Python基础(1)---2015年12月26日(雾霾)
2015年12月26日是个特别的日子,我的Python成之路迈出第一步.见到了心目中的Python大神(Alex),也认识到了新的志向相投的伙伴,非常开心. 尽管之前看过一些Python的视频.书,算 ...
- 2016年12月10日 星期六 --出埃及记 Exodus 21:5
2016年12月10日 星期六 --出埃及记 Exodus 21:5 "But if the servant declares, `I love my master and my wife ...
随机推荐
- 如何去访问win8系统的共享文件夹
关于共享,看过不少的贴子,觉得搞得很复杂.我看起来也很头痛.晕头转向的.其实我们作为家庭用户来说,不想搞得那么复杂,我们只要能做到能够从一台电脑访问另一台电脑的共享文件夹就可以了,这样我们就可以任意从 ...
- 关于pycharm的激活码
http://kadara.ru:1017 http://roothat.ru:1017 http://jetbrains.tencent.clickn http://idea.imsxm.com/ ...
- times(NULL) Segmentation fault
****************************************************************************** * times(NULL) Segment ...
- fedora 27
安装 U盘安装,感谢学长的U盘 配置 安装外来软件的时候,需要输入root密码 软件 软件安装是个麻烦事儿啊 详情 [新手指南: 在 Ubuntu 和 Fedora 上安装软件包] Fedora 中文 ...
- Spring之基本关键策略
目的 为了简化Java开发. 策略 基于POJO(普通Java类)的轻量级和最小侵入性编程: 通过依赖注入(DI)和面向接口实现松耦合: 基于切面和惯例进行声明式编程: 通过切面和模板减少样板式代码. ...
- socket创建UDP服务端和客户端
UDP服务端代码示例: from socket import * #1.创建数据报套接字 sockfd = socket(AF_INET, SOCK_DGRAM) #2.绑定服务端地 sockfd.b ...
- 类的析构方法__del__
析构方法: 语法: class 类名: def __del__(self): ... 说明: 析构方法在对象被销毁时被自动调用 python建议不要在对象销毁时做任何事情,因为销毁的时间难以确定 cl ...
- Linux服务器运行环境搭建(二)——Redis数据库安装
官网地址:http://redis.io/ 官网下载地址:http://redis.io/download 1. 下载Redis源码(tar.gz),并上传到Linux 2. 解压缩包:tar zxv ...
- ubuntu下mysql安装提供外网访问
修改配置文件 1. sudo apt-get install mysql-server #安装mysql服务器 2. sudo apt-get install mysql-client #安装mys ...
- 【pluginShare】依赖JQuery的弹出层封装
目前正在做的项目,老大说打算一点点做成bootstrap那样,然后开源... 所以,趁现在不忙,先封装一些小插件,然后慢慢完善,扩大,开源... 因此博客也多了一个新的模块------分享 第一弹:a ...