Wreshark分析理解TCP三次握手

 

1 TCP三次握手势什么意思?

TCP/IP 传输协议的 TCP 层是面向连接的。面向连接意味着,在传输任何数据之前,必须获得并确认可靠的连接。

TCP三次握手是TCP/IP网络中用于在客户端和服务端之间建立连接的过程,这是一个三步过程,要求客户端和服务端在真正的数据通信之前交换同步和确认包。

2 TCP三次握手的元素类型

元素符号

描述

SYN

 SYN代表同步序列号(Synchronize Sequence Number),用于发起和建立连接,如果SYN为1,则表示设备希望建立安全连接。

 

ACK

ACK表示对SYN报文的相应,如果ACK为1,则表示设备收到SYN的报文。

FIN

RIN表示结束连接,如果FIN为1 ,则设备表示断开连接。

Sequence Number

序列号,分配给数据的第一个位的32位数字。它用于发起和建立连接。通常,序列号在一个连接中只使用一次。

Acknowledgment Number

确认好,回应发送过来的Sequence Number确认号码,号码通常比Sequence Number大1。

 

3 IP报头

IP报头格式的长度为 20 到 60 个字节。它包含路由和交付所需的信息。它由版本、报头长度、总距离、标识、标志、校验和、源IP地址、目的IP地址等13个字段组成。它提供了传输数据所需的基本数据。

Wireshark数据库链路层IP数据包头信息展示:

 

资料来源:http://networkstatic.net/what-are-ethernet-ip-and-tcp-headers-in-wireshark-captures/

4 TCP三次握手步骤示例

 

 

第一次握手:客户端请求连接到服务器,发送一个带有SYN (2087)的段并通知服务器开始通信。

第二次握手:服务器使用指定的 SYN-ACK 信号响应客户端请求,ACK (2087+1)显示收到的段响应,SYN (5012)显示从该段开始的序列号。

第三次握手:在这最后一步中,客户端使用ACK(5012+1)确认来自服务器的响应,并建立连接。

5 在Wireshark中分析TCP三次握手示例

第一次握手

客户端向服务器发送SYN:当客户端与服务器建立连接时,SYN Flag设置为1,并向服务器发送消息,SEQ(Sequence Number)序列号:2230190955

 

第二次握手

服务器向客户端回复SYN+ACK:服务器收到客户端同步连接请求后,通过设置ACK Flag为1向客户端发送确认,确认号2230190956大于所接收的SEQ(Sequence Number)序列号:2230190955,服务器还将SYN 标志设置为“1”并将其发送给客户端,这里用于SYN的SEQ序列号11178485与客户端SYN的序列号不同2230190955,完成这一步后,就建立了从客户端到服务器端的连接。

 

第三次握手

客户端向服务器发送ACK :客户端收到服务器的SYN后,将ACK标志设置为“1”,并发送确认号11178485,确认号比服务器SYN序列号大1。

 

 

6 TCP完整的通信过程

1 连接建立阶段

2 数据传输阶段

3 连接终止阶段

 

posted @ 2021-11-28 23:01  z寒江雪  阅读(156)  评论(0编辑  收藏  举报