这篇文章主要介绍”怎么对Mysql连接请求的tcpdump内容进行分析”,在日常操作中,相信很多人在怎么对Mysql连接请求的tcpdump内容进行分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答“怎么对Mysql连接请求的tcpdump内容进行分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
引用>tcpdump是通过拦截发送和收到的网络连接中的TCP/IP和其他数据包,通常在我们WEB开发中,我们提供http服务或者调用http服务的过程中经常会遇到阅读时间/连接重置等网络异常信息,通过tcpdump工具帮助我们分析三次握手或者四次挥手的数据包情况,就能很容易的帮助我们分析出网络在哪一个步骤出的问题。
接下来我们通过分析Mysql的连接请求,来了解网络的请求过程和协议的具体内容。
0 x0000: 4500 0039 3881 4000 4006 7对c0a8 00 d7
0 x0010: c0a8 0047 a034 0东航860 b e11e c2fc 7 f64
0 x0020: 8018 296 0000 0101 080 2 b0e de4 786 b
0 x0030: 3 a4f 5980 0100 0000 0 e这样一份报文通常有3部分组成
<强> 1。IP报头强>
<强> 2。TCP协议强>
<强> 3。mysql协议强>
<强>逐行分析如下强>
4500 0039 3881 4000 4006 7对c0a8 00 d7
<李>
<>之前,,我们读出接下来的5字节,00,0039年,3881年45 - 4为版本5为头长度,那么这个协议头的长度就是5字节
李><李>
<>之前,,0,0100,0000,0000,Fragment :相对0原始报文头的偏移量00服务类型的标识优先级延迟要求吞吐量信息等
李> <李>0039总长度换算十进制结果是57岁与我们获取到的结果的字节数量一致
李> <李>3881 IP报文头的鉴定
李> <李>4000 -为IP旗帜和分段偏移
李> <李>000 IP旗帜
李><李>
4006 - 40为TTL一个协议访问的生存周期06代表TCP协议
李> <李>7自由现金流量-头校验和首部查错
李> <李>c0a8 00 d7 -源主机IP地址段c0 (192) a8 (168) 00 (0) d7 (215)
李>c0a8 0047 a034 0东航860 b e11e c2fc 7 f64
<李>
c0a8 0047 -代表目标主机的IP地址(到这里IP协议部分就结束了,恰好是20字节,接下来就要进入TCP部分解析了)
李> <李>a034 -源端口号转换十进制41012
李> <李>0 cea -目标端口转换十进制3306
李> <李>860 b e11e——序列号2248925470
李> <李>c2fc 7 f64 -确认号3271327588
李>2 b0e 8018 296 0000 0101 080 2 de4 786 b
<李>
80 - 8表示偏移抵消0为保留位
李> <李>18 - TCP的传说状态1 Ack 8表示推这大概就是第一行(p。)的由来把
李> <李>296 -滑动窗口的大小10602
李> <李>2 b0e - TCP部分的校验和
李> <李>0000 - TCP部分的紧急指针
李><强>到选项部分强>
<李>
0101 - NOP填错没有实际意义
李> <李>080 -代表开启时间戳
李> <李>2 de4 786 b -对应的具体时间戳的值769947755
李>3 a4f 5980 0100 0000 0 e
<李>
3 a4f 5980 -还是时间戳的一部分ecr值
李> <李>0100 00 -表示具体内容长度1字节
李> <李>00 -表示seqid递增
李> <李>0 e -通过查询mysql语义,代表COM_PING测试联通性
李>以下列举了所有在客户端请求部分16进制数代表的mysql语义,通过不同的语义需要进行不同的转换才能获得想要的内容,这里就不列举更多例子了
0 x00 COM_SLEEP(内部线程状态)
0 x01 COM_QUIT关闭连接
0 x02 COM_INIT_DB切换数据库
0 x03 COM_QUERY SQL查询请求
0 x04 COM_FIELD_LIST获取数据表字段信息
0 x05 COM_CREATE_DB创建数据库
0 x06 COM_DROP_DB删除数据库
0 x07 COM_REFRESH清除缓存
(COM_SHUTDOWN停止服务器
0 x09 COM_STATISTICS获取服务器统计信息怎么对Mysql连接请求的tcpdump内容进行分析