TCP 三次握手

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 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 连接完全关闭,双方都可以释放连接的资源。

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
20天前
|
网络协议 网络架构
|
10月前
|
网络协议
tcp/ip之三次握手,四次挥手(超级详解)
tcp/ip之三次握手,四次挥手(超级详解)
116 0
|
1月前
|
网络协议 Linux 网络安全
TCP三次握手的相关问题及解答
TCP三次握手的相关问题及解答
25 0
|
10月前
|
存储 缓存 网络协议
TCP三次握手详解
TCP是面向连接的协议,它基于运输连接来传送TCP报文段,TCP运输连接的建立和释放,是每一次面向连接的通信中必不可少的过程。
139 0
|
网络协议
TCP三次握手
TCP三次握手
73 0
|
网络协议 Linux
tcp的三次握手
tcp的三次握手。
157 0
tcp的三次握手
|
网络协议 Linux
tcp的三次握手。
tcp的三次握手。
|
网络协议
TCP的四次挥手
TCP的四次挥手
107 0
|
网络协议
TCP三次握手四次挥手
=1表示确认号字段ack有效(规定:在连接建立后所有传送的报文段都必须ACK=1)。 注意:
125 0
TCP三次握手四次挥手
|
存储 缓存 网络协议
TCP的三次握手(3)
TCP的三次握手(3)
76 0
TCP的三次握手(3)