TWI820977B - 封包排序與重組電路模組 - Google Patents

封包排序與重組電路模組 Download PDF

Info

Publication number
TWI820977B
TWI820977B TW111140140A TW111140140A TWI820977B TW I820977 B TWI820977 B TW I820977B TW 111140140 A TW111140140 A TW 111140140A TW 111140140 A TW111140140 A TW 111140140A TW I820977 B TWI820977 B TW I820977B
Authority
TW
Taiwan
Prior art keywords
packet
circuit
information
reassembly
sorting
Prior art date
Application number
TW111140140A
Other languages
English (en)
Other versions
TW202418793A (zh
Inventor
賴裕昆
王昭麟
李賀平
莊承翰
張凱博
Original Assignee
中原大學
凱基證券股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 中原大學, 凱基證券股份有限公司 filed Critical 中原大學
Priority to TW111140140A priority Critical patent/TWI820977B/zh
Priority to US18/155,048 priority patent/US11979479B1/en
Application granted granted Critical
Publication of TWI820977B publication Critical patent/TWI820977B/zh
Publication of TW202418793A publication Critical patent/TW202418793A/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本發明的實施例提出一種封包排序與重組電路模組,其包括標頭(header)解析器、資訊處理電路、至少一狀態追蹤與重組電路及輸出仲裁器。標頭解析器用以分析多個第一封包片段以獲得對應於第一網路封包的標頭資訊,其中第一網路封包是基於傳輸控制協定(Transmission Control Protocol, TCP)通訊協定進行傳輸。資訊處理電路用以根據所述標頭資訊將所述多個第一封包片段與對應於所述多個第一封包片段的邊帶資訊傳送至狀態追蹤與重組電路中的第一狀態追蹤與重組電路。第一狀態追蹤與重組電路用以根據所述邊帶資訊對所述多個第一封包片段進行重組與排序。輸出仲裁器用以根據排序結果輸出所述多個第一封包片段。

Description

封包排序與重組電路模組
本發明是有關於一種封包排序與重組電路模組。
在高速的封包傳遞過程中,往往需要針對封包內容進行分析,以執行諸如系統安全防護等必要措施。此外,在線上證券交易系統中,也需要針對快速傳遞的高頻交易封包進行內容解析,以防止意外的交易事件,維護各方利益。然而,網路封包以封包片段的形式傳輸時很容易發生順序錯亂的情形。若無法正確地對所接收到的封包片段進行排序與重組,則也無法讀取正確的封包內容。因此,如何在盡可能維持封包的高速傳輸的前提下,提高網路封包的排序與重組效率,實為相關領域之技術人員所致力研究的課題之一。
本發明提供一種封包排序與重組電路模組,可在盡可能 維持封包的高速傳輸的前提下,提高網路封包的排序與重組效率。
本發明的實施例提供一種封包排序與重組電路模組,其包括標頭解析器、資訊處理電路、至少一狀態追蹤與重組電路及輸出仲裁器。所述資訊處理電路耦接至所述標頭解析器。所述至少一狀態追蹤與重組電路耦接至所述資訊處理電路。所述輸出仲裁器耦接至所述至少一狀態追蹤與重組電路。所述標頭解析器用以分析多個第一封包片段以獲得對應於第一網路封包的標頭資訊,其中所述第一網路封包是基於傳輸控制協定(Transmission Control Protocol,TCP)通訊協定進行傳輸。所述資訊處理電路用以根據所述標頭資訊將所述多個第一封包片段與對應於所述多個第一封包片段的邊帶資訊傳送至所述至少一狀態追蹤與重組電路中的第一狀態追蹤與重組電路。所述第一狀態追蹤與重組電路用以根據所述邊帶資訊對所述多個第一封包片段進行重組與排序。所述輸出仲裁器用以根據排序結果輸出所述多個第一封包片段。
基於上述,本發明實施例所提出的封包排序與重組電路模組,可透過以硬體方式實施的標頭解析器、資訊處理電路、狀態追蹤與重組電路及輸出仲裁器之偕同運作,來對以TCP通訊協定進行傳輸的網路封包之封包片段進行高效的重組與排序。藉此,可在盡可能維持封包的高速傳輸的前提下,提高網路封包的排序與重組效率,以利於後續的封包內容擷取。
10:封包排序與重組電路模組
11:標頭解析器
12:資訊處理電路
121:酬載計算電路
122:資訊整合電路
123,70:分配器
124:連線比對電路
13(1)~13(n),90:狀態追蹤與重組電路
14:輸出仲裁器
141,142(1)~142(n):佇列
143:輪詢輸出電路
15:暫存器
101(1)~101(n):連線設定資訊
21:處理核心(主)
22:處理核心(從)
TDATA,TKEEP,TUSER,TVALID,TLAST,301,302,311,312,321,322,401,402,411,412,501,502,511,512,601,602,611,612,801~803,811~813:訊號串
71:封包片段緩衝區
710(1)~710(m):緩衝區
72:有效資料標記電路
73:封包輸出控制電路
901,911:封包寫入控制電路
902,912:封包表格儲存電路
903,913:重送判斷電路
904,914:順序判斷電路
921:連線狀態記錄電路
922:封包讀出控制電路
圖1是根據本發明的實施例所繪示的封包排序與重組電路模組的示意圖。
圖2是根據本發明的實施例所繪示的AXI4-Stream架構下的多個處理核心之間進行通訊的示意圖。
圖3是根據本發明的實施例所繪示的由標頭解析器輸出標頭資訊的示意圖。
圖4是根據本發明的實施例所繪示的由酬載計算電路輸出封包資料酬載長度的示意圖。
圖5是根據本發明的實施例所繪示的由資訊整合電路輸出對應於第一封包片段的邊帶資訊的示意圖。
圖6是根據本發明的實施例所繪示的由連線比對電路輸出路徑選擇訊號的示意圖。
圖7是根據本發明的實施例所繪示的分配器的示意圖。
圖8是根據本發明的實施例所繪示的由分配器輸出第一封包片段與邊帶資訊的示意圖。
圖9是根據本發明的實施例所繪示的狀態追蹤與重組電路的示意圖。
圖10是根據本發明的實施例所繪示的對網路封包進行排序送出及重送的多個演算法之虛擬碼(pseudo code)。
圖11呈現圖10所示的演算法之虛擬碼所採用的變數之名稱及說明。
圖1是根據本發明的實施例所繪示的封包排序與重組電路模組的示意圖。
請參照圖1,封包排序與重組電路模組10可用以擷取並分析多個封包片段(亦稱為第一封包片段)以獲得此些第一封包片段的邊帶資訊。然後,封包排序與重組電路模組10可根據此邊帶資訊對此些第一封包片段進行高效的重組與排序。藉此,無論是在系統安全防護或線上證券交易系統中,封包排序與重組電路模組10皆可在盡可能維持封包的高速傳輸的前提下,提高網路封包的排序與重組效率,以利於後續的封包內容擷取。
特別是,封包排序與重組電路模組10是基於AXI4-Stream協定而以硬體方式來實施,例如實施於現場可程式化邏輯閘陣列(Field Programmable Gate Array,FPGA)晶片中。其中,AXI為進階可擴展介面(Advanced eXtensible Interface)的縮寫。AXI4-Stream協定是一個使兩個組件交換資料的介面標準。此介面協定將發送資料的單個主動側(Master)模組連接到單個被動側(Slave)模組。
圖2是根據本發明的實施例所繪示的AXI4-Stream架構下的多個處理核心之間進行通訊的示意圖。
請參照圖2,AXI4-Stream架構定義了處理核心21與22之間的通訊規範。其中,處理核心21可視為用以發送資料的主動側模組,而處理核心22可視為用以接收資料的被動側模組。當封 包資料在處理核心21與22之間基於AXI4-Stream協定進行傳輸時,封包資料會被轉換為包含訊號TDATA、TKEEP、TUSER、TVALID及TLAST的訊號串進行傳輸。其中,訊號TDATA用以傳輸切割後的封包資料片段。訊號TKEEP為訊號TDATA的位元組限定詞(Byte Qualifier),其由低位元至高位元的遞增訊號表示訊號TDATA中資料有效位的長度。訊號TUSER為使用者自訂的邊帶資訊。訊號TLAST表示訊號TDATA片段為封包最後一個片段。訊號TVALID反映川流資料傳輸的有效性。本發明實施例的後續內容中將提供使用AXI4-Stream協定來傳遞封包資料的範例。
請回到圖1,封包排序與重組電路模組10可包括標頭(header)解析器11、資訊處理電路12、狀態追蹤與重組電路13(1)~13(n)及輸出仲裁器14。
標頭解析器11用以分析多個第一封包片段以獲得對應於特定網路封包(亦稱為第一網路封包)的標頭資訊。例如,此些第一封包片段是由第一網路封包拆解而得,並可透過排序與重組以還原出第一網路封包的封包內容。此外,第一網路封包是基於傳輸控制協定(Transmission Control Protocol,TCP)通訊協定進行傳輸。
具體而言,標頭解析器11可用以接收基於AXI4-Stream協定進行傳輸的封包資料(即第一封包片段)並對其進行解析。例如,標頭解析器11可包括米利型有限狀態機(Mealy Finite State Machine,Mealy FSM),以擷取第一封包片段所夾帶的標頭資訊。例如,該狀態機可逐一解析並擷取第一封包片段所夾帶的媒體存 取控制位址(Media Access Control,MAC)標頭資訊、網際網路協議(Internet Protocol,IP)標頭資訊及TCP標頭資訊。在完成標頭資訊的擷取後,標頭解析器11可根據解析結果輸出對應於第一網路封包的標頭資訊。
圖3是根據本發明的實施例所繪示的由標頭解析器輸出標頭資訊的示意圖。
請參照圖3,進入標頭解析器11的訊號串301、311及/或321可基於AXI4-Stream協定傳遞第一封包片段的封包資料。根據訊號串301、311及/或321,標頭解析器11可花費一個時脈週期的時間產生對應於第一網路封包的標頭資訊,如圖3所示。然後,標頭解析器11可透過訊號串302、312及/或322來輸出所述標頭資訊(伴隨一個輸出有效訊號)。
請回到圖1,資訊處理電路12耦接至標頭解析器11與狀態追蹤與重組電路13(1)~13(n)。資訊處理電路12可用以根據所述標頭資訊將所述多個第一封包片段與對應於所述多個第一封包片段的邊帶資訊傳送至狀態追蹤與重組電路13(i)(亦稱為第一狀態追蹤與重組電路)。i介於1至n之間。
具體而言,資訊處理電路12包括酬載計算電路121、資訊整合電路122及分配器123。酬載計算電路121耦接至標頭解析器11。酬載計算電路121可用以接收標頭解析器11產生的標頭資訊並根據此標頭資訊計算對應於第一網路封包的封包資料酬載長度。
在一實施例中,酬載計算電路121可根據IP標頭資訊中的標頭長度(IHL)、IP標頭資訊中的封包長度(Total Length)及TCP標頭資訊中的資料偏移(Data Offset)來計算對應於第一網路封包的封包資料酬載長度。例如,酬載計算電路121可根據以下方程式(1.1)來獲得對應於第一網路封包的封包資料酬載長度(亦稱為TCP片段長度(TCP Segment Length))。
TCP Segment Length=Total Length-4×(IHL+Data Offset) (1.1)
圖4是根據本發明的實施例所繪示的由酬載計算電路輸出封包資料酬載長度的示意圖。
請參照圖4,進入酬載計算電路121的訊號串401及/或411可基於AXI4-Stream協定傳遞來自標頭解析器11的標頭資訊。根據訊號串401及/或411,酬載計算電路121可花費約一個時脈週期的時間產生對應於第一網路封包的封包資料酬載長度,如圖4所示。然後,酬載計算電路121可透過訊號串402及/或412來輸出所述封包資料酬載長度(伴隨一個輸出有效訊號)。
請回到圖1,資訊整合電路122耦接至標頭解析器11、酬載計算電路121及分配器123。資訊整合電路122可用以接收酬載計算電路121所產生的封包資料酬載長度並根據此封包資料酬載長度將來自標頭解析器11的標頭資訊中的一部分資訊(亦稱為第一部分資訊)打包為對應於所述多個第一封包片段的邊帶資訊並將打包後的邊帶資訊傳送至分配器123。
在一實施例中,第一部分資訊可包括與第一網路封包之排序有關的序列號(sequence number)、時間戳(time stamp)及時間窗尺寸(time window size)之資訊。此些資訊皆記載於原始的第一網路封包的標頭資訊中。此外,第一部分資訊還可包括所述標頭資訊中的其他有用的資訊,本發明不加以限制。在一實施例中,將所述第一部分資訊打包為所述邊帶資訊後傳輸至分配器123,可達到讓所需的第一部分資訊同步進入分配器123的效果。
圖5是根據本發明的實施例所繪示的由資訊整合電路輸出對應於第一封包片段的邊帶資訊的示意圖。
請參照圖5,進入資訊整合電路122的訊號串501及/或511可基於AXI4-Stream協定傳遞來自標頭解析器11的標頭資訊(即第一部分資訊)及來自酬載計算電路121的封包資料酬載長度。根據訊號串501及/或511,資訊整合電路122可花費約一個時脈週期的時間產生打包後的邊帶資訊,如圖5所示。然後,資訊整合電路122可透過訊號串502及/或512來輸出所述打包後的邊帶資訊(伴隨一個輸出有效訊號)。
請回到圖1,分配器123耦接至資訊整合電路122與狀態追蹤與重組電路13(1)~13(n)。分配器123可接收所述多個第一封包片段與來自資訊整合電路122的打包後的邊帶資訊。分配器123可將所述多個第一封包片段與所述打包後的邊帶資訊同步傳送至狀態追蹤與重組電路13(i)。
在一實施例中,資訊處理電路12還包括連線比對電路 124。連線比對電路124耦接至標頭解析器11與分配器123。連線比對電路124用以將來自標頭解析器11的標頭資訊中的另一部分資訊(亦稱為第二部分資訊)與連線設定資訊進行比對。然後,連線比對電路124可根據比對結果傳送對應於所述多個第一封包片段的路徑選擇訊號至分配器123。此路徑選擇訊號可用以指示分配器123將所述多個第一封包片段與對應於所述多個第一封包片段的邊帶資訊傳送至對應於特定的封包處理通道(亦稱為第一封包處理通道)的狀態追蹤與重組電路13(i)(即第一狀態追蹤與重組電路)。因此,在接收來自連線比對電路124的路徑選擇訊號後,分配器123可根據此路徑選擇訊號將所述多個第一封包片段與所述邊帶資訊傳送至狀態追蹤與重組電路13(i)。
在一實施例中,第二部分資訊可包括與第一網路封包有關的IP位址及通訊埠(port)之資訊,例如,與第一網路封包有關的來源IP位址、目的IP位址、來源埠及目的埠之資訊。此外,第二部分資訊還可包括所述標頭資訊中的其他有用的資訊,本發明不加以限制。
在一實施例中,封包排序與重組電路模組10還包括暫存器15。暫存器15耦接至連線比對電路124。暫存器15可用以儲存連線設定資訊101(1)~101(n)。連線設定資訊101(i)儲存有與第一封包處理通道有關的連線設定資訊。例如,連線設定資訊101(i)可儲存有與第一封包處理通道有關的來源IP位址、目的IP位址、來源埠及目的埠之資訊。不同的封包處理通道所對應的連線設定 資訊各不相同。此外,連線設定資訊101(1)~101(n)的總數與可用的封包處理通道的總數(即n)相互吻合。
在一實施例中,連線比對電路124可將所述第二部分資訊與連線設定資訊101(1)~101(n)進行比對,例如,將第二部分資訊中與第一網路封包有關的來源IP位址、目的IP位址、來源埠及/或目的埠分別與連線設定資訊101(i)中的來源IP位址、目的IP位址、來源埠及/或目的埠進行比對。若比對結果為相互吻合,則連線比對電路124可將對應於第一封包處理通道的路徑選擇訊號傳送至分配器123。爾後,分配器123可根據此路徑選擇訊號將所述多個第一封包片段與所述邊帶資訊傳送至狀態追蹤與重組電路13(i)。狀態追蹤與重組電路13(i)可負責執行基於第一封包處理通道傳輸的封包片段的重組與排序。另一方面,若比對結果為皆不吻合,則連線比對電路124可將比對失敗的結果傳送至分配器123。分配器123可根據所述比對失敗之結果來略過狀態追蹤與重組電路13(1)~13(n)而直接將所述多個第一封包片段傳送至輸出仲裁器14。
圖6是根據本發明的實施例所繪示的由連線比對電路輸出路徑選擇訊號的示意圖。
請參照圖6,進入連線比對電路124的訊號串601及/或611可基於AXI4-Stream協定傳遞來自標頭解析器11的標頭資訊(即第二部分資訊)及來自暫存器15的連線設定資訊101(i)。根據訊號串601及/或611,連線比對電路124可花費約一個時脈週期 的時間產生比對結果(例如路徑選擇訊號或比對失敗之訊號),如圖6所示。然後,連線比對電路124可透過訊號串602及/或612來輸出所述比對結果(伴隨一個輸出有效訊號)。
圖7是根據本發明的實施例所繪示的分配器的示意圖。
請參照圖7,圖1的分配器123可包括分配器70。分配器70可包括封包片段緩衝區71、有效資料標記電路72及封包輸出控制電路73。
封包片段緩衝區71可包括多個緩衝區710(1)~710(m)。封包片段緩衝區71可將所接收到的第一封包片段儲存於緩衝區710(1)~710(m)的至少其中之一中,例如為緩衝區710(j)。同時,有效資料標記電路72可產生對應於緩衝區710(j)的有效資料標記,以表示第一封包片段是儲存於緩衝區710(j)中。在接收到來自資訊整合電路122的對應於第一封包片段的邊帶資訊及來自連線比對電路124的對應於第一封包片段的路徑選擇訊號後,封包輸出控制電路73可根據所述有效資料標記、所述邊帶資訊及所述路徑選擇訊號,從緩衝區710(j)中讀取第一封包片段並將第一封包片段連同所述邊帶資訊傳送至狀態追蹤與重組電路13(i)。
圖8是根據本發明的實施例所繪示的由分配器輸出第一封包片段與邊帶資訊的示意圖。
請參照圖8,進入分配器70的訊號串801及/或811可基於AXI4-Stream協定傳遞第一封包片段的封包資料,且進入分配器70的訊號串802及/或812可基於AXI4-Stream協定傳遞對應於 第一封包片段的邊帶資訊與路徑選擇訊號。根據訊號串801與802及/或811與812,分配器70可花費約二至五個時脈週期的時間,透過訊號串803及/或813來輸出第一封包片段與相應的邊帶資訊(伴隨一個輸出有效訊號)至特定的封包處理路徑(例如第一封包處理路徑)。
請回到圖1,狀態追蹤與重組電路13(1)~13(n)耦接至資訊處理電路12與輸出仲裁器14。狀態追蹤與重組電路13(1)~13(n)的總數與可用的封包處理通道的總數(即n)相互吻合。此外,可用的封包處理通道的總數(即n)可由使用者自訂。
狀態追蹤與重組電路13(i)可用以從資訊處理電路12(或分配器123)接收所述多個第一封包片段與對應於所述多個第一封包片段的邊帶資訊。狀態追蹤與重組電路13(i)可根據所述邊帶資訊對所述多個第一封包片段進行重組與排序。例如,狀態追蹤與重組電路13(i)可先暫存所述多個第一封包片段,並對所述多個第一封包片段進行重組。然後,狀態追蹤與重組電路13(i)可根據所述邊帶資訊對重組後的所述多個第一封包片段及其餘封包片段(即不屬於第一網路封包的封包片段)進行排序。
圖9是根據本發明的實施例所繪示的狀態追蹤與重組電路的示意圖。
請參照圖9,圖1的狀態追蹤與重組電路13(i)可包括狀態追蹤與重組電路90。狀態追蹤與重組電路90可包括封包寫入控制電路901、封包表格儲存電路902、重送判斷電路903、順序判 斷電路904、連線狀態記錄電路921及封包讀出控制電路923。
封包寫入控制電路901可用以接收並暫存所述多個第一封包片段。封包表格儲存電路902可用以接收並暫存對應於所述多個第一封包片段的邊帶資訊。重送判斷電路903可根據所述邊帶資訊判斷所述多個第一封包片段所對應的第一網路封包是否為重送封包。順序判斷電路904可根據所述邊帶資訊對所述多個第一封包片段進行重組與排序。其中,重送封包是指先前已經發送過的且攜帶重複內容的網路封包。連線狀態記錄電路921用以記錄狀態追蹤與重組電路90所負責的封包處理通道的連線狀態。封包讀出控制電路923用以將完成重組與排序的封包片段送出。
在一實施例中,若重送判斷電路903判定第一網路封包非為重送封包,封包讀出控制電路923可依據排序結果,將重組後的所述多個第一封包片段傳送至輸出仲裁器14。然而,若重送判斷電路903判定第一網路封包為重送封包,則封包讀出控制電路923可產生對應於第一網路封包的重送識別訊號。此重送識別訊號可隨著所述多個第一封包片段送出並用以告知下一個設備或節點,第一網路封包為重送封包。
圖10是根據本發明的實施例所繪示的對網路封包進行排序送出及重送的多個演算法之虛擬碼(pseudo code)。圖11是根據本發明的實施例所繪示的圖10所示的演算法之虛擬碼所採用的變數之名稱及說明。
請參照圖10與圖11,演算法A呈現對來自客戶端的TCP 封包進行排序並傳送至伺服器端的虛擬碼。演算法B呈現對來自伺服器端的TCP封包進行排序並傳送至客戶端的虛擬碼。演算法C呈現將來自客戶端的重送封包傳送至伺服器端的虛擬碼。演算法D呈現將來自伺服器端的重送封包傳送至客戶端的虛擬碼。演算法A與B可由圖9的順序判斷電路904執行。演算法C與D可由圖9的重送判斷電路903執行。
須注意的是,演算法A~D中使用到的部分變數可為預設值,而部分參數(例如序列號、時間戳及時間窗尺寸等)則可從對應於第一封包片段的邊帶資訊中取得。此外,演算法A~D僅為範例而非用以限定本發明。演算法A~D仍可根據實務需求調整。
請回到圖9,在一實施例中,狀態追蹤與重組電路90還可包括封包寫入控制電路911、封包表格儲存電路912、重送判斷電路913及順序判斷電路914。封包寫入控制電路911、封包表格儲存電路912、重送判斷電路913及順序判斷電路914分別相同或相似於封包寫入控制電路901、封包表格儲存電路902、重送判斷電路903、順序判斷電路904。
在一實施例中,封包寫入控制電路901、封包表格儲存電路902、重送判斷電路903、順序判斷電路904可用以處理特定類型的網路封包(亦稱為第一類網路封包)。封包寫入控制電路911、封包表格儲存電路912、重送判斷電路913及順序判斷電路914可用以處理另一類型的網路封包(亦稱為第二類網路封包)。第一類網路封包例如為證券交易系統中的下單封包。第二類網路封包例 如為證券交易系統中的回報封包。在一實施例中,針對同一個連線(例如TCP連線),透過此連線進行傳輸的下單封包與回報封包可以透過狀態追蹤與重組電路90中的不同子路徑進行處理,如圖9所示。此外,在一實施例中,狀態追蹤與重組電路90亦可以不包含封包寫入控制電路911、封包表格儲存電路912、重送判斷電路913及順序判斷電路914。
請回到圖1,輸出仲裁器14可用以根據狀態追蹤與重組電路13(i)對所述多個第一封包片段的排序結果輸出所述多個第一封包片段。例如,輸出仲裁器14可包括佇列141、142(1)~142(n)及輪詢輸出電路143。佇列141的輸入端耦接至資訊處理電路12(例如分配器123)。佇列142(1)~142(n)的輸入端分別耦接至狀態追蹤與重組電路13(1)~13(n)的輸出端。佇列141及142(1)~142(n)的輸出端皆耦接至輪詢輸出電路143。
在一實施例中,狀態追蹤與重組電路13(i)可根據前述排序結果將重組與排序完成的所述多個第一封包片段傳送至佇列142(i)。輪詢輸出電路143可透過輪詢的方式將所述多個第一封包片段從佇列142(i)中送出。在一實施例中,佇列142(1)~142(n)亦稱為第一佇列。
另一方面,針對不需透過所述n個封包處理通道進行處理的網路封包(亦稱為第二網路封包),資訊處理電路12(或分配器123)可不經由狀態追蹤與重組電路13(1)~13(n)而將對應於第二網路封包的多個封包片段(亦稱為第二封包片段)傳送至佇列141。輪 詢輸出電路143同樣可透過輪詢的方式將所述多個第二封包片段從佇列141中送出。在一實施例中,佇列141亦稱為第二佇列。
綜上所述,以搭配證券交易系統使用的封包排序與重組電路模組10為例,使用者可預先設置n個用以傳輸證券交易系統中的下單封包與回報封包的連線(即TCP連線)。每一個連線對應於封包排序與重組電路模組10中的一個封包處理通道,且每一個封包處理通道由狀態追蹤與重組電路13(1)~13(n)的其中之一負責。
在啟動封包排序與重組電路模組10後,若當前接收到的網路封包的多個封包片段(即第一封包片段)屬於證券交易系統中的下單封包或回報封包,則此些第一封包片段可根據對應的連線設定資訊101(i)而被送至狀態追蹤與重組電路13(i)進行亂數重組與排序。重組與排序完成後的第一封包片段可被送至佇列142(i),以等待被送出(例如送至證券交易系統中的客戶端或伺服器端)並進行封包內容的解析與驗證(例如根據封包內容判斷該網路封包所對應的交易行為是否為違法或高風險行為)。藉此,可在盡可能維持封包的高速傳輸的前提下,提高網路封包的排序與重組效率,以利於後續的封包內容擷取。
此外,若當前接收到的網路封包被判定為重送封包,則一個重送識別訊號可隨著此網路封包的封包片段被送出,以告知下一個設備或節點,該網路封包為重送封包。爾後,根據此重送識別訊號,證券交易系統可直接略過此網路封包,以避免執行重 複的交易行為。
另一方面,若當前接收到的網路封包的多個封包片段(即第二封包片段)不屬於證券交易系統中的下單封包或回報封包,則此些第二封包片段可略過狀態追蹤與重組電路13(1)~13(n)而直接被送至佇列141,以等待被送出。藉此,可有效減少需要進行暫存與處理的封包數量。
雖然本案已以實施例揭露如上,然其並非用以限定本案,任何所屬技術領域中具有通常知識者,在不脫離本案的精神和範圍內,當可作些許的更動與潤飾,故本案的保護範圍當視後附的申請專利範圍所界定者為準。
10:封包排序與重組電路模組
11:標頭解析器
12:資訊處理電路
121:酬載計算電路
122:資訊整合電路
123:分配器
124:連線比對電路
13(1)~13(n):狀態追蹤與重組電路
14:輸出仲裁器
141,142(1)~142(n):佇列
143:輪詢輸出電路
15:暫存器
101(1)~101(n):連線設定資訊

Claims (11)

  1. 一種封包排序與重組電路模組,包括:標頭解析器;資訊處理電路,耦接至該標頭解析器;至少一狀態追蹤與重組電路,耦接至該資訊處理電路;以及輸出仲裁器,耦接至該至少一狀態追蹤與重組電路,其中該標頭解析器用以分析多個第一封包片段以獲得對應於第一網路封包的標頭資訊,其中該第一網路封包是基於傳輸控制協定(Transmission Control Protocol,TCP)通訊協定進行傳輸,該資訊處理電路用以根據該標頭資訊將該多個第一封包片段與對應於該多個第一封包片段的邊帶資訊傳送至該至少一狀態追蹤與重組電路中的第一狀態追蹤與重組電路,該第一狀態追蹤與重組電路用以根據該邊帶資訊對該多個第一封包片段進行重組與排序,並且該輸出仲裁器用以根據排序結果輸出該多個第一封包片段。
  2. 如請求項1所述的封包排序與重組電路模組,其中該資訊處理電路包括:資訊整合電路,耦接至該標頭解析器;酬載計算電路,耦接至該標頭解析器與該資訊整合電路;以及分配器,耦接至該資訊整合電路與該至少一狀態追蹤與重組電路, 其中該酬載計算電路用以根據該標頭資訊計算對應於該第一網路封包的封包資料酬載長度,該資訊整合電路用以根據該封包資料酬載長度將該標頭資訊中的第一部分資訊打包為該邊帶資訊並將該邊帶資訊傳送至該分配器,並且該分配器用以將該多個第一封包片段與該邊帶資訊傳送至該第一狀態追蹤與重組電路。
  3. 如請求項2所述的封包排序與重組電路模組,其中該第一部分資訊包括與該第一網路封包之排序有關的序列號、時間戳及時間窗尺寸之資訊。
  4. 如請求項2所述的封包排序與重組電路模組,其中該資訊處理電路更包括:連線比對電路,耦接至該標頭解析器與該分配器,其中該連線比對電路用以將該標頭資訊中的第二部分資訊與連線設定資訊進行比對,並根據比對結果傳送對應於該多個第一封包片段的路徑選擇訊號至該分配器,並且該分配器更用以根據該路徑選擇訊號將該多個第一封包片段與該邊帶資訊傳送至該第一狀態追蹤與重組電路。
  5. 如請求項4所述的封包排序與重組電路模組,其中該第二部分資訊包括與該第一網路封包有關的網際網路協議位址及通訊埠之資訊。
  6. 如請求項4所述的封包排序與重組電路模組,更包括:暫存器,耦接至該連線比對電路,其中該暫存器用以儲存該連線設定資訊。
  7. 如請求項1所述的封包排序與重組電路模組,其中該第一狀態追蹤與重組電路用以暫存該多個第一封包片段,對該多個第一封包片段進行重組,並根據該邊帶資訊對重組後的該多個第一封包片段及其餘封包片段進行排序。
  8. 如請求項1所述的封包排序與重組電路模組,其中該輸出仲裁器包括:至少一佇列,耦接至該至少一狀態追蹤與重組電路;以及輪詢輸出電路,耦接至該至少一佇列,其中該第一狀態追蹤與重組電路用以根據該排序結果將該多個第一封包片段傳送至該至少一佇列中的第一佇列,並且該輪詢輸出電路用以將該多個第一封包片段從該第一佇列中送出。
  9. 如請求項8所述的封包排序與重組電路模組,其中該至少一佇列更包括第二佇列,該第二佇列耦接至分配器,該分配器更用以不經由該至少一狀態追蹤與重組電路而將對應於第二網路封包的多個第二封包片段傳送至該第二佇列,並且該輪詢輸出電路更用以將該多個第二封包片段從該第二佇列 中送出。
  10. 如請求項1所述的封包排序與重組電路模組,其中該第一狀態追蹤與重組電路更用以根據該邊帶資訊判斷該第一網路封包是否為重送封包,並且若該第一網路封包為該重送封包,該第一狀態追蹤與重組電路更用以產生對應於該第一網路封包的重送識別訊號。
  11. 如請求項1所述的封包排序與重組電路模組,其中該封包排序與重組電路模組是基於AXI4-Stream協定來實施。
TW111140140A 2022-10-21 2022-10-21 封包排序與重組電路模組 TWI820977B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW111140140A TWI820977B (zh) 2022-10-21 2022-10-21 封包排序與重組電路模組
US18/155,048 US11979479B1 (en) 2022-10-21 2023-01-16 Packet sorting and reassembly circuit module

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW111140140A TWI820977B (zh) 2022-10-21 2022-10-21 封包排序與重組電路模組

Publications (2)

Publication Number Publication Date
TWI820977B true TWI820977B (zh) 2023-11-01
TW202418793A TW202418793A (zh) 2024-05-01

Family

ID=89722359

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111140140A TWI820977B (zh) 2022-10-21 2022-10-21 封包排序與重組電路模組

Country Status (2)

Country Link
US (1) US11979479B1 (zh)
TW (1) TWI820977B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7126952B2 (en) * 2001-09-28 2006-10-24 Intel Corporation Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method
US20150172226A1 (en) * 2013-12-18 2015-06-18 Mellanox Technologies Ltd. Handling transport layer operations received out of order
TW202228428A (zh) * 2021-01-08 2022-07-16 瑞昱半導體股份有限公司 具有資料重用機制的資料傳輸方法及裝置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7711844B2 (en) * 2002-08-15 2010-05-04 Washington University Of St. Louis TCP-splitter: reliable packet monitoring methods and apparatus for high speed networks
US7620071B2 (en) 2004-11-16 2009-11-17 Intel Corporation Packet coalescing
US7693138B2 (en) 2005-07-18 2010-04-06 Broadcom Corporation Method and system for transparent TCP offload with best effort direct placement of incoming traffic
US7850260B2 (en) * 2007-06-22 2010-12-14 Oracle America, Inc. Injection/ejection mechanism
US10116557B2 (en) * 2015-05-22 2018-10-30 Gray Research LLC Directional two-dimensional router and interconnection network for field programmable gate arrays, and other circuits and applications of the router and network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7126952B2 (en) * 2001-09-28 2006-10-24 Intel Corporation Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method
US20150172226A1 (en) * 2013-12-18 2015-06-18 Mellanox Technologies Ltd. Handling transport layer operations received out of order
TW202228428A (zh) * 2021-01-08 2022-07-16 瑞昱半導體股份有限公司 具有資料重用機制的資料傳輸方法及裝置

Also Published As

Publication number Publication date
US11979479B1 (en) 2024-05-07
US20240137431A1 (en) 2024-04-25

Similar Documents

Publication Publication Date Title
US11249688B2 (en) High-speed data packet capture and storage with playback capabilities
US7142539B2 (en) TCP receiver acceleration
US7123616B2 (en) Determining round-trip time delay
JP5074558B2 (ja) IPSecを用いたネットワーク処理
US8130761B2 (en) Method and system for providing confirmed delivery of ethernet packets
US20040218623A1 (en) Hardware calculation of encapsulated IP, TCP and UDP checksums by a switch fabric channel adapter
US11637917B2 (en) Processing of payload content with parallel validation
US11128740B2 (en) High-speed data packet generator
US10990326B2 (en) High-speed replay of captured data packets
KR20090079945A (ko) 플로우 정보 제한장치 및 방법
US12003415B2 (en) Message validation using data-link layer fields
CN117176486A (zh) 网络信息传输***
US20190132085A1 (en) Fast Detection and Retransmission of Dropped Last Packet in a Flow
WO2020073907A1 (zh) 转发表项的更新方法及装置
US6871312B2 (en) Method and apparatus for time stamping data
CN114143119B (zh) 一种基于fpga的行情低延时接口装置
TWI820977B (zh) 封包排序與重組電路模組
EP2201740B1 (en) High speed packet processing in a wireless network
US20240236212A9 (en) Packet sorting and reassembly circuit module
TW202418793A (zh) 封包排序與重組電路模組
Schürmann Design and evaluation of system concepts and protocols for lossless hardware-assisted streaming of real-time measurement data over IP networks
JP2007166279A (ja) IPsec回路及びIPsec処理方法
JPH08503349A (ja) プロトコル・ヘッダから接続情報を抽出するための方法および装置