TWI591989B - Data flow segment optimized for hot flows - Google Patents
Data flow segment optimized for hot flows Download PDFInfo
- Publication number
- TWI591989B TWI591989B TW102112814A TW102112814A TWI591989B TW I591989 B TWI591989 B TW I591989B TW 102112814 A TW102112814 A TW 102112814A TW 102112814 A TW102112814 A TW 102112814A TW I591989 B TWI591989 B TW I591989B
- Authority
- TW
- Taiwan
- Prior art keywords
- connection
- flow
- hot
- stream
- data
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/64—Routing or path finding of packets in data switching networks using an overlay routing layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/169—Special adaptations of TCP, UDP or IP for interworking of IP based networks with other networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本申請案係為2012年5月1日所申請之美國臨時專利申請案第61/641,251號為基礎的發明專利申請案,在此主張之該申請日期的優先權係以35 U.S.C.§119(e)為基礎。 The present application is an invention patent application based on U.S. Provisional Patent Application Serial No. 61/641,251, filed on May 1, 2012, the priority of which is the priority of the filing date is 35 USC § 119 (e Based on.
本發明一般而言與封包流量管理有關,且更特別的並不僅是用以決定網路連接流控制資料是否應該被卸載至儲存一高速快取中的資料流區段。 The present invention is generally related to packet traffic management, and more particularly, not only to determine whether network connection flow control data should be offloaded to a data stream segment stored in a high speed cache.
網際網路的大量使用已經增加客戶端裝置與伺服器端裝置之間的通訊連接。一客戶端裝置時常利用習知的通訊協定建立與一伺服器端裝置的網路連接,像是透過傳輸控制協定/網際網路協定(TCP/IP)、使用者資料協定(UDP)與其他類似協定。此網路連接可以透過一特徵或是一些特徵的組合所辨識,像是一來源埠口、一目的地埠口、一來源位址、一目的地位址、一通訊協定及其他類似特徵。一般而言,對於一客戶端裝置與一伺服器端裝置之間的網路連接而言,該來源位址、目的地位址、目的地埠口與通訊協定係相對固定。因此,可以使用該來源埠口來唯一辨識該客戶端 裝置與該伺服器端裝置之間的連接。此外,網際網路的擴張已經導致封包流量管理的改善。一種所述的進步係如同在2001年3月21日申請之美國專利案號7,343,413,標題為「“Method and System for Optimizing a Network by Independently Scaling Control Segments and Data Flow」中所詳細敘述將一控制區段與一資料流區段之間的操作分離的改進,其係藉由引用形式而整體併入本文。因此,本發明係針對這些與其他的考量所建立。 The extensive use of the Internet has increased the communication connection between the client device and the server device. A client device often establishes a network connection with a server device using conventional communication protocols, such as through Transmission Control Protocol/Internet Protocol (TCP/IP), User Data Protocol (UDP), and the like. agreement. The network connection can be identified by a feature or a combination of features, such as a source port, a destination port, a source address, a destination address, a communication protocol, and the like. Generally speaking, for a network connection between a client device and a server device, the source address, the destination address, the destination port and the communication protocol are relatively fixed. Therefore, the source port can be used to uniquely identify the client. The connection between the device and the server device. In addition, the expansion of the Internet has led to improvements in packet traffic management. One such advancement is as described in detail in US Patent No. 7,343,413, filed on March 21, 2001, entitled "Method and System for Optimizing a Network by Independently Scaling Control Segments and Data Flow". An improvement in the separation of operations between a segment and a data stream segment is incorporated herein by reference in its entirety. Accordingly, the present invention has been developed in response to these and other considerations.
100‧‧‧系統 100‧‧‧ system
102‧‧‧客戶端裝置 102‧‧‧Client device
103‧‧‧客戶端裝置 103‧‧‧Client device
104‧‧‧客戶端裝置 104‧‧‧Client device
105‧‧‧客戶端裝置 105‧‧‧Client device
107‧‧‧網路 107‧‧‧Network
108‧‧‧網路 108‧‧‧Network
109‧‧‧封包流量管理裝置 109‧‧‧Package flow management device
110‧‧‧伺服器端裝置 110‧‧‧Server end device
111‧‧‧伺服器端裝置 111‧‧‧Server end device
200‧‧‧客戶端裝置 200‧‧‧Client device
202‧‧‧處理器 202‧‧‧ processor
204‧‧‧隨機存取記憶體 204‧‧‧ Random access memory
206‧‧‧操作系統 206‧‧‧ operating system
208‧‧‧資料儲存器 208‧‧‧Data storage
214‧‧‧應用程式 214‧‧‧Application
218‧‧‧瀏覽器 218‧‧‧ browser
222‧‧‧唯讀記憶體 222‧‧‧Read-only memory
224‧‧‧基本輸入/輸出系統(BIOS) 224‧‧‧Basic Input/Output System (BIOS)
226‧‧‧記憶體 226‧‧‧ memory
228‧‧‧電源供應器 228‧‧‧Power supply
230‧‧‧處理器可讀儲存裝置 230‧‧‧Processable storage device
234‧‧‧匯流排 234‧‧ ‧ busbar
236‧‧‧網路介面 236‧‧‧Internet interface
238‧‧‧音頻介面 238‧‧‧Audio interface
240‧‧‧顯示器 240‧‧‧ display
242‧‧‧鍵盤 242‧‧‧ keyboard
248‧‧‧輸入/輸出介面 248‧‧‧Input/output interface
300‧‧‧網路裝置 300‧‧‧Network devices
302‧‧‧處理器 302‧‧‧ processor
304‧‧‧隨機存取記憶體 304‧‧‧ Random access memory
306‧‧‧操作系統 306‧‧‧ operating system
308‧‧‧資料儲存器 308‧‧‧Data storage
314‧‧‧應用程式 314‧‧‧Application
316‧‧‧網路伺服器 316‧‧‧Web server
318‧‧‧控制區段 318‧‧‧Control section
322‧‧‧唯讀記憶體 322‧‧‧Read-only memory
324‧‧‧基本輸入/輸出系統 324‧‧‧Basic input/output system
326‧‧‧匯流排 326‧‧ ‧ busbar
328‧‧‧處理器可讀儲存裝置 328‧‧‧Processable storage device
330‧‧‧網路介面單元 330‧‧‧Network interface unit
332‧‧‧輸入/輸出介面 332‧‧‧Input/output interface
334‧‧‧硬碟裝置 334‧‧‧hard disk device
336‧‧‧視頻顯示轉接器 336‧‧‧Video Display Adapter
338‧‧‧資料流區段 338‧‧‧Data Stream Section
400A‧‧‧系統 400A‧‧‧ system
400B‧‧‧系統 400B‧‧‧ system
402‧‧‧客戶端裝置 402‧‧‧Client device
403‧‧‧客戶端裝置 403‧‧‧Client device
404‧‧‧封包流量管理裝置 404‧‧‧Package flow management device
406‧‧‧資料流區段 406‧‧‧Data Stream Section
407‧‧‧資料流區段 407‧‧‧Data Stream Section
408‧‧‧控制區段 408‧‧‧Control section
409‧‧‧控制區段 409‧‧‧Control section
410‧‧‧伺服器端裝置 410‧‧‧Server end device
411‧‧‧伺服器端裝置 411‧‧‧Server end device
500‧‧‧序列 500‧‧‧ sequence
502‧‧‧步驟 502‧‧‧Steps
504‧‧‧步驟 504‧‧‧Steps
506‧‧‧步驟 506‧‧‧Steps
508‧‧‧步驟 508‧‧‧Steps
510‧‧‧步驟 510‧‧ steps
512‧‧‧步驟 512‧‧‧Steps
514‧‧‧步驟 514‧‧‧Steps
516‧‧‧步驟 516‧‧‧Steps
518‧‧‧步驟 518‧‧‧Steps
520‧‧‧步驟 520‧‧‧Steps
522‧‧‧步驟 522‧‧‧Steps
524‧‧‧步驟 524‧‧‧Steps
600‧‧‧程序 600‧‧‧Program
602‧‧‧區塊 602‧‧‧ Block
604‧‧‧區塊 604‧‧‧ Block
606‧‧‧區塊 606‧‧‧ Block
608‧‧‧區塊 608‧‧‧ Block
610‧‧‧區塊 610‧‧‧ Block
612‧‧‧區塊 612‧‧‧ Block
614‧‧‧區塊 614‧‧‧ Block
700‧‧‧程序 700‧‧‧Program
702‧‧‧區塊 702‧‧‧ Block
704‧‧‧區塊 704‧‧‧ Block
706‧‧‧區塊 706‧‧‧ Block
708‧‧‧區塊 708‧‧‧ Block
710‧‧‧區塊 710‧‧‧ Block
800‧‧‧程序 800‧‧‧ procedures
802‧‧‧區塊 802‧‧‧ block
804‧‧‧區塊 804‧‧‧ Block
806‧‧‧區塊 806‧‧‧ Block
808‧‧‧區塊 808‧‧‧ Block
810‧‧‧區塊 810‧‧‧ Block
900‧‧‧程序 900‧‧‧Program
902‧‧‧區塊 902‧‧‧ Block
904‧‧‧區塊 904‧‧‧ Block
906‧‧‧區塊 906‧‧‧ Block
908‧‧‧區塊 908‧‧‧ Block
910‧‧‧區塊 910‧‧‧ Block
912‧‧‧區塊 912‧‧‧ Block
914‧‧‧區塊 914‧‧‧ Block
1000‧‧‧程序 1000‧‧‧Program
1002‧‧‧區塊 1002‧‧‧ Block
1004‧‧‧區塊 Block 1004‧‧‧
1006‧‧‧區塊 1006‧‧‧ Block
1100‧‧‧程序 1100‧‧‧Program
1102‧‧‧區塊 1102‧‧‧ Block
1104‧‧‧區塊 1104‧‧‧ Block
1106‧‧‧區塊 1106‧‧‧ Block
本發明之非限制及非窮盡的具體實施例係參考該等後續圖示所敘述。在該等圖式中,除具體指明外,否則在該各種圖式中相同的參考編號係指相同的部分。為了對本發明能有一較佳瞭解,將參考下述實施方式,並結合該等伴隨圖式一起閱讀,其中:第一圖為一環境系統圖式,於該環境中可實作本發明之多個具體實施例;第二圖顯示一客戶端裝置之一具體實施例,該客戶端裝置可包含於如第一圖中所示之一系統中;第三圖顯示一網路裝置之一具體實施例,該網路裝置可包含於如第一圖中所示之一系統中;第四A圖與第四B圖描述概觀系統圖式,其根據該等具體實施例,通則性圖示在多個客戶端裝置與多個伺服器端裝置之間 所佈置之一封包流量管理裝置之多個具體實施例;第五圖描述一序列圖式,其根據該等具體實施例,通則性圖示用於在一資料流區段處終結一連接流以及在該資料流區段處建立一新的連接流之一序列具體實施例;第六圖顯示一流程圖,該流程圖圖示根據該各種具體實施例之至少一具體實施例,進行封包流量管理之程序;第七圖顯示一流程圖,該流程圖圖示根據該各種具體實施例之至少一具體實施例,於一資料流區段處處理多個新的連接流的程序;第八圖顯示一流程圖,該流程圖圖示根據該各種具體實施例之至少一具體實施例,於一控制區段處處理多個驅趕訊息的程序;第九圖顯示一流程圖,該流程圖圖示根據該各種具體實施例之至少一具體實施例,決定多個連接流是否係為卸載至該資料流區段之候選連接流的程序;以及第十圖與第十一圖顯示多個流程圖,該等流程圖圖示根據該各種具體實施例之至少一具體實施例,用於辨識多個熱連接流的程序。 Non-limiting and non-exhaustive embodiments of the invention are described with reference to the subsequent figures. In the drawings, the same reference numerals are used to refer to the same parts in the various drawings. In order to have a better understanding of the present invention, reference will be made to the following embodiments, which are read in conjunction with the accompanying drawings, wherein: the first figure is an environmental system diagram in which multiple embodiments of the invention can be implemented DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The second figure shows a specific embodiment of a client device, which may be included in a system as shown in the first figure; the third figure shows a specific embodiment of a network device The network device may be included in one of the systems as shown in the first figure; the fourth and fourth B diagrams depict an overview system diagram, according to the specific embodiments, the generality diagram is in multiple Between the client device and multiple server devices A plurality of specific embodiments of a packet flow management device arranged; the fifth figure depicts a sequence diagram, according to the specific embodiments, a generalized illustration for terminating a connection stream at a data stream segment and A new embodiment of a sequence of connection flows is established at the data stream segment; the sixth diagram shows a flow diagram illustrating packet traffic management in accordance with at least one embodiment of the various embodiments. The seventh diagram shows a flow chart illustrating a procedure for processing a plurality of new connection streams at a data stream segment in accordance with at least one embodiment of the various specific embodiments; A flowchart illustrating a program for processing a plurality of drive messages at a control section in accordance with at least one embodiment of the various embodiments; the ninth diagram shows a flowchart illustrating At least one embodiment of the various embodiments determines whether a plurality of connection flows are procedures for offloading candidate connection flows to the data flow segment; and the tenth and eleventh views display multiple Chart, such embodiment of the at least a flowchart illustrating one embodiment according to the various particular embodiments, a program for identifying a plurality of connected heat flow.
在此申請說明書與該等申請專利範圍之中,除非該上下文明顯指示,否則該等下述用詞係具備於此所相關的明確意涵。 本文所稱「在一具體實施例中」,可能但未必指稱同一實施例。此外,本文所稱「在另一具體實施例中」,可能但未必指稱另一不同的實施例。因此,如以下所敘述之不同實施例,在不脫離本發明之範圍或精神的情況下係可輕易結合。 In the context of the present specification and the scope of the claims, the following terms are to be expressly incorporated herein. As used herein, in a particular embodiment, may, but not necessarily, refer to the same embodiment. In addition, as used herein, in another embodiment, it is possible, but not necessarily, a different embodiment. Thus, various embodiments, as described below, may be readily combined without departing from the scope or spirit of the invention.
此外,當在此使用時,除非該上下文明顯指示,否則該用詞「或」係為一種包含的「或」用法,並與用詞「及/或」等價。除非該上下文明顯指示,否則該用詞「根據」並非為排他的用法,其允許根據其他為敘述的因素。此外,在此申請規格書中,「一」、「一個」與「該」的意義係包含複數用法。「在某物之中」的意義則包含「在其中」與「在其上」。 In addition, the term "or" is used in the context of an "or" usage and is equivalent to the term "and/or" unless the context clearly indicates otherwise. Unless the context clearly indicates otherwise, the phrase "subject" is not an exclusive use that allows for other factors to be recited. In addition, in this application specification, the meanings of "a", "an" and "the" are used in the plural. The meaning of "in something" includes "in it" and "on it."
當在此使用時,該用詞「SYN」意指使用傳輸控制協定(TCP)所傳輸的封包,其包含在該封包之TCP表頭中的一設定同步控制旗標。 As used herein, the term "SYN" means a packet transmitted using Transmission Control Protocol (TCP), which contains a set synchronization control flag in the TCP header of the packet.
當在此使用時,該用詞「ACK」意指使用TCP所傳輸的封包,其包含在該封包之TCP表頭中的一設定確認旗標。 As used herein, the term "ACK" means a packet transmitted using TCP that contains a set acknowledgment flag in the TCP header of the packet.
當在此使用時,該用詞「SYN_ACK」意指使用TCP所傳輸的封包,其包含在該封包之TCP表頭中的一設定同步控制旗標與一設定確認旗標。 As used herein, the term "SYN_ACK" means a packet transmitted using TCP that includes a set synchronization control flag and a set acknowledgement flag in the TCP header of the packet.
當在此使用時,該用詞「FIN」意指使用TCP所傳輸的封包,其包含在該封包之TCP表頭中,從傳送者旗標並無更多資料的一設定旗標。 As used herein, the term "FIN" means a packet transmitted using TCP that is included in the TCP header of the packet, with a set flag from the sender flag that has no more information.
當在此使用時,該用詞「FIN_ACK」意指使用TCP 所傳輸的封包,其包含在該封包之TCP表頭中,從傳送者旗標並無更多資料的一設定旗標與一設定確認旗標。FIN_ACK壓縮FIN與ACK成為一個TCP封包。 When used herein, the term "FIN_ACK" means using TCP. The transmitted packet, which is included in the TCP header of the packet, has a set flag and a set confirmation flag from the sender flag. FIN_ACK compresses FIN and ACK into a TCP packet.
當在此使用時,該用詞「元組(tuple)」意指辨識一連接之一來源與目的地的一組數值。在一具體實施例中,五元組可以包含一來源位址、一目的地位置、一來源埠口、一目的地埠口與一通訊協定識別符。在各種具體實施例之至少一具體實施例中,可以使用多個元組辨識網路流(例如,連接流)。 As used herein, the term "tuple" means a set of values that identify a source and destination of a connection. In one embodiment, the five-tuple may include a source address, a destination location, a source port, a destination port, and a communication protocol identifier. In at least one embodiment of various embodiments, a plurality of tuples can be used to identify a network flow (e.g., a connection flow).
當在此使用時,該用詞「網路流(network flow)」、「連接流(connection flow)」、「流(flow)」意指一網路通信,該網路通信可於兩終端之間建立。在各種具體實施例之至少一具體實施例中,元組可用於敘述該流。各種具體實施例之至少一具體實施例中,可以使用與多個連接流有關的流控制資料,以確保在一連接流之該等終端之間傳送之該等網路封包可以沿著該相同路徑所配送。在各種具體實施例之至少一具體實施例中,如果使用多個變化路徑及/或指向多個不同終端時,便可能降低連接導向網路協定的效能,例如像是TCP/IP的網路協定。 As used herein, the terms "network flow", "connection flow", and "flow" mean a network communication that can be used at both terminals. Established between. In at least one embodiment of various embodiments, a tuple can be used to describe the stream. In at least one embodiment of various embodiments, flow control data associated with a plurality of connection flows may be used to ensure that the network packets transmitted between the terminals of a connection flow may follow the same path Delivered. In at least one embodiment of various embodiments, if multiple change paths are used and/or directed to multiple different terminals, it is possible to reduce the effectiveness of the connection-oriented network protocol, such as a network protocol such as TCP/IP. .
當在此使用時,該用詞「真正的連接流」意指已經決定與一操作中客戶端-伺服器端通訊通信有關的一連接流。相比之下,非真正的連接流則可能與一惡意攻擊有關,像是SYN洪水型攻擊。在各種具體實施例之至少一具體實施例中,一真正連接流的特徵可以包含TCP/IP握手協定(handshaking)完整性、雙向網路封包交 換的事證或其他類似特徵。同樣的,一連接流係為非真正連接流的事證可以包含半開放連接(不完整的握手協定與連接設定)、如果存在網路封包交換也盡是極少數封包,或其他類似事證。 As used herein, the term "true connection stream" means a connection stream that has been determined to be associated with client-server communication communications in an operation. In contrast, non-real connection flows may be associated with a malicious attack, such as a SYN flood attack. In at least one embodiment of various embodiments, a feature of a real connection flow may include TCP/IP handshake integrity, two-way network packet delivery Changed evidence or other similar features. Similarly, a connection flow system that is a non-real connection flow can contain semi-open connections (incomplete handshake protocols and connection settings), very few packets if there is a network packet exchange, or other similar credentials.
當在此使用時,該用詞「熱連接流」意指一連接流,其已經被決定為進行卸載至一資料流區段之一候選連接流。熱流連接可以具有多個特徵,像是高頻寬利用、服務品質優先性,或其他類似特徵。 As used herein, the term "hot-connected stream" means a connected stream that has been determined to be offloaded to one of the data stream segments as a candidate connection stream. The heat flow connection can have multiple features, such as high frequency bandwidth utilization, quality of service prioritization, or other similar features.
當在此使用時,該用詞「高速流快取」意指以快取為基礎的記憶體,其用於儲存與多個連接流相關之流控制資料。該快取可以利用專用匯流排所存取,並可以根據多種因素的組合提供非常快的效能,該等因素可以包含寬匯流排、快速時脈速度、專用通道、特殊讀取及/或寫入緩衝、硬體近區、溫度控制或其他類似因素。同樣的,該高速流快取可以由非常快的隨機存取記憶體(RAM)元件所構成,像是由靜態RAM(SRAM)、非同步SRAM、爆發式SRAM、延伸資料輸出動態隨機存取記憶體(EDO DRAM)或其他類似元件。在大多數情況中,包含該高速流快取之該高效能元件時常相對昂貴。因此,該高速流快取可以包含在一流量管理裝置之中有價值的「實際資產」。 As used herein, the term "high speed stream cache" means a cache-based memory for storing flow control data associated with a plurality of connection streams. The cache can be accessed using a dedicated bus and can provide very fast performance based on a combination of factors including wide bus, fast clock speed, dedicated channel, special read and/or write Buffer, hardware near zone, temperature control or other similar factors. Similarly, the high-speed stream cache can be composed of very fast random access memory (RAM) components, such as static RAM (SRAM), asynchronous SRAM, burst SRAM, extended data output dynamic random access memory. Body (EDO DRAM) or other similar components. In most cases, the high performance component including the high speed stream cache is often relatively expensive. Therefore, the high speed stream cache can contain valuable "real assets" among the traffic management devices.
以下將簡略敘述本發明的各種實施例,讓讀者對本發明的部分特點能有基本理解,然而此簡略敘述並非意在提供本發明全面性的概覽,也非意在指明本發明的主要或關鍵元件,或以此界定、縮小本發明的範圍。此簡略敘述之目的在於用簡化方式呈現本 發明的一些概念,以此為後續更詳盡的敘述預作準備。 The various embodiments of the present invention are intended to be illustrative of the preferred embodiments of the present invention, and are not intended to provide a comprehensive overview of the invention. Or to define or narrow the scope of the invention. The purpose of this brief description is to present this in a simplified manner. Some concepts of the invention are prepared in advance for a more detailed description.
簡言之,多個具體實施例關於利用使多個熱連接流之管理最佳化的方式,改善多個網路流量管理裝置的效能。一封包流量管理裝置(PTMD)可以使用一資料流區段(Data Flow Segment,DFS)組件與控制區段(Control Segment,CS)組件。在各種具體實施例之至少一具體實施例中,該CS可以為了維持在該DFS處的連接流,執行高階控制功能與以資料流為處理單位(per-flow)的政策執行,同時該DFS可對於於該DFS處所維持之連接流執行統計資料蒐集、以封包為處理單位(per-packet)的政策執行(例如,封包位址轉譯)或其他類似功能。 Briefly, various embodiments are directed to improving the performance of multiple network traffic management devices in a manner that optimizes management of multiple hot-connect flows. A Packet Flow Management Device (PTMD) can use a Data Flow Segment (DFS) component and a Control Segment (CS) component. In at least one embodiment of various embodiments, the CS may perform high-order control functions and per-flow policy execution in order to maintain a connection flow at the DFS, while the DFS may Perform statistics collection, per-packet policy enforcement (eg, packet address translation), or other similar functions for connection flows maintained at the DFS.
可以使用該CS,根據在該封包流量管理裝置處所接收之多個連接流請求,為可以被卸載至該DS之多個連接流產生流控制資料。在一具體實施例中,該CS可以接收由一客戶端裝置所傳送之一新的連接流請求,像是一SYN封包。該CS可以為該連接流請求產生並快取一連接流識別符。在各種具體實施例之至少一具體實施例中,該DFS可以包含多個高速流快取與多個其他高速組件。在各種具體實施例之至少一具體實施例中,可以使該高速流快取儲存一定義量的流控制資料,該定義量的流控制資料可以限制可被卸載至該DFS進行處理的連接流數量。在各種具體實施例之至少一具體實施例中,利用使該熱連接流的數量最大化,以及使惡意及/或非操作性連接流(例如,非真正的資料流)的數量最小化的方式,可以改善該高速流快取容量的有效使用,該惡意及/或非操作性連接 流可能具有儲存在該高速流快取中的流動控制資料。 The CS can be used to generate flow control data for a plurality of connection flows that can be offloaded to the DS based on a plurality of connection flow requests received at the packet traffic management device. In a specific embodiment, the CS can receive a new connection flow request, such as a SYN packet, transmitted by a client device. The CS can generate and cache a connection flow identifier for the connection flow request. In at least one embodiment of various embodiments, the DFS can include a plurality of high speed stream caches and a plurality of other high speed components. In at least one embodiment of various embodiments, the high speed stream cache can be stored to store a defined amount of flow control data, the defined amount of flow control data can limit the number of connection streams that can be offloaded to the DFS for processing . In at least one embodiment of various embodiments, the manner of maximizing the number of hot connection flows and minimizing the number of malicious and/or non-operational connection flows (e.g., non-real data streams) is utilized. , can improve the effective use of the high-speed stream cache capacity, the malicious and / or non-operational connection The stream may have flow control data stored in the high speed stream cache.
在各種具體實施例之至少一具體實施例中,如果接收一新的網路連接流,可將其傳遞至一控制區段(CS)。在各種具體實施例之至少一具體實施例中,該CS可以為了該新的網路連接流產生該流控制資料。在一具體實施例中,如果該CS決定該新的網路連接流應該被卸載至該DFS,那麼該CS可以傳送一控制訊息至該DFS,該控制訊息可以包含該流控制資料。在各種具體實施例之至少一具體實施例中,該DFS可以在與該DFS有關之該高速流控制快取中,儲存該已接收的流控制資料。 In at least one embodiment of various embodiments, if a new network connection stream is received, it can be passed to a control section (CS). In at least one embodiment of various embodiments, the CS can generate the flow control data for the new network connection flow. In a specific embodiment, if the CS determines that the new network connection flow should be offloaded to the DFS, the CS may transmit a control message to the DFS, and the control message may include the flow control data. In at least one embodiment of various embodiments, the DFS may store the received flow control data in the high speed flow control cache associated with the DFS.
在各種具體實施例之至少一具體實施例中,該CS可以接收從該DFS所驅趕之多個連接流。在各種具體實施例之至少一具體實施例中,如果該被驅趕之連接係保持有效且/或作用中,那麼該CS可以為該被傳輸之連接流開始處理該等網路封包(例如,除了提供該資料流階層控制與政策執行之外,該CS可以接管該封包層控制)。 In at least one embodiment of various embodiments, the CS can receive a plurality of connection streams that are driven from the DFS. In at least one embodiment of various embodiments, the CS may begin processing the network packets for the transmitted connection stream if the spoofed connection remains active and/or active (eg, except In addition to providing data flow level control and policy enforcement, the CS can take over the packet layer control).
在各種具體實施例之至少一具體實施例中,結合管理該等連接流,該CS可以分析流統計資料及應用程式,以辨識多個熱連接流。在各種具體實施例之至少一具體實施例中,如果可以辨識多個熱連接流,該CS可以決定是否有任何熱連接流應該由該DFS所處理以改善效能。 In at least one embodiment of various embodiments, in conjunction with managing the connection flows, the CS can analyze the flow statistics and applications to identify the plurality of hot connection flows. In at least one embodiment of various embodiments, if multiple hot junction streams are identifiable, the CS can determine if any hot junction streams should be processed by the DFS to improve performance.
在各種具體實施例之至少一具體實施例中,將一連接流卸載至該DFS以進行處理的方式,使得該DFS可以利用已經由該 CS所產生之流控制資料管理封包轉譯。在各種具體實施例之至少一具體實施例中,卸載至該DFS之多個連接流可以獲得效能改善的優勢,這是因為由構成該DFS該高效能硬體所造成。在各種具體實施例之至少一具體實施例中,如果該連接流可以被卸載至該DFS進行處理,便可以將用於多個連接流之該流控制資料儲存於與該DFS相關之該高速流快取中。 In at least one embodiment of various specific embodiments, a connection stream is offloaded to the DFS for processing such that the DFS can utilize The flow control data management packet generated by CS is translated. In at least one embodiment of various embodiments, the plurality of connection streams offloaded to the DFS can achieve an advantage in performance improvement due to the high performance hardware that makes up the DFS. In at least one embodiment of various embodiments, if the connection flow can be offloaded to the DFS for processing, the flow control data for the plurality of connection flows can be stored in the high speed flow associated with the DFS. Cache.
第一圖圖示一環境具體實施例之多個元件,於該環境中可實作本發明。實作本發明並不需要該等所有元件,而在不背離本發明精神與構想下可以進行該等元件之佈置與形式的變化。 The first figure illustrates a plurality of elements of an environmentally specific embodiment in which the invention may be practiced. It is to be understood that the invention is not to be construed as a
如圖所示,第一圖之系統100包含多個區域網路(LAN)/廣域網路(WAN)之網路108、無線網路107、多個客戶端裝置102-105、封包流量管理裝置(PTMD)109與多個伺服器端裝置110-111。網路108係與多個客戶端裝置102-105、無線網路107與PTMD 109進行通訊,並建立該等元件之間的通訊。載波網路107進一步建立與多個無線裝置之間的通訊,像是該等客戶端裝置103-105。PTMD 109係與網路108與多個伺服器端裝置110-111進行通訊。 As shown, the system 100 of the first diagram includes a plurality of local area network (LAN)/wide area network (WAN) networks 108, a wireless network 107, a plurality of client devices 102-105, and a packet flow management device ( PTMD) 109 and a plurality of server end devices 110-111. The network 108 communicates with a plurality of client devices 102-105, wireless network 107, and PTMD 109, and establishes communication between the components. Carrier network 107 further establishes communication with a plurality of wireless devices, such as such client devices 103-105. The PTMD 109 is in communication with the network 108 and a plurality of server devices 110-111.
以下結合第二圖詳細敘述客戶端裝置102-105之一具體實施例。在一具體實施例中,該等客戶端裝置102-105之至少某些裝置可以透過一有線及/或一無線網路所操作,像是透過網路107及/或108。一般而言,該等客戶端裝置102-105實質上可以包含能夠 透過一網路通訊之任何計算裝置,以傳送並接收包含多個即時訊息之資訊、執行各種線上活動,或是進行其他類似動作。應該認可的是在像是於此敘述之一系統中可以包含較多或較少的客戶端裝置,因此各種具體實施例並不受到所使用客戶端之數量與形式的限制。 One embodiment of the client device 102-105 is described in greater detail below in conjunction with the second figure. In one embodiment, at least some of the client devices 102-105 can operate over a wired and/or wireless network, such as through the network 107 and/or 108. In general, the client devices 102-105 may substantially comprise capable Any computing device that communicates over a network to transmit and receive information containing multiple instant messages, perform various online activities, or perform other similar actions. It should be recognized that more or less client devices may be included in a system such as that described herein, and thus the various embodiments are not limited by the number and form of the clients used.
可以操作為客戶端裝置102之各種裝置可以包含典型上利用有線或無線通訊媒介所連接的各種裝置,像是個人電腦、伺服器、多處理系統、以微處理器為基礎或可編程消費型電子裝置、網路個人電腦或其他類似裝置。在某些具體實施例中,該等客戶端裝置102-105實質上可以包含能夠連接至另一計算裝置並接收資訊的任何可攜式計算裝置,像是膝上電腦103、智慧手機104、平板電腦105或其他類似裝置。然而,可膝上電腦裝置並不因此受限,並可以包含其他可攜式裝置,像是行動電話、顯示呼叫器、射頻(RF)裝置、紅外線(IR)裝置、個人數位助理(PDA)、手持式電腦、可穿戴式電腦、結合該等前述裝置之一或多項的整合裝置,以及其他類似裝置。因此,該等客戶端裝置102-105一般而言於容量與特徵方面範圍廣泛。此外,該等客戶端裝置102-105可以提供對於各種計算應用程式的存取,包含瀏覽器或其他以網路為基礎的應用程式。 The various devices that can operate as client device 102 can include various devices typically connected using wired or wireless communication media, such as personal computers, servers, multiprocessing systems, microprocessor based or programmable consumer electronics. Device, network PC or other similar device. In some embodiments, the client devices 102-105 may substantially comprise any portable computing device capable of connecting to another computing device and receiving information, such as a laptop 103, a smart phone 104, a tablet Computer 105 or other similar device. However, laptop devices are not so limited and may include other portable devices such as mobile phones, display pagers, radio frequency (RF) devices, infrared (IR) devices, personal digital assistants (PDAs), A handheld computer, a wearable computer, an integrated device incorporating one or more of the foregoing devices, and the like. Thus, the client devices 102-105 generally have a wide range of capabilities and features. In addition, the client devices 102-105 can provide access to a variety of computing applications, including browsers or other web-based applications.
一網路致能的客戶端裝置可以包含一瀏覽器應用程式,該瀏覽器應用程式係經配置以接收並傳送多個網頁、多個以網路為基礎之訊息以及其他類似內容。該瀏覽器應用程式係經配置以 使用實質上任何以網路為基礎的語言接收並展示圖片、文字、多媒體與其他類似內容,該語言則包含無線應用程式通訊協定訊息(WAP)與其他類似語言。在一具體實施例中,該瀏覽器應用程式能夠使用手持設備標示語言(HDML)、無線標示語言(WML)、WMLScript、JavaScript、標準通用標示語言(SGML)、超文件標示語言(HTML)、可延伸性標示語言(XML)與其他類似語言,以展示並傳送一訊息。在一具體實施例中,該客戶端裝置之一使用者可以使用該瀏覽器應用程式以於一網路上執行各種(線上)動作。然而,也可以使用另一應用程式執行各種線上活動。 A network-enabled client device can include a browser application configured to receive and transmit multiple web pages, multiple web-based messages, and the like. The browser application is configured to Receive and display images, text, multimedia, and other similar content in virtually any web-based language, including wireless application protocol information (WAP) and other similar languages. In one embodiment, the browser application can use Handheld Device Markup Language (HDML), Wireless Markup Language (WML), WMLScript, JavaScript, Standard Generalized Markup Language (SGML), Hyper Document Markup Language (HTML), Extensible Markup Language (XML) and other similar languages to display and deliver a message. In one embodiment, a user of the client device can use the browser application to perform various (online) actions on a network. However, you can also use another application to perform various online activities.
該等客戶端裝置102-105也可以包含至少一另一客戶端應用程式,該客戶端應用程式經配置以於另一計算之間接收及/或傳送資料。該客戶端應用程式可以包含傳送及/或接收內容,或是其他類似動作的容量。該客戶端應用程式可以進一步提供用於辨識該客戶端應用程式本身的資訊,包含形式、容量、名稱或其他類似資訊。在一具體實施例中,該等客戶端裝置102-105可以透過各種機制之任意機制唯一辨識其本身,包含電話號碼、行動電話機識別碼(MIN)、電子序號(ESN)或其他行動裝置識別符。該資訊也可以指示該行動裝置所能使用之一內容格式。這種資訊可以提供於一網路封包或其他類似內容之中,並於多個其他客戶端裝置、PTMD 109、該等伺服器端裝置110-111、或多個其他計算裝置之間傳送。 The client devices 102-105 may also include at least one other client application configured to receive and/or transmit data between another computing. The client application can contain the capacity to transmit and/or receive content, or other similar actions. The client application can further provide information identifying the client application itself, including form, capacity, name or other similar information. In a specific embodiment, the client devices 102-105 can uniquely identify themselves through any mechanism of various mechanisms, including a telephone number, a mobile phone identification number (MIN), an electronic serial number (ESN), or other mobile device identifier. . The information may also indicate one of the content formats that the mobile device can use. Such information may be provided in a network packet or other similar content and transmitted between a plurality of other client devices, the PTMD 109, the server devices 110-111, or a plurality of other computing devices.
該等客戶端裝置102-105可以進一步經配置以包含一 客戶端應用程式,該客戶端應用程式使一終端使用者登入一終端使用者帳號,該帳號可由另一計算裝置所管理,像是由該等伺服器端裝置110-111或其他類似裝置所管理。在一非限制示例中,該等終端使用者帳號可經配置以使該終端使用者管理一或多個線上活動,包含多種搜尋活動、社交網路活動、瀏覽各種網站、與多個其他使用者通訊、參加遊戲、與各種應用程式互動,或進行其他類似活動,但並不限制於此。然而,參與多種線上活動也可以在不登入至該終端使用者帳號的情況下執行。 The client devices 102-105 can be further configured to include a a client application that causes a terminal user to log into a terminal user account, which can be managed by another computing device, as managed by the server device 110-111 or other similar device . In a non-limiting example, the end user accounts can be configured to enable the end user to manage one or more online activities, including multiple search campaigns, social networking campaigns, browsing various websites, and multiple other users. Communicate, participate in games, interact with various applications, or perform other similar activities, but not limited to this. However, participating in a variety of online activities can also be performed without logging into the end user account.
該無線載波網路107係經配置以將該等客戶端裝置103-105與其多個元件與該網路108連接。該無線載波網路107可以包含各種無線次網路之任何形式,其進一步包含多個獨立無線對等式網路與其他類似形式,以為該等客戶端裝置102-105提供一種無線主從式網路的連接。該等次網路可以包含網狀網路、無線區域網路(WLAN)、蜂巢式網路與其他類似網路。在一具體實施例中,該系統可以包含多於一種的無線網路。 The wireless carrier network 107 is configured to connect the client devices 103-105 with its plurality of components to the network 108. The wireless carrier network 107 can comprise any of a variety of wireless secondary networks, further comprising a plurality of independent wireless peer-to-peer networks and other similar forms to provide a wireless master-slave network for the client devices 102-105. The connection of the road. The secondary networks may include mesh networks, wireless local area networks (WLANs), cellular networks, and other similar networks. In a specific embodiment, the system can include more than one wireless network.
該無線載波網路107可以進一步包含多個終端器、閘道、路由器與其他類似裝置的自主系統,該等裝置以無線式無線電鏈結或其他類似方式連接。這些連接器可經配置以自由隨機移動,並隨意自我組織,因此該無線載波網路107之拓撲可以快速改變。 The wireless carrier network 107 can further include autonomous systems of a plurality of terminators, gateways, routers, and other similar devices that are connected in a wireless radio link or other similar manner. These connectors can be configured to move freely and randomly and self-organize at will, so the topology of the wireless carrier network 107 can change rapidly.
該無線載波網路107可以進一步使用複數個存取技術,包含蜂巢式系統的第二代(2G)、第三代(3G)、第四代(4G)、第五代(5G)無線電存取技術、WLAN、無線路由器(WR)網狀 網路與其他類似網路。像是2G、3G、4G、5G與多種未來存取網路的存取技術可達到行動裝置的廣域覆蓋,因此該等客戶端裝置103-105可以具有各種程度的移動性。在一非限制示例中,該載波網路107可透過一無線電網路存取達成無線電連接,像是透過全球行動通信系統(GSM)、通用封包無線服務技術(GPRS)、增強數據率GSM服務(EDGE)、分碼多工多重存取(CDMA)、分時多工多重存取(TDMA)、寬頻分碼多工多重存取(WCDMA)、高速下行鏈路封包存取(HSDPA)、長期演進技術(LTE)與其他類似存取技術。基本上,該載波網路107實質上可以包含各種無線通訊機制,藉由該等機制資訊便可以在該等客戶端裝置103-105與另一計算裝置、網路與其他類似裝置之間移動。 The wireless carrier network 107 can further utilize a plurality of access technologies, including second generation (2G), third generation (3G), fourth generation (4G), fifth generation (5G) radio access of the cellular system. Technology, WLAN, wireless router (WR) mesh The network is similar to other networks. Access technologies such as 2G, 3G, 4G, 5G and a variety of future access networks can achieve wide area coverage of mobile devices, and thus such client devices 103-105 can have various degrees of mobility. In a non-limiting example, the carrier network 107 can access a radio connection via a radio network, such as through Global System for Mobile Communications (GSM), General Packet Radio Service (GPRS), Enhanced Data Rate GSM ( EDGE), code division multiplexing multiple access (CDMA), time division multiplexing multiple access (TDMA), wideband code division multiple access multiple access (WCDMA), high speed downlink packet access (HSDPA), long term evolution Technology (LTE) and other similar access technologies. Basically, the carrier network 107 can essentially include various wireless communication mechanisms by which information can be moved between the client devices 103-105 and another computing device, network, and other similar devices.
該網路108經配置以將多個網路裝置與多個其他裝置連接,包含透過PTMD 109、客戶端裝置102連接該等伺服器端裝置110-111,透過無線載波網路107連接多個客戶端裝置103-105。該網路108可以使用任何形式的電腦可讀媒介,以從一電子裝置通訊資訊至另一電子裝置。同樣的,該網路108除了各種LAN、各種WAN、像是透過通用串列匯流排(USB)埠口的各種直接連接、其他電腦可讀媒介形式,或是以上之任意組合之外,也可以包含網際網路。在LAN的互連組合上,其包含以多個不同結構或通訊協定為基礎的部分,一路由器係可做為多個LAN之間的鏈結,使多個訊息可於彼此之間傳送。此外,多個LAN之中的多個通訊鏈結一般而言包含絞線對或同軸纜線,然而在多個網路之間的多個通訊鏈結以使用類比 電話線、包含T1、T2、T3與T4的完全或部分專用數位線及/或多個其他載波機制,例如包含E載波、整體服務數位網路(ISDN)、數位用戶線路(DSL),無線鏈結包含衛星鏈結或是該發明所屬技術領域中具有通常知識者所熟知的多個其他通訊鏈結。此外,通訊鏈結可以進一步使用各種數位發訊技術的任何技術,例如包含DS-0、DS-1、DS-2、DS-3、DS-4、OC-3、OC-12、OC-48或其他類似技術,但並不限制於此。此外,多個遠端電腦與多個其他相關電子裝置也可以透過一數據機或暫時電話鏈結遠端連接至多個LAN或WAN。在一具體實施例中,該網路108經配置以傳輸一網際網路協定(IP)的資訊。基本上,該網路108包含任何通訊方法,藉由該方法資訊可於多個計算裝置之間移動。 The network 108 is configured to connect a plurality of network devices to a plurality of other devices, including connecting to the server devices 110-111 via the PTMD 109, the client device 102, and connecting a plurality of clients via the wireless carrier network 107. End devices 103-105. The network 108 can use any form of computer readable medium to communicate information from one electronic device to another electronic device. Similarly, the network 108 can be used in addition to various LANs, various WANs, various direct connections through a universal serial bus (USB) port, other computer readable media formats, or any combination of the above. Contains the internet. On the interconnection combination of LANs, which consists of parts based on a number of different structures or communication protocols, a router can act as a link between multiple LANs so that multiple messages can be transferred between each other. In addition, multiple communication links among multiple LANs typically include twisted pairs or coaxial cables, however multiple communication links between multiple networks use analogies Telephone line, full or partial dedicated digit line including T1, T2, T3 and T4 and/or a plurality of other carrier mechanisms, for example, including E carrier, overall service digital network (ISDN), digital subscriber line (DSL), wireless chain The junction comprises a satellite link or a plurality of other communication links known to those of ordinary skill in the art to which the invention pertains. In addition, the communication link can further use any technology of various digital signaling technologies, including, for example, DS-0, DS-1, DS-2, DS-3, DS-4, OC-3, OC-12, OC-48. Or other similar technology, but is not limited to this. In addition, multiple remote computers and multiple other related electronic devices can also be remotely connected to multiple LANs or WANs via a modem or temporary telephone link. In one embodiment, the network 108 is configured to transmit an Internet Protocol (IP) information. Basically, the network 108 includes any communication method by which information can be moved between multiple computing devices.
此外,通訊媒介一般而言包含多個電腦可讀指令、資料結構、程式模組或其他傳輸機制,並包含任何資訊傳送媒介。做為示例,通訊媒介包含像是絞線對、同軸纜線、光纖、波導等有線媒介與其他的有線媒介,也包含像是聲波、無線電、紅外線等無線媒介與其他無線媒介。 In addition, communication media generally includes a plurality of computer readable instructions, data structures, program modules or other transport mechanisms, and includes any information delivery medium. As an example, communication media includes wired media such as twisted pairs, coaxial cables, optical fibers, waveguides, and other wired media, as well as wireless media such as sound waves, radios, and infrared rays, and other wireless media.
以下結合第三圖詳細敘述PTMD 109之一具體實施例。然而,簡言之,該PTMD 109實質上可以包含能夠管理該等客戶端裝置102-105與該等伺服器端裝置110-111之間網路流量的任何網路裝置。這種裝置例如包含路由器、代理器、防火牆、負載平衡器、快取裝置、執行網路位址轉譯之多個裝置或其他類似裝置,或是其任意組合。該PTMD 109可以執行配送、轉譯、切換封包或其 他類似的操作。在一具體實施例中,該PTMD 109可以檢查多個來源網路封包,並可以執行一位址轉譯、埠口轉譯、封包序列轉譯與其他類似功能,並至少部分根據該封包檢查配送該等網路封包。在某些具體實施例中,該PTMD 109可以執行負載平衡操作,以決定一伺服器端裝置指導一請求。所述負載平衡操作係可為以網路流量、網路拓撲、一伺服器之容量、所請求之內容或是許多其他流量分配機制為基礎。 One specific embodiment of the PTMD 109 will be described in detail below in conjunction with the third figure. In short, however, the PTMD 109 may substantially include any network device capable of managing network traffic between the client devices 102-105 and the server devices 110-111. Such devices include, for example, routers, agents, firewalls, load balancers, cache devices, multiple devices that perform network address translation, or other similar devices, or any combination thereof. The PTMD 109 can perform delivery, translation, switching of packets or His similar operation. In a specific embodiment, the PTMD 109 can check multiple source network packets and perform address translation, port translation, packet sequence translation and other similar functions, and at least partially check and distribute the networks according to the packet. Road packet. In some embodiments, the PTMD 109 can perform load balancing operations to determine a server-side device to direct a request. The load balancing operation can be based on network traffic, network topology, capacity of a server, requested content, or many other traffic distribution mechanisms.
該PTMD 109可以包含一控制區段與一分離的資料流區段。該控制區段可以包含多個軟體最佳化操作,該等最佳化操作為了封包流量管理執行多個高階功能與以資料流為處理單位的政策執行。在各種具體實施例之至少一具體實施例中,該控制區段可經配置以管理在該資料流區段處所維持之多個連接流。在一具體實施例中,該控制區段可以提供多個指令至該資料流區段,例如像是一封包轉譯指令,以使該資料流區段配送多個已接收封包至一伺服器端裝置,像是配送至該等伺服器端裝置110-111。該資料流區段可以包含多個硬體最佳化操作,該等最佳化操作為了在該等客戶端裝置與該等伺服器端裝置之間該DFS處所維持的多個連接流,執行統計資料蒐集、以封包為處理單位的政策執行(例如,封包位置轉譯)、高速流快取或其他類似功能,像是於該等客戶端裝置102-105與該等伺服器端裝置110-111之間。 The PTMD 109 can include a control section and a separate stream section. The control section may include a plurality of software optimization operations that perform a plurality of high-order functions for packet traffic management and policy execution with a data stream as a processing unit. In at least one embodiment of various embodiments, the control section can be configured to manage a plurality of connection flows maintained at the data stream section. In a specific embodiment, the control section may provide a plurality of instructions to the data stream section, such as, for example, a packet translation instruction to cause the data stream section to deliver a plurality of received packets to a server device. , for example, to the server-side devices 110-111. The data stream segment can include a plurality of hardware optimization operations that perform statistics for a plurality of connection flows maintained at the DFS between the client devices and the server devices Data collection, policy enforcement with packets as processing units (eg, packet location translation), high speed streaming cache, or other similar functions, such as the client devices 102-105 and the server devices 110-111 between.
該等伺服器端裝置110-111實質上可以包含任何網路裝置,該等裝置則可操作為一網站伺服器。然而,該等伺服器端裝 置110-111並不限制於網站伺服器,並可以操作為訊息伺服器、檔案傳送協定(FTP)伺服器、資料庫伺服器、內容伺服器,或是其他類似裝置。此外,該等伺服器端裝置110-111之每一裝置可經配置以執行一不同操作。可操作成為該等伺服器端裝置110-111之裝置包含各種網路裝置,包含多個個人電腦、桌上電腦、多處理器系統、以微處理器為基礎或可編程消費型電子裝置、網路個人電腦、伺服器端裝置、網路設備或其他類似裝置,但不限制於此。 The server devices 110-111 may essentially comprise any network device, which may operate as a web server. However, these server end devices The 110-111 is not limited to the web server, and can be operated as a message server, a file transfer protocol (FTP) server, a database server, a content server, or the like. Moreover, each of the server end devices 110-111 can be configured to perform a different operation. Devices operable to act as server-side devices 110-111 include various network devices, including a plurality of personal computers, desktop computers, multi-processor systems, microprocessor-based or programmable consumer electronic devices, networks A personal computer, a server device, a network device, or the like, but is not limited thereto.
雖然第一圖描述該等伺服器端裝置110-111係為單一計算裝置,但本發明並不限制於此。例如,該等伺服器端裝置110-111之每一個的一或多項功能都可分布於一或多個分離的的網路裝置上。此外,該等伺服器端裝置110-111並不限制於一特定配置。因此在一具體實施例中,該等伺服器端裝置110-111可以包含利用主從方式所操作之多個網路裝置,其中該等伺服器端裝置110-111之該些網路裝置之一係經操作以管理及/或組織該等其他網路裝置的多個操作。在其他具體實施例中,該等伺服器端裝置110-111可以操作為一叢集結構、點對點結構之中及/或甚至一雲端結構之中的多個網路裝置。因此,本發明的建構並不限制為一單一環境,其也同時設想到多個其他配置與結構。 Although the first figure depicts the server end devices 110-111 as a single computing device, the invention is not limited thereto. For example, one or more of the functions of each of the server-side devices 110-111 can be distributed over one or more separate network devices. Moreover, the server end devices 110-111 are not limited to a particular configuration. Thus, in one embodiment, the server-side devices 110-111 can include a plurality of network devices operating in a master-slave manner, wherein one of the network devices of the server-side devices 110-111 It is operated to manage and/or organize multiple operations of such other network devices. In other embodiments, the server-side devices 110-111 can operate as a plurality of network devices in a cluster structure, a peer-to-peer structure, and/or even a cloud structure. Thus, the construction of the present invention is not limited to a single environment, which also contemplates many other configurations and configurations.
第二圖圖示客戶端裝置200之一具體實施例,該客戶端裝置200可以包含於本發明之一系統實作具體實施例之中。該客戶端裝置200可以包含多於或少於第二圖中所述的元件。然而,所 圖示之該等元件係足夠揭示用於執行本發明之例證具體實施例。例如,該客戶端裝置200可以代表第一圖中該等客戶端裝置102-105之至少一客戶端裝置的具體實施例。 The second figure illustrates one embodiment of a client device 200 that may be included in a particular embodiment of the system of the present invention. The client device 200 can include more or less than the elements described in the second figure. However, The elements illustrated are sufficient to disclose illustrative embodiments for carrying out the invention. For example, the client device 200 can represent a particular embodiment of at least one client device of the client devices 102-105 in the first figure.
如該圖式中所示,該客戶端裝置200包含一處理器202,該處理器202透過一匯流排234與記憶體226通訊。該客戶端裝置200也包含一電源供應器228、一或多個網路介面236、音頻介面238、顯示器240、鍵盤242與輸入/輸出介面248。 As shown in the figure, the client device 200 includes a processor 202 that communicates with the memory 226 via a bus 234. The client device 200 also includes a power supply 228, one or more network interfaces 236, an audio interface 238, a display 240, a keyboard 242, and an input/output interface 248.
該電源供應器228提供電力至該客戶端裝置200。可以使用一可充電式或不可充電式電池提供電力。也可由一外部電力來源提供電力,像是一交流轉接器或是對一電池補充及/充電之供電座。 The power supply 228 provides power to the client device 200. Power can be supplied using a rechargeable or non-rechargeable battery. Power can also be provided by an external source of electrical power, such as an AC adapter or a power supply that replenishes and/or charges a battery.
該客戶端裝置200可以選擇性與一(未圖示)基地台通訊,或是直接與另一計算裝置通訊。該網路介面236包含將該客戶端裝置200連接至一或多個網路的電路,並經建構以使用一或多種通訊協定及技術,其包含GSM、CDMA、TDMA、HSDPA、LTE、UDP、TCP/IP、短訊服務(SMS)、GPRS、WAP、超寬頻(UWB)、IEEE 802.16全球互通微波存取(WiMax)、會話初始協定/即時傳輸協定(SIP/RTP)或各種其他無線通訊協定之任何協定,但不限制於此。該網路介面236有時候係為已知的收發器、收發裝置或網路介面卡(NIC)。 The client device 200 can selectively communicate with a (not shown) base station or directly with another computing device. The network interface 236 includes circuitry for connecting the client device 200 to one or more networks and is configured to use one or more communication protocols and technologies including GSM, CDMA, TDMA, HSDPA, LTE, UDP, TCP/IP, SMS (SMS), GPRS, WAP, Ultra Wideband (UWB), IEEE 802.16 Worldwide Interoperability for Microwave Access (WiMax), Session Initiation Protocol/Instant Messaging Protocol (SIP/RTP) or various other wireless protocols Any agreement, but not limited to this. The network interface 236 is sometimes a known transceiver, transceiver or network interface card (NIC).
該音頻介面238係經配置以產生並接收多個音頻訊號,像是人聲的聲響。例如,該音頻介面238可以連接至一(未圖 示)揚聲器與麥克風,以與其他人進行遠端通訊及/或產生某些動作的音頻確認。 The audio interface 238 is configured to generate and receive a plurality of audio signals, such as the sound of a human voice. For example, the audio interface 238 can be connected to one (not shown) Speakers and microphones for remote communication with others and/or audio confirmation of certain actions.
該顯示器240可為一液晶顯示器(LCD)、氣體電漿、發光二極體(LED)或是與一計算裝置使用之任何其他顯示器形式。該顯示器240也可以包含一觸控螢幕,該螢幕經佈置以接收來自像是一觸控筆物件的輸入,或是來自一人手手指的輸入。 The display 240 can be in the form of a liquid crystal display (LCD), gas plasma, light emitting diode (LED), or any other display used with a computing device. The display 240 can also include a touch screen that is arranged to receive input from, for example, a stylus object, or input from a human finger.
該鍵盤242可以包含任何輸入裝置,該輸入裝置經佈置以從一使用者接收輸入。例如,該鍵盤242可以包含一按鈕數字撥號盤或是鍵盤。該鍵盤242也可以包含多個命令按鈕,該等命令按鈕係與選擇與傳送多個影像有關。 The keyboard 242 can include any input device that is arranged to receive input from a user. For example, the keyboard 242 can include a button numeric dial or a keyboard. The keyboard 242 can also include a plurality of command buttons associated with selecting and transmitting a plurality of images.
該客戶端裝置200也包含輸入/輸出介面248,以與多個外部裝置通訊,像是與一耳機通訊,或是與第二圖中所示多個其他輸入或輸出裝置通訊。該輸入/輸出介面248可以使用一或多種通訊技術,像是USB、紅外線、藍芽或是其他類似技術。 The client device 200 also includes an input/output interface 248 for communicating with a plurality of external devices, such as with a headset or with a plurality of other input or output devices as shown in the second figure. The input/output interface 248 can use one or more communication technologies such as USB, infrared, Bluetooth or other similar technologies.
該客戶端裝置200也可以包含一(未圖示)GPS收發器,以決定該客戶端裝置200於地球表面上之實體坐標。一GPS收發器一般而言輸出像是經度緯度數值的位置。然而,該GPS收發器也可使用其他地理定位機制,包含三角定位、輔助衛星定位系統(AGPS)、增強測量時間差(E-OTD)、基地台識別符(CI)、服務地區識別符(SAI)、增強時間先行值(ETA)、基地台次系統(BSS)或其他類似機制,但不限制於此,以進一步決定該客戶端裝置200於地球表面上之實體坐標。要瞭解到在不同情況下,一GPS收發器 可以決定該客戶端裝置200毫米等級的實體位置,而在其他情況中,所決定之實體位置精度可能較差,像是以米為等級或是更大的距離。然而在一具體實施例中,該客戶端裝置200可以透過多個其他元件,提供可以用於決定該裝置之一實體位置的其他資訊,例如包含媒體存取控制(MAC)位址、IP位址或其他類似資訊。 The client device 200 can also include a (not shown) GPS transceiver to determine the physical coordinates of the client device 200 on the surface of the earth. A GPS transceiver typically outputs a position that is like a longitude latitude value. However, the GPS transceiver can also use other geolocation mechanisms including triangulation, assisted satellite positioning system (AGPS), enhanced measurement time difference (E-OTD), base station identifier (CI), and service area identifier (SAI). , Enhanced Time Advance Value (ETA), Base Station System (BSS), or other similar mechanism, but is not limited thereto to further determine the physical coordinates of the client device 200 on the surface of the Earth. To understand that in a different situation, a GPS transceiver The physical position of the client device can be determined at 200 mm level, while in other cases, the determined physical position accuracy may be poor, such as on a meter scale or greater. In a specific embodiment, however, the client device 200 can provide other information that can be used to determine the physical location of one of the devices through a plurality of other components, such as including a Media Access Control (MAC) address, an IP address. Or other similar information.
該記憶體226包含一隨機存取記憶體(RAM)204、一唯讀記憶體(ROM)222與其他儲存方式。該大量記憶體226描述電腦可讀儲存媒體(裝置)之一示例,以儲存像是多個電腦可讀指令、資料結構、程式模組或其他資料的資訊。該大量記憶體226儲存一基本輸入/輸出系統(BIOS)224以控制該客戶端裝置200的低階操作。該大量記憶體也儲存一操作系統206,以控制該客戶端裝置200的操作。將能體會的是此元件也包含像是UNIX或LINUXTM的版本之一般目的操作系統,或像是Windows MobileTM的專用客戶端通訊操作系統,或是Symbian®操作系統。該操作系統可以包含或與一Java虛擬機器模組介接,其能夠透過Java應用程式控制硬體元件及/或操作系統的各種操作。 The memory 226 includes a random access memory (RAM) 204, a read only memory (ROM) 222, and other storage methods. The mass memory 226 describes an example of a computer readable storage medium (device) for storing information such as a plurality of computer readable instructions, data structures, program modules or other materials. The bulk memory 226 stores a basic input/output system (BIOS) 224 to control the low-level operation of the client device 200. The bulk memory also stores an operating system 206 to control the operation of the client device 200. The element can appreciate that this also includes the general purpose operating system such as the version of UNIX or LINUX TM or Windows Mobile TM of such a specialized client communication operating system, the operating system or Symbian®. The operating system can include or interface with a Java virtual machine module that can control various operations of hardware components and/or operating systems through a Java application.
該大量記憶體226進一步包含一或多個資料儲存器208,該等資料儲存器208可以由該客戶端裝置200使用以儲存多個應用程式214及/或其他資料與其他事物。例如,該資料儲存器208也可以用於儲存敘述該客戶端裝置200各種容量之資訊。接著可以各種事件之任何事件,提供該資訊至另一裝置,包含在一通訊期間傳送成為一表頭部分、在請求後立即傳送或是其他類似事件。該資 料儲存器208也可以用於儲存社交網路資訊,包含通訊錄、好友清單、別名、使用者數據資料或其他類似資訊。此外,該資料儲存器208也可以儲存訊息、網頁內容或是各種使用者產生內容之任何內容。該資訊之至少一部分也可以儲存在該網路裝置200之另一元件上,包含處理器可讀儲存裝置230、該客戶端裝置200之中(未圖示)磁碟或其他電腦可讀儲存媒體,但不限制於此。 The mass storage 226 further includes one or more data stores 208 that can be used by the client device 200 to store a plurality of applications 214 and/or other materials and other things. For example, the data store 208 can also be used to store information describing the various capacities of the client device 200. This information can then be provided to another device for any event of various events, including being transmitted as a header portion during a communication, transmitting immediately after the request, or other similar event. The capital The material store 208 can also be used to store social network information, including contacts, friends lists, aliases, user data, or other similar information. In addition, the data store 208 can also store messages, web content, or any content of various user generated content. At least a portion of the information may also be stored on another component of the network device 200, including the processor readable storage device 230, a disk (not shown) or other computer readable storage medium in the client device 200. , but not limited to this.
該處理器可讀儲存裝置230可以包含揮發式、非揮發式、可移除式與不可移除式媒介,其以任何方法或技術實作,以儲存資訊,像是儲存多個電腦或處理器可讀指令、資料結構、程式模組或其他資料。該處理器可讀儲存媒介的示例包含RAM、ROM、電子可抹除可規劃唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀記憶光碟(CD-ROM)、數位多功能影音光碟(DVD)或其他光學儲存媒介、磁匣、磁帶、磁碟儲存器或其他磁性儲存裝置,或是可以用於儲存所需要資訊並可由一計算裝置所存取之任何其他實體媒介。在此該處理器可讀儲存裝置230也可以稱為電腦可讀儲存媒介。 The processor readable storage device 230 can include volatile, non-volatile, removable, and non-removable media implemented in any method or technology to store information, such as storing multiple computers or processors. Readable instructions, data structures, program modules or other materials. Examples of the processor readable storage medium include RAM, ROM, electronic erasable programmable read only memory (EEPROM), flash memory or other memory technology, CD-ROM, and digital A functional audio-visual disc (DVD) or other optical storage medium, magnetic tape, magnetic tape, disk storage or other magnetic storage device, or any other physical medium that can be used to store the information needed and accessed by a computing device. The processor readable storage device 230 may also be referred to herein as a computer readable storage medium.
該應用程式214可以包含多個電腦可執行指令,當由該客戶端裝置200執行時,便傳輸、接收及/或是處理網路資料。網路資料可以包含訊息(例如,SMS、多媒體訊息服務(MMS)、即時訊息(IM)、電子郵件及/或其他訊息)、音頻、視頻,但不限制於此,並可以與另一客戶端裝置之另一使用者進行遠端通訊。該應用程式214例如可以包含一瀏覽器218。該應用程式214可以包含多 個其他應用程式,其可以包含行事曆、搜尋程式、電子郵件帳戶、IM應用程式、SMS應用程式、網路電話(VOIP)應用程式、聯絡人管理器、工作管理器、解碼器、資料庫應用程式、文字處理程式、安控應用程式、工作表程式、遊戲、搜尋程式等等,但不限制於此。 The application 214 can include a plurality of computer executable instructions that, when executed by the client device 200, transmit, receive, and/or process network material. Network data can contain messages (eg, SMS, multimedia messaging service (MMS), instant messaging (IM), email and/or other messages), audio, video, but not limited to this, and can be used with another client Another user of the device performs remote communication. The application 214 can include, for example, a browser 218. The application 214 can contain more Other applications that can include calendars, crawlers, email accounts, IM applications, SMS applications, VOIP applications, contact managers, work managers, decoders, database applications Programs, word processing programs, security applications, worksheet programs, games, search programs, etc., but are not limited to this.
該瀏覽器218實質上可以包含任何應用程式,該應用程式經配置以接收並展示多個圖片、文字、多媒體即或其他類似內容,並實質上使用任何網路基礎語言。在一具體實施例中,該瀏覽器應用程式係可以使用HDML、WML、WMLScript、JavaScript、SGML、HTML、XML與其他類似語言,以展示並傳送訊息。然而,可以使用各種其他以網路為基礎之程式語言的任何語言。在一具體實施例中,該瀏覽器218可以使該客戶端裝置200之一使用者與另一網路裝置通訊,像是與該PTMD 109及/或與該等伺服器端裝置110-111通訊。 The browser 218 can essentially include any application configured to receive and display multiple images, text, multimedia, or the like, and essentially use any network based language. In one embodiment, the browser application can use HDML, WML, WMLScript, JavaScript, SGML, HTML, XML, and other similar languages to display and deliver messages. However, any of a variety of other web-based programming languages can be used. In one embodiment, the browser 218 can cause a user of the client device 200 to communicate with another network device, such as the PTMD 109 and/or the server devices 110-111. .
第三圖圖示根據本發明之一具體實施例,一網路裝置300之具體實施例。該網路裝置300可以包含多於或少於所圖示之元件。然而,所圖示之該等元件係足夠揭示用於執行本發明之例證具體實施例。該網路裝置300係經配置以操作為一伺服器、客戶端、節點、主機或任何其他裝置。該網路裝置300可以代表例如第一圖之該PTMD 109、第一圖之該等伺服器端裝置110-111及/或多個其他網路裝置。 The third figure illustrates a specific embodiment of a network device 300 in accordance with an embodiment of the present invention. The network device 300 can include more or less than the illustrated components. However, the illustrated components are sufficient to disclose illustrative embodiments for carrying out the invention. The network device 300 is configured to operate as a server, client, node, host, or any other device. The network device 300 can represent, for example, the PTMD 109 of the first figure, the server end devices 110-111 of the first figure, and/or a plurality of other network devices.
該網路裝置300包含處理器302、處理器可讀儲存裝置 328、網路介面單元330、一輸入/輸出介面332、硬碟裝置334、視頻顯示轉接器336、資料流區段(DFS)338與一大量記憶體,該等所有元件都透過匯流排326彼此連接。該大量記憶體一般而言包含RAM 304、ROM 322與一或多個永久大量儲存裝置,像是硬碟裝置334、磁帶裝置、光學裝置及/或軟碟裝置。該大量記憶體儲存操作系統306,用以控制該網路裝置300的操作。可以使用任何一般目的的操作系統。也可以提供基本輸入/輸出系統(BIOS)324以控制該網路裝置300的低階操作。如第三圖中所描述,該網路裝置300也可以透過該網路介面單元330與網際網路通訊,或是與某些其他通訊網路通訊,該網路介面單元330係經建構以使用各種通訊協定,包含TCP/IP通訊協定。該網路介面單元330有時候係為已知的收發器、收發裝置或網路介面卡(NIC)。 The network device 300 includes a processor 302 and a processor readable storage device 328, a network interface unit 330, an input/output interface 332, a hard disk device 334, a video display adapter 336, a data stream segment (DFS) 338, and a large amount of memory, all of which pass through the bus bar 326. Connect to each other. The bulk memory typically includes a RAM 304, a ROM 322, and one or more permanent mass storage devices, such as a hard disk device 334, a magnetic tape device, an optical device, and/or a floppy disk device. The mass storage system 306 is configured to control the operation of the network device 300. Any general purpose operating system can be used. A basic input/output system (BIOS) 324 may also be provided to control the low level operation of the network device 300. As described in the third figure, the network device 300 can also communicate with the Internet through the network interface unit 330 or with some other communication network. The network interface unit 330 is constructed to use various types. A protocol that contains TCP/IP protocols. The network interface unit 330 is sometimes a known transceiver, transceiver or network interface card (NIC).
該網路裝置300也可以包含輸入/輸出介面332,以與多個外部裝置通訊,像是包含一鍵盤或位於第三圖圖示之多個其他輸入或輸出裝置。該輸入/輸出介面332可以使用一或多種通訊技術,像是USB、紅外線、藍芽或是其他類似技術。 The network device 300 can also include an input/output interface 332 for communicating with a plurality of external devices, such as a keyboard or a plurality of other input or output devices located in the diagram of the third figure. The input/output interface 332 can use one or more communication technologies such as USB, infrared, Bluetooth or other similar technologies.
如以上敘述之該大量記憶體係描述另一種電腦可讀媒介形式,也就是電腦可讀儲存媒介及/或處理器可讀儲存媒介,包含處理器可讀儲存裝置328。該處理器可讀儲存裝置328可以包含揮發式、非揮發式、可移除式與不可移除式媒介,其以任何方法或技術實作,以儲存資訊,像是儲存多個電腦或處理器可讀指令、資料結構、程式模組或其他資料。該處理器可讀儲存媒介的示例包含 RAM、ROM、EEPROM、快閃記憶體或其他記憶體技術、CD-ROM、數位多功能影音光碟(DVD)或其他光學儲存媒介、磁匣、磁帶、磁碟儲存器或其他磁性儲存裝置,或是可以用於儲存所需要資訊並可由一計算裝置所存取之任何其他媒介。 The plurality of memory systems as described above describe another form of computer readable media, that is, a computer readable storage medium and/or a processor readable storage medium, including processor readable storage 328. The processor readable storage device 328 can include volatile, non-volatile, removable, and non-removable media implemented in any method or technology to store information, such as storing multiple computers or processors. Readable instructions, data structures, program modules or other materials. An example of the processor readable storage medium includes RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile video disc (DVD) or other optical storage media, magnetic tape, magnetic tape, disk storage or other magnetic storage device, or It is any other medium that can be used to store the information needed and can be accessed by a computing device.
該資料儲存器308可以包含一資料庫、文字、工作表、資料夾、檔案或其他類似內容,其經配置以保持並儲存多個使用者帳戶識別器、使用者數據資料、電子郵件位址、IM位址及/或其他網路位址,或是其他類似內容。該資料儲存器308可以進一步包含程式碼、資料、演算法或其他類似內容,以由一處理器所使用,像是由中央處理單元302所使用以執行並實作多個動作。在一具體實施例中,該資料儲存器308之至少某些也可以儲存於該網路裝置300之另一元件上,包含處理器可讀儲存裝置328、硬碟裝置334或其他類似裝置,但不限制於此。 The data store 308 can include a database, text, worksheets, folders, files, or the like that is configured to maintain and store a plurality of user account identifiers, user data, email addresses, IM address and / or other network address, or other similar content. The data store 308 can further include code, material, algorithms, or the like for use by a processor, such as by the central processing unit 302, to perform and perform a plurality of actions. In a specific embodiment, at least some of the data store 308 can also be stored on another component of the network device 300, including the processor readable storage device 328, the hard disk device 334, or the like, but Not limited to this.
該大量記憶體也可以儲存程式碼與資料。一或多個應用程式314可以載入至該大量記憶體之中,並於該操作系統306上執行。應用程式的示例係包含解碼器、排程器、行事曆、資料庫程式、文字處理程式、超文件傳輸協定(HTTP)程式、可客製化使用者介面程式、通訊協定安全(IPSec)應用程式、編碼程式、安全性程式、SMS訊息伺服器、IM伺服器、電子郵件伺服器、帳號管理器等等。網路伺服器316與控制區段(CS)318也可包含於該等應用程式314之中,以成為應用程式。 This large amount of memory can also store code and data. One or more applications 314 can be loaded into the bulk of the memory and executed on the operating system 306. Examples of applications include decoders, schedulers, calendars, database programs, word processing programs, Hyper File Transfer Protocol (HTTP) programs, customizable user interface programs, and Protocol Security (IPSec) applications. , coding program, security program, SMS message server, IM server, email server, account manager, etc. Network server 316 and control section (CS) 318 may also be included in such applications 314 to become an application.
該網路伺服器316代表各種服務之任何服務,經配置 以透過一網路提供內容,包含多個訊息,至另一計算裝置。因此,該網路伺服器316例如包含一網路伺服器、FTP伺服器、資料庫伺服器、內容伺服器或其他類似伺服器。該網路伺服器316可以透過該網路使用各種格式之任何一種提供多個訊息,包含WAP、HDML、WML、SGML、HTML、XML、小型HTML(cHTML)、可擴充HTML(xHTML)或其他類似格式,但不限制於此。該網路伺服器316也可以經配置以使一客戶端裝置之一使用者瀏覽網站、上傳使用者資料或進行其他類似動作,該客戶端裝置則像是第一圖之該等客戶端裝置102-105。 The web server 316 represents any service for various services, configured To provide content through a network, including multiple messages, to another computing device. Therefore, the web server 316 includes, for example, a web server, an FTP server, a database server, a content server, or the like. The web server 316 can provide multiple messages over the network using any of a variety of formats, including WAP, HDML, WML, SGML, HTML, XML, small HTML (cHTML), extensible HTML (xHTML), or the like. Format, but not limited to this. The web server 316 can also be configured to enable a user of a client device to browse a website, upload user profiles, or perform other similar actions, such as the client device 102 of the first figure. -105.
該網路裝置300也可以包含DFS 338,以維持該等客戶端裝置與該等伺服器端裝置之間的多個連接流,像是第一圖之該等客戶端裝置102-105與第一圖之該等伺服器端裝置110-111之間。在一具體實施例中,該DFS 338可以包含為封包流量管理的多個硬體最佳化操作,像是與封包流量管理有關的多個反覆操作。例如,該DFS 338可以對該DFS 338處所維持之多個連接流,執行統計資料蒐集、以封包為處理單位的政策執行(例如,封包位址轉譯)或其他類似功能。在某些具體實施例中,該DFS 338可以根據為一特定連接流特徵(例如,一已接收封包之五元組。)之多個規則,配送、切換、傳遞、引導及/或是處理多個封包。因此,該DFS 338可以包含多個容量並執行多個工作,像是由一路由器、切換器、路由開關或其他類似裝置所執行的那些工作。在某些具體實施例中,用於一特定連接流特徵之該等規則係以從該CS 318所接收之多個指令為 基礎。在一具體實施例中,該DFS 338可以在一局部記憶體中儲存來自該CS 318所接收之該等指令,成為一表格或某些其他資料結構。在某些具體實施例中,該DFS 338也可以儲存一流狀態表格,以指示在該DFS 338處所維持之多個目前連接流的狀態。在各種具體實施例之至少一具體實施例中,該DFS 338之多個元件可以包含及/或組合工作,以為最佳化封包流量管理提供高速流快取。 The network device 300 can also include a DFS 338 to maintain a plurality of connection flows between the client devices and the server devices, such as the client devices 102-105 of the first figure and the first Between the server end devices 110-111 of the figure. In one embodiment, the DFS 338 can include multiple hardware optimization operations for packet traffic management, such as multiple repetitive operations related to packet traffic management. For example, the DFS 338 can perform statistics collection, policy enforcement (eg, packet address translation) with packets as a processing unit, or other similar functions for the plurality of connection flows maintained at the DFS 338. In some embodiments, the DFS 338 can be distributed, switched, delivered, directed, and/or processed according to a plurality of rules for a particular connection flow feature (eg, a quintuple of received packets). Packets. Thus, the DFS 338 can contain multiple capacities and perform multiple tasks, such as those performed by a router, switch, routing switch, or other similar device. In some embodiments, the rules for a particular connection flow feature are based on a plurality of instructions received from the CS 318. basis. In one embodiment, the DFS 338 can store the instructions received from the CS 318 in a local memory as a table or some other data structure. In some embodiments, the DFS 338 can also store a state-of-the-art status table to indicate the status of a plurality of current connection flows maintained at the DFS 338. In at least one embodiment of various embodiments, multiple components of the DFS 338 can include and/or operate in combination to provide high speed streaming cache for optimized packet traffic management.
在某些具體實施例中,該DFS 338可以提供多個連接流狀態更新至該CS 318。在一具體實施例中,一連接流狀態更新可以包含該連接流之一狀態、該連接流之一目前狀態、與該連接流有關之其他統計資訊或其他類似資訊。該連接流更新也可以包含與該連接流有關之一識別符。該識別符可由該CS 318,於該DFS 338處建立一連接流時產生並提供。在某些具體實施例中,該連接流更新可為在該連接流於該DFS 338終止之後,提供至該CS 318之一連接流刪除更新。該連接流狀態更新及/或該連接流刪除更新可於預定期間或其他類似方式週期提供至該CS 318。在某些具體實施例中,該DFS 338可於提供複數個連接流狀態更新至該CS時,使時間交錯。 In some embodiments, the DFS 338 can provide multiple connection flow status updates to the CS 318. In a specific embodiment, a connection flow state update may include a state of the connection flow, a current state of the connection flow, other statistical information related to the connection flow, or other similar information. The connection flow update may also contain an identifier associated with the connection flow. The identifier may be generated and provided by the CS 318 when a connection stream is established at the DFS 338. In some embodiments, the connection flow update may be a connection flow deletion update provided to the CS 318 after the connection flow terminates at the DFS 338. The connection flow status update and/or the connection flow deletion update may be provided to the CS 318 during a predetermined period or other similar manner. In some embodiments, the DFS 338 can interleave time when a plurality of connection stream states are updated to the CS.
在某些其他具體實施例中,該DFS 338可以包含複數個資料流區段。在一非限制性示例中,該DFS338中之一第一資料流區段可以傳遞來自一客戶端裝置所接收之多個封包至一伺服器端裝置,而該DFS 338中之一第二資料流區段可以傳遞及/或配送從一伺服器端裝置所接收之多個封包至一客戶端裝置。在各種具體實 施例之至少一具體實施例中,該DFS 338也可以實作於軟體中。 In some other specific embodiments, the DFS 338 can include a plurality of data stream segments. In one non-limiting example, one of the first data stream segments of the DFS 338 can pass a plurality of packets received from a client device to a server device, and one of the DFS 338s has a second data stream. The segment can deliver and/or distribute a plurality of packets received from a server-side device to a client device. In various concrete In at least one embodiment of the embodiment, the DFS 338 can also be implemented in a software.
該CS 318可以包含一控制區段,其包含多個軟體最佳化操作,以為封包流量管理執行多個高階控制功能與以資料流為處理單位的政策執行。該CS 318可經配置以管理在該DFS 338處所維持之多個連接流。在一具體實施例中,該CS 318可以提供多個指令,例如像是一封包位址轉譯指令至該DFS 338,以傳遞已接收多個封包至一伺服器端裝置,像是第一圖之該等伺服器端裝置110-111。在某些具體實施例中,該CS 318可以獨立於該DFS 338於一客戶端裝置與一伺服器端裝置之間傳遞及/或配送多個封包。 The CS 318 can include a control section that includes a plurality of software optimization operations to perform a plurality of high-order control functions and policy execution with data streams as processing units for packet traffic management. The CS 318 can be configured to manage multiple connection flows maintained at the DFS 338. In a specific embodiment, the CS 318 can provide a plurality of instructions, such as, for example, a packet address translation instruction to the DFS 338 to deliver a plurality of received packets to a server device, such as the first image. The server end devices 110-111. In some embodiments, the CS 318 can communicate and/or distribute multiple packets between a client device and a server device independently of the DFS 338.
在各種具體實施例之至少一具體實施例中,該CS 318可以包含複數個控制區段。在某些具體實施例中,複數個控制區段可以存取及/或管理在一單一資料流區段及/或在複數個資料流區段處之多個連接流。在某些其他具體實施例中,該CS 318可以包含一內部資料流區段。在一所述具體實施例中,該CS 318之該內部資料流區段可從該CS 318所散佈及/或分離。例如,在一具體實施例中,該CS 318可於軟體中使用,然而該內部資料流區段也可以於硬體中使用。在某些其他具體實施例中,該CS 318可以辨識該等連接流是否係從不同資料流區段及/或一DFS 338與一CS 318之間所分離。在至少一具體實施例中,該CS 318也可以實作於硬體中。 In at least one embodiment of various embodiments, the CS 318 can include a plurality of control segments. In some embodiments, a plurality of control segments can access and/or manage a plurality of connection flows at a single data stream segment and/or at a plurality of data stream segments. In some other specific embodiments, the CS 318 can include an internal data stream segment. In a particular embodiment, the internal data stream segment of the CS 318 can be interspersed and/or separated from the CS 318. For example, in one embodiment, the CS 318 can be used in a software, however the internal data stream segment can also be used in hardware. In some other specific embodiments, the CS 318 can identify whether the connection streams are separated from different data stream segments and/or between a DFS 338 and a CS 318. In at least one embodiment, the CS 318 can also be implemented in a hardware.
在各種具體實施例之至少一具體實施例中,該CS 318可經配置以為了在該DFS 338處所建立之每一連接流產生一識別符。在某些具體實施例中,該CS 318可以使用一SYN之序列號碼, 以為一對應連接流產生一識別符。在一具體實施例中,該識別符可以該序列數字之一雜湊函數為基礎。在另一具體實施例中,該識別符可以該序列數字之一互斥或位元操作為基礎。該CS 318可以在該CS 318處快取該識別符,並提供該識別符至該DFS 338。在某些具體實施例中,該CS 318可為了在該DFS 338處所建立之每一個連接流快取一識別符。 In at least one embodiment of various embodiments, the CS 318 can be configured to generate an identifier for each connection flow established at the DFS 338. In some embodiments, the CS 318 can use a serial number of a SYN. It is assumed that a corresponding connection stream generates an identifier. In a specific embodiment, the identifier can be based on one of the sequence numbers of the hash function. In another embodiment, the identifier may be based on one of the sequence numbers being mutually exclusive or bitwise. The CS 318 can cache the identifier at the CS 318 and provide the identifier to the DFS 338. In some embodiments, the CS 318 can cache an identifier for each connection stream established at the DFS 338.
第四A圖描述一系統圖式,其一般性圖示一系統之具體實施例,該系統具有位於該等客戶端裝置與該等伺服器端裝置之間之一封包流量管理裝置。該系統400A可以包含位於該等客戶端裝置402-403與該等伺服器端裝置410-411之間的封包流量管理裝置(PTMD)404。該等客戶端裝置402-403可以包含Client_1至Client_M,其可包含一或多個客戶端裝置,像是第二圖之該等客戶端裝置200。該等伺服器端裝置410-411可以包含Server_1至Server_N,其可包含一或多個伺服器端裝置,像是第一圖之該等伺服器端裝置110-111。 Figure 4A depicts a system diagram that generally illustrates a particular embodiment of a system having a packet flow management device between the client devices and the server devices. The system 400A can include a packet flow management device (PTMD) 404 located between the client devices 402-403 and the server devices 410-411. The client devices 402-403 may include Client_1 to Client_M, which may include one or more client devices, such as the client devices 200 of the second figure. The server-side devices 410-411 may include Server_1 through Server_N, which may include one or more server-side devices, such as the server-side devices 110-111 of the first figure.
在一具體實施例中,該PTMD 404可為第一圖該PTMD 109之一具體實施例。該PTMD 404可以包含資料流區段(DFS)406,並與控制區段(CS)408通訊。在各種具體實施例之至少一具體實施例中,該DFS 406可為第三圖該DFS 338之一具體實施例。該CS 408可為第三圖該CS 318之一具體實施例。 In a specific embodiment, the PTMD 404 can be one of the first embodiment of the PTMD 109. The PTMD 404 can include a data stream segment (DFS) 406 and communicate with a control segment (CS) 408. In at least one embodiment of various embodiments, the DFS 406 can be a third embodiment of the DFS 338. The CS 408 can be a third embodiment of the CS 318 embodiment.
該CS 408可經配置以與該DFS 406、該等客戶端裝置402-403及/或獨立於該DFS 406與該等伺服器端裝置410-411及/或 其任何組合通訊。該CS 408可在DFS 406處建立多個連接流。在某些具體實施例中,該CS 408可利用提供多個指令至該DFS 406的方式於該DFS 406處建立一連接流,並使該DFS 406傳遞於該PTMD 404處所接收之多個封包,該等指令則包含流控制資料。在一具體實施例中,該CS 408可以執行一負載平衡操作,以選擇該等伺服器端裝置410-411之一伺服器端裝置,以接收從一客戶端裝置所傳送之多個封包,像是從該客戶端裝置402所傳送。在某些其他具體實施例中,當該連接流建立時,該CS 408可以產生並快取一連接流識別符,以提供至該DFS 406。 The CS 408 can be configured to interface with the DFS 406, the client devices 402-403, and/or independently of the DFS 406 and the server devices 410-411 and/or Any combination of its communication. The CS 408 can establish multiple connection streams at the DFS 406. In some embodiments, the CS 408 can establish a connection flow at the DFS 406 by providing a plurality of instructions to the DFS 406 and pass the DFS 406 to the plurality of packets received at the PTMD 404. These instructions contain flow control data. In a specific embodiment, the CS 408 can perform a load balancing operation to select one of the server end devices 410-411 to receive a plurality of packets transmitted from a client device, such as It is transmitted from the client device 402. In some other specific embodiments, when the connection flow is established, the CS 408 can generate and cache a connection flow identifier for provision to the DFS 406.
該DFS 406可經配置以促成該等客戶端裝置402-403與該等伺服器端裝置410-411之間的多個通訊。該DFS 406可以根據從該CS 408所接收之該等指令與流控制資料,處理並傳遞在該PTMD 404處接收的多個封包。例如在一具體實施例中,該DFS 406使用該等指令及/或流控制資料,以傳遞從該客戶端裝置402接收之多個封包至該伺服器端裝置410,並傳遞從該伺服器端裝置410接收之多個封包至該客戶端裝置402。在某些具體實施例中,該DFS 406可以傳遞多個預定封包至該CS 408,像是多個新的連接流請求(例如,與一SYN相關之請求),但不限制於此。而在其他具體實施例中,該DFS 406可以通知該CS 408已經接收並傳遞一封包。在一非限制、非窮盡示例中,該DFS 406可以通知該CS 408,已經從該客戶端裝置402接收一ACK,並傳遞至該伺服器端裝置410。在各種具體實施例之至少一具體實施例中,該DFS 406也可以提供多個連接 流更新與一對應連接流識別符至該CS 408。該CS 408可以比較該對應連接流識別符與該已快取識別符,以決定該連接流更新是否為有效。 The DFS 406 can be configured to facilitate multiple communications between the client devices 402-403 and the server devices 410-411. The DFS 406 can process and communicate the plurality of packets received at the PTMD 404 based on the instructions and flow control data received from the CS 408. For example, in one embodiment, the DFS 406 uses the instructions and/or flow control data to pass a plurality of packets received from the client device 402 to the server device 410 and pass from the server device. The device 410 receives a plurality of packets to the client device 402. In some embodiments, the DFS 406 can deliver a plurality of predetermined packets to the CS 408, such as a plurality of new connection flow requests (eg, requests related to a SYN), but is not limited thereto. In other embodiments, the DFS 406 can notify the CS 408 that a packet has been received and delivered. In an unrestricted, non-exhaustive example, the DFS 406 can notify the CS 408 that an ACK has been received from the client device 402 and passed to the server device 410. In at least one embodiment of various embodiments, the DFS 406 can also provide multiple connections. The stream is updated with a corresponding connection stream identifier to the CS 408. The CS 408 can compare the corresponding connection flow identifier with the cached identifier to determine if the connection flow update is valid.
在各種具體實施例之至少一具體實施例中,如果一連接流係從該DFS 406所驅趕,該DFS 406可以傳送驅趕訊息至該CS 408。在各種具體實施例之至少一具體實施例中,如果多個新的流抵達,且超過該DFS 406能夠處理該新的連接流的容量時,該DFS 406便可以驅趕一連接流。在各種具體實施例之至少一具體實施例中,如果用於儲存流控制資料之該高速流快取已經超過其可以為該等新連接流儲存該流控制資料的容量,便可以從該DFS 406進行驅趕。在各種具體實施例之至少一具體實施例中,從該DFS 406傳送至該CS 408之該等驅趕訊息可以包含足夠的資訊,以完全辨識該連接流(例如,多個終端、埠口、序列號碼、流狀態或其他類似資訊)。 In at least one embodiment of various embodiments, if a connection flow is evicted from the DFS 406, the DFS 406 can transmit a drive message to the CS 408. In at least one embodiment of various embodiments, the DFS 406 can drive a connection stream if a plurality of new flows arrive and exceed the capacity of the DFS 406 to process the new connection flow. In at least one embodiment of various embodiments, the DFS 406 can be from the DFS 406 if the high speed streaming cache for storing flow control data has exceeded its capacity to store the flow control data for the new connection flows. Drive out. In at least one embodiment of various embodiments, the drive messages transmitted from the DFS 406 to the CS 408 may contain sufficient information to fully identify the connection stream (eg, multiple terminals, ports, sequences) Number, stream status, or other similar information).
在各種具體實施例之至少一具體實施例中,該CS 408可以接收並配送與該等已驅趕連接流有關的多個封包,藉此達到該DFS 406之某些功能。在各種具體實施例之至少一具體實施例中,如果該CS 408決定該等連接流係於該CS 408上所管理,或是如果該CS 408決定需要更多的資訊以決定該連接流是否應該被卸載至該DFS 406時,某些新的連接流便可能無法被卸載至該DFS 406。 In at least one embodiment of various embodiments, the CS 408 can receive and distribute a plurality of packets associated with the evicted connection streams, thereby achieving certain functions of the DFS 406. In at least one embodiment of various embodiments, if the CS 408 determines that the connection flows are managed on the CS 408, or if the CS 408 decides that more information is needed to determine whether the connection flow should be When being unloaded to the DFS 406, some new connection streams may not be offloaded to the DFS 406.
雖然該PTMD 404係描述該DFS 406與該CS 408為一單一PTMD 404之中的兩部分,但本發明並不因此受限。倒不如說,在某些具體實施例中,該DFS 406與該CS 408可為一相同PTMD 404 中(也就是一相同底座/計算裝置中)的兩功能區塊。在其他具體實施例中,該DFS 406可以由一或多個底座/計算裝置所實作,而與用於實作該CS 408之一或多個底座/計算裝置不同。而在其他具體實施例中,該CS 408可為插入至該DFS 406之中之一模組。此外,本發明也設想到該DFS 406及/或該CS 408之任一者功能,可分別實作於軟體及/或硬體中。 Although the PTMD 404 describes the DFS 406 and the CS 408 as two of a single PTMD 404, the invention is not so limited. Rather, in some embodiments, the DFS 406 and the CS 408 can be the same PTMD 404. Two functional blocks in the middle (that is, in the same base/computing device). In other embodiments, the DFS 406 can be implemented by one or more base/computing devices, as opposed to one or more of the base/computing devices used to implement the CS 408. In other embodiments, the CS 408 can be one of the modules inserted into the DFS 406. In addition, the present invention contemplates that any of the functions of the DFS 406 and/or the CS 408 can be implemented in software and/or hardware, respectively.
第四B圖描述一系統圖式,其一般性圖示一系統之具體實施例,該系統具有位於該等客戶端裝置與該等伺服器端裝置之間之一封包流量管理裝置。該系統400B可以包含封包流量管理裝置(PTMD)404,位於該等客戶端裝置402-403與該等伺服器端裝置410-411之間。該等客戶端裝置402-403可以包含Client_1至Client_M,其可包含一或多個客戶端裝置,像是第一圖之該等客戶端裝置102-105。該等伺服器端裝置410-411可以包含Server_1至Server_N,其可包含一或多個伺服器端裝置,像是第一圖之該等伺服器端裝置110-111。 Figure 4B depicts a system diagram that generally illustrates a particular embodiment of a system having a packet flow management device between the client devices and the server devices. The system 400B can include a packet flow management device (PTMD) 404 located between the client devices 402-403 and the server devices 410-411. The client devices 402-403 may include Client_1 to Client_M, which may include one or more client devices, such as the client devices 102-105 of the first figure. The server-side devices 410-411 may include Server_1 through Server_N, which may include one or more server-side devices, such as the server-side devices 110-111 of the first figure.
在一具體實施例中,該PTMD 404可為第四圖該PTMD 404之一具體實施例。該PTMD 404可以包含多個資料流區段(DFS)406~407與多個控制區段(CS)408~409。該等DFS 406~407可以包含複數個資料流區段,每一個都可為第四A圖該DFS 406之一具體實施例。該等CS 408~409可以包含複數個控制流區段,每一個都可為第四圖該CS 408之一具體實施例。 In a specific embodiment, the PTMD 404 can be a fourth embodiment of the PTMD 404. The PTMD 404 can include multiple data stream segments (DFS) 406-407 and multiple control segments (CS) 408-409. The DFSs 406-407 can include a plurality of data stream segments, each of which can be a fourth embodiment of the DFS 406. The CSs 408-409 may include a plurality of control flow segments, each of which may be a fourth embodiment of the CS 408 embodiment.
在某些具體實施例中,該等客戶端裝置402-403與該 等伺服器端裝置410-411之間通訊之資料,可以流過一多個資料流區段406~407。在一具體實施例中,來自該等客戶端裝置402-403的資料可以流過一第一DFS,像是該DFS 406,而來自該等伺服器端裝置110-111的資料可以流過一第二DFS,像是該DFS 407。 In some embodiments, the client devices 402-403 and the The data communicated between the server devices 410-411 can flow through a plurality of data stream segments 406-407. In one embodiment, data from the client devices 402-403 may flow through a first DFS, such as the DFS 406, and data from the server devices 110-111 may flow through a Two DFS, like the DFS 407.
在各種具體實施例之至少一具體實施例中,該等DFS 406~407之一或多個資料流區段以與該等CS 408~409之一或多個控制區段通訊。同樣的,該等CS 408~409之一或多個控制區段可以與該等DFS 406~407之一或多個資料流區段通訊。在某些具體實施例中,該等CS 408~409之每一控制區段可以與該等CS 408~409之其他控制區段通訊(未圖示)。在其他具體實施例中,該等DFS 406~407之每一資料流區段可以與該等DFS 406~407之其他資料流區段通訊(未圖示)。 In at least one embodiment of various embodiments, one or more data stream segments of the DFSs 406-407 are in communication with one or more of the CS 408-409 control segments. Similarly, one or more control segments of the CSs 408-409 can communicate with one or more of the DFS 406-407 data streams. In some embodiments, each of the CS 408-409 control sections can communicate with other control sections of the CSs 408-409 (not shown). In other embodiments, each data stream segment of the DFSs 406-407 can communicate with other data stream segments of the DFSs 406-407 (not shown).
同樣的,在各種具體實施例之至少一具體實施例中,可以根據該網路封包移動的方向,將多個連接流分離成為多個流部分。在各種具體實施例之至少一具體實施例中,來自於該客戶端之該等網路封包可以被視為一不同的連接流,而來自於一伺服器並被導向至一客戶端之該等網路封包可以被視為一不同的連接流。在各種具體實施例之至少一具體實施例中,此方法可以根據一特定分裂之連接流的網路封包流量總量達成最佳化。在各種具體實施例之至少一具體實施例中,這可以使該連接流的上傳與下載方向部分,根據該等連接流之該上傳與下載部分的特性,跨及該等CS 408~409與該等DFS 406~407分裂。例如,在各種具體實施例之至少一具體 實施例中,下載串流視頻可能是一種非常不對稱的操作,其具有許多下載至該客戶端的網路封包,但具有極少上傳至該的網路封包。在各種具體實施例之至少一具體實施例中,在該下載方向中該連接流之該上傳與下載部分可以使一部份利用該DFS與一高速流快取,而另一部份可由該CS以較低效能(較不昂貴)資源處理的方式,被分別最佳化。 Similarly, in at least one embodiment of various embodiments, the plurality of connection streams may be separated into a plurality of stream portions according to a direction in which the network packet moves. In at least one embodiment of various embodiments, the network packets from the client can be viewed as a different connection stream from a server and directed to a client. Network packets can be viewed as a different connection stream. In at least one embodiment of various embodiments, the method can be optimized based on the total amount of network packet traffic for a particular split connection flow. In at least one embodiment of various embodiments, this may cause the upload and download direction portions of the connection stream to span the CS 408-409 and the other according to the characteristics of the upload and download portions of the connection stream. Wait for DFS 406~407 to split. For example, at least one of the specific embodiments In an embodiment, downloading streaming video may be a very asymmetrical operation with many network packets downloaded to the client, but with very few network packets uploaded to it. In at least one embodiment of various embodiments, the uploading and downloading portion of the connection stream in the download direction may cause a portion to utilize the DFS to cache with a high speed stream and another portion to be available to the CS Optimized separately in a less efficient (less expensive) way of processing resources.
第五圖描述用於建立一連接流並將該新的連接流卸載至該資料流區段(DFS)之一序列的具體實施例。該序列500圖示利用TCP/IP網路通訊協定之一具體實施例,但該領域一般技術人員將可體會該序列圖式(或類似的序列)一般而言可以應用於同樣具有其他握手協定(handshaking)序列的其他網路通訊協定。同樣的,雖然該序列500描繪一種包含一客戶端、一DFS、一CS與一應用程式伺服器的序列,但在各種具體實施例之至少一具體實施例中,一或多個資料流區段、控制區段、客戶端與伺服器端都可以加入該握手協定,並參加該連接流卸載作業。同樣的,在各種具體實施例之至少一具體實施例中,該等連接流可被分裂為一連接流的上傳與下載部分,其每一部分都代表該連接流之一方向。 The fifth figure depicts a specific embodiment for establishing a connection flow and offloading the new connection flow to a sequence of one of the data flow segments (DFS). The sequence 500 illustrates one embodiment utilizing a TCP/IP network communication protocol, but one of ordinary skill in the art will appreciate that the sequence diagram (or similar sequence) can generally be applied to other handshake protocols as well ( Handshaking) Sequence of other network protocols. Similarly, although the sequence 500 depicts a sequence including a client, a DFS, a CS, and an application server, in at least one embodiment of the various embodiments, one or more data stream segments The control section, the client, and the server can join the handshake protocol and participate in the connection flow unloading operation. Similarly, in at least one embodiment of various embodiments, the connection streams can be split into an upload and download portion of a connection stream, each portion representing a direction of the connection stream.
在各種具體實施例之至少一具體實施例中,如果一客戶端開始與由一PTMD所管理之一網路資源連接,像是由該PTMD 109所管理時,該序列500於步驟502開始。如果該客戶端可以利用TCP/IP開始該連接,便可以傳送一SYN封包至該PTMD。 In at least one embodiment of various embodiments, the sequence 500 begins in step 502 if a client begins to connect to a network resource managed by a PTMD, such as by the PTMD 109. If the client can start the connection using TCP/IP, a SYN packet can be transmitted to the PTMD.
在步驟504,可於一DFS處接收一SYN封包,該DFS 為一PTMD之部分。在各種具體實施例之至少一具體實施例中,在步驟506,因為該DFS可以決定該來源連接代表一新的連接流,該DFS可以傳遞該SYN封包至一CS。在步驟506,一CS可以檢驗該連接流,並可以決定代表該新流的適當流控制資料,並將其傳送至該DFS。在各種具體實施例之至少一具體實施例中,該CS可以應用一或多種已儲存規則,用以為了該新的網路連接流決定該流控制資料。在各種具體實施例之至少一具體實施例中,該等已儲存規則可以實作多個網路流量管理服務,像是負載平衡、應用程式存取控制或是其他類似服務。 At step 504, a SYN packet can be received at a DFS, the DFS As part of a PTMD. In at least one embodiment of various embodiments, at step 506, the DFS may pass the SYN packet to a CS because the DFS may determine that the source connection represents a new connection stream. At step 506, a CS can verify the connection flow and can determine the appropriate flow control data representing the new flow and transmit it to the DFS. In at least one embodiment of various embodiments, the CS may apply one or more stored rules for determining the flow control data for the new network connection flow. In at least one embodiment of various embodiments, the stored rules can implement multiple network traffic management services, such as load balancing, application access control, or other similar services.
在各種具體實施例之至少一具體實施例中,在步驟508,該DFS可以從該CS接收該流控制資料,並儲存流控制資料於一高速流快取中。在各種具體實施例之至少一具體實施例中,可由該DFS使用該流控制資料以傳遞該SYN封包至由可能由該CS所提供之該流控制資料所引導之一適當的伺服器及/或網路資源。 In at least one embodiment of various embodiments, in step 508, the DFS can receive the flow control data from the CS and store the flow control data in a high speed stream cache. In at least one embodiment of various embodiments, the flow control data may be used by the DFS to deliver the SYN packet to an appropriate server and/or by the flow control data that may be provided by the CS. Network resources.
在各種具體實施例之至少一具體實施例中,在步驟510,一伺服器及/或網路資源可以接收該SYN封包並可以回應傳送一SYN_ACK封包至該DFS。在各種具體實施例之至少一具體實施例中,於步驟512,該DFS可以再次使用儲存於該高速流快取中之該流控制資料,以映射及/或轉譯來自一伺服器之該SYN_ACK至該適當的客戶端。 In at least one embodiment of various embodiments, at step 510, a server and/or network resource can receive the SYN packet and can respond to transmit a SYN_ACK packet to the DFS. In at least one embodiment of various embodiments, in step 512, the DFS may again use the flow control data stored in the high speed stream cache to map and/or translate the SYN_ACK from a server to The appropriate client.
在各種具體實施例之至少一具體實施例中,於步驟514,傳送該初始SYN封包之該客戶端裝置可以接收該對應 SYN_ACK,接著可以以一ACK封包回應。在各種具體實施例之至少一具體實施例中,於步驟516,利用該已儲存流控制資料決定對該伺服器之網路路徑,該DFS可以傳遞該ACK封包至該伺服器。 In at least one specific embodiment of various specific embodiments, in step 514, the client device transmitting the initial SYN packet can receive the corresponding SYN_ACK, which can then be acknowledged with an ACK packet. In at least one embodiment of various embodiments, in step 516, the network path of the server is determined using the stored flow control data, and the DFS can deliver the ACK packet to the server.
在各種具體實施例之至少一具體實施例中,於步驟518,該伺服器可以接收與該客戶端裝置對應之該ACK封包。在該ACK已經被接收之後,該網路連接流便處於一建立狀態。在各種具體實施例之至少一具體實施例中,於步驟520-524之間,利用該已建立網路連接流,該伺服器可以開始與該客戶端交換應用程式資料。在各種具體實施例之至少一具體實施例中,在此時為了該資料的每一次交換資料,該DFS可以使用被儲存於該高速流快取中的該流控制資料,以進行該等應用程式伺服器與該客戶端之間的映射,以在該正確路徑上配送該等封包,以維持該連接流。 In at least one embodiment of various embodiments, in step 518, the server can receive the ACK packet corresponding to the client device. After the ACK has been received, the network connection stream is in an established state. In at least one embodiment of various embodiments, between the steps 520-524, using the established network connection stream, the server can begin exchanging application data with the client. In at least one embodiment of various embodiments, at this time, for each exchange of data for the data, the DFS may use the flow control data stored in the high speed stream cache to perform the applications. A mapping between the server and the client to distribute the packets on the correct path to maintain the connection stream.
第六圖圖示一流程圖,該流程圖圖示根據該各種具體實施例之至少一具體實施例,進行封包流量管理之程序。在程序600中,於一開始區塊後,在區塊602,由一DFS接收一網路封包。在各種具體實施例之至少一具體實施例中,該等網路封包可從該網路108所接收,及/或可以透過多個網路、切換器、路由器、其他PTMD或其他類似裝置所傳遞。 The sixth diagram illustrates a flow diagram illustrating a procedure for packet traffic management in accordance with at least one embodiment of the various embodiments. In the process 600, after the block is initially started, at block 602, a network packet is received by a DFS. In at least one embodiment of various embodiments, the network packets may be received from the network 108 and/or may be transmitted over a plurality of networks, switches, routers, other PTMDs, or other similar devices. .
在決策區塊604處,在各種具體實施例之至少一具體實施例中,如果該已接收網路封包係與一新的連接流有關,則程序控制便移動至區塊606。否則在各種具體實施例之至少一具體實施 例中,程序控制便移動至決策區塊608。 At decision block 604, in at least one embodiment of various embodiments, program control moves to block 606 if the received network packet is associated with a new connection stream. Otherwise at least one implementation of various specific embodiments In the example, program control moves to decision block 608.
在各種具體實施例之至少一具體實施例中,一DFS可以檢驗該連接流,並與儲存在一高速流快取中之該流控制資料比較。在各種具體實施例之至少一具體實施例中,可以檢驗與該網路封包有關之元組,以決定該網路封包是否為一新連接流的部分。如果在該高速流快取中,並未發現與該來源網路封包對應之元組,該DFS可以決定該網路封包係為一新連接流之部分。 In at least one embodiment of various embodiments, a DFS can verify the connection stream and compare it to the flow control data stored in a high speed stream cache. In at least one embodiment of various embodiments, the tuple associated with the network packet can be verified to determine if the network packet is part of a new connection flow. If the tuple corresponding to the source network packet is not found in the high speed stream cache, the DFS may determine that the network packet is part of a new connection stream.
在區塊606,在各種具體實施例之至少一具體實施例中,可以傳遞與一新的連接流有關之該來源網路封包至一CS,以進行進一步處理。在各種具體實施例之至少一具體實施例中,可以利用一命令匯流排傳送該來源網路封包至一CS,這使的該DFS與該CS元件交換資料與訊息。接著,程序控制便移動至決策區塊614。 At block 606, in at least one embodiment of various embodiments, the source network packet associated with a new connection stream can be passed to a CS for further processing. In at least one embodiment of various embodiments, the source network packet can be transmitted to a CS using a command bus, which causes the DFS to exchange data and messages with the CS component. Program control then moves to decision block 614.
在決策區塊608,在各種具體實施例之至少一具體實施例中,如果可利用代表與該網路封包有關之該連接流的流控制資料,則程序控制便移動至區塊610。否則在各種具體實施例之至少一具體實施例中,程序控制便移動至區塊612。 In decision block 608, in at least one embodiment of various embodiments, program control moves to block 610 if flow control information representative of the connection flow associated with the network packet is available. Otherwise, in at least one embodiment of various embodiments, program control moves to block 612.
在區塊610,在各種具體實施例之至少一具體實施例中,該DFS可以根據該流控制資料及/或與該網路封包關聯連接流有關的資訊傳遞該網路封包至其次一目的地,該網路封包關聯連接流可以被儲存於與該DFS相關之該高速流快取中。接著,在各種具體實施例之至少一具體實施例中,程序控制移動至決策區塊614。 At block 610, in at least one embodiment of various embodiments, the DFS may deliver the network packet to a next destination based on the flow control data and/or information related to the network packet associated connection flow. The network packet associated connection stream can be stored in the high speed stream cache associated with the DFS. Next, in at least one embodiment of various embodiments, program control moves to decision block 614.
在區塊612,在各種具體實施例之至少一具體實施例 中,具有一先前可見元組之該網路封包係被儲存於該DFS之一緩衝中,直到由該CS提供流控制資料為止。 At block 612, at least one embodiment of various specific embodiments The network packet having a previously visible tuple is stored in a buffer of the DFS until the flow control data is provided by the CS.
在各種具體實施例之至少一具體實施例中,一已接收網路封包可以與已經於先前所觀測之一連接流有關。然而在各種具體實施例之至少一具體實施例中,如果無法利用來自該CS之該流控制資料,該DFS可以儲存與該連接流有關之該等網路封包於一緩衝中,直到從該CS接收該相關的流控制資料為止。 In at least one embodiment of various embodiments, a received network packet can be associated with a connection stream that has been previously observed. However, in at least one embodiment of various embodiments, if the flow control data from the CS cannot be utilized, the DFS can store the network packets associated with the connection flow in a buffer until the CS is Receive the relevant flow control data.
同樣的,在各種具體實施例之至少一具體實施例中,與未知及/或多個新連接流有關之多個來源網路封包可被傳遞至該CS進行緩衝,而非在該DFS上進行緩衝,直到由該CS建立一流控制資料決策為止。 Similarly, in at least one embodiment of various embodiments, multiple source network packets associated with unknown and/or multiple new connection flows may be passed to the CS for buffering instead of being performed on the DFS. Buffer until the first-class control data decision is established by the CS.
在決策區塊614,在各種具體實施例之至少一具體實施例中,如果存在更多的來源網路封包,則程序控制便回到區塊602。否則在各種具體實施例之至少一具體實施例中,程序控制便可回到一呼叫程序。 In decision block 614, in at least one embodiment of various embodiments, program control returns to block 602 if there are more source network packets. Otherwise, in at least one embodiment of various embodiments, program control may return to a call procedure.
第七圖圖示一流程圖,該流程圖圖示根據該各種具體實施例之至少一具體實施例,於一DFS處處理多個新的連接流的程序。在一開始區塊後,於區塊702,一DFS元件可以從一CS接收新的流控制資料。在各種具體實施例之至少一具體實施例中,如果接收到新的流控制資料,該DFS便可以儲存該流資料於一高速流快取中。 The seventh diagram illustrates a flow diagram illustrating a process for processing a plurality of new connection streams at a DFS in accordance with at least one embodiment of the various specific embodiments. After the initial block, at block 702, a DFS component can receive new flow control data from a CS. In at least one embodiment of various embodiments, the DFS can store the stream data in a high speed stream cache if new flow control data is received.
在各種具體實施例之至少一具體實施例中,該新的流 控制資料可被傳送至該DFS,做為從該CS傳送至該DFS之一「新流」控制訊息的部分。 In at least one embodiment of various embodiments, the new stream Control data can be transmitted to the DFS as part of the "new flow" control message transmitted from the CS to the DFS.
在決策區塊704,在各種具體實施例之至少一具體實施例中,如果該DFS高速流快取已經滿了,則程序控制便移動至區塊706。否則在各種具體實施例之至少一具體實施例中,程序控制便移動至區塊708。 In decision block 704, in at least one embodiment of various embodiments, program control moves to block 706 if the DFS high speed stream cache is full. Otherwise, in at least one embodiment of various embodiments, program control moves to block 708.
在各種具體實施例之至少一具體實施例中,該高速流快取可實作成為一雜湊法,因此可為每一新的連接流根據該連接流的多個性質產生一雜湊鍵,該等性質像是元組、CS產生連接識別符、SYN小型文字檔案或其他類似性質。在各種具體實施例之至少一具體實施例中,如果該雜湊鍵的範圍(唯一數值的數量)大於在該高速流快取中該插槽的數量,便可以截斷該雜湊鍵,因此該雜湊鍵數值機率的數量便可以等於或近似於該高速流快取中該插槽的數量。在各種具體實施例之至少一具體實施例中,雜湊鍵的截斷可能增加該雜湊鍵衝突的數量。如果在各種具體實施例之至少一具體實施例中,一新的連接流雜湊鍵形成雜湊鍵衝突,便可驅趕目前於該快取中之該連接流(例如,從該高速快取移除其流控制資料,而管理該流的責任則移交至該CS),以提供新的連接流空間。 In at least one embodiment of various embodiments, the high speed stream cache can be implemented as a hashing method, such that each new connection stream can generate a hash key based on a plurality of properties of the connection stream, such Properties are like tuples, CS-generated connection identifiers, SYN small text files, or other similar properties. In at least one embodiment of various embodiments, if the range of the hash key (the number of unique values) is greater than the number of slots in the high speed stream cache, the hash key can be truncated, thus the hash key The number of numerical probabilities can be equal to or approximate to the number of slots in the high speed stream cache. In at least one embodiment of various embodiments, truncation of hash keys may increase the number of hash key collisions. If, in at least one embodiment of various embodiments, a new connection stream hash key forms a hash key conflict, the connection stream currently in the cache can be driven (eg, removed from the high speed cache) The flow controls the data, and the responsibility for managing the flow is handed over to the CS) to provide a new connection flow space.
在區塊706,在各種具體實施例之至少一具體實施例中,為了提供從該CS所接收新的流控制資料空間,可從該DFS高速流快取移除(例如,驅趕)一不同、先前快取之連接流的流控制資料。在各種具體實施例之至少一具體實施例中,該DFS可以傳送該 CS一控制訊息,該控制訊息指示已經從該DFS所驅趕之一連接流,係需要從該DFS高速流快取移除該相關的流控制資料。在各種具體實施例之至少一具體實施例中,該驅趕訊息可以包含多個資訊,像是透過此網路流所傳送或接收的封包數量、該網路流的使用時間、元組資訊或其他類似資訊。在各種具體實施例之至少一具體實施例中,傳送至該CS之該控制訊息可以包含足夠的資訊,以使該CS辨識從該DFS所驅趕之該網路流。 At block 706, in at least one embodiment of various embodiments, in order to provide a new flow control data space received from the CS, a DFS high speed stream cache can be removed (eg, driven) from a different, Flow control data of the previously cached connection stream. In at least one embodiment of various embodiments, the DFS can transmit the The CS-control message indicates that one of the connection flows has been evicted from the DFS, and the associated flow control data needs to be removed from the DFS high-speed stream cache. In at least one embodiment of various embodiments, the drive message may include a plurality of information, such as the number of packets transmitted or received through the network stream, the usage time of the network stream, tuple information, or the like. Similar information. In at least one embodiment of various embodiments, the control message transmitted to the CS may contain sufficient information to cause the CS to identify the network stream being evicted from the DFS.
在區塊708,在各種具體實施例之至少一具體實施例中,與該新連接流有關之該流控制資料可以儲存於該DFS高速流快取中。在各種具體實施例之至少一具體實施例中,流控制資料可以儲存於該DFS之一或多個元件中,該等元件可以單獨操作或是組合成為一高速流快取。 At block 708, in at least one embodiment of various embodiments, the flow control data associated with the new connection stream can be stored in the DFS high speed stream cache. In at least one embodiment of various embodiments, the flow control data can be stored in one or more components of the DFS, and the components can be operated separately or combined into a high speed stream cache.
在區塊710,在各種具體實施例之至少一具體實施例中,該DFS可以利用與該連接流有關並儲存於該高速流快取中之該流控制資料,開始處理與多個已知連接流有關之多個已接收網路封包。 At block 710, in at least one embodiment of various embodiments, the DFS can utilize the flow control data associated with the connection stream and stored in the high speed stream cache to begin processing with a plurality of known connections. A stream of multiple received network packets.
第八圖圖示一流程圖,該流程圖圖示根據該各種具體實施例之至少一具體實施例,於一CS處處理多個驅趕(EVICT)訊息的程序800。在一開始區塊後,於區塊802,該CS可以從一DFS接收一EVICT訊息。 The eighth diagram illustrates a flow diagram illustrating a process 800 for processing a plurality of drive (EVICT) messages at a CS in accordance with at least one embodiment of the various embodiments. After the initial block, at block 802, the CS can receive an EVICT message from a DFS.
在決策區塊804,在各種具體實施例之至少一具體實施例中,如果該驅趕訊息對應於一關閉及/或終止連接流,則程序控 制便移動至區塊806。否則在各種具體實施例之至少一具體實施例中,程序控制便移動至區塊808。 In decision block 804, in at least one embodiment of various embodiments, if the drive message corresponds to a close and/or terminate connection flow, then program control The system moves to block 806. Otherwise, in at least one embodiment of various embodiments, program control moves to block 808.
在區塊806,在各種具體實施例之至少一具體實施例中,可以捨棄該關閉及/或終止連接流與該相關流控制資料。 At block 806, in at least one embodiment of various embodiments, the closing and/or terminating the connection flow and the associated flow control data can be discarded.
在區塊808,在各種具體實施例之至少一具體實施例中,管理該已驅趕連接流的責任係轉交至該CS。在各種具體實施例之至少一具體實施例中,透過該已轉換連接流所接收之多個網路封包則由該CS所處理。 At block 808, in at least one embodiment of various embodiments, the responsibility for managing the evicted connection flow is forwarded to the CS. In at least one embodiment of various embodiments, the plurality of network packets received through the converted connection stream are processed by the CS.
在各種具體實施例之至少一具體實施例中,該CS可以儲存該已驅趕連接流之該流控制資料於一局部流快取中。在各種具體實施例之至少一具體實施例中,該CS中之該流快取係經配置以至少包含與利用該DFS上該高速流快取所儲存之多個相關連接流的相同資訊。 In at least one embodiment of various embodiments, the CS can store the flow control data of the evicted connection stream in a partial stream cache. In at least one embodiment of various embodiments, the stream cache in the CS is configured to include at least the same information as the plurality of associated connection streams stored using the high speed stream cache on the DFS.
在決策區塊810,在各種具體實施例之至少一具體實施例中,如果有更多的驅趕訊息需要處理,則程序控制便回到區塊802。否則在各種具體實施例之至少一具體實施例中,程序控制便回到一呼叫程序。 In decision block 810, in at least one embodiment of various embodiments, program control returns to block 802 if more drive messages need to be processed. Otherwise, in at least one embodiment of various embodiments, program control returns to a call procedure.
在各種具體實施例之至少一具體實施例中,根據情況的不同,一連接流可能於一或多個DFS、一或多個CS、或部分於一或多個CS而部分於一或多個DFS上處理。在各種具體實施例之至少一具體實施例中,如果一連接流係已經由該CS所處理,便不能從該DFS接收一新的流網路訊息。同樣的,如果一DFS正在處理一連接 流,便無法傳送一新的流網路訊息至該CS元件,如果該DFS可以將該來源網路流量與一已知的連接流建立關聯。然而在各種具體實施例之至少一具體實施例中,該CS可以分析每一連接流,以決定該等連接流是否係從該DFS所驅趕。 In at least one embodiment of various specific embodiments, a connection stream may be part of one or more DFS, one or more CSs, or part of one or more CSs, depending on the situation. Processing on DFS. In at least one embodiment of various embodiments, if a connection flow system has been processed by the CS, a new streaming network message cannot be received from the DFS. Similarly, if a DFS is processing a connection Streaming, a new streaming network message cannot be transmitted to the CS component if the DFS can associate the source network traffic with a known connection flow. However, in at least one embodiment of various embodiments, the CS can analyze each connection stream to determine if the connection streams are driven from the DFS.
第九圖圖示一流程圖,該流程圖圖示根據該各種具體實施例之至少一具體實施例,決定多個連接流是否係為卸載至該資料流區段之候選連接流的程序900。在一開始區塊後,於區塊902,在各種具體實施例之至少一具體實施例中,該CS可以接收與由該CS所管理之一連接流有關之一網路封包。 The ninth diagram illustrates a flow diagram illustrating a procedure 900 for determining whether a plurality of connection flows are to be unloaded to a candidate connection flow of the data flow segment, in accordance with at least one embodiment of the various embodiments. After the initial block, at block 902, in at least one embodiment of various embodiments, the CS can receive a network packet associated with a connection flow managed by the CS.
在各種具體實施例之至少一具體實施例中,由該CS所接收之多個網路封包可以是相關的多個連接流,該等連接流係於該CS上進行其封包層處理與管理處理,而非由該DFS所進行。在各種具體實施例之至少一具體實施例中,當該CS至少根據該已儲存流控制資料處理該等已接收封包時,可以執行額外的動作以辨識多個熱連接流。 In at least one specific embodiment of the present invention, the plurality of network packets received by the CS may be related multiple connection flows, and the connection flows are performed on the CS for packet layer processing and management processing. Not by the DFS. In at least one embodiment of various specific embodiments, when the CS processes the received packets based at least on the stored flow control data, additional actions can be performed to identify the plurality of hot connection flows.
在區塊904,在各種具體實施例之至少一具體實施例中,該CS可以從一DFS接收一流狀態更新(Flow Status Update,FSU)。在各種具體實施例之至少一具體實施例中,該FSU相對於由該CS所接收之該等網路封包可以進行非同步接收。在各種具體實施例之至少一具體實施例中,如果無法利用一FSU,則程序控制便移動至區塊906。 At block 904, in at least one embodiment of various embodiments, the CS can receive a Flow Status Update (FSU) from a DFS. In at least one embodiment of various embodiments, the FSU can receive asynchronously with respect to the network packets received by the CS. In at least one embodiment of various embodiments, program control moves to block 906 if an FSU is not available.
在區塊906,在各種具體實施例之至少一具體實施例 中,該CS可以更新為該等連接流所維持之該等統計資料。在各種具體實施例之至少一具體實施例中,可為了由該CS所直接管理之該等連接流追蹤統計資料,同樣的可為了由該DFS所管理之該等連接流追蹤統計資料(例如,已卸載連接流)。 At block 906, at least one embodiment of various specific embodiments The CS can be updated to the statistics maintained by the connection flows. In at least one embodiment of various embodiments, the statistics may be tracked for the connection flows directly managed by the CS, and the statistics may be tracked for the connection flows managed by the DFS (eg, The connection stream has been unloaded).
在各種具體實施例之至少一具體實施例中,可以使用來自一或多個FSU的資訊組合更新該連接流度量指標,而該度量指標可於該CS上蒐集,包含資料位元率、經過一段時間傳送的資料、經過一段時間接收的資料,或其他類似度量指標。在各種具體實施例之至少一具體實施例中,該蒐集之連接流度量指標係以從L1-L4所推演之低階網路資訊以及從L5-L7所推演之較高階網路資訊為基礎(按照該開放式系統互連(Open Systems Interconnection,OSI)模型)。 In at least one embodiment of various specific embodiments, the connection flow metric can be updated using a combination of information from one or more FSUs, and the metric can be collected on the CS, including the data bit rate, after a period of time. Time-transmitted data, data received over time, or other similar metrics. In at least one embodiment of various embodiments, the collected connection flow metrics are based on low-level network information derived from L1-L4 and higher-order network information derived from L5-L7 ( According to the Open Systems Interconnection (OSI) model.
在區塊908,在各種具體實施例之至少一具體實施例中,該CS可以分析該已收集連接流統計資料,並可以應用多個相關規則以辨識多個熱連接流(見第十圖與第十一圖)。在各種具體實施例之至少一具體實施例中,該CS可以使用至少一連接流度量指標以從該些受管理的連接流決定每一個熱連接流。 At block 908, in at least one embodiment of various embodiments, the CS can analyze the collected connection flow statistics and can apply a plurality of correlation rules to identify the plurality of hot connection flows (see Figure 10 and Figure 11). In at least one embodiment of various embodiments, the CS can use at least one connection flow metric to determine each hot connection flow from the managed connection flows.
在各種具體實施例之至少一具體實施例中,可以定義多個規則,該等規則說明一或多個特定來源、終端、資料形式或其他類似內容,以指示係為熱連接流。否則在各種具體實施例之至少一具體實施例中,可以定義多個規則以根據流型態、來源、端點、資料形式或其他類似內容調整某些連接流的優先性。 In at least one embodiment of various specific embodiments, a plurality of rules can be defined that describe one or more particular sources, terminals, data forms, or other similar content to indicate that the system is a hot connection stream. Otherwise, in at least one specific embodiment of various embodiments, multiple rules may be defined to prioritize certain connection flows based on flow patterns, sources, endpoints, data forms, or other similar content.
在各種具體實施例之至少一具體實施例中,一般而言,可以擴充相同形式的流控制策略規則制訂,以影響多個連接流係如何被指定為熱連接流的辨識與決策。 In at least one embodiment of various embodiments, in general, the same form of flow control policy rule formulation can be augmented to affect how multiple connection flow systems are designated as identification and decision of the hot connection flow.
在決策區塊910,如果多個連接流係被辨識以從該CS移動至該DFS及/或從該DFS移動至該CS以進行處理,則程序控制便移動至區塊912。否則在各種具體實施例之至少一具體實施例中,程序控制便移動至決策區塊914。 At decision block 910, if multiple connection flow systems are identified to move from the CS to the DFS and/or from the DFS to the CS for processing, program control moves to block 912. Otherwise, in at least one embodiment of various embodiments, program control moves to decision block 914.
在各種具體實施例之至少一具體實施例中,該CS可以運用至少一連接流度量指標以決定該些受管理連接流中的每一個熱連接流。 In at least one embodiment of various embodiments, the CS can utilize at least one connection flow metric to determine each of the managed connection flows.
在區塊912,在各種具體實施例之至少一具體實施例中,如果已經辨識多個連接流係進行移動,該CS可以產生該等相關命令及/或訊息,以傳送至該適當的CS及/或DFS進行處理。在各種具體實施例之至少一具體實施例中,某些連接流可以從一DFS移動至該CS進行處理。在各種具體實施例之至少一具體實施例中,可以運用該DFS處理每一個已決定之熱連接流。 In block 912, in at least one embodiment of various embodiments, the CS may generate the associated commands and/or messages for transmission to the appropriate CS if / or DFS for processing. In at least one embodiment of various embodiments, certain connection flows may be moved from a DFS to the CS for processing. In at least one embodiment of various embodiments, the DFS can be utilized to process each of the determined hot junction streams.
同樣的,在各種具體實施例之至少一具體實施例中,該等連接流的某些係已經被辨識成為熱連接流,可以移動及/或卸載至一DFS以進行處理,以至少獲得與一DFS有關較高效能/處理速度的優勢。接著,在各種具體實施例之至少一具體實施例中,程序控制可以移動至決策區塊914。 Similarly, in at least one embodiment of various embodiments, some of the connected streams have been identified as a hot-connected stream that can be moved and/or unloaded to a DFS for processing to obtain at least one DFS has the advantage of higher performance/processing speed. Next, in at least one embodiment of various embodiments, program control can be moved to decision block 914.
在決策區塊914,在各種具體實施例之至少一具體實 施例中,如果存在更多可利用的網路封包,則程序控制便回到區塊902。否則在各種具體實施例之至少一具體實施例中,便回到一呼叫程序。 At decision block 914, at least one of the specific embodiments is In the embodiment, if there are more available network packets, then program control returns to block 902. Otherwise, in at least one embodiment of various embodiments, a call procedure is returned.
第十圖與第十一圖描述各種用於辨識一連接流可能為一熱連接流之實施例。該發明所屬技術領域中具有通常知識者將可瞭解用於辨識「熱連接流」之該等技術、參數與條件係可根據一特定時間時由一PTMD所管理之該等應用、該等操作者之該等目標與優先性以及該PTMD之多個使用者而改變。在各種具體實施例之至少一具體實施例中一般而言,用於辨識一熱連接流之條件係可根據該應用與該等使用者目標所定義,而如果一連接流性質滿足該條件,便認為該連接流係為一熱連接流。 The tenth and eleventh figures depict various embodiments for identifying that a connected stream may be a hot connected stream. Those of ordinary skill in the art to which the invention pertains will appreciate that such techniques, parameters and conditions for identifying "thermally coupled flows" are those applications that can be managed by a PTMD at a particular time, such operators These goals and priorities and the multiple users of the PTMD change. In at least one embodiment of various embodiments, generally, the conditions for identifying a hot-connected stream are defined according to the application and the user objectives, and if a connected stream property satisfies the condition, The connection flow is considered to be a thermal connection flow.
在各種具體實施例之至少一具體實施例中,做為決定一連接流是否為卸載至該DFS以進行處理之一候選連接流(例如,熱連接流)的部分,可以檢驗該等已接收網路封包的內容。在各種具體實施例之至少一具體實施例中,檢驗該等網路封包以辨識資料型態與元資料,其可以指示可能為一熱連接流之該連接流可為卸載至該DFS元件之一良好候選連接流。 In at least one embodiment of various embodiments, the received network may be verified as part of determining whether a connection flow is offloaded to the DFS for processing a candidate connection flow (eg, a hot connection flow) The content of the road packet. In at least one embodiment of various embodiments, the network packets are examined to identify data types and metadata, which may indicate that the connection stream, which may be a hot connection stream, may be offloaded to one of the DFS components Good candidate connection stream.
在各種具體實施例之至少一具體實施例中,如果檢驗該等網路封包,該CS可以辨識應用程式層通訊協定資料、訊息或元資料,以決定該相關連接流是否為一熱連接流。例如,如果一CS可以辨識一連接流係使用HTTP,該CS便可以檢驗多個HTTP表頭,像是Content-Type、Content-Length、Cache-Control或其他類似表 頭,以成為一連接流是否為一熱連接流的決策部分。 In at least one embodiment of various embodiments, if the network packets are verified, the CS can identify application layer protocol data, messages, or metadata to determine whether the associated connection stream is a hot connection stream. For example, if a CS can recognize that a connection stream uses HTTP, the CS can examine multiple HTTP headers, such as Content-Type, Content-Length, Cache-Control, or other similar tables. Header to become a decision part of whether a connection stream is a hot connection stream.
在各種具體實施例之至少一具體實施例中,如果決定一網路封包係為一HTTP回應的一第一封包,便可利用傳送該HTTP回應之該伺服器所提供之一內容長度數值。在各種具體實施例之至少一具體實施例中,該HTTP內容長度數值可以指示該網路封包的數量,該數量係可能用於傳輸來自該伺服器之該完整HTTP回應。例如在各種具體實施例之至少一具體實施例中,如果該內容長度數值係指示該回應係使用一單一網路封包,該相關連接流便不為用於卸載至該DFS之一候選連接流,因為對此回應而言並不預期存在其他額外的封包。另一方面,在各種具體實施例之至少一具體實施例中,如果該內容長度數值指示對於該相同回應而言有更多正在路上的網路封包,則可以決定該連接流係為用於卸載至該DFS元件之一候選連接流。在各種具體實施例之至少一具體實施例中,該內容長度數值可以與卸載一連接流至一DFS的可能性相關聯(例如,內容長度數值的增加造成將該連接流卸載至該DFS的機會增加)。 In at least one embodiment of various embodiments, if a network packet is determined to be a first packet of an HTTP response, one of the content length values provided by the server transmitting the HTTP response can be utilized. In at least one embodiment of various embodiments, the HTTP content length value may indicate the number of network packets that may be used to transmit the complete HTTP response from the server. For example, in at least one embodiment of various embodiments, if the content length value indicates that the response uses a single network packet, the associated connection stream is not for one of the candidate connection streams for offloading to the DFS. Because there are no additional extra packets expected for this response. In another aspect, in at least one embodiment of various specific embodiments, if the content length value indicates that there are more network packets on the road for the same response, then the connection flow system can be determined to be used for uninstallation. A candidate connection stream to one of the DFS elements. In at least one embodiment of various embodiments, the content length value can be associated with the possibility of offloading a connection flow to a DFS (eg, an increase in the content length value causes an opportunity to offload the connection flow to the DFS) increase).
在各種具體實施例之至少一具體實施例中,在某些情況中,一連接流的操作特徵可能具有明顯不同。例如在各種具體實施例之至少一具體實施例中,如果該內容/通訊不均一時,一連接的資料位元率可能有暴衝的傾向。因此在各種具體實施例之至少一具體實施例中,一連接流一旦被決定係為一良好的卸載候選連接流(造成可能卸載至該DFS),可能根據該即時情況及/或該後續通訊通信的特徵,而立刻被決定為不佳的卸載候選連接流(造成可能從 該DFS移除)。 In at least one embodiment of various embodiments, in some cases, the operational characteristics of a connected stream may be significantly different. For example, in at least one embodiment of various embodiments, if the content/communication is not uniform, a connected data bit rate may have a tendency to storm. Thus, in at least one embodiment of various embodiments, a connection flow, once determined to be a good offload candidate connection flow (causing a possible offload to the DFS), may be based on the immediate situation and/or the subsequent communication communication Feature, and immediately decided to be a poor unloading candidate connection stream (causing possible from The DFS is removed).
在各種具體實施例之至少一具體實施例中,一連接流可以在該DFS上處理與在該CS上處理之間前後重複循環,或是再次進行處理。在各種具體實施例之至少一具體實施例中,可以至少根據該連接流的操作特徵變異性進行該循環。在各種具體實施例之至少一具體實施例中,這至少利用該連接流操作變異程度的好處,使該連接流的效能與該DFS的利用程度持續最佳化。 In at least one embodiment of various embodiments, a connection stream may be repetitively cycled between processing on the DFS and processing on the CS, or may be processed again. In at least one embodiment of various embodiments, the loop can be performed based at least on operational characteristic variability of the connected stream. In at least one embodiment of various embodiments, this utilizes at least the benefit of the degree of variability in the connection stream operation to continuously optimize the performance of the connection stream and the utilization of the DFS.
例如,在各種具體實施例之至少一具體實施例中,當透過該連接流的網路流量變慢時,可移動該連接流至該CS進行處理。同樣的,在各種具體實施例之至少一具體實施例中,當透過該連接流的網路流量增加時,可移動該連接流至該DFS進行處理。 For example, in at least one embodiment of various embodiments, when the network traffic through the connection stream is slow, the connection flow can be moved to the CS for processing. Similarly, in at least one embodiment of various embodiments, when the network traffic through the connection stream increases, the connection flow can be moved to the DFS for processing.
在各種具體實施例之至少一具體實施例中,在該CS與該DFS元件之間該連接流的循環可以在一通訊通信期間進行一或多次。同樣的,在各種具體實施例之至少一具體實施例中,由該CS與該DFS元件執行之該等循環操作可為無縫並對該通訊通信兩端而言係為不可見/不透明的。 In at least one embodiment of various embodiments, the loop of the connection stream between the CS and the DFS component can be performed one or more times during a communication communication. Similarly, in at least one embodiment of various embodiments, the cyclic operations performed by the CS and the DFS component can be seamless and invisible/opaque to both ends of the communication communication.
第十圖圖示一流程圖,該流程圖圖示根據該各種具體實施例之至少一具體實施例,用於辨識多個熱連接流之程序1000。在一開始區塊後,於決策區塊1002,在各種具體實施例之至少一具體實施例中,如果在該PTMD正被處理之該連接流數量係小於該DFS的容量,則程序控制便回到該呼叫程序。否則在各種具體實施例之至少一具體實施例中,程序控制便移動至區塊1004。在各種具 體實施例之至少一具體實施例中,如果該DFS上之該高速流快取具有未被使用容量,多個熱連接流與多個「一般」連接流兩者都可以在該DFS上進行處理。 The tenth diagram illustrates a flow diagram illustrating a procedure 1000 for identifying a plurality of hot-connected streams in accordance with at least one embodiment of the various specific embodiments. After the initial block, in decision block 1002, in at least one embodiment of various embodiments, if the number of connected flows being processed in the PTMD is less than the capacity of the DFS, then program control is returned. Go to the calling program. Otherwise, in at least one embodiment of various embodiments, program control moves to block 1004. In various In at least one embodiment of the embodiment, if the high speed stream cache on the DFS has an unused capacity, both the hot connection stream and the plurality of "normal" connection streams can be processed on the DFS. .
在區塊1004,在各種具體實施例之至少一具體實施例中,可以根據至少一給定的時間間隔透過該連接流所通過、交換或通訊的資料總量,對多個連接流進行排序。 At block 1004, in at least one embodiment of various embodiments, the plurality of connection streams can be ordered by the total amount of data passed, exchanged, or communicated by the connection stream based on at least a given time interval.
在各種具體實施例之至少一具體實施例中,可以使用多種已知之資料結構與排序演算法,以產生一表格資料結構,其中可根據一時間間隔中透過該連接流所通過的資料總量,以邏輯次序形式排序該等連接流。 In at least one embodiment of various embodiments, a plurality of known data structures and ranking algorithms can be used to generate a table data structure in which the amount of data passed through the connection stream in a time interval can be used. The connection streams are sorted in a logical order.
在區塊1006,在各種具體實施例之至少一具體實施例中,可以根據排序次序,以該最前面N個流的基礎下,決定並辨識多個熱流候選。 At block 1006, in at least one embodiment of various embodiments, a plurality of heat flow candidates can be determined and identified based on the top N streams based on the sort order.
在各種具體實施例之至少一具體實施例中,與決定/定義多個熱連接流有關之該等規則,係可以包含像是「N」的參數(例如,指定最前面多少個連接流成為熱連接流)。在各種具體實施例之至少一具體實施例中,「N」可以根據一方程式決定,其包含額外的參數,像是可根據該連接流形式具有不同的數值。 In at least one embodiment of various embodiments, the rules relating to determining/defining a plurality of hot-connected flows may include parameters such as "N" (eg, specifying how many connection flows in the front become hot Connection flow). In at least one embodiment of various embodiments, "N" may be determined according to a program that includes additional parameters, such as having different values depending on the form of the connection stream.
接著,程序控制便回到一呼叫程序。 The program control then returns to a call procedure.
第十一圖圖示一流程圖,該流程圖圖示根據該各種具體實施例之至少一具體實施例,用於辨識多個熱連接流之程序1100。在一開始區塊後,在決策區塊1102,在各種具體實施例之至 少一具體實施例中,如果在該PTMD正被處理之該連接流數量係小於該DFS的容量,則程序控制便回到該呼叫程序。否則在各種具體實施例之至少一具體實施例中,程序控制便移動至區塊1104。在各種具體實施例之至少一具體實施例中,如果該DFS上之該高速流快取具有未被使用容量,多個熱連接流與多個「一般」連接流兩者都可以在該DFS上進行處理。 The eleventh diagram illustrates a flow diagram illustrating a procedure 1100 for identifying a plurality of hot-connected streams in accordance with at least one embodiment of the various specific embodiments. After the initial block, at decision block 1102, in various embodiments In a lesser embodiment, if the number of connected streams being processed in the PTMD is less than the capacity of the DFS, then program control returns to the calling procedure. Otherwise, in at least one embodiment of various embodiments, program control moves to block 1104. In at least one embodiment of various embodiments, if the high speed stream cache on the DFS has an unused capacity, both the hot connection stream and the plurality of "normal" connection streams can be on the DFS. Process it.
在區塊1104,在各種具體實施例之至少一具體實施例中,可以決定在該CS上正被處理之該等連接流之該中位資料位元率,以用於預測可能由該CS所處理之該連接流之一最大數量。例如,在各種具體實施例之至少一具體實施例中,如果目前在該CS上正被處理之該等連接流之該中位資料位元率係為每秒1百萬位元,而用於處理該等連接流之該CS總頻寬為每秒2000百萬位元,則可被處理之該連接流最大數量便可估計為2000個連接流(每秒2000百萬位元/每秒1百萬位元)。 At block 1104, in at least one embodiment of various embodiments, the median bit rate of the connection streams being processed on the CS may be determined for prediction by the CS The maximum number of one of the connection streams processed. For example, in at least one embodiment of various embodiments, if the median bit rate of the connection streams currently being processed on the CS is 1 million bits per second, The total CS bandwidth of the connection streams is 2000 million bits per second, and the maximum number of connection streams that can be processed can be estimated to be 2000 connection streams (2000 million bits per second per second) Millions of people).
在區塊1106,在各種具體實施例之至少一具體實施例中,可以根據預期該CS所能處理之該連接流最大數目,以該最前面N排(N-tile)連接流為基礎,辨識熱連接流候選。例如,在各種具體實施例之至少一具體實施例中,如果預期一CS可以處理2000個連接流,則根據資料位元率可辨識前25%的連接流(對於數量而言為500個連接流)係為熱連接流。接著,在各種具體實施例之至少一具體實施例中,程序控制便回到一呼叫程序。 In block 1106, in at least one embodiment of various embodiments, the maximum number of connection flows that the CS can handle is determined based on the top N-tile connection flow. Hot connection stream candidate. For example, in at least one embodiment of various embodiments, if a CS can be expected to process 2000 connection streams, the top 25% of the connection streams can be identified based on the data bit rate (500 connection streams for the number) ) is a hot connection flow. Next, in at least one embodiment of various embodiments, program control returns to a call procedure.
應該瞭解可由電腦程式指令實作該等圖式以及該類 流程圖描述中的動作組合。這些程式指令可提供至一處理器以製造一種機器,因此於該處理器上執行之該等指令便產生一種實作在該等流程圖區塊中所具體指明的動作。該等電腦程式指令可由一處理器執行,以由該處理器執行一連串操作動作,以產生一種電腦實作程序,以實作在該流程圖區塊或多個區塊中所具體指明的動作。這些程式指令可儲存於某些機器可讀儲存媒介上,像是處理器可讀的不可遞移性儲存媒介(processor readable non-transitive storage media),或是其他類似媒介上。 It should be understood that such graphics and such classes can be implemented by computer program instructions. The combination of actions in the flowchart description. These program instructions can be provided to a processor to make a machine, such that the instructions executed on the processor produce an action that is embodied in the flowchart blocks. The computer program instructions are executable by a processor to perform a series of operational actions by the processor to produce a computer implemented program for implementing the actions specified in the flowchart block or blocks. These program instructions can be stored on certain machine readable storage media, such as processor readable non-transitive storage media, or other similar media.
100‧‧‧系統 100‧‧‧ system
102‧‧‧客戶端裝置 102‧‧‧Client device
103‧‧‧客戶端裝置 103‧‧‧Client device
104‧‧‧客戶端裝置 104‧‧‧Client device
105‧‧‧客戶端裝置 105‧‧‧Client device
107‧‧‧網路 107‧‧‧Network
108‧‧‧網路 108‧‧‧Network
109‧‧‧封包流量管理裝置 109‧‧‧Package flow management device
110‧‧‧伺服器端裝置 110‧‧‧Server end device
111‧‧‧伺服器端裝置 111‧‧‧Server end device
Claims (21)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261641251P | 2012-05-01 | 2012-05-01 | |
US13/802,254 US9338095B2 (en) | 2012-05-01 | 2013-03-13 | Data flow segment optimized for hot flows |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201347472A TW201347472A (en) | 2013-11-16 |
TWI591989B true TWI591989B (en) | 2017-07-11 |
Family
ID=49512435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102112814A TWI591989B (en) | 2012-05-01 | 2013-04-11 | Data flow segment optimized for hot flows |
Country Status (6)
Country | Link |
---|---|
US (2) | US9338095B2 (en) |
EP (1) | EP2845348A4 (en) |
CN (1) | CN104272652A (en) |
HK (1) | HK1205837A1 (en) |
TW (1) | TWI591989B (en) |
WO (1) | WO2013165802A1 (en) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9338095B2 (en) | 2012-05-01 | 2016-05-10 | F5 Networks, Inc. | Data flow segment optimized for hot flows |
US20150236959A1 (en) * | 2012-07-23 | 2015-08-20 | F5 Networks, Inc. | Autonomously adaptive flow acceleration based on load feedback |
WO2015028090A1 (en) * | 2013-08-30 | 2015-03-05 | Nokia Solutions And Networks Oy | Methods and apparatus |
US9535612B2 (en) * | 2013-10-23 | 2017-01-03 | International Business Machines Corporation | Selecting a primary storage device |
WO2015109090A1 (en) * | 2014-01-17 | 2015-07-23 | F5 Networks, Inc. | Systems and methods for network destination based flood attack mitigation |
US9853903B1 (en) * | 2015-04-23 | 2017-12-26 | Cisco Technology, Inc. | Simultaneous redirecting and load balancing |
EP3323259B1 (en) * | 2015-07-16 | 2022-11-09 | Nokia Technologies Oy | User-plane enhancements supporting in-bearer sub-flow qos differentiation |
US9755789B2 (en) * | 2015-11-20 | 2017-09-05 | Ringcentral, Inc. | Systems and methods for dynamic packet duplication in a network |
CN107623702B (en) * | 2016-07-13 | 2020-09-11 | 阿里巴巴集团控股有限公司 | Data caching method, device and system |
WO2018042695A1 (en) * | 2016-08-29 | 2018-03-08 | シャープ株式会社 | Cooking apparatus |
CN110417712A (en) * | 2018-04-28 | 2019-11-05 | 北京资采信息技术有限公司 | One kind being based on network data transmission equipment real-time data acquisition and analytic method |
CN110830535B (en) * | 2018-08-10 | 2021-03-02 | 网宿科技股份有限公司 | Processing method of super-hot file, load balancing equipment and download server |
US11075840B1 (en) | 2019-07-09 | 2021-07-27 | F5 Networks, Inc. | Disaggregation of network traffic |
US11516133B2 (en) | 2020-07-06 | 2022-11-29 | Nokia Solutions And Networks Oy | Flow cache management |
US11522776B1 (en) * | 2021-06-10 | 2022-12-06 | Cradlepoint, Inc. | Systems and methods to collect and store network traffic statitics of IP desitnations in time-series format |
US11909656B1 (en) | 2023-01-17 | 2024-02-20 | Nokia Solutions And Networks Oy | In-network decision for end-server-based network function acceleration |
Family Cites Families (115)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3950735A (en) | 1974-01-04 | 1976-04-13 | Honeywell Information Systems, Inc. | Method and apparatus for dynamically controlling read/write operations in a peripheral subsystem |
US4644532A (en) | 1985-06-10 | 1987-02-17 | International Business Machines Corporation | Automatic update of topology in a hybrid network |
US4965772A (en) | 1987-06-15 | 1990-10-23 | International Business Machines Corporation | Method and apparatus for communication network alert message construction |
US5053953A (en) | 1990-01-05 | 1991-10-01 | Bull Hn Information Systems Inc. | Apparatus for aligning arithmetic operands during fetch |
US5023826A (en) | 1990-01-11 | 1991-06-11 | Bull Hn Information Systems Inc. | Apparatus for skipping arithmetic calculations involving leading zeros |
AU7499291A (en) | 1990-03-05 | 1991-10-10 | Massachusetts Institute Of Technology | Switching networks with expansive and/or dispersive logical clusters for message routing |
US5327529A (en) | 1990-09-24 | 1994-07-05 | Geoworks | Process of designing user's interfaces for application programs |
US5367642A (en) | 1990-09-28 | 1994-11-22 | Massachusetts Institute Of Technology | System of express channels in an interconnection network that automatically bypasses local channel addressable nodes |
US5299312A (en) | 1990-11-15 | 1994-03-29 | Massachusetts Institute Of Technology | Network fault recovery by controllable switching of subnetworks |
US5367635A (en) | 1991-08-29 | 1994-11-22 | Hewlett-Packard Company | Network management agent with user created objects providing additional functionality |
US6026452A (en) | 1997-02-26 | 2000-02-15 | Pitts; William Michael | Network distributed site cache RAM claimed as up/down stream request/reply channel for storing anticipated data and meta data |
US5611049A (en) | 1992-06-03 | 1997-03-11 | Pitts; William M. | System for accessing distributed data cache channel at each network node to pass requests and data |
US5371852A (en) | 1992-10-14 | 1994-12-06 | International Business Machines Corporation | Method and apparatus for making a cluster of computers appear as a single host on a network |
US5596742A (en) | 1993-04-02 | 1997-01-21 | Massachusetts Institute Of Technology | Virtual interconnections for reconfigurable logic systems |
WO1994025913A2 (en) | 1993-04-30 | 1994-11-10 | Novadigm, Inc. | Method and apparatus for enterprise desktop management |
US5406502A (en) | 1993-06-29 | 1995-04-11 | Elbit Ltd. | System and method for measuring the operation of a device |
CA2169449A1 (en) | 1993-08-13 | 1995-02-23 | Frank Thomson Leighton | Secret key exchange |
US5519694A (en) | 1994-02-04 | 1996-05-21 | Massachusetts Institute Of Technology | Construction of hierarchical networks through extension |
US5761484A (en) | 1994-04-01 | 1998-06-02 | Massachusetts Institute Of Technology | Virtual interconnections for reconfigurable logic systems |
US5528701A (en) | 1994-09-02 | 1996-06-18 | Panasonic Technologies, Inc. | Trie based method for indexing handwritten databases |
US5517617A (en) | 1994-06-29 | 1996-05-14 | Digital Equipment Corporation | Automatic assignment of addresses in a computer communications network |
US5606665A (en) | 1994-07-01 | 1997-02-25 | Digital Equipment Corporation | Buffer descriptor prefetch in network and I/O design |
US5768423A (en) | 1994-09-02 | 1998-06-16 | Panasonic Technologies Inc. | Trie structure based method and apparatus for indexing and searching handwritten databases with dynamic search sequencing |
US6085234A (en) | 1994-11-28 | 2000-07-04 | Inca Technology, Inc. | Remote file services network-infrastructure cache |
US5936939A (en) | 1995-05-22 | 1999-08-10 | Fore Systems, Inc. | Digital network including early packet discard mechanism with adjustable threshold |
US5774668A (en) | 1995-06-07 | 1998-06-30 | Microsoft Corporation | System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing |
US5682382A (en) | 1995-09-05 | 1997-10-28 | Massachusetts Institute Of Technology | Scalable, self-organizing packet radio network having decentralized channel management providing collision-free packet transfer |
US5790554A (en) | 1995-10-04 | 1998-08-04 | Bay Networks, Inc. | Method and apparatus for processing data packets in a network |
US5892932A (en) | 1995-11-21 | 1999-04-06 | Fore Systems, Inc. | Reprogrammable switching apparatus and method |
US5959990A (en) | 1996-03-12 | 1999-09-28 | Bay Networks, Inc. | VLAN frame format |
US6111876A (en) | 1996-03-12 | 2000-08-29 | Nortel Networks Limited | VLAN frame format |
US5949885A (en) | 1996-03-12 | 1999-09-07 | Leighton; F. Thomson | Method for protecting content using watermarking |
US5752023A (en) | 1996-04-24 | 1998-05-12 | Massachusetts Institute Of Technology | Networked database system for geographically dispersed global sustainability data |
US5663018A (en) | 1996-05-28 | 1997-09-02 | Motorola | Pattern writing method during X-ray mask fabrication |
US5913214A (en) | 1996-05-30 | 1999-06-15 | Massachusetts Inst Technology | Data extraction from world wide web pages |
US5802052A (en) | 1996-06-26 | 1998-09-01 | Level One Communication, Inc. | Scalable high performance switch element for a shared memory packet or ATM cell switch fabric |
US5919247A (en) | 1996-07-24 | 1999-07-06 | Marimba, Inc. | Method for the distribution of code and data updates |
US6182139B1 (en) | 1996-08-05 | 2001-01-30 | Resonate Inc. | Client-side resource-based load-balancing with delayed-resource-binding using TCP state migration to WWW server farm |
US5774660A (en) | 1996-08-05 | 1998-06-30 | Resonate, Inc. | World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network |
WO1998027506A2 (en) | 1996-12-17 | 1998-06-25 | Inca Technology, Inc. | Ndc consistency reconnect mechanism |
US5875296A (en) | 1997-01-28 | 1999-02-23 | International Business Machines Corporation | Distributed file system web server user authentication with cookies |
US5983281A (en) | 1997-04-24 | 1999-11-09 | International Business Machines Corporation | Load balancing in a multiple network environment |
US6006260A (en) | 1997-06-03 | 1999-12-21 | Keynote Systems, Inc. | Method and apparatus for evalutating service to a user over the internet |
US5974460A (en) | 1997-06-16 | 1999-10-26 | International Business Machines Corporation | Apparatus and method for selecting an optimum telecommunications link |
US6263368B1 (en) | 1997-06-19 | 2001-07-17 | Sun Microsystems, Inc. | Network load balancing for multi-computer server by counting message packets to/from multi-computer server |
US6028857A (en) | 1997-07-25 | 2000-02-22 | Massachusetts Institute Of Technology | Self-organizing network |
US6006264A (en) | 1997-08-01 | 1999-12-21 | Arrowpoint Communications, Inc. | Method and system for directing a flow between a client and a server |
US6051169A (en) | 1997-08-27 | 2000-04-18 | International Business Machines Corporation | Vacuum baking process |
US6078956A (en) | 1997-09-08 | 2000-06-20 | International Business Machines Corporation | World wide web end user response time monitor |
US6260061B1 (en) * | 1997-11-25 | 2001-07-10 | Lucent Technologies Inc. | Technique for effectively managing proxy servers in intranets |
US6092196A (en) | 1997-11-25 | 2000-07-18 | Nortel Networks Limited | HTTP distributed remote user authentication system |
US6601084B1 (en) | 1997-12-19 | 2003-07-29 | Avaya Technology Corp. | Dynamic load balancer for multiple network servers |
US6246684B1 (en) | 1997-12-24 | 2001-06-12 | Nortel Networks Limited | Method and apparatus for re-ordering data packets in a network environment |
US6118765A (en) | 1998-01-13 | 2000-09-12 | Qualcomm Inc. | System method and computer program product for eliminating unnecessary retransmissions |
US6087196A (en) | 1998-01-30 | 2000-07-11 | The Trustees Of Princeton University | Fabrication of organic semiconductor devices using ink jet printing |
EP0948168A1 (en) | 1998-03-31 | 1999-10-06 | TELEFONAKTIEBOLAGET L M ERICSSON (publ) | Method and device for data flow control |
US6876654B1 (en) | 1998-04-10 | 2005-04-05 | Intel Corporation | Method and apparatus for multiprotocol switching and routing |
SE512672C2 (en) | 1998-06-12 | 2000-04-17 | Ericsson Telefon Ab L M | Procedure and system for transferring a cookie |
US6178423B1 (en) | 1998-06-23 | 2001-01-23 | Microsoft Corporation | System and method for recycling numerical values in a computer system |
US6108703A (en) | 1998-07-14 | 2000-08-22 | Massachusetts Institute Of Technology | Global hosting system |
WO2000004422A2 (en) | 1998-07-17 | 2000-01-27 | Leighton F Thomson | Method for image processing to facilitate copy protection |
US6327622B1 (en) | 1998-09-03 | 2001-12-04 | Sun Microsystems, Inc. | Load balancing in a network environment |
JP3859369B2 (en) | 1998-09-18 | 2006-12-20 | 株式会社東芝 | Message relay apparatus and method |
US6253230B1 (en) | 1998-09-22 | 2001-06-26 | International Business Machines Corporation | Distributed scalable device for selecting a server from a server cluster and a switched path to the selected server |
US6396833B1 (en) | 1998-12-02 | 2002-05-28 | Cisco Technology, Inc. | Per user and network routing tables |
US6636894B1 (en) | 1998-12-08 | 2003-10-21 | Nomadix, Inc. | Systems and methods for redirecting users having transparent computer access to a network using a gateway device having redirection capability |
US6721271B1 (en) | 1999-02-04 | 2004-04-13 | Nortel Networks Limited | Rate-controlled multi-class high-capacity packet switch |
US6192051B1 (en) | 1999-02-26 | 2001-02-20 | Redstone Communications, Inc. | Network router search engine using compressed tree forwarding table |
US6278995B1 (en) | 1999-03-02 | 2001-08-21 | Nms Communications Corporation | Apparatus and method for providing a binary range tree search |
US6760775B1 (en) | 1999-03-05 | 2004-07-06 | At&T Corp. | System, method and apparatus for network service load and reliability management |
US6751663B1 (en) | 1999-03-25 | 2004-06-15 | Nortel Networks Limited | System wide flow aggregation process for aggregating network activity records |
US6888836B1 (en) | 1999-05-26 | 2005-05-03 | Hewlett-Packard Development Company, L.P. | Method for allocating web sites on a web hosting cluster |
US6781986B1 (en) | 1999-06-25 | 2004-08-24 | Nortel Networks Limited | Scalable high capacity switch architecture method, apparatus and system |
US6650641B1 (en) | 1999-07-02 | 2003-11-18 | Cisco Technology, Inc. | Network address translation using a forwarding agent |
US6742045B1 (en) | 1999-07-02 | 2004-05-25 | Cisco Technology, Inc. | Handling packet fragments in a distributed network service environment |
US6374300B2 (en) | 1999-07-15 | 2002-04-16 | F5 Networks, Inc. | Method and system for storing load balancing information with an HTTP cookie |
US6788704B1 (en) | 1999-08-05 | 2004-09-07 | Intel Corporation | Network adapter with TCP windowing support |
US6868082B1 (en) | 1999-08-30 | 2005-03-15 | International Business Machines Corporation | Network processor interface for building scalable switching systems |
US7343413B2 (en) | 2000-03-21 | 2008-03-11 | F5 Networks, Inc. | Method and system for optimizing a network by independently scaling control segments and data flow |
US8380854B2 (en) | 2000-03-21 | 2013-02-19 | F5 Networks, Inc. | Simplified method for processing multiple connections from the same client |
US6779039B1 (en) | 2000-03-31 | 2004-08-17 | Avaya Technology Corp. | System and method for routing message traffic using a cluster of routers sharing a single logical IP address distinct from unique IP addresses of the routers |
US6798777B1 (en) | 2000-04-17 | 2004-09-28 | Juniper Networks, Inc. | Filtering and route lookup in a switching device |
JP3498678B2 (en) | 2000-05-31 | 2004-02-16 | 日本電気株式会社 | Pipeline processing type shaping apparatus and method |
US20070192863A1 (en) | 2005-07-01 | 2007-08-16 | Harsh Kapoor | Systems and methods for processing data flows |
US6901052B2 (en) | 2001-05-04 | 2005-05-31 | Slt Logic Llc | System and method for policing multiple data flows and multi-protocol data flows |
CN1194316C (en) * | 2001-06-28 | 2005-03-23 | 华为技术有限公司 | Remote network monitor method for computer network |
US7561517B2 (en) | 2001-11-02 | 2009-07-14 | Internap Network Services Corporation | Passive route control of data networks |
US7359321B1 (en) | 2002-01-17 | 2008-04-15 | Juniper Networks, Inc. | Systems and methods for selectively performing explicit congestion notification |
KR100438183B1 (en) | 2002-07-26 | 2004-07-01 | 엘지전자 주식회사 | Method for over load in high data communication system |
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 |
US6990559B2 (en) | 2002-10-03 | 2006-01-24 | Hewlett-Packard Development Company, L.P. | Mechanism for resolving ambiguous invalidates in a computer system |
US7584352B2 (en) | 2002-12-04 | 2009-09-01 | International Business Machines Corporation | Protection against denial of service attacks |
US20050021702A1 (en) * | 2003-05-29 | 2005-01-27 | Govindarajan Rangarajan | System and method of network address translation in system/network management environment |
US7366101B1 (en) | 2003-06-30 | 2008-04-29 | Packeteer, Inc. | Network traffic synchronization mechanism |
CN100479391C (en) * | 2003-10-31 | 2009-04-15 | 中国科学院计算技术研究所 | Method for storing result of active testing distributed network |
US7254609B2 (en) | 2003-12-09 | 2007-08-07 | Viasat, Inc. | Method for channel congestion management |
US8024483B1 (en) | 2004-10-01 | 2011-09-20 | F5 Networks, Inc. | Selective compression for network connections |
TWI319277B (en) | 2005-11-03 | 2010-01-01 | Draytek Corp | Network flow/stream simulation method |
US7697422B1 (en) | 2006-01-17 | 2010-04-13 | Marvell Israel (M.I.S.L.) Ltd. | Quality of service marking techniques |
US8613088B2 (en) | 2006-02-03 | 2013-12-17 | Cisco Technology, Inc. | Methods and systems to detect an evasion attack |
TWI330964B (en) | 2007-01-29 | 2010-09-21 | Via Tech Inc | Packet processing method and a network device using the method |
US7813277B2 (en) | 2007-06-29 | 2010-10-12 | Packeteer, Inc. | Lockless bandwidth management for multiprocessor networking devices |
CN101136922B (en) | 2007-04-28 | 2011-04-13 | 华为技术有限公司 | Service stream recognizing method, device and distributed refusal service attack defending method, system |
US20090106426A1 (en) | 2007-10-22 | 2009-04-23 | International Business Machines Corporation | Method and apparatus for model-based pageview latency management |
CN101940014B (en) | 2008-02-04 | 2013-10-23 | 爱立信电话股份有限公司 | Method and apparatus for providing route optimisation |
US8964651B2 (en) | 2008-02-14 | 2015-02-24 | Qualcomm Incorporated | Traffic management employing interference management messages |
TWI389518B (en) | 2008-02-25 | 2013-03-11 | Nat Univ Tsing Hua | Network gateway and relocation method thereof |
US8327014B2 (en) * | 2008-06-30 | 2012-12-04 | Cisco Technology, Inc. | Multi-layer hardware-based service acceleration (MHSA) |
WO2010042578A1 (en) | 2008-10-08 | 2010-04-15 | Citrix Systems, Inc. | Systems and methods for real-time endpoint application flow control with network structure component |
US8831014B2 (en) * | 2009-09-26 | 2014-09-09 | Cisco Technology, Inc. | Providing services at a communication network edge |
FI20100055A0 (en) | 2010-02-12 | 2010-02-12 | Notava Oy | Terminal and procedure for controlled data traffic redirection |
US8837322B2 (en) | 2011-06-20 | 2014-09-16 | Freescale Semiconductor, Inc. | Method and apparatus for snoop-and-learn intelligence in data plane |
CN104025475B (en) * | 2011-10-03 | 2018-04-13 | 英特尔公司 | Device is to device (D2D) communication mechanism |
US9036465B2 (en) | 2012-01-30 | 2015-05-19 | Allied Telesis Holdings Kabushiki Kaisha | Hierarchical network with active redundant links |
US9338095B2 (en) | 2012-05-01 | 2016-05-10 | F5 Networks, Inc. | Data flow segment optimized for hot flows |
-
2013
- 2013-03-13 US US13/802,254 patent/US9338095B2/en not_active Expired - Fee Related
- 2013-04-11 TW TW102112814A patent/TWI591989B/en not_active IP Right Cessation
- 2013-04-25 EP EP13785194.5A patent/EP2845348A4/en not_active Withdrawn
- 2013-04-25 WO PCT/US2013/038168 patent/WO2013165802A1/en active Application Filing
- 2013-04-25 CN CN201380023440.2A patent/CN104272652A/en active Pending
-
2015
- 2015-07-03 HK HK15106365.7A patent/HK1205837A1/en unknown
-
2016
- 2016-04-08 US US15/094,869 patent/US9762492B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2013165802A1 (en) | 2013-11-07 |
CN104272652A (en) | 2015-01-07 |
US9338095B2 (en) | 2016-05-10 |
US20160323185A1 (en) | 2016-11-03 |
EP2845348A4 (en) | 2015-12-02 |
TW201347472A (en) | 2013-11-16 |
US9762492B2 (en) | 2017-09-12 |
HK1205837A1 (en) | 2015-12-24 |
EP2845348A1 (en) | 2015-03-11 |
US20130294239A1 (en) | 2013-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI591989B (en) | Data flow segment optimized for hot flows | |
US9596184B1 (en) | Hot service flow hardware offloads based on service priority and resource usage | |
US20150236959A1 (en) | Autonomously adaptive flow acceleration based on load feedback | |
US8619579B1 (en) | De-duplicating of packets in flows at layer 3 | |
US8417833B1 (en) | Metacodec for optimizing network data compression based on comparison of write and read rates | |
US8381096B2 (en) | Managing list tailoring for a mobile device | |
EP3069316B1 (en) | Extending policy rulesets with scripting | |
JP2021500802A (en) | Systems and methods for first packet application classification | |
EP3149894B1 (en) | Assisting application classification using predicted subscriber behavior | |
Zohar et al. | PACK: Prediction-based cloud bandwidth and cost reduction system | |
US9628503B2 (en) | Systems and methods for network destination based flood attack mitigation | |
US9356824B1 (en) | Transparently cached network resources | |
US9154423B1 (en) | Minimize SYN-flood issues with flow cache while maintaining performance | |
US20170201444A1 (en) | Inserting and removing stateful devices in a network | |
Touati et al. | Fair hop-by-hop interest rate control to mitigate congestion in named data networks | |
EP2965204B1 (en) | Server to client reverse persistence | |
US11457095B1 (en) | Stateless communication using a stateful protocol | |
Yitong et al. | Web-of-things framework for WeChat | |
EP3167575B1 (en) | Delayed proxy action | |
Han et al. | A Novel UDT‐Based Transfer Speed‐Up Protocol for Fog Computing | |
US9525632B1 (en) | Minimize recycle SYN issues for split TCP hot flows to improve system reliability and performance | |
Sehati | Reducing Energy Consumption and Latency of Applications on Wireless Devices. | |
Chemmagate | An experimental study of web transport protocols in cellular networks | |
Xiaolong et al. | An improved unilateral acceleration FAST TCP fairness based on history flows information |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |