写点什么

WebRTC vs. Zoom 之外:WebRTC 的弱网模拟测试(二)

  • 2019-11-30
  • 本文字数:1205 字

    阅读完需:约 4 分钟

WebRTC vs. Zoom 之外:WebRTC 的弱网模拟测试(二)

TC 的使用方法


做弱网测试基本是按照以下四个步骤:


  1. 设备连接 Wi-Fi 热点成功获取 IP 地址,假设为:192.168.3.101。

  2. 打开 Linux terminal,输入 TC 命令为发送端 IP 为 192.168.3.101 的设备添加网损。

  3. 此时手机即在弱网环境下运行。

  4. 测试完成后,输入 TC 命令取消弱网。


例如,你要是想限制 IP 地址为 192.168.3.101 的设备上行丢包 5%,那么需要运行如下命令:


1sudo tc qdisc add dev ifb0 root handle 1: prio bands 32sudo tc qdisc add dev eth1 ingress3sudo tc filter add dev eth1 parent ffff: protocol ip u32 match u32 0 0 flowid 1:1 action mirred egress redirect dev ifb04sudo tc qdisc add dev ifb0 parent 1:3 handle 30: netem loss 5 limit 10005sudo tc filter add dev ifb0 protocol ip parent 1:0 prio 3 u32 match ip src 192.168.3.101 flowid 1:3
复制代码


如果想要限制 IP 地址为 192.168.3.101 的设备下行丢包 20%,需要运行如下命令:


1sudo tc qdisc add dev eth1 root handle 1: prio bands 32sudo tc qdisc add dev eth1 parent 1:3 handle 30: netem loss 20 limit 10003sudo tc filter add dev eth1 protocol ip parent 1:0 prio 3 u32 match ip dst 192.168.3.101 flowid 1:3
复制代码


可以说 TC 框架可以实现很多场景,但前提是需要开发者们学会使用 TC 命令行。如果你想了解更多的 TC 命令,可以学习一下官方文档[4]。

Augmented Traffic Control(ATC)

ATC 其实是 Facebook 在 2015 年开源的一套网络测试工具。ATC 是基于 TC 的封装。


在部署好 ATC 弱网控制机后,在手机上通过 Web 界面就可以随时切换不同的网络环境。多个手机可以连接到同一个 Wi-Fi ,复用同一台弱网控制机,且多设备之间模拟的网络环境互不影响。也就是说,部署好这个测试工具后,团队里的任何人都可以通过 Web 自行测试,且互不干扰。


ATC 的部署方法相对复杂,但只要根据官方文档[5],就可以顺利完成搭建。按照官方文档完成搭建之后,大家还需要通过以下几行命令配置 HOST 地址,然后就可以启动运行了。


打开 Setting:


1vi atcui/atcui/settings
复制代码


添加 HOST 地址 :


1ALLOWED_HOSTS = ['*']
复制代码


启动命令:


1atcd --atcd-wan eth0 --atcd-lan eth1
复制代码


使用方法


  1. 设备接入对应 Wi-Fi

  2. 打开 http://192.168.3.1:8000 (假设 eth1 IP 地址为:192.168.3.1)

  3. 输入对应弱网参数后,点击按钮 [Update Shaping] 生效,该弱网仅对本机生效



测试完成后,点击按钮 [Turn Off] 清除弱网设置。


Network Link Conditioner(NLC)

可能有些 iOS 开发者已经认出来了。NLC 是苹果官方提供的网络模拟工具,支持安装在 macOS 和 iOS 上。

macOS 端安装

  • 打开 Xcode,选择 Xcode -> Open Developer Tool -> More Develop Tools。



  • 用苹果账号登录网站,搜索 Additional Tools for Xcode,下载 Xcode 对应版本的 Additional Tools。



  • 打开下载的文件,在 Hardware 文件夹中双击 Network Link Conditioner 安装。 安装完成后,工具会在系统设置中的最后一排出现。



2019-11-30 22:311663

评论

发布
暂无评论
发现更多内容

当前互联网安全形势下,企业为何需要渗透测试

德迅云安全杨德俊

能否以低成本的方式实现错误日志识别(一):用日志格式解析器

micklongen

日志 智能运维 运维‘

Python 装饰器“高级”使用

我再BUG界嘎嘎乱杀

Python 编程 后端 装饰器 开发语言

豆瓣评分8.6!Python社区出版的Python故事教程,太强了!

我再BUG界嘎嘎乱杀

Python 编程 后端 开发语言

京东商品详情API在电商行业的竞争力分析

技术冰糖葫芦

API Explorer API boy API 接口 API 测试

24 个Spring bean 全部注解:真实业务使用案例说明(必须收藏)

肖哥弹架构

spring Spring Boot Spring MVC

Java多线程中原子性、可见性、有序性以及竟态条件案例

Geek漫游指南

Java 并发编程 多线程 线程安全

成为一名卓越的程序员

陈新卫

深入Redis之数据类型底层

Redis 数据结构 redis 底层原理

2024火山引擎AI创新巡展下一城,8月21日上海见!

新消费日报

提升商品搜索效率的关键:API返回值的快速解析

技术冰糖葫芦

API Explorer API boy API 接口 API 测试

淘宝商品评论数据接口的使用方法与示例

tbapi

淘宝商品评论接口 淘宝评论内容接口 淘宝API 淘宝商品评价接口

多引擎数据库管理工具:JetBrains DataGrip 2023(Win&Mac) 激活版

你的猪会飞吗

DataGrip2023激活 DataGrip2023安装

2024-08-17:用go语言,给定一个从0开始的整数数组nums和一个整数k, 每次操作可以删除数组中的最小元素。 你的目标是通过这些操作,使得数组中的所有元素都大于或等于k。 请计算出实现这个目

福大大架构师每日一题

福大大架构师每日一题

操作系统笔记 day2

万里无云万里天

操作系统

《计算机科学导论(原书第3版)》PDF

程序员李木子

WebRTC vs. Zoom 之外:WebRTC 的弱网模拟测试(二)_服务革新_声网_InfoQ精选文章