上一篇已經用Go構建出一個BitTorrent客戶端,本篇使用Wireshark進行抓包分析,
使用Wireshark進行抓包分析BitTorrent
- 啟動客戶端
./torrent-client debian-10.9.0-amd64-netinst.iso.torrent debian.iso - 然后
sudo wireshark啟動Wireshark開始捕獲網卡
向Tracker服務器獲取一起聊天的peer萌
client中的代碼如下
url, err := t.buildTrackerURL(peerID, port)
if err != nil {
return nil, err
}
c := &http.Client{Timeout: 15 * time.Second}
resp, err := c.Get(url)
if err != nil {
return nil, err
}
defer resp.Body.Close()
構建出一個url,值為http://bttracker.debian.org:6969/announce?compact=1&downloaded=0&info_hash=%9F%29%2C%93%EB%0D%BD%D7%FFzJ%A5Q%AA%A1%EA%7C%AF%E0%04&left=353370112&peer_id=%8E%C9%CC%9A%AD%F7N%BC%0A%A1SO%18%B5%18%3D%D4%C2%C19&port=6881&uploaded=0 ,然后去發GET請求,
此時在wireshark上可以捕獲到DNS流量,如下所示

我此次實驗在虛擬機中進行,我的虛擬機作業在NAT模式下,192.168.174.128是虛擬機地址,192.168.174.2是我虛擬機默認網關和DNS的地址,
然后捕獲到client向Tracker發送的GET請求,如下所示

0.4s之后收到Tracker發來的回應,其中攜帶的資訊就是peer的ip:port

之后就是下載程序,分析同上,
時間相去久遠,本篇暫且記錄到此,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/280255.html
標籤:區塊鏈
上一篇:2021-04-25
