php 代码:
$c = mysql_connect('rm-2ze055i2o78XXXuncs.com','yi_play_user','0A5iXXXXl9');
sleep(10);
$res = mysql_query('select uid,name,mobile from yi_play.yi_user limit 0,280');
sleep(10);
if($c){
echo 'connect ok';
}else{
echo 'connect err';
}
使用wireshare 抓取数据包如下:
分析:
- No 81-87 是客户端与服务端认证阶段
- 201 发送sql语句的包
- 203- 211 服务端返回结果集 数据包 :如下
分析:
- 78-80 是tcp的三次握手
- 267-271 是tcp断开连接的过程
- 中间部分 的protocol 为 TCP 的包作用是什么? 还不知道请大神留言指导,在此感谢!
展开mysql报文结构 : 由 消息头(长度3个字节+ 序号1字节)+ 消息体组成: 如下
序号规律:
- 值范围 0-255 ; 81-87包(认证) 对应 序号 0-4; 198-200包 对应序号 0-1; 201-211 包(查询sql执行) 对应 0-255 和0- 30包;
- 266包(mysql客户端断开连接) 对应 序号0