[翻译]mysql通信协议(3)-Protocol Basics 之 MySQL Packets

官网地址:Protocol Basics


如果MySQL客户端或服务器想要发送数据,则:

  • Splits the data into packets of size 224 bytes 将数据分割成大小为224字节的数据块
  • Prepends to each chunk a packet header在每个数据块前面添加一个数据包头

Protocol::Packet

客户端和服务端交换数据包数据最大为16MByte

载荷

Sending More Than 16Mb

如果有效载荷大于或等于224-1字节,则将长度设置为224-1(ff ff ff),并且将额外的分组与其余的有效载荷一起发送,直到分组的有效载荷小于224-1字节。
举个例子:发送16 777 215 (224-1) 个字节

ff ff ff 00 ...
00 00 00 01

Sequence ID

sequence-id随每个数据包递增,并可以环绕。 它从0开始,并且在命令阶段开始新命令时重置为0。

Describing Packets 包的描述

在本文档中,我们首先定义每个数据包的有效负载并提供一个示例,显示发送的每个数据包,包括其数据包头:


  
  direction: client -> server
  response: 
  payload:
            

举例:

01 00 00 00 01

一些包有一些可选参数,或者有不同的可选标识去选择。Capabilities Flags.

如果一个字段具有固定值,则其描述将其显示为括号中的十六进制值,如下所示:[00]

你可能感兴趣的:([翻译]mysql通信协议(3)-Protocol Basics 之 MySQL Packets)