Wireshark網絡分析工具(二)


一、TCP三次握手過稱

1. 第一次握手的數據包

客戶端發送一個TCP,標志位為SYN,序列號為0, 代表客戶端請求建立連接。 如下圖:

2. 第二次握手的數據包

服務器發回確認包, 標志位為 SYN,ACK. 將確認序號(Acknowledgement Number)設置為客戶的I S N加1以.即0+1=1, 如下圖:

3. 第三次握手的數據包

客戶端再次發送確認包(ACK) SYN標志位為0,ACK標志位為1.並且把服務器發來ACK的序號字段+1,放在確定字段中發送給對方.並且在數據段放寫ISN的+1,如圖:

二、TCP頭部中幾種常用的標記位

l  SYN:用來表示打開連接;

l  FIN:用來表示拆除連接;

l  ACK:用來確認(通過TCP連接)收到的數據;

l  RST:用來表示立刻拆除連接;

l  PSH:用來表示應將數據提交給末端應用程序(進程)處理。

三、Wireshark提示

- [packet size limited during capture] 標記這個包沒有抓全 
- [tcp previous segment not captured]網絡包沒有抓到:一種是真的丟包了,一種是抓包工具沒有抓到。看對方回復的確認ack就能判斷 
- [tcp asked unseen segment] 幾乎可以忽略,只抓到了后面的ack,沒有抓到前面的數據包 
- [tcp out-of-order]亂序 
- [tcp dup ack]發生亂序或丟包了 
- [tcp fast retransmission] 發送方收到3個或以上tcp dup ack,進入快速重傳 
- [tcp retransmission]發生丟包,又沒有后續包觸發dup ack 
- [tcp zerowindow] win= 表示發送方當前還有多少緩沖區可以接收數據 
- [tcp window full] 發送方已經把接收方的窗口耗盡了,不能再發送數據了 
- [tcp segment of a reassembled pdu] 這是啟用了 edit—>preferences—>protocols—>tcp 菜單里的allow sub dissector to reassemble tcp streams,在最后一個包把所有的包虛擬的集中起來,方便復制整個應用層的edu (copy—>bytes—>printable text only) 
- [continuation to #]則是上面選項沒啟用 
- [time-to-live exceeded]未收全包 無法組裝

四、性能問題分析

- statistics->summary (查看統計信息,比如平均流量) 

- statistics->service Response Time->ONC-RPC->program:NFS Version:3—>create stat(衡量服務器性能) 

- analyze—>expert info composite (查看重傳統計、連接的建立、重置統計等等) 
- statistics->tcp stream graph->tcp sequence graph (生成統計圖,考慮選擇時間的長度)

五、分析命令

tcp.analysis.ack_rtt > 0.2 and tcp.len == 0 過濾是否存在延遲包

握手失敗一般分兩種類型,要么被拒絕,要么是丟包了。 

表達式1:flags.reset ==1) && (tcp.seq ==1)

表達式2:(tcp.flags.syn ==1) && (tcp.analysis.retransmission)

六、重傳

當發現網絡包重傳時,需要先檢查重傳出現的時間,即Wireshark抓包文件顯示的發生TCP重傳的時間點,與受監控服務器(生成的)日志顯示的發生應用程序報告的時間點吻合,則可以判斷TCP重傳是服務器程序報錯有關,與網絡無關。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM