溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么對Mysql連接請求的tcpdump內容進行分析

發(fā)布時間:2021-09-16 07:48:03 來源:億速云 閱讀:198 作者:chen 欄目:大數(shù)據(jù)

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


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

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

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

這樣一份報文通常有3部分組成

1. IP報頭

怎么對Mysql連接請求的tcpdump內容進行分析

2. TCP協(xié)議

怎么對Mysql連接請求的tcpdump內容進行分析

3. mysql協(xié)議

怎么對Mysql連接請求的tcpdump內容進行分析

逐行分析如下

4500 0039 3881 4000 4006 7fcf c0a8 00d7

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

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

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

  • 3881 IP報文頭的Identification

  • 4000 - 為IP Flags和Fragment Offset

  • 000 IP Flags

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

  • 7fcf - Header Checksum 首部查錯

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

c0a8 0047 a034 0cea 860b e11e c2fc 7f64

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

  • a034 - 源端口號 轉換十進制 41012

  • 0cea - 目標端口 轉換十進制 3306

  • 860b e11e - 序列號 2248925470

  • c2fc 7f64 - 確認號 3271327588

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

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

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

  • 296a - 滑動窗口的大小10602

  • 2b0e - TCP部分的Checksum

  • 0000 - TCP部分的緊急指針

到Options部分

  • 0101 - NOP填錯沒有實際意義

  • 080a - 代表開啟timestamp

  • 2de4 786b - 對應的具體時間戳的值769947755

3a4f 5980 0100 0000 0e

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

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

  • 00 - 表示seqid 遞增

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

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

0x00 COM_SLEEP (內部線程狀態(tài))
0x01 COM_QUIT 關閉連接
0x02 COM_INIT_DB 切換數(shù)據(jù)庫
0x03 COM_QUERY SQL查詢請求
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 停止服務器
0x09 COM_STATISTICS 獲取服務器統(tǒng)計信息
0x0A COM_PROCESS_INFO 獲取當前連接的列表
0x0B COM_CONNECT (內部線程狀態(tài))
0x0C COM_PROCESS_KILL 中斷某個連接
0x0D COM_DEBUG 保存服務器調試信息
0x0E COM_PING 測試連通性
0x0F COM_TIME (內部線程狀態(tài))
0x10 COM_DELAYED_INSERT (內部線程狀態(tài))
0x11 COM_CHANGE_USER 重新登陸(不斷連接)
0x12 COM_BINLOG_DUMP 獲取二進制日志信息
0x13 COM_TABLE_DUMP 獲取數(shù)據(jù)表結構信息
0x14 COM_CONNECT_OUT (內部線程狀態(tài))
0x15 COM_REGISTER_SLAVE 從服務器向主服務器進行注冊
0x16 COM_STMT_PREPARE 預處理SQL語句
0x17 COM_STMT_EXECUTE 執(zhí)行預處理語句
0x18 COM_STMT_SEND_LONG_DATA 發(fā)送BLOB類型的數(shù)據(jù)
0x19 COM_STMT_CLOSE 銷毀預處理語句
0x1A COM_STMT_RESET 清除預處理語句參數(shù)緩存
0x1B COM_SET_OPTION 設置語句選項
0x1C COM_STMT_FETCH 獲取預處理語句的執(zhí)行結果

在mysql請求過程中還有產生其他類型協(xié)議包數(shù)據(jù),故需要我們對mysql請求過程有基本的認識。

mysql 請求過程介紹

1.建立tcp連接三次握手

2.與Mysql服務器建立連接

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

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

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

3.認證通過以后,服務器端接收客戶端命令包,返回對應的響應包

到此,關于“怎么對Mysql連接請求的tcpdump內容進行分析”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI