This application is related to the following U.S. patent application(s), that are herein incorporated by reference in their entirety:
“System and Method of Updating Modules for Application or Content Identification,” filed on the same date even herewith, having inventor(s) Dennis Isao Oshiba, application Ser. No. 13/842,196.
The present invention relates generally to the determination of whether a session carries an identifiable type of network traffic, and more particularly to updating modules for performing such identification or to the creation of customized modules for such identification.
The importance and complexity of computer networks (such as the Internet) has grown exponentially over the past two decades, and such growth is likely to continue in the foreseeable future. As their size and complexity have increased, various types of traffic controllers, for the management of computer networks, have also found increasing importance.
Traffic controllers are known to be useful for a variety of purposes, including, but not limited to, bandwidth management. As part of performing their function, it is also known to be useful to identify the types of sessions that such traffic controllers are handling. For example, it can be useful to know that a session is being utilized by a particular type of application software (where “application software” can also be referred to herein, more simply, as an application). As another example, it can be useful to know that a session is carrying a particular type of content.
The techniques for identifying a particular type of network traffic can be encapsulated in a subsystem referred to herein as a “module.” The set of modules currently available to a traffic controller, for purposes of traffic type identification, can be referred to herein as a “collection.” A collection may be organized as a “library” of modules, or according to any other suitable form of organization.
Such collections are known to require updating for a variety of purposes and in a variety of ways. For example, an algorithm, by which a module identifies whether a session is being used by a particular type of network traffic, may be improved. In this case, an update of the module may be needed. As another example, a type of network traffic, not previously identified, can have an algorithm for its identification developed. This algorithm can be added, as an entirely new module, to a collection. Conversely, a type of network traffic, that is being identified by a module, may become obsolete. Thus, the module, for identification of this type of traffic, may need to be removed from a collection.
It would be desirable to improve the process by which a pre-existing (or “old”) collection of modules is replaced with an updated (or “new”) collection.
Traffic controllers are typically mass-produced, to serve the needs of a large group of customers. As such, traffic controllers are often sold with module collections that only identify types of network traffic that occur very frequently, across many types of customers.
It would be desirable to improve the ability of a single customer, or a relatively small group of customers, to have prepared modules that identify less-frequent types of traffic. For example, a customer may be the only organization to use its particular in-house software.
The accompanying drawings, that are incorporated in and constitute a part of this specification, illustrate several embodiments of the invention and, together with the description, serve to explain the principles of the invention:
Reference will now be made in detail to various embodiments of the invention, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts.
Please refer to Section 5 below (“Glossary of Selected Terms”) for the definition of selected terms used below.
The term “session,” as utilized herein, is understood very broadly (see definition in below Glossary of Selected Terms).
With respect to the network traffic that is carried by a session, the determination of its type can be referred to herein as “classification.” The expertise for performing a classification can be encapsulated in a module. The term “module” as utilized herein is (as with a session) also understood very broadly (see definition in below Glossary of Selected Terms).
A module for performing classification can be referred to herein as a “classification module” or CM. The inventive techniques presented herein focus on two main areas:
With respect to the latter, of the two above-listed areas, certain programming language constructs are herein introduced. Incorporation into a programming language, of one or more of these constructs, is defined to result in a programming language referred to herein as a “Classification Module Language” or CML. A CML facilitates the writing of a CM customized to identify network traffic that is peculiar to a particular user, or to a relatively small group of users. For example, a company may have one or more in-house applications that are unique to that company.
The example CML presented herein is called CML_Tcl. (For a correspondence, between CML_Tcl and products of A10 NETWORKS, see the below Glossary of Selected Terms.) CML_Tcl is based upon the “Tcl” programming language (please see Glossary for further identification of Tcl). Also, the pseudo-code presented herein, used to illustrate example implementations of some CML constructs, is itself loosely based upon CML_Tcl and uses some CML constructs. In particular, a key construct of a CML is that it is event driven. The syntax presented herein, for having code event driven, is the same for both CML_Tcl and the pseudo-code. A “when” command is used, that has the following structure:
The above “when” statement is triggered by an event generically referred to as EVENT_NAME (the convention is followed herein of naming an event in all capitals). The entire body of the “when” can also be referred to herein as the “EVENT_NAME procedure.”
An example network environment, for a traffic controller (Traffic Controller 120), is shown in
An example interior structure for a traffic controller (such as Traffic Controller 120) is shown in
When not classifying sessions, the operation of Traffic Controller 120 can be understood by reference to its Session Table 210 and Action Table 220. Example interior structures, for Session Table 210 and Action Table 220, are shown in
A session can often be distinguished, from other sessions, by its values for the following 5-tuple:
However identified, each session is typically represented by its own instance of a data structure, referred to herein as a “Session Record.”
As an example, row 370 of Session Table 210 depicts a Session Record with the following values:
The TID's assigned to a session can be used, as follows, to effect a traffic controller's handling of the packets it receives:
For example, suppose the operator of a traffic controller is a company called “CableTV Inc.,” that provides cable television service. Assume CableTV Inc. has its own in-house application software called “CableTV_1.” Further suppose that the company has at least the two following goals regarding its software:
Action Table 220 shows two example entries, 375 and 376, that have been configured by CableTV Inc. (These entries can be configured by CableTV Inc. using any suitable interface, as provided by the producer of traffic controller 120. Suitable interfaces can include, but are not limited to, a Graphical User Interface or Command Line Interface.) In accordance with action 375, each packet identified as type TID_1 is handled with a quality of service level called “QoS_1” (which we will assume, for CableTV Inc., represents its highest priority network usage). In accordance with action 376, each packet identified as type TID_2 is identified as “CableTV_1” (which we will assume, for CableTV Inc., means the packet will be reported as being associated with application CableTV_1).
Thus, if sessions with CableTV Inc.'s data center that utilize CableTV_1 can be classified with TID's TID_1 and TID_2, the company's goals, for usage of this particular item of in-house software, can be realized.
The specification, for how sessions are to be classified, can be organized as a collection of classification rules. In general, a classification rule is comprised of the following two main sections:
Each rule can be represented as an instance of a data structure, referred to herein as a “Rule Record.” Each Rule Record can be stored as an entry in a Rule Table, such as Rule Table 230 of
The identification to be added, if the rule's trigger conditions are satisfied, is specified by TID field 233.
For the time being, we will assume that the goals of CableTV Inc. can be met with rules that only use criteria of L4.
Example session 370, of Session Table 210 of
The specification of classification rules by a user, such as the specification of rules 380 and 381, can be accomplished using any suitable interface, as provided by the producer of traffic controller 120. As already introduced above, suitable interfaces can include, but are not limited to, a Graphical User Interface (or GUI) or Command Line Interface (or CLI).
The example presented in the previous section, of CableTV Inc. taking certain actions with regard to packets generated by use of its in-house software CableTV_1, assumes that a session (i.e., the session with SID “SID_1”) was able to be classified with criteria≦L4. If that is not the case, and criteria above L4 are needed, under conventional scenarios, CableTV Inc. may not have attractive options.
As has been discussed above, traffic controllers are typically mass-produced, to serve the needs of a large group of customers. As such, traffic controllers are often sold with classification module collections (or CM collections) only designed to identify traffic types occurring very frequently, across many types of customers. Thus, it is unlikely the traffic-controller provider has a classification module designed specifically for CableTV Inc.'s in-house software.
Conventional options for CableTV Inc. typically include the following:
This section presents certain programming language constructs that make it easier for a traffic controller user, such as CableTV Inc., to write its own classification module. As discussed above, a programming language with one or more of these constructs is referred to herein as a Classification Module Language or CML. As such, a CML provides a kind of midpoint, between the levels of technical skill required by the two above-described conventional options.
Continuing with the example of CableTV Inc., we will assume they have at least two different types of users of its data center and networks:
Relative to the end-users, the administrative users can be expected to be much more technologically knowledgeable. Administrative users typically have responsibilities that include the following:
In contrast, end-users can often include persons with little or no technical background. Such end-users use software (through clients such as 110, 111, . . . 112), such as CableTV_1, as a kind of service, expecting the service to be available whenever needed. (Depending upon the user and/or situation, an administrative user and end-user can be the same person.)
In general, a CML is intended for use by administrative users.
As was also discussed above, the pseudo-code presented herein is itself loosely based on CML_Tcl. For example, it can be seen that the entire control procedure of
The first action the PACKET_RECEIVED procedure performs is referred to herein as “session-detection.” (In the pseudo-code, session-detection is performed by the call to procedure session_detection, line 10,
Regardless of whether p_1 is the start or continuation of a session, session_detection causes s_1 to refer to such session. It is also useful to determine whether the just-received packet is the final packet of a session. In the case of session_detection, this is indicated by the setting of the variable s_over to true (line 10).
The beginning of a new session can be identified in any suitable way. In some cases, it can be identified by extracting the following 5-tuple from p_1:
The extracted 5-tuple can then be compared to each Session Record of Session Table 210. If no match is found, to a pre-existing Session Record, a new Session Record is created and added to the Session Table.
Before p_1 is processed according to the Traffic ID's of its Session Record, p_1 itself is first subjected to classification, since it could effect the Traffic ID's. At least some of the classification modules of CM collection 201 are assumed to be written in a CML, such as CML_Tcl.
In addition to being event driven, another key aspect of a CML are the types of events by which it can be triggered. Three important event types, that can trigger a classification module, are shown in
Another key aspect of a CML is that it be capable of keeping state information, at least between the events of a single session. This is because identification of the type of traffic carried by the session can require the examination of multiple packets. A primary function of the RULE_INIT event is to initialize such state. At least three different types of state can be defined:
Focused-upon herein is intra-session persistent state, since that is the type of state most commonly used. An example syntax for declaring, respectively, each of the three above-listed types of states is presented in the below example “when” statement (the below also referred to herein as Example_2):
Above Example_2 initializes each variable using the Tcl “set” statement. The syntax of each of the above-initialized variables is explained, respectively, as follows:
Each module begins with a statement, called Module_Name, used to assign it a unique ID. This unique ID is also referred to herein as a “classification module ID” or “CMID.” Modules 280, 281, and 282 are each given, respectively, the following CMID's: CM_ID_1, CM_ID_2, and CM_ID_3. Module 280 consists of three “when” statements, each triggered, in order from top to bottom, by the following event: RULE_INIT, CLIENT_DATA, and SERVER_DATA. The body of code, within each “when” statement, is not shown. Module 281 consists of two “when” statements: RULE_INIT and CLIENT_DATA (once again, the body of code within each “when” statement is not shown). Module 282 does not need persistent state, in order to accomplish its form of classification, and so a “when” statement triggered by RULE_INIT is not needed. Module 282 happens to include two “when” statements both triggered by the SERVER_DATA event.
If, for example, module 280 were written by CableTV Inc. in CML_Tcl, in order to identify packets of its software CableTV_1, then suitable classification rules for achieving CableTV Inc.'s goals are shown in
Interpretation of a RULE_INIT event, when included as part of a classification module, is accomplished by lines 12-29 of
Each classification module is iterated over (line 13). For the current CM (called cm_1 in the pseudo-code), it is tested (line 14) for whether it contains functionality triggered by a RULE_INIT type event. For example, if the classification module is written in CML_Tcl, such functionality can be specified by a “when” statement that identifies RULE_INIT as its triggering event. If RULE_INIT functionality is present in cm_1, each of the three above-listed types of state can be processed. The result of processing declarations of state can be represented by state tables, such as State Tables 240 of
Each state table has records added by one of the three following “for” loops of
Regardless of whether the latest packet p_1 represents a RULE_INIT type event, it needs to be tested for whether it is an event of type CLIENT_DATA or SERVER— DATA. Testing, for these event types, is called event-detection. For the PACKET_RECEIVED procedure, event-detection is performed by a call to event_detection (
By the time event_detection is executed, the following is known:
The pseudo-code of
Each classification rule (such as a row of Rule Table 230 as shown in either of
Depending on which of these tests is satisfied, the appropriate portion of cm_1 is executed:
During the execution of either type of “when” statement, variables can be accessed that require intra-module persistent state or globally persistent state (the possibility is mentioned in the comments of lines 14 and 19). As discussed above, for each such variable, with a VID v_1, intra-module persistent state can be accessed with cm_1. CMID and v_1 (applied to, for example, an Intra-Module Table 310) or globally persistent state can be accessed with v_1 (applied to, for example, Global Table 320).
Even if a triggering event for a cm_1 of an r_1 has occurred, it may be the case that cm_1 has already successfully executed for session s_1. In that case, it can be desirable to block cm_1 from executing again with respect to the same session. This type of blocking, of repeated execution of a classification module with respect to a particular session, can be referred to herein as “Blocking-type Execution.” Shown in square brackets, on each of lines 12-13 and 17-18, is the additional test that can be performed as part of adding Blocking-type Execution. These tests check for whether the “state under s_1. SID and cm_1. CMID allows execution.”
For either a CLIENT_DATA or SERVER_DATA type event, if the classification module executes successfully (tested by line 22), the following is applicable:
In terms of the example CML_Tcl, the successful execution of a CM can be specified by programming-in the execution of a particular statement. An example statement that could be executed is the following:
For the current rule r_1, if a test of it (by line 10) indicates that it does not use a classifier module, then r_1 can be tested for whether it satisfies some other criteria. For example, as shown at line 27 of
Having made sure that any necessary updates to current session s_1 have been performed, packet p_1 can be processed in accordance with the Traffic ID's of s_1. In the pseudo-code, such packet processing is performed by invoking packet_process at line 30,
If p_1 is the last packet of a session (tested by line 1,
At this point, processing of latest-received packet p_1 is complete.
As discussed above in Section 1 (“Introduction”), the inventive techniques presented herein focus on two main areas:
Having now covered major aspects of the latter of the two above-listed areas, this section focuses on the former.
Continuing with Example_1, until an updated CM collection is loaded, the PACKET_RECEIVED procedure of
At some point in time, an updated CM collection is loaded, and is referred to herein as CM collection 202. Each time an updated CM collection is loaded, the COLLECTION_LOADED procedure of
As each packet p_1 is received by the traffic controller, for so long as the transitioning_flag remains true, any one of the following actions can be done:
Having presented an overview of the process, the pseudo-code of
First, session-detection is performed at line 10,
Regardless of whether the latest packet p_1 represents the start of a new session, events of type CLIENT_DATA or SERVER_DATA are tested-for next (see call to event_detection, line 21,
The Rule Records (such as those of
Packet processing is performed next, and the pseudo-code for that (see
The pseudo-code of
If the test of line 3 indicates that transitioning between CM collections is not in process, the ending of a session simply means (other than flushing the session) that the number of old sessions is decremented (line 19).
The pseudo-code of
If transitioning is in effect (tested by line 2), the following steps can be performed:
If the transitioning of s_1 means that all old sessions have either transitioned or ended, as determined by comparing num_old_sessions to zero (
4.1 Computing Equipment
With regard to any of the computing systems described herein, such as client computers, a traffic controller, network equipment, and/or a data center, any type of non-volatile media (e.g., a hard drive, solid-state drive, CD-ROM, or DVD) can be included.
Any reference above to information stored in a “table” can also be understood to refer to the use of a database, organized according to any of the techniques known in the art, in accordance with the needs of a particular application.
Computer systems that require interactivity with a user can be equipped with any of the known user interface devices, as is appropriate for the particular application, including, but not limited to: a monitor for visual display (with or without touch screen capability), a keyboard, and a mouse (or any other form of pointing device).
In accordance with what is ordinarily known by those in the art, the computers specified herein contain computational hardware (e.g., integrated circuits), and programmable memories (volatile and/or non-volatile), of various types.
The kind of information described herein (such as data and/or instructions), that is on computer-readable media and/or programmable memories, can be stored on computer-readable code devices embodied therein. A computer-readable code device can represent that portion of a memory in which a defined unit of information (such as a bit) can be stored and/or from which a defined unit of information can be retrieved.
While the invention has been described in conjunction with specific embodiments, it is evident that many alternatives, modifications and variations will be apparent in light of the foregoing description. Accordingly, the invention is intended to embrace all such alternatives, modifications and variations as fall within the spirit and scope of the appended claims and equivalents.
Number | Name | Date | Kind |
---|---|---|---|
4001819 | Wise | Jan 1977 | A |
4780905 | Cruts et al. | Oct 1988 | A |
5101402 | Chiu et al. | Mar 1992 | A |
5163088 | LoCascio | Nov 1992 | A |
5359659 | Rosenthal | Oct 1994 | A |
5414833 | Hershey et al. | May 1995 | A |
5584023 | Hsu | Dec 1996 | A |
5684875 | Ellenberger | Nov 1997 | A |
5757908 | Cooper et al. | May 1998 | A |
5940002 | Finn et al. | Aug 1999 | A |
5960177 | Tanno | Sep 1999 | A |
6088804 | Hill et al. | Jul 2000 | A |
6119236 | Shipley | Sep 2000 | A |
6185681 | Zizzi | Feb 2001 | B1 |
6205115 | Ikebe et al. | Mar 2001 | B1 |
6237036 | Ueno et al. | May 2001 | B1 |
6249866 | Brundrett et al. | Jun 2001 | B1 |
6259789 | Paone | Jul 2001 | B1 |
6304975 | Shipley | Oct 2001 | B1 |
6324286 | Lai et al. | Nov 2001 | B1 |
6347376 | Attwood et al. | Feb 2002 | B1 |
6363486 | Knapton, III | Mar 2002 | B1 |
6449651 | Dorfman et al. | Sep 2002 | B1 |
6505192 | Godwin et al. | Jan 2003 | B1 |
6519703 | Joyce | Feb 2003 | B1 |
6594780 | Shen et al. | Jul 2003 | B1 |
6715081 | Attwood et al. | Mar 2004 | B1 |
6732279 | Hoffman | May 2004 | B2 |
6735702 | Yavatkar et al. | May 2004 | B1 |
6754832 | Godwin et al. | Jun 2004 | B1 |
6757822 | Feiertag et al. | Jun 2004 | B1 |
6779117 | Wells | Aug 2004 | B1 |
6988106 | Enderwick et al. | Jan 2006 | B2 |
7092357 | Ye | Aug 2006 | B1 |
7159237 | Schneier et al. | Jan 2007 | B2 |
7194766 | Noehring et al. | Mar 2007 | B2 |
7200760 | Riebe et al. | Apr 2007 | B2 |
7221757 | Alao | May 2007 | B2 |
7222366 | Bruton, III et al. | May 2007 | B2 |
7296283 | Hrastar et al. | Nov 2007 | B2 |
7392241 | Lin et al. | Jun 2008 | B2 |
7409712 | Brooks et al. | Aug 2008 | B1 |
7418733 | Connary et al. | Aug 2008 | B2 |
7543052 | Cesa Klein | Jun 2009 | B1 |
7565549 | Satterlee et al. | Jul 2009 | B2 |
7577833 | Lai | Aug 2009 | B2 |
7596695 | Liao et al. | Sep 2009 | B2 |
7620733 | Tzakikario et al. | Nov 2009 | B1 |
7640591 | Tripathi et al. | Dec 2009 | B1 |
7653633 | Villella et al. | Jan 2010 | B2 |
7665138 | Song et al. | Feb 2010 | B2 |
7739494 | McCorkendale et al. | Jun 2010 | B1 |
7739736 | Tripathi et al. | Jun 2010 | B1 |
7809131 | Njemanze et al. | Oct 2010 | B1 |
7895649 | Brook et al. | Feb 2011 | B1 |
7925766 | Jayawardena et al. | Apr 2011 | B2 |
7953855 | Jayawardena et al. | May 2011 | B2 |
8037532 | Haswell | Oct 2011 | B2 |
8089871 | Iloglu et al. | Jan 2012 | B2 |
8220056 | Owens, Jr. | Jul 2012 | B2 |
8239670 | Kaufman et al. | Aug 2012 | B1 |
8276203 | Nakhre et al. | Sep 2012 | B2 |
8286227 | Zheng | Oct 2012 | B1 |
8289981 | Wei et al. | Oct 2012 | B1 |
8301802 | Wei et al. | Oct 2012 | B2 |
8448245 | Banerjee et al. | May 2013 | B2 |
8478708 | Larcom | Jul 2013 | B1 |
8595845 | Basavapatna et al. | Nov 2013 | B2 |
8719446 | Spatscheck et al. | May 2014 | B2 |
8800034 | McHugh et al. | Aug 2014 | B2 |
8806011 | Graham-Cumming | Aug 2014 | B1 |
8813228 | Magee et al. | Aug 2014 | B2 |
8832832 | Visbal | Sep 2014 | B1 |
8881284 | Gabriel | Nov 2014 | B1 |
8948380 | Goto | Feb 2015 | B2 |
9129116 | Wiltzius | Sep 2015 | B1 |
9215208 | Fraize et al. | Dec 2015 | B2 |
9294503 | Thompson et al. | Mar 2016 | B2 |
20010042204 | Blaker et al. | Nov 2001 | A1 |
20020087708 | Low et al. | Jul 2002 | A1 |
20020108059 | Canion et al. | Aug 2002 | A1 |
20020165912 | Wenocur et al. | Nov 2002 | A1 |
20020188839 | Noehring et al. | Dec 2002 | A1 |
20030023846 | Krishna et al. | Jan 2003 | A1 |
20030028585 | Yeager et al. | Feb 2003 | A1 |
20030061507 | Xiong et al. | Mar 2003 | A1 |
20030069973 | Ganesan et al. | Apr 2003 | A1 |
20030123667 | Weber et al. | Jul 2003 | A1 |
20030135625 | Fontes et al. | Jul 2003 | A1 |
20030187688 | Fey et al. | Oct 2003 | A1 |
20030196081 | Savarda et al. | Oct 2003 | A1 |
20030200456 | Cyr et al. | Oct 2003 | A1 |
20040008711 | Lahti et al. | Jan 2004 | A1 |
20040054807 | Harvey et al. | Mar 2004 | A1 |
20040057579 | Fahrny | Mar 2004 | A1 |
20040059943 | Marquet et al. | Mar 2004 | A1 |
20040059951 | Pinkas et al. | Mar 2004 | A1 |
20040059952 | Newport et al. | Mar 2004 | A1 |
20040091114 | Carter et al. | May 2004 | A1 |
20040093524 | Sakai | May 2004 | A1 |
20040111635 | Boivie et al. | Jun 2004 | A1 |
20040143751 | Peikari | Jul 2004 | A1 |
20040148520 | Talpade et al. | Jul 2004 | A1 |
20040172538 | Satoh et al. | Sep 2004 | A1 |
20040242200 | Maeoka et al. | Dec 2004 | A1 |
20050021999 | Touitou et al. | Jan 2005 | A1 |
20050036501 | Chung et al. | Feb 2005 | A1 |
20050041584 | Lau et al. | Feb 2005 | A1 |
20050044068 | Lin et al. | Feb 2005 | A1 |
20050044270 | Grove et al. | Feb 2005 | A1 |
20050044352 | Pazi et al. | Feb 2005 | A1 |
20050108434 | Witchey | May 2005 | A1 |
20050125684 | Schmidt | Jun 2005 | A1 |
20050180416 | Jayawardena et al. | Aug 2005 | A1 |
20050193199 | Asokan et al. | Sep 2005 | A1 |
20050198099 | Motsinger et al. | Sep 2005 | A1 |
20050210243 | Archard et al. | Sep 2005 | A1 |
20050235145 | Slick et al. | Oct 2005 | A1 |
20050257093 | Johnson et al. | Nov 2005 | A1 |
20050278527 | Liao et al. | Dec 2005 | A1 |
20060056297 | Bryson | Mar 2006 | A1 |
20060061507 | Mohamadi | Mar 2006 | A1 |
20060143707 | Song et al. | Jun 2006 | A1 |
20060185014 | Spatscheck et al. | Aug 2006 | A1 |
20060206936 | Liang et al. | Sep 2006 | A1 |
20060212522 | Walter et al. | Sep 2006 | A1 |
20060230444 | Iloglu et al. | Oct 2006 | A1 |
20060251057 | Kwon et al. | Nov 2006 | A1 |
20060253902 | Rabadan et al. | Nov 2006 | A1 |
20060256716 | Caci | Nov 2006 | A1 |
20060265585 | Lai | Nov 2006 | A1 |
20060288411 | Garg et al. | Dec 2006 | A1 |
20070056038 | Lok | Mar 2007 | A1 |
20070073660 | Quinlan | Mar 2007 | A1 |
20070143769 | Bu et al. | Jun 2007 | A1 |
20070169194 | Church et al. | Jul 2007 | A1 |
20070186282 | Jenkins | Aug 2007 | A1 |
20070214088 | Graham et al. | Sep 2007 | A1 |
20070280114 | Chao et al. | Dec 2007 | A1 |
20070291773 | Khan et al. | Dec 2007 | A1 |
20080183885 | Durrey | Jul 2008 | A1 |
20080229418 | Chen et al. | Sep 2008 | A1 |
20080256623 | Worley et al. | Oct 2008 | A1 |
20090049198 | Blinn et al. | Feb 2009 | A1 |
20090070470 | Bauman et al. | Mar 2009 | A1 |
20090077663 | Sun et al. | Mar 2009 | A1 |
20090083537 | Larsen et al. | Mar 2009 | A1 |
20090150996 | Haswell | Jun 2009 | A1 |
20090168995 | Banga | Jul 2009 | A1 |
20090227228 | Hu et al. | Sep 2009 | A1 |
20090241190 | Todd et al. | Sep 2009 | A1 |
20090287941 | Shouno | Nov 2009 | A1 |
20100106833 | Banerjee et al. | Apr 2010 | A1 |
20100138921 | Na et al. | Jun 2010 | A1 |
20100284300 | Deshpande | Nov 2010 | A1 |
20100286998 | Picken | Nov 2010 | A1 |
20110026537 | Kolhi et al. | Feb 2011 | A1 |
20110029599 | Pulleyn et al. | Feb 2011 | A1 |
20110082947 | Szeto et al. | Apr 2011 | A1 |
20110093785 | Lee et al. | Apr 2011 | A1 |
20110131646 | Park et al. | Jun 2011 | A1 |
20110153744 | Brown | Jun 2011 | A1 |
20110188452 | Borleske et al. | Aug 2011 | A1 |
20110249572 | Singhal et al. | Oct 2011 | A1 |
20110282997 | Prince et al. | Nov 2011 | A1 |
20120036272 | El Zur | Feb 2012 | A1 |
20120042060 | Jackowski et al. | Feb 2012 | A1 |
20120096546 | Dilley et al. | Apr 2012 | A1 |
20120110472 | Amrhein | May 2012 | A1 |
20120117646 | Yoon et al. | May 2012 | A1 |
20120144461 | Rathbun | Jun 2012 | A1 |
20120155274 | Wang et al. | Jun 2012 | A1 |
20120163186 | Wei et al. | Jun 2012 | A1 |
20120174196 | Bhogavilli et al. | Jul 2012 | A1 |
20120226582 | Hammad | Sep 2012 | A1 |
20120227109 | Dimuro | Sep 2012 | A1 |
20120266242 | Yang et al. | Oct 2012 | A1 |
20120307631 | Yang et al. | Dec 2012 | A1 |
20130019025 | Chaturvedi et al. | Jan 2013 | A1 |
20130124713 | Feinberg et al. | May 2013 | A1 |
20130128885 | Kardashov et al. | May 2013 | A1 |
20130139245 | Thomas | May 2013 | A1 |
20130173795 | McPherson | Jul 2013 | A1 |
20130198385 | Han et al. | Aug 2013 | A1 |
20130198845 | Anvari | Aug 2013 | A1 |
20130212265 | Rubio Vidales et al. | Aug 2013 | A1 |
20130243194 | Hawkes et al. | Sep 2013 | A1 |
20130263256 | Dickinson et al. | Oct 2013 | A1 |
20140006508 | Goyet et al. | Jan 2014 | A1 |
20140025568 | Smith et al. | Jan 2014 | A1 |
20140137190 | Carey et al. | May 2014 | A1 |
20140258489 | Muppala et al. | Sep 2014 | A1 |
20140258536 | Chiong | Sep 2014 | A1 |
20140280832 | Oshiba | Sep 2014 | A1 |
20140283065 | Teddy et al. | Sep 2014 | A1 |
20140298091 | Carlen et al. | Oct 2014 | A1 |
20140310396 | Christodorescu et al. | Oct 2014 | A1 |
20140325588 | Jalan et al. | Oct 2014 | A1 |
20140344925 | Muthiah | Nov 2014 | A1 |
20150033341 | Schmidtler et al. | Jan 2015 | A1 |
20150058977 | Thompson et al. | Feb 2015 | A1 |
20150088597 | Doherty et al. | Mar 2015 | A1 |
20150143118 | Sheller et al. | May 2015 | A1 |
20150312268 | Ray | Oct 2015 | A1 |
20150333988 | Jalan et al. | Nov 2015 | A1 |
20160036651 | Sureshchandra et al. | Feb 2016 | A1 |
20160134655 | Thompson et al. | May 2016 | A1 |
Number | Date | Country |
---|---|---|
1422468 | Jun 2003 | CN |
104106241 | Oct 2014 | CN |
1198848 | Jun 2015 | HK |
375721 | Dec 1999 | TW |
477140 | Feb 2002 | TW |
574655 | Feb 2004 | TW |
NI197237 | Feb 2004 | TW |
I225999 | Jan 2005 | TW |
I241818 | Oct 2005 | TW |
I252976 | Apr 2006 | TW |
9842108 | Sep 1998 | WO |
WO2006039529 | Apr 2006 | WO |
WO2013112492 | Aug 2013 | WO |
WO2014150617 | Sep 2014 | WO |
WO2014151072 | Sep 2014 | WO |
WO2014176461 | Oct 2014 | WO |
WO2015030977 | Mar 2015 | WO |
Entry |
---|
Mutz, “Linux Encryption How To,” available at http://encryptionhowto.sourceforge.net/Encryption-HOWTO-1.html, Oct. 4, 2000. |
Ganesan et al., “YAPPERS: a peer-to-peer lookup service over arbitrary topology,” IEEE, pp. 1250-1260, Mar. 30-Apr. 3, 2003. |
Annexstein et al., “Indexing Techniques for File Sharing in Scalable Peer-to-Peer Networks,” IEEE, pp. 10-15, Oct. 14-16, 2002. |
Ling et al., “A Content-Based Resource Location Mechanism in PeerIS,” IEEE, pp. 279-288, Dec. 12-14, 2002. |
Obimo et al., “A parallel algorithm for determining the inverse of a matrix for use in blockcipher encryption/decryption,” Journal of Supercomputing, vol. 39, No. 2, pp. 113-130, Feb. 2007. |
Long et al., “ID-based threshold decryption secure against adaptive chosen-ciphertext attack,” Computers and Electrical Engineering, vol. 33, No. 3, pp. 166-176, May 2007. |
Popek, Gerald J., “Encryption and Secure Computer Networks,” Computing Surveys, vol. 11, No. 4, pp. 1-26, Dec. 1979. |
Oracle Corporation. Oracle Intelligent Agent User's Guide, Release 9.2.0, Part No. A96676-01. Mar. 2002. |
SOL11243. iRules containing the RULE—INIT iRule event do not re-initialize when a syntax error is corrected. f5.support.com. May 24, 2010. |
Dainotti, Albert et al. TIE: A Community-Oriented Traffic Classification Platform. May 11, 2009. Springer-Verlag, Traffic Monitoring and Analysis: Proceedings First International Workshop, TMA 2009. pp. 64-74. Retrieved from: Inspec. Accession No. 11061142. |
Dainotti, Albert et al., “Early Classification of Network Traffic through Multi-Classification,” Apr. 27, 2011, Springer Verlag, Traffic Monitoring and Analysis, Proceedings of the Third International Workshop, TMA 2011. pp. 122-135. Retrieved from INSPEC. Accession No. 12232145. |
Liebergeld, Steffen et al., “Cellpot: A Concept for Next Generation Cellular Network Honeypots,” Internet Society, Feb. 23, 2014, pp. 1-6. |
Lee et al., “On the Detection of Signaling DoS Attacks on 3G Wireless Networks,” IEEE Infocom 2007 processings, pp. 1289-1297. |
“How to Create a Rule in Outlook 2003” CreateaRule—Outlook2003.doc 031405 mad, 3 pages. |
Guo, Yuan-ni et al., “An Embedded Firewall System Design Based on Ptolemy II,” Journal of System Simulation, vol. 16 No. 6, pp. 1361-1363, Jun. 2004. |
Huang, Quan et al., “An Embedded Firewall Based on Network Processor,” IEEE, 2nd International Conference on Embedded Software and Systems, 7 pages, Dec. 16-18, 2005. |
Ihde, Michael et al., “Barbarians in the Gate: An Experimental Validation of NIC-Based Distributed Firewall Performance and Flood Tolerance,” IEEE, International Conference on Dependable Systems and Networks, Jun. 25-28, 2006, 6 pages. |
Susilo, W. et al., “Personal Firewall for Pocket PC 2003: Design & Implementation,” IEEE 19th International Conference on Advanced Information Networking and Applications, vol. 2 pp. 661-666, Mar. 28-30, 2005. |
Number | Date | Country | |
---|---|---|---|
20140269308 A1 | Sep 2014 | US |