- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
综合实训汇报
题目:网络流量在线分析系统设计和实现
华中农业大学
正方教务系统
王枫
指导老师:王建勇
信息学院计算机科学系
目 录
一、 实训目标………………………………………………3
二、 实训内容………………………………………………3
三、 关键设备及环境………………………………………4
四、 设计和步骤……………………………………………5
五、 整理和小结……………………………………………17
六、 参考文件………………………………………………18
一、实训目标
设计并实现一个网络流量分析系统。该系统含有以下功效:(1)实时抓取网络数据。(2)网络协议分析和显示。(3)将网络数据包聚合成数据流,以源IP、目标IP、源端口、目标端口及协议等五元组形式存放。(4)计算并显示固定时间间隔内网络连接(双向流)统计量(如上行和下行数据包数目,上行和下行数据量大小等)。在这些统计数据基础上分析不一样网络应用流量特征。
二、实训内容
(1)能够实时抓取网络中数据包。并实时显示在程序界面上。用户可自定义过滤条件以抓取所需要数据包。
(2)分析各个网络协议格式,能够显示各协议字段实际意义。比如,能够经过该程序反应TCP三次握手实现过程。
(3)采取Hash链表形式将网络数据以连接(双向流)形式存放。
(4)计算并显示固定时间间隔内网络连接(双向流)统计量(如上行和下行数据包数目,上行和下行数据量大小等)。比如,抓取一段时间(如30分钟)网络流量,将该段时间以固定时长(如1分钟)为单位分成若干个时间片,计算网络连接在每一个时间片内相关统计量。并在上述统计数据基础上分析不一样应用如WEB、DNS、在线视频等服务流量特征。注意,可依据实际流量分析需要自己定义相关统计量。
三、关键设备及环境
硬件设备:
(1)台式计算机或笔记本计算机(含网络适配器)
软件设备:
(2)Windows操作系统
(3)网络数据包捕捉函数包,Windows平台为winpcap
(4)编程语言选择C/C++。
(5)编程环境为codeblocks
设计和步骤
定义 mac,以太网帧,IPv4 首部,TCP 首部, UDP 首部
和部分用于设置时间结构体, 回调函数原型 包含哈希表插入,搜索,初始化。
* 6字节mac地址 */
typedef struct mac_address
{
u_char byte1;
u_char byte2;
u_char byte3;
u_char byte4;
u_char byte5;
u_char byte6;
} mac_address;
/* 以太网帧 */
typedef struct ethernet_header
{
mac_address daddr; //目标MAC地址
mac_address saddr; //源MAC地址
u_short etherType //以太网帧类型
} ethernet_header;
/* IPv4 首部 */
typedef struct ip_header
{
u_char ver:4,ihl:4; // 版本 (4 bits) + 首部长度 (4 bits)
u_char tos; // 服务类型(Type of service)
u_short tlen; // 总长(Total length)
u_short identification; // 标识(Identification)
u_short flags_fo; // 标志位(Flags) (3 bits) + 段偏移量(Fragment offset) (13 bits)
u_char ttl; // 存活时间(Time to live)
u_char proto; // 协议(Protocol)
u_short crc; // 首部校验和(Header checksum)
struct in_addr saddr; // 源地址(Source address)
struct in_addr daddr; // 目标地址(Destination address)
u_int op_pad; // 选项和填充(Option + Padding)
} ip_header;
/* TCP 首部*/
typedef struct t
原创力文档


文档评论(0)