基于XTerm模拟发包实现
介绍
XTerm是一个X Window System上的终端模拟器,用来提供多个独立的SHELL输入输出。
XTerm
使用虚拟终端技术将远程主机的终端模拟出来,实现了远程终端控制。Iperf 是一个网络性能测试工具,可以测试最大
TCP
和UDP
带宽性能,具有多种参数和UDP
特性,可以根据需要调整,可以报告带宽、延迟抖动和数据包丢失。iperf
常用参数表。
参数 | 说明 |
---|---|
-b |
UDP 模式的带宽限制,单位bps
|
-e | 显示更多信息 |
-f |
设置带宽单位bps 、Kbps 、Mbps 、Gbps 以及对应的Bps
|
-i |
发包的间隔时间,单位s
|
-l |
缓冲区大小,默认TCP 为128K
|
-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
实现TCP
和UDP
发包模拟。 - 对不同流量强度进行分析,模拟正常发包和攻击流量。
配置
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模拟发包实现相关推荐
- 基于Netty模拟解析Binlog
系列文章 MySql Binlog初识 MySql Binlog事件介绍篇 MySql Binlog事件数据篇 Mysql通讯协议分析 基于Netty模拟解析Binlog 前言 最近一段时间一直再看m ...
- 蒙特卡洛模拟电动汽车充电matlab,基于蒙特卡洛模拟的电动汽车充电负荷预测
基于蒙特卡洛模拟的电动汽车充电负荷预测 The Prediction of Electric Vehicles Charging Load Based on Monte Carlo Simulatio ...
- STM32基于软件模拟IIC进行AHT21B温湿度采集
STM32基于软件模拟IIC进行AHT21B温湿度采集 一. IIC简介 1.1 IIC简介 1.2 实现方式 1.3 实现方式对比 二. AHT21B简介 2.1 简介 2.2 产品特点 2.3 外 ...
- 基于DEM模拟淹没区域随时间推演算法代码展示
之前写的一篇博客讲基于dem模拟淹没区域随时间推演的算法:https://blog.csdn.net/wqy248/article/details/81119550 有些朋友留言希望看一下实现源码,所 ...
- 基于JAVA模拟考试系统计算机毕业设计源码+数据库+lw文档+系统+部署
基于JAVA模拟考试系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA模拟考试系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...
- 【雷达通信】基于matla模拟雷达定位
1 简介 基于matla模拟雷达定位 2 部分代码 function vel = MTIcalcVelocityFromFourier(energyInFreqRangeCells,ind,freq ...
- 基于蒙特卡罗模拟的股票风险价值VaR测算
基于蒙特卡罗模拟的股票风险价值VaR测算 前言:如果各位观看博客的想学的,可以通过Tushare金融数据注册链接注册账号,在获得相关数据集,这是本人的分享链接注册后,我可以获得50积分,谢谢各位支持. ...
- 基于Matlab模拟、检测和跟踪飞机着陆进场中异常的仿真(附源码)
目录 一.介绍 二.生成和标记轨迹 三.定义方案 四.运行方案并检测异常轨道 五.将跟踪异常报告与事实进行比较 六.总结 七.程序 该示例显示了如何自动检测最终接近机场跑道的飞机的偏差和异常.在此示例 ...
- 基于Simulink模拟具有两个目标的双基地雷达(附源码)
目录 一.示例 二.发射机 三.目标 四.接收机 五.结果和显示 六.总结 七.程序 此示例演示如何仿真具有两个目标的双基地雷达系统.双基地雷达的发射器和接收器不位于同一位置,而是沿着不同的路径移动. ...
- 【物理应用】基于matlab模拟井筒多相流【含Matlab源码 2152期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[物理应用]基于matlab模拟井筒多相流[含Matlab源码 2152期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付 ...
最新文章
- JNI与NDK学习第二篇-----应用篇
- python中requests库的用途-数据爬虫(三):python中requests库使用方法详解
- Python atexit模块
- java快捷键 --_Java中的快捷方式“或分配”(| =)运算符
- 一个简单的主机管理模拟程序
- php curl设置headers,php curl如何设置头部信息
- springMVC_08文件上传
- 安装Python和Anaconda
- Java完全自学手册pdf,由浅入深,循序渐进(1)
- 关于webstorm更换主题
- 数据结构学习——浅谈哈希表开散列和闭散列
- 【Jmeter】Jmeter使用教程
- 特征提取之文本特征提取
- 在定语从句中which和that用法有什么区别
- CorelDRAW入门教程-用CDR制作漂亮小雨伞
- 艾草减肚子方法非常有效 赛乐赛骗局是真的吗
- 再见北理工:忆北京研究生的编程时光
- Mac 不能将项目xxx移到废纸篓,因为它已打开
- 集线器、中继器、网桥、交换机、网关、路由器——今天必把你们区分开
- php ean13,php生成EAN_13标准条形码实例_php实例
热门文章
- matlab 如何使用虚数,编程高手帮我解决下怎么用matlab解含有虚数的微分方程组...
- C盘爆满,你的专属清道夫来啦
- python PIL 图像增强
- 爬虫第四关——寻找周杰伦
- 前搜房网副CTO曹艳白干了件大事!
- C语言求2/1,-3/2,5/3,-8/5...前十项之和
- Win10连接NAS网络存储器失败解决方法
- 研报摘要|元宇宙:下一代互联网启程(附元宇宙深度报告PDF)
- mysql统计类似SQL语句查询次数
- DEFCON 26 | 利用传真功能漏洞渗透进入企业内网(Faxploit)