TCP三次握手

三次握手指的是TCP协议建立连接的过程。当客户端请求与服务器建立TCP连接时,必须要经过三次握手才能真正建立连接。

三次握手详细过程

  1. 第一次握手:客户端向服务器发送 SYN 报文,请求建立连接,其中 SYN 标志位被置为 1,同时客户端随机选择一个初始序列号发送。
  2. 第二次握手:服务器接收到客户端的 SYN 报文,确认客户端的SYN请求,同时自己也向客户端发送一个 SYN 报文,SYN 标志位被置为 1,并且确认序号(acknowledgement number)被设置为客户端发送的序列号+1,同时服务器也随机选择一个初始序列号,并将其发送给客户端。
  3. 第三次握手:客户端接收到服务器的 SYN 报文,向服务器发送一个确认报文,确认序号也被设置为服务器发送的序列号+1,同时将 ACK 标志位置为 1,表示接收到了服务器传来的请求,连接已经建立。服务器接收到 ACK 报文之后,也将 ACK 标志位置为 1,表示连接建立完成。

三次握手是为了确保连接的可靠性,如果在建立连接的过程中发生网络丢包或者延迟,可以在重发握手报文的同时避免建立多余的连接。经过三次握手之后,客户端和服务器之间就建立了一个可靠的双向连接,在这个连接上可以进行数据传输。

TCP三次握手_第1张图片

 1、客户端发送一个SYN=1,ACK=0标志的数据包给服务端,请求进行连接,
2.服务端收到请求,并且允许连接的话,会发送SYN=1,ACK=1标志的数据包给客户端,告诉它可以通讯,并让服务端发送一个确认数据包
3.服务端发送一个SYN=0,ACK=1的数据包给客户端,告诉它连接已被确认。)

TCP三次握手_第2张图片

wireshark查看三次握手过程 

可以通过网络数据包分析工具(如Wireshark)来查看TCP协议的三次握手过程。下面是具体的步骤:

  1. 下载并安装Wireshark。Wireshark是一款免费开源的网络数据包分析工具,可以在其官网上下载安装。
  2. 打开Wireshark,选择需要监听的网络接口。在主界面上,可以选择需要监听的网络接口,例如本地网络、无线网络等。
  3. 过滤TCP协议数据包。Wireshark默认会显示所有类型的网络数据包,因此需要设置过滤器来只显示TCP协议数据包。可以在菜单栏中选择"Capture Filters" -> "tcp",或者使用"tcp port XXXX"(XXXX代表端口号)的方式来设置过滤器。
  4. 开始抓取网络数据包。在设置好过滤器后,点击"Start"按钮开始抓取网络数据包。
  5. 进行TCP连接。在客户端进行TCP连接时,Wireshark将会记录到三次握手的数据包。这些数据包通常包括SYN报文、ACK报文和SYN/ACK报文等,可以在Wireshark的显示窗口中查看这些报文的详细信息

 示例

启动wireshark抓包,打开浏览器输入www.baidu.com

使用ping www.baidu.com 获取IP

TCP三次握手_第3张图片

 

输入过滤条件获取待分析数据包列表

ip.addr==124.237.176.3

TCP三次握手_第4张图片

 第一次握手数据包

标志位SYN 序列号0

seq=0

ack=0 已经收到的包数量,表示当前没有接收到数据。 

TCP三次握手_第5张图片

 第二次握手

标志位 [SYN+ACK]

Seq=0 表示当前还没有发送数据

Ack=1 表示当前成功接收到的数据位数 但实际此时还未收到(含SYN或者FIN标志位的包不携带有效数据)

TCP三次握手_第6张图片

 第三次握手

标志位 ACK 表示已接收到数据

SYN为0

TCP三次握手_第7张图片

 

你可能感兴趣的:(#,接口测试,tcp/ip,网络,服务器)