WireShark简单抓包

使用WireShark 打开使用的接口

Win10下找不到接口,下载 http://www.win10pcap.org/download/ 解决。

访问网站

  1. 为了避免之前的缓存、Cookie造成的影响,使用Chrome浏览器的无痕模式打开新的标签页。
  2. 访问www.baidu.com。
  3. 等待网页读取完毕后,关闭捕获。

抓包

第一个包

  1. 搜索与baidu相关的条目
    搜索相关条目
  2. 找到baidu出现的位置
    在这里插入图片描述
    这是一个DNS包,这是由于我们要访问baidu,首先要发送一个DNS请求,来获取baidu的IP地址。
  3. DNS包的内容
    在这里插入图片描述

数据链路层(第二行):
在本层,包由笔记本传到了路由器。
Src: 源,本台笔记本 及 MAC地址
Dst: 无线路由器 及 MAC地址

网络层(第三行):
Src: 本机IPv4地址
Dst: DNS服务器

DNS包作为UDP发出,不需要预先建立连接。
UDP包的内容就是 Domain Name System (query)

WireShark将DNS的内容(字节)翻译了出来。
在此,我们只有一个Question,就是 baidu 的地址在哪里。
Response告诉我们在 39 号包。(注: 在39号包这件事DNS query并不知道,是WireShark通过分析得出的)

下一个包

找到第39号包
在这里插入图片描述

数据链路层:
Src: 路由器
Dst: 本机

网络层:
从DNS Server发到本机

观察DNS(response)
它会将Query重复一遍,并有Answer。

下一个包

在这里插入图片描述

我们可以发现下一个包(40)的Destination, 就是39号包中Answer给出的地址。(220.181.38.148)

观察与网站交互的过程

我们搜索一下这个IP,方便观察建立连接的过程。
在这里插入图片描述
这样我们就看可以看到本台笔记本和baidu所有交互的过程。

第一次握手

在这里插入图片描述
数据链路层:
Src: 本机
Dst: 路由器

网络层:
Src: 本机
Dst: baidu

TCP内容:
Destination Port: 80 我们试图和baidu的80号端口做连接。(80号端口就是http协议的端口)
Sequence number : 包的编号 本机发送的0号包
Ack number : 0 现在并没有收到任何包来ACK
Flags : SYN SYN就代表一个连接的请求
Window size value: 滑动窗口的大小
TCP Segment Len: 0 这个包只带了一个头部,TCP的内容是0

第二次握手

baidu回复的包
在这里插入图片描述
Sequence number: 0 这是baidu发送的0号包
Ack number: 1 在TCP里,Ack number不代表收到了第几个包,而是期待对方发来第几个包。现在第0号包已经发完并收到,所以期待第1号包发送过来。

Flags: SYN,ACK 表示已经收到连接的请求,且愿意建立连接。

第三次握手

本机回复baidu, 表示收到了同意连接的请求。
在这里插入图片描述
Sequence number: 1 本机发送的1号包
Ack number: 1 本机已经收到baidu发送的0号包,现在期待收到baidu发送的1号包。

至此,三次握手完成,本机与baidu的通信就建立在可靠的TCP连接上了。

浏览器访问页面的过程图示

在这里插入图片描述

发布了40 篇原创文章 · 获赞 1 · 访问量 1106

猜你喜欢

转载自blog.csdn.net/weixin_44495162/article/details/100777531