怎么對(duì)Mysql連接請(qǐng)求的tcpdump內(nèi)容進(jìn)行分析

這篇文章主要介紹“怎么對(duì)MySQL連接請(qǐng)求的tcpdump內(nèi)容進(jìn)行分析”,在日常操作中,相信很多人在怎么對(duì)Mysql連接請(qǐng)求的tcpdump內(nèi)容進(jìn)行分析問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對(duì)大家解答”怎么對(duì)Mysql連接請(qǐng)求的tcpdump內(nèi)容進(jìn)行分析”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比嘉黎網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式嘉黎網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋嘉黎地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。


tcpdump是通過攔截發(fā)送和收到的網(wǎng)絡(luò)連接中的TCP/IP和其他數(shù)據(jù)包,通常在我們WEB開發(fā)中,我們提供http服務(wù)或者調(diào)用http服務(wù)的過程中經(jīng)常會(huì)遇到read time out/connect reset等網(wǎng)絡(luò)異常信息,通過tcpdump工具幫助我們分析三次握手或者四次揮手的數(shù)據(jù)包情況,就能很容易的幫助我們分析出網(wǎng)絡(luò)在哪一個(gè)步驟出的問題。

接下來我們通過分析Mysql的連接請(qǐng)求,來了解網(wǎng)絡(luò)的請(qǐng)求過程和協(xié)議的具體內(nèi)容。

0x0000: 4500 0039 3881 4000 4006 7fcf c0a8 00d7
0x0010: c0a8 0047 a034 0cea 860b e11e c2fc 7f64
0x0020: 8018 296a 2b0e 0000 0101 080a 2de4 786b
0x0030: 3a4f 5980 0100 0000 0e

這樣一份報(bào)文通常有3部分組成

1. IP報(bào)頭

怎么對(duì)Mysql連接請(qǐng)求的tcpdump內(nèi)容進(jìn)行分析

2. TCP協(xié)議

怎么對(duì)Mysql連接請(qǐng)求的tcpdump內(nèi)容進(jìn)行分析

3. mysql協(xié)議

怎么對(duì)Mysql連接請(qǐng)求的tcpdump內(nèi)容進(jìn)行分析

逐行分析如下

4500 0039 3881 4000 4006 7fcf c0a8 00d7

  • 45 - 4 為Version 5 為Header Length,那么這個(gè)協(xié)議頭的長度就是5字節(jié)

  我們讀出接下來的5字節(jié) 00 0039 3881
  • 00 Type Of Service標(biāo)識(shí)優(yōu)先級(jí) 延遲要求 吞吐量信息等

  • 0039 Total Length 換算十進(jìn)制結(jié)果是 57 與我們獲取到的結(jié)果的字節(jié)數(shù)量一致

  • 3881 IP報(bào)文頭的Identification

  • 4000 - 為IP Flags和Fragment Offset

  • 000 IP Flags

  0 0100 0000 0000 Fragment :相對(duì)0原始報(bào)文頭的偏移量
  • 4006 - 40 為TTL 一個(gè)協(xié)議訪問的生存周期 06 代表TCP協(xié)議

  • 7fcf - Header Checksum 首部查錯(cuò)

  • c0a8 00d7 - 源主機(jī)IP地址段 c0(192) a8(168) 00(0) d7 (215)

c0a8 0047 a034 0cea 860b e11e c2fc 7f64

  • c0a8 0047 - 代表目標(biāo)主機(jī)的IP地址 (到這里IP協(xié)議部分就結(jié)束了,恰好是20字節(jié),接下來就要進(jìn)入TCP部分解析了)

  • a034 - 源端口號(hào) 轉(zhuǎn)換十進(jìn)制 41012

  • 0cea - 目標(biāo)端口 轉(zhuǎn)換十進(jìn)制 3306

  • 860b e11e - 序列號(hào) 2248925470

  • c2fc 7f64 - 確認(rèn)號(hào) 3271327588

8018 296a 2b0e 0000 0101 080a 2de4 786b

  • 80 - 8表示偏移 Offset 0 為保留位

  • 18 - tcp的傳說狀態(tài) 1 Ack 8表示PUSH 這大概就是第一行 [P.]的由來把

  • 296a - 滑動(dòng)窗口的大小10602

  • 2b0e - TCP部分的Checksum

  • 0000 - TCP部分的緊急指針

到Options部分

  • 0101 - NOP填錯(cuò)沒有實(shí)際意義

  • 080a - 代表開啟timestamp

  • 2de4 786b - 對(duì)應(yīng)的具體時(shí)間戳的值769947755

3a4f 5980 0100 0000 0e

  • 3a4f 5980 - 還是時(shí)間戳的一部分 ecr值

  • 0100 00 - 表示具體內(nèi)容長度1字節(jié)

  • 00 - 表示seqid 遞增

  • 0e - 通過查詢mysql語義,代表 COM_PING 測試聯(lián)通性

