TCP 三次握手

简介: TCP 三次握手

TCP 三次握手是建立 TCP 连接时使用的一种协议,确保通信双方的主机都能正常收发数据。下面是 TCP 三次握手的详细过程:

 

1. **客户端发送 SYN(同步)报文**:客户端发送一个带有 SYN 标志的 TCP 报文段,表示请求建立连接,并选择一个初始序列号(ISN)用于后续数据传输的序号计数。

2. **服务器回应 SYN-ACK 报文**:服务器接收到客户端的 SYN 报文后,如果同意建立连接,会发送一个带有 SYN 和 ACK(确认)标志的 TCP 报文段作为应答。服务器也会选择一个自己的初始序列号作为 ISN。

3. **客户端发送 ACK 报文**:客户端接收到服务器的 SYN-ACK 报文后,会向服务器发送一个带有 ACK 标志的 TCP 报文段作为确认。此时,TCP 连接已经建立,通信双方可以开始传输数据。

 

示例: 

假设客户端 IP 地址为 192.168.1.100,服务器 IP 地址为 192.168.2.200,端口号分别为 12345(客户端)和 80(服务器)。

 

1. 客户端发送 SYN 报文:

```
   源 IP: 192.168.1.100
   目的 IP: 192.168.2.200
   源端口: 12345
   目的端口: 80
   序列号: x
   标志位: SYN=1, ACK=0
   ```

 

2. 服务器回应 SYN-ACK 报文:

```
   源 IP: 192.168.2.200
   目的 IP: 192.168.1.100
   源端口: 80
   目的端口: 12345
   序列号: y
   确认号: x+1
   标志位: SYN=1, ACK=1
   ```

 

3. 客户端发送 ACK 报文:

```
   源 IP: 192.168.1.100
   目的 IP: 192.168.2.200
   源端口: 12345
   目的端口: 80
   序列号: x+1
   确认号: y+1
   标志位: ACK=1
   ```

 

此时,TCP 连接建立成功,客户端和服务器可以开始进行数据传输。

当客户端和服务器之间的通信结束后,需要断开连接时,会使用 TCP 四次挥手来关闭连接。下面是 TCP 四次挥手的详细过程:

1. **客户端发送 FIN 报文**:当客户端需要关闭连接时,会发送一个带有 FIN(结束)标志的 TCP 报文段给服务器,表示客户端已经完成发送数据,希望关闭连接。

2. **服务器回应 ACK 报文**:服务器接收到客户端的 FIN 报文后,会发送一个带有 ACK 标志的 TCP 报文段作为确认。服务器此时进入半关闭状态,可以继续向客户端发送数据,但无法再接收来自客户端的数据。 

3. **服务器发送 FIN 报文**:当服务器也需要关闭连接时,会发送一个带有 FIN 标志的 TCP 报文段给客户端,表示服务器已经完成发送数据,希望关闭连接。

4. **客户端回应 ACK 报文**:客户端接收到服务器的 FIN 报文后,会发送一个带有 ACK 标志的 TCP 报文段作为确认。此时,TCP 连接彻底关闭,双方都无法再发送数据。

 

示例:

假设客户端 IP 地址为 192.168.1.100,服务器 IP 地址为 192.168.2.200,端口号分别为 12345(客户端)和 80(服务器)。

 

1. 客户端发送 FIN 报文:

```
   源 IP: 192.168.1.100
   目的 IP: 192.168.2.200
   源端口: 12345
   目的端口: 80
   序列号: a
   标志位: FIN=1, ACK=0
   ```

2. 服务器回应 ACK 报文:

```
   源 IP: 192.168.2.200
   目的 IP: 192.168.1.100
   源端口: 80
   目的端口: 12345
   序列号: b
   确认号: a+1
   标志位: ACK=1
   ```

3. 服务器发送 FIN 报文:

```
   源 IP: 192.168.2.200
   目的 IP: 192.168.1.100
   源端口: 80
   目的端口: 12345
   序列号: c
   确认号: a+1
   标志位: FIN=1, ACK=1
   ```

4. 客户端回应 ACK 报文:

```
   源 IP: 192.168.1.100
   目的 IP: 192.168.2.200
   源端口: 12345
   目的端口: 80
   序列号: a+1
   确认号: c+1
   标志位: ACK=1
   ```

此时,TCP 连接完全关闭,双方都可以释放连接的资源。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
7月前
|
网络协议
|
网络协议
tcp/ip之三次握手,四次挥手(超级详解)
tcp/ip之三次握手,四次挥手(超级详解)
146 0
|
7月前
|
网络协议 Linux 网络安全
TCP三次握手的相关问题及解答
TCP三次握手的相关问题及解答
61 0
|
存储 缓存 网络协议
TCP三次握手详解
TCP是面向连接的协议,它基于运输连接来传送TCP报文段,TCP运输连接的建立和释放,是每一次面向连接的通信中必不可少的过程。
196 0
|
网络协议
TCP三次握手
TCP三次握手
95 0
|
网络协议 Linux
tcp的三次握手
tcp的三次握手。
179 0
tcp的三次握手
|
网络协议 Linux
tcp的三次握手。
tcp的三次握手。
131 0
|
网络协议
TCP的四次挥手
TCP的四次挥手
138 0
|
网络协议
TCP三次握手四次挥手
=1表示确认号字段ack有效(规定:在连接建立后所有传送的报文段都必须ACK=1)。 注意:
158 0
TCP三次握手四次挥手
|
存储 缓存 网络协议
TCP的三次握手(3)
TCP的三次握手(3)
96 0
TCP的三次握手(3)