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

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

1、Wireshark 抓包简单使用

1.1、打开Wireshark,设置input

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

Wireshark 抓包和了解TCP的三次握手_第1张图片

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,已经收到包的数量,表示当前没有接收到数据

Wireshark 抓包和了解TCP的三次握手_第2张图片

 第二次握手的数据包

服务端收到请求并且允许连接,会发送一个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

你可能感兴趣的:(抓包工具,Wireshark)