移动弱网模拟调研

2019-12-06  本文已影响0人  Null_ice

在构建移动端性能测试工具的过程中,预期增加弱网模拟的功能,以解决应用在各种网络环境下的模拟测试,下面是针对该需求的调研情况。

iptables构建弱网模拟规则

基本原理

iptables是linux下的一个控制网络出入口规则的工具,android也集成了iptables,因此,可以利用iptables构建自定义的网络出入规则,变相达到控制设备进行弱网环境模拟的目的。
基本的使用方式是,在adb shell内,执行iptables命令,例如模拟丢包50%,就执行类似:

iptables -I INPUT -s x.x.x.x(IP地址) -m statistic --mode random --probability 0.5 -j DROP 

类似这样的命令。

优点

底层执行,高效快速,开发门槛低。

缺点

需要root,需要启动adb server。

第三方代理工具弱网模拟

基本原理

第三方工具诸如fiddler、FaceBook ATC等,基本原理都是中间人代理,此类方式基本无需开发成本,只需要设定好client端和手机在统一网络下,然后按照工具说明设置即可。

优点

无需开发成本,操作简单。

缺点

需要一个端专门用于构建代理服务,且只能在wifi环境下模拟。

猥皮恩(和谐了)Service构建弱网模拟规则

基本原理

猥皮恩(和谐了)Service是android上用于构建自定义猥皮恩(和谐了)服务的api,启动该服务会创建一个类似于应用代理的服务,出入的包都会经过该服务的转发,因此,构建一个自定义的猥皮恩(和谐了)Service就可以实现对弱网环境的模拟。

优点

无需root

缺点

开发量大,在猥皮恩(和谐了)Service中,由于android的安全机制只能通过socket方式发送tcp/udp报文,因此所有通过tun收发的报文都需要解包和重新添加tcp/udp头,几乎等于重新实现一个tcp/udp栈。

猥皮恩(和谐了)Service的重要api存在兼容性问题,只能到android 5以上。

上一篇下一篇

猜你喜欢

热点阅读