Wireshark 跟踪TCP流
打開捕獲文件;在一個協議為TCP的包上右擊,選擇 追蹤流-TCP;將進入TCP流追蹤;
?
選擇該菜單后,主面板上包列表里,僅列出本次TCP會話的包;
同時會在一個單獨的窗口中顯示TCP流;
看一下基本是亂碼;大體能看出,是http1.1協議;是本機和百度的一個網址通信的情況;
紅色是源到目的地;藍色反之;
先看一下;需要詳細解析的時候再說吧;
?
看一下本次會話最后一個包;
eclick.e.shifen.com
https(443) [ACK] Seq=1786 Ack=4560 Win=65536 Len=0 SLE=4220 SRE=4560
是嘛意思?
基本解釋如下:
?
443端口,主要是用于HTTPS服務,是提供加密和通過安全端口傳輸的另一種HTTP。
?
在TCP層,有個FLAGS字段,這個字段有以下幾個標識:SYN, FIN, ACK, PSH, RST, URG.
它們的含義是:
SYN表示建立連接,
FIN表示關閉連接,
ACK表示響應,
PSH表示有 DATA數據傳輸,
RST表示連接重置。
?
TCP的SEQ和ACK總結:??????
???????在TCP通訊中,無論是建立連接,數據傳輸,友好斷開,強制斷開,都離不開Seq值和Ack值,它們是TCP傳輸的可靠保證。Seq是發送方告訴接收方,我當前從第Seq個字節開始發送len個字節數據(不包括以太網Eth頭,IP頭和Tcp頭,也就是純數據長度)給你,而Ack則是接收方給發送方回復:接收方回復的Ack=發送方Seq+發送數據長度len。
??????在建立連接雙方握手時,發送方的Seq為0,表示發送的數據長度也為0,這時接收方收到數據幀后,會判斷Seq+數據長度為0或者Seq+數據長度為1的話,那么在回應發送方的Ack的值就為1(也就表示確認號有效,為0的話就表示數據包中不包含確認信息(即不含有Ack字段),忽略確認號字段)。
??????在數據傳輸中,如果Seq+數據長度不為0或1并且數據長度不為0的話,則回應時的Ack就等于Seq+數據長度的值,這就表示我已經收到Seq+數據長度個字節的數據。發送方收到該Ack就會比較自己的Seq+剛發出去的純數據長度,如果一致,則回應接收方的Ack,并且發送下一個包,否則將重發該包,若超時還沒收到Ack也會重發該包。
總結
以上是生活随笔為你收集整理的Wireshark 跟踪TCP流的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Wireshark EndPoints窗
- 下一篇: 尝试在wireshark中查找密码