[ATC]Facebook開源弱網模擬工具

大搜車-自娛發表於2016-03-26

需要注意如下:1.筆者使用了linux USB網路卡,是讓手機去連結制定開啟服務的LinuxServer,2.在啟動服務的時候需要制定內網網路卡名和外網網路卡名,這樣手機選擇內網網路卡的時候速度被被限制影響,外網網路卡還可以繼續訪問否則會提示ATC is not running。 3.筆者在自己的H5伺服器上成功的搭建了ATC這套系統,中間解決了include問題,queue找不到的問題,頁面樣式丟失等問題。

 

在我們之前的網路測試中,主要是限制網速來模擬弱網路環境,而實際中弱網路時,網路延時,丟包率都會有變化,所以使用網速+丟包率+延時來定義一種網路環境更加合理

本篇文章介紹ATC工具環境的搭建和使用,搭建方法來自Facebook官方github中的說明,https://github.com/facebook/augmented-traffic-control,這裡做一些翻譯和補充

 

1、要使用ATC,首先需要在linux下建立熱點,方法可以參照《在Virtualbox的Ubuntu上建立無線(WiFi)熱點》。

2、安裝pip,終端輸入sudo apt-get install python-pip

3、通過pip安裝ATC需要的django元件

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

4、建立一個django工程以便使用ATC服務端app

 

django-admin startproject atcui
cd atcui
5、進入atcui目錄,注意這裡有兩層目錄哦,編輯settings.py

 

在INSTALLED_APPS裡新增如下內容,

 

 # Django ATC API
    'rest_framework',
    'atc_api',
    # Django ATC Demo UI
    'bootstrap_themes',
    'django_static_jquery',
    'atc_demo_ui',
    # Django ATC Profile Storage
    'atc_profile_storage',
我的最終填完是這樣的,

 

6、編輯urls.py,匯入

from django.views.generic.base import RedirectView
在urlpatterns 新增如下內容

 

 

 # Django ATC API
    url(r'^api/v1/', include('atc_api.urls')),
    # Django ATC Demo UI
    url(r'^atc_demo_ui/', include('atc_demo_ui.urls')),
    # Django ATC profile storage
    url(r'^api/v1/profiles/', include('atc_profile_storage.urls')),
    url(r'^$', RedirectView.as_view(url='/atc_demo_ui/', permanent=False)),
我這最終是這樣,與官網格式有點不同,這裡是個陣列

 

7、 跟新django資料庫,

 

python manage.py migrate
8、配置完成然後可以執行了,這裡使用網路卡eth0作為公網連線,wlan0作為內網連線,啟動時通過引數指定

 

 

sudo atcd --atcd-wan eth0 --atcd-lan wlan0
9、執行ATC UI 

 

 

python manage.py runserver 0.0.0.0:8000
10、這時通過手機瀏覽器訪問192.168.0.1:8000(熱點的閘道器設定的是192.168.0.1的話)就能看到控制頁面了,

 

 Note:我用了4臺手機去開啟,結果只有谷歌的兒子們可以正常開啟,這可能是由於其他rom沒有谷歌服務框架導致的,我嘗試在其他手機裝chrome卻無法啟動

11、facebook已經在自己的工程中為我們配置了常見網路的配置,可以通過如下方式新增

    

git clone https://github.com/facebook/augmented-traffic-control.git
下載程式碼完成後執行
utils/restore-profiles.sh localhost:8000
再重新整理手機瀏覽器頁面,就能看到預製的網路配置了
如果要切換配置,只需點選配置旁邊的“Select”按鈕,在點選上方的“Update Shaping”按鈕即可
實測了一下,網速確實有變化,但是丟包率和延時這兩個引數通過外圍不好觀察是不是生效

相關文章