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