【第182期 December 5, 2012】
 

產業觀察

證券交易之低延遲訊息交換技術發展與應用

作者/王宜倫

[發表日期:2012/12/5]




前言

近些年來,高頻交易(High Frequency Trading)一直是全球證券市場最夯的話題之一,運用高頻交易的投資人藉由超高速的運算能力,能夠更快速的獲取最新的市場交易資訊,依據策略更有效率的判斷買入賣出行為並更迅速的進行下單,雖然每筆交易僅能獲得極低的利潤,但是透過密集的交易,仍可累積相當高之獲利。隨者高頻交易的興盛,資訊系統不再是單純的技術支援系統,已搖身成為重要經營策略之一,也因如此,全球證券市場也不斷的進行IT投資的軍備競賽。

一個優異的資訊系統,需考量網路傳輸基礎架構、訊息交換機制、系統平台效能與應用系統之設計;隨著交易頻率的提高,交易行情資訊倍增,如何在最短的時間內完成訊息的傳遞與交換,成為資訊系統面臨的重大挑戰,本篇文章針對訊息交換機制,以及負責訊息傳遞的相關網路技術進行探討。

訊息交換機制

跨平台系統訊息交換大致可分為daemon based、server based以及API based等三種方式,以下針對此三種方式說明其架構與優缺點。

一、Daemon-based訊息交換機制

此方式利用一daemon程式負責訊息的傳遞與接收,應用程式(source)將傳送的訊息交給daemon程式,該daemon程式會將此訊息傳遞給遠端系統上的daemon程式,遠端daemon程式再將訊息傳遞給接收應用程式(receiver)。此種交換機制設計非常普遍,通常一般使用者可以自行撰寫multitask的socket程式作為daemon,由該socket程式負責通訊層並可設定訊息的routing機制。


《圖一》


使用此機制的訊息導向中介軟體產品(Message Oriented Middleware,MOM)設計上通常會提供daemon程式與通訊函式庫(library),應用程式(source)可利用該函式庫與daemon程式連接,本機連接方式採取IPC (inter-process communication)、TCP loopback等方式,daemon程式在區域網路上可使用TCP、UDP reliable multicast等transport模式傳送和接收資料;應用程式使用topic字串來傳送和接收訊息,並不需要知道對方IP address,且若採用reliable multicast通訊協議可同時擁有擴充性和可靠性。

但是使用此方式,每一個訊息傳輸動作,都要先經過source、daemon、kernel再到remote端的kernel、daemon、receiver等流程,會有多次的context switch,在高量的環境下,會需要大量的系統資源,且會因為處理多次context switch導致處理效能降低,增加延遲時間,對應用系統的效益打折。且此方式採用multicast transport模式若發生網路不穩或是重傳等狀況可能會引發“NAK storm”問題;且在多receiver的架構下,若有一receiver異常,可能造成“crybaby receiver”的問題,影響所有的receiver。

二、Server based訊息交換機制

此方式利用一server (message router)來負責message的routing,Source端與receiver端應用程式直接包含socket程式功能與該server (message router)連接,或是利用IPC (inter-process communication)將訊息送給socket程式,再傳遞到該message router。


《圖二》


使用此機制的訊息導向中介軟體產品設計上包含message router與通訊函式庫(communication library),message router通常執行於獨立的server(EAI server),該函式庫自動建立應用程式與“message router”之連線,由於message router是單一節點,因此採用TCP transport模式,使用TCP的優勢在於不限於區域網路,且由kernel負責流量控管與重傳等機制,應用上不會有UDP multicast模式NAK storm問題。

使用此種方式對於擴充性和延遲時間有較昂貴的代價,例如:若有多個receiver訂閱相同的訊息,message router server必須要針對每一個receiver發送相同的訊息,例如有100個receiver要接收相同的訊息,message router server需要傳送100次相同的訊息,所以message router server所在伺服器的網路連線和CPU處理能力會是限制應用系統效能的瓶頸。

為了解決上述限制,部分廠商採用FPGA解決方案來取代傳統處理器架構server,FPGA 整合了ASIC與處理器架構系統的優點,具有硬體時脈的速度與可靠性,且其僅需少量即可進行作業;可重新程式設計的晶片,具有與軟體相同的彈性,卻不受限於處理核心的數量;與處理器不同的是,FPGA為實際的平行架構,因此不同的處理作業並不需要佔用相同資源,每個獨立的處理作業均將指派至專屬的晶片區塊,不需影響其他邏輯區塊即可自動產生功能;因此,當新增其他處理作業時,應用程式效能亦不會受到影響。

三、API based訊息交換機制

此方式將網路傳輸層與message routing均整合在API中,將應用系統業務邏輯功能與訊息交換機制整合為單一程式,不需要daemon與message router server,source端和receiver端應用程式使用API (Application Programmer Interface)直接傳送和接收訊息。


《圖三》


使用此機制的訊息導向中介軟體產品設計上通常均支援UDP的reliable multicast、reliable unicast或是TCP transport模式,使用者可利用設定參數的方式來滿足擴充性和可靠性需求,使用上最具彈性,應用系統架構不會受限於訊息交換機制;因為單一程式同時處理應用系統業務邏輯和訊息交換機制,所以,採用multicore處理器與multithread程式設計技術可發揮最佳效能。

網路架構之發展與應用

資料中心雲端化,越來越大量的資訊以“雲+端”的形式來儲存與展現,每秒訊息的交換量急劇增加,使得資料中心面臨越來越大的壓力,任一過載造成設備當機導致停擺都會損失數以百萬計的交易訊息,並且極大量的金錢損失。

