資料傳輸方式紀錄

資料傳輸常見Json, XML 的方式傳送,但這裡我們要說明的是在細節一點的格式傳輸方式

Byte 格式傳輸

一般各種格式的資料,傳輸前都必須轉為 byte 格式

例如,數字、字串… 轉為 byte ,再用 byte 格式傳送

FIX/Fast 資料格式傳輸

證券即時行情、各類統計資訊傳輸,都相當要求速度及品質

因此國內證交所即採用 FIX(Financial Information eXchange) 傳輸協定搭配FAST資料流壓縮技術,來達到一定的效率

例如,證交所資料伺服器(MDS, Market Data Server) 主要負責Fix/Fast資料處理

處理後會透過內網分送到不同 VM DAP-RT (Data Access Point Real-Time)

每一個界接資訊的用戶,都可以連線到專屬的 DAP-RT

FIX 基本格式為 Tag=Value Tag=Value….

FIX 雖然可讀性高,但是純字串格式傳輸效能並不好

因此,會再將此字串透過 FAST 壓縮成二進位,提升資料傳輸速度

除此外,FAST 資料格式會在第一個 bit 作為判別是否還有其他資料(1:有, 0:結束)

Byte + FIX

前面提到的 byte 轉換方式,可以結合FIX 的格式來建立資料

將FIX字串轉換為 byte 格式,接著就可以透過 Socket…各種方式將資料傳送出去

//傳送byte資料
string transferData = "001=Adam 002=0999888777 003=Male 004=Tw";
byte[] buff = Encoding.Default.GetBytes(transferData);

接收方 byte 格式資料後,可將轉換為字串 在依照兩方溝通的FIX對照方式,參照資料意義

//=========傳輸=========
//接收byte 資料
string reciveData = Encoding.Default.GetString(buff);
Console.WriteLine(reciveData);