Deepin: 网络模拟工具 ATC部署及使用

废话引用:

        Facebook此前开源了增强网络流量控制工具ATC,能利用WiFi网络模拟各种移动网络,测试智能手机和APP在不同国家地区和应用环境下的性能表现。ATC能够模拟2G、2.5G(Edge)、3G和LTE4G网络环境,测试工程师可以快速在各种不同模拟网络环境中切换。

        ATC能够模拟真实网络环境中的用户体验,Facebook开发ATC的目的是确保更多的人,尤其是发展中国家的用户也能够获得最好的APP体验。

        此前曾有媒体报道扎克伯格要求Facebook员工使用低端智能手机,感受低收入和偏远地区用户的实际用户的产品体验。

        为了获得真实的网络测试环境,Facebook一开始试图在公司园区部署2G网络,但是由于可运行开源软件的2G基站难以采购而作罢。最后,Facebook转而选择通过WiFi网络流量控制来模拟巴西、印度、尼日利亚和菲律宾等地的2G低速蜂窝网络的数据通讯。

正文:

ATC有两个最吸引人的特点:

1、在手机上通过Web界面就可以随时切换不同的网络环境。

2、多个手机可以连接到同一个WIFI下,相互之间模拟的网络环境各不影响。

可以想象一下这个场景:有一个叫ATC WiFi的热点,任何人都可以将手机连接上去,通过Web界面随意切换到各种不同的网络环境下进行调试和测试……

网上的方法:

        ATC只能运行在Linux上,所以搭建部署稍显麻烦一些。此前网上有一些部署方式介绍了在虚拟机里如何搭建ATC环境。大致有以下几个步骤:

        1、VMWare装Ubuntu系统。

        2、除非你的机器有无线网卡,不然找一个USB无线网卡,用来设置WIFI热点。

        3、部署ATC

Ubuntu中设置WiFi热点功能,在系统自带的工具里可以直接开启。但是,由于是Ad-hoc模式,Android手机根本搜不到信号。所以必须设置AP模式才能让Android手机搜到。参考:http://my.oschina.net/eechen/blog/227230,照着设置一般就OK了。

我的方法:

        但是以上方法我尝试过,在两个电脑上均未能成功,所以我没有采用虚拟机的方法。我采用的是装双系统的方法,大致有以下几个步骤:

        1、window7基础上装双系统 deepin-linux。

        2、deepin能够很好的识别网卡,需要无线网卡支持AP模式,然后安装kde-nm-connection-editor,设置无线wifi热点。

        3、部署ATC。

安装deepin-linux 双系统:

  系统下载:http://www.deepin.org/download.html

  制作U盘启动盘:Deepin Boot Make        链接:http://pan.baidu.com/s/1pJVTvOR 密码:a93q

  其他安装步骤参照:http://jingyan.baidu.com/article/359911f557e77a57fe030613.html

  注意:linux安装需要4个盘: /   /home  /boot  swap

查看网卡是否支持AP模式:

1 sudo apt-get install iw

2 sudo iw list

安装kde-nm-connection-editor,设置无线wifi热点:

  安装:

1  sudo apt-get install plasma-nm

  配置-终端输入:

1  sudo kde5-nm-connection-editor

  点击 add, 选择 Wireless (shared)。

  ssid 就是无线名字,比如我的是 tiankonguse。

  mode 选择 Access Point。

  可以去 Wireless Security 设置一个密码, WPA & WPA2 Personal 那一项。(密码必须大于8位)

  然后点击 ok 保存,在网络列表处选择新建的网络,然后点击连接,连接成功后就可以用手机搜索到WiFi进行连接。

部署ATC:

先看看官方文档https://github.com/facebook/augmented-traffic-control步骤都写得比较清楚。

  1、安装python 、pip

1 sudo apt-get install python-pip python-dev build-essential

2 sudo pip install --upgrade pip

  2、通过pip安装ATC需要的django组件

