WireShark 分析 TCP 协议(TCP 三次握手,TCP 的四次挥手)

WireShark 分析 TCP 协议

TCP 三次握手

1. 三次握手示意图

img

2. 使用 WireShark 进行抓包

为了能够抓取到 TCP 三次握手建立连接的数据,我们可以通过 WireShark 在本地主机访问网页时开始抓取数据。抓取的数据量比较大,包括了此时段本地主机所有的通信数据包,为了方便我们的分析,我们可以使用 WireShark 的显示过滤规则来过滤掉不需要的数据而只显示本地主机与目标主机之间通信的数据包。

过滤规则如下:ip.src==源IP or ip.dst==目的IP

过滤结果如图所示:

3. 分析 TCP 三次握手

  • 第一次 客户端发送 SYN 报文到服务器

  • 第二次 服务器收到客户端的 SYN 报文,回复 SYN + ACK 报文

  • 第三次,客户端接收到服务器的 SYN + ACK 报文后。回复ACK 报文

TCP 的四次挥手

1. 四次握手示意图

img

由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

TCP的连接的拆除需要发送四个包,因此称为四次挥手(four-way handshake)。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作。

(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送。

(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。

(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A。

(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1。

2. 分析数据包

  • 第一次挥手 FIN + ACK

  • 第二次挥手 ACK

 

  • 第三次挥手 FIN + ACK

  • 第四次挥手 ACK

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值