日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

網(wǎng)絡(luò)基本功(二十三):Wireshark抓包實(shí)例診斷TCP連接問題

 icecity1306 2015-01-30

轉(zhuǎn)載請(qǐng)?jiān)谖氖妆A粼某鎏帲?/span>EMC中文支持論壇https://community./go/chinese 

 

介紹

 

前文論述了TCP基礎(chǔ)知識(shí),從本節(jié)開始,通過TCP抓包實(shí)例來診斷TCP常見問題。

TCP進(jìn)程通訊時(shí),雙方打開連接,發(fā)送數(shù)據(jù),最后關(guān)閉連接。當(dāng)TCP打開連接時(shí),從源端口到目的端口發(fā)送一個(gè)請(qǐng)求。在應(yīng)用建立或關(guān)閉時(shí)可能發(fā)生一些問題。本文討論用Wireshark網(wǎng)絡(luò)抓包的方法來定位及解決這一問題。


更多信息

 

問題的表現(xiàn)形式:

 

問題可能有多種表現(xiàn)類型:

·         嘗試運(yùn)行應(yīng)用程序但發(fā)現(xiàn)應(yīng)用程序無法工作。嘗試瀏覽網(wǎng)絡(luò)但無法獲得響應(yīng)。

·         嘗試發(fā)送郵件但無法連接到郵件服務(wù)器。

·         問題可能由簡(jiǎn)單原因引起,如服務(wù)器宕機(jī),服務(wù)器上沒有運(yùn)行應(yīng)用程序,或在客戶端到服務(wù)器的某一處網(wǎng)絡(luò)斷開。

·         問題也可能由復(fù)雜原因引起,如DNS問題,服務(wù)器內(nèi)存不足無法連接(例如某一應(yīng)用占用高內(nèi)存空間),重復(fù)IP,以及其他原因。


處理方法:


下文會(huì)介紹解決問題的線索以及如何通過抓包來診斷TCP連接問題。通常,這些問題會(huì)導(dǎo)致運(yùn)行應(yīng)用程序時(shí)無法得到任何結(jié)果。


當(dāng)你在運(yùn)行一個(gè)應(yīng)用程序時(shí),例如數(shù)據(jù)庫客戶端,郵件客戶端,觀看視頻等等,而又無法獲得輸出,按照以下步驟診斷:

  1.    確認(rèn)服務(wù)器和應(yīng)用程序正在運(yùn)行。
  2.    確認(rèn)客戶端正在運(yùn)行,IP地址已配置(手動(dòng)或通過DHCP),并連接至網(wǎng)絡(luò)。
  3.   Ping服務(wù)器并確認(rèn)連接正常。
  4.   在某些情況下,ping不通服務(wù)器但連接正常。這是由于防火墻攔截了ICMP信息,所以如果無法ping通并不一定表示連接有問題。防火墻可能是網(wǎng)絡(luò)中的專用設(shè)備或Windows/Linux/UNIX終端設(shè)備上安裝的防火墻。


5.     抓包文件中,查找以下模式:

·         三重SYN信息而沒有響應(yīng)(見以下截屏)

·         SYN信息帶一個(gè)reset(RST)響應(yīng)

這兩種情況下都有可能是防火墻攔截了特定應(yīng)用程序或應(yīng)用程序沒有在運(yùn)行。

 

以下截屏是一個(gè)簡(jiǎn)單的case:客戶端無法連接到web服務(wù)器81.218.31.171(報(bào)文61,6263)??赡苁怯捎诓槐环阑饓υ试S,或服務(wù)器發(fā)生故障??梢钥吹搅硪粋€(gè)站點(diǎn)108.160.163.43(報(bào)文65,6667)的連接正常,因此連接問題僅限于81.218.31.171。

 
 

 

下例是一個(gè)這種情況相對(duì)復(fù)雜的case。該case中,客戶想要登錄到camera服務(wù)器來訪問遠(yuǎn)程站點(diǎn)的cameracamera服務(wù)器的IP地址為135.82.12.1,問題在于客戶能夠看到服務(wù)器主頁上的登錄窗口,但無法登進(jìn)系統(tǒng)。在下面的截圖中可以看到,打開了一個(gè)到IP地址135.82.12.1的連接。到HTTP服務(wù)器的TCP連接是打開的,一開始看上去沒有連接問題:

 
 

 

當(dāng)我們過濾出目的IP地址為135.82.12.1的數(shù)據(jù)流,也就是camera服務(wù)器。這里可以看到,當(dāng)嘗試連接TCP端口6036時(shí),得到了一個(gè)RST/ACK響應(yīng),有以下可能性:

