天空中的大海--Kubernetes网络模型--铺垫篇②

上一篇已经用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流量。如下所示

天空中的大海--Kubernetes网络模型--铺垫篇②_第1张图片

我此次实验在虚拟机中进行,我的虚拟机工作在NAT模式下,192.168.174.128是虚拟机地址,192.168.174.2是我虚拟机默认网关和DNS的地址。

然后捕获到client向Tracker发送的GET请求。如下所示

天空中的大海--Kubernetes网络模型--铺垫篇②_第2张图片

0.4s之后收到Tracker发来的响应,其中携带的信息就是peer的ip:port

天空中的大海--Kubernetes网络模型--铺垫篇②_第3张图片

之后就是下载过程,分析同上。

时间相去久远,本篇暂且记录到此。

你可能感兴趣的:(云计算,网络)