通信設備的制造方法
【技術領域】
[0001]本發明涉及一種網絡通信設備。該發明也涉及一種監控網絡通信的方法和一種通信系統。
【背景技術】
[0002]高性能計算系統通常要求低的處理和網絡時延,尤其在信號和通信情報,網絡安全,數據挖掘,金融建模和交易,醫療影像和研究,科學建模和地震分析等領域。在自動化的證券交易中,每秒產生大量多次的交易訂單,對高頻率的交易者來說減少作用于金融數據的反應時間是很重要的。在通過信息優勢開發市場的低效方面,接收、處理和操作需要的時間是至關重要的。
[0003]在證券交易中,由中間商通過網絡來訪問交易所的金融數據。金融數據被進一步分發給該中間商的客戶,從而形成網絡使得客戶能訪問來自交易所的數據和發布交易訂單。
[0004]信號時延的一次要的限制因素被光路制約,光路是制約數據走完主機和客戶端之間的距離所需要的時間的一個因素。傳統上,中間商尋求將他們的時延最小化作為對客戶端有競爭力的服務的一部分。自然地,中間商將最小化它們相對于交易所服務器的距離和因此數據必須經過的距離。而網絡的其他方面總是產生對時延更大的威脅。這些也試圖被減少,但通常以很大的代價。除了重新路由到交易所,來自客戶端的交易訂單的處理也采取了中間商側風險管理和監管的形式。
[0005]用于客戶的直接市場準入(Direct Market Access,DMA)模式通過最小化中間商側處理來允許信息的低時延量。盡管如此,中間商必須遵守基本的風險監控操作,因此需要對交易訂單進行某種程度的處理。這種處理的特定形式通常采用過濾不符合中間商的限制或者其他約束的客戶端訂單的形式,這個處理引起了時延。所屬領域狀態的功能性限制已不局限于金融領域。
【發明內容】
[0006]本發明的一個目的是至少減輕前面提及的一些問題。
[0007]根據本發明的一個方面,提供一種網絡通信設備,其包括用于接收數據單元的裝置(例如接收器,輸入端口或者網絡接口模塊),該數據單元包括控制信息和凈荷數據;用于根據控制信息將數據單元轉發到下一網絡位置的裝置(例如發送器,輸出端口或者第一模塊);用于檢查凈荷數據的裝置(例如處理器或者標識模塊);以及用于根據凈荷數據檢查的結果,在數據單元被轉發之前或者在數據被轉發或者輸出時,修改數據單元的全部或部分的裝置(例如輸出控制模塊),使得修改后的數據單元一旦被轉發其后續處理即被改變。
[0008]根據本發明的另一個方面,提供一種網絡通信設備,其包括:用于接收數據單元的裝置(例如接收器,輸入端口或者網絡接口模塊),數據單元包括凈荷數據;用于轉發數據單元到下一網絡位置的裝置(例如發送器,輸出端口或者第一模塊);用于檢查數據單元的凈荷數據的裝置(例如處理器或者標識模塊);以及用于在整個數據單元被轉發之前,根據數據單元檢查的結果,修改數據單元的裝置(例如輸出控制模塊),使得修改后的數據單元一旦被轉發其后續處理即被改變。
[0009]優選地,數據單元還包括控制信息,并且修改裝置用于修改控制信息。
[0010]優選地,控制信息包括源和/或目的地址信息,序列信息,以及錯誤檢測信息中的至少一個或者多個。
[0011]優選地,修改裝置用于破壞和/或重寫至少一部分控制信息,使得數據單元后續被丟掉。
[0012]優選地,控制信息包括頭部和/或尾部信息,優選地包括一個或者多個如下網絡協議信息:TCP (傳輸控制協議,Transmiss1n Control Protocol),UDP (用戶數據報協議,User Datagram Protocol), IP,MAC (media access control,媒體訪問控制),以及錯誤檢測ig息。
[0013]優選地,修改裝置用于在整個尾部部分被轉發之前,以及優選地在數據單元的其余部分被轉發之后,修改數據單元的尾部部分。優選地,尾部部分包括控制信息。
[0014]優選的,修改裝置用于重寫尾部校驗碼或者循環冗余校驗(CRC)中至少一部分,以及優選地,修改裝置用于破壞數據單元的尾部部分中的控制信息。
[0015]優選地,修改裝置用于在轉發數據單元時,修改數據單元。優選地,修改裝置用于破壞和/或修改凈荷數據。
[0016]優選地,設備還包括用于為后續向前傳輸來存儲數據單元的裝置。
[0017]優選地,存儲裝置用于在正在轉發數據單元時緩存數據單元,數據單元已被修改以保證它不會到達它的預期接收方和/或被它的預期接收方丟掉。
[0018]優選地,修改裝置用于在被緩存的數據單元后續向前傳輸之前,修改被緩存的數據單元的凈荷數據,使得避免對修改后數據單元的重傳請求。
[0019]優選地,修改裝置用于修改被緩存數據單元的凈荷數據,優選地在應用層,使得預期接收方能處理后續傳輸的數據單元。
[0020]優選地,所述設備包括:用于延遲數據單元轉發的裝置,使得檢查裝置的輸出與數據單元的最后尾部部分的轉發同步,以保證在數據單元被完全轉發之前,能夠根據檢查裝置的輸出修改數據單元的尾部部分。
[0021]優選地,修改裝置用于一旦獲得來自檢查裝置的輸出,即修改數據單元。
[0022]優選地,所述設備還包括:用于確定數據單元是否非順序地接收的裝置,以及,轉發裝置用于以正確的順序轉發數據單元。
[0023]優選地,所述設備還包括:為了后續檢查裝置的按順序檢查,用于緩存非順序接收的數據單元的裝置。
[0024]優選地,接收裝置用于檢測丟失數據單元的接收,以及,緩存用于響應于此而釋放用于檢查的非順序的數據單元。
[0025]優選地,所述設備還包括:用于為了后續恢復和向前傳輸,存儲凈荷數據的裝置。
[0026]優選地,檢查裝置用于在數據單元被轉發時,檢查凈荷數據和/或控制信息。
[0027]優選地,用于檢查數據單元的凈荷數據的裝置用于執行數據單元的深度包檢測(deep-packet inspect1n),優選地在數據單元的應用層。
[0028]優選地,數據單元既被傳送到轉發裝置也被傳送到檢查裝置。
[0029]優選地,在檢查裝置執行數據單元的檢查時,數據單元也在持續地被轉發。優選的,在檢查裝置執行數據單元的檢查時,數據單元也在步進地通過設備,優選地采用字節式地。
[0030]優選地,檢查裝置用于在數據單元被轉發時,解析數據單元以提取用于檢查的凈荷數據和/或控制信息。
[0031]優選地,檢查裝置用于根據對控制信息的檢查,確定如下中的至少一個或者多個:會話信息,序列信息,接收方標識,發送方標識,狀態信息以及端口信息。
[0032]優選地,修改裝置用于根據控制信息修改數據單元。
[0033]優選地,凈荷數據采用指令或者請求的形式,以及檢查裝置用于確定所述指令或者請求的有效性和/或可接受性。
[0034]優選地,所述指令或者請求是金融交易指令。
[0035]優選地,修改裝置用于在凈荷數據中的指令或者請求無效或者不可接受時修改數據單元。
[0036]優選地,所述數據單元是協議數據單元,包括如下中的至少一種:數據報,片段,封包和幀。
[0037]優選地,所述設備采用可編程邏輯設備的形式,優選地采用現場可編程門陣列(Field Programmable Gate Array,FPGA)或者特定用途集成電路(Applicat1n-SpecificIntegrated Circuit,ASIC 的形式。
[0038]優選地,所述設備的功能由硬件執行。
[0039]優選地,所述設備還包括傳輸控制協議(Transmiss1n Control Protocol, TCP)卸載引擎。
[0040]優選地,所述設備還包括:用于識別與數據單元相關的會話的裝置;以及檢查裝置用于比較數據單元和與會話相關的參數信息,從而確定數據單元的有效性和/或可接受性。
[0041]根據本發明的另一個方面,提供一種網絡通信設備,其包括:用于接收數據單元的裝置(例如接收器,輸入端口或者網絡接口模塊),數據單元包括控制信息和凈荷數據;用于根據控制信息轉發數據單元到下一網絡位置的裝置(例如發送器,輸出端口或者第一模塊);用于檢查數據單元的裝置(例如處理器或者標識模塊);以及用于在整個數據單元被轉發之前,根據數據單元檢查的結果,修改數據單元的裝置(例如輸出控制模塊),使得修改后的數據單元一旦被轉發其后續處理即被改變。
[0042]根據本發明的另一個方面,提供一種網絡通信設備,其包括:用于接收數據單元的裝置(例如接收器,輸入端口或者網絡接口模塊),數據單元包括控制信息和凈荷數據;用于根據控制信息轉發數據單元到下一網絡位置的裝置(例如發送器,輸出端口或者第一模塊);用于識別與數據單元相關的會話的裝置;以及用于檢查數據單元以比較數據單元和與會話相關的參數信息,從而確定數據單元的有效性和/或可接受性的裝置。
[0043]優選地,所述會話是網絡會話。
[0044]優選地,識別裝置用于根據數據單元控制信息識別所述會話,優選地根據存儲在數據單元頭部中的控制信息。
[0045]優選地,所述會話是至少一對網絡實體之間的通信會話,數據單元被通信設備攔截。
[0046]優選地,所述設備還包括:用于識別會話的套接字引擎。
[0047]優選地,參數信息包括與網絡實體之間的特定通信會話相關的第一信息,以及與網絡實體之間的所有通信相關的第二信息。
[0048]優選地,第二信息與金融交易參數相關,例如倉位,數量或者限制。
[0049]優選地,參數信息隨著通信實體之間的每次通信交互而更新。
[0050]優選地,根據網絡實體之間通信的每個數據單元的凈荷數據更新參數信息。
[0051]優選地,參數信息是已經從所述設備轉發的數據單元的累積記錄,優選地不包含修改。
[0052]優選地,檢查裝置用于將參數信息與控制信息和/或凈荷數據進行比較,優選地一解析出控制信息和/或凈荷數據,就進行比較。
[0053]優選地,參數信息存儲在所述設備上,優選地以至少一個哈希表的形式。
[0054]優選地,所述設備還包括:用于在不存在與接收的數據單元相關的網絡會話的情況下,輸出與新的網絡會話關聯的新信息的裝置。
[0055]優選地,所述設備還包括:用于在轉發整個數據單元之前,根據數據單元檢查的結果修改數據單元的裝置,使得修改后的數據單元一旦被轉發其后續處理即被改變。
[0056]根據本發明的另一個方面,提供一種網絡通信設備,其包括:用于接收數據單元的裝置(例如接收器,輸入端口或者網絡接口模塊),數據單元包括控制信息和凈荷數據;用于根據控制信息轉發數據單元到下一網絡位置的裝置(例如發送器,輸出端口或者第一模塊);用于檢查數據單元的裝置(例如處理器或者標識模塊);用于識別與數據單元相關的網絡會話的裝置(例如處理器或者哈希表);以及用于比較數據單元和與那個會話相關的狀態信息,從而確定數據單元的有效性和/或可接受性的裝置(例如處理器或者哈希表)。
[0057]根據本發明的另一個方面,提供一種網絡通信系統,其包括:第一網絡實體,優選地采用服務器的形式;第二網絡實體,優選地采用客戶端的形式,其通過通信網絡連接第一網絡實體;以及中間網絡實體,其包括通信設備(正如本文已描述的),用于攔截第一網絡實體與第二網絡實體間的通信。
[0058]優選地,第一網絡實體和第二網絡實體通過通信協議(可選地為TCP/IP)彼此通信,從而在彼此之間傳輸數據單元。
[0059]優選地,第一網絡實體作為高頻交易系統,第二網絡實體作為交易所,并且中間網絡實體作為中間商,用于監控在交易系統和交易所之間的交易活動。
[0060]根據本發明另一方面,提供一種監控網絡通信的方法,其包括:接收數據單元,數據單元包括控制信息和凈荷數據;根據控制信息轉發數據單元到下一網絡位置;檢查數據單元;以及在整個數據單元被轉發之前,根據數據單元檢查的結果修改數據單元,使得修改后的數據單元一旦被轉發其后續處理即被改變。
[0061]根據本發明另一方面,提供一種監控網絡通信的方法,其包括:接收數據單元,數據單元包括凈荷數據;轉發數據單元到下一網絡位置;檢查數據單元中的凈荷數據;以及在整個數據單元被轉發之前,根據數據單元檢查的結果,修改數據單元,使得修改后的數據單元一旦被轉發其后續處理即被改變。
[0062]優選地,所述方法還包括:識別與數據單元相關的網絡會話,以及將數據單元和與所述會話相關的參數信息進行比較,從而確定數據單元的有效性和可接受性。
[0063]優選地,監控網絡通信的方法應用于交易金融資產的方法。
[0064]根據本發明的另一方面,提供一網絡通信設備,如本文已描述的,用于形成金融交易系統的一部分。
[0065]在某些實施例中,本發明提供一種通信設備,其用于攔截網絡實體之間(例如客戶端與服務器或者主機之間)的數據通信,分析這些通信并且或者引起這些通信后續被網絡丟掉,或者允許這些通信繼續前往它們最終的目的地。所述設備通過“直通轉發(cut-through)”式地過濾以及檢測過程來執行上述操作,所接收的數據單元(數據封包或者幀)被直接傳遞到輸出端口以用于轉發,同時數據單元或者幀被解析或者解封包以用于檢測。深度包檢測方法涉及根據頭部信息識別通信實體間的特定通信會話(通過哈希表),以及使用這個信息(其包含與數據單元的有效性相關的狀態和其它信息)來評價數據單元中的凈荷數據,以確定數據單元是否是有效的或者已授權的;也就是說,凈荷數據被檢查至“應用層”水平。如果數據單元確實有效或者已授權,數據單元或者幀不作改變地通過輸出端口離開設備,如果相反,數據單元或者幀是無效的,那么僅僅在幀或者數據單元的尾部離開設備之前,破壞或者重寫數據單元或者幀最后的尾隨校驗碼或者CRC。由于校驗碼或者CRC已破壞,幀或者數據單元隨后被網絡(或者數據單元的目的或者源所使用的應用層邏輯)丟棄。由于在轉發數據單元時檢測也在發生,而在單元被轉發時其通過設備所花費的時間,與分析和解封包數據單元并檢查其以確定其事實上是否有效所花費的時間是同步的,所以設備保持最低限度的過濾時延。已破壞的數據單元,從TCP/CP的角度上,實際上被接收實體(主機或者服務器)當做已經在途中丟失,根據TCP/IP協議規范,這將會引起數據單元的重傳,而被重傳的數據單元將依次被破壞和丟掉(因為它包含與引起它在第一次的位置被破壞的凈荷相同的違反風險控制的凈荷)。相應地,如果封包違反了風險檢測并且數據單元被破壞,也并行地將數據單元緩存到存儲器。然后修改已緩存的數據單元以使其包含有效的TCP/IP元素,但是具有不同的(與發送方期望發送的相比)應用層凈荷數據。執行對凈荷的這種修改以保證接收方將在正常操作過程中拒絕數據單元,并且然后及時的使用錯誤消息(在“應用層”水平)通知發送方。
[0066]從屬權利要求會描述本發明的進一步的特征。
[0067]本發明可擴展到本文所描述的和/或所示出的任何新穎的方面或者特征。本發明可擴展到大致如本文所描述的和/或參照附圖所示出的方法和/或設備。
[0068]本發明也提供一種計算機程序和一種計算機程序產品,用于執行本文所描述的任何方法和/或用于體現本文所描述的任何設備特征,以及一種計算機可讀介質,其具有存儲于其上的程序,用于執行本文所描述的任何方法和/或用于體現本文所描述的任何設備特征。
[0069]本發明也提供一種體現用于執行本文所描述的任何方法和/或體現本文所描述的任何設備特征的計算機程序的信號,發射這種信號的方法和具有操作系統的計算機產品,操作系統支持用于執行本文所描述的任何方法和/或體現本文所描述的任何設備特征的計算機程序。
[0070]本文所描述的任何設備特征可以作為方法特征,反之亦然。如本文所使用的,功能性限定的裝置特征可以和與其相應的結構互相替代表示,例如適宜編程的處理器和相關的存儲器。
[0071]可以以任何恰當的合并方式將本發明一個方面的任何特征用于本發明的其他方面。特別地,方法方面能夠用于設備方面,反之亦然。進一步地,可以以任何恰當的合并方式將一個方面上的任何、一