介绍

  • XTerm是一个X Window System上的终端模拟器,用来提供多个独立的SHELL输入输出。

  • XTerm使用虚拟终端技术将远程主机的终端模拟出来,实现了远程终端控制。

  • Iperf 是一个网络性能测试工具,可以测试最大TCPUDP带宽性能,具有多种参数和UDP特性,可以根据需要调整,可以报告带宽、延迟抖动和数据包丢失。

  • iperf常用参数表。

参数 说明
-b UDP模式的带宽限制,单位bps
-e 显示更多信息
-f 设置带宽单位bpsKbpsMbpsGbps以及对应的Bps
-i 发包的间隔时间,单位s
-l 缓冲区大小,默认TCP128K
-m 输出TCP的最大端长度(MSS=MTU-TCP/IP header
-o 将信息输出到文件file
-p 指定端口号
-u 选择UDP模式,默认TCP
-w 设置套接字缓冲区大小
-B 绑定到多个地址中的一个,UDP时用于组播分组
-M 设置TCP的最大端长度
-s 服务器模式
-t 设置传输的总时间,单位s
-c 客户端模式
-n 设置发包的大小,单位Byte
-P 设置线程数,默认1线程,服务器端和客户端同时定义
-T 设置TTL

目的

  • mininet中使用XTerm+iperf实现TCPUDP发包模拟。
  • 对不同流量强度进行分析,模拟正常发包和攻击流量。

配置

  • apt install mininet安装mininet环境。
  • apt install xterm安装XTerm
  • 使用mn打开mininet默认拓扑,输入xterm h1 h2打开虚拟终端。

模拟

正常TCP

  • TCP的模拟发包需要建立连接,这里使用h1作为接收端(服务端),h2作为发送端(客户端)。
  • 设置服务端接收端口为5566,时间间隔为1s
# iperf -s -p 5566 -i 1
  • 此时使用ifstat查看网络流量,发现并无大量流量生成。

  • 设置客户端使用服务端套接字连接,发送10s的数据包。

# iperf -c 10.0.0.1 -p 5566 -t 10

客户端启动到建立TCP连接后,服务端才能在该端口接收数据包。

  • 经过10s的传输后,客户端停止发送,服务端产生如下输出。
------------------------------------------------------------
Server listening on TCP port 5566
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 14] local 10.0.0.1 port 5566 connected with 10.0.0.2 port 47854
[ ID] Interval       Transfer     Bandwidth
[ 14]  0.0- 1.0 sec  2.59 GBytes  22.3 Gbits/sec
[ 14]  1.0- 2.0 sec  2.62 GBytes  22.5 Gbits/sec
[ 14]  2.0- 3.0 sec  2.53 GBytes  21.7 Gbits/sec
[ 14]  3.0- 4.0 sec  2.57 GBytes  22.1 Gbits/sec
[ 14]  4.0- 5.0 sec  2.67 GBytes  22.9 Gbits/sec
[ 14]  5.0- 6.0 sec  2.71 GBytes  23.3 Gbits/sec
[ 14]  6.0- 7.0 sec  2.66 GBytes  22.8 Gbits/sec
[ 14]  7.0- 8.0 sec  2.69 GBytes  23.1 Gbits/sec
[ 14]  8.0- 9.0 sec  2.70 GBytes  23.2 Gbits/sec
[ 14]  9.0-10.0 sec  2.73 GBytes  23.4 Gbits/sec
[ 14]  0.0-10.0 sec  26.5 GBytes  22.7 Gbits/sec
  • 正常TCP模拟发包成功。

正常UDP

  • 相对于TCP的三次握手,UDP则简单粗暴,直接根据给定套接字就可以进行发包。
  • 仍然选择h2作为发送端,设置服务端套接字,选择UDP模式。
# iperf -c 10.0.0.1 -p 5566 -i 1 -u
  • h1作为服务端,如果不打开服务端口接收数据,通过ifstat仍然可以看到有流量发送出。

TCP模式不同,如果服务端未启动,客户端是无法发出数据包的。

  • 设置服务端接收端口,再次查看效果。
  • 发现服务端成功接收UDP数据包,正常UDP发包模拟完成。

DoS攻击

  • 这里使用scapy模拟DoS攻击,scapy是用python编写的,所以使用pip install安装即可。
  • 具体实现脚本参考我的另一篇博客。

Ping-DoS

  • 将每个攻击脚本进程设置为20,在XTerm中直接使用python3运行。

  • 可以很明显的看到目标机的端口流量激增。

  • 使用htop查看本地进程,看到几乎全是脚本进程。

  • Ping DoS完成。

目标机带宽足够,Ping DoS无显著影响但我物理机跑得呼呼响。

SYN-Flood

  • 操作类似Ping DoS,这里只给出实现效果。

  • 由于只发送SYN,而不完全建立连接,故没有发送其他数据包,目标机端口流量不会有变化。

