中興LTE抓包分析指導手冊
1、概述
對於LTE制式無線網路,下行速率的突破對終端的處理能力(比如:終端CPU處理能力對RTT時延的影響)、網路設備的傳輸質量(比如:流速均勻且不亂序、丟包)、Uu口的無線環境(在高編碼方式下,SINR值低於30均會出現不同程度的丟塊)提出了更高的要求。另外,在系統發展初期,難免會遇到某些網元存在軟體故障以及協同設置等問題。
由於目前正處於LTE發展初期,端到端、一體化的網優工具以及性能統計還不夠完善,在面對無線環境相對良好但是速率不及預期的問題處理時缺少及時有效的定位手段,在Uu口、eNB、核心網側同時抓包則能夠很好的解決這個問題,這也是本文介紹的重點。在準備工作到位的前提下,半天時間即可準確定位到底是哪個網元的問題,以縮小排查範圍,以及提供優化建議。
下文將從抓包前的準備工作、抓包方法、抓包數據分析方法幾個維度進行詳細介紹。
2、 抓包前的準備工作
2.1、Uu口抓包前的準備工作
2.1.1、使用測試電腦進行抓包
測試電腦選型要求
盡量選擇硬碟讀取能力、CPU處理能力較優的測試電腦。建議每次錄取的行數不超過80萬行(約800M的數據),否則可能會出現系統反應遲鈍甚至無法停止抓包導致無法保存的情況,視測試電腦的處理能力而定。然後在測試電腦上安裝下述應用程序:
Wireshark
抓包及抓包數據分析工具。
測試終端驅動(MIFI等)
確保在測試電腦網路連接成功的情況下可以在Wireshark查看到網路連接設備的網卡。檢查方法如下:
點擊Wireshark菜單-Capture-Interfaces,則會彈出下述對話框,檢查確保有測試終端驅動的Interface,且在瀏覽網頁的情況下有Packets:
圖2?1 CaptureInterfaces
2.1.2、使用安卓系統手機進行抓包
注意:
安卓系統開發商以及終端廠商禁止用戶ROOT手機,ROOT後的手機將不會享受三包服務。
測試終端要求
安卓操作系統,且盡量選擇CPU處理能力較強的終端,需要使用3類還是4類終端視現場需求而定。然後在測試終端上安裝下述應用程序:
Shark.apk
備註:安裝Shark.apk後如果無法正常啟動,則是由於終端沒有ROOT導致。正常啟動後的界面如下:
圖2?2Shark.apk啟動界面
2.2、eNB抓包前的準備工作
請做好下述準備工作:
l確保可以進去機房;
l準備一根較長的網線;
l由於在eNB上抓取的報文是整個CC板的,所以,如果不只是該抓包測試用戶在該站點下進行業務,那麼抓包數據量會非常大,請盡量選擇硬碟讀取能力、CPU處理能力較優的測試電腦。建議每次錄取的行數不超過80萬行(約800M的數據),否則可能會出現系統反應遲鈍甚至無法停止抓包導致無法保存的情況,視測試電腦的處理能力而定。
2.3、核心網抓包前的準備工作
請做好下述準備工作:
l要求核心網至少需要在近S1介面進行抓包。當然,除了在近S1介面進行抓包外,也可以同時在其它介面進行抓包,以進一步縮小排查範圍;
l在進行抓包測試之前,最好為測試卡申請靜態IP,如果來不及申請,則需要現場首先在Uu口進行抓包,在不斷鏈的情況下進行多次串列測試,檢查核心網為終端分配的IP地址是否比較固定。如果比較固定,那麼也可以不為測試卡申請靜態IP地址,在每次聯合抓包之前,由Uu口的抓包首先進行,在確定好測試卡的IP地址後,通知核心網側根據該IP地址進行抓包。
3、抓包方法介紹
在進行Uu口、eNB、核心網聯合抓包時,抓包工作由Uu口統一協調:
lUu口在獲取了為測試卡分配的IP地址後,通知核心網側進行抓包過濾設置;
lUu口完成每一段的測試時,都要及時通知eNB側及核心網側保存抓包文件,且需要注意文件名的匹配。
下面將會區分Uu口、eNB、核心網側詳細介紹抓包方法。
3.1、Uu口抓包方法
3.1.1、使用測試電腦進行抓包
在進行測試任務之前,啟動Wireshark,點擊Wireshark菜單-Capture-Interfaces,則會彈出下述對話框。在該對話框中找到網路連接涉及的Interface,點擊Start按鍵則啟動抓包:
圖3?1Wireshark抓包啟動方法
在抓包完成後,點擊下圖紅色標註的按鍵,則停止抓包:
圖3?2Wireshark抓包關閉方法
點擊Wireshark菜單-File-Save As,則會彈出下述對話框。在該對話框中設置抓包文件名,點擊保存即可完成抓包文件的保存(請注意不要修改紅色標註的地方):
圖3?3Wireshark抓包文件保存方法
3.1.2、使用安卓系統手機進行抓包
注意:
請不要修改Parameters中的內容,確保設置為:-vv -s 0。
在進行測試任務之前,啟動shark.apk,且點擊Start按鍵,則將啟動記錄抓包數據。.pcap文件名為軟體自動生成,無法自定義設置:
圖3?4Shark.apk抓包啟動方法
在完成測試任務之後,點擊Stop按鍵,抓包文件將會自動保存入SD卡的根目錄下:
圖3?5 Shark.apk抓包關閉及保存方法
3.2、eNB抓包方法
在需要抓包的站點機房中找到該站點的CC板:
圖3?6 CC單板
將網線一端插入DEBUG/CAS/LMT口,一端插入測試電腦的網口,將測試電腦的IP設置為「192.254.1.*」,比如「192.254.1.12」,子網掩碼保持預設設置「255.255.255.0」即可。確保「ETH1」燈亮且為綠色。
依次點擊測試電腦的控制面板-程序和功能-打開或關閉Windows功能,勾選(Telnet伺服器/客戶端)。
點擊測試電腦的「運行」,鍵入「cmd」,回車,然後Telenet至192.254.1.16。隨後按照下文輸入(password均為zte)以打開CC板的鏡像:
(none) login: zte
Password:
Processing /etc/profile...Done
-bash-4.2# /ushell
-> Please input password!
***
-> Login success!!
ushell tool menu:
------------------------------------------------------------------------------
"ps" or "PS" list process run on the board
"pr xxx" or "PR xxx" take over xxx process printf info
"npr xxx" or "NPR xxx" not take over xxx process printf info
"db xxx" or "DB xxx" debug xxx process printf info
"ndb xxx" or "NDB xxx" not debug xxxprocess printf info
"pad xxx" or "PAD xxx" debug and take over xxx process printf info
"npad xxx" or "NPAD xxx"not debug and take over xxx process printf info
"pall" or "PALL" display current debug and take overinfo
"ncheck" or "NCHECK" Do not check another ushell exist
"check" or "CHECK" Do check another ushell exist
"Q" or "q" cancel all process debug and printf info
"exit" or "EXIT" cancel ushell
xxx is process id you want to debug or take overprintf info
------------------------------------------------------------------------------
$$ps
PID USER VSZ STAT COMMAND
1 root 1344 S init
2 root 0 SW [softirq-high/0]
3 root 0 SW [softirq-timer/0]
4 root 0 SW [softirq-net-tx/]
5 root 0 SW [softirq-net-rx/]
6 root 0 SW [softirq-block/0]
7 root 0 SW [softirq-tasklet]
8 root 0 SW [softirq-sched/0]
9 root 0 SW [softirq-hrtimer]
10 root 0 SW [softirq-rcu/0]
11 root 0 SW [watchdog/0]
12 root 0 DW [chkeventd/0]
13 root 0 SW
14 root 0 SW
15 root 0 SW
16 root 0 SW
17 root 0 SW
52 root 0 SW
57 root 0 SW
99 root 0 SW [pdflush]
100 root 0 SW
101 root 0 SW
636 root 0 SW [mtdblockd]
705 root 1352 S crond
708 root 1318m S /MGR.EXE
710 root 9156 S /tftp
712 root 312 S /ztam
717 root 1336 S telnetd
719 root 1344 S inetd
733 root 1348 S -/bin/./ash
734 root 8768 S /usr/sbin/sshd
745 root 0 SWN [jffs2_gcd_mtd0]
933 root 465m S /Product_lte_tdd.so 9598 V3.10.21.01P62 /AGT_LTE_TDD
967 root 346m S /Product_td.so 96 145TDS_V330502P04R56 /AGT_TD.EXE
1164 root 0 SW [pdflush]
3839 root 4996 S /bin/login
3840 root 2840 S -bash
3866 root 9220 R /ushell
3868 root 1336 R sh -c ps
3869 root 1340 R ps
$$pad 708
[708]
ushell enter print mod
ushell enter debug mod
$$MirrorToDebug 0,0
[708]
[ begin to excel fun:MirrorToDebug ]
value = 0(0x0)
[ end to excel fun:MirrorToDebug ]
在打開CC板的鏡像後,則可以使用類似「3.1.1使用測試電腦進行抓包」介紹的方法使用Wireshark在eNB上進行抓包。
在完成抓包後,請注意按照下述命令關閉CC板的鏡像:
$$BspClearESwitchMirror
[708]
[ begin to excelfun:BspClearESwitchMirror ]
value = 0(0x0)
[ end to excel fun:BspClearESwitchMirror ]
$$
3.3、核心網抓包方法
由於各個核心網設備廠家抓包方法的差異,在此不進行詳細介紹。無線側需要重點關注的是:核心網側在抓包時需要無線側配合的工作。具體如下:
lUu口在獲取了為測試卡分配的IP地址後,通知核心網側進行抓包過濾設置;
lUu口完成每一段的測試時,都要及時通知核心網側保存抓包文件,且需要注意文件名的匹配。
4、抓包數據分析方法介紹
4.1、單個業務(線程)的過濾方法
從抓包數據中篩選出單次業務(線程)是抓包數據分析的前提。一般涉及兩種情況:
情景一:對於eNB的抓包數據,是整個站點的,既包括了測試用戶的抓包數據,同時也包括了普通商用用戶的抓包數據,需要分離出來;
情景二:大部分的測試是多線程並行測試,比如Speedtest、FileZilla等,需要梳理每條線程的數據傳輸情況。
針對上述兩種情況,都可以使用下述方法過濾出來,以對每個業務(線程)進行分析。
注意:
因為個人習慣不同,會有多種過濾的方法。下文只介紹其中一種,這種方法雖然較為繁瑣,但是能夠幫助大家更加全面的了解Wireshark的功能子項。
點擊Wireshark菜單-Statistics-IO Graphs,以下圖為例,可以從紅色標註的地方了解到有效數據(下載業務階段)約為69000行:
圖4?1 IO Graphs
以下圖為例,選擇數據傳輸過程中的任意一行,單擊滑鼠右鍵,在彈出的菜單中點擊「Follow TCP Stream」,則可以篩選出該行所對應的業務(線程)。舉例說明如下:
圖4?2 FollowTCP Stream
點擊Wireshark菜單-File-Save As,則會彈出下述對話框。通過紅色標註的內容則可以了解該業務(線程)占整個抓包文件的情況。以下圖為例,該線程有33434行,整個抓包文件為89780行,也就是說,這次抓包測試不是單線程:
圖4?3 File SaveAs
針對該線程的抓包數據,隨機找到一處不連續的「NO.」,以下圖為例,第153~196行之間存在不連續的情況。找到之後,點擊下圖中紅色標記的「Clear」,則會回到執行「Follow TCP Stream」前的狀態:
圖4?4「Follow TCP Stream」Clear
選擇第154~195行之前的任意一行,再次執行「Follow TCP Stream」,完成後再次點擊Wireshark菜單-File-Save As,這次捕捉的線程有35882行:
圖4?5 File SaveAs
結合之前所做的兩次「Follow TCPStream」,可以得出結論:這個業務是使用雙線程進行下載的。
4.2、丟包/亂序分析方法
在這裡介紹兩種方法,以幫助大家更好的了解Wireshark的功能子項:
4.2.1、IO Graphs
點擊Wireshark菜單-Statistics-IO Graphs,按照下述標註填寫好「Filter」後面的欄位,然後點擊「Graph*」,則會顯示數據包的下發與丟包/亂序的對比情況(由於LTE網路速率較高,建議將Tickinterval修改為0.1sec):
圖4?6藉助IO Graphs進行丟包/亂序分析
4.2.2、Apply as Filter
找到任一丟包或亂序的行,找到下述標註的位置,點擊滑鼠右鍵,在彈出的菜單中點擊「Apply as Filter-Selected」,則可以篩選出丟包/亂序行。舉例說明如下:
圖4?7藉助Apply as Filter進行丟包/亂序分析
4.3、無線側BLER與丟包聯合分析方法
在Uu口進行抓包的同時,為了核實丟包是否與無線丟塊有關,可以同時使用DT軟體抓取LOG以進行聯合分析。以下圖為例,此次丟包不是由於無線丟塊導致的:
圖4?9 DT軟體BLER分析舉例
圖4?10Wireshark丟包分析舉例
GIF
TAG:前景理論 |