Skip to content

Commit

Permalink
update sql docs
Browse files Browse the repository at this point in the history
  • Loading branch information
fengzhao committed Oct 31, 2024
1 parent 5d539d4 commit c7dffe5
Showing 1 changed file with 2 additions and 12 deletions.
14 changes: 2 additions & 12 deletions docs/foundmental/1.MySQL协议分析与抓包概述.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,23 +81,13 @@ MySQL 连接的方式有多种, 比如 TCP/IPv4、TCP/IPv6、UNIX domain sockets
- TCP三次握手,这里简化不做过多赘述,任何基于TCP的应用都要经历这个过程
- MySQL协议:服务器 -> 客户端:握手初始化消息(Initial HandShake Packet)
- 初次握手从服务器发送`Protocol::Handshake`数据包开始。在这之后,客户端可以选择使用`Protocol::SSLRequest`数据包请求建立SSL连接,然后客户端发送`Protocol::HandshakeResponse`数据包。
- 这里我们忽略SSL过程(假定客户端不请求SSL连接),因为数据库建立SSL连接开销挺大的,实际生产中也很少这样做。
- **这里我们忽略SSL过程(假定客户端不请求SSL连接),因为数据库建立SSL连接开销挺大的,实际生产中也很少这样做。**
- MySQL协议:客户端 -> 服务器:登陆认证消息(Login Packet)
- MySQL协议:服务器 -> 客户端:认证结果消息 ()













- 客户端与服务端建立 TCP 连接, 出于性能的考虑, 客户端和服务端之间一般建立 TCP 长连接, 这样可以避免每次客户端要与服务器通信都再进行一次连接建立操作, 客户端可以将建立好的 TCP 连接缓存在连接池中, 以便需要的时候可以直接拿来用。
客户端与服务端建立 TCP 连接, 出于性能的考虑,客户端和服务端之间一般建立 TCP 长连接,这样可以避免每次客户端要与服务器通信都再进行一次连接建立操作,客户端可以将建立好的 TCP 连接缓存在连接池中, 以便需要的时候可以直接拿来用。

- 服务端向客户端返回 Initial HandShake Packet, 客户端解析包结构并返回 HandShake Response Packet, 数据包中携带能力交换信息, 要登录的用户等, 在这个阶段, 客户端也可以向服务端返回 SSL Connection Request Packet, 请求服务端开启 SSL 连接, 之后便是 SSL 的数据交换, 此过程完成以后, 客户端再向服务端返回 Handshake Response Packet。

Expand Down

0 comments on commit c7dffe5

Please sign in to comment.