ATC模拟移动网络环境搭建及使用汇编Word格式文档下载.docx
《ATC模拟移动网络环境搭建及使用汇编Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《ATC模拟移动网络环境搭建及使用汇编Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。
误码率:
时延:
100
乱序:
重复帧:
带宽:
下行带宽:
3Mbps
场景2
1%
250
2Mbps
场景3
2%以内
1Mbps
场景4
0---5%
500Kbps
场景5
300Kbps
场景6
5%
200Kbps
模拟4G场景:
30
50Mbps
上行带宽:
20Mbps
50
30Mbps
10Mbps
15Mbps
5Mbps
150
200
注:
上图中的误码率、重复帧,ATC中不配置
2.ATC网络模拟
2.1.ATC简介
ATC(AugmentedTrafficControl)是Facebook开源的增强网络流量控制工具ATC,能利用WiFi网络模拟各种移动网络,测试APP在不同移动网络环境下的性能表现。
ATC能够模拟2G、2.5G(Edge)、3G和LTE4G网络环境,测试人员可以快速在各种不同模拟网络环境中切换
ATC是一个模拟2G/3G/4G移动网络环境的工具。
其创建一个WIFI热点能控制接入手机设备连接到互联网。
开发人员、测试人员可以使用ATC来测试应用程序在不同网络条件下的接入及服务状况,ATC很容易模仿高速、移动,甚至严重的网络(比如带宽很差,延迟很大,丢包率高的情况)。
通过如下指标进行控制模拟移动网络:
∙Bandwidth带宽
∙Latency时延
∙packetloss丢包率
∙corruptedpackets错包率
∙packetsordering乱序率
网络损伤仪也主要通过上述指标模拟不同移动网络,但网络损伤仪配置麻烦
相对于“网络损伤仪”ATC有如下优点:
1、在测试手机上通过Web界面就可以随时切换不同的模拟出的移动网络环境(WIFI上模拟2G/3G/4G)
2、多个手机可以连接到同一个模拟WIFI下,相互之间模拟的网络环境互不影响
3、免费、开源
ATC网络拓扑图
2.2.ATC环境搭建
本次搭建使用Fedroa2064位系统,推荐使用桌面版,使用桌面版可以快速WiFi热点功能(ATC通过WIFI无线热点模拟不同的移动网络),系统可以安装到物理机也可在VM虚拟机上
1:
安装Python,版本必须2.7以上,推荐2.7.5
2:
打开Linux系统转发功能
查看是否打开
cat/proc/sys/net/ipv4/ip_forward
若值为0表示未打开转发,若为1则表示已打开转发
通过sysctl–wnet.ipv4.ip_forward=1
或echo1>
/proc/sys/net/ipv4/ip_forward
打卡转发模式
3:
配置YUM,推荐使用yum安装后面程序,否则非常麻烦
4:
安装Python相关组件
yuminstallpython-pip
yuminstallpython-devel
5:
PIP安装ATC所有组件
pipinstallatc_thrift
pipinstallatcd
pipinstalldjango-atc-api
pipinstalldjango-atc-demo-ui
pipinstalldjango-atc-profile-storage
ATC后台采用PythonDjango部署,部署Django的web工程,提供手机访问并用来配置和切换网络用。
6:
使用django-admin生成一个新的django工程
cd/root
mkdirmyatc
cdmyatc
django-adminstartprojectatcui
cdatcui
7:
修改Django相关配置文件,修改atcui/settings.py,加入ATC相关django程序内容
添加入下:
INSTALLED_APPS=(
...
#DjangoATCAPI
'
rest_framework'
atc_api'
#DjangoATCDemoUI
bootstrap_themes'
django_static_jquery'
atc_demo_ui'
#DjangoATCProfileStorage
atc_profile_storage'
)
最终内容如下:
8:
修改django工程webURL对应的地址urls.py文件
fromdjango.views.generic.baseimportRedirectView
urlpatterns=patterns('
'
#DjangoATCAPI
url(r'
^api/v1/'
include('
atc_api.urls'
)),
#DjangoATCDemoUI
^atc_demo_ui/'
atc_demo_ui.urls'
#DjangoATCprofilestorage
url(r'
^api/v1/profiles/'
include('
atc_profile_storage.urls'
^$'
RedirectView.as_view(url='
/atc_demo_ui/'
permanent=False)),
注意此处要添加,fromdjango.conf.urlsimportinclude
否则会报错include错误
最终如下
9:
更新djangoweb工程的数据库,进入manager.py所在目录
cd/root/myatc/atcui
pythonmanage.pymigrate
注意:
若此处运行中报错,如找不到queue模块
则下载Pythonsix模块six-1.10.0.tar.gz
解压后Pythonsetup.pyinstall即可
启动WIFI热点
用于架设WiFi热点的无线网卡质量一定要好,若无线网卡本身不稳定,则严重影响ATC模拟的移动网络的质量
Fedroa20桌面系统,直接进入桌面,进入网络,选择无线网卡,直接开启无线热点即可
如下图,点击开启即可,SSID以及密码开启后的页面均会显示
开启成功后显示无线SSID及密码如下:
手机端可以连接SSID为localhost.localdomain的WiFi密码见上图
Linux机中使用ifconfig可查看到诸如以下的内容
wlp0s20u4即为无线网卡名
10:
启动ATCD
设置主机物理网卡为wan口及无线网卡为lan口
atcd--atcd-lanwlp0s20u4-–atcd-waneth0
11:
启动django工程:
pythonmanage.pyrunserver0.0.0.0:
9999
端口自选,注意放开防火墙,直接iptables–F
12:
手机接入9步中的WiFi热点,访问http:
//10.42.0.1:
9999即可进入ATC设置模拟网络的web界面
2.3.ATC使用配置
在手机的WEB界面里,你可以分别对网络上行下行进行设置,主要设置的参数有:
1.网络带宽(bandwidth)
2.延迟(latencyDelay)
3.丢包率(packetloss)
4.错包率(corruptedpackets)
5.乱序率(packetsordering)
通过设置上面的参数,可以模拟出各种常用的网络环境,比如:
2G,3G,4G,WiFi等等,同时也可以模拟一些异常情况,比如信号很差,延迟很大,丢包率高的情况
接入已配置ATC的无线WiFi热点,进入http:
显示如下页面,下图中的Authorize认证不用关心
WEB页面下拉
在NewProfile中创建要模拟的网络规则
创建规则名字随便填写如2G,下面以模拟2G网络示例
注意模拟3G、4G网络参考1.1说明章节中的参数配置
ShapingSettings中填写具体的参数(Uplink上行及Downlink下行均需配置)
如下图配置Uplink的配置
BandwidthRate网络带宽单位Kbps
LatencyDelay网络包延时单位ms
LossPercentage网络丢包率单位百分比d%
Corruptionpercentage网络错报率d%
Reorderpercentage网络乱序率d%
上图中的correlation均可默认为0
规则填写完成后直接点击create按钮
完成后此时页面标题下方会出现UpdateShaping按钮即可
注意点击“UpdateShaping”后,按钮消失,则表示新规则建立成功并生效,若按钮未消失则表示新规则未保存成功,重试几次
按照步骤1中的方式,填写更多的模拟网络规则如2G、3G、3.5G、4G、4G高速(4GHS)、4G低速度(4GLowS)如下图
手机端模拟网络切换
上图中,直接点击Select按钮,选择想要模拟的网络,此时上滑WEB页面,其上方出现“UpdateShaping”按钮,点击此按钮更新即可,若按钮消失则表示新规则切换成功,否则失败。