工做中的經常使用用法
1、tcpdump經常使用用法:緩存
1,-i 指定網口 -vnn 經常使用選項,顯示詳細信息而且不解析IP,端口 ;
抓取某個網口上發往或來自某個IP的報文tcpdump -i ethX host 192.168.1.100 -vnn
服務器
2,能夠用or 或者and 鏈接多個過濾條件,port前的tcp表示tcp協議,也可爲udp;
抓取某個網口上發往或來自某個IP、而且指定端口的報文tcpdump -i ethX host 192.168.1.100 and tcp port 22(端口號) -vnn
網絡
3, -c 指定抓取報文的數量, 用 -w 把抓取的數據包寫入文件;
抓取某網口50個包並寫入dump.cap(爲何是 .cap?由於wireshark識別此擴展名)文件:tcpdump -i ethX -c 50 -w /root/dump.cap
tcp
4,能夠用關鍵字 src 或者 dst 表示 源 或者 目的;
抓取源端口號爲22(tcp協議)的報文tcpdump -i ethX tcp src port 22(端口號) -vnn
ide
以上爲經常使用用法,能夠根據實際狀況靈活組合。code
2、wireshark分析報文:it
1,淡紫色數據包爲正常數據包,包括數據包和ACK包io
2,黑色爲異常包,包括丟包ACK、重傳等ast
2.1 Packet Size limited during capture 這個標誌說明數據包並沒被徹底抓到,而只是抓到了一部分。這種狀況多數是因爲抓包方式引發,在某些系統中tcpdump只抓每一個幀的前96個字節。咱們能夠」-s」參數來指定想要的字節數。 2.2 TCP previous segment not captured TCP傳輸過程當中同一臺主機發出的數據應該是連續的,即後一個數據包的Sequence應該等一前一個數據包的sequence+len,若是後面捕捉到的數據包不符合這樣的規律,即sequence比前一個包的sequence+len大的話,咱們就能夠認定中間的數據包就沒有抓到,致使這個數據包沒有按時到達的緣由可能有亂序或者丟包致使。 2.3 TCP ACKed unseen segment 當WireShark發現被ACK的那個包沒被抓到,就會提示[TCP ACKed unseen segment],這種提示通常沒有什麼問題,就是WireShark漏抓了。 2.4 TCP Dup ACK 當出現亂序或者丟包等狀況的時候,原本應該收到的數據包沒有收到,反而收到了一些Sequence號比較大的數據包,這時候客戶端就會回覆一個ACK,ACK本應該收到卻沒有收到的包,若是後面來的還不是所指望的數據包,那麼客戶端每收到一個其餘數據包就會回覆一個ACK,因爲這些ACK是重複的,因此就會提示[TCP Dup ACK]。 2.5 TCP Out-of-Order TCP傳輸過程當中數據包的Sequence號應該是持續遞增的,也就是說每一個數據包之間應該只差一個Len的數據,可是在傳輸過程當中若是Sequence比較大的數據包比Sequence比較小的數據包先到達的話,就會觸發[TCP Previous Segment not cpatured],而後若是在後續收到了「遲到」的數據包,就會被標記[TCP Out-of-order]。 2.6 TCP Fast Retransmission 當服務器收到3個或以上的[TCP Dup ACK]後就會斷定所ACK的包丟失了,哪怕尚未超過定時器的規定,都會當即從新發送,客戶端收到後會標記爲[TCP fast retransmission]。 2.7 TCP Retransmission 通常來講一個數據包丟失後又沒有足夠的後續數據包來觸發[TCP Fast Retransmission]的話,超過定時器的時限後就會觸發超時重傳,這時候客戶端收到的數據包就會被標記[TCP Retransmission]。 2.8 TCP Zerowindow 在TCP數據包中,Info那一欄的中的」win=XX」中XX表明了接收窗口的大小,表明了這個信息的源地址的主機還有多少數據能夠接收,或者說緩存區還有多少空間。當win=0的時候就會給相應ACK打上[TCP Zerowindow]的標誌,告訴發送方我沒有數據能夠接收了。 2.9 TCP window full 當出現這個標誌的時候證實發送方已發送的但尚未確認的數據包已經達到了接收方接收窗口的上限,也就是說這個時候發送方就會中止發送數據,而不是等接收方回覆[TCP Zerowindow]後才中止發送。因此[TCP window full]針對的是發送方無法發送數據,而[TCP Zerowindow]指的是接收方無法接收數據,無論出現哪種狀況,都會中斷數據的傳輸,直到緩存區有新的空間存放數據。
3,數據包的標籤從左到右依次爲:
數據包編號---時間---源地址---目標地址---協議類型---長度---總長度---數據包序號---下一個數據包序號---ACK號---身份識別碼---RTT---一些窗口參數class
4,再點擊一個報文後,咱們在WireShark的下端能夠看到更爲詳細的信息:分別對應OSI七層模型的,數據鏈路層、網絡層、傳輸層、應用層