DRDA協議分析

    DRDA(Distributed Relational Database Architecture )分佈式關係數據庫體系結構。數據庫

    分佈式關係數據庫體系結構(DRDA)是一個跨IBM平臺訪問、遵循SQL標準的數據庫信息的IBM標準。它是IBM的信息倉庫框架中的重要組成部分,該框架定義了龐大的後臺服務器,客戶機可經過較小的基於工做組的中介服務器來訪問它。服務器

    DRDA具備下列功能: 框架

    一、定義了客戶機和後臺數據庫之間的接口協議。    分佈式

    二、提供了IBM的DB二、DBM、SQL/DS和SQL/400數據庫系統的互連框架。  ide

    三、支持多供應商提供的數據庫系統。  加密

    四、支持分佈式數據庫上的事務(工做單元)處理。 code

    在DRDA中,客戶機叫作應用請求器(ARS),後臺服務器叫作應用服務器(AS),協議叫作應用支持協議(ASP),提供AR和AS間的接口。整個過程操做在SNA網上,但也計劃支持OSI和TCP/IP。有一個附加的協議叫作數據庫支持協議(DSP),它使一個AS能對另外一服務器扮演AR的角色。經過這種方法服務器之間能相互通話並傳遞來自客戶AR的請求,如圖D-25所示。最初的協議對一個數據庫只支持一個結構化查詢語言(SQL)的語句,但將來的版本將對一個或多個數據庫提供多個語句的支持。  server

    DRDA是IBM環境中創建客戶機/服務器計算的基礎之一。其它基礎是高級的對等聯網(APPN)和分佈式數據管理(DDM)。經過信息倉庫和DRDA,IBM計算機將它的企業中心組成部分的大型計算機,用做各類類型信息(包括多媒體信息)的存儲平臺。接口

 

DB2使用的DRDA通信協議研究事務


    觀察的結果是基於wireshark。wireshark是否正確直接決定了下面的結果是否正確。

    DB2的版本是V9,使用JAVA的JDBC鏈接。驅動是db2jcc.jar。其餘鏈接方式沒有嘗試過。

DRDA是使用TCP做爲傳輸層協議。

一個數據包有n個DRDA。

DRDA = DDM + n* PARAMETER。(n>=0)。

DDM
做用:描述這個DRDA
組成:(以字節爲單位)
2--length(這個DRDA的長度)
1--Magic
1--Fomat
2--correlID(鏈接的ID)
2--length2(?)
2--code point(描述這個DRDA的用途)

PARAMETER
做用:存放數據
組成:(以字節爲單位)
2--length(這個PARAMETER的長度)
2--code point(描述這個數據的用途)
length-4 -- data (EBCDIC字符)


一:創建鏈接:
第一次交互:客戶端和數據庫服務器交換彼此硬件和軟件的信息。
客戶端:
DDM Code point :EXCSAT(0x1041)
PARAMETER Code point :EXTNAM(0x115e) external name 客戶端
PARAMETER Code point :SRVNAM(0x116d) server name 客戶端
PARAMETER Code point :SRVRLSLV(0x115a) server product release level 客戶端版本
數據庫:
DDM Code point :EXCSATRD(0x1443)


第二次交互:
1.客戶端把數據庫名,用戶名,密碼和使用軟件的信息發送到服務器。接受認證。

DDM Code point :SECCHK(0x106e)請求驗證
PARAMETER Code point :RDBNAM(0x2110)數據庫名
PARAMETER Code point :USERID(0x11a0)用戶名
PARAMETER Code point :PASSWORD(0x11a1)密碼(沒加密)

2.服務器把驗證結果返回給客戶端
驗證成功:
DDM Code point :ACCRDBRM(0x2201)access to RDB completed
驗證失敗:

服務器立刻提出TCP關閉請求。

二:select,insert,update,delete語句(select比較複雜) 客戶端: DDM Code point :SQLSTT(0x2414) (ASCII字符) 裏能夠找到SQL語句 注意:執行select,insert,delete,update語句的時候會發來2句SQL,第二句纔是真正的語句 服務器: 通常是返回幾個SQLCARD(0x2408)和ENDUOWRM(0x220c)End Unit of work condition和其餘信息 select失敗: DDM Code point :OPNQFLRM(0x2212)open query failure select成功: DDM Code point :OPNQRYRM(0x2205) Open Query Complete insert,delete,update失敗: 返回一系列SQLCARD(0x2408),表示失敗的緣由(注意,成功也會返回SQLCARD) insert,delete,update成功: DDM Code point :RDBUPDRM(0x2218) RDB update reply message 三:結束鏈接: 1.客戶端發來請求。 DDM Code point:RDBCMM(0x200e) 2.服務器返回信息。 DDM Code point:ENDUOWRM(0x220c) TCP斷開鏈接

相關文章
相關標籤/搜索