■山東 孟慶杰 何鈺
HTTP 是屬于應(yīng)用層面向?qū)ο蟮膮f(xié)議,由于其簡捷、快速的方式,適用于分布式超媒體信息系統(tǒng)。HTTP 協(xié)議的特點之一就是簡單快速,那么客戶向服務(wù)器請求服務(wù)時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD 以及POST。
GET 主要指請求獲取Request-URI 所標(biāo)識的資源。本文就結(jié)合一個手機(jī)APP 的使用中遇到的圖片打不開的情況,利用抓包軟件并結(jié)合GET 方法分析出該APP 的圖片服務(wù)器,然后通過路由指向?qū)⒎?wù)器地址進(jìn)行優(yōu)化,從而達(dá)到了解決問題的目的。
近日,有互聯(lián)網(wǎng)用戶報修某手機(jī)APP 軟件在使用過程中出現(xiàn)圖片打不開的情況。
根據(jù)這一信息,我們首先了解到手機(jī)APP 的軟件名稱,然后在手機(jī)上進(jìn)行了測試,果然出現(xiàn)部分圖片加載慢,甚至加載不上的情況。
基于這種情況,我們首先對接入網(wǎng)絡(luò)進(jìn)行了排查并沒有發(fā)現(xiàn)異常,這樣就排除了接入網(wǎng)絡(luò)的問題。
在完成接入網(wǎng)的排除后,我們嘗試使用本地互寬帶出口對該APP 的圖片進(jìn)行查看,經(jīng)過反復(fù)測試均沒有發(fā)現(xiàn)問題,但是使用用戶寬帶網(wǎng)絡(luò)(區(qū)別于本地寬帶出口)就會出現(xiàn)圖片加載異常的情況,由此可以分析出是出口資源的不同導(dǎo)致了手機(jī)APP 的體驗差異。
既然找到了故障原因就需要立刻解決,對于該類故障,通常需要使用抓包軟件準(zhǔn)確定位該軟件的圖片服務(wù)器IP。
為了準(zhǔn)確定位圖片服務(wù)器IP 地址,我們需要搭建抓包環(huán)境,即使用筆記本有線網(wǎng)卡連接用戶寬帶網(wǎng)絡(luò),使用筆記本共享熱點,模擬用戶家中寬帶路由器,最后使用手機(jī)操作APP 軟件,通過在筆記本電腦上安裝抓包軟件進(jìn)行同步抓包。
按照這個思路將手機(jī)連接到筆記本的WiFi 熱點上,在筆記本上開啟抓包軟件。在抓包軟件開啟選擇網(wǎng)卡時一定要選中“無線網(wǎng)絡(luò)連接2”即共享熱點虛擬出來的網(wǎng)卡,通過對該網(wǎng)卡的抓包,可以浮現(xiàn)手機(jī)操作APP 軟件時的網(wǎng)絡(luò)全過程。
開啟抓包軟件后,因為報文很多,不容易查找到對自己有用的信息,這樣的話需要使用規(guī)則進(jìn)行篩選。剛才我們談到過圖片打不開,說明用戶到圖片服務(wù)器通信有問題,這時候就要找到圖片服務(wù)器的IP 地址。
由于是打不開圖片,可以確認(rèn)是下載的過程出現(xiàn)問題,而下載的方法就是GET。即在抓包軟件的上使用“http.request.method=="GET"”命令可以進(jìn)行過濾,過濾后的抓包情況如圖1所示。
根據(jù)圖1 中的抓取的報文,首先要做的是查詢一下該APP 軟件,可以找到這個網(wǎng)站的域名,然后將該域名和報文進(jìn)行比對,則帶有該域名的報文的就是和它有關(guān)的。
然后再尋找報文中有image 開頭的域名,域名這一行對應(yīng)的IP 地址即圖片服務(wù)器即120.192.**.168。通過抓包軟件的結(jié)果得知該圖片服務(wù)器的IP 地址,那么接下來就需要將該IP 地址進(jìn)行路由優(yōu)化,
具體的操作是在兩臺核心路由器上將該IP 地址指向流控設(shè)備,具體的配置命令是:
圖1 過濾規(guī)則后的抓包情況示意圖
圖2 跟蹤120.192.**.168 的路由
將該IP 地址指向流控設(shè)備后,接下來需要在流控上使用策略路由指向本地出口即可,具體是使用基于目的地址訪問120.192.**.168的數(shù)據(jù)報文指向本地出口,完成路由指向后可以使用trace 命令對路徑進(jìn)行下跟蹤即:
通過最多30 個躍點跟蹤到120.192.**.168 的路由,如圖2 所示。
根 據(jù)trace 的 結(jié)果,可以清晰地看到訪問120.192.**.168 的路由準(zhǔn)確使用的本地出口,然后我們再一次使用手機(jī)體驗圖片加載情況,經(jīng)過反復(fù)測試,一切正常。
根據(jù)以上故障排查過程,我們從得知故障現(xiàn)象開始入手,即某手機(jī)APP 軟件圖片加載失敗,該故障不同于網(wǎng)頁打不開,因為網(wǎng)頁打不開可以使用nslookup 對域名進(jìn)行解析,從而得到網(wǎng)站的IP 地址進(jìn)而進(jìn)行優(yōu)化。而軟件不方便使用該命令。
本文通過對接入層網(wǎng)絡(luò)的排查,使用不同的互聯(lián)網(wǎng)出口進(jìn)行比較,并使用抓包軟件對HTTP 協(xié)議的GET 請求過程進(jìn)行抓包,抓取到了故障軟件的圖片服務(wù)器IP地址,然后通過路由優(yōu)化的方式實現(xiàn)了故障的排除。
通過此次故障的排查我們學(xué)習(xí)到,作為網(wǎng)絡(luò)運(yùn)維人員,熟練使用抓包軟件對故障的處理至關(guān)重要,這就要求我們要熟悉網(wǎng)絡(luò)協(xié)議的使用,多學(xué)習(xí)多積累進(jìn)而才能維護(hù)好網(wǎng)絡(luò)。