訊息交換機制運作仰賴低延遲、有效率的高速訊息網路架構,在高速運算電腦系統(High Performance Computing)主要以Gigabit Ethernet (含10G)與InfiniBand網路為主要網路架構;在T500 supercomputer中,採用InfiniBand網路的系統占了44.8%,Gigabit Ethernet占了37.8%(其中10GigE占了6%),與去年同期相比較,InfiniBand網路成長了3%,Gigabit Ethernet萎縮了7%,但10GigE成長了3.2%。相較於Ethernet網路,大部分使用者對InfiniBand網路較為陌生,本篇文章主要就InfiniBand技術進行說明。


《圖四》
資料來源: http://i.top500.org/stats


一、InfiniBand網路架構

InfiniBand網路主要用於高速運算電腦系統(High Performance Computing)與企業的電腦中心,主要特性包含低延遲時間、高傳輸頻寬、高傳輸品質和擴充能力。

InfiniBand在訊息交換網路架構採用點對點、基於通道的訊息傳遞模式,同時,網路能夠為兩個不同的節點提供多種可能的通道;InfiniBand是一個統一的交互聯結網路架構,既可以處理儲存I/O、網路I/O,也能夠處理process間通訊(IPC),它可以同時支援磁碟陣列、SANs、LANs、伺服器和叢集伺服器進行互聯,也可以連接外部網絡(比如WAN、VPN、Internet)。InfiniBand可以在相對短的距離內提供高頻寬、低延遲的傳輸,而且在單個或多個網路中支持redundancy的I/O通道,因此能保持資料中心在局部故障時仍能運轉。

Ethernet網路架構可跨越全球,InfiniBand則不同,其主要用於單一機房的資料中心、分布於校園內或者位於城市局部,最大距離取決於纜線類型(銅線或光纖)、連接的質量、傳輸速率和收發器;如果是光纖、單模的收發器和基本傳輸速率的情況下,InfiniBand的最大距離大約是10公里。

InfiniBand技術不是用於一般網絡連接的,它的主要設計目的是針對伺服器端的連接問題的;因此,InfiniBand技術將會被應用於伺服器與伺服器(例如複製、分散式架構),伺服器和儲存設備(SAN和直接附加儲存DAS)以及伺服器和網路之間(LAN、WAN和Internet)的通訊,InfiniBand網路架構如下圖所示。


《圖五》


在發展的過程中,隨著頻寬的需求大幅提昇,InfiniBand也從以往每個鏈結2.5Gbps,發展出以倍數資料傳輸率的技術,也就是資料傳輸速率為系統時脈的倍數,第一代,也就是俗稱的SDR在2003年開始供貨,第二代DDR則是2005年,第三代QDR則是2009年。未來之roadmap包含FDR、EDR、HDR與NDR等。InfiniBand傳輸數度如下表所示,單位Gbps,此數據為實際資料頻寬(data rate),括號中數據為Signal rate。



二、Ethernet網路架構

Ethernet網路是應用最廣且最為普遍的網路架構,目前商用最高頻寬為10GigE網路,雖然已推出一段時日,但是價格相對InfiniBand較為昂貴,尚無法在高速運算電腦系統世界中取得優勢。目前Ethernet發展,除了10GigE外,IEEE也定義40GigE和100GigE,藉由多個10Gbit/s或25Gbit/s的通道提供40和100 Gigabit的頻寬;用戶對於導入100 Gigabit Ethernet技術主要考量為經濟因素,且現今業界100 Gigabit Ethernet的設備並非是標準產品,進入此領域的廠商仍在進行內部的研發或是與特定公司進行合作開發,且預測可能會跳過40 Gigabit Ethernet直接到100 Gigabit Ethernet。

訊息交換產品與高速網路整合應用

訊息交換產品在業界主要包含訊息導向中介軟體(Message Oriented Middleware,MOM)、交易處理中介軟體(Transaction server middleware)兩大類,交易處理中介軟體除了具備訊息交換之功能外,主要以提供application server功能為主,因此,在跨平台訊息交換能力與效率上不如訊息導向中介軟體。

目前訊息導向中介“軟體”產品廠商包含Informatica UM、IBM LLM、TIBCO,部份大型企業考量其自身需求,也採取自行開發的策略;部分廠商採用FPGA技術推出“硬體”產品包含TIBCO、Tervela、Solace等。

訊息交換產品搭配GigE網路時,使用TCP、UDP(multicast、unicast),若搭配10GigE網路,除了TCP、UDP傳輸模式外,也可選擇使用RDMA模式進行訊息交換;除了RDMA技術外,尚可應用TOE (TCP/IP Offload Engine)、Kernel Bypass、Zero-Copy等技術來提升傳輸效率並降低延遲時間。

訊息交換產品搭配InfiniBand網路時,大致採取下列三種技術:IP over InfiniBand (IPoIB)、Sock Direct Protocol (SDP)與Remote Direct Memory Access (RDMA);其中IPoIB為最普遍之方式,其上層仍使用IP通訊協定,但是底層採用InfiniBand傳輸模式,此方式需要在InfiniBand packet上外加IP header,因此,傳輸效能略有延遲,但是因為InfiniBand在設計上支援IP的各種傳輸模式應用,包含TCP、UDP (multicast、unicast),所以此方式建置上最為方便;在SDP與RDMA的應用上,訊息交換產品廠商與InfiniBand廠商有合作推出相關套件,可讓訊息交換產品直接應用SDP傳輸模式,或是直接採用RDMA進行訊息交換。大部分的訊息交換產品都支援InfiniBand和GigE/10GigE等網路架構,依據各廠商的實測數據,InfiniBand在傳輸效能、延遲時間的表現上均優於10GigE。

參考資料

http://en.wikipedia.org/wiki/InfiniBand
http://en.wikipedia.org/wiki/100_Gigabit_Ethernet
http://www.informatica.com/
http://i.top500.org/stats