Wireshark 抓包和了解TCP的三次握手

Wireshark 抓包和了解TCP的三次握手

1、Wireshark 抓包简单使用

1.1、打开Wireshark,设置input

菜单:“捕获”-->“选项”,勾选跟本地网络设置一致。

1.2、开始抓包,点击左侧的图标

1.3、同时打开浏览器进行想要访问的页面进行操作

1.4、在Filter栏上,填好Filter的表达式进行过滤

在wireshark中输入http过滤, 然后选中POST /scheduler/login HTTP/1.1的那条记录,右键然后点击"Follow TCP Stream",

 2、wireshark过滤器常用的表达式

1、协议过滤

过滤tcp:tcp

过滤http:http

2、IP过滤

过滤源IP地址:ip.src ==10.1.1.221

过滤目标ip地址:ip.dst==10.1.1.101

过滤显示源ip和目标ip:ip.src ==ip.src ==10.1.1.221 and ip.dst==10.1.1.101

3、端口过滤

过滤端口,例如:8081->tcp.port==8081

4、http模式过滤

只显示HTTP GET方法:http.request.method=="GET"

3、了解TCP的三次握手

Wireshark抓包分析TCP三次握手

1)TCP三次握手连接建立过程

第一步:客户端发送一个TCP,标志位为SYN,SYN=1,ACK=0标志的数据包给服务端,代表客户端请求服务器建立连接(SYN_SEND状态),等待服务器确认。

第二步:服务端收到请求并且允许连接,会发送一个SYN=1,ACK=1标志的确认数据包(ACK(ram)=X+1)序列号Seq(ram)=Y给客户端,此时服务器进入SYN_RECY状态。

第三步:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(既ACK(ram)=Y+1),序列号Seq(ram)=X+1,此包发送完毕,客户端和服务器都进入ESTABLISHED状态,完成三次握手。

2)TCP的三次握手具体分析

第一次握手数据包

客户端发送一个TCP,标志位为SYN,SYN=1,ACK=0标志的数据包给服务端,代表客户端请求服务器建立连接(SYN_SEND状态),等待服务器确认。 如下图

SYN:同步序列号(Synchronize Sequence Numbers)

序列号(Sequence number)=0 Seq=0

Sequence number(ram):2795405531   用X表示

Acknowledgement Number=0 ACK=0

Acknowledgment number(ram)=0

数据包的关键属性解析:
SYN :标志位,表示请求建立连接
Seq = 0 :初始建立连接值为0,数据包的相对序列号从0开始,表示当前还没有发送数据
Ack =0:初始建立连接值为0,已经收到包的数量,表示当前没有接收到数据

 第二次握手的数据包

服务端收到请求并且允许连接,会发送一个SYN=1,ACK=1标志的确认数据包(ACK(ram)=X+1)序列号Seq(ram)=Y给客户端,此时服务器进入SYN_RECY状态。

序列号(Sequence number)=0  Seq=0)

Sequence number(ram):610114067 用Y表示

Acknowledgement Number=1 (ACK=1

Acknowledgment number(ram):2795405532  用(X+1)表示

数据包的关键属性解析:

[SYN + ACK]: 标志位,同意建立连接,并回送SYN+ACK

Seq = 0 :初始建立值为0,表示当前还没有发送数据

Ack = 1:表示当前端成功接收的数据位数,虽然客户端没有发送任何有效数据,确认号还是被加1,因为包含SYN或FIN标志位。(并不会对有效数据的计数产生影响,因为含有SYN或FIN标志位的包并不携带有效数据)

第三次握手的数据包

客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(既ACK(ram)=Y+1),序列号Seq(ram)=X+1,此包发送完毕,客户端和服务器都进入ESTABLISHED状态,完成三次握手。

序列号(Sequence number)=1  (Seq=1)

Sequence number(ram):2795405532   用X+1表示

Acknowledgement Number=1  (ACK=1

Acknowledgment number(ram):610114068 用Y+1表示

数据包的关键属性解析:

ACK :标志位,表示已经收到记录

Seq = 1 :表示当前已经发送1个数据

Ack = 1 : 表示当前端成功接收的数据位数,虽然服务端没有发送任何有效数据,确认号还是被加1,因为包含SYN或FIN标志位(并不会对有效数据的计数产生影响,因为含有SYN或FIN标志位的包并不携带有效数据)。

就这样通过了TCP三次握手,建立了连接。开始进行数据交互。

参考:

【工具-WireShark】网络HTTP抓包使用教程_Fun肆编程的博客-CSDN博客_wireshark怎么抓包http

https://www.cnblogs.com/moonbaby/p/10528401.html

https://baijiahao.baidu.com/s?id=1711869810101262870&wfr=spider&for=pc

https://jishuin.proginn.com/p/763bfbd5a57f

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宁宁可可

您的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值