以下列舉了所有在客戶端請(qǐng)求部分16進(jìn)制數(shù)代表的mysql語義,通過不同的語義需要進(jìn)行不同的轉(zhuǎn)換才能獲得想要的內(nèi)容,這里就不列舉更多例子了

0x00 COM_SLEEP (內(nèi)部線程狀態(tài))
0x01 COM_QUIT 關(guān)閉連接
0x02 COM_INIT_DB 切換數(shù)據(jù)庫
0x03 COM_QUERY SQL查詢請(qǐng)求
0x04 COM_FIELD_LIST 獲取數(shù)據(jù)表字段信息
0x05 COM_CREATE_DB 創(chuàng)建數(shù)據(jù)庫
0x06 COM_DROP_DB 刪除數(shù)據(jù)庫
0x07 COM_REFRESH 清除緩存
0x08 COM_SHUTDOWN 停止服務(wù)器
0x09 COM_STATISTICS 獲取服務(wù)器統(tǒng)計(jì)信息
0x0A COM_PROCESS_INFO 獲取當(dāng)前連接的列表
0x0B COM_CONNECT (內(nèi)部線程狀態(tài))
0x0C COM_PROCESS_KILL 中斷某個(gè)連接
0x0D COM_DEBUG 保存服務(wù)器調(diào)試信息
0x0E COM_PING 測試連通性
0x0F COM_TIME (內(nèi)部線程狀態(tài))
0x10 COM_DELAYED_INSERT (內(nèi)部線程狀態(tài))
0x11 COM_CHANGE_USER 重新登陸(不斷連接)
0x12 COM_BINLOG_DUMP 獲取二進(jìn)制日志信息
0x13 COM_TABLE_DUMP 獲取數(shù)據(jù)表結(jié)構(gòu)信息
0x14 COM_CONNECT_OUT (內(nèi)部線程狀態(tài))
0x15 COM_REGISTER_SLAVE 從服務(wù)器向主服務(wù)器進(jìn)行注冊
0x16 COM_STMT_PREPARE 預(yù)處理SQL語句
0x17 COM_STMT_EXECUTE 執(zhí)行預(yù)處理語句
0x18 COM_STMT_SEND_LONG_DATA 發(fā)送BLOB類型的數(shù)據(jù)
0x19 COM_STMT_CLOSE 銷毀預(yù)處理語句
0x1A COM_STMT_RESET 清除預(yù)處理語句參數(shù)緩存
0x1B COM_SET_OPTION 設(shè)置語句選項(xiàng)
0x1C COM_STMT_FETCH 獲取預(yù)處理語句的執(zhí)行結(jié)果

在mysql請(qǐng)求過程中還有產(chǎn)生其他類型協(xié)議包數(shù)據(jù),故需要我們對(duì)mysql請(qǐng)求過程有基本的認(rèn)識(shí)。

mysql 請(qǐng)求過程介紹

1.建立tcp連接三次握手

2.與Mysql服務(wù)器建立連接

  • Server --> Client: Handshake(握手)

1字節(jié):協(xié)議版本號(hào)
NullTerminatedString:數(shù)據(jù)庫版本信息
4字節(jié):連接MySQL Server啟動(dòng)的線程ID
8字節(jié):挑戰(zhàn)隨機(jī)數(shù),用于數(shù)據(jù)庫認(rèn)證
1字節(jié):填充值(0x00)
2字節(jié):用于與客戶端協(xié)商通訊方式
1字節(jié):數(shù)據(jù)庫的編碼
2字節(jié):服務(wù)器狀態(tài)
13字節(jié):預(yù)留字節(jié)
12字節(jié):挑戰(zhàn)隨機(jī)數(shù),用于數(shù)據(jù)庫認(rèn)證
1字節(jié):填充值(0x00)
  • Client --> Server: Authentication (認(rèn)證)

4字節(jié):用于與客戶端協(xié)商通訊方式
4字節(jié):客戶端發(fā)送請(qǐng)求報(bào)文時(shí)所支持的最大消息長度值
1字節(jié):標(biāo)識(shí)通訊過程中使用的字符編碼
23字節(jié):保留字節(jié)
NullTerminatedString:用戶名
LengthEncodedString:加密后的密碼
NullTerminatedString:數(shù)據(jù)庫名稱(可選)
  • Server --> Client: 返回認(rèn)證結(jié)果包

3.認(rèn)證通過以后,服務(wù)器端接收客戶端命令包,返回對(duì)應(yīng)的響應(yīng)包

到此,關(guān)于“怎么對(duì)Mysql連接請(qǐng)求的tcpdump內(nèi)容進(jìn)行分析”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

網(wǎng)站標(biāo)題:怎么對(duì)Mysql連接請(qǐng)求的tcpdump內(nèi)容進(jìn)行分析
URL標(biāo)題:http://muchs.cn/article36/ihdssg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、定制開發(fā)、網(wǎng)站排名、云服務(wù)器、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名