1  pip install atc_thrift atcd django-atc-api django-atc-demo-ui django-atc-profile-storage

  3、创建一个django工程以便使用ATC服务端app

1  django-admin startproject atcui

2  cd atcui

  4、进入atcui目录,注意这里有两层目录,编辑settings.py,在INSTALLED_APPS里添加以下内容

1  'django_static_jquery',

2  'bootstrap_themes',

3  'atc_api',

4  'atc_demo_ui',

5  'atc_profile_storage',

6  'rest_framework',

  5、编辑urls.py,加入以下内容

from django.views.generic import RedirectView

admin.autodiscover()

urlpatterns = patterns(

    '',

    url(r'^admin/', include(admin.site.urls)),

    url(r'^api/v1/', include('atc_api.urls')),

    url(r'^api/v1/profiles/', include('atc_profile_storage.urls')),

    url(r'^$', RedirectView.as_view(url='/atc_demo_ui/', permanent=False)),

    url(r'^atc_demo_ui/', include('atc_demo_ui.urls')),

)

urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

其中以上4\5两个步骤可以用ATC下载源码包中的/augmented-traffic-control-master/docker/atcui_tpl/ 里面的 settings.py、urls.py,直接覆盖 atcui目录中的文件就行。

  6、更新数据库

1  python manage.py migrate

  7、启动ATC服务

1  sudo atcd --atcd-lan wlan0 --atcd-wan eth0

  8、启动Django工程

1  sudo python manage.py runserver 0.0.0.0:8080

        9、手机连上ATC的wifi,访问http://192.168.0.1:8080IP地址以实际WiFi地址为准

  就可以在手机上访问到ATC网络模拟页面了,除了Android亲儿子手机访问正常,其他手机浏览器访问UI有点不正常。能用就行了。

网上的说法是:这可能是由于其他rom没有谷歌服务框架导致的,尝试在其他手机装chrome却无法启动。

  但是这样的页面是没有配置的,为了增加配置,我们还要继续下面的操作。

        10、添加facebook工程中为我们配置的常见网络的配置

1  git clone https://github.com/facebook/augmented-traffic-control.git

  下载完代码后,进入工程文件,执行以下指令:

1  utils/restore-profiles.sh localhost:8080

  然后在手机上刷新页面,就有对应的一些常用网络模拟选项了。

  切换配置的方法: 只需点击配置旁边的“Select”按钮,在点击上方的“Update Shaping”按钮即可

  在手机的界面里,你可以分别对网络上行下行进行设置,主要设置的参数有:

  网络带宽(bandwidth)

  延迟(latency)

  丢包率(packet loss)

  错包率(corrupted packets)

  乱序率(packets ordering)

  通过设置上面的参数,可以模拟出各种常用的网络环境,比如:2G,3G,4G,WiFi等等,同时也可以模拟一些异常情况,比如信号很差,延迟很大,丢包率高的情况。

  实际网络使用情况可以在手机上使用网络检测工具speedtest查看。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,332评论 5 475
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,930评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,204评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,348评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,356评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,447评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,862评论 3 394
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,516评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,710评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,518评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,582评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,295评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,848评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,881评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,121评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,737评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,280评论 2 341

推荐阅读更多精彩内容

  • 一、前言 作为移动开发者的我们,为了良好的用户体验,经常需要模拟手机应用在比较差的网络环境下的表现,模拟网络环境的...
    oudushu阅读 3,977评论 0 12
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    小迈克阅读 2,954评论 1 3
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,436评论 6 428
  • 会拒绝才会选择,会挑剔才会培养 我喜欢男性有担当的模样,他可以承担起家人所以的经济支出,他可以为家人的一件件事做规...
    陈小毛阅读 188评论 0 0
  • 不要以吃苦为荣。 你觉得苦,一定是对现状的不满意、不喜欢,或物质,或精神,或境遇。 特别是年轻人,初出茅庐,赤手空...
    蓝田玉阅读 508评论 1 2