首页
学习
活动
专区
圈层
工具
发布
44 篇文章
1
[PyUserInput]模拟鼠标和键盘模拟
2
银行排队模拟(离散事件模拟)
3
Linux网络模拟
4
Linux TC(Traffic Control)作为损伤仪的基础配置和使用
5
深入学习Docker网络(看这篇就完全够了)
6
【鸿蒙 HarmonyOS】鸿蒙手机模拟器 ( 鸿蒙远程模拟器 | 鸿蒙远程模拟器运行手机应用 )
7
探索嵌入式应用框架(EAF)
8
多 OS 混合部署框架
9
嵌入式系统架构浅谈:编程设计模式 (一)---访问硬件的设计模式
10
事件驱动和消息驱动
11
原来 8 张图,就能学废 Reactor 和 Proactor
12
Linux df -h 命令hang住没有反应
13
kafka消费组信息采集异常(hang住)排查
14
ext4 io hung模拟脚本
15
解决 umount 命令卸载磁盘时busy/卡死的问题
16
程序卡死在void HardFault_Handler的解决办法
17
执行sed命令卡死CPU消耗100%一例分析
18
记一次因Redis使用不当导致应用卡死过程
19
字节对齐不慎引发的挂死问题
20
解引用NULL为什么会导致程序挂死?
21
记64位地址截断引发的挂死问题
22
websocket 在线工具_websocket添加请求头
23
【嵌入式Linux应用开发】SquareLine Studio与LVGL模拟器
24
详解Handler机制中消息队列的出队逻辑
25
Android UpdateEngine模块流程(含序列图)
26
物联网时代的嵌入式开发平台
27
400+条实用C/C++框架、库、工具整理 ,你能想到的都在这里了
28
ESP32芯片IO解读
29
M5Stack在ubuntu上进行开发编译
30
【抽象那些事】不完整的抽象&多方面抽象&未用的抽象&重复的抽象
31
H264,你不知道的小技巧
32
linux 创建虚拟块设备,制作文件系统并挂载,用于测试lustre
33
基于linux开发uvc摄像头_uvc协议扩展
34
清晰讲解LSB、MSB和大小端模式及网络字节序
35
在树莓派中使用 MicroPython 接入 MQTT
36
MicroPython 玩转硬件系列1:环境搭建
37
嵌入式系统架构浅谈:编程设计模式 (二)---嵌入并发和资源管理的设计模式
38
嵌入式软件架构设计之分层设计
39
IC之路(一)Proteus-Arduino仿真环境搭建
40
图像处理基础(六)-libjpeg常用算法
41
OpenCV双目标定
42
L-K光流推导及OpenCV代码实现
43
NDI Webcam Input工具,那些你不知道的知识!
44
使用QEMU chroot进行固件本地调试
清单首页其它文章详情

Linux网络模拟

在Linux下, 通常使用netem或bridge来模拟网络不稳定情况。 在模拟过程中, 最好使用虚拟机。 如果是远程机器, 那么网络环境模拟需要两块网卡, 而桥模拟最好使用三块网卡。 就是需要附加一个网卡, 用作管理。

netem

是一个网络模拟器, 它为测试提供了一些互联网我, 如延时, 丢包, 重包, re-ordering. 在Linux2.6的发行版本中, 一般会带有此包。

  • 端口延时命令
  1. tc qdisc add dev eth0 root netem delay 100ms : 表示对端口廷时100ms
  2. tc qdisc del dev eth0 root netem delya 100ms : 表示对端口廷时命令删除
  3. tc qdisc change dev eth0 root netem delay 100ms 10ms :表示对改变端口廷时命100ms ± 10ms 延时范围(90到110)
  4. tc qdisc change dev eth0 root netem delay 100ms 10ms 25% : 表示廷时范围100ms ± 10ms * 25%
  • 端口丢包命令:
  1. tc qdisc change dev eth0 root netem loss 0.1% : 丢包率为0。1%
  2. tc qdisc change dev eth0 root netem loss 0.3% 25% : 丢包率为范围(0。3% 25%)
  • 数据包副本命令
  1. tc qdisc change dev eth0 root netem duplicate 1% : 数据包副本率 1%
  • 数据包分发命令
  1. tc qdisc change dev eth0 root netem gap 5 delay 10ms : 数据包重发每格5的整数倍的包将不被延时。其它的将延时10ms
  • 速率控制命令:两条命令共同完成
  1. tc qdisc add dev eth0 root handle 1:0 netem delay 100ms
  2. tc qdisc add dev eth0 parent 1:1 handle 10: tbf rate 256kbit buffer 1600 limit 3000
  • 查看规则信息
  1. tc -s qdisc ls dev eth0
  2. tc qdisc show
  • 删除规则 tc qdisc del dev eth0 root

bridge

bridge-utils可以模拟一个网桥。 在多数情况下,我们做网桥防火墙需要的是一台三网卡的服务,2个网卡做桥接,另外一个配置好ip地址作为管理接口,以便远程登陆网桥服务器对防火墙进行管理。 (这是可以把此主机看到两个端口的HUB )

  1. brctl addbr mybridge (创建bridge mybridge,然后用ifconfig查看会发现多了一个mybridge端口)
  2. brctl addif mybridge eth0
  3. brctl addif mybridge eth1 (把eth0和eth1包含到mybridge中)
  • 然后需要对各端口做以下动作
  1. ifconfig eth0 0.0.0.0 promisc
  2. ifconfig eth1 0.0.0.0 promisc(打开混杂模式)
  3. ifconfig mybridge up(启动网桥)

*.从网桥中删除网卡eth0 和eth1

  1. brctl delif eth0
  2. brctl delif eth1
  • 删除网桥br0
  1. brctl delbr br0
下一篇
举报
领券