目录
功能介绍
wireshark是用来获取网络数据封包,可以截取各种网络封包,显示网络封包的详细信息,包括http,TCP,UDP,等网络协议包。注:wireshark只能查看封包,而不能修改封包的内容,或者发送封包。
1 搭建本地监控端口
本地开启tcp server 端口8887;本地开启tcp client去连接。
2 选择网络接口
捕获网络 选择接口Adapter for loopback traffic capture,如下图所示
3 添加过滤器
添加过滤器 tcp.port ==8887,如下图所示。
其他过滤器:
tcp->只显示TCP协议的记录;
http->只看HTTP协议的记录;
ip.src ==192.168.1.102 ->显示源地址为192.168.1.102的记录;
ip.dst==192.168.1.102 ->目标地址为192.168.1.10的记录;
ip.addr == 42.121.252.58 ->只显示与某主机的通信;
tcp.port ==80->端口为80的;
tcp.srcport == 80 ->只显示TCP协议的源端口为80的;
http.request.method=="GET" ->只显示HTTP GET方法的;
4 接收数据格式
接收数据展示,发送接收123456789报文如下图所示
ASII码值显示
5 数据包含义
封包列表(Packet List Pane)
封包列表的面板中显示,编号,时间戳,源地址,目标地址,协议,长度,以及封包信息。
这是最重要的信息,用来查看协议中的每一个字段。而OSI七层模型分别为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
在封包信息中,每行对应的含义及在OSI模型中的对应关系如下:
Frame: 物理层的数据帧概况 ->对应OSI七层模型中的【物理层】
Ethernet II: 数据链路层以太网帧头部信息 ->对应OSI七层模型中的【数据链路层】
Internet Protocol Version 4: 互联网层IP包头部信息 ->对应OSI七层模型中的【网络层】
Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP ->对应OSI七层模型中的【传输层】
Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议 ->对应OSI七层模型中的【应用层】
5.1 物理层数据帧概况
5.2 数据链路层以太网帧头部信息
5.3 互联网层ip包头部信息
5.4 传输层tcp数据段头部信息
6 结合抓包数据分析tcp三次握手过程
6.1 TCP三次过程
首先要清楚TCP三次过程,如下图所示
TCP三次握手过程如下:
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN SENT状态,等待服务器确认;SYN:即是同步序列编号(Synchronize Sequence Numbers);
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
6.2 tcp 报文内容
6.3 数据帧类型
574帧是客户端向服务器发送TCP请求建立连接。标识为SYN。
619帧是服务器得到请求后向客户端回应确认包的过程。标识为SYN,ACK。
620帧是客户端回应服务器发送确认包的过程,将于服务器建立连接。标识为ACK。
663帧是客户端向服务器发送HTTP请求内容的过程。标识为GET。
667帧是服务器响应客户端请求的过程,收到请求。标识为ACK。
674帧是服务器向客户端回应内容的过程。
6.4 三次握手数据帧
第一次握手数据包,客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接
(第一次握手)
第二次握手的数据包,服务器发回确认包, 标志位为 SYN,ACK. 将确认序号(Acknowledgement Number)设置为客户的ISN(初始序号)加1以.即0+1=1,如下图所示
(第二次握手)
第三次握手的数据包,客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方。如下图所示
(第三次握手)
以上就是 wireshark中的tcp三次握手过程。