这里只用了5个进程,但是效果很强烈,物理机出现卡顿。

基于XTerm模拟发包实现相关推荐

  1. 基于Netty模拟解析Binlog

    系列文章 MySql Binlog初识 MySql Binlog事件介绍篇 MySql Binlog事件数据篇 Mysql通讯协议分析 基于Netty模拟解析Binlog 前言 最近一段时间一直再看m ...

  2. 蒙特卡洛模拟电动汽车充电matlab,基于蒙特卡洛模拟的电动汽车充电负荷预测

    基于蒙特卡洛模拟的电动汽车充电负荷预测 The Prediction of Electric Vehicles Charging Load Based on Monte Carlo Simulatio ...

  3. STM32基于软件模拟IIC进行AHT21B温湿度采集

    STM32基于软件模拟IIC进行AHT21B温湿度采集 一. IIC简介 1.1 IIC简介 1.2 实现方式 1.3 实现方式对比 二. AHT21B简介 2.1 简介 2.2 产品特点 2.3 外 ...

  4. 基于DEM模拟淹没区域随时间推演算法代码展示

    之前写的一篇博客讲基于dem模拟淹没区域随时间推演的算法:https://blog.csdn.net/wqy248/article/details/81119550 有些朋友留言希望看一下实现源码,所 ...

  5. 基于JAVA模拟考试系统计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA模拟考试系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA模拟考试系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...

  6. 【雷达通信】基于matla模拟雷达定位

    1 简介 基于matla模拟雷达定位​ 2 部分代码 function vel = MTIcalcVelocityFromFourier(energyInFreqRangeCells,ind,freq ...

  7. 基于蒙特卡罗模拟的股票风险价值VaR测算

    基于蒙特卡罗模拟的股票风险价值VaR测算 前言:如果各位观看博客的想学的,可以通过Tushare金融数据注册链接注册账号,在获得相关数据集,这是本人的分享链接注册后,我可以获得50积分,谢谢各位支持. ...

  8. 基于Matlab模拟、检测和跟踪飞机着陆进场中异常的仿真(附源码)

    目录 一.介绍 二.生成和标记轨迹 三.定义方案 四.运行方案并检测异常轨道 五.将跟踪异常报告与事实进行比较 六.总结 七.程序 该示例显示了如何自动检测最终接近机场跑道的飞机的偏差和异常.在此示例 ...

  9. 基于Simulink模拟具有两个目标的双基地雷达(附源码)

    目录 一.示例 二.发射机 三.目标 四.接收机 五.结果和显示 六.总结 七.程序 此示例演示如何仿真具有两个目标的双基地雷达系统.双基地雷达的发射器和接收器不位于同一位置,而是沿着不同的路径移动. ...

  10. 【物理应用】基于matlab模拟井筒多相流【含Matlab源码 2152期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[物理应用]基于matlab模拟井筒多相流[含Matlab源码 2152期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付 ...

最新文章

  1. JNI与NDK学习第二篇-----应用篇
  2. python中requests库的用途-数据爬虫(三):python中requests库使用方法详解
  3. Python atexit模块
  4. java快捷键 --_Java中的快捷方式“或分配”(| =)运算符
  5. 一个简单的主机管理模拟程序
  6. php curl设置headers,php curl如何设置头部信息
  7. springMVC_08文件上传
  8. 安装Python和Anaconda
  9. Java完全自学手册pdf,由浅入深,循序渐进(1)
  10. 关于webstorm更换主题
  11. 数据结构学习——浅谈哈希表开散列和闭散列
  12. 【Jmeter】Jmeter使用教程
  13. 特征提取之文本特征提取
  14. 在定语从句中which和that用法有什么区别
  15. CorelDRAW入门教程-用CDR制作漂亮小雨伞
  16. 艾草减肚子方法非常有效 赛乐赛骗局是真的吗
  17. 再见北理工:忆北京研究生的编程时光
  18. Mac 不能将项目xxx移到废纸篓,因为它已打开
  19. 集线器、中继器、网桥、交换机、网关、路由器——今天必把你们区分开
  20. php ean13,php生成EAN_13标准条形码实例_php实例

热门文章

  1. matlab 如何使用虚数,编程高手帮我解决下怎么用matlab解含有虚数的微分方程组...
  2. C盘爆满,你的专属清道夫来啦
  3. python PIL 图像增强
  4. 爬虫第四关——寻找周杰伦
  5. 前搜房网副CTO曹艳白干了件大事!
  6. C语言求2/1,-3/2,5/3,-8/5...前十项之和
  7. Win10连接NAS网络存储器失败解决方法
  8. 研报摘要|元宇宙:下一代互联网启程(附元宇宙深度报告PDF)
  9. mysql统计类似SQL语句查询次数
  10. DEFCON 26 | 利用传真功能漏洞渗透进入企业内网(Faxploit)