一、实验过程

1、TCP包抓取及分析过程

①确认使用的协议,使用HTTP服务。选择https://www.baidu.com/作为目标地址。
②启动Wireshark软件,点击开始抓包后。在浏览器地址输入https://www.baidu.com/
③在Wireshark软件中使用过滤器,添加本机IP地址和TCP协议过滤条件

2、开始实验

①获取IP双方IP地址(便于过滤)

获取本机IP地址

wireshark三次握手抓包 wiresharktcp三次握手_TCP


获取https://www.baidu.com/的IP地址

wireshark三次握手抓包 wiresharktcp三次握手_网络_02


②在工具栏上的Filter对话框中填入过滤条件:

wireshark三次握手抓包 wiresharktcp三次握手_tcp/ip_03


获取的数据报文如下,红框内为访问百度的TCP三次握手过程

wireshark三次握手抓包 wiresharktcp三次握手_TCP_04

二、概念介绍

TCP报文格式

wireshark三次握手抓包 wiresharktcp三次握手_tcp/ip_05


wireshark三次握手抓包 wiresharktcp三次握手_wireshark_06


三次握手过程

wireshark三次握手抓包 wiresharktcp三次握手_wireshark_07


wireshark窗口简介

wireshark三次握手抓包 wiresharktcp三次握手_wireshark_08

三、根据报文分析TCP的三次握手过程

①第一次握手

192.168.199.233-------->14.215.177.39

(1)数据链路层报文

wireshark三次握手抓包 wiresharktcp三次握手_wireshark三次握手抓包_09


(2)网络层

wireshark三次握手抓包 wiresharktcp三次握手_wireshark_10


(3)传输层

①源端口和目的端口

wireshark三次握手抓包 wiresharktcp三次握手_wireshark_11


②窗口大小:如下图所示,窗口大小Windows size value为64240,表示源主机最大能接收64240字节。

wireshark三次握手抓包 wiresharktcp三次握手_wireshark三次握手抓包_12


③校验和(16bit):如下图所示,校验和Checksum为0x20cf,包含TCP首部和TCP数据段,这是一个强制性的字段,一定是由发送端计算和存储,由接收端进行验证。

wireshark三次握手抓包 wiresharktcp三次握手_tcp/ip_13


④紧急指针(16bit)。如下图所示,URG标志为1,只有当URG标志置为1时该字段才有效,紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。TCP的紧急方式是发送端向另一段发送紧急数据的一种方式。

wireshark三次握手抓包 wiresharktcp三次握手_tcp/ip_14


⑤TCP选项。至少1个字节的可变长字段,标识哪个选项有效。Kind=0:选项表结束, Kind=1:无操作, Kind=2:最大报文段长度,Kind=3:窗口扩大因子, Kind=8:时间戳。如下图所示,Kind为2,代表最大报文长度MSS size。

wireshark三次握手抓包 wiresharktcp三次握手_wireshark三次握手抓包_15


⑥数据部分。当前数据包的数据部分

wireshark三次握手抓包 wiresharktcp三次握手_wireshark三次握手抓包_16

过程解析

①第一次握手

传输层

wireshark三次握手抓包 wiresharktcp三次握手_tcp/ip_17

②第二次握手

传输层

wireshark三次握手抓包 wiresharktcp三次握手_tcp/ip_18


③第三次握手

传输层

wireshark三次握手抓包 wiresharktcp三次握手_wireshark三次握手抓包_19