网络基础实验(一)wireshark 验证TCP 三次握手

一 TCP 三次握手简介

TCP 三次握手是传输控制协议(TCP)在建立连接时的标准过程,其根本目的是在不可靠的IP网络之上,建立一个可靠的、面向连接的字节流传输通道

1.1 三次握手流程详解

握手阶段 发送方 标志位设置 序列号(SEQ)变化 确认号(ACK)变化 状态变化 核心目的解读
第一次握手 客户端 SYN=1 seq = x
(客户端随机生成初始序列号 ISN)
不适用
(因尚未收到服务器序列号)
CLOSED → SYN-SENT 客户端询问:"你好服务器,我的起始号是x,你能收到吗?我们建立连接吧。"
第二次握手 服务器 SYN=1, ACK=1 seq = y
(服务器随机生成自己的初始序列号 ISN)
ack = x + 1
(确认客户端的序列号x,期望下次从x+1开始接收)
LISTEN → SYN-RCVD 服务器应答:"收到你的请求(x),我同意连接。我的起始号是y,请确认。"
第三次握手 客户端 ACK=1 seq = x + 1
(因第一次握手消耗一个序号)
ack = y + 1
(确认服务器的序列号y,期望下次从y+1开始接收)
SYN-SENT → ESTABLISHED 客户端最终确认:"好的服务器,确认收到你的起始号y。连接已就绪,可以开始传输数据了。"
服务器收包后 - - - - SYN-RCVD → ESTABLISHED 服务器收到第三次握手的ACK,确认双向信道畅通,连接正式建立。

二 wireshark 报文分析

Wireshark 抓取的是包含 TCP 头的完整数据包,它同时包含了以太网头、IP 头和 TCP 头。其中以太网头负责数据链路层传输、IP 头负责网络层路由、TCP 头承载握手逻辑;

[以太网帧头][IP报文头][TCP报文头][数据]

2.1 以太网帧头 (Ethernet Header) - 14 字节

2.1.1 作用

负责单跳传输,即从你的电脑到你的路由器(或同一局域网内的下一台设备)。它不关心最终的 IP 地址,只关心当前网络的 MAC 地址。

2.1.2 字段位置和含义

字节位置 字段名 长度 说明 示例值
0-5 目的MAC地址 6字节 下一跳设备的物理地址 00:50:56:f3:6a:7c
6-11 源MAC地址 6字节 发送方设备的物理地址 00:0c:29:8d:6e:8a
12-13 以太网类型 2字节 上层协议类型 0x0800(IPv4)

2.1.2 wireshark 显示示例

Frame 1: 74 bytes on wire (592 bits), 74 bytes captured (592 bits)
Ethernet II, Src: 00:0c:29:8d:6e:8a, Dst: 00:50:56:f3:6a:7c
    Destination: 00:50:56:f3:6a:7c
    Source: 00:0c:29:8d:6e:8a
    Type: IPv4 (0x0800)

2.2 IP 报文头 (IP Header) - 20 字节

2.2.1 作用

位于以太网帧内部,负责网络层路由。

2.2.2 字段位置和含义

字节位 字段名 长度 说明 示例值
0-1 (比特0-3) 版本/首部长度 4b/4b IP版本和头部长度 0x45(IPv4, 20字节)
1 (比特4-7) 服务类型 1字节 服务质量参数 0x00(常规服务)
2-3 总长度 2字节 整个IP包长度 0x003c(60字节)
4-5 标识 2字节 数据包标识 0x1a2b
6-7 标志/片偏移 2字节 分片控制 0x4000(不分片)
8 生存时间 1字节 最大路由跳数 0x40(64跳)
9 协议 1字节 上层协议 0x06(TCP)
10-11 首部校验和 2字节 IP头校验 0x0000(可能被禁用)
12-15 源IP地址 4字节 发送方IP 192.168.1.100
16-19 目的IP地址 4字节 接收方IP 93.184.216.34

2.2.3 wireshark 显示示例

