亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

發布時間:2021-09-16 07:48:03 來源:億速云 閱讀:205 作者:chen 欄目:大數據

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


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

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

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協議

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

3. mysql協議

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

逐行分析如下

4500 0039 3881 4000 4006 7fcf c0a8 00d7

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

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

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

  • 3881 IP報文頭的Identification

  • 4000 - 為IP Flags和Fragment Offset

  • 000 IP Flags

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

  • 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協議部分就結束了,恰好是20字節,接下來就要進入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的傳說狀態 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字節

  • 00 - 表示seqid 遞增

  • 0e - 通過查詢mysql語義,代表 COM_PING 測試聯通性

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

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

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

mysql 請求過程介紹

1.建立tcp連接三次握手

2.與Mysql服務器建立連接

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

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

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

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

到此,關于“怎么對Mysql連接請求的tcpdump內容進行分析”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

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

AI

新邵县| 山阴县| 高陵县| 恩施市| 襄垣县| 高尔夫| 祁阳县| 惠水县| 咸丰县| 出国| 民乐县| 资源县| 龙岩市| 荆州市| 灵寿县| 陇川县| 阿荣旗| 宁乡县| 云浮市| 黔南| 林甸县| 潼关县| 岱山县| 远安县| 仁布县| 鄯善县| 富平县| 石泉县| 汉中市| 盐亭县| 思茅市| 兴文县| 亚东县| 民权县| 常熟市| 金坛市| 连山| 玛沁县| 鲁山县| 祁东县| 西青区|