Wireshark抓包实战之三次握手(懒人版)

356 阅读2分钟

以前学习过TCP三次握手的理论知识,但是总觉得云里雾里,于是下定决心实操一下,通过理论加实践的方式加深对三次握手过程的理解。 看了下一些网上利用wireshark抓取三次握手数据包的教程,需要搭建虚拟的网络模块模拟三次握手的过程,觉得太过于繁琐,且实操难度较高。于是想了个偷懒的办法,用最简单的方法来实现目的,如果你也像我一样,那就一定要看这个教程
具体的操作步骤如下:

  1. 打开wireshark,将过滤条件设置为tcp,如下图所示\

image.png

  1. 打开浏览器,准备一个网址

image.png

  1. 点击左上角的蓝色鲨鱼角开始抓包
  2. 在浏览器打开第二步准备的网址,等网站首页加载完成后再关闭网站,同时在wireshark中停止抓包
  3. 分析抓到的数据,找到三次握手相关的三个数据包。由于打开网站时会先进行三次握手,所以可以从前往后找,可以更快找到对应的数据包

image.png

如上图所示,红框圈住的就是三次握手的三个数据包了。具体的数据发送过程如下:

  1. 序号为18的数据包从源端口59146向目标端口443发起建立连接的请求:SYN,seq=0,len=0
  2. 序号为20的数据包是来自服务端的回包,表示收到的客户端发送的连接请求:SYN,ACK,seq=0,ack=1,len=0
  3. 序号为21的数据包是来自客户端的ack确认:ACK,seq=1,ack=1,len=0 最后需要注意到的是,上面看到的seq=0和ack=0是wireshark计算后得到的相对序列号,为了方便用户查看数据,实际的seq是一个随机生成的int32位无符号数字,实际的seq是左下方Sequence Number(raw)的值。