作為網絡開發人員,使用fiddler無疑是最好的選擇,方便易用功能強。
但是什么作為愛學習的同學,是不應該止步於http協議的,學習wireshark則可以滿足這方面的需求。wireshark作為抓取各種底層協議的包有着強大的功能,用於網絡排錯或者一些其他通訊方面的查看,是必須的。
以前有自己看過wireshark相關的簡要教程,也是一知半解。借助《Wireshark數據包分析實戰》一書,更准確知曉wireshark到底能干啥吧!
1. 網絡七層協議(老生長談了,看過許許多多的書,都會提到的一個)
應用層 - 直接面對用戶的一層
表示層 - 用於加解密
會話層 - 兩台計算機之間的會話管理
傳輸層 - 無差錯傳輸
網絡層 - 路由轉發
數據鏈路層 - 提供尋址方案
物理層 - AD & DA
2. Wireshark捕獲
在capture > Interface 選擇一個網卡設備,點擊start即可進行捕獲了。對,數據量非常大!
3. Wireshark過濾
不使用過濾的話,wireshark的數據,可以說幾乎無用,太多了,適當使用過濾,捕獲有效數據方為上策。
BPF語法(Berkeley Packet Filter)。 (后置名字意義)Type: host, net, port; (傳輸方向)Dir: src, dst; (協議)Proto: ether, ip, tcp, udp, http, ftp, icmp; 如:dst host 192.168.1.1 && tcp port 80
顯示過濾(從捕獲的文件中過濾): ip.addr == 192.168.1.1, frame.len <=128, http, tcp.flags.syn == 1
4. 從捕獲的文件中查看一些高級統計特性
查看單個包,可以知道通信細節,查看統計數據則能更快速得到一些結論,總覽全局
查看端點: Stastics > Endpoints
查看網絡會話: Statistics > Conversations
基於協議的統計數據: Stastics > Protocol Hierarchy
跟蹤tcp流: 右擊一條數據包 > Follow Tcp Stream, 該功能和fiddler的抓包功能類似,可以查看通信數據,但是對於加密的數據則只會看到亂碼
查看IO圖:Statistics > IO Graphs ,吞吐量查看
5. 一些捕獲示例
書上舉例,捕獲twitter、facebook流量,操作方式就是如上簡單的捕獲,了解即可!
6. 輔助排查問題
...
wireshark捕獲的是更全的數據包,但是相對復雜,對於普通的網絡開發可能不太適用,但是常規了解一下還是有必要的哦。
重在成長!
附小技巧:剛剛在編輯該文章時,由於瀏覽頁面的切換,導致該文章完全一片空白,沒有保存不敢刷新,嚇得我以為我一個個打的字已經白費? 幸好挽救回來了。操作如下:
網頁 > 另存為 > EditPosts.aspx_files > saved_resource.html 里面就有剛剛寫好的文章,總算是被保存下來了!