Data flow segment optimized for hot flows
Abstract
A number of specific embodiments relate to improving the performance of multiple network traffic management devices by optimizing the management of multiple hot connection streams. A packet flow management device (PTMD) can use a data stream section (DFS) and a control section (CS). In order to maintain the connection flow at the DFS, the CS can perform high-level control functions and policy execution with data flow as the processing unit. At the same time, the DFS can perform statistical data collection and packet processing for the connection flow maintained at the DFS. Unit policy enforcement (for example, packet address translation) or other similar functions. The DFS can include high-speed streaming cache and other high-speed components that can be composed of high-performance computer memory. By maximizing the number of hot connection streams and minimizing the number of malicious and/or non-operational connection streams (for example, non-genuine data streams), the effective use of the high-speed stream cache capacity can be improved, The malicious and/or non-operational connection flow may have flow control data stored in the high-speed flow cache.
Term
No projected expiry on record.
- Priority
- Filed
- Published
- Today
24 claims: 17 independent, 7 dependent
- 1一種利用一流量管理裝置管理透過一網路之通訊的方法,該流量管理裝置包含複數個組件並經操作以執行多個動作,該等動作包含:運用至少一資料流區段元件,以為複數個連接流之一部份提供封包層流處理;運用至少一控制區段元件,以執行多個動作,該等動作包含:管理該些連接流,以及處理該些連接流之一剩餘部分;根據至少一經接收之網路封包,為經管理之該些連接流之至少一者,產生至少一連接流度量指標;運用該至少一連接流度量指標,決定在經管理之該些連接流中的每一個熱連接流;決定待由該資料流區段元件處理的每一個熱連接流;以及運用該資料流區段元件處理每一個已決定之熱連接流。
- 2如申請專利範圍第1項之方法,其中運用該至少一連接流度量指標進一步包含在如果經管理之該些連接流係超過該資料流區段元件之容量時,決定由該資料流區段元件所處理之每一個熱連接流。
- 3如申請專利範圍第1項之方法,其中運用該至少一連接流度量指標進一步包含根據至少經過一時間間隔進行之資料交換總 量,對經管理之該些連接流進行排序。
- 4如申請專利範圍第1項之方法,其中運用該至少一連接流度量指標進一步包含:決定為了將由該控制區段元件所處理之至少一連接流所進行通訊的一中位資料位元率;以及運用為了至少一連接流所進行通訊的該中位資料位元率以及該控制區段元件之至少一位元率容量,來估計該控制區段元件所能處理之該連接流最大數量。
- 5如申請專利範圍第1項之方法,其中決定待由該資料流區段元件處理的每一個熱連接流進一步包含根據至少經過一時間間隔所通訊之資料總量,來辨識待由該資料流區段元件處理的每一個熱連接流,其中前N個連接流係被辨識為熱連接流。
- 6如申請專利範圍第1項之方法,其中決定待由該資料流區段元件處理的每一個熱連接流進一步包含根據至少該控制區段元件之一預測連接流容量,來辨識待由該資料流區段元件處理的每一個熱連接流,其中一百分比等級之連接流係被辨識為熱連接流。
- 7如申請專利範圍第1項之方法,其中產生該至少一連接流度量指標進一步包含檢驗該至少一經接收之網路封包之內容,以辨識一資料型態或一元資料之至少其中之一,其指示該些連接流之至少之一係為一熱連接流。
- 8如申請專利範圍第1項之方法,其中該控制區段元件執行其他 多個動作,該等動作包括:將每一個連接流劃分成一上傳部分與一下載部分;為經管理之該些連接流之每一個連接流的每一個上傳部分及每一個下載部分,產生不同的連接流度量指標;運用每一個連接流度量指標,來決定經管理之該些連接流之每一個熱下載部分與每一個熱上傳部分;決定待由該資料流區段元件處理的經管理之該些連接流的每一個熱上傳部分與每一個熱下載部分;以及運用該資料流區段元件,以處理該些連接流的每一個已決定之熱上傳部分與每一個熱下載部分。
- 9一流量管理裝置(TMD),係包含複數個元件以管理透過一網路之通訊並經操作以執行多個動作,該裝置包含:一收發器,是經操作以透過該網路進行資料通訊;一記憶體,是經操作以儲存多個指令;一處理器,是經操作以執行多個指令,該等指令係能完成多個動作,該等動作包含:運用至少一資料流區段(資料流區段)元件,以為複數個連接流之一部份提供封包層流處理;運用至少一控制區段元件,以執行多個動作,該等動作包含:管理該些連接流,以及處理該些連接流之一剩餘部分; 根據至少一經接收之網路封包,為經管理之該些連接流之至少一者,產生至少一連接流度量指標;運用該至少一連接流度量指標,決定在經管理之該些連接流中的每一個熱連接流;決定由該資料流區段元件所處理之每一個熱連接流;以及運用該資料流區段元件處理每一個已決定之熱連接流。
- 10如申請專利範圍第9項之流量管理裝置,其中運用該至少一連接流度量指標進一步包含在如果經管理之該些連接流係超過該資料流區段元件之容量時,決定由該資料流區段元件所處理之每一個熱連接流。
- 11如申請專利範圍第9項之流量管理裝置,其中運用該至少一連接流度量指標進一步包含根據至少經過一時間間隔進行之資料交換總量,對經管理之該些連接流進行排序。
- 12如申請專利範圍第9項之流量管理裝置,其中運用該至少一連接流度量指標進一步包含:決定為了將由該控制區段元件所處理之至少一連接流所進行通訊的一中位資料位元率;以及運用為了至少一連接流所進行通訊的該中位資料位元率以及該控制區段元件之至少一位元率容量,來估計該控制區段元件所能處理之該連接流最大數量。
- 13如申請專利範圍第9項之流量管理裝置,其中決定待由該資料流區段元件處理的每一個熱連接流進一步包含根據至少經過一時間間隔所通訊之資料總量,辨識待由該資料流區段元件處理的每一個熱連接流,其中前N個連接流係被辨識為熱連接流。
- 14如申請專利範圍第9項之流量管理裝置,其中決定待由該資料流區段元件處理的每一個熱連接流進一步包含根據至少該控制區段元件之一預測連接流容量,來辨識待由該資料流區段元件處理的每一個熱連接流,其中一百分比等級之連接流係被辨識為熱連接流。
- 15如申請專利範圍第9項之流量管理裝置,其中產生至少一連接流度量指標進一步包含檢驗該至少一經接收之網路封包之內容,以辨識一資料型態或一元資料之至少其中之一,其指示該些連接流之至少之一係為一熱連接流。
- 16如申請專利範圍第9項之流量管理裝置,其中該控制區段元件執行其他多個動作,該等動作包括:將每一個連接流劃分成為一上傳部分與一下載部分;為經管理之該些連接流之每一個連接流的每一個上傳部分及每一個下載部分,產生不同的連接流度量指標;運用每一個連接流度量指標,來決定經管理之該些連接流的每一個熱下載部分與每一個熱上傳部分;決定待由該資料流區段元件處理的經管理之該些連接流的每一個熱上傳部分與每一個熱下載部分;以及 運用該資料流區段元件,以處理該些連接流的每一個已決定之熱上傳部分與每一個熱下載部分。
- 17一種處理器可讀的不可遞移性儲存媒介,該儲存媒介係經操作以儲存多個處理器可執行指令,以利用一流量管理裝置管理透過一網路之通訊,該流量管理裝置具有複數個元件,其中由一處理器進行該等指令之執行以使該流量管理裝置執行多個動作,該等動作包含:運用至少一資料流區段元件,以為複數個連接流之一部份提供封包層流處理;運用至少一控制區段元件,以執行多個動作,該等動作包含:管理該些連接流,以及處理該些連接流之一剩餘部分;根據至少一經接收之網路封包,為經管理之該些連接流之至少一者,產生至少一連接流度量指標;運用該至少一連接流度量指標,決定在經管理之該些連接流中的每一個熱連接流;決定待由該資料流區段元件處理的每一個熱連接流;以及運用該資料流區段元件處理每一個已決定之熱連接流。
- 18如申請專利範圍第17項之媒介,其中運用該至少一連接流度量指標進一步包含在如果經管理之該些連接流係超過該資料 流區段元件之容量時,決定由該資料流區段元件所處理之每一個熱連接流。
- 19如申請專利範圍第17項之媒介,其中運用該至少一連接流度量指標進一步包含根據至少經過一時間間隔進行之資料交換總量,對經管理之該些連接流進行排序。
- 20如申請專利範圍第17項之媒介,其中運用該至少一連接流度量指標進一步包含:決定為了將由該控制區段元件所處理之至少一連接流所進行通訊的一中位資料位元率;以及運用為了至少一連接流所進行通訊的該中位資料位元率以及該控制區段元件之至少一位元率容量,來估計該控制區段元件所能處理之該連接流最大數量。
- 21如申請專利範圍第17項之媒介,其中決定待由該資料流區段元件處理的每一個熱連接流進一步包含根據至少經過一時間間隔所通訊之資料總量,來辨識待由該資料流區段元件處理的每一個熱連接流,其中前N個連接流係被辨識為熱連接流。
- 22如申請專利範圍第17項之媒介,其中決定待由該資料流區段元件處理的每一個熱連接流進一步包含根據至少該控制區段元件之一預測連接流容量,來辨識待由該資料流區段元件處理的每一個熱連接流,其中一百分比等級之連接流係被辨識為熱連接流。
- 23如申請專利範圍第17項之媒介,其中產生該至少一連接流度 量指標進一步包含檢驗該至少一經接收之網路封包之內容,以辨識一資料型態或一元資料之至少其中之一,其指示該些連接流之至少之一係為一熱連接流。
- 24如申請專利範圍第17項之媒介,其中該控制區段元件執行其他多個動作,該等動作包括:將每一個連接流劃分成一上傳部分與一下載部分;為經管理之該些連接流之每一個連接流的每一個上傳部分及每一個下載部分,產生不同的連接流度量指標;運用每一個連接流度量指標,來決定經管理之該些連接流之每一個熱下載部分與每一個熱上傳部分;決定待由該資料流區段元件處理的經管理之該些連接流的每一個熱上傳部分與每一個熱下載部分;以及運用該資料流區段元件,以處理該些連接流的每一個已決定之熱上傳部分與每一個熱下載部分。
Independent claims24
147 paragraphs in 1 section, as filed
Data flow section optimized for heat flow
DATA FLOW SEGMENT OPTIMIZED FOR HOT FLOWS
[Cross-reference of related applications]
This application is an invention patent application based on U.S. Provisional Patent Application No. 61/641,251 filed on May 1, 2012. The priority of the application date claimed here is based on 35 USC§119(e ) As the basis.
The present invention is generally related to packet flow management, and more specifically, it is not only used to determine whether network connection flow control data should be offloaded to a data flow section in a high-speed cache.
The extensive use of the Internet has increased the communication connections between client devices and server-side devices. A client device often uses a well-known communication protocol to establish a network connection with a server-side device, such as transmission control protocol/Internet protocol (TCP/IP), user data protocol (UDP), and the like agreement. This 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 other similar characteristics. Generally speaking, for a network connection between a client device and a server device, the source address, destination address, destination port, and 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-side device. In addition, the expansion of the Internet has led to improvements in packet traffic management. One such advancement is described in detail in U.S. 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". The improvement of the separation of operations between a segment and a data stream segment is incorporated herein by reference in its entirety. Therefore, the present invention is based on these and other considerations.
<p>100System</p><p>102Client Device</p><p>103Client Device</p><p>104Client Device</p><p>105Client Device</p><p>107Internet</p><p>108Internet</p><p>109Packet flow management device</p><p>110Server-side device</p><p>111Server-side device</p><p>200Client Device</p><p>202Processor</p><p>204Random access memory</p><p>206Operating System</p><p>208Data Storage</p><p>214Application</p><p>218Browser</p><p>222Read Only Memory</p><p>224Basic Input/Output System (BIOS)</p><p>226Memory</p><p>228Power Supply</p><p>230Processor readable storage device</p><p>234Bus</p><p>236Network interface</p><p>238Audio Interface</p><p>240Display</p><p>242Keyboard</p><p>248Input/Output Interface</p><p>300Network Device</p><p>302Processor</p><p>304Random access memory</p><p>306Operating System</p><p>308Data Storage</p><p>314Application</p><p>316Web server</p><p>318Control section</p><p>322Read only memory</p><p>324Basic Input/Output System</p><p>326Bus</p><p>328Processor readable storage device</p><p>330Network Interface Unit</p><p>332Input/Output Interface</p><p>334Hard Disk Device</p><p>336Video display adapter</p><p>338Data stream section</p><p>400ASystem</p><p>400BSystem</p><p>402Client Device</p><p>403Client Device</p><p>404Packet flow management device</p><p>406Data stream section</p><p>407Data stream section</p><p>408Control section</p><p>409Control section</p><p>410Server-side device</p><p>411Server-side device</p><p>500Sequence</p><p>502Step</p><p>504Step</p><p>506Step</p><p>508Step</p><p>510Step</p><p>512Step</p><p>514Step</p><p>516Step</p><p>518Step</p><p>520step</p><p>522Step</p><p>524Step</p><p>600Program</p><p>Block 602</p><p>604block</p><p>606block</p><p>Block 608</p><p>Block 610</p><p>Block 612</p><p>Block 614</p><p>700Program</p><p>Block 702</p><p>Block 704</p><p>Block 706</p><p>Block 708</p><p>710block</p><p>800Program</p><p>802block</p><p>Block 804</p><p>Block 806</p><p>Block 808</p><p>810block</p><p>900Program</p><p>902block</p><p>Block 904</p><p>Block 906</p><p>908block</p><p>910block</p><p>Block 912</p><p>Block 914</p><p>1000Program</p><p>Block 1002</p><p>Block 1004</p><p>Block 1006</p><p>1100Program</p><p>Block 1102</p><p>Block 1104</p><p>Block 1106</p>
The non-limiting and non-exhaustive specific embodiments of the present invention are described with reference to the subsequent figures. In the drawings, unless otherwise specified, the same reference numbers in the various drawings refer to the same parts. In order to have a better understanding of the present invention, reference will be made to the following embodiments and read in conjunction with the accompanying drawings. Among them: the first figure is an environmental system diagram in which several of the present invention can be implemented. Specific embodiment; the second figure shows a specific embodiment of a client device, which can 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 can be included in a system as shown in the first figure; the fourth A and fourth B diagrams describe the overview system diagrams. According to the specific embodiments, the general diagrams are shown in multiple Between the client device and multiple server-side devices A number of specific embodiments of a packet flow management device are arranged; the fifth figure describes a sequence diagram, according to these specific embodiments, the general diagram is used to terminate a connection flow at a data flow section and A specific embodiment of a sequence of establishing a new connection flow at the data stream section; the sixth figure shows a flow chart, which illustrates the packet flow management according to at least one specific embodiment of the various specific embodiments The seventh figure shows a flow chart, which illustrates the process of processing multiple new connection streams at a data stream section according to at least one specific embodiment of the various specific embodiments; the eighth figure shows A flowchart illustrating the procedure of processing multiple driving messages in a control section according to at least one specific embodiment of the various specific embodiments; the ninth figure shows a flowchart according to At least one specific embodiment of the various specific embodiments determines whether multiple connection streams are candidate connection streams to be unloaded to the data stream section; and Figures 10 and 11 show multiple flowcharts, the The flowchart illustrates a procedure for identifying multiple thermal connection flows according to at least one specific embodiment of the various specific embodiments.
In the specification of this application and the scope of the patents applied for, unless the context clearly dictates, the following terms have clear meanings related to this. As used herein, "in a specific embodiment" may but not necessarily refer to the same embodiment. In addition, what is referred to herein as "in another specific embodiment" may but does not necessarily refer to a different embodiment. Therefore, the different embodiments described below can be easily combined without departing from the scope or spirit of the present invention.
In addition, when used here, unless the context clearly dictates, the term "or" is an inclusive usage of "or" and is equivalent to the term "and/or". Unless the context clearly dictates, the term "based" is not an exclusive usage, and it allows other narrative factors. In addition, in this application specification, the meanings of "one", "one" and "the" include plural usage. The meaning of "in something" includes "in it" and "on it."
When used here, the term "SYN" means a packet transmitted using the Transmission Control Protocol (TCP), which contains a set synchronization control flag in the TCP header of the packet.
When used here, the term "ACK" means a packet transmitted using TCP, which contains a set acknowledgment flag in the TCP header of the packet.
When used here, the term "SYN_ACK" means a packet transmitted using TCP, which includes a set synchronization control flag and a set confirmation flag in the TCP header of the packet.
When used here, the term "FIN" means a packet transmitted using TCP, which is included in the TCP header of the packet, and a set flag with no more information from the sender flag.
When used here, the term "FIN_ACK" means using TCP The transmitted packet, which is included in the TCP header of the packet, has a setting flag and a setting confirmation flag with no more data from the sender flag. FIN_ACK compresses FIN and ACK into one TCP packet.
When used here, the term "tuple" means a set of values that identifies a source and destination of a connection. In a specific embodiment, the 5-tuple may include a source address, a destination location, a source port, a destination port, and a protocol identifier. In at least one of the various embodiments, multiple tuples may be used to identify network flows (for example, connection flows).
When used here, the terms "network flow", "connection flow", and "flow" mean a network communication that can be used between two terminals Between establishment. In at least one of the various embodiments, tuples can be used to describe the flow. In at least one of the various embodiments, flow control data related to multiple connection flows can be used to ensure that the network packets transmitted between the terminals of a connection flow can follow the same path Delivered. In at least one of the various embodiments, if multiple changing paths and/or pointing to multiple different terminals are used, the performance of connection-oriented network protocols, such as network protocols such as TCP/IP, may be reduced .
When used here, the term "real connection flow" means a connection flow that has been determined to be related to an operating client-server communication. In contrast, the non-genuine connection flow may be related to a malicious attack, such as a SYN flood attack. In at least one of the various embodiments, the characteristics of a real connection flow can include TCP/IP handshake protocol (handshaking) integrity, two-way network packet exchange Change of evidence or other similar characteristics. Similarly, evidence that a connection flow is not a real connection flow can include semi-open connections (incomplete handshake protocol and connection settings), a very small number of packets if there is network packet exchange, or other similar evidence.
When used herein, the term "hot connection flow" means a connection flow that has been determined to be a candidate connection flow for offloading to a data flow section. Hot flow connections can have multiple characteristics, such as high-bandwidth utilization, priority of service quality, or other similar characteristics.
When used here, the term "high-speed stream cache" means cache-based memory that is used to store stream control data related to multiple connected streams. The cache can be accessed using a dedicated bus, and can provide very fast performance based on a combination of multiple factors, such as wide bus, fast clock speed, dedicated channel, special read and/or write Buffering, hardware proximity, 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, explosive SRAM, extended data output dynamic random access memory Body (EDO DRAM) or other similar components. In most cases, the high-performance components containing the high-speed streaming cache are often relatively expensive. Therefore, the high-speed stream cache can contain valuable "real assets" in a traffic management device.
Various embodiments of the present invention will be briefly described below, so that the reader can have a basic understanding of some of the features of the present invention. However, this brief description is not intended to provide a comprehensive overview of the present invention, nor is it intended to indicate the main or key elements of the present invention. , Or to define or narrow the scope of the present invention. The purpose of this brief description is to present the text in a simplified way Some concepts invented in order to prepare for a more detailed description later.
In short, a number of specific embodiments are related to improving the performance of multiple network traffic management devices by optimizing the management of multiple hot connection streams. A packet flow management device (PTMD) can use a data flow segment (DFS) component and a control segment (CS) component. In at least one of the various specific embodiments, the CS may perform high-level control functions and per-flow policy execution in order to maintain the connection flow at the DFS, and the DFS may Perform statistical data collection, per-packet policy execution (for example, packet address translation) or other similar functions for the connection flow maintained at the DFS.
The CS can be used to generate flow control data for multiple connection flows that can be offloaded to the DS based on multiple connection flow requests received at the packet flow management device. In a specific embodiment, the CS may receive a new connection flow request transmitted by a client device, such as a SYN packet. The CS may generate and cache a connection flow identifier for the connection flow request. In at least one of the various embodiments, the DFS may include multiple high-speed stream caches and multiple other high-speed components. In at least one of the various embodiments, the high-speed stream cache can be made to store a defined amount of flow control data, and 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 of the various specific embodiments, a method is used to maximize the number of hot connection streams and minimize the number of malicious and/or non-operational connection streams (for example, non-genuine data streams) , 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.
In at least one of the various embodiments, if a new network connection stream is received, it can be passed to a control section (CS). In at least one of the various embodiments, the CS may 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 send a control message to the DFS, and the control message may include the flow control data. In at least one of the various embodiments, the DFS may store the received flow control data in the high-speed flow control cache related to the DFS.
In at least one of the various embodiments, the CS may receive multiple connection flows driven from the DFS. In at least one of the various embodiments, if the expelled connection remains active and/or active, then the CS can start processing the network packets for the transmitted connection stream (e.g., in addition to In addition to providing the data stream level control and policy execution, the CS can take over the packet layer control).
In at least one of the various embodiments, in combination with managing the connection flows, the CS can analyze flow statistics and application programs to identify multiple hot connection flows. In at least one of the various embodiments, if multiple thermal connection flows can be identified, the CS can determine whether any thermal connection flows should be processed by the DFS to improve performance.
In at least one of the various specific embodiments, a connection stream is offloaded to the DFS for processing, so that the DFS can use the Translation of flow control data management packets generated by CS. In at least one of the various embodiments, offloading multiple connection streams to the DFS can obtain the advantage of performance improvement due to the high-performance hardware that constitutes the DFS. In at least one of the various embodiments, if the connection flow can be offloaded to the DFS for processing, the flow control data for multiple connection flows can be stored in the high-speed flow related to the DFS Cached.
<b><u style="single">Example operating environment</u></b>
The first figure illustrates multiple elements of a specific embodiment of an environment in which the present invention can be implemented. The implementation of the present invention does not require all the components, and the arrangement and form of the components can be changed without departing from the spirit and concept of the present invention.
As shown in the figure, the system 100 in the first figure includes multiple local area network (LAN)/wide area network (WAN) networks 108, wireless networks 107, multiple client devices 102-105, and packet traffic management devices ( PTMD) 109 and multiple server-side devices 110-111. The network 108 communicates with multiple client devices 102-105, the wireless network 107 and the PTMD 109, and establishes communication between these components. The carrier network 107 further establishes communication with multiple wireless devices, such as the client devices 103-105. The PTMD 109 communicates with the network 108 and multiple server-side devices 110-111.
A specific embodiment of the client devices 102-105 will be described in detail below with reference to the second figure. In a specific embodiment, at least some of the client devices 102-105 can be operated through a wired and/or a wireless network, such as through networks 107 and/or 108. Generally speaking, the client devices 102-105 can essentially include Any computing device that communicates via a network can send and receive information containing multiple instant messages, perform various online activities, or perform other similar actions. It should be recognized that more or fewer client devices can be included in a system such as the one described here, so various specific embodiments are not limited by the number and form of clients used.
The various devices that can operate as the client device 102 may include various devices typically connected by wired or wireless communication media, such as personal computers, servers, multi-processing systems, microprocessor-based or programmable consumer electronics Devices, networked personal computers or other similar devices. In some embodiments, the client devices 102-105 can essentially include any portable computing device that can connect to another computing device and receive information, such as a laptop 103, a smart phone 104, and a tablet. Computer 105 or other similar devices. However, laptop devices are not limited by this, and can include other portable devices, such as mobile phones, display pagers, radio frequency (RF) devices, infrared (IR) devices, personal digital assistants (PDAs), Handheld computers, wearable computers, integrated devices combining one or more of the foregoing devices, and other similar devices. Therefore, the client devices 102-105 generally have a wide range in terms of capacity and features. In addition, the client devices 102-105 can provide access to various computing applications, including browsers or other web-based applications.
A network-enabled client device may include a browser application that is configured to receive and transmit multiple web pages, multiple network-based messages, and other similar content. The browser application is configured to Use virtually any Internet-based language to receive and display pictures, text, multimedia, and other similar content. This language includes Wireless Application Protocol Message (WAP) and other similar languages. In a specific embodiment, the browser application can use handheld device markup language (HDML), wireless markup language (WML), WMLScript, JavaScript, standard general markup language (SGML), hyperdocument markup language (HTML), and Extensible Markup Language (XML) and other similar languages are used to display and send a message. In a specific embodiment, a user of the client device can use the browser application to perform various (online) actions on a network. However, another application can also be used to perform various online activities.
The client devices 102-105 may also include at least one other client application that is configured to receive and/or transmit data between another computing. The client application may include the capacity for sending and/or receiving content, or other similar actions. The client application can further provide information for 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 of various mechanisms, including phone numbers, mobile phone identification numbers (MIN), electronic serial numbers (ESN), or other mobile device identifiers . The information can also indicate a content format that the mobile device can use. This information can be provided in a network packet or other similar content and transmitted between multiple other client devices, PTMD 109, these server-side devices 110-111, or multiple other computing devices.
The client devices 102-105 may be further configured to include a A client application that allows an end user to log in to an end user account that can be managed by another computing device, such as those server-side devices 110-111 or other similar devices . 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 various search activities, social network activities, browsing various websites, and multiple other users Communication, participation in games, interaction with various applications, or other similar activities, but not limited to this. However, participating in various online activities can also be performed without logging in to the end user account.
The wireless carrier network 107 is configured to connect the client devices 103-105 and their multiple components to the network 108. The wireless carrier network 107 can include any form of various wireless sub-networks, and further includes multiple independent wireless peer-to-peer networks and other similar forms, to provide a wireless master-slave network for the client devices 102-105 Road connection. These sub-networks can include mesh networks, wireless local area networks (WLAN), cellular networks, and other similar networks. In a specific embodiment, the system may include more than one wireless network.
The wireless carrier network 107 may further include an autonomous system of multiple terminals, gateways, routers, and other similar devices, which are connected by wireless radio links or other similar methods. 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 be changed quickly.
The wireless carrier network 107 can further use multiple access technologies, including the second-generation (2G), third-generation (3G), fourth-generation (4G), and fifth-generation (5G) radio access of cellular systems Technology, WLAN, wireless router (WR) mesh Internet and other similar networks. Access technologies such as 2G, 3G, 4G, 5G, and various future access networks can achieve wide-area coverage of mobile devices. Therefore, the client devices 103-105 can have various degrees of mobility. In a non-limiting example, the carrier network 107 can be accessed through a radio network to achieve a radio connection, such as the Global System for Mobile Communications (GSM), General Packet Radio Service Technology (GPRS), and Enhanced Data Rate GSM service ( EDGE), Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Wideband Code Division 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 mechanism information can move between the client devices 103-105 and another computing device, network, and other similar devices.
The network 108 is configured to connect multiple network devices with multiple other devices, including connecting the server-side devices 110-111 through the PTMD 109 and the client device 102, and connecting multiple clients through 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 in addition to various LANs, various WANs, such as various direct connections through universal serial bus (USB) ports, other computer-readable media, or any combination of the above. Contains the Internet. In the interconnection combination of LANs, it includes parts based on multiple different structures or communication protocols. A router can be used as a link between multiple LANs so that multiple messages can be transmitted between each other. In addition, multiple communication links in multiple LANs generally include twisted pairs or coaxial cables, but multiple communication links between multiple networks use analogy Telephone lines, fully or partially dedicated digital lines including T1, T2, T3, and T4, and/or multiple other carrier mechanisms, such as E-carrier, integrated service digital network (ISDN), digital subscriber line (DSL), wireless link The link includes a satellite link or a number of other communication links known to those with ordinary knowledge in the technical field to which the invention belongs. In addition, the communication link can further use any technology of various digital signaling technologies, such as DS-0, DS-1, DS-2, DS-3, DS-4, OC-3, OC-12, OC-48 Or other similar technologies, but 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 through a modem or temporary telephone link. In a specific embodiment, the network 108 is configured to transmit 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 include multiple computer-readable instructions, data structures, program modules, or other transmission mechanisms, and include any information transmission media. As an example, communication media includes wired media such as twisted wire pairs, coaxial cables, optical fibers, and waveguides, and other wired media, as well as wireless media such as sound waves, radio, and infrared, and other wireless media.
A specific embodiment of the PTMD 109 will be described in detail below in conjunction with the third figure. In short, however, the PTMD 109 can essentially include any network device capable of managing the network traffic between the client devices 102-105 and the server devices 110-111. Such devices include, for example, routers, proxies, 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 distribution, translation, switching packages or His similar operation. In a specific embodiment, the PTMD 109 can check multiple source network packets, and can perform single address translation, port translation, packet sequence translation, and other similar functions, and check and distribute these network packets based at least in part on the packet. Road packet. In some specific embodiments, the PTMD 109 may perform a load balancing operation to determine a server-side device to direct a request. The load balancing operation can be based on network traffic, network topology, a server's capacity, requested content, or many other traffic distribution mechanisms.
The PTMD 109 may include a control section and a separate data stream section. The control section may include multiple software optimization operations, which perform multiple high-level functions for packet flow management and policy execution with data flow as the processing unit. In at least one of the various embodiments, the control section can be configured to manage multiple connection streams maintained at the data stream section. In a specific embodiment, the control section may provide a plurality of commands to the data stream section, such as a packet translation command, so that the data stream section distributes a plurality of received packets to a server-side device , Like distribution to these server-side devices 110-111. The data stream section may include multiple hardware optimization operations, and the optimization operations perform statistics on the multiple connection streams maintained at the DFS between the client devices and the server-side devices Data collection, packet-based policy execution (for example, packet location translation), high-speed stream caching, or other similar functions, such as the interaction between the client devices 102-105 and the server-side devices 110-111 between.
The server-side devices 110-111 can essentially include any network device, and these devices can operate as a web server. However, these servers are Settings 110-111 are not limited to web servers, and can operate as message servers, file transfer protocol (FTP) servers, database servers, content servers, or other similar devices. In addition, each of the server-side devices 110-111 can be configured to perform a different operation. The devices that can be operated as these server-side devices 110-111 include various network devices, including multiple personal computers, desktop computers, multi-processor systems, microprocessor-based or programmable consumer electronic devices, and network devices. PCs, server-side devices, network equipment or other similar devices, but not limited to this.
Although the first figure depicts the server-side devices 110-111 as a single computing device, the invention is not limited to this. For example, one or more functions of each of the server-side devices 110-111 can be distributed on one or more separate network devices. In addition, the server-side devices 110-111 are not limited to a specific configuration. Therefore, in a specific embodiment, the server-side devices 110-111 may include a plurality of network devices operated in a master-slave manner, and one of the network devices of the server-side devices 110-111 It is operated to manage and/or organize multiple operations of these other network devices. In other specific embodiments, the server-side devices 110-111 may operate as multiple network devices in a cluster structure, a peer-to-peer structure, and/or even a cloud structure. Therefore, the construction of the present invention is not limited to a single environment, and multiple other configurations and structures are also envisaged at the same time.
<b><u style="single">Example client device</u></b>
The second figure illustrates a specific embodiment of the client device 200, which may be included in a specific embodiment of the system implementation of the present invention. The client device 200 may include more or less than the elements described in the second figure. However, so The illustrated elements are sufficient to reveal exemplary embodiments for carrying out the present invention. For example, the client device 200 may represent a specific embodiment of at least one of the client devices 102-105 in the first figure.
As shown in the figure, the client device 200 includes a processor 202 that communicates with a memory 226 through 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.
The power supply 228 provides power to the client device 200. A rechargeable or non-rechargeable battery can be used to provide power. Power can also be provided by an external power source, such as an AC adaptor or a power dock for replenishing and/recharging a battery.
The client device 200 can selectively communicate with a base station (not shown) or directly communicate with another computing device. The network interface 236 includes circuits that connect the client device 200 to one or more networks, and is constructed to use one or more communication protocols and technologies, including GSM, CDMA, TDMA, HSDPA, LTE, UDP, TCP/IP, Short Message Service (SMS), GPRS, WAP, Ultra Wideband (UWB), IEEE 802.16 Worldwide Interoperability for Microwave Access (WiMax), Session Initiation Protocol/Real Time Transfer Protocol (SIP/RTP) or various other wireless communication protocols Any agreement, but not limited to this. The network interface 236 is sometimes a known transceiver, transceiving device, or network interface card (NIC).
The audio interface 238 is configured to generate and receive multiple audio signals, such as human voice sounds. For example, the audio interface 238 can be connected to a (not shown) Show) speaker and microphone to communicate with other people and/or produce audio confirmation of certain actions.
The display 240 can be a liquid crystal display (LCD), gas plasma, light emitting diode (LED), or any other display format used with a computing device. The display 240 may also include a touch screen that is arranged to receive input from an object such as a stylus, or input from the fingers of a human hand.
The keyboard 242 may include any input device arranged to receive input from a user. For example, the keyboard 242 may include a button number dial or keyboard. The keyboard 242 may also include a plurality of command buttons, and the command buttons are related to selecting and transmitting a plurality of images.
The client device 200 also includes an input/output interface 248 for communicating with multiple external devices, such as communicating with a headset, or communicating with multiple other input or output devices 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.
The client device 200 may also include a GPS transceiver (not shown) to determine the physical coordinates of the client device 200 on the surface of the earth. Generally speaking, a GPS transceiver outputs a position like the latitude and longitude 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), service area identifier (SAI) , Enhanced Time Advance (ETA), Base Station Subsystem (BSS) or other similar mechanisms, but not limited to this, to further determine the physical coordinates of the client device 200 on the surface of the earth. To understand that in different situations, a GPS transceiver The physical location of the client device can be determined at the level of 200 mm. In other cases, the accuracy of the determined physical location may be poor, such as in meters or greater distances. However, in a specific embodiment, the client device 200 can provide other information that can be used to determine the physical location of a device through multiple other components, such as media access control (MAC) address, IP address Or other similar information.
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) to store information such as multiple computer-readable instructions, data structures, program modules, or other data. The mass memory 226 stores a basic input/output system (BIOS) 224 to control the low-level operation of the client device 200. The large amount of memory also stores an operating system 206 to control the operation of the client device 200. What you will realize is that this component also includes UNIX or LINUX<sup>TM</sup>The version of the general purpose operating system, or like Windows Mobile<sup>TM</sup>Dedicated client communication operating system, or Symbian® operating system. The operating system can include or interface with a Java virtual machine module, which can control hardware components and/or various operations of the operating system through Java applications.
The mass memory 226 further includes one or more data storages 208, which can be used by the client device 200 to store a plurality of applications 214 and/or other data and other things. For example, the data storage 208 can also be used to store information describing various capacities of the client device 200. Then, any event of various events can be provided to another device, including sending as a header part during a communication, sending immediately after request, or other similar events. The capital The data storage 208 can also be used to store social network information, including address books, friend lists, aliases, user data, or other similar information. In addition, the data storage 208 can also store any content of messages, web content, or various user-generated content. At least a part of the information can also be stored on another element of the network device 200, including a processor-readable storage device 230, a disk (not shown) in the client device 200, or other computer-readable storage media , But not limited to this.
The processor-readable storage device 230 may include volatile, non-volatile, removable, and non-removable media, which are implemented by any method or technology to store information, such as storing multiple computers or processors Readable instructions, data structures, program modules or other data. Examples of the processor-readable storage media include RAM, ROM, electronically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital multi Function DVD or other optical storage media, magnetic cassettes, tapes, disk storage or other magnetic storage devices, or any other physical media that can be used to store required information and that can be accessed by a computing device. Here, the processor-readable storage device 230 may also be referred to as a computer-readable storage medium.
The application program 214 may include multiple computer-executable instructions, and when executed by the client device 200, it transmits, receives, and/or processes network data. Network data can include messages (for example, SMS, Multimedia Messaging Service (MMS), Instant Messaging (IM), email and/or other messages), audio, video, but it is not limited to this, and can be communicated with another client Another user of the device communicates remotely. The application 214 may include a browser 218, for example. The application 214 can contain multiple Other applications, which can include calendar, search program, email account, IM application, SMS application, VOIP application, contact manager, task manager, decoder, database application Programs, word processing programs, security control applications, worksheet programs, games, search programs, etc., but not limited to this.
The browser 218 can substantially include any application program that is configured to receive and display multiple images, text, multimedia, or other similar content, and substantially use any basic network language. In a specific embodiment, the browser application can use HDML, WML, WMLScript, JavaScript, SGML, HTML, XML and other similar languages to display and send messages. However, any language from various other web-based programming languages can be used. In a specific embodiment, the browser 218 can enable a user of the client device 200 to communicate with another network device, such as with the PTMD 109 and/or with the server-side devices 110-111 .
<b><u style="single">Example network device</u></b>
The third figure illustrates a specific embodiment of a network device 300 according to a specific embodiment of the present invention. The network device 300 may include more or less components than shown. However, the illustrated elements are sufficient to reveal exemplary embodiments for implementing the present invention. The network device 300 is configured to operate as a server, client, node, host, or any other device. The network device 300 may represent, for example, the PTMD 109 in the first figure, the server-side devices 110-111 in the first figure, and/or multiple other network devices.
The network device 300 includes a processor 302 and a processor-readable storage device 328. Network interface unit 330, an input/output interface 332, hard disk device 334, video display adapter 336, data stream segment (DFS) 338 and a large amount of memory, all of these components are through the bus 326 Connect to each other. The mass memory generally includes RAM 304, ROM 322, and one or more permanent mass storage devices, such as a hard disk device 334, a tape device, an optical device, and/or a floppy disk device. The large amount of memory stores an operating system 306 for controlling 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 communicate with some other communication network. The network interface unit 330 is constructed to use various Communication protocol, including TCP/IP communication protocol. The network interface unit 330 is sometimes a known transceiver, transceiving device or network interface card (NIC).
The network device 300 may also include an input/output interface 332 to communicate with multiple external devices, such as a keyboard or multiple other input or output devices as shown in the third figure. The input/output interface 332 can use one or more communication technologies, such as USB, infrared, Bluetooth, or other similar technologies.
The mass memory system described above describes another form of computer-readable media, that is, a computer-readable storage medium and/or a processor-readable storage medium, including the processor-readable storage device 328. The processor-readable storage device 328 can include volatile, non-volatile, removable, and non-removable media, which can be implemented by any method or technology to store information, such as storing multiple computers or processors Readable instructions, data structures, program modules or other data. Examples of the processor-readable storage medium include RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, digital versatile DVD or other optical storage media, magnetic cassettes, tapes, disk storage or other magnetic storage devices, or It is any other medium that can be used to store the required information and that can be accessed by a computing device.
The data storage 308 may include a database, text, worksheet, folder, file or other similar content, which is configured to maintain and store multiple user account identifiers, user data, email addresses, IM address and/or other network address, or other similar content. The data storage 308 may further include program codes, data, algorithms, or other similar content to be used by a processor, such as used by the central processing unit 302 to execute and implement multiple actions. In a specific embodiment, at least some of the data storage 308 may also be stored on another element of the network device 300, including a processor-readable storage device 328, a hard disk device 334 or other similar devices, but Not limited to this.
This large amount of memory can also store code and data. One or more application programs 314 can be loaded into the large amount of memory and executed on the operating system 306. Examples of applications include decoders, schedulers, calendars, database programs, word processing programs, hyperdocument 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. The web server 316 and the control section (CS) 318 can also be included in the application programs 314 to become application programs.
The web server 316 represents any service of various services, and is configured To provide content via a network, including multiple messages, to another computing device. Therefore, the network server 316 includes, for example, a network server, an FTP server, a database server, a content server, or other similar servers. The network server 316 can provide multiple messages in any of various formats through the network, including WAP, HDML, WML, SGML, HTML, XML, small HTML (cHTML), extensible HTML (xHTML) or other similar Format, but not limited to this. The web server 316 can also be configured to allow a user of a client device to browse websites, upload user data, or perform other similar actions. The client device is like the client devices 102 in the first figure. -105.
The network device 300 may also include DFS 338 to maintain multiple connection flows between the client devices and the server-side devices, such as the client devices 102-105 and the first These server-side devices 110-111 in the picture. In a specific embodiment, the DFS 338 may include multiple hardware optimization operations for packet flow management, such as multiple iterative operations related to packet flow management. For example, the DFS 338 can perform statistical data collection, packet-based policy execution (for example, packet address translation), or other similar functions for the multiple connection flows maintained at the DFS 338. In some embodiments, the DFS 338 can distribute, switch, transfer, guide and/or process multiple rules based on a specific connection flow characteristic (for example, a five-tuple of a received packet). Packets. Therefore, the DFS 338 can contain multiple capacities and perform multiple tasks, such as those performed by a router, switch, routing switch, or other similar devices. In some embodiments, the rules for a particular connection flow feature are based on the commands received from the CS 318 Base. In a specific embodiment, the DFS 338 can store the commands received from the CS 318 in a local memory as a table or some other data structure. In some specific embodiments, the DFS 338 may also store a stream state table to indicate the state of a plurality of current connection flows maintained at the DFS 338. In at least one of the various specific embodiments, multiple components of the DFS 338 may include and/or work in combination to provide high-speed stream caching for optimized packet traffic management.
In some specific embodiments, the DFS 338 may provide multiple connection flow status updates to the CS 318. In a specific embodiment, a connection flow status 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 include an identifier related to the connection flow. The identifier can be generated and provided by the CS 318 when a connection flow is established at the DFS 338. In some specific embodiments, the connection flow update may be a connection flow deletion update provided to the CS 318 after the connection flow is terminated in the DFS 338. The connection flow status update and/or the connection flow deletion update can be periodically provided to the CS 318 during a predetermined period or other similar manners. In some specific embodiments, the DFS 338 may stagger the time when providing a plurality of connection stream status updates to the CS.
In some other specific embodiments, the DFS 338 may include a plurality of data stream sections. In a non-limiting example, one of the first data stream segments in the DFS 338 can transmit packets received from a client device to a server-side device, and one of the second data streams in the DFS 338 The segment can transmit and/or distribute multiple packets received from a server-side device to a client device. In various concrete In at least one specific embodiment of the embodiment, the DFS 338 can also be implemented in software.
The CS 318 may include a control section that includes multiple software optimization operations to perform multiple high-level control functions for packet flow management and policy execution with data flow as a processing unit. The CS 318 can be configured to manage multiple connection flows maintained at the DFS 338. In a specific embodiment, the CS 318 may provide a plurality of commands, such as a packet address translation command to the DFS 338, so as to transfer the received multiple packets to a server-side device, as shown in the first figure. These server-side devices 110-111. In some embodiments, the CS 318 can transmit and/or distribute multiple packets between a client device and a server device independently of the DFS 338.
In at least one of the various specific embodiments, the CS 318 may include a plurality of control sections. In some embodiments, multiple control sections can access and/or manage a single data stream section and/or multiple connection streams at multiple data stream sections. In some other embodiments, the CS 318 may include an internal data stream section. In one such embodiment, the internal data stream section of the CS 318 can be dispersed and/or separated from the CS 318. For example, in a specific embodiment, the CS 318 can be used in software, but the internal data stream section 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 specific embodiment, the CS 318 can also be implemented in hardware.
In at least one of the various embodiments, the CS 318 may be configured to generate an identifier for each connection flow established at the DFS 338. In some specific embodiments, the CS 318 can use a SYN serial number, To generate an identifier for a corresponding connection flow. In a specific embodiment, the identifier may be based on a hash function of the sequence number. In another specific embodiment, the identifier may be based on a mutually exclusive or bitwise operation of the sequence number. 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 may cache an identifier for each connection flow established at the DFS 338.
Figure 4A depicts a system diagram, which generally illustrates a specific embodiment of a system with a packet flow management device between the client devices and the server devices. The system 400A may include a packet traffic management device (PTMD) 404 between the client devices 402-403 and the server-side 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 in the second figure. The server-side devices 410-411 may include Server_1 to Server_N, which may include one or more server-side devices, such as the server-side devices 110-111 in the first figure.
In a specific embodiment, the PTMD 404 may be a specific embodiment of the PTMD 109 in the first figure. The PTMD 404 may include a data stream section (DFS) 406 and communicate with a control section (CS) 408. In at least one specific embodiment of various specific embodiments, the DFS 406 may be a specific embodiment of the DFS 338 in FIG. 3. The CS 408 may be a specific embodiment of the CS 318 in the third figure.
The CS 408 can be configured to interact 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 communications. The CS 408 can establish multiple connection flows at the DFS 406. In some specific embodiments, the CS 408 can establish a connection flow at the DFS 406 by providing a plurality of commands to the DFS 406, and make the DFS 406 transfer the packets received at the PTMD 404, These commands contain flow control data. In a specific embodiment, the CS 408 can perform a load balancing operation to select one of the server-side devices 410-411 to receive multiple packets sent 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 may generate and cache a connection flow identifier to provide to the DFS 406.
The DFS 406 can be configured to facilitate multiple communications between the client devices 402-403 and the server-side devices 410-411. The DFS 406 can process and transmit multiple packets received at the PTMD 404 according to the commands and flow control data received from the CS 408. For example, in a specific embodiment, the DFS 406 uses the commands and/or flow control data to transfer packets received from the client device 402 to the server device 410, and to transfer packets from the server device 410 The multiple packets received by the device 410 are sent to the client device 402. In some specific embodiments, the DFS 406 may transmit multiple predetermined packets to the CS 408, such as multiple new connection flow requests (for example, requests related to a SYN), but it is not limited thereto. In other specific embodiments, the DFS 406 may notify the CS 408 that a packet has been received and delivered. In a non-limiting and non-exhaustive example, the DFS 406 may notify the CS 408 that an ACK has been received from the client device 402 and delivered to the server device 410. In at least one of the various specific embodiments, the DFS 406 may also provide multiple connections Stream updates and 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 whether the connection flow update is valid.
In at least one of the various embodiments, if a connection flow is driven from the DFS 406, the DFS 406 may send a driving message to the CS 408. In at least one of the various specific embodiments, if multiple new flows arrive and the capacity of the DFS 406 to handle the new connection flow is exceeded, the DFS 406 can drive a connection flow. In at least one of the various embodiments, if the high-speed stream cache used to store flow control data has exceeded its capacity to store the flow control data for the new connection streams, the DFS 406 To drive away. In at least one of the various embodiments, the driving messages sent from the DFS 406 to the CS 408 may contain enough information to fully identify the connection flow (for example, multiple terminals, ports, serial Number, stream status, or other similar information).
In at least one of the various embodiments, the CS 408 can receive and deliver multiple packets related to the driven connection flows, thereby achieving certain functions of the DFS 406. In at least one of the various embodiments, if the CS 408 determines that the connection flows are managed by the CS 408, or if the CS 408 decides that more information is needed to determine whether the connection flow should When being offloaded to the DFS 406, some new connection flows may not be offloaded to the DFS 406.
Although the PTMD 404 describes that the DFS 406 and the CS 408 are two parts of a single PTMD 404, the present invention is not limited thereby. Rather, in some specific embodiments, the DFS 406 and the CS 408 may be the same PTMD 404 Two functional blocks in the middle (that is, in the same base/computing device). In other specific embodiments, the DFS 406 may be implemented by one or more bases/computing devices, which is different from the one or more bases/computing devices used to implement the CS 408. In other specific embodiments, the CS 408 may be a module inserted into the DFS 406. In addition, the present invention also contemplates that any function of the DFS 406 and/or the CS 408 can be implemented in software and/or hardware, respectively.
The fourth figure B describes a system diagram, which generally illustrates a specific embodiment of a system with a packet flow management device located between the client devices and the server devices. The system 400B may include a packet traffic management device (PTMD) 404 located between the client devices 402-403 and the server-side 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 in the first figure. The server-side devices 410-411 may include Server_1 to Server_N, which may include one or more server-side devices, such as the server-side devices 110-111 in the first figure.
In a specific embodiment, the PTMD 404 may be a specific embodiment of the PTMD 404 in FIG. 4. The PTMD 404 may include multiple data stream sections (DFS) 406-407 and multiple control sections (CS) 408-409. The DFS 406 to 407 may include a plurality of data stream sections, each of which may be a specific embodiment of the DFS 406 in FIG. 4A. The CSs 408 to 409 may include a plurality of control flow sections, each of which may be a specific embodiment of the CS 408 in FIG. 4.
In some embodiments, the client devices 402-403 and the The data communicated between the server-side devices 410-411 can flow through one or more data stream sections 406-407. In a specific embodiment, the data from the client devices 402-403 can flow through a first DFS, such as the DFS 406, and the data from the server devices 110-111 can flow through a first DFS. Two DFS, like the DFS 407.
In at least one of the various embodiments, one or more data stream sections of the DFS 406-407 communicate with one or more control sections of the CS 408-409. Similarly, one or more control sections of the CS 408~409 can communicate with one or more data stream sections of the DFS 406~407. In some specific embodiments, each control section of the CS 408-409 can communicate with other control sections of the CS 408-409 (not shown). In other specific embodiments, each data stream section of the DFS 406-407 can communicate with other data stream sections of the DFS 406-407 (not shown).
Similarly, in at least one of the various specific embodiments, multiple connection flows can be separated into multiple flow parts according to the direction in which the network packet moves. In at least one of the various embodiments, the network packets from the client can be regarded as a different connection flow, and the network packets from a server and directed to a client Network packets can be viewed as a different connection flow. In at least one of the various embodiments, this method can be optimized based on the total network packet traffic of a particular split connection flow. In at least one specific embodiment of various specific embodiments, this can enable the upload and download direction part of the connection stream to span the CS 408~409 and the CS 408~409 according to the characteristics of the upload and download part of the connection stream. Wait for DFS 406~407 to split. For example, in at least one of the various specific embodiments In an embodiment, downloading a streaming video may be a very asymmetric operation, which has many network packets downloaded to the client, but few network packets uploaded to it. In at least one of the various embodiments, the upload and download part of the connection stream in the download direction can make one part use the DFS and a high-speed stream cache, and the other part can be used by the CS It is optimized separately in the way of lower efficiency (less expensive) resource processing.
The fifth figure describes a specific embodiment for establishing a connection flow and unloading the new connection flow to a sequence of the data flow segment (DFS). The sequence 500 illustrates a specific embodiment using the TCP/IP network communication protocol, but those skilled in the art will appreciate that the sequence diagram (or similar sequence) can generally be applied to other handshake protocols ( Handshaking) sequence of other network communication protocols. Similarly, although the sequence 500 depicts a sequence including a client, a DFS, a CS, and an application server, in at least one of the various embodiments, one or more data stream segments , The control section, the client and the server can all join the handshake agreement and participate in the unloading operation of the connection flow. Similarly, in at least one of the various embodiments, the connection streams can be split into upload and download parts of a connection stream, each of which represents a direction of the connection stream.
In at least one of the various embodiments, if a client starts to connect with a network resource managed by a PTMD, as if it is managed by the PTMD 109, the sequence 500 starts at step 502. If the client can start the connection using TCP/IP, it can send a SYN packet to the PTMD.
In step 504, a SYN packet may be received at a DFS, and the DFS It is part of a PTMD. In at least one of the various embodiments, in step 506, because the DFS can determine that the source connection represents a new connection flow, the DFS can deliver the SYN packet to a CS. In step 506, a CS may check the connection flow, and may determine appropriate flow control data representing the new flow, and send it to the DFS. In at least one of the various embodiments, the CS may apply one or more stored rules to determine the flow control data for the new network connection flow. In at least one of the various embodiments, the stored rules can implement multiple network traffic management services, such as load balancing, application access control, or other similar services.
In at least one of the various embodiments, in step 508, the DFS may receive the flow control data from the CS, and store the flow control data in a high-speed streaming cache. In at least one of the various embodiments, the flow control data can be used by the DFS to transfer the SYN packet to an appropriate server and/or guided by the flow control data that may be provided by the CS Network resources.
In at least one of the various embodiments, in step 510, a server and/or network resource can receive the SYN packet and can send a SYN_ACK packet to the DFS in response. In at least one of the various embodiments, in step 512, the DFS can reuse 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.
In at least one of the various embodiments, in step 514, the client device that transmits the initial SYN packet can receive the corresponding SYN_ACK, then can respond with an ACK packet. In at least one of the various embodiments, in step 516, the stored flow control data is used to determine the network path to the server, and the DFS can transmit the ACK packet to the server.
In at least one of the various embodiments, in step 518, the server may receive the ACK packet corresponding to the client device. After the ACK has been received, the network connection flow is in an established state. In at least one of the various embodiments, between steps 520-524, using the established network connection flow, the server can begin to exchange application data with the client. In at least one of the various embodiments, for each data exchange of the data at this time, the DFS can use the flow control data stored in the high-speed stream cache to execute the applications The mapping between the server and the client to distribute the packets on the correct path to maintain the connection flow.
<b><u style="single">General operation</u></b>
Fig. 6 shows a flowchart illustrating the procedure of packet flow management according to at least one specific embodiment of the various specific embodiments. In the process 600, after the initial block, in block 602, a network packet is received by a DFS. In at least one of the various embodiments, the network packets may be received from the network 108, and/or may be transmitted through multiple networks, switches, routers, other PTMDs, or other similar devices .
At the decision block 604, in at least one of the various embodiments, if the received network packet is related to a new connection flow, the program control moves to block 606. Otherwise in at least one of the various specific embodiments In the example, the program control moves to the decision block 608.
In at least one of the various embodiments, a DFS can check the connection stream and compare it with the stream control data stored in a high-speed stream cache. In at least one of the various embodiments, tuples related to the network packet can be checked to determine whether the network packet is part of a new connection flow. If no tuple corresponding to the source network packet is found in the high-speed stream cache, the DFS can determine that the network packet is part of a new connection stream.
In block 606, in at least one of the various embodiments, the source network packet related to a new connection flow can be transmitted to a CS for further processing. In at least one of the various embodiments, a command bus can be used to send the source network packet to a CS, which enables the DFS and the CS component to exchange data and messages. Then, the program control moves to the decision block 614.
In decision block 608, in at least one of the various embodiments, if flow control data representing the connection flow related to the network packet is available, then program control moves to block 610. Otherwise, in at least one of the various embodiments, the program control moves to block 612.
In block 610, in at least one of the 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 connection flow associated with the network packet , The network packet-associated connection stream can be stored in the high-speed stream cache related to the DFS. Then, in at least one of the various embodiments, the program control moves to the decision block 614.
In block 612, in at least one of the various embodiments In, the network packet with a previously visible tuple is stored in a buffer of the DFS until flow control data is provided by the CS.
In at least one of the various embodiments, a received network packet may be related to a connection flow that has been previously observed. However, in at least one of the various embodiments, if the flow control data from the CS cannot be used, the DFS can store the network packets related to the connection flow in a buffer until the CS Until the relevant flow control data is received.
Similarly, in at least one of the various embodiments, multiple source network packets related to unknown and/or multiple new connection flows can be delivered to the CS for buffering instead of being performed on the DFS Buffer until the CS establishes a first-class control data decision.
In the decision block 614, in at least one of the various embodiments, if there are more source network packets, the program control returns to block 602. Otherwise, in at least one of the various embodiments, the program control can return to a calling program.
The seventh figure illustrates a flowchart illustrating a procedure of processing multiple new connection flows at a DFS according to at least one specific embodiment of the various specific embodiments. After the initial block, in block 702, a DFS device can receive new flow control data from a CS. In at least one of the various embodiments, if new flow control data is received, the DFS can store the flow data in a high-speed streaming cache.
In at least one of the various specific embodiments, the new flow Control data can be sent to the DFS as part of a "new flow" control message sent from the CS to the DFS.
In decision block 704, in at least one of the various embodiments, if the DFS high-speed stream cache is full, program control moves to block 706. Otherwise, in at least one of the various embodiments, the program control moves to block 708.
In at least one of the various embodiments, the high-speed stream cache can be implemented as a hash method, so a hash key can be generated for each new connection stream according to the multiple properties of the connection stream. Properties like tuples, CS generated connection identifiers, SYN small text files or other similar properties. In at least one of the various embodiments, if the range of the hash key (the number of unique values) is greater than the number of the slots in the high-speed stream cache, the hash key can be truncated, so the hash key The number of numerical probabilities can then be equal to or approximate to the number of slots in the high-speed stream cache. In at least one of the various embodiments, truncation of the hash key may increase the number of collisions of the hash key. If in at least one of the various embodiments, a new connection stream hash key forms a hash key conflict, the connection stream currently in the cache can be driven (for example, to remove it from the high-speed cache). Flow control data, and the responsibility of managing the flow is transferred to the CS) to provide a new connection flow space.
In block 706, in at least one of the various embodiments, in order to provide space for the new flow control data received from the CS, it may be removed (eg, driven) from the DFS high-speed stream cache. The flow control data of the previously cached connection stream. In at least one of the various specific embodiments, the DFS may transmit the CS is a control message indicating that a connection flow has been driven from the DFS, and the related flow control data needs to be removed from the DFS high-speed flow cache. In at least one of the various embodiments, the drive message may include multiple information, such as the number of packets sent or received through the network stream, the usage time of the network stream, tuple information, or other information. Similar information. In at least one of the various embodiments, the control message sent to the CS may contain enough information for the CS to recognize the network flow driven from the DFS.
In block 708, in at least one of the various embodiments, the flow control data related to the new connection flow may be stored in the DFS high-speed flow cache. In at least one of the various embodiments, the flow control data can be stored in one or more components of the DFS, and these components can be operated individually or combined into a high-speed streaming cache.
In block 710, in at least one of the various embodiments, the DFS may use the flow control data related to the connection flow and stored in the high-speed flow cache to start processing with multiple known connections Multiple received network packets related to the flow.
Fig. 8 illustrates a flowchart illustrating a procedure 800 for processing multiple EVICT messages at a CS according to at least one specific embodiment of the various specific embodiments. After the initial block, in block 802, the CS can receive an EVICT message from a DFS.
In the decision block 804, in at least one of the various embodiments, if the driving message corresponds to a closing and/or terminating connection flow, the program controls The system then moves to block 806. Otherwise, in at least one of the various embodiments, the program control moves to block 808.
In block 806, in at least one of the various embodiments, the closed and/or terminated connection flow and the related flow control data may be discarded.
At block 808, in at least one of the various embodiments, the responsibility for managing the driven connection flow is transferred to the CS. In at least one of the various embodiments, multiple network packets received through the converted connection flow are processed by the CS.
In at least one of the various embodiments, the CS can store the flow control data of the driven connection stream in a local stream cache. In at least one of the various embodiments, the stream cache in the CS is configured to contain at least the same information as a plurality of related connection streams stored by the high-speed stream cache on the DFS.
In the decision block 810, in at least one of the various embodiments, if there are more driving messages to be processed, the program control returns to block 802. Otherwise, in at least one of the various embodiments, the program control returns to a calling program.
In at least one of the various embodiments, depending on the situation, a connection flow may be in one or more DFS, one or more CS, or partly in one or more CS and partly in one or more Processing on DFS. In at least one of the various embodiments, if a connection flow is already processed by the CS, a new flow network message cannot be received from the DFS. Similarly, if a DFS is processing a connection If the DFS can associate the source network traffic with a known connection flow, it is impossible to send a new streaming network message to the CS component. However, in at least one of the various specific embodiments, the CS can analyze each connection flow to determine whether the connection flow is driven from the DFS.
FIG. 9 illustrates a flowchart illustrating a procedure 900 for determining whether multiple connection streams are candidate connection streams to be downloaded to the data stream section according to at least one specific embodiment of the various specific embodiments. After the initial block, in block 902, in at least one of the various embodiments, the CS may receive a network packet related to a connection flow managed by the CS.
In at least one of the various specific embodiments, the multiple network packets received by the CS may be related multiple connection flows, and the connection flows are processed on the CS for its packet layer processing and management processing , Not by the DFS. In at least one of the various embodiments, when the CS processes the received packets at least according to the stored flow control data, additional actions can be performed to identify multiple hot connection flows.
In block 904, in at least one of the various embodiments, the CS may receive a flow status update (FSU) from a DFS. In at least one of the various embodiments, the FSU can receive asynchronously with respect to the network packets received by the CS. In at least one of the various embodiments, if an FSU cannot be used, the program control moves to block 906.
In block 906, in at least one specific embodiment of various specific embodiments , The CS can be updated to the statistical data maintained by the connection flow. In at least one of the various specific embodiments, it can be used for the connection flow tracking statistics directly managed by the CS, and the same can be used for the connection flow tracking statistics managed by the DFS (for example, The connection flow has been uninstalled).
In at least one of the 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 data bit rate, passing a period of time Data transmitted over time, data received over a period of time, or other similar metrics. In at least one of the various embodiments, the collected connection flow metrics are based on low-level network information derived from L1-L4 and higher-level network information derived from L5-L7 ( According to the Open Systems Interconnection (OSI) model).
In block 908, in at least one of the various specific embodiments, the CS may analyze the collected connection flow statistics, and may apply multiple related rules to identify multiple hot connection flows (see Figure 10 and Picture eleven). In at least one of the various specific embodiments, the CS may use at least one connection flow metric to determine each hot connection flow from the managed connection flows.
In at least one of the various specific embodiments, multiple rules can be defined, and the rules specify one or more specific sources, terminals, data formats, or other similar content to indicate that the system is a hot connection flow. Otherwise, in at least one of the various specific embodiments, multiple rules can be defined to adjust the priority of certain connection flows according to the flow type, source, endpoint, data form, or other similar content.
In at least one specific embodiment of the various specific embodiments, generally speaking, the same form of flow control policy rule formulation can be expanded to affect the identification and decision of how multiple connection flow systems are designated as hot connection flows.
In decision block 910, if multiple connection flows are identified to move from the CS to the DFS and/or from the DFS to the CS for processing, then the program control moves to block 912. Otherwise, in at least one of the various embodiments, the program control moves to the decision block 914.
In at least one of the various embodiments, the CS may use at least one connection flow metric to determine each hot connection flow among the managed connection flows.
In block 912, in at least one of the various embodiments, if multiple connection streams have been identified for movement, the CS may generate the related commands and/or messages to send to the appropriate CS and / Or DFS for processing. In at least one of the various embodiments, certain connection flows can be moved from a DFS to the CS for processing. In at least one of the various embodiments, the DFS can be used to process each determined thermal connection flow.
Similarly, in at least one specific embodiment of the various specific embodiments, some of the connection flows have been identified as thermal connection flows, which can be moved and/or unloaded to a DFS for processing to obtain at least one DFS has the advantages of higher performance/processing speed. Then, in at least one of the various specific embodiments, the program control can be moved to the decision block 914.
In decision block 914, in at least one specific implementation of various specific embodiments In the embodiment, if there are more available network packets, the program control returns to block 902. Otherwise, in at least one of the various specific embodiments, it returns to a calling procedure.
The tenth and eleventh figures describe various embodiments for identifying that a connection flow may be a thermal connection flow. Those with ordinary knowledge in the technical field to which the invention pertains will be able to understand that the technologies, parameters, and conditions used to identify the "hot connection flow" are based on the applications and operators managed by a PTMD at a specific time. The goals and priorities of the PTMD and multiple users of the PTMD vary. In at least one of the various specific embodiments, generally speaking, the conditions for identifying a thermal connection flow can be defined according to the application and the user goals, and if a connection flow property satisfies the condition, then Think of the connection flow as a thermal connection flow.
In at least one of the various specific embodiments, as a part of determining whether a connection stream is a candidate connection stream (for example, a hot connection stream) that is offloaded to the DFS for processing, the received network can be checked. The content of the road packet. In at least one of the various embodiments, the network packets are inspected to identify the data type and metadata, which can indicate that the connection flow, which may be a hot connection flow, may be one of the DFS components being offloaded Good candidate connection flow.
In at least one of the various embodiments, if the network packets are inspected, the CS can identify application layer protocol data, messages, or metadata to determine whether the related connection flow is a hot connection flow. For example, if a CS can identify that a connection flow uses HTTP, the CS can check multiple HTTP headers, such as Content-Type, Content-Length, Cache-Control or other similar tables. Head, to become the decision-making part of whether a connection flow is a hot connection flow.
In at least one of the various embodiments, if it is determined that a network packet is a first packet of an HTTP response, a content length value provided by the server that transmits the HTTP response can be used. In at least one of the various embodiments, the HTTP content length value may indicate the number of the network packets, which may be used to transmit the complete HTTP response from the server. For example, in at least one specific embodiment of various specific embodiments, if the content length value indicates that the response uses a single network packet, the related connection flow is not a candidate connection flow for offloading to the DFS. Because this response is not expected to have other additional packets. On the other hand, in at least one of the various specific embodiments, if the content length value indicates that there are more network packets on the road for the same response, it can be determined that the connection flow is for offloading. One candidate connection flow to the DFS element. In at least one of the various specific embodiments, the content length value may be associated with the possibility of unloading a connection stream to a DFS (for example, an increase in the content length value results in a chance of unloading the connection stream to the DFS Increase).
In at least one specific embodiment of the various specific embodiments, in some cases, the operating characteristics of a connection flow may be significantly different. For example, in at least one of the various embodiments, if the content/communication is not uniform, the data bit rate of a connection may have a tendency to burst. Therefore, in at least one specific embodiment of various specific embodiments, once a connection flow is determined to be a good offload candidate connection flow (causing possible offloading to the DFS), it may be based on the instant situation and/or the subsequent communication. Feature, and was immediately determined as a poor offload candidate connection flow (causing possible The DFS is removed).
In at least one of the various specific embodiments, a connection stream can be repeated back and forth between processing on the DFS and processing on the CS, or processing again. In at least one of the various specific embodiments, the loop may be performed at least according to the variability of the operation characteristics of the connection flow. In at least one of the various embodiments, this at least takes advantage of the degree of variation in the operation of the connection flow, so that the performance of the connection flow and the utilization of the DFS are continuously optimized.
For example, in at least one specific embodiment of various specific embodiments, when the network traffic passing through the connection flow becomes slow, the connection flow can be moved to the CS for processing. Similarly, in at least one of the various embodiments, when the network traffic passing through the connection flow increases, the connection flow can be moved to the DFS for processing.
In at least one of the various embodiments, the circulation of the connection flow between the CS and the DFS element can be performed one or more times during a communication period. Likewise, in at least one of the various specific embodiments, the cyclic operations performed by the CS and the DFS element can be seamless and invisible/opaque to both ends of the communication.
Figure 10 illustrates a flowchart illustrating a procedure 1000 for identifying multiple thermal connection flows according to at least one specific embodiment of the various specific embodiments. After the initial block, in the decision block 1002, in at least one specific embodiment of various specific embodiments, if the number of connection streams being processed in the PTMD is less than the capacity of the DFS, the program control returns to To the calling program. Otherwise, in at least one of the various embodiments, the program control moves to block 1004. In various tools In at least one specific embodiment of the physical embodiment, if the high-speed stream cache on the DFS has an unused capacity, both multiple hot connection streams and multiple "normal" connection streams can be processed on the DFS .
In block 1004, in at least one of the various embodiments, a plurality of connection streams can be sorted according to the total amount of data passed, exchanged, or communicated through the connection stream in at least a given time interval.
In at least one of the various embodiments, a variety of known data structures and sorting algorithms can be used to generate a table data structure, which can be based on the total amount of data passed through the connection flow in a time interval, Sort the connection flows in a logical order.
In block 1006, in at least one specific embodiment of various specific embodiments, a plurality of heat flow candidates may be determined and identified based on the top N flows according to the sorting order.
In at least one of the various embodiments, the rules related to determining/defining multiple thermal connection flows may include parameters such as "N" (for example, specifying how many first connection flows become thermal Connection flow). In at least one of the various embodiments, "N" can be determined according to a formula, which includes additional parameters, such as different values according to the connection flow form.
Then, the program control returns to a calling program.
FIG. 11 illustrates a flowchart illustrating a procedure 1100 for identifying multiple thermal connection flows according to at least one specific embodiment of the various specific embodiments. After the initial block, in the decision block 1102, in various specific embodiments In one more specific embodiment, if the number of connection streams being processed in the PTMD is less than the capacity of the DFS, the program control returns to the calling program. Otherwise, in at least one of the various embodiments, the program control moves to block 1104. In at least one of the various embodiments, if the high-speed stream cache on the DFS has an unused capacity, both multiple hot connection streams and multiple "general" connection streams can be on the DFS To process.
In block 1104, in at least one of the various embodiments, the median data bit rate of the connection streams being processed on the CS can be determined for use in predicting the possibility of being processed by the CS. One of the maximum number of this connection stream to be processed. For example, in at least one of the various embodiments, if the median data bit rate of the connection streams currently being processed on the CS is 1 million bits per second, and used The total bandwidth of the CS for processing the connection streams is 2000 million bits per second, and the maximum number of the connection streams that can be processed can be estimated to be 2000 connection streams (2000 million bits per second / 1 Million bits).
In block 1106, in at least one of the various specific embodiments, it is possible to identify the maximum number of connection streams that the CS can handle based on the top N-tile connection streams. Hot connection flow candidates. For example, in at least one of the various specific embodiments, if it is expected that a CS can handle 2000 connection streams, the top 25% of the connection streams (for the number of 500 connection streams) can be identified according to the data bit rate. ) Is the thermal connection flow. Then, in at least one of the various embodiments, the program control returns to a calling program.
It should be understood that these diagrams and such types can be implemented by computer program instructions. The combination of actions in the flow chart description. These program instructions can be provided to a processor to build a machine, so the instructions executed on the processor produce an action that implements the actions specified in the flowchart blocks. The computer program instructions can be executed by a processor to execute a series of operation actions by the processor to generate a computer-implemented program to implement the actions specified in the flowchart block or blocks. These program instructions can be stored on some machine-readable storage media, such as processor readable non-transitive storage media, or other similar media.
12 members in 6 offices
Priority claims10
| Document | Office | Kind | Date |
|---|---|---|---|
| 201261641251 | United States of America | P | |
| 201261641251 | United States of America | P | |
| 61641251 | United States of America | – | |
| 13802254 | United States of America | – | |
| 201313802254 | United States of America | A | |
| 201313802254 | United States of America | A | |
| 201261641251P | – | – | – |
| 201313802254 | – | – | – |
| US201261641251P | – | – | – |
| US201313802254 | – | – | – |
Members12
| Document | Office | Kind | |
|---|---|---|---|
| US2013294239A1 | United States of America | A1 | |
| WO2013165802A1 | World Intellectual Property Organization (WIPO) | A1 | |
| TW201347472AThis record | Taiwan Province of China | A | |
| CN104272652A | China | A | |
| EP2845348A1 | European Patent Office (EPO) | A1 | |
| EP2845348A4 | European Patent Office (EPO) | A4 | |
| HK1205837A | Hong Kong, China | A | |
| HK1205837A1 | Hong Kong, China | A1 | |
| US9338095B2 | United States of America | B2 | |
| US2016323185A1 | United States of America | A1 | |
| TWI591989B | Taiwan Province of China | B | |
| US9762492B2 | United States of America | B2 |
1 legal event, as the office reported them to INPADOC
Events
| Event | Code | |
|---|---|---|
| Annulment or lapse of patent due to non-payment of feesLapsedMM4A | MM4A |
Numbers
- Publication
- 201347472
- Publication, DOCDB
- 201347472
- Publication, EPODOC
- TW201347472
- Application
- 102112814
- Application, DOCDB
- 102112814
- Application, EPODOC
- TW20132112814
Titles4
- English
- DATA FLOW SEGMENT OPTIMIZED FOR HOT FLOWS
- Chinese
- 為熱流最佳化之資料流區段
- English
- DATA FLOW SEGMENT OPTIMIZED FOR HOT FLOWS
- English
- Data flow section optimized for heat flow
Classification
- CPC, 7
- H04L45/38
- H04L45/64
- H04L67/1001
- H04L47/10
- H04L47/12
- H04L69/169
- H04L69/22
- IPC, 1
- H04L12 801