Internet Protocol Version 4, Src: 192.168.1.100, Dst: 93.184.216.34
    0100 .... = Version: 4
    .... 0101 = Header Length: 20 bytes (5)
    Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
    Total Length: 60
    Identification: 0x1a2b (6699)
    Flags: 0x4000, Don't fragment
    Time to Live: 64
    Protocol: TCP (6)
    Header Checksum: 0x0000 [validation disabled]
    Source Address: 192.168.1.100
    Destination Address: 93.184.216.34

2.3 TCP 报文头 (TCP Header) - 至少 20 字节

2.3.1 作用

负责端到端的可靠连接管理。三次握手的所有关键动作都在这里发生

2.3.2 字段位置和含义

比特位置 字段名 长度 说明 第一次握手示例 第二次握手示例 第三次握手示例
0-15 源端口 16b 发送方端口 0xc3a6(50086) 0x0050(80) 0xc3a6(50086)
16-31 目的端口 16b 接收方端口 0x0050(80) 0xc3a6(50086) 0x0050(80)
32-63 序列号 32b 数据字节序号 0x7a1b3c4d 0x183d6e8f 0x7a1b3c4e
64-95 确认号 32b 期望的下个序号 0x00000000 0x7a1b3c4e 0x183d6e90
96-99 数据偏移 4b TCP头长度(×4字节) 0x8(32字节) 0x8(32字节) 0x8(32字节)
100-107 保留 8b 保留位 0x00 0x00 0x00
108-123 标志位 16b 控制标志 0x002(SYN) 0x012(SYN+ACK) 0x010(ACK)
124-139 窗口大小 16b 接收窗口 0xfa00(64000) 0xfaf0(64240) 0xfa00(64000)
140-155 校验和 16b TCP校验和 0x8a3b 0x7432 0x8a3c
156-171 紧急指针 16b 紧急数据位置 0x0000 0x0000 0x0000

标志位详细分解

比特位 标志名 含义 第一次握手 第二次握手 第三次握手
108 CWR 拥塞窗口减少 0 0 0
109 ECE ECN回显 0 0 0
110 URG 紧急指针有效 0 0 0
111 ACK 确认号有效 0 1 1
112 PSH 推送功能 0 0 0
113 RST 连接重置 0 0 0
114 SYN 同步序列号 1 1 0
115 FIN 结束连接 0 0 0

2.2.3 wireshark 显示示例

以下是第一次握手示例

Transmission Control Protocol, Src Port: 50086, Dst Port: 80, Seq: 0, Len: 0
    Source Port: 50086
    Destination Port: 80
    [Stream index: 0]
    [TCP Segment Len: 0]
    Sequence Number: 0    (relative sequence number)
    Sequence Number (raw): 2049004621
    [Next Sequence Number: 1    (relative sequence number)]
    Acknowledgment Number: 0
    Acknowledgment Number (raw): 0
    0101 .... = Header Length: 20 bytes (5)
    Flags: 0x002 (SYN)
        000. .... .... = Reserved: Not set
        ...0 .... .... = Nonce: Not set
        .... 0... .... = Congestion Window Reduced (CWR): Not set
        .... .0.. .... = ECN-Echo: Not set
        .... ..0. .... = Urgent: Not set
        .... ...0 .... = Acknowledgment: Not set
        .... .... 0... = Push: Not set
        .... .... .0.. = Reset: Not set
        .... .... ..1. = Syn: Set
        .... .... ...0 = Fin: Not set
    Window: 64000
    [Calculated window size: 64000]
    Checksum: 0x8a3b [unverified]
    Urgent Pointer: 0
    Options: (12 bytes), Maximum segment size, SACK permitted, Window scale, No-Operation (NOP)

三 实验验证

3.1 实验环境

使用个人电脑通过ping 和curl 命令访问ustc.edu.cn 然后使用wireshark 抓包,分析三次握手。
wireshark 3.2.0
win10

3.2 实验工具

3.2.1 基础命令

获取公网ipv4 地址

ping -4 www.ustc.edu.cn

图片

通过ipv4 访问网站

curl -4 http://www.ustc.edu.cn

查看本机mac,ip 地址

ipconfig/all

3.2.2 wireshark 条件过滤

wireshark 只抓取我们访问的ip
使用访问的公网ip 过滤
过滤条件

ip.host == 218.22.21.21

图片

posted on 2025-11-17 11:38  weiwei2021  阅读(4)  评论(0)    收藏  举报