·         防火墻攔截了端口6036

·         如果配置了端口地址轉(zhuǎn)換(PAT),那么僅轉(zhuǎn)換端口80而非6036

·         用戶名和密碼驗(yàn)證是在TCP端口6036上完成的,防火墻僅允許端口80,驗(yàn)證被攔截,應(yīng)用無法工作

 
 


總之,當(dāng)無法正常連接服務(wù)器時(shí),檢查服務(wù)器和客戶端是否所有TCP/UDP端口都能通過網(wǎng)絡(luò)轉(zhuǎn)發(fā),以及是否有未知的端口。

 

 

工作過程:

 

TCP連接開始時(shí),發(fā)生了以下三步: 

 
 

1.     客戶端TCP進(jìn)程發(fā)送了一個(gè)SYN報(bào)文。該報(bào)文中SYN標(biāo)志位設(shè)置為1。這一報(bào)文中客戶端:

·         指定自己的初始序列號(hào)。這是客戶端發(fā)送給服務(wù)器的第一個(gè)字節(jié)。

·         指明自己的窗口大小。這是客戶端分配給進(jìn)程的緩存大?。ㄎ挥诳蛻舳说?/span>RAM)。

·         設(shè)置自己將要使用的選項(xiàng):MSS,Selective ACK,等等。

 

2.     當(dāng)服務(wù)器收到建立連接請(qǐng)求,服務(wù)器:

·         發(fā)送SYN/ACK給客戶端,確認(rèn)接收到SYN請(qǐng)求。

·         指明服務(wù)器端的初始序列號(hào)。這是服務(wù)器發(fā)送給客戶端的第一個(gè)字節(jié)。

·         指明服務(wù)器的窗口大小。這是服務(wù)器分配給進(jìn)程的緩存大小(位于服務(wù)器RAM)。

·         回復(fù)請(qǐng)求選項(xiàng)并設(shè)置服務(wù)器端選項(xiàng)。

 

3.     當(dāng)接收到服務(wù)器的SYN/ACK,客戶端:

·         發(fā)送ACK報(bào)文給服務(wù)器,確認(rèn)從服務(wù)器接收到SYN/ACK.

·         指明客戶端窗口大小。盡管這一參數(shù)在第一個(gè)報(bào)文中定義過了,服務(wù)器還是會(huì)參考這個(gè)值,因?yàn)檫@是最新的窗口大小。

      

       TCP頭部的選項(xiàng)字段中,有以下幾個(gè)主要選項(xiàng)

 

·         Maximum Segment SizeMSS):TCP數(shù)據(jù)報(bào)的最大字節(jié)數(shù),即從TCP頭部開始直到報(bào)文末尾的字節(jié)數(shù)。

·         Windows Scale Option (WSopt):這一因子與TCP頭部的Window Size字段相乘,通知接收方擴(kuò)大緩存。由于頭部最大窗口大小是64KB,乘以因子4也就是256KB窗口大小。

·         SACKSelective ACK,該選項(xiàng)使連接雙方能夠僅確認(rèn)指定報(bào)文,當(dāng)單個(gè)報(bào)文丟失,只有這個(gè)報(bào)文會(huì)被重傳。連接建立時(shí),雙方都需要同意SACK。

·         Timestamps OptionTSopt):該參數(shù)指客戶端和服務(wù)器之間的延時(shí)。


       在這一階段,雙方

 

·         同意建立連接

·         知道對(duì)方的初始序列號(hào)

·         知道對(duì)方的窗口大小


       在建立連接時(shí),除了三路握手信號(hào)之外,其他都表示有問題。包括SYN沒有響應(yīng),SYN之后SYN/ACK最后沒有ACKSYN響應(yīng)為RST,等等。


 

 

總結(jié):

 

·         如果SYN報(bào)文收到回復(fù)RST,則檢查攔截了port號(hào)的防火墻。

·         三次SYN而沒有任何回復(fù),或者是由于應(yīng)用程序沒有響應(yīng),或者是由于防火墻攔截了特定端口上的請(qǐng)求。

·         永遠(yuǎn)記住確認(rèn)一下是否有NAT端口轉(zhuǎn)發(fā),以及涉及TCPUDP端口的機(jī)制。這些機(jī)制可能會(huì)中斷TCP正常操作。

 

 

 

 

參考

 

Network Analysis Using Wireshark Cookbook


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多