当前位置: 首页 > news >正文

组流技术与流特征分析

源代码:

【免费】组流技术与流特征分析实验源代码资源-CSDN文库

  • 实验背景

本实验中使用方法为python中的dpkt模块,支持的解析协议有限,常见的 IP、TCP、UDP、SSL等。

原理:对于每一个协议都有一个单独的类负责该层协议进行解析,输入是该协议的二进制数据,输出的是将二进制解析成有意义的单独字段。

需要使用dpkt.pcap.Reader读取pcap报文,去除报文的头部信息。将上层的数据根据解码情况传递到具体的协议类中进行解析。

编写Python代码实现组流功能,可借鉴参考代码框架,具体要求如下:

任务1. 处理pcap文件:实现对PCAP文件的读取和处理;

任务2. 组流:能正确将报文依照五元组进行归类,并进一步统计流的个数(打印输出);

任务3. 流特征分析:能对流的特征进行统计分析,具体要求为:

1) 提取每个流的报文长度序列;

2) 计算每个流的报文长度方差;

任务4. 实现简单的数据可视化:绘制对应统计特征下流的频数分布直方图。

  • 实验内容

2.1 使用文档及运行样例

2.1.1 项目结构

仅为添加内容:

/Flow_Aggregation.py

/result.txt

/实验报告

2.1.2 使用方法

需要预先安装的库如下图所示:

直接运行Flow_Aggregation.py即可实现预期功能。

2.2 UML图与主要数据结构

如图所示:

2.3 主要算法说明

在合并流的时候,通过五元组判断是否为同一流:

if (src_ip == flow_unit.src_ip and dst_ip == flow_unit.dst_ip and
       
src_port == flow_unit.src_port and dst_port == flow_unit.dst_port):
   
# 合并流
   
flow_unit.append_packet(eth, tms, pkt_size)
    flow_is_exist =
True
    break

计算每个流的报文长度方差时,利用框架中封装好的pktsizeseq即可:

varset = []"""此处计算每个流的报文长度方差"""for flow_unit in flow:varset.append(np.var(flow_unit.pktsizeseq))return varset

绘制频数分布图的时候,将两个图合并到一个图中输出:

logbins = np.append([0], np.power(10, np.arange(0, int(np.log10(max(x))) + 1, 0.5)))plt.subplot(plotspot)plt.hist(x, bins=logbins)plt.xscale("log")plt.title(title)plt.xlabel("报文长度方差")plt.ylabel("流数量")

2.4 结果展示

2.4.1 任务一:处理pcap文件

这部分框架中已基本实现,可以看到有输出,说明完成了对PCAP文件的读取和处理:

2.4.2 任务二:组流

进行了正确归类,并且单向流统计数目为62,双向流统计数目为33:

2.4.3 任务三:流特征分析

正确输出五元组,mac地址,长度序列以及方差:

完整输出详见result.txt

2.4.4 任务四:实现简单的数据可视化

完成的直方图如下图所示:

  • 实验总结

本次实验通过四个任务使得我对组流有了初步的认识,增强了我的画图能力,也加深了我对计算机网络知识的理解。在实现任务时通过和同学的讨论以及询问学长再加上网上查找的资料,终于将问题一一解决,最终获得预期输出时的满足感不言而喻。这对将对我进行后续实验有着好的影响。


http://www.mrgr.cn/news/54362.html

相关文章:

  • docker 部署单节点的etcd以及 常用使用命令
  • 【设计模式七大设计原则】
  • 速盾:直播cdn加速原理是什么?
  • 接口测试-接口支持幂等
  • 论文 | LARGE LANGUAGE MODELS ARE HUMAN-LEVEL PROMPT ENGINEERS
  • 使用 Docker-compose 部署达梦 DM 数据库
  • 软考(网工)——网络规划设计
  • ICM20948 DMP代码详解(90)
  • 什么是 Idempotence 以及它在哪里使用?
  • Windows 11开发环境搭建与应用开发实践
  • lesson01 Backtrader是什么
  • Rust虚拟机Demo
  • Vue基础(四)
  • 树莓派设置中文界面
  • Cisco Secure Network Analytics 7.5.1 发布下载,新增功能概览
  • PostgreSQL数据库存储结构
  • 白平衡之 White Patch 优化
  • 2024软考网络工程师笔记 - 第11章.网络管理
  • 深入理解WebSocket协议原理、实现与应用
  • 基于海思soc的智能产品开发(开篇)
  • snmpdelta使用说明
  • 手动部署并测试内网穿透
  • KMP 算法
  • 23 Shell Script服务脚本
  • go中阶乘实现时递归及迭代方式的比较
  • 【MySQL】提高篇—索引与性能优化:如何创建与管理索引